Skip to content

Instantly share code, notes, and snippets.

@Dashbloxx
Created October 11, 2022 00:42
Show Gist options
  • Save Dashbloxx/e87c32900bd37507f63796d55df1a519 to your computer and use it in GitHub Desktop.
Save Dashbloxx/e87c32900bd37507f63796d55df1a519 to your computer and use it in GitHub Desktop.
A professional javascript executor that can be runned on any device that runs chrome, by just a simple bookmark! (YAMM (Yet Another Mod Menu))
javascript:document.body.innerHTML += atob("PGRpdiBpZD0iZ19jb250YWluZXIiIGNsYXNzPSJkcmFnIj4KICA8ZGl2IGNsYXNzPSJtZGwtbGF5b3V0IG1kbC1qcy1sYXlvdXQgbWRsLWxheW91dC0tZml4ZWQtaGVhZGVyIj4KICAgICA8aGVhZGVyIGNsYXNzPSJtZGwtbGF5b3V0X19oZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9Im1kbC1sYXlvdXRfX2hlYWRlci1yb3ciPgogICAgICAgICAgIDxzcGFuIGNsYXNzPSJtZGwtbGF5b3V0LXRpdGxlIj5ZZXQgQW5vdGhlciBVdGlsaXR5IE1vZDwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICA8L2hlYWRlcj4KICAgICA8bWFpbiBjbGFzcz0ibWRsLWxheW91dF9fY29udGVudCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWRsLXRhYnMgbWRsLWpzLXRhYnMiPgogICAgICAgICAgIDxkaXYgY2xhc3M9Im1kbC10YWJzX190YWItYmFyIj4KICAgICAgICAgICAgICA8YSBocmVmPSIjdGFiMS1wYW5lbCIgY2xhc3M9Im1kbC10YWJzX190YWIgaXMtYWN0aXZlIj5TY3JpcHQgRXhlY3V0aW9uPC9hPgogICAgICAgICAgICAgIDxhIGhyZWY9IiN0YWIyLXBhbmVsIiBjbGFzcz0ibWRsLXRhYnNfX3RhYiI+TU9EVUxFUzwvYT4KICAgICAgICAgICAgICA8YSBocmVmPSIjdGFiMy1wYW5lbCIgY2xhc3M9Im1kbC10YWJzX190YWIiPkNSRURJVFMgJiBJTkZPPC9hPgogICAgICAgICAgIDwvZGl2PgogICAgICAgICAgIDxkaXYgY2xhc3M9Im1kbC10YWJzX19wYW5lbCBpcy1hY3RpdmUiIGlkPSJ0YWIxLXBhbmVsIj4KICAgICAgICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgogICAgICAgICAgIDwvZGl2PgogICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6IDEwcHgiIGNsYXNzPSJtZGwtdGFic19fcGFuZWwiIGlkPSJ0YWIyLXBhbmVsIj4KICAgICAgICAgICAgICA8aDQ+Q29taW5nIFNvb24hPC9oND4KICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICA8ZGl2IHN0eWxlPSJwYWRkaW5nOiAxMHB4IiBjbGFzcz0ibWRsLXRhYnNfX3BhbmVsIiBpZD0idGFiMy1wYW5lbCI+CiAgICAgICAgICAgICAgPGg0PkNyZWF0ZWQgYnkgTmlja2VsIzIyNTA8L2g0PgogICAgICAgICAgICAgIDxwPllldCBBbm90aGVyIE1vZCBNZW51IChZQU1NKSBpcyBhIHNtYWxsIHNjcmlwdCB0aGF0IGNhbiBiZSBpbmplY3RlZCBpbnRvIHdlYnBhZ2VzIHVzaW5nIGJvb2ttYXJrcywgd2hpY2ggY2FuIGFsbG93IHBlb3BsZSB0byB0aW5rZXIgYXJvdW5kIHdpdGggYSB3ZWJwYWdlJ3MgcHJvcGVydGllcywgYW5kIGRvIG11Y2ggbW9yZSEgU3VwcG9ydCBzZXJ2ZXIgaXMgY29taW5nIHNvb24hPC9wPgogICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgIDwvbWFpbj4KICA8L2Rpdj4KPC9kaXY+Cgo8c2NyaXB0PgogIC8qISBqUXVlcnkgdjMuNi4wIHwgKGMpIE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMgfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KICAhZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZS5kb2N1bWVudD90KGUsITApOmZ1bmN0aW9uKGUpe2lmKCFlLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiB0KGUpfTp0KGUpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihDLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1bXSxyPU9iamVjdC5nZXRQcm90b3R5cGVPZixzPXQuc2xpY2UsZz10LmZsYXQ/ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZmxhdC5jYWxsKGUpfTpmdW5jdGlvbihlKXtyZXR1cm4gdC5jb25jYXQuYXBwbHkoW10sZSl9LHU9dC5wdXNoLGk9dC5pbmRleE9mLG49e30sbz1uLnRvU3RyaW5nLHY9bi5oYXNPd25Qcm9wZXJ0eSxhPXYudG9TdHJpbmcsbD1hLmNhbGwoT2JqZWN0KSx5PXt9LG09ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUmJiJudW1iZXIiIT10eXBlb2YgZS5ub2RlVHlwZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUuaXRlbX0seD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZSYmZT09PWUud2luZG93fSxFPUMuZG9jdW1lbnQsYz17dHlwZTohMCxzcmM6ITAsbm9uY2U6ITAsbm9Nb2R1bGU6ITB9O2Z1bmN0aW9uIGIoZSx0LG4pe3ZhciByLGksbz0obj1ufHxFKS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpZihvLnRleHQ9ZSx0KWZvcihyIGluIGMpKGk9dFtyXXx8dC5nZXRBdHRyaWJ1dGUmJnQuZ2V0QXR0cmlidXRlKHIpKSYmby5zZXRBdHRyaWJ1dGUocixpKTtuLmhlYWQuYXBwZW5kQ2hpbGQobykucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKX1mdW5jdGlvbiB3KGUpe3JldHVybiBudWxsPT1lP2UrIiI6Im9iamVjdCI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZT9uW28uY2FsbChlKV18fCJvYmplY3QiOnR5cGVvZiBlfXZhciBmPSIzLjYuMCIsUz1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgUy5mbi5pbml0KGUsdCl9O2Z1bmN0aW9uIHAoZSl7dmFyIHQ9ISFlJiYibGVuZ3RoImluIGUmJmUubGVuZ3RoLG49dyhlKTtyZXR1cm4hbShlKSYmIXgoZSkmJigiYXJyYXkiPT09bnx8MD09PXR8fCJudW1iZXIiPT10eXBlb2YgdCYmMDx0JiZ0LTEgaW4gZSl9Uy5mbj1TLnByb3RvdHlwZT17anF1ZXJ5OmYsY29uc3RydWN0b3I6UyxsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHMuY2FsbCh0aGlzKX0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3MuY2FsbCh0aGlzKTplPDA/dGhpc1tlK3RoaXMubGVuZ3RoXTp0aGlzW2VdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9Uy5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksZSk7cmV0dXJuIHQucHJldk9iamVjdD10aGlzLHR9LGVhY2g6ZnVuY3Rpb24oZSl7cmV0dXJuIFMuZWFjaCh0aGlzLGUpfSxtYXA6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMubWFwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5jYWxsKGUsdCxlKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2socy5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxldmVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMuZ3JlcCh0aGlzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQrMSklMn0pKX0sb2RkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMuZ3JlcCh0aGlzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQlMn0pKX0sZXE6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5sZW5ndGgsbj0rZSsoZTwwP3Q6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKDA8PW4mJm48dD9bdGhpc1tuXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKCl9LHB1c2g6dSxzb3J0OnQuc29ydCxzcGxpY2U6dC5zcGxpY2V9LFMuZXh0ZW5kPVMuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGUsdCxuLHIsaSxvLGE9YXJndW1lbnRzWzBdfHx7fSxzPTEsdT1hcmd1bWVudHMubGVuZ3RoLGw9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIGEmJihsPWEsYT1hcmd1bWVudHNbc118fHt9LHMrKyksIm9iamVjdCI9PXR5cGVvZiBhfHxtKGEpfHwoYT17fSkscz09PXUmJihhPXRoaXMscy0tKTtzPHU7cysrKWlmKG51bGwhPShlPWFyZ3VtZW50c1tzXSkpZm9yKHQgaW4gZSlyPWVbdF0sIl9fcHJvdG9fXyIhPT10JiZhIT09ciYmKGwmJnImJihTLmlzUGxhaW5PYmplY3Qocil8fChpPUFycmF5LmlzQXJyYXkocikpKT8obj1hW3RdLG89aSYmIUFycmF5LmlzQXJyYXkobik/W106aXx8Uy5pc1BsYWluT2JqZWN0KG4pP246e30saT0hMSxhW3RdPVMuZXh0ZW5kKGwsbyxyKSk6dm9pZCAwIT09ciYmKGFbdF09cikpO3JldHVybiBhfSxTLmV4dGVuZCh7ZXhwYW5kbzoialF1ZXJ5IisoZitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcihlKX0sbm9vcDpmdW5jdGlvbigpe30saXNQbGFpbk9iamVjdDpmdW5jdGlvbihlKXt2YXIgdCxuO3JldHVybiEoIWV8fCJbb2JqZWN0IE9iamVjdF0iIT09by5jYWxsKGUpKSYmKCEodD1yKGUpKXx8ImZ1bmN0aW9uIj09dHlwZW9mKG49di5jYWxsKHQsImNvbnN0cnVjdG9yIikmJnQuY29uc3RydWN0b3IpJiZhLmNhbGwobik9PT1sKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlKXJldHVybiExO3JldHVybiEwfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGUsdCxuKXtiKGUse25vbmNlOnQmJnQubm9uY2V9LG4pfSxlYWNoOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0wO2lmKHAoZSkpe2ZvcihuPWUubGVuZ3RoO3I8bjtyKyspaWYoITE9PT10LmNhbGwoZVtyXSxyLGVbcl0pKWJyZWFrfWVsc2UgZm9yKHIgaW4gZSlpZighMT09PXQuY2FsbChlW3JdLHIsZVtyXSkpYnJlYWs7cmV0dXJuIGV9LG1ha2VBcnJheTpmdW5jdGlvbihlLHQpe3ZhciBuPXR8fFtdO3JldHVybiBudWxsIT1lJiYocChPYmplY3QoZSkpP1MubWVyZ2Uobiwic3RyaW5nIj09dHlwZW9mIGU/W2VdOmUpOnUuY2FsbChuLGUpKSxufSxpbkFycmF5OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09dD8tMTppLmNhbGwodCxlLG4pfSxtZXJnZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0rdC5sZW5ndGgscj0wLGk9ZS5sZW5ndGg7cjxuO3IrKyllW2krK109dFtyXTtyZXR1cm4gZS5sZW5ndGg9aSxlfSxncmVwOmZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9W10saT0wLG89ZS5sZW5ndGgsYT0hbjtpPG87aSsrKSF0KGVbaV0saSkhPT1hJiZyLnB1c2goZVtpXSk7cmV0dXJuIHJ9LG1hcDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPTAsYT1bXTtpZihwKGUpKWZvcihyPWUubGVuZ3RoO288cjtvKyspbnVsbCE9KGk9dChlW29dLG8sbikpJiZhLnB1c2goaSk7ZWxzZSBmb3IobyBpbiBlKW51bGwhPShpPXQoZVtvXSxvLG4pKSYmYS5wdXNoKGkpO3JldHVybiBnKGEpfSxndWlkOjEsc3VwcG9ydDp5fSksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKFMuZm5bU3ltYm9sLml0ZXJhdG9yXT10W1N5bWJvbC5pdGVyYXRvcl0pLFMuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0KCIgIiksZnVuY3Rpb24oZSx0KXtuWyJbb2JqZWN0ICIrdCsiXSJdPXQudG9Mb3dlckNhc2UoKX0pO3ZhciBkPWZ1bmN0aW9uKG4pe3ZhciBlLGQsYixvLGksaCxmLGcsdyx1LGwsVCxDLGEsRSx2LHMsYyx5LFM9InNpenpsZSIrMSpuZXcgRGF0ZSxwPW4uZG9jdW1lbnQsaz0wLHI9MCxtPXVlKCkseD11ZSgpLEE9dWUoKSxOPXVlKCksaj1mdW5jdGlvbihlLHQpe3JldHVybiBlPT09dCYmKGw9ITApLDB9LEQ9e30uaGFzT3duUHJvcGVydHksdD1bXSxxPXQucG9wLEw9dC5wdXNoLEg9dC5wdXNoLE89dC5zbGljZSxQPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKWlmKGVbbl09PT10KXJldHVybiBuO3JldHVybi0xfSxSPSJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCIsTT0iW1xceDIwXFx0XFxyXFxuXFxmXSIsST0iKD86XFxcXFtcXGRhLWZBLUZdezEsNn0iK00rIj98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15cMC1cXHg3Zl0pKyIsVz0iXFxbIitNKyIqKCIrSSsiKSg/OiIrTSsiKihbKl4kfCF+XT89KSIrTSsiKig/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwifCgiK0krIikpfCkiK00rIipcXF0iLEY9IjooIitJKyIpKD86XFwoKCgnKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg/OlxcXFwufFteXFxcXCgpW1xcXV18IitXKyIpKil8LiopXFwpfCkiLEI9bmV3IFJlZ0V4cChNKyIrIiwiZyIpLCQ9bmV3IFJlZ0V4cCgiXiIrTSsiK3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIitNKyIrJCIsImciKSxfPW5ldyBSZWdFeHAoIl4iK00rIiosIitNKyIqIiksej1uZXcgUmVnRXhwKCJeIitNKyIqKFs+K35dfCIrTSsiKSIrTSsiKiIpLFU9bmV3IFJlZ0V4cChNKyJ8PiIpLFg9bmV3IFJlZ0V4cChGKSxWPW5ldyBSZWdFeHAoIl4iK0krIiQiKSxHPXtJRDpuZXcgUmVnRXhwKCJeIygiK0krIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrSSsiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrSSsifFsqXSkiKSxBVFRSOm5ldyBSZWdFeHAoIl4iK1cpLFBTRVVETzpuZXcgUmVnRXhwKCJeIitGKSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK00rIiooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufCkiK00rIiooPzooWystXXwpIitNKyIqKFxcZCspfCkpIitNKyIqXFwpfCkiLCJpIiksYm9vbDpuZXcgUmVnRXhwKCJeKD86IitSKyIpJCIsImkiKSxuZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cCgiXiIrTSsiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoIitNKyIqKCg/Oi1cXGQpP1xcZCopIitNKyIqXFwpfCkoPz1bXi1dfCQpIiwiaSIpfSxZPS9IVE1MJC9pLFE9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxKPS9eaFxkJC9pLEs9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLFo9L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxlZT0vWyt+XS8sdGU9bmV3IFJlZ0V4cCgiXFxcXFtcXGRhLWZBLUZdezEsNn0iK00rIj98XFxcXChbXlxcclxcblxcZl0pIiwiZyIpLG5lPWZ1bmN0aW9uKGUsdCl7dmFyIG49IjB4IitlLnNsaWNlKDEpLTY1NTM2O3JldHVybiB0fHwobjwwP1N0cmluZy5mcm9tQ2hhckNvZGUobis2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShuPj4xMHw1NTI5NiwxMDIzJm58NTYzMjApKX0scmU9LyhbXDAtXHgxZlx4N2ZdfF4tP1xkKXxeLSR8W15cMC1ceDFmXHg3Zi1cdUZGRkZcdy1dL2csaWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD8iXDAiPT09ZT8iXHVmZmZkIjplLnNsaWNlKDAsLTEpKyJcXCIrZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KSsiICI6IlxcIitlfSxvZT1mdW5jdGlvbigpe1QoKX0sYWU9YmUoZnVuY3Rpb24oZSl7cmV0dXJuITA9PT1lLmRpc2FibGVkJiYiZmllbGRzZXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpfSx7ZGlyOiJwYXJlbnROb2RlIixuZXh0OiJsZWdlbmQifSk7dHJ5e0guYXBwbHkodD1PLmNhbGwocC5jaGlsZE5vZGVzKSxwLmNoaWxkTm9kZXMpLHRbcC5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goZSl7SD17YXBwbHk6dC5sZW5ndGg/ZnVuY3Rpb24oZSx0KXtMLmFwcGx5KGUsTy5jYWxsKHQpKX06ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmxlbmd0aCxyPTA7d2hpbGUoZVtuKytdPXRbcisrXSk7ZS5sZW5ndGg9bi0xfX19ZnVuY3Rpb24gc2UodCxlLG4scil7dmFyIGksbyxhLHMsdSxsLGMsZj1lJiZlLm93bmVyRG9jdW1lbnQscD1lP2Uubm9kZVR5cGU6OTtpZihuPW58fFtdLCJzdHJpbmciIT10eXBlb2YgdHx8IXR8fDEhPT1wJiY5IT09cCYmMTEhPT1wKXJldHVybiBuO2lmKCFyJiYoVChlKSxlPWV8fEMsRSkpe2lmKDExIT09cCYmKHU9Wi5leGVjKHQpKSlpZihpPXVbMV0pe2lmKDk9PT1wKXtpZighKGE9ZS5nZXRFbGVtZW50QnlJZChpKSkpcmV0dXJuIG47aWYoYS5pZD09PWkpcmV0dXJuIG4ucHVzaChhKSxufWVsc2UgaWYoZiYmKGE9Zi5nZXRFbGVtZW50QnlJZChpKSkmJnkoZSxhKSYmYS5pZD09PWkpcmV0dXJuIG4ucHVzaChhKSxufWVsc2V7aWYodVsyXSlyZXR1cm4gSC5hcHBseShuLGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCkpLG47aWYoKGk9dVszXSkmJmQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiBILmFwcGx5KG4sZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGkpKSxufWlmKGQucXNhJiYhTlt0KyIgIl0mJighdnx8IXYudGVzdCh0KSkmJigxIT09cHx8Im9iamVjdCIhPT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpKXtpZihjPXQsZj1lLDE9PT1wJiYoVS50ZXN0KHQpfHx6LnRlc3QodCkpKXsoZj1lZS50ZXN0KHQpJiZ5ZShlLnBhcmVudE5vZGUpfHxlKT09PWUmJmQuc2NvcGV8fCgocz1lLmdldEF0dHJpYnV0ZSgiaWQiKSk/cz1zLnJlcGxhY2UocmUsaWUpOmUuc2V0QXR0cmlidXRlKCJpZCIscz1TKSksbz0obD1oKHQpKS5sZW5ndGg7d2hpbGUoby0tKWxbb109KHM/IiMiK3M6IjpzY29wZSIpKyIgIit4ZShsW29dKTtjPWwuam9pbigiLCIpfXRyeXtyZXR1cm4gSC5hcHBseShuLGYucXVlcnlTZWxlY3RvckFsbChjKSksbn1jYXRjaChlKXtOKHQsITApfWZpbmFsbHl7cz09PVMmJmUucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGcodC5yZXBsYWNlKCQsIiQxIiksZSxuLHIpfWZ1bmN0aW9uIHVlKCl7dmFyIHI9W107cmV0dXJuIGZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gci5wdXNoKHQrIiAiKT5iLmNhY2hlTGVuZ3RoJiZkZWxldGUgZVtyLnNoaWZ0KCldLGVbdCsiICJdPW59fWZ1bmN0aW9uIGxlKGUpe3JldHVybiBlW1NdPSEwLGV9ZnVuY3Rpb24gY2UoZSl7dmFyIHQ9Qy5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpO3RyeXtyZXR1cm4hIWUodCl9Y2F0Y2goZSl7cmV0dXJuITF9ZmluYWxseXt0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0PW51bGx9fWZ1bmN0aW9uIGZlKGUsdCl7dmFyIG49ZS5zcGxpdCgifCIpLHI9bi5sZW5ndGg7d2hpbGUoci0tKWIuYXR0ckhhbmRsZVtuW3JdXT10fWZ1bmN0aW9uIHBlKGUsdCl7dmFyIG49dCYmZSxyPW4mJjE9PT1lLm5vZGVUeXBlJiYxPT09dC5ub2RlVHlwZSYmZS5zb3VyY2VJbmRleC10LnNvdXJjZUluZGV4O2lmKHIpcmV0dXJuIHI7aWYobil3aGlsZShuPW4ubmV4dFNpYmxpbmcpaWYobj09PXQpcmV0dXJuLTE7cmV0dXJuIGU/MTotMX1mdW5jdGlvbiBkZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZS50eXBlPT09dH19ZnVuY3Rpb24gaGUobil7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4oImlucHV0Ij09PXR8fCJidXR0b24iPT09dCkmJmUudHlwZT09PW59fWZ1bmN0aW9uIGdlKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4iZm9ybSJpbiBlP2UucGFyZW50Tm9kZSYmITE9PT1lLmRpc2FibGVkPyJsYWJlbCJpbiBlPyJsYWJlbCJpbiBlLnBhcmVudE5vZGU/ZS5wYXJlbnROb2RlLmRpc2FibGVkPT09dDplLmRpc2FibGVkPT09dDplLmlzRGlzYWJsZWQ9PT10fHxlLmlzRGlzYWJsZWQhPT0hdCYmYWUoZSk9PT10OmUuZGlzYWJsZWQ9PT10OiJsYWJlbCJpbiBlJiZlLmRpc2FibGVkPT09dH19ZnVuY3Rpb24gdmUoYSl7cmV0dXJuIGxlKGZ1bmN0aW9uKG8pe3JldHVybiBvPStvLGxlKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj1hKFtdLGUubGVuZ3RoLG8pLGk9ci5sZW5ndGg7d2hpbGUoaS0tKWVbbj1yW2ldXSYmKGVbbl09ISh0W25dPWVbbl0pKX0pfSl9ZnVuY3Rpb24geWUoZSl7cmV0dXJuIGUmJiJ1bmRlZmluZWQiIT10eXBlb2YgZS5nZXRFbGVtZW50c0J5VGFnTmFtZSYmZX1mb3IoZSBpbiBkPXNlLnN1cHBvcnQ9e30saT1zZS5pc1hNTD1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLm5hbWVzcGFjZVVSSSxuPWUmJihlLm93bmVyRG9jdW1lbnR8fGUpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hWS50ZXN0KHR8fG4mJm4ubm9kZU5hbWV8fCJIVE1MIil9LFQ9c2Uuc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbixyPWU/ZS5vd25lckRvY3VtZW50fHxlOnA7cmV0dXJuIHIhPUMmJjk9PT1yLm5vZGVUeXBlJiZyLmRvY3VtZW50RWxlbWVudCYmKGE9KEM9cikuZG9jdW1lbnRFbGVtZW50LEU9IWkoQykscCE9QyYmKG49Qy5kZWZhdWx0VmlldykmJm4udG9wIT09biYmKG4uYWRkRXZlbnRMaXN0ZW5lcj9uLmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsb2UsITEpOm4uYXR0YWNoRXZlbnQmJm4uYXR0YWNoRXZlbnQoIm9udW5sb2FkIixvZSkpLGQuc2NvcGU9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoZSkuYXBwZW5kQ2hpbGQoQy5jcmVhdGVFbGVtZW50KCJkaXYiKSksInVuZGVmaW5lZCIhPXR5cGVvZiBlLnF1ZXJ5U2VsZWN0b3JBbGwmJiFlLnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSBmaWVsZHNldCBkaXYiKS5sZW5ndGh9KSxkLmF0dHJpYnV0ZXM9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xhc3NOYW1lPSJpIiwhZS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksZC5nZXRFbGVtZW50c0J5VGFnTmFtZT1jZShmdW5jdGlvbihlKXtyZXR1cm4gZS5hcHBlbmRDaGlsZChDLmNyZWF0ZUNvbW1lbnQoIiIpKSwhZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLGQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1LLnRlc3QoQy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxkLmdldEJ5SWQ9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoZSkuaWQ9UywhQy5nZXRFbGVtZW50c0J5TmFtZXx8IUMuZ2V0RWxlbWVudHNCeU5hbWUoUykubGVuZ3RofSksZC5nZXRCeUlkPyhiLmZpbHRlci5JRD1mdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UodGUsbmUpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImlkIik9PT10fX0sYi5maW5kLklEPWZ1bmN0aW9uKGUsdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRCeUlkJiZFKXt2YXIgbj10LmdldEVsZW1lbnRCeUlkKGUpO3JldHVybiBuP1tuXTpbXX19KTooYi5maWx0ZXIuSUQ9ZnVuY3Rpb24oZSl7dmFyIG49ZS5yZXBsYWNlKHRlLG5lKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEF0dHJpYnV0ZU5vZGUmJmUuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gdCYmdC52YWx1ZT09PW59fSxiLmZpbmQuSUQ9ZnVuY3Rpb24oZSx0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHQuZ2V0RWxlbWVudEJ5SWQmJkUpe3ZhciBuLHIsaSxvPXQuZ2V0RWxlbWVudEJ5SWQoZSk7aWYobyl7aWYoKG49by5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmbi52YWx1ZT09PWUpcmV0dXJuW29dO2k9dC5nZXRFbGVtZW50c0J5TmFtZShlKSxyPTA7d2hpbGUobz1pW3IrK10paWYoKG49by5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmbi52YWx1ZT09PWUpcmV0dXJuW29dfXJldHVybltdfX0pLGIuZmluZC5UQUc9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihlLHQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgdC5nZXRFbGVtZW50c0J5VGFnTmFtZT90LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpOmQucXNhP3QucXVlcnlTZWxlY3RvckFsbChlKTp2b2lkIDB9OmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPTAsbz10LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpO2lmKCIqIj09PWUpe3doaWxlKG49b1tpKytdKTE9PT1uLm5vZGVUeXBlJiZyLnB1c2gobik7cmV0dXJuIHJ9cmV0dXJuIG99LGIuZmluZC5DTEFTUz1kLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGUsdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJkUpcmV0dXJuIHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShlKX0scz1bXSx2PVtdLChkLnFzYT1LLnRlc3QoQy5xdWVyeVNlbGVjdG9yQWxsKSkmJihjZShmdW5jdGlvbihlKXt2YXIgdDthLmFwcGVuZENoaWxkKGUpLmlubmVySFRNTD0iPGEgaWQ9JyIrUysiJz48L2E+PHNlbGVjdCBpZD0nIitTKyItXHJcXCcgbXNhbGxvd2NhcHR1cmU9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLGUucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djYXB0dXJlXj0nJ10iKS5sZW5ndGgmJnYucHVzaCgiWypeJF09IitNKyIqKD86Jyd8XCJcIikiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fHYucHVzaCgiXFxbIitNKyIqKD86dmFsdWV8IitSKyIpIiksZS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrUysiLV0iKS5sZW5ndGh8fHYucHVzaCgifj0iKSwodD1DLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgibmFtZSIsIiIpLGUuYXBwZW5kQ2hpbGQodCksZS5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT0nJ10iKS5sZW5ndGh8fHYucHVzaCgiXFxbIitNKyIqbmFtZSIrTSsiKj0iK00rIiooPzonJ3xcIlwiKSIpLGUucXVlcnlTZWxlY3RvckFsbCgiOmNoZWNrZWQiKS5sZW5ndGh8fHYucHVzaCgiOmNoZWNrZWQiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoImEjIitTKyIrKiIpLmxlbmd0aHx8di5wdXNoKCIuIy4rWyt+XSIpLGUucXVlcnlTZWxlY3RvckFsbCgiXFxcZiIpLHYucHVzaCgiW1xcclxcblxcZl0iKX0pLGNlKGZ1bmN0aW9uKGUpe2UuaW5uZXJIVE1MPSI8YSBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgZGlzYWJsZWQ9J2Rpc2FibGVkJz48b3B0aW9uLz48L3NlbGVjdD4iO3ZhciB0PUMuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTt0LnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLGUuYXBwZW5kQ2hpbGQodCkuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpLGUucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9ZF0iKS5sZW5ndGgmJnYucHVzaCgibmFtZSIrTSsiKlsqXiR8IX5dPz0iKSwyIT09ZS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aCYmdi5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGEuYXBwZW5kQ2hpbGQoZSkuZGlzYWJsZWQ9ITAsMiE9PWUucXVlcnlTZWxlY3RvckFsbCgiOmRpc2FibGVkIikubGVuZ3RoJiZ2LnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksZS5xdWVyeVNlbGVjdG9yQWxsKCIqLDp4Iiksdi5wdXNoKCIsLio6Iil9KSksKGQubWF0Y2hlc1NlbGVjdG9yPUsudGVzdChjPWEubWF0Y2hlc3x8YS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fGEubW96TWF0Y2hlc1NlbGVjdG9yfHxhLm9NYXRjaGVzU2VsZWN0b3J8fGEubXNNYXRjaGVzU2VsZWN0b3IpKSYmY2UoZnVuY3Rpb24oZSl7ZC5kaXNjb25uZWN0ZWRNYXRjaD1jLmNhbGwoZSwiKiIpLGMuY2FsbChlLCJbcyE9JyddOngiKSxzLnB1c2goIiE9IixGKX0pLHY9di5sZW5ndGgmJm5ldyBSZWdFeHAodi5qb2luKCJ8IikpLHM9cy5sZW5ndGgmJm5ldyBSZWdFeHAocy5qb2luKCJ8IikpLHQ9Sy50ZXN0KGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHk9dHx8Sy50ZXN0KGEuY29udGFpbnMpP2Z1bmN0aW9uKGUsdCl7dmFyIG49OT09PWUubm9kZVR5cGU/ZS5kb2N1bWVudEVsZW1lbnQ6ZSxyPXQmJnQucGFyZW50Tm9kZTtyZXR1cm4gZT09PXJ8fCEoIXJ8fDEhPT1yLm5vZGVUeXBlfHwhKG4uY29udGFpbnM/bi5jb250YWlucyhyKTplLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpKSl9OmZ1bmN0aW9uKGUsdCl7aWYodCl3aGlsZSh0PXQucGFyZW50Tm9kZSlpZih0PT09ZSlyZXR1cm4hMDtyZXR1cm4hMX0saj10P2Z1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIGw9ITAsMDt2YXIgbj0hZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gbnx8KDEmKG49KGUub3duZXJEb2N1bWVudHx8ZSk9PSh0Lm93bmVyRG9jdW1lbnR8fHQpP2UuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCk6MSl8fCFkLnNvcnREZXRhY2hlZCYmdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKT09PW4/ZT09Q3x8ZS5vd25lckRvY3VtZW50PT1wJiZ5KHAsZSk/LTE6dD09Q3x8dC5vd25lckRvY3VtZW50PT1wJiZ5KHAsdCk/MTp1P1AodSxlKS1QKHUsdCk6MDo0Jm4/LTE6MSl9OmZ1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIGw9ITAsMDt2YXIgbixyPTAsaT1lLnBhcmVudE5vZGUsbz10LnBhcmVudE5vZGUsYT1bZV0scz1bdF07aWYoIWl8fCFvKXJldHVybiBlPT1DPy0xOnQ9PUM/MTppPy0xOm8/MTp1P1AodSxlKS1QKHUsdCk6MDtpZihpPT09bylyZXR1cm4gcGUoZSx0KTtuPWU7d2hpbGUobj1uLnBhcmVudE5vZGUpYS51bnNoaWZ0KG4pO249dDt3aGlsZShuPW4ucGFyZW50Tm9kZSlzLnVuc2hpZnQobik7d2hpbGUoYVtyXT09PXNbcl0pcisrO3JldHVybiByP3BlKGFbcl0sc1tyXSk6YVtyXT09cD8tMTpzW3JdPT1wPzE6MH0pLEN9LHNlLm1hdGNoZXM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gc2UoZSxudWxsLG51bGwsdCl9LHNlLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihlLHQpe2lmKFQoZSksZC5tYXRjaGVzU2VsZWN0b3ImJkUmJiFOW3QrIiAiXSYmKCFzfHwhcy50ZXN0KHQpKSYmKCF2fHwhdi50ZXN0KHQpKSl0cnl7dmFyIG49Yy5jYWxsKGUsdCk7aWYobnx8ZC5kaXNjb25uZWN0ZWRNYXRjaHx8ZS5kb2N1bWVudCYmMTEhPT1lLmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBufWNhdGNoKGUpe04odCwhMCl9cmV0dXJuIDA8c2UodCxDLG51bGwsW2VdKS5sZW5ndGh9LHNlLmNvbnRhaW5zPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKGUub3duZXJEb2N1bWVudHx8ZSkhPUMmJlQoZSkseShlLHQpfSxzZS5hdHRyPWZ1bmN0aW9uKGUsdCl7KGUub3duZXJEb2N1bWVudHx8ZSkhPUMmJlQoZSk7dmFyIG49Yi5hdHRySGFuZGxlW3QudG9Mb3dlckNhc2UoKV0scj1uJiZELmNhbGwoYi5hdHRySGFuZGxlLHQudG9Mb3dlckNhc2UoKSk/bihlLHQsIUUpOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09cj9yOmQuYXR0cmlidXRlc3x8IUU/ZS5nZXRBdHRyaWJ1dGUodCk6KHI9ZS5nZXRBdHRyaWJ1dGVOb2RlKHQpKSYmci5zcGVjaWZpZWQ/ci52YWx1ZTpudWxsfSxzZS5lc2NhcGU9ZnVuY3Rpb24oZSl7cmV0dXJuKGUrIiIpLnJlcGxhY2UocmUsaWUpfSxzZS5lcnJvcj1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrZSl9LHNlLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbj1bXSxyPTAsaT0wO2lmKGw9IWQuZGV0ZWN0RHVwbGljYXRlcyx1PSFkLnNvcnRTdGFibGUmJmUuc2xpY2UoMCksZS5zb3J0KGopLGwpe3doaWxlKHQ9ZVtpKytdKXQ9PT1lW2ldJiYocj1uLnB1c2goaSkpO3doaWxlKHItLSllLnNwbGljZShuW3JdLDEpfXJldHVybiB1PW51bGwsZX0sbz1zZS5nZXRUZXh0PWZ1bmN0aW9uKGUpe3ZhciB0LG49IiIscj0wLGk9ZS5ub2RlVHlwZTtpZihpKXtpZigxPT09aXx8OT09PWl8fDExPT09aSl7aWYoInN0cmluZyI9PXR5cGVvZiBlLnRleHRDb250ZW50KXJldHVybiBlLnRleHRDb250ZW50O2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZyluKz1vKGUpfWVsc2UgaWYoMz09PWl8fDQ9PT1pKXJldHVybiBlLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKHQ9ZVtyKytdKW4rPW8odCk7cmV0dXJuIG59LChiPXNlLnNlbGVjdG9ycz17Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmxlLG1hdGNoOkcsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGUpe3JldHVybiBlWzFdPWVbMV0ucmVwbGFjZSh0ZSxuZSksZVszXT0oZVszXXx8ZVs0XXx8ZVs1XXx8IiIpLnJlcGxhY2UodGUsbmUpLCJ+PSI9PT1lWzJdJiYoZVszXT0iICIrZVszXSsiICIpLGUuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV09ZVsxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09ZVsxXS5zbGljZSgwLDMpPyhlWzNdfHxzZS5lcnJvcihlWzBdKSxlWzRdPSsoZVs0XT9lWzVdKyhlWzZdfHwxKToyKigiZXZlbiI9PT1lWzNdfHwib2RkIj09PWVbM10pKSxlWzVdPSsoZVs3XStlWzhdfHwib2RkIj09PWVbM10pKTplWzNdJiZzZS5lcnJvcihlWzBdKSxlfSxQU0VVRE86ZnVuY3Rpb24oZSl7dmFyIHQsbj0hZVs2XSYmZVsyXTtyZXR1cm4gRy5DSElMRC50ZXN0KGVbMF0pP251bGw6KGVbM10/ZVsyXT1lWzRdfHxlWzVdfHwiIjpuJiZYLnRlc3QobikmJih0PWgobiwhMCkpJiYodD1uLmluZGV4T2YoIikiLG4ubGVuZ3RoLXQpLW4ubGVuZ3RoKSYmKGVbMF09ZVswXS5zbGljZSgwLHQpLGVbMl09bi5zbGljZSgwLHQpKSxlLnNsaWNlKDAsMykpfX0sZmlsdGVyOntUQUc6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKHRlLG5lKS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PWU/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXR9fSxDTEFTUzpmdW5jdGlvbihlKXt2YXIgdD1tW2UrIiAiXTtyZXR1cm4gdHx8KHQ9bmV3IFJlZ0V4cCgiKF58IitNKyIpIitlKyIoIitNKyJ8JCkiKSkmJm0oZSxmdW5jdGlvbihlKXtyZXR1cm4gdC50ZXN0KCJzdHJpbmciPT10eXBlb2YgZS5jbGFzc05hbWUmJmUuY2xhc3NOYW1lfHwidW5kZWZpbmVkIiE9dHlwZW9mIGUuZ2V0QXR0cmlidXRlJiZlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfSl9LEFUVFI6ZnVuY3Rpb24obixyLGkpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD1zZS5hdHRyKGUsbik7cmV0dXJuIG51bGw9PXQ/IiE9Ij09PXI6IXJ8fCh0Kz0iIiwiPSI9PT1yP3Q9PT1pOiIhPSI9PT1yP3QhPT1pOiJePSI9PT1yP2kmJjA9PT10LmluZGV4T2YoaSk6Iio9Ij09PXI/aSYmLTE8dC5pbmRleE9mKGkpOiIkPSI9PT1yP2kmJnQuc2xpY2UoLWkubGVuZ3RoKT09PWk6In49Ij09PXI/LTE8KCIgIit0LnJlcGxhY2UoQiwiICIpKyIgIikuaW5kZXhPZihpKToifD0iPT09ciYmKHQ9PT1pfHx0LnNsaWNlKDAsaS5sZW5ndGgrMSk9PT1pKyItIikpfX0sQ0hJTEQ6ZnVuY3Rpb24oaCxlLHQsZyx2KXt2YXIgeT0ibnRoIiE9PWguc2xpY2UoMCwzKSxtPSJsYXN0IiE9PWguc2xpY2UoLTQpLHg9Im9mLXR5cGUiPT09ZTtyZXR1cm4gMT09PWcmJjA9PT12P2Z1bmN0aW9uKGUpe3JldHVybiEhZS5wYXJlbnROb2RlfTpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGEscyx1LGw9eSE9PW0/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIixjPWUucGFyZW50Tm9kZSxmPXgmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxwPSFuJiYheCxkPSExO2lmKGMpe2lmKHkpe3doaWxlKGwpe2E9ZTt3aGlsZShhPWFbbF0paWYoeD9hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1mOjE9PT1hLm5vZGVUeXBlKXJldHVybiExO3U9bD0ib25seSI9PT1oJiYhdSYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZih1PVttP2MuZmlyc3RDaGlsZDpjLmxhc3RDaGlsZF0sbSYmcCl7ZD0ocz0ocj0oaT0obz0oYT1jKVtTXXx8KGFbU109e30pKVthLnVuaXF1ZUlEXXx8KG9bYS51bmlxdWVJRF09e30pKVtoXXx8W10pWzBdPT09ayYmclsxXSkmJnJbMl0sYT1zJiZjLmNoaWxkTm9kZXNbc107d2hpbGUoYT0rK3MmJmEmJmFbbF18fChkPXM9MCl8fHUucG9wKCkpaWYoMT09PWEubm9kZVR5cGUmJisrZCYmYT09PWUpe2lbaF09W2sscyxkXTticmVha319ZWxzZSBpZihwJiYoZD1zPShyPShpPShvPShhPWUpW1NdfHwoYVtTXT17fSkpW2EudW5pcXVlSURdfHwob1thLnVuaXF1ZUlEXT17fSkpW2hdfHxbXSlbMF09PT1rJiZyWzFdKSwhMT09PWQpd2hpbGUoYT0rK3MmJmEmJmFbbF18fChkPXM9MCl8fHUucG9wKCkpaWYoKHg/YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09ZjoxPT09YS5ub2RlVHlwZSkmJisrZCYmKHAmJigoaT0obz1hW1NdfHwoYVtTXT17fSkpW2EudW5pcXVlSURdfHwob1thLnVuaXF1ZUlEXT17fSkpW2hdPVtrLGRdKSxhPT09ZSkpYnJlYWs7cmV0dXJuKGQtPXYpPT09Z3x8ZCVnPT0wJiYwPD1kL2d9fX0sUFNFVURPOmZ1bmN0aW9uKGUsbyl7dmFyIHQsYT1iLnBzZXVkb3NbZV18fGIuc2V0RmlsdGVyc1tlLnRvTG93ZXJDYXNlKCldfHxzZS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2UpO3JldHVybiBhW1NdP2Eobyk6MTxhLmxlbmd0aD8odD1bZSxlLCIiLG9dLGIuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShlLnRvTG93ZXJDYXNlKCkpP2xlKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj1hKGUsbyksaT1yLmxlbmd0aDt3aGlsZShpLS0pZVtuPVAoZSxyW2ldKV09ISh0W25dPXJbaV0pfSk6ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSwwLHQpfSk6YX19LHBzZXVkb3M6e25vdDpsZShmdW5jdGlvbihlKXt2YXIgcj1bXSxpPVtdLHM9ZihlLnJlcGxhY2UoJCwiJDEiKSk7cmV0dXJuIHNbU10/bGUoZnVuY3Rpb24oZSx0LG4scil7dmFyIGksbz1zKGUsbnVsbCxyLFtdKSxhPWUubGVuZ3RoO3doaWxlKGEtLSkoaT1vW2FdKSYmKGVbYV09ISh0W2FdPWkpKX0pOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gclswXT1lLHMocixudWxsLG4saSksclswXT1udWxsLCFpLnBvcCgpfX0pLGhhczpsZShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIDA8c2UodCxlKS5sZW5ndGh9fSksY29udGFpbnM6bGUoZnVuY3Rpb24odCl7cmV0dXJuIHQ9dC5yZXBsYWNlKHRlLG5lKSxmdW5jdGlvbihlKXtyZXR1cm4tMTwoZS50ZXh0Q29udGVudHx8byhlKSkuaW5kZXhPZih0KX19KSxsYW5nOmxlKGZ1bmN0aW9uKG4pe3JldHVybiBWLnRlc3Qobnx8IiIpfHxzZS5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIituKSxuPW4ucmVwbGFjZSh0ZSxuZSkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihlKXt2YXIgdDtkb3tpZih0PUU/ZS5sYW5nOmUuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxlLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybih0PXQudG9Mb3dlckNhc2UoKSk9PT1ufHwwPT09dC5pbmRleE9mKG4rIi0iKX13aGlsZSgoZT1lLnBhcmVudE5vZGUpJiYxPT09ZS5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGUpe3ZhciB0PW4ubG9jYXRpb24mJm4ubG9jYXRpb24uaGFzaDtyZXR1cm4gdCYmdC5zbGljZSgxKT09PWUuaWR9LHJvb3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1hfSxmb2N1czpmdW5jdGlvbihlKXtyZXR1cm4gZT09PUMuYWN0aXZlRWxlbWVudCYmKCFDLmhhc0ZvY3VzfHxDLmhhc0ZvY3VzKCkpJiYhIShlLnR5cGV8fGUuaHJlZnx8fmUudGFiSW5kZXgpfSxlbmFibGVkOmdlKCExKSxkaXNhYmxlZDpnZSghMCksY2hlY2tlZDpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiEhZS5jaGVja2VkfHwib3B0aW9uIj09PXQmJiEhZS5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsITA9PT1lLnNlbGVjdGVkfSxlbXB0eTpmdW5jdGlvbihlKXtmb3IoZT1lLmZpcnN0Q2hpbGQ7ZTtlPWUubmV4dFNpYmxpbmcpaWYoZS5ub2RlVHlwZTw2KXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIWIucHNldWRvcy5lbXB0eShlKX0saGVhZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBKLnRlc3QoZS5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBRLnRlc3QoZS5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiJidXR0b24iPT09ZS50eXBlfHwiYnV0dG9uIj09PXR9LHRleHQ6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmInRleHQiPT09ZS50eXBlJiYobnVsbD09KHQ9ZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCJ0ZXh0Ij09PXQudG9Mb3dlckNhc2UoKSl9LGZpcnN0OnZlKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDp2ZShmdW5jdGlvbihlLHQpe3JldHVyblt0LTFdfSksZXE6dmUoZnVuY3Rpb24oZSx0LG4pe3JldHVybltuPDA/bit0Om5dfSksZXZlbjp2ZShmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wO248dDtuKz0yKWUucHVzaChuKTtyZXR1cm4gZX0pLG9kZDp2ZShmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0xO248dDtuKz0yKWUucHVzaChuKTtyZXR1cm4gZX0pLGx0OnZlKGZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9bjwwP24rdDp0PG4/dDpuOzA8PS0tcjspZS5wdXNoKHIpO3JldHVybiBlfSksZ3Q6dmUoZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1uPDA/bit0Om47KytyPHQ7KWUucHVzaChyKTtyZXR1cm4gZX0pfX0pLnBzZXVkb3MubnRoPWIucHNldWRvcy5lcSx7cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pYi5wc2V1ZG9zW2VdPWRlKGUpO2ZvcihlIGlue3N1Ym1pdDohMCxyZXNldDohMH0pYi5wc2V1ZG9zW2VdPWhlKGUpO2Z1bmN0aW9uIG1lKCl7fWZ1bmN0aW9uIHhlKGUpe2Zvcih2YXIgdD0wLG49ZS5sZW5ndGgscj0iIjt0PG47dCsrKXIrPWVbdF0udmFsdWU7cmV0dXJuIHJ9ZnVuY3Rpb24gYmUocyxlLHQpe3ZhciB1PWUuZGlyLGw9ZS5uZXh0LGM9bHx8dSxmPXQmJiJwYXJlbnROb2RlIj09PWMscD1yKys7cmV0dXJuIGUuZmlyc3Q/ZnVuY3Rpb24oZSx0LG4pe3doaWxlKGU9ZVt1XSlpZigxPT09ZS5ub2RlVHlwZXx8ZilyZXR1cm4gcyhlLHQsbik7cmV0dXJuITF9OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYT1bayxwXTtpZihuKXt3aGlsZShlPWVbdV0paWYoKDE9PT1lLm5vZGVUeXBlfHxmKSYmcyhlLHQsbikpcmV0dXJuITB9ZWxzZSB3aGlsZShlPWVbdV0paWYoMT09PWUubm9kZVR5cGV8fGYpaWYoaT0obz1lW1NdfHwoZVtTXT17fSkpW2UudW5pcXVlSURdfHwob1tlLnVuaXF1ZUlEXT17fSksbCYmbD09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSllPWVbdV18fGU7ZWxzZXtpZigocj1pW2NdKSYmclswXT09PWsmJnJbMV09PT1wKXJldHVybiBhWzJdPXJbMl07aWYoKGlbY109YSlbMl09cyhlLHQsbikpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHdlKGkpe3JldHVybiAxPGkubGVuZ3RoP2Z1bmN0aW9uKGUsdCxuKXt2YXIgcj1pLmxlbmd0aDt3aGlsZShyLS0paWYoIWlbcl0oZSx0LG4pKXJldHVybiExO3JldHVybiEwfTppWzBdfWZ1bmN0aW9uIFRlKGUsdCxuLHIsaSl7Zm9yKHZhciBvLGE9W10scz0wLHU9ZS5sZW5ndGgsbD1udWxsIT10O3M8dTtzKyspKG89ZVtzXSkmJihuJiYhbihvLHIsaSl8fChhLnB1c2gobyksbCYmdC5wdXNoKHMpKSk7cmV0dXJuIGF9ZnVuY3Rpb24gQ2UoZCxoLGcsdix5LGUpe3JldHVybiB2JiYhdltTXSYmKHY9Q2UodikpLHkmJiF5W1NdJiYoeT1DZSh5LGUpKSxsZShmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscz1bXSx1PVtdLGw9dC5sZW5ndGgsYz1lfHxmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPTAsaT10Lmxlbmd0aDtyPGk7cisrKXNlKGUsdFtyXSxuKTtyZXR1cm4gbn0oaHx8IioiLG4ubm9kZVR5cGU/W25dOm4sW10pLGY9IWR8fCFlJiZoP2M6VGUoYyxzLGQsbixyKSxwPWc/eXx8KGU/ZDpsfHx2KT9bXTp0OmY7aWYoZyYmZyhmLHAsbixyKSx2KXtpPVRlKHAsdSksdihpLFtdLG4sciksbz1pLmxlbmd0aDt3aGlsZShvLS0pKGE9aVtvXSkmJihwW3Vbb11dPSEoZlt1W29dXT1hKSl9aWYoZSl7aWYoeXx8ZCl7aWYoeSl7aT1bXSxvPXAubGVuZ3RoO3doaWxlKG8tLSkoYT1wW29dKSYmaS5wdXNoKGZbb109YSk7eShudWxsLHA9W10saSxyKX1vPXAubGVuZ3RoO3doaWxlKG8tLSkoYT1wW29dKSYmLTE8KGk9eT9QKGUsYSk6c1tvXSkmJihlW2ldPSEodFtpXT1hKSl9fWVsc2UgcD1UZShwPT09dD9wLnNwbGljZShsLHAubGVuZ3RoKTpwKSx5P3kobnVsbCx0LHAscik6SC5hcHBseSh0LHApfSl9ZnVuY3Rpb24gRWUoZSl7Zm9yKHZhciBpLHQsbixyPWUubGVuZ3RoLG89Yi5yZWxhdGl2ZVtlWzBdLnR5cGVdLGE9b3x8Yi5yZWxhdGl2ZVsiICJdLHM9bz8xOjAsdT1iZShmdW5jdGlvbihlKXtyZXR1cm4gZT09PWl9LGEsITApLGw9YmUoZnVuY3Rpb24oZSl7cmV0dXJuLTE8UChpLGUpfSxhLCEwKSxjPVtmdW5jdGlvbihlLHQsbil7dmFyIHI9IW8mJihufHx0IT09dyl8fCgoaT10KS5ub2RlVHlwZT91KGUsdCxuKTpsKGUsdCxuKSk7cmV0dXJuIGk9bnVsbCxyfV07czxyO3MrKylpZih0PWIucmVsYXRpdmVbZVtzXS50eXBlXSljPVtiZSh3ZShjKSx0KV07ZWxzZXtpZigodD1iLmZpbHRlcltlW3NdLnR5cGVdLmFwcGx5KG51bGwsZVtzXS5tYXRjaGVzKSlbU10pe2ZvcihuPSsrcztuPHI7bisrKWlmKGIucmVsYXRpdmVbZVtuXS50eXBlXSlicmVhaztyZXR1cm4gQ2UoMTxzJiZ3ZShjKSwxPHMmJnhlKGUuc2xpY2UoMCxzLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09ZVtzLTJdLnR5cGU/IioiOiIifSkpLnJlcGxhY2UoJCwiJDEiKSx0LHM8biYmRWUoZS5zbGljZShzLG4pKSxuPHImJkVlKGU9ZS5zbGljZShuKSksbjxyJiZ4ZShlKSl9Yy5wdXNoKHQpfXJldHVybiB3ZShjKX1yZXR1cm4gbWUucHJvdG90eXBlPWIuZmlsdGVycz1iLnBzZXVkb3MsYi5zZXRGaWx0ZXJzPW5ldyBtZSxoPXNlLnRva2VuaXplPWZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYSxzLHUsbD14W2UrIiAiXTtpZihsKXJldHVybiB0PzA6bC5zbGljZSgwKTthPWUscz1bXSx1PWIucHJlRmlsdGVyO3doaWxlKGEpe2ZvcihvIGluIG4mJiEocj1fLmV4ZWMoYSkpfHwociYmKGE9YS5zbGljZShyWzBdLmxlbmd0aCl8fGEpLHMucHVzaChpPVtdKSksbj0hMSwocj16LmV4ZWMoYSkpJiYobj1yLnNoaWZ0KCksaS5wdXNoKHt2YWx1ZTpuLHR5cGU6clswXS5yZXBsYWNlKCQsIiAiKX0pLGE9YS5zbGljZShuLmxlbmd0aCkpLGIuZmlsdGVyKSEocj1HW29dLmV4ZWMoYSkpfHx1W29dJiYhKHI9dVtvXShyKSl8fChuPXIuc2hpZnQoKSxpLnB1c2goe3ZhbHVlOm4sdHlwZTpvLG1hdGNoZXM6cn0pLGE9YS5zbGljZShuLmxlbmd0aCkpO2lmKCFuKWJyZWFrfXJldHVybiB0P2EubGVuZ3RoOmE/c2UuZXJyb3IoZSk6eChlLHMpLnNsaWNlKDApfSxmPXNlLmNvbXBpbGU9ZnVuY3Rpb24oZSx0KXt2YXIgbix2LHksbSx4LHIsaT1bXSxvPVtdLGE9QVtlKyIgIl07aWYoIWEpe3R8fCh0PWgoZSkpLG49dC5sZW5ndGg7d2hpbGUobi0tKShhPUVlKHRbbl0pKVtTXT9pLnB1c2goYSk6by5wdXNoKGEpOyhhPUEoZSwodj1vLG09MDwoeT1pKS5sZW5ndGgseD0wPHYubGVuZ3RoLHI9ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsdT0wLGw9IjAiLGM9ZSYmW10sZj1bXSxwPXcsZD1lfHx4JiZiLmZpbmQuVEFHKCIqIixpKSxoPWsrPW51bGw9PXA/MTpNYXRoLnJhbmRvbSgpfHwuMSxnPWQubGVuZ3RoO2ZvcihpJiYodz10PT1DfHx0fHxpKTtsIT09ZyYmbnVsbCE9KG89ZFtsXSk7bCsrKXtpZih4JiZvKXthPTAsdHx8by5vd25lckRvY3VtZW50PT1DfHwoVChvKSxuPSFFKTt3aGlsZShzPXZbYSsrXSlpZihzKG8sdHx8QyxuKSl7ci5wdXNoKG8pO2JyZWFrfWkmJihrPWgpfW0mJigobz0hcyYmbykmJnUtLSxlJiZjLnB1c2gobykpfWlmKHUrPWwsbSYmbCE9PXUpe2E9MDt3aGlsZShzPXlbYSsrXSlzKGMsZix0LG4pO2lmKGUpe2lmKDA8dSl3aGlsZShsLS0pY1tsXXx8ZltsXXx8KGZbbF09cS5jYWxsKHIpKTtmPVRlKGYpfUguYXBwbHkocixmKSxpJiYhZSYmMDxmLmxlbmd0aCYmMTx1K3kubGVuZ3RoJiZzZS51bmlxdWVTb3J0KHIpfXJldHVybiBpJiYoaz1oLHc9cCksY30sbT9sZShyKTpyKSkpLnNlbGVjdG9yPWV9cmV0dXJuIGF9LGc9c2Uuc2VsZWN0PWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD0iZnVuY3Rpb24iPT10eXBlb2YgZSYmZSxjPSFyJiZoKGU9bC5zZWxlY3Rvcnx8ZSk7aWYobj1ufHxbXSwxPT09Yy5sZW5ndGgpe2lmKDI8KG89Y1swXT1jWzBdLnNsaWNlKDApKS5sZW5ndGgmJiJJRCI9PT0oYT1vWzBdKS50eXBlJiY5PT09dC5ub2RlVHlwZSYmRSYmYi5yZWxhdGl2ZVtvWzFdLnR5cGVdKXtpZighKHQ9KGIuZmluZC5JRChhLm1hdGNoZXNbMF0ucmVwbGFjZSh0ZSxuZSksdCl8fFtdKVswXSkpcmV0dXJuIG47bCYmKHQ9dC5wYXJlbnROb2RlKSxlPWUuc2xpY2Uoby5zaGlmdCgpLnZhbHVlLmxlbmd0aCl9aT1HLm5lZWRzQ29udGV4dC50ZXN0KGUpPzA6by5sZW5ndGg7d2hpbGUoaS0tKXtpZihhPW9baV0sYi5yZWxhdGl2ZVtzPWEudHlwZV0pYnJlYWs7aWYoKHU9Yi5maW5kW3NdKSYmKHI9dShhLm1hdGNoZXNbMF0ucmVwbGFjZSh0ZSxuZSksZWUudGVzdChvWzBdLnR5cGUpJiZ5ZSh0LnBhcmVudE5vZGUpfHx0KSkpe2lmKG8uc3BsaWNlKGksMSksIShlPXIubGVuZ3RoJiZ4ZShvKSkpcmV0dXJuIEguYXBwbHkobixyKSxuO2JyZWFrfX19cmV0dXJuKGx8fGYoZSxjKSkocix0LCFFLG4sIXR8fGVlLnRlc3QoZSkmJnllKHQucGFyZW50Tm9kZSl8fHQpLG59LGQuc29ydFN0YWJsZT1TLnNwbGl0KCIiKS5zb3J0KGopLmpvaW4oIiIpPT09UyxkLmRldGVjdER1cGxpY2F0ZXM9ISFsLFQoKSxkLnNvcnREZXRhY2hlZD1jZShmdW5jdGlvbihlKXtyZXR1cm4gMSZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKEMuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKSl9KSxjZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iLCIjIj09PWUuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0pfHxmZSgidHlwZXxocmVmfGhlaWdodHx3aWR0aCIsZnVuY3Rpb24oZSx0LG4pe2lmKCFuKXJldHVybiBlLmdldEF0dHJpYnV0ZSh0LCJ0eXBlIj09PXQudG9Mb3dlckNhc2UoKT8xOjIpfSksZC5hdHRyaWJ1dGVzJiZjZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9IjxpbnB1dC8+IixlLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIiIpLCIiPT09ZS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgidmFsdWUiKX0pfHxmZSgidmFsdWUiLGZ1bmN0aW9uKGUsdCxuKXtpZighbiYmImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4gZS5kZWZhdWx0VmFsdWV9KSxjZShmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIil9KXx8ZmUoUixmdW5jdGlvbihlLHQsbil7dmFyIHI7aWYoIW4pcmV0dXJuITA9PT1lW3RdP3QudG9Mb3dlckNhc2UoKToocj1lLmdldEF0dHJpYnV0ZU5vZGUodCkpJiZyLnNwZWNpZmllZD9yLnZhbHVlOm51bGx9KSxzZX0oQyk7Uy5maW5kPWQsUy5leHByPWQuc2VsZWN0b3JzLFMuZXhwclsiOiJdPVMuZXhwci5wc2V1ZG9zLFMudW5pcXVlU29ydD1TLnVuaXF1ZT1kLnVuaXF1ZVNvcnQsUy50ZXh0PWQuZ2V0VGV4dCxTLmlzWE1MRG9jPWQuaXNYTUwsUy5jb250YWlucz1kLmNvbnRhaW5zLFMuZXNjYXBlU2VsZWN0b3I9ZC5lc2NhcGU7dmFyIGg9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPVtdLGk9dm9pZCAwIT09bjt3aGlsZSgoZT1lW3RdKSYmOSE9PWUubm9kZVR5cGUpaWYoMT09PWUubm9kZVR5cGUpe2lmKGkmJlMoZSkuaXMobikpYnJlYWs7ci5wdXNoKGUpfXJldHVybiByfSxUPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtdO2U7ZT1lLm5leHRTaWJsaW5nKTE9PT1lLm5vZGVUeXBlJiZlIT09dCYmbi5wdXNoKGUpO3JldHVybiBufSxrPVMuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQ7ZnVuY3Rpb24gQShlLHQpe3JldHVybiBlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT10LnRvTG93ZXJDYXNlKCl9dmFyIE49L148KFthLXpdW15cL1wwPjpceDIwXHRcclxuXGZdKilbXHgyMFx0XHJcblxmXSpcLz8+KD86PFwvXDE+fCkkL2k7ZnVuY3Rpb24gaihlLG4scil7cmV0dXJuIG0obik/Uy5ncmVwKGUsZnVuY3Rpb24oZSx0KXtyZXR1cm4hIW4uY2FsbChlLHQsZSkhPT1yfSk6bi5ub2RlVHlwZT9TLmdyZXAoZSxmdW5jdGlvbihlKXtyZXR1cm4gZT09PW4hPT1yfSk6InN0cmluZyIhPXR5cGVvZiBuP1MuZ3JlcChlLGZ1bmN0aW9uKGUpe3JldHVybi0xPGkuY2FsbChuLGUpIT09cn0pOlMuZmlsdGVyKG4sZSxyKX1TLmZpbHRlcj1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXTtyZXR1cm4gbiYmKGU9Ijpub3QoIitlKyIpIiksMT09PXQubGVuZ3RoJiYxPT09ci5ub2RlVHlwZT9TLmZpbmQubWF0Y2hlc1NlbGVjdG9yKHIsZSk/W3JdOltdOlMuZmluZC5tYXRjaGVzKGUsUy5ncmVwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT1lLm5vZGVUeXBlfSkpfSxTLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlKXt2YXIgdCxuLHI9dGhpcy5sZW5ndGgsaT10aGlzO2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gdGhpcy5wdXNoU3RhY2soUyhlKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodD0wO3Q8cjt0KyspaWYoUy5jb250YWlucyhpW3RdLHRoaXMpKXJldHVybiEwfSkpO2ZvcihuPXRoaXMucHVzaFN0YWNrKFtdKSx0PTA7dDxyO3QrKylTLmZpbmQoZSxpW3RdLG4pO3JldHVybiAxPHI/Uy51bmlxdWVTb3J0KG4pOm59LGZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soaih0aGlzLGV8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soaih0aGlzLGV8fFtdLCEwKSl9LGlzOmZ1bmN0aW9uKGUpe3JldHVybiEhaih0aGlzLCJzdHJpbmciPT10eXBlb2YgZSYmay50ZXN0KGUpP1MoZSk6ZXx8W10sITEpLmxlbmd0aH19KTt2YXIgRCxxPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKykpJC87KFMuZm4uaW5pdD1mdW5jdGlvbihlLHQsbil7dmFyIHIsaTtpZighZSlyZXR1cm4gdGhpcztpZihuPW58fEQsInN0cmluZyI9PXR5cGVvZiBlKXtpZighKHI9IjwiPT09ZVswXSYmIj4iPT09ZVtlLmxlbmd0aC0xXSYmMzw9ZS5sZW5ndGg/W251bGwsZSxudWxsXTpxLmV4ZWMoZSkpfHwhclsxXSYmdClyZXR1cm4hdHx8dC5qcXVlcnk/KHR8fG4pLmZpbmQoZSk6dGhpcy5jb25zdHJ1Y3Rvcih0KS5maW5kKGUpO2lmKHJbMV0pe2lmKHQ9dCBpbnN0YW5jZW9mIFM/dFswXTp0LFMubWVyZ2UodGhpcyxTLnBhcnNlSFRNTChyWzFdLHQmJnQubm9kZVR5cGU/dC5vd25lckRvY3VtZW50fHx0OkUsITApKSxOLnRlc3QoclsxXSkmJlMuaXNQbGFpbk9iamVjdCh0KSlmb3IociBpbiB0KW0odGhpc1tyXSk/dGhpc1tyXSh0W3JdKTp0aGlzLmF0dHIocix0W3JdKTtyZXR1cm4gdGhpc31yZXR1cm4oaT1FLmdldEVsZW1lbnRCeUlkKHJbMl0pKSYmKHRoaXNbMF09aSx0aGlzLmxlbmd0aD0xKSx0aGlzfXJldHVybiBlLm5vZGVUeXBlPyh0aGlzWzBdPWUsdGhpcy5sZW5ndGg9MSx0aGlzKTptKGUpP3ZvaWQgMCE9PW4ucmVhZHk/bi5yZWFkeShlKTplKFMpOlMubWFrZUFycmF5KGUsdGhpcyl9KS5wcm90b3R5cGU9Uy5mbixEPVMoRSk7dmFyIEw9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sSD17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTtmdW5jdGlvbiBPKGUsdCl7d2hpbGUoKGU9ZVt0XSkmJjEhPT1lLm5vZGVUeXBlKTtyZXR1cm4gZX1TLmZuLmV4dGVuZCh7aGFzOmZ1bmN0aW9uKGUpe3ZhciB0PVMoZSx0aGlzKSxuPXQubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8bjtlKyspaWYoUy5jb250YWlucyh0aGlzLHRbZV0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTAsaT10aGlzLmxlbmd0aCxvPVtdLGE9InN0cmluZyIhPXR5cGVvZiBlJiZTKGUpO2lmKCFrLnRlc3QoZSkpZm9yKDtyPGk7cisrKWZvcihuPXRoaXNbcl07biYmbiE9PXQ7bj1uLnBhcmVudE5vZGUpaWYobi5ub2RlVHlwZTwxMSYmKGE/LTE8YS5pbmRleChuKToxPT09bi5ub2RlVHlwZSYmUy5maW5kLm1hdGNoZXNTZWxlY3RvcihuLGUpKSl7by5wdXNoKG4pO2JyZWFrfXJldHVybiB0aGlzLnB1c2hTdGFjaygxPG8ubGVuZ3RoP1MudW5pcXVlU29ydChvKTpvKX0saW5kZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/InN0cmluZyI9PXR5cGVvZiBlP2kuY2FsbChTKGUpLHRoaXNbMF0pOmkuY2FsbCh0aGlzLGUuanF1ZXJ5P2VbMF06ZSk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy51bmlxdWVTb3J0KFMubWVyZ2UodGhpcy5nZXQoKSxTKGUsdCkpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWU/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoZSkpfX0pLFMuZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdCYmMTEhPT10Lm5vZGVUeXBlP3Q6bnVsbH0scGFyZW50czpmdW5jdGlvbihlKXtyZXR1cm4gaChlLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGgoZSwicGFyZW50Tm9kZSIsbil9LG5leHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIE8oZSwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihlKXtyZXR1cm4gTyhlLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihlKXtyZXR1cm4gaChlLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGUpe3JldHVybiBoKGUsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBoKGUsIm5leHRTaWJsaW5nIixuKX0scHJldlVudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gaChlLCJwcmV2aW91c1NpYmxpbmciLG4pfSxzaWJsaW5nczpmdW5jdGlvbihlKXtyZXR1cm4gVCgoZS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxlKX0sY2hpbGRyZW46ZnVuY3Rpb24oZSl7cmV0dXJuIFQoZS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUuY29udGVudERvY3VtZW50JiZyKGUuY29udGVudERvY3VtZW50KT9lLmNvbnRlbnREb2N1bWVudDooQShlLCJ0ZW1wbGF0ZSIpJiYoZT1lLmNvbnRlbnR8fGUpLFMubWVyZ2UoW10sZS5jaGlsZE5vZGVzKSl9fSxmdW5jdGlvbihyLGkpe1MuZm5bcl09ZnVuY3Rpb24oZSx0KXt2YXIgbj1TLm1hcCh0aGlzLGksZSk7cmV0dXJuIlVudGlsIiE9PXIuc2xpY2UoLTUpJiYodD1lKSx0JiYic3RyaW5nIj09dHlwZW9mIHQmJihuPVMuZmlsdGVyKHQsbikpLDE8dGhpcy5sZW5ndGgmJihIW3JdfHxTLnVuaXF1ZVNvcnQobiksTC50ZXN0KHIpJiZuLnJldmVyc2UoKSksdGhpcy5wdXNoU3RhY2sobil9fSk7dmFyIFA9L1teXHgyMFx0XHJcblxmXSsvZztmdW5jdGlvbiBSKGUpe3JldHVybiBlfWZ1bmN0aW9uIE0oZSl7dGhyb3cgZX1mdW5jdGlvbiBJKGUsdCxuLHIpe3ZhciBpO3RyeXtlJiZtKGk9ZS5wcm9taXNlKT9pLmNhbGwoZSkuZG9uZSh0KS5mYWlsKG4pOmUmJm0oaT1lLnRoZW4pP2kuY2FsbChlLHQsbik6dC5hcHBseSh2b2lkIDAsW2VdLnNsaWNlKHIpKX1jYXRjaChlKXtuLmFwcGx5KHZvaWQgMCxbZV0pfX1TLkNhbGxiYWNrcz1mdW5jdGlvbihyKXt2YXIgZSxuO3I9InN0cmluZyI9PXR5cGVvZiByPyhlPXIsbj17fSxTLmVhY2goZS5tYXRjaChQKXx8W10sZnVuY3Rpb24oZSx0KXtuW3RdPSEwfSksbik6Uy5leHRlbmQoe30scik7dmFyIGksdCxvLGEscz1bXSx1PVtdLGw9LTEsYz1mdW5jdGlvbigpe2ZvcihhPWF8fHIub25jZSxvPWk9ITA7dS5sZW5ndGg7bD0tMSl7dD11LnNoaWZ0KCk7d2hpbGUoKytsPHMubGVuZ3RoKSExPT09c1tsXS5hcHBseSh0WzBdLHRbMV0pJiZyLnN0b3BPbkZhbHNlJiYobD1zLmxlbmd0aCx0PSExKX1yLm1lbW9yeXx8KHQ9ITEpLGk9ITEsYSYmKHM9dD9bXToiIil9LGY9e2FkZDpmdW5jdGlvbigpe3JldHVybiBzJiYodCYmIWkmJihsPXMubGVuZ3RoLTEsdS5wdXNoKHQpKSxmdW5jdGlvbiBuKGUpe1MuZWFjaChlLGZ1bmN0aW9uKGUsdCl7bSh0KT9yLnVuaXF1ZSYmZi5oYXModCl8fHMucHVzaCh0KTp0JiZ0Lmxlbmd0aCYmInN0cmluZyIhPT13KHQpJiZuKHQpfSl9KGFyZ3VtZW50cyksdCYmIWkmJmMoKSksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIFMuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oZSx0KXt2YXIgbjt3aGlsZSgtMTwobj1TLmluQXJyYXkodCxzLG4pKSlzLnNwbGljZShuLDEpLG48PWwmJmwtLX0pLHRoaXN9LGhhczpmdW5jdGlvbihlKXtyZXR1cm4gZT8tMTxTLmluQXJyYXkoZSxzKTowPHMubGVuZ3RofSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBzJiYocz1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBhPXU9W10scz10PSIiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIXN9LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gYT11PVtdLHR8fGl8fChzPXQ9IiIpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiEhYX0sZmlyZVdpdGg6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXx8KHQ9W2UsKHQ9dHx8W10pLnNsaWNlP3Quc2xpY2UoKTp0XSx1LnB1c2godCksaXx8YygpKSx0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7cmV0dXJuIGYuZmlyZVdpdGgodGhpcyxhcmd1bWVudHMpLHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISFvfX07cmV0dXJuIGZ9LFMuZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbihlKXt2YXIgbz1bWyJub3RpZnkiLCJwcm9ncmVzcyIsUy5DYWxsYmFja3MoIm1lbW9yeSIpLFMuQ2FsbGJhY2tzKCJtZW1vcnkiKSwyXSxbInJlc29sdmUiLCJkb25lIixTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwwLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsUy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksUy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMSwicmVqZWN0ZWQiXV0saT0icGVuZGluZyIsYT17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHMuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSwiY2F0Y2giOmZ1bmN0aW9uKGUpe3JldHVybiBhLnRoZW4obnVsbCxlKX0scGlwZTpmdW5jdGlvbigpe3ZhciBpPWFyZ3VtZW50cztyZXR1cm4gUy5EZWZlcnJlZChmdW5jdGlvbihyKXtTLmVhY2gobyxmdW5jdGlvbihlLHQpe3ZhciBuPW0oaVt0WzRdXSkmJmlbdFs0XV07c1t0WzFdXShmdW5jdGlvbigpe3ZhciBlPW4mJm4uYXBwbHkodGhpcyxhcmd1bWVudHMpO2UmJm0oZS5wcm9taXNlKT9lLnByb21pc2UoKS5wcm9ncmVzcyhyLm5vdGlmeSkuZG9uZShyLnJlc29sdmUpLmZhaWwoci5yZWplY3QpOnJbdFswXSsiV2l0aCJdKHRoaXMsbj9bZV06YXJndW1lbnRzKX0pfSksaT1udWxsfSkucHJvbWlzZSgpfSx0aGVuOmZ1bmN0aW9uKHQsbixyKXt2YXIgdT0wO2Z1bmN0aW9uIGwoaSxvLGEscyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcyxyPWFyZ3VtZW50cyxlPWZ1bmN0aW9uKCl7dmFyIGUsdDtpZighKGk8dSkpe2lmKChlPWEuYXBwbHkobixyKSk9PT1vLnByb21pc2UoKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGVuYWJsZSBzZWxmLXJlc29sdXRpb24iKTt0PWUmJigib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSYmZS50aGVuLG0odCk/cz90LmNhbGwoZSxsKHUsbyxSLHMpLGwodSxvLE0scykpOih1KyssdC5jYWxsKGUsbCh1LG8sUixzKSxsKHUsbyxNLHMpLGwodSxvLFIsby5ub3RpZnlXaXRoKSkpOihhIT09UiYmKG49dm9pZCAwLHI9W2VdKSwoc3x8by5yZXNvbHZlV2l0aCkobixyKSl9fSx0PXM/ZTpmdW5jdGlvbigpe3RyeXtlKCl9Y2F0Y2goZSl7Uy5EZWZlcnJlZC5leGNlcHRpb25Ib29rJiZTLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2soZSx0LnN0YWNrVHJhY2UpLHU8PWkrMSYmKGEhPT1NJiYobj12b2lkIDAscj1bZV0pLG8ucmVqZWN0V2l0aChuLHIpKX19O2k/dCgpOihTLkRlZmVycmVkLmdldFN0YWNrSG9vayYmKHQuc3RhY2tUcmFjZT1TLkRlZmVycmVkLmdldFN0YWNrSG9vaygpKSxDLnNldFRpbWVvdXQodCkpfX1yZXR1cm4gUy5EZWZlcnJlZChmdW5jdGlvbihlKXtvWzBdWzNdLmFkZChsKDAsZSxtKHIpP3I6UixlLm5vdGlmeVdpdGgpKSxvWzFdWzNdLmFkZChsKDAsZSxtKHQpP3Q6UikpLG9bMl1bM10uYWRkKGwoMCxlLG0obik/bjpNKSl9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWU/Uy5leHRlbmQoZSxhKTphfX0scz17fTtyZXR1cm4gUy5lYWNoKG8sZnVuY3Rpb24oZSx0KXt2YXIgbj10WzJdLHI9dFs1XTthW3RbMV1dPW4uYWRkLHImJm4uYWRkKGZ1bmN0aW9uKCl7aT1yfSxvWzMtZV1bMl0uZGlzYWJsZSxvWzMtZV1bM10uZGlzYWJsZSxvWzBdWzJdLmxvY2ssb1swXVszXS5sb2NrKSxuLmFkZCh0WzNdLmZpcmUpLHNbdFswXV09ZnVuY3Rpb24oKXtyZXR1cm4gc1t0WzBdKyJXaXRoIl0odGhpcz09PXM/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxzW3RbMF0rIldpdGgiXT1uLmZpcmVXaXRofSksYS5wcm9taXNlKHMpLGUmJmUuY2FsbChzLHMpLHN9LHdoZW46ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aCx0PW4scj1BcnJheSh0KSxpPXMuY2FsbChhcmd1bWVudHMpLG89Uy5EZWZlcnJlZCgpLGE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JbdF09dGhpcyxpW3RdPTE8YXJndW1lbnRzLmxlbmd0aD9zLmNhbGwoYXJndW1lbnRzKTplLC0tbnx8by5yZXNvbHZlV2l0aChyLGkpfX07aWYobjw9MSYmKEkoZSxvLmRvbmUoYSh0KSkucmVzb2x2ZSxvLnJlamVjdCwhbiksInBlbmRpbmciPT09by5zdGF0ZSgpfHxtKGlbdF0mJmlbdF0udGhlbikpKXJldHVybiBvLnRoZW4oKTt3aGlsZSh0LS0pSShpW3RdLGEodCksby5yZWplY3QpO3JldHVybiBvLnByb21pc2UoKX19KTt2YXIgVz0vXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLztTLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2s9ZnVuY3Rpb24oZSx0KXtDLmNvbnNvbGUmJkMuY29uc29sZS53YXJuJiZlJiZXLnRlc3QoZS5uYW1lKSYmQy5jb25zb2xlLndhcm4oImpRdWVyeS5EZWZlcnJlZCBleGNlcHRpb246ICIrZS5tZXNzYWdlLGUuc3RhY2ssdCl9LFMucmVhZHlFeGNlcHRpb249ZnVuY3Rpb24oZSl7Qy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfTt2YXIgRj1TLkRlZmVycmVkKCk7ZnVuY3Rpb24gQigpe0UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsQiksQy5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixCKSxTLnJlYWR5KCl9Uy5mbi5yZWFkeT1mdW5jdGlvbihlKXtyZXR1cm4gRi50aGVuKGUpWyJjYXRjaCJdKGZ1bmN0aW9uKGUpe1MucmVhZHlFeGNlcHRpb24oZSl9KSx0aGlzfSxTLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxyZWFkeTpmdW5jdGlvbihlKXsoITA9PT1lPy0tUy5yZWFkeVdhaXQ6Uy5pc1JlYWR5KXx8KFMuaXNSZWFkeT0hMCkhPT1lJiYwPC0tUy5yZWFkeVdhaXR8fEYucmVzb2x2ZVdpdGgoRSxbU10pfX0pLFMucmVhZHkudGhlbj1GLnRoZW4sImNvbXBsZXRlIj09PUUucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09RS5yZWFkeVN0YXRlJiYhRS5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw/Qy5zZXRUaW1lb3V0KFMucmVhZHkpOihFLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEIpLEMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsQikpO3ZhciAkPWZ1bmN0aW9uKGUsdCxuLHIsaSxvLGEpe3ZhciBzPTAsdT1lLmxlbmd0aCxsPW51bGw9PW47aWYoIm9iamVjdCI9PT13KG4pKWZvcihzIGluIGk9ITAsbikkKGUsdCxzLG5bc10sITAsbyxhKTtlbHNlIGlmKHZvaWQgMCE9PXImJihpPSEwLG0ocil8fChhPSEwKSxsJiYoYT8odC5jYWxsKGUsciksdD1udWxsKToobD10LHQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBsLmNhbGwoUyhlKSxuKX0pKSx0KSlmb3IoO3M8dTtzKyspdChlW3NdLG4sYT9yOnIuY2FsbChlW3NdLHMsdChlW3NdLG4pKSk7cmV0dXJuIGk/ZTpsP3QuY2FsbChlKTp1P3QoZVswXSxuKTpvfSxfPS9eLW1zLS8sej0vLShbYS16XSkvZztmdW5jdGlvbiBVKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBYKGUpe3JldHVybiBlLnJlcGxhY2UoXywibXMtIikucmVwbGFjZSh6LFUpfXZhciBWPWZ1bmN0aW9uKGUpe3JldHVybiAxPT09ZS5ub2RlVHlwZXx8OT09PWUubm9kZVR5cGV8fCErZS5ub2RlVHlwZX07ZnVuY3Rpb24gRygpe3RoaXMuZXhwYW5kbz1TLmV4cGFuZG8rRy51aWQrK31HLnVpZD0xLEcucHJvdG90eXBlPXtjYWNoZTpmdW5jdGlvbihlKXt2YXIgdD1lW3RoaXMuZXhwYW5kb107cmV0dXJuIHR8fCh0PXt9LFYoZSkmJihlLm5vZGVUeXBlP2VbdGhpcy5leHBhbmRvXT10Ok9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHRoaXMuZXhwYW5kbyx7dmFsdWU6dCxjb25maWd1cmFibGU6ITB9KSkpLHR9LHNldDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaT10aGlzLmNhY2hlKGUpO2lmKCJzdHJpbmciPT10eXBlb2YgdClpW1godCldPW47ZWxzZSBmb3IociBpbiB0KWlbWChyKV09dFtyXTtyZXR1cm4gaX0sZ2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQ/dGhpcy5jYWNoZShlKTplW3RoaXMuZXhwYW5kb10mJmVbdGhpcy5leHBhbmRvXVtYKHQpXX0sYWNjZXNzOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdm9pZCAwPT09dHx8dCYmInN0cmluZyI9PXR5cGVvZiB0JiZ2b2lkIDA9PT1uP3RoaXMuZ2V0KGUsdCk6KHRoaXMuc2V0KGUsdCxuKSx2b2lkIDAhPT1uP246dCl9LHJlbW92ZTpmdW5jdGlvbihlLHQpe3ZhciBuLHI9ZVt0aGlzLmV4cGFuZG9dO2lmKHZvaWQgMCE9PXIpe2lmKHZvaWQgMCE9PXQpe249KHQ9QXJyYXkuaXNBcnJheSh0KT90Lm1hcChYKToodD1YKHQpKWluIHI/W3RdOnQubWF0Y2goUCl8fFtdKS5sZW5ndGg7d2hpbGUobi0tKWRlbGV0ZSByW3Rbbl1dfSh2b2lkIDA9PT10fHxTLmlzRW1wdHlPYmplY3QocikpJiYoZS5ub2RlVHlwZT9lW3RoaXMuZXhwYW5kb109dm9pZCAwOmRlbGV0ZSBlW3RoaXMuZXhwYW5kb10pfX0saGFzRGF0YTpmdW5jdGlvbihlKXt2YXIgdD1lW3RoaXMuZXhwYW5kb107cmV0dXJuIHZvaWQgMCE9PXQmJiFTLmlzRW1wdHlPYmplY3QodCl9fTt2YXIgWT1uZXcgRyxRPW5ldyBHLEo9L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxLPS9bQS1aXS9nO2Z1bmN0aW9uIFooZSx0LG4pe3ZhciByLGk7aWYodm9pZCAwPT09biYmMT09PWUubm9kZVR5cGUpaWYocj0iZGF0YS0iK3QucmVwbGFjZShLLCItJCYiKS50b0xvd2VyQ2FzZSgpLCJzdHJpbmciPT10eXBlb2Yobj1lLmdldEF0dHJpYnV0ZShyKSkpe3RyeXtuPSJ0cnVlIj09PShpPW4pfHwiZmFsc2UiIT09aSYmKCJudWxsIj09PWk/bnVsbDppPT09K2krIiI/K2k6Si50ZXN0KGkpP0pTT04ucGFyc2UoaSk6aSl9Y2F0Y2goZSl7fVEuc2V0KGUsdCxuKX1lbHNlIG49dm9pZCAwO3JldHVybiBufVMuZXh0ZW5kKHtoYXNEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiBRLmhhc0RhdGEoZSl8fFkuaGFzRGF0YShlKX0sZGF0YTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIFEuYWNjZXNzKGUsdCxuKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe1EucmVtb3ZlKGUsdCl9LF9kYXRhOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gWS5hY2Nlc3MoZSx0LG4pfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe1kucmVtb3ZlKGUsdCl9fSksUy5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24obixlKXt2YXIgdCxyLGksbz10aGlzWzBdLGE9byYmby5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PW4pe2lmKHRoaXMubGVuZ3RoJiYoaT1RLmdldChvKSwxPT09by5ub2RlVHlwZSYmIVkuZ2V0KG8sImhhc0RhdGFBdHRycyIpKSl7dD1hLmxlbmd0aDt3aGlsZSh0LS0pYVt0XSYmMD09PShyPWFbdF0ubmFtZSkuaW5kZXhPZigiZGF0YS0iKSYmKHI9WChyLnNsaWNlKDUpKSxaKG8scixpW3JdKSk7WS5zZXQobywiaGFzRGF0YUF0dHJzIiwhMCl9cmV0dXJuIGl9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBuP3RoaXMuZWFjaChmdW5jdGlvbigpe1Euc2V0KHRoaXMsbil9KTokKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ7aWYobyYmdm9pZCAwPT09ZSlyZXR1cm4gdm9pZCAwIT09KHQ9US5nZXQobyxuKSk/dDp2b2lkIDAhPT0odD1aKG8sbikpP3Q6dm9pZCAwO3RoaXMuZWFjaChmdW5jdGlvbigpe1Euc2V0KHRoaXMsbixlKX0pfSxudWxsLGUsMTxhcmd1bWVudHMubGVuZ3RoLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtRLnJlbW92ZSh0aGlzLGUpfSl9fSksUy5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZihlKXJldHVybiB0PSh0fHwiZngiKSsicXVldWUiLHI9WS5nZXQoZSx0KSxuJiYoIXJ8fEFycmF5LmlzQXJyYXkobik/cj1ZLmFjY2VzcyhlLHQsUy5tYWtlQXJyYXkobikpOnIucHVzaChuKSkscnx8W119LGRlcXVldWU6ZnVuY3Rpb24oZSx0KXt0PXR8fCJmeCI7dmFyIG49Uy5xdWV1ZShlLHQpLHI9bi5sZW5ndGgsaT1uLnNoaWZ0KCksbz1TLl9xdWV1ZUhvb2tzKGUsdCk7ImlucHJvZ3Jlc3MiPT09aSYmKGk9bi5zaGlmdCgpLHItLSksaSYmKCJmeCI9PT10JiZuLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgby5zdG9wLGkuY2FsbChlLGZ1bmN0aW9uKCl7Uy5kZXF1ZXVlKGUsdCl9LG8pKSwhciYmbyYmby5lbXB0eS5maXJlKCl9LF9xdWV1ZUhvb2tzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dCsicXVldWVIb29rcyI7cmV0dXJuIFkuZ2V0KGUsbil8fFkuYWNjZXNzKGUsbix7ZW1wdHk6Uy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7WS5yZW1vdmUoZSxbdCsicXVldWUiLG5dKX0pfSl9fSksUy5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKHQsbil7dmFyIGU9MjtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihuPXQsdD0iZngiLGUtLSksYXJndW1lbnRzLmxlbmd0aDxlP1MucXVldWUodGhpc1swXSx0KTp2b2lkIDA9PT1uP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9Uy5xdWV1ZSh0aGlzLHQsbik7Uy5fcXVldWVIb29rcyh0aGlzLHQpLCJmeCI9PT10JiYiaW5wcm9ncmVzcyIhPT1lWzBdJiZTLmRlcXVldWUodGhpcyx0KX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtTLmRlcXVldWUodGhpcyxlKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnF1ZXVlKGV8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0xLGk9Uy5EZWZlcnJlZCgpLG89dGhpcyxhPXRoaXMubGVuZ3RoLHM9ZnVuY3Rpb24oKXstLXJ8fGkucmVzb2x2ZVdpdGgobyxbb10pfTsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLGU9ZXx8ImZ4Ijt3aGlsZShhLS0pKG49WS5nZXQob1thXSxlKyJxdWV1ZUhvb2tzIikpJiZuLmVtcHR5JiYocisrLG4uZW1wdHkuYWRkKHMpKTtyZXR1cm4gcygpLGkucHJvbWlzZSh0KX19KTt2YXIgZWU9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsdGU9bmV3IFJlZ0V4cCgiXig/OihbKy1dKT18KSgiK2VlKyIpKFthLXolXSopJCIsImkiKSxuZT1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLHJlPUUuZG9jdW1lbnRFbGVtZW50LGllPWZ1bmN0aW9uKGUpe3JldHVybiBTLmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKX0sb2U9e2NvbXBvc2VkOiEwfTtyZS5nZXRSb290Tm9kZSYmKGllPWZ1bmN0aW9uKGUpe3JldHVybiBTLmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKXx8ZS5nZXRSb290Tm9kZShvZSk9PT1lLm93bmVyRG9jdW1lbnR9KTt2YXIgYWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ibm9uZSI9PT0oZT10fHxlKS5zdHlsZS5kaXNwbGF5fHwiIj09PWUuc3R5bGUuZGlzcGxheSYmaWUoZSkmJiJub25lIj09PVMuY3NzKGUsImRpc3BsYXkiKX07ZnVuY3Rpb24gc2UoZSx0LG4scil7dmFyIGksbyxhPTIwLHM9cj9mdW5jdGlvbigpe3JldHVybiByLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiBTLmNzcyhlLHQsIiIpfSx1PXMoKSxsPW4mJm5bM118fChTLmNzc051bWJlclt0XT8iIjoicHgiKSxjPWUubm9kZVR5cGUmJihTLmNzc051bWJlclt0XXx8InB4IiE9PWwmJit1KSYmdGUuZXhlYyhTLmNzcyhlLHQpKTtpZihjJiZjWzNdIT09bCl7dS89MixsPWx8fGNbM10sYz0rdXx8MTt3aGlsZShhLS0pUy5zdHlsZShlLHQsYytsKSwoMS1vKSooMS0obz1zKCkvdXx8LjUpKTw9MCYmKGE9MCksYy89bztjKj0yLFMuc3R5bGUoZSx0LGMrbCksbj1ufHxbXX1yZXR1cm4gbiYmKGM9K2N8fCt1fHwwLGk9blsxXT9jKyhuWzFdKzEpKm5bMl06K25bMl0sciYmKHIudW5pdD1sLHIuc3RhcnQ9YyxyLmVuZD1pKSksaX12YXIgdWU9e307ZnVuY3Rpb24gbGUoZSx0KXtmb3IodmFyIG4scixpLG8sYSxzLHUsbD1bXSxjPTAsZj1lLmxlbmd0aDtjPGY7YysrKShyPWVbY10pLnN0eWxlJiYobj1yLnN0eWxlLmRpc3BsYXksdD8oIm5vbmUiPT09biYmKGxbY109WS5nZXQociwiZGlzcGxheSIpfHxudWxsLGxbY118fChyLnN0eWxlLmRpc3BsYXk9IiIpKSwiIj09PXIuc3R5bGUuZGlzcGxheSYmYWUocikmJihsW2NdPSh1PWE9bz12b2lkIDAsYT0oaT1yKS5vd25lckRvY3VtZW50LHM9aS5ub2RlTmFtZSwodT11ZVtzXSl8fChvPWEuYm9keS5hcHBlbmRDaGlsZChhLmNyZWF0ZUVsZW1lbnQocykpLHU9Uy5jc3MobywiZGlzcGxheSIpLG8ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKSwibm9uZSI9PT11JiYodT0iYmxvY2siKSx1ZVtzXT11KSkpKToibm9uZSIhPT1uJiYobFtjXT0ibm9uZSIsWS5zZXQociwiZGlzcGxheSIsbikpKTtmb3IoYz0wO2M8ZjtjKyspbnVsbCE9bFtjXSYmKGVbY10uc3R5bGUuZGlzcGxheT1sW2NdKTtyZXR1cm4gZX1TLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGUpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGU/ZT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXthZSh0aGlzKT9TKHRoaXMpLnNob3coKTpTKHRoaXMpLmhpZGUoKX0pfX0pO3ZhciBjZSxmZSxwZT0vXig/OmNoZWNrYm94fHJhZGlvKSQvaSxkZT0vPChbYS16XVteXC9cMD5ceDIwXHRcclxuXGZdKikvaSxoZT0vXiR8Xm1vZHVsZSR8XC8oPzpqYXZhfGVjbWEpc2NyaXB0L2k7Y2U9RS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkuYXBwZW5kQ2hpbGQoRS5jcmVhdGVFbGVtZW50KCJkaXYiKSksKGZlPUUuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJ0eXBlIiwicmFkaW8iKSxmZS5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCJjaGVja2VkIiksZmUuc2V0QXR0cmlidXRlKCJuYW1lIiwidCIpLGNlLmFwcGVuZENoaWxkKGZlKSx5LmNoZWNrQ2xvbmU9Y2UuY2xvbmVOb2RlKCEwKS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5jaGVja2VkLGNlLmlubmVySFRNTD0iPHRleHRhcmVhPng8L3RleHRhcmVhPiIseS5ub0Nsb25lQ2hlY2tlZD0hIWNlLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZSxjZS5pbm5lckhUTUw9IjxvcHRpb24+PC9vcHRpb24+Iix5Lm9wdGlvbj0hIWNlLmxhc3RDaGlsZDt2YXIgZ2U9e3RoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfTtmdW5jdGlvbiB2ZShlLHQpe3ZhciBuO3JldHVybiBuPSJ1bmRlZmluZWQiIT10eXBlb2YgZS5nZXRFbGVtZW50c0J5VGFnTmFtZT9lLmdldEVsZW1lbnRzQnlUYWdOYW1lKHR8fCIqIik6InVuZGVmaW5lZCIhPXR5cGVvZiBlLnF1ZXJ5U2VsZWN0b3JBbGw/ZS5xdWVyeVNlbGVjdG9yQWxsKHR8fCIqIik6W10sdm9pZCAwPT09dHx8dCYmQShlLHQpP1MubWVyZ2UoW2VdLG4pOm59ZnVuY3Rpb24geWUoZSx0KXtmb3IodmFyIG49MCxyPWUubGVuZ3RoO248cjtuKyspWS5zZXQoZVtuXSwiZ2xvYmFsRXZhbCIsIXR8fFkuZ2V0KHRbbl0sImdsb2JhbEV2YWwiKSl9Z2UudGJvZHk9Z2UudGZvb3Q9Z2UuY29sZ3JvdXA9Z2UuY2FwdGlvbj1nZS50aGVhZCxnZS50aD1nZS50ZCx5Lm9wdGlvbnx8KGdlLm9wdGdyb3VwPWdlLm9wdGlvbj1bMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdKTt2YXIgbWU9Lzx8JiM/XHcrOy87ZnVuY3Rpb24geGUoZSx0LG4scixpKXtmb3IodmFyIG8sYSxzLHUsbCxjLGY9dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkscD1bXSxkPTAsaD1lLmxlbmd0aDtkPGg7ZCsrKWlmKChvPWVbZF0pfHwwPT09bylpZigib2JqZWN0Ij09PXcobykpUy5tZXJnZShwLG8ubm9kZVR5cGU/W29dOm8pO2Vsc2UgaWYobWUudGVzdChvKSl7YT1hfHxmLmFwcGVuZENoaWxkKHQuY3JlYXRlRWxlbWVudCgiZGl2IikpLHM9KGRlLmV4ZWMobyl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCksdT1nZVtzXXx8Z2UuX2RlZmF1bHQsYS5pbm5lckhUTUw9dVsxXStTLmh0bWxQcmVmaWx0ZXIobykrdVsyXSxjPXVbMF07d2hpbGUoYy0tKWE9YS5sYXN0Q2hpbGQ7Uy5tZXJnZShwLGEuY2hpbGROb2RlcyksKGE9Zi5maXJzdENoaWxkKS50ZXh0Q29udGVudD0iIn1lbHNlIHAucHVzaCh0LmNyZWF0ZVRleHROb2RlKG8pKTtmLnRleHRDb250ZW50PSIiLGQ9MDt3aGlsZShvPXBbZCsrXSlpZihyJiYtMTxTLmluQXJyYXkobyxyKSlpJiZpLnB1c2gobyk7ZWxzZSBpZihsPWllKG8pLGE9dmUoZi5hcHBlbmRDaGlsZChvKSwic2NyaXB0IiksbCYmeWUoYSksbil7Yz0wO3doaWxlKG89YVtjKytdKWhlLnRlc3Qoby50eXBlfHwiIikmJm4ucHVzaChvKX1yZXR1cm4gZn12YXIgYmU9L14oW14uXSopKD86XC4oLispfCkvO2Z1bmN0aW9uIHdlKCl7cmV0dXJuITB9ZnVuY3Rpb24gVGUoKXtyZXR1cm4hMX1mdW5jdGlvbiBDZShlLHQpe3JldHVybiBlPT09ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIEUuYWN0aXZlRWxlbWVudH1jYXRjaChlKXt9fSgpPT0oImZvY3VzIj09PXQpfWZ1bmN0aW9uIEVlKGUsdCxuLHIsaSxvKXt2YXIgYSxzO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7Zm9yKHMgaW4ic3RyaW5nIiE9dHlwZW9mIG4mJihyPXJ8fG4sbj12b2lkIDApLHQpRWUoZSxzLG4scix0W3NdLG8pO3JldHVybiBlfWlmKG51bGw9PXImJm51bGw9PWk/KGk9bixyPW49dm9pZCAwKTpudWxsPT1pJiYoInN0cmluZyI9PXR5cGVvZiBuPyhpPXIscj12b2lkIDApOihpPXIscj1uLG49dm9pZCAwKSksITE9PT1pKWk9VGU7ZWxzZSBpZighaSlyZXR1cm4gZTtyZXR1cm4gMT09PW8mJihhPWksKGk9ZnVuY3Rpb24oZSl7cmV0dXJuIFMoKS5vZmYoZSksYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5ndWlkPWEuZ3VpZHx8KGEuZ3VpZD1TLmd1aWQrKykpLGUuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQuYWRkKHRoaXMsdCxpLHIsbil9KX1mdW5jdGlvbiBTZShlLGksbyl7bz8oWS5zZXQoZSxpLCExKSxTLmV2ZW50LmFkZChlLGkse25hbWVzcGFjZTohMSxoYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj1ZLmdldCh0aGlzLGkpO2lmKDEmZS5pc1RyaWdnZXImJnRoaXNbaV0pe2lmKHIubGVuZ3RoKShTLmV2ZW50LnNwZWNpYWxbaV18fHt9KS5kZWxlZ2F0ZVR5cGUmJmUuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZihyPXMuY2FsbChhcmd1bWVudHMpLFkuc2V0KHRoaXMsaSxyKSx0PW8odGhpcyxpKSx0aGlzW2ldKCksciE9PShuPVkuZ2V0KHRoaXMsaSkpfHx0P1kuc2V0KHRoaXMsaSwhMSk6bj17fSxyIT09bilyZXR1cm4gZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksbiYmbi52YWx1ZX1lbHNlIHIubGVuZ3RoJiYoWS5zZXQodGhpcyxpLHt2YWx1ZTpTLmV2ZW50LnRyaWdnZXIoUy5leHRlbmQoclswXSxTLkV2ZW50LnByb3RvdHlwZSksci5zbGljZSgxKSx0aGlzKX0pLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfX0pKTp2b2lkIDA9PT1ZLmdldChlLGkpJiZTLmV2ZW50LmFkZChlLGksd2UpfVMuZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24odCxlLG4scixpKXt2YXIgbyxhLHMsdSxsLGMsZixwLGQsaCxnLHY9WS5nZXQodCk7aWYoVih0KSl7bi5oYW5kbGVyJiYobj0obz1uKS5oYW5kbGVyLGk9by5zZWxlY3RvciksaSYmUy5maW5kLm1hdGNoZXNTZWxlY3RvcihyZSxpKSxuLmd1aWR8fChuLmd1aWQ9Uy5ndWlkKyspLCh1PXYuZXZlbnRzKXx8KHU9di5ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSksKGE9di5oYW5kbGUpfHwoYT12LmhhbmRsZT1mdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFMmJlMuZXZlbnQudHJpZ2dlcmVkIT09ZS50eXBlP1MuZXZlbnQuZGlzcGF0Y2guYXBwbHkodCxhcmd1bWVudHMpOnZvaWQgMH0pLGw9KGU9KGV8fCIiKS5tYXRjaChQKXx8WyIiXSkubGVuZ3RoO3doaWxlKGwtLSlkPWc9KHM9YmUuZXhlYyhlW2xdKXx8W10pWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkJiYoZj1TLmV2ZW50LnNwZWNpYWxbZF18fHt9LGQ9KGk/Zi5kZWxlZ2F0ZVR5cGU6Zi5iaW5kVHlwZSl8fGQsZj1TLmV2ZW50LnNwZWNpYWxbZF18fHt9LGM9Uy5leHRlbmQoe3R5cGU6ZCxvcmlnVHlwZTpnLGRhdGE6cixoYW5kbGVyOm4sZ3VpZDpuLmd1aWQsc2VsZWN0b3I6aSxuZWVkc0NvbnRleHQ6aSYmUy5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGkpLG5hbWVzcGFjZTpoLmpvaW4oIi4iKX0sbyksKHA9dVtkXSl8fCgocD11W2RdPVtdKS5kZWxlZ2F0ZUNvdW50PTAsZi5zZXR1cCYmITEhPT1mLnNldHVwLmNhbGwodCxyLGgsYSl8fHQuYWRkRXZlbnRMaXN0ZW5lciYmdC5hZGRFdmVudExpc3RlbmVyKGQsYSkpLGYuYWRkJiYoZi5hZGQuY2FsbCh0LGMpLGMuaGFuZGxlci5ndWlkfHwoYy5oYW5kbGVyLmd1aWQ9bi5ndWlkKSksaT9wLnNwbGljZShwLmRlbGVnYXRlQ291bnQrKywwLGMpOnAucHVzaChjKSxTLmV2ZW50Lmdsb2JhbFtkXT0hMCl9fSxyZW1vdmU6ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsdSxsLGMsZixwLGQsaCxnLHY9WS5oYXNEYXRhKGUpJiZZLmdldChlKTtpZih2JiYodT12LmV2ZW50cykpe2w9KHQ9KHR8fCIiKS5tYXRjaChQKXx8WyIiXSkubGVuZ3RoO3doaWxlKGwtLSlpZihkPWc9KHM9YmUuZXhlYyh0W2xdKXx8W10pWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkKXtmPVMuZXZlbnQuc3BlY2lhbFtkXXx8e30scD11W2Q9KHI/Zi5kZWxlZ2F0ZVR5cGU6Zi5iaW5kVHlwZSl8fGRdfHxbXSxzPXNbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksYT1vPXAubGVuZ3RoO3doaWxlKG8tLSljPXBbb10sIWkmJmchPT1jLm9yaWdUeXBlfHxuJiZuLmd1aWQhPT1jLmd1aWR8fHMmJiFzLnRlc3QoYy5uYW1lc3BhY2UpfHxyJiZyIT09Yy5zZWxlY3RvciYmKCIqKiIhPT1yfHwhYy5zZWxlY3Rvcil8fChwLnNwbGljZShvLDEpLGMuc2VsZWN0b3ImJnAuZGVsZWdhdGVDb3VudC0tLGYucmVtb3ZlJiZmLnJlbW92ZS5jYWxsKGUsYykpO2EmJiFwLmxlbmd0aCYmKGYudGVhcmRvd24mJiExIT09Zi50ZWFyZG93bi5jYWxsKGUsaCx2LmhhbmRsZSl8fFMucmVtb3ZlRXZlbnQoZSxkLHYuaGFuZGxlKSxkZWxldGUgdVtkXSl9ZWxzZSBmb3IoZCBpbiB1KVMuZXZlbnQucmVtb3ZlKGUsZCt0W2xdLG4sciwhMCk7Uy5pc0VtcHR5T2JqZWN0KHUpJiZZLnJlbW92ZShlLCJoYW5kbGUgZXZlbnRzIil9fSxkaXNwYXRjaDpmdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGEscz1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCksdT1TLmV2ZW50LmZpeChlKSxsPShZLmdldCh0aGlzLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbdS50eXBlXXx8W10sYz1TLmV2ZW50LnNwZWNpYWxbdS50eXBlXXx8e307Zm9yKHNbMF09dSx0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKylzW3RdPWFyZ3VtZW50c1t0XTtpZih1LmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWMucHJlRGlzcGF0Y2h8fCExIT09Yy5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsdSkpe2E9Uy5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsdSxsKSx0PTA7d2hpbGUoKGk9YVt0KytdKSYmIXUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSl7dS5jdXJyZW50VGFyZ2V0PWkuZWxlbSxuPTA7d2hpbGUoKG89aS5oYW5kbGVyc1tuKytdKSYmIXUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSl1LnJuYW1lc3BhY2UmJiExIT09by5uYW1lc3BhY2UmJiF1LnJuYW1lc3BhY2UudGVzdChvLm5hbWVzcGFjZSl8fCh1LmhhbmRsZU9iaj1vLHUuZGF0YT1vLmRhdGEsdm9pZCAwIT09KHI9KChTLmV2ZW50LnNwZWNpYWxbby5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fG8uaGFuZGxlcikuYXBwbHkoaS5lbGVtLHMpKSYmITE9PT0odS5yZXN1bHQ9cikmJih1LnByZXZlbnREZWZhdWx0KCksdS5zdG9wUHJvcGFnYXRpb24oKSkpfXJldHVybiBjLnBvc3REaXNwYXRjaCYmYy5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLHUpLHUucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhLHM9W10sdT10LmRlbGVnYXRlQ291bnQsbD1lLnRhcmdldDtpZih1JiZsLm5vZGVUeXBlJiYhKCJjbGljayI9PT1lLnR5cGUmJjE8PWUuYnV0dG9uKSlmb3IoO2whPT10aGlzO2w9bC5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1sLm5vZGVUeXBlJiYoImNsaWNrIiE9PWUudHlwZXx8ITAhPT1sLmRpc2FibGVkKSl7Zm9yKG89W10sYT17fSxuPTA7bjx1O24rKyl2b2lkIDA9PT1hW2k9KHI9dFtuXSkuc2VsZWN0b3IrIiAiXSYmKGFbaV09ci5uZWVkc0NvbnRleHQ/LTE8UyhpLHRoaXMpLmluZGV4KGwpOlMuZmluZChpLHRoaXMsbnVsbCxbbF0pLmxlbmd0aCksYVtpXSYmby5wdXNoKHIpO28ubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczpvfSl9cmV0dXJuIGw9dGhpcyx1PHQubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczp0LnNsaWNlKHUpfSksc30sYWRkUHJvcDpmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShTLkV2ZW50LnByb3RvdHlwZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6bShlKT9mdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gZSh0aGlzLm9yaWdpbmFsRXZlbnQpfTpmdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50W3RdfSxzZXQ6ZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZX0pfX0pfSxmaXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbUy5leHBhbmRvXT9lOm5ldyBTLkV2ZW50KGUpfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sY2xpY2s6e3NldHVwOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXN8fGU7cmV0dXJuIHBlLnRlc3QodC50eXBlKSYmdC5jbGljayYmQSh0LCJpbnB1dCIpJiZTZSh0LCJjbGljayIsd2UpLCExfSx0cmlnZ2VyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXN8fGU7cmV0dXJuIHBlLnRlc3QodC50eXBlKSYmdC5jbGljayYmQSh0LCJpbnB1dCIpJiZTZSh0LCJjbGljayIpLCEwfSxfZGVmYXVsdDpmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldDtyZXR1cm4gcGUudGVzdCh0LnR5cGUpJiZ0LmNsaWNrJiZBKHQsImlucHV0IikmJlkuZ2V0KHQsImNsaWNrIil8fEEodCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oZSl7dm9pZCAwIT09ZS5yZXN1bHQmJmUub3JpZ2luYWxFdmVudCYmKGUub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1lLnJlc3VsdCl9fX19LFMucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24oZSx0LG4pe2UucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsbil9LFMuRXZlbnQ9ZnVuY3Rpb24oZSx0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBTLkV2ZW50KSlyZXR1cm4gbmV3IFMuRXZlbnQoZSx0KTtlJiZlLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1lLHRoaXMudHlwZT1lLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9ZS5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT1lLmRlZmF1bHRQcmV2ZW50ZWQmJiExPT09ZS5yZXR1cm5WYWx1ZT93ZTpUZSx0aGlzLnRhcmdldD1lLnRhcmdldCYmMz09PWUudGFyZ2V0Lm5vZGVUeXBlP2UudGFyZ2V0LnBhcmVudE5vZGU6ZS50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PWUuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9ZS5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9ZSx0JiZTLmV4dGVuZCh0aGlzLHQpLHRoaXMudGltZVN0YW1wPWUmJmUudGltZVN0YW1wfHxEYXRlLm5vdygpLHRoaXNbUy5leHBhbmRvXT0hMH0sUy5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlMuRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOlRlLGlzUHJvcGFnYXRpb25TdG9wcGVkOlRlLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOlRlLGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXdlLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXdlLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD13ZSxlJiYhdGhpcy5pc1NpbXVsYXRlZCYmZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sUy5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLCJjaGFyIjohMCxjb2RlOiEwLGNoYXJDb2RlOiEwLGtleTohMCxrZXlDb2RlOiEwLGJ1dHRvbjohMCxidXR0b25zOiEwLGNsaWVudFg6ITAsY2xpZW50WTohMCxvZmZzZXRYOiEwLG9mZnNldFk6ITAscG9pbnRlcklkOiEwLHBvaW50ZXJUeXBlOiEwLHNjcmVlblg6ITAsc2NyZWVuWTohMCx0YXJnZXRUb3VjaGVzOiEwLHRvRWxlbWVudDohMCx0b3VjaGVzOiEwLHdoaWNoOiEwfSxTLmV2ZW50LmFkZFByb3ApLFMuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oZSx0KXtTLmV2ZW50LnNwZWNpYWxbZV09e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIFNlKHRoaXMsZSxDZSksITF9LHRyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gU2UodGhpcyxlKSwhMH0sX2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZGVsZWdhdGVUeXBlOnR9fSksUy5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihlLGkpe1MuZXZlbnQuc3BlY2lhbFtlXT17ZGVsZWdhdGVUeXBlOmksYmluZFR5cGU6aSxoYW5kbGU6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLnJlbGF0ZWRUYXJnZXQscj1lLmhhbmRsZU9iajtyZXR1cm4gbiYmKG49PT10aGlzfHxTLmNvbnRhaW5zKHRoaXMsbikpfHwoZS50eXBlPXIub3JpZ1R5cGUsdD1yLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudHlwZT1pKSx0fX19KSxTLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIEVlKHRoaXMsZSx0LG4scil9LG9uZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gRWUodGhpcyxlLHQsbixyLDEpfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk7aWYoZSYmZS5wcmV2ZW50RGVmYXVsdCYmZS5oYW5kbGVPYmopcmV0dXJuIHI9ZS5oYW5kbGVPYmosUyhlLmRlbGVnYXRlVGFyZ2V0KS5vZmYoci5uYW1lc3BhY2U/ci5vcmlnVHlwZSsiLiIrci5uYW1lc3BhY2U6ci5vcmlnVHlwZSxyLnNlbGVjdG9yLHIuaGFuZGxlciksdGhpcztpZigib2JqZWN0Ij09dHlwZW9mIGUpe2ZvcihpIGluIGUpdGhpcy5vZmYoaSx0LGVbaV0pO3JldHVybiB0aGlzfXJldHVybiExIT09dCYmImZ1bmN0aW9uIiE9dHlwZW9mIHR8fChuPXQsdD12b2lkIDApLCExPT09biYmKG49VGUpLHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQucmVtb3ZlKHRoaXMsZSxuLHQpfSl9fSk7dmFyIGtlPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLEFlPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLE5lPS9eXHMqPCEoPzpcW0NEQVRBXFt8LS0pfCg/OlxdXF18LS0pPlxzKiQvZztmdW5jdGlvbiBqZShlLHQpe3JldHVybiBBKGUsInRhYmxlIikmJkEoMTEhPT10Lm5vZGVUeXBlP3Q6dC5maXJzdENoaWxkLCJ0ciIpJiZTKGUpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHxlfWZ1bmN0aW9uIERlKGUpe3JldHVybiBlLnR5cGU9KG51bGwhPT1lLmdldEF0dHJpYnV0ZSgidHlwZSIpKSsiLyIrZS50eXBlLGV9ZnVuY3Rpb24gcWUoZSl7cmV0dXJuInRydWUvIj09PShlLnR5cGV8fCIiKS5zbGljZSgwLDUpP2UudHlwZT1lLnR5cGUuc2xpY2UoNSk6ZS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSxlfWZ1bmN0aW9uIExlKGUsdCl7dmFyIG4scixpLG8sYSxzO2lmKDE9PT10Lm5vZGVUeXBlKXtpZihZLmhhc0RhdGEoZSkmJihzPVkuZ2V0KGUpLmV2ZW50cykpZm9yKGkgaW4gWS5yZW1vdmUodCwiaGFuZGxlIGV2ZW50cyIpLHMpZm9yKG49MCxyPXNbaV0ubGVuZ3RoO248cjtuKyspUy5ldmVudC5hZGQodCxpLHNbaV1bbl0pO1EuaGFzRGF0YShlKSYmKG89US5hY2Nlc3MoZSksYT1TLmV4dGVuZCh7fSxvKSxRLnNldCh0LGEpKX19ZnVuY3Rpb24gSGUobixyLGksbyl7cj1nKHIpO3ZhciBlLHQsYSxzLHUsbCxjPTAsZj1uLmxlbmd0aCxwPWYtMSxkPXJbMF0saD1tKGQpO2lmKGh8fDE8ZiYmInN0cmluZyI9PXR5cGVvZiBkJiYheS5jaGVja0Nsb25lJiZBZS50ZXN0KGQpKXJldHVybiBuLmVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9bi5lcShlKTtoJiYoclswXT1kLmNhbGwodGhpcyxlLHQuaHRtbCgpKSksSGUodCxyLGksbyl9KTtpZihmJiYodD0oZT14ZShyLG5bMF0ub3duZXJEb2N1bWVudCwhMSxuLG8pKS5maXJzdENoaWxkLDE9PT1lLmNoaWxkTm9kZXMubGVuZ3RoJiYoZT10KSx0fHxvKSl7Zm9yKHM9KGE9Uy5tYXAodmUoZSwic2NyaXB0IiksRGUpKS5sZW5ndGg7YzxmO2MrKyl1PWUsYyE9PXAmJih1PVMuY2xvbmUodSwhMCwhMCkscyYmUy5tZXJnZShhLHZlKHUsInNjcmlwdCIpKSksaS5jYWxsKG5bY10sdSxjKTtpZihzKWZvcihsPWFbYS5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxTLm1hcChhLHFlKSxjPTA7YzxzO2MrKyl1PWFbY10saGUudGVzdCh1LnR5cGV8fCIiKSYmIVkuYWNjZXNzKHUsImdsb2JhbEV2YWwiKSYmUy5jb250YWlucyhsLHUpJiYodS5zcmMmJiJtb2R1bGUiIT09KHUudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk/Uy5fZXZhbFVybCYmIXUubm9Nb2R1bGUmJlMuX2V2YWxVcmwodS5zcmMse25vbmNlOnUubm9uY2V8fHUuZ2V0QXR0cmlidXRlKCJub25jZSIpfSxsKTpiKHUudGV4dENvbnRlbnQucmVwbGFjZShOZSwiIiksdSxsKSl9cmV0dXJuIG59ZnVuY3Rpb24gT2UoZSx0LG4pe2Zvcih2YXIgcixpPXQ/Uy5maWx0ZXIodCxlKTplLG89MDtudWxsIT0ocj1pW29dKTtvKyspbnx8MSE9PXIubm9kZVR5cGV8fFMuY2xlYW5EYXRhKHZlKHIpKSxyLnBhcmVudE5vZGUmJihuJiZpZShyKSYmeWUodmUociwic2NyaXB0IikpLHIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSk7cmV0dXJuIGV9Uy5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGNsb25lOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjPWUuY2xvbmVOb2RlKCEwKSxmPWllKGUpO2lmKCEoeS5ub0Nsb25lQ2hlY2tlZHx8MSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZXx8Uy5pc1hNTERvYyhlKSkpZm9yKGE9dmUoYykscj0wLGk9KG89dmUoZSkpLmxlbmd0aDtyPGk7cisrKXM9b1tyXSx1PWFbcl0sdm9pZCAwLCJpbnB1dCI9PT0obD11Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZwZS50ZXN0KHMudHlwZSk/dS5jaGVja2VkPXMuY2hlY2tlZDoiaW5wdXQiIT09bCYmInRleHRhcmVhIiE9PWx8fCh1LmRlZmF1bHRWYWx1ZT1zLmRlZmF1bHRWYWx1ZSk7aWYodClpZihuKWZvcihvPW98fHZlKGUpLGE9YXx8dmUoYykscj0wLGk9by5sZW5ndGg7cjxpO3IrKylMZShvW3JdLGFbcl0pO2Vsc2UgTGUoZSxjKTtyZXR1cm4gMDwoYT12ZShjLCJzY3JpcHQiKSkubGVuZ3RoJiZ5ZShhLCFmJiZ2ZShlLCJzY3JpcHQiKSksY30sY2xlYW5EYXRhOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuLHIsaT1TLmV2ZW50LnNwZWNpYWwsbz0wO3ZvaWQgMCE9PShuPWVbb10pO28rKylpZihWKG4pKXtpZih0PW5bWS5leHBhbmRvXSl7aWYodC5ldmVudHMpZm9yKHIgaW4gdC5ldmVudHMpaVtyXT9TLmV2ZW50LnJlbW92ZShuLHIpOlMucmVtb3ZlRXZlbnQobixyLHQuaGFuZGxlKTtuW1kuZXhwYW5kb109dm9pZCAwfW5bUS5leHBhbmRvXSYmKG5bUS5leHBhbmRvXT12b2lkIDApfX19KSxTLmZuLmV4dGVuZCh7ZGV0YWNoOmZ1bmN0aW9uKGUpe3JldHVybiBPZSh0aGlzLGUsITApfSxyZW1vdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIE9lKHRoaXMsZSl9LHRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuICQodGhpcyxmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZT9TLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8KHRoaXMudGV4dENvbnRlbnQ9ZSl9KX0sbnVsbCxlLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGUodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fGplKHRoaXMsZSkuYXBwZW5kQ2hpbGQoZSl9KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIHQ9amUodGhpcyxlKTt0Lmluc2VydEJlZm9yZShlLHQuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLm5leHRTaWJsaW5nKX0pfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgZSx0PTA7bnVsbCE9KGU9dGhpc1t0XSk7dCsrKTE9PT1lLm5vZGVUeXBlJiYoUy5jbGVhbkRhdGEodmUoZSwhMSkpLGUudGV4dENvbnRlbnQ9IiIpO3JldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGwhPWUmJmUsdD1udWxsPT10P2U6dCx0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBTLmNsb25lKHRoaXMsZSx0KX0pfSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ9dGhpc1swXXx8e30sbj0wLHI9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09ZSYmMT09PXQubm9kZVR5cGUpcmV0dXJuIHQuaW5uZXJIVE1MO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmIWtlLnRlc3QoZSkmJiFnZVsoZGUuZXhlYyhlKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2U9Uy5odG1sUHJlZmlsdGVyKGUpO3RyeXtmb3IoO248cjtuKyspMT09PSh0PXRoaXNbbl18fHt9KS5ub2RlVHlwZSYmKFMuY2xlYW5EYXRhKHZlKHQsITEpKSx0LmlubmVySFRNTD1lKTt0PTB9Y2F0Y2goZSl7fX10JiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGUpfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIG49W107cmV0dXJuIEhlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTtTLmluQXJyYXkodGhpcyxuKTwwJiYoUy5jbGVhbkRhdGEodmUodGhpcykpLHQmJnQucmVwbGFjZUNoaWxkKGUsdGhpcykpfSxuKX19KSxTLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihlLGEpe1MuZm5bZV09ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49W10scj1TKGUpLGk9ci5sZW5ndGgtMSxvPTA7bzw9aTtvKyspdD1vPT09aT90aGlzOnRoaXMuY2xvbmUoITApLFMocltvXSlbYV0odCksdS5hcHBseShuLHQuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhuKX19KTt2YXIgUGU9bmV3IFJlZ0V4cCgiXigiK2VlKyIpKD8hcHgpW2EteiVdKyQiLCJpIiksUmU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O3JldHVybiB0JiZ0Lm9wZW5lcnx8KHQ9QyksdC5nZXRDb21wdXRlZFN0eWxlKGUpfSxNZT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXt9O2ZvcihpIGluIHQpb1tpXT1lLnN0eWxlW2ldLGUuc3R5bGVbaV09dFtpXTtmb3IoaSBpbiByPW4uY2FsbChlKSx0KWUuc3R5bGVbaV09b1tpXTtyZXR1cm4gcn0sSWU9bmV3IFJlZ0V4cChuZS5qb2luKCJ8IiksImkiKTtmdW5jdGlvbiBXZShlLHQsbil7dmFyIHIsaSxvLGEscz1lLnN0eWxlO3JldHVybihuPW58fFJlKGUpKSYmKCIiIT09KGE9bi5nZXRQcm9wZXJ0eVZhbHVlKHQpfHxuW3RdKXx8aWUoZSl8fChhPVMuc3R5bGUoZSx0KSksIXkucGl4ZWxCb3hTdHlsZXMoKSYmUGUudGVzdChhKSYmSWUudGVzdCh0KSYmKHI9cy53aWR0aCxpPXMubWluV2lkdGgsbz1zLm1heFdpZHRoLHMubWluV2lkdGg9cy5tYXhXaWR0aD1zLndpZHRoPWEsYT1uLndpZHRoLHMud2lkdGg9cixzLm1pbldpZHRoPWkscy5tYXhXaWR0aD1vKSksdm9pZCAwIT09YT9hKyIiOmF9ZnVuY3Rpb24gRmUoZSx0KXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7aWYoIWUoKSlyZXR1cm4odGhpcy5nZXQ9dCkuYXBwbHkodGhpcyxhcmd1bWVudHMpO2RlbGV0ZSB0aGlzLmdldH19fSFmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtpZihsKXt1LnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDttYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjAiLGwuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NjAlO3RvcDoxJSIscmUuYXBwZW5kQ2hpbGQodSkuYXBwZW5kQ2hpbGQobCk7dmFyIGU9Qy5nZXRDb21wdXRlZFN0eWxlKGwpO249IjElIiE9PWUudG9wLHM9MTI9PT10KGUubWFyZ2luTGVmdCksbC5zdHlsZS5yaWdodD0iNjAlIixvPTM2PT09dChlLnJpZ2h0KSxyPTM2PT09dChlLndpZHRoKSxsLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaT0xMj09PXQobC5vZmZzZXRXaWR0aC8zKSxyZS5yZW1vdmVDaGlsZCh1KSxsPW51bGx9fWZ1bmN0aW9uIHQoZSl7cmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChlKSl9dmFyIG4scixpLG8sYSxzLHU9RS5jcmVhdGVFbGVtZW50KCJkaXYiKSxsPUUuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZSYmKGwuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixsLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIseS5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWwuc3R5bGUuYmFja2dyb3VuZENsaXAsUy5leHRlbmQoeSx7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHJ9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxvfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxufSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHN9LHNjcm9sbGJveFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLGl9LHJlbGlhYmxlVHJEaW1lbnNpb25zOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLHI7cmV0dXJuIG51bGw9PWEmJihlPUUuY3JlYXRlRWxlbWVudCgidGFibGUiKSx0PUUuY3JlYXRlRWxlbWVudCgidHIiKSxuPUUuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZSIsdC5zdHlsZS5jc3NUZXh0PSJib3JkZXI6MXB4IHNvbGlkIix0LnN0eWxlLmhlaWdodD0iMXB4IixuLnN0eWxlLmhlaWdodD0iOXB4IixuLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixyZS5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZCh0KS5hcHBlbmRDaGlsZChuKSxyPUMuZ2V0Q29tcHV0ZWRTdHlsZSh0KSxhPXBhcnNlSW50KHIuaGVpZ2h0LDEwKStwYXJzZUludChyLmJvcmRlclRvcFdpZHRoLDEwKStwYXJzZUludChyLmJvcmRlckJvdHRvbVdpZHRoLDEwKT09PXQub2Zmc2V0SGVpZ2h0LHJlLnJlbW92ZUNoaWxkKGUpKSxhfX0pKX0oKTt2YXIgQmU9WyJXZWJraXQiLCJNb3oiLCJtcyJdLCRlPUUuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsX2U9e307ZnVuY3Rpb24gemUoZSl7dmFyIHQ9Uy5jc3NQcm9wc1tlXXx8X2VbZV07cmV0dXJuIHR8fChlIGluICRlP2U6X2VbZV09ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj1CZS5sZW5ndGg7d2hpbGUobi0tKWlmKChlPUJlW25dK3QpaW4gJGUpcmV0dXJuIGV9KGUpfHxlKX12YXIgVWU9L14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLFhlPS9eLS0vLFZlPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxHZT17bGV0dGVyU3BhY2luZzoiMCIsZm9udFdlaWdodDoiNDAwIn07ZnVuY3Rpb24gWWUoZSx0LG4pe3ZhciByPXRlLmV4ZWModCk7cmV0dXJuIHI/TWF0aC5tYXgoMCxyWzJdLShufHwwKSkrKHJbM118fCJweCIpOnR9ZnVuY3Rpb24gUWUoZSx0LG4scixpLG8pe3ZhciBhPSJ3aWR0aCI9PT10PzE6MCxzPTAsdT0wO2lmKG49PT0ocj8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwO2Zvcig7YTw0O2ErPTIpIm1hcmdpbiI9PT1uJiYodSs9Uy5jc3MoZSxuK25lW2FdLCEwLGkpKSxyPygiY29udGVudCI9PT1uJiYodS09Uy5jc3MoZSwicGFkZGluZyIrbmVbYV0sITAsaSkpLCJtYXJnaW4iIT09biYmKHUtPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKSkpOih1Kz1TLmNzcyhlLCJwYWRkaW5nIituZVthXSwhMCxpKSwicGFkZGluZyIhPT1uP3UrPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKTpzKz1TLmNzcyhlLCJib3JkZXIiK25lW2FdKyJXaWR0aCIsITAsaSkpO3JldHVybiFyJiYwPD1vJiYodSs9TWF0aC5tYXgoMCxNYXRoLmNlaWwoZVsib2Zmc2V0Iit0WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKV0tby11LXMtLjUpKXx8MCksdX1mdW5jdGlvbiBKZShlLHQsbil7dmFyIHI9UmUoZSksaT0oIXkuYm94U2l6aW5nUmVsaWFibGUoKXx8bikmJiJib3JkZXItYm94Ij09PVMuY3NzKGUsImJveFNpemluZyIsITEsciksbz1pLGE9V2UoZSx0LHIpLHM9Im9mZnNldCIrdFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7aWYoUGUudGVzdChhKSl7aWYoIW4pcmV0dXJuIGE7YT0iYXV0byJ9cmV0dXJuKCF5LmJveFNpemluZ1JlbGlhYmxlKCkmJml8fCF5LnJlbGlhYmxlVHJEaW1lbnNpb25zKCkmJkEoZSwidHIiKXx8ImF1dG8iPT09YXx8IXBhcnNlRmxvYXQoYSkmJiJpbmxpbmUiPT09Uy5jc3MoZSwiZGlzcGxheSIsITEscikpJiZlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiYoaT0iYm9yZGVyLWJveCI9PT1TLmNzcyhlLCJib3hTaXppbmciLCExLHIpLChvPXMgaW4gZSkmJihhPWVbc10pKSwoYT1wYXJzZUZsb2F0KGEpfHwwKStRZShlLHQsbnx8KGk/ImJvcmRlciI6ImNvbnRlbnQiKSxvLHIsYSkrInB4In1mdW5jdGlvbiBLZShlLHQsbixyLGkpe3JldHVybiBuZXcgS2UucHJvdG90eXBlLmluaXQoZSx0LG4scixpKX1TLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihlLHQpe2lmKHQpe3ZhciBuPVdlKGUsIm9wYWNpdHkiKTtyZXR1cm4iIj09PW4/IjEiOm59fX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKGUmJjMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmZS5zdHlsZSl7dmFyIGksbyxhLHM9WCh0KSx1PVhlLnRlc3QodCksbD1lLnN0eWxlO2lmKHV8fCh0PXplKHMpKSxhPVMuY3NzSG9va3NbdF18fFMuY3NzSG9va3Nbc10sdm9pZCAwPT09bilyZXR1cm4gYSYmImdldCJpbiBhJiZ2b2lkIDAhPT0oaT1hLmdldChlLCExLHIpKT9pOmxbdF07InN0cmluZyI9PT0obz10eXBlb2YgbikmJihpPXRlLmV4ZWMobikpJiZpWzFdJiYobj1zZShlLHQsaSksbz0ibnVtYmVyIiksbnVsbCE9biYmbj09biYmKCJudW1iZXIiIT09b3x8dXx8KG4rPWkmJmlbM118fChTLmNzc051bWJlcltzXT8iIjoicHgiKSkseS5jbGVhckNsb25lU3R5bGV8fCIiIT09bnx8MCE9PXQuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwobFt0XT0iaW5oZXJpdCIpLGEmJiJzZXQiaW4gYSYmdm9pZCAwPT09KG49YS5zZXQoZSxuLHIpKXx8KHU/bC5zZXRQcm9wZXJ0eSh0LG4pOmxbdF09bikpfX0sY3NzOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzPVgodCk7cmV0dXJuIFhlLnRlc3QodCl8fCh0PXplKHMpKSwoYT1TLmNzc0hvb2tzW3RdfHxTLmNzc0hvb2tzW3NdKSYmImdldCJpbiBhJiYoaT1hLmdldChlLCEwLG4pKSx2b2lkIDA9PT1pJiYoaT1XZShlLHQscikpLCJub3JtYWwiPT09aSYmdCBpbiBHZSYmKGk9R2VbdF0pLCIiPT09bnx8bj8obz1wYXJzZUZsb2F0KGkpLCEwPT09bnx8aXNGaW5pdGUobyk/b3x8MDppKTppfX0pLFMuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oZSx1KXtTLmNzc0hvb2tzW3VdPXtnZXQ6ZnVuY3Rpb24oZSx0LG4pe2lmKHQpcmV0dXJuIVVlLnRlc3QoUy5jc3MoZSwiZGlzcGxheSIpKXx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD9KZShlLHUsbik6TWUoZSxWZSxmdW5jdGlvbigpe3JldHVybiBKZShlLHUsbil9KX0sc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPVJlKGUpLG89IXkuc2Nyb2xsYm94U2l6ZSgpJiYiYWJzb2x1dGUiPT09aS5wb3NpdGlvbixhPShvfHxuKSYmImJvcmRlci1ib3giPT09Uy5jc3MoZSwiYm94U2l6aW5nIiwhMSxpKSxzPW4/UWUoZSx1LG4sYSxpKTowO3JldHVybiBhJiZvJiYocy09TWF0aC5jZWlsKGVbIm9mZnNldCIrdVswXS50b1VwcGVyQ2FzZSgpK3Uuc2xpY2UoMSldLXBhcnNlRmxvYXQoaVt1XSktUWUoZSx1LCJib3JkZXIiLCExLGkpLS41KSkscyYmKHI9dGUuZXhlYyh0KSkmJiJweCIhPT0oclszXXx8InB4IikmJihlLnN0eWxlW3VdPXQsdD1TLmNzcyhlLHUpKSxZZSgwLHQscyl9fX0pLFMuY3NzSG9va3MubWFyZ2luTGVmdD1GZSh5LnJlbGlhYmxlTWFyZ2luTGVmdCxmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuKHBhcnNlRmxvYXQoV2UoZSwibWFyZ2luTGVmdCIpKXx8ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LU1lKGUse21hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSkpKyJweCJ9KSxTLmVhY2goe21hcmdpbjoiIixwYWRkaW5nOiIiLGJvcmRlcjoiV2lkdGgifSxmdW5jdGlvbihpLG8pe1MuY3NzSG9va3NbaStvXT17ZXhwYW5kOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLG49e30scj0ic3RyaW5nIj09dHlwZW9mIGU/ZS5zcGxpdCgiICIpOltlXTt0PDQ7dCsrKW5baStuZVt0XStvXT1yW3RdfHxyW3QtMl18fHJbMF07cmV0dXJuIG59fSwibWFyZ2luIiE9PWkmJihTLmNzc0hvb2tzW2krb10uc2V0PVllKX0pLFMuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89e30sYT0wO2lmKEFycmF5LmlzQXJyYXkodCkpe2ZvcihyPVJlKGUpLGk9dC5sZW5ndGg7YTxpO2ErKylvW3RbYV1dPVMuY3NzKGUsdFthXSwhMSxyKTtyZXR1cm4gb31yZXR1cm4gdm9pZCAwIT09bj9TLnN0eWxlKGUsdCxuKTpTLmNzcyhlLHQpfSxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX19KSwoKFMuVHdlZW49S2UpLnByb3RvdHlwZT17Y29uc3RydWN0b3I6S2UsaW5pdDpmdW5jdGlvbihlLHQsbixyLGksbyl7dGhpcy5lbGVtPWUsdGhpcy5wcm9wPW4sdGhpcy5lYXNpbmc9aXx8Uy5lYXNpbmcuX2RlZmF1bHQsdGhpcy5vcHRpb25zPXQsdGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpLHRoaXMuZW5kPXIsdGhpcy51bml0PW98fChTLmNzc051bWJlcltuXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGU9S2UucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGUmJmUuZ2V0P2UuZ2V0KHRoaXMpOktlLnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihlKXt2YXIgdCxuPUtlLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24/dGhpcy5wb3M9dD1TLmVhc2luZ1t0aGlzLmVhc2luZ10oZSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qZSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz10PWUsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKnQrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksbiYmbi5zZXQ/bi5zZXQodGhpcyk6S2UucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0pLmluaXQucHJvdG90eXBlPUtlLnByb3RvdHlwZSwoS2UucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiAxIT09ZS5lbGVtLm5vZGVUeXBlfHxudWxsIT1lLmVsZW1bZS5wcm9wXSYmbnVsbD09ZS5lbGVtLnN0eWxlW2UucHJvcF0/ZS5lbGVtW2UucHJvcF06KHQ9Uy5jc3MoZS5lbGVtLGUucHJvcCwiIikpJiYiYXV0byIhPT10P3Q6MH0sc2V0OmZ1bmN0aW9uKGUpe1MuZnguc3RlcFtlLnByb3BdP1MuZnguc3RlcFtlLnByb3BdKGUpOjEhPT1lLmVsZW0ubm9kZVR5cGV8fCFTLmNzc0hvb2tzW2UucHJvcF0mJm51bGw9PWUuZWxlbS5zdHlsZVt6ZShlLnByb3ApXT9lLmVsZW1bZS5wcm9wXT1lLm5vdzpTLnN0eWxlKGUuZWxlbSxlLnByb3AsZS5ub3crZS51bml0KX19fSkuc2Nyb2xsVG9wPUtlLnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oZSl7ZS5lbGVtLm5vZGVUeXBlJiZlLmVsZW0ucGFyZW50Tm9kZSYmKGUuZWxlbVtlLnByb3BdPWUubm93KX19LFMuZWFzaW5nPXtsaW5lYXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHN3aW5nOmZ1bmN0aW9uKGUpe3JldHVybi41LU1hdGguY29zKGUqTWF0aC5QSSkvMn0sX2RlZmF1bHQ6InN3aW5nIn0sUy5meD1LZS5wcm90b3R5cGUuaW5pdCxTLmZ4LnN0ZXA9e307dmFyIFplLGV0LHR0LG50LHJ0PS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxpdD0vcXVldWVIb29rcyQvO2Z1bmN0aW9uIG90KCl7ZXQmJighMT09PUUuaGlkZGVuJiZDLnJlcXVlc3RBbmltYXRpb25GcmFtZT9DLnJlcXVlc3RBbmltYXRpb25GcmFtZShvdCk6Qy5zZXRUaW1lb3V0KG90LFMuZnguaW50ZXJ2YWwpLFMuZngudGljaygpKX1mdW5jdGlvbiBhdCgpe3JldHVybiBDLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtaZT12b2lkIDB9KSxaZT1EYXRlLm5vdygpfWZ1bmN0aW9uIHN0KGUsdCl7dmFyIG4scj0wLGk9e2hlaWdodDplfTtmb3IodD10PzE6MDtyPDQ7cis9Mi10KWlbIm1hcmdpbiIrKG49bmVbcl0pXT1pWyJwYWRkaW5nIituXT1lO3JldHVybiB0JiYoaS5vcGFjaXR5PWkud2lkdGg9ZSksaX1mdW5jdGlvbiB1dChlLHQsbil7Zm9yKHZhciByLGk9KGx0LnR3ZWVuZXJzW3RdfHxbXSkuY29uY2F0KGx0LnR3ZWVuZXJzWyIqIl0pLG89MCxhPWkubGVuZ3RoO288YTtvKyspaWYocj1pW29dLmNhbGwobix0LGUpKXJldHVybiByfWZ1bmN0aW9uIGx0KG8sZSx0KXt2YXIgbixhLHI9MCxpPWx0LnByZWZpbHRlcnMubGVuZ3RoLHM9Uy5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSB1LmVsZW19KSx1PWZ1bmN0aW9uKCl7aWYoYSlyZXR1cm4hMTtmb3IodmFyIGU9WmV8fGF0KCksdD1NYXRoLm1heCgwLGwuc3RhcnRUaW1lK2wuZHVyYXRpb24tZSksbj0xLSh0L2wuZHVyYXRpb258fDApLHI9MCxpPWwudHdlZW5zLmxlbmd0aDtyPGk7cisrKWwudHdlZW5zW3JdLnJ1bihuKTtyZXR1cm4gcy5ub3RpZnlXaXRoKG8sW2wsbix0XSksbjwxJiZpP3Q6KGl8fHMubm90aWZ5V2l0aChvLFtsLDEsMF0pLHMucmVzb2x2ZVdpdGgobyxbbF0pLCExKX0sbD1zLnByb21pc2Uoe2VsZW06byxwcm9wczpTLmV4dGVuZCh7fSxlKSxvcHRzOlMuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpTLmVhc2luZy5fZGVmYXVsdH0sdCksb3JpZ2luYWxQcm9wZXJ0aWVzOmUsb3JpZ2luYWxPcHRpb25zOnQsc3RhcnRUaW1lOlplfHxhdCgpLGR1cmF0aW9uOnQuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGUsdCl7dmFyIG49Uy5Ud2VlbihvLGwub3B0cyxlLHQsbC5vcHRzLnNwZWNpYWxFYXNpbmdbZV18fGwub3B0cy5lYXNpbmcpO3JldHVybiBsLnR3ZWVucy5wdXNoKG4pLG59LHN0b3A6ZnVuY3Rpb24oZSl7dmFyIHQ9MCxuPWU/bC50d2VlbnMubGVuZ3RoOjA7aWYoYSlyZXR1cm4gdGhpcztmb3IoYT0hMDt0PG47dCsrKWwudHdlZW5zW3RdLnJ1bigxKTtyZXR1cm4gZT8ocy5ub3RpZnlXaXRoKG8sW2wsMSwwXSkscy5yZXNvbHZlV2l0aChvLFtsLGVdKSk6cy5yZWplY3RXaXRoKG8sW2wsZV0pLHRoaXN9fSksYz1sLnByb3BzO2ZvcighZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhO2ZvcihuIGluIGUpaWYoaT10W3I9WChuKV0sbz1lW25dLEFycmF5LmlzQXJyYXkobykmJihpPW9bMV0sbz1lW25dPW9bMF0pLG4hPT1yJiYoZVtyXT1vLGRlbGV0ZSBlW25dKSwoYT1TLmNzc0hvb2tzW3JdKSYmImV4cGFuZCJpbiBhKWZvcihuIGluIG89YS5leHBhbmQobyksZGVsZXRlIGVbcl0sbyluIGluIGV8fChlW25dPW9bbl0sdFtuXT1pKTtlbHNlIHRbcl09aX0oYyxsLm9wdHMuc3BlY2lhbEVhc2luZyk7cjxpO3IrKylpZihuPWx0LnByZWZpbHRlcnNbcl0uY2FsbChsLG8sYyxsLm9wdHMpKXJldHVybiBtKG4uc3RvcCkmJihTLl9xdWV1ZUhvb2tzKGwuZWxlbSxsLm9wdHMucXVldWUpLnN0b3A9bi5zdG9wLmJpbmQobikpLG47cmV0dXJuIFMubWFwKGMsdXQsbCksbShsLm9wdHMuc3RhcnQpJiZsLm9wdHMuc3RhcnQuY2FsbChvLGwpLGwucHJvZ3Jlc3MobC5vcHRzLnByb2dyZXNzKS5kb25lKGwub3B0cy5kb25lLGwub3B0cy5jb21wbGV0ZSkuZmFpbChsLm9wdHMuZmFpbCkuYWx3YXlzKGwub3B0cy5hbHdheXMpLFMuZngudGltZXIoUy5leHRlbmQodSx7ZWxlbTpvLGFuaW06bCxxdWV1ZTpsLm9wdHMucXVldWV9KSksbH1TLkFuaW1hdGlvbj1TLmV4dGVuZChsdCx7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmNyZWF0ZVR3ZWVuKGUsdCk7cmV0dXJuIHNlKG4uZWxlbSxlLHRlLmV4ZWModCksbiksbn1dfSx0d2VlbmVyOmZ1bmN0aW9uKGUsdCl7bShlKT8odD1lLGU9WyIqIl0pOmU9ZS5tYXRjaChQKTtmb3IodmFyIG4scj0wLGk9ZS5sZW5ndGg7cjxpO3IrKyluPWVbcl0sbHQudHdlZW5lcnNbbl09bHQudHdlZW5lcnNbbl18fFtdLGx0LnR3ZWVuZXJzW25dLnVuc2hpZnQodCl9LHByZWZpbHRlcnM6W2Z1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjLGY9IndpZHRoImluIHR8fCJoZWlnaHQiaW4gdCxwPXRoaXMsZD17fSxoPWUuc3R5bGUsZz1lLm5vZGVUeXBlJiZhZShlKSx2PVkuZ2V0KGUsImZ4c2hvdyIpO2ZvcihyIGluIG4ucXVldWV8fChudWxsPT0oYT1TLl9xdWV1ZUhvb2tzKGUsImZ4IikpLnVucXVldWVkJiYoYS51bnF1ZXVlZD0wLHM9YS5lbXB0eS5maXJlLGEuZW1wdHkuZmlyZT1mdW5jdGlvbigpe2EudW5xdWV1ZWR8fHMoKX0pLGEudW5xdWV1ZWQrKyxwLmFsd2F5cyhmdW5jdGlvbigpe3AuYWx3YXlzKGZ1bmN0aW9uKCl7YS51bnF1ZXVlZC0tLFMucXVldWUoZSwiZngiKS5sZW5ndGh8fGEuZW1wdHkuZmlyZSgpfSl9KSksdClpZihpPXRbcl0scnQudGVzdChpKSl7aWYoZGVsZXRlIHRbcl0sbz1vfHwidG9nZ2xlIj09PWksaT09PShnPyJoaWRlIjoic2hvdyIpKXtpZigic2hvdyIhPT1pfHwhdnx8dm9pZCAwPT09dltyXSljb250aW51ZTtnPSEwfWRbcl09diYmdltyXXx8Uy5zdHlsZShlLHIpfWlmKCh1PSFTLmlzRW1wdHlPYmplY3QodCkpfHwhUy5pc0VtcHR5T2JqZWN0KGQpKWZvcihyIGluIGYmJjE9PT1lLm5vZGVUeXBlJiYobi5vdmVyZmxvdz1baC5vdmVyZmxvdyxoLm92ZXJmbG93WCxoLm92ZXJmbG93WV0sbnVsbD09KGw9diYmdi5kaXNwbGF5KSYmKGw9WS5nZXQoZSwiZGlzcGxheSIpKSwibm9uZSI9PT0oYz1TLmNzcyhlLCJkaXNwbGF5IikpJiYobD9jPWw6KGxlKFtlXSwhMCksbD1lLnN0eWxlLmRpc3BsYXl8fGwsYz1TLmNzcyhlLCJkaXNwbGF5IiksbGUoW2VdKSkpLCgiaW5saW5lIj09PWN8fCJpbmxpbmUtYmxvY2siPT09YyYmbnVsbCE9bCkmJiJub25lIj09PVMuY3NzKGUsImZsb2F0IikmJih1fHwocC5kb25lKGZ1bmN0aW9uKCl7aC5kaXNwbGF5PWx9KSxudWxsPT1sJiYoYz1oLmRpc3BsYXksbD0ibm9uZSI9PT1jPyIiOmMpKSxoLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxuLm92ZXJmbG93JiYoaC5vdmVyZmxvdz0iaGlkZGVuIixwLmFsd2F5cyhmdW5jdGlvbigpe2gub3ZlcmZsb3c9bi5vdmVyZmxvd1swXSxoLm92ZXJmbG93WD1uLm92ZXJmbG93WzFdLGgub3ZlcmZsb3dZPW4ub3ZlcmZsb3dbMl19KSksdT0hMSxkKXV8fCh2PyJoaWRkZW4iaW4gdiYmKGc9di5oaWRkZW4pOnY9WS5hY2Nlc3MoZSwiZnhzaG93Iix7ZGlzcGxheTpsfSksbyYmKHYuaGlkZGVuPSFnKSxnJiZsZShbZV0sITApLHAuZG9uZShmdW5jdGlvbigpe2ZvcihyIGluIGd8fGxlKFtlXSksWS5yZW1vdmUoZSwiZnhzaG93IiksZClTLnN0eWxlKGUscixkW3JdKX0pKSx1PXV0KGc/dltyXTowLHIscCksciBpbiB2fHwodltyXT11LnN0YXJ0LGcmJih1LmVuZD11LnN0YXJ0LHUuc3RhcnQ9MCkpfV0scHJlZmlsdGVyOmZ1bmN0aW9uKGUsdCl7dD9sdC5wcmVmaWx0ZXJzLnVuc2hpZnQoZSk6bHQucHJlZmlsdGVycy5wdXNoKGUpfX0pLFMuc3BlZWQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUmJiJvYmplY3QiPT10eXBlb2YgZT9TLmV4dGVuZCh7fSxlKTp7Y29tcGxldGU6bnx8IW4mJnR8fG0oZSkmJmUsZHVyYXRpb246ZSxlYXNpbmc6biYmdHx8dCYmIW0odCkmJnR9O3JldHVybiBTLmZ4Lm9mZj9yLmR1cmF0aW9uPTA6Im51bWJlciIhPXR5cGVvZiByLmR1cmF0aW9uJiYoci5kdXJhdGlvbiBpbiBTLmZ4LnNwZWVkcz9yLmR1cmF0aW9uPVMuZnguc3BlZWRzW3IuZHVyYXRpb25dOnIuZHVyYXRpb249Uy5meC5zcGVlZHMuX2RlZmF1bHQpLG51bGwhPXIucXVldWUmJiEwIT09ci5xdWV1ZXx8KHIucXVldWU9ImZ4Iiksci5vbGQ9ci5jb21wbGV0ZSxyLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bShyLm9sZCkmJnIub2xkLmNhbGwodGhpcyksci5xdWV1ZSYmUy5kZXF1ZXVlKHRoaXMsci5xdWV1ZSl9LHJ9LFMuZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMuZmlsdGVyKGFlKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OnR9LGUsbixyKX0sYW5pbWF0ZTpmdW5jdGlvbih0LGUsbixyKXt2YXIgaT1TLmlzRW1wdHlPYmplY3QodCksbz1TLnNwZWVkKGUsbixyKSxhPWZ1bmN0aW9uKCl7dmFyIGU9bHQodGhpcyxTLmV4dGVuZCh7fSx0KSxvKTsoaXx8WS5nZXQodGhpcywiZmluaXNoIikpJiZlLnN0b3AoITApfTtyZXR1cm4gYS5maW5pc2g9YSxpfHwhMT09PW8ucXVldWU/dGhpcy5lYWNoKGEpOnRoaXMucXVldWUoby5xdWV1ZSxhKX0sc3RvcDpmdW5jdGlvbihpLGUsbyl7dmFyIGE9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdG9wO2RlbGV0ZSBlLnN0b3AsdChvKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBpJiYobz1lLGU9aSxpPXZvaWQgMCksZSYmdGhpcy5xdWV1ZShpfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0hMCx0PW51bGwhPWkmJmkrInF1ZXVlSG9va3MiLG49Uy50aW1lcnMscj1ZLmdldCh0aGlzKTtpZih0KXJbdF0mJnJbdF0uc3RvcCYmYShyW3RdKTtlbHNlIGZvcih0IGluIHIpclt0XSYmclt0XS5zdG9wJiZpdC50ZXN0KHQpJiZhKHJbdF0pO2Zvcih0PW4ubGVuZ3RoO3QtLTspblt0XS5lbGVtIT09dGhpc3x8bnVsbCE9aSYmblt0XS5xdWV1ZSE9PWl8fChuW3RdLmFuaW0uc3RvcChvKSxlPSExLG4uc3BsaWNlKHQsMSkpOyFlJiZvfHxTLmRlcXVldWUodGhpcyxpKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuITEhPT1hJiYoYT1hfHwiZngiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0PVkuZ2V0KHRoaXMpLG49dFthKyJxdWV1ZSJdLHI9dFthKyJxdWV1ZUhvb2tzIl0saT1TLnRpbWVycyxvPW4/bi5sZW5ndGg6MDtmb3IodC5maW5pc2g9ITAsUy5xdWV1ZSh0aGlzLGEsW10pLHImJnIuc3RvcCYmci5zdG9wLmNhbGwodGhpcywhMCksZT1pLmxlbmd0aDtlLS07KWlbZV0uZWxlbT09PXRoaXMmJmlbZV0ucXVldWU9PT1hJiYoaVtlXS5hbmltLnN0b3AoITApLGkuc3BsaWNlKGUsMSkpO2ZvcihlPTA7ZTxvO2UrKyluW2VdJiZuW2VdLmZpbmlzaCYmbltlXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgdC5maW5pc2h9KX19KSxTLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGUscil7dmFyIGk9Uy5mbltyXTtTLmZuW3JdPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUoc3QociwhMCksZSx0LG4pfX0pLFMuZWFjaCh7c2xpZGVEb3duOnN0KCJzaG93Iiksc2xpZGVVcDpzdCgiaGlkZSIpLHNsaWRlVG9nZ2xlOnN0KCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGUscil7Uy5mbltlXT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuYW5pbWF0ZShyLGUsdCxuKX19KSxTLnRpbWVycz1bXSxTLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgZSx0PTAsbj1TLnRpbWVycztmb3IoWmU9RGF0ZS5ub3coKTt0PG4ubGVuZ3RoO3QrKykoZT1uW3RdKSgpfHxuW3RdIT09ZXx8bi5zcGxpY2UodC0tLDEpO24ubGVuZ3RofHxTLmZ4LnN0b3AoKSxaZT12b2lkIDB9LFMuZngudGltZXI9ZnVuY3Rpb24oZSl7Uy50aW1lcnMucHVzaChlKSxTLmZ4LnN0YXJ0KCl9LFMuZnguaW50ZXJ2YWw9MTMsUy5meC5zdGFydD1mdW5jdGlvbigpe2V0fHwoZXQ9ITAsb3QoKSl9LFMuZnguc3RvcD1mdW5jdGlvbigpe2V0PW51bGx9LFMuZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LFMuZm4uZGVsYXk9ZnVuY3Rpb24ocixlKXtyZXR1cm4gcj1TLmZ4JiZTLmZ4LnNwZWVkc1tyXXx8cixlPWV8fCJmeCIsdGhpcy5xdWV1ZShlLGZ1bmN0aW9uKGUsdCl7dmFyIG49Qy5zZXRUaW1lb3V0KGUscik7dC5zdG9wPWZ1bmN0aW9uKCl7Qy5jbGVhclRpbWVvdXQobil9fSl9LHR0PUUuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxudD1FLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLmFwcGVuZENoaWxkKEUuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLHR0LnR5cGU9ImNoZWNrYm94Iix5LmNoZWNrT249IiIhPT10dC52YWx1ZSx5Lm9wdFNlbGVjdGVkPW50LnNlbGVjdGVkLCh0dD1FLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnZhbHVlPSJ0Iix0dC50eXBlPSJyYWRpbyIseS5yYWRpb1ZhbHVlPSJ0Ij09PXR0LnZhbHVlO3ZhciBjdCxmdD1TLmV4cHIuYXR0ckhhbmRsZTtTLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihlLHQpe3JldHVybiAkKHRoaXMsUy5hdHRyLGUsdCwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtTLnJlbW92ZUF0dHIodGhpcyxlKX0pfX0pLFMuZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgZS5nZXRBdHRyaWJ1dGU/Uy5wcm9wKGUsdCxuKTooMT09PW8mJlMuaXNYTUxEb2MoZSl8fChpPVMuYXR0ckhvb2tzW3QudG9Mb3dlckNhc2UoKV18fChTLmV4cHIubWF0Y2guYm9vbC50ZXN0KHQpP2N0OnZvaWQgMCkpLHZvaWQgMCE9PW4/bnVsbD09PW4/dm9pZCBTLnJlbW92ZUF0dHIoZSx0KTppJiYic2V0ImluIGkmJnZvaWQgMCE9PShyPWkuc2V0KGUsbix0KSk/cjooZS5zZXRBdHRyaWJ1dGUodCxuKyIiKSxuKTppJiYiZ2V0ImluIGkmJm51bGwhPT0ocj1pLmdldChlLHQpKT9yOm51bGw9PShyPVMuZmluZC5hdHRyKGUsdCkpP3ZvaWQgMDpyKX0sYXR0ckhvb2tzOnt0eXBlOntzZXQ6ZnVuY3Rpb24oZSx0KXtpZigheS5yYWRpb1ZhbHVlJiYicmFkaW8iPT09dCYmQShlLCJpbnB1dCIpKXt2YXIgbj1lLnZhbHVlO3JldHVybiBlLnNldEF0dHJpYnV0ZSgidHlwZSIsdCksbiYmKGUudmFsdWU9biksdH19fX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MCxpPXQmJnQubWF0Y2goUCk7aWYoaSYmMT09PWUubm9kZVR5cGUpd2hpbGUobj1pW3IrK10pZS5yZW1vdmVBdHRyaWJ1dGUobil9fSksY3Q9e3NldDpmdW5jdGlvbihlLHQsbil7cmV0dXJuITE9PT10P1MucmVtb3ZlQXR0cihlLG4pOmUuc2V0QXR0cmlidXRlKG4sbiksbn19LFMuZWFjaChTLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihlLHQpe3ZhciBhPWZ0W3RdfHxTLmZpbmQuYXR0cjtmdFt0XT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXQudG9Mb3dlckNhc2UoKTtyZXR1cm4gbnx8KGk9ZnRbb10sZnRbb109cixyPW51bGwhPWEoZSx0LG4pP286bnVsbCxmdFtvXT1pKSxyfX0pO3ZhciBwdD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLGR0PS9eKD86YXxhcmVhKSQvaTtmdW5jdGlvbiBodChlKXtyZXR1cm4oZS5tYXRjaChQKXx8W10pLmpvaW4oIiAiKX1mdW5jdGlvbiBndChlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUmJmUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn1mdW5jdGlvbiB2dChlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOiJzdHJpbmciPT10eXBlb2YgZSYmZS5tYXRjaChQKXx8W119Uy5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLFMucHJvcCxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbUy5wcm9wRml4W2VdfHxlXX0pfX0pLFMuZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiAxPT09byYmUy5pc1hNTERvYyhlKXx8KHQ9Uy5wcm9wRml4W3RdfHx0LGk9Uy5wcm9wSG9va3NbdF0pLHZvaWQgMCE9PW4/aSYmInNldCJpbiBpJiZ2b2lkIDAhPT0ocj1pLnNldChlLG4sdCkpP3I6ZVt0XT1uOmkmJiJnZXQiaW4gaSYmbnVsbCE9PShyPWkuZ2V0KGUsdCkpP3I6ZVt0XX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInRhYmluZGV4Iik7cmV0dXJuIHQ/cGFyc2VJbnQodCwxMCk6cHQudGVzdChlLm5vZGVOYW1lKXx8ZHQudGVzdChlLm5vZGVOYW1lKSYmZS5ocmVmPzA6LTF9fX0scHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9fSkseS5vcHRTZWxlY3RlZHx8KFMucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3JldHVybiB0JiZ0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LG51bGx9LHNldDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7dCYmKHQuc2VsZWN0ZWRJbmRleCx0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KSxTLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe1MucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxTLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxhLHMsdT0wO2lmKG0odCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLmFkZENsYXNzKHQuY2FsbCh0aGlzLGUsZ3QodGhpcykpKX0pO2lmKChlPXZ0KHQpKS5sZW5ndGgpd2hpbGUobj10aGlzW3UrK10paWYoaT1ndChuKSxyPTE9PT1uLm5vZGVUeXBlJiYiICIraHQoaSkrIiAiKXthPTA7d2hpbGUobz1lW2ErK10pci5pbmRleE9mKCIgIitvKyIgIik8MCYmKHIrPW8rIiAiKTtpIT09KHM9aHQocikpJiZuLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHMpfXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGEscyx1PTA7aWYobSh0KSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe1ModGhpcykucmVtb3ZlQ2xhc3ModC5jYWxsKHRoaXMsZSxndCh0aGlzKSkpfSk7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuYXR0cigiY2xhc3MiLCIiKTtpZigoZT12dCh0KSkubGVuZ3RoKXdoaWxlKG49dGhpc1t1KytdKWlmKGk9Z3Qobikscj0xPT09bi5ub2RlVHlwZSYmIiAiK2h0KGkpKyIgIil7YT0wO3doaWxlKG89ZVthKytdKXdoaWxlKC0xPHIuaW5kZXhPZigiICIrbysiICIpKXI9ci5yZXBsYWNlKCIgIitvKyIgIiwiICIpO2khPT0ocz1odChyKSkmJm4uc2V0QXR0cmlidXRlKCJjbGFzcyIscyl9cmV0dXJuIHRoaXN9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGksdCl7dmFyIG89dHlwZW9mIGksYT0ic3RyaW5nIj09PW98fEFycmF5LmlzQXJyYXkoaSk7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdCYmYT90P3RoaXMuYWRkQ2xhc3MoaSk6dGhpcy5yZW1vdmVDbGFzcyhpKTptKGkpP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLnRvZ2dsZUNsYXNzKGkuY2FsbCh0aGlzLGUsZ3QodGhpcyksdCksdCl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0LG4scjtpZihhKXt0PTAsbj1TKHRoaXMpLHI9dnQoaSk7d2hpbGUoZT1yW3QrK10pbi5oYXNDbGFzcyhlKT9uLnJlbW92ZUNsYXNzKGUpOm4uYWRkQ2xhc3MoZSl9ZWxzZSB2b2lkIDAhPT1pJiYiYm9vbGVhbiIhPT1vfHwoKGU9Z3QodGhpcykpJiZZLnNldCh0aGlzLCJfX2NsYXNzTmFtZV9fIixlKSx0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixlfHwhMT09PWk/IiI6WS5nZXQodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIikpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj0wO3Q9IiAiK2UrIiAiO3doaWxlKG49dGhpc1tyKytdKWlmKDE9PT1uLm5vZGVUeXBlJiYtMTwoIiAiK2h0KGd0KG4pKSsiICIpLmluZGV4T2YodCkpcmV0dXJuITA7cmV0dXJuITF9fSk7dmFyIHl0PS9cci9nO1MuZm4uZXh0ZW5kKHt2YWw6ZnVuY3Rpb24obil7dmFyIHIsZSxpLHQ9dGhpc1swXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1tKG4pLHRoaXMuZWFjaChmdW5jdGlvbihlKXt2YXIgdDsxPT09dGhpcy5ub2RlVHlwZSYmKG51bGw9PSh0PWk/bi5jYWxsKHRoaXMsZSxTKHRoaXMpLnZhbCgpKTpuKT90PSIiOiJudW1iZXIiPT10eXBlb2YgdD90Kz0iIjpBcnJheS5pc0FycmF5KHQpJiYodD1TLm1hcCh0LGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOmUrIiJ9KSksKHI9Uy52YWxIb29rc1t0aGlzLnR5cGVdfHxTLnZhbEhvb2tzW3RoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYic2V0ImluIHImJnZvaWQgMCE9PXIuc2V0KHRoaXMsdCwidmFsdWUiKXx8KHRoaXMudmFsdWU9dCkpfSkpOnQ/KHI9Uy52YWxIb29rc1t0LnR5cGVdfHxTLnZhbEhvb2tzW3Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYiZ2V0ImluIHImJnZvaWQgMCE9PShlPXIuZ2V0KHQsInZhbHVlIikpP2U6InN0cmluZyI9PXR5cGVvZihlPXQudmFsdWUpP2UucmVwbGFjZSh5dCwiIik6bnVsbD09ZT8iIjplOnZvaWQgMH19KSxTLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInZhbHVlIik7cmV0dXJuIG51bGwhPXQ/dDpodChTLnRleHQoZSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGk9ZS5vcHRpb25zLG89ZS5zZWxlY3RlZEluZGV4LGE9InNlbGVjdC1vbmUiPT09ZS50eXBlLHM9YT9udWxsOltdLHU9YT9vKzE6aS5sZW5ndGg7Zm9yKHI9bzwwP3U6YT9vOjA7cjx1O3IrKylpZigoKG49aVtyXSkuc2VsZWN0ZWR8fHI9PT1vKSYmIW4uZGlzYWJsZWQmJighbi5wYXJlbnROb2RlLmRpc2FibGVkfHwhQShuLnBhcmVudE5vZGUsIm9wdGdyb3VwIikpKXtpZih0PVMobikudmFsKCksYSlyZXR1cm4gdDtzLnB1c2godCl9cmV0dXJuIHN9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuLHIsaT1lLm9wdGlvbnMsbz1TLm1ha2VBcnJheSh0KSxhPWkubGVuZ3RoO3doaWxlKGEtLSkoKHI9aVthXSkuc2VsZWN0ZWQ9LTE8Uy5pbkFycmF5KFMudmFsSG9va3Mub3B0aW9uLmdldChyKSxvKSkmJihuPSEwKTtyZXR1cm4gbnx8KGUuc2VsZWN0ZWRJbmRleD0tMSksb319fX0pLFMuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe1MudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGUuY2hlY2tlZD0tMTxTLmluQXJyYXkoUyhlKS52YWwoKSx0KX19LHkuY2hlY2tPbnx8KFMudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZS5nZXRBdHRyaWJ1dGUoInZhbHVlIik/Im9uIjplLnZhbHVlfSl9KSx5LmZvY3VzaW49Im9uZm9jdXNpbiJpbiBDO3ZhciBtdD0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8seHQ9ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX07Uy5leHRlbmQoUy5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGwsYyxmLHA9W258fEVdLGQ9di5jYWxsKGUsInR5cGUiKT9lLnR5cGU6ZSxoPXYuY2FsbChlLCJuYW1lc3BhY2UiKT9lLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKG89Zj1hPW49bnx8RSwzIT09bi5ub2RlVHlwZSYmOCE9PW4ubm9kZVR5cGUmJiFtdC50ZXN0KGQrUy5ldmVudC50cmlnZ2VyZWQpJiYoLTE8ZC5pbmRleE9mKCIuIikmJihkPShoPWQuc3BsaXQoIi4iKSkuc2hpZnQoKSxoLnNvcnQoKSksdT1kLmluZGV4T2YoIjoiKTwwJiYib24iK2QsKGU9ZVtTLmV4cGFuZG9dP2U6bmV3IFMuRXZlbnQoZCwib2JqZWN0Ij09dHlwZW9mIGUmJmUpKS5pc1RyaWdnZXI9cj8yOjMsZS5uYW1lc3BhY2U9aC5qb2luKCIuIiksZS5ybmFtZXNwYWNlPWUubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxlLnJlc3VsdD12b2lkIDAsZS50YXJnZXR8fChlLnRhcmdldD1uKSx0PW51bGw9PXQ/W2VdOlMubWFrZUFycmF5KHQsW2VdKSxjPVMuZXZlbnQuc3BlY2lhbFtkXXx8e30scnx8IWMudHJpZ2dlcnx8ITEhPT1jLnRyaWdnZXIuYXBwbHkobix0KSkpe2lmKCFyJiYhYy5ub0J1YmJsZSYmIXgobikpe2ZvcihzPWMuZGVsZWdhdGVUeXBlfHxkLG10LnRlc3QocytkKXx8KG89by5wYXJlbnROb2RlKTtvO289by5wYXJlbnROb2RlKXAucHVzaChvKSxhPW87YT09PShuLm93bmVyRG9jdW1lbnR8fEUpJiZwLnB1c2goYS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3d8fEMpfWk9MDt3aGlsZSgobz1wW2krK10pJiYhZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWY9byxlLnR5cGU9MTxpP3M6Yy5iaW5kVHlwZXx8ZCwobD0oWS5nZXQobywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2UudHlwZV0mJlkuZ2V0KG8sImhhbmRsZSIpKSYmbC5hcHBseShvLHQpLChsPXUmJm9bdV0pJiZsLmFwcGx5JiZWKG8pJiYoZS5yZXN1bHQ9bC5hcHBseShvLHQpLCExPT09ZS5yZXN1bHQmJmUucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGUudHlwZT1kLHJ8fGUuaXNEZWZhdWx0UHJldmVudGVkKCl8fGMuX2RlZmF1bHQmJiExIT09Yy5fZGVmYXVsdC5hcHBseShwLnBvcCgpLHQpfHwhVihuKXx8dSYmbShuW2RdKSYmIXgobikmJigoYT1uW3VdKSYmKG5bdV09bnVsbCksUy5ldmVudC50cmlnZ2VyZWQ9ZCxlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmYuYWRkRXZlbnRMaXN0ZW5lcihkLHh0KSxuW2RdKCksZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZmLnJlbW92ZUV2ZW50TGlzdGVuZXIoZCx4dCksUy5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLGEmJihuW3VdPWEpKSxlLnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1TLmV4dGVuZChuZXcgUy5FdmVudCxuLHt0eXBlOmUsaXNTaW11bGF0ZWQ6ITB9KTtTLmV2ZW50LnRyaWdnZXIocixudWxsLHQpfX0pLFMuZm4uZXh0ZW5kKHt0cmlnZ2VyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQudHJpZ2dlcihlLHQsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzWzBdO2lmKG4pcmV0dXJuIFMuZXZlbnQudHJpZ2dlcihlLHQsbiwhMCl9fSkseS5mb2N1c2lufHxTLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKG4scil7dmFyIGk9ZnVuY3Rpb24oZSl7Uy5ldmVudC5zaW11bGF0ZShyLGUudGFyZ2V0LFMuZXZlbnQuZml4KGUpKX07Uy5ldmVudC5zcGVjaWFsW3JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyx0PVkuYWNjZXNzKGUscik7dHx8ZS5hZGRFdmVudExpc3RlbmVyKG4saSwhMCksWS5hY2Nlc3MoZSxyLCh0fHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsdD1ZLmFjY2VzcyhlLHIpLTE7dD9ZLmFjY2VzcyhlLHIsdCk6KGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLGksITApLFkucmVtb3ZlKGUscikpfX19KTt2YXIgYnQ9Qy5sb2NhdGlvbix3dD17Z3VpZDpEYXRlLm5vdygpfSxUdD0vXD8vO1MucGFyc2VYTUw9ZnVuY3Rpb24oZSl7dmFyIHQsbjtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBudWxsO3RyeXt0PShuZXcgQy5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhlLCJ0ZXh0L3htbCIpfWNhdGNoKGUpe31yZXR1cm4gbj10JiZ0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpWzBdLHQmJiFufHxTLmVycm9yKCJJbnZhbGlkIFhNTDogIisobj9TLm1hcChuLmNoaWxkTm9kZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUudGV4dENvbnRlbnR9KS5qb2luKCJcbiIpOmUpKSx0fTt2YXIgQ3Q9L1xbXF0kLyxFdD0vXHI/XG4vZyxTdD0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksa3Q9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIEF0KG4sZSxyLGkpe3ZhciB0O2lmKEFycmF5LmlzQXJyYXkoZSkpUy5lYWNoKGUsZnVuY3Rpb24oZSx0KXtyfHxDdC50ZXN0KG4pP2kobix0KTpBdChuKyJbIisoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10P2U6IiIpKyJdIix0LHIsaSl9KTtlbHNlIGlmKHJ8fCJvYmplY3QiIT09dyhlKSlpKG4sZSk7ZWxzZSBmb3IodCBpbiBlKUF0KG4rIlsiK3QrIl0iLGVbdF0scixpKX1TLnBhcmFtPWZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPWZ1bmN0aW9uKGUsdCl7dmFyIG49bSh0KT90KCk6dDtyW3IubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoZSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChudWxsPT1uPyIiOm4pfTtpZihudWxsPT1lKXJldHVybiIiO2lmKEFycmF5LmlzQXJyYXkoZSl8fGUuanF1ZXJ5JiYhUy5pc1BsYWluT2JqZWN0KGUpKVMuZWFjaChlLGZ1bmN0aW9uKCl7aSh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihuIGluIGUpQXQobixlW25dLHQsaSk7cmV0dXJuIHIuam9pbigiJiIpfSxTLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIFMucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgZT1TLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gZT9TLm1ha2VBcnJheShlKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFTKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYma3QudGVzdCh0aGlzLm5vZGVOYW1lKSYmIVN0LnRlc3QoZSkmJih0aGlzLmNoZWNrZWR8fCFwZS50ZXN0KGUpKX0pLm1hcChmdW5jdGlvbihlLHQpe3ZhciBuPVModGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDpBcnJheS5pc0FycmF5KG4pP1MubWFwKG4sZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6dC5uYW1lLHZhbHVlOmUucmVwbGFjZShFdCwiXHJcbiIpfX0pOntuYW1lOnQubmFtZSx2YWx1ZTpuLnJlcGxhY2UoRXQsIlxyXG4iKX19KS5nZXQoKX19KTt2YXIgTnQ9LyUyMC9nLGp0PS8jLiokLyxEdD0vKFs/Jl0pXz1bXiZdKi8scXQ9L14oLio/KTpbIFx0XSooW15cclxuXSopJC9nbSxMdD0vXig/OkdFVHxIRUFEKSQvLEh0PS9eXC9cLy8sT3Q9e30sUHQ9e30sUnQ9IiovIi5jb25jYXQoIioiKSxNdD1FLmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBJdChvKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWUsZT0iKiIpO3ZhciBuLHI9MCxpPWUudG9Mb3dlckNhc2UoKS5tYXRjaChQKXx8W107aWYobSh0KSl3aGlsZShuPWlbcisrXSkiKyI9PT1uWzBdPyhuPW4uc2xpY2UoMSl8fCIqIiwob1tuXT1vW25dfHxbXSkudW5zaGlmdCh0KSk6KG9bbl09b1tuXXx8W10pLnB1c2godCl9fWZ1bmN0aW9uIFd0KHQsaSxvLGEpe3ZhciBzPXt9LHU9dD09PVB0O2Z1bmN0aW9uIGwoZSl7dmFyIHI7cmV0dXJuIHNbZV09ITAsUy5lYWNoKHRbZV18fFtdLGZ1bmN0aW9uKGUsdCl7dmFyIG49dChpLG8sYSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBufHx1fHxzW25dP3U/IShyPW4pOnZvaWQgMDooaS5kYXRhVHlwZXMudW5zaGlmdChuKSxsKG4pLCExKX0pLHJ9cmV0dXJuIGwoaS5kYXRhVHlwZXNbMF0pfHwhc1siKiJdJiZsKCIqIil9ZnVuY3Rpb24gRnQoZSx0KXt2YXIgbixyLGk9Uy5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihuIGluIHQpdm9pZCAwIT09dFtuXSYmKChpW25dP2U6cnx8KHI9e30pKVtuXT10W25dKTtyZXR1cm4gciYmUy5leHRlbmQoITAsZSxyKSxlfU10LmhyZWY9YnQuaHJlZixTLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6YnQuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdChidC5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpSdCx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8saHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpKU09OLnBhcnNlLCJ0ZXh0IHhtbCI6Uy5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/RnQoRnQoZSxTLmFqYXhTZXR0aW5ncyksdCk6RnQoUy5hamF4U2V0dGluZ3MsZSl9LGFqYXhQcmVmaWx0ZXI6SXQoT3QpLGFqYXhUcmFuc3BvcnQ6SXQoUHQpLGFqYXg6ZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLHQ9dHx8e307dmFyIGMsZixwLG4sZCxyLGgsZyxpLG8sdj1TLmFqYXhTZXR1cCh7fSx0KSx5PXYuY29udGV4dHx8dixtPXYuY29udGV4dCYmKHkubm9kZVR5cGV8fHkuanF1ZXJ5KT9TKHkpOlMuZXZlbnQseD1TLkRlZmVycmVkKCksYj1TLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx3PXYuc3RhdHVzQ29kZXx8e30sYT17fSxzPXt9LHU9ImNhbmNlbGVkIixUPXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoaCl7aWYoIW4pe249e307d2hpbGUodD1xdC5leGVjKHApKW5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl09KG5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl18fFtdKS5jb25jYXQodFsyXSl9dD1uW2UudG9Mb3dlckNhc2UoKSsiICJdfXJldHVybiBudWxsPT10P251bGw6dC5qb2luKCIsICIpfSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gaD9wOm51bGx9LHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09aCYmKGU9c1tlLnRvTG93ZXJDYXNlKCldPXNbZS50b0xvd2VyQ2FzZSgpXXx8ZSxhW2VdPXQpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWgmJih2Lm1pbWVUeXBlPWUpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoZSlpZihoKVQuYWx3YXlzKGVbVC5zdGF0dXNdKTtlbHNlIGZvcih0IGluIGUpd1t0XT1bd1t0XSxlW3RdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8dTtyZXR1cm4gYyYmYy5hYm9ydCh0KSxsKDAsdCksdGhpc319O2lmKHgucHJvbWlzZShUKSx2LnVybD0oKGV8fHYudXJsfHxidC5ocmVmKSsiIikucmVwbGFjZShIdCxidC5wcm90b2NvbCsiLy8iKSx2LnR5cGU9dC5tZXRob2R8fHQudHlwZXx8di5tZXRob2R8fHYudHlwZSx2LmRhdGFUeXBlcz0odi5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKFApfHxbIiJdLG51bGw9PXYuY3Jvc3NEb21haW4pe3I9RS5jcmVhdGVFbGVtZW50KCJhIik7dHJ5e3IuaHJlZj12LnVybCxyLmhyZWY9ci5ocmVmLHYuY3Jvc3NEb21haW49TXQucHJvdG9jb2wrIi8vIitNdC5ob3N0IT1yLnByb3RvY29sKyIvLyIrci5ob3N0fWNhdGNoKGUpe3YuY3Jvc3NEb21haW49ITB9fWlmKHYuZGF0YSYmdi5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiB2LmRhdGEmJih2LmRhdGE9Uy5wYXJhbSh2LmRhdGEsdi50cmFkaXRpb25hbCkpLFd0KE90LHYsdCxUKSxoKXJldHVybiBUO2ZvcihpIGluKGc9Uy5ldmVudCYmdi5nbG9iYWwpJiYwPT1TLmFjdGl2ZSsrJiZTLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLHYudHlwZT12LnR5cGUudG9VcHBlckNhc2UoKSx2Lmhhc0NvbnRlbnQ9IUx0LnRlc3Qodi50eXBlKSxmPXYudXJsLnJlcGxhY2UoanQsIiIpLHYuaGFzQ29udGVudD92LmRhdGEmJnYucHJvY2Vzc0RhdGEmJjA9PT0odi5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiYodi5kYXRhPXYuZGF0YS5yZXBsYWNlKE50LCIrIikpOihvPXYudXJsLnNsaWNlKGYubGVuZ3RoKSx2LmRhdGEmJih2LnByb2Nlc3NEYXRhfHwic3RyaW5nIj09dHlwZW9mIHYuZGF0YSkmJihmKz0oVHQudGVzdChmKT8iJiI6Ij8iKSt2LmRhdGEsZGVsZXRlIHYuZGF0YSksITE9PT12LmNhY2hlJiYoZj1mLnJlcGxhY2UoRHQsIiQxIiksbz0oVHQudGVzdChmKT8iJiI6Ij8iKSsiXz0iK3d0Lmd1aWQrKytvKSx2LnVybD1mK28pLHYuaWZNb2RpZmllZCYmKFMubGFzdE1vZGlmaWVkW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixTLmxhc3RNb2RpZmllZFtmXSksUy5ldGFnW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLFMuZXRhZ1tmXSkpLCh2LmRhdGEmJnYuaGFzQ29udGVudCYmITEhPT12LmNvbnRlbnRUeXBlfHx0LmNvbnRlbnRUeXBlKSYmVC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHYuY29udGVudFR5cGUpLFQuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0Iix2LmRhdGFUeXBlc1swXSYmdi5hY2NlcHRzW3YuZGF0YVR5cGVzWzBdXT92LmFjY2VwdHNbdi5kYXRhVHlwZXNbMF1dKygiKiIhPT12LmRhdGFUeXBlc1swXT8iLCAiK1J0KyI7IHE9MC4wMSI6IiIpOnYuYWNjZXB0c1siKiJdKSx2LmhlYWRlcnMpVC5zZXRSZXF1ZXN0SGVhZGVyKGksdi5oZWFkZXJzW2ldKTtpZih2LmJlZm9yZVNlbmQmJighMT09PXYuYmVmb3JlU2VuZC5jYWxsKHksVCx2KXx8aCkpcmV0dXJuIFQuYWJvcnQoKTtpZih1PSJhYm9ydCIsYi5hZGQodi5jb21wbGV0ZSksVC5kb25lKHYuc3VjY2VzcyksVC5mYWlsKHYuZXJyb3IpLGM9V3QoUHQsdix0LFQpKXtpZihULnJlYWR5U3RhdGU9MSxnJiZtLnRyaWdnZXIoImFqYXhTZW5kIixbVCx2XSksaClyZXR1cm4gVDt2LmFzeW5jJiYwPHYudGltZW91dCYmKGQ9Qy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VC5hYm9ydCgidGltZW91dCIpfSx2LnRpbWVvdXQpKTt0cnl7aD0hMSxjLnNlbmQoYSxsKX1jYXRjaChlKXtpZihoKXRocm93IGU7bCgtMSxlKX19ZWxzZSBsKC0xLCJObyBUcmFuc3BvcnQiKTtmdW5jdGlvbiBsKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD10O2h8fChoPSEwLGQmJkMuY2xlYXJUaW1lb3V0KGQpLGM9dm9pZCAwLHA9cnx8IiIsVC5yZWFkeVN0YXRlPTA8ZT80OjAsaT0yMDA8PWUmJmU8MzAwfHwzMDQ9PT1lLG4mJihzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzPWUuY29udGVudHMsdT1lLmRhdGFUeXBlczt3aGlsZSgiKiI9PT11WzBdKXUuc2hpZnQoKSx2b2lkIDA9PT1yJiYocj1lLm1pbWVUeXBlfHx0LmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKSk7aWYocilmb3IoaSBpbiBzKWlmKHNbaV0mJnNbaV0udGVzdChyKSl7dS51bnNoaWZ0KGkpO2JyZWFrfWlmKHVbMF1pbiBuKW89dVswXTtlbHNle2ZvcihpIGluIG4pe2lmKCF1WzBdfHxlLmNvbnZlcnRlcnNbaSsiICIrdVswXV0pe289aTticmVha31hfHwoYT1pKX1vPW98fGF9aWYobylyZXR1cm4gbyE9PXVbMF0mJnUudW5zaGlmdChvKSxuW29dfSh2LFQsbikpLCFpJiYtMTxTLmluQXJyYXkoInNjcmlwdCIsdi5kYXRhVHlwZXMpJiZTLmluQXJyYXkoImpzb24iLHYuZGF0YVR5cGVzKTwwJiYodi5jb252ZXJ0ZXJzWyJ0ZXh0IHNjcmlwdCJdPWZ1bmN0aW9uKCl7fSkscz1mdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGw9e30sYz1lLmRhdGFUeXBlcy5zbGljZSgpO2lmKGNbMV0pZm9yKGEgaW4gZS5jb252ZXJ0ZXJzKWxbYS50b0xvd2VyQ2FzZSgpXT1lLmNvbnZlcnRlcnNbYV07bz1jLnNoaWZ0KCk7d2hpbGUobylpZihlLnJlc3BvbnNlRmllbGRzW29dJiYobltlLnJlc3BvbnNlRmllbGRzW29dXT10KSwhdSYmciYmZS5kYXRhRmlsdGVyJiYodD1lLmRhdGFGaWx0ZXIodCxlLmRhdGFUeXBlKSksdT1vLG89Yy5zaGlmdCgpKWlmKCIqIj09PW8pbz11O2Vsc2UgaWYoIioiIT09dSYmdSE9PW8pe2lmKCEoYT1sW3UrIiAiK29dfHxsWyIqICIrb10pKWZvcihpIGluIGwpaWYoKHM9aS5zcGxpdCgiICIpKVsxXT09PW8mJihhPWxbdSsiICIrc1swXV18fGxbIiogIitzWzBdXSkpeyEwPT09YT9hPWxbaV06ITAhPT1sW2ldJiYobz1zWzBdLGMudW5zaGlmdChzWzFdKSk7YnJlYWt9aWYoITAhPT1hKWlmKGEmJmVbInRocm93cyJdKXQ9YSh0KTtlbHNlIHRyeXt0PWEodCl9Y2F0Y2goZSl7cmV0dXJue3N0YXRlOiJwYXJzZXJlcnJvciIsZXJyb3I6YT9lOiJObyBjb252ZXJzaW9uIGZyb20gIit1KyIgdG8gIitvfX19cmV0dXJue3N0YXRlOiJzdWNjZXNzIixkYXRhOnR9fSh2LHMsVCxpKSxpPyh2LmlmTW9kaWZpZWQmJigodT1ULmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIikpJiYoUy5sYXN0TW9kaWZpZWRbZl09dSksKHU9VC5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpKSYmKFMuZXRhZ1tmXT11KSksMjA0PT09ZXx8IkhFQUQiPT09di50eXBlP2w9Im5vY29udGVudCI6MzA0PT09ZT9sPSJub3Rtb2RpZmllZCI6KGw9cy5zdGF0ZSxvPXMuZGF0YSxpPSEoYT1zLmVycm9yKSkpOihhPWwsIWUmJmx8fChsPSJlcnJvciIsZTwwJiYoZT0wKSkpLFQuc3RhdHVzPWUsVC5zdGF0dXNUZXh0PSh0fHxsKSsiIixpP3gucmVzb2x2ZVdpdGgoeSxbbyxsLFRdKTp4LnJlamVjdFdpdGgoeSxbVCxsLGFdKSxULnN0YXR1c0NvZGUodyksdz12b2lkIDAsZyYmbS50cmlnZ2VyKGk/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbVCx2LGk/bzphXSksYi5maXJlV2l0aCh5LFtULGxdKSxnJiYobS50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFtULHZdKSwtLVMuYWN0aXZlfHxTLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX1yZXR1cm4gVH0sZ2V0SlNPTjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIFMuZ2V0KGUsdCxuLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihlLHQpe3JldHVybiBTLmdldChlLHZvaWQgMCx0LCJzY3JpcHQiKX19KSxTLmVhY2goWyJnZXQiLCJwb3N0Il0sZnVuY3Rpb24oZSxpKXtTW2ldPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBtKHQpJiYocj1yfHxuLG49dCx0PXZvaWQgMCksUy5hamF4KFMuZXh0ZW5kKHt1cmw6ZSx0eXBlOmksZGF0YVR5cGU6cixkYXRhOnQsc3VjY2VzczpufSxTLmlzUGxhaW5PYmplY3QoZSkmJmUpKX19KSxTLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ7Zm9yKHQgaW4gZS5oZWFkZXJzKSJjb250ZW50LXR5cGUiPT09dC50b0xvd2VyQ2FzZSgpJiYoZS5jb250ZW50VHlwZT1lLmhlYWRlcnNbdF18fCIiKX0pLFMuX2V2YWxVcmw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBTLmFqYXgoe3VybDplLHR5cGU6IkdFVCIsZGF0YVR5cGU6InNjcmlwdCIsY2FjaGU6ITAsYXN5bmM6ITEsZ2xvYmFsOiExLGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oKXt9fSxkYXRhRmlsdGVyOmZ1bmN0aW9uKGUpe1MuZ2xvYmFsRXZhbChlLHQsbil9fSl9LFMuZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiB0aGlzWzBdJiYobShlKSYmKGU9ZS5jYWxsKHRoaXNbMF0pKSx0PVMoZSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJnQuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLHQubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpczt3aGlsZShlLmZpcnN0RWxlbWVudENoaWxkKWU9ZS5maXJzdEVsZW1lbnRDaGlsZDtyZXR1cm4gZX0pLmFwcGVuZCh0aGlzKSksdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKG4pe3JldHVybiBtKG4pP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBJbm5lcihuLmNhbGwodGhpcyxlKSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1TKHRoaXMpLHQ9ZS5jb250ZW50cygpO3QubGVuZ3RoP3Qud3JhcEFsbChuKTplLmFwcGVuZChuKX0pfSx3cmFwOmZ1bmN0aW9uKHQpe3ZhciBuPW0odCk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBBbGwobj90LmNhbGwodGhpcyxlKTp0KX0pfSx1bndyYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucGFyZW50KGUpLm5vdCgiYm9keSIpLmVhY2goZnVuY3Rpb24oKXtTKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pLFMuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihlKXtyZXR1cm4hUy5leHByLnBzZXVkb3MudmlzaWJsZShlKX0sUy5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihlKXtyZXR1cm4hIShlLm9mZnNldFdpZHRofHxlLm9mZnNldEhlaWdodHx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9LFMuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEMuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goZSl7fX07dmFyIEJ0PXswOjIwMCwxMjIzOjIwNH0sJHQ9Uy5hamF4U2V0dGluZ3MueGhyKCk7eS5jb3JzPSEhJHQmJiJ3aXRoQ3JlZGVudGlhbHMiaW4gJHQseS5hamF4PSR0PSEhJHQsUy5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGkpe3ZhciBvLGE7aWYoeS5jb3JzfHwkdCYmIWkuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPWkueGhyKCk7aWYoci5vcGVuKGkudHlwZSxpLnVybCxpLmFzeW5jLGkudXNlcm5hbWUsaS5wYXNzd29yZCksaS54aHJGaWVsZHMpZm9yKG4gaW4gaS54aHJGaWVsZHMpcltuXT1pLnhockZpZWxkc1tuXTtmb3IobiBpbiBpLm1pbWVUeXBlJiZyLm92ZXJyaWRlTWltZVR5cGUmJnIub3ZlcnJpZGVNaW1lVHlwZShpLm1pbWVUeXBlKSxpLmNyb3NzRG9tYWlufHxlWyJYLVJlcXVlc3RlZC1XaXRoIl18fChlWyJYLVJlcXVlc3RlZC1XaXRoIl09IlhNTEh0dHBSZXF1ZXN0IiksZSlyLnNldFJlcXVlc3RIZWFkZXIobixlW25dKTtvPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe28mJihvPWE9ci5vbmxvYWQ9ci5vbmVycm9yPXIub25hYm9ydD1yLm9udGltZW91dD1yLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLCJhYm9ydCI9PT1lP3IuYWJvcnQoKToiZXJyb3IiPT09ZT8ibnVtYmVyIiE9dHlwZW9mIHIuc3RhdHVzP3QoMCwiZXJyb3IiKTp0KHIuc3RhdHVzLHIuc3RhdHVzVGV4dCk6dChCdFtyLnN0YXR1c118fHIuc3RhdHVzLHIuc3RhdHVzVGV4dCwidGV4dCIhPT0oci5yZXNwb25zZVR5cGV8fCJ0ZXh0Iil8fCJzdHJpbmciIT10eXBlb2Ygci5yZXNwb25zZVRleHQ/e2JpbmFyeTpyLnJlc3BvbnNlfTp7dGV4dDpyLnJlc3BvbnNlVGV4dH0sci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkpfX0sci5vbmxvYWQ9bygpLGE9ci5vbmVycm9yPXIub250aW1lb3V0PW8oImVycm9yIiksdm9pZCAwIT09ci5vbmFib3J0P3Iub25hYm9ydD1hOnIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PXIucmVhZHlTdGF0ZSYmQy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7byYmYSgpfSl9LG89bygiYWJvcnQiKTt0cnl7ci5zZW5kKGkuaGFzQ29udGVudCYmaS5kYXRhfHxudWxsKX1jYXRjaChlKXtpZihvKXRocm93IGV9fSxhYm9ydDpmdW5jdGlvbigpe28mJm8oKX19fSksUy5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGUpe2UuY3Jvc3NEb21haW4mJihlLmNvbnRlbnRzLnNjcmlwdD0hMSl9KSxTLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6L1xiKD86amF2YXxlY21hKXNjcmlwdFxiL30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihlKXtyZXR1cm4gUy5nbG9iYWxFdmFsKGUpLGV9fX0pLFMuYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihlKXt2b2lkIDA9PT1lLmNhY2hlJiYoZS5jYWNoZT0hMSksZS5jcm9zc0RvbWFpbiYmKGUudHlwZT0iR0VUIil9KSxTLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24obil7dmFyIHIsaTtpZihuLmNyb3NzRG9tYWlufHxuLnNjcmlwdEF0dHJzKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsdCl7cj1TKCI8c2NyaXB0PiIpLmF0dHIobi5zY3JpcHRBdHRyc3x8e30pLnByb3Aoe2NoYXJzZXQ6bi5zY3JpcHRDaGFyc2V0LHNyYzpuLnVybH0pLm9uKCJsb2FkIGVycm9yIixpPWZ1bmN0aW9uKGUpe3IucmVtb3ZlKCksaT1udWxsLGUmJnQoImVycm9yIj09PWUudHlwZT80MDQ6MjAwLGUudHlwZSl9KSxFLmhlYWQuYXBwZW5kQ2hpbGQoclswXSl9LGFib3J0OmZ1bmN0aW9uKCl7aSYmaSgpfX19KTt2YXIgX3QsenQ9W10sVXQ9Lyg9KVw/KD89JnwkKXxcP1w/LztTLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGU9enQucG9wKCl8fFMuZXhwYW5kbysiXyIrd3QuZ3VpZCsrO3JldHVybiB0aGlzW2VdPSEwLGV9fSksUy5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9ITEhPT1lLmpzb25wJiYoVXQudGVzdChlLnVybCk/InVybCI6InN0cmluZyI9PXR5cGVvZiBlLmRhdGEmJjA9PT0oZS5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZVdC50ZXN0KGUuZGF0YSkmJiJkYXRhIik7aWYoYXx8Impzb25wIj09PWUuZGF0YVR5cGVzWzBdKXJldHVybiByPWUuanNvbnBDYWxsYmFjaz1tKGUuanNvbnBDYWxsYmFjayk/ZS5qc29ucENhbGxiYWNrKCk6ZS5qc29ucENhbGxiYWNrLGE/ZVthXT1lW2FdLnJlcGxhY2UoVXQsIiQxIityKTohMSE9PWUuanNvbnAmJihlLnVybCs9KFR0LnRlc3QoZS51cmwpPyImIjoiPyIpK2UuanNvbnArIj0iK3IpLGUuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBvfHxTLmVycm9yKHIrIiB3YXMgbm90IGNhbGxlZCIpLG9bMF19LGUuZGF0YVR5cGVzWzBdPSJqc29uIixpPUNbcl0sQ1tyXT1mdW5jdGlvbigpe289YXJndW1lbnRzfSxuLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PWk/UyhDKS5yZW1vdmVQcm9wKHIpOkNbcl09aSxlW3JdJiYoZS5qc29ucENhbGxiYWNrPXQuanNvbnBDYWxsYmFjayx6dC5wdXNoKHIpKSxvJiZtKGkpJiZpKG9bMF0pLG89aT12b2lkIDB9KSwic2NyaXB0In0pLHkuY3JlYXRlSFRNTERvY3VtZW50PSgoX3Q9RS5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLmJvZHkpLmlubmVySFRNTD0iPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT4iLDI9PT1fdC5jaGlsZE5vZGVzLmxlbmd0aCksUy5wYXJzZUhUTUw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiJzdHJpbmciIT10eXBlb2YgZT9bXTooImJvb2xlYW4iPT10eXBlb2YgdCYmKG49dCx0PSExKSx0fHwoeS5jcmVhdGVIVE1MRG9jdW1lbnQ/KChyPSh0PUUuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKSkuY3JlYXRlRWxlbWVudCgiYmFzZSIpKS5ocmVmPUUubG9jYXRpb24uaHJlZix0LmhlYWQuYXBwZW5kQ2hpbGQocikpOnQ9RSksbz0hbiYmW10sKGk9Ti5leGVjKGUpKT9bdC5jcmVhdGVFbGVtZW50KGlbMV0pXTooaT14ZShbZV0sdCxvKSxvJiZvLmxlbmd0aCYmUyhvKS5yZW1vdmUoKSxTLm1lcmdlKFtdLGkuY2hpbGROb2RlcykpKTt2YXIgcixpLG99LFMuZm4ubG9hZD1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9dGhpcyxzPWUuaW5kZXhPZigiICIpO3JldHVybi0xPHMmJihyPWh0KGUuc2xpY2UocykpLGU9ZS5zbGljZSgwLHMpKSxtKHQpPyhuPXQsdD12b2lkIDApOnQmJiJvYmplY3QiPT10eXBlb2YgdCYmKGk9IlBPU1QiKSwwPGEubGVuZ3RoJiZTLmFqYXgoe3VybDplLHR5cGU6aXx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6dH0pLmRvbmUoZnVuY3Rpb24oZSl7bz1hcmd1bWVudHMsYS5odG1sKHI/UygiPGRpdj4iKS5hcHBlbmQoUy5wYXJzZUhUTUwoZSkpLmZpbmQocik6ZSl9KS5hbHdheXMobiYmZnVuY3Rpb24oZSx0KXthLmVhY2goZnVuY3Rpb24oKXtuLmFwcGx5KHRoaXMsb3x8W2UucmVzcG9uc2VUZXh0LHQsZV0pfSl9KSx0aGlzfSxTLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbih0KXtyZXR1cm4gUy5ncmVwKFMudGltZXJzLGZ1bmN0aW9uKGUpe3JldHVybiB0PT09ZS5lbGVtfSkubGVuZ3RofSxTLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbD1TLmNzcyhlLCJwb3NpdGlvbiIpLGM9UyhlKSxmPXt9OyJzdGF0aWMiPT09bCYmKGUuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIikscz1jLm9mZnNldCgpLG89Uy5jc3MoZSwidG9wIiksdT1TLmNzcyhlLCJsZWZ0IiksKCJhYnNvbHV0ZSI9PT1sfHwiZml4ZWQiPT09bCkmJi0xPChvK3UpLmluZGV4T2YoImF1dG8iKT8oYT0ocj1jLnBvc2l0aW9uKCkpLnRvcCxpPXIubGVmdCk6KGE9cGFyc2VGbG9hdChvKXx8MCxpPXBhcnNlRmxvYXQodSl8fDApLG0odCkmJih0PXQuY2FsbChlLG4sUy5leHRlbmQoe30scykpKSxudWxsIT10LnRvcCYmKGYudG9wPXQudG9wLXMudG9wK2EpLG51bGwhPXQubGVmdCYmKGYubGVmdD10LmxlZnQtcy5sZWZ0K2kpLCJ1c2luZyJpbiB0P3QudXNpbmcuY2FsbChlLGYpOmMuY3NzKGYpfX0sUy5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbih0KXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT10P3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe1Mub2Zmc2V0LnNldE9mZnNldCh0aGlzLHQsZSl9KTt2YXIgZSxuLHI9dGhpc1swXTtyZXR1cm4gcj9yLmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyhlPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj1yLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcse3RvcDplLnRvcCtuLnBhZ2VZT2Zmc2V0LGxlZnQ6ZS5sZWZ0K24ucGFnZVhPZmZzZXR9KTp7dG9wOjAsbGVmdDowfTp2b2lkIDB9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGUsdCxuLHI9dGhpc1swXSxpPXt0b3A6MCxsZWZ0OjB9O2lmKCJmaXhlZCI9PT1TLmNzcyhyLCJwb3NpdGlvbiIpKXQ9ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle3Q9dGhpcy5vZmZzZXQoKSxuPXIub3duZXJEb2N1bWVudCxlPXIub2Zmc2V0UGFyZW50fHxuLmRvY3VtZW50RWxlbWVudDt3aGlsZShlJiYoZT09PW4uYm9keXx8ZT09PW4uZG9jdW1lbnRFbGVtZW50KSYmInN0YXRpYyI9PT1TLmNzcyhlLCJwb3NpdGlvbiIpKWU9ZS5wYXJlbnROb2RlO2UmJmUhPT1yJiYxPT09ZS5ub2RlVHlwZSYmKChpPVMoZSkub2Zmc2V0KCkpLnRvcCs9Uy5jc3MoZSwiYm9yZGVyVG9wV2lkdGgiLCEwKSxpLmxlZnQrPVMuY3NzKGUsImJvcmRlckxlZnRXaWR0aCIsITApKX1yZXR1cm57dG9wOnQudG9wLWkudG9wLVMuY3NzKHIsIm1hcmdpblRvcCIsITApLGxlZnQ6dC5sZWZ0LWkubGVmdC1TLmNzcyhyLCJtYXJnaW5MZWZ0IiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vZmZzZXRQYXJlbnQ7d2hpbGUoZSYmInN0YXRpYyI9PT1TLmNzcyhlLCJwb3NpdGlvbiIpKWU9ZS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGV8fHJlfSl9fSksUy5lYWNoKHtzY3JvbGxMZWZ0OiJwYWdlWE9mZnNldCIsc2Nyb2xsVG9wOiJwYWdlWU9mZnNldCJ9LGZ1bmN0aW9uKHQsaSl7dmFyIG89InBhZ2VZT2Zmc2V0Ij09PWk7Uy5mblt0XT1mdW5jdGlvbihlKXtyZXR1cm4gJCh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZih4KGUpP3I9ZTo5PT09ZS5ub2RlVHlwZSYmKHI9ZS5kZWZhdWx0Vmlldyksdm9pZCAwPT09bilyZXR1cm4gcj9yW2ldOmVbdF07cj9yLnNjcm9sbFRvKG8/ci5wYWdlWE9mZnNldDpuLG8/bjpyLnBhZ2VZT2Zmc2V0KTplW3RdPW59LHQsZSxhcmd1bWVudHMubGVuZ3RoKX19KSxTLmVhY2goWyJ0b3AiLCJsZWZ0Il0sZnVuY3Rpb24oZSxuKXtTLmNzc0hvb2tzW25dPUZlKHkucGl4ZWxQb3NpdGlvbixmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuIHQ9V2UoZSxuKSxQZS50ZXN0KHQpP1MoZSkucG9zaXRpb24oKVtuXSsicHgiOnR9KX0pLFMuZWFjaCh7SGVpZ2h0OiJoZWlnaHQiLFdpZHRoOiJ3aWR0aCJ9LGZ1bmN0aW9uKGEscyl7Uy5lYWNoKHtwYWRkaW5nOiJpbm5lciIrYSxjb250ZW50OnMsIiI6Im91dGVyIithfSxmdW5jdGlvbihyLG8pe1MuZm5bb109ZnVuY3Rpb24oZSx0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoJiYocnx8ImJvb2xlYW4iIT10eXBlb2YgZSksaT1yfHwoITA9PT1lfHwhMD09PXQ/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSx0LG4pe3ZhciByO3JldHVybiB4KGUpPzA9PT1vLmluZGV4T2YoIm91dGVyIik/ZVsiaW5uZXIiK2FdOmUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2FdOjk9PT1lLm5vZGVUeXBlPyhyPWUuZG9jdW1lbnRFbGVtZW50LE1hdGgubWF4KGUuYm9keVsic2Nyb2xsIithXSxyWyJzY3JvbGwiK2FdLGUuYm9keVsib2Zmc2V0IithXSxyWyJvZmZzZXQiK2FdLHJbImNsaWVudCIrYV0pKTp2b2lkIDA9PT1uP1MuY3NzKGUsdCxpKTpTLnN0eWxlKGUsdCxuLGkpfSxzLG4/ZTp2b2lkIDAsbil9fSl9KSxTLmVhY2goWyJhamF4U3RhcnQiLCJhamF4U3RvcCIsImFqYXhDb21wbGV0ZSIsImFqYXhFcnJvciIsImFqYXhTdWNjZXNzIiwiYWpheFNlbmQiXSxmdW5jdGlvbihlLHQpe1MuZm5bdF09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub24odCxlKX19KSxTLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMub24oZSxudWxsLHQsbil9LHVuYmluZDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm9mZihlLG51bGwsdCl9LGRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLm9uKHQsZSxuLHIpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoZSwiKioiKTp0aGlzLm9mZih0LGV8fCIqKiIsbil9LGhvdmVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMubW91c2VlbnRlcihlKS5tb3VzZWxlYXZlKHR8fGUpfX0pLFMuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLG4pe1MuZm5bbl09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMDxhcmd1bWVudHMubGVuZ3RoP3RoaXMub24obixudWxsLGUsdCk6dGhpcy50cmlnZ2VyKG4pfX0pO3ZhciBYdD0vXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2c7Uy5wcm94eT1mdW5jdGlvbihlLHQpe3ZhciBuLHIsaTtpZigic3RyaW5nIj09dHlwZW9mIHQmJihuPWVbdF0sdD1lLGU9biksbShlKSlyZXR1cm4gcj1zLmNhbGwoYXJndW1lbnRzLDIpLChpPWZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodHx8dGhpcyxyLmNvbmNhdChzLmNhbGwoYXJndW1lbnRzKSkpfSkuZ3VpZD1lLmd1aWQ9ZS5ndWlkfHxTLmd1aWQrKyxpfSxTLmhvbGRSZWFkeT1mdW5jdGlvbihlKXtlP1MucmVhZHlXYWl0Kys6Uy5yZWFkeSghMCl9LFMuaXNBcnJheT1BcnJheS5pc0FycmF5LFMucGFyc2VKU09OPUpTT04ucGFyc2UsUy5ub2RlTmFtZT1BLFMuaXNGdW5jdGlvbj1tLFMuaXNXaW5kb3c9eCxTLmNhbWVsQ2FzZT1YLFMudHlwZT13LFMubm93PURhdGUubm93LFMuaXNOdW1lcmljPWZ1bmN0aW9uKGUpe3ZhciB0PVMudHlwZShlKTtyZXR1cm4oIm51bWJlciI9PT10fHwic3RyaW5nIj09PXQpJiYhaXNOYU4oZS1wYXJzZUZsb2F0KGUpKX0sUy50cmltPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOihlKyIiKS5yZXBsYWNlKFh0LCIiKX0sImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIFN9KTt2YXIgVnQ9Qy5qUXVlcnksR3Q9Qy4kO3JldHVybiBTLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIEMuJD09PVMmJihDLiQ9R3QpLGUmJkMualF1ZXJ5PT09UyYmKEMualF1ZXJ5PVZ0KSxTfSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihDLmpRdWVyeT1DLiQ9UyksU30pOwo8L3NjcmlwdD4KPHNjcmlwdD4KICAidXNlIHN0cmljdCI7LyohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogVmVyc2lvbjogMC4zNC4wKDRiOGE0N2YzNTcwYTRhMDVhY2U5ZDAwYWUwZGYwNDRiNTViZWZjZDUpCiAgKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UKICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvdnNjb2RlL2Jsb2IvbWFpbi9MSUNFTlNFLnR4dAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovdmFyIF9hbWRMb2FkZXJHbG9iYWw9dGhpcyxfY29tbW9uanNHbG9iYWw9dHlwZW9mIGdsb2JhbD09Im9iamVjdCI/Z2xvYmFsOnt9LEFNRExvYWRlcjsoZnVuY3Rpb24obCl7bC5nbG9iYWw9X2FtZExvYWRlckdsb2JhbDt2YXIgRT1mdW5jdGlvbigpe2Z1bmN0aW9uIHAoKXt0aGlzLl9kZXRlY3RlZD0hMSx0aGlzLl9pc1dpbmRvd3M9ITEsdGhpcy5faXNOb2RlPSExLHRoaXMuX2lzRWxlY3Ryb25SZW5kZXJlcj0hMSx0aGlzLl9pc1dlYldvcmtlcj0hMSx0aGlzLl9pc0VsZWN0cm9uTm9kZUludGVncmF0aW9uV2ViV29ya2VyPSExfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocC5wcm90b3R5cGUsImlzV2luZG93cyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZXRlY3QoKSx0aGlzLl9pc1dpbmRvd3N9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHAucHJvdG90eXBlLCJpc05vZGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGV0ZWN0KCksdGhpcy5faXNOb2RlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwLnByb3RvdHlwZSwiaXNFbGVjdHJvblJlbmRlcmVyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RldGVjdCgpLHRoaXMuX2lzRWxlY3Ryb25SZW5kZXJlcn0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkocC5wcm90b3R5cGUsImlzV2ViV29ya2VyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RldGVjdCgpLHRoaXMuX2lzV2ViV29ya2VyfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwLnByb3RvdHlwZSwiaXNFbGVjdHJvbk5vZGVJbnRlZ3JhdGlvbldlYldvcmtlciIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZXRlY3QoKSx0aGlzLl9pc0VsZWN0cm9uTm9kZUludGVncmF0aW9uV2ViV29ya2VyfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHAucHJvdG90eXBlLl9kZXRlY3Q9ZnVuY3Rpb24oKXt0aGlzLl9kZXRlY3RlZHx8KHRoaXMuX2RldGVjdGVkPSEwLHRoaXMuX2lzV2luZG93cz1wLl9pc1dpbmRvd3MoKSx0aGlzLl9pc05vZGU9dHlwZW9mIG1vZHVsZSE9InVuZGVmaW5lZCImJiEhbW9kdWxlLmV4cG9ydHMsdGhpcy5faXNFbGVjdHJvblJlbmRlcmVyPXR5cGVvZiBwcm9jZXNzIT0idW5kZWZpbmVkIiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnMhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgcHJvY2Vzcy52ZXJzaW9ucy5lbGVjdHJvbiE9InVuZGVmaW5lZCImJnByb2Nlc3MudHlwZT09PSJyZW5kZXJlciIsdGhpcy5faXNXZWJXb3JrZXI9dHlwZW9mIGwuZ2xvYmFsLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsdGhpcy5faXNFbGVjdHJvbk5vZGVJbnRlZ3JhdGlvbldlYldvcmtlcj10aGlzLl9pc1dlYldvcmtlciYmdHlwZW9mIHByb2Nlc3MhPSJ1bmRlZmluZWQiJiZ0eXBlb2YgcHJvY2Vzcy52ZXJzaW9ucyE9InVuZGVmaW5lZCImJnR5cGVvZiBwcm9jZXNzLnZlcnNpb25zLmVsZWN0cm9uIT0idW5kZWZpbmVkIiYmcHJvY2Vzcy50eXBlPT09IndvcmtlciIpfSxwLl9pc1dpbmRvd3M9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvciE9InVuZGVmaW5lZCImJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiV2luZG93cyIpPj0wPyEwOnR5cGVvZiBwcm9jZXNzIT0idW5kZWZpbmVkIj9wcm9jZXNzLnBsYXRmb3JtPT09IndpbjMyIjohMX0scH0oKTtsLkVudmlyb25tZW50PUV9KShBTURMb2FkZXJ8fChBTURMb2FkZXI9e30pKTt2YXIgQU1ETG9hZGVyOyhmdW5jdGlvbihsKXt2YXIgRT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEobix2LHMpe3RoaXMudHlwZT1uLHRoaXMuZGV0YWlsPXYsdGhpcy50aW1lc3RhbXA9c31yZXR1cm4gYX0oKTtsLkxvYWRlckV2ZW50PUU7dmFyIHA9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKG4pe3RoaXMuX2V2ZW50cz1bbmV3IEUoMSwiIixuKV19cmV0dXJuIGEucHJvdG90eXBlLnJlY29yZD1mdW5jdGlvbihuLHYpe3RoaXMuX2V2ZW50cy5wdXNoKG5ldyBFKG4sdixsLlV0aWxpdGllcy5nZXRIaWdoUGVyZm9ybWFuY2VUaW1lc3RhbXAoKSkpfSxhLnByb3RvdHlwZS5nZXRFdmVudHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZXZlbnRzfSxhfSgpO2wuTG9hZGVyRXZlbnRSZWNvcmRlcj1wO3ZhciBnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe31yZXR1cm4gYS5wcm90b3R5cGUucmVjb3JkPWZ1bmN0aW9uKG4sdil7fSxhLnByb3RvdHlwZS5nZXRFdmVudHM9ZnVuY3Rpb24oKXtyZXR1cm5bXX0sYS5JTlNUQU5DRT1uZXcgYSxhfSgpO2wuTnVsbExvYWRlckV2ZW50UmVjb3JkZXI9Z30pKEFNRExvYWRlcnx8KEFNRExvYWRlcj17fSkpO3ZhciBBTURMb2FkZXI7KGZ1bmN0aW9uKGwpe3ZhciBFPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcCgpe31yZXR1cm4gcC5maWxlVXJpVG9GaWxlUGF0aD1mdW5jdGlvbihnLGEpe2lmKGE9ZGVjb2RlVVJJKGEpLnJlcGxhY2UoLyUyMy9nLCIjIiksZyl7aWYoL15maWxlOlwvXC9cLy8udGVzdChhKSlyZXR1cm4gYS5zdWJzdHIoOCk7aWYoL15maWxlOlwvXC8vLnRlc3QoYSkpcmV0dXJuIGEuc3Vic3RyKDUpfWVsc2UgaWYoL15maWxlOlwvXC8vLnRlc3QoYSkpcmV0dXJuIGEuc3Vic3RyKDcpO3JldHVybiBhfSxwLnN0YXJ0c1dpdGg9ZnVuY3Rpb24oZyxhKXtyZXR1cm4gZy5sZW5ndGg+PWEubGVuZ3RoJiZnLnN1YnN0cigwLGEubGVuZ3RoKT09PWF9LHAuZW5kc1dpdGg9ZnVuY3Rpb24oZyxhKXtyZXR1cm4gZy5sZW5ndGg+PWEubGVuZ3RoJiZnLnN1YnN0cihnLmxlbmd0aC1hLmxlbmd0aCk9PT1hfSxwLmNvbnRhaW5zUXVlcnlTdHJpbmc9ZnVuY3Rpb24oZyl7cmV0dXJuL15bXlwjXSpcPy9naS50ZXN0KGcpfSxwLmlzQWJzb2x1dGVQYXRoPWZ1bmN0aW9uKGcpe3JldHVybi9eKChodHRwOlwvXC8pfChodHRwczpcL1wvKXwoZmlsZTpcL1wvKXwoXC8pKS8udGVzdChnKX0scC5mb3JFYWNoUHJvcGVydHk9ZnVuY3Rpb24oZyxhKXtpZihnKXt2YXIgbj12b2lkIDA7Zm9yKG4gaW4gZylnLmhhc093blByb3BlcnR5KG4pJiZhKG4sZ1tuXSl9fSxwLmlzRW1wdHk9ZnVuY3Rpb24oZyl7dmFyIGE9ITA7cmV0dXJuIHAuZm9yRWFjaFByb3BlcnR5KGcsZnVuY3Rpb24oKXthPSExfSksYX0scC5yZWN1cnNpdmVDbG9uZT1mdW5jdGlvbihnKXtpZighZ3x8dHlwZW9mIGchPSJvYmplY3QifHxnIGluc3RhbmNlb2YgUmVnRXhwfHwhQXJyYXkuaXNBcnJheShnKSYmT2JqZWN0LmdldFByb3RvdHlwZU9mKGcpIT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gZzt2YXIgYT1BcnJheS5pc0FycmF5KGcpP1tdOnt9O3JldHVybiBwLmZvckVhY2hQcm9wZXJ0eShnLGZ1bmN0aW9uKG4sdil7diYmdHlwZW9mIHY9PSJvYmplY3QiP2Fbbl09cC5yZWN1cnNpdmVDbG9uZSh2KTphW25dPXZ9KSxhfSxwLmdlbmVyYXRlQW5vbnltb3VzTW9kdWxlPWZ1bmN0aW9uKCl7cmV0dXJuIj09PWFub255bW91cyIrcC5ORVhUX0FOT05ZTU9VU19JRCsrKyI9PT0ifSxwLmlzQW5vbnltb3VzTW9kdWxlPWZ1bmN0aW9uKGcpe3JldHVybiBwLnN0YXJ0c1dpdGgoZywiPT09YW5vbnltb3VzIil9LHAuZ2V0SGlnaFBlcmZvcm1hbmNlVGltZXN0YW1wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUEVSRk9STUFOQ0VfTk9XX1BST0JFRHx8KHRoaXMuUEVSRk9STUFOQ0VfTk9XX1BST0JFRD0hMCx0aGlzLkhBU19QRVJGT1JNQU5DRV9OT1c9bC5nbG9iYWwucGVyZm9ybWFuY2UmJnR5cGVvZiBsLmdsb2JhbC5wZXJmb3JtYW5jZS5ub3c9PSJmdW5jdGlvbiIpLHRoaXMuSEFTX1BFUkZPUk1BTkNFX05PVz9sLmdsb2JhbC5wZXJmb3JtYW5jZS5ub3coKTpEYXRlLm5vdygpfSxwLk5FWFRfQU5PTllNT1VTX0lEPTEscC5QRVJGT1JNQU5DRV9OT1dfUFJPQkVEPSExLHAuSEFTX1BFUkZPUk1BTkNFX05PVz0hMSxwfSgpO2wuVXRpbGl0aWVzPUV9KShBTURMb2FkZXJ8fChBTURMb2FkZXI9e30pKTt2YXIgQU1ETG9hZGVyOyhmdW5jdGlvbihsKXtmdW5jdGlvbiBFKGEpe2lmKGEgaW5zdGFuY2VvZiBFcnJvcilyZXR1cm4gYTt2YXIgbj1uZXcgRXJyb3IoYS5tZXNzYWdlfHxTdHJpbmcoYSl8fCJVbmtub3duIEVycm9yIik7cmV0dXJuIGEuc3RhY2smJihuLnN0YWNrPWEuc3RhY2spLG59bC5lbnN1cmVFcnJvcj1FO3ZhciBwPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe31yZXR1cm4gYS52YWxpZGF0ZUNvbmZpZ3VyYXRpb25PcHRpb25zPWZ1bmN0aW9uKG4pe2Z1bmN0aW9uIHYoZSl7aWYoZS5waGFzZT09PSJsb2FkaW5nIil7Y29uc29sZS5lcnJvcignTG9hZGluZyAiJytlLm1vZHVsZUlkKyciIGZhaWxlZCcpLGNvbnNvbGUuZXJyb3IoZSksY29uc29sZS5lcnJvcigiSGVyZSBhcmUgdGhlIG1vZHVsZXMgdGhhdCBkZXBlbmQgb24gaXQ6IiksY29uc29sZS5lcnJvcihlLm5lZWRlZEJ5KTtyZXR1cm59aWYoZS5waGFzZT09PSJmYWN0b3J5Iil7Y29uc29sZS5lcnJvcignVGhlIGZhY3RvcnkgZnVuY3Rpb24gb2YgIicrZS5tb2R1bGVJZCsnIiBoYXMgdGhyb3duIGFuIGV4Y2VwdGlvbicpLGNvbnNvbGUuZXJyb3IoZSksY29uc29sZS5lcnJvcigiSGVyZSBhcmUgdGhlIG1vZHVsZXMgdGhhdCBkZXBlbmQgb24gaXQ6IiksY29uc29sZS5lcnJvcihlLm5lZWRlZEJ5KTtyZXR1cm59fWlmKG49bnx8e30sdHlwZW9mIG4uYmFzZVVybCE9InN0cmluZyImJihuLmJhc2VVcmw9IiIpLHR5cGVvZiBuLmlzQnVpbGQhPSJib29sZWFuIiYmKG4uaXNCdWlsZD0hMSksdHlwZW9mIG4uYnVpbGRGb3JjZUludm9rZUZhY3RvcnkhPSJvYmplY3QiJiYobi5idWlsZEZvcmNlSW52b2tlRmFjdG9yeT17fSksdHlwZW9mIG4ucGF0aHMhPSJvYmplY3QiJiYobi5wYXRocz17fSksdHlwZW9mIG4uY29uZmlnIT0ib2JqZWN0IiYmKG4uY29uZmlnPXt9KSx0eXBlb2Ygbi5jYXRjaEVycm9yPT0idW5kZWZpbmVkIiYmKG4uY2F0Y2hFcnJvcj0hMSksdHlwZW9mIG4ucmVjb3JkU3RhdHM9PSJ1bmRlZmluZWQiJiYobi5yZWNvcmRTdGF0cz0hMSksdHlwZW9mIG4udXJsQXJncyE9InN0cmluZyImJihuLnVybEFyZ3M9IiIpLHR5cGVvZiBuLm9uRXJyb3IhPSJmdW5jdGlvbiImJihuLm9uRXJyb3I9diksQXJyYXkuaXNBcnJheShuLmlnbm9yZUR1cGxpY2F0ZU1vZHVsZXMpfHwobi5pZ25vcmVEdXBsaWNhdGVNb2R1bGVzPVtdKSxuLmJhc2VVcmwubGVuZ3RoPjAmJihsLlV0aWxpdGllcy5lbmRzV2l0aChuLmJhc2VVcmwsIi8iKXx8KG4uYmFzZVVybCs9Ii8iKSksdHlwZW9mIG4uY3NwTm9uY2UhPSJzdHJpbmciJiYobi5jc3BOb25jZT0iIiksdHlwZW9mIG4ucHJlZmVyU2NyaXB0VGFncz09InVuZGVmaW5lZCImJihuLnByZWZlclNjcmlwdFRhZ3M9ITEpLEFycmF5LmlzQXJyYXkobi5ub2RlTW9kdWxlcyl8fChuLm5vZGVNb2R1bGVzPVtdKSxuLm5vZGVDYWNoZWREYXRhJiZ0eXBlb2Ygbi5ub2RlQ2FjaGVkRGF0YT09Im9iamVjdCImJih0eXBlb2Ygbi5ub2RlQ2FjaGVkRGF0YS5zZWVkIT0ic3RyaW5nIiYmKG4ubm9kZUNhY2hlZERhdGEuc2VlZD0ic2VlZCIpLCh0eXBlb2Ygbi5ub2RlQ2FjaGVkRGF0YS53cml0ZURlbGF5IT0ibnVtYmVyInx8bi5ub2RlQ2FjaGVkRGF0YS53cml0ZURlbGF5PDApJiYobi5ub2RlQ2FjaGVkRGF0YS53cml0ZURlbGF5PTFlMyo3KSwhbi5ub2RlQ2FjaGVkRGF0YS5wYXRofHx0eXBlb2Ygbi5ub2RlQ2FjaGVkRGF0YS5wYXRoIT0ic3RyaW5nIikpe3ZhciBzPUUobmV3IEVycm9yKCJJTlZBTElEIGNhY2hlZCBkYXRhIGNvbmZpZ3VyYXRpb24sICdwYXRoJyBNVVNUIGJlIHNldCIpKTtzLnBoYXNlPSJjb25maWd1cmF0aW9uIixuLm9uRXJyb3Iocyksbi5ub2RlQ2FjaGVkRGF0YT12b2lkIDB9cmV0dXJuIG59LGEubWVyZ2VDb25maWd1cmF0aW9uT3B0aW9ucz1mdW5jdGlvbihuLHYpe249PT12b2lkIDAmJihuPW51bGwpLHY9PT12b2lkIDAmJih2PW51bGwpO3ZhciBzPWwuVXRpbGl0aWVzLnJlY3Vyc2l2ZUNsb25lKHZ8fHt9KTtyZXR1cm4gbC5VdGlsaXRpZXMuZm9yRWFjaFByb3BlcnR5KG4sZnVuY3Rpb24oZSx0KXtlPT09Imlnbm9yZUR1cGxpY2F0ZU1vZHVsZXMiJiZ0eXBlb2Ygcy5pZ25vcmVEdXBsaWNhdGVNb2R1bGVzIT0idW5kZWZpbmVkIj9zLmlnbm9yZUR1cGxpY2F0ZU1vZHVsZXM9cy5pZ25vcmVEdXBsaWNhdGVNb2R1bGVzLmNvbmNhdCh0KTplPT09InBhdGhzIiYmdHlwZW9mIHMucGF0aHMhPSJ1bmRlZmluZWQiP2wuVXRpbGl0aWVzLmZvckVhY2hQcm9wZXJ0eSh0LGZ1bmN0aW9uKHIsbyl7cmV0dXJuIHMucGF0aHNbcl09b30pOmU9PT0iY29uZmlnIiYmdHlwZW9mIHMuY29uZmlnIT0idW5kZWZpbmVkIj9sLlV0aWxpdGllcy5mb3JFYWNoUHJvcGVydHkodCxmdW5jdGlvbihyLG8pe3JldHVybiBzLmNvbmZpZ1tyXT1vfSk6c1tlXT1sLlV0aWxpdGllcy5yZWN1cnNpdmVDbG9uZSh0KX0pLGEudmFsaWRhdGVDb25maWd1cmF0aW9uT3B0aW9ucyhzKX0sYX0oKTtsLkNvbmZpZ3VyYXRpb25PcHRpb25zVXRpbD1wO3ZhciBnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShuLHYpe2lmKHRoaXMuX2Vudj1uLHRoaXMub3B0aW9ucz1wLm1lcmdlQ29uZmlndXJhdGlvbk9wdGlvbnModiksdGhpcy5fY3JlYXRlSWdub3JlRHVwbGljYXRlTW9kdWxlc01hcCgpLHRoaXMuX2NyZWF0ZU5vZGVNb2R1bGVzTWFwKCksdGhpcy5fY3JlYXRlU29ydGVkUGF0aHNSdWxlcygpLHRoaXMub3B0aW9ucy5iYXNlVXJsPT09IiIpe2lmKHRoaXMub3B0aW9ucy5ub2RlUmVxdWlyZSYmdGhpcy5vcHRpb25zLm5vZGVSZXF1aXJlLm1haW4mJnRoaXMub3B0aW9ucy5ub2RlUmVxdWlyZS5tYWluLmZpbGVuYW1lJiZ0aGlzLl9lbnYuaXNOb2RlKXt2YXIgcz10aGlzLm9wdGlvbnMubm9kZVJlcXVpcmUubWFpbi5maWxlbmFtZSxlPU1hdGgubWF4KHMubGFzdEluZGV4T2YoIi8iKSxzLmxhc3RJbmRleE9mKCJcXCIpKTt0aGlzLm9wdGlvbnMuYmFzZVVybD1zLnN1YnN0cmluZygwLGUrMSl9aWYodGhpcy5vcHRpb25zLm5vZGVNYWluJiZ0aGlzLl9lbnYuaXNOb2RlKXt2YXIgcz10aGlzLm9wdGlvbnMubm9kZU1haW4sZT1NYXRoLm1heChzLmxhc3RJbmRleE9mKCIvIikscy5sYXN0SW5kZXhPZigiXFwiKSk7dGhpcy5vcHRpb25zLmJhc2VVcmw9cy5zdWJzdHJpbmcoMCxlKzEpfX19cmV0dXJuIGEucHJvdG90eXBlLl9jcmVhdGVJZ25vcmVEdXBsaWNhdGVNb2R1bGVzTWFwPWZ1bmN0aW9uKCl7dGhpcy5pZ25vcmVEdXBsaWNhdGVNb2R1bGVzTWFwPXt9O2Zvcih2YXIgbj0wO248dGhpcy5vcHRpb25zLmlnbm9yZUR1cGxpY2F0ZU1vZHVsZXMubGVuZ3RoO24rKyl0aGlzLmlnbm9yZUR1cGxpY2F0ZU1vZHVsZXNNYXBbdGhpcy5vcHRpb25zLmlnbm9yZUR1cGxpY2F0ZU1vZHVsZXNbbl1dPSEwfSxhLnByb3RvdHlwZS5fY3JlYXRlTm9kZU1vZHVsZXNNYXA9ZnVuY3Rpb24oKXt0aGlzLm5vZGVNb2R1bGVzTWFwPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKHZhciBuPTAsdj10aGlzLm9wdGlvbnMubm9kZU1vZHVsZXM7bjx2Lmxlbmd0aDtuKyspe3ZhciBzPXZbbl07dGhpcy5ub2RlTW9kdWxlc01hcFtzXT0hMH19LGEucHJvdG90eXBlLl9jcmVhdGVTb3J0ZWRQYXRoc1J1bGVzPWZ1bmN0aW9uKCl7dmFyIG49dGhpczt0aGlzLnNvcnRlZFBhdGhzUnVsZXM9W10sbC5VdGlsaXRpZXMuZm9yRWFjaFByb3BlcnR5KHRoaXMub3B0aW9ucy5wYXRocyxmdW5jdGlvbih2LHMpe0FycmF5LmlzQXJyYXkocyk/bi5zb3J0ZWRQYXRoc1J1bGVzLnB1c2goe2Zyb206dix0bzpzfSk6bi5zb3J0ZWRQYXRoc1J1bGVzLnB1c2goe2Zyb206dix0bzpbc119KX0pLHRoaXMuc29ydGVkUGF0aHNSdWxlcy5zb3J0KGZ1bmN0aW9uKHYscyl7cmV0dXJuIHMuZnJvbS5sZW5ndGgtdi5mcm9tLmxlbmd0aH0pfSxhLnByb3RvdHlwZS5jbG9uZUFuZE1lcmdlPWZ1bmN0aW9uKG4pe3JldHVybiBuZXcgYSh0aGlzLl9lbnYscC5tZXJnZUNvbmZpZ3VyYXRpb25PcHRpb25zKG4sdGhpcy5vcHRpb25zKSl9LGEucHJvdG90eXBlLmdldE9wdGlvbnNMaXRlcmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9uc30sYS5wcm90b3R5cGUuX2FwcGx5UGF0aHM9ZnVuY3Rpb24obil7Zm9yKHZhciB2LHM9MCxlPXRoaXMuc29ydGVkUGF0aHNSdWxlcy5sZW5ndGg7czxlO3MrKylpZih2PXRoaXMuc29ydGVkUGF0aHNSdWxlc1tzXSxsLlV0aWxpdGllcy5zdGFydHNXaXRoKG4sdi5mcm9tKSl7Zm9yKHZhciB0PVtdLHI9MCxvPXYudG8ubGVuZ3RoO3I8bztyKyspdC5wdXNoKHYudG9bcl0rbi5zdWJzdHIodi5mcm9tLmxlbmd0aCkpO3JldHVybiB0fXJldHVybltuXX0sYS5wcm90b3R5cGUuX2FkZFVybEFyZ3NUb1VybD1mdW5jdGlvbihuKXtyZXR1cm4gbC5VdGlsaXRpZXMuY29udGFpbnNRdWVyeVN0cmluZyhuKT9uKyImIit0aGlzLm9wdGlvbnMudXJsQXJnczpuKyI/Iit0aGlzLm9wdGlvbnMudXJsQXJnc30sYS5wcm90b3R5cGUuX2FkZFVybEFyZ3NJZk5lY2Vzc2FyeVRvVXJsPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLm9wdGlvbnMudXJsQXJncz90aGlzLl9hZGRVcmxBcmdzVG9Vcmwobik6bn0sYS5wcm90b3R5cGUuX2FkZFVybEFyZ3NJZk5lY2Vzc2FyeVRvVXJscz1mdW5jdGlvbihuKXtpZih0aGlzLm9wdGlvbnMudXJsQXJncylmb3IodmFyIHY9MCxzPW4ubGVuZ3RoO3Y8czt2Kyspblt2XT10aGlzLl9hZGRVcmxBcmdzVG9Vcmwoblt2XSk7cmV0dXJuIG59LGEucHJvdG90eXBlLm1vZHVsZUlkVG9QYXRocz1mdW5jdGlvbihuKXtpZih0aGlzLl9lbnYuaXNOb2RlKXt2YXIgdj10aGlzLm5vZGVNb2R1bGVzTWFwW25dPT09ITB8fHRoaXMub3B0aW9ucy5hbWRNb2R1bGVzUGF0dGVybiBpbnN0YW5jZW9mIFJlZ0V4cCYmIXRoaXMub3B0aW9ucy5hbWRNb2R1bGVzUGF0dGVybi50ZXN0KG4pO2lmKHYpcmV0dXJuIHRoaXMuaXNCdWlsZCgpP1siZW1wdHk6Il06WyJub2RlfCIrbl19dmFyIHM9bixlO2lmKCFsLlV0aWxpdGllcy5lbmRzV2l0aChzLCIuanMiKSYmIWwuVXRpbGl0aWVzLmlzQWJzb2x1dGVQYXRoKHMpKXtlPXRoaXMuX2FwcGx5UGF0aHMocyk7Zm9yKHZhciB0PTAscj1lLmxlbmd0aDt0PHI7dCsrKXRoaXMuaXNCdWlsZCgpJiZlW3RdPT09ImVtcHR5OiJ8fChsLlV0aWxpdGllcy5pc0Fic29sdXRlUGF0aChlW3RdKXx8KGVbdF09dGhpcy5vcHRpb25zLmJhc2VVcmwrZVt0XSksIWwuVXRpbGl0aWVzLmVuZHNXaXRoKGVbdF0sIi5qcyIpJiYhbC5VdGlsaXRpZXMuY29udGFpbnNRdWVyeVN0cmluZyhlW3RdKSYmKGVbdF09ZVt0XSsiLmpzIikpfWVsc2UhbC5VdGlsaXRpZXMuZW5kc1dpdGgocywiLmpzIikmJiFsLlV0aWxpdGllcy5jb250YWluc1F1ZXJ5U3RyaW5nKHMpJiYocz1zKyIuanMiKSxlPVtzXTtyZXR1cm4gdGhpcy5fYWRkVXJsQXJnc0lmTmVjZXNzYXJ5VG9VcmxzKGUpfSxhLnByb3RvdHlwZS5yZXF1aXJlVG9Vcmw9ZnVuY3Rpb24obil7dmFyIHY9bjtyZXR1cm4gbC5VdGlsaXRpZXMuaXNBYnNvbHV0ZVBhdGgodil8fCh2PXRoaXMuX2FwcGx5UGF0aHModilbMF0sbC5VdGlsaXRpZXMuaXNBYnNvbHV0ZVBhdGgodil8fCh2PXRoaXMub3B0aW9ucy5iYXNlVXJsK3YpKSx0aGlzLl9hZGRVcmxBcmdzSWZOZWNlc3NhcnlUb1VybCh2KX0sYS5wcm90b3R5cGUuaXNCdWlsZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMuaXNCdWlsZH0sYS5wcm90b3R5cGUuc2hvdWxkSW52b2tlRmFjdG9yeT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5vcHRpb25zLmlzQnVpbGQ/dGhpcy5vcHRpb25zLmJ1aWxkRm9yY2VJbnZva2VGYWN0b3J5W25dfHxsLlV0aWxpdGllcy5pc0Fub255bW91c01vZHVsZShuKTohMH0sYS5wcm90b3R5cGUuaXNEdXBsaWNhdGVNZXNzYWdlSWdub3JlZEZvcj1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5pZ25vcmVEdXBsaWNhdGVNb2R1bGVzTWFwLmhhc093blByb3BlcnR5KG4pfSxhLnByb3RvdHlwZS5nZXRDb25maWdGb3JNb2R1bGU9ZnVuY3Rpb24obil7aWYodGhpcy5vcHRpb25zLmNvbmZpZylyZXR1cm4gdGhpcy5vcHRpb25zLmNvbmZpZ1tuXX0sYS5wcm90b3R5cGUuc2hvdWxkQ2F0Y2hFcnJvcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMuY2F0Y2hFcnJvcn0sYS5wcm90b3R5cGUuc2hvdWxkUmVjb3JkU3RhdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLnJlY29yZFN0YXRzfSxhLnByb3RvdHlwZS5vbkVycm9yPWZ1bmN0aW9uKG4pe3RoaXMub3B0aW9ucy5vbkVycm9yKG4pfSxhfSgpO2wuQ29uZmlndXJhdGlvbj1nfSkoQU1ETG9hZGVyfHwoQU1ETG9hZGVyPXt9KSk7dmFyIEFNRExvYWRlcjsoZnVuY3Rpb24obCl7dmFyIEU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe3RoaXMuX2Vudj10LHRoaXMuX3NjcmlwdExvYWRlcj1udWxsLHRoaXMuX2NhbGxiYWNrTWFwPXt9fXJldHVybiBlLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKHQscixvLGkpe3ZhciB1PXRoaXM7aWYoIXRoaXMuX3NjcmlwdExvYWRlcilpZih0aGlzLl9lbnYuaXNXZWJXb3JrZXIpdGhpcy5fc2NyaXB0TG9hZGVyPW5ldyBhO2Vsc2UgaWYodGhpcy5fZW52LmlzRWxlY3Ryb25SZW5kZXJlcil7dmFyIGY9dC5nZXRDb25maWcoKS5nZXRPcHRpb25zTGl0ZXJhbCgpLnByZWZlclNjcmlwdFRhZ3M7Zj90aGlzLl9zY3JpcHRMb2FkZXI9bmV3IHA6dGhpcy5fc2NyaXB0TG9hZGVyPW5ldyBuKHRoaXMuX2Vudil9ZWxzZSB0aGlzLl9lbnYuaXNOb2RlP3RoaXMuX3NjcmlwdExvYWRlcj1uZXcgbih0aGlzLl9lbnYpOnRoaXMuX3NjcmlwdExvYWRlcj1uZXcgcDt2YXIgYz17Y2FsbGJhY2s6byxlcnJvcmJhY2s6aX07aWYodGhpcy5fY2FsbGJhY2tNYXAuaGFzT3duUHJvcGVydHkocikpe3RoaXMuX2NhbGxiYWNrTWFwW3JdLnB1c2goYyk7cmV0dXJufXRoaXMuX2NhbGxiYWNrTWFwW3JdPVtjXSx0aGlzLl9zY3JpcHRMb2FkZXIubG9hZCh0LHIsZnVuY3Rpb24oKXtyZXR1cm4gdS50cmlnZ2VyQ2FsbGJhY2socil9LGZ1bmN0aW9uKGQpe3JldHVybiB1LnRyaWdnZXJFcnJvcmJhY2socixkKX0pfSxlLnByb3RvdHlwZS50cmlnZ2VyQ2FsbGJhY2s9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fY2FsbGJhY2tNYXBbdF07ZGVsZXRlIHRoaXMuX2NhbGxiYWNrTWFwW3RdO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXJbb10uY2FsbGJhY2soKX0sZS5wcm90b3R5cGUudHJpZ2dlckVycm9yYmFjaz1mdW5jdGlvbih0LHIpe3ZhciBvPXRoaXMuX2NhbGxiYWNrTWFwW3RdO2RlbGV0ZSB0aGlzLl9jYWxsYmFja01hcFt0XTtmb3IodmFyIGk9MDtpPG8ubGVuZ3RoO2krKylvW2ldLmVycm9yYmFjayhyKX0sZX0oKSxwPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4gZS5wcm90b3R5cGUuYXR0YWNoTGlzdGVuZXJzPWZ1bmN0aW9uKHQscixvKXt2YXIgaT1mdW5jdGlvbigpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsdSksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsZil9LHU9ZnVuY3Rpb24oYyl7aSgpLHIoKX0sZj1mdW5jdGlvbihjKXtpKCksbyhjKX07dC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIix1KSx0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmKX0sZS5wcm90b3R5cGUubG9hZD1mdW5jdGlvbih0LHIsbyxpKXtpZigvXm5vZGVcfC8udGVzdChyKSl7dmFyIHU9dC5nZXRDb25maWcoKS5nZXRPcHRpb25zTGl0ZXJhbCgpLGY9dih0LmdldFJlY29yZGVyKCksdS5ub2RlUmVxdWlyZXx8bC5nbG9iYWwubm9kZVJlcXVpcmUpLGM9ci5zcGxpdCgifCIpLGQ9bnVsbDt0cnl7ZD1mKGNbMV0pfWNhdGNoKG0pe2kobSk7cmV0dXJufXQuZW5xdWV1ZURlZmluZUFub255bW91c01vZHVsZShbXSxmdW5jdGlvbigpe3JldHVybiBkfSksbygpfWVsc2V7dmFyIGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aC5zZXRBdHRyaWJ1dGUoImFzeW5jIiwiYXN5bmMiKSxoLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIpLHRoaXMuYXR0YWNoTGlzdGVuZXJzKGgsbyxpKTt2YXIgeT10LmdldENvbmZpZygpLmdldE9wdGlvbnNMaXRlcmFsKCkudHJ1c3RlZFR5cGVzUG9saWN5O3kmJihyPXkuY3JlYXRlU2NyaXB0VVJMKHIpKSxoLnNldEF0dHJpYnV0ZSgic3JjIixyKTt2YXIgXz10LmdldENvbmZpZygpLmdldE9wdGlvbnNMaXRlcmFsKCkuY3NwTm9uY2U7XyYmaC5zZXRBdHRyaWJ1dGUoIm5vbmNlIixfKSxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGgpfX0sZX0oKTtmdW5jdGlvbiBnKGUpe3ZhciB0PWUuZ2V0Q29uZmlnKCkuZ2V0T3B0aW9uc0xpdGVyYWwoKS50cnVzdGVkVHlwZXNQb2xpY3k7dHJ5e3ZhciByPXQ/c2VsZi5ldmFsKHQuY3JlYXRlU2NyaXB0KCIiLCJ0cnVlIikpOm5ldyBGdW5jdGlvbigidHJ1ZSIpO3JldHVybiByLmNhbGwoc2VsZiksITB9Y2F0Y2h7cmV0dXJuITF9fXZhciBhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuX2NhY2hlZENhblVzZUV2YWw9bnVsbH1yZXR1cm4gZS5wcm90b3R5cGUuX2NhblVzZUV2YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NhY2hlZENhblVzZUV2YWw9PT1udWxsJiYodGhpcy5fY2FjaGVkQ2FuVXNlRXZhbD1nKHQpKSx0aGlzLl9jYWNoZWRDYW5Vc2VFdmFsfSxlLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKHQscixvLGkpe2lmKC9ebm9kZVx8Ly50ZXN0KHIpKXt2YXIgdT10LmdldENvbmZpZygpLmdldE9wdGlvbnNMaXRlcmFsKCksZj12KHQuZ2V0UmVjb3JkZXIoKSx1Lm5vZGVSZXF1aXJlfHxsLmdsb2JhbC5ub2RlUmVxdWlyZSksYz1yLnNwbGl0KCJ8IiksZD1udWxsO3RyeXtkPWYoY1sxXSl9Y2F0Y2goXyl7aShfKTtyZXR1cm59dC5lbnF1ZXVlRGVmaW5lQW5vbnltb3VzTW9kdWxlKFtdLGZ1bmN0aW9uKCl7cmV0dXJuIGR9KSxvKCl9ZWxzZXt2YXIgaD10LmdldENvbmZpZygpLmdldE9wdGlvbnNMaXRlcmFsKCkudHJ1c3RlZFR5cGVzUG9saWN5LHk9L14oKGh0dHA6KXwoaHR0cHM6KXwoZmlsZTopKS8udGVzdChyKSYmci5zdWJzdHJpbmcoMCxzZWxmLm9yaWdpbi5sZW5ndGgpIT09c2VsZi5vcmlnaW47aWYoIXkmJnRoaXMuX2NhblVzZUV2YWwodCkpe2ZldGNoKHIpLnRoZW4oZnVuY3Rpb24oXyl7aWYoXy5zdGF0dXMhPT0yMDApdGhyb3cgbmV3IEVycm9yKF8uc3RhdHVzVGV4dCk7cmV0dXJuIF8udGV4dCgpfSkudGhlbihmdW5jdGlvbihfKXtfPV8rYAogIC8vIyBzb3VyY2VVUkw9YCtyO3ZhciBtPWg/c2VsZi5ldmFsKGguY3JlYXRlU2NyaXB0KCIiLF8pKTpuZXcgRnVuY3Rpb24oXyk7bS5jYWxsKHNlbGYpLG8oKX0pLnRoZW4odm9pZCAwLGkpO3JldHVybn10cnl7aCYmKHI9aC5jcmVhdGVTY3JpcHRVUkwocikpLGltcG9ydFNjcmlwdHMociksbygpfWNhdGNoKF8pe2koXyl9fX0sZX0oKSxuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt0aGlzLl9lbnY9dCx0aGlzLl9kaWRJbml0aWFsaXplPSExLHRoaXMuX2RpZFBhdGNoTm9kZVJlcXVpcmU9ITF9cmV0dXJuIGUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKHQpe3RoaXMuX2RpZEluaXRpYWxpemV8fCh0aGlzLl9kaWRJbml0aWFsaXplPSEwLHRoaXMuX2ZzPXQoImZzIiksdGhpcy5fdm09dCgidm0iKSx0aGlzLl9wYXRoPXQoInBhdGgiKSx0aGlzLl9jcnlwdG89dCgiY3J5cHRvIikpfSxlLnByb3RvdHlwZS5faW5pdE5vZGVSZXF1aXJlPWZ1bmN0aW9uKHQscil7dmFyIG89ci5nZXRDb25maWcoKS5nZXRPcHRpb25zTGl0ZXJhbCgpLm5vZGVDYWNoZWREYXRhO2lmKCFvfHx0aGlzLl9kaWRQYXRjaE5vZGVSZXF1aXJlKXJldHVybjt0aGlzLl9kaWRQYXRjaE5vZGVSZXF1aXJlPSEwO3ZhciBpPXRoaXMsdT10KCJtb2R1bGUiKTtmdW5jdGlvbiBmKGMpe3ZhciBkPWMuY29uc3RydWN0b3IsaD1mdW5jdGlvbihfKXt0cnl7cmV0dXJuIGMucmVxdWlyZShfKX1maW5hbGx5e319O3JldHVybiBoLnJlc29sdmU9ZnVuY3Rpb24oXyxtKXtyZXR1cm4gZC5fcmVzb2x2ZUZpbGVuYW1lKF8sYywhMSxtKX0saC5yZXNvbHZlLnBhdGhzPWZ1bmN0aW9uKF8pe3JldHVybiBkLl9yZXNvbHZlTG9va3VwUGF0aHMoXyxjKX0saC5tYWluPXByb2Nlc3MubWFpbk1vZHVsZSxoLmV4dGVuc2lvbnM9ZC5fZXh0ZW5zaW9ucyxoLmNhY2hlPWQuX2NhY2hlLGh9dS5wcm90b3R5cGUuX2NvbXBpbGU9ZnVuY3Rpb24oYyxkKXt2YXIgaD11LndyYXAoYy5yZXBsYWNlKC9eIyEuKi8sIiIpKSx5PXIuZ2V0UmVjb3JkZXIoKSxfPWkuX2dldENhY2hlZERhdGFQYXRoKG8sZCksbT17ZmlsZW5hbWU6ZH0sUjt0cnl7dmFyIFA9aS5fZnMucmVhZEZpbGVTeW5jKF8pO1I9UC5zbGljZSgwLDE2KSxtLmNhY2hlZERhdGE9UC5zbGljZSgxNikseS5yZWNvcmQoNjAsXyl9Y2F0Y2h7eS5yZWNvcmQoNjEsXyl9dmFyIGI9bmV3IGkuX3ZtLlNjcmlwdChoLG0pLEk9Yi5ydW5JblRoaXNDb250ZXh0KG0pLFU9aS5fcGF0aC5kaXJuYW1lKGQpLHc9Zih0aGlzKSxPPVt0aGlzLmV4cG9ydHMsdyx0aGlzLGQsVSxwcm9jZXNzLF9jb21tb25qc0dsb2JhbCxCdWZmZXJdLEM9SS5hcHBseSh0aGlzLmV4cG9ydHMsTyk7cmV0dXJuIGkuX2hhbmRsZUNhY2hlZERhdGEoYixoLF8sIW0uY2FjaGVkRGF0YSxyKSxpLl92ZXJpZnlDYWNoZWREYXRhKGIsaCxfLFIsciksQ319LGUucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24odCxyLG8saSl7dmFyIHU9dGhpcyxmPXQuZ2V0Q29uZmlnKCkuZ2V0T3B0aW9uc0xpdGVyYWwoKSxjPXYodC5nZXRSZWNvcmRlcigpLGYubm9kZVJlcXVpcmV8fGwuZ2xvYmFsLm5vZGVSZXF1aXJlKSxkPWYubm9kZUluc3RydW1lbnRlcnx8ZnVuY3Rpb24oSSl7cmV0dXJuIEl9O3RoaXMuX2luaXQoYyksdGhpcy5faW5pdE5vZGVSZXF1aXJlKGMsdCk7dmFyIGg9dC5nZXRSZWNvcmRlcigpO2lmKC9ebm9kZVx8Ly50ZXN0KHIpKXt2YXIgeT1yLnNwbGl0KCJ8IiksXz1udWxsO3RyeXtfPWMoeVsxXSl9Y2F0Y2goSSl7aShJKTtyZXR1cm59dC5lbnF1ZXVlRGVmaW5lQW5vbnltb3VzTW9kdWxlKFtdLGZ1bmN0aW9uKCl7cmV0dXJuIF99KSxvKCl9ZWxzZXtyPWwuVXRpbGl0aWVzLmZpbGVVcmlUb0ZpbGVQYXRoKHRoaXMuX2Vudi5pc1dpbmRvd3Mscik7dmFyIG09dGhpcy5fcGF0aC5ub3JtYWxpemUociksUj10aGlzLl9nZXRFbGVjdHJvblJlbmRlcmVyU2NyaXB0UGF0aE9yVXJpKG0pLFA9Qm9vbGVhbihmLm5vZGVDYWNoZWREYXRhKSxiPVA/dGhpcy5fZ2V0Q2FjaGVkRGF0YVBhdGgoZi5ub2RlQ2FjaGVkRGF0YSxyKTp2b2lkIDA7dGhpcy5fcmVhZFNvdXJjZUFuZENhY2hlZERhdGEobSxiLGgsZnVuY3Rpb24oSSxVLHcsTyl7aWYoSSl7aShJKTtyZXR1cm59dmFyIEM7VS5jaGFyQ29kZUF0KDApPT09ZS5fQk9NP0M9ZS5fUFJFRklYK1Uuc3Vic3RyaW5nKDEpK2UuX1NVRkZJWDpDPWUuX1BSRUZJWCtVK2UuX1NVRkZJWCxDPWQoQyxtKTt2YXIgTT17ZmlsZW5hbWU6UixjYWNoZWREYXRhOnd9LE49dS5fY3JlYXRlQW5kRXZhbFNjcmlwdCh0LEMsTSxvLGkpO3UuX2hhbmRsZUNhY2hlZERhdGEoTixDLGIsUCYmIXcsdCksdS5fdmVyaWZ5Q2FjaGVkRGF0YShOLEMsYixPLHQpfSl9fSxlLnByb3RvdHlwZS5fY3JlYXRlQW5kRXZhbFNjcmlwdD1mdW5jdGlvbih0LHIsbyxpLHUpe3ZhciBmPXQuZ2V0UmVjb3JkZXIoKTtmLnJlY29yZCgzMSxvLmZpbGVuYW1lKTt2YXIgYz1uZXcgdGhpcy5fdm0uU2NyaXB0KHIsbyksZD1jLnJ1bkluVGhpc0NvbnRleHQobyksaD10LmdldEdsb2JhbEFNRERlZmluZUZ1bmMoKSx5PSExLF89ZnVuY3Rpb24oKXtyZXR1cm4geT0hMCxoLmFwcGx5KG51bGwsYXJndW1lbnRzKX07cmV0dXJuIF8uYW1kPWguYW1kLGQuY2FsbChsLmdsb2JhbCx0LmdldEdsb2JhbEFNRFJlcXVpcmVGdW5jKCksXyxvLmZpbGVuYW1lLHRoaXMuX3BhdGguZGlybmFtZShvLmZpbGVuYW1lKSksZi5yZWNvcmQoMzIsby5maWxlbmFtZSkseT9pKCk6dShuZXcgRXJyb3IoIkRpZG4ndCByZWNlaXZlIGRlZmluZSBjYWxsIGluICIrby5maWxlbmFtZSsiISIpKSxjfSxlLnByb3RvdHlwZS5fZ2V0RWxlY3Ryb25SZW5kZXJlclNjcmlwdFBhdGhPclVyaT1mdW5jdGlvbih0KXtpZighdGhpcy5fZW52LmlzRWxlY3Ryb25SZW5kZXJlcilyZXR1cm4gdDt2YXIgcj10Lm1hdGNoKC9eKFthLXpdKVw6KC4qKS9pKTtyZXR1cm4gcj8iZmlsZTovLy8iKyhyWzFdLnRvVXBwZXJDYXNlKCkrIjoiK3JbMl0pLnJlcGxhY2UoL1xcL2csIi8iKToiZmlsZTovLyIrdH0sZS5wcm90b3R5cGUuX2dldENhY2hlZERhdGFQYXRoPWZ1bmN0aW9uKHQscil7dmFyIG89dGhpcy5fY3J5cHRvLmNyZWF0ZUhhc2goIm1kNSIpLnVwZGF0ZShyLCJ1dGY4IikudXBkYXRlKHQuc2VlZCwidXRmOCIpLnVwZGF0ZShwcm9jZXNzLmFyY2gsIiIpLmRpZ2VzdCgiaGV4IiksaT10aGlzLl9wYXRoLmJhc2VuYW1lKHIpLnJlcGxhY2UoL1wuanMkLywiIik7cmV0dXJuIHRoaXMuX3BhdGguam9pbih0LnBhdGgsaSsiLSIrbysiLmNvZGUiKX0sZS5wcm90b3R5cGUuX2hhbmRsZUNhY2hlZERhdGE9ZnVuY3Rpb24odCxyLG8saSx1KXt2YXIgZj10aGlzO3QuY2FjaGVkRGF0YVJlamVjdGVkP3RoaXMuX2ZzLnVubGluayhvLGZ1bmN0aW9uKGMpe3UuZ2V0UmVjb3JkZXIoKS5yZWNvcmQoNjIsbyksZi5fY3JlYXRlQW5kV3JpdGVDYWNoZWREYXRhKHQscixvLHUpLGMmJnUuZ2V0Q29uZmlnKCkub25FcnJvcihjKX0pOmkmJnRoaXMuX2NyZWF0ZUFuZFdyaXRlQ2FjaGVkRGF0YSh0LHIsbyx1KX0sZS5wcm90b3R5cGUuX2NyZWF0ZUFuZFdyaXRlQ2FjaGVkRGF0YT1mdW5jdGlvbih0LHIsbyxpKXt2YXIgdT10aGlzLGY9TWF0aC5jZWlsKGkuZ2V0Q29uZmlnKCkuZ2V0T3B0aW9uc0xpdGVyYWwoKS5ub2RlQ2FjaGVkRGF0YS53cml0ZURlbGF5KigxK01hdGgucmFuZG9tKCkpKSxjPS0xLGQ9MCxoPXZvaWQgMCx5PWZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2h8fChoPXUuX2NyeXB0by5jcmVhdGVIYXNoKCJtZDUiKS51cGRhdGUociwidXRmOCIpLmRpZ2VzdCgpKTt2YXIgXz10LmNyZWF0ZUNhY2hlZERhdGEoKTtpZighKF8ubGVuZ3RoPT09MHx8Xy5sZW5ndGg9PT1jfHxkPj01KSl7aWYoXy5sZW5ndGg8Yyl7eSgpO3JldHVybn1jPV8ubGVuZ3RoLHUuX2ZzLndyaXRlRmlsZShvLEJ1ZmZlci5jb25jYXQoW2gsX10pLGZ1bmN0aW9uKG0pe20mJmkuZ2V0Q29uZmlnKCkub25FcnJvcihtKSxpLmdldFJlY29yZGVyKCkucmVjb3JkKDYzLG8pLHkoKX0pfX0sZipNYXRoLnBvdyg0LGQrKykpfTt5KCl9LGUucHJvdG90eXBlLl9yZWFkU291cmNlQW5kQ2FjaGVkRGF0YT1mdW5jdGlvbih0LHIsbyxpKXtpZighcil0aGlzLl9mcy5yZWFkRmlsZSh0LHtlbmNvZGluZzoidXRmOCJ9LGkpO2Vsc2V7dmFyIHU9dm9pZCAwLGY9dm9pZCAwLGM9dm9pZCAwLGQ9MixoPWZ1bmN0aW9uKHkpe3k/aSh5KTotLWQ9PTAmJmkodm9pZCAwLHUsZixjKX07dGhpcy5fZnMucmVhZEZpbGUodCx7ZW5jb2Rpbmc6InV0ZjgifSxmdW5jdGlvbih5LF8pe3U9XyxoKHkpfSksdGhpcy5fZnMucmVhZEZpbGUocixmdW5jdGlvbih5LF8peyF5JiZfJiZfLmxlbmd0aD4wPyhjPV8uc2xpY2UoMCwxNiksZj1fLnNsaWNlKDE2KSxvLnJlY29yZCg2MCxyKSk6by5yZWNvcmQoNjEsciksaCgpfSl9fSxlLnByb3RvdHlwZS5fdmVyaWZ5Q2FjaGVkRGF0YT1mdW5jdGlvbih0LHIsbyxpLHUpe3ZhciBmPXRoaXM7IWl8fHQuY2FjaGVkRGF0YVJlamVjdGVkfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGM9Zi5fY3J5cHRvLmNyZWF0ZUhhc2goIm1kNSIpLnVwZGF0ZShyLCJ1dGY4IikuZGlnZXN0KCk7aS5lcXVhbHMoYyl8fCh1LmdldENvbmZpZygpLm9uRXJyb3IobmV3IEVycm9yKCJGQUlMRUQgVE8gVkVSSUZZIENBQ0hFRCBEQVRBLCBkZWxldGluZyBzdGFsZSAnIitvKyInIG5vdywgYnV0IGEgUkVTVEFSVCBJUyBSRVFVSVJFRCIpKSxmLl9mcy51bmxpbmsobyxmdW5jdGlvbihkKXtkJiZ1LmdldENvbmZpZygpLm9uRXJyb3IoZCl9KSl9LE1hdGguY2VpbCg1ZTMqKDErTWF0aC5yYW5kb20oKSkpKX0sZS5fQk9NPTY1Mjc5LGUuX1BSRUZJWD0iKGZ1bmN0aW9uIChyZXF1aXJlLCBkZWZpbmUsIF9fZmlsZW5hbWUsIF9fZGlybmFtZSkgeyAiLGUuX1NVRkZJWD1gCiAgfSk7YCxlfSgpO2Z1bmN0aW9uIHYoZSx0KXtpZih0Ll9fJF9faXNSZWNvcmRlZClyZXR1cm4gdDt2YXIgcj1mdW5jdGlvbihpKXtlLnJlY29yZCgzMyxpKTt0cnl7cmV0dXJuIHQoaSl9ZmluYWxseXtlLnJlY29yZCgzNCxpKX19O3JldHVybiByLl9fJF9faXNSZWNvcmRlZD0hMCxyfWwuZW5zdXJlUmVjb3JkZWROb2RlUmVxdWlyZT12O2Z1bmN0aW9uIHMoZSl7cmV0dXJuIG5ldyBFKGUpfWwuY3JlYXRlU2NyaXB0TG9hZGVyPXN9KShBTURMb2FkZXJ8fChBTURMb2FkZXI9e30pKTt2YXIgQU1ETG9hZGVyOyhmdW5jdGlvbihsKXt2YXIgRT1mdW5jdGlvbigpe2Z1bmN0aW9uIHMoZSl7dmFyIHQ9ZS5sYXN0SW5kZXhPZigiLyIpO3QhPT0tMT90aGlzLmZyb21Nb2R1bGVQYXRoPWUuc3Vic3RyKDAsdCsxKTp0aGlzLmZyb21Nb2R1bGVQYXRoPSIifXJldHVybiBzLl9ub3JtYWxpemVNb2R1bGVJZD1mdW5jdGlvbihlKXt2YXIgdD1lLHI7Zm9yKHI9L1wvXC5cLy87ci50ZXN0KHQpOyl0PXQucmVwbGFjZShyLCIvIik7Zm9yKHQ9dC5yZXBsYWNlKC9eXC5cLy9nLCIiKSxyPS9cLygoW15cL10pfChbXlwvXVteXC9cLl0pfChbXlwvXC5dW15cL10pfChbXlwvXVteXC9dW15cL10rKSlcL1wuXC5cLy87ci50ZXN0KHQpOyl0PXQucmVwbGFjZShyLCIvIik7cmV0dXJuIHQ9dC5yZXBsYWNlKC9eKChbXlwvXSl8KFteXC9dW15cL1wuXSl8KFteXC9cLl1bXlwvXSl8KFteXC9dW15cL11bXlwvXSspKVwvXC5cLlwvLywiIiksdH0scy5wcm90b3R5cGUucmVzb2x2ZU1vZHVsZT1mdW5jdGlvbihlKXt2YXIgdD1lO3JldHVybiBsLlV0aWxpdGllcy5pc0Fic29sdXRlUGF0aCh0KXx8KGwuVXRpbGl0aWVzLnN0YXJ0c1dpdGgodCwiLi8iKXx8bC5VdGlsaXRpZXMuc3RhcnRzV2l0aCh0LCIuLi8iKSkmJih0PXMuX25vcm1hbGl6ZU1vZHVsZUlkKHRoaXMuZnJvbU1vZHVsZVBhdGgrdCkpLHR9LHMuUk9PVD1uZXcgcygiIiksc30oKTtsLk1vZHVsZUlkUmVzb2x2ZXI9RTt2YXIgcD1mdW5jdGlvbigpe2Z1bmN0aW9uIHMoZSx0LHIsbyxpLHUpe3RoaXMuaWQ9ZSx0aGlzLnN0cklkPXQsdGhpcy5kZXBlbmRlbmNpZXM9cix0aGlzLl9jYWxsYmFjaz1vLHRoaXMuX2Vycm9yYmFjaz1pLHRoaXMubW9kdWxlSWRSZXNvbHZlcj11LHRoaXMuZXhwb3J0cz17fSx0aGlzLmVycm9yPW51bGwsdGhpcy5leHBvcnRzUGFzc2VkSW49ITEsdGhpcy51bnJlc29sdmVkRGVwZW5kZW5jaWVzQ291bnQ9dGhpcy5kZXBlbmRlbmNpZXMubGVuZ3RoLHRoaXMuX2lzQ29tcGxldGU9ITF9cmV0dXJuIHMuX3NhZmVJbnZva2VGdW5jdGlvbj1mdW5jdGlvbihlLHQpe3RyeXtyZXR1cm57cmV0dXJuZWRWYWx1ZTplLmFwcGx5KGwuZ2xvYmFsLHQpLHByb2R1Y2VkRXJyb3I6bnVsbH19Y2F0Y2gocil7cmV0dXJue3JldHVybmVkVmFsdWU6bnVsbCxwcm9kdWNlZEVycm9yOnJ9fX0scy5faW52b2tlRmFjdG9yeT1mdW5jdGlvbihlLHQscixvKXtyZXR1cm4gZS5zaG91bGRJbnZva2VGYWN0b3J5KHQpP2Uuc2hvdWxkQ2F0Y2hFcnJvcigpP3RoaXMuX3NhZmVJbnZva2VGdW5jdGlvbihyLG8pOntyZXR1cm5lZFZhbHVlOnIuYXBwbHkobC5nbG9iYWwsbykscHJvZHVjZWRFcnJvcjpudWxsfTp7cmV0dXJuZWRWYWx1ZTpudWxsLHByb2R1Y2VkRXJyb3I6bnVsbH19LHMucHJvdG90eXBlLmNvbXBsZXRlPWZ1bmN0aW9uKGUsdCxyLG8pe3RoaXMuX2lzQ29tcGxldGU9ITA7dmFyIGk9bnVsbDtpZih0aGlzLl9jYWxsYmFjaylpZih0eXBlb2YgdGhpcy5fY2FsbGJhY2s9PSJmdW5jdGlvbiIpe2UucmVjb3JkKDIxLHRoaXMuc3RySWQpO3ZhciB1PXMuX2ludm9rZUZhY3RvcnkodCx0aGlzLnN0cklkLHRoaXMuX2NhbGxiYWNrLHIpO2k9dS5wcm9kdWNlZEVycm9yLGUucmVjb3JkKDIyLHRoaXMuc3RySWQpLCFpJiZ0eXBlb2YgdS5yZXR1cm5lZFZhbHVlIT0idW5kZWZpbmVkIiYmKCF0aGlzLmV4cG9ydHNQYXNzZWRJbnx8bC5VdGlsaXRpZXMuaXNFbXB0eSh0aGlzLmV4cG9ydHMpKSYmKHRoaXMuZXhwb3J0cz11LnJldHVybmVkVmFsdWUpfWVsc2UgdGhpcy5leHBvcnRzPXRoaXMuX2NhbGxiYWNrO2lmKGkpe3ZhciBmPWwuZW5zdXJlRXJyb3IoaSk7Zi5waGFzZT0iZmFjdG9yeSIsZi5tb2R1bGVJZD10aGlzLnN0cklkLGYubmVlZGVkQnk9byh0aGlzLmlkKSx0aGlzLmVycm9yPWYsdC5vbkVycm9yKGYpfXRoaXMuZGVwZW5kZW5jaWVzPW51bGwsdGhpcy5fY2FsbGJhY2s9bnVsbCx0aGlzLl9lcnJvcmJhY2s9bnVsbCx0aGlzLm1vZHVsZUlkUmVzb2x2ZXI9bnVsbH0scy5wcm90b3R5cGUub25EZXBlbmRlbmN5RXJyb3I9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2lzQ29tcGxldGU9ITAsdGhpcy5lcnJvcj1lLHRoaXMuX2Vycm9yYmFjaz8odGhpcy5fZXJyb3JiYWNrKGUpLCEwKTohMX0scy5wcm90b3R5cGUuaXNDb21wbGV0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pc0NvbXBsZXRlfSxzfSgpO2wuTW9kdWxlPXA7dmFyIGc9ZnVuY3Rpb24oKXtmdW5jdGlvbiBzKCl7dGhpcy5fbmV4dElkPTAsdGhpcy5fc3RyTW9kdWxlSWRUb0ludE1vZHVsZUlkPW5ldyBNYXAsdGhpcy5faW50TW9kdWxlSWRUb1N0ck1vZHVsZUlkPVtdLHRoaXMuZ2V0TW9kdWxlSWQoImV4cG9ydHMiKSx0aGlzLmdldE1vZHVsZUlkKCJtb2R1bGUiKSx0aGlzLmdldE1vZHVsZUlkKCJyZXF1aXJlIil9cmV0dXJuIHMucHJvdG90eXBlLmdldE1heE1vZHVsZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25leHRJZH0scy5wcm90b3R5cGUuZ2V0TW9kdWxlSWQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fc3RyTW9kdWxlSWRUb0ludE1vZHVsZUlkLmdldChlKTtyZXR1cm4gdHlwZW9mIHQ9PSJ1bmRlZmluZWQiJiYodD10aGlzLl9uZXh0SWQrKyx0aGlzLl9zdHJNb2R1bGVJZFRvSW50TW9kdWxlSWQuc2V0KGUsdCksdGhpcy5faW50TW9kdWxlSWRUb1N0ck1vZHVsZUlkW3RdPWUpLHR9LHMucHJvdG90eXBlLmdldFN0ck1vZHVsZUlkPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9pbnRNb2R1bGVJZFRvU3RyTW9kdWxlSWRbZV19LHN9KCksYT1mdW5jdGlvbigpe2Z1bmN0aW9uIHMoZSl7dGhpcy5pZD1lfXJldHVybiBzLkVYUE9SVFM9bmV3IHMoMCkscy5NT0RVTEU9bmV3IHMoMSkscy5SRVFVSVJFPW5ldyBzKDIpLHN9KCk7bC5SZWd1bGFyRGVwZW5kZW5jeT1hO3ZhciBuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcyhlLHQscil7dGhpcy5pZD1lLHRoaXMucGx1Z2luSWQ9dCx0aGlzLnBsdWdpblBhcmFtPXJ9cmV0dXJuIHN9KCk7bC5QbHVnaW5EZXBlbmRlbmN5PW47dmFyIHY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBzKGUsdCxyLG8saSl7aT09PXZvaWQgMCYmKGk9MCksdGhpcy5fZW52PWUsdGhpcy5fc2NyaXB0TG9hZGVyPXQsdGhpcy5fbG9hZGVyQXZhaWxhYmxlVGltZXN0YW1wPWksdGhpcy5fZGVmaW5lRnVuYz1yLHRoaXMuX3JlcXVpcmVGdW5jPW8sdGhpcy5fbW9kdWxlSWRQcm92aWRlcj1uZXcgZyx0aGlzLl9jb25maWc9bmV3IGwuQ29uZmlndXJhdGlvbih0aGlzLl9lbnYpLHRoaXMuX2hhc0RlcGVuZGVuY3lDeWNsZT0hMSx0aGlzLl9tb2R1bGVzMj1bXSx0aGlzLl9rbm93bk1vZHVsZXMyPVtdLHRoaXMuX2ludmVyc2VEZXBlbmRlbmNpZXMyPVtdLHRoaXMuX2ludmVyc2VQbHVnaW5EZXBlbmRlbmNpZXMyPW5ldyBNYXAsdGhpcy5fY3VycmVudEFub255bW91c0RlZmluZUNhbGw9bnVsbCx0aGlzLl9yZWNvcmRlcj1udWxsLHRoaXMuX2J1aWxkSW5mb1BhdGg9W10sdGhpcy5fYnVpbGRJbmZvRGVmaW5lU3RhY2s9W10sdGhpcy5fYnVpbGRJbmZvRGVwZW5kZW5jaWVzPVtdfXJldHVybiBzLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3JldHVybiBuZXcgcyh0aGlzLl9lbnYsdGhpcy5fc2NyaXB0TG9hZGVyLHRoaXMuX2RlZmluZUZ1bmMsdGhpcy5fcmVxdWlyZUZ1bmMsdGhpcy5fbG9hZGVyQXZhaWxhYmxlVGltZXN0YW1wKX0scy5wcm90b3R5cGUuZ2V0R2xvYmFsQU1ERGVmaW5lRnVuYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWZpbmVGdW5jfSxzLnByb3RvdHlwZS5nZXRHbG9iYWxBTURSZXF1aXJlRnVuYz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZXF1aXJlRnVuY30scy5fZmluZFJlbGV2YW50TG9jYXRpb25JblN0YWNrPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPWZ1bmN0aW9uKG0pe3JldHVybiBtLnJlcGxhY2UoL1xcL2csIi8iKX0sbz1yKGUpLGk9dC5zcGxpdCgvXG4vKSx1PTA7dTxpLmxlbmd0aDt1Kyspe3ZhciBmPWlbdV0ubWF0Y2goLyguKik6KFxkKyk6KFxkKylcKT8kLyk7aWYoZil7dmFyIGM9ZlsxXSxkPWZbMl0saD1mWzNdLHk9TWF0aC5tYXgoYy5sYXN0SW5kZXhPZigiICIpKzEsYy5sYXN0SW5kZXhPZigiKCIpKzEpO2lmKGM9Yy5zdWJzdHIoeSksYz1yKGMpLGM9PT1vKXt2YXIgXz17bGluZTpwYXJzZUludChkLDEwKSxjb2w6cGFyc2VJbnQoaCwxMCl9O3JldHVybiBfLmxpbmU9PT0xJiYoXy5jb2wtPSIoZnVuY3Rpb24gKHJlcXVpcmUsIGRlZmluZSwgX19maWxlbmFtZSwgX19kaXJuYW1lKSB7ICIubGVuZ3RoKSxffX19dGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3QgY29ycmVsYXRlIGRlZmluZSBjYWxsIHNpdGUgZm9yIG5lZWRsZSAiK2UpfSxzLnByb3RvdHlwZS5nZXRCdWlsZEluZm89ZnVuY3Rpb24oKXtpZighdGhpcy5fY29uZmlnLmlzQnVpbGQoKSlyZXR1cm4gbnVsbDtmb3IodmFyIGU9W10sdD0wLHI9MCxvPXRoaXMuX21vZHVsZXMyLmxlbmd0aDtyPG87cisrKXt2YXIgaT10aGlzLl9tb2R1bGVzMltyXTtpZighIWkpe3ZhciB1PXRoaXMuX2J1aWxkSW5mb1BhdGhbaS5pZF18fG51bGwsZj10aGlzLl9idWlsZEluZm9EZWZpbmVTdGFja1tpLmlkXXx8bnVsbCxjPXRoaXMuX2J1aWxkSW5mb0RlcGVuZGVuY2llc1tpLmlkXTtlW3QrK109e2lkOmkuc3RySWQscGF0aDp1LGRlZmluZUxvY2F0aW9uOnUmJmY/cy5fZmluZFJlbGV2YW50TG9jYXRpb25JblN0YWNrKHUsZik6bnVsbCxkZXBlbmRlbmNpZXM6YyxzaGltOm51bGwsZXhwb3J0czppLmV4cG9ydHN9fX1yZXR1cm4gZX0scy5wcm90b3R5cGUuZ2V0UmVjb3JkZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVjb3JkZXJ8fCh0aGlzLl9jb25maWcuc2hvdWxkUmVjb3JkU3RhdHMoKT90aGlzLl9yZWNvcmRlcj1uZXcgbC5Mb2FkZXJFdmVudFJlY29yZGVyKHRoaXMuX2xvYWRlckF2YWlsYWJsZVRpbWVzdGFtcCk6dGhpcy5fcmVjb3JkZXI9bC5OdWxsTG9hZGVyRXZlbnRSZWNvcmRlci5JTlNUQU5DRSksdGhpcy5fcmVjb3JkZXJ9LHMucHJvdG90eXBlLmdldExvYWRlckV2ZW50cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJlY29yZGVyKCkuZ2V0RXZlbnRzKCl9LHMucHJvdG90eXBlLmVucXVldWVEZWZpbmVBbm9ueW1vdXNNb2R1bGU9ZnVuY3Rpb24oZSx0KXtpZih0aGlzLl9jdXJyZW50QW5vbnltb3VzRGVmaW5lQ2FsbCE9PW51bGwpdGhyb3cgbmV3IEVycm9yKCJDYW4gb25seSBoYXZlIG9uZSBhbm9ueW1vdXMgZGVmaW5lIGNhbGwgcGVyIHNjcmlwdCBmaWxlIik7dmFyIHI9bnVsbDt0aGlzLl9jb25maWcuaXNCdWlsZCgpJiYocj1uZXcgRXJyb3IoIlN0YWNrTG9jYXRpb24iKS5zdGFja3x8bnVsbCksdGhpcy5fY3VycmVudEFub255bW91c0RlZmluZUNhbGw9e3N0YWNrOnIsZGVwZW5kZW5jaWVzOmUsY2FsbGJhY2s6dH19LHMucHJvdG90eXBlLmRlZmluZU1vZHVsZT1mdW5jdGlvbihlLHQscixvLGksdSl7dmFyIGY9dGhpczt1PT09dm9pZCAwJiYodT1uZXcgRShlKSk7dmFyIGM9dGhpcy5fbW9kdWxlSWRQcm92aWRlci5nZXRNb2R1bGVJZChlKTtpZih0aGlzLl9tb2R1bGVzMltjXSl7dGhpcy5fY29uZmlnLmlzRHVwbGljYXRlTWVzc2FnZUlnbm9yZWRGb3IoZSl8fGNvbnNvbGUud2FybigiRHVwbGljYXRlIGRlZmluaXRpb24gb2YgbW9kdWxlICciK2UrIiciKTtyZXR1cm59dmFyIGQ9bmV3IHAoYyxlLHRoaXMuX25vcm1hbGl6ZURlcGVuZGVuY2llcyh0LHUpLHIsbyx1KTt0aGlzLl9tb2R1bGVzMltjXT1kLHRoaXMuX2NvbmZpZy5pc0J1aWxkKCkmJih0aGlzLl9idWlsZEluZm9EZWZpbmVTdGFja1tjXT1pLHRoaXMuX2J1aWxkSW5mb0RlcGVuZGVuY2llc1tjXT0oZC5kZXBlbmRlbmNpZXN8fFtdKS5tYXAoZnVuY3Rpb24oaCl7cmV0dXJuIGYuX21vZHVsZUlkUHJvdmlkZXIuZ2V0U3RyTW9kdWxlSWQoaC5pZCl9KSksdGhpcy5fcmVzb2x2ZShkKX0scy5wcm90b3R5cGUuX25vcm1hbGl6ZURlcGVuZGVuY3k9ZnVuY3Rpb24oZSx0KXtpZihlPT09ImV4cG9ydHMiKXJldHVybiBhLkVYUE9SVFM7aWYoZT09PSJtb2R1bGUiKXJldHVybiBhLk1PRFVMRTtpZihlPT09InJlcXVpcmUiKXJldHVybiBhLlJFUVVJUkU7dmFyIHI9ZS5pbmRleE9mKCIhIik7aWYocj49MCl7dmFyIG89dC5yZXNvbHZlTW9kdWxlKGUuc3Vic3RyKDAscikpLGk9dC5yZXNvbHZlTW9kdWxlKGUuc3Vic3RyKHIrMSkpLHU9dGhpcy5fbW9kdWxlSWRQcm92aWRlci5nZXRNb2R1bGVJZChvKyIhIitpKSxmPXRoaXMuX21vZHVsZUlkUHJvdmlkZXIuZ2V0TW9kdWxlSWQobyk7cmV0dXJuIG5ldyBuKHUsZixpKX1yZXR1cm4gbmV3IGEodGhpcy5fbW9kdWxlSWRQcm92aWRlci5nZXRNb2R1bGVJZCh0LnJlc29sdmVNb2R1bGUoZSkpKX0scy5wcm90b3R5cGUuX25vcm1hbGl6ZURlcGVuZGVuY2llcz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj1bXSxvPTAsaT0wLHU9ZS5sZW5ndGg7aTx1O2krKylyW28rK109dGhpcy5fbm9ybWFsaXplRGVwZW5kZW5jeShlW2ldLHQpO3JldHVybiByfSxzLnByb3RvdHlwZS5fcmVsYXRpdmVSZXF1aXJlPWZ1bmN0aW9uKGUsdCxyLG8pe2lmKHR5cGVvZiB0PT0ic3RyaW5nIilyZXR1cm4gdGhpcy5zeW5jaHJvbm91c1JlcXVpcmUodCxlKTt0aGlzLmRlZmluZU1vZHVsZShsLlV0aWxpdGllcy5nZW5lcmF0ZUFub255bW91c01vZHVsZSgpLHQscixvLG51bGwsZSl9LHMucHJvdG90eXBlLnN5bmNocm9ub3VzUmVxdWlyZT1mdW5jdGlvbihlLHQpe3Q9PT12b2lkIDAmJih0PW5ldyBFKGUpKTt2YXIgcj10aGlzLl9ub3JtYWxpemVEZXBlbmRlbmN5KGUsdCksbz10aGlzLl9tb2R1bGVzMltyLmlkXTtpZighbyl0aHJvdyBuZXcgRXJyb3IoIkNoZWNrIGRlcGVuZGVuY3kgbGlzdCEgU3luY2hyb25vdXMgcmVxdWlyZSBjYW5ub3QgcmVzb2x2ZSBtb2R1bGUgJyIrZSsiJy4gVGhpcyBpcyB0aGUgZmlyc3QgbWVudGlvbiBvZiB0aGlzIG1vZHVsZSEiKTtpZighby5pc0NvbXBsZXRlKCkpdGhyb3cgbmV3IEVycm9yKCJDaGVjayBkZXBlbmRlbmN5IGxpc3QhIFN5bmNocm9ub3VzIHJlcXVpcmUgY2Fubm90IHJlc29sdmUgbW9kdWxlICciK2UrIicuIFRoaXMgbW9kdWxlIGhhcyBub3QgYmVlbiByZXNvbHZlZCBjb21wbGV0ZWx5IHlldC4iKTtpZihvLmVycm9yKXRocm93IG8uZXJyb3I7cmV0dXJuIG8uZXhwb3J0c30scy5wcm90b3R5cGUuY29uZmlndXJlPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5fY29uZmlnLnNob3VsZFJlY29yZFN0YXRzKCk7dD90aGlzLl9jb25maWc9bmV3IGwuQ29uZmlndXJhdGlvbih0aGlzLl9lbnYsZSk6dGhpcy5fY29uZmlnPXRoaXMuX2NvbmZpZy5jbG9uZUFuZE1lcmdlKGUpLHRoaXMuX2NvbmZpZy5zaG91bGRSZWNvcmRTdGF0cygpJiYhciYmKHRoaXMuX3JlY29yZGVyPW51bGwpfSxzLnByb3RvdHlwZS5nZXRDb25maWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29uZmlnfSxzLnByb3RvdHlwZS5fb25Mb2FkPWZ1bmN0aW9uKGUpe2lmKHRoaXMuX2N1cnJlbnRBbm9ueW1vdXNEZWZpbmVDYWxsIT09bnVsbCl7dmFyIHQ9dGhpcy5fY3VycmVudEFub255bW91c0RlZmluZUNhbGw7dGhpcy5fY3VycmVudEFub255bW91c0RlZmluZUNhbGw9bnVsbCx0aGlzLmRlZmluZU1vZHVsZSh0aGlzLl9tb2R1bGVJZFByb3ZpZGVyLmdldFN0ck1vZHVsZUlkKGUpLHQuZGVwZW5kZW5jaWVzLHQuY2FsbGJhY2ssbnVsbCx0LnN0YWNrKX19LHMucHJvdG90eXBlLl9jcmVhdGVMb2FkRXJyb3I9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLG89dGhpcy5fbW9kdWxlSWRQcm92aWRlci5nZXRTdHJNb2R1bGVJZChlKSxpPSh0aGlzLl9pbnZlcnNlRGVwZW5kZW5jaWVzMltlXXx8W10pLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gci5fbW9kdWxlSWRQcm92aWRlci5nZXRTdHJNb2R1bGVJZChmKX0pLHU9bC5lbnN1cmVFcnJvcih0KTtyZXR1cm4gdS5waGFzZT0ibG9hZGluZyIsdS5tb2R1bGVJZD1vLHUubmVlZGVkQnk9aSx1fSxzLnByb3RvdHlwZS5fb25Mb2FkRXJyb3I9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLl9jcmVhdGVMb2FkRXJyb3IoZSx0KTt0aGlzLl9tb2R1bGVzMltlXXx8KHRoaXMuX21vZHVsZXMyW2VdPW5ldyBwKGUsdGhpcy5fbW9kdWxlSWRQcm92aWRlci5nZXRTdHJNb2R1bGVJZChlKSxbXSxmdW5jdGlvbigpe30sbnVsbCxudWxsKSk7Zm9yKHZhciBvPVtdLGk9MCx1PXRoaXMuX21vZHVsZUlkUHJvdmlkZXIuZ2V0TWF4TW9kdWxlSWQoKTtpPHU7aSsrKW9baV09ITE7dmFyIGY9ITEsYz1bXTtmb3IoYy5wdXNoKGUpLG9bZV09ITA7Yy5sZW5ndGg+MDspe3ZhciBkPWMuc2hpZnQoKSxoPXRoaXMuX21vZHVsZXMyW2RdO2gmJihmPWgub25EZXBlbmRlbmN5RXJyb3Iocil8fGYpO3ZhciB5PXRoaXMuX2ludmVyc2VEZXBlbmRlbmNpZXMyW2RdO2lmKHkpZm9yKHZhciBpPTAsdT15Lmxlbmd0aDtpPHU7aSsrKXt2YXIgXz15W2ldO29bX118fChjLnB1c2goXyksb1tfXT0hMCl9fWZ8fHRoaXMuX2NvbmZpZy5vbkVycm9yKHIpfSxzLnByb3RvdHlwZS5faGFzRGVwZW5kZW5jeVBhdGg9ZnVuY3Rpb24oZSx0KXt2YXIgcj10aGlzLl9tb2R1bGVzMltlXTtpZighcilyZXR1cm4hMTtmb3IodmFyIG89W10saT0wLHU9dGhpcy5fbW9kdWxlSWRQcm92aWRlci5nZXRNYXhNb2R1bGVJZCgpO2k8dTtpKyspb1tpXT0hMTt2YXIgZj1bXTtmb3IoZi5wdXNoKHIpLG9bZV09ITA7Zi5sZW5ndGg+MDspe3ZhciBjPWYuc2hpZnQoKSxkPWMuZGVwZW5kZW5jaWVzO2lmKGQpZm9yKHZhciBpPTAsdT1kLmxlbmd0aDtpPHU7aSsrKXt2YXIgaD1kW2ldO2lmKGguaWQ9PT10KXJldHVybiEwO3ZhciB5PXRoaXMuX21vZHVsZXMyW2guaWRdO3kmJiFvW2guaWRdJiYob1toLmlkXT0hMCxmLnB1c2goeSkpfX1yZXR1cm4hMX0scy5wcm90b3R5cGUuX2ZpbmRDeWNsZVBhdGg9ZnVuY3Rpb24oZSx0LHIpe2lmKGU9PT10fHxyPT09NTApcmV0dXJuW2VdO3ZhciBvPXRoaXMuX21vZHVsZXMyW2VdO2lmKCFvKXJldHVybiBudWxsO3ZhciBpPW8uZGVwZW5kZW5jaWVzO2lmKGkpZm9yKHZhciB1PTAsZj1pLmxlbmd0aDt1PGY7dSsrKXt2YXIgYz10aGlzLl9maW5kQ3ljbGVQYXRoKGlbdV0uaWQsdCxyKzEpO2lmKGMhPT1udWxsKXJldHVybiBjLnB1c2goZSksY31yZXR1cm4gbnVsbH0scy5wcm90b3R5cGUuX2NyZWF0ZVJlcXVpcmU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxyPWZ1bmN0aW9uKG8saSx1KXtyZXR1cm4gdC5fcmVsYXRpdmVSZXF1aXJlKGUsbyxpLHUpfTtyZXR1cm4gci50b1VybD1mdW5jdGlvbihvKXtyZXR1cm4gdC5fY29uZmlnLnJlcXVpcmVUb1VybChlLnJlc29sdmVNb2R1bGUobykpfSxyLmdldFN0YXRzPWZ1bmN0aW9uKCl7cmV0dXJuIHQuZ2V0TG9hZGVyRXZlbnRzKCl9LHIuaGFzRGVwZW5kZW5jeUN5Y2xlPWZ1bmN0aW9uKCl7cmV0dXJuIHQuX2hhc0RlcGVuZGVuY3lDeWNsZX0sci5jb25maWc9ZnVuY3Rpb24obyxpKXtpPT09dm9pZCAwJiYoaT0hMSksdC5jb25maWd1cmUobyxpKX0sci5fXyRfX25vZGVSZXF1aXJlPWwuZ2xvYmFsLm5vZGVSZXF1aXJlLHJ9LHMucHJvdG90eXBlLl9sb2FkTW9kdWxlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYoISh0aGlzLl9tb2R1bGVzMltlXXx8dGhpcy5fa25vd25Nb2R1bGVzMltlXSkpe3RoaXMuX2tub3duTW9kdWxlczJbZV09ITA7dmFyIHI9dGhpcy5fbW9kdWxlSWRQcm92aWRlci5nZXRTdHJNb2R1bGVJZChlKSxvPXRoaXMuX2NvbmZpZy5tb2R1bGVJZFRvUGF0aHMociksaT0vXkBbXlwvXStcL1teXC9dKyQvO3RoaXMuX2Vudi5pc05vZGUmJihyLmluZGV4T2YoIi8iKT09PS0xfHxpLnRlc3QocikpJiZvLnB1c2goIm5vZGV8IityKTt2YXIgdT0tMSxmPWZ1bmN0aW9uKGMpe2lmKHUrKyx1Pj1vLmxlbmd0aCl0Ll9vbkxvYWRFcnJvcihlLGMpO2Vsc2V7dmFyIGQ9b1t1XSxoPXQuZ2V0UmVjb3JkZXIoKTtpZih0Ll9jb25maWcuaXNCdWlsZCgpJiZkPT09ImVtcHR5OiIpe3QuX2J1aWxkSW5mb1BhdGhbZV09ZCx0LmRlZmluZU1vZHVsZSh0Ll9tb2R1bGVJZFByb3ZpZGVyLmdldFN0ck1vZHVsZUlkKGUpLFtdLG51bGwsbnVsbCxudWxsKSx0Ll9vbkxvYWQoZSk7cmV0dXJufWgucmVjb3JkKDEwLGQpLHQuX3NjcmlwdExvYWRlci5sb2FkKHQsZCxmdW5jdGlvbigpe3QuX2NvbmZpZy5pc0J1aWxkKCkmJih0Ll9idWlsZEluZm9QYXRoW2VdPWQpLGgucmVjb3JkKDExLGQpLHQuX29uTG9hZChlKX0sZnVuY3Rpb24oeSl7aC5yZWNvcmQoMTIsZCksZih5KX0pfX07ZihudWxsKX19LHMucHJvdG90eXBlLl9sb2FkUGx1Z2luRGVwZW5kZW5jeT1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXM7aWYoISh0aGlzLl9tb2R1bGVzMlt0LmlkXXx8dGhpcy5fa25vd25Nb2R1bGVzMlt0LmlkXSkpe3RoaXMuX2tub3duTW9kdWxlczJbdC5pZF09ITA7dmFyIG89ZnVuY3Rpb24oaSl7ci5kZWZpbmVNb2R1bGUoci5fbW9kdWxlSWRQcm92aWRlci5nZXRTdHJNb2R1bGVJZCh0LmlkKSxbXSxpLG51bGwsbnVsbCl9O28uZXJyb3I9ZnVuY3Rpb24oaSl7ci5fY29uZmlnLm9uRXJyb3Ioci5fY3JlYXRlTG9hZEVycm9yKHQuaWQsaSkpfSxlLmxvYWQodC5wbHVnaW5QYXJhbSx0aGlzLl9jcmVhdGVSZXF1aXJlKEUuUk9PVCksbyx0aGlzLl9jb25maWcuZ2V0T3B0aW9uc0xpdGVyYWwoKSl9fSxzLnByb3RvdHlwZS5fcmVzb2x2ZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLHI9ZS5kZXBlbmRlbmNpZXM7aWYocilmb3IodmFyIG89MCxpPXIubGVuZ3RoO288aTtvKyspe3ZhciB1PXJbb107aWYodT09PWEuRVhQT1JUUyl7ZS5leHBvcnRzUGFzc2VkSW49ITAsZS51bnJlc29sdmVkRGVwZW5kZW5jaWVzQ291bnQtLTtjb250aW51ZX1pZih1PT09YS5NT0RVTEUpe2UudW5yZXNvbHZlZERlcGVuZGVuY2llc0NvdW50LS07Y29udGludWV9aWYodT09PWEuUkVRVUlSRSl7ZS51bnJlc29sdmVkRGVwZW5kZW5jaWVzQ291bnQtLTtjb250aW51ZX12YXIgZj10aGlzLl9tb2R1bGVzMlt1LmlkXTtpZihmJiZmLmlzQ29tcGxldGUoKSl7aWYoZi5lcnJvcil7ZS5vbkRlcGVuZGVuY3lFcnJvcihmLmVycm9yKTtyZXR1cm59ZS51bnJlc29sdmVkRGVwZW5kZW5jaWVzQ291bnQtLTtjb250aW51ZX1pZih0aGlzLl9oYXNEZXBlbmRlbmN5UGF0aCh1LmlkLGUuaWQpKXt0aGlzLl9oYXNEZXBlbmRlbmN5Q3ljbGU9ITAsY29uc29sZS53YXJuKCJUaGVyZSBpcyBhIGRlcGVuZGVuY3kgY3ljbGUgYmV0d2VlbiAnIit0aGlzLl9tb2R1bGVJZFByb3ZpZGVyLmdldFN0ck1vZHVsZUlkKHUuaWQpKyInIGFuZCAnIit0aGlzLl9tb2R1bGVJZFByb3ZpZGVyLmdldFN0ck1vZHVsZUlkKGUuaWQpKyInLiBUaGUgY3ljbGljIHBhdGggZm9sbG93czoiKTt2YXIgYz10aGlzLl9maW5kQ3ljbGVQYXRoKHUuaWQsZS5pZCwwKXx8W107Yy5yZXZlcnNlKCksYy5wdXNoKHUuaWQpLGNvbnNvbGUud2FybihjLm1hcChmdW5jdGlvbih5KXtyZXR1cm4gdC5fbW9kdWxlSWRQcm92aWRlci5nZXRTdHJNb2R1bGVJZCh5KX0pLmpvaW4oYCA9PiAKICBgKSksZS51bnJlc29sdmVkRGVwZW5kZW5jaWVzQ291bnQtLTtjb250aW51ZX1pZih0aGlzLl9pbnZlcnNlRGVwZW5kZW5jaWVzMlt1LmlkXT10aGlzLl9pbnZlcnNlRGVwZW5kZW5jaWVzMlt1LmlkXXx8W10sdGhpcy5faW52ZXJzZURlcGVuZGVuY2llczJbdS5pZF0ucHVzaChlLmlkKSx1IGluc3RhbmNlb2Ygbil7dmFyIGQ9dGhpcy5fbW9kdWxlczJbdS5wbHVnaW5JZF07aWYoZCYmZC5pc0NvbXBsZXRlKCkpe3RoaXMuX2xvYWRQbHVnaW5EZXBlbmRlbmN5KGQuZXhwb3J0cyx1KTtjb250aW51ZX12YXIgaD10aGlzLl9pbnZlcnNlUGx1Z2luRGVwZW5kZW5jaWVzMi5nZXQodS5wbHVnaW5JZCk7aHx8KGg9W10sdGhpcy5faW52ZXJzZVBsdWdpbkRlcGVuZGVuY2llczIuc2V0KHUucGx1Z2luSWQsaCkpLGgucHVzaCh1KSx0aGlzLl9sb2FkTW9kdWxlKHUucGx1Z2luSWQpO2NvbnRpbnVlfXRoaXMuX2xvYWRNb2R1bGUodS5pZCl9ZS51bnJlc29sdmVkRGVwZW5kZW5jaWVzQ291bnQ9PT0wJiZ0aGlzLl9vbk1vZHVsZUNvbXBsZXRlKGUpfSxzLnByb3RvdHlwZS5fb25Nb2R1bGVDb21wbGV0ZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLHI9dGhpcy5nZXRSZWNvcmRlcigpO2lmKCFlLmlzQ29tcGxldGUoKSl7dmFyIG89ZS5kZXBlbmRlbmNpZXMsaT1bXTtpZihvKWZvcih2YXIgdT0wLGY9by5sZW5ndGg7dTxmO3UrKyl7dmFyIGM9b1t1XTtpZihjPT09YS5FWFBPUlRTKXtpW3VdPWUuZXhwb3J0cztjb250aW51ZX1pZihjPT09YS5NT0RVTEUpe2lbdV09e2lkOmUuc3RySWQsY29uZmlnOmZ1bmN0aW9uKCl7cmV0dXJuIHQuX2NvbmZpZy5nZXRDb25maWdGb3JNb2R1bGUoZS5zdHJJZCl9fTtjb250aW51ZX1pZihjPT09YS5SRVFVSVJFKXtpW3VdPXRoaXMuX2NyZWF0ZVJlcXVpcmUoZS5tb2R1bGVJZFJlc29sdmVyKTtjb250aW51ZX12YXIgZD10aGlzLl9tb2R1bGVzMltjLmlkXTtpZihkKXtpW3VdPWQuZXhwb3J0cztjb250aW51ZX1pW3VdPW51bGx9dmFyIGg9ZnVuY3Rpb24oUCl7cmV0dXJuKHQuX2ludmVyc2VEZXBlbmRlbmNpZXMyW1BdfHxbXSkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiB0Ll9tb2R1bGVJZFByb3ZpZGVyLmdldFN0ck1vZHVsZUlkKGIpfSl9O2UuY29tcGxldGUocix0aGlzLl9jb25maWcsaSxoKTt2YXIgeT10aGlzLl9pbnZlcnNlRGVwZW5kZW5jaWVzMltlLmlkXTtpZih0aGlzLl9pbnZlcnNlRGVwZW5kZW5jaWVzMltlLmlkXT1udWxsLHkpZm9yKHZhciB1PTAsZj15Lmxlbmd0aDt1PGY7dSsrKXt2YXIgXz15W3VdLG09dGhpcy5fbW9kdWxlczJbX107bS51bnJlc29sdmVkRGVwZW5kZW5jaWVzQ291bnQtLSxtLnVucmVzb2x2ZWREZXBlbmRlbmNpZXNDb3VudD09PTAmJnRoaXMuX29uTW9kdWxlQ29tcGxldGUobSl9dmFyIFI9dGhpcy5faW52ZXJzZVBsdWdpbkRlcGVuZGVuY2llczIuZ2V0KGUuaWQpO2lmKFIpe3RoaXMuX2ludmVyc2VQbHVnaW5EZXBlbmRlbmNpZXMyLmRlbGV0ZShlLmlkKTtmb3IodmFyIHU9MCxmPVIubGVuZ3RoO3U8Zjt1KyspdGhpcy5fbG9hZFBsdWdpbkRlcGVuZGVuY3koZS5leHBvcnRzLFJbdV0pfX19LHN9KCk7bC5Nb2R1bGVNYW5hZ2VyPXZ9KShBTURMb2FkZXJ8fChBTURMb2FkZXI9e30pKTt2YXIgZGVmaW5lLEFNRExvYWRlcjsoZnVuY3Rpb24obCl7dmFyIEU9bmV3IGwuRW52aXJvbm1lbnQscD1udWxsLGc9ZnVuY3Rpb24ocyxlLHQpe3R5cGVvZiBzIT0ic3RyaW5nIiYmKHQ9ZSxlPXMscz1udWxsKSwodHlwZW9mIGUhPSJvYmplY3QifHwhQXJyYXkuaXNBcnJheShlKSkmJih0PWUsZT1udWxsKSxlfHwoZT1bInJlcXVpcmUiLCJleHBvcnRzIiwibW9kdWxlIl0pLHM/cC5kZWZpbmVNb2R1bGUocyxlLHQsbnVsbCxudWxsKTpwLmVucXVldWVEZWZpbmVBbm9ueW1vdXNNb2R1bGUoZSx0KX07Zy5hbWQ9e2pRdWVyeTohMH07dmFyIGE9ZnVuY3Rpb24ocyxlKXtlPT09dm9pZCAwJiYoZT0hMSkscC5jb25maWd1cmUocyxlKX0sbj1mdW5jdGlvbigpe2lmKGFyZ3VtZW50cy5sZW5ndGg9PT0xKXtpZihhcmd1bWVudHNbMF1pbnN0YW5jZW9mIE9iamVjdCYmIUFycmF5LmlzQXJyYXkoYXJndW1lbnRzWzBdKSl7YShhcmd1bWVudHNbMF0pO3JldHVybn1pZih0eXBlb2YgYXJndW1lbnRzWzBdPT0ic3RyaW5nIilyZXR1cm4gcC5zeW5jaHJvbm91c1JlcXVpcmUoYXJndW1lbnRzWzBdKX1pZigoYXJndW1lbnRzLmxlbmd0aD09PTJ8fGFyZ3VtZW50cy5sZW5ndGg9PT0zKSYmQXJyYXkuaXNBcnJheShhcmd1bWVudHNbMF0pKXtwLmRlZmluZU1vZHVsZShsLlV0aWxpdGllcy5nZW5lcmF0ZUFub255bW91c01vZHVsZSgpLGFyZ3VtZW50c1swXSxhcmd1bWVudHNbMV0sYXJndW1lbnRzWzJdLG51bGwpO3JldHVybn10aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCByZXF1aXJlIGNhbGwiKX07bi5jb25maWc9YSxuLmdldENvbmZpZz1mdW5jdGlvbigpe3JldHVybiBwLmdldENvbmZpZygpLmdldE9wdGlvbnNMaXRlcmFsKCl9LG4ucmVzZXQ9ZnVuY3Rpb24oKXtwPXAucmVzZXQoKX0sbi5nZXRCdWlsZEluZm89ZnVuY3Rpb24oKXtyZXR1cm4gcC5nZXRCdWlsZEluZm8oKX0sbi5nZXRTdGF0cz1mdW5jdGlvbigpe3JldHVybiBwLmdldExvYWRlckV2ZW50cygpfSxuLmRlZmluZT1nO2Z1bmN0aW9uIHYoKXtpZih0eXBlb2YgbC5nbG9iYWwucmVxdWlyZSE9InVuZGVmaW5lZCJ8fHR5cGVvZiByZXF1aXJlIT0idW5kZWZpbmVkIil7dmFyIHM9bC5nbG9iYWwucmVxdWlyZXx8cmVxdWlyZTtpZih0eXBlb2Ygcz09ImZ1bmN0aW9uIiYmdHlwZW9mIHMucmVzb2x2ZT09ImZ1bmN0aW9uIil7dmFyIGU9bC5lbnN1cmVSZWNvcmRlZE5vZGVSZXF1aXJlKHAuZ2V0UmVjb3JkZXIoKSxzKTtsLmdsb2JhbC5ub2RlUmVxdWlyZT1lLG4ubm9kZVJlcXVpcmU9ZSxuLl9fJF9fbm9kZVJlcXVpcmU9ZX19RS5pc05vZGUmJiFFLmlzRWxlY3Ryb25SZW5kZXJlciYmIUUuaXNFbGVjdHJvbk5vZGVJbnRlZ3JhdGlvbldlYldvcmtlcj8obW9kdWxlLmV4cG9ydHM9bixyZXF1aXJlPW4pOihFLmlzRWxlY3Ryb25SZW5kZXJlcnx8KGwuZ2xvYmFsLmRlZmluZT1nKSxsLmdsb2JhbC5yZXF1aXJlPW4pfWwuaW5pdD12LCh0eXBlb2YgbC5nbG9iYWwuZGVmaW5lIT0iZnVuY3Rpb24ifHwhbC5nbG9iYWwuZGVmaW5lLmFtZCkmJihwPW5ldyBsLk1vZHVsZU1hbmFnZXIoRSxsLmNyZWF0ZVNjcmlwdExvYWRlcihFKSxnLG4sbC5VdGlsaXRpZXMuZ2V0SGlnaFBlcmZvcm1hbmNlVGltZXN0YW1wKCkpLHR5cGVvZiBsLmdsb2JhbC5yZXF1aXJlIT0idW5kZWZpbmVkIiYmdHlwZW9mIGwuZ2xvYmFsLnJlcXVpcmUhPSJmdW5jdGlvbiImJm4uY29uZmlnKGwuZ2xvYmFsLnJlcXVpcmUpLGRlZmluZT1mdW5jdGlvbigpe3JldHVybiBnLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sZGVmaW5lLmFtZD1nLmFtZCx0eXBlb2YgZG9Ob3RJbml0TG9hZGVyPT0idW5kZWZpbmVkIiYmdigpKX0pKEFNRExvYWRlcnx8KEFNRExvYWRlcj17fSkpOwoKICAvLyMgc291cmNlTWFwcGluZ1VSTD0uLi8uLi9taW4tbWFwcy92cy9sb2FkZXIuanMubWFwCjwvc2NyaXB0Pgo8c3R5bGU+Ci8qKgogKiBtYXRlcmlhbC1kZXNpZ24tbGl0ZSAtIE1hdGVyaWFsIERlc2lnbiBDb21wb25lbnRzIGluIENTUywgSlMgYW5kIEhUTUwKICogQHZlcnNpb24gdjEuMC42CiAqIEBsaWNlbnNlIEFwYWNoZS0yLjAKICogQGNvcHlyaWdodCAyMDE1IEdvb2dsZSwgSW5jLgogKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL21hdGVyaWFsLWRlc2lnbi1saXRlCiAqLwpAY2hhcnNldCAiVVRGLTgiO2h0bWx7Y29sb3I6cmdiYSgwLDAsMCwuODcpfTo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZDojYjNkNGZjO3RleHQtc2hhZG93Om5vbmV9OjpzZWxlY3Rpb257YmFja2dyb3VuZDojYjNkNGZjO3RleHQtc2hhZG93Om5vbmV9aHJ7ZGlzcGxheTpibG9jaztoZWlnaHQ6MXB4O2JvcmRlcjowO2JvcmRlci10b3A6MXB4IHNvbGlkICNjY2M7bWFyZ2luOjFlbSAwO3BhZGRpbmc6MH1hdWRpbyxjYW52YXMsaWZyYW1lLGltZyxzdmcsdmlkZW97dmVydGljYWwtYWxpZ246bWlkZGxlfWZpZWxkc2V0e2JvcmRlcjowO21hcmdpbjowO3BhZGRpbmc6MH10ZXh0YXJlYXtyZXNpemU6dmVydGljYWx9LmJyb3dzZXJ1cGdyYWRle21hcmdpbjouMmVtIDA7YmFja2dyb3VuZDojY2NjO2NvbG9yOiMwMDA7cGFkZGluZzouMmVtIDB9LmhpZGRlbntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS52aXN1YWxseWhpZGRlbntib3JkZXI6MDtjbGlwOnJlY3QoMCAwIDAgMCk7aGVpZ2h0OjFweDttYXJnaW46LTFweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweH0udmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmFjdGl2ZSwudmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmZvY3Vze2NsaXA6YXV0bztoZWlnaHQ6YXV0bzttYXJnaW46MDtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnN0YXRpYzt3aWR0aDphdXRvfS5pbnZpc2libGV7dmlzaWJpbGl0eTpoaWRkZW59LmNsZWFyZml4OmJlZm9yZSwuY2xlYXJmaXg6YWZ0ZXJ7Y29udGVudDoiICI7ZGlzcGxheTp0YWJsZX0uY2xlYXJmaXg6YWZ0ZXJ7Y2xlYXI6Ym90aH1AbWVkaWEgcHJpbnR7KiwqOmJlZm9yZSwqOmFmdGVyLCo6Zmlyc3QtbGV0dGVyLCo6Zmlyc3QtbGluZXtiYWNrZ3JvdW5kOjAgMCFpbXBvcnRhbnQ7Y29sb3I6IzAwMCFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpub25lIWltcG9ydGFudDt0ZXh0LXNoYWRvdzpub25lIWltcG9ydGFudH1hLGE6dmlzaXRlZHt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWFbaHJlZl06YWZ0ZXJ7Y29udGVudDoiICgiIGF0dHIoaHJlZikiKSJ9YWJiclt0aXRsZV06YWZ0ZXJ7Y29udGVudDoiICgiIGF0dHIodGl0bGUpIikifWFbaHJlZl49IiMiXTphZnRlcixhW2hyZWZePSJqYXZhc2NyaXB0OiJdOmFmdGVye2NvbnRlbnQ6IiJ9cHJlLGJsb2NrcXVvdGV7Ym9yZGVyOjFweCBzb2xpZCAjOTk5O3BhZ2UtYnJlYWstaW5zaWRlOmF2b2lkfXRoZWFke2Rpc3BsYXk6dGFibGUtaGVhZGVyLWdyb3VwfXRyLGltZ3twYWdlLWJyZWFrLWluc2lkZTphdm9pZH1pbWd7bWF4LXdpZHRoOjEwMCUhaW1wb3J0YW50fXAsaDIsaDN7b3JwaGFuczozO3dpZG93czozfWgyLGgze3BhZ2UtYnJlYWstYWZ0ZXI6YXZvaWR9fWEsLm1kbC1hY2NvcmRpb24sLm1kbC1idXR0b24sLm1kbC1jYXJkLC5tZGwtY2hlY2tib3gsLm1kbC1kcm9wZG93bi1tZW51LC5tZGwtaWNvbi10b2dnbGUsLm1kbC1pdGVtLC5tZGwtcmFkaW8sLm1kbC1zbGlkZXIsLm1kbC1zd2l0Y2gsLm1kbC10YWJzX190YWJ7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDApfWh0bWx7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTstbXMtdG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9ufWJvZHl7d2lkdGg6MTAwJTttaW4taGVpZ2h0OjEwMCV9bWFpbntkaXNwbGF5OmJsb2NrfSpbaGlkZGVuXXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fWh0bWwsYm9keXtmb250LWZhbWlseToiSGVsdmV0aWNhIiwiQXJpYWwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjIwcHh9aDEsaDIsaDMsaDQsaDUsaDYscHtwYWRkaW5nOjB9aDEgc21hbGwsaDIgc21hbGwsaDMgc21hbGwsaDQgc21hbGwsaDUgc21hbGwsaDYgc21hbGx7Zm9udC1mYW1pbHk6IlJvYm90byIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjM1O2xldHRlci1zcGFjaW5nOi0uMDJlbTtvcGFjaXR5Oi41NDtmb250LXNpemU6LjZlbX1oMXtmb250LXNpemU6NTZweDtsaW5lLWhlaWdodDoxLjM1O2xldHRlci1zcGFjaW5nOi0uMDJlbTttYXJnaW46MjRweCAwfWgxLGgye2ZvbnQtZmFtaWx5OiJSb2JvdG8iLCJIZWx2ZXRpY2EiLCJBcmlhbCIsc2Fucy1zZXJpZjtmb250LXdlaWdodDo0MDB9aDJ7Zm9udC1zaXplOjQ1cHg7bGluZS1oZWlnaHQ6NDhweH1oMixoM3ttYXJnaW46MjRweCAwfWgze2ZvbnQtc2l6ZTozNHB4O2xpbmUtaGVpZ2h0OjQwcHh9aDMsaDR7Zm9udC1mYW1pbHk6IlJvYm90byIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjQwMH1oNHtmb250LXNpemU6MjRweDtsaW5lLWhlaWdodDozMnB4Oy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTttYXJnaW46MjRweCAwIDE2cHh9aDV7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE7bGV0dGVyLXNwYWNpbmc6LjAyZW19aDUsaDZ7Zm9udC1mYW1pbHk6IlJvYm90byIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmO21hcmdpbjoyNHB4IDAgMTZweH1oNntmb250LXNpemU6MTZweDtsZXR0ZXItc3BhY2luZzouMDRlbX1oNixwe2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoyNHB4fXB7Zm9udC1zaXplOjE0cHg7bGV0dGVyLXNwYWNpbmc6MDttYXJnaW46MCAwIDE2cHh9YXtjb2xvcjpyZ2IoMjU1LDY0LDEyOSk7Zm9udC13ZWlnaHQ6NTAwfWJsb2NrcXVvdGV7Zm9udC1mYW1pbHk6IlJvYm90byIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmO3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjMwMDtmb250LXN0eWxlOml0YWxpYztsaW5lLWhlaWdodDoxLjM1O2xldHRlci1zcGFjaW5nOi4wOGVtfWJsb2NrcXVvdGU6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LS41ZW07Y29udGVudDonw6LigqzFkyd9YmxvY2txdW90ZTphZnRlcntjb250ZW50OifDouKCrMKdJzttYXJnaW4tbGVmdDotLjA1ZW19bWFya3tiYWNrZ3JvdW5kLWNvbG9yOiNmNGZmODF9ZHR7Zm9udC13ZWlnaHQ6NzAwfWFkZHJlc3N7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MTtmb250LXN0eWxlOm5vcm1hbH1hZGRyZXNzLHVsLG9se2ZvbnQtd2VpZ2h0OjQwMDtsZXR0ZXItc3BhY2luZzowfXVsLG9se2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjI0cHh9Lm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTQsLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTQtY29sb3ItY29udHJhc3R7Zm9udC1mYW1pbHk6IlJvYm90byIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMTJweDtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6MTtsZXR0ZXItc3BhY2luZzotLjA0ZW19Lm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTQtY29sb3ItY29udHJhc3R7b3BhY2l0eTouNTR9Lm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTMsLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTMtY29sb3ItY29udHJhc3R7Zm9udC1mYW1pbHk6IlJvYm90byIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTo1NnB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjM1O2xldHRlci1zcGFjaW5nOi0uMDJlbX0ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMy1jb2xvci1jb250cmFzdHtvcGFjaXR5Oi41NH0ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMiwubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMi1jb2xvci1jb250cmFzdHtmb250LWZhbWlseToiUm9ib3RvIiwiSGVsdmV0aWNhIiwiQXJpYWwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjQ1cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjQ4cHh9Lm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTItY29sb3ItY29udHJhc3R7b3BhY2l0eTouNTR9Lm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTEsLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTEtY29sb3ItY29udHJhc3R7Zm9udC1mYW1pbHk6IlJvYm90byIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTozNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDo0MHB4fS5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS0xLWNvbG9yLWNvbnRyYXN0e29wYWNpdHk6LjU0fS5tZGwtdHlwb2dyYXBoeS0taGVhZGxpbmUsLm1kbC10eXBvZ3JhcGh5LS1oZWFkbGluZS1jb2xvci1jb250cmFzdHtmb250LWZhbWlseToiUm9ib3RvIiwiSGVsdmV0aWNhIiwiQXJpYWwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjMycHg7LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlfS5tZGwtdHlwb2dyYXBoeS0taGVhZGxpbmUtY29sb3ItY29udHJhc3R7b3BhY2l0eTouODd9Lm1kbC10eXBvZ3JhcGh5LS10aXRsZSwubWRsLXR5cG9ncmFwaHktLXRpdGxlLWNvbG9yLWNvbnRyYXN0e2ZvbnQtZmFtaWx5OiJSb2JvdG8iLCJIZWx2ZXRpY2EiLCJBcmlhbCIsc2Fucy1zZXJpZjtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTtsZXR0ZXItc3BhY2luZzouMDJlbX0ubWRsLXR5cG9ncmFwaHktLXRpdGxlLWNvbG9yLWNvbnRyYXN0e29wYWNpdHk6Ljg3fS5tZGwtdHlwb2dyYXBoeS0tc3ViaGVhZCwubWRsLXR5cG9ncmFwaHktLXN1YmhlYWQtY29sb3ItY29udHJhc3R7Zm9udC1mYW1pbHk6IlJvYm90byIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoyNHB4O2xldHRlci1zcGFjaW5nOi4wNGVtfS5tZGwtdHlwb2dyYXBoeS0tc3ViaGVhZC1jb2xvci1jb250cmFzdHtvcGFjaXR5Oi44N30ubWRsLXR5cG9ncmFwaHktLWJvZHktMiwubWRsLXR5cG9ncmFwaHktLWJvZHktMi1jb2xvci1jb250cmFzdHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MjRweDtsZXR0ZXItc3BhY2luZzowfS5tZGwtdHlwb2dyYXBoeS0tYm9keS0yLWNvbG9yLWNvbnRyYXN0e29wYWNpdHk6Ljg3fS5tZGwtdHlwb2dyYXBoeS0tYm9keS0xLC5tZGwtdHlwb2dyYXBoeS0tYm9keS0xLWNvbG9yLWNvbnRyYXN0e2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoyNHB4O2xldHRlci1zcGFjaW5nOjB9Lm1kbC10eXBvZ3JhcGh5LS1ib2R5LTEtY29sb3ItY29udHJhc3R7b3BhY2l0eTouODd9Lm1kbC10eXBvZ3JhcGh5LS1ib2R5LTItZm9yY2UtcHJlZmVycmVkLWZvbnQsLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTItZm9yY2UtcHJlZmVycmVkLWZvbnQtY29sb3ItY29udHJhc3R7Zm9udC1mYW1pbHk6IlJvYm90byIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoyNHB4O2xldHRlci1zcGFjaW5nOjB9Lm1kbC10eXBvZ3JhcGh5LS1ib2R5LTItZm9yY2UtcHJlZmVycmVkLWZvbnQtY29sb3ItY29udHJhc3R7b3BhY2l0eTouODd9Lm1kbC10eXBvZ3JhcGh5LS1ib2R5LTEtZm9yY2UtcHJlZmVycmVkLWZvbnQsLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTEtZm9yY2UtcHJlZmVycmVkLWZvbnQtY29sb3ItY29udHJhc3R7Zm9udC1mYW1pbHk6IlJvYm90byIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoyNHB4O2xldHRlci1zcGFjaW5nOjB9Lm1kbC10eXBvZ3JhcGh5LS1ib2R5LTEtZm9yY2UtcHJlZmVycmVkLWZvbnQtY29sb3ItY29udHJhc3R7b3BhY2l0eTouODd9Lm1kbC10eXBvZ3JhcGh5LS1jYXB0aW9uLC5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1mb3JjZS1wcmVmZXJyZWQtZm9udHtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MTtsZXR0ZXItc3BhY2luZzowfS5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1mb3JjZS1wcmVmZXJyZWQtZm9udHtmb250LWZhbWlseToiUm9ib3RvIiwiSGVsdmV0aWNhIiwiQXJpYWwiLHNhbnMtc2VyaWZ9Lm1kbC10eXBvZ3JhcGh5LS1jYXB0aW9uLWNvbG9yLWNvbnRyYXN0LC5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1mb3JjZS1wcmVmZXJyZWQtZm9udC1jb2xvci1jb250cmFzdHtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MTtsZXR0ZXItc3BhY2luZzowO29wYWNpdHk6LjU0fS5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1mb3JjZS1wcmVmZXJyZWQtZm9udC1jb2xvci1jb250cmFzdCwubWRsLXR5cG9ncmFwaHktLW1lbnV7Zm9udC1mYW1pbHk6IlJvYm90byIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmfS5tZGwtdHlwb2dyYXBoeS0tbWVudXtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTtsZXR0ZXItc3BhY2luZzowfS5tZGwtdHlwb2dyYXBoeS0tbWVudS1jb2xvci1jb250cmFzdHtvcGFjaXR5Oi44N30ubWRsLXR5cG9ncmFwaHktLW1lbnUtY29sb3ItY29udHJhc3QsLm1kbC10eXBvZ3JhcGh5LS1idXR0b24sLm1kbC10eXBvZ3JhcGh5LS1idXR0b24tY29sb3ItY29udHJhc3R7Zm9udC1mYW1pbHk6IlJvYm90byIsIkhlbHZldGljYSIsIkFyaWFsIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxO2xldHRlci1zcGFjaW5nOjB9Lm1kbC10eXBvZ3JhcGh5LS1idXR0b24sLm1kbC10eXBvZ3JhcGh5LS1idXR0b24tY29sb3ItY29udHJhc3R7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5tZGwtdHlwb2dyYXBoeS0tYnV0dG9uLWNvbG9yLWNvbnRyYXN0e29wYWNpdHk6Ljg3fS5tZGwtdHlwb2dyYXBoeS0tdGV4dC1sZWZ0e3RleHQtYWxpZ246bGVmdH0ubWRsLXR5cG9ncmFwaHktLXRleHQtcmlnaHR7dGV4dC1hbGlnbjpyaWdodH0ubWRsLXR5cG9ncmFwaHktLXRleHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyfS5tZGwtdHlwb2dyYXBoeS0tdGV4dC1qdXN0aWZ5e3RleHQtYWxpZ246anVzdGlmeX0ubWRsLXR5cG9ncmFwaHktLXRleHQtbm93cmFwe3doaXRlLXNwYWNlOm5vd3JhcH0ubWRsLXR5cG9ncmFwaHktLXRleHQtbG93ZXJjYXNle3RleHQtdHJhbnNmb3JtOmxvd2VyY2FzZX0ubWRsLXR5cG9ncmFwaHktLXRleHQtdXBwZXJjYXNle3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0ubWRsLXR5cG9ncmFwaHktLXRleHQtY2FwaXRhbGl6ZXt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplfS5tZGwtdHlwb2dyYXBoeS0tZm9udC10aGlue2ZvbnQtd2VpZ2h0OjIwMCFpbXBvcnRhbnR9Lm1kbC10eXBvZ3JhcGh5LS1mb250LWxpZ2h0e2ZvbnQtd2VpZ2h0OjMwMCFpbXBvcnRhbnR9Lm1kbC10eXBvZ3JhcGh5LS1mb250LXJlZ3VsYXJ7Zm9udC13ZWlnaHQ6NDAwIWltcG9ydGFudH0ubWRsLXR5cG9ncmFwaHktLWZvbnQtbWVkaXVte2ZvbnQtd2VpZ2h0OjUwMCFpbXBvcnRhbnR9Lm1kbC10eXBvZ3JhcGh5LS1mb250LWJvbGR7Zm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudH0ubWRsLXR5cG9ncmFwaHktLWZvbnQtYmxhY2t7Zm9udC13ZWlnaHQ6OTAwIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXJlZHtjb2xvcjojZjQ0MzM2ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcmVke2JhY2tncm91bmQtY29sb3I6I2Y0NDMzNiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tcmVkLTUwe2NvbG9yOiNmZmViZWUgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1yZWQtNTB7YmFja2dyb3VuZC1jb2xvcjojZmZlYmVlICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1yZWQtMTAwe2NvbG9yOiNmZmNkZDIgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1yZWQtMTAwe2JhY2tncm91bmQtY29sb3I6I2ZmY2RkMiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tcmVkLTIwMHtjb2xvcjojZWY5YTlhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcmVkLTIwMHtiYWNrZ3JvdW5kLWNvbG9yOiNlZjlhOWEgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXJlZC0zMDB7Y29sb3I6I2U1NzM3MyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXJlZC0zMDB7YmFja2dyb3VuZC1jb2xvcjojZTU3MzczICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1yZWQtNDAwe2NvbG9yOiNlZjUzNTAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1yZWQtNDAwe2JhY2tncm91bmQtY29sb3I6I2VmNTM1MCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tcmVkLTUwMHtjb2xvcjojZjQ0MzM2ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcmVkLTUwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDQzMzYgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXJlZC02MDB7Y29sb3I6I2U1MzkzNSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXJlZC02MDB7YmFja2dyb3VuZC1jb2xvcjojZTUzOTM1ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1yZWQtNzAwe2NvbG9yOiNkMzJmMmYgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1yZWQtNzAwe2JhY2tncm91bmQtY29sb3I6I2QzMmYyZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tcmVkLTgwMHtjb2xvcjojYzYyODI4ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcmVkLTgwMHtiYWNrZ3JvdW5kLWNvbG9yOiNjNjI4MjggIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXJlZC05MDB7Y29sb3I6I2I3MWMxYyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXJlZC05MDB7YmFja2dyb3VuZC1jb2xvcjojYjcxYzFjICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1yZWQtQTEwMHtjb2xvcjojZmY4YTgwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcmVkLUExMDB7YmFja2dyb3VuZC1jb2xvcjojZmY4YTgwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1yZWQtQTIwMHtjb2xvcjojZmY1MjUyICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcmVkLUEyMDB7YmFja2dyb3VuZC1jb2xvcjojZmY1MjUyICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1yZWQtQTQwMHtjb2xvcjojZmYxNzQ0ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcmVkLUE0MDB7YmFja2dyb3VuZC1jb2xvcjojZmYxNzQ0ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1yZWQtQTcwMHtjb2xvcjojZDUwMDAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcmVkLUE3MDB7YmFja2dyb3VuZC1jb2xvcjojZDUwMDAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1waW5re2NvbG9yOiNlOTFlNjMgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1waW5re2JhY2tncm91bmQtY29sb3I6I2U5MWU2MyAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tcGluay01MHtjb2xvcjojZmNlNGVjICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcGluay01MHtiYWNrZ3JvdW5kLWNvbG9yOiNmY2U0ZWMgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXBpbmstMTAwe2NvbG9yOiNmOGJiZDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1waW5rLTEwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmOGJiZDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXBpbmstMjAwe2NvbG9yOiNmNDhmYjEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1waW5rLTIwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDhmYjEgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXBpbmstMzAwe2NvbG9yOiNmMDYyOTIgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1waW5rLTMwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmMDYyOTIgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXBpbmstNDAwe2NvbG9yOiNlYzQwN2EgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1waW5rLTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiNlYzQwN2EgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXBpbmstNTAwe2NvbG9yOiNlOTFlNjMgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1waW5rLTUwMHtiYWNrZ3JvdW5kLWNvbG9yOiNlOTFlNjMgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXBpbmstNjAwe2NvbG9yOiNkODFiNjAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1waW5rLTYwMHtiYWNrZ3JvdW5kLWNvbG9yOiNkODFiNjAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXBpbmstNzAwe2NvbG9yOiNjMjE4NWIgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1waW5rLTcwMHtiYWNrZ3JvdW5kLWNvbG9yOiNjMjE4NWIgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXBpbmstODAwe2NvbG9yOiNhZDE0NTcgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1waW5rLTgwMHtiYWNrZ3JvdW5kLWNvbG9yOiNhZDE0NTcgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXBpbmstOTAwe2NvbG9yOiM4ODBlNGYgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1waW5rLTkwMHtiYWNrZ3JvdW5kLWNvbG9yOiM4ODBlNGYgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXBpbmstQTEwMHtjb2xvcjojZmY4MGFiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcGluay1BMTAwe2JhY2tncm91bmQtY29sb3I6I2ZmODBhYiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tcGluay1BMjAwe2NvbG9yOiNmZjQwODEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1waW5rLUEyMDB7YmFja2dyb3VuZC1jb2xvcjojZmY0MDgxICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1waW5rLUE0MDB7Y29sb3I6I2Y1MDA1NyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXBpbmstQTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmNTAwNTcgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXBpbmstQTcwMHtjb2xvcjojYzUxMTYyICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcGluay1BNzAwe2JhY2tncm91bmQtY29sb3I6I2M1MTE2MiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tcHVycGxle2NvbG9yOiM5YzI3YjAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1wdXJwbGV7YmFja2dyb3VuZC1jb2xvcjojOWMyN2IwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtNTB7Y29sb3I6I2YzZTVmNSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXB1cnBsZS01MHtiYWNrZ3JvdW5kLWNvbG9yOiNmM2U1ZjUgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS0xMDB7Y29sb3I6I2UxYmVlNyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXB1cnBsZS0xMDB7YmFja2dyb3VuZC1jb2xvcjojZTFiZWU3ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtMjAwe2NvbG9yOiNjZTkzZDggIWltcG9ydGFudH0ubWRsLWNvbG9yLS1wdXJwbGUtMjAwe2JhY2tncm91bmQtY29sb3I6I2NlOTNkOCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTMwMHtjb2xvcjojYmE2OGM4ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcHVycGxlLTMwMHtiYWNrZ3JvdW5kLWNvbG9yOiNiYTY4YzggIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS00MDB7Y29sb3I6I2FiNDdiYyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXB1cnBsZS00MDB7YmFja2dyb3VuZC1jb2xvcjojYWI0N2JjICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtNTAwe2NvbG9yOiM5YzI3YjAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1wdXJwbGUtNTAwe2JhY2tncm91bmQtY29sb3I6IzljMjdiMCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTYwMHtjb2xvcjojOGUyNGFhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcHVycGxlLTYwMHtiYWNrZ3JvdW5kLWNvbG9yOiM4ZTI0YWEgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS03MDB7Y29sb3I6IzdiMWZhMiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXB1cnBsZS03MDB7YmFja2dyb3VuZC1jb2xvcjojN2IxZmEyICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtODAwe2NvbG9yOiM2YTFiOWEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1wdXJwbGUtODAwe2JhY2tncm91bmQtY29sb3I6IzZhMWI5YSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTkwMHtjb2xvcjojNGExNDhjICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcHVycGxlLTkwMHtiYWNrZ3JvdW5kLWNvbG9yOiM0YTE0OGMgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS1BMTAwe2NvbG9yOiNlYTgwZmMgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1wdXJwbGUtQTEwMHtiYWNrZ3JvdW5kLWNvbG9yOiNlYTgwZmMgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS1BMjAwe2NvbG9yOiNlMDQwZmIgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1wdXJwbGUtQTIwMHtiYWNrZ3JvdW5kLWNvbG9yOiNlMDQwZmIgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS1BNDAwe2NvbG9yOiNkNTAwZjkgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1wdXJwbGUtQTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiNkNTAwZjkgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS1BNzAwe2NvbG9yOiNhMGYgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1wdXJwbGUtQTcwMHtiYWNrZ3JvdW5kLWNvbG9yOiNhMGYgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxle2NvbG9yOiM2NzNhYjcgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZXtiYWNrZ3JvdW5kLWNvbG9yOiM2NzNhYjcgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTUwe2NvbG9yOiNlZGU3ZjYgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS01MHtiYWNrZ3JvdW5kLWNvbG9yOiNlZGU3ZjYgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTEwMHtjb2xvcjojZDFjNGU5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtMTAwe2JhY2tncm91bmQtY29sb3I6I2QxYzRlOSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtMjAwe2NvbG9yOiNiMzlkZGIgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS0yMDB7YmFja2dyb3VuZC1jb2xvcjojYjM5ZGRiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS0zMDB7Y29sb3I6Izk1NzVjZCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTMwMHtiYWNrZ3JvdW5kLWNvbG9yOiM5NTc1Y2QgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTQwMHtjb2xvcjojN2U1N2MyICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNDAwe2JhY2tncm91bmQtY29sb3I6IzdlNTdjMiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtNTAwe2NvbG9yOiM2NzNhYjcgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS01MDB7YmFja2dyb3VuZC1jb2xvcjojNjczYWI3ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS02MDB7Y29sb3I6IzVlMzViMSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTYwMHtiYWNrZ3JvdW5kLWNvbG9yOiM1ZTM1YjEgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTcwMHtjb2xvcjojNTEyZGE4ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNzAwe2JhY2tncm91bmQtY29sb3I6IzUxMmRhOCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtODAwe2NvbG9yOiM0NTI3YTAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS04MDB7YmFja2dyb3VuZC1jb2xvcjojNDUyN2EwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS05MDB7Y29sb3I6IzMxMWI5MiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTkwMHtiYWNrZ3JvdW5kLWNvbG9yOiMzMTFiOTIgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLUExMDB7Y29sb3I6I2IzODhmZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWRlZXAtcHVycGxlLUExMDB7YmFja2dyb3VuZC1jb2xvcjojYjM4OGZmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS1BMjAwe2NvbG9yOiM3YzRkZmYgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS1BMjAwe2JhY2tncm91bmQtY29sb3I6IzdjNGRmZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtQTQwMHtjb2xvcjojNjUxZmZmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtQTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiM2NTFmZmYgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLUE3MDB7Y29sb3I6IzYyMDBlYSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWRlZXAtcHVycGxlLUE3MDB7YmFja2dyb3VuZC1jb2xvcjojNjIwMGVhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1pbmRpZ297Y29sb3I6IzNmNTFiNSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWluZGlnb3tiYWNrZ3JvdW5kLWNvbG9yOiMzZjUxYjUgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWluZGlnby01MHtjb2xvcjojZThlYWY2ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0taW5kaWdvLTUwe2JhY2tncm91bmQtY29sb3I6I2U4ZWFmNiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTEwMHtjb2xvcjojYzVjYWU5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0taW5kaWdvLTEwMHtiYWNrZ3JvdW5kLWNvbG9yOiNjNWNhZTkgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWluZGlnby0yMDB7Y29sb3I6IzlmYThkYSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWluZGlnby0yMDB7YmFja2dyb3VuZC1jb2xvcjojOWZhOGRhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tMzAwe2NvbG9yOiM3OTg2Y2IgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1pbmRpZ28tMzAwe2JhY2tncm91bmQtY29sb3I6Izc5ODZjYiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTQwMHtjb2xvcjojNWM2YmMwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0taW5kaWdvLTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiM1YzZiYzAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWluZGlnby01MDB7Y29sb3I6IzNmNTFiNSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWluZGlnby01MDB7YmFja2dyb3VuZC1jb2xvcjojM2Y1MWI1ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tNjAwe2NvbG9yOiMzOTQ5YWIgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1pbmRpZ28tNjAwe2JhY2tncm91bmQtY29sb3I6IzM5NDlhYiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTcwMHtjb2xvcjojMzAzZjlmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0taW5kaWdvLTcwMHtiYWNrZ3JvdW5kLWNvbG9yOiMzMDNmOWYgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWluZGlnby04MDB7Y29sb3I6IzI4MzU5MyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWluZGlnby04MDB7YmFja2dyb3VuZC1jb2xvcjojMjgzNTkzICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tOTAwe2NvbG9yOiMxYTIzN2UgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1pbmRpZ28tOTAwe2JhY2tncm91bmQtY29sb3I6IzFhMjM3ZSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0taW5kaWdvLUExMDB7Y29sb3I6IzhjOWVmZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWluZGlnby1BMTAwe2JhY2tncm91bmQtY29sb3I6IzhjOWVmZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0taW5kaWdvLUEyMDB7Y29sb3I6IzUzNmRmZSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWluZGlnby1BMjAwe2JhY2tncm91bmQtY29sb3I6IzUzNmRmZSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0taW5kaWdvLUE0MDB7Y29sb3I6IzNkNWFmZSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWluZGlnby1BNDAwe2JhY2tncm91bmQtY29sb3I6IzNkNWFmZSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0taW5kaWdvLUE3MDB7Y29sb3I6IzMwNGZmZSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWluZGlnby1BNzAwe2JhY2tncm91bmQtY29sb3I6IzMwNGZmZSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYmx1ZXtjb2xvcjojMjE5NmYzICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiMyMTk2ZjMgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWJsdWUtNTB7Y29sb3I6I2UzZjJmZCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWJsdWUtNTB7YmFja2dyb3VuZC1jb2xvcjojZTNmMmZkICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLTEwMHtjb2xvcjojYmJkZWZiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS0xMDB7YmFja2dyb3VuZC1jb2xvcjojYmJkZWZiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLTIwMHtjb2xvcjojOTBjYWY5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS0yMDB7YmFja2dyb3VuZC1jb2xvcjojOTBjYWY5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLTMwMHtjb2xvcjojNjRiNWY2ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS0zMDB7YmFja2dyb3VuZC1jb2xvcjojNjRiNWY2ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLTQwMHtjb2xvcjojNDJhNWY1ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS00MDB7YmFja2dyb3VuZC1jb2xvcjojNDJhNWY1ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLTUwMHtjb2xvcjojMjE5NmYzICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS01MDB7YmFja2dyb3VuZC1jb2xvcjojMjE5NmYzICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLTYwMHtjb2xvcjojMWU4OGU1ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS02MDB7YmFja2dyb3VuZC1jb2xvcjojMWU4OGU1ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLTcwMHtjb2xvcjojMTk3NmQyICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS03MDB7YmFja2dyb3VuZC1jb2xvcjojMTk3NmQyICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLTgwMHtjb2xvcjojMTU2NWMwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS04MDB7YmFja2dyb3VuZC1jb2xvcjojMTU2NWMwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLTkwMHtjb2xvcjojMGQ0N2ExICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS05MDB7YmFja2dyb3VuZC1jb2xvcjojMGQ0N2ExICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLUExMDB7Y29sb3I6IzgyYjFmZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWJsdWUtQTEwMHtiYWNrZ3JvdW5kLWNvbG9yOiM4MmIxZmYgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWJsdWUtQTIwMHtjb2xvcjojNDQ4YWZmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS1BMjAwe2JhY2tncm91bmQtY29sb3I6IzQ0OGFmZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYmx1ZS1BNDAwe2NvbG9yOiMyOTc5ZmYgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ibHVlLUE0MDB7YmFja2dyb3VuZC1jb2xvcjojMjk3OWZmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLUE3MDB7Y29sb3I6IzI5NjJmZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWJsdWUtQTcwMHtiYWNrZ3JvdW5kLWNvbG9yOiMyOTYyZmYgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWV7Y29sb3I6IzAzYTlmNCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWJsdWV7YmFja2dyb3VuZC1jb2xvcjojMDNhOWY0ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTUwe2NvbG9yOiNlMWY1ZmUgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1saWdodC1ibHVlLTUwe2JhY2tncm91bmQtY29sb3I6I2UxZjVmZSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS0xMDB7Y29sb3I6I2IzZTVmYyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtMTAwe2JhY2tncm91bmQtY29sb3I6I2IzZTVmYyAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS0yMDB7Y29sb3I6IzgxZDRmYSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtMjAwe2JhY2tncm91bmQtY29sb3I6IzgxZDRmYSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS0zMDB7Y29sb3I6IzRmYzNmNyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtMzAwe2JhY2tncm91bmQtY29sb3I6IzRmYzNmNyAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS00MDB7Y29sb3I6IzI5YjZmNiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNDAwe2JhY2tncm91bmQtY29sb3I6IzI5YjZmNiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS01MDB7Y29sb3I6IzAzYTlmNCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNTAwe2JhY2tncm91bmQtY29sb3I6IzAzYTlmNCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS02MDB7Y29sb3I6IzAzOWJlNSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNjAwe2JhY2tncm91bmQtY29sb3I6IzAzOWJlNSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS03MDB7Y29sb3I6IzAyODhkMSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNzAwe2JhY2tncm91bmQtY29sb3I6IzAyODhkMSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS04MDB7Y29sb3I6IzAyNzdiZCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtODAwe2JhY2tncm91bmQtY29sb3I6IzAyNzdiZCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS05MDB7Y29sb3I6IzAxNTc5YiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtOTAwe2JhY2tncm91bmQtY29sb3I6IzAxNTc5YiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS1BMTAwe2NvbG9yOiM4MGQ4ZmYgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1saWdodC1ibHVlLUExMDB7YmFja2dyb3VuZC1jb2xvcjojODBkOGZmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLUEyMDB7Y29sb3I6IzQwYzRmZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtQTIwMHtiYWNrZ3JvdW5kLWNvbG9yOiM0MGM0ZmYgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtQTQwMHtjb2xvcjojMDBiMGZmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGlnaHQtYmx1ZS1BNDAwe2JhY2tncm91bmQtY29sb3I6IzAwYjBmZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS1BNzAwe2NvbG9yOiMwMDkxZWEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1saWdodC1ibHVlLUE3MDB7YmFja2dyb3VuZC1jb2xvcjojMDA5MWVhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1jeWFue2NvbG9yOiMwMGJjZDQgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1jeWFue2JhY2tncm91bmQtY29sb3I6IzAwYmNkNCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tY3lhbi01MHtjb2xvcjojZTBmN2ZhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tY3lhbi01MHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGY3ZmEgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWN5YW4tMTAwe2NvbG9yOiNiMmViZjIgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1jeWFuLTEwMHtiYWNrZ3JvdW5kLWNvbG9yOiNiMmViZjIgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWN5YW4tMjAwe2NvbG9yOiM4MGRlZWEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1jeWFuLTIwMHtiYWNrZ3JvdW5kLWNvbG9yOiM4MGRlZWEgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWN5YW4tMzAwe2NvbG9yOiM0ZGQwZTEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1jeWFuLTMwMHtiYWNrZ3JvdW5kLWNvbG9yOiM0ZGQwZTEgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWN5YW4tNDAwe2NvbG9yOiMyNmM2ZGEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1jeWFuLTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiMyNmM2ZGEgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWN5YW4tNTAwe2NvbG9yOiMwMGJjZDQgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1jeWFuLTUwMHtiYWNrZ3JvdW5kLWNvbG9yOiMwMGJjZDQgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWN5YW4tNjAwe2NvbG9yOiMwMGFjYzEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1jeWFuLTYwMHtiYWNrZ3JvdW5kLWNvbG9yOiMwMGFjYzEgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWN5YW4tNzAwe2NvbG9yOiMwMDk3YTcgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1jeWFuLTcwMHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDk3YTcgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWN5YW4tODAwe2NvbG9yOiMwMDgzOGYgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1jeWFuLTgwMHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDgzOGYgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWN5YW4tOTAwe2NvbG9yOiMwMDYwNjQgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1jeWFuLTkwMHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDYwNjQgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWN5YW4tQTEwMHtjb2xvcjojODRmZmZmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tY3lhbi1BMTAwe2JhY2tncm91bmQtY29sb3I6Izg0ZmZmZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tY3lhbi1BMjAwe2NvbG9yOiMxOGZmZmYgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1jeWFuLUEyMDB7YmFja2dyb3VuZC1jb2xvcjojMThmZmZmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1jeWFuLUE0MDB7Y29sb3I6IzAwZTVmZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWN5YW4tQTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiMwMGU1ZmYgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWN5YW4tQTcwMHtjb2xvcjojMDBiOGQ0ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tY3lhbi1BNzAwe2JhY2tncm91bmQtY29sb3I6IzAwYjhkNCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tdGVhbHtjb2xvcjojMDA5Njg4ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tdGVhbHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDk2ODggIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXRlYWwtNTB7Y29sb3I6I2UwZjJmMSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXRlYWwtNTB7YmFja2dyb3VuZC1jb2xvcjojZTBmMmYxICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS10ZWFsLTEwMHtjb2xvcjojYjJkZmRiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tdGVhbC0xMDB7YmFja2dyb3VuZC1jb2xvcjojYjJkZmRiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS10ZWFsLTIwMHtjb2xvcjojODBjYmM0ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tdGVhbC0yMDB7YmFja2dyb3VuZC1jb2xvcjojODBjYmM0ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS10ZWFsLTMwMHtjb2xvcjojNGRiNmFjICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tdGVhbC0zMDB7YmFja2dyb3VuZC1jb2xvcjojNGRiNmFjICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS10ZWFsLTQwMHtjb2xvcjojMjZhNjlhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tdGVhbC00MDB7YmFja2dyb3VuZC1jb2xvcjojMjZhNjlhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS10ZWFsLTUwMHtjb2xvcjojMDA5Njg4ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tdGVhbC01MDB7YmFja2dyb3VuZC1jb2xvcjojMDA5Njg4ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS10ZWFsLTYwMHtjb2xvcjojMDA4OTdiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tdGVhbC02MDB7YmFja2dyb3VuZC1jb2xvcjojMDA4OTdiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS10ZWFsLTcwMHtjb2xvcjojMDA3OTZiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tdGVhbC03MDB7YmFja2dyb3VuZC1jb2xvcjojMDA3OTZiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS10ZWFsLTgwMHtjb2xvcjojMDA2OTVjICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tdGVhbC04MDB7YmFja2dyb3VuZC1jb2xvcjojMDA2OTVjICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS10ZWFsLTkwMHtjb2xvcjojMDA0ZDQwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tdGVhbC05MDB7YmFja2dyb3VuZC1jb2xvcjojMDA0ZDQwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS10ZWFsLUExMDB7Y29sb3I6I2E3ZmZlYiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXRlYWwtQTEwMHtiYWNrZ3JvdW5kLWNvbG9yOiNhN2ZmZWIgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXRlYWwtQTIwMHtjb2xvcjojNjRmZmRhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tdGVhbC1BMjAwe2JhY2tncm91bmQtY29sb3I6IzY0ZmZkYSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tdGVhbC1BNDAwe2NvbG9yOiMxZGU5YjYgIWltcG9ydGFudH0ubWRsLWNvbG9yLS10ZWFsLUE0MDB7YmFja2dyb3VuZC1jb2xvcjojMWRlOWI2ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS10ZWFsLUE3MDB7Y29sb3I6IzAwYmZhNSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXRlYWwtQTcwMHtiYWNrZ3JvdW5kLWNvbG9yOiMwMGJmYTUgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZWVue2NvbG9yOiM0Y2FmNTAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmVlbntiYWNrZ3JvdW5kLWNvbG9yOiM0Y2FmNTAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTUwe2NvbG9yOiNlOGY1ZTkgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmVlbi01MHtiYWNrZ3JvdW5kLWNvbG9yOiNlOGY1ZTkgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTEwMHtjb2xvcjojYzhlNmM5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tZ3JlZW4tMTAwe2JhY2tncm91bmQtY29sb3I6I2M4ZTZjOSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tMjAwe2NvbG9yOiNhNWQ2YTcgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmVlbi0yMDB7YmFja2dyb3VuZC1jb2xvcjojYTVkNmE3ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ncmVlbi0zMDB7Y29sb3I6IzgxYzc4NCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWdyZWVuLTMwMHtiYWNrZ3JvdW5kLWNvbG9yOiM4MWM3ODQgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTQwMHtjb2xvcjojNjZiYjZhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tZ3JlZW4tNDAwe2JhY2tncm91bmQtY29sb3I6IzY2YmI2YSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tNTAwe2NvbG9yOiM0Y2FmNTAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmVlbi01MDB7YmFja2dyb3VuZC1jb2xvcjojNGNhZjUwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ncmVlbi02MDB7Y29sb3I6IzQzYTA0NyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWdyZWVuLTYwMHtiYWNrZ3JvdW5kLWNvbG9yOiM0M2EwNDcgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTcwMHtjb2xvcjojMzg4ZTNjICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tZ3JlZW4tNzAwe2JhY2tncm91bmQtY29sb3I6IzM4OGUzYyAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tODAwe2NvbG9yOiMyZTdkMzIgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmVlbi04MDB7YmFja2dyb3VuZC1jb2xvcjojMmU3ZDMyICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ncmVlbi05MDB7Y29sb3I6IzFiNWUyMCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWdyZWVuLTkwMHtiYWNrZ3JvdW5kLWNvbG9yOiMxYjVlMjAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZWVuLUExMDB7Y29sb3I6I2I5ZjZjYSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWdyZWVuLUExMDB7YmFja2dyb3VuZC1jb2xvcjojYjlmNmNhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ncmVlbi1BMjAwe2NvbG9yOiM2OWYwYWUgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmVlbi1BMjAwe2JhY2tncm91bmQtY29sb3I6IzY5ZjBhZSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tQTQwMHtjb2xvcjojMDBlNjc2ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tZ3JlZW4tQTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiMwMGU2NzYgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZWVuLUE3MDB7Y29sb3I6IzAwYzg1MyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWdyZWVuLUE3MDB7YmFja2dyb3VuZC1jb2xvcjojMDBjODUzICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbntjb2xvcjojOGJjMzRhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGlnaHQtZ3JlZW57YmFja2dyb3VuZC1jb2xvcjojOGJjMzRhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi01MHtjb2xvcjojZjFmOGU5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNTB7YmFja2dyb3VuZC1jb2xvcjojZjFmOGU5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi0xMDB7Y29sb3I6I2RjZWRjOCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTEwMHtiYWNrZ3JvdW5kLWNvbG9yOiNkY2VkYzggIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTIwMHtjb2xvcjojYzVlMWE1ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tMjAwe2JhY2tncm91bmQtY29sb3I6I2M1ZTFhNSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tMzAwe2NvbG9yOiNhZWQ1ODEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1saWdodC1ncmVlbi0zMDB7YmFja2dyb3VuZC1jb2xvcjojYWVkNTgxICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi00MDB7Y29sb3I6IzljY2M2NSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiM5Y2NjNjUgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTUwMHtjb2xvcjojOGJjMzRhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNTAwe2JhY2tncm91bmQtY29sb3I6IzhiYzM0YSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNjAwe2NvbG9yOiM3Y2IzNDIgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1saWdodC1ncmVlbi02MDB7YmFja2dyb3VuZC1jb2xvcjojN2NiMzQyICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi03MDB7Y29sb3I6IzY4OWYzOCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTcwMHtiYWNrZ3JvdW5kLWNvbG9yOiM2ODlmMzggIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTgwMHtjb2xvcjojNTU4YjJmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tODAwe2JhY2tncm91bmQtY29sb3I6IzU1OGIyZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tOTAwe2NvbG9yOiMzMzY5MWUgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1saWdodC1ncmVlbi05MDB7YmFja2dyb3VuZC1jb2xvcjojMzM2OTFlICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi1BMTAwe2NvbG9yOiNjY2ZmOTAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1saWdodC1ncmVlbi1BMTAwe2JhY2tncm91bmQtY29sb3I6I2NjZmY5MCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tQTIwMHtjb2xvcjojYjJmZjU5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tQTIwMHtiYWNrZ3JvdW5kLWNvbG9yOiNiMmZmNTkgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLUE0MDB7Y29sb3I6Izc2ZmYwMyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLUE0MDB7YmFja2dyb3VuZC1jb2xvcjojNzZmZjAzICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi1BNzAwe2NvbG9yOiM2NGRkMTcgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1saWdodC1ncmVlbi1BNzAwe2JhY2tncm91bmQtY29sb3I6IzY0ZGQxNyAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGltZXtjb2xvcjojY2RkYzM5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGltZXtiYWNrZ3JvdW5kLWNvbG9yOiNjZGRjMzkgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWxpbWUtNTB7Y29sb3I6I2Y5ZmJlNyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpbWUtNTB7YmFja2dyb3VuZC1jb2xvcjojZjlmYmU3ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saW1lLTEwMHtjb2xvcjojZjBmNGMzICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGltZS0xMDB7YmFja2dyb3VuZC1jb2xvcjojZjBmNGMzICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saW1lLTIwMHtjb2xvcjojZTZlZTljICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGltZS0yMDB7YmFja2dyb3VuZC1jb2xvcjojZTZlZTljICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saW1lLTMwMHtjb2xvcjojZGNlNzc1ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGltZS0zMDB7YmFja2dyb3VuZC1jb2xvcjojZGNlNzc1ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saW1lLTQwMHtjb2xvcjojZDRlMTU3ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGltZS00MDB7YmFja2dyb3VuZC1jb2xvcjojZDRlMTU3ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saW1lLTUwMHtjb2xvcjojY2RkYzM5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGltZS01MDB7YmFja2dyb3VuZC1jb2xvcjojY2RkYzM5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saW1lLTYwMHtjb2xvcjojYzBjYTMzICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGltZS02MDB7YmFja2dyb3VuZC1jb2xvcjojYzBjYTMzICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saW1lLTcwMHtjb2xvcjojYWZiNDJiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGltZS03MDB7YmFja2dyb3VuZC1jb2xvcjojYWZiNDJiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saW1lLTgwMHtjb2xvcjojOWU5ZDI0ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGltZS04MDB7YmFja2dyb3VuZC1jb2xvcjojOWU5ZDI0ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saW1lLTkwMHtjb2xvcjojODI3NzE3ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGltZS05MDB7YmFja2dyb3VuZC1jb2xvcjojODI3NzE3ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saW1lLUExMDB7Y29sb3I6I2Y0ZmY4MSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpbWUtQTEwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmNGZmODEgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWxpbWUtQTIwMHtjb2xvcjojZWVmZjQxICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tbGltZS1BMjAwe2JhY2tncm91bmQtY29sb3I6I2VlZmY0MSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tbGltZS1BNDAwe2NvbG9yOiNjNmZmMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1saW1lLUE0MDB7YmFja2dyb3VuZC1jb2xvcjojYzZmZjAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1saW1lLUE3MDB7Y29sb3I6I2FlZWEwMCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWxpbWUtQTcwMHtiYWNrZ3JvdW5kLWNvbG9yOiNhZWVhMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXllbGxvd3tjb2xvcjojZmZlYjNiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0teWVsbG93e2JhY2tncm91bmQtY29sb3I6I2ZmZWIzYiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0teWVsbG93LTUwe2NvbG9yOiNmZmZkZTcgIWltcG9ydGFudH0ubWRsLWNvbG9yLS15ZWxsb3ctNTB7YmFja2dyb3VuZC1jb2xvcjojZmZmZGU3ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctMTAwe2NvbG9yOiNmZmY5YzQgIWltcG9ydGFudH0ubWRsLWNvbG9yLS15ZWxsb3ctMTAwe2JhY2tncm91bmQtY29sb3I6I2ZmZjljNCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0teWVsbG93LTIwMHtjb2xvcjojZmZmNTlkICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0teWVsbG93LTIwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY1OWQgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXllbGxvdy0zMDB7Y29sb3I6I2ZmZjE3NiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXllbGxvdy0zMDB7YmFja2dyb3VuZC1jb2xvcjojZmZmMTc2ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctNDAwe2NvbG9yOiNmZmVlNTggIWltcG9ydGFudH0ubWRsLWNvbG9yLS15ZWxsb3ctNDAwe2JhY2tncm91bmQtY29sb3I6I2ZmZWU1OCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0teWVsbG93LTUwMHtjb2xvcjojZmZlYjNiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0teWVsbG93LTUwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmViM2IgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXllbGxvdy02MDB7Y29sb3I6I2ZkZDgzNSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXllbGxvdy02MDB7YmFja2dyb3VuZC1jb2xvcjojZmRkODM1ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctNzAwe2NvbG9yOiNmYmMwMmQgIWltcG9ydGFudH0ubWRsLWNvbG9yLS15ZWxsb3ctNzAwe2JhY2tncm91bmQtY29sb3I6I2ZiYzAyZCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0teWVsbG93LTgwMHtjb2xvcjojZjlhODI1ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0teWVsbG93LTgwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmOWE4MjUgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXllbGxvdy05MDB7Y29sb3I6I2Y1N2YxNyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLXllbGxvdy05MDB7YmFja2dyb3VuZC1jb2xvcjojZjU3ZjE3ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctQTEwMHtjb2xvcjojZmZmZjhkICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0teWVsbG93LUExMDB7YmFja2dyb3VuZC1jb2xvcjojZmZmZjhkICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctQTIwMHtjb2xvcjojZmYwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0teWVsbG93LUEyMDB7YmFja2dyb3VuZC1jb2xvcjojZmYwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctQTQwMHtjb2xvcjojZmZlYTAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0teWVsbG93LUE0MDB7YmFja2dyb3VuZC1jb2xvcjojZmZlYTAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctQTcwMHtjb2xvcjojZmZkNjAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0teWVsbG93LUE3MDB7YmFja2dyb3VuZC1jb2xvcjojZmZkNjAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1hbWJlcntjb2xvcjojZmZjMTA3ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYW1iZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZjMTA3ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1hbWJlci01MHtjb2xvcjojZmZmOGUxICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYW1iZXItNTB7YmFja2dyb3VuZC1jb2xvcjojZmZmOGUxICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1hbWJlci0xMDB7Y29sb3I6I2ZmZWNiMyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWFtYmVyLTEwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmVjYjMgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTIwMHtjb2xvcjojZmZlMDgyICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYW1iZXItMjAwe2JhY2tncm91bmQtY29sb3I6I2ZmZTA4MiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYW1iZXItMzAwe2NvbG9yOiNmZmQ1NGYgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1hbWJlci0zMDB7YmFja2dyb3VuZC1jb2xvcjojZmZkNTRmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1hbWJlci00MDB7Y29sb3I6I2ZmY2EyOCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWFtYmVyLTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmNhMjggIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTUwMHtjb2xvcjojZmZjMTA3ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYW1iZXItNTAwe2JhY2tncm91bmQtY29sb3I6I2ZmYzEwNyAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYW1iZXItNjAwe2NvbG9yOiNmZmIzMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1hbWJlci02MDB7YmFja2dyb3VuZC1jb2xvcjojZmZiMzAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1hbWJlci03MDB7Y29sb3I6I2ZmYTAwMCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWFtYmVyLTcwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmEwMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTgwMHtjb2xvcjojZmY4ZjAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYW1iZXItODAwe2JhY2tncm91bmQtY29sb3I6I2ZmOGYwMCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYW1iZXItOTAwe2NvbG9yOiNmZjZmMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1hbWJlci05MDB7YmFja2dyb3VuZC1jb2xvcjojZmY2ZjAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1hbWJlci1BMTAwe2NvbG9yOiNmZmU1N2YgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1hbWJlci1BMTAwe2JhY2tncm91bmQtY29sb3I6I2ZmZTU3ZiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYW1iZXItQTIwMHtjb2xvcjojZmZkNzQwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYW1iZXItQTIwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ3NDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWFtYmVyLUE0MDB7Y29sb3I6I2ZmYzQwMCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWFtYmVyLUE0MDB7YmFja2dyb3VuZC1jb2xvcjojZmZjNDAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1hbWJlci1BNzAwe2NvbG9yOiNmZmFiMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1hbWJlci1BNzAwe2JhY2tncm91bmQtY29sb3I6I2ZmYWIwMCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tb3Jhbmdle2NvbG9yOiNmZjk4MDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1vcmFuZ2V7YmFja2dyb3VuZC1jb2xvcjojZmY5ODAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtNTB7Y29sb3I6I2ZmZjNlMCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLW9yYW5nZS01MHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYzZTAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS0xMDB7Y29sb3I6I2ZmZTBiMiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLW9yYW5nZS0xMDB7YmFja2dyb3VuZC1jb2xvcjojZmZlMGIyICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtMjAwe2NvbG9yOiNmZmNjODAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1vcmFuZ2UtMjAwe2JhY2tncm91bmQtY29sb3I6I2ZmY2M4MCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTMwMHtjb2xvcjojZmZiNzRkICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tb3JhbmdlLTMwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmI3NGQgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS00MDB7Y29sb3I6I2ZmYTcyNiAhaW1wb3J0YW50fS5tZGwtY29sb3ItLW9yYW5nZS00MDB7YmFja2dyb3VuZC1jb2xvcjojZmZhNzI2ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtNTAwe2NvbG9yOiNmZjk4MDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1vcmFuZ2UtNTAwe2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTYwMHtjb2xvcjojZmI4YzAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tb3JhbmdlLTYwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmYjhjMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS03MDB7Y29sb3I6I2Y1N2MwMCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLW9yYW5nZS03MDB7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtODAwe2NvbG9yOiNlZjZjMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1vcmFuZ2UtODAwe2JhY2tncm91bmQtY29sb3I6I2VmNmMwMCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTkwMHtjb2xvcjojZTY1MTAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tb3JhbmdlLTkwMHtiYWNrZ3JvdW5kLWNvbG9yOiNlNjUxMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BMTAwe2NvbG9yOiNmZmQxODAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1vcmFuZ2UtQTEwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmQxODAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BMjAwe2NvbG9yOiNmZmFiNDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1vcmFuZ2UtQTIwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmFiNDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BNDAwe2NvbG9yOiNmZjkxMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1vcmFuZ2UtQTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjkxMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BNzAwe2NvbG9yOiNmZjZkMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1vcmFuZ2UtQTcwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjZkMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3Jhbmdle2NvbG9yOiNmZjU3MjIgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZjU3MjIgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTUwe2NvbG9yOiNmYmU5ZTcgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS01MHtiYWNrZ3JvdW5kLWNvbG9yOiNmYmU5ZTcgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTEwMHtjb2xvcjojZmZjY2JjICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtMTAwe2JhY2tncm91bmQtY29sb3I6I2ZmY2NiYyAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtMjAwe2NvbG9yOiNmZmFiOTEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS0yMDB7YmFja2dyb3VuZC1jb2xvcjojZmZhYjkxICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS0zMDB7Y29sb3I6I2ZmOGE2NSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTMwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjhhNjUgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTQwMHtjb2xvcjojZmY3MDQzICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNDAwe2JhY2tncm91bmQtY29sb3I6I2ZmNzA0MyAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtNTAwe2NvbG9yOiNmZjU3MjIgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS01MDB7YmFja2dyb3VuZC1jb2xvcjojZmY1NzIyICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS02MDB7Y29sb3I6I2Y0NTExZSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTYwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDUxMWUgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTcwMHtjb2xvcjojZTY0YTE5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNzAwe2JhY2tncm91bmQtY29sb3I6I2U2NGExOSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtODAwe2NvbG9yOiNkODQzMTUgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS04MDB7YmFja2dyb3VuZC1jb2xvcjojZDg0MzE1ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS05MDB7Y29sb3I6I2JmMzYwYyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTkwMHtiYWNrZ3JvdW5kLWNvbG9yOiNiZjM2MGMgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUExMDB7Y29sb3I6I2ZmOWU4MCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLUExMDB7YmFja2dyb3VuZC1jb2xvcjojZmY5ZTgwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS1BMjAwe2NvbG9yOiNmZjZlNDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS1BMjAwe2JhY2tncm91bmQtY29sb3I6I2ZmNmU0MCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtQTQwMHtjb2xvcjojZmYzZDAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtQTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmZjNkMDAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUE3MDB7Y29sb3I6I2RkMmMwMCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLUE3MDB7YmFja2dyb3VuZC1jb2xvcjojZGQyYzAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1icm93bntjb2xvcjojNzk1NTQ4ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYnJvd257YmFja2dyb3VuZC1jb2xvcjojNzk1NTQ4ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1icm93bi01MHtjb2xvcjojZWZlYmU5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYnJvd24tNTB7YmFja2dyb3VuZC1jb2xvcjojZWZlYmU5ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1icm93bi0xMDB7Y29sb3I6I2Q3Y2NjOCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWJyb3duLTEwMHtiYWNrZ3JvdW5kLWNvbG9yOiNkN2NjYzggIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWJyb3duLTIwMHtjb2xvcjojYmNhYWE0ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYnJvd24tMjAwe2JhY2tncm91bmQtY29sb3I6I2JjYWFhNCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYnJvd24tMzAwe2NvbG9yOiNhMTg4N2YgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1icm93bi0zMDB7YmFja2dyb3VuZC1jb2xvcjojYTE4ODdmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1icm93bi00MDB7Y29sb3I6IzhkNmU2MyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWJyb3duLTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiM4ZDZlNjMgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWJyb3duLTUwMHtjb2xvcjojNzk1NTQ4ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYnJvd24tNTAwe2JhY2tncm91bmQtY29sb3I6Izc5NTU0OCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYnJvd24tNjAwe2NvbG9yOiM2ZDRjNDEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1icm93bi02MDB7YmFja2dyb3VuZC1jb2xvcjojNmQ0YzQxICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1icm93bi03MDB7Y29sb3I6IzVkNDAzNyAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWJyb3duLTcwMHtiYWNrZ3JvdW5kLWNvbG9yOiM1ZDQwMzcgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWJyb3duLTgwMHtjb2xvcjojNGUzNDJlICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYnJvd24tODAwe2JhY2tncm91bmQtY29sb3I6IzRlMzQyZSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYnJvd24tOTAwe2NvbG9yOiMzZTI3MjMgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1icm93bi05MDB7YmFja2dyb3VuZC1jb2xvcjojM2UyNzIzICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ncmV5e2NvbG9yOiM5ZTllOWUgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmV5e2JhY2tncm91bmQtY29sb3I6IzllOWU5ZSAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tZ3JleS01MHtjb2xvcjojZmFmYWZhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tZ3JleS01MHtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmEgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZXktMTAwe2NvbG9yOiNmNWY1ZjUgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmV5LTEwMHtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjUgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZXktMjAwe2NvbG9yOiNlZWUgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmV5LTIwMHtiYWNrZ3JvdW5kLWNvbG9yOiNlZWUgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZXktMzAwe2NvbG9yOiNlMGUwZTAgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmV5LTMwMHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTAgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZXktNDAwe2NvbG9yOiNiZGJkYmQgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmV5LTQwMHtiYWNrZ3JvdW5kLWNvbG9yOiNiZGJkYmQgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZXktNTAwe2NvbG9yOiM5ZTllOWUgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmV5LTUwMHtiYWNrZ3JvdW5kLWNvbG9yOiM5ZTllOWUgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZXktNjAwe2NvbG9yOiM3NTc1NzUgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmV5LTYwMHtiYWNrZ3JvdW5kLWNvbG9yOiM3NTc1NzUgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZXktNzAwe2NvbG9yOiM2MTYxNjEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmV5LTcwMHtiYWNrZ3JvdW5kLWNvbG9yOiM2MTYxNjEgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZXktODAwe2NvbG9yOiM0MjQyNDIgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmV5LTgwMHtiYWNrZ3JvdW5kLWNvbG9yOiM0MjQyNDIgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWdyZXktOTAwe2NvbG9yOiMyMTIxMjEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ncmV5LTkwMHtiYWNrZ3JvdW5kLWNvbG9yOiMyMTIxMjEgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleXtjb2xvcjojNjA3ZDhiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS1ncmV5e2JhY2tncm91bmQtY29sb3I6IzYwN2Q4YiAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTUwe2NvbG9yOiNlY2VmZjEgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ibHVlLWdyZXktNTB7YmFja2dyb3VuZC1jb2xvcjojZWNlZmYxICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktMTAwe2NvbG9yOiNjZmQ4ZGMgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ibHVlLWdyZXktMTAwe2JhY2tncm91bmQtY29sb3I6I2NmZDhkYyAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTIwMHtjb2xvcjojYjBiZWM1ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS1ncmV5LTIwMHtiYWNrZ3JvdW5kLWNvbG9yOiNiMGJlYzUgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS0zMDB7Y29sb3I6IzkwYTRhZSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWJsdWUtZ3JleS0zMDB7YmFja2dyb3VuZC1jb2xvcjojOTBhNGFlICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNDAwe2NvbG9yOiM3ODkwOWMgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ibHVlLWdyZXktNDAwe2JhY2tncm91bmQtY29sb3I6Izc4OTA5YyAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTUwMHtjb2xvcjojNjA3ZDhiICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS1ncmV5LTUwMHtiYWNrZ3JvdW5kLWNvbG9yOiM2MDdkOGIgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS02MDB7Y29sb3I6IzU0NmU3YSAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWJsdWUtZ3JleS02MDB7YmFja2dyb3VuZC1jb2xvcjojNTQ2ZTdhICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNzAwe2NvbG9yOiM0NTVhNjQgIWltcG9ydGFudH0ubWRsLWNvbG9yLS1ibHVlLWdyZXktNzAwe2JhY2tncm91bmQtY29sb3I6IzQ1NWE2NCAhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTgwMHtjb2xvcjojMzc0NzRmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmx1ZS1ncmV5LTgwMHtiYWNrZ3JvdW5kLWNvbG9yOiMzNzQ3NGYgIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS05MDB7Y29sb3I6IzI2MzIzOCAhaW1wb3J0YW50fS5tZGwtY29sb3ItLWJsdWUtZ3JleS05MDB7YmFja2dyb3VuZC1jb2xvcjojMjYzMjM4ICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYmxhY2t7YmFja2dyb3VuZC1jb2xvcjojMDAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1ibGFja3tjb2xvcjojMDAwICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0td2hpdGV7YmFja2dyb3VuZC1jb2xvcjojZmZmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS13aGl0ZXtjb2xvcjojZmZmICFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOnJnYig2Myw4MSwxODEpIWltcG9ydGFudH0ubWRsLWNvbG9yLS1wcmltYXJ5LWNvbnRyYXN0e2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tcHJpbWFyeS1kYXJre2JhY2tncm91bmQtY29sb3I6cmdiKDQ4LDYzLDE1OSkhaW1wb3J0YW50fS5tZGwtY29sb3ItLWFjY2VudHtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsNjQsMTI5KSFpbXBvcnRhbnR9Lm1kbC1jb2xvci0tYWNjZW50LWNvbnRyYXN0e2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1wcmltYXJ5e2NvbG9yOnJnYig2Myw4MSwxODEpIWltcG9ydGFudH0ubWRsLWNvbG9yLXRleHQtLXByaW1hcnktY29udHJhc3R7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KSFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1wcmltYXJ5LWRhcmt7Y29sb3I6cmdiKDQ4LDYzLDE1OSkhaW1wb3J0YW50fS5tZGwtY29sb3ItdGV4dC0tYWNjZW50e2NvbG9yOnJnYigyNTUsNjQsMTI5KSFpbXBvcnRhbnR9Lm1kbC1jb2xvci10ZXh0LS1hY2NlbnQtY29udHJhc3R7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KSFpbXBvcnRhbnR9Lm1kbC1yaXBwbGV7YmFja2dyb3VuZDojMDAwO2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDo1MHB4O2xlZnQ6MDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt3aWR0aDo1MHB4O292ZXJmbG93OmhpZGRlbn0ubWRsLXJpcHBsZS5pcy1hbmltYXRpbmd7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLHdpZHRoIC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLGhlaWdodCAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxvcGFjaXR5IC42cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLHdpZHRoIC4zcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpLGhlaWdodCAuM3MgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKSxvcGFjaXR5IC42cyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS5tZGwtcmlwcGxlLmlzLXZpc2libGV7b3BhY2l0eTouM30ubWRsLWFuaW1hdGlvbi0tZGVmYXVsdCwubWRsLWFuaW1hdGlvbi0tZmFzdC1vdXQtc2xvdy1pbnstd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5tZGwtYW5pbWF0aW9uLS1saW5lYXItb3V0LXNsb3ctaW57LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwwLC4yLDEpO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLDAsLjIsMSl9Lm1kbC1hbmltYXRpb24tLWZhc3Qtb3V0LWxpbmVhci1pbnstd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ubWRsLWJhZGdle3Bvc2l0aW9uOnJlbGF0aXZlO3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tcmlnaHQ6MjRweH0ubWRsLWJhZGdlOm5vdChbZGF0YS1iYWRnZV0pe21hcmdpbi1yaWdodDphdXRvfS5tZGwtYmFkZ2VbZGF0YS1iYWRnZV06YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGEtYmFkZ2UpO2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1hbGlnbi1jb250ZW50OmNlbnRlcjstbXMtZmxleC1saW5lLXBhY2s6Y2VudGVyO2FsaWduLWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMTFweDtyaWdodDotMjRweDtmb250LWZhbWlseToiUm9ib3RvIiwiSGVsdmV0aWNhIiwiQXJpYWwiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxMnB4O3dpZHRoOjIycHg7aGVpZ2h0OjIycHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDpyZ2IoMjU1LDY0LDEyOSk7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KX0ubWRsLWJ1dHRvbiAubWRsLWJhZGdlW2RhdGEtYmFkZ2VdOmFmdGVye3RvcDotMTBweDtyaWdodDotNXB4fS5tZGwtYmFkZ2UubWRsLWJhZGdlLS1uby1iYWNrZ3JvdW5kW2RhdGEtYmFkZ2VdOmFmdGVye2NvbG9yOnJnYigyNTUsNjQsMTI5KTtiYWNrZ3JvdW5kOnJnYigyNTUsMjU1LDI1NSk7Ym94LXNoYWRvdzowIDAgMXB4IGdyYXl9Lm1kbC1idXR0b257YmFja2dyb3VuZDowIDA7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6IzAwMDtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MzZweDttaW4td2lkdGg6NjRweDtwYWRkaW5nOjAgMTZweDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseToiUm9ib3RvIiwiSGVsdmV0aWNhIiwiQXJpYWwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzowO292ZXJmbG93OmhpZGRlbjt3aWxsLWNoYW5nZTpib3gtc2hhZG93LHRyYW5zZm9ybTstd2Via2l0LXRyYW5zaXRpb246Ym94LXNoYWRvdyAuMnMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKSxiYWNrZ3JvdW5kLWNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxjb2xvciAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4ycyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpLGJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpLGNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtvdXRsaW5lOm5vbmU7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MzZweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1kbC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1kbC1idXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1OCwxNTgsMTU4LC4yKX0ubWRsLWJ1dHRvbjpmb2N1czpub3QoOmFjdGl2ZSl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xMil9Lm1kbC1idXR0b246YWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTgsMTU4LDE1OCwuNCl9Lm1kbC1idXR0b24ubWRsLWJ1dHRvbi0tY29sb3JlZHtjb2xvcjpyZ2IoNjMsODEsMTgxKX0ubWRsLWJ1dHRvbi5tZGwtYnV0dG9uLS1jb2xvcmVkOmZvY3VzOm5vdCg6YWN0aXZlKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKX1pbnB1dC5tZGwtYnV0dG9uW3R5cGU9InN1Ym1pdCJdey13ZWJraXQtYXBwZWFyYW5jZTpub25lfS5tZGwtYnV0dG9uLS1yYWlzZWR7YmFja2dyb3VuZDpyZ2JhKDE1OCwxNTgsMTU4LC4yKTtib3gtc2hhZG93OjAgMnB4IDJweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLC4yKSwwIDFweCA1cHggMCByZ2JhKDAsMCwwLC4xMil9Lm1kbC1idXR0b24tLXJhaXNlZDphY3RpdmV7Ym94LXNoYWRvdzowIDRweCA1cHggMCByZ2JhKDAsMCwwLC4xNCksMCAxcHggMTBweCAwIHJnYmEoMCwwLDAsLjEyKSwwIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLC4yKTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTU4LDE1OCwxNTgsLjQpfS5tZGwtYnV0dG9uLS1yYWlzZWQ6Zm9jdXM6bm90KDphY3RpdmUpe2JveC1zaGFkb3c6MCAwIDhweCByZ2JhKDAsMCwwLC4xOCksMCA4cHggMTZweCByZ2JhKDAsMCwwLC4zNik7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1OCwxNTgsMTU4LC40KX0ubWRsLWJ1dHRvbi0tcmFpc2VkLm1kbC1idXR0b24tLWNvbG9yZWR7YmFja2dyb3VuZDpyZ2IoNjMsODEsMTgxKTtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpfS5tZGwtYnV0dG9uLS1yYWlzZWQubWRsLWJ1dHRvbi0tY29sb3JlZDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYig2Myw4MSwxODEpfS5tZGwtYnV0dG9uLS1yYWlzZWQubWRsLWJ1dHRvbi0tY29sb3JlZDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjpyZ2IoNjMsODEsMTgxKX0ubWRsLWJ1dHRvbi0tcmFpc2VkLm1kbC1idXR0b24tLWNvbG9yZWQ6Zm9jdXM6bm90KDphY3RpdmUpe2JhY2tncm91bmQtY29sb3I6cmdiKDYzLDgxLDE4MSl9Lm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1jb2xvcmVkIC5tZGwtcmlwcGxle2JhY2tncm91bmQ6cmdiKDI1NSwyNTUsMjU1KX0ubWRsLWJ1dHRvbi0tZmFie2JvcmRlci1yYWRpdXM6NTAlO2ZvbnQtc2l6ZToyNHB4O2hlaWdodDo1NnB4O21hcmdpbjphdXRvO21pbi13aWR0aDo1NnB4O3dpZHRoOjU2cHg7cGFkZGluZzowO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnJnYmEoMTU4LDE1OCwxNTgsLjIpO2JveC1zaGFkb3c6MCAxcHggMS41cHggMCByZ2JhKDAsMCwwLC4xMiksMCAxcHggMXB4IDAgcmdiYSgwLDAsMCwuMjQpO3Bvc2l0aW9uOnJlbGF0aXZlO2xpbmUtaGVpZ2h0Om5vcm1hbH0ubWRsLWJ1dHRvbi0tZmFiIC5tYXRlcmlhbC1pY29uc3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTJweCwtMTJweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoLTEycHgsLTEycHgpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEycHgsLTEycHgpO2xpbmUtaGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0ubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLW1pbmktZmFie2hlaWdodDo0MHB4O21pbi13aWR0aDo0MHB4O3dpZHRoOjQwcHh9Lm1kbC1idXR0b24tLWZhYiAubWRsLWJ1dHRvbl9fcmlwcGxlLWNvbnRhaW5lcntib3JkZXItcmFkaXVzOjUwJTstd2Via2l0LW1hc2staW1hZ2U6LXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCNmZmYsIzAwMCl9Lm1kbC1idXR0b24tLWZhYjphY3RpdmV7Ym94LXNoYWRvdzowIDRweCA1cHggMCByZ2JhKDAsMCwwLC4xNCksMCAxcHggMTBweCAwIHJnYmEoMCwwLDAsLjEyKSwwIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLC4yKTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTU4LDE1OCwxNTgsLjQpfS5tZGwtYnV0dG9uLS1mYWI6Zm9jdXM6bm90KDphY3RpdmUpe2JveC1zaGFkb3c6MCAwIDhweCByZ2JhKDAsMCwwLC4xOCksMCA4cHggMTZweCByZ2JhKDAsMCwwLC4zNik7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1OCwxNTgsMTU4LC40KX0ubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLWNvbG9yZWR7YmFja2dyb3VuZDpyZ2IoMjU1LDY0LDEyOSk7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KX0ubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLWNvbG9yZWQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDY0LDEyOSl9Lm1kbC1idXR0b24tLWZhYi5tZGwtYnV0dG9uLS1jb2xvcmVkOmZvY3VzOm5vdCg6YWN0aXZlKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsNjQsMTI5KX0ubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLWNvbG9yZWQ6YWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSw2NCwxMjkpfS5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tY29sb3JlZCAubWRsLXJpcHBsZXtiYWNrZ3JvdW5kOnJnYigyNTUsMjU1LDI1NSl9Lm1kbC1idXR0b24tLWljb257Ym9yZGVyLXJhZGl1czo1MCU7Zm9udC1zaXplOjI0cHg7aGVpZ2h0OjMycHg7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MDttaW4td2lkdGg6MzJweDt3aWR0aDozMnB4O3BhZGRpbmc6MDtvdmVyZmxvdzpoaWRkZW47Y29sb3I6aW5oZXJpdDtsaW5lLWhlaWdodDpub3JtYWx9Lm1kbC1idXR0b24tLWljb24gLm1hdGVyaWFsLWljb25ze3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC0xMnB4LC0xMnB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTJweCwtMTJweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTJweCwtMTJweCk7bGluZS1oZWlnaHQ6MjRweDt3aWR0aDoyNHB4fS5tZGwtYnV0dG9uLS1pY29uLm1kbC1idXR0b24tLW1pbmktaWNvbntoZWlnaHQ6MjRweDttaW4td2lkdGg6MjRweDt3aWR0aDoyNHB4fS5tZGwtYnV0dG9uLS1pY29uLm1kbC1idXR0b24tLW1pbmktaWNvbiAubWF0ZXJpYWwtaWNvbnN7dG9wOjA7bGVmdDowfS5tZGwtYnV0dG9uLS1pY29uIC5tZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVye2JvcmRlci1yYWRpdXM6NTAlOy13ZWJraXQtbWFzay1pbWFnZTotd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsI2ZmZiwjMDAwKX0ubWRsLWJ1dHRvbl9fcmlwcGxlLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO2hlaWdodDoxMDAlO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO3otaW5kZXg6MDtvdmVyZmxvdzpoaWRkZW59Lm1kbC1idXR0b25bZGlzYWJsZWRdIC5tZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxlLC5tZGwtYnV0dG9uLm1kbC1idXR0b24tLWRpc2FibGVkIC5tZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tcHJpbWFyeXtjb2xvcjpyZ2IoNjMsODEsMTgxKX0ubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1wcmltYXJ5IC5tZGwtcmlwcGxle2JhY2tncm91bmQ6cmdiKDI1NSwyNTUsMjU1KX0ubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1wcmltYXJ5Lm1kbC1idXR0b24tLXJhaXNlZCwubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1wcmltYXJ5Lm1kbC1idXR0b24tLWZhYntjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2JhY2tncm91bmQtY29sb3I6cmdiKDYzLDgxLDE4MSl9Lm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1hY2NlbnR7Y29sb3I6cmdiKDI1NSw2NCwxMjkpfS5tZGwtYnV0dG9uLS1hY2NlbnQubWRsLWJ1dHRvbi0tYWNjZW50IC5tZGwtcmlwcGxle2JhY2tncm91bmQ6cmdiKDI1NSwyNTUsMjU1KX0ubWRsLWJ1dHRvbi0tYWNjZW50Lm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1yYWlzZWQsLm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1hY2NlbnQubWRsLWJ1dHRvbi0tZmFie2NvbG9yOnJnYigyNTUsMjU1LDI1NSk7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDY0LDEyOSl9Lm1kbC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwubWRsLWJ1dHRvbi5tZGwtYnV0dG9uLS1kaXNhYmxlZC5tZGwtYnV0dG9uLS1kaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLC4yNik7Y3Vyc29yOmRlZmF1bHQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWRsLWJ1dHRvbi0tZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sLm1kbC1idXR0b24tLWZhYi5tZGwtYnV0dG9uLS1kaXNhYmxlZC5tZGwtYnV0dG9uLS1kaXNhYmxlZCwubWRsLWJ1dHRvbi0tcmFpc2VkW2Rpc2FibGVkXVtkaXNhYmxlZF0sLm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1kaXNhYmxlZC5tZGwtYnV0dG9uLS1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEyKTtjb2xvcjpyZ2JhKDAsMCwwLC4yNik7Ym94LXNoYWRvdzowIDJweCAycHggMCByZ2JhKDAsMCwwLC4xNCksMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwuMiksMCAxcHggNXB4IDAgcmdiYSgwLDAsMCwuMTIpfS5tZGwtYnV0dG9uLS1jb2xvcmVkW2Rpc2FibGVkXVtkaXNhYmxlZF0sLm1kbC1idXR0b24tLWNvbG9yZWQubWRsLWJ1dHRvbi0tZGlzYWJsZWQubWRsLWJ1dHRvbi0tZGlzYWJsZWR7Y29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tZGwtYnV0dG9uIC5tYXRlcmlhbC1pY29uc3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9Lm1kbC1jYXJke2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjQwMDttaW4taGVpZ2h0OjIwMHB4O292ZXJmbG93OmhpZGRlbjt3aWR0aDozMzBweDt6LWluZGV4OjE7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6MnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWRsLWNhcmRfX21lZGlhe2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSw2NCwxMjkpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJSA1MCU7YmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtb3JpZ2luOnBhZGRpbmctYm94O2JhY2tncm91bmQtYXR0YWNobWVudDpzY3JvbGw7Ym94LXNpemluZzpib3JkZXItYm94fS5tZGwtY2FyZF9fdGl0bGV7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6IzAwMDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOnN0cmV0Y2g7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaDstbXMtZmxleC1wYWNrOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OnN0cmV0Y2g7bGluZS1oZWlnaHQ6bm9ybWFsO3BhZGRpbmc6MTZweDstd2Via2l0LXBlcnNwZWN0aXZlLW9yaWdpbjoxNjVweCA1NnB4O3BlcnNwZWN0aXZlLW9yaWdpbjoxNjVweCA1NnB4Oy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjoxNjVweCA1NnB4Oy1tcy10cmFuc2Zvcm0tb3JpZ2luOjE2NXB4IDU2cHg7dHJhbnNmb3JtLW9yaWdpbjoxNjVweCA1NnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWRsLWNhcmRfX3RpdGxlLm1kbC1jYXJkLS1ib3JkZXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMSl9Lm1kbC1jYXJkX190aXRsZS10ZXh0ey13ZWJraXQtYWxpZ24tc2VsZjpmbGV4LWVuZDstbXMtZmxleC1pdGVtLWFsaWduOmVuZDthbGlnbi1zZWxmOmZsZXgtZW5kO2NvbG9yOmluaGVyaXQ7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6MzAwO2xpbmUtaGVpZ2h0Om5vcm1hbDtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjE0OXB4IDQ4cHg7LW1zLXRyYW5zZm9ybS1vcmlnaW46MTQ5cHggNDhweDt0cmFuc2Zvcm0tb3JpZ2luOjE0OXB4IDQ4cHg7bWFyZ2luOjB9Lm1kbC1jYXJkX19zdWJ0aXRsZS10ZXh0e2ZvbnQtc2l6ZToxNHB4O2NvbG9yOnJnYmEoMCwwLDAsLjU0KTttYXJnaW46MH0ubWRsLWNhcmRfX3N1cHBvcnRpbmctdGV4dHtjb2xvcjpyZ2JhKDAsMCwwLC41NCk7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MThweDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzoxNnB4O3dpZHRoOjkwJX0ubWRsLWNhcmRfX2FjdGlvbnN7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6bm9ybWFsO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtwYWRkaW5nOjhweDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1kbC1jYXJkX19hY3Rpb25zLm1kbC1jYXJkLS1ib3JkZXJ7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgwLDAsMCwuMSl9Lm1kbC1jYXJkLS1leHBhbmR7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleC1ncm93OjE7LW1zLWZsZXgtcG9zaXRpdmU6MTtmbGV4LWdyb3c6MX0ubWRsLWNhcmRfX21lbnV7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTZweDt0b3A6MTZweH0ubWRsLWNoZWNrYm94e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjEwMCU7aGVpZ2h0OjI0cHg7bWFyZ2luOjA7cGFkZGluZzowfS5tZGwtY2hlY2tib3guaXMtdXBncmFkZWR7cGFkZGluZy1sZWZ0OjI0cHh9Lm1kbC1jaGVja2JveF9faW5wdXR7bGluZS1oZWlnaHQ6MjRweH0ubWRsLWNoZWNrYm94LmlzLXVwZ3JhZGVkIC5tZGwtY2hlY2tib3hfX2lucHV0e3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luOjA7cGFkZGluZzowO29wYWNpdHk6MDstbXMtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtib3JkZXI6bm9uZX0ubWRsLWNoZWNrYm94X19ib3gtb3V0bGluZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6M3B4O2xlZnQ6MDtkaXNwbGF5OmlubGluZS1ibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDttYXJnaW46MDtjdXJzb3I6cG9pbnRlcjtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDAsMCwwLC41NCk7Ym9yZGVyLXJhZGl1czoycHg7ei1pbmRleDoyfS5tZGwtY2hlY2tib3guaXMtY2hlY2tlZCAubWRsLWNoZWNrYm94X19ib3gtb3V0bGluZXtib3JkZXI6MnB4IHNvbGlkIHJnYig2Myw4MSwxODEpfS5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fYm94LW91dGxpbmV7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDAsMCwwLC4yNik7Y3Vyc29yOmF1dG99Lm1kbC1jaGVja2JveF9fZm9jdXMtaGVscGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDozcHg7bGVmdDowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1kbC1jaGVja2JveC5pcy1mb2N1c2VkIC5tZGwtY2hlY2tib3hfX2ZvY3VzLWhlbHBlcntib3gtc2hhZG93OjAgMCAwIDhweCByZ2JhKDAsMCwwLC4xKTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5tZGwtY2hlY2tib3guaXMtZm9jdXNlZC5pcy1jaGVja2VkIC5tZGwtY2hlY2tib3hfX2ZvY3VzLWhlbHBlcntib3gtc2hhZG93OjAgMCAwIDhweCByZ2JhKDYzLDgxLDE4MSwuMjYpO2JhY2tncm91bmQtY29sb3I6cmdiYSg2Myw4MSwxODEsLjI2KX0ubWRsLWNoZWNrYm94X190aWNrLW91dGxpbmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7LXdlYmtpdC1tYXNrOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lJSE4wWVc1a1lXeHZibVU5SW01dklqOCtDanh6ZG1jS0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0I0Yld4dWN6cGpZejBpYUhSMGNEb3ZMMk55WldGMGFYWmxZMjl0Ylc5dWN5NXZjbWN2Ym5Naklnb2dJQ0I0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pQ2lBZ0lIaHRiRzV6T25OMlp6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lDaUFnSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlLSUNBZ2RtVnljMmx2YmowaU1TNHhJZ29nSUNCMmFXVjNRbTk0UFNJd0lEQWdNU0F4SWdvZ0lDQndjbVZ6WlhKMlpVRnpjR1ZqZEZKaGRHbHZQU0o0VFdsdVdVMXBiaUJ0WldWMElqNEtJQ0E4WkdWbWN6NEtJQ0FnSUR4amJHbHdVR0YwYUNCcFpEMGlZMnhwY0NJK0NpQWdJQ0FnSUR4d1lYUm9DaUFnSUNBZ0lDQWdJR1E5SWswZ01Dd3dJREFzTVNBeExERWdNU3d3SURBc01DQjZJRTBnTUM0NE5UTTBNemMxTERBdU1UWTNNVGczTlNBd0xqazFPVFk0TnpVc01DNHlOek14TWpVZ01DNDBNamt6TnpVc01DNDRNRE0wTXpjMUlEQXVNekl6TVRJMUxEQXVPVEE1TmpnM05TQXdMakl4TnpFNE56VXNNQzQ0TURNME16YzFJREF1TURRd016RXlOU3d3TGpZeU5qZzNOU0F3TGpFME5qVTJNalVzTUM0MU1qQTJNalVnTUM0ek1qTXhNalVzTUM0Mk9UYzFJREF1T0RVek5ETTNOU3d3TGpFMk56RTROelVnZWlJS0lDQWdJQ0FnSUNBZ2MzUjViR1U5SW1acGJHdzZJMlptWm1abVpqdG1hV3hzTFc5d1lXTnBkSGs2TVR0emRISnZhMlU2Ym05dVpTSWdMejRLSUNBZ0lEd3ZZMnhwY0ZCaGRHZytDaUFnSUNBOGJXRnpheUJwWkQwaWJXRnpheUlnYldGemExVnVhWFJ6UFNKdlltcGxZM1JDYjNWdVpHbHVaMEp2ZUNJZ2JXRnphME52Ym5SbGJuUlZibWwwY3owaWIySnFaV04wUW05MWJtUnBibWRDYjNnaVBnb2dJQ0FnSUNBOGNHRjBhQW9nSUNBZ0lDQWdJQ0JrUFNKTklEQXNNQ0F3TERFZ01Td3hJREVzTUNBd0xEQWdlaUJOSURBdU9EVXpORE0zTlN3d0xqRTJOekU0TnpVZ01DNDVOVGsyT0RjMUxEQXVNamN6TVRJMUlEQXVOREk1TXpjMUxEQXVPREF6TkRNM05TQXdMak15TXpFeU5Td3dMamt3T1RZNE56VWdNQzR5TVRjeE9EYzFMREF1T0RBek5ETTNOU0F3TGpBME1ETXhNalVzTUM0Mk1qWTROelVnTUM0eE5EWTFOakkxTERBdU5USXdOakkxSURBdU16SXpNVEkxTERBdU5qazNOU0F3TGpnMU16UXpOelVzTUM0eE5qY3hPRGMxSUhvaUNpQWdJQ0FnSUNBZ0lITjBlV3hsUFNKbWFXeHNPaU5tWm1abVptWTdabWxzYkMxdmNHRmphWFI1T2pFN2MzUnliMnRsT201dmJtVWlJQzgrQ2lBZ0lDQThMMjFoYzJzK0NpQWdQQzlrWldaelBnb2dJRHh5WldOMENpQWdJQ0FnZDJsa2RHZzlJakVpQ2lBZ0lDQWdhR1ZwWjJoMFBTSXhJZ29nSUNBZ0lIZzlJakFpQ2lBZ0lDQWdlVDBpTUNJS0lDQWdJQ0JqYkdsd0xYQmhkR2c5SW5WeWJDZ2pZMnhwY0NraUNpQWdJQ0FnYzNSNWJHVTlJbVpwYkd3Nkl6QXdNREF3TUR0bWFXeHNMVzl3WVdOcGRIazZNVHR6ZEhKdmEyVTZibTl1WlNJZ0x6NEtQQzl6ZG1jK0NnPT0iKTttYXNrOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lJSE4wWVc1a1lXeHZibVU5SW01dklqOCtDanh6ZG1jS0lDQWdlRzFzYm5NNlpHTTlJbWgwZEhBNkx5OXdkWEpzTG05eVp5OWtZeTlsYkdWdFpXNTBjeTh4TGpFdklnb2dJQ0I0Yld4dWN6cGpZejBpYUhSMGNEb3ZMMk55WldGMGFYWmxZMjl0Ylc5dWN5NXZjbWN2Ym5Naklnb2dJQ0I0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pQ2lBZ0lIaHRiRzV6T25OMlp6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lDaUFnSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlLSUNBZ2RtVnljMmx2YmowaU1TNHhJZ29nSUNCMmFXVjNRbTk0UFNJd0lEQWdNU0F4SWdvZ0lDQndjbVZ6WlhKMlpVRnpjR1ZqZEZKaGRHbHZQU0o0VFdsdVdVMXBiaUJ0WldWMElqNEtJQ0E4WkdWbWN6NEtJQ0FnSUR4amJHbHdVR0YwYUNCcFpEMGlZMnhwY0NJK0NpQWdJQ0FnSUR4d1lYUm9DaUFnSUNBZ0lDQWdJR1E5SWswZ01Dd3dJREFzTVNBeExERWdNU3d3SURBc01DQjZJRTBnTUM0NE5UTTBNemMxTERBdU1UWTNNVGczTlNBd0xqazFPVFk0TnpVc01DNHlOek14TWpVZ01DNDBNamt6TnpVc01DNDRNRE0wTXpjMUlEQXVNekl6TVRJMUxEQXVPVEE1TmpnM05TQXdMakl4TnpFNE56VXNNQzQ0TURNME16YzFJREF1TURRd016RXlOU3d3TGpZeU5qZzNOU0F3TGpFME5qVTJNalVzTUM0MU1qQTJNalVnTUM0ek1qTXhNalVzTUM0Mk9UYzFJREF1T0RVek5ETTNOU3d3TGpFMk56RTROelVnZWlJS0lDQWdJQ0FnSUNBZ2MzUjViR1U5SW1acGJHdzZJMlptWm1abVpqdG1hV3hzTFc5d1lXTnBkSGs2TVR0emRISnZhMlU2Ym05dVpTSWdMejRLSUNBZ0lEd3ZZMnhwY0ZCaGRHZytDaUFnSUNBOGJXRnpheUJwWkQwaWJXRnpheUlnYldGemExVnVhWFJ6UFNKdlltcGxZM1JDYjNWdVpHbHVaMEp2ZUNJZ2JXRnphME52Ym5SbGJuUlZibWwwY3owaWIySnFaV04wUW05MWJtUnBibWRDYjNnaVBnb2dJQ0FnSUNBOGNHRjBhQW9nSUNBZ0lDQWdJQ0JrUFNKTklEQXNNQ0F3TERFZ01Td3hJREVzTUNBd0xEQWdlaUJOSURBdU9EVXpORE0zTlN3d0xqRTJOekU0TnpVZ01DNDVOVGsyT0RjMUxEQXVNamN6TVRJMUlEQXVOREk1TXpjMUxEQXVPREF6TkRNM05TQXdMak15TXpFeU5Td3dMamt3T1RZNE56VWdNQzR5TVRjeE9EYzFMREF1T0RBek5ETTNOU0F3TGpBME1ETXhNalVzTUM0Mk1qWTROelVnTUM0eE5EWTFOakkxTERBdU5USXdOakkxSURBdU16SXpNVEkxTERBdU5qazNOU0F3TGpnMU16UXpOelVzTUM0eE5qY3hPRGMxSUhvaUNpQWdJQ0FnSUNBZ0lITjBlV3hsUFNKbWFXeHNPaU5tWm1abVptWTdabWxzYkMxdmNHRmphWFI1T2pFN2MzUnliMnRsT201dmJtVWlJQzgrQ2lBZ0lDQThMMjFoYzJzK0NpQWdQQzlrWldaelBnb2dJRHh5WldOMENpQWdJQ0FnZDJsa2RHZzlJakVpQ2lBZ0lDQWdhR1ZwWjJoMFBTSXhJZ29nSUNBZ0lIZzlJakFpQ2lBZ0lDQWdlVDBpTUNJS0lDQWdJQ0JqYkdsd0xYQmhkR2c5SW5WeWJDZ2pZMnhwY0NraUNpQWdJQ0FnYzNSNWJHVTlJbVpwYkd3Nkl6QXdNREF3TUR0bWFXeHNMVzl3WVdOcGRIazZNVHR6ZEhKdmEyVTZibTl1WlNJZ0x6NEtQQzl6ZG1jK0NnPT0iKTtiYWNrZ3JvdW5kOjAgMDstd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246LjI4czt0cmFuc2l0aW9uLWR1cmF0aW9uOi4yOHM7LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6YmFja2dyb3VuZDt0cmFuc2l0aW9uLXByb3BlcnR5OmJhY2tncm91bmR9Lm1kbC1jaGVja2JveC5pcy1jaGVja2VkIC5tZGwtY2hlY2tib3hfX3RpY2stb3V0bGluZXtiYWNrZ3JvdW5kOnJnYig2Myw4MSwxODEpdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaUlITjBZVzVrWVd4dmJtVTlJbTV2SWo4K0NqeHpkbWNLSUNBZ2VHMXNibk02WkdNOUltaDBkSEE2THk5d2RYSnNMbTl5Wnk5a1l5OWxiR1Z0Wlc1MGN5OHhMakV2SWdvZ0lDQjRiV3h1Y3pwall6MGlhSFIwY0RvdkwyTnlaV0YwYVhabFkyOXRiVzl1Y3k1dmNtY3Zibk1qSWdvZ0lDQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlDaUFnSUhodGJHNXpPbk4yWnowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUNpQWdJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SUtJQ0FnZG1WeWMybHZiajBpTVM0eElnb2dJQ0IyYVdWM1FtOTRQU0l3SURBZ01TQXhJZ29nSUNCd2NtVnpaWEoyWlVGemNHVmpkRkpoZEdsdlBTSjRUV2x1V1UxcGJpQnRaV1YwSWo0S0lDQThjR0YwYUFvZ0lDQWdJR1E5SWswZ01DNHdOREF6T0RBMU9Td3dMall5TmpjM05qY2dNQzR4TkRZME5EWTJNU3d3TGpVeU1EY3hNRFk0SURBdU5ESTVNamc1TXpJc01DNDRNRE0xTlRNek9TQXdMak15TXpJeU16TXNNQzQ1TURrMk1UazBNU0I2SUUwZ01DNHlNVGN4TlRjeU9Td3dMamd3TXpVMU16TTVJREF1T0RVek5UVXpNemtzTUM0eE5qY3hOVGN5T1NBd0xqazFPVFl4T1RReExEQXVNamN6TWpJek15QXdMak15TXpJeU16TXNNQzQ1TURrMk1UazBNU0I2SWdvZ0lDQWdJR2xrUFNKeVpXTjBNemM0TUNJS0lDQWdJQ0J6ZEhsc1pUMGlabWxzYkRvalptWm1abVptTzJacGJHd3RiM0JoWTJsMGVUb3hPM04wY205clpUcHViMjVsSWlBdlBnbzhMM04yWno0SyIpfS5tZGwtY2hlY2tib3guaXMtY2hlY2tlZC5pcy1kaXNhYmxlZCAubWRsLWNoZWNrYm94X190aWNrLW91dGxpbmV7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4yNil1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpSUhOMFlXNWtZV3h2Ym1VOUltNXZJajgrQ2p4emRtY0tJQ0FnZUcxc2JuTTZaR005SW1oMGRIQTZMeTl3ZFhKc0xtOXlaeTlrWXk5bGJHVnRaVzUwY3k4eExqRXZJZ29nSUNCNGJXeHVjenBqWXowaWFIUjBjRG92TDJOeVpXRjBhWFpsWTI5dGJXOXVjeTV2Y21jdmJuTWpJZ29nSUNCNGJXeHVjenB5WkdZOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2TURJdk1qSXRjbVJtTFhONWJuUmhlQzF1Y3lNaUNpQWdJSGh0Ykc1ek9uTjJaejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpQ2lBZ0lIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJS0lDQWdkbVZ5YzJsdmJqMGlNUzR4SWdvZ0lDQjJhV1YzUW05NFBTSXdJREFnTVNBeElnb2dJQ0J3Y21WelpYSjJaVUZ6Y0dWamRGSmhkR2x2UFNKNFRXbHVXVTFwYmlCdFpXVjBJajRLSUNBOGNHRjBhQW9nSUNBZ0lHUTlJazBnTUM0d05EQXpPREExT1N3d0xqWXlOamMzTmpjZ01DNHhORFkwTkRZMk1Td3dMalV5TURjeE1EWTRJREF1TkRJNU1qZzVNeklzTUM0NE1ETTFOVE16T1NBd0xqTXlNekl5TXpNc01DNDVNRGsyTVRrME1TQjZJRTBnTUM0eU1UY3hOVGN5T1N3d0xqZ3dNelUxTXpNNUlEQXVPRFV6TlRVek16a3NNQzR4TmpjeE5UY3lPU0F3TGprMU9UWXhPVFF4TERBdU1qY3pNakl6TXlBd0xqTXlNekl5TXpNc01DNDVNRGsyTVRrME1TQjZJZ29nSUNBZ0lHbGtQU0p5WldOME16YzRNQ0lLSUNBZ0lDQnpkSGxzWlQwaVptbHNiRG9qWm1abVptWm1PMlpwYkd3dGIzQmhZMmwwZVRveE8zTjBjbTlyWlRwdWIyNWxJaUF2UGdvOEwzTjJaejRLIil9Lm1kbC1jaGVja2JveF9fbGFiZWx7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MjRweDttYXJnaW46MH0ubWRsLWNoZWNrYm94LmlzLWRpc2FibGVkIC5tZGwtY2hlY2tib3hfX2xhYmVse2NvbG9yOnJnYmEoMCwwLDAsLjI2KTtjdXJzb3I6YXV0b30ubWRsLWNoZWNrYm94X19yaXBwbGUtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mjt0b3A6LTZweDtsZWZ0Oi0xMHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDozNnB4O2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpwb2ludGVyO292ZXJmbG93OmhpZGRlbjstd2Via2l0LW1hc2staW1hZ2U6LXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCNmZmYsIzAwMCl9Lm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZXtiYWNrZ3JvdW5kOnJnYig2Myw4MSwxODEpfS5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lcntjdXJzb3I6YXV0b30ubWRsLWNoZWNrYm94LmlzLWRpc2FibGVkIC5tZGwtY2hlY2tib3hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGV7YmFja2dyb3VuZDowIDB9Lm1kbC1kYXRhLXRhYmxle3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOjEzcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5tZGwtZGF0YS10YWJsZSB0aGVhZHtwYWRkaW5nLWJvdHRvbTozcHh9Lm1kbC1kYXRhLXRhYmxlIHRoZWFkIC5tZGwtZGF0YS10YWJsZV9fc2VsZWN0e21hcmdpbi10b3A6MH0ubWRsLWRhdGEtdGFibGUgdGJvZHkgdHJ7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjQ4cHg7LXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOi4yOHM7dHJhbnNpdGlvbi1kdXJhdGlvbjouMjhzOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7LXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OmJhY2tncm91bmQtY29sb3I7dHJhbnNpdGlvbi1wcm9wZXJ0eTpiYWNrZ3JvdW5kLWNvbG9yfS5tZGwtZGF0YS10YWJsZSB0Ym9keSB0ci5pcy1zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTB9Lm1kbC1kYXRhLXRhYmxlIHRib2R5IHRyOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2VlZX0ubWRsLWRhdGEtdGFibGUgdGR7dGV4dC1hbGlnbjpyaWdodH0ubWRsLWRhdGEtdGFibGUgdGh7cGFkZGluZzowIDE4cHg7dGV4dC1hbGlnbjpyaWdodH0ubWRsLWRhdGEtdGFibGUgdGQ6Zmlyc3Qtb2YtdHlwZSwubWRsLWRhdGEtdGFibGUgdGg6Zmlyc3Qtb2YtdHlwZXtwYWRkaW5nLWxlZnQ6MjRweH0ubWRsLWRhdGEtdGFibGUgdGQ6bGFzdC1vZi10eXBlLC5tZGwtZGF0YS10YWJsZSB0aDpsYXN0LW9mLXR5cGV7cGFkZGluZy1yaWdodDoyNHB4fS5tZGwtZGF0YS10YWJsZSB0ZHtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjp0b3A7aGVpZ2h0OjQ4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyKTtwYWRkaW5nOjEycHggMThweCAwO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWRsLWRhdGEtdGFibGUgdGQgLm1kbC1kYXRhLXRhYmxlX19zZWxlY3R7dmVydGljYWwtYWxpZ246dG9wO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MjRweH0ubWRsLWRhdGEtdGFibGUgdGh7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246Ym90dG9tO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjI0cHg7bGV0dGVyLXNwYWNpbmc6MDtoZWlnaHQ6NDhweDtmb250LXNpemU6MTJweDtjb2xvcjpyZ2JhKDAsMCwwLC41NCk7cGFkZGluZy1ib3R0b206OHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWRsLWRhdGEtdGFibGUgdGggLm1kbC1kYXRhLXRhYmxlX19zZWxlY3R7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjhweDtsZWZ0OjI0cHh9Lm1kbC1kYXRhLXRhYmxlX19zZWxlY3R7d2lkdGg6MTZweH0ubWRsLWRhdGEtdGFibGVfX2NlbGwtLW5vbi1udW1lcmljLm1kbC1kYXRhLXRhYmxlX19jZWxsLS1ub24tbnVtZXJpY3t0ZXh0LWFsaWduOmxlZnR9Lm1kbC1tZWdhLWZvb3RlcntwYWRkaW5nOjE2cHggNDBweDtjb2xvcjojOWU5ZTllO2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mn0ubWRsLW1lZ2EtZm9vdGVyLS10b3Atc2VjdGlvbjphZnRlciwubWRsLW1lZ2EtZm9vdGVyLS1taWRkbGUtc2VjdGlvbjphZnRlciwubWRsLW1lZ2EtZm9vdGVyLS1ib3R0b20tc2VjdGlvbjphZnRlciwubWRsLW1lZ2EtZm9vdGVyX190b3Atc2VjdGlvbjphZnRlciwubWRsLW1lZ2EtZm9vdGVyX19taWRkbGUtc2VjdGlvbjphZnRlciwubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbjphZnRlcntjb250ZW50OicnO2Rpc3BsYXk6YmxvY2s7Y2xlYXI6Ym90aH0ubWRsLW1lZ2EtZm9vdGVyLS1sZWZ0LXNlY3Rpb24sLm1kbC1tZWdhLWZvb3Rlcl9fbGVmdC1zZWN0aW9uLC5tZGwtbWVnYS1mb290ZXItLXJpZ2h0LXNlY3Rpb24sLm1kbC1tZWdhLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbnttYXJnaW4tYm90dG9tOjE2cHh9Lm1kbC1tZWdhLWZvb3Rlci0tcmlnaHQtc2VjdGlvbiBhLC5tZGwtbWVnYS1mb290ZXJfX3JpZ2h0LXNlY3Rpb24gYXtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206MTZweDtjb2xvcjppbmhlcml0O3RleHQtZGVjb3JhdGlvbjpub25lfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NzYwcHgpey5tZGwtbWVnYS1mb290ZXItLWxlZnQtc2VjdGlvbiwubWRsLW1lZ2EtZm9vdGVyX19sZWZ0LXNlY3Rpb257ZmxvYXQ6bGVmdH0ubWRsLW1lZ2EtZm9vdGVyLS1yaWdodC1zZWN0aW9uLC5tZGwtbWVnYS1mb290ZXJfX3JpZ2h0LXNlY3Rpb257ZmxvYXQ6cmlnaHR9Lm1kbC1tZWdhLWZvb3Rlci0tcmlnaHQtc2VjdGlvbiBhLC5tZGwtbWVnYS1mb290ZXJfX3JpZ2h0LXNlY3Rpb24gYXtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tbGVmdDoxNnB4O2xpbmUtaGVpZ2h0OjM2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfX0ubWRsLW1lZ2EtZm9vdGVyLS1zb2NpYWwtYnRuLC5tZGwtbWVnYS1mb290ZXJfX3NvY2lhbC1idG57d2lkdGg6MzZweDtoZWlnaHQ6MzZweDtwYWRkaW5nOjA7bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojOWU5ZTllO2JvcmRlcjpub25lfS5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uLC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9ue2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmV9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo3NjBweCl7Lm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb24sLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb257d2lkdGg6MzMlfS5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgxKSwubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMiksLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDEpLC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgyKXtmbG9hdDpsZWZ0fS5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgzKSwubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMyl7ZmxvYXQ6cmlnaHR9Lm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDMpOmFmdGVyLC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgzKTphZnRlcntjbGVhcjpyaWdodH0ubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoNCksLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDQpe2NsZWFyOnJpZ2h0O2Zsb2F0OnJpZ2h0fS5tZGwtbWVnYS1mb290ZXItLW1pZGRsZS1zZWN0aW9uOmFmdGVyLC5tZGwtbWVnYS1mb290ZXJfX21pZGRsZS1zZWN0aW9uOmFmdGVye2NvbnRlbnQ6Jyc7ZGlzcGxheTpibG9jaztjbGVhcjpib3RofS5tZGwtbWVnYS1mb290ZXItLWJvdHRvbS1zZWN0aW9uLC5tZGwtbWVnYS1mb290ZXJfX2JvdHRvbS1zZWN0aW9ue3BhZGRpbmctdG9wOjB9fUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTAyNHB4KXsubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbiwubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMyksLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDQpLC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uLC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgzKSwubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoNCl7d2lkdGg6MjQlO2Zsb2F0OmxlZnR9fS5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3gsLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveHtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2hlaWdodDo1NS44cHg7cGFkZGluZzozMnB4O21hcmdpbjotMTZweCAwIDA7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoxO29wYWNpdHk6MH0ubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94Ky5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveCsubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyLC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3grLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlciwubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94Ky5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXJ7Zm9udC1mYW1pbHk6J01hdGVyaWFsIEljb25zJztjb250ZW50OidcRTVDRSd9Lm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2Vkfi5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCwubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWR+Lm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0LC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCsubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nKy5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCwubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQrLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZysubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2Vkfi5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCwubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWR+Lm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0LC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCsubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nKy5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCwubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQrLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZysubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3R7ZGlzcGxheTpub25lfS5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCsubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCsubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyLC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCsubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCsubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVye2ZvbnQtZmFtaWx5OidNYXRlcmlhbCBJY29ucyc7Y29udGVudDonXEU1Q0YnfS5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmcsLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZ3twb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6MzkuOHB4O21hcmdpbi1ib3R0b206MTZweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjMuOHB4O2ZvbnQtd2VpZ2h0OjUwMDt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW47Y29sb3I6I2UwZTBlMH0ubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MjMuOHB4O2hlaWdodDoyMy44cHg7YmFja2dyb3VuZC1zaXplOmNvdmVyfS5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCwubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3R7bGlzdC1zdHlsZTpub25lO3BhZGRpbmc6MDttYXJnaW46MCAwIDMycHh9Lm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0OmFmdGVyLC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdDphZnRlcntjbGVhcjpib3RoO2Rpc3BsYXk6YmxvY2s7Y29udGVudDonJ30ubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QgbGksLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IGxpe2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjQwMDtsZXR0ZXItc3BhY2luZzowO2xpbmUtaGVpZ2h0OjIwcHh9Lm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0IGEsLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IGF7Y29sb3I6aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXB9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo3NjBweCl7Lm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveCwubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94e2Rpc3BsYXk6bm9uZX0ubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94Ky5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveCsubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyLC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3grLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlciwubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94Ky5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTpub25lfS5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZH4ubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2Vkfi5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCwubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQrLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZysubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkKy5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmcrLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZH4ubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2Vkfi5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCwubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQrLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZysubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkKy5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmcrLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0e2Rpc3BsYXk6YmxvY2t9Lm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkKy5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkKy5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIsLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkKy5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkKy5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXJ7Y29udGVudDonJ319Lm1kbC1tZWdhLWZvb3Rlci0tYm90dG9tLXNlY3Rpb24sLm1kbC1tZWdhLWZvb3Rlcl9fYm90dG9tLXNlY3Rpb257cGFkZGluZy10b3A6MTZweDttYXJnaW4tYm90dG9tOjE2cHh9Lm1kbC1sb2dve21hcmdpbi1ib3R0b206MTZweDtjb2xvcjojZmZmfS5tZGwtbWVnYS1mb290ZXItLWJvdHRvbS1zZWN0aW9uIC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCBsaSwubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbiAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QgbGl7ZmxvYXQ6bGVmdDttYXJnaW4tYm90dG9tOjA7bWFyZ2luLXJpZ2h0OjE2cHh9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo3NjBweCl7Lm1kbC1sb2dve2Zsb2F0OmxlZnQ7bWFyZ2luLWJvdHRvbTowO21hcmdpbi1yaWdodDoxNnB4fX0ubWRsLW1pbmktZm9vdGVye2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1mbG93OnJvdyB3cmFwOy1tcy1mbGV4LWZsb3c6cm93IHdyYXA7ZmxleC1mbG93OnJvdyB3cmFwOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjMycHggMTZweDtjb2xvcjojOWU5ZTllO2JhY2tncm91bmQtY29sb3I6IzQyNDI0Mn0ubWRsLW1pbmktZm9vdGVyOmFmdGVye2NvbnRlbnQ6Jyc7ZGlzcGxheTpibG9ja30ubWRsLW1pbmktZm9vdGVyIC5tZGwtbG9nb3tsaW5lLWhlaWdodDozNnB4fS5tZGwtbWluaS1mb290ZXItLWxpbmstbGlzdCwubWRsLW1pbmktZm9vdGVyX19saW5rLWxpc3R7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LWZsb3c6cm93IG5vd3JhcDstbXMtZmxleC1mbG93OnJvdyBub3dyYXA7ZmxleC1mbG93OnJvdyBub3dyYXA7bGlzdC1zdHlsZTpub25lO21hcmdpbjowO3BhZGRpbmc6MH0ubWRsLW1pbmktZm9vdGVyLS1saW5rLWxpc3QgbGksLm1kbC1taW5pLWZvb3Rlcl9fbGluay1saXN0IGxpe21hcmdpbi1ib3R0b206MDttYXJnaW4tcmlnaHQ6MTZweH1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjc2MHB4KXsubWRsLW1pbmktZm9vdGVyLS1saW5rLWxpc3QgbGksLm1kbC1taW5pLWZvb3Rlcl9fbGluay1saXN0IGxpe2xpbmUtaGVpZ2h0OjM2cHh9fS5tZGwtbWluaS1mb290ZXItLWxpbmstbGlzdCBhLC5tZGwtbWluaS1mb290ZXJfX2xpbmstbGlzdCBhe2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7d2hpdGUtc3BhY2U6bm93cmFwfS5tZGwtbWluaS1mb290ZXItLWxlZnQtc2VjdGlvbiwubWRsLW1pbmktZm9vdGVyX19sZWZ0LXNlY3Rpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDoxOy13ZWJraXQtb3JkZXI6MDstbXMtZmxleC1vcmRlcjowO29yZGVyOjB9Lm1kbC1taW5pLWZvb3Rlci0tcmlnaHQtc2VjdGlvbiwubWRsLW1pbmktZm9vdGVyX19yaWdodC1zZWN0aW9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrOy13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6Mjstd2Via2l0LW9yZGVyOjE7LW1zLWZsZXgtb3JkZXI6MTtvcmRlcjoxfS5tZGwtbWluaS1mb290ZXItLXNvY2lhbC1idG4sLm1kbC1taW5pLWZvb3Rlcl9fc29jaWFsLWJ0bnt3aWR0aDozNnB4O2hlaWdodDozNnB4O3BhZGRpbmc6MDttYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiM5ZTllOWU7Ym9yZGVyOm5vbmV9Lm1kbC1pY29uLXRvZ2dsZXtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7dmVydGljYWwtYWxpZ246bWlkZGxlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDozMnB4O21hcmdpbjowO3BhZGRpbmc6MH0ubWRsLWljb24tdG9nZ2xlX19pbnB1dHtsaW5lLWhlaWdodDozMnB4fS5tZGwtaWNvbi10b2dnbGUuaXMtdXBncmFkZWQgLm1kbC1pY29uLXRvZ2dsZV9faW5wdXR7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDttYXJnaW46MDtwYWRkaW5nOjA7b3BhY2l0eTowOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2JvcmRlcjpub25lfS5tZGwtaWNvbi10b2dnbGVfX2xhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO2hlaWdodDozMnB4O3dpZHRoOjMycHg7bWluLXdpZHRoOjMycHg7Y29sb3I6IzYxNjE2MTtib3JkZXItcmFkaXVzOjUwJTtwYWRkaW5nOjA7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MDt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3dpbGwtY2hhbmdlOmJhY2tncm91bmQtY29sb3I7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpLGNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpLGNvbG9yIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0ubWRsLWljb24tdG9nZ2xlX19sYWJlbC5tYXRlcmlhbC1pY29uc3tsaW5lLWhlaWdodDozMnB4O2ZvbnQtc2l6ZToyNHB4fS5tZGwtaWNvbi10b2dnbGUuaXMtY2hlY2tlZCAubWRsLWljb24tdG9nZ2xlX19sYWJlbHtjb2xvcjpyZ2IoNjMsODEsMTgxKX0ubWRsLWljb24tdG9nZ2xlLmlzLWRpc2FibGVkIC5tZGwtaWNvbi10b2dnbGVfX2xhYmVse2NvbG9yOnJnYmEoMCwwLDAsLjI2KTtjdXJzb3I6YXV0bzstd2Via2l0LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmV9Lm1kbC1pY29uLXRvZ2dsZS5pcy1mb2N1c2VkIC5tZGwtaWNvbi10b2dnbGVfX2xhYmVse2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMTIpfS5tZGwtaWNvbi10b2dnbGUuaXMtZm9jdXNlZC5pcy1jaGVja2VkIC5tZGwtaWNvbi10b2dnbGVfX2xhYmVse2JhY2tncm91bmQtY29sb3I6cmdiYSg2Myw4MSwxODEsLjI2KX0ubWRsLWljb24tdG9nZ2xlX19yaXBwbGUtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mjt0b3A6LTJweDtsZWZ0Oi0ycHg7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7Ym9yZGVyLXJhZGl1czo1MCU7Y3Vyc29yOnBvaW50ZXI7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtbWFzay1pbWFnZTotd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsI2ZmZiwjMDAwKX0ubWRsLWljb24tdG9nZ2xlX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxle2JhY2tncm91bmQ6IzYxNjE2MX0ubWRsLWljb24tdG9nZ2xlLmlzLWRpc2FibGVkIC5tZGwtaWNvbi10b2dnbGVfX3JpcHBsZS1jb250YWluZXJ7Y3Vyc29yOmF1dG99Lm1kbC1pY29uLXRvZ2dsZS5pcy1kaXNhYmxlZCAubWRsLWljb24tdG9nZ2xlX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxle2JhY2tncm91bmQ6MCAwfS5tZGwtbWVudV9fY29udGFpbmVye2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjpub25lO3Bvc2l0aW9uOmFic29sdXRlO292ZXJmbG93OnZpc2libGU7aGVpZ2h0OjA7d2lkdGg6MDt2aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4Oi0xfS5tZGwtbWVudV9fY29udGFpbmVyLmlzLXZpc2libGUsLm1kbC1tZW51X19jb250YWluZXIuaXMtYW5pbWF0aW5ne3otaW5kZXg6OTk5O3Zpc2liaWxpdHk6dmlzaWJsZX0ubWRsLW1lbnVfX291dGxpbmV7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kOiNmZmY7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MnB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApOy1tcy10cmFuc2Zvcm06c2NhbGUoMCk7dHJhbnNmb3JtOnNjYWxlKDApOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDA7LW1zLXRyYW5zZm9ybS1vcmlnaW46MCAwO3RyYW5zZm9ybS1vcmlnaW46MCAwO2JveC1zaGFkb3c6MCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsLjIpLDAgMXB4IDVweCAwIHJnYmEoMCwwLDAsLjEyKTt3aWxsLWNoYW5nZTp0cmFuc2Zvcm07LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksb3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7ei1pbmRleDotMX0ubWRsLW1lbnVfX2NvbnRhaW5lci5pcy12aXNpYmxlIC5tZGwtbWVudV9fb3V0bGluZXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7LW1zLXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7ei1pbmRleDo5OTl9Lm1kbC1tZW51X19vdXRsaW5lLm1kbC1tZW51LS1ib3R0b20tcmlnaHR7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDstbXMtdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDA7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDB9Lm1kbC1tZW51X19vdXRsaW5lLm1kbC1tZW51LS10b3AtbGVmdHstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCAxMDAlOy1tcy10cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJX0ubWRsLW1lbnVfX291dGxpbmUubWRsLW1lbnUtLXRvcC1yaWdodHstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MTAwJSAxMDAlOy1tcy10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJX0ubWRsLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7bGlzdC1zdHlsZTpub25lO3RvcDowO2xlZnQ6MDtoZWlnaHQ6YXV0bzt3aWR0aDphdXRvO21pbi13aWR0aDoxMjRweDtwYWRkaW5nOjhweCAwO21hcmdpbjowO29wYWNpdHk6MDtjbGlwOnJlY3QoMCAwIDAgMCk7ei1pbmRleDotMX0ubWRsLW1lbnVfX2NvbnRhaW5lci5pcy12aXNpYmxlIC5tZGwtbWVudXtvcGFjaXR5OjE7ei1pbmRleDo5OTl9Lm1kbC1tZW51LmlzLWFuaW1hdGluZ3std2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksY2xpcCAuM3MgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxjbGlwIC4zcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0ubWRsLW1lbnUubWRsLW1lbnUtLWJvdHRvbS1yaWdodHtsZWZ0OmF1dG87cmlnaHQ6MH0ubWRsLW1lbnUubWRsLW1lbnUtLXRvcC1sZWZ0e3RvcDphdXRvO2JvdHRvbTowfS5tZGwtbWVudS5tZGwtbWVudS0tdG9wLXJpZ2h0e3RvcDphdXRvO2xlZnQ6YXV0bztib3R0b206MDtyaWdodDowfS5tZGwtbWVudS5tZGwtbWVudS0tdW5hbGlnbmVke3RvcDphdXRvO2xlZnQ6YXV0b30ubWRsLW1lbnVfX2l0ZW17ZGlzcGxheTpibG9jaztib3JkZXI6bm9uZTtjb2xvcjpyZ2JhKDAsMCwwLC44Nyk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt0ZXh0LWFsaWduOmxlZnQ7bWFyZ2luOjA7cGFkZGluZzowIDE2cHg7b3V0bGluZS1jb2xvcjojYmRiZGJkO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo0MDA7bGV0dGVyLXNwYWNpbmc6MDt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6NDhweDtsaW5lLWhlaWdodDo0OHB4O3doaXRlLXNwYWNlOm5vd3JhcDtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5tZGwtbWVudV9fY29udGFpbmVyLmlzLXZpc2libGUgLm1kbC1tZW51X19pdGVte29wYWNpdHk6MX0ubWRsLW1lbnVfX2l0ZW06Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjB9Lm1kbC1tZW51X19pdGVtW2Rpc2FibGVkXXtjb2xvcjojYmRiZGJkO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Y3Vyc29yOmF1dG99Lm1kbC1tZW51X19pdGVtW2Rpc2FibGVkXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5tZGwtbWVudV9faXRlbVtkaXNhYmxlZF06Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubWRsLW1lbnVfX2l0ZW1bZGlzYWJsZWRdIC5tZGwtcmlwcGxle2JhY2tncm91bmQ6MCAwfS5tZGwtbWVudV9faXRlbTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9Lm1kbC1tZW51X19pdGVtOmZvY3Vze291dGxpbmU6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9Lm1kbC1tZW51X19pdGVtOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTB9Lm1kbC1tZW51X19pdGVtLS1yaXBwbGUtY29udGFpbmVye2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3dpZHRoOjEwMCU7ei1pbmRleDowO292ZXJmbG93OmhpZGRlbn0ubWRsLXByb2dyZXNze2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjRweDt3aWR0aDo1MDBweH0ubWRsLXByb2dyZXNzPi5iYXJ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDt3aWR0aDowJTstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb246d2lkdGggLjJzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS5tZGwtcHJvZ3Jlc3M+LnByb2dyZXNzYmFye2JhY2tncm91bmQtY29sb3I6cmdiKDYzLDgxLDE4MSk7ei1pbmRleDoxO2xlZnQ6MH0ubWRsLXByb2dyZXNzPi5idWZmZXJiYXJ7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LHJnYmEoMjU1LDI1NSwyNTUsLjcpLHJnYmEoMjU1LDI1NSwyNTUsLjcpKSwtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LHJnYig2Myw4MSwxODEpLHJnYig2Myw4MSwxODEpKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCxyZ2JhKDI1NSwyNTUsMjU1LC43KSxyZ2JhKDI1NSwyNTUsMjU1LC43KSksbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LHJnYig2Myw4MSwxODEpLHJnYig2Myw4MSwxODEpKTt6LWluZGV4OjA7bGVmdDowfS5tZGwtcHJvZ3Jlc3M+LmF1eGJhcntyaWdodDowfUBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmUpey5tZGwtcHJvZ3Jlc3M6bm90KC5tZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUpOm5vdCgubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlKT4uYXV4YmFye2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCxyZ2JhKDI1NSwyNTUsMjU1LC43KSxyZ2JhKDI1NSwyNTUsMjU1LC43KSksLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCxyZ2IoNjMsODEsMTgxKSxyZ2IoNjMsODEsMTgxKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQscmdiYSgyNTUsMjU1LDI1NSwuNykscmdiYSgyNTUsMjU1LDI1NSwuNykpLGxpbmVhci1ncmFkaWVudCh0byByaWdodCxyZ2IoNjMsODEsMTgxKSxyZ2IoNjMsODEsMTgxKSk7LXdlYmtpdC1tYXNrOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJajgrQ2p4emRtY2dkMmxrZEdnOUlqRXlJaUJvWldsbmFIUTlJalFpSUhacFpYZFFiM0owUFNJd0lEQWdNVElnTkNJZ2RtVnljMmx2YmowaU1TNHhJaUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lQZ29nSUR4bGJHeHBjSE5sSUdONFBTSXlJaUJqZVQwaU1pSWdjbmc5SWpJaUlISjVQU0l5SWo0S0lDQWdJRHhoYm1sdFlYUmxJR0YwZEhKcFluVjBaVTVoYldVOUltTjRJaUJtY205dFBTSXlJaUIwYnowaUxURXdJaUJrZFhJOUlqQXVObk1pSUhKbGNHVmhkRU52ZFc1MFBTSnBibVJsWm1sdWFYUmxJaUF2UGdvZ0lEd3ZaV3hzYVhCelpUNEtJQ0E4Wld4c2FYQnpaU0JqZUQwaU1UUWlJR041UFNJeUlpQnllRDBpTWlJZ2NuazlJaklpSUdOc1lYTnpQU0pzYjJGa1pYSWlQZ29nSUNBZ1BHRnVhVzFoZEdVZ1lYUjBjbWxpZFhSbFRtRnRaVDBpWTNnaUlHWnliMjA5SWpFMElpQjBiejBpTWlJZ1pIVnlQU0l3TGpaeklpQnlaWEJsWVhSRGIzVnVkRDBpYVc1a1pXWnBibWwwWlNJZ0x6NEtJQ0E4TDJWc2JHbHdjMlUrQ2p3dmMzWm5QZ289Iik7bWFzazp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWo4K0NqeHpkbWNnZDJsa2RHZzlJakV5SWlCb1pXbG5hSFE5SWpRaUlIWnBaWGRRYjNKMFBTSXdJREFnTVRJZ05DSWdkbVZ5YzJsdmJqMGlNUzR4SWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpUGdvZ0lEeGxiR3hwY0hObElHTjRQU0l5SWlCamVUMGlNaUlnY25nOUlqSWlJSEo1UFNJeUlqNEtJQ0FnSUR4aGJtbHRZWFJsSUdGMGRISnBZblYwWlU1aGJXVTlJbU40SWlCbWNtOXRQU0l5SWlCMGJ6MGlMVEV3SWlCa2RYSTlJakF1Tm5NaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlBdlBnb2dJRHd2Wld4c2FYQnpaVDRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVFFpSUdONVBTSXlJaUJ5ZUQwaU1pSWdjbms5SWpJaUlHTnNZWE56UFNKc2IyRmtaWElpUGdvZ0lDQWdQR0Z1YVcxaGRHVWdZWFIwY21saWRYUmxUbUZ0WlQwaVkzZ2lJR1p5YjIwOUlqRTBJaUIwYnowaU1pSWdaSFZ5UFNJd0xqWnpJaUJ5WlhCbFlYUkRiM1Z1ZEQwaWFXNWtaV1pwYm1sMFpTSWdMejRLSUNBOEwyVnNiR2x3YzJVK0Nqd3ZjM1puUGdvPSIpfX0ubWRsLXByb2dyZXNzOm5vdCgubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlKT4uYXV4YmFye2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCxyZ2JhKDI1NSwyNTUsMjU1LC45KSxyZ2JhKDI1NSwyNTUsMjU1LC45KSksLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCxyZ2IoNjMsODEsMTgxKSxyZ2IoNjMsODEsMTgxKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQscmdiYSgyNTUsMjU1LDI1NSwuOSkscmdiYSgyNTUsMjU1LDI1NSwuOSkpLGxpbmVhci1ncmFkaWVudCh0byByaWdodCxyZ2IoNjMsODEsMTgxKSxyZ2IoNjMsODEsMTgxKSl9Lm1kbC1wcm9ncmVzcy5tZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGU+LmJhcjF7LXdlYmtpdC1hbmltYXRpb24tbmFtZTppbmRldGVybWluYXRlMTthbmltYXRpb24tbmFtZTppbmRldGVybWluYXRlMX0ubWRsLXByb2dyZXNzLm1kbC1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZT4uYmFyMSwubWRsLXByb2dyZXNzLm1kbC1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZT4uYmFyM3tiYWNrZ3JvdW5kLWNvbG9yOnJnYig2Myw4MSwxODEpOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjJzO2FuaW1hdGlvbi1kdXJhdGlvbjoyczstd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyfS5tZGwtcHJvZ3Jlc3MubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlPi5iYXIze2JhY2tncm91bmQtaW1hZ2U6bm9uZTstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmluZGV0ZXJtaW5hdGUyO2FuaW1hdGlvbi1uYW1lOmluZGV0ZXJtaW5hdGUyfUAtd2Via2l0LWtleWZyYW1lcyBpbmRldGVybWluYXRlMXswJXtsZWZ0OjAlO3dpZHRoOjAlfTUwJXtsZWZ0OjI1JTt3aWR0aDo3NSV9NzUle2xlZnQ6MTAwJTt3aWR0aDowJX19QGtleWZyYW1lcyBpbmRldGVybWluYXRlMXswJXtsZWZ0OjAlO3dpZHRoOjAlfTUwJXtsZWZ0OjI1JTt3aWR0aDo3NSV9NzUle2xlZnQ6MTAwJTt3aWR0aDowJX19QC13ZWJraXQta2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGUyezAlLDUwJXtsZWZ0OjAlO3dpZHRoOjAlfTc1JXtsZWZ0OjAlO3dpZHRoOjI1JX0xMDAle2xlZnQ6MTAwJTt3aWR0aDowJX19QGtleWZyYW1lcyBpbmRldGVybWluYXRlMnswJSw1MCV7bGVmdDowJTt3aWR0aDowJX03NSV7bGVmdDowJTt3aWR0aDoyNSV9MTAwJXtsZWZ0OjEwMCU7d2lkdGg6MCV9fS5tZGwtbmF2aWdhdGlvbntkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtd3JhcDpub3dyYXA7LW1zLWZsZXgtd3JhcDpub3dyYXA7ZmxleC13cmFwOm5vd3JhcDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm1kbC1uYXZpZ2F0aW9uX19saW5re2NvbG9yOiM0MjQyNDI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxM3B4O21hcmdpbjowfS5tZGwtbGF5b3V0e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNofS5tZGwtbGF5b3V0LmlzLXNtYWxsLXNjcmVlbiAubWRsLWxheW91dC0tbGFyZ2Utc2NyZWVuLW9ubHl7ZGlzcGxheTpub25lfS5tZGwtbGF5b3V0Om5vdCguaXMtc21hbGwtc2NyZWVuKSAubWRsLWxheW91dC0tc21hbGwtc2NyZWVuLW9ubHl7ZGlzcGxheTpub25lfS5tZGwtbGF5b3V0X19jb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ubWRsLWxheW91dF9fdGl0bGUsLm1kbC1sYXlvdXQtdGl0bGV7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtmb250LWZhbWlseToiUm9ib3RvIiwiSGVsdmV0aWNhIiwiQXJpYWwiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MTtsZXR0ZXItc3BhY2luZzouMDJlbTtmb250LXdlaWdodDo0MDA7Ym94LXNpemluZzpib3JkZXItYm94fS5tZGwtbGF5b3V0LXNwYWNlcnstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4LWdyb3c6MTstbXMtZmxleC1wb3NpdGl2ZToxO2ZsZXgtZ3JvdzoxfS5tZGwtbGF5b3V0X19kcmF3ZXJ7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1mbGV4LXdyYXA6bm93cmFwOy1tcy1mbGV4LXdyYXA6bm93cmFwO2ZsZXgtd3JhcDpub3dyYXA7d2lkdGg6MjQwcHg7aGVpZ2h0OjEwMCU7bWF4LWhlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtib3gtc2hhZG93OjAgMnB4IDJweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLC4yKSwwIDFweCA1cHggMCByZ2JhKDAsMCwwLC4xMik7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yaWdodDoxcHggc29saWQgI2UwZTBlMDtiYWNrZ3JvdW5kOiNmYWZhZmE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjUwcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjUwcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yNTBweCk7LXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6cHJlc2VydmUtM2Q7dHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkO3dpbGwtY2hhbmdlOnRyYW5zZm9ybTstd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246LjJzO3RyYW5zaXRpb24tZHVyYXRpb246LjJzOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7LXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5Oi13ZWJraXQtdHJhbnNmb3JtO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO2NvbG9yOiM0MjQyNDI7b3ZlcmZsb3c6dmlzaWJsZTtvdmVyZmxvdy15OmF1dG87ei1pbmRleDo1fS5tZGwtbGF5b3V0X19kcmF3ZXIuaXMtdmlzaWJsZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX0ubWRsLWxheW91dF9fZHJhd2VyLmlzLXZpc2libGV+Lm1kbC1sYXlvdXRfX2NvbnRlbnQubWRsLWxheW91dF9fY29udGVudHtvdmVyZmxvdzpoaWRkZW59Lm1kbC1sYXlvdXRfX2RyYXdlcj4qey13ZWJraXQtZmxleC1zaHJpbms6MDstbXMtZmxleC1uZWdhdGl2ZTowO2ZsZXgtc2hyaW5rOjB9Lm1kbC1sYXlvdXRfX2RyYXdlcj4ubWRsLWxheW91dF9fdGl0bGUsLm1kbC1sYXlvdXRfX2RyYXdlcj4ubWRsLWxheW91dC10aXRsZXtsaW5lLWhlaWdodDo2NHB4O3BhZGRpbmctbGVmdDo0MHB4fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTAyNHB4KXsubWRsLWxheW91dF9fZHJhd2VyPi5tZGwtbGF5b3V0X190aXRsZSwubWRsLWxheW91dF9fZHJhd2VyPi5tZGwtbGF5b3V0LXRpdGxle2xpbmUtaGVpZ2h0OjU2cHg7cGFkZGluZy1sZWZ0OjE2cHh9fS5tZGwtbGF5b3V0X19kcmF3ZXIgLm1kbC1uYXZpZ2F0aW9uey13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LWFsaWduOnN0cmV0Y2g7LXdlYmtpdC1hbGlnbi1pdGVtczpzdHJldGNoOy1tcy1mbGV4LWFsaWduOnN0cmV0Y2g7YWxpZ24taXRlbXM6c3RyZXRjaDtwYWRkaW5nLXRvcDoxNnB4fS5tZGwtbGF5b3V0X19kcmF3ZXIgLm1kbC1uYXZpZ2F0aW9uIC5tZGwtbmF2aWdhdGlvbl9fbGlua3tkaXNwbGF5OmJsb2NrOy13ZWJraXQtZmxleC1zaHJpbms6MDstbXMtZmxleC1uZWdhdGl2ZTowO2ZsZXgtc2hyaW5rOjA7cGFkZGluZzoxNnB4IDQwcHg7bWFyZ2luOjA7Y29sb3I6Izc1NzU3NX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCl7Lm1kbC1sYXlvdXRfX2RyYXdlciAubWRsLW5hdmlnYXRpb24gLm1kbC1uYXZpZ2F0aW9uX19saW5re3BhZGRpbmc6MTZweH19Lm1kbC1sYXlvdXRfX2RyYXdlciAubWRsLW5hdmlnYXRpb24gLm1kbC1uYXZpZ2F0aW9uX19saW5rOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2UwZTBlMH0ubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiAubWRsLW5hdmlnYXRpb25fX2xpbmstLWN1cnJlbnR7YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNlMGUwZTB9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMDI1cHgpey5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXI+Lm1kbC1sYXlvdXRfX2RyYXdlcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19Lm1kbC1sYXlvdXRfX2RyYXdlci1idXR0b257ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6NDhweDt3aWR0aDo0OHB4O2JvcmRlcjowOy13ZWJraXQtZmxleC1zaHJpbms6MDstbXMtZmxleC1uZWdhdGl2ZTowO2ZsZXgtc2hyaW5rOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToyNnB4O2xpbmUtaGVpZ2h0OjUwcHg7Zm9udC1mYW1pbHk6SGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7bWFyZ2luOjEwcHggMTJweDt0b3A6MDtsZWZ0OjA7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KTt6LWluZGV4OjR9Lm1kbC1sYXlvdXRfX2hlYWRlciAubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2JhY2tncm91bmQtY29sb3I6aW5oZXJpdH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCl7Lm1kbC1sYXlvdXRfX2hlYWRlciAubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbnttYXJnaW46NHB4fX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCl7Lm1kbC1sYXlvdXRfX2RyYXdlci1idXR0b257bWFyZ2luOjRweDtjb2xvcjpyZ2JhKDAsMCwwLC41KX19QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMDI1cHgpey5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXI+Lm1kbC1sYXlvdXRfX2RyYXdlci1idXR0b257ZGlzcGxheTpub25lfX0ubWRsLWxheW91dF9faGVhZGVye2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtZmxleC13cmFwOm5vd3JhcDstbXMtZmxleC13cmFwOm5vd3JhcDtmbGV4LXdyYXA6bm93cmFwOy13ZWJraXQtYm94LXBhY2s6c3RhcnQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDstbXMtZmxleC1wYWNrOnN0YXJ0O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWZsZXgtc2hyaW5rOjA7LW1zLWZsZXgtbmVnYXRpdmU6MDtmbGV4LXNocmluazowO3dpZHRoOjEwMCU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjpub25lO21pbi1oZWlnaHQ6NjRweDttYXgtaGVpZ2h0OjEwMDBweDt6LWluZGV4OjM7YmFja2dyb3VuZC1jb2xvcjpyZ2IoNjMsODEsMTgxKTtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2JveC1zaGFkb3c6MCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsLjIpLDAgMXB4IDVweCAwIHJnYmEoMCwwLDAsLjEyKTstd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246LjJzO3RyYW5zaXRpb24tZHVyYXRpb246LjJzOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7LXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5Om1heC1oZWlnaHQsYm94LXNoYWRvdzt0cmFuc2l0aW9uLXByb3BlcnR5Om1heC1oZWlnaHQsYm94LXNoYWRvd31AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCl7Lm1kbC1sYXlvdXRfX2hlYWRlcnttaW4taGVpZ2h0OjU2cHh9fS5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIuaXMtdXBncmFkZWQ6bm90KC5pcy1zbWFsbC1zY3JlZW4pPi5tZGwtbGF5b3V0X19oZWFkZXJ7bWFyZ2luLWxlZnQ6MjQwcHg7d2lkdGg6Y2FsYygxMDAlIC0gMjQwcHgpfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTAyNXB4KXsubWRsLWxheW91dC0tZml4ZWQtZHJhd2VyPi5tZGwtbGF5b3V0X19oZWFkZXIgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3d7cGFkZGluZy1sZWZ0OjQwcHh9fS5tZGwtbGF5b3V0X19oZWFkZXI+Lm1kbC1sYXlvdXQtaWNvbntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjQwcHg7dG9wOjE2cHg7aGVpZ2h0OjMycHg7d2lkdGg6MzJweDtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDozO2Rpc3BsYXk6YmxvY2t9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpey5tZGwtbGF5b3V0X19oZWFkZXI+Lm1kbC1sYXlvdXQtaWNvbntsZWZ0OjE2cHg7dG9wOjEycHh9fS5tZGwtbGF5b3V0Lmhhcy1kcmF3ZXIgLm1kbC1sYXlvdXRfX2hlYWRlcj4ubWRsLWxheW91dC1pY29ue2Rpc3BsYXk6bm9uZX0ubWRsLWxheW91dF9faGVhZGVyLmlzLWNvbXBhY3R7bWF4LWhlaWdodDo2NHB4fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTAyNHB4KXsubWRsLWxheW91dF9faGVhZGVyLmlzLWNvbXBhY3R7bWF4LWhlaWdodDo1NnB4fX0ubWRsLWxheW91dF9faGVhZGVyLmlzLWNvbXBhY3QuaGFzLXRhYnN7aGVpZ2h0OjExMnB4fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTAyNHB4KXsubWRsLWxheW91dF9faGVhZGVyLmlzLWNvbXBhY3QuaGFzLXRhYnN7bWluLWhlaWdodDoxMDRweH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpey5tZGwtbGF5b3V0X19oZWFkZXJ7ZGlzcGxheTpub25lfS5tZGwtbGF5b3V0LS1maXhlZC1oZWFkZXI+Lm1kbC1sYXlvdXRfX2hlYWRlcntkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH19Lm1kbC1sYXlvdXRfX2hlYWRlci0tdHJhbnNwYXJlbnQubWRsLWxheW91dF9faGVhZGVyLS10cmFuc3BhcmVudHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JveC1zaGFkb3c6bm9uZX0ubWRsLWxheW91dF9faGVhZGVyLS1zZWFtZWQsLm1kbC1sYXlvdXRfX2hlYWRlci0tc2Nyb2xse2JveC1zaGFkb3c6bm9uZX0ubWRsLWxheW91dF9faGVhZGVyLS13YXRlcmZhbGx7Ym94LXNoYWRvdzpub25lO292ZXJmbG93OmhpZGRlbn0ubWRsLWxheW91dF9faGVhZGVyLS13YXRlcmZhbGwuaXMtY2FzdGluZy1zaGFkb3d7Ym94LXNoYWRvdzowIDJweCAycHggMCByZ2JhKDAsMCwwLC4xNCksMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwuMiksMCAxcHggNXB4IDAgcmdiYSgwLDAsMCwuMTIpfS5tZGwtbGF5b3V0X19oZWFkZXItcm93e2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1mbGV4LXdyYXA6bm93cmFwOy1tcy1mbGV4LXdyYXA6bm93cmFwO2ZsZXgtd3JhcDpub3dyYXA7LXdlYmtpdC1mbGV4LXNocmluazowOy1tcy1mbGV4LW5lZ2F0aXZlOjA7ZmxleC1zaHJpbms6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1hbGlnbi1zZWxmOnN0cmV0Y2g7LW1zLWZsZXgtaXRlbS1hbGlnbjpzdHJldGNoO2FsaWduLXNlbGY6c3RyZXRjaDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6NjRweDttYXJnaW46MDtwYWRkaW5nOjAgNDBweCAwIDgwcHh9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpey5tZGwtbGF5b3V0X19oZWFkZXItcm93e2hlaWdodDo1NnB4O3BhZGRpbmc6MCAxNnB4IDAgNzJweH19Lm1kbC1sYXlvdXRfX2hlYWRlci1yb3c+Knstd2Via2l0LWZsZXgtc2hyaW5rOjA7LW1zLWZsZXgtbmVnYXRpdmU6MDtmbGV4LXNocmluazowfS5tZGwtbGF5b3V0X19oZWFkZXItLXNjcm9sbCAubWRsLWxheW91dF9faGVhZGVyLXJvd3t3aWR0aDoxMDAlfS5tZGwtbGF5b3V0X19oZWFkZXItcm93IC5tZGwtbmF2aWdhdGlvbnttYXJnaW46MDtwYWRkaW5nOjA7aGVpZ2h0OjY0cHg7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstbXMtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvdzstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCl7Lm1kbC1sYXlvdXRfX2hlYWRlci1yb3cgLm1kbC1uYXZpZ2F0aW9ue2hlaWdodDo1NnB4fX0ubWRsLWxheW91dF9faGVhZGVyLXJvdyAubWRsLW5hdmlnYXRpb25fX2xpbmt7ZGlzcGxheTpibG9jaztjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpO2xpbmUtaGVpZ2h0OjY0cHg7cGFkZGluZzowIDI0cHh9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpey5tZGwtbGF5b3V0X19oZWFkZXItcm93IC5tZGwtbmF2aWdhdGlvbl9fbGlua3tsaW5lLWhlaWdodDo1NnB4O3BhZGRpbmc6MCAxNnB4fX0ubWRsLWxheW91dF9fb2JmdXNjYXRvcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3otaW5kZXg6NDt2aXNpYmlsaXR5OmhpZGRlbjstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6YmFja2dyb3VuZC1jb2xvcjt0cmFuc2l0aW9uLXByb3BlcnR5OmJhY2tncm91bmQtY29sb3I7LXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOi4yczt0cmFuc2l0aW9uLWR1cmF0aW9uOi4yczstd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5tZGwtbGF5b3V0X19vYmZ1c2NhdG9yLmlzLXZpc2libGV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC41KTt2aXNpYmlsaXR5OnZpc2libGV9Lm1kbC1sYXlvdXRfX2NvbnRlbnR7LW1zLWZsZXg6MCAxIGF1dG87ZGlzcGxheTppbmxpbmUtYmxvY2s7b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVuOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXgtZ3JvdzoxOy1tcy1mbGV4LXBvc2l0aXZlOjE7ZmxleC1ncm93OjE7ei1pbmRleDoxOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNofS5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXI+Lm1kbC1sYXlvdXRfX2NvbnRlbnR7bWFyZ2luLWxlZnQ6MjQwcHh9Lm1kbC1sYXlvdXRfX2NvbnRhaW5lci5oYXMtc2Nyb2xsaW5nLWhlYWRlciAubWRsLWxheW91dF9fY29udGVudHtvdmVyZmxvdzp2aXNpYmxlfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTAyNHB4KXsubWRsLWxheW91dC0tZml4ZWQtZHJhd2VyPi5tZGwtbGF5b3V0X19jb250ZW50e21hcmdpbi1sZWZ0OjB9Lm1kbC1sYXlvdXRfX2NvbnRhaW5lci5oYXMtc2Nyb2xsaW5nLWhlYWRlciAubWRsLWxheW91dF9fY29udGVudHtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW59fS5tZGwtbGF5b3V0X190YWItYmFye2hlaWdodDo5NnB4O21hcmdpbjowO3dpZHRoOmNhbGMoMTAwJSAtIDExMnB4KTtwYWRkaW5nOjAgMCAwIDU2cHg7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7YmFja2dyb3VuZC1jb2xvcjpyZ2IoNjMsODEsMTgxKTtvdmVyZmxvdy15OmhpZGRlbjtvdmVyZmxvdy14OnNjcm9sbH0ubWRsLWxheW91dF9fdGFiLWJhcjo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTAyNHB4KXsubWRsLWxheW91dF9fdGFiLWJhcnt3aWR0aDpjYWxjKDEwMCUgLSA2MHB4KTtwYWRkaW5nOjAgMCAwIDYwcHh9fS5tZGwtbGF5b3V0LS1maXhlZC10YWJzIC5tZGwtbGF5b3V0X190YWItYmFye3BhZGRpbmc6MDtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJX0ubWRsLWxheW91dF9fdGFiLWJhci1jb250YWluZXJ7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjQ4cHg7d2lkdGg6MTAwJTtib3JkZXI6bm9uZTttYXJnaW46MDt6LWluZGV4OjI7LXdlYmtpdC1ib3gtZmxleDowOy13ZWJraXQtZmxleC1ncm93OjA7LW1zLWZsZXgtcG9zaXRpdmU6MDtmbGV4LWdyb3c6MDstd2Via2l0LWZsZXgtc2hyaW5rOjA7LW1zLWZsZXgtbmVnYXRpdmU6MDtmbGV4LXNocmluazowO292ZXJmbG93OmhpZGRlbn0ubWRsLWxheW91dF9fY29udGFpbmVyPi5tZGwtbGF5b3V0X190YWItYmFyLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjB9Lm1kbC1sYXlvdXRfX3RhYi1iYXItYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2hlaWdodDo0OHB4O3dpZHRoOjU2cHg7ei1pbmRleDo0O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtY29sb3I6cmdiKDYzLDgxLDE4MSk7Y29sb3I6dHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTAyNHB4KXsubWRsLWxheW91dF9fdGFiLWJhci1idXR0b257ZGlzcGxheTpub25lO3dpZHRoOjYwcHh9fS5tZGwtbGF5b3V0LS1maXhlZC10YWJzIC5tZGwtbGF5b3V0X190YWItYmFyLWJ1dHRvbntkaXNwbGF5Om5vbmV9Lm1kbC1sYXlvdXRfX3RhYi1iYXItYnV0dG9uIC5tYXRlcmlhbC1pY29uc3tsaW5lLWhlaWdodDo0OHB4fS5tZGwtbGF5b3V0X190YWItYmFyLWJ1dHRvbi5pcy1hY3RpdmV7Y29sb3I6cmdiKDI1NSwyNTUsMjU1KX0ubWRsLWxheW91dF9fdGFiLWJhci1sZWZ0LWJ1dHRvbntsZWZ0OjB9Lm1kbC1sYXlvdXRfX3RhYi1iYXItcmlnaHQtYnV0dG9ue3JpZ2h0OjB9Lm1kbC1sYXlvdXRfX3RhYnttYXJnaW46MDtib3JkZXI6bm9uZTtwYWRkaW5nOjAgMjRweDtmbG9hdDpsZWZ0O3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7LXdlYmtpdC1ib3gtZmxleDowOy13ZWJraXQtZmxleC1ncm93OjA7LW1zLWZsZXgtcG9zaXRpdmU6MDtmbGV4LWdyb3c6MDstd2Via2l0LWZsZXgtc2hyaW5rOjA7LW1zLWZsZXgtbmVnYXRpdmU6MDtmbGV4LXNocmluazowO3RleHQtZGVjb3JhdGlvbjpub25lO2hlaWdodDo0OHB4O2xpbmUtaGVpZ2h0OjQ4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxNHB4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC42KTtvdmVyZmxvdzpoaWRkZW59QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpey5tZGwtbGF5b3V0X190YWJ7cGFkZGluZzowIDEycHh9fS5tZGwtbGF5b3V0LS1maXhlZC10YWJzIC5tZGwtbGF5b3V0X190YWJ7ZmxvYXQ6bm9uZTstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4LWdyb3c6MTstbXMtZmxleC1wb3NpdGl2ZToxO2ZsZXgtZ3JvdzoxO3BhZGRpbmc6MH0ubWRsLWxheW91dC5pcy11cGdyYWRlZCAubWRsLWxheW91dF9fdGFiLmlzLWFjdGl2ZXtjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpfS5tZGwtbGF5b3V0LmlzLXVwZ3JhZGVkIC5tZGwtbGF5b3V0X190YWIuaXMtYWN0aXZlOjphZnRlcntoZWlnaHQ6MnB4O3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztjb250ZW50OiIgIjtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpyZ2IoMjU1LDY0LDEyOSk7LXdlYmtpdC1hbmltYXRpb246Ym9yZGVyLWV4cGFuZCAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjQsMSkuMDFzIGFsdGVybmF0ZSBmb3J3YXJkczthbmltYXRpb246Ym9yZGVyLWV4cGFuZCAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjQsMSkuMDFzIGFsdGVybmF0ZSBmb3J3YXJkczstd2Via2l0LXRyYW5zaXRpb246YWxsIDFzIGN1YmljLWJlemllciguNCwwLDEsMSk7dHJhbnNpdGlvbjphbGwgMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKX0ubWRsLWxheW91dF9fdGFiIC5tZGwtbGF5b3V0X190YWItcmlwcGxlLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3otaW5kZXg6MTtvdmVyZmxvdzpoaWRkZW59Lm1kbC1sYXlvdXRfX3RhYiAubWRsLWxheW91dF9fdGFiLXJpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpfS5tZGwtbGF5b3V0X190YWItcGFuZWx7ZGlzcGxheTpibG9ja30ubWRsLWxheW91dC5pcy11cGdyYWRlZCAubWRsLWxheW91dF9fdGFiLXBhbmVse2Rpc3BsYXk6bm9uZX0ubWRsLWxheW91dC5pcy11cGdyYWRlZCAubWRsLWxheW91dF9fdGFiLXBhbmVsLmlzLWFjdGl2ZXtkaXNwbGF5OmJsb2NrfS5tZGwtcmFkaW97cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MjRweDtkaXNwbGF5OmlubGluZS1ibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7cGFkZGluZy1sZWZ0OjB9Lm1kbC1yYWRpby5pcy11cGdyYWRlZHtwYWRkaW5nLWxlZnQ6MjRweH0ubWRsLXJhZGlvX19idXR0b257bGluZS1oZWlnaHQ6MjRweH0ubWRsLXJhZGlvLmlzLXVwZ3JhZGVkIC5tZGwtcmFkaW9fX2J1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowO2hlaWdodDowO21hcmdpbjowO3BhZGRpbmc6MDtvcGFjaXR5OjA7LW1zLWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7Ym9yZGVyOm5vbmV9Lm1kbC1yYWRpb19fb3V0ZXItY2lyY2xle3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0cHg7bGVmdDowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O21hcmdpbjowO2N1cnNvcjpwb2ludGVyO2JvcmRlcjoycHggc29saWQgcmdiYSgwLDAsMCwuNTQpO2JvcmRlci1yYWRpdXM6NTAlO3otaW5kZXg6Mn0ubWRsLXJhZGlvLmlzLWNoZWNrZWQgLm1kbC1yYWRpb19fb3V0ZXItY2lyY2xle2JvcmRlcjoycHggc29saWQgcmdiKDYzLDgxLDE4MSl9Lm1kbC1yYWRpby5pcy1kaXNhYmxlZCAubWRsLXJhZGlvX19vdXRlci1jaXJjbGV7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDAsMCwwLC4yNik7Y3Vyc29yOmF1dG99Lm1kbC1yYWRpb19faW5uZXItY2lyY2xle3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTttYXJnaW46MDt0b3A6OHB4O2xlZnQ6NHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDo4cHg7aGVpZ2h0OjhweDtjdXJzb3I6cG9pbnRlcjstd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246LjI4czt0cmFuc2l0aW9uLWR1cmF0aW9uOi4yOHM7LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6LXdlYmtpdC10cmFuc2Zvcm07dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm07LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgwLDAsMCk7dHJhbnNmb3JtOnNjYWxlM2QoMCwwLDApO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiKDYzLDgxLDE4MSl9Lm1kbC1yYWRpby5pcy1jaGVja2VkIC5tZGwtcmFkaW9fX2lubmVyLWNpcmNsZXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEsMSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLDEsMSl9Lm1kbC1yYWRpby5pcy1kaXNhYmxlZCAubWRsLXJhZGlvX19pbm5lci1jaXJjbGV7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4yNik7Y3Vyc29yOmF1dG99Lm1kbC1yYWRpby5pcy1mb2N1c2VkIC5tZGwtcmFkaW9fX2lubmVyLWNpcmNsZXtib3gtc2hhZG93OjAgMCAwIDEwcHggcmdiYSgwLDAsMCwuMSl9Lm1kbC1yYWRpb19fbGFiZWx7Y3Vyc29yOnBvaW50ZXJ9Lm1kbC1yYWRpby5pcy1kaXNhYmxlZCAubWRsLXJhZGlvX19sYWJlbHtjb2xvcjpyZ2JhKDAsMCwwLC4yNik7Y3Vyc29yOmF1dG99Lm1kbC1yYWRpb19fcmlwcGxlLWNvbnRhaW5lcntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjI7dG9wOi05cHg7bGVmdDotMTNweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6NDJweDtoZWlnaHQ6NDJweDtib3JkZXItcmFkaXVzOjUwJTtjdXJzb3I6cG9pbnRlcjtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1tYXNrLWltYWdlOi13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjZmZmLCMwMDApfS5tZGwtcmFkaW9fX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGV7YmFja2dyb3VuZDpyZ2IoNjMsODEsMTgxKX0ubWRsLXJhZGlvLmlzLWRpc2FibGVkIC5tZGwtcmFkaW9fX3JpcHBsZS1jb250YWluZXJ7Y3Vyc29yOmF1dG99Lm1kbC1yYWRpby5pcy1kaXNhYmxlZCAubWRsLXJhZGlvX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxle2JhY2tncm91bmQ6MCAwfV86LW1zLWlucHV0LXBsYWNlaG9sZGVyLDpyb290IC5tZGwtc2xpZGVyLm1kbC1zbGlkZXIuaXMtdXBncmFkZWR7LW1zLWFwcGVhcmFuY2U6bm9uZTtoZWlnaHQ6MzJweDttYXJnaW46MH0ubWRsLXNsaWRlcnt3aWR0aDpjYWxjKDEwMCUgLSA0MHB4KTttYXJnaW46MCAyMHB4fS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6MCAwOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtvdXRsaW5lOjA7cGFkZGluZzowO2NvbG9yOnJnYig2Myw4MSwxODEpOy13ZWJraXQtYWxpZ24tc2VsZjpjZW50ZXI7LW1zLWZsZXgtaXRlbS1hbGlnbjpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXI7ei1pbmRleDoxO2N1cnNvcjpwb2ludGVyfS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbW96LWZvY3VzLW91dGVye2JvcmRlcjowfS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbXMtdG9vbHRpcHtkaXNwbGF5Om5vbmV9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNre2JhY2tncm91bmQ6MCAwfS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbW96LXJhbmdlLXRyYWNre2JhY2tncm91bmQ6MCAwO2JvcmRlcjpub25lfS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbXMtdHJhY2t7YmFja2dyb3VuZDowIDA7Y29sb3I6dHJhbnNwYXJlbnQ7aGVpZ2h0OjJweDt3aWR0aDoxMDAlO2JvcmRlcjpub25lfS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbXMtZmlsbC1sb3dlcntwYWRkaW5nOjA7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsdHJhbnNwYXJlbnQsdHJhbnNwYXJlbnQgMTZweCxyZ2IoNjMsODEsMTgxKTE2cHgscmdiKDYzLDgxLDE4MSkwKX0ubWRsLXNsaWRlci5pcy11cGdyYWRlZDo6LW1zLWZpbGwtdXBwZXJ7cGFkZGluZzowO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQsdHJhbnNwYXJlbnQsdHJhbnNwYXJlbnQgMTZweCxyZ2JhKDAsMCwwLC4yNikxNnB4LHJnYmEoMCwwLDAsLjI2KTApfS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotd2Via2l0LXNsaWRlci10aHVtYnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnJnYig2Myw4MSwxODEpO2JvcmRlcjpub25lOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAuMThzIGN1YmljLWJlemllciguNCwwLC4yLDEpLGJvcmRlciAuMThzIGN1YmljLWJlemllciguNCwwLC4yLDEpLGJveC1zaGFkb3cgLjE4cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxiYWNrZ3JvdW5kIC4yOHMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE4cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxib3JkZXIgLjE4cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxib3gtc2hhZG93IC4xOHMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksYmFja2dyb3VuZCAuMjhzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbW96LXJhbmdlLXRodW1iey1tb3otYXBwZWFyYW5jZTpub25lO3dpZHRoOjEycHg7aGVpZ2h0OjEycHg7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtiYWNrZ3JvdW5kOnJnYig2Myw4MSwxODEpO2JvcmRlcjpub25lfS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmZvY3VzOm5vdCg6YWN0aXZlKTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7Ym94LXNoYWRvdzowIDAgMCAxMHB4IHJnYmEoNjMsODEsMTgxLC4yNil9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Zm9jdXM6bm90KDphY3RpdmUpOjotbW96LXJhbmdlLXRodW1ie2JveC1zaGFkb3c6MCAwIDAgMTBweCByZ2JhKDYzLDgxLDE4MSwuMjYpfS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7YmFja2dyb3VuZC1pbWFnZTpub25lO2JhY2tncm91bmQ6cmdiKDYzLDgxLDE4MSk7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS41KTt0cmFuc2Zvcm06c2NhbGUoMS41KX0ubWRsLXNsaWRlci5pcy11cGdyYWRlZDphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWJ7YmFja2dyb3VuZC1pbWFnZTpub25lO2JhY2tncm91bmQ6cmdiKDYzLDgxLDE4MSk7dHJhbnNmb3JtOnNjYWxlKDEuNSl9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi1tcy10aHVtYnt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiKDYzLDgxLDE4MSk7LW1zLXRyYW5zZm9ybTpzY2FsZSguMzc1KTt0cmFuc2Zvcm06c2NhbGUoLjM3NSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE4cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxiYWNrZ3JvdW5kIC4yOHMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Zm9jdXM6bm90KDphY3RpdmUpOjotbXMtdGh1bWJ7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSxyZ2IoNjMsODEsMTgxKTAlLHJnYig2Myw4MSwxODEpMzcuNSUscmdiYSg2Myw4MSwxODEsLjI2KTM3LjUlLHJnYmEoNjMsODEsMTgxLC4yNikxMDAlKTstbXMtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX0ubWRsLXNsaWRlci5pcy11cGdyYWRlZDphY3RpdmU6Oi1tcy10aHVtYntiYWNrZ3JvdW5kOnJnYig2Myw4MSwxODEpOy1tcy10cmFuc2Zvcm06c2NhbGUoLjU2MjUpO3RyYW5zZm9ybTpzY2FsZSguNTYyNSl9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOjotd2Via2l0LXNsaWRlci10aHVtYntib3JkZXI6MnB4IHNvbGlkIHJnYmEoMCwwLDAsLjI2KTtiYWNrZ3JvdW5kOjAgMH0ubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Oi1tb3otcmFuZ2UtdGh1bWJ7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDAsMCwwLC4yNik7YmFja2dyb3VuZDowIDB9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlKy5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXg+Lm1kbC1zbGlkZXJfX2JhY2tncm91bmQtdXBwZXJ7bGVmdDo2cHh9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmZvY3VzOm5vdCg6YWN0aXZlKTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7Ym94LXNoYWRvdzowIDAgMCAxMHB4IHJnYmEoMCwwLDAsLjEyKTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjEyKX0ubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Zm9jdXM6bm90KDphY3RpdmUpOjotbW96LXJhbmdlLXRodW1ie2JveC1zaGFkb3c6MCAwIDAgMTBweCByZ2JhKDAsMCwwLC4xMik7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xMil9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7Ym9yZGVyOjEuNnB4IHNvbGlkIHJnYmEoMCwwLDAsLjI2KTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjUpO3RyYW5zZm9ybTpzY2FsZSgxLjUpfS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTphY3RpdmUrLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleD4ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC11cHBlcntsZWZ0OjlweH0ubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlOjotbW96LXJhbmdlLXRodW1ie2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDAsMCwwLC4yNik7dHJhbnNmb3JtOnNjYWxlKDEuNSl9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOjotbXMtdGh1bWJ7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSx0cmFuc3BhcmVudCAwJSx0cmFuc3BhcmVudCA2Ni42NyUscmdiYSgwLDAsMCwuMjYpNjYuNjclLHJnYmEoMCwwLDAsLjI2KTEwMCUpfS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpmb2N1czpub3QoOmFjdGl2ZSk6Oi1tcy10aHVtYntiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgY2xvc2VzdC1zaWRlLHJnYmEoMCwwLDAsLjEyKTAlLHJnYmEoMCwwLDAsLjEyKTI1JSxyZ2JhKDAsMCwwLC4yNikyNSUscmdiYSgwLDAsMCwuMjYpMzcuNSUscmdiYSgwLDAsMCwuMTIpMzcuNSUscmdiYSgwLDAsMCwuMTIpMTAwJSk7LW1zLXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmFjdGl2ZTo6LW1zLXRodW1iey1tcy10cmFuc2Zvcm06c2NhbGUoLjU2MjUpO3RyYW5zZm9ybTpzY2FsZSguNTYyNSk7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSx0cmFuc3BhcmVudCAwJSx0cmFuc3BhcmVudCA3Ny43OCUscmdiYSgwLDAsMCwuMjYpNzcuNzglLHJnYmEoMCwwLDAsLjI2KTEwMCUpfS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTo6LW1zLWZpbGwtbG93ZXJ7YmFja2dyb3VuZDowIDB9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOjotbXMtZmlsbC11cHBlcnttYXJnaW4tbGVmdDo2cHh9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmFjdGl2ZTo6LW1zLWZpbGwtdXBwZXJ7bWFyZ2luLWxlZnQ6OXB4fS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOmZvY3VzOjotd2Via2l0LXNsaWRlci10aHVtYiwubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1iLC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOjotd2Via2l0LXNsaWRlci10aHVtYnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguNjY3KTt0cmFuc2Zvcm06c2NhbGUoLjY2Nyk7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4yNil9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6Zm9jdXM6Oi1tb3otcmFuZ2UtdGh1bWIsLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6YWN0aXZlOjotbW96LXJhbmdlLXRodW1iLC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOjotbW96LXJhbmdlLXRodW1ie3RyYW5zZm9ybTpzY2FsZSguNjY3KTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjI2KX0ubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZCsubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4Pi5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWxvd2Vye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMjYpO2xlZnQ6LTZweH0ubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZCsubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4Pi5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVye2xlZnQ6NnB4fS5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDpmb2N1czo6LXdlYmtpdC1zbGlkZXItdGh1bWIsLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIsLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOjotd2Via2l0LXNsaWRlci10aHVtYntib3JkZXI6M3B4IHNvbGlkIHJnYmEoMCwwLDAsLjI2KTtiYWNrZ3JvdW5kOjAgMDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguNjY3KTt0cmFuc2Zvcm06c2NhbGUoLjY2Nyl9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmZvY3VzOjotbW96LXJhbmdlLXRodW1iLC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWIsLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOjotbW96LXJhbmdlLXRodW1ie2JvcmRlcjozcHggc29saWQgcmdiYSgwLDAsMCwuMjYpO2JhY2tncm91bmQ6MCAwO3RyYW5zZm9ybTpzY2FsZSguNjY3KX0ubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlKy5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXg+Lm1kbC1zbGlkZXJfX2JhY2tncm91bmQtdXBwZXJ7bGVmdDo2cHh9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6Zm9jdXM6Oi1tcy10aHVtYiwubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDphY3RpdmU6Oi1tcy10aHVtYiwubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDo6LW1zLXRodW1iey1tcy10cmFuc2Zvcm06c2NhbGUoLjI1KTt0cmFuc2Zvcm06c2NhbGUoLjI1KTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjI2KX0ubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6Zm9jdXM6Oi1tcy10aHVtYiwubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlOjotbXMtdGh1bWIsLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOjotbXMtdGh1bWJ7LW1zLXRyYW5zZm9ybTpzY2FsZSguMjUpO3RyYW5zZm9ybTpzY2FsZSguMjUpO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBjbG9zZXN0LXNpZGUsdHJhbnNwYXJlbnQgMCUsdHJhbnNwYXJlbnQgNTAlLHJnYmEoMCwwLDAsLjI2KTUwJSxyZ2JhKDAsMCwwLC4yNikxMDAlKX0ubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDo6LW1zLWZpbGwtbG93ZXJ7bWFyZ2luLXJpZ2h0OjZweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCx0cmFuc3BhcmVudCx0cmFuc3BhcmVudCAyNXB4LHJnYmEoMCwwLDAsLjI2KTI1cHgscmdiYSgwLDAsMCwuMjYpMCl9Lm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6Oi1tcy1maWxsLXVwcGVye21hcmdpbi1sZWZ0OjZweH0ubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlOjotbXMtZmlsbC11cHBlcnttYXJnaW4tbGVmdDo2cHh9Lm1kbC1zbGlkZXJfX2llLWNvbnRhaW5lcntoZWlnaHQ6MThweDtvdmVyZmxvdzp2aXNpYmxlO2JvcmRlcjpub25lO21hcmdpbjpub25lO3BhZGRpbmc6bm9uZX0ubWRsLXNsaWRlcl9fY29udGFpbmVye2hlaWdodDoxOHB4O3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3d9Lm1kbC1zbGlkZXJfX2NvbnRhaW5lciwubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4e2JhY2tncm91bmQ6MCAwO2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXh7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjJweDt3aWR0aDpjYWxjKDEwMCUgLSA1MnB4KTt0b3A6NTAlO2xlZnQ6MDttYXJnaW46MCAyNnB4O292ZXJmbG93OmhpZGRlbjtib3JkZXI6MDtwYWRkaW5nOjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTFweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMXB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTFweCl9Lm1kbC1zbGlkZXJfX2JhY2tncm91bmQtbG93ZXJ7YmFja2dyb3VuZDpyZ2IoNjMsODEsMTgxKX0ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1sb3dlciwubWRsLXNsaWRlcl9fYmFja2dyb3VuZC11cHBlcnstd2Via2l0LWJveC1mbGV4OjA7LXdlYmtpdC1mbGV4OjA7LW1zLWZsZXg6MDtmbGV4OjA7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyOjA7cGFkZGluZzowfS5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMjYpOy13ZWJraXQtdHJhbnNpdGlvbjpsZWZ0IC4xOHMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbjpsZWZ0IC4xOHMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9Lm1kbC1zcGlubmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHh9Lm1kbC1zcGlubmVyOm5vdCguaXMtdXBncmFkZWQpLmlzLWFjdGl2ZTphZnRlcntjb250ZW50OiJMb2FkaW5nLi4uIn0ubWRsLXNwaW5uZXIuaXMtdXBncmFkZWQuaXMtYWN0aXZley13ZWJraXQtYW5pbWF0aW9uOm1kbC1zcGlubmVyX19jb250YWluZXItcm90YXRlIDE1NjguMjM1Mjk0MTJtcyBsaW5lYXIgaW5maW5pdGU7YW5pbWF0aW9uOm1kbC1zcGlubmVyX19jb250YWluZXItcm90YXRlIDE1NjguMjM1Mjk0MTJtcyBsaW5lYXIgaW5maW5pdGV9QC13ZWJraXQta2V5ZnJhbWVzIG1kbC1zcGlubmVyX19jb250YWluZXItcm90YXRle3Rvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fY29udGFpbmVyLXJvdGF0ZXt0b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS5tZGwtc3Bpbm5lcl9fbGF5ZXJ7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvcGFjaXR5OjB9Lm1kbC1zcGlubmVyX19sYXllci0xe2JvcmRlci1jb2xvcjojNDJhNWY1fS5tZGwtc3Bpbm5lci0tc2luZ2xlLWNvbG9yIC5tZGwtc3Bpbm5lcl9fbGF5ZXItMXtib3JkZXItY29sb3I6cmdiKDYzLDgxLDE4MSl9Lm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xheWVyLTF7LXdlYmtpdC1hbmltYXRpb246bWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSlpbmZpbml0ZSBib3RoLG1kbC1zcGlubmVyX19sYXllci0xLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKWluZmluaXRlIGJvdGg7YW5pbWF0aW9uOm1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllciguNCwwLC4yLDEpaW5maW5pdGUgYm90aCxtZGwtc3Bpbm5lcl9fbGF5ZXItMS1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSlpbmZpbml0ZSBib3RofS5tZGwtc3Bpbm5lcl9fbGF5ZXItMntib3JkZXItY29sb3I6I2Y0NDMzNn0ubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAubWRsLXNwaW5uZXJfX2xheWVyLTJ7Ym9yZGVyLWNvbG9yOnJnYig2Myw4MSwxODEpfS5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgLm1kbC1zcGlubmVyX19sYXllci0yey13ZWJraXQtYW5pbWF0aW9uOm1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllciguNCwwLC4yLDEpaW5maW5pdGUgYm90aCxtZGwtc3Bpbm5lcl9fbGF5ZXItMi1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSlpbmZpbml0ZSBib3RoO2FuaW1hdGlvbjptZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKWluZmluaXRlIGJvdGgsbWRsLXNwaW5uZXJfX2xheWVyLTItZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllciguNCwwLC4yLDEpaW5maW5pdGUgYm90aH0ubWRsLXNwaW5uZXJfX2xheWVyLTN7Ym9yZGVyLWNvbG9yOiNmZGQ4MzV9Lm1kbC1zcGlubmVyLS1zaW5nbGUtY29sb3IgLm1kbC1zcGlubmVyX19sYXllci0ze2JvcmRlci1jb2xvcjpyZ2IoNjMsODEsMTgxKX0ubWRsLXNwaW5uZXIuaXMtYWN0aXZlIC5tZGwtc3Bpbm5lcl9fbGF5ZXItM3std2Via2l0LWFuaW1hdGlvbjptZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKWluZmluaXRlIGJvdGgsbWRsLXNwaW5uZXJfX2xheWVyLTMtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllciguNCwwLC4yLDEpaW5maW5pdGUgYm90aDthbmltYXRpb246bWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSlpbmZpbml0ZSBib3RoLG1kbC1zcGlubmVyX19sYXllci0zLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKWluZmluaXRlIGJvdGh9Lm1kbC1zcGlubmVyX19sYXllci00e2JvcmRlci1jb2xvcjojNGNhZjUwfS5tZGwtc3Bpbm5lci0tc2luZ2xlLWNvbG9yIC5tZGwtc3Bpbm5lcl9fbGF5ZXItNHtib3JkZXItY29sb3I6cmdiKDYzLDgxLDE4MSl9Lm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xheWVyLTR7LXdlYmtpdC1hbmltYXRpb246bWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSlpbmZpbml0ZSBib3RoLG1kbC1zcGlubmVyX19sYXllci00LWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKWluZmluaXRlIGJvdGg7YW5pbWF0aW9uOm1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllciguNCwwLC4yLDEpaW5maW5pdGUgYm90aCxtZGwtc3Bpbm5lcl9fbGF5ZXItNC1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSlpbmZpbml0ZSBib3RofUAtd2Via2l0LWtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlezEyLjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX0yNSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDI3MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTM3LjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0MDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDA1ZGVnKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDU0MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg1NDBkZWcpfTYyLjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg2NzVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNjc1ZGVnKX03NSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDgxMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg4MTBkZWcpfTg3LjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5NDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTQ1ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTA4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMDgwZGVnKX19QGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlezEyLjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKX0yNSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDI3MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTM3LjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0MDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDA1ZGVnKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDU0MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg1NDBkZWcpfTYyLjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg2NzVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNjc1ZGVnKX03NSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDgxMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg4MTBkZWcpfTg3LjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5NDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoOTQ1ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTA4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMDgwZGVnKX19QC13ZWJraXQta2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sYXllci0xLWZhZGUtaW4tb3V0e2Zyb20sMjUle29wYWNpdHk6Ljk5fTI2JSw4OSV7b3BhY2l0eTowfTkwJSwxMDAle29wYWNpdHk6Ljk5fX1Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sYXllci0xLWZhZGUtaW4tb3V0e2Zyb20sMjUle29wYWNpdHk6Ljk5fTI2JSw4OSV7b3BhY2l0eTowfTkwJSwxMDAle29wYWNpdHk6Ljk5fX1ALXdlYmtpdC1rZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTItZmFkZS1pbi1vdXR7ZnJvbSwxNSV7b3BhY2l0eTowfTI1JSw1MCV7b3BhY2l0eTouOTl9NTEle29wYWNpdHk6MH19QGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fbGF5ZXItMi1mYWRlLWluLW91dHtmcm9tLDE1JXtvcGFjaXR5OjB9MjUlLDUwJXtvcGFjaXR5Oi45OX01MSV7b3BhY2l0eTowfX1ALXdlYmtpdC1rZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTMtZmFkZS1pbi1vdXR7ZnJvbSw0MCV7b3BhY2l0eTowfTUwJSw3NSV7b3BhY2l0eTouOTl9NzYle29wYWNpdHk6MH19QGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fbGF5ZXItMy1mYWRlLWluLW91dHtmcm9tLDQwJXtvcGFjaXR5OjB9NTAlLDc1JXtvcGFjaXR5Oi45OX03NiV7b3BhY2l0eTowfX1ALXdlYmtpdC1rZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTQtZmFkZS1pbi1vdXR7ZnJvbSw2NSV7b3BhY2l0eTowfTc1JSw5MCV7b3BhY2l0eTouOTl9MTAwJXtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTQtZmFkZS1pbi1vdXR7ZnJvbSw2NSV7b3BhY2l0eTowfTc1JSw5MCV7b3BhY2l0eTouOTl9MTAwJXtvcGFjaXR5OjB9fS5tZGwtc3Bpbm5lcl9fZ2FwLXBhdGNoe3Bvc2l0aW9uOmFic29sdXRlO2JveC1zaXppbmc6Ym9yZGVyLWJveDt0b3A6MDtsZWZ0OjQ1JTt3aWR0aDoxMCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1jb2xvcjppbmhlcml0fS5tZGwtc3Bpbm5lcl9fZ2FwLXBhdGNoIC5tZGwtc3Bpbm5lcl9fY2lyY2xle3dpZHRoOjEwMDAlO2xlZnQ6LTQ1MCV9Lm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlcntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDo1MCU7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci1jb2xvcjppbmhlcml0fS5tZGwtc3Bpbm5lcl9fY2lyY2xlLWNsaXBwZXIgLm1kbC1zcGlubmVyX19jaXJjbGV7d2lkdGg6MjAwJX0ubWRsLXNwaW5uZXJfX2NpcmNsZXtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OjEwMCU7Ym9yZGVyLXdpZHRoOjNweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudCFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC1hbmltYXRpb246bm9uZTthbmltYXRpb246bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MH0ubWRsLXNwaW5uZXJfX2xlZnQgLm1kbC1zcGlubmVyX19jaXJjbGV7Ym9yZGVyLXJpZ2h0LWNvbG9yOnRyYW5zcGFyZW50IWltcG9ydGFudDstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTI5ZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgxMjlkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTI5ZGVnKX0ubWRsLXNwaW5uZXIuaXMtYWN0aXZlIC5tZGwtc3Bpbm5lcl9fbGVmdCAubWRsLXNwaW5uZXJfX2NpcmNsZXstd2Via2l0LWFuaW1hdGlvbjptZGwtc3Bpbm5lcl9fbGVmdC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKWluZmluaXRlIGJvdGg7YW5pbWF0aW9uOm1kbC1zcGlubmVyX19sZWZ0LXNwaW4gMTMzM21zIGN1YmljLWJlemllciguNCwwLC4yLDEpaW5maW5pdGUgYm90aH0ubWRsLXNwaW5uZXJfX3JpZ2h0IC5tZGwtc3Bpbm5lcl9fY2lyY2xle2xlZnQ6LTEwMCU7Ym9yZGVyLWxlZnQtY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50Oy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTI5ZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgtMTI5ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC0xMjlkZWcpfS5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgLm1kbC1zcGlubmVyX19yaWdodCAubWRsLXNwaW5uZXJfX2NpcmNsZXstd2Via2l0LWFuaW1hdGlvbjptZGwtc3Bpbm5lcl9fcmlnaHQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSlpbmZpbml0ZSBib3RoO2FuaW1hdGlvbjptZGwtc3Bpbm5lcl9fcmlnaHQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSlpbmZpbml0ZSBib3RofUAtd2Via2l0LWtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fbGVmdC1zcGlue2Zyb217LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTMwZGVnKX19QGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fbGVmdC1zcGlue2Zyb217LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTMwZGVnKX19QC13ZWJraXQta2V5ZnJhbWVzIG1kbC1zcGlubmVyX19yaWdodC1zcGlue2Zyb217LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTEzMGRlZyl9NTAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTMwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpfX1Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19yaWdodC1zcGlue2Zyb217LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTEzMGRlZyl9NTAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTMwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpfX0ubWRsLXN3aXRjaHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7dmVydGljYWwtYWxpZ246bWlkZGxlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO2hlaWdodDoyNHB4O21hcmdpbjowO3BhZGRpbmc6MDtvdmVyZmxvdzp2aXNpYmxlOy13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ubWRsLXN3aXRjaC5pcy11cGdyYWRlZHtwYWRkaW5nLWxlZnQ6MjhweH0ubWRsLXN3aXRjaF9faW5wdXR7bGluZS1oZWlnaHQ6MjRweH0ubWRsLXN3aXRjaC5pcy11cGdyYWRlZCAubWRsLXN3aXRjaF9faW5wdXR7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MDttYXJnaW46MDtwYWRkaW5nOjA7b3BhY2l0eTowOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2JvcmRlcjpub25lfS5tZGwtc3dpdGNoX190cmFja3tiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjI2KTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjVweDtoZWlnaHQ6MTRweDt3aWR0aDozNnB4O2JvcmRlci1yYWRpdXM6MTRweDtjdXJzb3I6cG9pbnRlcn0ubWRsLXN3aXRjaC5pcy1jaGVja2VkIC5tZGwtc3dpdGNoX190cmFja3tiYWNrZ3JvdW5kOnJnYmEoNjMsODEsMTgxLC41KX0ubWRsLXN3aXRjaC5pcy1kaXNhYmxlZCAubWRsLXN3aXRjaF9fdHJhY2t7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xMik7Y3Vyc29yOmF1dG99Lm1kbC1zd2l0Y2hfX3RodW1ie2JhY2tncm91bmQ6I2ZhZmFmYTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjJweDtoZWlnaHQ6MjBweDt3aWR0aDoyMHB4O2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpwb2ludGVyO2JveC1zaGFkb3c6MCAycHggMnB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsLjIpLDAgMXB4IDVweCAwIHJnYmEoMCwwLDAsLjEyKTstd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246LjI4czt0cmFuc2l0aW9uLWR1cmF0aW9uOi4yOHM7LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6bGVmdDt0cmFuc2l0aW9uLXByb3BlcnR5OmxlZnR9Lm1kbC1zd2l0Y2guaXMtY2hlY2tlZCAubWRsLXN3aXRjaF9fdGh1bWJ7YmFja2dyb3VuZDpyZ2IoNjMsODEsMTgxKTtsZWZ0OjE2cHg7Ym94LXNoYWRvdzowIDNweCA0cHggMCByZ2JhKDAsMCwwLC4xNCksMCAzcHggM3B4IC0ycHggcmdiYSgwLDAsMCwuMiksMCAxcHggOHB4IDAgcmdiYSgwLDAsMCwuMTIpfS5tZGwtc3dpdGNoLmlzLWRpc2FibGVkIC5tZGwtc3dpdGNoX190aHVtYntiYWNrZ3JvdW5kOiNiZGJkYmQ7Y3Vyc29yOmF1dG99Lm1kbC1zd2l0Y2hfX2ZvY3VzLWhlbHBlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNHB4LC00cHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKC00cHgsLTRweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNHB4LC00cHgpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5tZGwtc3dpdGNoLmlzLWZvY3VzZWQgLm1kbC1zd2l0Y2hfX2ZvY3VzLWhlbHBlcntib3gtc2hhZG93OjAgMCAwIDIwcHggcmdiYSgwLDAsMCwuMSk7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xKX0ubWRsLXN3aXRjaC5pcy1mb2N1c2VkLmlzLWNoZWNrZWQgLm1kbC1zd2l0Y2hfX2ZvY3VzLWhlbHBlcntib3gtc2hhZG93OjAgMCAwIDIwcHggcmdiYSg2Myw4MSwxODEsLjI2KTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNjMsODEsMTgxLC4yNil9Lm1kbC1zd2l0Y2hfX2xhYmVse3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI0cHg7bWFyZ2luOjA7bGVmdDoyNHB4fS5tZGwtc3dpdGNoLmlzLWRpc2FibGVkIC5tZGwtc3dpdGNoX19sYWJlbHtjb2xvcjojYmRiZGJkO2N1cnNvcjphdXRvfS5tZGwtc3dpdGNoX19yaXBwbGUtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mjt0b3A6LTEycHg7bGVmdDotMTRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6NDhweDtoZWlnaHQ6NDhweDtib3JkZXItcmFkaXVzOjUwJTtjdXJzb3I6cG9pbnRlcjtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1tYXNrLWltYWdlOi13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwjZmZmLCMwMDApOy13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjouNHM7dHJhbnNpdGlvbi1kdXJhdGlvbjouNHM7LXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpzdGVwLWVuZDt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpzdGVwLWVuZDstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6bGVmdDt0cmFuc2l0aW9uLXByb3BlcnR5OmxlZnR9Lm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGV7YmFja2dyb3VuZDpyZ2IoNjMsODEsMTgxKX0ubWRsLXN3aXRjaC5pcy1kaXNhYmxlZCAubWRsLXN3aXRjaF9fcmlwcGxlLWNvbnRhaW5lcntjdXJzb3I6YXV0b30ubWRsLXN3aXRjaC5pcy1kaXNhYmxlZCAubWRsLXN3aXRjaF9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZXtiYWNrZ3JvdW5kOjAgMH0ubWRsLXN3aXRjaC5pcy1jaGVja2VkIC5tZGwtc3dpdGNoX19yaXBwbGUtY29udGFpbmVye2N1cnNvcjphdXRvO2xlZnQ6MnB4fS5tZGwtdGFic3tkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCV9Lm1kbC10YWJzX190YWItYmFye2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpyb3c7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3c7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1hbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW47LW1zLWZsZXgtbGluZS1wYWNrOmp1c3RpZnk7YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuOy13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2hlaWdodDo0OHB4O3BhZGRpbmc6MDttYXJnaW46MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTBlMGUwfS5tZGwtdGFic19fdGFie21hcmdpbjowO2JvcmRlcjpub25lO3BhZGRpbmc6MCAyNHB4O2Zsb2F0OmxlZnQ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztjb2xvcjpyZWQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7aGVpZ2h0OjQ4cHg7bGluZS1oZWlnaHQ6NDhweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDo1MDA7Zm9udC1zaXplOjE0cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnJnYmEoMCwwLDAsLjU0KTtvdmVyZmxvdzpoaWRkZW59Lm1kbC10YWJzLmlzLXVwZ3JhZGVkIC5tZGwtdGFic19fdGFiLmlzLWFjdGl2ZXtjb2xvcjpyZ2JhKDAsMCwwLC44Nyl9Lm1kbC10YWJzLmlzLXVwZ3JhZGVkIC5tZGwtdGFic19fdGFiLmlzLWFjdGl2ZTphZnRlcntoZWlnaHQ6MnB4O3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztjb250ZW50OiIgIjtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDpyZ2IoNjMsODEsMTgxKTstd2Via2l0LWFuaW1hdGlvbjpib3JkZXItZXhwYW5kIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuNCwxKS4wMXMgYWx0ZXJuYXRlIGZvcndhcmRzO2FuaW1hdGlvbjpib3JkZXItZXhwYW5kIC4ycyBjdWJpYy1iZXppZXIoLjQsMCwuNCwxKS4wMXMgYWx0ZXJuYXRlIGZvcndhcmRzOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMXMgY3ViaWMtYmV6aWVyKC40LDAsMSwxKTt0cmFuc2l0aW9uOmFsbCAxcyBjdWJpYy1iZXppZXIoLjQsMCwxLDEpfS5tZGwtdGFic19fdGFiIC5tZGwtdGFic19fcmlwcGxlLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bGVmdDowO3RvcDowO3otaW5kZXg6MTtvdmVyZmxvdzpoaWRkZW59Lm1kbC10YWJzX190YWIgLm1kbC10YWJzX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxle2JhY2tncm91bmQ6cmdiKDYzLDgxLDE4MSl9Lm1kbC10YWJzX19wYW5lbHtkaXNwbGF5OmJsb2NrfS5tZGwtdGFicy5pcy11cGdyYWRlZCAubWRsLXRhYnNfX3BhbmVse2Rpc3BsYXk6bm9uZX0ubWRsLXRhYnMuaXMtdXBncmFkZWQgLm1kbC10YWJzX19wYW5lbC5pcy1hY3RpdmV7ZGlzcGxheTpibG9ja31ALXdlYmtpdC1rZXlmcmFtZXMgYm9yZGVyLWV4cGFuZHswJXtvcGFjaXR5OjA7d2lkdGg6MH0xMDAle29wYWNpdHk6MTt3aWR0aDoxMDAlfX1Aa2V5ZnJhbWVzIGJvcmRlci1leHBhbmR7MCV7b3BhY2l0eTowO3dpZHRoOjB9MTAwJXtvcGFjaXR5OjE7d2lkdGg6MTAwJX19Lm1kbC10ZXh0ZmllbGR7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjMwMHB4O21heC13aWR0aDoxMDAlO21hcmdpbjowO3BhZGRpbmc6MjBweCAwfS5tZGwtdGV4dGZpZWxkIC5tZGwtYnV0dG9ue3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbToyMHB4fS5tZGwtdGV4dGZpZWxkLS1hbGlnbi1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS5tZGwtdGV4dGZpZWxkLS1mdWxsLXdpZHRoe3dpZHRoOjEwMCV9Lm1kbC10ZXh0ZmllbGQtLWV4cGFuZGFibGV7bWluLXdpZHRoOjMycHg7d2lkdGg6YXV0bzttaW4taGVpZ2h0OjMycHh9Lm1kbC10ZXh0ZmllbGRfX2lucHV0e2JvcmRlcjpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyKTtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxNnB4O21hcmdpbjowO3BhZGRpbmc6NHB4IDA7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOjAgMDt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6aW5oZXJpdH0ubWRsLXRleHRmaWVsZC5pcy1mb2N1c2VkIC5tZGwtdGV4dGZpZWxkX19pbnB1dHtvdXRsaW5lOm5vbmV9Lm1kbC10ZXh0ZmllbGQuaXMtaW52YWxpZCAubWRsLXRleHRmaWVsZF9faW5wdXR7Ym9yZGVyLWNvbG9yOiNkZTMyMjY7Ym94LXNoYWRvdzpub25lfS5tZGwtdGV4dGZpZWxkLmlzLWRpc2FibGVkIC5tZGwtdGV4dGZpZWxkX19pbnB1dHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCByZ2JhKDAsMCwwLC4xMik7Y29sb3I6cmdiYSgwLDAsMCwuMjYpfS5tZGwtdGV4dGZpZWxkIHRleHRhcmVhLm1kbC10ZXh0ZmllbGRfX2lucHV0e2Rpc3BsYXk6YmxvY2t9Lm1kbC10ZXh0ZmllbGRfX2xhYmVse2JvdHRvbTowO2NvbG9yOnJnYmEoMCwwLDAsLjI2KTtmb250LXNpemU6MTZweDtsZWZ0OjA7cmlnaHQ6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7dG9wOjI0cHg7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtYWxpZ246bGVmdH0ubWRsLXRleHRmaWVsZC5pcy1kaXJ0eSAubWRsLXRleHRmaWVsZF9fbGFiZWx7dmlzaWJpbGl0eTpoaWRkZW59Lm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsIC5tZGwtdGV4dGZpZWxkX19sYWJlbHstd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246LjJzO3RyYW5zaXRpb24tZHVyYXRpb246LjJzOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9Lm1kbC10ZXh0ZmllbGQuaXMtZGlzYWJsZWQuaXMtZGlzYWJsZWQgLm1kbC10ZXh0ZmllbGRfX2xhYmVse2NvbG9yOnJnYmEoMCwwLDAsLjI2KX0ubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwuaXMtZm9jdXNlZCAubWRsLXRleHRmaWVsZF9fbGFiZWwsLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWRpcnR5IC5tZGwtdGV4dGZpZWxkX19sYWJlbHtjb2xvcjpyZ2IoNjMsODEsMTgxKTtmb250LXNpemU6MTJweDt0b3A6NHB4O3Zpc2liaWxpdHk6dmlzaWJsZX0ubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwuaXMtZm9jdXNlZCAubWRsLXRleHRmaWVsZF9fZXhwYW5kYWJsZS1ob2xkZXIgLm1kbC10ZXh0ZmllbGRfX2xhYmVsLC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5pcy1kaXJ0eSAubWRsLXRleHRmaWVsZF9fZXhwYW5kYWJsZS1ob2xkZXIgLm1kbC10ZXh0ZmllbGRfX2xhYmVse3RvcDotMTZweH0ubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwuaXMtaW52YWxpZCAubWRsLXRleHRmaWVsZF9fbGFiZWx7Y29sb3I6I2RlMzIyNjtmb250LXNpemU6MTJweH0ubWRsLXRleHRmaWVsZF9fbGFiZWw6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IoNjMsODEsMTgxKTtib3R0b206MjBweDtjb250ZW50OicnO2hlaWdodDoycHg7bGVmdDo0NSU7cG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOi4yczt0cmFuc2l0aW9uLWR1cmF0aW9uOi4yczstd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpO3Zpc2liaWxpdHk6aGlkZGVuO3dpZHRoOjEwcHh9Lm1kbC10ZXh0ZmllbGQuaXMtZm9jdXNlZCAubWRsLXRleHRmaWVsZF9fbGFiZWw6YWZ0ZXJ7bGVmdDowO3Zpc2liaWxpdHk6dmlzaWJsZTt3aWR0aDoxMDAlfS5tZGwtdGV4dGZpZWxkLmlzLWludmFsaWQgLm1kbC10ZXh0ZmllbGRfX2xhYmVsOmFmdGVye2JhY2tncm91bmQtY29sb3I6I2RlMzIyNn0ubWRsLXRleHRmaWVsZF9fZXJyb3J7Y29sb3I6I2RlMzIyNjtwb3NpdGlvbjphYnNvbHV0ZTtmb250LXNpemU6MTJweDttYXJnaW4tdG9wOjNweDt2aXNpYmlsaXR5OmhpZGRlbjtkaXNwbGF5OmJsb2NrfS5tZGwtdGV4dGZpZWxkLmlzLWludmFsaWQgLm1kbC10ZXh0ZmllbGRfX2Vycm9ye3Zpc2liaWxpdHk6dmlzaWJsZX0ubWRsLXRleHRmaWVsZF9fZXhwYW5kYWJsZS1ob2xkZXJ7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLWxlZnQ6MzJweDstd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246LjJzO3RyYW5zaXRpb24tZHVyYXRpb246LjJzOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOi4xcHh9Lm1kbC10ZXh0ZmllbGQuaXMtZm9jdXNlZCAubWRsLXRleHRmaWVsZF9fZXhwYW5kYWJsZS1ob2xkZXIsLm1kbC10ZXh0ZmllbGQuaXMtZGlydHkgLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVye21heC13aWR0aDo2MDBweH0ubWRsLXRleHRmaWVsZF9fZXhwYW5kYWJsZS1ob2xkZXIgLm1kbC10ZXh0ZmllbGRfX2xhYmVsOmFmdGVye2JvdHRvbTowfS5tZGwtdG9vbHRpcHstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTstbXMtdHJhbnNmb3JtOnNjYWxlKDApO3RyYW5zZm9ybTpzY2FsZSgwKTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46dG9wIGNlbnRlcjstbXMtdHJhbnNmb3JtLW9yaWdpbjp0b3AgY2VudGVyO3RyYW5zZm9ybS1vcmlnaW46dG9wIGNlbnRlcjt3aWxsLWNoYW5nZTp0cmFuc2Zvcm07ei1pbmRleDo5OTk7YmFja2dyb3VuZDpyZ2JhKDk3LDk3LDk3LC45KTtib3JkZXItcmFkaXVzOjJweDtjb2xvcjojZmZmO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxNHB4O21heC13aWR0aDoxNzBweDtwb3NpdGlvbjpmaXhlZDt0b3A6LTUwMHB4O2xlZnQ6LTUwMHB4O3BhZGRpbmc6OHB4O3RleHQtYWxpZ246Y2VudGVyfS5tZGwtdG9vbHRpcC5pcy1hY3RpdmV7LXdlYmtpdC1hbmltYXRpb246cHVsc2UgMjAwbXMgY3ViaWMtYmV6aWVyKDAsMCwuMiwxKWZvcndhcmRzO2FuaW1hdGlvbjpwdWxzZSAyMDBtcyBjdWJpYy1iZXppZXIoMCwwLC4yLDEpZm9yd2FyZHN9Lm1kbC10b29sdGlwLS1sYXJnZXtsaW5lLWhlaWdodDoxNHB4O2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmc6MTZweH1ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2V7MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7dHJhbnNmb3JtOnNjYWxlKDApO29wYWNpdHk6MH01MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjk5KTt0cmFuc2Zvcm06c2NhbGUoLjk5KX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlfX1Aa2V5ZnJhbWVzIHB1bHNlezAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO3RyYW5zZm9ybTpzY2FsZSgwKTtvcGFjaXR5OjB9NTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC45OSk7dHJhbnNmb3JtOnNjYWxlKC45OSl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZX19Lm1kbC1zaGFkb3ctLTJkcHtib3gtc2hhZG93OjAgMnB4IDJweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLC4yKSwwIDFweCA1cHggMCByZ2JhKDAsMCwwLC4xMil9Lm1kbC1zaGFkb3ctLTNkcHtib3gtc2hhZG93OjAgM3B4IDRweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDNweCAzcHggLTJweCByZ2JhKDAsMCwwLC4yKSwwIDFweCA4cHggMCByZ2JhKDAsMCwwLC4xMil9Lm1kbC1zaGFkb3ctLTRkcHtib3gtc2hhZG93OjAgNHB4IDVweCAwIHJnYmEoMCwwLDAsLjE0KSwwIDFweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTIpLDAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsLjIpfS5tZGwtc2hhZG93LS02ZHB7Ym94LXNoYWRvdzowIDZweCAxMHB4IDAgcmdiYSgwLDAsMCwuMTQpLDAgMXB4IDE4cHggMCByZ2JhKDAsMCwwLC4xMiksMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwuMil9Lm1kbC1zaGFkb3ctLThkcHtib3gtc2hhZG93OjAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsLjE0KSwwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLC4xMiksMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwuMil9Lm1kbC1zaGFkb3ctLTE2ZHB7Ym94LXNoYWRvdzowIDE2cHggMjRweCAycHggcmdiYSgwLDAsMCwuMTQpLDAgNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsLjEyKSwwIDhweCAxMHB4IC01cHggcmdiYSgwLDAsMCwuMil9Lm1kbC1ncmlke2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC1mbG93OnJvdyB3cmFwOy1tcy1mbGV4LWZsb3c6cm93IHdyYXA7ZmxleC1mbG93OnJvdyB3cmFwO21hcmdpbjowIGF1dG87LXdlYmtpdC1ib3gtYWxpZ246c3RyZXRjaDstd2Via2l0LWFsaWduLWl0ZW1zOnN0cmV0Y2g7LW1zLWZsZXgtYWxpZ246c3RyZXRjaDthbGlnbi1pdGVtczpzdHJldGNofS5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZ3twYWRkaW5nOjB9Lm1kbC1jZWxse2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubWRsLWNlbGwtLXRvcHstd2Via2l0LWFsaWduLXNlbGY6ZmxleC1zdGFydDstbXMtZmxleC1pdGVtLWFsaWduOnN0YXJ0O2FsaWduLXNlbGY6ZmxleC1zdGFydH0ubWRsLWNlbGwtLW1pZGRsZXstd2Via2l0LWFsaWduLXNlbGY6Y2VudGVyOy1tcy1mbGV4LWl0ZW0tYWxpZ246Y2VudGVyO2FsaWduLXNlbGY6Y2VudGVyfS5tZGwtY2VsbC0tYm90dG9tey13ZWJraXQtYWxpZ24tc2VsZjpmbGV4LWVuZDstbXMtZmxleC1pdGVtLWFsaWduOmVuZDthbGlnbi1zZWxmOmZsZXgtZW5kfS5tZGwtY2VsbC0tc3RyZXRjaHstd2Via2l0LWFsaWduLXNlbGY6c3RyZXRjaDstbXMtZmxleC1pdGVtLWFsaWduOnN0cmV0Y2g7YWxpZ24tc2VsZjpzdHJldGNofS5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGx7bWFyZ2luOjB9QG1lZGlhIChtYXgtd2lkdGg6NDc5cHgpey5tZGwtZ3JpZHtwYWRkaW5nOjhweH0ubWRsLWNlbGx7bWFyZ2luOjhweDt3aWR0aDpjYWxjKDEwMCUgLSAxNnB4KX0ubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxse3dpZHRoOjEwMCV9Lm1kbC1jZWxsLS1oaWRlLXBob25le2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9Lm1kbC1jZWxsLS0xLWNvbCwubWRsLWNlbGwtLTEtY29sLXBob25lLm1kbC1jZWxsLS0xLWNvbC1waG9uZXt3aWR0aDpjYWxjKDI1JSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTEtY29sLC5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTEtY29sLXBob25lLm1kbC1jZWxsLS0xLWNvbC1waG9uZXt3aWR0aDoyNSV9Lm1kbC1jZWxsLS0yLWNvbCwubWRsLWNlbGwtLTItY29sLXBob25lLm1kbC1jZWxsLS0yLWNvbC1waG9uZXt3aWR0aDpjYWxjKDUwJSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTItY29sLC5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTItY29sLXBob25lLm1kbC1jZWxsLS0yLWNvbC1waG9uZXt3aWR0aDo1MCV9Lm1kbC1jZWxsLS0zLWNvbCwubWRsLWNlbGwtLTMtY29sLXBob25lLm1kbC1jZWxsLS0zLWNvbC1waG9uZXt3aWR0aDpjYWxjKDc1JSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTMtY29sLC5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTMtY29sLXBob25lLm1kbC1jZWxsLS0zLWNvbC1waG9uZXt3aWR0aDo3NSV9Lm1kbC1jZWxsLS00LWNvbCwubWRsLWNlbGwtLTQtY29sLXBob25lLm1kbC1jZWxsLS00LWNvbC1waG9uZXt3aWR0aDpjYWxjKDEwMCUgLSAxNnB4KX0ubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS00LWNvbCwubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS00LWNvbC1waG9uZS5tZGwtY2VsbC0tNC1jb2wtcGhvbmV7d2lkdGg6MTAwJX0ubWRsLWNlbGwtLTUtY29sLC5tZGwtY2VsbC0tNS1jb2wtcGhvbmUubWRsLWNlbGwtLTUtY29sLXBob25le3dpZHRoOmNhbGMoMTAwJSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTUtY29sLC5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTUtY29sLXBob25lLm1kbC1jZWxsLS01LWNvbC1waG9uZXt3aWR0aDoxMDAlfS5tZGwtY2VsbC0tNi1jb2wsLm1kbC1jZWxsLS02LWNvbC1waG9uZS5tZGwtY2VsbC0tNi1jb2wtcGhvbmV7d2lkdGg6Y2FsYygxMDAlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNi1jb2wsLm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNi1jb2wtcGhvbmUubWRsLWNlbGwtLTYtY29sLXBob25le3dpZHRoOjEwMCV9Lm1kbC1jZWxsLS03LWNvbCwubWRsLWNlbGwtLTctY29sLXBob25lLm1kbC1jZWxsLS03LWNvbC1waG9uZXt3aWR0aDpjYWxjKDEwMCUgLSAxNnB4KX0ubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS03LWNvbCwubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS03LWNvbC1waG9uZS5tZGwtY2VsbC0tNy1jb2wtcGhvbmV7d2lkdGg6MTAwJX0ubWRsLWNlbGwtLTgtY29sLC5tZGwtY2VsbC0tOC1jb2wtcGhvbmUubWRsLWNlbGwtLTgtY29sLXBob25le3dpZHRoOmNhbGMoMTAwJSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTgtY29sLC5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTgtY29sLXBob25lLm1kbC1jZWxsLS04LWNvbC1waG9uZXt3aWR0aDoxMDAlfS5tZGwtY2VsbC0tOS1jb2wsLm1kbC1jZWxsLS05LWNvbC1waG9uZS5tZGwtY2VsbC0tOS1jb2wtcGhvbmV7d2lkdGg6Y2FsYygxMDAlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tOS1jb2wsLm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tOS1jb2wtcGhvbmUubWRsLWNlbGwtLTktY29sLXBob25le3dpZHRoOjEwMCV9Lm1kbC1jZWxsLS0xMC1jb2wsLm1kbC1jZWxsLS0xMC1jb2wtcGhvbmUubWRsLWNlbGwtLTEwLWNvbC1waG9uZXt3aWR0aDpjYWxjKDEwMCUgLSAxNnB4KX0ubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS0xMC1jb2wsLm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tMTAtY29sLXBob25lLm1kbC1jZWxsLS0xMC1jb2wtcGhvbmV7d2lkdGg6MTAwJX0ubWRsLWNlbGwtLTExLWNvbCwubWRsLWNlbGwtLTExLWNvbC1waG9uZS5tZGwtY2VsbC0tMTEtY29sLXBob25le3dpZHRoOmNhbGMoMTAwJSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTExLWNvbCwubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS0xMS1jb2wtcGhvbmUubWRsLWNlbGwtLTExLWNvbC1waG9uZXt3aWR0aDoxMDAlfS5tZGwtY2VsbC0tMTItY29sLC5tZGwtY2VsbC0tMTItY29sLXBob25lLm1kbC1jZWxsLS0xMi1jb2wtcGhvbmV7d2lkdGg6Y2FsYygxMDAlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tMTItY29sLC5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTEyLWNvbC1waG9uZS5tZGwtY2VsbC0tMTItY29sLXBob25le3dpZHRoOjEwMCV9fUBtZWRpYSAobWluLXdpZHRoOjQ4MHB4KSBhbmQgKG1heC13aWR0aDo4MzlweCl7Lm1kbC1ncmlke3BhZGRpbmc6OHB4fS5tZGwtY2VsbHttYXJnaW46OHB4O3dpZHRoOmNhbGMoNTAlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbHt3aWR0aDo1MCV9Lm1kbC1jZWxsLS1oaWRlLXRhYmxldHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5tZGwtY2VsbC0tMS1jb2wsLm1kbC1jZWxsLS0xLWNvbC10YWJsZXQubWRsLWNlbGwtLTEtY29sLXRhYmxldHt3aWR0aDpjYWxjKDEyLjUlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tMS1jb2wsLm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tMS1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xLWNvbC10YWJsZXR7d2lkdGg6MTIuNSV9Lm1kbC1jZWxsLS0yLWNvbCwubWRsLWNlbGwtLTItY29sLXRhYmxldC5tZGwtY2VsbC0tMi1jb2wtdGFibGV0e3dpZHRoOmNhbGMoMjUlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tMi1jb2wsLm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tMi1jb2wtdGFibGV0Lm1kbC1jZWxsLS0yLWNvbC10YWJsZXR7d2lkdGg6MjUlfS5tZGwtY2VsbC0tMy1jb2wsLm1kbC1jZWxsLS0zLWNvbC10YWJsZXQubWRsLWNlbGwtLTMtY29sLXRhYmxldHt3aWR0aDpjYWxjKDM3LjUlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tMy1jb2wsLm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tMy1jb2wtdGFibGV0Lm1kbC1jZWxsLS0zLWNvbC10YWJsZXR7d2lkdGg6MzcuNSV9Lm1kbC1jZWxsLS00LWNvbCwubWRsLWNlbGwtLTQtY29sLXRhYmxldC5tZGwtY2VsbC0tNC1jb2wtdGFibGV0e3dpZHRoOmNhbGMoNTAlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNC1jb2wsLm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNC1jb2wtdGFibGV0Lm1kbC1jZWxsLS00LWNvbC10YWJsZXR7d2lkdGg6NTAlfS5tZGwtY2VsbC0tNS1jb2wsLm1kbC1jZWxsLS01LWNvbC10YWJsZXQubWRsLWNlbGwtLTUtY29sLXRhYmxldHt3aWR0aDpjYWxjKDYyLjUlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNS1jb2wsLm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNS1jb2wtdGFibGV0Lm1kbC1jZWxsLS01LWNvbC10YWJsZXR7d2lkdGg6NjIuNSV9Lm1kbC1jZWxsLS02LWNvbCwubWRsLWNlbGwtLTYtY29sLXRhYmxldC5tZGwtY2VsbC0tNi1jb2wtdGFibGV0e3dpZHRoOmNhbGMoNzUlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNi1jb2wsLm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNi1jb2wtdGFibGV0Lm1kbC1jZWxsLS02LWNvbC10YWJsZXR7d2lkdGg6NzUlfS5tZGwtY2VsbC0tNy1jb2wsLm1kbC1jZWxsLS03LWNvbC10YWJsZXQubWRsLWNlbGwtLTctY29sLXRhYmxldHt3aWR0aDpjYWxjKDg3LjUlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNy1jb2wsLm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNy1jb2wtdGFibGV0Lm1kbC1jZWxsLS03LWNvbC10YWJsZXR7d2lkdGg6ODcuNSV9Lm1kbC1jZWxsLS04LWNvbCwubWRsLWNlbGwtLTgtY29sLXRhYmxldC5tZGwtY2VsbC0tOC1jb2wtdGFibGV0e3dpZHRoOmNhbGMoMTAwJSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTgtY29sLC5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTgtY29sLXRhYmxldC5tZGwtY2VsbC0tOC1jb2wtdGFibGV0e3dpZHRoOjEwMCV9Lm1kbC1jZWxsLS05LWNvbCwubWRsLWNlbGwtLTktY29sLXRhYmxldC5tZGwtY2VsbC0tOS1jb2wtdGFibGV0e3dpZHRoOmNhbGMoMTAwJSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTktY29sLC5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTktY29sLXRhYmxldC5tZGwtY2VsbC0tOS1jb2wtdGFibGV0e3dpZHRoOjEwMCV9Lm1kbC1jZWxsLS0xMC1jb2wsLm1kbC1jZWxsLS0xMC1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMC1jb2wtdGFibGV0e3dpZHRoOmNhbGMoMTAwJSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTEwLWNvbCwubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS0xMC1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMC1jb2wtdGFibGV0e3dpZHRoOjEwMCV9Lm1kbC1jZWxsLS0xMS1jb2wsLm1kbC1jZWxsLS0xMS1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMS1jb2wtdGFibGV0e3dpZHRoOmNhbGMoMTAwJSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTExLWNvbCwubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS0xMS1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMS1jb2wtdGFibGV0e3dpZHRoOjEwMCV9Lm1kbC1jZWxsLS0xMi1jb2wsLm1kbC1jZWxsLS0xMi1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMi1jb2wtdGFibGV0e3dpZHRoOmNhbGMoMTAwJSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTEyLWNvbCwubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS0xMi1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMi1jb2wtdGFibGV0e3dpZHRoOjEwMCV9fUBtZWRpYSAobWluLXdpZHRoOjg0MHB4KXsubWRsLWdyaWR7cGFkZGluZzo4cHh9Lm1kbC1jZWxse21hcmdpbjo4cHg7d2lkdGg6Y2FsYygzMy4zMzMzMzMzMzMzJSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGx7d2lkdGg6MzMuMzMzMzMzMzMzMyV9Lm1kbC1jZWxsLS1oaWRlLWRlc2t0b3B7ZGlzcGxheTpub25lIWltcG9ydGFudH0ubWRsLWNlbGwtLTEtY29sLC5tZGwtY2VsbC0tMS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMS1jb2wtZGVza3RvcHt3aWR0aDpjYWxjKDguMzMzMzMzMzMzMyUgLSAxNnB4KX0ubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS0xLWNvbCwubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS0xLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xLWNvbC1kZXNrdG9we3dpZHRoOjguMzMzMzMzMzMzMyV9Lm1kbC1jZWxsLS0yLWNvbCwubWRsLWNlbGwtLTItY29sLWRlc2t0b3AubWRsLWNlbGwtLTItY29sLWRlc2t0b3B7d2lkdGg6Y2FsYygxNi42NjY2NjY2NjY3JSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTItY29sLC5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTItY29sLWRlc2t0b3AubWRsLWNlbGwtLTItY29sLWRlc2t0b3B7d2lkdGg6MTYuNjY2NjY2NjY2NyV9Lm1kbC1jZWxsLS0zLWNvbCwubWRsLWNlbGwtLTMtY29sLWRlc2t0b3AubWRsLWNlbGwtLTMtY29sLWRlc2t0b3B7d2lkdGg6Y2FsYygyNSUgLSAxNnB4KX0ubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS0zLWNvbCwubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS0zLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0zLWNvbC1kZXNrdG9we3dpZHRoOjI1JX0ubWRsLWNlbGwtLTQtY29sLC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcHt3aWR0aDpjYWxjKDMzLjMzMzMzMzMzMzMlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNC1jb2wsLm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcHt3aWR0aDozMy4zMzMzMzMzMzMzJX0ubWRsLWNlbGwtLTUtY29sLC5tZGwtY2VsbC0tNS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNS1jb2wtZGVza3RvcHt3aWR0aDpjYWxjKDQxLjY2NjY2NjY2NjclIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNS1jb2wsLm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tNS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNS1jb2wtZGVza3RvcHt3aWR0aDo0MS42NjY2NjY2NjY3JX0ubWRsLWNlbGwtLTYtY29sLC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcHt3aWR0aDpjYWxjKDUwJSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTYtY29sLC5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTYtY29sLWRlc2t0b3AubWRsLWNlbGwtLTYtY29sLWRlc2t0b3B7d2lkdGg6NTAlfS5tZGwtY2VsbC0tNy1jb2wsLm1kbC1jZWxsLS03LWNvbC1kZXNrdG9wLm1kbC1jZWxsLS03LWNvbC1kZXNrdG9we3dpZHRoOmNhbGMoNTguMzMzMzMzMzMzMyUgLSAxNnB4KX0ubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS03LWNvbCwubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS03LWNvbC1kZXNrdG9wLm1kbC1jZWxsLS03LWNvbC1kZXNrdG9we3dpZHRoOjU4LjMzMzMzMzMzMzMlfS5tZGwtY2VsbC0tOC1jb2wsLm1kbC1jZWxsLS04LWNvbC1kZXNrdG9wLm1kbC1jZWxsLS04LWNvbC1kZXNrdG9we3dpZHRoOmNhbGMoNjYuNjY2NjY2NjY2NyUgLSAxNnB4KX0ubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS04LWNvbCwubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS04LWNvbC1kZXNrdG9wLm1kbC1jZWxsLS04LWNvbC1kZXNrdG9we3dpZHRoOjY2LjY2NjY2NjY2NjclfS5tZGwtY2VsbC0tOS1jb2wsLm1kbC1jZWxsLS05LWNvbC1kZXNrdG9wLm1kbC1jZWxsLS05LWNvbC1kZXNrdG9we3dpZHRoOmNhbGMoNzUlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tOS1jb2wsLm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tOS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tOS1jb2wtZGVza3RvcHt3aWR0aDo3NSV9Lm1kbC1jZWxsLS0xMC1jb2wsLm1kbC1jZWxsLS0xMC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMTAtY29sLWRlc2t0b3B7d2lkdGg6Y2FsYyg4My4zMzMzMzMzMzMzJSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTEwLWNvbCwubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS0xMC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMTAtY29sLWRlc2t0b3B7d2lkdGg6ODMuMzMzMzMzMzMzMyV9Lm1kbC1jZWxsLS0xMS1jb2wsLm1kbC1jZWxsLS0xMS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMTEtY29sLWRlc2t0b3B7d2lkdGg6Y2FsYyg5MS42NjY2NjY2NjY3JSAtIDE2cHgpfS5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTExLWNvbCwubWRsLWdyaWQtLW5vLXNwYWNpbmc+Lm1kbC1jZWxsLS0xMS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMTEtY29sLWRlc2t0b3B7d2lkdGg6OTEuNjY2NjY2NjY2NyV9Lm1kbC1jZWxsLS0xMi1jb2wsLm1kbC1jZWxsLS0xMi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMTItY29sLWRlc2t0b3B7d2lkdGg6Y2FsYygxMDAlIC0gMTZweCl9Lm1kbC1ncmlkLS1uby1zcGFjaW5nPi5tZGwtY2VsbC0tMTItY29sLC5tZGwtZ3JpZC0tbm8tc3BhY2luZz4ubWRsLWNlbGwtLTEyLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xMi1jb2wtZGVza3RvcHt3aWR0aDoxMDAlfX1ib2R5e21hcmdpbjowfS5zdHlsZWd1aWRlLWRlbW8gaDF7bWFyZ2luOjQ4cHggMjRweCAwfS5zdHlsZWd1aWRlLWRlbW8gaDE6YWZ0ZXJ7Y29udGVudDonJztkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuNSk7bWFyZ2luLXRvcDoyNHB4fS5zdHlsZWd1aWRlLWRlbW97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC42cyBlYXNlO3RyYW5zaXRpb246b3BhY2l0eSAuNnMgZWFzZX0uc3R5bGVndWlkZS1tYXN0aGVhZHtoZWlnaHQ6MjU2cHg7YmFja2dyb3VuZDojMjEyMTIxO3BhZGRpbmc6MTE1cHggMTZweCAwfS5zdHlsZWd1aWRlLWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTttYXgtd2lkdGg6OTYwcHg7d2lkdGg6MTAwJX0uc3R5bGVndWlkZS10aXRsZXtjb2xvcjojZmZmO2JvdHRvbTphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTo1NnB4O2ZvbnQtd2VpZ2h0OjMwMDtsaW5lLWhlaWdodDoxO2xldHRlci1zcGFjaW5nOi0uMDJlbX0uc3R5bGVndWlkZS10aXRsZTphZnRlcntib3JkZXItYm90dG9tOjB9LnN0eWxlZ3VpZGUtdGl0bGUgc3Bhbntmb250LXdlaWdodDozMDB9Lm1kbC1zdHlsZWd1aWRlIC5tZGwtbGF5b3V0X19kcmF3ZXIgLm1kbC1uYXZpZ2F0aW9uX19saW5re3BhZGRpbmc6MTBweCAyNHB4fS5kZW1vc0xvYWRlZCAuc3R5bGVndWlkZS1kZW1ve29wYWNpdHk6MX1pZnJhbWV7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2JvcmRlcjpub25lfWlmcmFtZS5oZWlnaHRTZXR7b3ZlcmZsb3c6aGlkZGVufS5kZW1vLXdyYXBwZXJ7bWFyZ2luOjI0cHh9LmRlbW8td3JhcHBlciBpZnJhbWV7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC41KX0KPC9zdHlsZT4KPHNjcmlwdD4KLyoqCiAqIG1hdGVyaWFsLWRlc2lnbi1saXRlIC0gTWF0ZXJpYWwgRGVzaWduIENvbXBvbmVudHMgaW4gQ1NTLCBKUyBhbmQgSFRNTAogKiBAdmVyc2lvbiB2MS4wLjYKICogQGxpY2Vuc2UgQXBhY2hlLTIuMAogKiBAY29weXJpZ2h0IDIwMTUgR29vZ2xlLCBJbmMuCiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvbWF0ZXJpYWwtZGVzaWduLWxpdGUKICovCiFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKGUsdCl7aWYoZSl7aWYodC5lbGVtZW50Xy5jbGFzc0xpc3QuY29udGFpbnModC5Dc3NDbGFzc2VzXy5NRExfSlNfUklQUExFX0VGRkVDVCkpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTGlzdC5hZGQodC5Dc3NDbGFzc2VzXy5NRExfUklQUExFX0NPTlRBSU5FUikscy5jbGFzc0xpc3QuYWRkKHQuQ3NzQ2xhc3Nlc18uTURMX0pTX1JJUFBMRV9FRkZFQ1QpO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtpLmNsYXNzTGlzdC5hZGQodC5Dc3NDbGFzc2VzXy5NRExfUklQUExFKSxzLmFwcGVuZENoaWxkKGkpLGUuYXBwZW5kQ2hpbGQocyl9ZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24ocyl7cy5wcmV2ZW50RGVmYXVsdCgpO3ZhciBpPWUuaHJlZi5zcGxpdCgiIyIpWzFdLG49dC5lbGVtZW50Xy5xdWVyeVNlbGVjdG9yKCIjIitpKTt0LnJlc2V0VGFiU3RhdGVfKCksdC5yZXNldFBhbmVsU3RhdGVfKCksZS5jbGFzc0xpc3QuYWRkKHQuQ3NzQ2xhc3Nlc18uQUNUSVZFX0NMQVNTKSxuLmNsYXNzTGlzdC5hZGQodC5Dc3NDbGFzc2VzXy5BQ1RJVkVfQ0xBU1MpfSl9fWZ1bmN0aW9uIHQoZSx0LHMsaSl7aWYoaS50YWJCYXJfLmNsYXNzTGlzdC5jb250YWlucyhpLkNzc0NsYXNzZXNfLkpTX1JJUFBMRV9FRkZFQ1QpKXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7bi5jbGFzc0xpc3QuYWRkKGkuQ3NzQ2xhc3Nlc18uUklQUExFX0NPTlRBSU5FUiksbi5jbGFzc0xpc3QuYWRkKGkuQ3NzQ2xhc3Nlc18uSlNfUklQUExFX0VGRkVDVCk7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2EuY2xhc3NMaXN0LmFkZChpLkNzc0NsYXNzZXNfLlJJUFBMRSksbi5hcHBlbmRDaGlsZChhKSxlLmFwcGVuZENoaWxkKG4pfWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKG4pe24ucHJldmVudERlZmF1bHQoKTt2YXIgYT1lLmhyZWYuc3BsaXQoIiMiKVsxXSxsPWkuY29udGVudF8ucXVlcnlTZWxlY3RvcigiIyIrYSk7aS5yZXNldFRhYlN0YXRlXyh0KSxpLnJlc2V0UGFuZWxTdGF0ZV8ocyksZS5jbGFzc0xpc3QuYWRkKGkuQ3NzQ2xhc3Nlc18uSVNfQUNUSVZFKSxsLmNsYXNzTGlzdC5hZGQoaS5Dc3NDbGFzc2VzXy5JU19BQ1RJVkUpfSl9dmFyIHM9e3VwZ3JhZGVEb206ZnVuY3Rpb24oZSx0KXt9LHVwZ3JhZGVFbGVtZW50OmZ1bmN0aW9uKGUsdCl7fSx1cGdyYWRlRWxlbWVudHM6ZnVuY3Rpb24oZSl7fSx1cGdyYWRlQWxsUmVnaXN0ZXJlZDpmdW5jdGlvbigpe30scmVnaXN0ZXJVcGdyYWRlZENhbGxiYWNrOmZ1bmN0aW9uKGUsdCl7fSxyZWdpc3RlcjpmdW5jdGlvbihlKXt9LGRvd25ncmFkZUVsZW1lbnRzOmZ1bmN0aW9uKGUpe319O3M9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBzPTA7czxwLmxlbmd0aDtzKyspaWYocFtzXS5jbGFzc05hbWU9PT1lKXJldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgdCYmKHBbc109dCkscFtzXTtyZXR1cm4hMX1mdW5jdGlvbiB0KGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKCJkYXRhLXVwZ3JhZGVkIik7cmV0dXJuIG51bGw9PT10P1siIl06dC5zcGxpdCgiLCIpfWZ1bmN0aW9uIHMoZSxzKXt2YXIgaT10KGUpO3JldHVybi0xIT09aS5pbmRleE9mKHMpfWZ1bmN0aW9uIGkodCxzKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIHQmJiJ1bmRlZmluZWQiPT10eXBlb2Ygcylmb3IodmFyIGE9MDthPHAubGVuZ3RoO2ErKylpKHBbYV0uY2xhc3NOYW1lLHBbYV0uY3NzQ2xhc3MpO2Vsc2V7dmFyIGw9dDtpZigidW5kZWZpbmVkIj09dHlwZW9mIHMpe3ZhciBvPWUobCk7byYmKHM9by5jc3NDbGFzcyl9Zm9yKHZhciByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK3MpLGQ9MDtkPHIubGVuZ3RoO2QrKyluKHJbZF0sbCl9fWZ1bmN0aW9uIG4oaSxuKXtpZighKCJvYmplY3QiPT10eXBlb2YgaSYmaSBpbnN0YW5jZW9mIEVsZW1lbnQpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBhcmd1bWVudCBwcm92aWRlZCB0byB1cGdyYWRlIE1ETCBlbGVtZW50LiIpO3ZhciBhPXQoaSksbD1bXTtpZihuKXMoaSxuKXx8bC5wdXNoKGUobikpO2Vsc2V7dmFyIG89aS5jbGFzc0xpc3Q7cC5mb3JFYWNoKGZ1bmN0aW9uKGUpe28uY29udGFpbnMoZS5jc3NDbGFzcykmJi0xPT09bC5pbmRleE9mKGUpJiYhcyhpLGUuY2xhc3NOYW1lKSYmbC5wdXNoKGUpfSl9Zm9yKHZhciByLGQ9MCxfPWwubGVuZ3RoO18+ZDtkKyspe2lmKHI9bFtkXSwhcil0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIGEgcmVnaXN0ZXJlZCBjb21wb25lbnQgZm9yIHRoZSBnaXZlbiBjbGFzcy4iKTthLnB1c2goci5jbGFzc05hbWUpLGkuc2V0QXR0cmlidXRlKCJkYXRhLXVwZ3JhZGVkIixhLmpvaW4oIiwiKSk7dmFyIGg9bmV3IHIuY2xhc3NDb25zdHJ1Y3RvcihpKTtoW0NdPXIsYy5wdXNoKGgpO2Zvcih2YXIgdT0wLG09ci5jYWxsYmFja3MubGVuZ3RoO20+dTt1Kyspci5jYWxsYmFja3NbdV0oaSk7ci53aWRnZXQmJihpW3IuY2xhc3NOYW1lXT1oKTt2YXIgRT1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnRzIik7RS5pbml0RXZlbnQoIm1kbC1jb21wb25lbnR1cGdyYWRlZCIsITAsITApLGkuZGlzcGF0Y2hFdmVudChFKX19ZnVuY3Rpb24gYShlKXtBcnJheS5pc0FycmF5KGUpfHwoZT0iZnVuY3Rpb24iPT10eXBlb2YgZS5pdGVtP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUpOltlXSk7Zm9yKHZhciB0LHM9MCxpPWUubGVuZ3RoO2k+cztzKyspdD1lW3NdLHQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmKG4odCksdC5jaGlsZHJlbi5sZW5ndGg+MCYmYSh0LmNoaWxkcmVuKSl9ZnVuY3Rpb24gbCh0KXt2YXIgcz0idW5kZWZpbmVkIj09dHlwZW9mIHQud2lkZ2V0JiYidW5kZWZpbmVkIj09dHlwZW9mIHQud2lkZ2V0LGk9ITA7c3x8KGk9dC53aWRnZXR8fHQud2lkZ2V0KTt2YXIgbj17Y2xhc3NDb25zdHJ1Y3Rvcjp0LmNvbnN0cnVjdG9yfHx0LmNvbnN0cnVjdG9yLGNsYXNzTmFtZTp0LmNsYXNzQXNTdHJpbmd8fHQuY2xhc3NBc1N0cmluZyxjc3NDbGFzczp0LmNzc0NsYXNzfHx0LmNzc0NsYXNzLHdpZGdldDppLGNhbGxiYWNrczpbXX07aWYocC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKGUuY3NzQ2xhc3M9PT1uLmNzc0NsYXNzKXRocm93IG5ldyBFcnJvcigiVGhlIHByb3ZpZGVkIGNzc0NsYXNzIGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZDogIitlLmNzc0NsYXNzKTtpZihlLmNsYXNzTmFtZT09PW4uY2xhc3NOYW1lKXRocm93IG5ldyBFcnJvcigiVGhlIHByb3ZpZGVkIGNsYXNzTmFtZSBoYXMgYWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQiKX0pLHQuY29uc3RydWN0b3IucHJvdG90eXBlLmhhc093blByb3BlcnR5KEMpKXRocm93IG5ldyBFcnJvcigiTURMIGNvbXBvbmVudCBjbGFzc2VzIG11c3Qgbm90IGhhdmUgIitDKyIgZGVmaW5lZCBhcyBhIHByb3BlcnR5LiIpO3ZhciBhPWUodC5jbGFzc0FzU3RyaW5nLG4pO2F8fHAucHVzaChuKX1mdW5jdGlvbiBvKHQscyl7dmFyIGk9ZSh0KTtpJiZpLmNhbGxiYWNrcy5wdXNoKHMpfWZ1bmN0aW9uIHIoKXtmb3IodmFyIGU9MDtlPHAubGVuZ3RoO2UrKylpKHBbZV0uY2xhc3NOYW1lKX1mdW5jdGlvbiBkKGUpe2Zvcih2YXIgdD0wO3Q8Yy5sZW5ndGg7dCsrKXt2YXIgcz1jW3RdO2lmKHMuZWxlbWVudF89PT1lKXJldHVybiBzfX1mdW5jdGlvbiBfKGUpe2lmKGUmJmVbQ10uY2xhc3NDb25zdHJ1Y3Rvci5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkodSkpe2VbdV0oKTt2YXIgdD1jLmluZGV4T2YoZSk7Yy5zcGxpY2UodCwxKTt2YXIgcz1lLmVsZW1lbnRfLmdldEF0dHJpYnV0ZSgiZGF0YS11cGdyYWRlZCIpLnNwbGl0KCIsIiksaT1zLmluZGV4T2YoZVtDXS5jbGFzc0FzU3RyaW5nKTtzLnNwbGljZShpLDEpLGUuZWxlbWVudF8uc2V0QXR0cmlidXRlKCJkYXRhLXVwZ3JhZGVkIixzLmpvaW4oIiwiKSk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50cyIpO24uaW5pdEV2ZW50KCJtZGwtY29tcG9uZW50ZG93bmdyYWRlZCIsITAsITApLGUuZWxlbWVudF8uZGlzcGF0Y2hFdmVudChuKX19ZnVuY3Rpb24gaChlKXt2YXIgdD1mdW5jdGlvbihlKXtfKGQoZSkpfTtpZihlIGluc3RhbmNlb2YgQXJyYXl8fGUgaW5zdGFuY2VvZiBOb2RlTGlzdClmb3IodmFyIHM9MDtzPGUubGVuZ3RoO3MrKyl0KGVbc10pO2Vsc2V7aWYoIShlIGluc3RhbmNlb2YgTm9kZSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGFyZ3VtZW50IHByb3ZpZGVkIHRvIGRvd25ncmFkZSBNREwgbm9kZXMuIik7dChlKX19dmFyIHA9W10sYz1bXSx1PSJtZGxEb3duZ3JhZGUiLEM9Im1kbENvbXBvbmVudENvbmZpZ0ludGVybmFsXyI7cmV0dXJue3VwZ3JhZGVEb206aSx1cGdyYWRlRWxlbWVudDpuLHVwZ3JhZGVFbGVtZW50czphLHVwZ3JhZGVBbGxSZWdpc3RlcmVkOnIscmVnaXN0ZXJVcGdyYWRlZENhbGxiYWNrOm8scmVnaXN0ZXI6bCxkb3duZ3JhZGVFbGVtZW50czpofX0oKSxzLkNvbXBvbmVudENvbmZpZ1B1YmxpYyxzLkNvbXBvbmVudENvbmZpZyxzLkNvbXBvbmVudCxzLnVwZ3JhZGVEb209cy51cGdyYWRlRG9tLHMudXBncmFkZUVsZW1lbnQ9cy51cGdyYWRlRWxlbWVudCxzLnVwZ3JhZGVFbGVtZW50cz1zLnVwZ3JhZGVFbGVtZW50cyxzLnVwZ3JhZGVBbGxSZWdpc3RlcmVkPXMudXBncmFkZUFsbFJlZ2lzdGVyZWQscy5yZWdpc3RlclVwZ3JhZGVkQ2FsbGJhY2s9cy5yZWdpc3RlclVwZ3JhZGVkQ2FsbGJhY2sscy5yZWdpc3Rlcj1zLnJlZ2lzdGVyLHMuZG93bmdyYWRlRWxlbWVudHM9cy5kb3duZ3JhZGVFbGVtZW50cyx3aW5kb3cuY29tcG9uZW50SGFuZGxlcj1zLHdpbmRvdy5jb21wb25lbnRIYW5kbGVyPXMsd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7ImNsYXNzTGlzdCJpbiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSYmInF1ZXJ5U2VsZWN0b3IiaW4gZG9jdW1lbnQmJiJhZGRFdmVudExpc3RlbmVyImluIHdpbmRvdyYmQXJyYXkucHJvdG90eXBlLmZvckVhY2g/KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJtZGwtanMiKSxzLnVwZ3JhZGVBbGxSZWdpc3RlcmVkKCkpOihzLnVwZ3JhZGVFbGVtZW50PWZ1bmN0aW9uKCl7fSxzLnJlZ2lzdGVyPWZ1bmN0aW9uKCl7fSl9KSxEYXRlLm5vd3x8KERhdGUubm93PWZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9LERhdGUubm93PURhdGUubm93KTtmb3IodmFyIGk9WyJ3ZWJraXQiLCJtb3oiXSxuPTA7bjxpLmxlbmd0aCYmIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7KytuKXt2YXIgYT1pW25dO3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU9d2luZG93W2ErIlJlcXVlc3RBbmltYXRpb25GcmFtZSJdLHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZT13aW5kb3dbYSsiQ2FuY2VsQW5pbWF0aW9uRnJhbWUiXXx8d2luZG93W2ErIkNhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZSJdLHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSx3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWU9d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lfWlmKC9pUChhZHxob25lfG9kKS4qT1MgNi8udGVzdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCl8fCF3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHwhd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKXt2YXIgbD0wO3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU9ZnVuY3Rpb24oZSl7dmFyIHQ9RGF0ZS5ub3coKSxzPU1hdGgubWF4KGwrMTYsdCk7cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlKGw9cyl9LHMtdCl9LHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZT1jbGVhclRpbWVvdXQsd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZT13aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWV9dmFyIG89ZnVuY3Rpb24oZSl7dGhpcy5lbGVtZW50Xz1lLHRoaXMuaW5pdCgpfTt3aW5kb3cuTWF0ZXJpYWxCdXR0b249byxvLnByb3RvdHlwZS5Db25zdGFudF89e30sby5wcm90b3R5cGUuQ3NzQ2xhc3Nlc189e1JJUFBMRV9FRkZFQ1Q6Im1kbC1qcy1yaXBwbGUtZWZmZWN0IixSSVBQTEVfQ09OVEFJTkVSOiJtZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVyIixSSVBQTEU6Im1kbC1yaXBwbGUifSxvLnByb3RvdHlwZS5ibHVySGFuZGxlcl89ZnVuY3Rpb24oZSl7ZSYmdGhpcy5lbGVtZW50Xy5ibHVyKCl9LG8ucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnRfLmRpc2FibGVkPSEwfSxvLnByb3RvdHlwZS5kaXNhYmxlPW8ucHJvdG90eXBlLmRpc2FibGUsby5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50Xy5kaXNhYmxlZD0hMX0sby5wcm90b3R5cGUuZW5hYmxlPW8ucHJvdG90eXBlLmVuYWJsZSxvLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7aWYodGhpcy5lbGVtZW50Xyl7aWYodGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5SSVBQTEVfRUZGRUNUKSl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2UuY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLlJJUFBMRV9DT05UQUlORVIpLHRoaXMucmlwcGxlRWxlbWVudF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMucmlwcGxlRWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLlJJUFBMRSksZS5hcHBlbmRDaGlsZCh0aGlzLnJpcHBsZUVsZW1lbnRfKSx0aGlzLmJvdW5kUmlwcGxlQmx1ckhhbmRsZXI9dGhpcy5ibHVySGFuZGxlcl8uYmluZCh0aGlzKSx0aGlzLnJpcHBsZUVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuYm91bmRSaXBwbGVCbHVySGFuZGxlciksdGhpcy5lbGVtZW50Xy5hcHBlbmRDaGlsZChlKX10aGlzLmJvdW5kQnV0dG9uQmx1ckhhbmRsZXI9dGhpcy5ibHVySGFuZGxlcl8uYmluZCh0aGlzKSx0aGlzLmVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuYm91bmRCdXR0b25CbHVySGFuZGxlciksdGhpcy5lbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLmJvdW5kQnV0dG9uQmx1ckhhbmRsZXIpfX0sby5wcm90b3R5cGUubWRsRG93bmdyYWRlXz1mdW5jdGlvbigpe3RoaXMucmlwcGxlRWxlbWVudF8mJnRoaXMucmlwcGxlRWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5ib3VuZFJpcHBsZUJsdXJIYW5kbGVyKSx0aGlzLmVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuYm91bmRCdXR0b25CbHVySGFuZGxlciksdGhpcy5lbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLmJvdW5kQnV0dG9uQmx1ckhhbmRsZXIpfSxvLnByb3RvdHlwZS5tZGxEb3duZ3JhZGU9by5wcm90b3R5cGUubWRsRG93bmdyYWRlXyxvLnByb3RvdHlwZS5tZGxEb3duZ3JhZGU9by5wcm90b3R5cGUubWRsRG93bmdyYWRlLHMucmVnaXN0ZXIoe2NvbnN0cnVjdG9yOm8sY2xhc3NBc1N0cmluZzoiTWF0ZXJpYWxCdXR0b24iLGNzc0NsYXNzOiJtZGwtanMtYnV0dG9uIix3aWRnZXQ6ITB9KTt2YXIgcj1mdW5jdGlvbihlKXt0aGlzLmVsZW1lbnRfPWUsdGhpcy5pbml0KCl9O3dpbmRvdy5NYXRlcmlhbENoZWNrYm94PXIsci5wcm90b3R5cGUuQ29uc3RhbnRfPXtUSU5ZX1RJTUVPVVQ6LjAwMX0sci5wcm90b3R5cGUuQ3NzQ2xhc3Nlc189e0lOUFVUOiJtZGwtY2hlY2tib3hfX2lucHV0IixCT1hfT1VUTElORToibWRsLWNoZWNrYm94X19ib3gtb3V0bGluZSIsRk9DVVNfSEVMUEVSOiJtZGwtY2hlY2tib3hfX2ZvY3VzLWhlbHBlciIsVElDS19PVVRMSU5FOiJtZGwtY2hlY2tib3hfX3RpY2stb3V0bGluZSIsUklQUExFX0VGRkVDVDoibWRsLWpzLXJpcHBsZS1lZmZlY3QiLFJJUFBMRV9JR05PUkVfRVZFTlRTOiJtZGwtanMtcmlwcGxlLWVmZmVjdC0taWdub3JlLWV2ZW50cyIsUklQUExFX0NPTlRBSU5FUjoibWRsLWNoZWNrYm94X19yaXBwbGUtY29udGFpbmVyIixSSVBQTEVfQ0VOVEVSOiJtZGwtcmlwcGxlLS1jZW50ZXIiLFJJUFBMRToibWRsLXJpcHBsZSIsSVNfRk9DVVNFRDoiaXMtZm9jdXNlZCIsSVNfRElTQUJMRUQ6ImlzLWRpc2FibGVkIixJU19DSEVDS0VEOiJpcy1jaGVja2VkIixJU19VUEdSQURFRDoiaXMtdXBncmFkZWQifSxyLnByb3RvdHlwZS5vbkNoYW5nZV89ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVDbGFzc2VzXygpfSxyLnByb3RvdHlwZS5vbkZvY3VzXz1mdW5jdGlvbihlKXt0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19GT0NVU0VEKX0sci5wcm90b3R5cGUub25CbHVyXz1mdW5jdGlvbihlKXt0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19GT0NVU0VEKX0sci5wcm90b3R5cGUub25Nb3VzZVVwXz1mdW5jdGlvbihlKXt0aGlzLmJsdXJfKCl9LHIucHJvdG90eXBlLnVwZGF0ZUNsYXNzZXNfPWZ1bmN0aW9uKCl7dGhpcy5jaGVja0Rpc2FibGVkKCksdGhpcy5jaGVja1RvZ2dsZVN0YXRlKCl9LHIucHJvdG90eXBlLmJsdXJfPWZ1bmN0aW9uKCl7d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aGlzLmlucHV0RWxlbWVudF8uYmx1cigpfS5iaW5kKHRoaXMpLHRoaXMuQ29uc3RhbnRfLlRJTllfVElNRU9VVCl9LHIucHJvdG90eXBlLmNoZWNrVG9nZ2xlU3RhdGU9ZnVuY3Rpb24oKXt0aGlzLmlucHV0RWxlbWVudF8uY2hlY2tlZD90aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19DSEVDS0VEKTp0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19DSEVDS0VEKX0sci5wcm90b3R5cGUuY2hlY2tUb2dnbGVTdGF0ZT1yLnByb3RvdHlwZS5jaGVja1RvZ2dsZVN0YXRlLHIucHJvdG90eXBlLmNoZWNrRGlzYWJsZWQ9ZnVuY3Rpb24oKXt0aGlzLmlucHV0RWxlbWVudF8uZGlzYWJsZWQ/dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfRElTQUJMRUQpOnRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNzc0NsYXNzZXNfLklTX0RJU0FCTEVEKX0sci5wcm90b3R5cGUuY2hlY2tEaXNhYmxlZD1yLnByb3RvdHlwZS5jaGVja0Rpc2FibGVkLHIucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLmlucHV0RWxlbWVudF8uZGlzYWJsZWQ9ITAsdGhpcy51cGRhdGVDbGFzc2VzXygpfSxyLnByb3RvdHlwZS5kaXNhYmxlPXIucHJvdG90eXBlLmRpc2FibGUsci5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5pbnB1dEVsZW1lbnRfLmRpc2FibGVkPSExLHRoaXMudXBkYXRlQ2xhc3Nlc18oKX0sci5wcm90b3R5cGUuZW5hYmxlPXIucHJvdG90eXBlLmVuYWJsZSxyLnByb3RvdHlwZS5jaGVjaz1mdW5jdGlvbigpe3RoaXMuaW5wdXRFbGVtZW50Xy5jaGVja2VkPSEwLHRoaXMudXBkYXRlQ2xhc3Nlc18oKX0sci5wcm90b3R5cGUuY2hlY2s9ci5wcm90b3R5cGUuY2hlY2ssci5wcm90b3R5cGUudW5jaGVjaz1mdW5jdGlvbigpe3RoaXMuaW5wdXRFbGVtZW50Xy5jaGVja2VkPSExLHRoaXMudXBkYXRlQ2xhc3Nlc18oKX0sci5wcm90b3R5cGUudW5jaGVjaz1yLnByb3RvdHlwZS51bmNoZWNrLHIucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmVsZW1lbnRfKXt0aGlzLmlucHV0RWxlbWVudF89dGhpcy5lbGVtZW50Xy5xdWVyeVNlbGVjdG9yKCIuIit0aGlzLkNzc0NsYXNzZXNfLklOUFVUKTt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7ZS5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uQk9YX09VVExJTkUpO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTt0LmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5GT0NVU19IRUxQRVIpO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtpZihzLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5USUNLX09VVExJTkUpLGUuYXBwZW5kQ2hpbGQocyksdGhpcy5lbGVtZW50Xy5hcHBlbmRDaGlsZCh0KSx0aGlzLmVsZW1lbnRfLmFwcGVuZENoaWxkKGUpLHRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uUklQUExFX0VGRkVDVCkpe3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLlJJUFBMRV9JR05PUkVfRVZFTlRTKSx0aGlzLnJpcHBsZUNvbnRhaW5lckVsZW1lbnRfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSx0aGlzLnJpcHBsZUNvbnRhaW5lckVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5SSVBQTEVfQ09OVEFJTkVSKSx0aGlzLnJpcHBsZUNvbnRhaW5lckVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5SSVBQTEVfRUZGRUNUKSx0aGlzLnJpcHBsZUNvbnRhaW5lckVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5SSVBQTEVfQ0VOVEVSKSx0aGlzLmJvdW5kUmlwcGxlTW91c2VVcD10aGlzLm9uTW91c2VVcF8uYmluZCh0aGlzKSx0aGlzLnJpcHBsZUNvbnRhaW5lckVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuYm91bmRSaXBwbGVNb3VzZVVwKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7aS5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uUklQUExFKSx0aGlzLnJpcHBsZUNvbnRhaW5lckVsZW1lbnRfLmFwcGVuZENoaWxkKGkpLHRoaXMuZWxlbWVudF8uYXBwZW5kQ2hpbGQodGhpcy5yaXBwbGVDb250YWluZXJFbGVtZW50Xyl9dGhpcy5ib3VuZElucHV0T25DaGFuZ2U9dGhpcy5vbkNoYW5nZV8uYmluZCh0aGlzKSx0aGlzLmJvdW5kSW5wdXRPbkZvY3VzPXRoaXMub25Gb2N1c18uYmluZCh0aGlzKSx0aGlzLmJvdW5kSW5wdXRPbkJsdXI9dGhpcy5vbkJsdXJfLmJpbmQodGhpcyksdGhpcy5ib3VuZEVsZW1lbnRNb3VzZVVwPXRoaXMub25Nb3VzZVVwXy5iaW5kKHRoaXMpLHRoaXMuaW5wdXRFbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMuYm91bmRJbnB1dE9uQ2hhbmdlKSx0aGlzLmlucHV0RWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuYm91bmRJbnB1dE9uRm9jdXMpLHRoaXMuaW5wdXRFbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLmJvdW5kSW5wdXRPbkJsdXIpLHRoaXMuZWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5ib3VuZEVsZW1lbnRNb3VzZVVwKSx0aGlzLnVwZGF0ZUNsYXNzZXNfKCksdGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfVVBHUkFERUQpfX0sci5wcm90b3R5cGUubWRsRG93bmdyYWRlXz1mdW5jdGlvbigpe3RoaXMucmlwcGxlQ29udGFpbmVyRWxlbWVudF8mJnRoaXMucmlwcGxlQ29udGFpbmVyRWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5ib3VuZFJpcHBsZU1vdXNlVXApLHRoaXMuaW5wdXRFbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMuYm91bmRJbnB1dE9uQ2hhbmdlKSx0aGlzLmlucHV0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuYm91bmRJbnB1dE9uRm9jdXMpLHRoaXMuaW5wdXRFbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLmJvdW5kSW5wdXRPbkJsdXIpLHRoaXMuZWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5ib3VuZEVsZW1lbnRNb3VzZVVwKX0sci5wcm90b3R5cGUubWRsRG93bmdyYWRlPXIucHJvdG90eXBlLm1kbERvd25ncmFkZV8sci5wcm90b3R5cGUubWRsRG93bmdyYWRlPXIucHJvdG90eXBlLm1kbERvd25ncmFkZSxzLnJlZ2lzdGVyKHtjb25zdHJ1Y3RvcjpyLGNsYXNzQXNTdHJpbmc6Ik1hdGVyaWFsQ2hlY2tib3giLGNzc0NsYXNzOiJtZGwtanMtY2hlY2tib3giLHdpZGdldDohMH0pO3ZhciBkPWZ1bmN0aW9uKGUpe3RoaXMuZWxlbWVudF89ZSx0aGlzLmluaXQoKX07d2luZG93Lk1hdGVyaWFsSWNvblRvZ2dsZT1kLGQucHJvdG90eXBlLkNvbnN0YW50Xz17VElOWV9USU1FT1VUOi4wMDF9LGQucHJvdG90eXBlLkNzc0NsYXNzZXNfPXtJTlBVVDoibWRsLWljb24tdG9nZ2xlX19pbnB1dCIsSlNfUklQUExFX0VGRkVDVDoibWRsLWpzLXJpcHBsZS1lZmZlY3QiLFJJUFBMRV9JR05PUkVfRVZFTlRTOiJtZGwtanMtcmlwcGxlLWVmZmVjdC0taWdub3JlLWV2ZW50cyIsUklQUExFX0NPTlRBSU5FUjoibWRsLWljb24tdG9nZ2xlX19yaXBwbGUtY29udGFpbmVyIixSSVBQTEVfQ0VOVEVSOiJtZGwtcmlwcGxlLS1jZW50ZXIiLFJJUFBMRToibWRsLXJpcHBsZSIsSVNfRk9DVVNFRDoiaXMtZm9jdXNlZCIsSVNfRElTQUJMRUQ6ImlzLWRpc2FibGVkIixJU19DSEVDS0VEOiJpcy1jaGVja2VkIn0sZC5wcm90b3R5cGUub25DaGFuZ2VfPWZ1bmN0aW9uKGUpe3RoaXMudXBkYXRlQ2xhc3Nlc18oKX0sZC5wcm90b3R5cGUub25Gb2N1c189ZnVuY3Rpb24oZSl7dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfRk9DVVNFRCl9LGQucHJvdG90eXBlLm9uQmx1cl89ZnVuY3Rpb24oZSl7dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfRk9DVVNFRCl9LGQucHJvdG90eXBlLm9uTW91c2VVcF89ZnVuY3Rpb24oZSl7dGhpcy5ibHVyXygpfSxkLnByb3RvdHlwZS51cGRhdGVDbGFzc2VzXz1mdW5jdGlvbigpe3RoaXMuY2hlY2tEaXNhYmxlZCgpLHRoaXMuY2hlY2tUb2dnbGVTdGF0ZSgpfSxkLnByb3RvdHlwZS5ibHVyXz1mdW5jdGlvbigpe3dpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhpcy5pbnB1dEVsZW1lbnRfLmJsdXIoKX0uYmluZCh0aGlzKSx0aGlzLkNvbnN0YW50Xy5USU5ZX1RJTUVPVVQpfSxkLnByb3RvdHlwZS5jaGVja1RvZ2dsZVN0YXRlPWZ1bmN0aW9uKCl7dGhpcy5pbnB1dEVsZW1lbnRfLmNoZWNrZWQ/dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfQ0hFQ0tFRCk6dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfQ0hFQ0tFRCl9LGQucHJvdG90eXBlLmNoZWNrVG9nZ2xlU3RhdGU9ZC5wcm90b3R5cGUuY2hlY2tUb2dnbGVTdGF0ZSxkLnByb3RvdHlwZS5jaGVja0Rpc2FibGVkPWZ1bmN0aW9uKCl7dGhpcy5pbnB1dEVsZW1lbnRfLmRpc2FibGVkP3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklTX0RJU0FCTEVEKTp0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19ESVNBQkxFRCl9LGQucHJvdG90eXBlLmNoZWNrRGlzYWJsZWQ9ZC5wcm90b3R5cGUuY2hlY2tEaXNhYmxlZCxkLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5pbnB1dEVsZW1lbnRfLmRpc2FibGVkPSEwLHRoaXMudXBkYXRlQ2xhc3Nlc18oKX0sZC5wcm90b3R5cGUuZGlzYWJsZT1kLnByb3RvdHlwZS5kaXNhYmxlLGQucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuaW5wdXRFbGVtZW50Xy5kaXNhYmxlZD0hMSx0aGlzLnVwZGF0ZUNsYXNzZXNfKCl9LGQucHJvdG90eXBlLmVuYWJsZT1kLnByb3RvdHlwZS5lbmFibGUsZC5wcm90b3R5cGUuY2hlY2s9ZnVuY3Rpb24oKXt0aGlzLmlucHV0RWxlbWVudF8uY2hlY2tlZD0hMCx0aGlzLnVwZGF0ZUNsYXNzZXNfKCl9LGQucHJvdG90eXBlLmNoZWNrPWQucHJvdG90eXBlLmNoZWNrLGQucHJvdG90eXBlLnVuY2hlY2s9ZnVuY3Rpb24oKXt0aGlzLmlucHV0RWxlbWVudF8uY2hlY2tlZD0hMSx0aGlzLnVwZGF0ZUNsYXNzZXNfKCl9LGQucHJvdG90eXBlLnVuY2hlY2s9ZC5wcm90b3R5cGUudW5jaGVjayxkLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7aWYodGhpcy5lbGVtZW50Xyl7aWYodGhpcy5pbnB1dEVsZW1lbnRfPXRoaXMuZWxlbWVudF8ucXVlcnlTZWxlY3RvcigiLiIrdGhpcy5Dc3NDbGFzc2VzXy5JTlBVVCksdGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5KU19SSVBQTEVfRUZGRUNUKSl7dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uUklQUExFX0lHTk9SRV9FVkVOVFMpLHRoaXMucmlwcGxlQ29udGFpbmVyRWxlbWVudF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMucmlwcGxlQ29udGFpbmVyRWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLlJJUFBMRV9DT05UQUlORVIpLHRoaXMucmlwcGxlQ29udGFpbmVyRWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLkpTX1JJUFBMRV9FRkZFQ1QpLHRoaXMucmlwcGxlQ29udGFpbmVyRWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLlJJUFBMRV9DRU5URVIpLHRoaXMuYm91bmRSaXBwbGVNb3VzZVVwPXRoaXMub25Nb3VzZVVwXy5iaW5kKHRoaXMpLHRoaXMucmlwcGxlQ29udGFpbmVyRWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5ib3VuZFJpcHBsZU1vdXNlVXApO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtlLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5SSVBQTEUpLHRoaXMucmlwcGxlQ29udGFpbmVyRWxlbWVudF8uYXBwZW5kQ2hpbGQoZSksdGhpcy5lbGVtZW50Xy5hcHBlbmRDaGlsZCh0aGlzLnJpcHBsZUNvbnRhaW5lckVsZW1lbnRfKX10aGlzLmJvdW5kSW5wdXRPbkNoYW5nZT10aGlzLm9uQ2hhbmdlXy5iaW5kKHRoaXMpLHRoaXMuYm91bmRJbnB1dE9uRm9jdXM9dGhpcy5vbkZvY3VzXy5iaW5kKHRoaXMpLHRoaXMuYm91bmRJbnB1dE9uQmx1cj10aGlzLm9uQmx1cl8uYmluZCh0aGlzKSx0aGlzLmJvdW5kRWxlbWVudE9uTW91c2VVcD10aGlzLm9uTW91c2VVcF8uYmluZCh0aGlzKSx0aGlzLmlucHV0RWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLmJvdW5kSW5wdXRPbkNoYW5nZSksdGhpcy5pbnB1dEVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLmJvdW5kSW5wdXRPbkZvY3VzKSx0aGlzLmlucHV0RWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5ib3VuZElucHV0T25CbHVyKSx0aGlzLmVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuYm91bmRFbGVtZW50T25Nb3VzZVVwKSx0aGlzLnVwZGF0ZUNsYXNzZXNfKCksdGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuYWRkKCJpcy11cGdyYWRlZCIpfX0sZC5wcm90b3R5cGUubWRsRG93bmdyYWRlXz1mdW5jdGlvbigpe3RoaXMucmlwcGxlQ29udGFpbmVyRWxlbWVudF8mJnRoaXMucmlwcGxlQ29udGFpbmVyRWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5ib3VuZFJpcHBsZU1vdXNlVXApLHRoaXMuaW5wdXRFbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMuYm91bmRJbnB1dE9uQ2hhbmdlKSx0aGlzLmlucHV0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuYm91bmRJbnB1dE9uRm9jdXMpLHRoaXMuaW5wdXRFbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLmJvdW5kSW5wdXRPbkJsdXIpLHRoaXMuZWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5ib3VuZEVsZW1lbnRPbk1vdXNlVXApfSxkLnByb3RvdHlwZS5tZGxEb3duZ3JhZGU9ZC5wcm90b3R5cGUubWRsRG93bmdyYWRlXyxkLnByb3RvdHlwZS5tZGxEb3duZ3JhZGU9ZC5wcm90b3R5cGUubWRsRG93bmdyYWRlLHMucmVnaXN0ZXIoe2NvbnN0cnVjdG9yOmQsY2xhc3NBc1N0cmluZzoiTWF0ZXJpYWxJY29uVG9nZ2xlIixjc3NDbGFzczoibWRsLWpzLWljb24tdG9nZ2xlIix3aWRnZXQ6ITB9KTt2YXIgXz1mdW5jdGlvbihlKXt0aGlzLmVsZW1lbnRfPWUsdGhpcy5pbml0KCl9O3dpbmRvdy5NYXRlcmlhbE1lbnU9XyxfLnByb3RvdHlwZS5Db25zdGFudF89e1RSQU5TSVRJT05fRFVSQVRJT05fU0VDT05EUzouMyxUUkFOU0lUSU9OX0RVUkFUSU9OX0ZSQUNUSU9OOi44LENMT1NFX1RJTUVPVVQ6MTUwfSxfLnByb3RvdHlwZS5LZXljb2Rlc189e0VOVEVSOjEzLEVTQ0FQRToyNyxTUEFDRTozMixVUF9BUlJPVzozOCxET1dOX0FSUk9XOjQwfSxfLnByb3RvdHlwZS5Dc3NDbGFzc2VzXz17Q09OVEFJTkVSOiJtZGwtbWVudV9fY29udGFpbmVyIixPVVRMSU5FOiJtZGwtbWVudV9fb3V0bGluZSIsSVRFTToibWRsLW1lbnVfX2l0ZW0iLElURU1fUklQUExFX0NPTlRBSU5FUjoibWRsLW1lbnVfX2l0ZW0tcmlwcGxlLWNvbnRhaW5lciIsUklQUExFX0VGRkVDVDoibWRsLWpzLXJpcHBsZS1lZmZlY3QiLFJJUFBMRV9JR05PUkVfRVZFTlRTOiJtZGwtanMtcmlwcGxlLWVmZmVjdC0taWdub3JlLWV2ZW50cyIsUklQUExFOiJtZGwtcmlwcGxlIixJU19VUEdSQURFRDoiaXMtdXBncmFkZWQiLElTX1ZJU0lCTEU6ImlzLXZpc2libGUiLElTX0FOSU1BVElORzoiaXMtYW5pbWF0aW5nIixCT1RUT01fTEVGVDoibWRsLW1lbnUtLWJvdHRvbS1sZWZ0IixCT1RUT01fUklHSFQ6Im1kbC1tZW51LS1ib3R0b20tcmlnaHQiLFRPUF9MRUZUOiJtZGwtbWVudS0tdG9wLWxlZnQiLFRPUF9SSUdIVDoibWRsLW1lbnUtLXRvcC1yaWdodCIsVU5BTElHTkVEOiJtZGwtbWVudS0tdW5hbGlnbmVkIn0sXy5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe2lmKHRoaXMuZWxlbWVudF8pe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLkNPTlRBSU5FUiksdGhpcy5lbGVtZW50Xy5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShlLHRoaXMuZWxlbWVudF8pLHRoaXMuZWxlbWVudF8ucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRfKSxlLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudF8pLHRoaXMuY29udGFpbmVyXz1lO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLk9VVExJTkUpLHRoaXMub3V0bGluZV89dCxlLmluc2VydEJlZm9yZSh0LHRoaXMuZWxlbWVudF8pO3ZhciBzPXRoaXMuZWxlbWVudF8uZ2V0QXR0cmlidXRlKCJmb3IiKSxpPW51bGw7cyYmKGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocyksaSYmKHRoaXMuZm9yRWxlbWVudF89aSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhhbmRsZUZvckNsaWNrXy5iaW5kKHRoaXMpKSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuaGFuZGxlRm9yS2V5Ym9hcmRFdmVudF8uYmluZCh0aGlzKSkpKTt2YXIgbj10aGlzLmVsZW1lbnRfLnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK3RoaXMuQ3NzQ2xhc3Nlc18uSVRFTSk7dGhpcy5ib3VuZEl0ZW1LZXlkb3duXz10aGlzLmhhbmRsZUl0ZW1LZXlib2FyZEV2ZW50Xy5iaW5kKHRoaXMpLHRoaXMuYm91bmRJdGVtQ2xpY2tfPXRoaXMuaGFuZGxlSXRlbUNsaWNrXy5iaW5kKHRoaXMpO2Zvcih2YXIgYT0wO2E8bi5sZW5ndGg7YSsrKW5bYV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuYm91bmRJdGVtQ2xpY2tfKSxuW2FdLnRhYkluZGV4PSItMSIsblthXS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmJvdW5kSXRlbUtleWRvd25fKTtpZih0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLkNzc0NsYXNzZXNfLlJJUFBMRV9FRkZFQ1QpKWZvcih0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5SSVBQTEVfSUdOT1JFX0VWRU5UUyksYT0wO2E8bi5sZW5ndGg7YSsrKXt2YXIgbD1uW2FdLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO28uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklURU1fUklQUExFX0NPTlRBSU5FUik7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3IuY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLlJJUFBMRSksby5hcHBlbmRDaGlsZChyKSxsLmFwcGVuZENoaWxkKG8pLGwuY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLlJJUFBMRV9FRkZFQ1QpfXRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uQk9UVE9NX0xFRlQpJiZ0aGlzLm91dGxpbmVfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5CT1RUT01fTEVGVCksdGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5CT1RUT01fUklHSFQpJiZ0aGlzLm91dGxpbmVfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5CT1RUT01fUklHSFQpLHRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uVE9QX0xFRlQpJiZ0aGlzLm91dGxpbmVfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5UT1BfTEVGVCksdGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5UT1BfUklHSFQpJiZ0aGlzLm91dGxpbmVfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5UT1BfUklHSFQpLHRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uVU5BTElHTkVEKSYmdGhpcy5vdXRsaW5lXy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uVU5BTElHTkVEKSxlLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19VUEdSQURFRCl9fSxfLnByb3RvdHlwZS5oYW5kbGVGb3JDbGlja189ZnVuY3Rpb24oZSl7aWYodGhpcy5lbGVtZW50XyYmdGhpcy5mb3JFbGVtZW50Xyl7dmFyIHQ9dGhpcy5mb3JFbGVtZW50Xy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxzPXRoaXMuZm9yRWxlbWVudF8ucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLkNzc0NsYXNzZXNfLlVOQUxJR05FRCl8fCh0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLkNzc0NsYXNzZXNfLkJPVFRPTV9SSUdIVCk/KHRoaXMuY29udGFpbmVyXy5zdHlsZS5yaWdodD1zLnJpZ2h0LXQucmlnaHQrInB4Iix0aGlzLmNvbnRhaW5lcl8uc3R5bGUudG9wPXRoaXMuZm9yRWxlbWVudF8ub2Zmc2V0VG9wK3RoaXMuZm9yRWxlbWVudF8ub2Zmc2V0SGVpZ2h0KyJweCIpOnRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uVE9QX0xFRlQpPyh0aGlzLmNvbnRhaW5lcl8uc3R5bGUubGVmdD10aGlzLmZvckVsZW1lbnRfLm9mZnNldExlZnQrInB4Iix0aGlzLmNvbnRhaW5lcl8uc3R5bGUuYm90dG9tPXMuYm90dG9tLXQudG9wKyJweCIpOnRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uVE9QX1JJR0hUKT8odGhpcy5jb250YWluZXJfLnN0eWxlLnJpZ2h0PXMucmlnaHQtdC5yaWdodCsicHgiLHRoaXMuY29udGFpbmVyXy5zdHlsZS5ib3R0b209cy5ib3R0b20tdC50b3ArInB4Iik6KHRoaXMuY29udGFpbmVyXy5zdHlsZS5sZWZ0PXRoaXMuZm9yRWxlbWVudF8ub2Zmc2V0TGVmdCsicHgiLHRoaXMuY29udGFpbmVyXy5zdHlsZS50b3A9dGhpcy5mb3JFbGVtZW50Xy5vZmZzZXRUb3ArdGhpcy5mb3JFbGVtZW50Xy5vZmZzZXRIZWlnaHQrInB4IikpfXRoaXMudG9nZ2xlKGUpfSxfLnByb3RvdHlwZS5oYW5kbGVGb3JLZXlib2FyZEV2ZW50Xz1mdW5jdGlvbihlKXtpZih0aGlzLmVsZW1lbnRfJiZ0aGlzLmNvbnRhaW5lcl8mJnRoaXMuZm9yRWxlbWVudF8pe3ZhciB0PXRoaXMuZWxlbWVudF8ucXVlcnlTZWxlY3RvckFsbCgiLiIrdGhpcy5Dc3NDbGFzc2VzXy5JVEVNKyI6bm90KFtkaXNhYmxlZF0pIik7dCYmdC5sZW5ndGg+MCYmdGhpcy5jb250YWluZXJfLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLkNzc0NsYXNzZXNfLklTX1ZJU0lCTEUpJiYoZS5rZXlDb2RlPT09dGhpcy5LZXljb2Rlc18uVVBfQVJST1c/KGUucHJldmVudERlZmF1bHQoKSx0W3QubGVuZ3RoLTFdLmZvY3VzKCkpOmUua2V5Q29kZT09PXRoaXMuS2V5Y29kZXNfLkRPV05fQVJST1cmJihlLnByZXZlbnREZWZhdWx0KCksdFswXS5mb2N1cygpKSl9fSxfLnByb3RvdHlwZS5oYW5kbGVJdGVtS2V5Ym9hcmRFdmVudF89ZnVuY3Rpb24oZSl7aWYodGhpcy5lbGVtZW50XyYmdGhpcy5jb250YWluZXJfKXt2YXIgdD10aGlzLmVsZW1lbnRfLnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK3RoaXMuQ3NzQ2xhc3Nlc18uSVRFTSsiOm5vdChbZGlzYWJsZWRdKSIpO2lmKHQmJnQubGVuZ3RoPjAmJnRoaXMuY29udGFpbmVyXy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5JU19WSVNJQkxFKSl7dmFyIHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCkuaW5kZXhPZihlLnRhcmdldCk7aWYoZS5rZXlDb2RlPT09dGhpcy5LZXljb2Rlc18uVVBfQVJST1cpZS5wcmV2ZW50RGVmYXVsdCgpLHM+MD90W3MtMV0uZm9jdXMoKTp0W3QubGVuZ3RoLTFdLmZvY3VzKCk7ZWxzZSBpZihlLmtleUNvZGU9PT10aGlzLktleWNvZGVzXy5ET1dOX0FSUk9XKWUucHJldmVudERlZmF1bHQoKSx0Lmxlbmd0aD5zKzE/dFtzKzFdLmZvY3VzKCk6dFswXS5mb2N1cygpO2Vsc2UgaWYoZS5rZXlDb2RlPT09dGhpcy5LZXljb2Rlc18uU1BBQ0V8fGUua2V5Q29kZT09PXRoaXMuS2V5Y29kZXNfLkVOVEVSKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIGk9bmV3IE1vdXNlRXZlbnQoIm1vdXNlZG93biIpO2UudGFyZ2V0LmRpc3BhdGNoRXZlbnQoaSksaT1uZXcgTW91c2VFdmVudCgibW91c2V1cCIpLGUudGFyZ2V0LmRpc3BhdGNoRXZlbnQoaSksZS50YXJnZXQuY2xpY2soKX1lbHNlIGUua2V5Q29kZT09PXRoaXMuS2V5Y29kZXNfLkVTQ0FQRSYmKGUucHJldmVudERlZmF1bHQoKSx0aGlzLmhpZGUoKSl9fX0sXy5wcm90b3R5cGUuaGFuZGxlSXRlbUNsaWNrXz1mdW5jdGlvbihlKXtlLnRhcmdldC5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIik/ZS5zdG9wUHJvcGFnYXRpb24oKToodGhpcy5jbG9zaW5nXz0hMCx3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbihlKXt0aGlzLmhpZGUoKSx0aGlzLmNsb3NpbmdfPSExfS5iaW5kKHRoaXMpLHRoaXMuQ29uc3RhbnRfLkNMT1NFX1RJTUVPVVQpKX0sXy5wcm90b3R5cGUuYXBwbHlDbGlwXz1mdW5jdGlvbihlLHQpe3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uVU5BTElHTkVEKT90aGlzLmVsZW1lbnRfLnN0eWxlLmNsaXA9IiI6dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5CT1RUT01fUklHSFQpP3RoaXMuZWxlbWVudF8uc3R5bGUuY2xpcD0icmVjdCgwICIrdCsicHggMCAiK3QrInB4KSI6dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5UT1BfTEVGVCk/dGhpcy5lbGVtZW50Xy5zdHlsZS5jbGlwPSJyZWN0KCIrZSsicHggMCAiK2UrInB4IDApIjp0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLkNzc0NsYXNzZXNfLlRPUF9SSUdIVCk/dGhpcy5lbGVtZW50Xy5zdHlsZS5jbGlwPSJyZWN0KCIrZSsicHggIit0KyJweCAiK2UrInB4ICIrdCsicHgpIjp0aGlzLmVsZW1lbnRfLnN0eWxlLmNsaXA9IiJ9LF8ucHJvdG90eXBlLmFkZEFuaW1hdGlvbkVuZExpc3RlbmVyXz1mdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixlKSx0aGlzLmVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLGUpLHRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNzc0NsYXNzZXNfLklTX0FOSU1BVElORyl9LmJpbmQodGhpcyk7dGhpcy5lbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIixlKSx0aGlzLmVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLGUpfSxfLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKGUpe2lmKHRoaXMuZWxlbWVudF8mJnRoaXMuY29udGFpbmVyXyYmdGhpcy5vdXRsaW5lXyl7dmFyIHQ9dGhpcy5lbGVtZW50Xy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQscz10aGlzLmVsZW1lbnRfLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO3RoaXMuY29udGFpbmVyXy5zdHlsZS53aWR0aD1zKyJweCIsdGhpcy5jb250YWluZXJfLnN0eWxlLmhlaWdodD10KyJweCIsdGhpcy5vdXRsaW5lXy5zdHlsZS53aWR0aD1zKyJweCIsdGhpcy5vdXRsaW5lXy5zdHlsZS5oZWlnaHQ9dCsicHgiO2Zvcih2YXIgaT10aGlzLkNvbnN0YW50Xy5UUkFOU0lUSU9OX0RVUkFUSU9OX1NFQ09ORFMqdGhpcy5Db25zdGFudF8uVFJBTlNJVElPTl9EVVJBVElPTl9GUkFDVElPTixuPXRoaXMuZWxlbWVudF8ucXVlcnlTZWxlY3RvckFsbCgiLiIrdGhpcy5Dc3NDbGFzc2VzXy5JVEVNKSxhPTA7YTxuLmxlbmd0aDthKyspe3ZhciBsPW51bGw7bD10aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLkNzc0NsYXNzZXNfLlRPUF9MRUZUKXx8dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5UT1BfUklHSFQpPyh0LW5bYV0ub2Zmc2V0VG9wLW5bYV0ub2Zmc2V0SGVpZ2h0KS90KmkrInMiOm5bYV0ub2Zmc2V0VG9wL3QqaSsicyIsblthXS5zdHlsZS50cmFuc2l0aW9uRGVsYXk9bH10aGlzLmFwcGx5Q2xpcF8odCxzKSx3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfQU5JTUFUSU5HKSx0aGlzLmVsZW1lbnRfLnN0eWxlLmNsaXA9InJlY3QoMCAiK3MrInB4ICIrdCsicHggMCkiLHRoaXMuY29udGFpbmVyXy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfVklTSUJMRSl9LmJpbmQodGhpcykpLHRoaXMuYWRkQW5pbWF0aW9uRW5kTGlzdGVuZXJfKCk7dmFyIG89ZnVuY3Rpb24odCl7dD09PWV8fHRoaXMuY2xvc2luZ198fHQudGFyZ2V0LnBhcmVudE5vZGU9PT10aGlzLmVsZW1lbnRffHwoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLG8pLHRoaXMuaGlkZSgpKX0uYmluZCh0aGlzKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbyl9fSxfLnByb3RvdHlwZS5zaG93PV8ucHJvdG90eXBlLnNob3csXy5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbigpe2lmKHRoaXMuZWxlbWVudF8mJnRoaXMuY29udGFpbmVyXyYmdGhpcy5vdXRsaW5lXyl7Zm9yKHZhciBlPXRoaXMuZWxlbWVudF8ucXVlcnlTZWxlY3RvckFsbCgiLiIrdGhpcy5Dc3NDbGFzc2VzXy5JVEVNKSx0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS5zdHlsZS50cmFuc2l0aW9uRGVsYXk9bnVsbDt2YXIgcz10aGlzLmVsZW1lbnRfLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9cy5oZWlnaHQsbj1zLndpZHRoO3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklTX0FOSU1BVElORyksdGhpcy5hcHBseUNsaXBfKGksbiksdGhpcy5jb250YWluZXJfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19WSVNJQkxFKSx0aGlzLmFkZEFuaW1hdGlvbkVuZExpc3RlbmVyXygpfX0sXy5wcm90b3R5cGUuaGlkZT1fLnByb3RvdHlwZS5oaWRlLF8ucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbihlKXt0aGlzLmNvbnRhaW5lcl8uY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfVklTSUJMRSk/dGhpcy5oaWRlKCk6dGhpcy5zaG93KGUpfSxfLnByb3RvdHlwZS50b2dnbGU9Xy5wcm90b3R5cGUudG9nZ2xlLF8ucHJvdG90eXBlLm1kbERvd25ncmFkZV89ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5lbGVtZW50Xy5xdWVyeVNlbGVjdG9yQWxsKCIuIit0aGlzLkNzc0NsYXNzZXNfLklURU0pLHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmJvdW5kSXRlbUNsaWNrXyksZVt0XS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLmJvdW5kSXRlbUtleWRvd25fKX0sXy5wcm90b3R5cGUubWRsRG93bmdyYWRlPV8ucHJvdG90eXBlLm1kbERvd25ncmFkZV8sXy5wcm90b3R5cGUubWRsRG93bmdyYWRlPV8ucHJvdG90eXBlLm1kbERvd25ncmFkZSxzLnJlZ2lzdGVyKHtjb25zdHJ1Y3RvcjpfLGNsYXNzQXNTdHJpbmc6Ik1hdGVyaWFsTWVudSIsY3NzQ2xhc3M6Im1kbC1qcy1tZW51Iix3aWRnZXQ6ITB9KTt2YXIgaD1mdW5jdGlvbihlKXt0aGlzLmVsZW1lbnRfPWUsdGhpcy5pbml0KCl9O3dpbmRvdy5NYXRlcmlhbFByb2dyZXNzPWgsaC5wcm90b3R5cGUuQ29uc3RhbnRfPXt9LGgucHJvdG90eXBlLkNzc0NsYXNzZXNfPXtJTkRFVEVSTUlOQVRFX0NMQVNTOiJtZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUifSxoLnByb3RvdHlwZS5zZXRQcm9ncmVzcz1mdW5jdGlvbihlKXt0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLkNzc0NsYXNzZXNfLklOREVURVJNSU5BVEVfQ0xBU1MpfHwodGhpcy5wcm9ncmVzc2Jhcl8uc3R5bGUud2lkdGg9ZSsiJSIpfSxoLnByb3RvdHlwZS5zZXRQcm9ncmVzcz1oLnByb3RvdHlwZS5zZXRQcm9ncmVzcyxoLnByb3RvdHlwZS5zZXRCdWZmZXI9ZnVuY3Rpb24oZSl7dGhpcy5idWZmZXJiYXJfLnN0eWxlLndpZHRoPWUrIiUiLHRoaXMuYXV4YmFyXy5zdHlsZS53aWR0aD0xMDAtZSsiJSJ9LGgucHJvdG90eXBlLnNldEJ1ZmZlcj1oLnByb3RvdHlwZS5zZXRCdWZmZXIsaC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe2lmKHRoaXMuZWxlbWVudF8pe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NOYW1lPSJwcm9ncmVzc2JhciBiYXIgYmFyMSIsdGhpcy5lbGVtZW50Xy5hcHBlbmRDaGlsZChlKSx0aGlzLnByb2dyZXNzYmFyXz1lLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5jbGFzc05hbWU9ImJ1ZmZlcmJhciBiYXIgYmFyMiIsdGhpcy5lbGVtZW50Xy5hcHBlbmRDaGlsZChlKSx0aGlzLmJ1ZmZlcmJhcl89ZSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuY2xhc3NOYW1lPSJhdXhiYXIgYmFyIGJhcjMiLHRoaXMuZWxlbWVudF8uYXBwZW5kQ2hpbGQoZSksdGhpcy5hdXhiYXJfPWUsdGhpcy5wcm9ncmVzc2Jhcl8uc3R5bGUud2lkdGg9IjAlIix0aGlzLmJ1ZmZlcmJhcl8uc3R5bGUud2lkdGg9IjEwMCUiLHRoaXMuYXV4YmFyXy5zdHlsZS53aWR0aD0iMCUiLHRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCgiaXMtdXBncmFkZWQiKX19LGgucHJvdG90eXBlLm1kbERvd25ncmFkZV89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuZWxlbWVudF8uZmlyc3RDaGlsZDspdGhpcy5lbGVtZW50Xy5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRfLmZpcnN0Q2hpbGQpfSxoLnByb3RvdHlwZS5tZGxEb3duZ3JhZGU9aC5wcm90b3R5cGUubWRsRG93bmdyYWRlXyxoLnByb3RvdHlwZS5tZGxEb3duZ3JhZGU9aC5wcm90b3R5cGUubWRsRG93bmdyYWRlLHMucmVnaXN0ZXIoe2NvbnN0cnVjdG9yOmgsY2xhc3NBc1N0cmluZzoiTWF0ZXJpYWxQcm9ncmVzcyIsY3NzQ2xhc3M6Im1kbC1qcy1wcm9ncmVzcyIsd2lkZ2V0OiEwfSk7dmFyIHA9ZnVuY3Rpb24oZSl7dGhpcy5lbGVtZW50Xz1lLHRoaXMuaW5pdCgpfTt3aW5kb3cuTWF0ZXJpYWxSYWRpbz1wLHAucHJvdG90eXBlLkNvbnN0YW50Xz17VElOWV9USU1FT1VUOi4wMDF9LHAucHJvdG90eXBlLkNzc0NsYXNzZXNfPXtJU19GT0NVU0VEOiJpcy1mb2N1c2VkIixJU19ESVNBQkxFRDoiaXMtZGlzYWJsZWQiLElTX0NIRUNLRUQ6ImlzLWNoZWNrZWQiLElTX1VQR1JBREVEOiJpcy11cGdyYWRlZCIsSlNfUkFESU86Im1kbC1qcy1yYWRpbyIsUkFESU9fQlROOiJtZGwtcmFkaW9fX2J1dHRvbiIsUkFESU9fT1VURVJfQ0lSQ0xFOiJtZGwtcmFkaW9fX291dGVyLWNpcmNsZSIsUkFESU9fSU5ORVJfQ0lSQ0xFOiJtZGwtcmFkaW9fX2lubmVyLWNpcmNsZSIsUklQUExFX0VGRkVDVDoibWRsLWpzLXJpcHBsZS1lZmZlY3QiLFJJUFBMRV9JR05PUkVfRVZFTlRTOiJtZGwtanMtcmlwcGxlLWVmZmVjdC0taWdub3JlLWV2ZW50cyIsUklQUExFX0NPTlRBSU5FUjoibWRsLXJhZGlvX19yaXBwbGUtY29udGFpbmVyIixSSVBQTEVfQ0VOVEVSOiJtZGwtcmlwcGxlLS1jZW50ZXIiLFJJUFBMRToibWRsLXJpcHBsZSJ9LHAucHJvdG90eXBlLm9uQ2hhbmdlXz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh0aGlzLkNzc0NsYXNzZXNfLkpTX1JBRElPKSxzPTA7czx0Lmxlbmd0aDtzKyspe3ZhciBpPXRbc10ucXVlcnlTZWxlY3RvcigiLiIrdGhpcy5Dc3NDbGFzc2VzXy5SQURJT19CVE4pO2kuZ2V0QXR0cmlidXRlKCJuYW1lIik9PT10aGlzLmJ0bkVsZW1lbnRfLmdldEF0dHJpYnV0ZSgibmFtZSIpJiZ0W3NdLk1hdGVyaWFsUmFkaW8udXBkYXRlQ2xhc3Nlc18oKX19LHAucHJvdG90eXBlLm9uRm9jdXNfPWZ1bmN0aW9uKGUpe3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklTX0ZPQ1VTRUQpfSxwLnByb3RvdHlwZS5vbkJsdXJfPWZ1bmN0aW9uKGUpe3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNzc0NsYXNzZXNfLklTX0ZPQ1VTRUQpfSxwLnByb3RvdHlwZS5vbk1vdXNldXBfPWZ1bmN0aW9uKGUpe3RoaXMuYmx1cl8oKX0scC5wcm90b3R5cGUudXBkYXRlQ2xhc3Nlc189ZnVuY3Rpb24oKXt0aGlzLmNoZWNrRGlzYWJsZWQoKSx0aGlzLmNoZWNrVG9nZ2xlU3RhdGUoKX0scC5wcm90b3R5cGUuYmx1cl89ZnVuY3Rpb24oKXt3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe3RoaXMuYnRuRWxlbWVudF8uYmx1cigpfS5iaW5kKHRoaXMpLHRoaXMuQ29uc3RhbnRfLlRJTllfVElNRU9VVCl9LHAucHJvdG90eXBlLmNoZWNrRGlzYWJsZWQ9ZnVuY3Rpb24oKXt0aGlzLmJ0bkVsZW1lbnRfLmRpc2FibGVkP3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklTX0RJU0FCTEVEKTp0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19ESVNBQkxFRCl9LHAucHJvdG90eXBlLmNoZWNrRGlzYWJsZWQ9cC5wcm90b3R5cGUuY2hlY2tEaXNhYmxlZCxwLnByb3RvdHlwZS5jaGVja1RvZ2dsZVN0YXRlPWZ1bmN0aW9uKCl7dGhpcy5idG5FbGVtZW50Xy5jaGVja2VkP3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklTX0NIRUNLRUQpOnRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNzc0NsYXNzZXNfLklTX0NIRUNLRUQpfSxwLnByb3RvdHlwZS5jaGVja1RvZ2dsZVN0YXRlPXAucHJvdG90eXBlLmNoZWNrVG9nZ2xlU3RhdGUscC5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuYnRuRWxlbWVudF8uZGlzYWJsZWQ9ITAsdGhpcy51cGRhdGVDbGFzc2VzXygpfSxwLnByb3RvdHlwZS5kaXNhYmxlPXAucHJvdG90eXBlLmRpc2FibGUscC5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5idG5FbGVtZW50Xy5kaXNhYmxlZD0hMSx0aGlzLnVwZGF0ZUNsYXNzZXNfKCl9LHAucHJvdG90eXBlLmVuYWJsZT1wLnByb3RvdHlwZS5lbmFibGUscC5wcm90b3R5cGUuY2hlY2s9ZnVuY3Rpb24oKXt0aGlzLmJ0bkVsZW1lbnRfLmNoZWNrZWQ9ITAsdGhpcy51cGRhdGVDbGFzc2VzXygpfSxwLnByb3RvdHlwZS5jaGVjaz1wLnByb3RvdHlwZS5jaGVjayxwLnByb3RvdHlwZS51bmNoZWNrPWZ1bmN0aW9uKCl7dGhpcy5idG5FbGVtZW50Xy5jaGVja2VkPSExLHRoaXMudXBkYXRlQ2xhc3Nlc18oKX0scC5wcm90b3R5cGUudW5jaGVjaz1wLnByb3RvdHlwZS51bmNoZWNrLHAucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmVsZW1lbnRfKXt0aGlzLmJ0bkVsZW1lbnRfPXRoaXMuZWxlbWVudF8ucXVlcnlTZWxlY3RvcigiLiIrdGhpcy5Dc3NDbGFzc2VzXy5SQURJT19CVE4pLHRoaXMuYm91bmRDaGFuZ2VIYW5kbGVyXz10aGlzLm9uQ2hhbmdlXy5iaW5kKHRoaXMpLHRoaXMuYm91bmRGb2N1c0hhbmRsZXJfPXRoaXMub25DaGFuZ2VfLmJpbmQodGhpcyksdGhpcy5ib3VuZEJsdXJIYW5kbGVyXz10aGlzLm9uQmx1cl8uYmluZCh0aGlzKSx0aGlzLmJvdW5kTW91c2VVcEhhbmRsZXJfPXRoaXMub25Nb3VzZXVwXy5iaW5kKHRoaXMpO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtlLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5SQURJT19PVVRFUl9DSVJDTEUpO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTt0LmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5SQURJT19JTk5FUl9DSVJDTEUpLHRoaXMuZWxlbWVudF8uYXBwZW5kQ2hpbGQoZSksdGhpcy5lbGVtZW50Xy5hcHBlbmRDaGlsZCh0KTt2YXIgcztpZih0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLkNzc0NsYXNzZXNfLlJJUFBMRV9FRkZFQ1QpKXt0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5SSVBQTEVfSUdOT1JFX0VWRU5UUykscz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikscy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uUklQUExFX0NPTlRBSU5FUikscy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uUklQUExFX0VGRkVDVCkscy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uUklQUExFX0NFTlRFUikscy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmJvdW5kTW91c2VVcEhhbmRsZXJfKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7aS5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uUklQUExFKSxzLmFwcGVuZENoaWxkKGkpLHRoaXMuZWxlbWVudF8uYXBwZW5kQ2hpbGQocyl9dGhpcy5idG5FbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMuYm91bmRDaGFuZ2VIYW5kbGVyXyksdGhpcy5idG5FbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5ib3VuZEZvY3VzSGFuZGxlcl8pLHRoaXMuYnRuRWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5ib3VuZEJsdXJIYW5kbGVyXyksdGhpcy5lbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmJvdW5kTW91c2VVcEhhbmRsZXJfKSx0aGlzLnVwZGF0ZUNsYXNzZXNfKCksdGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfVVBHUkFERUQpfX0scC5wcm90b3R5cGUubWRsRG93bmdyYWRlXz1mdW5jdGlvbigpe3ZhciBlPXRoaXMuZWxlbWVudF8ucXVlcnlTZWxlY3RvcigiLiIrdGhpcy5Dc3NDbGFzc2VzXy5SSVBQTEVfQ09OVEFJTkVSKTt0aGlzLmJ0bkVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5ib3VuZENoYW5nZUhhbmRsZXJfKSx0aGlzLmJ0bkVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLmJvdW5kRm9jdXNIYW5kbGVyXyksdGhpcy5idG5FbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLmJvdW5kQmx1ckhhbmRsZXJfKSx0aGlzLmVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuYm91bmRNb3VzZVVwSGFuZGxlcl8pLGUmJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuYm91bmRNb3VzZVVwSGFuZGxlcl8pLHRoaXMuZWxlbWVudF8ucmVtb3ZlQ2hpbGQoZSkpfSxwLnByb3RvdHlwZS5tZGxEb3duZ3JhZGU9cC5wcm90b3R5cGUubWRsRG93bmdyYWRlXyxwLnByb3RvdHlwZS5tZGxEb3duZ3JhZGU9cC5wcm90b3R5cGUubWRsRG93bmdyYWRlLHMucmVnaXN0ZXIoe2NvbnN0cnVjdG9yOnAsY2xhc3NBc1N0cmluZzoiTWF0ZXJpYWxSYWRpbyIsY3NzQ2xhc3M6Im1kbC1qcy1yYWRpbyIsd2lkZ2V0OiEwfSk7dmFyIGM9ZnVuY3Rpb24oZSl7dGhpcy5lbGVtZW50Xz1lLHRoaXMuaXNJRV89d2luZG93Lm5hdmlnYXRvci5tc1BvaW50ZXJFbmFibGVkLHRoaXMuaW5pdCgpfTt3aW5kb3cuTWF0ZXJpYWxTbGlkZXI9YyxjLnByb3RvdHlwZS5Db25zdGFudF89e30sYy5wcm90b3R5cGUuQ3NzQ2xhc3Nlc189e0lFX0NPTlRBSU5FUjoibWRsLXNsaWRlcl9faWUtY29udGFpbmVyIixTTElERVJfQ09OVEFJTkVSOiJtZGwtc2xpZGVyX19jb250YWluZXIiLEJBQ0tHUk9VTkRfRkxFWDoibWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4IixCQUNLR1JPVU5EX0xPV0VSOiJtZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWxvd2VyIixCQUNLR1JPVU5EX1VQUEVSOiJtZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVyIixJU19MT1dFU1RfVkFMVUU6ImlzLWxvd2VzdC12YWx1ZSIsSVNfVVBHUkFERUQ6ImlzLXVwZ3JhZGVkIn0sYy5wcm90b3R5cGUub25JbnB1dF89ZnVuY3Rpb24oZSl7dGhpcy51cGRhdGVWYWx1ZVN0eWxlc18oKX0sYy5wcm90b3R5cGUub25DaGFuZ2VfPWZ1bmN0aW9uKGUpe3RoaXMudXBkYXRlVmFsdWVTdHlsZXNfKCl9LGMucHJvdG90eXBlLm9uTW91c2VVcF89ZnVuY3Rpb24oZSl7ZS50YXJnZXQuYmx1cigpfSxjLnByb3RvdHlwZS5vbkNvbnRhaW5lck1vdXNlRG93bl89ZnVuY3Rpb24oZSl7aWYoZS50YXJnZXQ9PT10aGlzLmVsZW1lbnRfLnBhcmVudEVsZW1lbnQpe2UucHJldmVudERlZmF1bHQoKTt2YXIgdD1uZXcgTW91c2VFdmVudCgibW91c2Vkb3duIix7dGFyZ2V0OmUudGFyZ2V0LGJ1dHRvbnM6ZS5idXR0b25zLGNsaWVudFg6ZS5jbGllbnRYLGNsaWVudFk6dGhpcy5lbGVtZW50Xy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55fSk7dGhpcy5lbGVtZW50Xy5kaXNwYXRjaEV2ZW50KHQpfX0sYy5wcm90b3R5cGUudXBkYXRlVmFsdWVTdHlsZXNfPWZ1bmN0aW9uKCl7dmFyIGU9KHRoaXMuZWxlbWVudF8udmFsdWUtdGhpcy5lbGVtZW50Xy5taW4pLyh0aGlzLmVsZW1lbnRfLm1heC10aGlzLmVsZW1lbnRfLm1pbik7MD09PWU/dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfTE9XRVNUX1ZBTFVFKTp0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19MT1dFU1RfVkFMVUUpLHRoaXMuaXNJRV98fCh0aGlzLmJhY2tncm91bmRMb3dlcl8uc3R5bGUuZmxleD1lLHRoaXMuYmFja2dyb3VuZExvd2VyXy5zdHlsZS53ZWJraXRGbGV4PWUsdGhpcy5iYWNrZ3JvdW5kVXBwZXJfLnN0eWxlLmZsZXg9MS1lLHRoaXMuYmFja2dyb3VuZFVwcGVyXy5zdHlsZS53ZWJraXRGbGV4PTEtZSl9LGMucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnRfLmRpc2FibGVkPSEwfSxjLnByb3RvdHlwZS5kaXNhYmxlPWMucHJvdG90eXBlLmRpc2FibGUsYy5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50Xy5kaXNhYmxlZD0hMX0sYy5wcm90b3R5cGUuZW5hYmxlPWMucHJvdG90eXBlLmVuYWJsZSxjLnByb3RvdHlwZS5jaGFuZ2U9ZnVuY3Rpb24oZSl7InVuZGVmaW5lZCIhPXR5cGVvZiBlJiYodGhpcy5lbGVtZW50Xy52YWx1ZT1lKSx0aGlzLnVwZGF0ZVZhbHVlU3R5bGVzXygpfSxjLnByb3RvdHlwZS5jaGFuZ2U9Yy5wcm90b3R5cGUuY2hhbmdlLGMucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmVsZW1lbnRfKXtpZih0aGlzLmlzSUVfKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JRV9DT05UQUlORVIpLAp0aGlzLmVsZW1lbnRfLnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGUsdGhpcy5lbGVtZW50XyksdGhpcy5lbGVtZW50Xy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudF8pLGUuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50Xyl9ZWxzZXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5TTElERVJfQ09OVEFJTkVSKSx0aGlzLmVsZW1lbnRfLnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKHQsdGhpcy5lbGVtZW50XyksdGhpcy5lbGVtZW50Xy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudF8pLHQuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50Xyk7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uQkFDS0dST1VORF9GTEVYKSx0LmFwcGVuZENoaWxkKHMpLHRoaXMuYmFja2dyb3VuZExvd2VyXz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmJhY2tncm91bmRMb3dlcl8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLkJBQ0tHUk9VTkRfTE9XRVIpLHMuYXBwZW5kQ2hpbGQodGhpcy5iYWNrZ3JvdW5kTG93ZXJfKSx0aGlzLmJhY2tncm91bmRVcHBlcl89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5iYWNrZ3JvdW5kVXBwZXJfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5CQUNLR1JPVU5EX1VQUEVSKSxzLmFwcGVuZENoaWxkKHRoaXMuYmFja2dyb3VuZFVwcGVyXyl9dGhpcy5ib3VuZElucHV0SGFuZGxlcj10aGlzLm9uSW5wdXRfLmJpbmQodGhpcyksdGhpcy5ib3VuZENoYW5nZUhhbmRsZXI9dGhpcy5vbkNoYW5nZV8uYmluZCh0aGlzKSx0aGlzLmJvdW5kTW91c2VVcEhhbmRsZXI9dGhpcy5vbk1vdXNlVXBfLmJpbmQodGhpcyksdGhpcy5ib3VuZENvbnRhaW5lck1vdXNlRG93bkhhbmRsZXI9dGhpcy5vbkNvbnRhaW5lck1vdXNlRG93bl8uYmluZCh0aGlzKSx0aGlzLmVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0Iix0aGlzLmJvdW5kSW5wdXRIYW5kbGVyKSx0aGlzLmVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5ib3VuZENoYW5nZUhhbmRsZXIpLHRoaXMuZWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5ib3VuZE1vdXNlVXBIYW5kbGVyKSx0aGlzLmVsZW1lbnRfLnBhcmVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLmJvdW5kQ29udGFpbmVyTW91c2VEb3duSGFuZGxlciksdGhpcy51cGRhdGVWYWx1ZVN0eWxlc18oKSx0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19VUEdSQURFRCl9fSxjLnByb3RvdHlwZS5tZGxEb3duZ3JhZGVfPWZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnB1dCIsdGhpcy5ib3VuZElucHV0SGFuZGxlciksdGhpcy5lbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMuYm91bmRDaGFuZ2VIYW5kbGVyKSx0aGlzLmVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuYm91bmRNb3VzZVVwSGFuZGxlciksdGhpcy5lbGVtZW50Xy5wYXJlbnRFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5ib3VuZENvbnRhaW5lck1vdXNlRG93bkhhbmRsZXIpfSxjLnByb3RvdHlwZS5tZGxEb3duZ3JhZGU9Yy5wcm90b3R5cGUubWRsRG93bmdyYWRlXyxjLnByb3RvdHlwZS5tZGxEb3duZ3JhZGU9Yy5wcm90b3R5cGUubWRsRG93bmdyYWRlLHMucmVnaXN0ZXIoe2NvbnN0cnVjdG9yOmMsY2xhc3NBc1N0cmluZzoiTWF0ZXJpYWxTbGlkZXIiLGNzc0NsYXNzOiJtZGwtanMtc2xpZGVyIix3aWRnZXQ6ITB9KTt2YXIgdT1mdW5jdGlvbihlKXt0aGlzLmVsZW1lbnRfPWUsdGhpcy5pbml0KCl9O3dpbmRvdy5NYXRlcmlhbFNwaW5uZXI9dSx1LnByb3RvdHlwZS5Db25zdGFudF89e01ETF9TUElOTkVSX0xBWUVSX0NPVU5UOjR9LHUucHJvdG90eXBlLkNzc0NsYXNzZXNfPXtNRExfU1BJTk5FUl9MQVlFUjoibWRsLXNwaW5uZXJfX2xheWVyIixNRExfU1BJTk5FUl9DSVJDTEVfQ0xJUFBFUjoibWRsLXNwaW5uZXJfX2NpcmNsZS1jbGlwcGVyIixNRExfU1BJTk5FUl9DSVJDTEU6Im1kbC1zcGlubmVyX19jaXJjbGUiLE1ETF9TUElOTkVSX0dBUF9QQVRDSDoibWRsLXNwaW5uZXJfX2dhcC1wYXRjaCIsTURMX1NQSU5ORVJfTEVGVDoibWRsLXNwaW5uZXJfX2xlZnQiLE1ETF9TUElOTkVSX1JJR0hUOiJtZGwtc3Bpbm5lcl9fcmlnaHQifSx1LnByb3RvdHlwZS5jcmVhdGVMYXllcj1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5NRExfU1BJTk5FUl9MQVlFUiksdC5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uTURMX1NQSU5ORVJfTEFZRVIrIi0iK2UpO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3MuY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLk1ETF9TUElOTkVSX0NJUkNMRV9DTElQUEVSKSxzLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5NRExfU1BJTk5FUl9MRUZUKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5NRExfU1BJTk5FUl9HQVBfUEFUQ0gpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLk1ETF9TUElOTkVSX0NJUkNMRV9DTElQUEVSKSxuLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5NRExfU1BJTk5FUl9SSUdIVCk7Zm9yKHZhciBhPVtzLGksbl0sbD0wO2w8YS5sZW5ndGg7bCsrKXt2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5NRExfU1BJTk5FUl9DSVJDTEUpLGFbbF0uYXBwZW5kQ2hpbGQobyl9dC5hcHBlbmRDaGlsZChzKSx0LmFwcGVuZENoaWxkKGkpLHQuYXBwZW5kQ2hpbGQobiksdGhpcy5lbGVtZW50Xy5hcHBlbmRDaGlsZCh0KX0sdS5wcm90b3R5cGUuY3JlYXRlTGF5ZXI9dS5wcm90b3R5cGUuY3JlYXRlTGF5ZXIsdS5wcm90b3R5cGUuc3RvcD1mdW5jdGlvbigpe3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LnJlbW92ZSgiaXMtYWN0aXZlIil9LHUucHJvdG90eXBlLnN0b3A9dS5wcm90b3R5cGUuc3RvcCx1LnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCgiaXMtYWN0aXZlIil9LHUucHJvdG90eXBlLnN0YXJ0PXUucHJvdG90eXBlLnN0YXJ0LHUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmVsZW1lbnRfKXtmb3IodmFyIGU9MTtlPD10aGlzLkNvbnN0YW50Xy5NRExfU1BJTk5FUl9MQVlFUl9DT1VOVDtlKyspdGhpcy5jcmVhdGVMYXllcihlKTt0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5hZGQoImlzLXVwZ3JhZGVkIil9fSxzLnJlZ2lzdGVyKHtjb25zdHJ1Y3Rvcjp1LGNsYXNzQXNTdHJpbmc6Ik1hdGVyaWFsU3Bpbm5lciIsY3NzQ2xhc3M6Im1kbC1qcy1zcGlubmVyIix3aWRnZXQ6ITB9KTt2YXIgQz1mdW5jdGlvbihlKXt0aGlzLmVsZW1lbnRfPWUsdGhpcy5pbml0KCl9O3dpbmRvdy5NYXRlcmlhbFN3aXRjaD1DLEMucHJvdG90eXBlLkNvbnN0YW50Xz17VElOWV9USU1FT1VUOi4wMDF9LEMucHJvdG90eXBlLkNzc0NsYXNzZXNfPXtJTlBVVDoibWRsLXN3aXRjaF9faW5wdXQiLFRSQUNLOiJtZGwtc3dpdGNoX190cmFjayIsVEhVTUI6Im1kbC1zd2l0Y2hfX3RodW1iIixGT0NVU19IRUxQRVI6Im1kbC1zd2l0Y2hfX2ZvY3VzLWhlbHBlciIsUklQUExFX0VGRkVDVDoibWRsLWpzLXJpcHBsZS1lZmZlY3QiLFJJUFBMRV9JR05PUkVfRVZFTlRTOiJtZGwtanMtcmlwcGxlLWVmZmVjdC0taWdub3JlLWV2ZW50cyIsUklQUExFX0NPTlRBSU5FUjoibWRsLXN3aXRjaF9fcmlwcGxlLWNvbnRhaW5lciIsUklQUExFX0NFTlRFUjoibWRsLXJpcHBsZS0tY2VudGVyIixSSVBQTEU6Im1kbC1yaXBwbGUiLElTX0ZPQ1VTRUQ6ImlzLWZvY3VzZWQiLElTX0RJU0FCTEVEOiJpcy1kaXNhYmxlZCIsSVNfQ0hFQ0tFRDoiaXMtY2hlY2tlZCJ9LEMucHJvdG90eXBlLm9uQ2hhbmdlXz1mdW5jdGlvbihlKXt0aGlzLnVwZGF0ZUNsYXNzZXNfKCl9LEMucHJvdG90eXBlLm9uRm9jdXNfPWZ1bmN0aW9uKGUpe3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklTX0ZPQ1VTRUQpfSxDLnByb3RvdHlwZS5vbkJsdXJfPWZ1bmN0aW9uKGUpe3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNzc0NsYXNzZXNfLklTX0ZPQ1VTRUQpfSxDLnByb3RvdHlwZS5vbk1vdXNlVXBfPWZ1bmN0aW9uKGUpe3RoaXMuYmx1cl8oKX0sQy5wcm90b3R5cGUudXBkYXRlQ2xhc3Nlc189ZnVuY3Rpb24oKXt0aGlzLmNoZWNrRGlzYWJsZWQoKSx0aGlzLmNoZWNrVG9nZ2xlU3RhdGUoKX0sQy5wcm90b3R5cGUuYmx1cl89ZnVuY3Rpb24oKXt3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe3RoaXMuaW5wdXRFbGVtZW50Xy5ibHVyKCl9LmJpbmQodGhpcyksdGhpcy5Db25zdGFudF8uVElOWV9USU1FT1VUKX0sQy5wcm90b3R5cGUuY2hlY2tEaXNhYmxlZD1mdW5jdGlvbigpe3RoaXMuaW5wdXRFbGVtZW50Xy5kaXNhYmxlZD90aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19ESVNBQkxFRCk6dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfRElTQUJMRUQpfSxDLnByb3RvdHlwZS5jaGVja0Rpc2FibGVkPUMucHJvdG90eXBlLmNoZWNrRGlzYWJsZWQsQy5wcm90b3R5cGUuY2hlY2tUb2dnbGVTdGF0ZT1mdW5jdGlvbigpe3RoaXMuaW5wdXRFbGVtZW50Xy5jaGVja2VkP3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklTX0NIRUNLRUQpOnRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNzc0NsYXNzZXNfLklTX0NIRUNLRUQpfSxDLnByb3RvdHlwZS5jaGVja1RvZ2dsZVN0YXRlPUMucHJvdG90eXBlLmNoZWNrVG9nZ2xlU3RhdGUsQy5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuaW5wdXRFbGVtZW50Xy5kaXNhYmxlZD0hMCx0aGlzLnVwZGF0ZUNsYXNzZXNfKCl9LEMucHJvdG90eXBlLmRpc2FibGU9Qy5wcm90b3R5cGUuZGlzYWJsZSxDLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLmlucHV0RWxlbWVudF8uZGlzYWJsZWQ9ITEsdGhpcy51cGRhdGVDbGFzc2VzXygpfSxDLnByb3RvdHlwZS5lbmFibGU9Qy5wcm90b3R5cGUuZW5hYmxlLEMucHJvdG90eXBlLm9uPWZ1bmN0aW9uKCl7dGhpcy5pbnB1dEVsZW1lbnRfLmNoZWNrZWQ9ITAsdGhpcy51cGRhdGVDbGFzc2VzXygpfSxDLnByb3RvdHlwZS5vbj1DLnByb3RvdHlwZS5vbixDLnByb3RvdHlwZS5vZmY9ZnVuY3Rpb24oKXt0aGlzLmlucHV0RWxlbWVudF8uY2hlY2tlZD0hMSx0aGlzLnVwZGF0ZUNsYXNzZXNfKCl9LEMucHJvdG90eXBlLm9mZj1DLnByb3RvdHlwZS5vZmYsQy5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe2lmKHRoaXMuZWxlbWVudF8pe3RoaXMuaW5wdXRFbGVtZW50Xz10aGlzLmVsZW1lbnRfLnF1ZXJ5U2VsZWN0b3IoIi4iK3RoaXMuQ3NzQ2xhc3Nlc18uSU5QVVQpO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLlRSQUNLKTt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5USFVNQik7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2lmKHMuY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLkZPQ1VTX0hFTFBFUiksdC5hcHBlbmRDaGlsZChzKSx0aGlzLmVsZW1lbnRfLmFwcGVuZENoaWxkKGUpLHRoaXMuZWxlbWVudF8uYXBwZW5kQ2hpbGQodCksdGhpcy5ib3VuZE1vdXNlVXBIYW5kbGVyPXRoaXMub25Nb3VzZVVwXy5iaW5kKHRoaXMpLHRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uUklQUExFX0VGRkVDVCkpe3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLlJJUFBMRV9JR05PUkVfRVZFTlRTKSx0aGlzLnJpcHBsZUNvbnRhaW5lckVsZW1lbnRfPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSx0aGlzLnJpcHBsZUNvbnRhaW5lckVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5SSVBQTEVfQ09OVEFJTkVSKSx0aGlzLnJpcHBsZUNvbnRhaW5lckVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5SSVBQTEVfRUZGRUNUKSx0aGlzLnJpcHBsZUNvbnRhaW5lckVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5SSVBQTEVfQ0VOVEVSKSx0aGlzLnJpcHBsZUNvbnRhaW5lckVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuYm91bmRNb3VzZVVwSGFuZGxlcik7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2kuY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLlJJUFBMRSksdGhpcy5yaXBwbGVDb250YWluZXJFbGVtZW50Xy5hcHBlbmRDaGlsZChpKSx0aGlzLmVsZW1lbnRfLmFwcGVuZENoaWxkKHRoaXMucmlwcGxlQ29udGFpbmVyRWxlbWVudF8pfXRoaXMuYm91bmRDaGFuZ2VIYW5kbGVyPXRoaXMub25DaGFuZ2VfLmJpbmQodGhpcyksdGhpcy5ib3VuZEZvY3VzSGFuZGxlcj10aGlzLm9uRm9jdXNfLmJpbmQodGhpcyksdGhpcy5ib3VuZEJsdXJIYW5kbGVyPXRoaXMub25CbHVyXy5iaW5kKHRoaXMpLHRoaXMuaW5wdXRFbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMuYm91bmRDaGFuZ2VIYW5kbGVyKSx0aGlzLmlucHV0RWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuYm91bmRGb2N1c0hhbmRsZXIpLHRoaXMuaW5wdXRFbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLmJvdW5kQmx1ckhhbmRsZXIpLHRoaXMuZWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5ib3VuZE1vdXNlVXBIYW5kbGVyKSx0aGlzLnVwZGF0ZUNsYXNzZXNfKCksdGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuYWRkKCJpcy11cGdyYWRlZCIpfX0sQy5wcm90b3R5cGUubWRsRG93bmdyYWRlXz1mdW5jdGlvbigpe3RoaXMucmlwcGxlQ29udGFpbmVyRWxlbWVudF8mJnRoaXMucmlwcGxlQ29udGFpbmVyRWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5ib3VuZE1vdXNlVXBIYW5kbGVyKSx0aGlzLmlucHV0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLmJvdW5kQ2hhbmdlSGFuZGxlciksdGhpcy5pbnB1dEVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLmJvdW5kRm9jdXNIYW5kbGVyKSx0aGlzLmlucHV0RWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5ib3VuZEJsdXJIYW5kbGVyKSx0aGlzLmVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuYm91bmRNb3VzZVVwSGFuZGxlcil9LEMucHJvdG90eXBlLm1kbERvd25ncmFkZT1DLnByb3RvdHlwZS5tZGxEb3duZ3JhZGVfLEMucHJvdG90eXBlLm1kbERvd25ncmFkZT1DLnByb3RvdHlwZS5tZGxEb3duZ3JhZGUscy5yZWdpc3Rlcih7Y29uc3RydWN0b3I6QyxjbGFzc0FzU3RyaW5nOiJNYXRlcmlhbFN3aXRjaCIsY3NzQ2xhc3M6Im1kbC1qcy1zd2l0Y2giLHdpZGdldDohMH0pO3ZhciBtPWZ1bmN0aW9uKGUpe3RoaXMuZWxlbWVudF89ZSx0aGlzLmluaXQoKX07d2luZG93Lk1hdGVyaWFsVGFicz1tLG0ucHJvdG90eXBlLkNvbnN0YW50Xz17fSxtLnByb3RvdHlwZS5Dc3NDbGFzc2VzXz17VEFCX0NMQVNTOiJtZGwtdGFic19fdGFiIixQQU5FTF9DTEFTUzoibWRsLXRhYnNfX3BhbmVsIixBQ1RJVkVfQ0xBU1M6ImlzLWFjdGl2ZSIsVVBHUkFERURfQ0xBU1M6ImlzLXVwZ3JhZGVkIixNRExfSlNfUklQUExFX0VGRkVDVDoibWRsLWpzLXJpcHBsZS1lZmZlY3QiLE1ETF9SSVBQTEVfQ09OVEFJTkVSOiJtZGwtdGFic19fcmlwcGxlLWNvbnRhaW5lciIsTURMX1JJUFBMRToibWRsLXJpcHBsZSIsTURMX0pTX1JJUFBMRV9FRkZFQ1RfSUdOT1JFX0VWRU5UUzoibWRsLWpzLXJpcHBsZS1lZmZlY3QtLWlnbm9yZS1ldmVudHMifSxtLnByb3RvdHlwZS5pbml0VGFic189ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLkNzc0NsYXNzZXNfLk1ETF9KU19SSVBQTEVfRUZGRUNUKSYmdGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uTURMX0pTX1JJUFBMRV9FRkZFQ1RfSUdOT1JFX0VWRU5UUyksdGhpcy50YWJzXz10aGlzLmVsZW1lbnRfLnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK3RoaXMuQ3NzQ2xhc3Nlc18uVEFCX0NMQVNTKSx0aGlzLnBhbmVsc189dGhpcy5lbGVtZW50Xy5xdWVyeVNlbGVjdG9yQWxsKCIuIit0aGlzLkNzc0NsYXNzZXNfLlBBTkVMX0NMQVNTKTtmb3IodmFyIHQ9MDt0PHRoaXMudGFic18ubGVuZ3RoO3QrKyluZXcgZSh0aGlzLnRhYnNfW3RdLHRoaXMpO3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLlVQR1JBREVEX0NMQVNTKX0sbS5wcm90b3R5cGUucmVzZXRUYWJTdGF0ZV89ZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPHRoaXMudGFic18ubGVuZ3RoO2UrKyl0aGlzLnRhYnNfW2VdLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5BQ1RJVkVfQ0xBU1MpfSxtLnByb3RvdHlwZS5yZXNldFBhbmVsU3RhdGVfPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTx0aGlzLnBhbmVsc18ubGVuZ3RoO2UrKyl0aGlzLnBhbmVsc19bZV0uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNzc0NsYXNzZXNfLkFDVElWRV9DTEFTUyl9LG0ucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnRfJiZ0aGlzLmluaXRUYWJzXygpfSxzLnJlZ2lzdGVyKHtjb25zdHJ1Y3RvcjptLGNsYXNzQXNTdHJpbmc6Ik1hdGVyaWFsVGFicyIsY3NzQ2xhc3M6Im1kbC1qcy10YWJzIn0pO3ZhciBFPWZ1bmN0aW9uKGUpe3RoaXMuZWxlbWVudF89ZSx0aGlzLm1heFJvd3M9dGhpcy5Db25zdGFudF8uTk9fTUFYX1JPV1MsdGhpcy5pbml0KCl9O3dpbmRvdy5NYXRlcmlhbFRleHRmaWVsZD1FLEUucHJvdG90eXBlLkNvbnN0YW50Xz17Tk9fTUFYX1JPV1M6LTEsTUFYX1JPV1NfQVRUUklCVVRFOiJtYXhyb3dzIn0sRS5wcm90b3R5cGUuQ3NzQ2xhc3Nlc189e0xBQkVMOiJtZGwtdGV4dGZpZWxkX19sYWJlbCIsSU5QVVQ6Im1kbC10ZXh0ZmllbGRfX2lucHV0IixJU19ESVJUWToiaXMtZGlydHkiLElTX0ZPQ1VTRUQ6ImlzLWZvY3VzZWQiLElTX0RJU0FCTEVEOiJpcy1kaXNhYmxlZCIsSVNfSU5WQUxJRDoiaXMtaW52YWxpZCIsSVNfVVBHUkFERUQ6ImlzLXVwZ3JhZGVkIn0sRS5wcm90b3R5cGUub25LZXlEb3duXz1mdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldC52YWx1ZS5zcGxpdCgiXG4iKS5sZW5ndGg7MTM9PT1lLmtleUNvZGUmJnQ+PXRoaXMubWF4Um93cyYmZS5wcmV2ZW50RGVmYXVsdCgpfSxFLnByb3RvdHlwZS5vbkZvY3VzXz1mdW5jdGlvbihlKXt0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19GT0NVU0VEKX0sRS5wcm90b3R5cGUub25CbHVyXz1mdW5jdGlvbihlKXt0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19GT0NVU0VEKX0sRS5wcm90b3R5cGUudXBkYXRlQ2xhc3Nlc189ZnVuY3Rpb24oKXt0aGlzLmNoZWNrRGlzYWJsZWQoKSx0aGlzLmNoZWNrVmFsaWRpdHkoKSx0aGlzLmNoZWNrRGlydHkoKX0sRS5wcm90b3R5cGUuY2hlY2tEaXNhYmxlZD1mdW5jdGlvbigpe3RoaXMuaW5wdXRfLmRpc2FibGVkP3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklTX0RJU0FCTEVEKTp0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19ESVNBQkxFRCl9LEUucHJvdG90eXBlLmNoZWNrRGlzYWJsZWQ9RS5wcm90b3R5cGUuY2hlY2tEaXNhYmxlZCxFLnByb3RvdHlwZS5jaGVja1ZhbGlkaXR5PWZ1bmN0aW9uKCl7dGhpcy5pbnB1dF8udmFsaWRpdHkmJih0aGlzLmlucHV0Xy52YWxpZGl0eS52YWxpZD90aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19JTlZBTElEKTp0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19JTlZBTElEKSl9LEUucHJvdG90eXBlLmNoZWNrVmFsaWRpdHk9RS5wcm90b3R5cGUuY2hlY2tWYWxpZGl0eSxFLnByb3RvdHlwZS5jaGVja0RpcnR5PWZ1bmN0aW9uKCl7dGhpcy5pbnB1dF8udmFsdWUmJnRoaXMuaW5wdXRfLnZhbHVlLmxlbmd0aD4wP3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklTX0RJUlRZKTp0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19ESVJUWSl9LEUucHJvdG90eXBlLmNoZWNrRGlydHk9RS5wcm90b3R5cGUuY2hlY2tEaXJ0eSxFLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5pbnB1dF8uZGlzYWJsZWQ9ITAsdGhpcy51cGRhdGVDbGFzc2VzXygpfSxFLnByb3RvdHlwZS5kaXNhYmxlPUUucHJvdG90eXBlLmRpc2FibGUsRS5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5pbnB1dF8uZGlzYWJsZWQ9ITEsdGhpcy51cGRhdGVDbGFzc2VzXygpfSxFLnByb3RvdHlwZS5lbmFibGU9RS5wcm90b3R5cGUuZW5hYmxlLEUucHJvdG90eXBlLmNoYW5nZT1mdW5jdGlvbihlKXt0aGlzLmlucHV0Xy52YWx1ZT1lfHwiIix0aGlzLnVwZGF0ZUNsYXNzZXNfKCl9LEUucHJvdG90eXBlLmNoYW5nZT1FLnByb3RvdHlwZS5jaGFuZ2UsRS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe2lmKHRoaXMuZWxlbWVudF8mJih0aGlzLmxhYmVsXz10aGlzLmVsZW1lbnRfLnF1ZXJ5U2VsZWN0b3IoIi4iK3RoaXMuQ3NzQ2xhc3Nlc18uTEFCRUwpLHRoaXMuaW5wdXRfPXRoaXMuZWxlbWVudF8ucXVlcnlTZWxlY3RvcigiLiIrdGhpcy5Dc3NDbGFzc2VzXy5JTlBVVCksdGhpcy5pbnB1dF8pKXt0aGlzLmlucHV0Xy5oYXNBdHRyaWJ1dGUodGhpcy5Db25zdGFudF8uTUFYX1JPV1NfQVRUUklCVVRFKSYmKHRoaXMubWF4Um93cz1wYXJzZUludCh0aGlzLmlucHV0Xy5nZXRBdHRyaWJ1dGUodGhpcy5Db25zdGFudF8uTUFYX1JPV1NfQVRUUklCVVRFKSwxMCksaXNOYU4odGhpcy5tYXhSb3dzKSYmKHRoaXMubWF4Um93cz10aGlzLkNvbnN0YW50Xy5OT19NQVhfUk9XUykpLHRoaXMuYm91bmRVcGRhdGVDbGFzc2VzSGFuZGxlcj10aGlzLnVwZGF0ZUNsYXNzZXNfLmJpbmQodGhpcyksdGhpcy5ib3VuZEZvY3VzSGFuZGxlcj10aGlzLm9uRm9jdXNfLmJpbmQodGhpcyksdGhpcy5ib3VuZEJsdXJIYW5kbGVyPXRoaXMub25CbHVyXy5iaW5kKHRoaXMpLHRoaXMuaW5wdXRfLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0Iix0aGlzLmJvdW5kVXBkYXRlQ2xhc3Nlc0hhbmRsZXIpLHRoaXMuaW5wdXRfLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLmJvdW5kRm9jdXNIYW5kbGVyKSx0aGlzLmlucHV0Xy5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLmJvdW5kQmx1ckhhbmRsZXIpLHRoaXMubWF4Um93cyE9PXRoaXMuQ29uc3RhbnRfLk5PX01BWF9ST1dTJiYodGhpcy5ib3VuZEtleURvd25IYW5kbGVyPXRoaXMub25LZXlEb3duXy5iaW5kKHRoaXMpLHRoaXMuaW5wdXRfLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuYm91bmRLZXlEb3duSGFuZGxlcikpO3ZhciBlPXRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfSU5WQUxJRCk7dGhpcy51cGRhdGVDbGFzc2VzXygpLHRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklTX1VQR1JBREVEKSxlJiZ0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19JTlZBTElEKX19LEUucHJvdG90eXBlLm1kbERvd25ncmFkZV89ZnVuY3Rpb24oKXt0aGlzLmlucHV0Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnB1dCIsdGhpcy5ib3VuZFVwZGF0ZUNsYXNzZXNIYW5kbGVyKSx0aGlzLmlucHV0Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5ib3VuZEZvY3VzSGFuZGxlciksdGhpcy5pbnB1dF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5ib3VuZEJsdXJIYW5kbGVyKSx0aGlzLmJvdW5kS2V5RG93bkhhbmRsZXImJnRoaXMuaW5wdXRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuYm91bmRLZXlEb3duSGFuZGxlcil9LEUucHJvdG90eXBlLm1kbERvd25ncmFkZT1FLnByb3RvdHlwZS5tZGxEb3duZ3JhZGVfLEUucHJvdG90eXBlLm1kbERvd25ncmFkZT1FLnByb3RvdHlwZS5tZGxEb3duZ3JhZGUscy5yZWdpc3Rlcih7Y29uc3RydWN0b3I6RSxjbGFzc0FzU3RyaW5nOiJNYXRlcmlhbFRleHRmaWVsZCIsY3NzQ2xhc3M6Im1kbC1qcy10ZXh0ZmllbGQiLHdpZGdldDohMH0pO3ZhciBMPWZ1bmN0aW9uKGUpe3RoaXMuZWxlbWVudF89ZSx0aGlzLmluaXQoKX07d2luZG93Lk1hdGVyaWFsVG9vbHRpcD1MLEwucHJvdG90eXBlLkNvbnN0YW50Xz17fSxMLnByb3RvdHlwZS5Dc3NDbGFzc2VzXz17SVNfQUNUSVZFOiJpcy1hY3RpdmUifSxMLnByb3RvdHlwZS5oYW5kbGVNb3VzZUVudGVyXz1mdW5jdGlvbihlKXtlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciB0PWUudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9dC5sZWZ0K3Qud2lkdGgvMixpPS0xKih0aGlzLmVsZW1lbnRfLm9mZnNldFdpZHRoLzIpOzA+cytpPyh0aGlzLmVsZW1lbnRfLnN0eWxlLmxlZnQ9MCx0aGlzLmVsZW1lbnRfLnN0eWxlLm1hcmdpbkxlZnQ9MCk6KHRoaXMuZWxlbWVudF8uc3R5bGUubGVmdD1zKyJweCIsdGhpcy5lbGVtZW50Xy5zdHlsZS5tYXJnaW5MZWZ0PWkrInB4IiksdGhpcy5lbGVtZW50Xy5zdHlsZS50b3A9dC50b3ArdC5oZWlnaHQrMTArInB4Iix0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19BQ1RJVkUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuYm91bmRNb3VzZUxlYXZlSGFuZGxlciwhMSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5ib3VuZE1vdXNlTGVhdmVIYW5kbGVyLCExKX0sTC5wcm90b3R5cGUuaGFuZGxlTW91c2VMZWF2ZV89ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19BQ1RJVkUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuYm91bmRNb3VzZUxlYXZlSGFuZGxlciksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5ib3VuZE1vdXNlTGVhdmVIYW5kbGVyLCExKX0sTC5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe2lmKHRoaXMuZWxlbWVudF8pe3ZhciBlPXRoaXMuZWxlbWVudF8uZ2V0QXR0cmlidXRlKCJmb3IiKTtlJiYodGhpcy5mb3JFbGVtZW50Xz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChlKSksdGhpcy5mb3JFbGVtZW50XyYmKHRoaXMuZm9yRWxlbWVudF8uaGFzQXR0cmlidXRlKCJ0YWJpbmRleCIpfHx0aGlzLmZvckVsZW1lbnRfLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksdGhpcy5ib3VuZE1vdXNlRW50ZXJIYW5kbGVyPXRoaXMuaGFuZGxlTW91c2VFbnRlcl8uYmluZCh0aGlzKSx0aGlzLmJvdW5kTW91c2VMZWF2ZUhhbmRsZXI9dGhpcy5oYW5kbGVNb3VzZUxlYXZlXy5iaW5kKHRoaXMpLHRoaXMuZm9yRWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdGhpcy5ib3VuZE1vdXNlRW50ZXJIYW5kbGVyLCExKSx0aGlzLmZvckVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmJvdW5kTW91c2VFbnRlckhhbmRsZXIsITEpLHRoaXMuZm9yRWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5ib3VuZE1vdXNlTGVhdmVIYW5kbGVyKSx0aGlzLmZvckVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuYm91bmRNb3VzZUVudGVySGFuZGxlciwhMSksdGhpcy5mb3JFbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLmJvdW5kTW91c2VMZWF2ZUhhbmRsZXIpKX19LEwucHJvdG90eXBlLm1kbERvd25ncmFkZV89ZnVuY3Rpb24oKXt0aGlzLmZvckVsZW1lbnRfJiYodGhpcy5mb3JFbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzLmJvdW5kTW91c2VFbnRlckhhbmRsZXIsITEpLHRoaXMuZm9yRWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuYm91bmRNb3VzZUVudGVySGFuZGxlciwhMSksdGhpcy5mb3JFbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLmJvdW5kTW91c2VFbnRlckhhbmRsZXIsITEpLHRoaXMuZm9yRWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5ib3VuZE1vdXNlTGVhdmVIYW5kbGVyKSl9LEwucHJvdG90eXBlLm1kbERvd25ncmFkZT1MLnByb3RvdHlwZS5tZGxEb3duZ3JhZGVfLEwucHJvdG90eXBlLm1kbERvd25ncmFkZT1MLnByb3RvdHlwZS5tZGxEb3duZ3JhZGUscy5yZWdpc3Rlcih7Y29uc3RydWN0b3I6TCxjbGFzc0FzU3RyaW5nOiJNYXRlcmlhbFRvb2x0aXAiLGNzc0NsYXNzOiJtZGwtdG9vbHRpcCJ9KTt2YXIgST1mdW5jdGlvbihlKXt0aGlzLmVsZW1lbnRfPWUsdGhpcy5pbml0KCl9O3dpbmRvdy5NYXRlcmlhbExheW91dD1JLEkucHJvdG90eXBlLkNvbnN0YW50Xz17TUFYX1dJRFRIOiIobWF4LXdpZHRoOiAxMDI0cHgpIixUQUJfU0NST0xMX1BJWEVMUzoxMDAsTUVOVV9JQ09OOiJtZW51IixDSEVWUk9OX0xFRlQ6ImNoZXZyb25fbGVmdCIsQ0hFVlJPTl9SSUdIVDoiY2hldnJvbl9yaWdodCJ9LEkucHJvdG90eXBlLk1vZGVfPXtTVEFOREFSRDowLFNFQU1FRDoxLFdBVEVSRkFMTDoyLFNDUk9MTDozfSxJLnByb3RvdHlwZS5Dc3NDbGFzc2VzXz17Q09OVEFJTkVSOiJtZGwtbGF5b3V0X19jb250YWluZXIiLEhFQURFUjoibWRsLWxheW91dF9faGVhZGVyIixEUkFXRVI6Im1kbC1sYXlvdXRfX2RyYXdlciIsQ09OVEVOVDoibWRsLWxheW91dF9fY29udGVudCIsRFJBV0VSX0JUTjoibWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbiIsSUNPTjoibWF0ZXJpYWwtaWNvbnMiLEpTX1JJUFBMRV9FRkZFQ1Q6Im1kbC1qcy1yaXBwbGUtZWZmZWN0IixSSVBQTEVfQ09OVEFJTkVSOiJtZGwtbGF5b3V0X190YWItcmlwcGxlLWNvbnRhaW5lciIsUklQUExFOiJtZGwtcmlwcGxlIixSSVBQTEVfSUdOT1JFX0VWRU5UUzoibWRsLWpzLXJpcHBsZS1lZmZlY3QtLWlnbm9yZS1ldmVudHMiLEhFQURFUl9TRUFNRUQ6Im1kbC1sYXlvdXRfX2hlYWRlci0tc2VhbWVkIixIRUFERVJfV0FURVJGQUxMOiJtZGwtbGF5b3V0X19oZWFkZXItLXdhdGVyZmFsbCIsSEVBREVSX1NDUk9MTDoibWRsLWxheW91dF9faGVhZGVyLS1zY3JvbGwiLEZJWEVEX0hFQURFUjoibWRsLWxheW91dC0tZml4ZWQtaGVhZGVyIixPQkZVU0NBVE9SOiJtZGwtbGF5b3V0X19vYmZ1c2NhdG9yIixUQUJfQkFSOiJtZGwtbGF5b3V0X190YWItYmFyIixUQUJfQ09OVEFJTkVSOiJtZGwtbGF5b3V0X190YWItYmFyLWNvbnRhaW5lciIsVEFCOiJtZGwtbGF5b3V0X190YWIiLFRBQl9CQVJfQlVUVE9OOiJtZGwtbGF5b3V0X190YWItYmFyLWJ1dHRvbiIsVEFCX0JBUl9MRUZUX0JVVFRPTjoibWRsLWxheW91dF9fdGFiLWJhci1sZWZ0LWJ1dHRvbiIsVEFCX0JBUl9SSUdIVF9CVVRUT046Im1kbC1sYXlvdXRfX3RhYi1iYXItcmlnaHQtYnV0dG9uIixQQU5FTDoibWRsLWxheW91dF9fdGFiLXBhbmVsIixIQVNfRFJBV0VSOiJoYXMtZHJhd2VyIixIQVNfVEFCUzoiaGFzLXRhYnMiLEhBU19TQ1JPTExJTkdfSEVBREVSOiJoYXMtc2Nyb2xsaW5nLWhlYWRlciIsQ0FTVElOR19TSEFET1c6ImlzLWNhc3Rpbmctc2hhZG93IixJU19DT01QQUNUOiJpcy1jb21wYWN0IixJU19TTUFMTF9TQ1JFRU46ImlzLXNtYWxsLXNjcmVlbiIsSVNfRFJBV0VSX09QRU46ImlzLXZpc2libGUiLElTX0FDVElWRToiaXMtYWN0aXZlIixJU19VUEdSQURFRDoiaXMtdXBncmFkZWQiLElTX0FOSU1BVElORzoiaXMtYW5pbWF0aW5nIixPTl9MQVJHRV9TQ1JFRU46Im1kbC1sYXlvdXQtLWxhcmdlLXNjcmVlbi1vbmx5IixPTl9TTUFMTF9TQ1JFRU46Im1kbC1sYXlvdXQtLXNtYWxsLXNjcmVlbi1vbmx5In0sSS5wcm90b3R5cGUuY29udGVudFNjcm9sbEhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5oZWFkZXJfLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLkNzc0NsYXNzZXNfLklTX0FOSU1BVElORyl8fCh0aGlzLmNvbnRlbnRfLnNjcm9sbFRvcD4wJiYhdGhpcy5oZWFkZXJfLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLkNzc0NsYXNzZXNfLklTX0NPTVBBQ1QpPyh0aGlzLmhlYWRlcl8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLkNBU1RJTkdfU0hBRE9XKSx0aGlzLmhlYWRlcl8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklTX0NPTVBBQ1QpLHRoaXMuaGVhZGVyXy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfQU5JTUFUSU5HKSk6dGhpcy5jb250ZW50Xy5zY3JvbGxUb3A8PTAmJnRoaXMuaGVhZGVyXy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5JU19DT01QQUNUKSYmKHRoaXMuaGVhZGVyXy5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ3NzQ2xhc3Nlc18uQ0FTVElOR19TSEFET1cpLHRoaXMuaGVhZGVyXy5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfQ09NUEFDVCksdGhpcy5oZWFkZXJfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19BTklNQVRJTkcpKSl9LEkucHJvdG90eXBlLnNjcmVlblNpemVIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMuc2NyZWVuU2l6ZU1lZGlhUXVlcnlfLm1hdGNoZXM/dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfU01BTExfU0NSRUVOKToodGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfU01BTExfU0NSRUVOKSx0aGlzLmRyYXdlcl8mJih0aGlzLmRyYXdlcl8uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNzc0NsYXNzZXNfLklTX0RSQVdFUl9PUEVOKSx0aGlzLm9iZnVzY2F0b3JfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19EUkFXRVJfT1BFTikpKX0sSS5wcm90b3R5cGUuZHJhd2VyVG9nZ2xlSGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLmRyYXdlcl8uY2xhc3NMaXN0LnRvZ2dsZSh0aGlzLkNzc0NsYXNzZXNfLklTX0RSQVdFUl9PUEVOKSx0aGlzLm9iZnVzY2F0b3JfLmNsYXNzTGlzdC50b2dnbGUodGhpcy5Dc3NDbGFzc2VzXy5JU19EUkFXRVJfT1BFTil9LEkucHJvdG90eXBlLmhlYWRlclRyYW5zaXRpb25FbmRIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMuaGVhZGVyXy5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfQU5JTUFUSU5HKX0sSS5wcm90b3R5cGUuaGVhZGVyQ2xpY2tIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMuaGVhZGVyXy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5JU19DT01QQUNUKSYmKHRoaXMuaGVhZGVyXy5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfQ09NUEFDVCksdGhpcy5oZWFkZXJfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19BTklNQVRJTkcpKX0sSS5wcm90b3R5cGUucmVzZXRUYWJTdGF0ZV89ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfQUNUSVZFKX0sSS5wcm90b3R5cGUucmVzZXRQYW5lbFN0YXRlXz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19BQ1RJVkUpfSxJLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7aWYodGhpcy5lbGVtZW50Xyl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uQ09OVEFJTkVSKSx0aGlzLmVsZW1lbnRfLnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGUsdGhpcy5lbGVtZW50XyksdGhpcy5lbGVtZW50Xy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudF8pLGUuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50Xyk7Zm9yKHZhciBzPXRoaXMuZWxlbWVudF8uY2hpbGROb2RlcyxpPXMubGVuZ3RoLG49MDtpPm47bisrKXt2YXIgYT1zW25dO2EuY2xhc3NMaXN0JiZhLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLkNzc0NsYXNzZXNfLkhFQURFUikmJih0aGlzLmhlYWRlcl89YSksYS5jbGFzc0xpc3QmJmEuY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uRFJBV0VSKSYmKHRoaXMuZHJhd2VyXz1hKSxhLmNsYXNzTGlzdCYmYS5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5DT05URU5UKSYmKHRoaXMuY29udGVudF89YSl9dGhpcy5oZWFkZXJfJiYodGhpcy50YWJCYXJfPXRoaXMuaGVhZGVyXy5xdWVyeVNlbGVjdG9yKCIuIit0aGlzLkNzc0NsYXNzZXNfLlRBQl9CQVIpKTt2YXIgbD10aGlzLk1vZGVfLlNUQU5EQVJEO2lmKHRoaXMuaGVhZGVyXyYmKHRoaXMuaGVhZGVyXy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5IRUFERVJfU0VBTUVEKT9sPXRoaXMuTW9kZV8uU0VBTUVEOnRoaXMuaGVhZGVyXy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5IRUFERVJfV0FURVJGQUxMKT8obD10aGlzLk1vZGVfLldBVEVSRkFMTCx0aGlzLmhlYWRlcl8uYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdGhpcy5oZWFkZXJUcmFuc2l0aW9uRW5kSGFuZGxlcl8uYmluZCh0aGlzKSksdGhpcy5oZWFkZXJfLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmhlYWRlckNsaWNrSGFuZGxlcl8uYmluZCh0aGlzKSkpOnRoaXMuaGVhZGVyXy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5IRUFERVJfU0NST0xMKSYmKGw9dGhpcy5Nb2RlXy5TQ1JPTEwsZS5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uSEFTX1NDUk9MTElOR19IRUFERVIpKSxsPT09dGhpcy5Nb2RlXy5TVEFOREFSRD8odGhpcy5oZWFkZXJfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5DQVNUSU5HX1NIQURPVyksdGhpcy50YWJCYXJfJiZ0aGlzLnRhYkJhcl8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLkNBU1RJTkdfU0hBRE9XKSk6bD09PXRoaXMuTW9kZV8uU0VBTUVEfHxsPT09dGhpcy5Nb2RlXy5TQ1JPTEw/KHRoaXMuaGVhZGVyXy5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ3NzQ2xhc3Nlc18uQ0FTVElOR19TSEFET1cpLHRoaXMudGFiQmFyXyYmdGhpcy50YWJCYXJfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5DQVNUSU5HX1NIQURPVykpOmw9PT10aGlzLk1vZGVfLldBVEVSRkFMTCYmKHRoaXMuY29udGVudF8uYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLmNvbnRlbnRTY3JvbGxIYW5kbGVyXy5iaW5kKHRoaXMpKSx0aGlzLmNvbnRlbnRTY3JvbGxIYW5kbGVyXygpKSksdGhpcy5kcmF3ZXJfKXt2YXIgbz10aGlzLmVsZW1lbnRfLnF1ZXJ5U2VsZWN0b3IoIi4iK3RoaXMuQ3NzQ2xhc3Nlc18uRFJBV0VSX0JUTik7aWYoIW8pe289ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksby5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uRFJBV0VSX0JUTik7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpO3IuY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklDT04pLHIudGV4dENvbnRlbnQ9dGhpcy5Db25zdGFudF8uTUVOVV9JQ09OLG8uYXBwZW5kQ2hpbGQocil9dGhpcy5kcmF3ZXJfLmNsYXNzTGlzdC5jb250YWlucyh0aGlzLkNzc0NsYXNzZXNfLk9OX0xBUkdFX1NDUkVFTik/by5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uT05fTEFSR0VfU0NSRUVOKTp0aGlzLmRyYXdlcl8uY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uT05fU01BTExfU0NSRUVOKSYmby5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uT05fU01BTExfU0NSRUVOKSxvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmRyYXdlclRvZ2dsZUhhbmRsZXJfLmJpbmQodGhpcykpLHRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLkhBU19EUkFXRVIpLHRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uRklYRURfSEVBREVSKT90aGlzLmhlYWRlcl8uaW5zZXJ0QmVmb3JlKG8sdGhpcy5oZWFkZXJfLmZpcnN0Q2hpbGQpOnRoaXMuZWxlbWVudF8uaW5zZXJ0QmVmb3JlKG8sdGhpcy5jb250ZW50Xyk7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uT0JGVVNDQVRPUiksdGhpcy5lbGVtZW50Xy5hcHBlbmRDaGlsZChkKSxkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmRyYXdlclRvZ2dsZUhhbmRsZXJfLmJpbmQodGhpcykpLHRoaXMub2JmdXNjYXRvcl89ZH1pZih0aGlzLnNjcmVlblNpemVNZWRpYVF1ZXJ5Xz13aW5kb3cubWF0Y2hNZWRpYSh0aGlzLkNvbnN0YW50Xy5NQVhfV0lEVEgpLHRoaXMuc2NyZWVuU2l6ZU1lZGlhUXVlcnlfLmFkZExpc3RlbmVyKHRoaXMuc2NyZWVuU2l6ZUhhbmRsZXJfLmJpbmQodGhpcykpLHRoaXMuc2NyZWVuU2l6ZUhhbmRsZXJfKCksdGhpcy5oZWFkZXJfJiZ0aGlzLnRhYkJhcl8pe3RoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLkhBU19UQUJTKTt2YXIgXz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5UQUJfQ09OVEFJTkVSKSx0aGlzLmhlYWRlcl8uaW5zZXJ0QmVmb3JlKF8sdGhpcy50YWJCYXJfKSx0aGlzLmhlYWRlcl8ucmVtb3ZlQ2hpbGQodGhpcy50YWJCYXJfKTt2YXIgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtoLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5UQUJfQkFSX0JVVFRPTiksaC5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uVEFCX0JBUl9MRUZUX0JVVFRPTik7dmFyIHA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpO3AuY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklDT04pLHAudGV4dENvbnRlbnQ9dGhpcy5Db25zdGFudF8uQ0hFVlJPTl9MRUZULGguYXBwZW5kQ2hpbGQocCksaC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt0aGlzLnRhYkJhcl8uc2Nyb2xsTGVmdC09dGhpcy5Db25zdGFudF8uVEFCX1NDUk9MTF9QSVhFTFN9LmJpbmQodGhpcykpO3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2MuY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLlRBQl9CQVJfQlVUVE9OKSxjLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5UQUJfQkFSX1JJR0hUX0JVVFRPTik7dmFyIHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaSIpO3UuY2xhc3NMaXN0LmFkZCh0aGlzLkNzc0NsYXNzZXNfLklDT04pLHUudGV4dENvbnRlbnQ9dGhpcy5Db25zdGFudF8uQ0hFVlJPTl9SSUdIVCxjLmFwcGVuZENoaWxkKHUpLGMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dGhpcy50YWJCYXJfLnNjcm9sbExlZnQrPXRoaXMuQ29uc3RhbnRfLlRBQl9TQ1JPTExfUElYRUxTfS5iaW5kKHRoaXMpKSxfLmFwcGVuZENoaWxkKGgpLF8uYXBwZW5kQ2hpbGQodGhpcy50YWJCYXJfKSxfLmFwcGVuZENoaWxkKGMpO3ZhciBDPWZ1bmN0aW9uKCl7dGhpcy50YWJCYXJfLnNjcm9sbExlZnQ+MD9oLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19BQ1RJVkUpOmguY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNzc0NsYXNzZXNfLklTX0FDVElWRSksdGhpcy50YWJCYXJfLnNjcm9sbExlZnQ8dGhpcy50YWJCYXJfLnNjcm9sbFdpZHRoLXRoaXMudGFiQmFyXy5vZmZzZXRXaWR0aD9jLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19BQ1RJVkUpOmMuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNzc0NsYXNzZXNfLklTX0FDVElWRSl9LmJpbmQodGhpcyk7dGhpcy50YWJCYXJfLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsQyksQygpLHRoaXMudGFiQmFyXy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5KU19SSVBQTEVfRUZGRUNUKSYmdGhpcy50YWJCYXJfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5SSVBQTEVfSUdOT1JFX0VWRU5UUyk7Zm9yKHZhciBtPXRoaXMudGFiQmFyXy5xdWVyeVNlbGVjdG9yQWxsKCIuIit0aGlzLkNzc0NsYXNzZXNfLlRBQiksRT10aGlzLmNvbnRlbnRfLnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK3RoaXMuQ3NzQ2xhc3Nlc18uUEFORUwpLEw9MDtMPG0ubGVuZ3RoO0wrKyluZXcgdChtW0xdLG0sRSx0aGlzKX10aGlzLmVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19VUEdSQURFRCl9fSxzLnJlZ2lzdGVyKHtjb25zdHJ1Y3RvcjpJLGNsYXNzQXNTdHJpbmc6Ik1hdGVyaWFsTGF5b3V0Iixjc3NDbGFzczoibWRsLWpzLWxheW91dCJ9KTt2YXIgZj1mdW5jdGlvbihlKXt0aGlzLmVsZW1lbnRfPWUsdGhpcy5pbml0KCl9O3dpbmRvdy5NYXRlcmlhbERhdGFUYWJsZT1mLGYucHJvdG90eXBlLkNvbnN0YW50Xz17fSxmLnByb3RvdHlwZS5Dc3NDbGFzc2VzXz17REFUQV9UQUJMRToibWRsLWRhdGEtdGFibGUiLFNFTEVDVEFCTEU6Im1kbC1kYXRhLXRhYmxlLS1zZWxlY3RhYmxlIixTRUxFQ1RfRUxFTUVOVDoibWRsLWRhdGEtdGFibGVfX3NlbGVjdCIsSVNfU0VMRUNURUQ6ImlzLXNlbGVjdGVkIixJU19VUEdSQURFRDoiaXMtdXBncmFkZWQifSxmLnByb3RvdHlwZS5zZWxlY3RSb3dfPWZ1bmN0aW9uKGUsdCxzKXtyZXR1cm4gdD9mdW5jdGlvbigpe2UuY2hlY2tlZD90LmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19TRUxFQ1RFRCk6dC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfU0VMRUNURUQpfS5iaW5kKHRoaXMpOnM/ZnVuY3Rpb24oKXt2YXIgdCxpO2lmKGUuY2hlY2tlZClmb3IodD0wO3Q8cy5sZW5ndGg7dCsrKWk9c1t0XS5xdWVyeVNlbGVjdG9yKCJ0ZCIpLnF1ZXJ5U2VsZWN0b3IoIi5tZGwtY2hlY2tib3giKSxpLk1hdGVyaWFsQ2hlY2tib3guY2hlY2soKSxzW3RdLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19TRUxFQ1RFRCk7ZWxzZSBmb3IodD0wO3Q8cy5sZW5ndGg7dCsrKWk9c1t0XS5xdWVyeVNlbGVjdG9yKCJ0ZCIpLnF1ZXJ5U2VsZWN0b3IoIi5tZGwtY2hlY2tib3giKSxpLk1hdGVyaWFsQ2hlY2tib3gudW5jaGVjaygpLHNbdF0uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNzc0NsYXNzZXNfLklTX1NFTEVDVEVEKX0uYmluZCh0aGlzKTp2b2lkIDB9LGYucHJvdG90eXBlLmNyZWF0ZUNoZWNrYm94Xz1mdW5jdGlvbihlLHQpe3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIiksbj1bIm1kbC1jaGVja2JveCIsIm1kbC1qcy1jaGVja2JveCIsIm1kbC1qcy1yaXBwbGUtZWZmZWN0Iix0aGlzLkNzc0NsYXNzZXNfLlNFTEVDVF9FTEVNRU5UXTtpLmNsYXNzTmFtZT1uLmpvaW4oIiAiKTt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3JldHVybiBhLnR5cGU9ImNoZWNrYm94IixhLmNsYXNzTGlzdC5hZGQoIm1kbC1jaGVja2JveF9faW5wdXQiKSxhLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5zZWxlY3RSb3dfKGEsZSx0KSksaS5hcHBlbmRDaGlsZChhKSxzLnVwZ3JhZGVFbGVtZW50KGksIk1hdGVyaWFsQ2hlY2tib3giKSxpfSxmLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7aWYodGhpcy5lbGVtZW50Xyl7dmFyIGU9dGhpcy5lbGVtZW50Xy5xdWVyeVNlbGVjdG9yKCJ0aCIpLHQ9dGhpcy5lbGVtZW50Xy5xdWVyeVNlbGVjdG9yKCJ0Ym9keSIpLnF1ZXJ5U2VsZWN0b3JBbGwoInRyIik7aWYodGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5TRUxFQ1RBQkxFKSl7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGgiKSxpPXRoaXMuY3JlYXRlQ2hlY2tib3hfKG51bGwsdCk7cy5hcHBlbmRDaGlsZChpKSxlLnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKHMsZSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBhPXRbbl0ucXVlcnlTZWxlY3RvcigidGQiKTtpZihhKXt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpLG89dGhpcy5jcmVhdGVDaGVja2JveF8odFtuXSk7bC5hcHBlbmRDaGlsZChvKSx0W25dLmluc2VydEJlZm9yZShsLGEpfX19dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfVVBHUkFERUQpfX0scy5yZWdpc3Rlcih7Y29uc3RydWN0b3I6ZixjbGFzc0FzU3RyaW5nOiJNYXRlcmlhbERhdGFUYWJsZSIsY3NzQ2xhc3M6Im1kbC1qcy1kYXRhLXRhYmxlIn0pO3ZhciBiPWZ1bmN0aW9uKGUpe3RoaXMuZWxlbWVudF89ZSx0aGlzLmluaXQoKX07d2luZG93Lk1hdGVyaWFsUmlwcGxlPWIsYi5wcm90b3R5cGUuQ29uc3RhbnRfPXtJTklUSUFMX1NDQUxFOiJzY2FsZSgwLjAwMDEsIDAuMDAwMSkiLElOSVRJQUxfU0laRToiMXB4IixJTklUSUFMX09QQUNJVFk6IjAuNCIsRklOQUxfT1BBQ0lUWToiMCIsRklOQUxfU0NBTEU6IiJ9LGIucHJvdG90eXBlLkNzc0NsYXNzZXNfPXtSSVBQTEVfQ0VOVEVSOiJtZGwtcmlwcGxlLS1jZW50ZXIiLFJJUFBMRV9FRkZFQ1RfSUdOT1JFX0VWRU5UUzoibWRsLWpzLXJpcHBsZS1lZmZlY3QtLWlnbm9yZS1ldmVudHMiLFJJUFBMRToibWRsLXJpcHBsZSIsSVNfQU5JTUFUSU5HOiJpcy1hbmltYXRpbmciLElTX1ZJU0lCTEU6ImlzLXZpc2libGUifSxiLnByb3RvdHlwZS5kb3duSGFuZGxlcl89ZnVuY3Rpb24oZSl7aWYoIXRoaXMucmlwcGxlRWxlbWVudF8uc3R5bGUud2lkdGgmJiF0aGlzLnJpcHBsZUVsZW1lbnRfLnN0eWxlLmhlaWdodCl7dmFyIHQ9dGhpcy5lbGVtZW50Xy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLmJvdW5kSGVpZ2h0PXQuaGVpZ2h0LHRoaXMuYm91bmRXaWR0aD10LndpZHRoLHRoaXMucmlwcGxlU2l6ZV89MipNYXRoLnNxcnQodC53aWR0aCp0LndpZHRoK3QuaGVpZ2h0KnQuaGVpZ2h0KSsyLHRoaXMucmlwcGxlRWxlbWVudF8uc3R5bGUud2lkdGg9dGhpcy5yaXBwbGVTaXplXysicHgiLHRoaXMucmlwcGxlRWxlbWVudF8uc3R5bGUuaGVpZ2h0PXRoaXMucmlwcGxlU2l6ZV8rInB4In1pZih0aGlzLnJpcHBsZUVsZW1lbnRfLmNsYXNzTGlzdC5hZGQodGhpcy5Dc3NDbGFzc2VzXy5JU19WSVNJQkxFKSwibW91c2Vkb3duIj09PWUudHlwZSYmdGhpcy5pZ25vcmluZ01vdXNlRG93bl8pdGhpcy5pZ25vcmluZ01vdXNlRG93bl89ITE7ZWxzZXsidG91Y2hzdGFydCI9PT1lLnR5cGUmJih0aGlzLmlnbm9yaW5nTW91c2VEb3duXz0hMCk7dmFyIHM9dGhpcy5nZXRGcmFtZUNvdW50KCk7aWYocz4wKXJldHVybjt0aGlzLnNldEZyYW1lQ291bnQoMSk7dmFyIGksbixhPWUuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZigwPT09ZS5jbGllbnRYJiYwPT09ZS5jbGllbnRZKWk9TWF0aC5yb3VuZChhLndpZHRoLzIpLG49TWF0aC5yb3VuZChhLmhlaWdodC8yKTtlbHNle3ZhciBsPWUuY2xpZW50WD9lLmNsaWVudFg6ZS50b3VjaGVzWzBdLmNsaWVudFgsbz1lLmNsaWVudFk/ZS5jbGllbnRZOmUudG91Y2hlc1swXS5jbGllbnRZO2k9TWF0aC5yb3VuZChsLWEubGVmdCksbj1NYXRoLnJvdW5kKG8tYS50b3ApfXRoaXMuc2V0UmlwcGxlWFkoaSxuKSx0aGlzLnNldFJpcHBsZVN0eWxlcyghMCksd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1GcmFtZUhhbmRsZXIuYmluZCh0aGlzKSl9fSxiLnByb3RvdHlwZS51cEhhbmRsZXJfPWZ1bmN0aW9uKGUpe2UmJjIhPT1lLmRldGFpbCYmdGhpcy5yaXBwbGVFbGVtZW50Xy5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfVklTSUJMRSksd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aGlzLnJpcHBsZUVsZW1lbnRfLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5Dc3NDbGFzc2VzXy5JU19WSVNJQkxFKX0uYmluZCh0aGlzKSwwKX0sYi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe2lmKHRoaXMuZWxlbWVudF8pe3ZhciBlPXRoaXMuZWxlbWVudF8uY2xhc3NMaXN0LmNvbnRhaW5zKHRoaXMuQ3NzQ2xhc3Nlc18uUklQUExFX0NFTlRFUik7dGhpcy5lbGVtZW50Xy5jbGFzc0xpc3QuY29udGFpbnModGhpcy5Dc3NDbGFzc2VzXy5SSVBQTEVfRUZGRUNUX0lHTk9SRV9FVkVOVFMpfHwodGhpcy5yaXBwbGVFbGVtZW50Xz10aGlzLmVsZW1lbnRfLnF1ZXJ5U2VsZWN0b3IoIi4iK3RoaXMuQ3NzQ2xhc3Nlc18uUklQUExFKSx0aGlzLmZyYW1lQ291bnRfPTAsdGhpcy5yaXBwbGVTaXplXz0wLHRoaXMueF89MCx0aGlzLnlfPTAsdGhpcy5pZ25vcmluZ01vdXNlRG93bl89ITEsdGhpcy5ib3VuZERvd25IYW5kbGVyPXRoaXMuZG93bkhhbmRsZXJfLmJpbmQodGhpcyksdGhpcy5lbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuYm91bmREb3duSGFuZGxlciksdGhpcy5lbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLmJvdW5kRG93bkhhbmRsZXIpLHRoaXMuYm91bmRVcEhhbmRsZXI9dGhpcy51cEhhbmRsZXJfLmJpbmQodGhpcyksdGhpcy5lbGVtZW50Xy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLmJvdW5kVXBIYW5kbGVyKSx0aGlzLmVsZW1lbnRfLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuYm91bmRVcEhhbmRsZXIpLHRoaXMuZWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuYm91bmRVcEhhbmRsZXIpLHRoaXMuZWxlbWVudF8uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5ib3VuZFVwSGFuZGxlciksdGhpcy5nZXRGcmFtZUNvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnJhbWVDb3VudF99LHRoaXMuc2V0RnJhbWVDb3VudD1mdW5jdGlvbihlKXt0aGlzLmZyYW1lQ291bnRfPWV9LHRoaXMuZ2V0UmlwcGxlRWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJpcHBsZUVsZW1lbnRffSx0aGlzLnNldFJpcHBsZVhZPWZ1bmN0aW9uKGUsdCl7dGhpcy54Xz1lLHRoaXMueV89dH0sdGhpcy5zZXRSaXBwbGVTdHlsZXM9ZnVuY3Rpb24odCl7aWYobnVsbCE9PXRoaXMucmlwcGxlRWxlbWVudF8pe3ZhciBzLGksbixhPSJ0cmFuc2xhdGUoIit0aGlzLnhfKyJweCwgIit0aGlzLnlfKyJweCkiO3Q/KGk9dGhpcy5Db25zdGFudF8uSU5JVElBTF9TQ0FMRSxuPXRoaXMuQ29uc3RhbnRfLklOSVRJQUxfU0laRSk6KGk9dGhpcy5Db25zdGFudF8uRklOQUxfU0NBTEUsbj10aGlzLnJpcHBsZVNpemVfKyJweCIsZSYmKGE9InRyYW5zbGF0ZSgiK3RoaXMuYm91bmRXaWR0aC8yKyJweCwgIit0aGlzLmJvdW5kSGVpZ2h0LzIrInB4KSIpKSxzPSJ0cmFuc2xhdGUoLTUwJSwgLTUwJSkgIithK2ksdGhpcy5yaXBwbGVFbGVtZW50Xy5zdHlsZS53ZWJraXRUcmFuc2Zvcm09cyx0aGlzLnJpcHBsZUVsZW1lbnRfLnN0eWxlLm1zVHJhbnNmb3JtPXMsdGhpcy5yaXBwbGVFbGVtZW50Xy5zdHlsZS50cmFuc2Zvcm09cyx0P3RoaXMucmlwcGxlRWxlbWVudF8uY2xhc3NMaXN0LnJlbW92ZSh0aGlzLkNzc0NsYXNzZXNfLklTX0FOSU1BVElORyk6dGhpcy5yaXBwbGVFbGVtZW50Xy5jbGFzc0xpc3QuYWRkKHRoaXMuQ3NzQ2xhc3Nlc18uSVNfQU5JTUFUSU5HKX19LHRoaXMuYW5pbUZyYW1lSGFuZGxlcj1mdW5jdGlvbigpe3RoaXMuZnJhbWVDb3VudF8tLT4wP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5hbmltRnJhbWVIYW5kbGVyLmJpbmQodGhpcykpOnRoaXMuc2V0UmlwcGxlU3R5bGVzKCExKX0pfX0sYi5wcm90b3R5cGUubWRsRG93bmdyYWRlXz1mdW5jdGlvbigpe3RoaXMuZWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLmJvdW5kRG93bkhhbmRsZXIpLHRoaXMuZWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5ib3VuZERvd25IYW5kbGVyKSx0aGlzLmVsZW1lbnRfLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuYm91bmRVcEhhbmRsZXIpLHRoaXMuZWxlbWVudF8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5ib3VuZFVwSGFuZGxlciksdGhpcy5lbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5ib3VuZFVwSGFuZGxlciksdGhpcy5lbGVtZW50Xy5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLmJvdW5kVXBIYW5kbGVyKX0sYi5wcm90b3R5cGUubWRsRG93bmdyYWRlPWIucHJvdG90eXBlLm1kbERvd25ncmFkZV8sYi5wcm90b3R5cGUubWRsRG93bmdyYWRlPWIucHJvdG90eXBlLm1kbERvd25ncmFkZSxzLnJlZ2lzdGVyKHtjb25zdHJ1Y3RvcjpiLGNsYXNzQXNTdHJpbmc6Ik1hdGVyaWFsUmlwcGxlIixjc3NDbGFzczoibWRsLWpzLXJpcHBsZS1lZmZlY3QiLHdpZGdldDohMX0pfSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1tYXRlcmlhbC5taW4uanMubWFwCjwvc2NyaXB0Pgo8c3R5bGU+CiAgLyogZmFsbGJhY2sgKi8KICBAZm9udC1mYWNlIHsKICAgIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnOwogICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9tYXRlcmlhbGljb25zL3YxMzkvZmxVaFJxNnR6WmNsUUVKLVZkZy1JdWlhRHNOYy53b2ZmMikgZm9ybWF0KCd3b2ZmMicpOwogIH0KCiAgLm1hdGVyaWFsLWljb25zIHsKICAgIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnOwogICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsKICAgIGZvbnQtc2l6ZTogMjRweDsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsKICAgIHRleHQtdHJhbnNmb3JtOiBub25lOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIHdvcmQtd3JhcDogbm9ybWFsOwogICAgZGlyZWN0aW9uOiBsdHI7CiAgICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgfQo8L3N0eWxlPgo8c3R5bGU+Ci8qIQogKiBNYXRlcmlhbGl6ZSB2MS4wLjAgKGh0dHA6Ly9tYXRlcmlhbGl6ZWNzcy5jb20pCiAqIENvcHlyaWdodCAyMDE0LTIwMTcgTWF0ZXJpYWxpemUKICogTUlUIExpY2Vuc2UgKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9Eb2dmYWxvL21hdGVyaWFsaXplL21hc3Rlci9MSUNFTlNFKQogKi8KLm1hdGVyaWFsaXplLXJlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlNTFjMjMgIWltcG9ydGFudH0ubWF0ZXJpYWxpemUtcmVkLXRleHR7Y29sb3I6I2U1MWMyMyAhaW1wb3J0YW50fS5tYXRlcmlhbGl6ZS1yZWQubGlnaHRlbi01e2JhY2tncm91bmQtY29sb3I6I2ZkZWFlYiAhaW1wb3J0YW50fS5tYXRlcmlhbGl6ZS1yZWQtdGV4dC50ZXh0LWxpZ2h0ZW4tNXtjb2xvcjojZmRlYWViICFpbXBvcnRhbnR9Lm1hdGVyaWFsaXplLXJlZC5saWdodGVuLTR7YmFja2dyb3VuZC1jb2xvcjojZjhjMWMzICFpbXBvcnRhbnR9Lm1hdGVyaWFsaXplLXJlZC10ZXh0LnRleHQtbGlnaHRlbi00e2NvbG9yOiNmOGMxYzMgIWltcG9ydGFudH0ubWF0ZXJpYWxpemUtcmVkLmxpZ2h0ZW4tM3tiYWNrZ3JvdW5kLWNvbG9yOiNmMzk4OWIgIWltcG9ydGFudH0ubWF0ZXJpYWxpemUtcmVkLXRleHQudGV4dC1saWdodGVuLTN7Y29sb3I6I2YzOTg5YiAhaW1wb3J0YW50fS5tYXRlcmlhbGl6ZS1yZWQubGlnaHRlbi0ye2JhY2tncm91bmQtY29sb3I6I2VlNmU3MyAhaW1wb3J0YW50fS5tYXRlcmlhbGl6ZS1yZWQtdGV4dC50ZXh0LWxpZ2h0ZW4tMntjb2xvcjojZWU2ZTczICFpbXBvcnRhbnR9Lm1hdGVyaWFsaXplLXJlZC5saWdodGVuLTF7YmFja2dyb3VuZC1jb2xvcjojZWE0NTRiICFpbXBvcnRhbnR9Lm1hdGVyaWFsaXplLXJlZC10ZXh0LnRleHQtbGlnaHRlbi0xe2NvbG9yOiNlYTQ1NGIgIWltcG9ydGFudH0ubWF0ZXJpYWxpemUtcmVkLmRhcmtlbi0xe2JhY2tncm91bmQtY29sb3I6I2QwMTgxZSAhaW1wb3J0YW50fS5tYXRlcmlhbGl6ZS1yZWQtdGV4dC50ZXh0LWRhcmtlbi0xe2NvbG9yOiNkMDE4MWUgIWltcG9ydGFudH0ubWF0ZXJpYWxpemUtcmVkLmRhcmtlbi0ye2JhY2tncm91bmQtY29sb3I6I2I5MTUxYiAhaW1wb3J0YW50fS5tYXRlcmlhbGl6ZS1yZWQtdGV4dC50ZXh0LWRhcmtlbi0ye2NvbG9yOiNiOTE1MWIgIWltcG9ydGFudH0ubWF0ZXJpYWxpemUtcmVkLmRhcmtlbi0ze2JhY2tncm91bmQtY29sb3I6I2EyMTMxOCAhaW1wb3J0YW50fS5tYXRlcmlhbGl6ZS1yZWQtdGV4dC50ZXh0LWRhcmtlbi0ze2NvbG9yOiNhMjEzMTggIWltcG9ydGFudH0ubWF0ZXJpYWxpemUtcmVkLmRhcmtlbi00e2JhY2tncm91bmQtY29sb3I6IzhiMTAxNCAhaW1wb3J0YW50fS5tYXRlcmlhbGl6ZS1yZWQtdGV4dC50ZXh0LWRhcmtlbi00e2NvbG9yOiM4YjEwMTQgIWltcG9ydGFudH0ucmVke2JhY2tncm91bmQtY29sb3I6I0Y0NDMzNiAhaW1wb3J0YW50fS5yZWQtdGV4dHtjb2xvcjojRjQ0MzM2ICFpbXBvcnRhbnR9LnJlZC5saWdodGVuLTV7YmFja2dyb3VuZC1jb2xvcjojRkZFQkVFICFpbXBvcnRhbnR9LnJlZC10ZXh0LnRleHQtbGlnaHRlbi01e2NvbG9yOiNGRkVCRUUgIWltcG9ydGFudH0ucmVkLmxpZ2h0ZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiNGRkNERDIgIWltcG9ydGFudH0ucmVkLXRleHQudGV4dC1saWdodGVuLTR7Y29sb3I6I0ZGQ0REMiAhaW1wb3J0YW50fS5yZWQubGlnaHRlbi0ze2JhY2tncm91bmQtY29sb3I6I0VGOUE5QSAhaW1wb3J0YW50fS5yZWQtdGV4dC50ZXh0LWxpZ2h0ZW4tM3tjb2xvcjojRUY5QTlBICFpbXBvcnRhbnR9LnJlZC5saWdodGVuLTJ7YmFja2dyb3VuZC1jb2xvcjojRTU3MzczICFpbXBvcnRhbnR9LnJlZC10ZXh0LnRleHQtbGlnaHRlbi0ye2NvbG9yOiNFNTczNzMgIWltcG9ydGFudH0ucmVkLmxpZ2h0ZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiNFRjUzNTAgIWltcG9ydGFudH0ucmVkLXRleHQudGV4dC1saWdodGVuLTF7Y29sb3I6I0VGNTM1MCAhaW1wb3J0YW50fS5yZWQuZGFya2VuLTF7YmFja2dyb3VuZC1jb2xvcjojRTUzOTM1ICFpbXBvcnRhbnR9LnJlZC10ZXh0LnRleHQtZGFya2VuLTF7Y29sb3I6I0U1MzkzNSAhaW1wb3J0YW50fS5yZWQuZGFya2VuLTJ7YmFja2dyb3VuZC1jb2xvcjojRDMyRjJGICFpbXBvcnRhbnR9LnJlZC10ZXh0LnRleHQtZGFya2VuLTJ7Y29sb3I6I0QzMkYyRiAhaW1wb3J0YW50fS5yZWQuZGFya2VuLTN7YmFja2dyb3VuZC1jb2xvcjojQzYyODI4ICFpbXBvcnRhbnR9LnJlZC10ZXh0LnRleHQtZGFya2VuLTN7Y29sb3I6I0M2MjgyOCAhaW1wb3J0YW50fS5yZWQuZGFya2VuLTR7YmFja2dyb3VuZC1jb2xvcjojQjcxQzFDICFpbXBvcnRhbnR9LnJlZC10ZXh0LnRleHQtZGFya2VuLTR7Y29sb3I6I0I3MUMxQyAhaW1wb3J0YW50fS5yZWQuYWNjZW50LTF7YmFja2dyb3VuZC1jb2xvcjojRkY4QTgwICFpbXBvcnRhbnR9LnJlZC10ZXh0LnRleHQtYWNjZW50LTF7Y29sb3I6I0ZGOEE4MCAhaW1wb3J0YW50fS5yZWQuYWNjZW50LTJ7YmFja2dyb3VuZC1jb2xvcjojRkY1MjUyICFpbXBvcnRhbnR9LnJlZC10ZXh0LnRleHQtYWNjZW50LTJ7Y29sb3I6I0ZGNTI1MiAhaW1wb3J0YW50fS5yZWQuYWNjZW50LTN7YmFja2dyb3VuZC1jb2xvcjojRkYxNzQ0ICFpbXBvcnRhbnR9LnJlZC10ZXh0LnRleHQtYWNjZW50LTN7Y29sb3I6I0ZGMTc0NCAhaW1wb3J0YW50fS5yZWQuYWNjZW50LTR7YmFja2dyb3VuZC1jb2xvcjojRDUwMDAwICFpbXBvcnRhbnR9LnJlZC10ZXh0LnRleHQtYWNjZW50LTR7Y29sb3I6I0Q1MDAwMCAhaW1wb3J0YW50fS5waW5re2JhY2tncm91bmQtY29sb3I6I2U5MWU2MyAhaW1wb3J0YW50fS5waW5rLXRleHR7Y29sb3I6I2U5MWU2MyAhaW1wb3J0YW50fS5waW5rLmxpZ2h0ZW4tNXtiYWNrZ3JvdW5kLWNvbG9yOiNmY2U0ZWMgIWltcG9ydGFudH0ucGluay10ZXh0LnRleHQtbGlnaHRlbi01e2NvbG9yOiNmY2U0ZWMgIWltcG9ydGFudH0ucGluay5saWdodGVuLTR7YmFja2dyb3VuZC1jb2xvcjojZjhiYmQwICFpbXBvcnRhbnR9LnBpbmstdGV4dC50ZXh0LWxpZ2h0ZW4tNHtjb2xvcjojZjhiYmQwICFpbXBvcnRhbnR9LnBpbmsubGlnaHRlbi0ze2JhY2tncm91bmQtY29sb3I6I2Y0OGZiMSAhaW1wb3J0YW50fS5waW5rLXRleHQudGV4dC1saWdodGVuLTN7Y29sb3I6I2Y0OGZiMSAhaW1wb3J0YW50fS5waW5rLmxpZ2h0ZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiNmMDYyOTIgIWltcG9ydGFudH0ucGluay10ZXh0LnRleHQtbGlnaHRlbi0ye2NvbG9yOiNmMDYyOTIgIWltcG9ydGFudH0ucGluay5saWdodGVuLTF7YmFja2dyb3VuZC1jb2xvcjojZWM0MDdhICFpbXBvcnRhbnR9LnBpbmstdGV4dC50ZXh0LWxpZ2h0ZW4tMXtjb2xvcjojZWM0MDdhICFpbXBvcnRhbnR9LnBpbmsuZGFya2VuLTF7YmFja2dyb3VuZC1jb2xvcjojZDgxYjYwICFpbXBvcnRhbnR9LnBpbmstdGV4dC50ZXh0LWRhcmtlbi0xe2NvbG9yOiNkODFiNjAgIWltcG9ydGFudH0ucGluay5kYXJrZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiNjMjE4NWIgIWltcG9ydGFudH0ucGluay10ZXh0LnRleHQtZGFya2VuLTJ7Y29sb3I6I2MyMTg1YiAhaW1wb3J0YW50fS5waW5rLmRhcmtlbi0ze2JhY2tncm91bmQtY29sb3I6I2FkMTQ1NyAhaW1wb3J0YW50fS5waW5rLXRleHQudGV4dC1kYXJrZW4tM3tjb2xvcjojYWQxNDU3ICFpbXBvcnRhbnR9LnBpbmsuZGFya2VuLTR7YmFja2dyb3VuZC1jb2xvcjojODgwZTRmICFpbXBvcnRhbnR9LnBpbmstdGV4dC50ZXh0LWRhcmtlbi00e2NvbG9yOiM4ODBlNGYgIWltcG9ydGFudH0ucGluay5hY2NlbnQtMXtiYWNrZ3JvdW5kLWNvbG9yOiNmZjgwYWIgIWltcG9ydGFudH0ucGluay10ZXh0LnRleHQtYWNjZW50LTF7Y29sb3I6I2ZmODBhYiAhaW1wb3J0YW50fS5waW5rLmFjY2VudC0ye2JhY2tncm91bmQtY29sb3I6I2ZmNDA4MSAhaW1wb3J0YW50fS5waW5rLXRleHQudGV4dC1hY2NlbnQtMntjb2xvcjojZmY0MDgxICFpbXBvcnRhbnR9LnBpbmsuYWNjZW50LTN7YmFja2dyb3VuZC1jb2xvcjojZjUwMDU3ICFpbXBvcnRhbnR9LnBpbmstdGV4dC50ZXh0LWFjY2VudC0ze2NvbG9yOiNmNTAwNTcgIWltcG9ydGFudH0ucGluay5hY2NlbnQtNHtiYWNrZ3JvdW5kLWNvbG9yOiNjNTExNjIgIWltcG9ydGFudH0ucGluay10ZXh0LnRleHQtYWNjZW50LTR7Y29sb3I6I2M1MTE2MiAhaW1wb3J0YW50fS5wdXJwbGV7YmFja2dyb3VuZC1jb2xvcjojOWMyN2IwICFpbXBvcnRhbnR9LnB1cnBsZS10ZXh0e2NvbG9yOiM5YzI3YjAgIWltcG9ydGFudH0ucHVycGxlLmxpZ2h0ZW4tNXtiYWNrZ3JvdW5kLWNvbG9yOiNmM2U1ZjUgIWltcG9ydGFudH0ucHVycGxlLXRleHQudGV4dC1saWdodGVuLTV7Y29sb3I6I2YzZTVmNSAhaW1wb3J0YW50fS5wdXJwbGUubGlnaHRlbi00e2JhY2tncm91bmQtY29sb3I6I2UxYmVlNyAhaW1wb3J0YW50fS5wdXJwbGUtdGV4dC50ZXh0LWxpZ2h0ZW4tNHtjb2xvcjojZTFiZWU3ICFpbXBvcnRhbnR9LnB1cnBsZS5saWdodGVuLTN7YmFja2dyb3VuZC1jb2xvcjojY2U5M2Q4ICFpbXBvcnRhbnR9LnB1cnBsZS10ZXh0LnRleHQtbGlnaHRlbi0ze2NvbG9yOiNjZTkzZDggIWltcG9ydGFudH0ucHVycGxlLmxpZ2h0ZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiNiYTY4YzggIWltcG9ydGFudH0ucHVycGxlLXRleHQudGV4dC1saWdodGVuLTJ7Y29sb3I6I2JhNjhjOCAhaW1wb3J0YW50fS5wdXJwbGUubGlnaHRlbi0xe2JhY2tncm91bmQtY29sb3I6I2FiNDdiYyAhaW1wb3J0YW50fS5wdXJwbGUtdGV4dC50ZXh0LWxpZ2h0ZW4tMXtjb2xvcjojYWI0N2JjICFpbXBvcnRhbnR9LnB1cnBsZS5kYXJrZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiM4ZTI0YWEgIWltcG9ydGFudH0ucHVycGxlLXRleHQudGV4dC1kYXJrZW4tMXtjb2xvcjojOGUyNGFhICFpbXBvcnRhbnR9LnB1cnBsZS5kYXJrZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiM3YjFmYTIgIWltcG9ydGFudH0ucHVycGxlLXRleHQudGV4dC1kYXJrZW4tMntjb2xvcjojN2IxZmEyICFpbXBvcnRhbnR9LnB1cnBsZS5kYXJrZW4tM3tiYWNrZ3JvdW5kLWNvbG9yOiM2YTFiOWEgIWltcG9ydGFudH0ucHVycGxlLXRleHQudGV4dC1kYXJrZW4tM3tjb2xvcjojNmExYjlhICFpbXBvcnRhbnR9LnB1cnBsZS5kYXJrZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiM0YTE0OGMgIWltcG9ydGFudH0ucHVycGxlLXRleHQudGV4dC1kYXJrZW4tNHtjb2xvcjojNGExNDhjICFpbXBvcnRhbnR9LnB1cnBsZS5hY2NlbnQtMXtiYWNrZ3JvdW5kLWNvbG9yOiNlYTgwZmMgIWltcG9ydGFudH0ucHVycGxlLXRleHQudGV4dC1hY2NlbnQtMXtjb2xvcjojZWE4MGZjICFpbXBvcnRhbnR9LnB1cnBsZS5hY2NlbnQtMntiYWNrZ3JvdW5kLWNvbG9yOiNlMDQwZmIgIWltcG9ydGFudH0ucHVycGxlLXRleHQudGV4dC1hY2NlbnQtMntjb2xvcjojZTA0MGZiICFpbXBvcnRhbnR9LnB1cnBsZS5hY2NlbnQtM3tiYWNrZ3JvdW5kLWNvbG9yOiNkNTAwZjkgIWltcG9ydGFudH0ucHVycGxlLXRleHQudGV4dC1hY2NlbnQtM3tjb2xvcjojZDUwMGY5ICFpbXBvcnRhbnR9LnB1cnBsZS5hY2NlbnQtNHtiYWNrZ3JvdW5kLWNvbG9yOiNhMGYgIWltcG9ydGFudH0ucHVycGxlLXRleHQudGV4dC1hY2NlbnQtNHtjb2xvcjojYTBmICFpbXBvcnRhbnR9LmRlZXAtcHVycGxle2JhY2tncm91bmQtY29sb3I6IzY3M2FiNyAhaW1wb3J0YW50fS5kZWVwLXB1cnBsZS10ZXh0e2NvbG9yOiM2NzNhYjcgIWltcG9ydGFudH0uZGVlcC1wdXJwbGUubGlnaHRlbi01e2JhY2tncm91bmQtY29sb3I6I2VkZTdmNiAhaW1wb3J0YW50fS5kZWVwLXB1cnBsZS10ZXh0LnRleHQtbGlnaHRlbi01e2NvbG9yOiNlZGU3ZjYgIWltcG9ydGFudH0uZGVlcC1wdXJwbGUubGlnaHRlbi00e2JhY2tncm91bmQtY29sb3I6I2QxYzRlOSAhaW1wb3J0YW50fS5kZWVwLXB1cnBsZS10ZXh0LnRleHQtbGlnaHRlbi00e2NvbG9yOiNkMWM0ZTkgIWltcG9ydGFudH0uZGVlcC1wdXJwbGUubGlnaHRlbi0ze2JhY2tncm91bmQtY29sb3I6I2IzOWRkYiAhaW1wb3J0YW50fS5kZWVwLXB1cnBsZS10ZXh0LnRleHQtbGlnaHRlbi0ze2NvbG9yOiNiMzlkZGIgIWltcG9ydGFudH0uZGVlcC1wdXJwbGUubGlnaHRlbi0ye2JhY2tncm91bmQtY29sb3I6Izk1NzVjZCAhaW1wb3J0YW50fS5kZWVwLXB1cnBsZS10ZXh0LnRleHQtbGlnaHRlbi0ye2NvbG9yOiM5NTc1Y2QgIWltcG9ydGFudH0uZGVlcC1wdXJwbGUubGlnaHRlbi0xe2JhY2tncm91bmQtY29sb3I6IzdlNTdjMiAhaW1wb3J0YW50fS5kZWVwLXB1cnBsZS10ZXh0LnRleHQtbGlnaHRlbi0xe2NvbG9yOiM3ZTU3YzIgIWltcG9ydGFudH0uZGVlcC1wdXJwbGUuZGFya2VuLTF7YmFja2dyb3VuZC1jb2xvcjojNWUzNWIxICFpbXBvcnRhbnR9LmRlZXAtcHVycGxlLXRleHQudGV4dC1kYXJrZW4tMXtjb2xvcjojNWUzNWIxICFpbXBvcnRhbnR9LmRlZXAtcHVycGxlLmRhcmtlbi0ye2JhY2tncm91bmQtY29sb3I6IzUxMmRhOCAhaW1wb3J0YW50fS5kZWVwLXB1cnBsZS10ZXh0LnRleHQtZGFya2VuLTJ7Y29sb3I6IzUxMmRhOCAhaW1wb3J0YW50fS5kZWVwLXB1cnBsZS5kYXJrZW4tM3tiYWNrZ3JvdW5kLWNvbG9yOiM0NTI3YTAgIWltcG9ydGFudH0uZGVlcC1wdXJwbGUtdGV4dC50ZXh0LWRhcmtlbi0ze2NvbG9yOiM0NTI3YTAgIWltcG9ydGFudH0uZGVlcC1wdXJwbGUuZGFya2VuLTR7YmFja2dyb3VuZC1jb2xvcjojMzExYjkyICFpbXBvcnRhbnR9LmRlZXAtcHVycGxlLXRleHQudGV4dC1kYXJrZW4tNHtjb2xvcjojMzExYjkyICFpbXBvcnRhbnR9LmRlZXAtcHVycGxlLmFjY2VudC0xe2JhY2tncm91bmQtY29sb3I6I2IzODhmZiAhaW1wb3J0YW50fS5kZWVwLXB1cnBsZS10ZXh0LnRleHQtYWNjZW50LTF7Y29sb3I6I2IzODhmZiAhaW1wb3J0YW50fS5kZWVwLXB1cnBsZS5hY2NlbnQtMntiYWNrZ3JvdW5kLWNvbG9yOiM3YzRkZmYgIWltcG9ydGFudH0uZGVlcC1wdXJwbGUtdGV4dC50ZXh0LWFjY2VudC0ye2NvbG9yOiM3YzRkZmYgIWltcG9ydGFudH0uZGVlcC1wdXJwbGUuYWNjZW50LTN7YmFja2dyb3VuZC1jb2xvcjojNjUxZmZmICFpbXBvcnRhbnR9LmRlZXAtcHVycGxlLXRleHQudGV4dC1hY2NlbnQtM3tjb2xvcjojNjUxZmZmICFpbXBvcnRhbnR9LmRlZXAtcHVycGxlLmFjY2VudC00e2JhY2tncm91bmQtY29sb3I6IzYyMDBlYSAhaW1wb3J0YW50fS5kZWVwLXB1cnBsZS10ZXh0LnRleHQtYWNjZW50LTR7Y29sb3I6IzYyMDBlYSAhaW1wb3J0YW50fS5pbmRpZ297YmFja2dyb3VuZC1jb2xvcjojM2Y1MWI1ICFpbXBvcnRhbnR9LmluZGlnby10ZXh0e2NvbG9yOiMzZjUxYjUgIWltcG9ydGFudH0uaW5kaWdvLmxpZ2h0ZW4tNXtiYWNrZ3JvdW5kLWNvbG9yOiNlOGVhZjYgIWltcG9ydGFudH0uaW5kaWdvLXRleHQudGV4dC1saWdodGVuLTV7Y29sb3I6I2U4ZWFmNiAhaW1wb3J0YW50fS5pbmRpZ28ubGlnaHRlbi00e2JhY2tncm91bmQtY29sb3I6I2M1Y2FlOSAhaW1wb3J0YW50fS5pbmRpZ28tdGV4dC50ZXh0LWxpZ2h0ZW4tNHtjb2xvcjojYzVjYWU5ICFpbXBvcnRhbnR9LmluZGlnby5saWdodGVuLTN7YmFja2dyb3VuZC1jb2xvcjojOWZhOGRhICFpbXBvcnRhbnR9LmluZGlnby10ZXh0LnRleHQtbGlnaHRlbi0ze2NvbG9yOiM5ZmE4ZGEgIWltcG9ydGFudH0uaW5kaWdvLmxpZ2h0ZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiM3OTg2Y2IgIWltcG9ydGFudH0uaW5kaWdvLXRleHQudGV4dC1saWdodGVuLTJ7Y29sb3I6Izc5ODZjYiAhaW1wb3J0YW50fS5pbmRpZ28ubGlnaHRlbi0xe2JhY2tncm91bmQtY29sb3I6IzVjNmJjMCAhaW1wb3J0YW50fS5pbmRpZ28tdGV4dC50ZXh0LWxpZ2h0ZW4tMXtjb2xvcjojNWM2YmMwICFpbXBvcnRhbnR9LmluZGlnby5kYXJrZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiMzOTQ5YWIgIWltcG9ydGFudH0uaW5kaWdvLXRleHQudGV4dC1kYXJrZW4tMXtjb2xvcjojMzk0OWFiICFpbXBvcnRhbnR9LmluZGlnby5kYXJrZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiMzMDNmOWYgIWltcG9ydGFudH0uaW5kaWdvLXRleHQudGV4dC1kYXJrZW4tMntjb2xvcjojMzAzZjlmICFpbXBvcnRhbnR9LmluZGlnby5kYXJrZW4tM3tiYWNrZ3JvdW5kLWNvbG9yOiMyODM1OTMgIWltcG9ydGFudH0uaW5kaWdvLXRleHQudGV4dC1kYXJrZW4tM3tjb2xvcjojMjgzNTkzICFpbXBvcnRhbnR9LmluZGlnby5kYXJrZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiMxYTIzN2UgIWltcG9ydGFudH0uaW5kaWdvLXRleHQudGV4dC1kYXJrZW4tNHtjb2xvcjojMWEyMzdlICFpbXBvcnRhbnR9LmluZGlnby5hY2NlbnQtMXtiYWNrZ3JvdW5kLWNvbG9yOiM4YzllZmYgIWltcG9ydGFudH0uaW5kaWdvLXRleHQudGV4dC1hY2NlbnQtMXtjb2xvcjojOGM5ZWZmICFpbXBvcnRhbnR9LmluZGlnby5hY2NlbnQtMntiYWNrZ3JvdW5kLWNvbG9yOiM1MzZkZmUgIWltcG9ydGFudH0uaW5kaWdvLXRleHQudGV4dC1hY2NlbnQtMntjb2xvcjojNTM2ZGZlICFpbXBvcnRhbnR9LmluZGlnby5hY2NlbnQtM3tiYWNrZ3JvdW5kLWNvbG9yOiMzZDVhZmUgIWltcG9ydGFudH0uaW5kaWdvLXRleHQudGV4dC1hY2NlbnQtM3tjb2xvcjojM2Q1YWZlICFpbXBvcnRhbnR9LmluZGlnby5hY2NlbnQtNHtiYWNrZ3JvdW5kLWNvbG9yOiMzMDRmZmUgIWltcG9ydGFudH0uaW5kaWdvLXRleHQudGV4dC1hY2NlbnQtNHtjb2xvcjojMzA0ZmZlICFpbXBvcnRhbnR9LmJsdWV7YmFja2dyb3VuZC1jb2xvcjojMjE5NkYzICFpbXBvcnRhbnR9LmJsdWUtdGV4dHtjb2xvcjojMjE5NkYzICFpbXBvcnRhbnR9LmJsdWUubGlnaHRlbi01e2JhY2tncm91bmQtY29sb3I6I0UzRjJGRCAhaW1wb3J0YW50fS5ibHVlLXRleHQudGV4dC1saWdodGVuLTV7Y29sb3I6I0UzRjJGRCAhaW1wb3J0YW50fS5ibHVlLmxpZ2h0ZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiNCQkRFRkIgIWltcG9ydGFudH0uYmx1ZS10ZXh0LnRleHQtbGlnaHRlbi00e2NvbG9yOiNCQkRFRkIgIWltcG9ydGFudH0uYmx1ZS5saWdodGVuLTN7YmFja2dyb3VuZC1jb2xvcjojOTBDQUY5ICFpbXBvcnRhbnR9LmJsdWUtdGV4dC50ZXh0LWxpZ2h0ZW4tM3tjb2xvcjojOTBDQUY5ICFpbXBvcnRhbnR9LmJsdWUubGlnaHRlbi0ye2JhY2tncm91bmQtY29sb3I6IzY0QjVGNiAhaW1wb3J0YW50fS5ibHVlLXRleHQudGV4dC1saWdodGVuLTJ7Y29sb3I6IzY0QjVGNiAhaW1wb3J0YW50fS5ibHVlLmxpZ2h0ZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiM0MkE1RjUgIWltcG9ydGFudH0uYmx1ZS10ZXh0LnRleHQtbGlnaHRlbi0xe2NvbG9yOiM0MkE1RjUgIWltcG9ydGFudH0uYmx1ZS5kYXJrZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiMxRTg4RTUgIWltcG9ydGFudH0uYmx1ZS10ZXh0LnRleHQtZGFya2VuLTF7Y29sb3I6IzFFODhFNSAhaW1wb3J0YW50fS5ibHVlLmRhcmtlbi0ye2JhY2tncm91bmQtY29sb3I6IzE5NzZEMiAhaW1wb3J0YW50fS5ibHVlLXRleHQudGV4dC1kYXJrZW4tMntjb2xvcjojMTk3NkQyICFpbXBvcnRhbnR9LmJsdWUuZGFya2VuLTN7YmFja2dyb3VuZC1jb2xvcjojMTU2NUMwICFpbXBvcnRhbnR9LmJsdWUtdGV4dC50ZXh0LWRhcmtlbi0ze2NvbG9yOiMxNTY1QzAgIWltcG9ydGFudH0uYmx1ZS5kYXJrZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiMwRDQ3QTEgIWltcG9ydGFudH0uYmx1ZS10ZXh0LnRleHQtZGFya2VuLTR7Y29sb3I6IzBENDdBMSAhaW1wb3J0YW50fS5ibHVlLmFjY2VudC0xe2JhY2tncm91bmQtY29sb3I6IzgyQjFGRiAhaW1wb3J0YW50fS5ibHVlLXRleHQudGV4dC1hY2NlbnQtMXtjb2xvcjojODJCMUZGICFpbXBvcnRhbnR9LmJsdWUuYWNjZW50LTJ7YmFja2dyb3VuZC1jb2xvcjojNDQ4QUZGICFpbXBvcnRhbnR9LmJsdWUtdGV4dC50ZXh0LWFjY2VudC0ye2NvbG9yOiM0NDhBRkYgIWltcG9ydGFudH0uYmx1ZS5hY2NlbnQtM3tiYWNrZ3JvdW5kLWNvbG9yOiMyOTc5RkYgIWltcG9ydGFudH0uYmx1ZS10ZXh0LnRleHQtYWNjZW50LTN7Y29sb3I6IzI5NzlGRiAhaW1wb3J0YW50fS5ibHVlLmFjY2VudC00e2JhY2tncm91bmQtY29sb3I6IzI5NjJGRiAhaW1wb3J0YW50fS5ibHVlLXRleHQudGV4dC1hY2NlbnQtNHtjb2xvcjojMjk2MkZGICFpbXBvcnRhbnR9LmxpZ2h0LWJsdWV7YmFja2dyb3VuZC1jb2xvcjojMDNhOWY0ICFpbXBvcnRhbnR9LmxpZ2h0LWJsdWUtdGV4dHtjb2xvcjojMDNhOWY0ICFpbXBvcnRhbnR9LmxpZ2h0LWJsdWUubGlnaHRlbi01e2JhY2tncm91bmQtY29sb3I6I2UxZjVmZSAhaW1wb3J0YW50fS5saWdodC1ibHVlLXRleHQudGV4dC1saWdodGVuLTV7Y29sb3I6I2UxZjVmZSAhaW1wb3J0YW50fS5saWdodC1ibHVlLmxpZ2h0ZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiNiM2U1ZmMgIWltcG9ydGFudH0ubGlnaHQtYmx1ZS10ZXh0LnRleHQtbGlnaHRlbi00e2NvbG9yOiNiM2U1ZmMgIWltcG9ydGFudH0ubGlnaHQtYmx1ZS5saWdodGVuLTN7YmFja2dyb3VuZC1jb2xvcjojODFkNGZhICFpbXBvcnRhbnR9LmxpZ2h0LWJsdWUtdGV4dC50ZXh0LWxpZ2h0ZW4tM3tjb2xvcjojODFkNGZhICFpbXBvcnRhbnR9LmxpZ2h0LWJsdWUubGlnaHRlbi0ye2JhY2tncm91bmQtY29sb3I6IzRmYzNmNyAhaW1wb3J0YW50fS5saWdodC1ibHVlLXRleHQudGV4dC1saWdodGVuLTJ7Y29sb3I6IzRmYzNmNyAhaW1wb3J0YW50fS5saWdodC1ibHVlLmxpZ2h0ZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiMyOWI2ZjYgIWltcG9ydGFudH0ubGlnaHQtYmx1ZS10ZXh0LnRleHQtbGlnaHRlbi0xe2NvbG9yOiMyOWI2ZjYgIWltcG9ydGFudH0ubGlnaHQtYmx1ZS5kYXJrZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiMwMzliZTUgIWltcG9ydGFudH0ubGlnaHQtYmx1ZS10ZXh0LnRleHQtZGFya2VuLTF7Y29sb3I6IzAzOWJlNSAhaW1wb3J0YW50fS5saWdodC1ibHVlLmRhcmtlbi0ye2JhY2tncm91bmQtY29sb3I6IzAyODhkMSAhaW1wb3J0YW50fS5saWdodC1ibHVlLXRleHQudGV4dC1kYXJrZW4tMntjb2xvcjojMDI4OGQxICFpbXBvcnRhbnR9LmxpZ2h0LWJsdWUuZGFya2VuLTN7YmFja2dyb3VuZC1jb2xvcjojMDI3N2JkICFpbXBvcnRhbnR9LmxpZ2h0LWJsdWUtdGV4dC50ZXh0LWRhcmtlbi0ze2NvbG9yOiMwMjc3YmQgIWltcG9ydGFudH0ubGlnaHQtYmx1ZS5kYXJrZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiMwMTU3OWIgIWltcG9ydGFudH0ubGlnaHQtYmx1ZS10ZXh0LnRleHQtZGFya2VuLTR7Y29sb3I6IzAxNTc5YiAhaW1wb3J0YW50fS5saWdodC1ibHVlLmFjY2VudC0xe2JhY2tncm91bmQtY29sb3I6IzgwZDhmZiAhaW1wb3J0YW50fS5saWdodC1ibHVlLXRleHQudGV4dC1hY2NlbnQtMXtjb2xvcjojODBkOGZmICFpbXBvcnRhbnR9LmxpZ2h0LWJsdWUuYWNjZW50LTJ7YmFja2dyb3VuZC1jb2xvcjojNDBjNGZmICFpbXBvcnRhbnR9LmxpZ2h0LWJsdWUtdGV4dC50ZXh0LWFjY2VudC0ye2NvbG9yOiM0MGM0ZmYgIWltcG9ydGFudH0ubGlnaHQtYmx1ZS5hY2NlbnQtM3tiYWNrZ3JvdW5kLWNvbG9yOiMwMGIwZmYgIWltcG9ydGFudH0ubGlnaHQtYmx1ZS10ZXh0LnRleHQtYWNjZW50LTN7Y29sb3I6IzAwYjBmZiAhaW1wb3J0YW50fS5saWdodC1ibHVlLmFjY2VudC00e2JhY2tncm91bmQtY29sb3I6IzAwOTFlYSAhaW1wb3J0YW50fS5saWdodC1ibHVlLXRleHQudGV4dC1hY2NlbnQtNHtjb2xvcjojMDA5MWVhICFpbXBvcnRhbnR9LmN5YW57YmFja2dyb3VuZC1jb2xvcjojMDBiY2Q0ICFpbXBvcnRhbnR9LmN5YW4tdGV4dHtjb2xvcjojMDBiY2Q0ICFpbXBvcnRhbnR9LmN5YW4ubGlnaHRlbi01e2JhY2tncm91bmQtY29sb3I6I2UwZjdmYSAhaW1wb3J0YW50fS5jeWFuLXRleHQudGV4dC1saWdodGVuLTV7Y29sb3I6I2UwZjdmYSAhaW1wb3J0YW50fS5jeWFuLmxpZ2h0ZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiNiMmViZjIgIWltcG9ydGFudH0uY3lhbi10ZXh0LnRleHQtbGlnaHRlbi00e2NvbG9yOiNiMmViZjIgIWltcG9ydGFudH0uY3lhbi5saWdodGVuLTN7YmFja2dyb3VuZC1jb2xvcjojODBkZWVhICFpbXBvcnRhbnR9LmN5YW4tdGV4dC50ZXh0LWxpZ2h0ZW4tM3tjb2xvcjojODBkZWVhICFpbXBvcnRhbnR9LmN5YW4ubGlnaHRlbi0ye2JhY2tncm91bmQtY29sb3I6IzRkZDBlMSAhaW1wb3J0YW50fS5jeWFuLXRleHQudGV4dC1saWdodGVuLTJ7Y29sb3I6IzRkZDBlMSAhaW1wb3J0YW50fS5jeWFuLmxpZ2h0ZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiMyNmM2ZGEgIWltcG9ydGFudH0uY3lhbi10ZXh0LnRleHQtbGlnaHRlbi0xe2NvbG9yOiMyNmM2ZGEgIWltcG9ydGFudH0uY3lhbi5kYXJrZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiMwMGFjYzEgIWltcG9ydGFudH0uY3lhbi10ZXh0LnRleHQtZGFya2VuLTF7Y29sb3I6IzAwYWNjMSAhaW1wb3J0YW50fS5jeWFuLmRhcmtlbi0ye2JhY2tncm91bmQtY29sb3I6IzAwOTdhNyAhaW1wb3J0YW50fS5jeWFuLXRleHQudGV4dC1kYXJrZW4tMntjb2xvcjojMDA5N2E3ICFpbXBvcnRhbnR9LmN5YW4uZGFya2VuLTN7YmFja2dyb3VuZC1jb2xvcjojMDA4MzhmICFpbXBvcnRhbnR9LmN5YW4tdGV4dC50ZXh0LWRhcmtlbi0ze2NvbG9yOiMwMDgzOGYgIWltcG9ydGFudH0uY3lhbi5kYXJrZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDYwNjQgIWltcG9ydGFudH0uY3lhbi10ZXh0LnRleHQtZGFya2VuLTR7Y29sb3I6IzAwNjA2NCAhaW1wb3J0YW50fS5jeWFuLmFjY2VudC0xe2JhY2tncm91bmQtY29sb3I6Izg0ZmZmZiAhaW1wb3J0YW50fS5jeWFuLXRleHQudGV4dC1hY2NlbnQtMXtjb2xvcjojODRmZmZmICFpbXBvcnRhbnR9LmN5YW4uYWNjZW50LTJ7YmFja2dyb3VuZC1jb2xvcjojMThmZmZmICFpbXBvcnRhbnR9LmN5YW4tdGV4dC50ZXh0LWFjY2VudC0ye2NvbG9yOiMxOGZmZmYgIWltcG9ydGFudH0uY3lhbi5hY2NlbnQtM3tiYWNrZ3JvdW5kLWNvbG9yOiMwMGU1ZmYgIWltcG9ydGFudH0uY3lhbi10ZXh0LnRleHQtYWNjZW50LTN7Y29sb3I6IzAwZTVmZiAhaW1wb3J0YW50fS5jeWFuLmFjY2VudC00e2JhY2tncm91bmQtY29sb3I6IzAwYjhkNCAhaW1wb3J0YW50fS5jeWFuLXRleHQudGV4dC1hY2NlbnQtNHtjb2xvcjojMDBiOGQ0ICFpbXBvcnRhbnR9LnRlYWx7YmFja2dyb3VuZC1jb2xvcjojMDA5Njg4ICFpbXBvcnRhbnR9LnRlYWwtdGV4dHtjb2xvcjojMDA5Njg4ICFpbXBvcnRhbnR9LnRlYWwubGlnaHRlbi01e2JhY2tncm91bmQtY29sb3I6I2UwZjJmMSAhaW1wb3J0YW50fS50ZWFsLXRleHQudGV4dC1saWdodGVuLTV7Y29sb3I6I2UwZjJmMSAhaW1wb3J0YW50fS50ZWFsLmxpZ2h0ZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiNiMmRmZGIgIWltcG9ydGFudH0udGVhbC10ZXh0LnRleHQtbGlnaHRlbi00e2NvbG9yOiNiMmRmZGIgIWltcG9ydGFudH0udGVhbC5saWdodGVuLTN7YmFja2dyb3VuZC1jb2xvcjojODBjYmM0ICFpbXBvcnRhbnR9LnRlYWwtdGV4dC50ZXh0LWxpZ2h0ZW4tM3tjb2xvcjojODBjYmM0ICFpbXBvcnRhbnR9LnRlYWwubGlnaHRlbi0ye2JhY2tncm91bmQtY29sb3I6IzRkYjZhYyAhaW1wb3J0YW50fS50ZWFsLXRleHQudGV4dC1saWdodGVuLTJ7Y29sb3I6IzRkYjZhYyAhaW1wb3J0YW50fS50ZWFsLmxpZ2h0ZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiMyNmE2OWEgIWltcG9ydGFudH0udGVhbC10ZXh0LnRleHQtbGlnaHRlbi0xe2NvbG9yOiMyNmE2OWEgIWltcG9ydGFudH0udGVhbC5kYXJrZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDg5N2IgIWltcG9ydGFudH0udGVhbC10ZXh0LnRleHQtZGFya2VuLTF7Y29sb3I6IzAwODk3YiAhaW1wb3J0YW50fS50ZWFsLmRhcmtlbi0ye2JhY2tncm91bmQtY29sb3I6IzAwNzk2YiAhaW1wb3J0YW50fS50ZWFsLXRleHQudGV4dC1kYXJrZW4tMntjb2xvcjojMDA3OTZiICFpbXBvcnRhbnR9LnRlYWwuZGFya2VuLTN7YmFja2dyb3VuZC1jb2xvcjojMDA2OTVjICFpbXBvcnRhbnR9LnRlYWwtdGV4dC50ZXh0LWRhcmtlbi0ze2NvbG9yOiMwMDY5NWMgIWltcG9ydGFudH0udGVhbC5kYXJrZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDRkNDAgIWltcG9ydGFudH0udGVhbC10ZXh0LnRleHQtZGFya2VuLTR7Y29sb3I6IzAwNGQ0MCAhaW1wb3J0YW50fS50ZWFsLmFjY2VudC0xe2JhY2tncm91bmQtY29sb3I6I2E3ZmZlYiAhaW1wb3J0YW50fS50ZWFsLXRleHQudGV4dC1hY2NlbnQtMXtjb2xvcjojYTdmZmViICFpbXBvcnRhbnR9LnRlYWwuYWNjZW50LTJ7YmFja2dyb3VuZC1jb2xvcjojNjRmZmRhICFpbXBvcnRhbnR9LnRlYWwtdGV4dC50ZXh0LWFjY2VudC0ye2NvbG9yOiM2NGZmZGEgIWltcG9ydGFudH0udGVhbC5hY2NlbnQtM3tiYWNrZ3JvdW5kLWNvbG9yOiMxZGU5YjYgIWltcG9ydGFudH0udGVhbC10ZXh0LnRleHQtYWNjZW50LTN7Y29sb3I6IzFkZTliNiAhaW1wb3J0YW50fS50ZWFsLmFjY2VudC00e2JhY2tncm91bmQtY29sb3I6IzAwYmZhNSAhaW1wb3J0YW50fS50ZWFsLXRleHQudGV4dC1hY2NlbnQtNHtjb2xvcjojMDBiZmE1ICFpbXBvcnRhbnR9LmdyZWVue2JhY2tncm91bmQtY29sb3I6IzRDQUY1MCAhaW1wb3J0YW50fS5ncmVlbi10ZXh0e2NvbG9yOiM0Q0FGNTAgIWltcG9ydGFudH0uZ3JlZW4ubGlnaHRlbi01e2JhY2tncm91bmQtY29sb3I6I0U4RjVFOSAhaW1wb3J0YW50fS5ncmVlbi10ZXh0LnRleHQtbGlnaHRlbi01e2NvbG9yOiNFOEY1RTkgIWltcG9ydGFudH0uZ3JlZW4ubGlnaHRlbi00e2JhY2tncm91bmQtY29sb3I6I0M4RTZDOSAhaW1wb3J0YW50fS5ncmVlbi10ZXh0LnRleHQtbGlnaHRlbi00e2NvbG9yOiNDOEU2QzkgIWltcG9ydGFudH0uZ3JlZW4ubGlnaHRlbi0ze2JhY2tncm91bmQtY29sb3I6I0E1RDZBNyAhaW1wb3J0YW50fS5ncmVlbi10ZXh0LnRleHQtbGlnaHRlbi0ze2NvbG9yOiNBNUQ2QTcgIWltcG9ydGFudH0uZ3JlZW4ubGlnaHRlbi0ye2JhY2tncm91bmQtY29sb3I6IzgxQzc4NCAhaW1wb3J0YW50fS5ncmVlbi10ZXh0LnRleHQtbGlnaHRlbi0ye2NvbG9yOiM4MUM3ODQgIWltcG9ydGFudH0uZ3JlZW4ubGlnaHRlbi0xe2JhY2tncm91bmQtY29sb3I6IzY2QkI2QSAhaW1wb3J0YW50fS5ncmVlbi10ZXh0LnRleHQtbGlnaHRlbi0xe2NvbG9yOiM2NkJCNkEgIWltcG9ydGFudH0uZ3JlZW4uZGFya2VuLTF7YmFja2dyb3VuZC1jb2xvcjojNDNBMDQ3ICFpbXBvcnRhbnR9LmdyZWVuLXRleHQudGV4dC1kYXJrZW4tMXtjb2xvcjojNDNBMDQ3ICFpbXBvcnRhbnR9LmdyZWVuLmRhcmtlbi0ye2JhY2tncm91bmQtY29sb3I6IzM4OEUzQyAhaW1wb3J0YW50fS5ncmVlbi10ZXh0LnRleHQtZGFya2VuLTJ7Y29sb3I6IzM4OEUzQyAhaW1wb3J0YW50fS5ncmVlbi5kYXJrZW4tM3tiYWNrZ3JvdW5kLWNvbG9yOiMyRTdEMzIgIWltcG9ydGFudH0uZ3JlZW4tdGV4dC50ZXh0LWRhcmtlbi0ze2NvbG9yOiMyRTdEMzIgIWltcG9ydGFudH0uZ3JlZW4uZGFya2VuLTR7YmFja2dyb3VuZC1jb2xvcjojMUI1RTIwICFpbXBvcnRhbnR9LmdyZWVuLXRleHQudGV4dC1kYXJrZW4tNHtjb2xvcjojMUI1RTIwICFpbXBvcnRhbnR9LmdyZWVuLmFjY2VudC0xe2JhY2tncm91bmQtY29sb3I6I0I5RjZDQSAhaW1wb3J0YW50fS5ncmVlbi10ZXh0LnRleHQtYWNjZW50LTF7Y29sb3I6I0I5RjZDQSAhaW1wb3J0YW50fS5ncmVlbi5hY2NlbnQtMntiYWNrZ3JvdW5kLWNvbG9yOiM2OUYwQUUgIWltcG9ydGFudH0uZ3JlZW4tdGV4dC50ZXh0LWFjY2VudC0ye2NvbG9yOiM2OUYwQUUgIWltcG9ydGFudH0uZ3JlZW4uYWNjZW50LTN7YmFja2dyb3VuZC1jb2xvcjojMDBFNjc2ICFpbXBvcnRhbnR9LmdyZWVuLXRleHQudGV4dC1hY2NlbnQtM3tjb2xvcjojMDBFNjc2ICFpbXBvcnRhbnR9LmdyZWVuLmFjY2VudC00e2JhY2tncm91bmQtY29sb3I6IzAwQzg1MyAhaW1wb3J0YW50fS5ncmVlbi10ZXh0LnRleHQtYWNjZW50LTR7Y29sb3I6IzAwQzg1MyAhaW1wb3J0YW50fS5saWdodC1ncmVlbntiYWNrZ3JvdW5kLWNvbG9yOiM4YmMzNGEgIWltcG9ydGFudH0ubGlnaHQtZ3JlZW4tdGV4dHtjb2xvcjojOGJjMzRhICFpbXBvcnRhbnR9LmxpZ2h0LWdyZWVuLmxpZ2h0ZW4tNXtiYWNrZ3JvdW5kLWNvbG9yOiNmMWY4ZTkgIWltcG9ydGFudH0ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWxpZ2h0ZW4tNXtjb2xvcjojZjFmOGU5ICFpbXBvcnRhbnR9LmxpZ2h0LWdyZWVuLmxpZ2h0ZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiNkY2VkYzggIWltcG9ydGFudH0ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWxpZ2h0ZW4tNHtjb2xvcjojZGNlZGM4ICFpbXBvcnRhbnR9LmxpZ2h0LWdyZWVuLmxpZ2h0ZW4tM3tiYWNrZ3JvdW5kLWNvbG9yOiNjNWUxYTUgIWltcG9ydGFudH0ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWxpZ2h0ZW4tM3tjb2xvcjojYzVlMWE1ICFpbXBvcnRhbnR9LmxpZ2h0LWdyZWVuLmxpZ2h0ZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiNhZWQ1ODEgIWltcG9ydGFudH0ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWxpZ2h0ZW4tMntjb2xvcjojYWVkNTgxICFpbXBvcnRhbnR9LmxpZ2h0LWdyZWVuLmxpZ2h0ZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiM5Y2NjNjUgIWltcG9ydGFudH0ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWxpZ2h0ZW4tMXtjb2xvcjojOWNjYzY1ICFpbXBvcnRhbnR9LmxpZ2h0LWdyZWVuLmRhcmtlbi0xe2JhY2tncm91bmQtY29sb3I6IzdjYjM0MiAhaW1wb3J0YW50fS5saWdodC1ncmVlbi10ZXh0LnRleHQtZGFya2VuLTF7Y29sb3I6IzdjYjM0MiAhaW1wb3J0YW50fS5saWdodC1ncmVlbi5kYXJrZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiM2ODlmMzggIWltcG9ydGFudH0ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWRhcmtlbi0ye2NvbG9yOiM2ODlmMzggIWltcG9ydGFudH0ubGlnaHQtZ3JlZW4uZGFya2VuLTN7YmFja2dyb3VuZC1jb2xvcjojNTU4YjJmICFpbXBvcnRhbnR9LmxpZ2h0LWdyZWVuLXRleHQudGV4dC1kYXJrZW4tM3tjb2xvcjojNTU4YjJmICFpbXBvcnRhbnR9LmxpZ2h0LWdyZWVuLmRhcmtlbi00e2JhY2tncm91bmQtY29sb3I6IzMzNjkxZSAhaW1wb3J0YW50fS5saWdodC1ncmVlbi10ZXh0LnRleHQtZGFya2VuLTR7Y29sb3I6IzMzNjkxZSAhaW1wb3J0YW50fS5saWdodC1ncmVlbi5hY2NlbnQtMXtiYWNrZ3JvdW5kLWNvbG9yOiNjY2ZmOTAgIWltcG9ydGFudH0ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWFjY2VudC0xe2NvbG9yOiNjY2ZmOTAgIWltcG9ydGFudH0ubGlnaHQtZ3JlZW4uYWNjZW50LTJ7YmFja2dyb3VuZC1jb2xvcjojYjJmZjU5ICFpbXBvcnRhbnR9LmxpZ2h0LWdyZWVuLXRleHQudGV4dC1hY2NlbnQtMntjb2xvcjojYjJmZjU5ICFpbXBvcnRhbnR9LmxpZ2h0LWdyZWVuLmFjY2VudC0ze2JhY2tncm91bmQtY29sb3I6Izc2ZmYwMyAhaW1wb3J0YW50fS5saWdodC1ncmVlbi10ZXh0LnRleHQtYWNjZW50LTN7Y29sb3I6Izc2ZmYwMyAhaW1wb3J0YW50fS5saWdodC1ncmVlbi5hY2NlbnQtNHtiYWNrZ3JvdW5kLWNvbG9yOiM2NGRkMTcgIWltcG9ydGFudH0ubGlnaHQtZ3JlZW4tdGV4dC50ZXh0LWFjY2VudC00e2NvbG9yOiM2NGRkMTcgIWltcG9ydGFudH0ubGltZXtiYWNrZ3JvdW5kLWNvbG9yOiNjZGRjMzkgIWltcG9ydGFudH0ubGltZS10ZXh0e2NvbG9yOiNjZGRjMzkgIWltcG9ydGFudH0ubGltZS5saWdodGVuLTV7YmFja2dyb3VuZC1jb2xvcjojZjlmYmU3ICFpbXBvcnRhbnR9LmxpbWUtdGV4dC50ZXh0LWxpZ2h0ZW4tNXtjb2xvcjojZjlmYmU3ICFpbXBvcnRhbnR9LmxpbWUubGlnaHRlbi00e2JhY2tncm91bmQtY29sb3I6I2YwZjRjMyAhaW1wb3J0YW50fS5saW1lLXRleHQudGV4dC1saWdodGVuLTR7Y29sb3I6I2YwZjRjMyAhaW1wb3J0YW50fS5saW1lLmxpZ2h0ZW4tM3tiYWNrZ3JvdW5kLWNvbG9yOiNlNmVlOWMgIWltcG9ydGFudH0ubGltZS10ZXh0LnRleHQtbGlnaHRlbi0ze2NvbG9yOiNlNmVlOWMgIWltcG9ydGFudH0ubGltZS5saWdodGVuLTJ7YmFja2dyb3VuZC1jb2xvcjojZGNlNzc1ICFpbXBvcnRhbnR9LmxpbWUtdGV4dC50ZXh0LWxpZ2h0ZW4tMntjb2xvcjojZGNlNzc1ICFpbXBvcnRhbnR9LmxpbWUubGlnaHRlbi0xe2JhY2tncm91bmQtY29sb3I6I2Q0ZTE1NyAhaW1wb3J0YW50fS5saW1lLXRleHQudGV4dC1saWdodGVuLTF7Y29sb3I6I2Q0ZTE1NyAhaW1wb3J0YW50fS5saW1lLmRhcmtlbi0xe2JhY2tncm91bmQtY29sb3I6I2MwY2EzMyAhaW1wb3J0YW50fS5saW1lLXRleHQudGV4dC1kYXJrZW4tMXtjb2xvcjojYzBjYTMzICFpbXBvcnRhbnR9LmxpbWUuZGFya2VuLTJ7YmFja2dyb3VuZC1jb2xvcjojYWZiNDJiICFpbXBvcnRhbnR9LmxpbWUtdGV4dC50ZXh0LWRhcmtlbi0ye2NvbG9yOiNhZmI0MmIgIWltcG9ydGFudH0ubGltZS5kYXJrZW4tM3tiYWNrZ3JvdW5kLWNvbG9yOiM5ZTlkMjQgIWltcG9ydGFudH0ubGltZS10ZXh0LnRleHQtZGFya2VuLTN7Y29sb3I6IzllOWQyNCAhaW1wb3J0YW50fS5saW1lLmRhcmtlbi00e2JhY2tncm91bmQtY29sb3I6IzgyNzcxNyAhaW1wb3J0YW50fS5saW1lLXRleHQudGV4dC1kYXJrZW4tNHtjb2xvcjojODI3NzE3ICFpbXBvcnRhbnR9LmxpbWUuYWNjZW50LTF7YmFja2dyb3VuZC1jb2xvcjojZjRmZjgxICFpbXBvcnRhbnR9LmxpbWUtdGV4dC50ZXh0LWFjY2VudC0xe2NvbG9yOiNmNGZmODEgIWltcG9ydGFudH0ubGltZS5hY2NlbnQtMntiYWNrZ3JvdW5kLWNvbG9yOiNlZWZmNDEgIWltcG9ydGFudH0ubGltZS10ZXh0LnRleHQtYWNjZW50LTJ7Y29sb3I6I2VlZmY0MSAhaW1wb3J0YW50fS5saW1lLmFjY2VudC0ze2JhY2tncm91bmQtY29sb3I6I2M2ZmYwMCAhaW1wb3J0YW50fS5saW1lLXRleHQudGV4dC1hY2NlbnQtM3tjb2xvcjojYzZmZjAwICFpbXBvcnRhbnR9LmxpbWUuYWNjZW50LTR7YmFja2dyb3VuZC1jb2xvcjojYWVlYTAwICFpbXBvcnRhbnR9LmxpbWUtdGV4dC50ZXh0LWFjY2VudC00e2NvbG9yOiNhZWVhMDAgIWltcG9ydGFudH0ueWVsbG93e2JhY2tncm91bmQtY29sb3I6I2ZmZWIzYiAhaW1wb3J0YW50fS55ZWxsb3ctdGV4dHtjb2xvcjojZmZlYjNiICFpbXBvcnRhbnR9LnllbGxvdy5saWdodGVuLTV7YmFja2dyb3VuZC1jb2xvcjojZmZmZGU3ICFpbXBvcnRhbnR9LnllbGxvdy10ZXh0LnRleHQtbGlnaHRlbi01e2NvbG9yOiNmZmZkZTcgIWltcG9ydGFudH0ueWVsbG93LmxpZ2h0ZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY5YzQgIWltcG9ydGFudH0ueWVsbG93LXRleHQudGV4dC1saWdodGVuLTR7Y29sb3I6I2ZmZjljNCAhaW1wb3J0YW50fS55ZWxsb3cubGlnaHRlbi0ze2JhY2tncm91bmQtY29sb3I6I2ZmZjU5ZCAhaW1wb3J0YW50fS55ZWxsb3ctdGV4dC50ZXh0LWxpZ2h0ZW4tM3tjb2xvcjojZmZmNTlkICFpbXBvcnRhbnR9LnllbGxvdy5saWdodGVuLTJ7YmFja2dyb3VuZC1jb2xvcjojZmZmMTc2ICFpbXBvcnRhbnR9LnllbGxvdy10ZXh0LnRleHQtbGlnaHRlbi0ye2NvbG9yOiNmZmYxNzYgIWltcG9ydGFudH0ueWVsbG93LmxpZ2h0ZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmVlNTggIWltcG9ydGFudH0ueWVsbG93LXRleHQudGV4dC1saWdodGVuLTF7Y29sb3I6I2ZmZWU1OCAhaW1wb3J0YW50fS55ZWxsb3cuZGFya2VuLTF7YmFja2dyb3VuZC1jb2xvcjojZmRkODM1ICFpbXBvcnRhbnR9LnllbGxvdy10ZXh0LnRleHQtZGFya2VuLTF7Y29sb3I6I2ZkZDgzNSAhaW1wb3J0YW50fS55ZWxsb3cuZGFya2VuLTJ7YmFja2dyb3VuZC1jb2xvcjojZmJjMDJkICFpbXBvcnRhbnR9LnllbGxvdy10ZXh0LnRleHQtZGFya2VuLTJ7Y29sb3I6I2ZiYzAyZCAhaW1wb3J0YW50fS55ZWxsb3cuZGFya2VuLTN7YmFja2dyb3VuZC1jb2xvcjojZjlhODI1ICFpbXBvcnRhbnR9LnllbGxvdy10ZXh0LnRleHQtZGFya2VuLTN7Y29sb3I6I2Y5YTgyNSAhaW1wb3J0YW50fS55ZWxsb3cuZGFya2VuLTR7YmFja2dyb3VuZC1jb2xvcjojZjU3ZjE3ICFpbXBvcnRhbnR9LnllbGxvdy10ZXh0LnRleHQtZGFya2VuLTR7Y29sb3I6I2Y1N2YxNyAhaW1wb3J0YW50fS55ZWxsb3cuYWNjZW50LTF7YmFja2dyb3VuZC1jb2xvcjojZmZmZjhkICFpbXBvcnRhbnR9LnllbGxvdy10ZXh0LnRleHQtYWNjZW50LTF7Y29sb3I6I2ZmZmY4ZCAhaW1wb3J0YW50fS55ZWxsb3cuYWNjZW50LTJ7YmFja2dyb3VuZC1jb2xvcjojZmYwICFpbXBvcnRhbnR9LnllbGxvdy10ZXh0LnRleHQtYWNjZW50LTJ7Y29sb3I6I2ZmMCAhaW1wb3J0YW50fS55ZWxsb3cuYWNjZW50LTN7YmFja2dyb3VuZC1jb2xvcjojZmZlYTAwICFpbXBvcnRhbnR9LnllbGxvdy10ZXh0LnRleHQtYWNjZW50LTN7Y29sb3I6I2ZmZWEwMCAhaW1wb3J0YW50fS55ZWxsb3cuYWNjZW50LTR7YmFja2dyb3VuZC1jb2xvcjojZmZkNjAwICFpbXBvcnRhbnR9LnllbGxvdy10ZXh0LnRleHQtYWNjZW50LTR7Y29sb3I6I2ZmZDYwMCAhaW1wb3J0YW50fS5hbWJlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmMxMDcgIWltcG9ydGFudH0uYW1iZXItdGV4dHtjb2xvcjojZmZjMTA3ICFpbXBvcnRhbnR9LmFtYmVyLmxpZ2h0ZW4tNXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY4ZTEgIWltcG9ydGFudH0uYW1iZXItdGV4dC50ZXh0LWxpZ2h0ZW4tNXtjb2xvcjojZmZmOGUxICFpbXBvcnRhbnR9LmFtYmVyLmxpZ2h0ZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmVjYjMgIWltcG9ydGFudH0uYW1iZXItdGV4dC50ZXh0LWxpZ2h0ZW4tNHtjb2xvcjojZmZlY2IzICFpbXBvcnRhbnR9LmFtYmVyLmxpZ2h0ZW4tM3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmUwODIgIWltcG9ydGFudH0uYW1iZXItdGV4dC50ZXh0LWxpZ2h0ZW4tM3tjb2xvcjojZmZlMDgyICFpbXBvcnRhbnR9LmFtYmVyLmxpZ2h0ZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiNmZmQ1NGYgIWltcG9ydGFudH0uYW1iZXItdGV4dC50ZXh0LWxpZ2h0ZW4tMntjb2xvcjojZmZkNTRmICFpbXBvcnRhbnR9LmFtYmVyLmxpZ2h0ZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmNhMjggIWltcG9ydGFudH0uYW1iZXItdGV4dC50ZXh0LWxpZ2h0ZW4tMXtjb2xvcjojZmZjYTI4ICFpbXBvcnRhbnR9LmFtYmVyLmRhcmtlbi0xe2JhY2tncm91bmQtY29sb3I6I2ZmYjMwMCAhaW1wb3J0YW50fS5hbWJlci10ZXh0LnRleHQtZGFya2VuLTF7Y29sb3I6I2ZmYjMwMCAhaW1wb3J0YW50fS5hbWJlci5kYXJrZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiNmZmEwMDAgIWltcG9ydGFudH0uYW1iZXItdGV4dC50ZXh0LWRhcmtlbi0ye2NvbG9yOiNmZmEwMDAgIWltcG9ydGFudH0uYW1iZXIuZGFya2VuLTN7YmFja2dyb3VuZC1jb2xvcjojZmY4ZjAwICFpbXBvcnRhbnR9LmFtYmVyLXRleHQudGV4dC1kYXJrZW4tM3tjb2xvcjojZmY4ZjAwICFpbXBvcnRhbnR9LmFtYmVyLmRhcmtlbi00e2JhY2tncm91bmQtY29sb3I6I2ZmNmYwMCAhaW1wb3J0YW50fS5hbWJlci10ZXh0LnRleHQtZGFya2VuLTR7Y29sb3I6I2ZmNmYwMCAhaW1wb3J0YW50fS5hbWJlci5hY2NlbnQtMXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmU1N2YgIWltcG9ydGFudH0uYW1iZXItdGV4dC50ZXh0LWFjY2VudC0xe2NvbG9yOiNmZmU1N2YgIWltcG9ydGFudH0uYW1iZXIuYWNjZW50LTJ7YmFja2dyb3VuZC1jb2xvcjojZmZkNzQwICFpbXBvcnRhbnR9LmFtYmVyLXRleHQudGV4dC1hY2NlbnQtMntjb2xvcjojZmZkNzQwICFpbXBvcnRhbnR9LmFtYmVyLmFjY2VudC0ze2JhY2tncm91bmQtY29sb3I6I2ZmYzQwMCAhaW1wb3J0YW50fS5hbWJlci10ZXh0LnRleHQtYWNjZW50LTN7Y29sb3I6I2ZmYzQwMCAhaW1wb3J0YW50fS5hbWJlci5hY2NlbnQtNHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmFiMDAgIWltcG9ydGFudH0uYW1iZXItdGV4dC50ZXh0LWFjY2VudC00e2NvbG9yOiNmZmFiMDAgIWltcG9ydGFudH0ub3Jhbmdle2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMCAhaW1wb3J0YW50fS5vcmFuZ2UtdGV4dHtjb2xvcjojZmY5ODAwICFpbXBvcnRhbnR9Lm9yYW5nZS5saWdodGVuLTV7YmFja2dyb3VuZC1jb2xvcjojZmZmM2UwICFpbXBvcnRhbnR9Lm9yYW5nZS10ZXh0LnRleHQtbGlnaHRlbi01e2NvbG9yOiNmZmYzZTAgIWltcG9ydGFudH0ub3JhbmdlLmxpZ2h0ZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmUwYjIgIWltcG9ydGFudH0ub3JhbmdlLXRleHQudGV4dC1saWdodGVuLTR7Y29sb3I6I2ZmZTBiMiAhaW1wb3J0YW50fS5vcmFuZ2UubGlnaHRlbi0ze2JhY2tncm91bmQtY29sb3I6I2ZmY2M4MCAhaW1wb3J0YW50fS5vcmFuZ2UtdGV4dC50ZXh0LWxpZ2h0ZW4tM3tjb2xvcjojZmZjYzgwICFpbXBvcnRhbnR9Lm9yYW5nZS5saWdodGVuLTJ7YmFja2dyb3VuZC1jb2xvcjojZmZiNzRkICFpbXBvcnRhbnR9Lm9yYW5nZS10ZXh0LnRleHQtbGlnaHRlbi0ye2NvbG9yOiNmZmI3NGQgIWltcG9ydGFudH0ub3JhbmdlLmxpZ2h0ZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmE3MjYgIWltcG9ydGFudH0ub3JhbmdlLXRleHQudGV4dC1saWdodGVuLTF7Y29sb3I6I2ZmYTcyNiAhaW1wb3J0YW50fS5vcmFuZ2UuZGFya2VuLTF7YmFja2dyb3VuZC1jb2xvcjojZmI4YzAwICFpbXBvcnRhbnR9Lm9yYW5nZS10ZXh0LnRleHQtZGFya2VuLTF7Y29sb3I6I2ZiOGMwMCAhaW1wb3J0YW50fS5vcmFuZ2UuZGFya2VuLTJ7YmFja2dyb3VuZC1jb2xvcjojZjU3YzAwICFpbXBvcnRhbnR9Lm9yYW5nZS10ZXh0LnRleHQtZGFya2VuLTJ7Y29sb3I6I2Y1N2MwMCAhaW1wb3J0YW50fS5vcmFuZ2UuZGFya2VuLTN7YmFja2dyb3VuZC1jb2xvcjojZWY2YzAwICFpbXBvcnRhbnR9Lm9yYW5nZS10ZXh0LnRleHQtZGFya2VuLTN7Y29sb3I6I2VmNmMwMCAhaW1wb3J0YW50fS5vcmFuZ2UuZGFya2VuLTR7YmFja2dyb3VuZC1jb2xvcjojZTY1MTAwICFpbXBvcnRhbnR9Lm9yYW5nZS10ZXh0LnRleHQtZGFya2VuLTR7Y29sb3I6I2U2NTEwMCAhaW1wb3J0YW50fS5vcmFuZ2UuYWNjZW50LTF7YmFja2dyb3VuZC1jb2xvcjojZmZkMTgwICFpbXBvcnRhbnR9Lm9yYW5nZS10ZXh0LnRleHQtYWNjZW50LTF7Y29sb3I6I2ZmZDE4MCAhaW1wb3J0YW50fS5vcmFuZ2UuYWNjZW50LTJ7YmFja2dyb3VuZC1jb2xvcjojZmZhYjQwICFpbXBvcnRhbnR9Lm9yYW5nZS10ZXh0LnRleHQtYWNjZW50LTJ7Y29sb3I6I2ZmYWI0MCAhaW1wb3J0YW50fS5vcmFuZ2UuYWNjZW50LTN7YmFja2dyb3VuZC1jb2xvcjojZmY5MTAwICFpbXBvcnRhbnR9Lm9yYW5nZS10ZXh0LnRleHQtYWNjZW50LTN7Y29sb3I6I2ZmOTEwMCAhaW1wb3J0YW50fS5vcmFuZ2UuYWNjZW50LTR7YmFja2dyb3VuZC1jb2xvcjojZmY2ZDAwICFpbXBvcnRhbnR9Lm9yYW5nZS10ZXh0LnRleHQtYWNjZW50LTR7Y29sb3I6I2ZmNmQwMCAhaW1wb3J0YW50fS5kZWVwLW9yYW5nZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZjU3MjIgIWltcG9ydGFudH0uZGVlcC1vcmFuZ2UtdGV4dHtjb2xvcjojZmY1NzIyICFpbXBvcnRhbnR9LmRlZXAtb3JhbmdlLmxpZ2h0ZW4tNXtiYWNrZ3JvdW5kLWNvbG9yOiNmYmU5ZTcgIWltcG9ydGFudH0uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWxpZ2h0ZW4tNXtjb2xvcjojZmJlOWU3ICFpbXBvcnRhbnR9LmRlZXAtb3JhbmdlLmxpZ2h0ZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmNjYmMgIWltcG9ydGFudH0uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWxpZ2h0ZW4tNHtjb2xvcjojZmZjY2JjICFpbXBvcnRhbnR9LmRlZXAtb3JhbmdlLmxpZ2h0ZW4tM3tiYWNrZ3JvdW5kLWNvbG9yOiNmZmFiOTEgIWltcG9ydGFudH0uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWxpZ2h0ZW4tM3tjb2xvcjojZmZhYjkxICFpbXBvcnRhbnR9LmRlZXAtb3JhbmdlLmxpZ2h0ZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiNmZjhhNjUgIWltcG9ydGFudH0uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWxpZ2h0ZW4tMntjb2xvcjojZmY4YTY1ICFpbXBvcnRhbnR9LmRlZXAtb3JhbmdlLmxpZ2h0ZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiNmZjcwNDMgIWltcG9ydGFudH0uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWxpZ2h0ZW4tMXtjb2xvcjojZmY3MDQzICFpbXBvcnRhbnR9LmRlZXAtb3JhbmdlLmRhcmtlbi0xe2JhY2tncm91bmQtY29sb3I6I2Y0NTExZSAhaW1wb3J0YW50fS5kZWVwLW9yYW5nZS10ZXh0LnRleHQtZGFya2VuLTF7Y29sb3I6I2Y0NTExZSAhaW1wb3J0YW50fS5kZWVwLW9yYW5nZS5kYXJrZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiNlNjRhMTkgIWltcG9ydGFudH0uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWRhcmtlbi0ye2NvbG9yOiNlNjRhMTkgIWltcG9ydGFudH0uZGVlcC1vcmFuZ2UuZGFya2VuLTN7YmFja2dyb3VuZC1jb2xvcjojZDg0MzE1ICFpbXBvcnRhbnR9LmRlZXAtb3JhbmdlLXRleHQudGV4dC1kYXJrZW4tM3tjb2xvcjojZDg0MzE1ICFpbXBvcnRhbnR9LmRlZXAtb3JhbmdlLmRhcmtlbi00e2JhY2tncm91bmQtY29sb3I6I2JmMzYwYyAhaW1wb3J0YW50fS5kZWVwLW9yYW5nZS10ZXh0LnRleHQtZGFya2VuLTR7Y29sb3I6I2JmMzYwYyAhaW1wb3J0YW50fS5kZWVwLW9yYW5nZS5hY2NlbnQtMXtiYWNrZ3JvdW5kLWNvbG9yOiNmZjllODAgIWltcG9ydGFudH0uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWFjY2VudC0xe2NvbG9yOiNmZjllODAgIWltcG9ydGFudH0uZGVlcC1vcmFuZ2UuYWNjZW50LTJ7YmFja2dyb3VuZC1jb2xvcjojZmY2ZTQwICFpbXBvcnRhbnR9LmRlZXAtb3JhbmdlLXRleHQudGV4dC1hY2NlbnQtMntjb2xvcjojZmY2ZTQwICFpbXBvcnRhbnR9LmRlZXAtb3JhbmdlLmFjY2VudC0ze2JhY2tncm91bmQtY29sb3I6I2ZmM2QwMCAhaW1wb3J0YW50fS5kZWVwLW9yYW5nZS10ZXh0LnRleHQtYWNjZW50LTN7Y29sb3I6I2ZmM2QwMCAhaW1wb3J0YW50fS5kZWVwLW9yYW5nZS5hY2NlbnQtNHtiYWNrZ3JvdW5kLWNvbG9yOiNkZDJjMDAgIWltcG9ydGFudH0uZGVlcC1vcmFuZ2UtdGV4dC50ZXh0LWFjY2VudC00e2NvbG9yOiNkZDJjMDAgIWltcG9ydGFudH0uYnJvd257YmFja2dyb3VuZC1jb2xvcjojNzk1NTQ4ICFpbXBvcnRhbnR9LmJyb3duLXRleHR7Y29sb3I6Izc5NTU0OCAhaW1wb3J0YW50fS5icm93bi5saWdodGVuLTV7YmFja2dyb3VuZC1jb2xvcjojZWZlYmU5ICFpbXBvcnRhbnR9LmJyb3duLXRleHQudGV4dC1saWdodGVuLTV7Y29sb3I6I2VmZWJlOSAhaW1wb3J0YW50fS5icm93bi5saWdodGVuLTR7YmFja2dyb3VuZC1jb2xvcjojZDdjY2M4ICFpbXBvcnRhbnR9LmJyb3duLXRleHQudGV4dC1saWdodGVuLTR7Y29sb3I6I2Q3Y2NjOCAhaW1wb3J0YW50fS5icm93bi5saWdodGVuLTN7YmFja2dyb3VuZC1jb2xvcjojYmNhYWE0ICFpbXBvcnRhbnR9LmJyb3duLXRleHQudGV4dC1saWdodGVuLTN7Y29sb3I6I2JjYWFhNCAhaW1wb3J0YW50fS5icm93bi5saWdodGVuLTJ7YmFja2dyb3VuZC1jb2xvcjojYTE4ODdmICFpbXBvcnRhbnR9LmJyb3duLXRleHQudGV4dC1saWdodGVuLTJ7Y29sb3I6I2ExODg3ZiAhaW1wb3J0YW50fS5icm93bi5saWdodGVuLTF7YmFja2dyb3VuZC1jb2xvcjojOGQ2ZTYzICFpbXBvcnRhbnR9LmJyb3duLXRleHQudGV4dC1saWdodGVuLTF7Y29sb3I6IzhkNmU2MyAhaW1wb3J0YW50fS5icm93bi5kYXJrZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiM2ZDRjNDEgIWltcG9ydGFudH0uYnJvd24tdGV4dC50ZXh0LWRhcmtlbi0xe2NvbG9yOiM2ZDRjNDEgIWltcG9ydGFudH0uYnJvd24uZGFya2VuLTJ7YmFja2dyb3VuZC1jb2xvcjojNWQ0MDM3ICFpbXBvcnRhbnR9LmJyb3duLXRleHQudGV4dC1kYXJrZW4tMntjb2xvcjojNWQ0MDM3ICFpbXBvcnRhbnR9LmJyb3duLmRhcmtlbi0ze2JhY2tncm91bmQtY29sb3I6IzRlMzQyZSAhaW1wb3J0YW50fS5icm93bi10ZXh0LnRleHQtZGFya2VuLTN7Y29sb3I6IzRlMzQyZSAhaW1wb3J0YW50fS5icm93bi5kYXJrZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiMzZTI3MjMgIWltcG9ydGFudH0uYnJvd24tdGV4dC50ZXh0LWRhcmtlbi00e2NvbG9yOiMzZTI3MjMgIWltcG9ydGFudH0uYmx1ZS1ncmV5e2JhY2tncm91bmQtY29sb3I6IzYwN2Q4YiAhaW1wb3J0YW50fS5ibHVlLWdyZXktdGV4dHtjb2xvcjojNjA3ZDhiICFpbXBvcnRhbnR9LmJsdWUtZ3JleS5saWdodGVuLTV7YmFja2dyb3VuZC1jb2xvcjojZWNlZmYxICFpbXBvcnRhbnR9LmJsdWUtZ3JleS10ZXh0LnRleHQtbGlnaHRlbi01e2NvbG9yOiNlY2VmZjEgIWltcG9ydGFudH0uYmx1ZS1ncmV5LmxpZ2h0ZW4tNHtiYWNrZ3JvdW5kLWNvbG9yOiNjZmQ4ZGMgIWltcG9ydGFudH0uYmx1ZS1ncmV5LXRleHQudGV4dC1saWdodGVuLTR7Y29sb3I6I2NmZDhkYyAhaW1wb3J0YW50fS5ibHVlLWdyZXkubGlnaHRlbi0ze2JhY2tncm91bmQtY29sb3I6I2IwYmVjNSAhaW1wb3J0YW50fS5ibHVlLWdyZXktdGV4dC50ZXh0LWxpZ2h0ZW4tM3tjb2xvcjojYjBiZWM1ICFpbXBvcnRhbnR9LmJsdWUtZ3JleS5saWdodGVuLTJ7YmFja2dyb3VuZC1jb2xvcjojOTBhNGFlICFpbXBvcnRhbnR9LmJsdWUtZ3JleS10ZXh0LnRleHQtbGlnaHRlbi0ye2NvbG9yOiM5MGE0YWUgIWltcG9ydGFudH0uYmx1ZS1ncmV5LmxpZ2h0ZW4tMXtiYWNrZ3JvdW5kLWNvbG9yOiM3ODkwOWMgIWltcG9ydGFudH0uYmx1ZS1ncmV5LXRleHQudGV4dC1saWdodGVuLTF7Y29sb3I6Izc4OTA5YyAhaW1wb3J0YW50fS5ibHVlLWdyZXkuZGFya2VuLTF7YmFja2dyb3VuZC1jb2xvcjojNTQ2ZTdhICFpbXBvcnRhbnR9LmJsdWUtZ3JleS10ZXh0LnRleHQtZGFya2VuLTF7Y29sb3I6IzU0NmU3YSAhaW1wb3J0YW50fS5ibHVlLWdyZXkuZGFya2VuLTJ7YmFja2dyb3VuZC1jb2xvcjojNDU1YTY0ICFpbXBvcnRhbnR9LmJsdWUtZ3JleS10ZXh0LnRleHQtZGFya2VuLTJ7Y29sb3I6IzQ1NWE2NCAhaW1wb3J0YW50fS5ibHVlLWdyZXkuZGFya2VuLTN7YmFja2dyb3VuZC1jb2xvcjojMzc0NzRmICFpbXBvcnRhbnR9LmJsdWUtZ3JleS10ZXh0LnRleHQtZGFya2VuLTN7Y29sb3I6IzM3NDc0ZiAhaW1wb3J0YW50fS5ibHVlLWdyZXkuZGFya2VuLTR7YmFja2dyb3VuZC1jb2xvcjojMjYzMjM4ICFpbXBvcnRhbnR9LmJsdWUtZ3JleS10ZXh0LnRleHQtZGFya2VuLTR7Y29sb3I6IzI2MzIzOCAhaW1wb3J0YW50fS5ncmV5e2JhY2tncm91bmQtY29sb3I6IzllOWU5ZSAhaW1wb3J0YW50fS5ncmV5LXRleHR7Y29sb3I6IzllOWU5ZSAhaW1wb3J0YW50fS5ncmV5LmxpZ2h0ZW4tNXtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmEgIWltcG9ydGFudH0uZ3JleS10ZXh0LnRleHQtbGlnaHRlbi01e2NvbG9yOiNmYWZhZmEgIWltcG9ydGFudH0uZ3JleS5saWdodGVuLTR7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1ICFpbXBvcnRhbnR9LmdyZXktdGV4dC50ZXh0LWxpZ2h0ZW4tNHtjb2xvcjojZjVmNWY1ICFpbXBvcnRhbnR9LmdyZXkubGlnaHRlbi0ze2JhY2tncm91bmQtY29sb3I6I2VlZSAhaW1wb3J0YW50fS5ncmV5LXRleHQudGV4dC1saWdodGVuLTN7Y29sb3I6I2VlZSAhaW1wb3J0YW50fS5ncmV5LmxpZ2h0ZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTAgIWltcG9ydGFudH0uZ3JleS10ZXh0LnRleHQtbGlnaHRlbi0ye2NvbG9yOiNlMGUwZTAgIWltcG9ydGFudH0uZ3JleS5saWdodGVuLTF7YmFja2dyb3VuZC1jb2xvcjojYmRiZGJkICFpbXBvcnRhbnR9LmdyZXktdGV4dC50ZXh0LWxpZ2h0ZW4tMXtjb2xvcjojYmRiZGJkICFpbXBvcnRhbnR9LmdyZXkuZGFya2VuLTF7YmFja2dyb3VuZC1jb2xvcjojNzU3NTc1ICFpbXBvcnRhbnR9LmdyZXktdGV4dC50ZXh0LWRhcmtlbi0xe2NvbG9yOiM3NTc1NzUgIWltcG9ydGFudH0uZ3JleS5kYXJrZW4tMntiYWNrZ3JvdW5kLWNvbG9yOiM2MTYxNjEgIWltcG9ydGFudH0uZ3JleS10ZXh0LnRleHQtZGFya2VuLTJ7Y29sb3I6IzYxNjE2MSAhaW1wb3J0YW50fS5ncmV5LmRhcmtlbi0ze2JhY2tncm91bmQtY29sb3I6IzQyNDI0MiAhaW1wb3J0YW50fS5ncmV5LXRleHQudGV4dC1kYXJrZW4tM3tjb2xvcjojNDI0MjQyICFpbXBvcnRhbnR9LmdyZXkuZGFya2VuLTR7YmFja2dyb3VuZC1jb2xvcjojMjEyMTIxICFpbXBvcnRhbnR9LmdyZXktdGV4dC50ZXh0LWRhcmtlbi00e2NvbG9yOiMyMTIxMjEgIWltcG9ydGFudH0uYmxhY2t7YmFja2dyb3VuZC1jb2xvcjojMDAwICFpbXBvcnRhbnR9LmJsYWNrLXRleHR7Y29sb3I6IzAwMCAhaW1wb3J0YW50fS53aGl0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYgIWltcG9ydGFudH0ud2hpdGUtdGV4dHtjb2xvcjojZmZmICFpbXBvcnRhbnR9LnRyYW5zcGFyZW50e2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKSAhaW1wb3J0YW50fS50cmFuc3BhcmVudC10ZXh0e2NvbG9yOnJnYmEoMCwwLDAsMCkgIWltcG9ydGFudH0vKiEgbm9ybWFsaXplLmNzcyB2Ny4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovaHRtbHtsaW5lLWhlaWdodDoxLjE1Oy1tcy10ZXh0LXNpemUtYWRqdXN0OjEwMCU7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCV9Ym9keXttYXJnaW46MH1hcnRpY2xlLGFzaWRlLGZvb3RlcixoZWFkZXIsbmF2LHNlY3Rpb257ZGlzcGxheTpibG9ja31oMXtmb250LXNpemU6MmVtO21hcmdpbjowLjY3ZW0gMH1maWdjYXB0aW9uLGZpZ3VyZSxtYWlue2Rpc3BsYXk6YmxvY2t9ZmlndXJle21hcmdpbjoxZW0gNDBweH1ocnstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtoZWlnaHQ6MDtvdmVyZmxvdzp2aXNpYmxlfXByZXtmb250LWZhbWlseTptb25vc3BhY2UsIG1vbm9zcGFjZTtmb250LXNpemU6MWVtfWF7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOm9iamVjdHN9YWJiclt0aXRsZV17Ym9yZGVyLWJvdHRvbTpub25lO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdHRlZDstbW96LXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkfWIsc3Ryb25ne2ZvbnQtd2VpZ2h0OmluaGVyaXR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfWNvZGUsa2JkLHNhbXB7Zm9udC1mYW1pbHk6bW9ub3NwYWNlLCBtb25vc3BhY2U7Zm9udC1zaXplOjFlbX1kZm57Zm9udC1zdHlsZTppdGFsaWN9bWFya3tiYWNrZ3JvdW5kLWNvbG9yOiNmZjA7Y29sb3I6IzAwMH1zbWFsbHtmb250LXNpemU6ODAlfXN1YixzdXB7Zm9udC1zaXplOjc1JTtsaW5lLWhlaWdodDowO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXN1Yntib3R0b206LTAuMjVlbX1zdXB7dG9wOi0wLjVlbX1hdWRpbyx2aWRlb3tkaXNwbGF5OmlubGluZS1ibG9ja31hdWRpbzpub3QoW2NvbnRyb2xzXSl7ZGlzcGxheTpub25lO2hlaWdodDowfWltZ3tib3JkZXItc3R5bGU6bm9uZX1zdmc6bm90KDpyb290KXtvdmVyZmxvdzpoaWRkZW59YnV0dG9uLGlucHV0LG9wdGdyb3VwLHNlbGVjdCx0ZXh0YXJlYXtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMDAlO2xpbmUtaGVpZ2h0OjEuMTU7bWFyZ2luOjB9YnV0dG9uLGlucHV0e292ZXJmbG93OnZpc2libGV9YnV0dG9uLHNlbGVjdHt0ZXh0LXRyYW5zZm9ybTpub25lfWJ1dHRvbixodG1sIFt0eXBlPSJidXR0b24iXSxbdHlwZT0icmVzZXQiXSxbdHlwZT0ic3VibWl0Il17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbn1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9ImJ1dHRvbiJdOjotbW96LWZvY3VzLWlubmVyLFt0eXBlPSJyZXNldCJdOjotbW96LWZvY3VzLWlubmVyLFt0eXBlPSJzdWJtaXQiXTo6LW1vei1mb2N1cy1pbm5lcntib3JkZXItc3R5bGU6bm9uZTtwYWRkaW5nOjB9YnV0dG9uOi1tb3otZm9jdXNyaW5nLFt0eXBlPSJidXR0b24iXTotbW96LWZvY3VzcmluZyxbdHlwZT0icmVzZXQiXTotbW96LWZvY3VzcmluZyxbdHlwZT0ic3VibWl0Il06LW1vei1mb2N1c3Jpbmd7b3V0bGluZToxcHggZG90dGVkIEJ1dHRvblRleHR9ZmllbGRzZXR7cGFkZGluZzowLjM1ZW0gMC43NWVtIDAuNjI1ZW19bGVnZW5key13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2Rpc3BsYXk6dGFibGU7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzowO3doaXRlLXNwYWNlOm5vcm1hbH1wcm9ncmVzc3tkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX10ZXh0YXJlYXtvdmVyZmxvdzphdXRvfVt0eXBlPSJjaGVja2JveCJdLFt0eXBlPSJyYWRpbyJdey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjB9W3R5cGU9Im51bWJlciJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFt0eXBlPSJudW1iZXIiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31bdHlwZT0ic2VhcmNoIl17LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDtvdXRsaW5lLW9mZnNldDotMnB4fVt0eXBlPSJzZWFyY2giXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixbdHlwZT0ic2VhcmNoIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9uO2ZvbnQ6aW5oZXJpdH1kZXRhaWxzLG1lbnV7ZGlzcGxheTpibG9ja31zdW1tYXJ5e2Rpc3BsYXk6bGlzdC1pdGVtfWNhbnZhc3tkaXNwbGF5OmlubGluZS1ibG9ja310ZW1wbGF0ZXtkaXNwbGF5Om5vbmV9W2hpZGRlbl17ZGlzcGxheTpub25lfWh0bWx7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fSosKjpiZWZvcmUsKjphZnRlcnstd2Via2l0LWJveC1zaXppbmc6aW5oZXJpdDtib3gtc2l6aW5nOmluaGVyaXR9YnV0dG9uLGlucHV0LG9wdGdyb3VwLHNlbGVjdCx0ZXh0YXJlYXtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwiU2Vnb2UgVUkiLFJvYm90byxPeHlnZW4tU2FucyxVYnVudHUsQ2FudGFyZWxsLCJIZWx2ZXRpY2EgTmV1ZSIsc2Fucy1zZXJpZn11bDpub3QoLmJyb3dzZXItZGVmYXVsdCl7cGFkZGluZy1sZWZ0OjA7bGlzdC1zdHlsZS10eXBlOm5vbmV9dWw6bm90KC5icm93c2VyLWRlZmF1bHQpPmxpe2xpc3Qtc3R5bGUtdHlwZTpub25lfWF7Y29sb3I6IzAzOWJlNTt0ZXh0LWRlY29yYXRpb246bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9LnZhbGlnbi13cmFwcGVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LmNsZWFyZml4e2NsZWFyOmJvdGh9LnotZGVwdGgtMHstd2Via2l0LWJveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50fS56LWRlcHRoLTEsbmF2LC5jYXJkLXBhbmVsLC5jYXJkLC50b2FzdCwuYnRuLC5idG4tbGFyZ2UsLmJ0bi1zbWFsbCwuYnRuLWZsb2F0aW5nLC5kcm9wZG93bi1jb250ZW50LC5jb2xsYXBzaWJsZSwuc2lkZW5hdnstd2Via2l0LWJveC1zaGFkb3c6MCAycHggMnB4IDAgcmdiYSgwLDAsMCwwLjE0KSwwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpLDAgMXB4IDVweCAwIHJnYmEoMCwwLDAsMC4yKTtib3gtc2hhZG93OjAgMnB4IDJweCAwIHJnYmEoMCwwLDAsMC4xNCksMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKSwwIDFweCA1cHggMCByZ2JhKDAsMCwwLDAuMil9LnotZGVwdGgtMS1oYWxmLC5idG46aG92ZXIsLmJ0bi1sYXJnZTpob3ZlciwuYnRuLXNtYWxsOmhvdmVyLC5idG4tZmxvYXRpbmc6aG92ZXJ7LXdlYmtpdC1ib3gtc2hhZG93OjAgM3B4IDNweCAwIHJnYmEoMCwwLDAsMC4xNCksMCAxcHggN3B4IDAgcmdiYSgwLDAsMCwwLjEyKSwwIDNweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMik7Ym94LXNoYWRvdzowIDNweCAzcHggMCByZ2JhKDAsMCwwLDAuMTQpLDAgMXB4IDdweCAwIHJnYmEoMCwwLDAsMC4xMiksMCAzcHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpfS56LWRlcHRoLTJ7LXdlYmtpdC1ib3gtc2hhZG93OjAgNHB4IDVweCAwIHJnYmEoMCwwLDAsMC4xNCksMCAxcHggMTBweCAwIHJnYmEoMCwwLDAsMC4xMiksMCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjMpO2JveC1zaGFkb3c6MCA0cHggNXB4IDAgcmdiYSgwLDAsMCwwLjE0KSwwIDFweCAxMHB4IDAgcmdiYSgwLDAsMCwwLjEyKSwwIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMyl9LnotZGVwdGgtM3std2Via2l0LWJveC1zaGFkb3c6MCA4cHggMTdweCAycHggcmdiYSgwLDAsMCwwLjE0KSwwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpLDAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKTtib3gtc2hhZG93OjAgOHB4IDE3cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksMCAzcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKSwwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMil9LnotZGVwdGgtNHstd2Via2l0LWJveC1zaGFkb3c6MCAxNnB4IDI0cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksMCA2cHggMzBweCA1cHggcmdiYSgwLDAsMCwwLjEyKSwwIDhweCAxMHB4IC03cHggcmdiYSgwLDAsMCwwLjIpO2JveC1zaGFkb3c6MCAxNnB4IDI0cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksMCA2cHggMzBweCA1cHggcmdiYSgwLDAsMCwwLjEyKSwwIDhweCAxMHB4IC03cHggcmdiYSgwLDAsMCwwLjIpfS56LWRlcHRoLTUsLm1vZGFsey13ZWJraXQtYm94LXNoYWRvdzowIDI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwwIDlweCA0NnB4IDhweCByZ2JhKDAsMCwwLDAuMTIpLDAgMTFweCAxNXB4IC03cHggcmdiYSgwLDAsMCwwLjIpO2JveC1zaGFkb3c6MCAyNHB4IDM4cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksMCA5cHggNDZweCA4cHggcmdiYSgwLDAsMCwwLjEyKSwwIDExcHggMTVweCAtN3B4IHJnYmEoMCwwLDAsMC4yKX0uaG92ZXJhYmxley13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LWJveC1zaGFkb3cgLjI1czt0cmFuc2l0aW9uOi13ZWJraXQtYm94LXNoYWRvdyAuMjVzO3RyYW5zaXRpb246Ym94LXNoYWRvdyAuMjVzO3RyYW5zaXRpb246Ym94LXNoYWRvdyAuMjVzLCAtd2Via2l0LWJveC1zaGFkb3cgLjI1c30uaG92ZXJhYmxlOmhvdmVyey13ZWJraXQtYm94LXNoYWRvdzowIDhweCAxN3B4IDAgcmdiYSgwLDAsMCwwLjIpLDAgNnB4IDIwcHggMCByZ2JhKDAsMCwwLDAuMTkpO2JveC1zaGFkb3c6MCA4cHggMTdweCAwIHJnYmEoMCwwLDAsMC4yKSwwIDZweCAyMHB4IDAgcmdiYSgwLDAsMCwwLjE5KX0uZGl2aWRlcntoZWlnaHQ6MXB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOiNlMGUwZTB9YmxvY2txdW90ZXttYXJnaW46MjBweCAwO3BhZGRpbmctbGVmdDoxLjVyZW07Ym9yZGVyLWxlZnQ6NXB4IHNvbGlkICNlZTZlNzN9aXtsaW5lLWhlaWdodDppbmhlcml0fWkubGVmdHtmbG9hdDpsZWZ0O21hcmdpbi1yaWdodDoxNXB4fWkucmlnaHR7ZmxvYXQ6cmlnaHQ7bWFyZ2luLWxlZnQ6MTVweH1pLnRpbnl7Zm9udC1zaXplOjFyZW19aS5zbWFsbHtmb250LXNpemU6MnJlbX1pLm1lZGl1bXtmb250LXNpemU6NHJlbX1pLmxhcmdle2ZvbnQtc2l6ZTo2cmVtfWltZy5yZXNwb25zaXZlLWltZyx2aWRlby5yZXNwb25zaXZlLXZpZGVve21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvfS5wYWdpbmF0aW9uIGxpe2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JvcmRlci1yYWRpdXM6MnB4O3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOnRvcDtoZWlnaHQ6MzBweH0ucGFnaW5hdGlvbiBsaSBhe2NvbG9yOiM0NDQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjEuMnJlbTtwYWRkaW5nOjAgMTBweDtsaW5lLWhlaWdodDozMHB4fS5wYWdpbmF0aW9uIGxpLmFjdGl2ZSBhe2NvbG9yOiNmZmZ9LnBhZ2luYXRpb24gbGkuYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2VlNmU3M30ucGFnaW5hdGlvbiBsaS5kaXNhYmxlZCBhe2N1cnNvcjpkZWZhdWx0O2NvbG9yOiM5OTl9LnBhZ2luYXRpb24gbGkgaXtmb250LXNpemU6MnJlbX0ucGFnaW5hdGlvbiBsaS5wYWdlcyB1bCBsaXtkaXNwbGF5OmlubGluZS1ibG9jaztmbG9hdDpub25lfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpey5wYWdpbmF0aW9ue3dpZHRoOjEwMCV9LnBhZ2luYXRpb24gbGkucHJldiwucGFnaW5hdGlvbiBsaS5uZXh0e3dpZHRoOjEwJX0ucGFnaW5hdGlvbiBsaS5wYWdlc3t3aWR0aDo4MCU7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH19LmJyZWFkY3J1bWJ7Zm9udC1zaXplOjE4cHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjcpfS5icmVhZGNydW1iIGksLmJyZWFkY3J1bWIgW2NsYXNzXj0ibWRpLSJdLC5icmVhZGNydW1iIFtjbGFzcyo9Im1kaS0iXSwuYnJlYWRjcnVtYiBpLm1hdGVyaWFsLWljb25ze2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0OmxlZnQ7Zm9udC1zaXplOjI0cHh9LmJyZWFkY3J1bWI6YmVmb3Jle2NvbnRlbnQ6J1xFNUNDJztjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyk7dmVydGljYWwtYWxpZ246dG9wO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OidNYXRlcmlhbCBJY29ucyc7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtc2l6ZToyNXB4O21hcmdpbjowIDEwcHggMCA4cHg7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZH0uYnJlYWRjcnVtYjpmaXJzdC1jaGlsZDpiZWZvcmV7ZGlzcGxheTpub25lfS5icmVhZGNydW1iOmxhc3QtY2hpbGR7Y29sb3I6I2ZmZn0ucGFyYWxsYXgtY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtoZWlnaHQ6NTAwcHh9LnBhcmFsbGF4LWNvbnRhaW5lciAucGFyYWxsYXh7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7ei1pbmRleDotMX0ucGFyYWxsYXgtY29udGFpbmVyIC5wYXJhbGxheCBpbWd7b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTAlO2JvdHRvbTowO21pbi13aWR0aDoxMDAlO21pbi1oZWlnaHQ6MTAwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX0ucGluLXRvcCwucGluLWJvdHRvbXtwb3NpdGlvbjpyZWxhdGl2ZX0ucGlubmVke3Bvc2l0aW9uOmZpeGVkICFpbXBvcnRhbnR9dWwuc3RhZ2dlcmVkLWxpc3QgbGl7b3BhY2l0eTowfS5mYWRlLWlue29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCA1MCU7dHJhbnNmb3JtLW9yaWdpbjowIDUwJX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KXsuaGlkZS1vbi1zbWFsbC1vbmx5LC5oaWRlLW9uLXNtYWxsLWFuZC1kb3due2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KXsuaGlkZS1vbi1tZWQtYW5kLWRvd257ZGlzcGxheTpub25lICFpbXBvcnRhbnR9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAxcHgpey5oaWRlLW9uLW1lZC1hbmQtdXB7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA5OTJweCl7LmhpZGUtb24tbWVkLW9ubHl7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkzcHgpey5oaWRlLW9uLWxhcmdlLW9ubHl7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMXB4KXsuaGlkZS1vbi1leHRyYS1sYXJnZS1vbmx5e2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDFweCl7LnNob3ctb24tZXh0cmEtbGFyZ2V7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5M3B4KXsuc2hvdy1vbi1sYXJnZXtkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnR9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWF4LXdpZHRoOiA5OTJweCl7LnNob3ctb24tbWVkaXVte2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCl7LnNob3ctb24tc21hbGx7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50fX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMXB4KXsuc2hvdy1vbi1tZWRpdW0tYW5kLXVwe2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCl7LnNob3ctb24tbWVkaXVtLWFuZC1kb3due2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudH19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCl7LmNlbnRlci1vbi1zbWFsbC1vbmx5e3RleHQtYWxpZ246Y2VudGVyfX0ucGFnZS1mb290ZXJ7cGFkZGluZy10b3A6MjBweDtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2VlNmU3M30ucGFnZS1mb290ZXIgLmZvb3Rlci1jb3B5cmlnaHR7b3ZlcmZsb3c6aGlkZGVuO21pbi1oZWlnaHQ6NTBweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjEwcHggMHB4O2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC44KTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNTEsNTEsNTEsMC4wOCl9dGFibGUsdGgsdGR7Ym9yZGVyOm5vbmV9dGFibGV7d2lkdGg6MTAwJTtkaXNwbGF5OnRhYmxlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtib3JkZXItc3BhY2luZzowfXRhYmxlLnN0cmlwZWQgdHJ7Ym9yZGVyLWJvdHRvbTpub25lfXRhYmxlLnN0cmlwZWQ+dGJvZHk+dHI6bnRoLWNoaWxkKG9kZCl7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0MiwyNDIsMjQyLDAuNSl9dGFibGUuc3RyaXBlZD50Ym9keT50cj50ZHtib3JkZXItcmFkaXVzOjB9dGFibGUuaGlnaGxpZ2h0PnRib2R5PnRyey13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4yNXMgZWFzZTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjI1cyBlYXNlfXRhYmxlLmhpZ2hsaWdodD50Ym9keT50cjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQyLDI0MiwyNDIsMC41KX10YWJsZS5jZW50ZXJlZCB0aGVhZCB0ciB0aCx0YWJsZS5jZW50ZXJlZCB0Ym9keSB0ciB0ZHt0ZXh0LWFsaWduOmNlbnRlcn10cntib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTIpfXRkLHRoe3BhZGRpbmc6MTVweCA1cHg7ZGlzcGxheTp0YWJsZS1jZWxsO3RleHQtYWxpZ246bGVmdDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ym9yZGVyLXJhZGl1czoycHh9QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCl7dGFibGUucmVzcG9uc2l2ZS10YWJsZXt3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtib3JkZXItc3BhY2luZzowO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmV9dGFibGUucmVzcG9uc2l2ZS10YWJsZSB0ZDplbXB0eTpiZWZvcmV7Y29udGVudDonXDAwYTAnfXRhYmxlLnJlc3BvbnNpdmUtdGFibGUgdGgsdGFibGUucmVzcG9uc2l2ZS10YWJsZSB0ZHttYXJnaW46MDt2ZXJ0aWNhbC1hbGlnbjp0b3B9dGFibGUucmVzcG9uc2l2ZS10YWJsZSB0aHt0ZXh0LWFsaWduOmxlZnR9dGFibGUucmVzcG9uc2l2ZS10YWJsZSB0aGVhZHtkaXNwbGF5OmJsb2NrO2Zsb2F0OmxlZnR9dGFibGUucmVzcG9uc2l2ZS10YWJsZSB0aGVhZCB0cntkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MCAxMHB4IDAgMH10YWJsZS5yZXNwb25zaXZlLXRhYmxlIHRoZWFkIHRyIHRoOjpiZWZvcmV7Y29udGVudDoiXDAwYTAifXRhYmxlLnJlc3BvbnNpdmUtdGFibGUgdGJvZHl7ZGlzcGxheTpibG9jazt3aWR0aDphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93LXg6YXV0bzt3aGl0ZS1zcGFjZTpub3dyYXB9dGFibGUucmVzcG9uc2l2ZS10YWJsZSB0Ym9keSB0cntkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3B9dGFibGUucmVzcG9uc2l2ZS10YWJsZSB0aHtkaXNwbGF5OmJsb2NrO3RleHQtYWxpZ246cmlnaHR9dGFibGUucmVzcG9uc2l2ZS10YWJsZSB0ZHtkaXNwbGF5OmJsb2NrO21pbi1oZWlnaHQ6MS4yNWVtO3RleHQtYWxpZ246bGVmdH10YWJsZS5yZXNwb25zaXZlLXRhYmxlIHRye2JvcmRlci1ib3R0b206bm9uZTtwYWRkaW5nOjAgMTBweH10YWJsZS5yZXNwb25zaXZlLXRhYmxlIHRoZWFke2JvcmRlcjowO2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgwLDAsMCwwLjEyKX19LmNvbGxlY3Rpb257bWFyZ2luOi41cmVtIDAgMXJlbSAwO2JvcmRlcjoxcHggc29saWQgI2UwZTBlMDtib3JkZXItcmFkaXVzOjJweDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9LmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7bGluZS1oZWlnaHQ6MS41cmVtO3BhZGRpbmc6MTBweCAyMHB4O21hcmdpbjowO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlMGUwZTB9LmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbS5hdmF0YXJ7bWluLWhlaWdodDo4NHB4O3BhZGRpbmctbGVmdDo3MnB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyOm5vdCguY2lyY2xlLWNsaXBwZXIpPi5jaXJjbGUsLmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbS5hdmF0YXIgOm5vdCguY2lyY2xlLWNsaXBwZXIpPi5jaXJjbGV7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6NDJweDtoZWlnaHQ6NDJweDtvdmVyZmxvdzpoaWRkZW47bGVmdDoxNXB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciBpLmNpcmNsZXtmb250LXNpemU6MThweDtsaW5lLWhlaWdodDo0MnB4O2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojOTk5O3RleHQtYWxpZ246Y2VudGVyfS5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyIC50aXRsZXtmb250LXNpemU6MTZweH0uY29sbGVjdGlvbiAuY29sbGVjdGlvbi1pdGVtLmF2YXRhciBwe21hcmdpbjowfS5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFyIC5zZWNvbmRhcnktY29udGVudHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTZweDtyaWdodDoxNnB4fS5jb2xsZWN0aW9uIC5jb2xsZWN0aW9uLWl0ZW06bGFzdC1jaGlsZHtib3JkZXItYm90dG9tOm5vbmV9LmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbS5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMjZhNjlhO2NvbG9yOiNlYWZhZjl9LmNvbGxlY3Rpb24gLmNvbGxlY3Rpb24taXRlbS5hY3RpdmUgLnNlY29uZGFyeS1jb250ZW50e2NvbG9yOiNmZmZ9LmNvbGxlY3Rpb24gYS5jb2xsZWN0aW9uLWl0ZW17ZGlzcGxheTpibG9jazstd2Via2l0LXRyYW5zaXRpb246LjI1czt0cmFuc2l0aW9uOi4yNXM7Y29sb3I6IzI2YTY5YX0uY29sbGVjdGlvbiBhLmNvbGxlY3Rpb24taXRlbTpub3QoLmFjdGl2ZSk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZGRkfS5jb2xsZWN0aW9uLndpdGgtaGVhZGVyIC5jb2xsZWN0aW9uLWhlYWRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2UwZTBlMDtwYWRkaW5nOjEwcHggMjBweH0uY29sbGVjdGlvbi53aXRoLWhlYWRlciAuY29sbGVjdGlvbi1pdGVte3BhZGRpbmctbGVmdDozMHB4fS5jb2xsZWN0aW9uLndpdGgtaGVhZGVyIC5jb2xsZWN0aW9uLWl0ZW0uYXZhdGFye3BhZGRpbmctbGVmdDo3MnB4fS5zZWNvbmRhcnktY29udGVudHtmbG9hdDpyaWdodDtjb2xvcjojMjZhNjlhfS5jb2xsYXBzaWJsZSAuY29sbGVjdGlvbnttYXJnaW46MDtib3JkZXI6bm9uZX0udmlkZW8tY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctYm90dG9tOjU2LjI1JTtoZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW59LnZpZGVvLWNvbnRhaW5lciBpZnJhbWUsLnZpZGVvLWNvbnRhaW5lciBvYmplY3QsLnZpZGVvLWNvbnRhaW5lciBlbWJlZHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ucHJvZ3Jlc3N7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjRweDtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjojYWNlY2U2O2JvcmRlci1yYWRpdXM6MnB4O21hcmdpbjouNXJlbSAwIDFyZW0gMDtvdmVyZmxvdzpoaWRkZW59LnByb2dyZXNzIC5kZXRlcm1pbmF0ZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjojMjZhNjlhOy13ZWJraXQtdHJhbnNpdGlvbjp3aWR0aCAuM3MgbGluZWFyO3RyYW5zaXRpb246d2lkdGggLjNzIGxpbmVhcn0ucHJvZ3Jlc3MgLmluZGV0ZXJtaW5hdGV7YmFja2dyb3VuZC1jb2xvcjojMjZhNjlhfS5wcm9ncmVzcyAuaW5kZXRlcm1pbmF0ZTpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7dG9wOjA7bGVmdDowO2JvdHRvbTowO3dpbGwtY2hhbmdlOmxlZnQsIHJpZ2h0Oy13ZWJraXQtYW5pbWF0aW9uOmluZGV0ZXJtaW5hdGUgMi4xcyBjdWJpYy1iZXppZXIoMC42NSwgMC44MTUsIDAuNzM1LCAwLjM5NSkgaW5maW5pdGU7YW5pbWF0aW9uOmluZGV0ZXJtaW5hdGUgMi4xcyBjdWJpYy1iZXppZXIoMC42NSwgMC44MTUsIDAuNzM1LCAwLjM5NSkgaW5maW5pdGV9LnByb2dyZXNzIC5pbmRldGVybWluYXRlOmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O3RvcDowO2xlZnQ6MDtib3R0b206MDt3aWxsLWNoYW5nZTpsZWZ0LCByaWdodDstd2Via2l0LWFuaW1hdGlvbjppbmRldGVybWluYXRlLXNob3J0IDIuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSBpbmZpbml0ZTthbmltYXRpb246aW5kZXRlcm1pbmF0ZS1zaG9ydCAyLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSkgaW5maW5pdGU7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6MS4xNXM7YW5pbWF0aW9uLWRlbGF5OjEuMTVzfUAtd2Via2l0LWtleWZyYW1lcyBpbmRldGVybWluYXRlezAle2xlZnQ6LTM1JTtyaWdodDoxMDAlfTYwJXtsZWZ0OjEwMCU7cmlnaHQ6LTkwJX0xMDAle2xlZnQ6MTAwJTtyaWdodDotOTAlfX1Aa2V5ZnJhbWVzIGluZGV0ZXJtaW5hdGV7MCV7bGVmdDotMzUlO3JpZ2h0OjEwMCV9NjAle2xlZnQ6MTAwJTtyaWdodDotOTAlfTEwMCV7bGVmdDoxMDAlO3JpZ2h0Oi05MCV9fUAtd2Via2l0LWtleWZyYW1lcyBpbmRldGVybWluYXRlLXNob3J0ezAle2xlZnQ6LTIwMCU7cmlnaHQ6MTAwJX02MCV7bGVmdDoxMDclO3JpZ2h0Oi04JX0xMDAle2xlZnQ6MTA3JTtyaWdodDotOCV9fUBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZS1zaG9ydHswJXtsZWZ0Oi0yMDAlO3JpZ2h0OjEwMCV9NjAle2xlZnQ6MTA3JTtyaWdodDotOCV9MTAwJXtsZWZ0OjEwNyU7cmlnaHQ6LTglfX0uaGlkZXtkaXNwbGF5Om5vbmUgIWltcG9ydGFudH0ubGVmdC1hbGlnbnt0ZXh0LWFsaWduOmxlZnR9LnJpZ2h0LWFsaWdue3RleHQtYWxpZ246cmlnaHR9LmNlbnRlciwuY2VudGVyLWFsaWdue3RleHQtYWxpZ246Y2VudGVyfS5sZWZ0e2Zsb2F0OmxlZnQgIWltcG9ydGFudH0ucmlnaHR7ZmxvYXQ6cmlnaHQgIWltcG9ydGFudH0ubm8tc2VsZWN0LGlucHV0W3R5cGU9cmFuZ2VdLGlucHV0W3R5cGU9cmFuZ2VdKy50aHVtYnstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmNpcmNsZXtib3JkZXItcmFkaXVzOjUwJX0uY2VudGVyLWJsb2Nre2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0b30udHJ1bmNhdGV7ZGlzcGxheTpibG9jazt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm5vLXBhZGRpbmd7cGFkZGluZzowICFpbXBvcnRhbnR9c3Bhbi5iYWRnZXttaW4td2lkdGg6M3JlbTtwYWRkaW5nOjAgNnB4O21hcmdpbi1sZWZ0OjE0cHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjFyZW07bGluZS1oZWlnaHQ6MjJweDtoZWlnaHQ6MjJweDtjb2xvcjojNzU3NTc1O2Zsb2F0OnJpZ2h0Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH1zcGFuLmJhZGdlLm5ld3tmb250LXdlaWdodDozMDA7Zm9udC1zaXplOjAuOHJlbTtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzI2YTY5YTtib3JkZXItcmFkaXVzOjJweH1zcGFuLmJhZGdlLm5ldzphZnRlcntjb250ZW50OiIgbmV3In1zcGFuLmJhZGdlW2RhdGEtYmFkZ2UtY2FwdGlvbl06OmFmdGVye2NvbnRlbnQ6IiAiIGF0dHIoZGF0YS1iYWRnZS1jYXB0aW9uKX1uYXYgdWwgYSBzcGFuLmJhZGdle2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Zsb2F0Om5vbmU7bWFyZ2luLWxlZnQ6NHB4O2xpbmUtaGVpZ2h0OjIycHg7aGVpZ2h0OjIycHg7LXdlYmtpdC1mb250LXNtb290aGluZzphdXRvfS5jb2xsZWN0aW9uLWl0ZW0gc3Bhbi5iYWRnZXttYXJnaW4tdG9wOmNhbGMoLjc1cmVtIC0gMTFweCl9LmNvbGxhcHNpYmxlIHNwYW4uYmFkZ2V7bWFyZ2luLWxlZnQ6YXV0b30uc2lkZW5hdiBzcGFuLmJhZGdle21hcmdpbi10b3A6Y2FsYygyNHB4IC0gMTFweCl9dGFibGUgc3Bhbi5iYWRnZXtkaXNwbGF5OmlubGluZS1ibG9jaztmbG9hdDpub25lO21hcmdpbi1sZWZ0OmF1dG99Lm1hdGVyaWFsLWljb25ze3RleHQtcmVuZGVyaW5nOm9wdGltaXplTGVnaWJpbGl0eTstd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczonbGlnYSc7LW1vei1mb250LWZlYXR1cmUtc2V0dGluZ3M6J2xpZ2EnO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczonbGlnYSd9LmNvbnRhaW5lcnttYXJnaW46MCBhdXRvO21heC13aWR0aDoxMjgwcHg7d2lkdGg6OTAlfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAxcHgpey5jb250YWluZXJ7d2lkdGg6ODUlfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5M3B4KXsuY29udGFpbmVye3dpZHRoOjcwJX19LmNvbCAucm93e21hcmdpbi1sZWZ0Oi0uNzVyZW07bWFyZ2luLXJpZ2h0Oi0uNzVyZW19LnNlY3Rpb257cGFkZGluZy10b3A6MXJlbTtwYWRkaW5nLWJvdHRvbToxcmVtfS5zZWN0aW9uLm5vLXBhZHtwYWRkaW5nOjB9LnNlY3Rpb24ubm8tcGFkLWJvdHtwYWRkaW5nLWJvdHRvbTowfS5zZWN0aW9uLm5vLXBhZC10b3B7cGFkZGluZy10b3A6MH0ucm93e21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG87bWFyZ2luLWJvdHRvbToyMHB4fS5yb3c6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2NsZWFyOmJvdGh9LnJvdyAuY29se2Zsb2F0OmxlZnQ7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MCAuNzVyZW07bWluLWhlaWdodDoxcHh9LnJvdyAuY29sW2NsYXNzKj0icHVzaC0iXSwucm93IC5jb2xbY2xhc3MqPSJwdWxsLSJde3Bvc2l0aW9uOnJlbGF0aXZlfS5yb3cgLmNvbC5zMXt3aWR0aDo4LjMzMzMzMzMzMzMlO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLnMye3dpZHRoOjE2LjY2NjY2NjY2NjclO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLnMze3dpZHRoOjI1JTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC5zNHt3aWR0aDozMy4zMzMzMzMzMzMzJTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC5zNXt3aWR0aDo0MS42NjY2NjY2NjY3JTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC5zNnt3aWR0aDo1MCU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wuczd7d2lkdGg6NTguMzMzMzMzMzMzMyU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wuczh7d2lkdGg6NjYuNjY2NjY2NjY2NyU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wuczl7d2lkdGg6NzUlO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLnMxMHt3aWR0aDo4My4zMzMzMzMzMzMzJTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC5zMTF7d2lkdGg6OTEuNjY2NjY2NjY2NyU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wuczEye3dpZHRoOjEwMCU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wub2Zmc2V0LXMxe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMzMyV9LnJvdyAuY29sLnB1bGwtczF7cmlnaHQ6OC4zMzMzMzMzMzMzJX0ucm93IC5jb2wucHVzaC1zMXtsZWZ0OjguMzMzMzMzMzMzMyV9LnJvdyAuY29sLm9mZnNldC1zMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3JX0ucm93IC5jb2wucHVsbC1zMntyaWdodDoxNi42NjY2NjY2NjY3JX0ucm93IC5jb2wucHVzaC1zMntsZWZ0OjE2LjY2NjY2NjY2NjclfS5yb3cgLmNvbC5vZmZzZXQtczN7bWFyZ2luLWxlZnQ6MjUlfS5yb3cgLmNvbC5wdWxsLXMze3JpZ2h0OjI1JX0ucm93IC5jb2wucHVzaC1zM3tsZWZ0OjI1JX0ucm93IC5jb2wub2Zmc2V0LXM0e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5wdWxsLXM0e3JpZ2h0OjMzLjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5wdXNoLXM0e2xlZnQ6MzMuMzMzMzMzMzMzMyV9LnJvdyAuY29sLm9mZnNldC1zNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NjY3JX0ucm93IC5jb2wucHVsbC1zNXtyaWdodDo0MS42NjY2NjY2NjY3JX0ucm93IC5jb2wucHVzaC1zNXtsZWZ0OjQxLjY2NjY2NjY2NjclfS5yb3cgLmNvbC5vZmZzZXQtczZ7bWFyZ2luLWxlZnQ6NTAlfS5yb3cgLmNvbC5wdWxsLXM2e3JpZ2h0OjUwJX0ucm93IC5jb2wucHVzaC1zNntsZWZ0OjUwJX0ucm93IC5jb2wub2Zmc2V0LXM3e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5wdWxsLXM3e3JpZ2h0OjU4LjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5wdXNoLXM3e2xlZnQ6NTguMzMzMzMzMzMzMyV9LnJvdyAuY29sLm9mZnNldC1zOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NjY3JX0ucm93IC5jb2wucHVsbC1zOHtyaWdodDo2Ni42NjY2NjY2NjY3JX0ucm93IC5jb2wucHVzaC1zOHtsZWZ0OjY2LjY2NjY2NjY2NjclfS5yb3cgLmNvbC5vZmZzZXQtczl7bWFyZ2luLWxlZnQ6NzUlfS5yb3cgLmNvbC5wdWxsLXM5e3JpZ2h0Ojc1JX0ucm93IC5jb2wucHVzaC1zOXtsZWZ0Ojc1JX0ucm93IC5jb2wub2Zmc2V0LXMxMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMzMzJX0ucm93IC5jb2wucHVsbC1zMTB7cmlnaHQ6ODMuMzMzMzMzMzMzMyV9LnJvdyAuY29sLnB1c2gtczEwe2xlZnQ6ODMuMzMzMzMzMzMzMyV9LnJvdyAuY29sLm9mZnNldC1zMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjY2NyV9LnJvdyAuY29sLnB1bGwtczExe3JpZ2h0OjkxLjY2NjY2NjY2NjclfS5yb3cgLmNvbC5wdXNoLXMxMXtsZWZ0OjkxLjY2NjY2NjY2NjclfS5yb3cgLmNvbC5vZmZzZXQtczEye21hcmdpbi1sZWZ0OjEwMCV9LnJvdyAuY29sLnB1bGwtczEye3JpZ2h0OjEwMCV9LnJvdyAuY29sLnB1c2gtczEye2xlZnQ6MTAwJX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMXB4KXsucm93IC5jb2wubTF7d2lkdGg6OC4zMzMzMzMzMzMzJTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC5tMnt3aWR0aDoxNi42NjY2NjY2NjY3JTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC5tM3t3aWR0aDoyNSU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wubTR7d2lkdGg6MzMuMzMzMzMzMzMzMyU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wubTV7d2lkdGg6NDEuNjY2NjY2NjY2NyU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wubTZ7d2lkdGg6NTAlO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLm03e3dpZHRoOjU4LjMzMzMzMzMzMzMlO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLm04e3dpZHRoOjY2LjY2NjY2NjY2NjclO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLm05e3dpZHRoOjc1JTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC5tMTB7d2lkdGg6ODMuMzMzMzMzMzMzMyU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wubTExe3dpZHRoOjkxLjY2NjY2NjY2NjclO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLm0xMnt3aWR0aDoxMDAlO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLm9mZnNldC1tMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5wdWxsLW0xe3JpZ2h0OjguMzMzMzMzMzMzMyV9LnJvdyAuY29sLnB1c2gtbTF7bGVmdDo4LjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5vZmZzZXQtbTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjY2NyV9LnJvdyAuY29sLnB1bGwtbTJ7cmlnaHQ6MTYuNjY2NjY2NjY2NyV9LnJvdyAuY29sLnB1c2gtbTJ7bGVmdDoxNi42NjY2NjY2NjY3JX0ucm93IC5jb2wub2Zmc2V0LW0ze21hcmdpbi1sZWZ0OjI1JX0ucm93IC5jb2wucHVsbC1tM3tyaWdodDoyNSV9LnJvdyAuY29sLnB1c2gtbTN7bGVmdDoyNSV9LnJvdyAuY29sLm9mZnNldC1tNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMzMzJX0ucm93IC5jb2wucHVsbC1tNHtyaWdodDozMy4zMzMzMzMzMzMzJX0ucm93IC5jb2wucHVzaC1tNHtsZWZ0OjMzLjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5vZmZzZXQtbTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjY2NyV9LnJvdyAuY29sLnB1bGwtbTV7cmlnaHQ6NDEuNjY2NjY2NjY2NyV9LnJvdyAuY29sLnB1c2gtbTV7bGVmdDo0MS42NjY2NjY2NjY3JX0ucm93IC5jb2wub2Zmc2V0LW02e21hcmdpbi1sZWZ0OjUwJX0ucm93IC5jb2wucHVsbC1tNntyaWdodDo1MCV9LnJvdyAuY29sLnB1c2gtbTZ7bGVmdDo1MCV9LnJvdyAuY29sLm9mZnNldC1tN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMzMzJX0ucm93IC5jb2wucHVsbC1tN3tyaWdodDo1OC4zMzMzMzMzMzMzJX0ucm93IC5jb2wucHVzaC1tN3tsZWZ0OjU4LjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5vZmZzZXQtbTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjY2NyV9LnJvdyAuY29sLnB1bGwtbTh7cmlnaHQ6NjYuNjY2NjY2NjY2NyV9LnJvdyAuY29sLnB1c2gtbTh7bGVmdDo2Ni42NjY2NjY2NjY3JX0ucm93IC5jb2wub2Zmc2V0LW05e21hcmdpbi1sZWZ0Ojc1JX0ucm93IC5jb2wucHVsbC1tOXtyaWdodDo3NSV9LnJvdyAuY29sLnB1c2gtbTl7bGVmdDo3NSV9LnJvdyAuY29sLm9mZnNldC1tMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzMzMyV9LnJvdyAuY29sLnB1bGwtbTEwe3JpZ2h0OjgzLjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5wdXNoLW0xMHtsZWZ0OjgzLjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5vZmZzZXQtbTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY2NjclfS5yb3cgLmNvbC5wdWxsLW0xMXtyaWdodDo5MS42NjY2NjY2NjY3JX0ucm93IC5jb2wucHVzaC1tMTF7bGVmdDo5MS42NjY2NjY2NjY3JX0ucm93IC5jb2wub2Zmc2V0LW0xMnttYXJnaW4tbGVmdDoxMDAlfS5yb3cgLmNvbC5wdWxsLW0xMntyaWdodDoxMDAlfS5yb3cgLmNvbC5wdXNoLW0xMntsZWZ0OjEwMCV9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkzcHgpey5yb3cgLmNvbC5sMXt3aWR0aDo4LjMzMzMzMzMzMzMlO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLmwye3dpZHRoOjE2LjY2NjY2NjY2NjclO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLmwze3dpZHRoOjI1JTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC5sNHt3aWR0aDozMy4zMzMzMzMzMzMzJTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC5sNXt3aWR0aDo0MS42NjY2NjY2NjY3JTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC5sNnt3aWR0aDo1MCU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wubDd7d2lkdGg6NTguMzMzMzMzMzMzMyU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wubDh7d2lkdGg6NjYuNjY2NjY2NjY2NyU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wubDl7d2lkdGg6NzUlO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLmwxMHt3aWR0aDo4My4zMzMzMzMzMzMzJTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC5sMTF7d2lkdGg6OTEuNjY2NjY2NjY2NyU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wubDEye3dpZHRoOjEwMCU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wub2Zmc2V0LWwxe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMzMyV9LnJvdyAuY29sLnB1bGwtbDF7cmlnaHQ6OC4zMzMzMzMzMzMzJX0ucm93IC5jb2wucHVzaC1sMXtsZWZ0OjguMzMzMzMzMzMzMyV9LnJvdyAuY29sLm9mZnNldC1sMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3JX0ucm93IC5jb2wucHVsbC1sMntyaWdodDoxNi42NjY2NjY2NjY3JX0ucm93IC5jb2wucHVzaC1sMntsZWZ0OjE2LjY2NjY2NjY2NjclfS5yb3cgLmNvbC5vZmZzZXQtbDN7bWFyZ2luLWxlZnQ6MjUlfS5yb3cgLmNvbC5wdWxsLWwze3JpZ2h0OjI1JX0ucm93IC5jb2wucHVzaC1sM3tsZWZ0OjI1JX0ucm93IC5jb2wub2Zmc2V0LWw0e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5wdWxsLWw0e3JpZ2h0OjMzLjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5wdXNoLWw0e2xlZnQ6MzMuMzMzMzMzMzMzMyV9LnJvdyAuY29sLm9mZnNldC1sNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NjY3JX0ucm93IC5jb2wucHVsbC1sNXtyaWdodDo0MS42NjY2NjY2NjY3JX0ucm93IC5jb2wucHVzaC1sNXtsZWZ0OjQxLjY2NjY2NjY2NjclfS5yb3cgLmNvbC5vZmZzZXQtbDZ7bWFyZ2luLWxlZnQ6NTAlfS5yb3cgLmNvbC5wdWxsLWw2e3JpZ2h0OjUwJX0ucm93IC5jb2wucHVzaC1sNntsZWZ0OjUwJX0ucm93IC5jb2wub2Zmc2V0LWw3e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5wdWxsLWw3e3JpZ2h0OjU4LjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5wdXNoLWw3e2xlZnQ6NTguMzMzMzMzMzMzMyV9LnJvdyAuY29sLm9mZnNldC1sOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NjY3JX0ucm93IC5jb2wucHVsbC1sOHtyaWdodDo2Ni42NjY2NjY2NjY3JX0ucm93IC5jb2wucHVzaC1sOHtsZWZ0OjY2LjY2NjY2NjY2NjclfS5yb3cgLmNvbC5vZmZzZXQtbDl7bWFyZ2luLWxlZnQ6NzUlfS5yb3cgLmNvbC5wdWxsLWw5e3JpZ2h0Ojc1JX0ucm93IC5jb2wucHVzaC1sOXtsZWZ0Ojc1JX0ucm93IC5jb2wub2Zmc2V0LWwxMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMzMzJX0ucm93IC5jb2wucHVsbC1sMTB7cmlnaHQ6ODMuMzMzMzMzMzMzMyV9LnJvdyAuY29sLnB1c2gtbDEwe2xlZnQ6ODMuMzMzMzMzMzMzMyV9LnJvdyAuY29sLm9mZnNldC1sMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjY2NyV9LnJvdyAuY29sLnB1bGwtbDExe3JpZ2h0OjkxLjY2NjY2NjY2NjclfS5yb3cgLmNvbC5wdXNoLWwxMXtsZWZ0OjkxLjY2NjY2NjY2NjclfS5yb3cgLmNvbC5vZmZzZXQtbDEye21hcmdpbi1sZWZ0OjEwMCV9LnJvdyAuY29sLnB1bGwtbDEye3JpZ2h0OjEwMCV9LnJvdyAuY29sLnB1c2gtbDEye2xlZnQ6MTAwJX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAxcHgpey5yb3cgLmNvbC54bDF7d2lkdGg6OC4zMzMzMzMzMzMzJTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC54bDJ7d2lkdGg6MTYuNjY2NjY2NjY2NyU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wueGwze3dpZHRoOjI1JTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC54bDR7d2lkdGg6MzMuMzMzMzMzMzMzMyU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wueGw1e3dpZHRoOjQxLjY2NjY2NjY2NjclO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLnhsNnt3aWR0aDo1MCU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wueGw3e3dpZHRoOjU4LjMzMzMzMzMzMzMlO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLnhsOHt3aWR0aDo2Ni42NjY2NjY2NjY3JTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC54bDl7d2lkdGg6NzUlO21hcmdpbi1sZWZ0OmF1dG87bGVmdDphdXRvO3JpZ2h0OmF1dG99LnJvdyAuY29sLnhsMTB7d2lkdGg6ODMuMzMzMzMzMzMzMyU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wueGwxMXt3aWR0aDo5MS42NjY2NjY2NjY3JTttYXJnaW4tbGVmdDphdXRvO2xlZnQ6YXV0bztyaWdodDphdXRvfS5yb3cgLmNvbC54bDEye3dpZHRoOjEwMCU7bWFyZ2luLWxlZnQ6YXV0bztsZWZ0OmF1dG87cmlnaHQ6YXV0b30ucm93IC5jb2wub2Zmc2V0LXhsMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5wdWxsLXhsMXtyaWdodDo4LjMzMzMzMzMzMzMlfS5yb3cgLmNvbC5wdXNoLXhsMXtsZWZ0OjguMzMzMzMzMzMzMyV9LnJvdyAuY29sLm9mZnNldC14bDJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjY2NyV9LnJvdyAuY29sLnB1bGwteGwye3JpZ2h0OjE2LjY2NjY2NjY2NjclfS5yb3cgLmNvbC5wdXNoLXhsMntsZWZ0OjE2LjY2NjY2NjY2NjclfS5yb3cgLmNvbC5vZmZzZXQteGwze21hcmdpbi1sZWZ0OjI1JX0ucm93IC5jb2wucHVsbC14bDN7cmlnaHQ6MjUlfS5yb3cgLmNvbC5wdXNoLXhsM3tsZWZ0OjI1JX0ucm93IC5jb2wub2Zmc2V0LXhsNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMzMzJX0ucm93IC5jb2wucHVsbC14bDR7cmlnaHQ6MzMuMzMzMzMzMzMzMyV9LnJvdyAuY29sLnB1c2gteGw0e2xlZnQ6MzMuMzMzMzMzMzMzMyV9LnJvdyAuY29sLm9mZnNldC14bDV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjY2NyV9LnJvdyAuY29sLnB1bGwteGw1e3JpZ2h0OjQxLjY2NjY2NjY2NjclfS5yb3cgLmNvbC5wdXNoLXhsNXtsZWZ0OjQxLjY2NjY2NjY2NjclfS5yb3cgLmNvbC5vZmZzZXQteGw2e21hcmdpbi1sZWZ0OjUwJX0ucm93IC5jb2wucHVsbC14bDZ7cmlnaHQ6NTAlfS5yb3cgLmNvbC5wdXNoLXhsNntsZWZ0OjUwJX0ucm93IC5jb2wub2Zmc2V0LXhsN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMzMzJX0ucm93IC5jb2wucHVsbC14bDd7cmlnaHQ6NTguMzMzMzMzMzMzMyV9LnJvdyAuY29sLnB1c2gteGw3e2xlZnQ6NTguMzMzMzMzMzMzMyV9LnJvdyAuY29sLm9mZnNldC14bDh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjY2NyV9LnJvdyAuY29sLnB1bGwteGw4e3JpZ2h0OjY2LjY2NjY2NjY2NjclfS5yb3cgLmNvbC5wdXNoLXhsOHtsZWZ0OjY2LjY2NjY2NjY2NjclfS5yb3cgLmNvbC5vZmZzZXQteGw5e21hcmdpbi1sZWZ0Ojc1JX0ucm93IC5jb2wucHVsbC14bDl7cmlnaHQ6NzUlfS5yb3cgLmNvbC5wdXNoLXhsOXtsZWZ0Ojc1JX0ucm93IC5jb2wub2Zmc2V0LXhsMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzMzMyV9LnJvdyAuY29sLnB1bGwteGwxMHtyaWdodDo4My4zMzMzMzMzMzMzJX0ucm93IC5jb2wucHVzaC14bDEwe2xlZnQ6ODMuMzMzMzMzMzMzMyV9LnJvdyAuY29sLm9mZnNldC14bDExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY2NjclfS5yb3cgLmNvbC5wdWxsLXhsMTF7cmlnaHQ6OTEuNjY2NjY2NjY2NyV9LnJvdyAuY29sLnB1c2gteGwxMXtsZWZ0OjkxLjY2NjY2NjY2NjclfS5yb3cgLmNvbC5vZmZzZXQteGwxMnttYXJnaW4tbGVmdDoxMDAlfS5yb3cgLmNvbC5wdWxsLXhsMTJ7cmlnaHQ6MTAwJX0ucm93IC5jb2wucHVzaC14bDEye2xlZnQ6MTAwJX19bmF2e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZWU2ZTczO3dpZHRoOjEwMCU7aGVpZ2h0OjU2cHg7bGluZS1oZWlnaHQ6NTZweH1uYXYubmF2LWV4dGVuZGVke2hlaWdodDphdXRvfW5hdi5uYXYtZXh0ZW5kZWQgLm5hdi13cmFwcGVye21pbi1oZWlnaHQ6NTZweDtoZWlnaHQ6YXV0b31uYXYubmF2LWV4dGVuZGVkIC5uYXYtY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTtsaW5lLWhlaWdodDpub3JtYWx9bmF2IGF7Y29sb3I6I2ZmZn1uYXYgaSxuYXYgW2NsYXNzXj0ibWRpLSJdLG5hdiBbY2xhc3MqPSJtZGktIl0sbmF2IGkubWF0ZXJpYWwtaWNvbnN7ZGlzcGxheTpibG9jaztmb250LXNpemU6MjRweDtoZWlnaHQ6NTZweDtsaW5lLWhlaWdodDo1NnB4fW5hdiAubmF2LXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjEwMCV9QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTNweCl7bmF2IGEuc2lkZW5hdi10cmlnZ2Vye2Rpc3BsYXk6bm9uZX19bmF2IC5zaWRlbmF2LXRyaWdnZXJ7ZmxvYXQ6bGVmdDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7aGVpZ2h0OjU2cHg7bWFyZ2luOjAgMThweH1uYXYgLnNpZGVuYXYtdHJpZ2dlciBpe2hlaWdodDo1NnB4O2xpbmUtaGVpZ2h0OjU2cHh9bmF2IC5icmFuZC1sb2dve3Bvc2l0aW9uOmFic29sdXRlO2NvbG9yOiNmZmY7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjIuMXJlbTtwYWRkaW5nOjB9bmF2IC5icmFuZC1sb2dvLmNlbnRlcntsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkycHgpe25hdiAuYnJhbmQtbG9nb3tsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpfW5hdiAuYnJhbmQtbG9nby5sZWZ0LG5hdiAuYnJhbmQtbG9nby5yaWdodHtwYWRkaW5nOjA7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX1uYXYgLmJyYW5kLWxvZ28ubGVmdHtsZWZ0OjAuNXJlbX1uYXYgLmJyYW5kLWxvZ28ucmlnaHR7cmlnaHQ6MC41cmVtO2xlZnQ6YXV0b319bmF2IC5icmFuZC1sb2dvLnJpZ2h0e3JpZ2h0OjAuNXJlbTtwYWRkaW5nOjB9bmF2IC5icmFuZC1sb2dvIGksbmF2IC5icmFuZC1sb2dvIFtjbGFzc149Im1kaS0iXSxuYXYgLmJyYW5kLWxvZ28gW2NsYXNzKj0ibWRpLSJdLG5hdiAuYnJhbmQtbG9nbyBpLm1hdGVyaWFsLWljb25ze2Zsb2F0OmxlZnQ7bWFyZ2luLXJpZ2h0OjE1cHh9bmF2IC5uYXYtdGl0bGV7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjMycHg7cGFkZGluZzoyOHB4IDB9bmF2IHVse21hcmdpbjowfW5hdiB1bCBsaXstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuM3M7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zcztmbG9hdDpsZWZ0O3BhZGRpbmc6MH1uYXYgdWwgbGkuYWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjEpfW5hdiB1bCBhey13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzO2ZvbnQtc2l6ZToxcmVtO2NvbG9yOiNmZmY7ZGlzcGxheTpibG9jaztwYWRkaW5nOjAgMTVweDtjdXJzb3I6cG9pbnRlcn1uYXYgdWwgYS5idG4sbmF2IHVsIGEuYnRuLWxhcmdlLG5hdiB1bCBhLmJ0bi1zbWFsbCxuYXYgdWwgYS5idG4tbGFyZ2UsbmF2IHVsIGEuYnRuLWZsYXQsbmF2IHVsIGEuYnRuLWZsb2F0aW5ne21hcmdpbi10b3A6LTJweDttYXJnaW4tbGVmdDoxNXB4O21hcmdpbi1yaWdodDoxNXB4fW5hdiB1bCBhLmJ0bj4ubWF0ZXJpYWwtaWNvbnMsbmF2IHVsIGEuYnRuLWxhcmdlPi5tYXRlcmlhbC1pY29ucyxuYXYgdWwgYS5idG4tc21hbGw+Lm1hdGVyaWFsLWljb25zLG5hdiB1bCBhLmJ0bi1sYXJnZT4ubWF0ZXJpYWwtaWNvbnMsbmF2IHVsIGEuYnRuLWZsYXQ+Lm1hdGVyaWFsLWljb25zLG5hdiB1bCBhLmJ0bi1mbG9hdGluZz4ubWF0ZXJpYWwtaWNvbnN7aGVpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdH1uYXYgdWwgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4xKX1uYXYgdWwubGVmdHtmbG9hdDpsZWZ0fW5hdiBmb3Jte2hlaWdodDoxMDAlfW5hdiAuaW5wdXQtZmllbGR7bWFyZ2luOjA7aGVpZ2h0OjEwMCV9bmF2IC5pbnB1dC1maWVsZCBpbnB1dHtoZWlnaHQ6MTAwJTtmb250LXNpemU6MS4ycmVtO2JvcmRlcjpub25lO3BhZGRpbmctbGVmdDoycmVtfW5hdiAuaW5wdXQtZmllbGQgaW5wdXQ6Zm9jdXMsbmF2IC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXRleHRdOnZhbGlkLG5hdiAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1wYXNzd29yZF06dmFsaWQsbmF2IC5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPWVtYWlsXTp2YWxpZCxuYXYgLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9dXJsXTp2YWxpZCxuYXYgLmlucHV0LWZpZWxkIGlucHV0W3R5cGU9ZGF0ZV06dmFsaWR7Ym9yZGVyOm5vbmU7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfW5hdiAuaW5wdXQtZmllbGQgbGFiZWx7dG9wOjA7bGVmdDowfW5hdiAuaW5wdXQtZmllbGQgbGFiZWwgaXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyk7LXdlYmtpdC10cmFuc2l0aW9uOmNvbG9yIC4zczt0cmFuc2l0aW9uOmNvbG9yIC4zc31uYXYgLmlucHV0LWZpZWxkIGxhYmVsLmFjdGl2ZSBpe2NvbG9yOiNmZmZ9Lm5hdmJhci1maXhlZHtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6NTZweDt6LWluZGV4Ojk5N30ubmF2YmFyLWZpeGVkIG5hdntwb3NpdGlvbjpmaXhlZH1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMXB4KXtuYXYubmF2LWV4dGVuZGVkIC5uYXYtd3JhcHBlcnttaW4taGVpZ2h0OjY0cHh9bmF2LG5hdiAubmF2LXdyYXBwZXIgaSxuYXYgYS5zaWRlbmF2LXRyaWdnZXIsbmF2IGEuc2lkZW5hdi10cmlnZ2VyIGl7aGVpZ2h0OjY0cHg7bGluZS1oZWlnaHQ6NjRweH0ubmF2YmFyLWZpeGVke2hlaWdodDo2NHB4fX1he3RleHQtZGVjb3JhdGlvbjpub25lfWh0bWx7bGluZS1oZWlnaHQ6MS41O2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCJTZWdvZSBVSSIsUm9ib3RvLE94eWdlbi1TYW5zLFVidW50dSxDYW50YXJlbGwsIkhlbHZldGljYSBOZXVlIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0Om5vcm1hbDtjb2xvcjpyZ2JhKDAsMCwwLDAuODcpfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMCl7aHRtbHtmb250LXNpemU6MTRweH19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCl7aHRtbHtmb250LXNpemU6MTQuNXB4fX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCl7aHRtbHtmb250LXNpemU6MTVweH19aDEsaDIsaDMsaDQsaDUsaDZ7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuM31oMSBhLGgyIGEsaDMgYSxoNCBhLGg1IGEsaDYgYXtmb250LXdlaWdodDppbmhlcml0fWgxe2ZvbnQtc2l6ZTo0LjJyZW07bGluZS1oZWlnaHQ6MTEwJTttYXJnaW46Mi44cmVtIDAgMS42OHJlbSAwfWgye2ZvbnQtc2l6ZTozLjU2cmVtO2xpbmUtaGVpZ2h0OjExMCU7bWFyZ2luOjIuMzczMzMzMzMzM3JlbSAwIDEuNDI0cmVtIDB9aDN7Zm9udC1zaXplOjIuOTJyZW07bGluZS1oZWlnaHQ6MTEwJTttYXJnaW46MS45NDY2NjY2NjY3cmVtIDAgMS4xNjhyZW0gMH1oNHtmb250LXNpemU6Mi4yOHJlbTtsaW5lLWhlaWdodDoxMTAlO21hcmdpbjoxLjUycmVtIDAgLjkxMnJlbSAwfWg1e2ZvbnQtc2l6ZToxLjY0cmVtO2xpbmUtaGVpZ2h0OjExMCU7bWFyZ2luOjEuMDkzMzMzMzMzM3JlbSAwIC42NTZyZW0gMH1oNntmb250LXNpemU6MS4xNXJlbTtsaW5lLWhlaWdodDoxMTAlO21hcmdpbjouNzY2NjY2NjY2N3JlbSAwIC40NnJlbSAwfWVte2ZvbnQtc3R5bGU6aXRhbGljfXN0cm9uZ3tmb250LXdlaWdodDo1MDB9c21hbGx7Zm9udC1zaXplOjc1JX0ubGlnaHR7Zm9udC13ZWlnaHQ6MzAwfS50aGlue2ZvbnQtd2VpZ2h0OjIwMH1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM2MHB4KXsuZmxvdy10ZXh0e2ZvbnQtc2l6ZToxLjJyZW19fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzkwcHgpey5mbG93LXRleHR7Zm9udC1zaXplOjEuMjI0cmVtfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQyMHB4KXsuZmxvdy10ZXh0e2ZvbnQtc2l6ZToxLjI0OHJlbX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0NTBweCl7LmZsb3ctdGV4dHtmb250LXNpemU6MS4yNzJyZW19fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgwcHgpey5mbG93LXRleHR7Zm9udC1zaXplOjEuMjk2cmVtfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUxMHB4KXsuZmxvdy10ZXh0e2ZvbnQtc2l6ZToxLjMycmVtfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDU0MHB4KXsuZmxvdy10ZXh0e2ZvbnQtc2l6ZToxLjM0NHJlbX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1NzBweCl7LmZsb3ctdGV4dHtmb250LXNpemU6MS4zNjhyZW19fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpey5mbG93LXRleHR7Zm9udC1zaXplOjEuMzkycmVtfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYzMHB4KXsuZmxvdy10ZXh0e2ZvbnQtc2l6ZToxLjQxNnJlbX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NjBweCl7LmZsb3ctdGV4dHtmb250LXNpemU6MS40NHJlbX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2OTBweCl7LmZsb3ctdGV4dHtmb250LXNpemU6MS40NjRyZW19fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzIwcHgpey5mbG93LXRleHR7Zm9udC1zaXplOjEuNDg4cmVtfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1MHB4KXsuZmxvdy10ZXh0e2ZvbnQtc2l6ZToxLjUxMnJlbX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3ODBweCl7LmZsb3ctdGV4dHtmb250LXNpemU6MS41MzZyZW19fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODEwcHgpey5mbG93LXRleHR7Zm9udC1zaXplOjEuNTZyZW19fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODQwcHgpey5mbG93LXRleHR7Zm9udC1zaXplOjEuNTg0cmVtfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg3MHB4KXsuZmxvdy10ZXh0e2ZvbnQtc2l6ZToxLjYwOHJlbX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MDBweCl7LmZsb3ctdGV4dHtmb250LXNpemU6MS42MzJyZW19fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTMwcHgpey5mbG93LXRleHR7Zm9udC1zaXplOjEuNjU2cmVtfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KXsuZmxvdy10ZXh0e2ZvbnQtc2l6ZToxLjY4cmVtfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM2MHB4KXsuZmxvdy10ZXh0e2ZvbnQtc2l6ZToxLjJyZW19fS5zY2FsZS10cmFuc2l0aW9uey13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LXRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjUzLCAwLjAxLCAwLjM2LCAxLjYzKSAhaW1wb3J0YW50O3RyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC41MywgMC4wMSwgMC4zNiwgMS42MykgIWltcG9ydGFudDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjUzLCAwLjAxLCAwLjM2LCAxLjYzKSAhaW1wb3J0YW50O3RyYW5zaXRpb246dHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuNTMsIDAuMDEsIDAuMzYsIDEuNjMpLCAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjUzLCAwLjAxLCAwLjM2LCAxLjYzKSAhaW1wb3J0YW50fS5zY2FsZS10cmFuc2l0aW9uLnNjYWxlLW91dHstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4ycyAhaW1wb3J0YW50O3RyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjJzICFpbXBvcnRhbnQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzICFpbXBvcnRhbnQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzLCAtd2Via2l0LXRyYW5zZm9ybSAuMnMgIWltcG9ydGFudH0uc2NhbGUtdHJhbnNpdGlvbi5zY2FsZS1pbnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9LmNhcmQtcGFuZWx7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtYm94LXNoYWRvdyAuMjVzO3RyYW5zaXRpb246LXdlYmtpdC1ib3gtc2hhZG93IC4yNXM7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4yNXM7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4yNXMsIC13ZWJraXQtYm94LXNoYWRvdyAuMjVzO3BhZGRpbmc6MjRweDttYXJnaW46LjVyZW0gMCAxcmVtIDA7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5jYXJke3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjouNXJlbSAwIDFyZW0gMDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtYm94LXNoYWRvdyAuMjVzO3RyYW5zaXRpb246LXdlYmtpdC1ib3gtc2hhZG93IC4yNXM7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4yNXM7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4yNXMsIC13ZWJraXQtYm94LXNoYWRvdyAuMjVzO2JvcmRlci1yYWRpdXM6MnB4fS5jYXJkIC5jYXJkLXRpdGxle2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjMwMH0uY2FyZCAuY2FyZC10aXRsZS5hY3RpdmF0b3J7Y3Vyc29yOnBvaW50ZXJ9LmNhcmQuc21hbGwsLmNhcmQubWVkaXVtLC5jYXJkLmxhcmdle3Bvc2l0aW9uOnJlbGF0aXZlfS5jYXJkLnNtYWxsIC5jYXJkLWltYWdlLC5jYXJkLm1lZGl1bSAuY2FyZC1pbWFnZSwuY2FyZC5sYXJnZSAuY2FyZC1pbWFnZXttYXgtaGVpZ2h0OjYwJTtvdmVyZmxvdzpoaWRkZW59LmNhcmQuc21hbGwgLmNhcmQtaW1hZ2UrLmNhcmQtY29udGVudCwuY2FyZC5tZWRpdW0gLmNhcmQtaW1hZ2UrLmNhcmQtY29udGVudCwuY2FyZC5sYXJnZSAuY2FyZC1pbWFnZSsuY2FyZC1jb250ZW50e21heC1oZWlnaHQ6NDAlfS5jYXJkLnNtYWxsIC5jYXJkLWNvbnRlbnQsLmNhcmQubWVkaXVtIC5jYXJkLWNvbnRlbnQsLmNhcmQubGFyZ2UgLmNhcmQtY29udGVudHttYXgtaGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVufS5jYXJkLnNtYWxsIC5jYXJkLWFjdGlvbiwuY2FyZC5tZWRpdW0gLmNhcmQtYWN0aW9uLC5jYXJkLmxhcmdlIC5jYXJkLWFjdGlvbntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MH0uY2FyZC5zbWFsbHtoZWlnaHQ6MzAwcHh9LmNhcmQubWVkaXVte2hlaWdodDo0MDBweH0uY2FyZC5sYXJnZXtoZWlnaHQ6NTAwcHh9LmNhcmQuaG9yaXpvbnRhbHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS5jYXJkLmhvcml6b250YWwuc21hbGwgLmNhcmQtaW1hZ2UsLmNhcmQuaG9yaXpvbnRhbC5tZWRpdW0gLmNhcmQtaW1hZ2UsLmNhcmQuaG9yaXpvbnRhbC5sYXJnZSAuY2FyZC1pbWFnZXtoZWlnaHQ6MTAwJTttYXgtaGVpZ2h0Om5vbmU7b3ZlcmZsb3c6dmlzaWJsZX0uY2FyZC5ob3Jpem9udGFsLnNtYWxsIC5jYXJkLWltYWdlIGltZywuY2FyZC5ob3Jpem9udGFsLm1lZGl1bSAuY2FyZC1pbWFnZSBpbWcsLmNhcmQuaG9yaXpvbnRhbC5sYXJnZSAuY2FyZC1pbWFnZSBpbWd7aGVpZ2h0OjEwMCV9LmNhcmQuaG9yaXpvbnRhbCAuY2FyZC1pbWFnZXttYXgtd2lkdGg6NTAlfS5jYXJkLmhvcml6b250YWwgLmNhcmQtaW1hZ2UgaW1ne2JvcmRlci1yYWRpdXM6MnB4IDAgMCAycHg7bWF4LXdpZHRoOjEwMCU7d2lkdGg6YXV0b30uY2FyZC5ob3Jpem9udGFsIC5jYXJkLXN0YWNrZWR7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7cG9zaXRpb246cmVsYXRpdmV9LmNhcmQuaG9yaXpvbnRhbCAuY2FyZC1zdGFja2VkIC5jYXJkLWNvbnRlbnR7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleC1ncm93OjE7LW1zLWZsZXgtcG9zaXRpdmU6MTtmbGV4LWdyb3c6MX0uY2FyZC5zdGlja3ktYWN0aW9uIC5jYXJkLWFjdGlvbnt6LWluZGV4OjJ9LmNhcmQuc3RpY2t5LWFjdGlvbiAuY2FyZC1yZXZlYWx7ei1pbmRleDoxO3BhZGRpbmctYm90dG9tOjY0cHh9LmNhcmQgLmNhcmQtaW1hZ2V7cG9zaXRpb246cmVsYXRpdmV9LmNhcmQgLmNhcmQtaW1hZ2UgaW1ne2Rpc3BsYXk6YmxvY2s7Ym9yZGVyLXJhZGl1czoycHggMnB4IDAgMDtwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MDt3aWR0aDoxMDAlfS5jYXJkIC5jYXJkLWltYWdlIC5jYXJkLXRpdGxle2NvbG9yOiNmZmY7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO21heC13aWR0aDoxMDAlO3BhZGRpbmc6MjRweH0uY2FyZCAuY2FyZC1jb250ZW50e3BhZGRpbmc6MjRweDtib3JkZXItcmFkaXVzOjAgMCAycHggMnB4fS5jYXJkIC5jYXJkLWNvbnRlbnQgcHttYXJnaW46MH0uY2FyZCAuY2FyZC1jb250ZW50IC5jYXJkLXRpdGxle2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MzJweDttYXJnaW4tYm90dG9tOjhweH0uY2FyZCAuY2FyZC1jb250ZW50IC5jYXJkLXRpdGxlIGl7bGluZS1oZWlnaHQ6MzJweH0uY2FyZCAuY2FyZC1hY3Rpb257YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMTYwLDE2MCwxNjAsMC4yKTtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjE2cHggMjRweH0uY2FyZCAuY2FyZC1hY3Rpb246bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjAgMCAycHggMnB4fS5jYXJkIC5jYXJkLWFjdGlvbiBhOm5vdCguYnRuKTpub3QoLmJ0bi1sYXJnZSk6bm90KC5idG4tc21hbGwpOm5vdCguYnRuLWxhcmdlKTpub3QoLmJ0bi1mbG9hdGluZyl7Y29sb3I6I2ZmYWI0MDttYXJnaW4tcmlnaHQ6MjRweDstd2Via2l0LXRyYW5zaXRpb246Y29sb3IgLjNzIGVhc2U7dHJhbnNpdGlvbjpjb2xvciAuM3MgZWFzZTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LmNhcmQgLmNhcmQtYWN0aW9uIGE6bm90KC5idG4pOm5vdCguYnRuLWxhcmdlKTpub3QoLmJ0bi1zbWFsbCk6bm90KC5idG4tbGFyZ2UpOm5vdCguYnRuLWZsb2F0aW5nKTpob3Zlcntjb2xvcjojZmZkOGE2fS5jYXJkIC5jYXJkLXJldmVhbHtwYWRkaW5nOjI0cHg7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1jb2xvcjojZmZmO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTphdXRvO2xlZnQ6MDt0b3A6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjM7ZGlzcGxheTpub25lfS5jYXJkIC5jYXJkLXJldmVhbCAuY2FyZC10aXRsZXtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrfSN0b2FzdC1jb250YWluZXJ7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDAwfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpeyN0b2FzdC1jb250YWluZXJ7bWluLXdpZHRoOjEwMCU7Ym90dG9tOjAlfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMXB4KSBhbmQgKG1heC13aWR0aDogOTkycHgpeyN0b2FzdC1jb250YWluZXJ7bGVmdDo1JTtib3R0b206NyU7bWF4LXdpZHRoOjkwJX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTNweCl7I3RvYXN0LWNvbnRhaW5lcnt0b3A6MTAlO3JpZ2h0OjclO21heC13aWR0aDo4NiV9fS50b2FzdHtib3JkZXItcmFkaXVzOjJweDt0b3A6MzVweDt3aWR0aDphdXRvO21hcmdpbi10b3A6MTBweDtwb3NpdGlvbjpyZWxhdGl2ZTttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0bzttaW4taGVpZ2h0OjQ4cHg7bGluZS1oZWlnaHQ6MS41ZW07YmFja2dyb3VuZC1jb2xvcjojMzIzMjMyO3BhZGRpbmc6MTBweCAyNXB4O2ZvbnQtc2l6ZToxLjFyZW07Zm9udC13ZWlnaHQ6MzAwO2NvbG9yOiNmZmY7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Y3Vyc29yOmRlZmF1bHR9LnRvYXN0IC50b2FzdC1hY3Rpb257Y29sb3I6I2VlZmY0MTtmb250LXdlaWdodDo1MDA7bWFyZ2luLXJpZ2h0Oi0yNXB4O21hcmdpbi1sZWZ0OjNyZW19LnRvYXN0LnJvdW5kZWR7Ym9yZGVyLXJhZGl1czoyNHB4fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpey50b2FzdHt3aWR0aDoxMDAlO2JvcmRlci1yYWRpdXM6MH19LnRhYnN7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO2hlaWdodDo0OHB4O3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjojZmZmO21hcmdpbjowIGF1dG87d2hpdGUtc3BhY2U6bm93cmFwfS50YWJzLnRhYnMtdHJhbnNwYXJlbnR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0udGFicy50YWJzLXRyYW5zcGFyZW50IC50YWIgYSwudGFicy50YWJzLXRyYW5zcGFyZW50IC50YWIuZGlzYWJsZWQgYSwudGFicy50YWJzLXRyYW5zcGFyZW50IC50YWIuZGlzYWJsZWQgYTpob3Zlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNyl9LnRhYnMudGFicy10cmFuc3BhcmVudCAudGFiIGE6aG92ZXIsLnRhYnMudGFicy10cmFuc3BhcmVudCAudGFiIGEuYWN0aXZle2NvbG9yOiNmZmZ9LnRhYnMudGFicy10cmFuc3BhcmVudCAuaW5kaWNhdG9ye2JhY2tncm91bmQtY29sb3I6I2ZmZn0udGFicy50YWJzLWZpeGVkLXdpZHRoe2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LnRhYnMudGFicy1maXhlZC13aWR0aCAudGFiey13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXgtZ3JvdzoxOy1tcy1mbGV4LXBvc2l0aXZlOjE7ZmxleC1ncm93OjF9LnRhYnMgLnRhYntkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDo0OHB4O2hlaWdodDo0OHB4O3BhZGRpbmc6MDttYXJnaW46MDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LnRhYnMgLnRhYiBhe2NvbG9yOnJnYmEoMjM4LDExMCwxMTUsMC43KTtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cGFkZGluZzowIDI0cHg7Zm9udC1zaXplOjE0cHg7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC10cmFuc2l0aW9uOmNvbG9yIC4yOHMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAuMjhzIGVhc2U7dHJhbnNpdGlvbjpjb2xvciAuMjhzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgLjI4cyBlYXNlfS50YWJzIC50YWIgYTpmb2N1cywudGFicyAudGFiIGE6Zm9jdXMuYWN0aXZle2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDYsMTc4LDE4MSwwLjIpO291dGxpbmU6bm9uZX0udGFicyAudGFiIGE6aG92ZXIsLnRhYnMgLnRhYiBhLmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2NvbG9yOiNlZTZlNzN9LnRhYnMgLnRhYi5kaXNhYmxlZCBhLC50YWJzIC50YWIuZGlzYWJsZWQgYTpob3Zlcntjb2xvcjpyZ2JhKDIzOCwxMTAsMTE1LDAuNCk7Y3Vyc29yOmRlZmF1bHR9LnRhYnMgLmluZGljYXRvcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtoZWlnaHQ6MnB4O2JhY2tncm91bmQtY29sb3I6I2Y2YjJiNTt3aWxsLWNoYW5nZTpsZWZ0LCByaWdodH1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KXsudGFic3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS50YWJzIC50YWJ7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleC1ncm93OjE7LW1zLWZsZXgtcG9zaXRpdmU6MTtmbGV4LWdyb3c6MX0udGFicyAudGFiIGF7cGFkZGluZzowIDEycHh9fS5tYXRlcmlhbC10b29sdGlwe3BhZGRpbmc6MTBweCA4cHg7Zm9udC1zaXplOjFyZW07ei1pbmRleDoyMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoycHg7Y29sb3I6I2ZmZjttaW4taGVpZ2h0OjM2cHg7bGluZS1oZWlnaHQ6MTIwJTtvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDRweCk7b3ZlcmZsb3c6aGlkZGVuO2xlZnQ6MDt0b3A6MDtwb2ludGVyLWV2ZW50czpub25lO3Zpc2liaWxpdHk6aGlkZGVuO2JhY2tncm91bmQtY29sb3I6IzMyMzIzMn0uYmFja2Ryb3B7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowO2hlaWdodDo3cHg7d2lkdGg6MTRweDtib3JkZXItcmFkaXVzOjAgMCA1MCUgNTAlO2JhY2tncm91bmQtY29sb3I6IzMyMzIzMjt6LWluZGV4Oi0xOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjo1MCUgMCU7dHJhbnNmb3JtLW9yaWdpbjo1MCUgMCU7dmlzaWJpbGl0eTpoaWRkZW59LmJ0biwuYnRuLWxhcmdlLC5idG4tc21hbGwsLmJ0bi1mbGF0e2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDozNnB4O2xpbmUtaGVpZ2h0OjM2cHg7cGFkZGluZzowIDE2cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi5kaXNhYmxlZCwuZGlzYWJsZWQuYnRuLWxhcmdlLC5kaXNhYmxlZC5idG4tc21hbGwsLmJ0bi1mbG9hdGluZy5kaXNhYmxlZCwuYnRuLWxhcmdlLmRpc2FibGVkLC5idG4tc21hbGwuZGlzYWJsZWQsLmJ0bi1mbGF0LmRpc2FibGVkLC5idG46ZGlzYWJsZWQsLmJ0bi1sYXJnZTpkaXNhYmxlZCwuYnRuLXNtYWxsOmRpc2FibGVkLC5idG4tZmxvYXRpbmc6ZGlzYWJsZWQsLmJ0bi1sYXJnZTpkaXNhYmxlZCwuYnRuLXNtYWxsOmRpc2FibGVkLC5idG4tZmxhdDpkaXNhYmxlZCwuYnRuW2Rpc2FibGVkXSwuYnRuLWxhcmdlW2Rpc2FibGVkXSwuYnRuLXNtYWxsW2Rpc2FibGVkXSwuYnRuLWZsb2F0aW5nW2Rpc2FibGVkXSwuYnRuLWxhcmdlW2Rpc2FibGVkXSwuYnRuLXNtYWxsW2Rpc2FibGVkXSwuYnRuLWZsYXRbZGlzYWJsZWRde3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojREZERkRGICFpbXBvcnRhbnQ7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2NvbG9yOiM5RjlGOUYgIWltcG9ydGFudDtjdXJzb3I6ZGVmYXVsdH0uYnRuLmRpc2FibGVkOmhvdmVyLC5kaXNhYmxlZC5idG4tbGFyZ2U6aG92ZXIsLmRpc2FibGVkLmJ0bi1zbWFsbDpob3ZlciwuYnRuLWZsb2F0aW5nLmRpc2FibGVkOmhvdmVyLC5idG4tbGFyZ2UuZGlzYWJsZWQ6aG92ZXIsLmJ0bi1zbWFsbC5kaXNhYmxlZDpob3ZlciwuYnRuLWZsYXQuZGlzYWJsZWQ6aG92ZXIsLmJ0bjpkaXNhYmxlZDpob3ZlciwuYnRuLWxhcmdlOmRpc2FibGVkOmhvdmVyLC5idG4tc21hbGw6ZGlzYWJsZWQ6aG92ZXIsLmJ0bi1mbG9hdGluZzpkaXNhYmxlZDpob3ZlciwuYnRuLWxhcmdlOmRpc2FibGVkOmhvdmVyLC5idG4tc21hbGw6ZGlzYWJsZWQ6aG92ZXIsLmJ0bi1mbGF0OmRpc2FibGVkOmhvdmVyLC5idG5bZGlzYWJsZWRdOmhvdmVyLC5idG4tbGFyZ2VbZGlzYWJsZWRdOmhvdmVyLC5idG4tc21hbGxbZGlzYWJsZWRdOmhvdmVyLC5idG4tZmxvYXRpbmdbZGlzYWJsZWRdOmhvdmVyLC5idG4tbGFyZ2VbZGlzYWJsZWRdOmhvdmVyLC5idG4tc21hbGxbZGlzYWJsZWRdOmhvdmVyLC5idG4tZmxhdFtkaXNhYmxlZF06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojREZERkRGICFpbXBvcnRhbnQ7Y29sb3I6IzlGOUY5RiAhaW1wb3J0YW50fS5idG4sLmJ0bi1sYXJnZSwuYnRuLXNtYWxsLC5idG4tZmxvYXRpbmcsLmJ0bi1sYXJnZSwuYnRuLXNtYWxsLC5idG4tZmxhdHtmb250LXNpemU6MTRweDtvdXRsaW5lOjB9LmJ0biBpLC5idG4tbGFyZ2UgaSwuYnRuLXNtYWxsIGksLmJ0bi1mbG9hdGluZyBpLC5idG4tbGFyZ2UgaSwuYnRuLXNtYWxsIGksLmJ0bi1mbGF0IGl7Zm9udC1zaXplOjEuM3JlbTtsaW5lLWhlaWdodDppbmhlcml0fS5idG46Zm9jdXMsLmJ0bi1sYXJnZTpmb2N1cywuYnRuLXNtYWxsOmZvY3VzLC5idG4tZmxvYXRpbmc6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojMWQ3ZDc0fS5idG4sLmJ0bi1sYXJnZSwuYnRuLXNtYWxse3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjZhNjlhO3RleHQtYWxpZ246Y2VudGVyO2xldHRlci1zcGFjaW5nOi41cHg7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzIGVhc2Utb3V0O3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1vdXQ7Y3Vyc29yOnBvaW50ZXJ9LmJ0bjpob3ZlciwuYnRuLWxhcmdlOmhvdmVyLC5idG4tc21hbGw6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMmJiYmFkfS5idG4tZmxvYXRpbmd7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6I2ZmZjtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDoxO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7bGluZS1oZWlnaHQ6NDBweDtwYWRkaW5nOjA7YmFja2dyb3VuZC1jb2xvcjojMjZhNjlhO2JvcmRlci1yYWRpdXM6NTAlOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzO2N1cnNvcjpwb2ludGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uYnRuLWZsb2F0aW5nOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzI2YTY5YX0uYnRuLWZsb2F0aW5nOmJlZm9yZXtib3JkZXItcmFkaXVzOjB9LmJ0bi1mbG9hdGluZy5idG4tbGFyZ2V7d2lkdGg6NTZweDtoZWlnaHQ6NTZweDtwYWRkaW5nOjB9LmJ0bi1mbG9hdGluZy5idG4tbGFyZ2UuaGFsZndheS1mYWJ7Ym90dG9tOi0yOHB4fS5idG4tZmxvYXRpbmcuYnRuLWxhcmdlIGl7bGluZS1oZWlnaHQ6NTZweH0uYnRuLWZsb2F0aW5nLmJ0bi1zbWFsbHt3aWR0aDozMi40cHg7aGVpZ2h0OjMyLjRweH0uYnRuLWZsb2F0aW5nLmJ0bi1zbWFsbC5oYWxmd2F5LWZhYntib3R0b206LTE2LjJweH0uYnRuLWZsb2F0aW5nLmJ0bi1zbWFsbCBpe2xpbmUtaGVpZ2h0OjMyLjRweH0uYnRuLWZsb2F0aW5nLmhhbGZ3YXktZmFie3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjI0cHg7Ym90dG9tOi0yMHB4fS5idG4tZmxvYXRpbmcuaGFsZndheS1mYWIubGVmdHtyaWdodDphdXRvO2xlZnQ6MjRweH0uYnRuLWZsb2F0aW5nIGl7d2lkdGg6aW5oZXJpdDtkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6NDBweH1idXR0b24uYnRuLWZsb2F0aW5ne2JvcmRlcjpub25lfS5maXhlZC1hY3Rpb24tYnRue3Bvc2l0aW9uOmZpeGVkO3JpZ2h0OjIzcHg7Ym90dG9tOjIzcHg7cGFkZGluZy10b3A6MTVweDttYXJnaW4tYm90dG9tOjA7ei1pbmRleDo5OTd9LmZpeGVkLWFjdGlvbi1idG4uYWN0aXZlIHVse3Zpc2liaWxpdHk6dmlzaWJsZX0uZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tbGVmdCwuZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tcmlnaHR7cGFkZGluZzowIDAgMCAxNXB4fS5maXhlZC1hY3Rpb24tYnRuLmRpcmVjdGlvbi1sZWZ0IHVsLC5maXhlZC1hY3Rpb24tYnRuLmRpcmVjdGlvbi1yaWdodCB1bHt0ZXh0LWFsaWduOnJpZ2h0O3JpZ2h0OjY0cHg7dG9wOjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2hlaWdodDoxMDAlO2xlZnQ6YXV0bzt3aWR0aDo1MDBweH0uZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tbGVmdCB1bCBsaSwuZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tcmlnaHQgdWwgbGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjcuNXB4IDE1cHggMCAwfS5maXhlZC1hY3Rpb24tYnRuLmRpcmVjdGlvbi1yaWdodHtwYWRkaW5nOjAgMTVweCAwIDB9LmZpeGVkLWFjdGlvbi1idG4uZGlyZWN0aW9uLXJpZ2h0IHVse3RleHQtYWxpZ246bGVmdDtkaXJlY3Rpb246cnRsO2xlZnQ6NjRweDtyaWdodDphdXRvfS5maXhlZC1hY3Rpb24tYnRuLmRpcmVjdGlvbi1yaWdodCB1bCBsaXttYXJnaW46Ny41cHggMCAwIDE1cHh9LmZpeGVkLWFjdGlvbi1idG4uZGlyZWN0aW9uLWJvdHRvbXtwYWRkaW5nOjAgMCAxNXB4IDB9LmZpeGVkLWFjdGlvbi1idG4uZGlyZWN0aW9uLWJvdHRvbSB1bHt0b3A6NjRweDtib3R0b206YXV0bztkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246cmV2ZXJzZTstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZTtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX0uZml4ZWQtYWN0aW9uLWJ0bi5kaXJlY3Rpb24tYm90dG9tIHVsIGxpe21hcmdpbjoxNXB4IDAgMCAwfS5maXhlZC1hY3Rpb24tYnRuLnRvb2xiYXJ7cGFkZGluZzowO2hlaWdodDo1NnB4fS5maXhlZC1hY3Rpb24tYnRuLnRvb2xiYXIuYWN0aXZlPmEgaXtvcGFjaXR5OjB9LmZpeGVkLWFjdGlvbi1idG4udG9vbGJhciB1bHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O3RvcDowO2JvdHRvbTowO3otaW5kZXg6MX0uZml4ZWQtYWN0aW9uLWJ0bi50b29sYmFyIHVsIGxpey13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MDtoZWlnaHQ6MTAwJTstd2Via2l0LXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmV9LmZpeGVkLWFjdGlvbi1idG4udG9vbGJhciB1bCBsaSBhe2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7Y29sb3I6I2ZmZjtsaW5lLWhlaWdodDo1NnB4O3otaW5kZXg6MX0uZml4ZWQtYWN0aW9uLWJ0bi50b29sYmFyIHVsIGxpIGEgaXtsaW5lLWhlaWdodDppbmhlcml0fS5maXhlZC1hY3Rpb24tYnRuIHVse2xlZnQ6MDtyaWdodDowO3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTo2NHB4O21hcmdpbjowO3Zpc2liaWxpdHk6aGlkZGVufS5maXhlZC1hY3Rpb24tYnRuIHVsIGxpe21hcmdpbi1ib3R0b206MTVweH0uZml4ZWQtYWN0aW9uLWJ0biB1bCBhLmJ0bi1mbG9hdGluZ3tvcGFjaXR5OjB9LmZpeGVkLWFjdGlvbi1idG4gLmZhYi1iYWNrZHJvcHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7ei1pbmRleDotMTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JhY2tncm91bmQtY29sb3I6IzI2YTY5YTtib3JkZXItcmFkaXVzOjUwJTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCl9LmJ0bi1mbGF0ey13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2NvbG9yOiMzNDM0MzQ7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjJzO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMnN9LmJ0bi1mbGF0OmZvY3VzLC5idG4tZmxhdDpob3Zlcnstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmV9LmJ0bi1mbGF0OmZvY3Vze2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjEpfS5idG4tZmxhdC5kaXNhYmxlZCwuYnRuLWZsYXQuYnRuLWZsYXRbZGlzYWJsZWRde2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtjb2xvcjojYjNiMmIyICFpbXBvcnRhbnQ7Y3Vyc29yOmRlZmF1bHR9LmJ0bi1sYXJnZXtoZWlnaHQ6NTRweDtsaW5lLWhlaWdodDo1NHB4O2ZvbnQtc2l6ZToxNXB4O3BhZGRpbmc6MCAyOHB4fS5idG4tbGFyZ2UgaXtmb250LXNpemU6MS42cmVtfS5idG4tc21hbGx7aGVpZ2h0OjMyLjRweDtsaW5lLWhlaWdodDozMi40cHg7Zm9udC1zaXplOjEzcHh9LmJ0bi1zbWFsbCBpe2ZvbnQtc2l6ZToxLjJyZW19LmJ0bi1ibG9ja3tkaXNwbGF5OmJsb2NrfS5kcm9wZG93bi1jb250ZW50e2JhY2tncm91bmQtY29sb3I6I2ZmZjttYXJnaW46MDtkaXNwbGF5Om5vbmU7bWluLXdpZHRoOjEwMHB4O292ZXJmbG93LXk6YXV0bztvcGFjaXR5OjA7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3otaW5kZXg6OTk5OTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCAwO3RyYW5zZm9ybS1vcmlnaW46MCAwfS5kcm9wZG93bi1jb250ZW50OmZvY3Vze291dGxpbmU6MH0uZHJvcGRvd24tY29udGVudCBsaXtjbGVhcjpib3RoO2NvbG9yOnJnYmEoMCwwLDAsMC44Nyk7Y3Vyc29yOnBvaW50ZXI7bWluLWhlaWdodDo1MHB4O2xpbmUtaGVpZ2h0OjEuNXJlbTt3aWR0aDoxMDAlO3RleHQtYWxpZ246bGVmdH0uZHJvcGRvd24tY29udGVudCBsaTpob3ZlciwuZHJvcGRvd24tY29udGVudCBsaS5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5kcm9wZG93bi1jb250ZW50IGxpOmZvY3Vze291dGxpbmU6bm9uZX0uZHJvcGRvd24tY29udGVudCBsaS5kaXZpZGVye21pbi1oZWlnaHQ6MDtoZWlnaHQ6MXB4fS5kcm9wZG93bi1jb250ZW50IGxpPmEsLmRyb3Bkb3duLWNvbnRlbnQgbGk+c3Bhbntmb250LXNpemU6MTZweDtjb2xvcjojMjZhNjlhO2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MjJweDtwYWRkaW5nOjE0cHggMTZweH0uZHJvcGRvd24tY29udGVudCBsaT5zcGFuPmxhYmVse3RvcDoxcHg7bGVmdDowO2hlaWdodDoxOHB4fS5kcm9wZG93bi1jb250ZW50IGxpPmE+aXtoZWlnaHQ6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O2Zsb2F0OmxlZnQ7bWFyZ2luOjAgMjRweCAwIDA7d2lkdGg6MjRweH1ib2R5LmtleWJvYXJkLWZvY3VzZWQgLmRyb3Bkb3duLWNvbnRlbnQgbGk6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjojZGFkYWRhfS5pbnB1dC1maWVsZC5jb2wgLmRyb3Bkb3duLWNvbnRlbnQgW3R5cGU9ImNoZWNrYm94Il0rbGFiZWx7dG9wOjFweDtsZWZ0OjA7aGVpZ2h0OjE4cHg7LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZX0uZHJvcGRvd24tdHJpZ2dlcntjdXJzb3I6cG9pbnRlcn0vKiEKKiBXYXZlcyB2MC42LjAKKiBodHRwOi8vZmlhbi5teS5pZC9XYXZlcwoqCiogQ29weXJpZ2h0IDIwMTQgQWxmaWFuYSBFLiBTaWJ1ZWEgYW5kIG90aGVyIGNvbnRyaWJ1dG9ycwoqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqIGh0dHBzOi8vZ2l0aHViLmNvbS9maWFucy9XYXZlcy9ibG9iL21hc3Rlci9MSUNFTlNFCiovLndhdmVzLWVmZmVjdHtwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jaztvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ei1pbmRleDoxOy13ZWJraXQtdHJhbnNpdGlvbjouM3MgZWFzZS1vdXQ7dHJhbnNpdGlvbjouM3MgZWFzZS1vdXR9LndhdmVzLWVmZmVjdCAud2F2ZXMtcmlwcGxle3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlci1yYWRpdXM6NTAlO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7bWFyZ2luLXRvcDotMTBweDttYXJnaW4tbGVmdDotMTBweDtvcGFjaXR5OjA7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMik7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjdzIGVhc2Utb3V0O3RyYW5zaXRpb246YWxsIDAuN3MgZWFzZS1vdXQ7LXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm0sIG9wYWNpdHk7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO3RyYW5zZm9ybTpzY2FsZSgwKTtwb2ludGVyLWV2ZW50czpub25lfS53YXZlcy1lZmZlY3Qud2F2ZXMtbGlnaHQgLndhdmVzLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC40NSl9LndhdmVzLWVmZmVjdC53YXZlcy1yZWQgLndhdmVzLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDY3LDU0LDAuNyl9LndhdmVzLWVmZmVjdC53YXZlcy15ZWxsb3cgLndhdmVzLXJpcHBsZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDIzNSw1OSwwLjcpfS53YXZlcy1lZmZlY3Qud2F2ZXMtb3JhbmdlIC53YXZlcy1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwxNTIsMCwwLjcpfS53YXZlcy1lZmZlY3Qud2F2ZXMtcHVycGxlIC53YXZlcy1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1NiwzOSwxNzYsMC43KX0ud2F2ZXMtZWZmZWN0LndhdmVzLWdyZWVuIC53YXZlcy1yaXBwbGV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDc2LDE3NSw4MCwwLjcpfS53YXZlcy1lZmZlY3Qud2F2ZXMtdGVhbCAud2F2ZXMtcmlwcGxle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDE1MCwxMzYsMC43KX0ud2F2ZXMtZWZmZWN0IGlucHV0W3R5cGU9ImJ1dHRvbiJdLC53YXZlcy1lZmZlY3QgaW5wdXRbdHlwZT0icmVzZXQiXSwud2F2ZXMtZWZmZWN0IGlucHV0W3R5cGU9InN1Ym1pdCJde2JvcmRlcjowO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtc2l6ZTppbmhlcml0O3RleHQtdHJhbnNmb3JtOmluaGVyaXQ7YmFja2dyb3VuZDpub25lfS53YXZlcy1lZmZlY3QgaW1ne3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6LTF9LndhdmVzLW5vdHJhbnNpdGlvbnstd2Via2l0LXRyYW5zaXRpb246bm9uZSAhaW1wb3J0YW50O3RyYW5zaXRpb246bm9uZSAhaW1wb3J0YW50fS53YXZlcy1jaXJjbGV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTstd2Via2l0LW1hc2staW1hZ2U6LXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSAxMDAlLCBibGFjayAxMDAlKX0ud2F2ZXMtaW5wdXQtd3JhcHBlcntib3JkZXItcmFkaXVzOjAuMmVtO3ZlcnRpY2FsLWFsaWduOmJvdHRvbX0ud2F2ZXMtaW5wdXQtd3JhcHBlciAud2F2ZXMtYnV0dG9uLWlucHV0e3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjF9LndhdmVzLWNpcmNsZXt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoyLjVlbTtoZWlnaHQ6Mi41ZW07bGluZS1oZWlnaHQ6Mi41ZW07Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC1tYXNrLWltYWdlOm5vbmV9LndhdmVzLWJsb2Nre2Rpc3BsYXk6YmxvY2t9LndhdmVzLWVmZmVjdCAud2F2ZXMtcmlwcGxle3otaW5kZXg6LTF9Lm1vZGFse2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7cmlnaHQ6MDtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7cGFkZGluZzowO21heC1oZWlnaHQ6NzAlO3dpZHRoOjU1JTttYXJnaW46YXV0bztvdmVyZmxvdy15OmF1dG87Ym9yZGVyLXJhZGl1czoycHg7d2lsbC1jaGFuZ2U6dG9wLCBvcGFjaXR5fS5tb2RhbDpmb2N1c3tvdXRsaW5lOm5vbmV9QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTJweCl7Lm1vZGFse3dpZHRoOjgwJX19Lm1vZGFsIGgxLC5tb2RhbCBoMiwubW9kYWwgaDMsLm1vZGFsIGg0e21hcmdpbi10b3A6MH0ubW9kYWwgLm1vZGFsLWNvbnRlbnR7cGFkZGluZzoyNHB4fS5tb2RhbCAubW9kYWwtY2xvc2V7Y3Vyc29yOnBvaW50ZXJ9Lm1vZGFsIC5tb2RhbC1mb290ZXJ7Ym9yZGVyLXJhZGl1czowIDAgMnB4IDJweDtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7cGFkZGluZzo0cHggNnB4O2hlaWdodDo1NnB4O3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpyaWdodH0ubW9kYWwgLm1vZGFsLWZvb3RlciAuYnRuLC5tb2RhbCAubW9kYWwtZm9vdGVyIC5idG4tbGFyZ2UsLm1vZGFsIC5tb2RhbC1mb290ZXIgLmJ0bi1zbWFsbCwubW9kYWwgLm1vZGFsLWZvb3RlciAuYnRuLWZsYXR7bWFyZ2luOjZweCAwfS5tb2RhbC1vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6OTk5O3RvcDotMjUlO2xlZnQ6MDtib3R0b206MDtyaWdodDowO2hlaWdodDoxMjUlO3dpZHRoOjEwMCU7YmFja2dyb3VuZDojMDAwO2Rpc3BsYXk6bm9uZTt3aWxsLWNoYW5nZTpvcGFjaXR5fS5tb2RhbC5tb2RhbC1maXhlZC1mb290ZXJ7cGFkZGluZzowO2hlaWdodDo3MCV9Lm1vZGFsLm1vZGFsLWZpeGVkLWZvb3RlciAubW9kYWwtY29udGVudHtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6Y2FsYygxMDAlIC0gNTZweCk7bWF4LWhlaWdodDoxMDAlO3dpZHRoOjEwMCU7b3ZlcmZsb3cteTphdXRvfS5tb2RhbC5tb2RhbC1maXhlZC1mb290ZXIgLm1vZGFsLWZvb3Rlcntib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjB9Lm1vZGFsLmJvdHRvbS1zaGVldHt0b3A6YXV0bztib3R0b206LTEwMCU7bWFyZ2luOjA7d2lkdGg6MTAwJTttYXgtaGVpZ2h0OjQ1JTtib3JkZXItcmFkaXVzOjA7d2lsbC1jaGFuZ2U6Ym90dG9tLCBvcGFjaXR5fS5jb2xsYXBzaWJsZXtib3JkZXItdG9wOjFweCBzb2xpZCAjZGRkO2JvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDtib3JkZXItbGVmdDoxcHggc29saWQgI2RkZDttYXJnaW46LjVyZW0gMCAxcmVtIDB9LmNvbGxhcHNpYmxlLWhlYWRlcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2N1cnNvcjpwb2ludGVyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtsaW5lLWhlaWdodDoxLjU7cGFkZGluZzoxcmVtO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkfS5jb2xsYXBzaWJsZS1oZWFkZXI6Zm9jdXN7b3V0bGluZTowfS5jb2xsYXBzaWJsZS1oZWFkZXIgaXt3aWR0aDoycmVtO2ZvbnQtc2l6ZToxLjZyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLXJpZ2h0OjFyZW19LmtleWJvYXJkLWZvY3VzZWQgLmNvbGxhcHNpYmxlLWhlYWRlcjpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9LmNvbGxhcHNpYmxlLWJvZHl7ZGlzcGxheTpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MnJlbX0uc2lkZW5hdiAuY29sbGFwc2libGUsLnNpZGVuYXYuZml4ZWQgLmNvbGxhcHNpYmxle2JvcmRlcjpub25lOy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0uc2lkZW5hdiAuY29sbGFwc2libGUgbGksLnNpZGVuYXYuZml4ZWQgLmNvbGxhcHNpYmxlIGxpe3BhZGRpbmc6MH0uc2lkZW5hdiAuY29sbGFwc2libGUtaGVhZGVyLC5zaWRlbmF2LmZpeGVkIC5jb2xsYXBzaWJsZS1oZWFkZXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtsaW5lLWhlaWdodDppbmhlcml0O2hlaWdodDppbmhlcml0O3BhZGRpbmc6MCAxNnB4fS5zaWRlbmF2IC5jb2xsYXBzaWJsZS1oZWFkZXI6aG92ZXIsLnNpZGVuYXYuZml4ZWQgLmNvbGxhcHNpYmxlLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4wNSl9LnNpZGVuYXYgLmNvbGxhcHNpYmxlLWhlYWRlciBpLC5zaWRlbmF2LmZpeGVkIC5jb2xsYXBzaWJsZS1oZWFkZXIgaXtsaW5lLWhlaWdodDppbmhlcml0fS5zaWRlbmF2IC5jb2xsYXBzaWJsZS1ib2R5LC5zaWRlbmF2LmZpeGVkIC5jb2xsYXBzaWJsZS1ib2R5e2JvcmRlcjowO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uc2lkZW5hdiAuY29sbGFwc2libGUtYm9keSBsaSBhLC5zaWRlbmF2LmZpeGVkIC5jb2xsYXBzaWJsZS1ib2R5IGxpIGF7cGFkZGluZzowIDIzLjVweCAwIDMxcHh9LmNvbGxhcHNpYmxlLnBvcG91dHtib3JkZXI6bm9uZTstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmV9LmNvbGxhcHNpYmxlLnBvcG91dD5saXstd2Via2l0LWJveC1zaGFkb3c6MCAycHggNXB4IDAgcmdiYSgwLDAsMCwwLjE2KSwwIDJweCAxMHB4IDAgcmdiYSgwLDAsMCwwLjEyKTtib3gtc2hhZG93OjAgMnB4IDVweCAwIHJnYmEoMCwwLDAsMC4xNiksMCAycHggMTBweCAwIHJnYmEoMCwwLDAsMC4xMik7bWFyZ2luOjAgMjRweDstd2Via2l0LXRyYW5zaXRpb246bWFyZ2luIDAuMzVzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTt0cmFuc2l0aW9uOm1hcmdpbiAwLjM1cyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCl9LmNvbGxhcHNpYmxlLnBvcG91dD5saS5hY3RpdmV7LXdlYmtpdC1ib3gtc2hhZG93OjAgNXB4IDExcHggMCByZ2JhKDAsMCwwLDAuMTgpLDAgNHB4IDE1cHggMCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6MCA1cHggMTFweCAwIHJnYmEoMCwwLDAsMC4xOCksMCA0cHggMTVweCAwIHJnYmEoMCwwLDAsMC4xNSk7bWFyZ2luOjE2cHggMH0uY2hpcHtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MzJweDtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo1MDA7Y29sb3I6cmdiYSgwLDAsMCwwLjYpO2xpbmUtaGVpZ2h0OjMycHg7cGFkZGluZzowIDEycHg7Ym9yZGVyLXJhZGl1czoxNnB4O2JhY2tncm91bmQtY29sb3I6I2U0ZTRlNDttYXJnaW4tYm90dG9tOjVweDttYXJnaW4tcmlnaHQ6NXB4fS5jaGlwOmZvY3Vze291dGxpbmU6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiMyNmE2OWE7Y29sb3I6I2ZmZn0uY2hpcD5pbWd7ZmxvYXQ6bGVmdDttYXJnaW46MCA4cHggMCAtMTJweDtoZWlnaHQ6MzJweDt3aWR0aDozMnB4O2JvcmRlci1yYWRpdXM6NTAlfS5jaGlwIC5jbG9zZXtjdXJzb3I6cG9pbnRlcjtmbG9hdDpyaWdodDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDozMnB4O3BhZGRpbmctbGVmdDo4cHh9LmNoaXBze2JvcmRlcjpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM5ZTllOWU7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO21hcmdpbjowIDAgOHB4IDA7bWluLWhlaWdodDo0NXB4O291dGxpbmU6bm9uZTstd2Via2l0LXRyYW5zaXRpb246YWxsIC4zczt0cmFuc2l0aW9uOmFsbCAuM3N9LmNoaXBzLmZvY3Vze2JvcmRlci1ib3R0b206MXB4IHNvbGlkICMyNmE2OWE7LXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDAgMCAjMjZhNjlhO2JveC1zaGFkb3c6MCAxcHggMCAwICMyNmE2OWF9LmNoaXBzOmhvdmVye2N1cnNvcjp0ZXh0fS5jaGlwcyAuaW5wdXR7YmFja2dyb3VuZDpub25lO2JvcmRlcjowO2NvbG9yOnJnYmEoMCwwLDAsMC42KTtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTZweDtoZWlnaHQ6M3JlbTtsaW5lLWhlaWdodDozMnB4O291dGxpbmU6MDttYXJnaW46MDtwYWRkaW5nOjAgIWltcG9ydGFudDt3aWR0aDoxMjBweCAhaW1wb3J0YW50fS5jaGlwcyAuaW5wdXQ6Zm9jdXN7Ym9yZGVyOjAgIWltcG9ydGFudDstd2Via2l0LWJveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50fS5jaGlwcyAuYXV0b2NvbXBsZXRlLWNvbnRlbnR7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MH0ucHJlZml4IH4gLmNoaXBze21hcmdpbi1sZWZ0OjNyZW07d2lkdGg6OTIlO3dpZHRoOmNhbGMoMTAwJSAtIDNyZW0pfS5jaGlwczplbXB0eSB+IGxhYmVse2ZvbnQtc2l6ZTowLjhyZW07LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTQwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE0MCUpfS5tYXRlcmlhbGJveGVke2Rpc3BsYXk6YmxvY2s7Y3Vyc29yOi13ZWJraXQtem9vbS1pbjtjdXJzb3I6em9vbS1pbjtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuNHM7dHJhbnNpdGlvbjpvcGFjaXR5IC40czstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVufS5tYXRlcmlhbGJveGVkOmhvdmVyOm5vdCguYWN0aXZlKXtvcGFjaXR5Oi44fS5tYXRlcmlhbGJveGVkLmFjdGl2ZXtjdXJzb3I6LXdlYmtpdC16b29tLW91dDtjdXJzb3I6em9vbS1vdXR9I21hdGVyaWFsYm94LW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7YmFja2dyb3VuZC1jb2xvcjojMjkyOTI5O3otaW5kZXg6MTAwMDt3aWxsLWNoYW5nZTpvcGFjaXR5fS5tYXRlcmlhbGJveC1jYXB0aW9ue3Bvc2l0aW9uOmZpeGVkO2Rpc3BsYXk6bm9uZTtjb2xvcjojZmZmO2xpbmUtaGVpZ2h0OjUwcHg7Ym90dG9tOjA7bGVmdDowO3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzowJSAxNSU7aGVpZ2h0OjUwcHg7ei1pbmRleDoxMDAwOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWR9c2VsZWN0OmZvY3Vze291dGxpbmU6MXB4IHNvbGlkICNjOWYzZWZ9YnV0dG9uOmZvY3Vze291dGxpbmU6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiMyYWI3YTl9bGFiZWx7Zm9udC1zaXplOi44cmVtO2NvbG9yOiM5ZTllOWV9Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOiNkMWQxZDF9OjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiNkMWQxZDF9Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjojZDFkMWQxfTo6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOiNkMWQxZDF9OjpwbGFjZWhvbGRlcntjb2xvcjojZDFkMWQxfWlucHV0Om5vdChbdHlwZV0pLGlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpLGlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxpbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCksaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxpbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxpbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxpbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCksaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpLGlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCksaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxpbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpLHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhe2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzllOWU5ZTtib3JkZXItcmFkaXVzOjA7b3V0bGluZTpub25lO2hlaWdodDozcmVtO3dpZHRoOjEwMCU7Zm9udC1zaXplOjE2cHg7bWFyZ2luOjAgMCA4cHggMDtwYWRkaW5nOjA7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lOy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXIgLjNzLCAtd2Via2l0LWJveC1zaGFkb3cgLjNzO3RyYW5zaXRpb246Ym9yZGVyIC4zcywgLXdlYmtpdC1ib3gtc2hhZG93IC4zczt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjNzLCBib3JkZXIgLjNzO3RyYW5zaXRpb246Ym94LXNoYWRvdyAuM3MsIGJvcmRlciAuM3MsIC13ZWJraXQtYm94LXNoYWRvdyAuM3N9aW5wdXQ6bm90KFt0eXBlXSk6ZGlzYWJsZWQsaW5wdXQ6bm90KFt0eXBlXSlbcmVhZG9ubHk9InJlYWRvbmx5Il0saW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQsaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9InJlYWRvbmx5Il0saW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLGlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT0icmVhZG9ubHkiXSxpbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQsaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PSJyZWFkb25seSJdLGlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQsaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT0icmVhZG9ubHkiXSxpbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCxpbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT0icmVhZG9ubHkiXSxpbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCxpbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT0icmVhZG9ubHkiXSxpbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQsaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PSJyZWFkb25seSJdLGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCxpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9InJlYWRvbmx5Il0saW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCxpbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PSJyZWFkb25seSJdLGlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQsaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT0icmVhZG9ubHkiXSxpbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkLGlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9InJlYWRvbmx5Il0sdGV4dGFyZWEubWF0ZXJpYWxpemUtdGV4dGFyZWE6ZGlzYWJsZWQsdGV4dGFyZWEubWF0ZXJpYWxpemUtdGV4dGFyZWFbcmVhZG9ubHk9InJlYWRvbmx5Il17Y29sb3I6cmdiYSgwLDAsMCwwLjQyKTtib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgcmdiYSgwLDAsMCwwLjQyKX1pbnB1dDpub3QoW3R5cGVdKTpkaXNhYmxlZCtsYWJlbCxpbnB1dDpub3QoW3R5cGVdKVtyZWFkb25seT0icmVhZG9ubHkiXStsYWJlbCxpbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCtsYWJlbCxpbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT0icmVhZG9ubHkiXStsYWJlbCxpbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQrbGFiZWwsaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PSJyZWFkb25seSJdK2xhYmVsLGlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCtsYWJlbCxpbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9InJlYWRvbmx5Il0rbGFiZWwsaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCtsYWJlbCxpbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PSJyZWFkb25seSJdK2xhYmVsLGlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkK2xhYmVsLGlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PSJyZWFkb25seSJdK2xhYmVsLGlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkK2xhYmVsLGlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PSJyZWFkb25seSJdK2xhYmVsLGlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCtsYWJlbCxpbnB1dFt0eXBlPWRhdGV0aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9InJlYWRvbmx5Il0rbGFiZWwsaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkK2xhYmVsLGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT0icmVhZG9ubHkiXStsYWJlbCxpbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmRpc2FibGVkK2xhYmVsLGlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdClbcmVhZG9ubHk9InJlYWRvbmx5Il0rbGFiZWwsaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpkaXNhYmxlZCtsYWJlbCxpbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpW3JlYWRvbmx5PSJyZWFkb25seSJdK2xhYmVsLGlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6ZGlzYWJsZWQrbGFiZWwsaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KVtyZWFkb25seT0icmVhZG9ubHkiXStsYWJlbCx0ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYTpkaXNhYmxlZCtsYWJlbCx0ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYVtyZWFkb25seT0icmVhZG9ubHkiXStsYWJlbHtjb2xvcjpyZ2JhKDAsMCwwLDAuNDIpfWlucHV0Om5vdChbdHlwZV0pOmZvY3VzOm5vdChbcmVhZG9ubHldKSxpbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSksaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSxpbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pLGlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pLGlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSxpbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSksaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKSxpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pLGlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pLGlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pLGlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pLHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhOmZvY3VzOm5vdChbcmVhZG9ubHldKXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMjZhNjlhOy13ZWJraXQtYm94LXNoYWRvdzowIDFweCAwIDAgIzI2YTY5YTtib3gtc2hhZG93OjAgMXB4IDAgMCAjMjZhNjlhfWlucHV0Om5vdChbdHlwZV0pOmZvY3VzOm5vdChbcmVhZG9ubHldKStsYWJlbCxpbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSkrbGFiZWwsaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKStsYWJlbCxpbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pK2xhYmVsLGlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pK2xhYmVsLGlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKStsYWJlbCxpbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1czpub3QoW3JlYWRvbmx5XSkrbGFiZWwsaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzOm5vdChbcmVhZG9ubHldKStsYWJlbCxpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pK2xhYmVsLGlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pK2xhYmVsLGlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pK2xhYmVsLGlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXM6bm90KFtyZWFkb25seV0pK2xhYmVsLHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhOmZvY3VzOm5vdChbcmVhZG9ubHldKStsYWJlbHtjb2xvcjojMjZhNjlhfWlucHV0Om5vdChbdHlwZV0pOmZvY3VzLnZhbGlkIH4gbGFiZWwsaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxpbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxpbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxpbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gbGFiZWwsaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxpbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IGxhYmVsLGlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IGxhYmVsLGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IGxhYmVsLGlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiBsYWJlbCxpbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gbGFiZWwsaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IGxhYmVsLHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhOmZvY3VzLnZhbGlkIH4gbGFiZWx7Y29sb3I6IzRDQUY1MH1pbnB1dDpub3QoW3R5cGVdKTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwsaW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IGxhYmVsLGlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwsaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxpbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxpbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwsaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IGxhYmVsLGlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gbGFiZWwsaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxpbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxpbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCxpbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiBsYWJlbCx0ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYTpmb2N1cy5pbnZhbGlkIH4gbGFiZWx7Y29sb3I6I0Y0NDMzNn1pbnB1dDpub3QoW3R5cGVdKS52YWxpZGF0ZStsYWJlbCxpbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZGF0ZStsYWJlbCxpbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWRhdGUrbGFiZWwsaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkYXRlK2xhYmVsLGlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWRhdGUrbGFiZWwsaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWRhdGUrbGFiZWwsaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWRhdGUrbGFiZWwsaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkYXRlK2xhYmVsLGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZGF0ZStsYWJlbCxpbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkYXRlK2xhYmVsLGlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWRhdGUrbGFiZWwsaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZGF0ZStsYWJlbCx0ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYS52YWxpZGF0ZStsYWJlbHt3aWR0aDoxMDAlfWlucHV0LnZhbGlkOm5vdChbdHlwZV0pLGlucHV0LnZhbGlkOm5vdChbdHlwZV0pOmZvY3VzLGlucHV0LnZhbGlkW3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpLGlucHV0LnZhbGlkW3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLGlucHV0LnZhbGlkW3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxpbnB1dC52YWxpZFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMsaW5wdXQudmFsaWRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpLGlucHV0LnZhbGlkW3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cyxpbnB1dC52YWxpZFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpLGlucHV0LnZhbGlkW3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMsaW5wdXQudmFsaWRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCksaW5wdXQudmFsaWRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMsaW5wdXQudmFsaWRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCksaW5wdXQudmFsaWRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMsaW5wdXQudmFsaWRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLGlucHV0LnZhbGlkW3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cyxpbnB1dC52YWxpZFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCksaW5wdXQudmFsaWRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLGlucHV0LnZhbGlkW3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCksaW5wdXQudmFsaWRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cyxpbnB1dC52YWxpZFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpLGlucHV0LnZhbGlkW3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMsaW5wdXQudmFsaWRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxpbnB1dC52YWxpZFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhLnZhbGlkLHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhLnZhbGlkOmZvY3VzLC5zZWxlY3Qtd3JhcHBlci52YWxpZD5pbnB1dC5zZWxlY3QtZHJvcGRvd257Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzRDQUY1MDstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMCAwICM0Q0FGNTA7Ym94LXNoYWRvdzowIDFweCAwIDAgIzRDQUY1MH1pbnB1dC5pbnZhbGlkOm5vdChbdHlwZV0pLGlucHV0LmludmFsaWQ6bm90KFt0eXBlXSk6Zm9jdXMsaW5wdXQuaW52YWxpZFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxpbnB1dC5pbnZhbGlkW3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLGlucHV0LmludmFsaWRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpLGlucHV0LmludmFsaWRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLGlucHV0LmludmFsaWRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpLGlucHV0LmludmFsaWRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLGlucHV0LmludmFsaWRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxpbnB1dC5pbnZhbGlkW3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMsaW5wdXQuaW52YWxpZFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxpbnB1dC5pbnZhbGlkW3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLGlucHV0LmludmFsaWRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCksaW5wdXQuaW52YWxpZFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cyxpbnB1dC5pbnZhbGlkW3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxpbnB1dC5pbnZhbGlkW3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cyxpbnB1dC5pbnZhbGlkW3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxpbnB1dC5pbnZhbGlkW3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cyxpbnB1dC5pbnZhbGlkW3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCksaW5wdXQuaW52YWxpZFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLGlucHV0LmludmFsaWRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KSxpbnB1dC5pbnZhbGlkW3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMsaW5wdXQuaW52YWxpZFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpLGlucHV0LmludmFsaWRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cyx0ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYS5pbnZhbGlkLHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhLmludmFsaWQ6Zm9jdXMsLnNlbGVjdC13cmFwcGVyLmludmFsaWQ+aW5wdXQuc2VsZWN0LWRyb3Bkb3duLC5zZWxlY3Qtd3JhcHBlci5pbnZhbGlkPmlucHV0LnNlbGVjdC1kcm9wZG93bjpmb2N1c3tib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRjQ0MzM2Oy13ZWJraXQtYm94LXNoYWRvdzowIDFweCAwIDAgI0Y0NDMzNjtib3gtc2hhZG93OjAgMXB4IDAgMCAjRjQ0MzM2fWlucHV0Om5vdChbdHlwZV0pLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10saW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxpbnB1dDpub3QoW3R5cGVdKS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLGlucHV0Om5vdChbdHlwZV0pOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0saW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxpbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLGlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0saW5wdXRbdHlwZT10ZXh0XTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxpbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxpbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxpbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxpbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxpbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxpbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxpbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxpbnB1dFt0eXBlPWVtYWlsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxpbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10saW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLGlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxpbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0saW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxpbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLGlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0saW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxpbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLGlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10saW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxpbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLGlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLGlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLGlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLGlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLGlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxpbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10saW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLGlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxpbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10saW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLGlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLWVycm9yXSxpbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0saW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLGlucHV0W3R5cGU9c2VhcmNoXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSxpbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0saW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhLnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtc3VjY2Vzc10sdGV4dGFyZWEubWF0ZXJpYWxpemUtdGV4dGFyZWE6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1zdWNjZXNzXSx0ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3JdLHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHRbZGF0YS1lcnJvcl0sLnNlbGVjdC13cmFwcGVyLnZhbGlkIC5oZWxwZXItdGV4dFtkYXRhLXN1Y2Nlc3NdLC5zZWxlY3Qtd3JhcHBlci5pbnZhbGlkIH4gLmhlbHBlci10ZXh0W2RhdGEtZXJyb3Jde2NvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtwb2ludGVyLWV2ZW50czpub25lfWlucHV0Om5vdChbdHlwZV0pLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0Om5vdChbdHlwZV0pOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9cGFzc3dvcmRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixpbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9ZW1haWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixpbnB1dFt0eXBlPXVybF06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT10ZWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixpbnB1dFt0eXBlPW51bWJlcl06bm90KC5icm93c2VyLWRlZmF1bHQpLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMudmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixpbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhOmZvY3VzLnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLC5zZWxlY3Qtd3JhcHBlci52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcntjb250ZW50OmF0dHIoZGF0YS1zdWNjZXNzKTtjb2xvcjojNENBRjUwfWlucHV0Om5vdChbdHlwZV0pLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixpbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9dGV4dF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT1wYXNzd29yZF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT11cmxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixpbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9dGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixpbnB1dFt0eXBlPWRhdGVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9ZGF0ZXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9dGVsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixpbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpOmZvY3VzLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT1udW1iZXJdOm5vdCguYnJvd3Nlci1kZWZhdWx0KS5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLGlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCk6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcixpbnB1dFt0eXBlPXNlYXJjaF06bm90KC5icm93c2VyLWRlZmF1bHQpLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KTpmb2N1cy5pbnZhbGlkIH4gLmhlbHBlci10ZXh0OmFmdGVyLHRleHRhcmVhLm1hdGVyaWFsaXplLXRleHRhcmVhLmludmFsaWQgfiAuaGVscGVyLXRleHQ6YWZ0ZXIsdGV4dGFyZWEubWF0ZXJpYWxpemUtdGV4dGFyZWE6Zm9jdXMuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlciwuc2VsZWN0LXdyYXBwZXIuaW52YWxpZCB+IC5oZWxwZXItdGV4dDphZnRlcntjb250ZW50OmF0dHIoZGF0YS1lcnJvcik7Y29sb3I6I0Y0NDMzNn1pbnB1dDpub3QoW3R5cGVdKStsYWJlbDphZnRlcixpbnB1dFt0eXBlPXRleHRdOm5vdCguYnJvd3Nlci1kZWZhdWx0KStsYWJlbDphZnRlcixpbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoLmJyb3dzZXItZGVmYXVsdCkrbGFiZWw6YWZ0ZXIsaW5wdXRbdHlwZT1lbWFpbF06bm90KC5icm93c2VyLWRlZmF1bHQpK2xhYmVsOmFmdGVyLGlucHV0W3R5cGU9dXJsXTpub3QoLmJyb3dzZXItZGVmYXVsdCkrbGFiZWw6YWZ0ZXIsaW5wdXRbdHlwZT10aW1lXTpub3QoLmJyb3dzZXItZGVmYXVsdCkrbGFiZWw6YWZ0ZXIsaW5wdXRbdHlwZT1kYXRlXTpub3QoLmJyb3dzZXItZGVmYXVsdCkrbGFiZWw6YWZ0ZXIsaW5wdXRbdHlwZT1kYXRldGltZV06bm90KC5icm93c2VyLWRlZmF1bHQpK2xhYmVsOmFmdGVyLGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdOm5vdCguYnJvd3Nlci1kZWZhdWx0KStsYWJlbDphZnRlcixpbnB1dFt0eXBlPXRlbF06bm90KC5icm93c2VyLWRlZmF1bHQpK2xhYmVsOmFmdGVyLGlucHV0W3R5cGU9bnVtYmVyXTpub3QoLmJyb3dzZXItZGVmYXVsdCkrbGFiZWw6YWZ0ZXIsaW5wdXRbdHlwZT1zZWFyY2hdOm5vdCguYnJvd3Nlci1kZWZhdWx0KStsYWJlbDphZnRlcix0ZXh0YXJlYS5tYXRlcmlhbGl6ZS10ZXh0YXJlYStsYWJlbDphZnRlciwuc2VsZWN0LXdyYXBwZXIrbGFiZWw6YWZ0ZXJ7ZGlzcGxheTpibG9jaztjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2xlZnQ6MDtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOi4ycyBvcGFjaXR5IGVhc2Utb3V0LCAuMnMgY29sb3IgZWFzZS1vdXQ7dHJhbnNpdGlvbjouMnMgb3BhY2l0eSBlYXNlLW91dCwgLjJzIGNvbG9yIGVhc2Utb3V0fS5pbnB1dC1maWVsZHtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tdG9wOjFyZW07bWFyZ2luLWJvdHRvbToxcmVtfS5pbnB1dC1maWVsZC5pbmxpbmV7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi1sZWZ0OjVweH0uaW5wdXQtZmllbGQuaW5saW5lIGlucHV0LC5pbnB1dC1maWVsZC5pbmxpbmUgLnNlbGVjdC1kcm9wZG93bnttYXJnaW4tYm90dG9tOjFyZW19LmlucHV0LWZpZWxkLmNvbCBsYWJlbHtsZWZ0Oi43NXJlbX0uaW5wdXQtZmllbGQuY29sIC5wcmVmaXggfiBsYWJlbCwuaW5wdXQtZmllbGQuY29sIC5wcmVmaXggfiAudmFsaWRhdGUgfiBsYWJlbHt3aWR0aDpjYWxjKDEwMCUgLSAzcmVtIC0gMS41cmVtKX0uaW5wdXQtZmllbGQ+bGFiZWx7Y29sb3I6IzllOWU5ZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Zm9udC1zaXplOjFyZW07Y3Vyc29yOnRleHQ7LXdlYmtpdC10cmFuc2l0aW9uOmNvbG9yIC4ycyBlYXNlLW91dCwgLXdlYmtpdC10cmFuc2Zvcm0gLjJzIGVhc2Utb3V0O3RyYW5zaXRpb246Y29sb3IgLjJzIGVhc2Utb3V0LCAtd2Via2l0LXRyYW5zZm9ybSAuMnMgZWFzZS1vdXQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2Utb3V0LCBjb2xvciAuMnMgZWFzZS1vdXQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2Utb3V0LCBjb2xvciAuMnMgZWFzZS1vdXQsIC13ZWJraXQtdHJhbnNmb3JtIC4ycyBlYXNlLW91dDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCUgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjAlIDEwMCU7dGV4dC1hbGlnbjppbml0aWFsOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTJweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTJweCl9LmlucHV0LWZpZWxkPmxhYmVsOm5vdCgubGFiZWwtaWNvbikuYWN0aXZley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE0cHgpIHNjYWxlKDAuOCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE0cHgpIHNjYWxlKDAuOCk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMDt0cmFuc2Zvcm0tb3JpZ2luOjAgMH0uaW5wdXQtZmllbGQ+aW5wdXRbdHlwZV06LXdlYmtpdC1hdXRvZmlsbDpub3QoLmJyb3dzZXItZGVmYXVsdCk6bm90KFt0eXBlPSJzZWFyY2giXSkrbGFiZWwsLmlucHV0LWZpZWxkPmlucHV0W3R5cGU9ZGF0ZV06bm90KC5icm93c2VyLWRlZmF1bHQpK2xhYmVsLC5pbnB1dC1maWVsZD5pbnB1dFt0eXBlPXRpbWVdOm5vdCguYnJvd3Nlci1kZWZhdWx0KStsYWJlbHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNHB4KSBzY2FsZSgwLjgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNHB4KSBzY2FsZSgwLjgpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjowIDA7dHJhbnNmb3JtLW9yaWdpbjowIDB9LmlucHV0LWZpZWxkIC5oZWxwZXItdGV4dHtwb3NpdGlvbjpyZWxhdGl2ZTttaW4taGVpZ2h0OjE4cHg7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTJweDtjb2xvcjpyZ2JhKDAsMCwwLDAuNTQpfS5pbnB1dC1maWVsZCAuaGVscGVyLXRleHQ6OmFmdGVye29wYWNpdHk6MTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjB9LmlucHV0LWZpZWxkIC5wcmVmaXh7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6M3JlbTtmb250LXNpemU6MnJlbTstd2Via2l0LXRyYW5zaXRpb246Y29sb3IgLjJzO3RyYW5zaXRpb246Y29sb3IgLjJzO3RvcDouNXJlbX0uaW5wdXQtZmllbGQgLnByZWZpeC5hY3RpdmV7Y29sb3I6IzI2YTY5YX0uaW5wdXQtZmllbGQgLnByZWZpeCB+IGlucHV0LC5pbnB1dC1maWVsZCAucHJlZml4IH4gdGV4dGFyZWEsLmlucHV0LWZpZWxkIC5wcmVmaXggfiBsYWJlbCwuaW5wdXQtZmllbGQgLnByZWZpeCB+IC52YWxpZGF0ZSB+IGxhYmVsLC5pbnB1dC1maWVsZCAucHJlZml4IH4gLmhlbHBlci10ZXh0LC5pbnB1dC1maWVsZCAucHJlZml4IH4gLmF1dG9jb21wbGV0ZS1jb250ZW50e21hcmdpbi1sZWZ0OjNyZW07d2lkdGg6OTIlO3dpZHRoOmNhbGMoMTAwJSAtIDNyZW0pfS5pbnB1dC1maWVsZCAucHJlZml4IH4gbGFiZWx7bWFyZ2luLWxlZnQ6M3JlbX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KXsuaW5wdXQtZmllbGQgLnByZWZpeCB+IGlucHV0e3dpZHRoOjg2JTt3aWR0aDpjYWxjKDEwMCUgLSAzcmVtKX19QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCl7LmlucHV0LWZpZWxkIC5wcmVmaXggfiBpbnB1dHt3aWR0aDo4MCU7d2lkdGg6Y2FsYygxMDAlIC0gM3JlbSl9fS5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXNlYXJjaF17ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDppbmhlcml0Oy13ZWJraXQtdHJhbnNpdGlvbjouM3MgYmFja2dyb3VuZC1jb2xvcjt0cmFuc2l0aW9uOi4zcyBiYWNrZ3JvdW5kLWNvbG9yfS5uYXYtd3JhcHBlciAuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hde2hlaWdodDppbmhlcml0O3BhZGRpbmctbGVmdDo0cmVtO3dpZHRoOmNhbGMoMTAwJSAtIDRyZW0pO2JvcmRlcjowOy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0uaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdOmZvY3VzOm5vdCguYnJvd3Nlci1kZWZhdWx0KXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjA7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2NvbG9yOiM0NDR9LmlucHV0LWZpZWxkIGlucHV0W3R5cGU9c2VhcmNoXTpmb2N1czpub3QoLmJyb3dzZXItZGVmYXVsdCkrbGFiZWwgaSwuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdOmZvY3VzOm5vdCguYnJvd3Nlci1kZWZhdWx0KSB+IC5tZGktbmF2aWdhdGlvbi1jbG9zZSwuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdOmZvY3VzOm5vdCguYnJvd3Nlci1kZWZhdWx0KSB+IC5tYXRlcmlhbC1pY29uc3tjb2xvcjojNDQ0fS5pbnB1dC1maWVsZCBpbnB1dFt0eXBlPXNlYXJjaF0rLmxhYmVsLWljb257LXdlYmtpdC10cmFuc2Zvcm06bm9uZTt0cmFuc2Zvcm06bm9uZTtsZWZ0OjFyZW19LmlucHV0LWZpZWxkIGlucHV0W3R5cGU9c2VhcmNoXSB+IC5tZGktbmF2aWdhdGlvbi1jbG9zZSwuaW5wdXQtZmllbGQgaW5wdXRbdHlwZT1zZWFyY2hdIH4gLm1hdGVyaWFsLWljb25ze3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjFyZW07Y29sb3I6dHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjJyZW07LXdlYmtpdC10cmFuc2l0aW9uOi4zcyBjb2xvcjt0cmFuc2l0aW9uOi4zcyBjb2xvcn10ZXh0YXJlYXt3aWR0aDoxMDAlO2hlaWdodDozcmVtO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9dGV4dGFyZWEubWF0ZXJpYWxpemUtdGV4dGFyZWF7bGluZS1oZWlnaHQ6bm9ybWFsO292ZXJmbG93LXk6aGlkZGVuO3BhZGRpbmc6LjhyZW0gMCAuOHJlbSAwO3Jlc2l6ZTpub25lO21pbi1oZWlnaHQ6M3JlbTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmhpZGRlbmRpdnt2aXNpYmlsaXR5OmhpZGRlbjt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7cGFkZGluZy10b3A6MS4ycmVtO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3otaW5kZXg6LTF9LmF1dG9jb21wbGV0ZS1jb250ZW50IGxpIC5oaWdobGlnaHR7Y29sb3I6IzQ0NH0uYXV0b2NvbXBsZXRlLWNvbnRlbnQgbGkgaW1ne2hlaWdodDo0MHB4O3dpZHRoOjQwcHg7bWFyZ2luOjVweCAxNXB4fS5jaGFyYWN0ZXItY291bnRlcnttaW4taGVpZ2h0OjE4cHh9W3R5cGU9InJhZGlvIl06bm90KDpjaGVja2VkKSxbdHlwZT0icmFkaW8iXTpjaGVja2Vke3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lfVt0eXBlPSJyYWRpbyJdOm5vdCg6Y2hlY2tlZCkrc3BhbixbdHlwZT0icmFkaW8iXTpjaGVja2VkK3NwYW57cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1sZWZ0OjM1cHg7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjI1cHg7bGluZS1oZWlnaHQ6MjVweDtmb250LXNpemU6MXJlbTstd2Via2l0LXRyYW5zaXRpb246LjI4cyBlYXNlO3RyYW5zaXRpb246LjI4cyBlYXNlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX1bdHlwZT0icmFkaW8iXStzcGFuOmJlZm9yZSxbdHlwZT0icmFkaW8iXStzcGFuOmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO21hcmdpbjo0cHg7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDt6LWluZGV4OjA7LXdlYmtpdC10cmFuc2l0aW9uOi4yOHMgZWFzZTt0cmFuc2l0aW9uOi4yOHMgZWFzZX1bdHlwZT0icmFkaW8iXTpub3QoOmNoZWNrZWQpK3NwYW46YmVmb3JlLFt0eXBlPSJyYWRpbyJdOm5vdCg6Y2hlY2tlZCkrc3BhbjphZnRlcixbdHlwZT0icmFkaW8iXTpjaGVja2VkK3NwYW46YmVmb3JlLFt0eXBlPSJyYWRpbyJdOmNoZWNrZWQrc3BhbjphZnRlcixbdHlwZT0icmFkaW8iXS53aXRoLWdhcDpjaGVja2VkK3NwYW46YmVmb3JlLFt0eXBlPSJyYWRpbyJdLndpdGgtZ2FwOmNoZWNrZWQrc3BhbjphZnRlcntib3JkZXItcmFkaXVzOjUwJX1bdHlwZT0icmFkaW8iXTpub3QoOmNoZWNrZWQpK3NwYW46YmVmb3JlLFt0eXBlPSJyYWRpbyJdOm5vdCg6Y2hlY2tlZCkrc3BhbjphZnRlcntib3JkZXI6MnB4IHNvbGlkICM1YTVhNWF9W3R5cGU9InJhZGlvIl06bm90KDpjaGVja2VkKStzcGFuOmFmdGVyey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO3RyYW5zZm9ybTpzY2FsZSgwKX1bdHlwZT0icmFkaW8iXTpjaGVja2VkK3NwYW46YmVmb3Jle2JvcmRlcjoycHggc29saWQgdHJhbnNwYXJlbnR9W3R5cGU9InJhZGlvIl06Y2hlY2tlZCtzcGFuOmFmdGVyLFt0eXBlPSJyYWRpbyJdLndpdGgtZ2FwOmNoZWNrZWQrc3BhbjpiZWZvcmUsW3R5cGU9InJhZGlvIl0ud2l0aC1nYXA6Y2hlY2tlZCtzcGFuOmFmdGVye2JvcmRlcjoycHggc29saWQgIzI2YTY5YX1bdHlwZT0icmFkaW8iXTpjaGVja2VkK3NwYW46YWZ0ZXIsW3R5cGU9InJhZGlvIl0ud2l0aC1nYXA6Y2hlY2tlZCtzcGFuOmFmdGVye2JhY2tncm91bmQtY29sb3I6IzI2YTY5YX1bdHlwZT0icmFkaW8iXTpjaGVja2VkK3NwYW46YWZ0ZXJ7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4wMik7dHJhbnNmb3JtOnNjYWxlKDEuMDIpfVt0eXBlPSJyYWRpbyJdLndpdGgtZ2FwOmNoZWNrZWQrc3BhbjphZnRlcnstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjUpO3RyYW5zZm9ybTpzY2FsZSgwLjUpfVt0eXBlPSJyYWRpbyJdLnRhYmJlZDpmb2N1cytzcGFuOmJlZm9yZXstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMTBweCByZ2JhKDAsMCwwLDAuMSk7Ym94LXNoYWRvdzowIDAgMCAxMHB4IHJnYmEoMCwwLDAsMC4xKX1bdHlwZT0icmFkaW8iXS53aXRoLWdhcDpkaXNhYmxlZDpjaGVja2VkK3NwYW46YmVmb3Jle2JvcmRlcjoycHggc29saWQgcmdiYSgwLDAsMCwwLjQyKX1bdHlwZT0icmFkaW8iXS53aXRoLWdhcDpkaXNhYmxlZDpjaGVja2VkK3NwYW46YWZ0ZXJ7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNDIpfVt0eXBlPSJyYWRpbyJdOmRpc2FibGVkOm5vdCg6Y2hlY2tlZCkrc3BhbjpiZWZvcmUsW3R5cGU9InJhZGlvIl06ZGlzYWJsZWQ6Y2hlY2tlZCtzcGFuOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuNDIpfVt0eXBlPSJyYWRpbyJdOmRpc2FibGVkK3NwYW57Y29sb3I6cmdiYSgwLDAsMCwwLjQyKX1bdHlwZT0icmFkaW8iXTpkaXNhYmxlZDpub3QoOmNoZWNrZWQpK3NwYW46YmVmb3Jle2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuNDIpfVt0eXBlPSJyYWRpbyJdOmRpc2FibGVkOmNoZWNrZWQrc3BhbjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC40Mik7Ym9yZGVyLWNvbG9yOiM5NDk0OTR9W3R5cGU9ImNoZWNrYm94Il06bm90KDpjaGVja2VkKSxbdHlwZT0iY2hlY2tib3giXTpjaGVja2Vke3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lfVt0eXBlPSJjaGVja2JveCJdK3NwYW46bm90KC5sZXZlcil7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1sZWZ0OjM1cHg7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjI1cHg7bGluZS1oZWlnaHQ6MjVweDtmb250LXNpemU6MXJlbTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9W3R5cGU9ImNoZWNrYm94Il0rc3Bhbjpub3QoLmxldmVyKTpiZWZvcmUsW3R5cGU9ImNoZWNrYm94Il06bm90KC5maWxsZWQtaW4pK3NwYW46bm90KC5sZXZlcik6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MThweDtoZWlnaHQ6MThweDt6LWluZGV4OjA7Ym9yZGVyOjJweCBzb2xpZCAjNWE1YTVhO2JvcmRlci1yYWRpdXM6MXB4O21hcmdpbi10b3A6M3B4Oy13ZWJraXQtdHJhbnNpdGlvbjouMnM7dHJhbnNpdGlvbjouMnN9W3R5cGU9ImNoZWNrYm94Il06bm90KC5maWxsZWQtaW4pK3NwYW46bm90KC5sZXZlcik6YWZ0ZXJ7Ym9yZGVyOjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7dHJhbnNmb3JtOnNjYWxlKDApfVt0eXBlPSJjaGVja2JveCJdOm5vdCg6Y2hlY2tlZCk6ZGlzYWJsZWQrc3Bhbjpub3QoLmxldmVyKTpiZWZvcmV7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNDIpfVt0eXBlPSJjaGVja2JveCJdLnRhYmJlZDpmb2N1cytzcGFuOm5vdCgubGV2ZXIpOmFmdGVyey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTtib3JkZXI6MDtib3JkZXItcmFkaXVzOjUwJTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMTBweCByZ2JhKDAsMCwwLDAuMSk7Ym94LXNoYWRvdzowIDAgMCAxMHB4IHJnYmEoMCwwLDAsMC4xKTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4xKX1bdHlwZT0iY2hlY2tib3giXTpjaGVja2VkK3NwYW46bm90KC5sZXZlcik6YmVmb3Jle3RvcDotNHB4O2xlZnQ6LTVweDt3aWR0aDoxMnB4O2hlaWdodDoyMnB4O2JvcmRlci10b3A6MnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjJweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6MnB4IHNvbGlkICMyNmE2OWE7Ym9yZGVyLWJvdHRvbToycHggc29saWQgIzI2YTY5YTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDBkZWcpOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJX1bdHlwZT0iY2hlY2tib3giXTpjaGVja2VkOmRpc2FibGVkK3NwYW46YmVmb3Jle2JvcmRlci1yaWdodDoycHggc29saWQgcmdiYSgwLDAsMCwwLjQyKTtib3JkZXItYm90dG9tOjJweCBzb2xpZCByZ2JhKDAsMCwwLDAuNDIpfVt0eXBlPSJjaGVja2JveCJdOmluZGV0ZXJtaW5hdGUrc3Bhbjpub3QoLmxldmVyKTpiZWZvcmV7dG9wOi0xMXB4O2xlZnQ6LTEycHg7d2lkdGg6MTBweDtoZWlnaHQ6MjJweDtib3JkZXItdG9wOm5vbmU7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItcmlnaHQ6MnB4IHNvbGlkICMyNmE2OWE7Ym9yZGVyLWJvdHRvbTpub25lOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MTAwJSAxMDAlO3RyYW5zZm9ybS1vcmlnaW46MTAwJSAxMDAlfVt0eXBlPSJjaGVja2JveCJdOmluZGV0ZXJtaW5hdGU6ZGlzYWJsZWQrc3Bhbjpub3QoLmxldmVyKTpiZWZvcmV7Ym9yZGVyLXJpZ2h0OjJweCBzb2xpZCByZ2JhKDAsMCwwLDAuNDIpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9W3R5cGU9ImNoZWNrYm94Il0uZmlsbGVkLWluK3NwYW46bm90KC5sZXZlcik6YWZ0ZXJ7Ym9yZGVyLXJhZGl1czoycHh9W3R5cGU9ImNoZWNrYm94Il0uZmlsbGVkLWluK3NwYW46bm90KC5sZXZlcik6YmVmb3JlLFt0eXBlPSJjaGVja2JveCJdLmZpbGxlZC1pbitzcGFuOm5vdCgubGV2ZXIpOmFmdGVye2NvbnRlbnQ6Jyc7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlOy13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXIgLjI1cywgYmFja2dyb3VuZC1jb2xvciAuMjVzLCB3aWR0aCAuMjBzIC4xcywgaGVpZ2h0IC4yMHMgLjFzLCB0b3AgLjIwcyAuMXMsIGxlZnQgLjIwcyAuMXM7dHJhbnNpdGlvbjpib3JkZXIgLjI1cywgYmFja2dyb3VuZC1jb2xvciAuMjVzLCB3aWR0aCAuMjBzIC4xcywgaGVpZ2h0IC4yMHMgLjFzLCB0b3AgLjIwcyAuMXMsIGxlZnQgLjIwcyAuMXM7ei1pbmRleDoxfVt0eXBlPSJjaGVja2JveCJdLmZpbGxlZC1pbjpub3QoOmNoZWNrZWQpK3NwYW46bm90KC5sZXZlcik6YmVmb3Jle3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyOjNweCBzb2xpZCB0cmFuc3BhcmVudDtsZWZ0OjZweDt0b3A6MTBweDstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVaKDM3ZGVnKTt0cmFuc2Zvcm06cm90YXRlWigzN2RlZyk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJX1bdHlwZT0iY2hlY2tib3giXS5maWxsZWQtaW46bm90KDpjaGVja2VkKStzcGFuOm5vdCgubGV2ZXIpOmFmdGVye2hlaWdodDoyMHB4O3dpZHRoOjIwcHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MnB4IHNvbGlkICM1YTVhNWE7dG9wOjBweDt6LWluZGV4OjB9W3R5cGU9ImNoZWNrYm94Il0uZmlsbGVkLWluOmNoZWNrZWQrc3Bhbjpub3QoLmxldmVyKTpiZWZvcmV7dG9wOjA7bGVmdDoxcHg7d2lkdGg6OHB4O2hlaWdodDoxM3B4O2JvcmRlci10b3A6MnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjJweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6MnB4IHNvbGlkICNmZmY7Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2ZmZjstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGVaKDM3ZGVnKTt0cmFuc2Zvcm06cm90YXRlWigzN2RlZyk7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJTt0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMTAwJX1bdHlwZT0iY2hlY2tib3giXS5maWxsZWQtaW46Y2hlY2tlZCtzcGFuOm5vdCgubGV2ZXIpOmFmdGVye3RvcDowO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Ym9yZGVyOjJweCBzb2xpZCAjMjZhNjlhO2JhY2tncm91bmQtY29sb3I6IzI2YTY5YTt6LWluZGV4OjB9W3R5cGU9ImNoZWNrYm94Il0uZmlsbGVkLWluLnRhYmJlZDpmb2N1cytzcGFuOm5vdCgubGV2ZXIpOmFmdGVye2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1jb2xvcjojNWE1YTVhO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjEpfVt0eXBlPSJjaGVja2JveCJdLmZpbGxlZC1pbi50YWJiZWQ6Y2hlY2tlZDpmb2N1cytzcGFuOm5vdCgubGV2ZXIpOmFmdGVye2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQtY29sb3I6IzI2YTY5YTtib3JkZXItY29sb3I6IzI2YTY5YX1bdHlwZT0iY2hlY2tib3giXS5maWxsZWQtaW46ZGlzYWJsZWQ6bm90KDpjaGVja2VkKStzcGFuOm5vdCgubGV2ZXIpOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjoycHggc29saWQgdHJhbnNwYXJlbnR9W3R5cGU9ImNoZWNrYm94Il0uZmlsbGVkLWluOmRpc2FibGVkOm5vdCg6Y2hlY2tlZCkrc3Bhbjpub3QoLmxldmVyKTphZnRlcntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjojOTQ5NDk0fVt0eXBlPSJjaGVja2JveCJdLmZpbGxlZC1pbjpkaXNhYmxlZDpjaGVja2VkK3NwYW46bm90KC5sZXZlcik6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9W3R5cGU9ImNoZWNrYm94Il0uZmlsbGVkLWluOmRpc2FibGVkOmNoZWNrZWQrc3Bhbjpub3QoLmxldmVyKTphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiM5NDk0OTQ7Ym9yZGVyLWNvbG9yOiM5NDk0OTR9LnN3aXRjaCwuc3dpdGNoICp7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uc3dpdGNoIGxhYmVse2N1cnNvcjpwb2ludGVyfS5zd2l0Y2ggbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF17b3BhY2l0eTowO3dpZHRoOjA7aGVpZ2h0OjB9LnN3aXRjaCBsYWJlbCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkKy5sZXZlcntiYWNrZ3JvdW5kLWNvbG9yOiM4NGM3YzF9LnN3aXRjaCBsYWJlbCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkKy5sZXZlcjpiZWZvcmUsLnN3aXRjaCBsYWJlbCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkKy5sZXZlcjphZnRlcntsZWZ0OjE4cHh9LnN3aXRjaCBsYWJlbCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkKy5sZXZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiMyNmE2OWF9LnN3aXRjaCBsYWJlbCAubGV2ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDozNnB4O2hlaWdodDoxNHB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjM4KTtib3JkZXItcmFkaXVzOjE1cHg7bWFyZ2luLXJpZ2h0OjEwcHg7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQgMC4zcyBlYXNlO3RyYW5zaXRpb246YmFja2dyb3VuZCAwLjNzIGVhc2U7dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjowIDE2cHh9LnN3aXRjaCBsYWJlbCAubGV2ZXI6YmVmb3JlLC5zd2l0Y2ggbGFiZWwgLmxldmVyOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtib3JkZXItcmFkaXVzOjUwJTtsZWZ0OjA7dG9wOi0zcHg7LXdlYmtpdC10cmFuc2l0aW9uOmxlZnQgMC4zcyBlYXNlLCBiYWNrZ3JvdW5kIC4zcyBlYXNlLCAtd2Via2l0LWJveC1zaGFkb3cgMC4xcyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSAuMXMgZWFzZTt0cmFuc2l0aW9uOmxlZnQgMC4zcyBlYXNlLCBiYWNrZ3JvdW5kIC4zcyBlYXNlLCAtd2Via2l0LWJveC1zaGFkb3cgMC4xcyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSAuMXMgZWFzZTt0cmFuc2l0aW9uOmxlZnQgMC4zcyBlYXNlLCBiYWNrZ3JvdW5kIC4zcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZSwgdHJhbnNmb3JtIC4xcyBlYXNlO3RyYW5zaXRpb246bGVmdCAwLjNzIGVhc2UsIGJhY2tncm91bmQgLjNzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gLjFzIGVhc2UsIC13ZWJraXQtYm94LXNoYWRvdyAwLjFzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIC4xcyBlYXNlfS5zd2l0Y2ggbGFiZWwgLmxldmVyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzgsMTY2LDE1NCwwLjE1KX0uc3dpdGNoIGxhYmVsIC5sZXZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNGMUYxRjE7LXdlYmtpdC1ib3gtc2hhZG93OjBweCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjIpLDBweCAycHggMnB4IDBweCByZ2JhKDAsMCwwLDAuMTQpLDBweCAxcHggNXB4IDBweCByZ2JhKDAsMCwwLDAuMTIpO2JveC1zaGFkb3c6MHB4IDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMiksMHB4IDJweCAycHggMHB4IHJnYmEoMCwwLDAsMC4xNCksMHB4IDFweCA1cHggMHB4IHJnYmEoMCwwLDAsMC4xMil9aW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpub3QoOmRpc2FibGVkKSB+IC5sZXZlcjphY3RpdmU6OmJlZm9yZSxpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOm5vdCg6ZGlzYWJsZWQpLnRhYmJlZDpmb2N1cyB+IC5sZXZlcjo6YmVmb3Jley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDIuNCk7dHJhbnNmb3JtOnNjYWxlKDIuNCk7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM4LDE2NiwxNTQsMC4xNSl9aW5wdXRbdHlwZT1jaGVja2JveF06bm90KDpkaXNhYmxlZCkgfiAubGV2ZXI6YWN0aXZlOmJlZm9yZSxpbnB1dFt0eXBlPWNoZWNrYm94XTpub3QoOmRpc2FibGVkKS50YWJiZWQ6Zm9jdXMgfiAubGV2ZXI6OmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgyLjQpO3RyYW5zZm9ybTpzY2FsZSgyLjQpO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjA4KX0uc3dpdGNoIGlucHV0W3R5cGU9Y2hlY2tib3hdW2Rpc2FibGVkXSsubGV2ZXJ7Y3Vyc29yOmRlZmF1bHQ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMTIpfS5zd2l0Y2ggbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF1bZGlzYWJsZWRdKy5sZXZlcjphZnRlciwuc3dpdGNoIGxhYmVsIGlucHV0W3R5cGU9Y2hlY2tib3hdW2Rpc2FibGVkXTpjaGVja2VkKy5sZXZlcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiM5NDk0OTR9c2VsZWN0e2Rpc3BsYXk6bm9uZX1zZWxlY3QuYnJvd3Nlci1kZWZhdWx0e2Rpc3BsYXk6YmxvY2t9c2VsZWN0e2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjkpO3dpZHRoOjEwMCU7cGFkZGluZzo1cHg7Ym9yZGVyOjFweCBzb2xpZCAjZjJmMmYyO2JvcmRlci1yYWRpdXM6MnB4O2hlaWdodDozcmVtfS5zZWxlY3QtbGFiZWx7cG9zaXRpb246YWJzb2x1dGV9LnNlbGVjdC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlfS5zZWxlY3Qtd3JhcHBlci52YWxpZCtsYWJlbCwuc2VsZWN0LXdyYXBwZXIuaW52YWxpZCtsYWJlbHt3aWR0aDoxMDAlO3BvaW50ZXItZXZlbnRzOm5vbmV9LnNlbGVjdC13cmFwcGVyIGlucHV0LnNlbGVjdC1kcm9wZG93bntwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM5ZTllOWU7b3V0bGluZTpub25lO2hlaWdodDozcmVtO2xpbmUtaGVpZ2h0OjNyZW07d2lkdGg6MTAwJTtmb250LXNpemU6MTZweDttYXJnaW46MCAwIDhweCAwO3BhZGRpbmc6MDtkaXNwbGF5OmJsb2NrOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt6LWluZGV4OjF9LnNlbGVjdC13cmFwcGVyIGlucHV0LnNlbGVjdC1kcm9wZG93bjpmb2N1c3tib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMjZhNjlhfS5zZWxlY3Qtd3JhcHBlciAuY2FyZXR7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDtib3R0b206MDttYXJnaW46YXV0byAwO3otaW5kZXg6MDtmaWxsOnJnYmEoMCwwLDAsMC44Nyl9LnNlbGVjdC13cmFwcGVyK2xhYmVse3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMjZweDtmb250LXNpemU6LjhyZW19c2VsZWN0OmRpc2FibGVke2NvbG9yOnJnYmEoMCwwLDAsMC40Mil9LnNlbGVjdC13cmFwcGVyLmRpc2FibGVkK2xhYmVse2NvbG9yOnJnYmEoMCwwLDAsMC40Mil9LnNlbGVjdC13cmFwcGVyLmRpc2FibGVkIC5jYXJldHtmaWxsOnJnYmEoMCwwLDAsMC40Mil9LnNlbGVjdC13cmFwcGVyIGlucHV0LnNlbGVjdC1kcm9wZG93bjpkaXNhYmxlZHtjb2xvcjpyZ2JhKDAsMCwwLDAuNDIpO2N1cnNvcjpkZWZhdWx0Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uc2VsZWN0LXdyYXBwZXIgaXtjb2xvcjpyZ2JhKDAsMCwwLDAuMyl9LnNlbGVjdC1kcm9wZG93biBsaS5kaXNhYmxlZCwuc2VsZWN0LWRyb3Bkb3duIGxpLmRpc2FibGVkPnNwYW4sLnNlbGVjdC1kcm9wZG93biBsaS5vcHRncm91cHtjb2xvcjpyZ2JhKDAsMCwwLDAuMyk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH1ib2R5LmtleWJvYXJkLWZvY3VzZWQgLnNlbGVjdC1kcm9wZG93bi5kcm9wZG93bi1jb250ZW50IGxpOmZvY3Vze2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjA4KX0uc2VsZWN0LWRyb3Bkb3duLmRyb3Bkb3duLWNvbnRlbnQgbGk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuMDgpfS5zZWxlY3QtZHJvcGRvd24uZHJvcGRvd24tY29udGVudCBsaS5zZWxlY3RlZHtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4wMyl9LnByZWZpeCB+IC5zZWxlY3Qtd3JhcHBlcnttYXJnaW4tbGVmdDozcmVtO3dpZHRoOjkyJTt3aWR0aDpjYWxjKDEwMCUgLSAzcmVtKX0ucHJlZml4IH4gbGFiZWx7bWFyZ2luLWxlZnQ6M3JlbX0uc2VsZWN0LWRyb3Bkb3duIGxpIGltZ3toZWlnaHQ6NDBweDt3aWR0aDo0MHB4O21hcmdpbjo1cHggMTVweDtmbG9hdDpyaWdodH0uc2VsZWN0LWRyb3Bkb3duIGxpLm9wdGdyb3Vwe2JvcmRlci10b3A6MXB4IHNvbGlkICNlZWV9LnNlbGVjdC1kcm9wZG93biBsaS5vcHRncm91cC5zZWxlY3RlZD5zcGFue2NvbG9yOnJnYmEoMCwwLDAsMC43KX0uc2VsZWN0LWRyb3Bkb3duIGxpLm9wdGdyb3VwPnNwYW57Y29sb3I6cmdiYSgwLDAsMCwwLjQpfS5zZWxlY3QtZHJvcGRvd24gbGkub3B0Z3JvdXAgfiBsaS5vcHRncm91cC1vcHRpb257cGFkZGluZy1sZWZ0OjFyZW19LmZpbGUtZmllbGR7cG9zaXRpb246cmVsYXRpdmV9LmZpbGUtZmllbGQgLmZpbGUtcGF0aC13cmFwcGVye292ZXJmbG93OmhpZGRlbjtwYWRkaW5nLWxlZnQ6MTBweH0uZmlsZS1maWVsZCBpbnB1dC5maWxlLXBhdGh7d2lkdGg6MTAwJX0uZmlsZS1maWVsZCAuYnRuLC5maWxlLWZpZWxkIC5idG4tbGFyZ2UsLmZpbGUtZmllbGQgLmJ0bi1zbWFsbHtmbG9hdDpsZWZ0O2hlaWdodDozcmVtO2xpbmUtaGVpZ2h0OjNyZW19LmZpbGUtZmllbGQgc3BhbntjdXJzb3I6cG9pbnRlcn0uZmlsZS1maWVsZCBpbnB1dFt0eXBlPWZpbGVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7bGVmdDowO2JvdHRvbTowO3dpZHRoOjEwMCU7bWFyZ2luOjA7cGFkZGluZzowO2ZvbnQtc2l6ZToyMHB4O2N1cnNvcjpwb2ludGVyO29wYWNpdHk6MDtmaWx0ZXI6YWxwaGEob3BhY2l0eT0wKX0uZmlsZS1maWVsZCBpbnB1dFt0eXBlPWZpbGVdOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbntkaXNwbGF5Om5vbmV9LnJhbmdlLWZpZWxke3Bvc2l0aW9uOnJlbGF0aXZlfWlucHV0W3R5cGU9cmFuZ2VdLGlucHV0W3R5cGU9cmFuZ2VdKy50aHVtYntjdXJzb3I6cG9pbnRlcn1pbnB1dFt0eXBlPXJhbmdlXXtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO291dGxpbmU6bm9uZTt3aWR0aDoxMDAlO21hcmdpbjoxNXB4IDA7cGFkZGluZzowfWlucHV0W3R5cGU9cmFuZ2VdOmZvY3Vze291dGxpbmU6bm9uZX1pbnB1dFt0eXBlPXJhbmdlXSsudGh1bWJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwcHg7bGVmdDowO2JvcmRlcjpub25lO2hlaWdodDowO3dpZHRoOjA7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjojMjZhNjlhO21hcmdpbi1sZWZ0OjdweDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46NTAlIDUwJTt0cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCU7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfWlucHV0W3R5cGU9cmFuZ2VdKy50aHVtYiAudmFsdWV7ZGlzcGxheTpibG9jazt3aWR0aDozMHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiMyNmE2OWE7Zm9udC1zaXplOjA7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX1pbnB1dFt0eXBlPXJhbmdlXSsudGh1bWIuYWN0aXZle2JvcmRlci1yYWRpdXM6NTAlIDUwJSA1MCUgMH1pbnB1dFt0eXBlPXJhbmdlXSsudGh1bWIuYWN0aXZlIC52YWx1ZXtjb2xvcjojZmZmO21hcmdpbi1sZWZ0Oi0xcHg7bWFyZ2luLXRvcDo4cHg7Zm9udC1zaXplOjEwcHh9aW5wdXRbdHlwZT1yYW5nZV17LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9aW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNre2hlaWdodDozcHg7YmFja2dyb3VuZDojYzJjMGMyO2JvcmRlcjpub25lfWlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYntib3JkZXI6bm9uZTtoZWlnaHQ6MTRweDt3aWR0aDoxNHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzI2YTY5YTstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC1ib3gtc2hhZG93IC4zczt0cmFuc2l0aW9uOi13ZWJraXQtYm94LXNoYWRvdyAuM3M7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4zczt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjNzLCAtd2Via2l0LWJveC1zaGFkb3cgLjNzOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtY29sb3I6IzI2YTY5YTstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46NTAlIDUwJTt0cmFuc2Zvcm0tb3JpZ2luOjUwJSA1MCU7bWFyZ2luOi01cHggMCAwIDB9LmtleWJvYXJkLWZvY3VzZWQgaW5wdXRbdHlwZT1yYW5nZV06Zm9jdXM6bm90KC5hY3RpdmUpOjotd2Via2l0LXNsaWRlci10aHVtYnstd2Via2l0LWJveC1zaGFkb3c6MCAwIDAgMTBweCByZ2JhKDM4LDE2NiwxNTQsMC4yNik7Ym94LXNoYWRvdzowIDAgMCAxMHB4IHJnYmEoMzgsMTY2LDE1NCwwLjI2KX1pbnB1dFt0eXBlPXJhbmdlXXtib3JkZXI6MXB4IHNvbGlkIHdoaXRlfWlucHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRyYWNre2hlaWdodDozcHg7YmFja2dyb3VuZDojYzJjMGMyO2JvcmRlcjpub25lfWlucHV0W3R5cGU9cmFuZ2VdOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfWlucHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRodW1ie2JvcmRlcjpub25lO2hlaWdodDoxNHB4O3dpZHRoOjE0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojMjZhNjlhOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LWJveC1zaGFkb3cgLjNzO3RyYW5zaXRpb246LXdlYmtpdC1ib3gtc2hhZG93IC4zczt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjNzO3RyYW5zaXRpb246Ym94LXNoYWRvdyAuM3MsIC13ZWJraXQtYm94LXNoYWRvdyAuM3M7bWFyZ2luLXRvcDotNXB4fWlucHV0W3R5cGU9cmFuZ2VdOi1tb3otZm9jdXNyaW5ne291dGxpbmU6MXB4IHNvbGlkICNmZmY7b3V0bGluZS1vZmZzZXQ6LTFweH0ua2V5Ym9hcmQtZm9jdXNlZCBpbnB1dFt0eXBlPXJhbmdlXTpmb2N1czpub3QoLmFjdGl2ZSk6Oi1tb3otcmFuZ2UtdGh1bWJ7Ym94LXNoYWRvdzowIDAgMCAxMHB4IHJnYmEoMzgsMTY2LDE1NCwwLjI2KX1pbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRyYWNre2hlaWdodDozcHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXdpZHRoOjZweCAwO2NvbG9yOnRyYW5zcGFyZW50fWlucHV0W3R5cGU9cmFuZ2VdOjotbXMtZmlsbC1sb3dlcntiYWNrZ3JvdW5kOiM3Nzd9aW5wdXRbdHlwZT1yYW5nZV06Oi1tcy1maWxsLXVwcGVye2JhY2tncm91bmQ6I2RkZH1pbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRodW1ie2JvcmRlcjpub25lO2hlaWdodDoxNHB4O3dpZHRoOjE0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojMjZhNjlhOy13ZWJraXQtdHJhbnNpdGlvbjotd2Via2l0LWJveC1zaGFkb3cgLjNzO3RyYW5zaXRpb246LXdlYmtpdC1ib3gtc2hhZG93IC4zczt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjNzO3RyYW5zaXRpb246Ym94LXNoYWRvdyAuM3MsIC13ZWJraXQtYm94LXNoYWRvdyAuM3N9LmtleWJvYXJkLWZvY3VzZWQgaW5wdXRbdHlwZT1yYW5nZV06Zm9jdXM6bm90KC5hY3RpdmUpOjotbXMtdGh1bWJ7Ym94LXNoYWRvdzowIDAgMCAxMHB4IHJnYmEoMzgsMTY2LDE1NCwwLjI2KX0udGFibGUtb2YtY29udGVudHMuZml4ZWR7cG9zaXRpb246Zml4ZWR9LnRhYmxlLW9mLWNvbnRlbnRzIGxpe3BhZGRpbmc6MnB4IDB9LnRhYmxlLW9mLWNvbnRlbnRzIGF7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC13ZWlnaHQ6MzAwO2NvbG9yOiM3NTc1NzU7cGFkZGluZy1sZWZ0OjE2cHg7aGVpZ2h0OjEuNXJlbTtsaW5lLWhlaWdodDoxLjVyZW07bGV0dGVyLXNwYWNpbmc6LjQ7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnRhYmxlLW9mLWNvbnRlbnRzIGE6aG92ZXJ7Y29sb3I6I2E4YThhODtwYWRkaW5nLWxlZnQ6MTVweDtib3JkZXItbGVmdDoxcHggc29saWQgI2VlNmU3M30udGFibGUtb2YtY29udGVudHMgYS5hY3RpdmV7Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmctbGVmdDoxNHB4O2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjZWU2ZTczfS5zaWRlbmF2e3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjMwMHB4O2xlZnQ6MDt0b3A6MDttYXJnaW46MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7aGVpZ2h0OjEwMCU7aGVpZ2h0OmNhbGMoMTAwJSArIDYwcHgpO2hlaWdodDotbW96LWNhbGMoMTAwJSk7cGFkZGluZy1ib3R0b206NjBweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ei1pbmRleDo5OTk7b3ZlcmZsb3cteTphdXRvO3dpbGwtY2hhbmdlOnRyYW5zZm9ybTstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwNSUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDUlKX0uc2lkZW5hdi5yaWdodC1hbGlnbmVke3JpZ2h0OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDUlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDUlKTtsZWZ0OmF1dG87LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKX0uc2lkZW5hdiAuY29sbGFwc2libGV7bWFyZ2luOjB9LnNpZGVuYXYgbGl7ZmxvYXQ6bm9uZTtsaW5lLWhlaWdodDo0OHB4fS5zaWRlbmF2IGxpLmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4wNSl9LnNpZGVuYXYgbGk+YXtjb2xvcjpyZ2JhKDAsMCwwLDAuODcpO2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2hlaWdodDo0OHB4O2xpbmUtaGVpZ2h0OjQ4cHg7cGFkZGluZzowIDMycHh9LnNpZGVuYXYgbGk+YTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC4wNSl9LnNpZGVuYXYgbGk+YS5idG4sLnNpZGVuYXYgbGk+YS5idG4tbGFyZ2UsLnNpZGVuYXYgbGk+YS5idG4tc21hbGwsLnNpZGVuYXYgbGk+YS5idG4tbGFyZ2UsLnNpZGVuYXYgbGk+YS5idG4tZmxhdCwuc2lkZW5hdiBsaT5hLmJ0bi1mbG9hdGluZ3ttYXJnaW46MTBweCAxNXB4fS5zaWRlbmF2IGxpPmEuYnRuLC5zaWRlbmF2IGxpPmEuYnRuLWxhcmdlLC5zaWRlbmF2IGxpPmEuYnRuLXNtYWxsLC5zaWRlbmF2IGxpPmEuYnRuLWxhcmdlLC5zaWRlbmF2IGxpPmEuYnRuLWZsb2F0aW5ne2NvbG9yOiNmZmZ9LnNpZGVuYXYgbGk+YS5idG4tZmxhdHtjb2xvcjojMzQzNDM0fS5zaWRlbmF2IGxpPmEuYnRuOmhvdmVyLC5zaWRlbmF2IGxpPmEuYnRuLWxhcmdlOmhvdmVyLC5zaWRlbmF2IGxpPmEuYnRuLXNtYWxsOmhvdmVyLC5zaWRlbmF2IGxpPmEuYnRuLWxhcmdlOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzJiYmJhZH0uc2lkZW5hdiBsaT5hLmJ0bi1mbG9hdGluZzpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMyNmE2OWF9LnNpZGVuYXYgbGk+YT5pLC5zaWRlbmF2IGxpPmE+W2NsYXNzXj0ibWRpLSJdLC5zaWRlbmF2IGxpPmEgbGk+YT5bY2xhc3MqPSJtZGktIl0sLnNpZGVuYXYgbGk+YT5pLm1hdGVyaWFsLWljb25ze2Zsb2F0OmxlZnQ7aGVpZ2h0OjQ4cHg7bGluZS1oZWlnaHQ6NDhweDttYXJnaW46MCAzMnB4IDAgMDt3aWR0aDoyNHB4O2NvbG9yOnJnYmEoMCwwLDAsMC41NCl9LnNpZGVuYXYgLmRpdmlkZXJ7bWFyZ2luOjhweCAwIDAgMH0uc2lkZW5hdiAuc3ViaGVhZGVye2N1cnNvcjppbml0aWFsO3BvaW50ZXItZXZlbnRzOm5vbmU7Y29sb3I6cmdiYSgwLDAsMCwwLjU0KTtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6NDhweH0uc2lkZW5hdiAuc3ViaGVhZGVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LnNpZGVuYXYgLnVzZXItdmlld3twb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjMycHggMzJweCAwO21hcmdpbi1ib3R0b206OHB4fS5zaWRlbmF2IC51c2VyLXZpZXc+YXtoZWlnaHQ6YXV0bztwYWRkaW5nOjB9LnNpZGVuYXYgLnVzZXItdmlldz5hOmhvdmVye2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LnNpZGVuYXYgLnVzZXItdmlldyAuYmFja2dyb3VuZHtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7ei1pbmRleDotMX0uc2lkZW5hdiAudXNlci12aWV3IC5jaXJjbGUsLnNpZGVuYXYgLnVzZXItdmlldyAubmFtZSwuc2lkZW5hdiAudXNlci12aWV3IC5lbWFpbHtkaXNwbGF5OmJsb2NrfS5zaWRlbmF2IC51c2VyLXZpZXcgLmNpcmNsZXtoZWlnaHQ6NjRweDt3aWR0aDo2NHB4fS5zaWRlbmF2IC51c2VyLXZpZXcgLm5hbWUsLnNpZGVuYXYgLnVzZXItdmlldyAuZW1haWx7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MjRweH0uc2lkZW5hdiAudXNlci12aWV3IC5uYW1le21hcmdpbi10b3A6MTZweDtmb250LXdlaWdodDo1MDB9LnNpZGVuYXYgLnVzZXItdmlldyAuZW1haWx7cGFkZGluZy1ib3R0b206MTZweDtmb250LXdlaWdodDo0MDB9LmRyYWctdGFyZ2V0e2hlaWdodDoxMDAlO3dpZHRoOjEwcHg7cG9zaXRpb246Zml4ZWQ7dG9wOjA7ei1pbmRleDo5OTh9LmRyYWctdGFyZ2V0LnJpZ2h0LWFsaWduZWR7cmlnaHQ6MH0uc2lkZW5hdi5zaWRlbmF2LWZpeGVke2xlZnQ6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3Bvc2l0aW9uOmZpeGVkfS5zaWRlbmF2LnNpZGVuYXYtZml4ZWQucmlnaHQtYWxpZ25lZHtyaWdodDowO2xlZnQ6YXV0b31AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MnB4KXsuc2lkZW5hdi5zaWRlbmF2LWZpeGVkey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwNSUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0xMDUlKX0uc2lkZW5hdi5zaWRlbmF2LWZpeGVkLnJpZ2h0LWFsaWduZWR7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDUlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDUlKX0uc2lkZW5hdj5he3BhZGRpbmc6MCAxNnB4fS5zaWRlbmF2IC51c2VyLXZpZXd7cGFkZGluZzoxNnB4IDE2cHggMH19LnNpZGVuYXYgLmNvbGxhcHNpYmxlLWJvZHk+dWw6bm90KC5jb2xsYXBzaWJsZSk+bGkuYWN0aXZlLC5zaWRlbmF2LnNpZGVuYXYtZml4ZWQgLmNvbGxhcHNpYmxlLWJvZHk+dWw6bm90KC5jb2xsYXBzaWJsZSk+bGkuYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2VlNmU3M30uc2lkZW5hdiAuY29sbGFwc2libGUtYm9keT51bDpub3QoLmNvbGxhcHNpYmxlKT5saS5hY3RpdmUgYSwuc2lkZW5hdi5zaWRlbmF2LWZpeGVkIC5jb2xsYXBzaWJsZS1ib2R5PnVsOm5vdCguY29sbGFwc2libGUpPmxpLmFjdGl2ZSBhe2NvbG9yOiNmZmZ9LnNpZGVuYXYgLmNvbGxhcHNpYmxlLWJvZHl7cGFkZGluZzowfS5zaWRlbmF2LW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3JpZ2h0OjA7b3BhY2l0eTowO2hlaWdodDoxMjB2aDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC41KTt6LWluZGV4Ojk5NztkaXNwbGF5Om5vbmV9LnByZWxvYWRlci13cmFwcGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHh9LnByZWxvYWRlci13cmFwcGVyLnNtYWxse3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHh9LnByZWxvYWRlci13cmFwcGVyLmJpZ3t3aWR0aDo2NHB4O2hlaWdodDo2NHB4fS5wcmVsb2FkZXItd3JhcHBlci5hY3RpdmV7LXdlYmtpdC1hbmltYXRpb246Y29udGFpbmVyLXJvdGF0ZSAxNTY4bXMgbGluZWFyIGluZmluaXRlO2FuaW1hdGlvbjpjb250YWluZXItcm90YXRlIDE1NjhtcyBsaW5lYXIgaW5maW5pdGV9QC13ZWJraXQta2V5ZnJhbWVzIGNvbnRhaW5lci1yb3RhdGV7dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgY29udGFpbmVyLXJvdGF0ZXt0b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS5zcGlubmVyLWxheWVye3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3BhY2l0eTowO2JvcmRlci1jb2xvcjojMjZhNjlhfS5zcGlubmVyLWJsdWUsLnNwaW5uZXItYmx1ZS1vbmx5e2JvcmRlci1jb2xvcjojNDI4NWY0fS5zcGlubmVyLXJlZCwuc3Bpbm5lci1yZWQtb25seXtib3JkZXItY29sb3I6I2RiNDQzN30uc3Bpbm5lci15ZWxsb3csLnNwaW5uZXIteWVsbG93LW9ubHl7Ym9yZGVyLWNvbG9yOiNmNGI0MDB9LnNwaW5uZXItZ3JlZW4sLnNwaW5uZXItZ3JlZW4tb25seXtib3JkZXItY29sb3I6IzBmOWQ1OH0uYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXItYmx1ZXstd2Via2l0LWFuaW1hdGlvbjpmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCxibHVlLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7YW5pbWF0aW9uOmZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLGJsdWUtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aH0uYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXItcmVkey13ZWJraXQtYW5pbWF0aW9uOmZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLHJlZC1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO2FuaW1hdGlvbjpmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCxyZWQtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aH0uYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXIteWVsbG93ey13ZWJraXQtYW5pbWF0aW9uOmZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLHllbGxvdy1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO2FuaW1hdGlvbjpmaWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCx5ZWxsb3ctZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aH0uYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXItZ3JlZW57LXdlYmtpdC1hbmltYXRpb246ZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsZ3JlZW4tZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDthbmltYXRpb246ZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsZ3JlZW4tZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aH0uYWN0aXZlIC5zcGlubmVyLWxheWVyLC5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci1ibHVlLW9ubHksLmFjdGl2ZSAuc3Bpbm5lci1sYXllci5zcGlubmVyLXJlZC1vbmx5LC5hY3RpdmUgLnNwaW5uZXItbGF5ZXIuc3Bpbm5lci15ZWxsb3ctb25seSwuYWN0aXZlIC5zcGlubmVyLWxheWVyLnNwaW5uZXItZ3JlZW4tb25seXtvcGFjaXR5OjE7LXdlYmtpdC1hbmltYXRpb246ZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7YW5pbWF0aW9uOmZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RofUAtd2Via2l0LWtleWZyYW1lcyBmaWxsLXVuZmlsbC1yb3RhdGV7MTIuNSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyl9MjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpfTM3LjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0MDVkZWcpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNTQwZGVnKX02Mi41JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNjc1ZGVnKX03NSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDgxMGRlZyl9ODcuNSV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDk0NWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEwODBkZWcpfX1Aa2V5ZnJhbWVzIGZpbGwtdW5maWxsLXJvdGF0ZXsxMi41JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyl9MjUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX0zNy41JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDA1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQwNWRlZyl9NTAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg1NDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNTQwZGVnKX02Mi41JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNjc1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDY3NWRlZyl9NzUley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg4MTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoODEwZGVnKX04Ny41JXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDk0NWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEwODBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTA4MGRlZyl9fUAtd2Via2l0LWtleWZyYW1lcyBibHVlLWZhZGUtaW4tb3V0e2Zyb217b3BhY2l0eToxfTI1JXtvcGFjaXR5OjF9MjYle29wYWNpdHk6MH04OSV7b3BhY2l0eTowfTkwJXtvcGFjaXR5OjF9MTAwJXtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgYmx1ZS1mYWRlLWluLW91dHtmcm9te29wYWNpdHk6MX0yNSV7b3BhY2l0eToxfTI2JXtvcGFjaXR5OjB9ODkle29wYWNpdHk6MH05MCV7b3BhY2l0eToxfTEwMCV7b3BhY2l0eToxfX1ALXdlYmtpdC1rZXlmcmFtZXMgcmVkLWZhZGUtaW4tb3V0e2Zyb217b3BhY2l0eTowfTE1JXtvcGFjaXR5OjB9MjUle29wYWNpdHk6MX01MCV7b3BhY2l0eToxfTUxJXtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgcmVkLWZhZGUtaW4tb3V0e2Zyb217b3BhY2l0eTowfTE1JXtvcGFjaXR5OjB9MjUle29wYWNpdHk6MX01MCV7b3BhY2l0eToxfTUxJXtvcGFjaXR5OjB9fUAtd2Via2l0LWtleWZyYW1lcyB5ZWxsb3ctZmFkZS1pbi1vdXR7ZnJvbXtvcGFjaXR5OjB9NDAle29wYWNpdHk6MH01MCV7b3BhY2l0eToxfTc1JXtvcGFjaXR5OjF9NzYle29wYWNpdHk6MH19QGtleWZyYW1lcyB5ZWxsb3ctZmFkZS1pbi1vdXR7ZnJvbXtvcGFjaXR5OjB9NDAle29wYWNpdHk6MH01MCV7b3BhY2l0eToxfTc1JXtvcGFjaXR5OjF9NzYle29wYWNpdHk6MH19QC13ZWJraXQta2V5ZnJhbWVzIGdyZWVuLWZhZGUtaW4tb3V0e2Zyb217b3BhY2l0eTowfTY1JXtvcGFjaXR5OjB9NzUle29wYWNpdHk6MX05MCV7b3BhY2l0eToxfTEwMCV7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIGdyZWVuLWZhZGUtaW4tb3V0e2Zyb217b3BhY2l0eTowfTY1JXtvcGFjaXR5OjB9NzUle29wYWNpdHk6MX05MCV7b3BhY2l0eToxfTEwMCV7b3BhY2l0eTowfX0uZ2FwLXBhdGNoe3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6NDUlO3dpZHRoOjEwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLWNvbG9yOmluaGVyaXR9LmdhcC1wYXRjaCAuY2lyY2xle3dpZHRoOjEwMDAlO2xlZnQ6LTQ1MCV9LmNpcmNsZS1jbGlwcGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjUwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLWNvbG9yOmluaGVyaXR9LmNpcmNsZS1jbGlwcGVyIC5jaXJjbGV7d2lkdGg6MjAwJTtoZWlnaHQ6MTAwJTtib3JkZXItd2lkdGg6M3B4O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6aW5oZXJpdDtib3JkZXItYm90dG9tLWNvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czo1MCU7LXdlYmtpdC1hbmltYXRpb246bm9uZTthbmltYXRpb246bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowfS5jaXJjbGUtY2xpcHBlci5sZWZ0IC5jaXJjbGV7bGVmdDowO2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50Oy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMjlkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMTI5ZGVnKX0uY2lyY2xlLWNsaXBwZXIucmlnaHQgLmNpcmNsZXtsZWZ0Oi0xMDAlO2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMjlkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTEyOWRlZyl9LmFjdGl2ZSAuY2lyY2xlLWNsaXBwZXIubGVmdCAuY2lyY2xley13ZWJraXQtYW5pbWF0aW9uOmxlZnQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoO2FuaW1hdGlvbjpsZWZ0LXNwaW4gMTMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aH0uYWN0aXZlIC5jaXJjbGUtY2xpcHBlci5yaWdodCAuY2lyY2xley13ZWJraXQtYW5pbWF0aW9uOnJpZ2h0LXNwaW4gMTMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDthbmltYXRpb246cmlnaHQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RofUAtd2Via2l0LWtleWZyYW1lcyBsZWZ0LXNwaW57ZnJvbXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTMwZGVnKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC01ZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTMwZGVnKX19QGtleWZyYW1lcyBsZWZ0LXNwaW57ZnJvbXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTMwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDEzMGRlZyl9NTAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxMzBkZWcpfX1ALXdlYmtpdC1rZXlmcmFtZXMgcmlnaHQtc3Bpbntmcm9tey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTMwZGVnKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTMwZGVnKX19QGtleWZyYW1lcyByaWdodC1zcGlue2Zyb217LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTEzMGRlZyl9NTAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTMwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC0xMzBkZWcpfX0jc3Bpbm5lckNvbnRhaW5lci5jb29sZG93bnstd2Via2l0LWFuaW1hdGlvbjpjb250YWluZXItcm90YXRlIDE1NjhtcyBsaW5lYXIgaW5maW5pdGUsZmFkZS1vdXQgNDAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTthbmltYXRpb246Y29udGFpbmVyLXJvdGF0ZSAxNTY4bXMgbGluZWFyIGluZmluaXRlLGZhZGUtb3V0IDQwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSl9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGUtb3V0e2Zyb217b3BhY2l0eToxfXRve29wYWNpdHk6MH19QGtleWZyYW1lcyBmYWRlLW91dHtmcm9te29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fS5zbGlkZXJ7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjQwMHB4O3dpZHRoOjEwMCV9LnNsaWRlci5mdWxsc2NyZWVue2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjB9LnNsaWRlci5mdWxsc2NyZWVuIHVsLnNsaWRlc3toZWlnaHQ6MTAwJX0uc2xpZGVyLmZ1bGxzY3JlZW4gdWwuaW5kaWNhdG9yc3t6LWluZGV4OjI7Ym90dG9tOjMwcHh9LnNsaWRlciAuc2xpZGVze2JhY2tncm91bmQtY29sb3I6IzllOWU5ZTttYXJnaW46MDtoZWlnaHQ6NDAwcHh9LnNsaWRlciAuc2xpZGVzIGxpe29wYWNpdHk6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7ei1pbmRleDoxO3dpZHRoOjEwMCU7aGVpZ2h0OmluaGVyaXQ7b3ZlcmZsb3c6aGlkZGVufS5zbGlkZXIgLnNsaWRlcyBsaSBpbWd7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXJ9LnNsaWRlciAuc2xpZGVzIGxpIC5jYXB0aW9ue2NvbG9yOiNmZmY7cG9zaXRpb246YWJzb2x1dGU7dG9wOjE1JTtsZWZ0OjE1JTt3aWR0aDo3MCU7b3BhY2l0eTowfS5zbGlkZXIgLnNsaWRlcyBsaSAuY2FwdGlvbiBwe2NvbG9yOiNlMGUwZTB9LnNsaWRlciAuc2xpZGVzIGxpLmFjdGl2ZXt6LWluZGV4OjJ9LnNsaWRlciAuaW5kaWNhdG9yc3twb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDttYXJnaW46MH0uc2xpZGVyIC5pbmRpY2F0b3JzIC5pbmRpY2F0b3ItaXRlbXtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MTZweDt3aWR0aDoxNnB4O21hcmdpbjowIDEycHg7YmFja2dyb3VuZC1jb2xvcjojZTBlMGUwOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzO2JvcmRlci1yYWRpdXM6NTAlfS5zbGlkZXIgLmluZGljYXRvcnMgLmluZGljYXRvci1pdGVtLmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiM0Q0FGNTB9LmNhcm91c2Vse292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDo0MDBweDstd2Via2l0LXBlcnNwZWN0aXZlOjUwMHB4O3BlcnNwZWN0aXZlOjUwMHB4Oy13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkO3RyYW5zZm9ybS1zdHlsZTpwcmVzZXJ2ZS0zZDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCUgNTAlO3RyYW5zZm9ybS1vcmlnaW46MCUgNTAlfS5jYXJvdXNlbC5jYXJvdXNlbC1zbGlkZXJ7dG9wOjA7bGVmdDowfS5jYXJvdXNlbC5jYXJvdXNlbC1zbGlkZXIgLmNhcm91c2VsLWZpeGVkLWl0ZW17cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjIwcHg7ei1pbmRleDoxfS5jYXJvdXNlbC5jYXJvdXNlbC1zbGlkZXIgLmNhcm91c2VsLWZpeGVkLWl0ZW0ud2l0aC1pbmRpY2F0b3Jze2JvdHRvbTo2OHB4fS5jYXJvdXNlbC5jYXJvdXNlbC1zbGlkZXIgLmNhcm91c2VsLWl0ZW17d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjQwMHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MH0uY2Fyb3VzZWwuY2Fyb3VzZWwtc2xpZGVyIC5jYXJvdXNlbC1pdGVtIGgye2ZvbnQtc2l6ZToyNHB4O2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDozMnB4fS5jYXJvdXNlbC5jYXJvdXNlbC1zbGlkZXIgLmNhcm91c2VsLWl0ZW0gcHtmb250LXNpemU6MTVweH0uY2Fyb3VzZWwgLmNhcm91c2VsLWl0ZW17dmlzaWJpbGl0eTpoaWRkZW47d2lkdGg6MjAwcHg7aGVpZ2h0OjIwMHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MH0uY2Fyb3VzZWwgLmNhcm91c2VsLWl0ZW0+aW1ne3dpZHRoOjEwMCV9LmNhcm91c2VsIC5pbmRpY2F0b3Jze3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO21hcmdpbjowfS5jYXJvdXNlbCAuaW5kaWNhdG9ycyAuaW5kaWNhdG9yLWl0ZW17ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjhweDt3aWR0aDo4cHg7bWFyZ2luOjI0cHggNHB4O2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjUpOy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zczt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzO2JvcmRlci1yYWRpdXM6NTAlfS5jYXJvdXNlbCAuaW5kaWNhdG9ycyAuaW5kaWNhdG9yLWl0ZW0uYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ZmZn0uY2Fyb3VzZWwuc2Nyb2xsaW5nIC5jYXJvdXNlbC1pdGVtIC5tYXRlcmlhbGJveGVkLC5jYXJvdXNlbCAuY2Fyb3VzZWwtaXRlbTpub3QoLmFjdGl2ZSkgLm1hdGVyaWFsYm94ZWR7cG9pbnRlci1ldmVudHM6bm9uZX0udGFwLXRhcmdldC13cmFwcGVye3dpZHRoOjgwMHB4O2hlaWdodDo4MDBweDtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDA7dmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgMHMgLjNzO3RyYW5zaXRpb246dmlzaWJpbGl0eSAwcyAuM3N9LnRhcC10YXJnZXQtd3JhcHBlci5vcGVue3Zpc2liaWxpdHk6dmlzaWJsZTstd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAwczt0cmFuc2l0aW9uOnZpc2liaWxpdHkgMHN9LnRhcC10YXJnZXQtd3JhcHBlci5vcGVuIC50YXAtdGFyZ2V0ey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5Oi45NTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSwtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTt0cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSksLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSksb3BhY2l0eSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSxvcGFjaXR5IDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpLC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpfS50YXAtdGFyZ2V0LXdyYXBwZXIub3BlbiAudGFwLXRhcmdldC13YXZlOjpiZWZvcmV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfS50YXAtdGFyZ2V0LXdyYXBwZXIub3BlbiAudGFwLXRhcmdldC13YXZlOjphZnRlcnt2aXNpYmlsaXR5OnZpc2libGU7LXdlYmtpdC1hbmltYXRpb246cHVsc2UtYW5pbWF0aW9uIDFzIGN1YmljLWJlemllcigwLjI0LCAwLCAwLjM4LCAxKSBpbmZpbml0ZTthbmltYXRpb246cHVsc2UtYW5pbWF0aW9uIDFzIGN1YmljLWJlemllcigwLjI0LCAwLCAwLjM4LCAxKSBpbmZpbml0ZTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuM3MsCnZpc2liaWxpdHkgMHMgMXMsCi13ZWJraXQtdHJhbnNmb3JtIC4zczt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzLAp2aXNpYmlsaXR5IDBzIDFzLAotd2Via2l0LXRyYW5zZm9ybSAuM3M7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcywKdHJhbnNmb3JtIC4zcywKdmlzaWJpbGl0eSAwcyAxczt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzLAp0cmFuc2Zvcm0gLjNzLAp2aXNpYmlsaXR5IDBzIDFzLAotd2Via2l0LXRyYW5zZm9ybSAuM3N9LnRhcC10YXJnZXR7cG9zaXRpb246YWJzb2x1dGU7Zm9udC1zaXplOjFyZW07Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjojZWU2ZTczOy13ZWJraXQtYm94LXNoYWRvdzowIDIwcHggMjBweCAwIHJnYmEoMCwwLDAsMC4xNCksMCAxMHB4IDUwcHggMCByZ2JhKDAsMCwwLDAuMTIpLDAgMzBweCAxMHB4IC0yMHB4IHJnYmEoMCwwLDAsMC4yKTtib3gtc2hhZG93OjAgMjBweCAyMHB4IDAgcmdiYSgwLDAsMCwwLjE0KSwwIDEwcHggNTBweCAwIHJnYmEoMCwwLDAsMC4xMiksMCAzMHB4IDEwcHggLTIwcHggcmdiYSgwLDAsMCwwLjIpO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO3RyYW5zZm9ybTpzY2FsZSgwKTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSwtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTt0cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSksLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSksb3BhY2l0eSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSxvcGFjaXR5IDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpLC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpfS50YXAtdGFyZ2V0LWNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTp0YWJsZS1jZWxsfS50YXAtdGFyZ2V0LXdhdmV7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyLXJhZGl1czo1MCU7ei1pbmRleDoxMDAwMX0udGFwLXRhcmdldC13YXZlOjpiZWZvcmUsLnRhcC10YXJnZXQtd2F2ZTo6YWZ0ZXJ7Y29udGVudDonJztkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmfS50YXAtdGFyZ2V0LXdhdmU6OmJlZm9yZXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTt0cmFuc2Zvcm06c2NhbGUoMCk7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zczt0cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zczt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3M7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzLCAtd2Via2l0LXRyYW5zZm9ybSAuM3N9LnRhcC10YXJnZXQtd2F2ZTo6YWZ0ZXJ7dmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjNzLAp2aXNpYmlsaXR5IDBzLAotd2Via2l0LXRyYW5zZm9ybSAuM3M7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcywKdmlzaWJpbGl0eSAwcywKLXdlYmtpdC10cmFuc2Zvcm0gLjNzO3RyYW5zaXRpb246b3BhY2l0eSAuM3MsCnRyYW5zZm9ybSAuM3MsCnZpc2liaWxpdHkgMHM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcywKdHJhbnNmb3JtIC4zcywKdmlzaWJpbGl0eSAwcywKLXdlYmtpdC10cmFuc2Zvcm0gLjNzO3otaW5kZXg6LTF9LnRhcC10YXJnZXQtb3JpZ2lue3RvcDo1MCU7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7ei1pbmRleDoxMDAwMjtwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50fS50YXAtdGFyZ2V0LW9yaWdpbjpub3QoLmJ0bik6bm90KC5idG4tbGFyZ2UpOm5vdCguYnRuLXNtYWxsKSwudGFwLXRhcmdldC1vcmlnaW46bm90KC5idG4pOm5vdCguYnRuLWxhcmdlKTpub3QoLmJ0bi1zbWFsbCk6aG92ZXJ7YmFja2dyb3VuZDpub25lfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpey50YXAtdGFyZ2V0LC50YXAtdGFyZ2V0LXdyYXBwZXJ7d2lkdGg6NjAwcHg7aGVpZ2h0OjYwMHB4fX0ucHVsc2V7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjpyZWxhdGl2ZX0ucHVsc2U6OmJlZm9yZXtjb250ZW50OicnO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0b3A6MDtsZWZ0OjA7YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O2JvcmRlci1yYWRpdXM6aW5oZXJpdDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuM3MsIC13ZWJraXQtdHJhbnNmb3JtIC4zczt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzLCAtd2Via2l0LXRyYW5zZm9ybSAuM3M7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcywgdHJhbnNmb3JtIC4zczt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzLCB0cmFuc2Zvcm0gLjNzLCAtd2Via2l0LXRyYW5zZm9ybSAuM3M7LXdlYmtpdC1hbmltYXRpb246cHVsc2UtYW5pbWF0aW9uIDFzIGN1YmljLWJlemllcigwLjI0LCAwLCAwLjM4LCAxKSBpbmZpbml0ZTthbmltYXRpb246cHVsc2UtYW5pbWF0aW9uIDFzIGN1YmljLWJlemllcigwLjI0LCAwLCAwLjM4LCAxKSBpbmZpbml0ZTt6LWluZGV4Oi0xfUAtd2Via2l0LWtleWZyYW1lcyBwdWxzZS1hbmltYXRpb257MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX01MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuNSk7dHJhbnNmb3JtOnNjYWxlKDEuNSl9MTAwJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS41KTt0cmFuc2Zvcm06c2NhbGUoMS41KX19QGtleWZyYW1lcyBwdWxzZS1hbmltYXRpb257MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX01MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuNSk7dHJhbnNmb3JtOnNjYWxlKDEuNSl9MTAwJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS41KTt0cmFuc2Zvcm06c2NhbGUoMS41KX19LmRhdGVwaWNrZXItbW9kYWx7bWF4LXdpZHRoOjMyNXB4O21pbi13aWR0aDozMDBweDttYXgtaGVpZ2h0Om5vbmV9LmRhdGVwaWNrZXItY29udGFpbmVyLm1vZGFsLWNvbnRlbnR7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nOjB9LmRhdGVwaWNrZXItY29udHJvbHN7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47d2lkdGg6MjgwcHg7bWFyZ2luOjAgYXV0b30uZGF0ZXBpY2tlci1jb250cm9scyAuc2VsZWN0cy1jb250YWluZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uZGF0ZXBpY2tlci1jb250cm9scyAuc2VsZWN0LXdyYXBwZXIgaW5wdXR7Ym9yZGVyLWJvdHRvbTpub25lO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowfS5kYXRlcGlja2VyLWNvbnRyb2xzIC5zZWxlY3Qtd3JhcHBlciBpbnB1dDpmb2N1c3tib3JkZXItYm90dG9tOm5vbmV9LmRhdGVwaWNrZXItY29udHJvbHMgLnNlbGVjdC13cmFwcGVyIC5jYXJldHtkaXNwbGF5Om5vbmV9LmRhdGVwaWNrZXItY29udHJvbHMgLnNlbGVjdC15ZWFyIGlucHV0e3dpZHRoOjUwcHh9LmRhdGVwaWNrZXItY29udHJvbHMgLnNlbGVjdC1tb250aCBpbnB1dHt3aWR0aDo3MHB4fS5tb250aC1wcmV2LC5tb250aC1uZXh0e21hcmdpbi10b3A6NHB4O2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmV9LmRhdGVwaWNrZXItZGF0ZS1kaXNwbGF5ey13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MSBhdXRvOy1tcy1mbGV4OjEgYXV0bztmbGV4OjEgYXV0bztiYWNrZ3JvdW5kLWNvbG9yOiMyNmE2OWE7Y29sb3I6I2ZmZjtwYWRkaW5nOjIwcHggMjJweDtmb250LXdlaWdodDo1MDB9LmRhdGVwaWNrZXItZGF0ZS1kaXNwbGF5IC55ZWFyLXRleHR7ZGlzcGxheTpibG9jaztmb250LXNpemU6MS41cmVtO2xpbmUtaGVpZ2h0OjI1cHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjcpfS5kYXRlcGlja2VyLWRhdGUtZGlzcGxheSAuZGF0ZS10ZXh0e2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjIuOHJlbTtsaW5lLWhlaWdodDo0N3B4O2ZvbnQtd2VpZ2h0OjUwMH0uZGF0ZXBpY2tlci1jYWxlbmRhci1jb250YWluZXJ7LXdlYmtpdC1ib3gtZmxleDoyLjU7LXdlYmtpdC1mbGV4OjIuNSBhdXRvOy1tcy1mbGV4OjIuNSBhdXRvO2ZsZXg6Mi41IGF1dG99LmRhdGVwaWNrZXItdGFibGV7d2lkdGg6MjgwcHg7Zm9udC1zaXplOjFyZW07bWFyZ2luOjAgYXV0b30uZGF0ZXBpY2tlci10YWJsZSB0aGVhZHtib3JkZXItYm90dG9tOm5vbmV9LmRhdGVwaWNrZXItdGFibGUgdGh7cGFkZGluZzoxMHB4IDVweDt0ZXh0LWFsaWduOmNlbnRlcn0uZGF0ZXBpY2tlci10YWJsZSB0cntib3JkZXI6bm9uZX0uZGF0ZXBpY2tlci10YWJsZSBhYmJye3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiM5OTl9LmRhdGVwaWNrZXItdGFibGUgdGR7Ym9yZGVyLXJhZGl1czo1MCU7cGFkZGluZzowfS5kYXRlcGlja2VyLXRhYmxlIHRkLmlzLXRvZGF5e2NvbG9yOiMyNmE2OWF9LmRhdGVwaWNrZXItdGFibGUgdGQuaXMtc2VsZWN0ZWR7YmFja2dyb3VuZC1jb2xvcjojMjZhNjlhO2NvbG9yOiNmZmZ9LmRhdGVwaWNrZXItdGFibGUgdGQuaXMtb3V0c2lkZS1jdXJyZW50LW1vbnRoLC5kYXRlcGlja2VyLXRhYmxlIHRkLmlzLWRpc2FibGVke2NvbG9yOnJnYmEoMCwwLDAsMC4zKTtwb2ludGVyLWV2ZW50czpub25lfS5kYXRlcGlja2VyLWRheS1idXR0b257YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtsaW5lLWhlaWdodDozOHB4O2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOjUwJTtwYWRkaW5nOjAgNXB4O2N1cnNvcjpwb2ludGVyO2NvbG9yOmluaGVyaXR9LmRhdGVwaWNrZXItZGF5LWJ1dHRvbjpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNDMsMTYxLDE1MCwwLjI1KX0uZGF0ZXBpY2tlci1mb290ZXJ7d2lkdGg6MjgwcHg7bWFyZ2luOjAgYXV0bztwYWRkaW5nLWJvdHRvbTo1cHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmRhdGVwaWNrZXItY2FuY2VsLC5kYXRlcGlja2VyLWNsZWFyLC5kYXRlcGlja2VyLXRvZGF5LC5kYXRlcGlja2VyLWRvbmV7Y29sb3I6IzI2YTY5YTtwYWRkaW5nOjAgMXJlbX0uZGF0ZXBpY2tlci1jbGVhcntjb2xvcjojRjQ0MzM2fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAxcHgpey5kYXRlcGlja2VyLW1vZGFse21heC13aWR0aDo2MjVweH0uZGF0ZXBpY2tlci1jb250YWluZXIubW9kYWwtY29udGVudHstd2Via2l0LWJveC1vcmllbnQ6aG9yaXpvbnRhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93fS5kYXRlcGlja2VyLWRhdGUtZGlzcGxheXstd2Via2l0LWJveC1mbGV4OjA7LXdlYmtpdC1mbGV4OjAgMSAyNzBweDstbXMtZmxleDowIDEgMjcwcHg7ZmxleDowIDEgMjcwcHh9LmRhdGVwaWNrZXItY29udHJvbHMsLmRhdGVwaWNrZXItdGFibGUsLmRhdGVwaWNrZXItZm9vdGVye3dpZHRoOjMyMHB4fS5kYXRlcGlja2VyLWRheS1idXR0b257bGluZS1oZWlnaHQ6NDRweH19LnRpbWVwaWNrZXItbW9kYWx7bWF4LXdpZHRoOjMyNXB4O21heC1oZWlnaHQ6bm9uZX0udGltZXBpY2tlci1jb250YWluZXIubW9kYWwtY29udGVudHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6MH0udGV4dC1wcmltYXJ5e2NvbG9yOiNmZmZ9LnRpbWVwaWNrZXItZGlnaXRhbC1kaXNwbGF5ey13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MSBhdXRvOy1tcy1mbGV4OjEgYXV0bztmbGV4OjEgYXV0bztiYWNrZ3JvdW5kLWNvbG9yOiMyNmE2OWE7cGFkZGluZzoxMHB4O2ZvbnQtd2VpZ2h0OjMwMH0udGltZXBpY2tlci10ZXh0LWNvbnRhaW5lcntmb250LXNpemU6NHJlbTtmb250LXdlaWdodDpib2xkO3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC42KTtmb250LXdlaWdodDo0MDA7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS50aW1lcGlja2VyLXNwYW4taG91cnMsLnRpbWVwaWNrZXItc3Bhbi1taW51dGVzLC50aW1lcGlja2VyLXNwYW4tYW0tcG0gZGl2e2N1cnNvcjpwb2ludGVyfS50aW1lcGlja2VyLXNwYW4taG91cnN7bWFyZ2luLXJpZ2h0OjNweH0udGltZXBpY2tlci1zcGFuLW1pbnV0ZXN7bWFyZ2luLWxlZnQ6M3B4fS50aW1lcGlja2VyLWRpc3BsYXktYW0tcG17Zm9udC1zaXplOjEuM3JlbTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxcmVtO2JvdHRvbToxcmVtO2ZvbnQtd2VpZ2h0OjQwMH0udGltZXBpY2tlci1hbmFsb2ctZGlzcGxheXstd2Via2l0LWJveC1mbGV4OjIuNTstd2Via2l0LWZsZXg6Mi41IGF1dG87LW1zLWZsZXg6Mi41IGF1dG87ZmxleDoyLjUgYXV0b30udGltZXBpY2tlci1wbGF0ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6MjcwcHg7aGVpZ2h0OjI3MHB4O292ZXJmbG93OnZpc2libGU7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOmF1dG87bWFyZ2luLXRvcDoyNXB4O21hcmdpbi1ib3R0b206NXB4Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0udGltZXBpY2tlci1jYW52YXMsLnRpbWVwaWNrZXItZGlhbHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MH0udGltZXBpY2tlci1taW51dGVze3Zpc2liaWxpdHk6aGlkZGVufS50aW1lcGlja2VyLXRpY2t7Ym9yZGVyLXJhZGl1czo1MCU7Y29sb3I6cmdiYSgwLDAsMCwwLjg3KTtsaW5lLWhlaWdodDo0MHB4O3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7cG9zaXRpb246YWJzb2x1dGU7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjE1cHh9LnRpbWVwaWNrZXItdGljay5hY3RpdmUsLnRpbWVwaWNrZXItdGljazpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMzgsMTY2LDE1NCwwLjI1KX0udGltZXBpY2tlci1kaWFsey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDM1MG1zLCAtd2Via2l0LXRyYW5zZm9ybSAzNTBtczt0cmFuc2l0aW9uOm9wYWNpdHkgMzUwbXMsIC13ZWJraXQtdHJhbnNmb3JtIDM1MG1zO3RyYW5zaXRpb246dHJhbnNmb3JtIDM1MG1zLCBvcGFjaXR5IDM1MG1zO3RyYW5zaXRpb246dHJhbnNmb3JtIDM1MG1zLCBvcGFjaXR5IDM1MG1zLCAtd2Via2l0LXRyYW5zZm9ybSAzNTBtc30udGltZXBpY2tlci1kaWFsLW91dHtvcGFjaXR5OjB9LnRpbWVwaWNrZXItZGlhbC1vdXQudGltZXBpY2tlci1ob3Vyc3std2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjEsIDEuMSk7dHJhbnNmb3JtOnNjYWxlKDEuMSwgMS4xKX0udGltZXBpY2tlci1kaWFsLW91dC50aW1lcGlja2VyLW1pbnV0ZXN7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC44LCAwLjgpO3RyYW5zZm9ybTpzY2FsZSgwLjgsIDAuOCl9LnRpbWVwaWNrZXItY2FudmFzey13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDE3NW1zO3RyYW5zaXRpb246b3BhY2l0eSAxNzVtc30udGltZXBpY2tlci1jYW52YXMgbGluZXtzdHJva2U6IzI2YTY5YTtzdHJva2Utd2lkdGg6NDtzdHJva2UtbGluZWNhcDpyb3VuZH0udGltZXBpY2tlci1jYW52YXMtb3V0e29wYWNpdHk6MC4yNX0udGltZXBpY2tlci1jYW52YXMtYmVhcmluZ3tzdHJva2U6bm9uZTtmaWxsOiMyNmE2OWF9LnRpbWVwaWNrZXItY2FudmFzLWJne3N0cm9rZTpub25lO2ZpbGw6IzI2YTY5YX0udGltZXBpY2tlci1mb290ZXJ7bWFyZ2luOjAgYXV0bztwYWRkaW5nOjVweCAxcmVtO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS50aW1lcGlja2VyLWNsZWFye2NvbG9yOiNGNDQzMzZ9LnRpbWVwaWNrZXItY2xvc2V7Y29sb3I6IzI2YTY5YX0udGltZXBpY2tlci1jbGVhciwudGltZXBpY2tlci1jbG9zZXtwYWRkaW5nOjAgMjBweH1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMXB4KXsudGltZXBpY2tlci1tb2RhbHttYXgtd2lkdGg6NjAwcHh9LnRpbWVwaWNrZXItY29udGFpbmVyLm1vZGFsLWNvbnRlbnR7LXdlYmtpdC1ib3gtb3JpZW50Omhvcml6b250YWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOnJvdzstbXMtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvd30udGltZXBpY2tlci10ZXh0LWNvbnRhaW5lcnt0b3A6MzIlfS50aW1lcGlja2VyLWRpc3BsYXktYW0tcG17cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6YXV0bztib3R0b206YXV0bzt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tdG9wOjEuMnJlbX19Cjwvc3R5bGU+CjxzY3JpcHQ+Ci8qIQogKiBNYXRlcmlhbGl6ZSB2MS4wLjAgKGh0dHA6Ly9tYXRlcmlhbGl6ZWNzcy5jb20pCiAqIENvcHlyaWdodCAyMDE0LTIwMTcgTWF0ZXJpYWxpemUKICogTUlUIExpY2Vuc2UgKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9Eb2dmYWxvL21hdGVyaWFsaXplL21hc3Rlci9MSUNFTlNFKQogKi8KdmFyIF9nZXQ9ZnVuY3Rpb24gdChlLGksbil7bnVsbD09PWUmJihlPUZ1bmN0aW9uLnByb3RvdHlwZSk7dmFyIHM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGkpO2lmKHZvaWQgMD09PXMpe3ZhciBvPU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtyZXR1cm4gbnVsbD09PW8/dm9pZCAwOnQobyxpLG4pfWlmKCJ2YWx1ZSJpbiBzKXJldHVybiBzLnZhbHVlO3ZhciBhPXMuZ2V0O3JldHVybiB2b2lkIDAhPT1hP2EuY2FsbChuKTp2b2lkIDB9LF9jcmVhdGVDbGFzcz1mdW5jdGlvbigpe2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG49ZVtpXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG4ua2V5LG4pfX1yZXR1cm4gZnVuY3Rpb24odCxlLGkpe3JldHVybiBlJiZuKHQucHJvdG90eXBlLGUpLGkmJm4odCxpKSx0fX0oKTtmdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0LGUpe2lmKCF0KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIWV8fCJvYmplY3QiIT10eXBlb2YgZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGU/dDplfWZ1bmN0aW9uIF9pbmhlcml0cyh0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICIrdHlwZW9mIGUpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLGUmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKHQsZSk6dC5fX3Byb3RvX189ZSl9ZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9d2luZG93LmNhc2g9ZnVuY3Rpb24oKXt2YXIgaSxvPWRvY3VtZW50LGE9d2luZG93LHQ9QXJyYXkucHJvdG90eXBlLHI9dC5zbGljZSxuPXQuZmlsdGVyLHM9dC5wdXNoLGU9ZnVuY3Rpb24oKXt9LGg9ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0PT10eXBlb2YgZSYmdC5jYWxsfSxkPWZ1bmN0aW9uKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdH0sbD0vXiNbXHctXSokLyx1PS9eXC5bXHctXSokLyxjPS88Lis+LyxwPS9eXHcrJC87ZnVuY3Rpb24gdih0LGUpe2U9ZXx8bzt2YXIgaT11LnRlc3QodCk/ZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHQuc2xpY2UoMSkpOnAudGVzdCh0KT9lLmdldEVsZW1lbnRzQnlUYWdOYW1lKHQpOmUucXVlcnlTZWxlY3RvckFsbCh0KTtyZXR1cm4gaX1mdW5jdGlvbiBmKHQpe2lmKCFpKXt2YXIgZT0oaT1vLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudChudWxsKSkuY3JlYXRlRWxlbWVudCgiYmFzZSIpO2UuaHJlZj1vLmxvY2F0aW9uLmhyZWYsaS5oZWFkLmFwcGVuZENoaWxkKGUpfXJldHVybiBpLmJvZHkuaW5uZXJIVE1MPXQsaS5ib2R5LmNoaWxkTm9kZXN9ZnVuY3Rpb24gbSh0KXsibG9hZGluZyIhPT1vLnJlYWR5U3RhdGU/dCgpOm8uYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsdCl9ZnVuY3Rpb24gZyh0LGUpe2lmKCF0KXJldHVybiB0aGlzO2lmKHQuY2FzaCYmdCE9PWEpcmV0dXJuIHQ7dmFyIGksbj10LHM9MDtpZihkKHQpKW49bC50ZXN0KHQpP28uZ2V0RWxlbWVudEJ5SWQodC5zbGljZSgxKSk6Yy50ZXN0KHQpP2YodCk6dih0LGUpO2Vsc2UgaWYoaCh0KSlyZXR1cm4gbSh0KSx0aGlzO2lmKCFuKXJldHVybiB0aGlzO2lmKG4ubm9kZVR5cGV8fG49PT1hKXRoaXNbMF09bix0aGlzLmxlbmd0aD0xO2Vsc2UgZm9yKGk9dGhpcy5sZW5ndGg9bi5sZW5ndGg7czxpO3MrKyl0aGlzW3NdPW5bc107cmV0dXJuIHRoaXN9ZnVuY3Rpb24gXyh0LGUpe3JldHVybiBuZXcgZyh0LGUpfXZhciB5PV8uZm49Xy5wcm90b3R5cGU9Zy5wcm90b3R5cGU9e2Nhc2g6ITAsbGVuZ3RoOjAscHVzaDpzLHNwbGljZTp0LnNwbGljZSxtYXA6dC5tYXAsaW5pdDpnfTtmdW5jdGlvbiBrKHQsZSl7Zm9yKHZhciBpPXQubGVuZ3RoLG49MDtuPGkmJiExIT09ZS5jYWxsKHRbbl0sdFtuXSxuLHQpO24rKyk7fWZ1bmN0aW9uIGIodCxlKXt2YXIgaT10JiYodC5tYXRjaGVzfHx0LndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8dC5tb3pNYXRjaGVzU2VsZWN0b3J8fHQubXNNYXRjaGVzU2VsZWN0b3J8fHQub01hdGNoZXNTZWxlY3Rvcik7cmV0dXJuISFpJiZpLmNhbGwodCxlKX1mdW5jdGlvbiB3KGUpe3JldHVybiBkKGUpP2I6ZS5jYXNoP2Z1bmN0aW9uKHQpe3JldHVybiBlLmlzKHQpfTpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZX19ZnVuY3Rpb24gQyh0KXtyZXR1cm4gXyhyLmNhbGwodCkuZmlsdGVyKGZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gaS5pbmRleE9mKHQpPT09ZX0pKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoeSwiY29uc3RydWN0b3IiLHt2YWx1ZTpffSksXy5wYXJzZUhUTUw9ZixfLm5vb3A9ZSxfLmlzRnVuY3Rpb249aCxfLmlzU3RyaW5nPWQsXy5leHRlbmQ9eS5leHRlbmQ9ZnVuY3Rpb24odCl7dD10fHx7fTt2YXIgZT1yLmNhbGwoYXJndW1lbnRzKSxpPWUubGVuZ3RoLG49MTtmb3IoMT09PWUubGVuZ3RoJiYodD10aGlzLG49MCk7bjxpO24rKylpZihlW25dKWZvcih2YXIgcyBpbiBlW25dKWVbbl0uaGFzT3duUHJvcGVydHkocykmJih0W3NdPWVbbl1bc10pO3JldHVybiB0fSxfLmV4dGVuZCh7bWVyZ2U6ZnVuY3Rpb24odCxlKXtmb3IodmFyIGk9K2UubGVuZ3RoLG49dC5sZW5ndGgscz0wO3M8aTtuKysscysrKXRbbl09ZVtzXTtyZXR1cm4gdC5sZW5ndGg9bix0fSxlYWNoOmssbWF0Y2hlczpiLHVuaXF1ZTpDLGlzQXJyYXk6QXJyYXkuaXNBcnJheSxpc051bWVyaWM6ZnVuY3Rpb24odCl7cmV0dXJuIWlzTmFOKHBhcnNlRmxvYXQodCkpJiZpc0Zpbml0ZSh0KX19KTt2YXIgRT1fLnVpZD0iX2Nhc2giK0RhdGUubm93KCk7ZnVuY3Rpb24gTSh0KXtyZXR1cm4gdFtFXT10W0VdfHx7fX1mdW5jdGlvbiBPKHQsZSxpKXtyZXR1cm4gTSh0KVtlXT1pfWZ1bmN0aW9uIHgodCxlKXt2YXIgaT1NKHQpO3JldHVybiB2b2lkIDA9PT1pW2VdJiYoaVtlXT10LmRhdGFzZXQ/dC5kYXRhc2V0W2VdOl8odCkuYXR0cigiZGF0YS0iK2UpKSxpW2VdfXkuZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGUsaSl7aWYoZChlKSlyZXR1cm4gdm9pZCAwPT09aT94KHRoaXNbMF0sZSk6dGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBPKHQsZSxpKX0pO2Zvcih2YXIgdCBpbiBlKXRoaXMuZGF0YSh0LGVbdF0pO3JldHVybiB0aGlzfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKHMpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGk9cyx2b2lkKChuPU0oZT10KSk/ZGVsZXRlIG5baV06ZS5kYXRhc2V0P2RlbGV0ZSBlLmRhdGFzZXRbaV06XyhlKS5yZW1vdmVBdHRyKCJkYXRhLSIrbmFtZSkpO3ZhciBlLGksbn0pfX0pO3ZhciBMPS9cUysvZztmdW5jdGlvbiBUKHQpe3JldHVybiBkKHQpJiZ0Lm1hdGNoKEwpfWZ1bmN0aW9uICQodCxlKXtyZXR1cm4gdC5jbGFzc0xpc3Q/dC5jbGFzc0xpc3QuY29udGFpbnMoZSk6bmV3IFJlZ0V4cCgiKF58ICkiK2UrIiggfCQpIiwiZ2kiKS50ZXN0KHQuY2xhc3NOYW1lKX1mdW5jdGlvbiBCKHQsZSxpKXt0LmNsYXNzTGlzdD90LmNsYXNzTGlzdC5hZGQoZSk6aS5pbmRleE9mKCIgIitlKyIgIikmJih0LmNsYXNzTmFtZSs9IiAiK2UpfWZ1bmN0aW9uIEQodCxlKXt0LmNsYXNzTGlzdD90LmNsYXNzTGlzdC5yZW1vdmUoZSk6dC5jbGFzc05hbWU9dC5jbGFzc05hbWUucmVwbGFjZShlLCIiKX15LmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIG49VCh0KTtyZXR1cm4gbj90aGlzLmVhY2goZnVuY3Rpb24oZSl7dmFyIGk9IiAiK2UuY2xhc3NOYW1lKyIgIjtrKG4sZnVuY3Rpb24odCl7QihlLHQsaSl9KX0pOnRoaXN9LGF0dHI6ZnVuY3Rpb24oZSxpKXtpZihlKXtpZihkKGUpKXJldHVybiB2b2lkIDA9PT1pP3RoaXNbMF0/dGhpc1swXS5nZXRBdHRyaWJ1dGU/dGhpc1swXS5nZXRBdHRyaWJ1dGUoZSk6dGhpc1swXVtlXTp2b2lkIDA6dGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3Quc2V0QXR0cmlidXRlP3Quc2V0QXR0cmlidXRlKGUsaSk6dFtlXT1pfSk7Zm9yKHZhciB0IGluIGUpdGhpcy5hdHRyKHQsZVt0XSk7cmV0dXJuIHRoaXN9fSxoYXNDbGFzczpmdW5jdGlvbih0KXt2YXIgZT0hMSxpPVQodCk7cmV0dXJuIGkmJmkubGVuZ3RoJiZ0aGlzLmVhY2goZnVuY3Rpb24odCl7cmV0dXJuIShlPSQodCxpWzBdKSl9KSxlfSxwcm9wOmZ1bmN0aW9uKGUsaSl7aWYoZChlKSlyZXR1cm4gdm9pZCAwPT09aT90aGlzWzBdW2VdOnRoaXMuZWFjaChmdW5jdGlvbih0KXt0W2VdPWl9KTtmb3IodmFyIHQgaW4gZSl0aGlzLnByb3AodCxlW3RdKTtyZXR1cm4gdGhpc30scmVtb3ZlQXR0cjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3QucmVtb3ZlQXR0cmlidXRlP3QucmVtb3ZlQXR0cmlidXRlKGUpOmRlbGV0ZSB0W2VdfSl9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLmF0dHIoImNsYXNzIiwiIik7dmFyIGk9VCh0KTtyZXR1cm4gaT90aGlzLmVhY2goZnVuY3Rpb24oZSl7ayhpLGZ1bmN0aW9uKHQpe0QoZSx0KX0pfSk6dGhpc30scmVtb3ZlUHJvcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe2RlbGV0ZSB0W2VdfSl9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwIT09ZSlyZXR1cm4gdGhpc1tlPyJhZGRDbGFzcyI6InJlbW92ZUNsYXNzIl0odCk7dmFyIG49VCh0KTtyZXR1cm4gbj90aGlzLmVhY2goZnVuY3Rpb24oZSl7dmFyIGk9IiAiK2UuY2xhc3NOYW1lKyIgIjtrKG4sZnVuY3Rpb24odCl7JChlLHQpP0QoZSx0KTpCKGUsdCxpKX0pfSk6dGhpc319KSx5LmV4dGVuZCh7YWRkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEMoXy5tZXJnZSh0aGlzLF8odCxlKSkpfSxlYWNoOmZ1bmN0aW9uKHQpe3JldHVybiBrKHRoaXMsdCksdGhpc30sZXE6ZnVuY3Rpb24odCl7cmV0dXJuIF8odGhpcy5nZXQodCkpfSxmaWx0ZXI6ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuIHRoaXM7dmFyIGk9aChlKT9lOncoZSk7cmV0dXJuIF8obi5jYWxsKHRoaXMsZnVuY3Rpb24odCl7cmV0dXJuIGkodCxlKX0pKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10P3IuY2FsbCh0aGlzKTp0PDA/dGhpc1t0K3RoaXMubGVuZ3RoXTp0aGlzW3RdfSxpbmRleDpmdW5jdGlvbih0KXt2YXIgZT10P18odClbMF06dGhpc1swXSxpPXQ/dGhpczpfKGUpLnBhcmVudCgpLmNoaWxkcmVuKCk7cmV0dXJuIHIuY2FsbChpKS5pbmRleE9mKGUpfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfX0pO3ZhciBTLEksQSxSLEgsUCxXPShIPS8oPzpeXHd8W0EtWl18XGJcdykvZyxQPS9bXHMtX10rL2csZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZShILGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMD09PWU/InRvTG93ZXJDYXNlIjoidG9VcHBlckNhc2UiXSgpfSkucmVwbGFjZShQLCIiKX0pLGo9KFM9e30sST1kb2N1bWVudCxBPUkuY3JlYXRlRWxlbWVudCgiZGl2IiksUj1BLnN0eWxlLGZ1bmN0aW9uKGUpe2lmKGU9VyhlKSxTW2VdKXJldHVybiBTW2VdO3ZhciB0PWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKSxpPShlKyIgIitbIndlYmtpdCIsIm1veiIsIm1zIiwibyJdLmpvaW4odCsiICIpK3QpLnNwbGl0KCIgIik7cmV0dXJuIGsoaSxmdW5jdGlvbih0KXtpZih0IGluIFIpcmV0dXJuIFNbdF09ZT1TW2VdPXQsITF9KSxTW2VdfSk7ZnVuY3Rpb24gRih0LGUpe3JldHVybiBwYXJzZUludChhLmdldENvbXB1dGVkU3R5bGUodFswXSxudWxsKVtlXSwxMCl8fDB9ZnVuY3Rpb24gcShlLGksdCl7dmFyIG4scz14KGUsIl9jYXNoRXZlbnRzIiksbz1zJiZzW2ldO28mJih0PyhlLnJlbW92ZUV2ZW50TGlzdGVuZXIoaSx0KSwwPD0obj1vLmluZGV4T2YodCkpJiZvLnNwbGljZShuLDEpKTooayhvLGZ1bmN0aW9uKHQpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihpLHQpfSksbz1bXSkpfWZ1bmN0aW9uIE4odCxlKXtyZXR1cm4iJiIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKyI9IitlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJTIwL2csIisiKX1mdW5jdGlvbiB6KHQpe3ZhciBlLGksbixzPXQudHlwZTtpZighcylyZXR1cm4gbnVsbDtzd2l0Y2gocy50b0xvd2VyQ2FzZSgpKXtjYXNlInNlbGVjdC1vbmUiOnJldHVybiAwPD0obj0oaT10KS5zZWxlY3RlZEluZGV4KT9pLm9wdGlvbnNbbl0udmFsdWU6bnVsbDtjYXNlInNlbGVjdC1tdWx0aXBsZSI6cmV0dXJuIGU9W10sayh0Lm9wdGlvbnMsZnVuY3Rpb24odCl7dC5zZWxlY3RlZCYmZS5wdXNoKHQudmFsdWUpfSksZS5sZW5ndGg/ZTpudWxsO2Nhc2UicmFkaW8iOmNhc2UiY2hlY2tib3giOnJldHVybiB0LmNoZWNrZWQ/dC52YWx1ZTpudWxsO2RlZmF1bHQ6cmV0dXJuIHQudmFsdWU/dC52YWx1ZTpudWxsfX1mdW5jdGlvbiBWKGUsaSxuKXt2YXIgdD1kKGkpO3R8fCFpLmxlbmd0aD9rKGUsdD9mdW5jdGlvbih0KXtyZXR1cm4gdC5pbnNlcnRBZGphY2VudEhUTUwobj8iYWZ0ZXJiZWdpbiI6ImJlZm9yZWVuZCIsaSl9OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxpKXtpZihpKXt2YXIgbj10LmNoaWxkTm9kZXNbMF07dC5pbnNlcnRCZWZvcmUoZSxuKX1lbHNlIHQuYXBwZW5kQ2hpbGQoZSl9KHQsMD09PWU/aTppLmNsb25lTm9kZSghMCksbil9KTprKGksZnVuY3Rpb24odCl7cmV0dXJuIFYoZSx0LG4pfSl9Xy5wcmVmaXhlZFByb3A9aixfLmNhbWVsQ2FzZT1XLHkuZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oZSxpKXtpZihkKGUpKXJldHVybiBlPWooZSksMTxhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdHlsZVtlXT1pfSk6YS5nZXRDb21wdXRlZFN0eWxlKHRoaXNbMF0pW2VdO2Zvcih2YXIgdCBpbiBlKXRoaXMuY3NzKHQsZVt0XSk7cmV0dXJuIHRoaXN9fSksayhbIldpZHRoIiwiSGVpZ2h0Il0sZnVuY3Rpb24oZSl7dmFyIHQ9ZS50b0xvd2VyQ2FzZSgpO3lbdF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1swXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVt0XX0seVsiaW5uZXIiK2VdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbMF1bImNsaWVudCIrZV19LHlbIm91dGVyIitlXT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpc1swXVsib2Zmc2V0IitlXSsodD9GKHRoaXMsIm1hcmdpbiIrKCJXaWR0aCI9PT1lPyJMZWZ0IjoiVG9wIikpK0YodGhpcywibWFyZ2luIisoIldpZHRoIj09PWU/IlJpZ2h0IjoiQm90dG9tIikpOjApfX0pLHkuZXh0ZW5kKHtvZmY6ZnVuY3Rpb24oZSxpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBxKHQsZSxpKX0pfSxvbjpmdW5jdGlvbihhLGkscixsKXt2YXIgbjtpZighZChhKSl7Zm9yKHZhciB0IGluIGEpdGhpcy5vbih0LGksYVt0XSk7cmV0dXJuIHRoaXN9cmV0dXJuIGgoaSkmJihyPWksaT1udWxsKSwicmVhZHkiPT09YT8obShyKSx0aGlzKTooaSYmKG49cixyPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LnRhcmdldDshYihlLGkpOyl7aWYoZT09PXRoaXN8fG51bGw9PT1lKXJldHVybiBlPSExO2U9ZS5wYXJlbnROb2RlfWUmJm4uY2FsbChlLHQpfSksdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlLGksbixzLG89cjtsJiYobz1mdW5jdGlvbigpe3IuYXBwbHkodGhpcyxhcmd1bWVudHMpLHEodCxhLG8pfSksaT1hLG49bywocz14KGU9dCwiX2Nhc2hFdmVudHMiKXx8TyhlLCJfY2FzaEV2ZW50cyIse30pKVtpXT1zW2ldfHxbXSxzW2ldLnB1c2gobiksZS5hZGRFdmVudExpc3RlbmVyKGksbil9KSl9LG9uZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHRoaXMub24odCxlLGksITApfSxyZWFkeTptLHRyaWdnZXI6ZnVuY3Rpb24odCxlKXtpZihkb2N1bWVudC5jcmVhdGVFdmVudCl7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkhUTUxFdmVudHMiKTtyZXR1cm4gaS5pbml0RXZlbnQodCwhMCwhMSksaT10aGlzLmV4dGVuZChpLGUpLHRoaXMuZWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaXNwYXRjaEV2ZW50KGkpfSl9fX0pLHkuZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXt2YXIgcz0iIjtyZXR1cm4gayh0aGlzWzBdLmVsZW1lbnRzfHx0aGlzLGZ1bmN0aW9uKHQpe2lmKCF0LmRpc2FibGVkJiYiRklFTERTRVQiIT09dC50YWdOYW1lKXt2YXIgZT10Lm5hbWU7c3dpdGNoKHQudHlwZS50b0xvd2VyQ2FzZSgpKXtjYXNlImZpbGUiOmNhc2UicmVzZXQiOmNhc2Uic3VibWl0IjpjYXNlImJ1dHRvbiI6YnJlYWs7Y2FzZSJzZWxlY3QtbXVsdGlwbGUiOnZhciBpPXoodCk7bnVsbCE9PWkmJmsoaSxmdW5jdGlvbih0KXtzKz1OKGUsdCl9KTticmVhaztkZWZhdWx0OnZhciBuPXoodCk7bnVsbCE9PW4mJihzKz1OKGUsbikpfX19KSxzLnN1YnN0cigxKX0sdmFsOmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lP3oodGhpc1swXSk6dGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlPWV9KX19KSx5LmV4dGVuZCh7YWZ0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIF8odCkuaW5zZXJ0QWZ0ZXIodGhpcyksdGhpc30sYXBwZW5kOmZ1bmN0aW9uKHQpe3JldHVybiBWKHRoaXMsdCksdGhpc30sYXBwZW5kVG86ZnVuY3Rpb24odCl7cmV0dXJuIFYoXyh0KSx0aGlzKSx0aGlzfSxiZWZvcmU6ZnVuY3Rpb24odCl7cmV0dXJuIF8odCkuaW5zZXJ0QmVmb3JlKHRoaXMpLHRoaXN9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIF8odGhpcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xvbmVOb2RlKCEwKX0pKX0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5odG1sKCIiKSx0aGlzfSxodG1sOmZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQpcmV0dXJuIHRoaXNbMF0uaW5uZXJIVE1MO3ZhciBlPXQubm9kZVR5cGU/dFswXS5vdXRlckhUTUw6dDtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlubmVySFRNTD1lfSl9LGluc2VydEFmdGVyOmZ1bmN0aW9uKHQpe3ZhciBzPXRoaXM7cmV0dXJuIF8odCkuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBpPXQucGFyZW50Tm9kZSxuPXQubmV4dFNpYmxpbmc7cy5lYWNoKGZ1bmN0aW9uKHQpe2kuaW5zZXJ0QmVmb3JlKDA9PT1lP3Q6dC5jbG9uZU5vZGUoITApLG4pfSl9KSx0aGlzfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCl7dmFyIHM9dGhpcztyZXR1cm4gXyh0KS5lYWNoKGZ1bmN0aW9uKGUsaSl7dmFyIG49ZS5wYXJlbnROb2RlO3MuZWFjaChmdW5jdGlvbih0KXtuLmluc2VydEJlZm9yZSgwPT09aT90OnQuY2xvbmVOb2RlKCEwKSxlKX0pfSksdGhpc30scHJlcGVuZDpmdW5jdGlvbih0KXtyZXR1cm4gVih0aGlzLHQsITApLHRoaXN9LHByZXBlbmRUbzpmdW5jdGlvbih0KXtyZXR1cm4gVihfKHQpLHRoaXMsITApLHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24odCl7aWYodC5wYXJlbnROb2RlKXJldHVybiB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9KX0sdGV4dDpmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZT90aGlzWzBdLnRleHRDb250ZW50OnRoaXMuZWFjaChmdW5jdGlvbih0KXtyZXR1cm4gdC50ZXh0Q29udGVudD1lfSl9fSk7dmFyIFg9by5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIHkuZXh0ZW5kKHtwb3NpdGlvbjpmdW5jdGlvbigpe3ZhciB0PXRoaXNbMF07cmV0dXJue2xlZnQ6dC5vZmZzZXRMZWZ0LHRvcDp0Lm9mZnNldFRvcH19LG9mZnNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXNbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3RvcDp0LnRvcCthLnBhZ2VZT2Zmc2V0LVguY2xpZW50VG9wLGxlZnQ6dC5sZWZ0K2EucGFnZVhPZmZzZXQtWC5jbGllbnRMZWZ0fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIF8odGhpc1swXS5vZmZzZXRQYXJlbnQpfX0pLHkuZXh0ZW5kKHtjaGlsZHJlbjpmdW5jdGlvbihlKXt2YXIgaT1bXTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe3MuYXBwbHkoaSx0LmNoaWxkcmVuKX0pLGk9QyhpKSxlP2kuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBiKHQsZSl9KTppfSxjbG9zZXN0OmZ1bmN0aW9uKHQpe3JldHVybiF0fHx0aGlzLmxlbmd0aDwxP18oKTp0aGlzLmlzKHQpP3RoaXMuZmlsdGVyKHQpOnRoaXMucGFyZW50KCkuY2xvc2VzdCh0KX0saXM6ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuITE7dmFyIGk9ITEsbj13KGUpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24odCl7cmV0dXJuIShpPW4odCxlKSl9KSxpfSxmaW5kOmZ1bmN0aW9uKGUpe2lmKCFlfHxlLm5vZGVUeXBlKXJldHVybiBfKGUmJnRoaXMuaGFzKGUpLmxlbmd0aD9lOm51bGwpO3ZhciBpPVtdO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24odCl7cy5hcHBseShpLHYoZSx0KSl9KSxDKGkpfSxoYXM6ZnVuY3Rpb24oZSl7dmFyIHQ9ZChlKT9mdW5jdGlvbih0KXtyZXR1cm4gMCE9PXYoZSx0KS5sZW5ndGh9OmZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbnRhaW5zKGUpfTtyZXR1cm4gdGhpcy5maWx0ZXIodCl9LG5leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzWzBdLm5leHRFbGVtZW50U2libGluZyl9LG5vdDpmdW5jdGlvbihlKXtpZighZSlyZXR1cm4gdGhpczt2YXIgaT13KGUpO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4haSh0LGUpfSl9LHBhcmVudDpmdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24odCl7dCYmdC5wYXJlbnROb2RlJiZlLnB1c2godC5wYXJlbnROb2RlKX0pLEMoZSl9LHBhcmVudHM6ZnVuY3Rpb24oZSl7dmFyIGksbj1bXTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHQpe2ZvcihpPXQ7aSYmaS5wYXJlbnROb2RlJiZpIT09by5ib2R5LnBhcmVudE5vZGU7KWk9aS5wYXJlbnROb2RlLCghZXx8ZSYmYihpLGUpKSYmbi5wdXNoKGkpfSksQyhuKX0scHJldjpmdW5jdGlvbigpe3JldHVybiBfKHRoaXNbMF0ucHJldmlvdXNFbGVtZW50U2libGluZyl9LHNpYmxpbmdzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGFyZW50KCkuY2hpbGRyZW4odCksaT10aGlzWzBdO3JldHVybiBlLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdCE9PWl9KX19KSxffSgpO3ZhciBDb21wb25lbnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBzKHQsZSxpKXtfY2xhc3NDYWxsQ2hlY2sodGhpcyxzKSxlIGluc3RhbmNlb2YgRWxlbWVudHx8Y29uc29sZS5lcnJvcihFcnJvcihlKyIgaXMgbm90IGFuIEhUTUwgRWxlbWVudCIpKTt2YXIgbj10LmdldEluc3RhbmNlKGUpO24mJm4uZGVzdHJveSgpLHRoaXMuZWw9ZSx0aGlzLiRlbD1jYXNoKGUpfXJldHVybiBfY3JlYXRlQ2xhc3MocyxudWxsLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7dmFyIG49bnVsbDtpZihlIGluc3RhbmNlb2YgRWxlbWVudCluPW5ldyB0KGUsaSk7ZWxzZSBpZihlJiYoZS5qcXVlcnl8fGUuY2FzaHx8ZSBpbnN0YW5jZW9mIE5vZGVMaXN0KSl7Zm9yKHZhciBzPVtdLG89MDtvPGUubGVuZ3RoO28rKylzLnB1c2gobmV3IHQoZVtvXSxpKSk7bj1zfXJldHVybiBufX1dKSxzfSgpOyFmdW5jdGlvbih0KXt0LlBhY2thZ2U/TT17fTp0Lk09e30sTS5qUXVlcnlMb2FkZWQ9ISF0LmpRdWVyeX0od2luZG93KSwiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgiTSIsW10sZnVuY3Rpb24oKXtyZXR1cm4gTX0pOiJ1bmRlZmluZWQiPT10eXBlb2YgZXhwb3J0c3x8ZXhwb3J0cy5ub2RlVHlwZXx8KCJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUuZXhwb3J0cyYmKGV4cG9ydHM9bW9kdWxlLmV4cG9ydHM9TSksZXhwb3J0cy5kZWZhdWx0PU0pLE0udmVyc2lvbj0iMS4wLjAiLE0ua2V5cz17VEFCOjksRU5URVI6MTMsRVNDOjI3LEFSUk9XX1VQOjM4LEFSUk9XX0RPV046NDB9LE0udGFiUHJlc3NlZD0hMSxNLmtleURvd249ITE7dmFyIGRvY0hhbmRsZUtleWRvd249ZnVuY3Rpb24odCl7TS5rZXlEb3duPSEwLHQud2hpY2ghPT1NLmtleXMuVEFCJiZ0LndoaWNoIT09TS5rZXlzLkFSUk9XX0RPV04mJnQud2hpY2ghPT1NLmtleXMuQVJST1dfVVB8fChNLnRhYlByZXNzZWQ9ITApfSxkb2NIYW5kbGVLZXl1cD1mdW5jdGlvbih0KXtNLmtleURvd249ITEsdC53aGljaCE9PU0ua2V5cy5UQUImJnQud2hpY2ghPT1NLmtleXMuQVJST1dfRE9XTiYmdC53aGljaCE9PU0ua2V5cy5BUlJPV19VUHx8KE0udGFiUHJlc3NlZD0hMSl9LGRvY0hhbmRsZUZvY3VzPWZ1bmN0aW9uKHQpe00ua2V5RG93biYmZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCJrZXlib2FyZC1mb2N1c2VkIil9LGRvY0hhbmRsZUJsdXI9ZnVuY3Rpb24odCl7ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCJrZXlib2FyZC1mb2N1c2VkIil9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGRvY0hhbmRsZUtleWRvd24sITApLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixkb2NIYW5kbGVLZXl1cCwhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGRvY0hhbmRsZUZvY3VzLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJibHVyIixkb2NIYW5kbGVCbHVyLCEwKSxNLmluaXRpYWxpemVKcXVlcnlXcmFwcGVyPWZ1bmN0aW9uKG4scyxvKXtqUXVlcnkuZm5bc109ZnVuY3Rpb24oZSl7aWYobi5wcm90b3R5cGVbZV0pe3ZhciBpPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtpZigiZ2V0Ij09PWUuc2xpY2UoMCwzKSl7dmFyIHQ9dGhpcy5maXJzdCgpWzBdW29dO3JldHVybiB0W2VdLmFwcGx5KHQsaSl9cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXRoaXNbb107dFtlXS5hcHBseSh0LGkpfSl9aWYoIm9iamVjdCI9PXR5cGVvZiBlfHwhZSlyZXR1cm4gbi5pbml0KHRoaXMsZSksdGhpcztqUXVlcnkuZXJyb3IoIk1ldGhvZCAiK2UrIiBkb2VzIG5vdCBleGlzdCBvbiBqUXVlcnkuIitzKX19LE0uQXV0b0luaXQ9ZnVuY3Rpb24odCl7dmFyIGU9dHx8ZG9jdW1lbnQuYm9keSxpPXtBdXRvY29tcGxldGU6ZS5xdWVyeVNlbGVjdG9yQWxsKCIuYXV0b2NvbXBsZXRlOm5vdCgubm8tYXV0b2luaXQpIiksQ2Fyb3VzZWw6ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2Fyb3VzZWw6bm90KC5uby1hdXRvaW5pdCkiKSxDaGlwczplLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGlwczpub3QoLm5vLWF1dG9pbml0KSIpLENvbGxhcHNpYmxlOmUucXVlcnlTZWxlY3RvckFsbCgiLmNvbGxhcHNpYmxlOm5vdCgubm8tYXV0b2luaXQpIiksRGF0ZXBpY2tlcjplLnF1ZXJ5U2VsZWN0b3JBbGwoIi5kYXRlcGlja2VyOm5vdCgubm8tYXV0b2luaXQpIiksRHJvcGRvd246ZS5xdWVyeVNlbGVjdG9yQWxsKCIuZHJvcGRvd24tdHJpZ2dlcjpub3QoLm5vLWF1dG9pbml0KSIpLE1hdGVyaWFsYm94OmUucXVlcnlTZWxlY3RvckFsbCgiLm1hdGVyaWFsYm94ZWQ6bm90KC5uby1hdXRvaW5pdCkiKSxNb2RhbDplLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RhbDpub3QoLm5vLWF1dG9pbml0KSIpLFBhcmFsbGF4OmUucXVlcnlTZWxlY3RvckFsbCgiLnBhcmFsbGF4Om5vdCgubm8tYXV0b2luaXQpIiksUHVzaHBpbjplLnF1ZXJ5U2VsZWN0b3JBbGwoIi5wdXNocGluOm5vdCgubm8tYXV0b2luaXQpIiksU2Nyb2xsU3B5OmUucXVlcnlTZWxlY3RvckFsbCgiLnNjcm9sbHNweTpub3QoLm5vLWF1dG9pbml0KSIpLEZvcm1TZWxlY3Q6ZS5xdWVyeVNlbGVjdG9yQWxsKCJzZWxlY3Q6bm90KC5uby1hdXRvaW5pdCkiKSxTaWRlbmF2OmUucXVlcnlTZWxlY3RvckFsbCgiLnNpZGVuYXY6bm90KC5uby1hdXRvaW5pdCkiKSxUYWJzOmUucXVlcnlTZWxlY3RvckFsbCgiLnRhYnM6bm90KC5uby1hdXRvaW5pdCkiKSxUYXBUYXJnZXQ6ZS5xdWVyeVNlbGVjdG9yQWxsKCIudGFwLXRhcmdldDpub3QoLm5vLWF1dG9pbml0KSIpLFRpbWVwaWNrZXI6ZS5xdWVyeVNlbGVjdG9yQWxsKCIudGltZXBpY2tlcjpub3QoLm5vLWF1dG9pbml0KSIpLFRvb2x0aXA6ZS5xdWVyeVNlbGVjdG9yQWxsKCIudG9vbHRpcHBlZDpub3QoLm5vLWF1dG9pbml0KSIpLEZsb2F0aW5nQWN0aW9uQnV0dG9uOmUucXVlcnlTZWxlY3RvckFsbCgiLmZpeGVkLWFjdGlvbi1idG46bm90KC5uby1hdXRvaW5pdCkiKX07Zm9yKHZhciBuIGluIGkpe01bbl0uaW5pdChpW25dKX19LE0ub2JqZWN0U2VsZWN0b3JTdHJpbmc9ZnVuY3Rpb24odCl7cmV0dXJuKCh0LnByb3AoInRhZ05hbWUiKXx8IiIpKyh0LmF0dHIoImlkIil8fCIiKSsodC5hdHRyKCJjbGFzcyIpfHwiIikpLnJlcGxhY2UoL1xzL2csIiIpfSxNLmd1aWQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7cmV0dXJuIE1hdGguZmxvb3IoNjU1MzYqKDErTWF0aC5yYW5kb20oKSkpLnRvU3RyaW5nKDE2KS5zdWJzdHJpbmcoMSl9cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQoKSt0KCkrIi0iK3QoKSsiLSIrdCgpKyItIit0KCkrIi0iK3QoKSt0KCkrdCgpfX0oKSxNLmVzY2FwZUhhc2g9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSgvKDp8XC58XFt8XF18LHw9fFwvKS9nLCJcXCQxIil9LE0uZWxlbWVudE9yUGFyZW50SXNGaXhlZD1mdW5jdGlvbih0KXt2YXIgZT0kKHQpLGk9ZS5hZGQoZS5wYXJlbnRzKCkpLG49ITE7cmV0dXJuIGkuZWFjaChmdW5jdGlvbigpe2lmKCJmaXhlZCI9PT0kKHRoaXMpLmNzcygicG9zaXRpb24iKSlyZXR1cm4hKG49ITApfSksbn0sTS5jaGVja1dpdGhpbkNvbnRhaW5lcj1mdW5jdGlvbih0LGUsaSl7dmFyIG49e3RvcDohMSxyaWdodDohMSxib3R0b206ITEsbGVmdDohMX0scz10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG89dD09PWRvY3VtZW50LmJvZHk/TWF0aC5tYXgocy5ib3R0b20sd2luZG93LmlubmVySGVpZ2h0KTpzLmJvdHRvbSxhPXQuc2Nyb2xsTGVmdCxyPXQuc2Nyb2xsVG9wLGw9ZS5sZWZ0LWEsaD1lLnRvcC1yO3JldHVybihsPHMubGVmdCtpfHxsPGkpJiYobi5sZWZ0PSEwKSwobCtlLndpZHRoPnMucmlnaHQtaXx8bCtlLndpZHRoPndpbmRvdy5pbm5lcldpZHRoLWkpJiYobi5yaWdodD0hMCksKGg8cy50b3AraXx8aDxpKSYmKG4udG9wPSEwKSwoaCtlLmhlaWdodD5vLWl8fGgrZS5oZWlnaHQ+d2luZG93LmlubmVySGVpZ2h0LWkpJiYobi5ib3R0b209ITApLG59LE0uY2hlY2tQb3NzaWJsZUFsaWdubWVudHM9ZnVuY3Rpb24odCxlLGksbil7dmFyIHM9e3RvcDohMCxyaWdodDohMCxib3R0b206ITAsbGVmdDohMCxzcGFjZU9uVG9wOm51bGwsc3BhY2VPblJpZ2h0Om51bGwsc3BhY2VPbkJvdHRvbTpudWxsLHNwYWNlT25MZWZ0Om51bGx9LG89InZpc2libGUiPT09Z2V0Q29tcHV0ZWRTdHlsZShlKS5vdmVyZmxvdyxhPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj1NYXRoLm1pbihhLmhlaWdodCx3aW5kb3cuaW5uZXJIZWlnaHQpLGw9TWF0aC5taW4oYS53aWR0aCx3aW5kb3cuaW5uZXJXaWR0aCksaD10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGQ9ZS5zY3JvbGxMZWZ0LHU9ZS5zY3JvbGxUb3AsYz1pLmxlZnQtZCxwPWkudG9wLXUsdj1pLnRvcCtoLmhlaWdodC11O3JldHVybiBzLnNwYWNlT25SaWdodD1vP3dpbmRvdy5pbm5lcldpZHRoLShoLmxlZnQraS53aWR0aCk6bC0oYytpLndpZHRoKSxzLnNwYWNlT25SaWdodDwwJiYocy5sZWZ0PSExKSxzLnNwYWNlT25MZWZ0PW8/aC5yaWdodC1pLndpZHRoOmMtaS53aWR0aCtoLndpZHRoLHMuc3BhY2VPbkxlZnQ8MCYmKHMucmlnaHQ9ITEpLHMuc3BhY2VPbkJvdHRvbT1vP3dpbmRvdy5pbm5lckhlaWdodC0oaC50b3AraS5oZWlnaHQrbik6ci0ocCtpLmhlaWdodCtuKSxzLnNwYWNlT25Cb3R0b208MCYmKHMudG9wPSExKSxzLnNwYWNlT25Ub3A9bz9oLmJvdHRvbS0oaS5oZWlnaHQrbik6di0oaS5oZWlnaHQtbikscy5zcGFjZU9uVG9wPDAmJihzLmJvdHRvbT0hMSksc30sTS5nZXRPdmVyZmxvd1BhcmVudD1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9udWxsOnQ9PT1kb2N1bWVudC5ib2R5fHwidmlzaWJsZSIhPT1nZXRDb21wdXRlZFN0eWxlKHQpLm92ZXJmbG93P3Q6TS5nZXRPdmVyZmxvd1BhcmVudCh0LnBhcmVudEVsZW1lbnQpfSxNLmdldElkRnJvbVRyaWdnZXI9ZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRBdHRyaWJ1dGUoImRhdGEtdGFyZ2V0Iik7cmV0dXJuIGV8fChlPShlPXQuZ2V0QXR0cmlidXRlKCJocmVmIikpP2Uuc2xpY2UoMSk6IiIpLGV9LE0uZ2V0RG9jdW1lbnRTY3JvbGxUb3A9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnBhZ2VZT2Zmc2V0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfHxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcHx8MH0sTS5nZXREb2N1bWVudFNjcm9sbExlZnQ9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnBhZ2VYT2Zmc2V0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0fHwwfTt2YXIgZ2V0VGltZT1EYXRlLm5vd3x8ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX07TS50aHJvdHRsZT1mdW5jdGlvbihpLG4scyl7dmFyIG89dm9pZCAwLGE9dm9pZCAwLHI9dm9pZCAwLGw9bnVsbCxoPTA7c3x8KHM9e30pO3ZhciBkPWZ1bmN0aW9uKCl7aD0hMT09PXMubGVhZGluZz8wOmdldFRpbWUoKSxsPW51bGwscj1pLmFwcGx5KG8sYSksbz1hPW51bGx9O3JldHVybiBmdW5jdGlvbigpe3ZhciB0PWdldFRpbWUoKTtofHwhMSE9PXMubGVhZGluZ3x8KGg9dCk7dmFyIGU9bi0odC1oKTtyZXR1cm4gbz10aGlzLGE9YXJndW1lbnRzLGU8PTA/KGNsZWFyVGltZW91dChsKSxsPW51bGwsaD10LHI9aS5hcHBseShvLGEpLG89YT1udWxsKTpsfHwhMT09PXMudHJhaWxpbmd8fChsPXNldFRpbWVvdXQoZCxlKSkscn19O3ZhciAkanNjb21wPXtzY29wZTp7fX07JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKHQsZSxpKXtpZihpLmdldHx8aS5zZXQpdGhyb3cgbmV3IFR5cGVFcnJvcigiRVMzIGRvZXMgbm90IHN1cHBvcnQgZ2V0dGVycyBhbmQgc2V0dGVycy4iKTt0IT1BcnJheS5wcm90b3R5cGUmJnQhPU9iamVjdC5wcm90b3R5cGUmJih0W2VdPWkudmFsdWUpfSwkanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbih0KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93PT09dD90OiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsJiZudWxsIT1nbG9iYWw/Z2xvYmFsOnR9LCRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpLCRqc2NvbXAuU1lNQk9MX1BSRUZJWD0ianNjb21wX3N5bWJvbF8iLCRqc2NvbXAuaW5pdFN5bWJvbD1mdW5jdGlvbigpeyRqc2NvbXAuaW5pdFN5bWJvbD1mdW5jdGlvbigpe30sJGpzY29tcC5nbG9iYWwuU3ltYm9sfHwoJGpzY29tcC5nbG9iYWwuU3ltYm9sPSRqc2NvbXAuU3ltYm9sKX0sJGpzY29tcC5zeW1ib2xDb3VudGVyXz0wLCRqc2NvbXAuU3ltYm9sPWZ1bmN0aW9uKHQpe3JldHVybiAkanNjb21wLlNZTUJPTF9QUkVGSVgrKHR8fCIiKSskanNjb21wLnN5bWJvbENvdW50ZXJfKyt9LCRqc2NvbXAuaW5pdFN5bWJvbEl0ZXJhdG9yPWZ1bmN0aW9uKCl7JGpzY29tcC5pbml0U3ltYm9sKCk7dmFyIHQ9JGpzY29tcC5nbG9iYWwuU3ltYm9sLml0ZXJhdG9yO3R8fCh0PSRqc2NvbXAuZ2xvYmFsLlN5bWJvbC5pdGVyYXRvcj0kanNjb21wLmdsb2JhbC5TeW1ib2woIml0ZXJhdG9yIikpLCJmdW5jdGlvbiIhPXR5cGVvZiBBcnJheS5wcm90b3R5cGVbdF0mJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLHQse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiAkanNjb21wLmFycmF5SXRlcmF0b3IodGhpcyl9fSksJGpzY29tcC5pbml0U3ltYm9sSXRlcmF0b3I9ZnVuY3Rpb24oKXt9fSwkanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24odCl7dmFyIGU9MDtyZXR1cm4gJGpzY29tcC5pdGVyYXRvclByb3RvdHlwZShmdW5jdGlvbigpe3JldHVybiBlPHQubGVuZ3RoP3tkb25lOiExLHZhbHVlOnRbZSsrXX06e2RvbmU6ITB9fSl9LCRqc2NvbXAuaXRlcmF0b3JQcm90b3R5cGU9ZnVuY3Rpb24odCl7cmV0dXJuICRqc2NvbXAuaW5pdFN5bWJvbEl0ZXJhdG9yKCksKHQ9e25leHQ6dH0pWyRqc2NvbXAuZ2xvYmFsLlN5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdH0sJGpzY29tcC5hcnJheT0kanNjb21wLmFycmF5fHx7fSwkanNjb21wLml0ZXJhdG9yRnJvbUFycmF5PWZ1bmN0aW9uKGUsaSl7JGpzY29tcC5pbml0U3ltYm9sSXRlcmF0b3IoKSxlIGluc3RhbmNlb2YgU3RyaW5nJiYoZSs9IiIpO3ZhciBuPTAscz17bmV4dDpmdW5jdGlvbigpe2lmKG48ZS5sZW5ndGgpe3ZhciB0PW4rKztyZXR1cm57dmFsdWU6aSh0LGVbdF0pLGRvbmU6ITF9fXJldHVybiBzLm5leHQ9ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohMCx2YWx1ZTp2b2lkIDB9fSxzLm5leHQoKX19O3JldHVybiBzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gc30sc30sJGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbih0LGUsaSxuKXtpZihlKXtmb3IoaT0kanNjb21wLmdsb2JhbCx0PXQuc3BsaXQoIi4iKSxuPTA7bjx0Lmxlbmd0aC0xO24rKyl7dmFyIHM9dFtuXTtzIGluIGl8fChpW3NdPXt9KSxpPWlbc119KGU9ZShuPWlbdD10W3QubGVuZ3RoLTFdXSkpIT1uJiZudWxsIT1lJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGksdCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmV9KX19LCRqc2NvbXAucG9seWZpbGwoIkFycmF5LnByb3RvdHlwZS5rZXlzIixmdW5jdGlvbih0KXtyZXR1cm4gdHx8ZnVuY3Rpb24oKXtyZXR1cm4gJGpzY29tcC5pdGVyYXRvckZyb21BcnJheSh0aGlzLGZ1bmN0aW9uKHQpe3JldHVybiB0fSl9fSwiZXM2LWltcGwiLCJlczMiKTt2YXIgJGpzY29tcCR0aGlzPXRoaXM7TS5hbmltZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHModCl7aWYoIUIuY29sKHQpKXRyeXtyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCh0KX1jYXRjaCh0KXt9fWZ1bmN0aW9uIGIodCxlKXtmb3IodmFyIGk9dC5sZW5ndGgsbj0yPD1hcmd1bWVudHMubGVuZ3RoP2U6dm9pZCAwLHM9W10sbz0wO288aTtvKyspaWYobyBpbiB0KXt2YXIgYT10W29dO2UuY2FsbChuLGEsbyx0KSYmcy5wdXNoKGEpfXJldHVybiBzfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHQucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuY29uY2F0KEIuYXJyKGUpP2QoZSk6ZSl9LFtdKX1mdW5jdGlvbiBvKHQpe3JldHVybiBCLmFycih0KT90OihCLnN0cih0KSYmKHQ9cyh0KXx8dCksdCBpbnN0YW5jZW9mIE5vZGVMaXN0fHx0IGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb24/W10uc2xpY2UuY2FsbCh0KTpbdF0pfWZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gdC5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiB0PT09ZX0pfWZ1bmN0aW9uIHIodCl7dmFyIGUsaT17fTtmb3IoZSBpbiB0KWlbZV09dFtlXTtyZXR1cm4gaX1mdW5jdGlvbiB1KHQsZSl7dmFyIGksbj1yKHQpO2ZvcihpIGluIHQpbltpXT1lLmhhc093blByb3BlcnR5KGkpP2VbaV06dFtpXTtyZXR1cm4gbn1mdW5jdGlvbiBjKHQsZSl7dmFyIGksbj1yKHQpO2ZvcihpIGluIGUpbltpXT1CLnVuZCh0W2ldKT9lW2ldOnRbaV07cmV0dXJuIG59ZnVuY3Rpb24gbCh0KXtpZih0PS8oW1wrXC1dP1swLTkjXC5dKykoJXxweHxwdHxlbXxyZW18aW58Y218bW18ZXh8Y2h8cGN8dnd8dmh8dm1pbnx2bWF4fGRlZ3xyYWR8dHVybik/JC8uZXhlYyh0KSlyZXR1cm4gdFsyXX1mdW5jdGlvbiBoKHQsZSl7cmV0dXJuIEIuZm5jKHQpP3QoZS50YXJnZXQsZS5pZCxlLnRvdGFsKTp0fWZ1bmN0aW9uIHcodCxlKXtpZihlIGluIHQuc3R5bGUpcmV0dXJuIGdldENvbXB1dGVkU3R5bGUodCkuZ2V0UHJvcGVydHlWYWx1ZShlLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csIiQxLSQyIikudG9Mb3dlckNhc2UoKSl8fCIwIn1mdW5jdGlvbiBwKHQsZSl7cmV0dXJuIEIuZG9tKHQpJiZhKCQsZSk/InRyYW5zZm9ybSI6Qi5kb20odCkmJih0LmdldEF0dHJpYnV0ZShlKXx8Qi5zdmcodCkmJnRbZV0pPyJhdHRyaWJ1dGUiOkIuZG9tKHQpJiYidHJhbnNmb3JtIiE9PWUmJncodCxlKT8iY3NzIjpudWxsIT10W2VdPyJvYmplY3QiOnZvaWQgMH1mdW5jdGlvbiB2KHQsZSl7c3dpdGNoKHAodCxlKSl7Y2FzZSJ0cmFuc2Zvcm0iOnJldHVybiBmdW5jdGlvbih0LGkpe3ZhciBlLG49LTE8KGU9aSkuaW5kZXhPZigidHJhbnNsYXRlIil8fCJwZXJzcGVjdGl2ZSI9PT1lPyJweCI6LTE8ZS5pbmRleE9mKCJyb3RhdGUiKXx8LTE8ZS5pbmRleE9mKCJza2V3Iik/ImRlZyI6dm9pZCAwLG49LTE8aS5pbmRleE9mKCJzY2FsZSIpPzE6MCtuO2lmKCEodD10LnN0eWxlLnRyYW5zZm9ybSkpcmV0dXJuIG47Zm9yKHZhciBzPVtdLG89W10sYT1bXSxyPS8oXHcrKVwoKC4rPylcKS9nO3M9ci5leGVjKHQpOylvLnB1c2goc1sxXSksYS5wdXNoKHNbMl0pO3JldHVybih0PWIoYSxmdW5jdGlvbih0LGUpe3JldHVybiBvW2VdPT09aX0pKS5sZW5ndGg/dFswXTpufSh0LGUpO2Nhc2UiY3NzIjpyZXR1cm4gdyh0LGUpO2Nhc2UiYXR0cmlidXRlIjpyZXR1cm4gdC5nZXRBdHRyaWJ1dGUoZSl9cmV0dXJuIHRbZV18fDB9ZnVuY3Rpb24gZih0LGUpe3ZhciBpPS9eKFwqPXxcKz18LT0pLy5leGVjKHQpO2lmKCFpKXJldHVybiB0O3ZhciBuPWwodCl8fDA7c3dpdGNoKGU9cGFyc2VGbG9hdChlKSx0PXBhcnNlRmxvYXQodC5yZXBsYWNlKGlbMF0sIiIpKSxpWzBdWzBdKXtjYXNlIisiOnJldHVybiBlK3QrbjtjYXNlIi0iOnJldHVybiBlLXQrbjtjYXNlIioiOnJldHVybiBlKnQrbn19ZnVuY3Rpb24gbSh0LGUpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3coZS54LXQueCwyKStNYXRoLnBvdyhlLnktdC55LDIpKX1mdW5jdGlvbiBpKHQpe3Q9dC5wb2ludHM7Zm9yKHZhciBlLGk9MCxuPTA7bjx0Lm51bWJlck9mSXRlbXM7bisrKXt2YXIgcz10LmdldEl0ZW0obik7MDxuJiYoaSs9bShlLHMpKSxlPXN9cmV0dXJuIGl9ZnVuY3Rpb24gZyh0KXtpZih0LmdldFRvdGFsTGVuZ3RoKXJldHVybiB0LmdldFRvdGFsTGVuZ3RoKCk7c3dpdGNoKHQudGFnTmFtZS50b0xvd2VyQ2FzZSgpKXtjYXNlImNpcmNsZSI6cmV0dXJuIDIqTWF0aC5QSSp0LmdldEF0dHJpYnV0ZSgiciIpO2Nhc2UicmVjdCI6cmV0dXJuIDIqdC5nZXRBdHRyaWJ1dGUoIndpZHRoIikrMip0LmdldEF0dHJpYnV0ZSgiaGVpZ2h0Iik7Y2FzZSJsaW5lIjpyZXR1cm4gbSh7eDp0LmdldEF0dHJpYnV0ZSgieDEiKSx5OnQuZ2V0QXR0cmlidXRlKCJ5MSIpfSx7eDp0LmdldEF0dHJpYnV0ZSgieDIiKSx5OnQuZ2V0QXR0cmlidXRlKCJ5MiIpfSk7Y2FzZSJwb2x5bGluZSI6cmV0dXJuIGkodCk7Y2FzZSJwb2x5Z29uIjp2YXIgZT10LnBvaW50cztyZXR1cm4gaSh0KSttKGUuZ2V0SXRlbShlLm51bWJlck9mSXRlbXMtMSksZS5nZXRJdGVtKDApKX19ZnVuY3Rpb24gQyhlLGkpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIHQ9dm9pZCAwPT09dD8wOnQsZS5lbC5nZXRQb2ludEF0TGVuZ3RoKDE8PWkrdD9pK3Q6MCl9dmFyIG49dCgpLHM9dCgtMSksbz10KDEpO3N3aXRjaChlLnByb3BlcnR5KXtjYXNlIngiOnJldHVybiBuLng7Y2FzZSJ5IjpyZXR1cm4gbi55O2Nhc2UiYW5nbGUiOnJldHVybiAxODAqTWF0aC5hdGFuMihvLnktcy55LG8ueC1zLngpL01hdGguUEl9fWZ1bmN0aW9uIF8odCxlKXt2YXIgaSxuPS8tP1xkKlwuP1xkKy9nO2lmKGk9Qi5wdGgodCk/dC50b3RhbExlbmd0aDp0LEIuY29sKGkpKWlmKEIucmdiKGkpKXt2YXIgcz0vcmdiXCgoXGQrLFxzKltcZF0rLFxzKltcZF0rKVwpL2cuZXhlYyhpKTtpPXM/InJnYmEoIitzWzFdKyIsMSkiOml9ZWxzZSBpPUIuaGV4KGkpP2Z1bmN0aW9uKHQpe3Q9dC5yZXBsYWNlKC9eIz8oW2EtZlxkXSkoW2EtZlxkXSkoW2EtZlxkXSkkL2ksZnVuY3Rpb24odCxlLGksbil7cmV0dXJuIGUrZStpK2krbitufSk7dmFyIGU9L14jPyhbYS1mXGRdezJ9KShbYS1mXGRdezJ9KShbYS1mXGRdezJ9KSQvaS5leGVjKHQpO3Q9cGFyc2VJbnQoZVsxXSwxNik7dmFyIGk9cGFyc2VJbnQoZVsyXSwxNiksZT1wYXJzZUludChlWzNdLDE2KTtyZXR1cm4icmdiYSgiK3QrIiwiK2krIiwiK2UrIiwxKSJ9KGkpOkIuaHNsKGkpP2Z1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCxlLGkpe3JldHVybiBpPDAmJihpKz0xKSwxPGkmJi0taSxpPDEvNj90KzYqKGUtdCkqaTppPC41P2U6aTwyLzM/dCsoZS10KSooMi8zLWkpKjY6dH12YXIgaT0vaHNsXCgoXGQrKSxccyooW1xkLl0rKSUsXHMqKFtcZC5dKyklXCkvZy5leGVjKHQpfHwvaHNsYVwoKFxkKyksXHMqKFtcZC5dKyklLFxzKihbXGQuXSspJSxccyooW1xkLl0rKVwpL2cuZXhlYyh0KTt0PXBhcnNlSW50KGlbMV0pLzM2MDt2YXIgbj1wYXJzZUludChpWzJdKS8xMDAscz1wYXJzZUludChpWzNdKS8xMDAsaT1pWzRdfHwxO2lmKDA9PW4pcz1uPXQ9cztlbHNle3ZhciBvPXM8LjU/cyooMStuKTpzK24tcypuLGE9MipzLW8scz1lKGEsbyx0KzEvMyksbj1lKGEsbyx0KTt0PWUoYSxvLHQtMS8zKX1yZXR1cm4icmdiYSgiKzI1NSpzKyIsIisyNTUqbisiLCIrMjU1KnQrIiwiK2krIikifShpKTp2b2lkIDA7ZWxzZSBzPShzPWwoaSkpP2kuc3Vic3RyKDAsaS5sZW5ndGgtcy5sZW5ndGgpOmksaT1lJiYhL1xzL2cudGVzdChpKT9zK2U6cztyZXR1cm57b3JpZ2luYWw6aSs9IiIsbnVtYmVyczppLm1hdGNoKG4pP2kubWF0Y2gobikubWFwKE51bWJlcik6WzBdLHN0cmluZ3M6Qi5zdHIodCl8fGU/aS5zcGxpdChuKTpbXX19ZnVuY3Rpb24geSh0KXtyZXR1cm4gYih0PXQ/ZChCLmFycih0KT90Lm1hcChvKTpvKHQpKTpbXSxmdW5jdGlvbih0LGUsaSl7cmV0dXJuIGkuaW5kZXhPZih0KT09PWV9KX1mdW5jdGlvbiBrKHQsaSl7dmFyIGU9cihpKTtpZihCLmFycih0KSl7dmFyIG49dC5sZW5ndGg7MiE9PW58fEIub2JqKHRbMF0pP0IuZm5jKGkuZHVyYXRpb24pfHwoZS5kdXJhdGlvbj1pLmR1cmF0aW9uL24pOnQ9e3ZhbHVlOnR9fXJldHVybiBvKHQpLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiBlPWU/MDppLmRlbGF5LHQ9Qi5vYmoodCkmJiFCLnB0aCh0KT90Ont2YWx1ZTp0fSxCLnVuZCh0LmRlbGF5KSYmKHQuZGVsYXk9ZSksdH0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gYyh0LGUpfSl9ZnVuY3Rpb24gRShvLGEpe3ZhciByO3JldHVybiBvLnR3ZWVucy5tYXAoZnVuY3Rpb24odCl7dmFyIGU9KHQ9ZnVuY3Rpb24odCxlKXt2YXIgaSxuPXt9O2ZvcihpIGluIHQpe3ZhciBzPWgodFtpXSxlKTtCLmFycihzKSYmMT09PShzPXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBoKHQsZSl9KSkubGVuZ3RoJiYocz1zWzBdKSxuW2ldPXN9cmV0dXJuIG4uZHVyYXRpb249cGFyc2VGbG9hdChuLmR1cmF0aW9uKSxuLmRlbGF5PXBhcnNlRmxvYXQobi5kZWxheSksbn0odCxhKSkudmFsdWUsaT12KGEudGFyZ2V0LG8ubmFtZSksbj1yP3IudG8ub3JpZ2luYWw6aSxuPUIuYXJyKGUpP2VbMF06bixzPWYoQi5hcnIoZSk/ZVsxXTplLG4pLGk9bChzKXx8bChuKXx8bChpKTtyZXR1cm4gdC5mcm9tPV8obixpKSx0LnRvPV8ocyxpKSx0LnN0YXJ0PXI/ci5lbmQ6by5vZmZzZXQsdC5lbmQ9dC5zdGFydCt0LmRlbGF5K3QuZHVyYXRpb24sdC5lYXNpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIEIuYXJyKHQpP0QuYXBwbHkodGhpcyx0KTpTW3RdfSh0LmVhc2luZyksdC5lbGFzdGljaXR5PSgxZTMtTWF0aC5taW4oTWF0aC5tYXgodC5lbGFzdGljaXR5LDEpLDk5OSkpLzFlMyx0LmlzUGF0aD1CLnB0aChlKSx0LmlzQ29sb3I9Qi5jb2wodC5mcm9tLm9yaWdpbmFsKSx0LmlzQ29sb3ImJih0LnJvdW5kPTEpLHI9dH0pfWZ1bmN0aW9uIE0oZSx0LGksbil7dmFyIHM9ImRlbGF5Ij09PWU7cmV0dXJuIHQubGVuZ3RoPyhzP01hdGgubWluOk1hdGgubWF4KS5hcHBseShNYXRoLHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0W2VdfSkpOnM/bi5kZWxheTppLm9mZnNldCtuLmRlbGF5K24uZHVyYXRpb259ZnVuY3Rpb24gbih0KXt2YXIgZSxpLG4scyxvPXUoTCx0KSxhPXUoVCx0KSxyPShpPXQudGFyZ2V0cywobj15KGkpKS5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm57dGFyZ2V0OnQsaWQ6ZSx0b3RhbDpuLmxlbmd0aH19KSksbD1bXSxoPWMobyxhKTtmb3IoZSBpbiB0KWguaGFzT3duUHJvcGVydHkoZSl8fCJ0YXJnZXRzIj09PWV8fGwucHVzaCh7bmFtZTplLG9mZnNldDpoLm9mZnNldCx0d2VlbnM6ayh0W2VdLGEpfSk7cmV0dXJuIHM9bCx0PWIoZChyLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gcy5tYXAoZnVuY3Rpb24odCl7dmFyIGU9cChuLnRhcmdldCx0Lm5hbWUpO2lmKGUpe3ZhciBpPUUodCxuKTt0PXt0eXBlOmUscHJvcGVydHk6dC5uYW1lLGFuaW1hdGFibGU6bix0d2VlbnM6aSxkdXJhdGlvbjppW2kubGVuZ3RoLTFdLmVuZCxkZWxheTppWzBdLmRlbGF5fX1lbHNlIHQ9dm9pZCAwO3JldHVybiB0fSl9KSksZnVuY3Rpb24odCl7cmV0dXJuIUIudW5kKHQpfSksYyhvLHtjaGlsZHJlbjpbXSxhbmltYXRhYmxlczpyLGFuaW1hdGlvbnM6dCxkdXJhdGlvbjpNKCJkdXJhdGlvbiIsdCxvLGEpLGRlbGF5Ok0oImRlbGF5Iix0LG8sYSl9KX1mdW5jdGlvbiBPKHQpe2Z1bmN0aW9uIGQoKXtyZXR1cm4gd2luZG93LlByb21pc2UmJm5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe3JldHVybiBfPXR9KX1mdW5jdGlvbiB1KHQpe3JldHVybiBrLnJldmVyc2VkP2suZHVyYXRpb24tdDp0fWZ1bmN0aW9uIGMoZSl7Zm9yKHZhciB0PTAsaT17fSxuPWsuYW5pbWF0aW9ucyxzPW4ubGVuZ3RoO3Q8czspe3ZhciBvPW5bdF0sYT1vLmFuaW1hdGFibGUscj1vLnR3ZWVucyxsPXIubGVuZ3RoLTEsaD1yW2xdO2wmJihoPWIocixmdW5jdGlvbih0KXtyZXR1cm4gZTx0LmVuZH0pWzBdfHxoKTtmb3IodmFyIHI9TWF0aC5taW4oTWF0aC5tYXgoZS1oLnN0YXJ0LWguZGVsYXksMCksaC5kdXJhdGlvbikvaC5kdXJhdGlvbixkPWlzTmFOKHIpPzE6aC5lYXNpbmcocixoLmVsYXN0aWNpdHkpLHI9aC50by5zdHJpbmdzLHU9aC5yb3VuZCxsPVtdLGM9dm9pZCAwLGM9aC50by5udW1iZXJzLmxlbmd0aCxwPTA7cDxjO3ArKyl7dmFyIHY9dm9pZCAwLHY9aC50by5udW1iZXJzW3BdLGY9aC5mcm9tLm51bWJlcnNbcF0sdj1oLmlzUGF0aD9DKGgudmFsdWUsZCp2KTpmK2QqKHYtZik7dSYmKGguaXNDb2xvciYmMjxwfHwodj1NYXRoLnJvdW5kKHYqdSkvdSkpLGwucHVzaCh2KX1pZihoPXIubGVuZ3RoKWZvcihjPXJbMF0sZD0wO2Q8aDtkKyspdT1yW2QrMV0scD1sW2RdLGlzTmFOKHApfHwoYz11P2MrKHArdSk6YysocCsiICIpKTtlbHNlIGM9bFswXTtJW28udHlwZV0oYS50YXJnZXQsby5wcm9wZXJ0eSxjLGksYS5pZCksby5jdXJyZW50VmFsdWU9Yyx0Kyt9aWYodD1PYmplY3Qua2V5cyhpKS5sZW5ndGgpZm9yKG49MDtuPHQ7bisrKXh8fCh4PXcoZG9jdW1lbnQuYm9keSwidHJhbnNmb3JtIik/InRyYW5zZm9ybSI6Ii13ZWJraXQtdHJhbnNmb3JtIiksay5hbmltYXRhYmxlc1tuXS50YXJnZXQuc3R5bGVbeF09aVtuXS5qb2luKCIgIik7ay5jdXJyZW50VGltZT1lLGsucHJvZ3Jlc3M9ZS9rLmR1cmF0aW9uKjEwMH1mdW5jdGlvbiBwKHQpe2tbdF0mJmtbdF0oayl9ZnVuY3Rpb24gdigpe2sucmVtYWluaW5nJiYhMCE9PWsucmVtYWluaW5nJiZrLnJlbWFpbmluZy0tfWZ1bmN0aW9uIGUodCl7dmFyIGU9ay5kdXJhdGlvbixpPWsub2Zmc2V0LG49aStrLmRlbGF5LHM9ay5jdXJyZW50VGltZSxvPWsucmV2ZXJzZWQsYT11KHQpO2lmKGsuY2hpbGRyZW4ubGVuZ3RoKXt2YXIgcj1rLmNoaWxkcmVuLGw9ci5sZW5ndGg7aWYoYT49ay5jdXJyZW50VGltZSlmb3IodmFyIGg9MDtoPGw7aCsrKXJbaF0uc2VlayhhKTtlbHNlIGZvcig7bC0tOylyW2xdLnNlZWsoYSl9KG48PWF8fCFlKSYmKGsuYmVnYW58fChrLmJlZ2FuPSEwLHAoImJlZ2luIikpLHAoInJ1biIpKSxpPGEmJmE8ZT9jKGEpOihhPD1pJiYwIT09cyYmKGMoMCksbyYmdigpKSwoZTw9YSYmcyE9PWV8fCFlKSYmKGMoZSksb3x8digpKSkscCgidXBkYXRlIiksZTw9dCYmKGsucmVtYWluaW5nPyhtPWYsImFsdGVybmF0ZSI9PT1rLmRpcmVjdGlvbiYmKGsucmV2ZXJzZWQ9IWsucmV2ZXJzZWQpKTooay5wYXVzZSgpLGsuY29tcGxldGVkfHwoay5jb21wbGV0ZWQ9ITAscCgiY29tcGxldGUiKSwiUHJvbWlzZSJpbiB3aW5kb3cmJihfKCkseT1kKCkpKSksZz0wKX10PXZvaWQgMD09PXQ/e306dDt2YXIgZixtLGc9MCxfPW51bGwseT1kKCksaz1uKHQpO3JldHVybiBrLnJlc2V0PWZ1bmN0aW9uKCl7dmFyIHQ9ay5kaXJlY3Rpb24sZT1rLmxvb3A7Zm9yKGsuY3VycmVudFRpbWU9MCxrLnByb2dyZXNzPTAsay5wYXVzZWQ9ITAsay5iZWdhbj0hMSxrLmNvbXBsZXRlZD0hMSxrLnJldmVyc2VkPSJyZXZlcnNlIj09PXQsay5yZW1haW5pbmc9ImFsdGVybmF0ZSI9PT10JiYxPT09ZT8yOmUsYygwKSx0PWsuY2hpbGRyZW4ubGVuZ3RoO3QtLTspay5jaGlsZHJlblt0XS5yZXNldCgpfSxrLnRpY2s9ZnVuY3Rpb24odCl7Zj10LG18fChtPWYpLGUoKGcrZi1tKSpPLnNwZWVkKX0say5zZWVrPWZ1bmN0aW9uKHQpe2UodSh0KSl9LGsucGF1c2U9ZnVuY3Rpb24oKXt2YXIgdD1BLmluZGV4T2Yoayk7LTE8dCYmQS5zcGxpY2UodCwxKSxrLnBhdXNlZD0hMH0say5wbGF5PWZ1bmN0aW9uKCl7ay5wYXVzZWQmJihrLnBhdXNlZD0hMSxtPTAsZz11KGsuY3VycmVudFRpbWUpLEEucHVzaChrKSxSfHxIKCkpfSxrLnJldmVyc2U9ZnVuY3Rpb24oKXtrLnJldmVyc2VkPSFrLnJldmVyc2VkLG09MCxnPXUoay5jdXJyZW50VGltZSl9LGsucmVzdGFydD1mdW5jdGlvbigpe2sucGF1c2UoKSxrLnJlc2V0KCksay5wbGF5KCl9LGsuZmluaXNoZWQ9eSxrLnJlc2V0KCksay5hdXRvcGxheSYmay5wbGF5KCksa312YXIgeCxMPXt1cGRhdGU6dm9pZCAwLGJlZ2luOnZvaWQgMCxydW46dm9pZCAwLGNvbXBsZXRlOnZvaWQgMCxsb29wOjEsZGlyZWN0aW9uOiJub3JtYWwiLGF1dG9wbGF5OiEwLG9mZnNldDowfSxUPXtkdXJhdGlvbjoxZTMsZGVsYXk6MCxlYXNpbmc6ImVhc2VPdXRFbGFzdGljIixlbGFzdGljaXR5OjUwMCxyb3VuZDowfSwkPSJ0cmFuc2xhdGVYIHRyYW5zbGF0ZVkgdHJhbnNsYXRlWiByb3RhdGUgcm90YXRlWCByb3RhdGVZIHJvdGF0ZVogc2NhbGUgc2NhbGVYIHNjYWxlWSBzY2FsZVogc2tld1ggc2tld1kgcGVyc3BlY3RpdmUiLnNwbGl0KCIgIiksQj17YXJyOmZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfSxvYmo6ZnVuY3Rpb24odCl7cmV0dXJuLTE8T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLmluZGV4T2YoIk9iamVjdCIpfSxwdGg6ZnVuY3Rpb24odCl7cmV0dXJuIEIub2JqKHQpJiZ0Lmhhc093blByb3BlcnR5KCJ0b3RhbExlbmd0aCIpfSxzdmc6ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBTVkdFbGVtZW50fSxkb206ZnVuY3Rpb24odCl7cmV0dXJuIHQubm9kZVR5cGV8fEIuc3ZnKHQpfSxzdHI6ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fSxmbmM6ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9LHVuZDpmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dH0saGV4OmZ1bmN0aW9uKHQpe3JldHVybi8oXiNbMC05QS1GXXs2fSQpfCheI1swLTlBLUZdezN9JCkvaS50ZXN0KHQpfSxyZ2I6ZnVuY3Rpb24odCl7cmV0dXJuL15yZ2IvLnRlc3QodCl9LGhzbDpmdW5jdGlvbih0KXtyZXR1cm4vXmhzbC8udGVzdCh0KX0sY29sOmZ1bmN0aW9uKHQpe3JldHVybiBCLmhleCh0KXx8Qi5yZ2IodCl8fEIuaHNsKHQpfX0sRD1mdW5jdGlvbigpe2Z1bmN0aW9uIHUodCxlLGkpe3JldHVybigoKDEtMyppKzMqZSkqdCsoMyppLTYqZSkpKnQrMyplKSp0fXJldHVybiBmdW5jdGlvbihhLHIsbCxoKXtpZigwPD1hJiZhPD0xJiYwPD1sJiZsPD0xKXt2YXIgZD1uZXcgRmxvYXQzMkFycmF5KDExKTtpZihhIT09cnx8bCE9PWgpZm9yKHZhciB0PTA7dDwxMTsrK3QpZFt0XT11KC4xKnQsYSxsKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYoYT09PXImJmw9PT1oKXJldHVybiB0O2lmKDA9PT10KXJldHVybiAwO2lmKDE9PT10KXJldHVybiAxO2Zvcih2YXIgZT0wLGk9MTsxMCE9PWkmJmRbaV08PXQ7KytpKWUrPS4xO3ZhciBpPWUrKHQtZFstLWldKS8oZFtpKzFdLWRbaV0pKi4xLG49MyooMS0zKmwrMyphKSppKmkrMiooMypsLTYqYSkqaSszKmE7aWYoLjAwMTw9bil7Zm9yKGU9MDtlPDQmJjAhPShuPTMqKDEtMypsKzMqYSkqaSppKzIqKDMqbC02KmEpKmkrMyphKTsrK2UpdmFyIHM9dShpLGEsbCktdCxpPWktcy9uO3Q9aX1lbHNlIGlmKDA9PT1uKXQ9aTtlbHNle2Zvcih2YXIgaT1lLGU9ZSsuMSxvPTA7MDwobj11KHM9aSsoZS1pKS8yLGEsbCktdCk/ZT1zOmk9cywxZS03PE1hdGguYWJzKG4pJiYrK288MTA7KTt0PXN9cmV0dXJuIHUodCxyLGgpfX19fSgpLFM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQsZSl7cmV0dXJuIDA9PT10fHwxPT09dD90Oi1NYXRoLnBvdygyLDEwKih0LTEpKSpNYXRoLnNpbigyKih0LTEtZS8oMipNYXRoLlBJKSpNYXRoLmFzaW4oMSkpKk1hdGguUEkvZSl9dmFyIHQsbj0iUXVhZCBDdWJpYyBRdWFydCBRdWludCBTaW5lIEV4cG8gQ2lyYyBCYWNrIEVsYXN0aWMiLnNwbGl0KCIgIiksZT17SW46W1suNTUsLjA4NSwuNjgsLjUzXSxbLjU1LC4wNTUsLjY3NSwuMTldLFsuODk1LC4wMywuNjg1LC4yMl0sWy43NTUsLjA1LC44NTUsLjA2XSxbLjQ3LDAsLjc0NSwuNzE1XSxbLjk1LC4wNSwuNzk1LC4wMzVdLFsuNiwuMDQsLjk4LC4zMzVdLFsuNiwtLjI4LC43MzUsLjA0NV0saV0sT3V0OltbLjI1LC40NiwuNDUsLjk0XSxbLjIxNSwuNjEsLjM1NSwxXSxbLjE2NSwuODQsLjQ0LDFdLFsuMjMsMSwuMzIsMV0sWy4zOSwuNTc1LC41NjUsMV0sWy4xOSwxLC4yMiwxXSxbLjA3NSwuODIsLjE2NSwxXSxbLjE3NSwuODg1LC4zMiwxLjI3NV0sZnVuY3Rpb24odCxlKXtyZXR1cm4gMS1pKDEtdCxlKX1dLEluT3V0OltbLjQ1NSwuMDMsLjUxNSwuOTU1XSxbLjY0NSwuMDQ1LC4zNTUsMV0sWy43NywwLC4xNzUsMV0sWy44NiwwLC4wNywxXSxbLjQ0NSwuMDUsLjU1LC45NV0sWzEsMCwwLDFdLFsuNzg1LC4xMzUsLjE1LC44Nl0sWy42OCwtLjU1LC4yNjUsMS41NV0sZnVuY3Rpb24odCxlKXtyZXR1cm4gdDwuNT9pKDIqdCxlKS8yOjEtaSgtMip0KzIsZSkvMn1dfSxzPXtsaW5lYXI6RCguMjUsLjI1LC43NSwuNzUpfSxvPXt9O2Zvcih0IGluIGUpby50eXBlPXQsZVtvLnR5cGVdLmZvckVhY2goZnVuY3Rpb24oaSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7c1siZWFzZSIraS50eXBlK25bZV1dPUIuZm5jKHQpP3Q6RC5hcHBseSgkanNjb21wJHRoaXMsdCl9fShvKSksbz17dHlwZTpvLnR5cGV9O3JldHVybiBzfSgpLEk9e2NzczpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIHQuc3R5bGVbZV09aX0sYXR0cmlidXRlOmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoZSxpKX0sb2JqZWN0OmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gdFtlXT1pfSx0cmFuc2Zvcm06ZnVuY3Rpb24odCxlLGksbixzKXtuW3NdfHwobltzXT1bXSksbltzXS5wdXNoKGUrIigiK2krIikiKX19LEE9W10sUj0wLEg9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKCl7Uj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9ZnVuY3Rpb24gdCh0KXt2YXIgZT1BLmxlbmd0aDtpZihlKXtmb3IodmFyIGk9MDtpPGU7KUFbaV0mJkFbaV0udGljayh0KSxpKys7bigpfWVsc2UgY2FuY2VsQW5pbWF0aW9uRnJhbWUoUiksUj0wfXJldHVybiBufSgpO3JldHVybiBPLnZlcnNpb249IjIuMi4wIixPLnNwZWVkPTEsTy5ydW5uaW5nPUEsTy5yZW1vdmU9ZnVuY3Rpb24odCl7dD15KHQpO2Zvcih2YXIgZT1BLmxlbmd0aDtlLS07KWZvcih2YXIgaT1BW2VdLG49aS5hbmltYXRpb25zLHM9bi5sZW5ndGg7cy0tOylhKHQsbltzXS5hbmltYXRhYmxlLnRhcmdldCkmJihuLnNwbGljZShzLDEpLG4ubGVuZ3RofHxpLnBhdXNlKCkpfSxPLmdldFZhbHVlPXYsTy5wYXRoPWZ1bmN0aW9uKHQsZSl7dmFyIGk9Qi5zdHIodCk/cyh0KVswXTp0LG49ZXx8MTAwO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm57ZWw6aSxwcm9wZXJ0eTp0LHRvdGFsTGVuZ3RoOmcoaSkqKG4vMTAwKX19fSxPLnNldERhc2hvZmZzZXQ9ZnVuY3Rpb24odCl7dmFyIGU9Zyh0KTtyZXR1cm4gdC5zZXRBdHRyaWJ1dGUoInN0cm9rZS1kYXNoYXJyYXkiLGUpLGV9LE8uYmV6aWVyPUQsTy5lYXNpbmdzPVMsTy50aW1lbGluZT1mdW5jdGlvbihuKXt2YXIgcz1PKG4pO3JldHVybiBzLnBhdXNlKCkscy5kdXJhdGlvbj0wLHMuYWRkPWZ1bmN0aW9uKHQpe3JldHVybiBzLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24odCl7dC5iZWdhbj0hMCx0LmNvbXBsZXRlZD0hMH0pLG8odCkuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1jKHQsdShULG58fHt9KSk7ZS50YXJnZXRzPWUudGFyZ2V0c3x8bi50YXJnZXRzLHQ9cy5kdXJhdGlvbjt2YXIgaT1lLm9mZnNldDtlLmF1dG9wbGF5PSExLGUuZGlyZWN0aW9uPXMuZGlyZWN0aW9uLGUub2Zmc2V0PUIudW5kKGkpP3Q6ZihpLHQpLHMuYmVnYW49ITAscy5jb21wbGV0ZWQ9ITAscy5zZWVrKGUub2Zmc2V0KSwoZT1PKGUpKS5iZWdhbj0hMCxlLmNvbXBsZXRlZD0hMCxlLmR1cmF0aW9uPnQmJihzLmR1cmF0aW9uPWUuZHVyYXRpb24pLHMuY2hpbGRyZW4ucHVzaChlKX0pLHMuc2VlaygwKSxzLnJlc2V0KCkscy5hdXRvcGxheSYmcy5yZXN0YXJ0KCksc30sc30sTy5yYW5kb209ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKihlLXQrMSkpK3R9LE99KCksZnVuY3Rpb24ocixsKXsidXNlIHN0cmljdCI7dmFyIGU9e2FjY29yZGlvbjohMCxvbk9wZW5TdGFydDp2b2lkIDAsb25PcGVuRW5kOnZvaWQgMCxvbkNsb3NlU3RhcnQ6dm9pZCAwLG9uQ2xvc2VFbmQ6dm9pZCAwLGluRHVyYXRpb246MzAwLG91dER1cmF0aW9uOjMwMH0sdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBzKHQsZSl7X2NsYXNzQ2FsbENoZWNrKHRoaXMscyk7dmFyIGk9X3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywocy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihzKSkuY2FsbCh0aGlzLHMsdCxlKSk7KGkuZWwuTV9Db2xsYXBzaWJsZT1pKS5vcHRpb25zPXIuZXh0ZW5kKHt9LHMuZGVmYXVsdHMsZSksaS4kaGVhZGVycz1pLiRlbC5jaGlsZHJlbigibGkiKS5jaGlsZHJlbigiLmNvbGxhcHNpYmxlLWhlYWRlciIpLGkuJGhlYWRlcnMuYXR0cigidGFiaW5kZXgiLDApLGkuX3NldHVwRXZlbnRIYW5kbGVycygpO3ZhciBuPWkuJGVsLmNoaWxkcmVuKCJsaS5hY3RpdmUiKS5jaGlsZHJlbigiLmNvbGxhcHNpYmxlLWJvZHkiKTtyZXR1cm4gaS5vcHRpb25zLmFjY29yZGlvbj9uLmZpcnN0KCkuY3NzKCJkaXNwbGF5IiwiYmxvY2siKTpuLmNzcygiZGlzcGxheSIsImJsb2NrIiksaX1yZXR1cm4gX2luaGVyaXRzKHMsQ29tcG9uZW50KSxfY3JlYXRlQ2xhc3Mocyxbe2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVFdmVudEhhbmRsZXJzKCksdGhpcy5lbC5NX0NvbGxhcHNpYmxlPXZvaWQgMH19LHtrZXk6Il9zZXR1cEV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9oYW5kbGVDb2xsYXBzaWJsZUNsaWNrQm91bmQ9dGhpcy5faGFuZGxlQ29sbGFwc2libGVDbGljay5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZUNvbGxhcHNpYmxlS2V5ZG93bkJvdW5kPXRoaXMuX2hhbmRsZUNvbGxhcHNpYmxlS2V5ZG93bi5iaW5kKHRoaXMpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZUNvbGxhcHNpYmxlQ2xpY2tCb3VuZCksdGhpcy4kaGVhZGVycy5lYWNoKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZS5faGFuZGxlQ29sbGFwc2libGVLZXlkb3duQm91bmQpfSl9fSx7a2V5OiJfcmVtb3ZlRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZUNvbGxhcHNpYmxlQ2xpY2tCb3VuZCksdGhpcy4kaGVhZGVycy5lYWNoKGZ1bmN0aW9uKHQpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZS5faGFuZGxlQ29sbGFwc2libGVLZXlkb3duQm91bmQpfSl9fSx7a2V5OiJfaGFuZGxlQ29sbGFwc2libGVDbGljayIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9cih0LnRhcmdldCkuY2xvc2VzdCgiLmNvbGxhcHNpYmxlLWhlYWRlciIpO2lmKHQudGFyZ2V0JiZlLmxlbmd0aCl7dmFyIGk9ZS5jbG9zZXN0KCIuY29sbGFwc2libGUiKTtpZihpWzBdPT09dGhpcy5lbCl7dmFyIG49ZS5jbG9zZXN0KCJsaSIpLHM9aS5jaGlsZHJlbigibGkiKSxvPW5bMF0uY2xhc3NMaXN0LmNvbnRhaW5zKCJhY3RpdmUiKSxhPXMuaW5kZXgobik7bz90aGlzLmNsb3NlKGEpOnRoaXMub3BlbihhKX19fX0se2tleToiX2hhbmRsZUNvbGxhcHNpYmxlS2V5ZG93biIsdmFsdWU6ZnVuY3Rpb24odCl7MTM9PT10LmtleUNvZGUmJnRoaXMuX2hhbmRsZUNvbGxhcHNpYmxlQ2xpY2tCb3VuZCh0KX19LHtrZXk6Il9hbmltYXRlSW4iLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLiRlbC5jaGlsZHJlbigibGkiKS5lcSh0KTtpZihpLmxlbmd0aCl7dmFyIG49aS5jaGlsZHJlbigiLmNvbGxhcHNpYmxlLWJvZHkiKTtsLnJlbW92ZShuWzBdKSxuLmNzcyh7ZGlzcGxheToiYmxvY2siLG92ZXJmbG93OiJoaWRkZW4iLGhlaWdodDowLHBhZGRpbmdUb3A6IiIscGFkZGluZ0JvdHRvbToiIn0pO3ZhciBzPW4uY3NzKCJwYWRkaW5nLXRvcCIpLG89bi5jc3MoInBhZGRpbmctYm90dG9tIiksYT1uWzBdLnNjcm9sbEhlaWdodDtuLmNzcyh7cGFkZGluZ1RvcDowLHBhZGRpbmdCb3R0b206MH0pLGwoe3RhcmdldHM6blswXSxoZWlnaHQ6YSxwYWRkaW5nVG9wOnMscGFkZGluZ0JvdHRvbTpvLGR1cmF0aW9uOnRoaXMub3B0aW9ucy5pbkR1cmF0aW9uLGVhc2luZzoiZWFzZUluT3V0Q3ViaWMiLGNvbXBsZXRlOmZ1bmN0aW9uKHQpe24uY3NzKHtvdmVyZmxvdzoiIixwYWRkaW5nVG9wOiIiLHBhZGRpbmdCb3R0b206IiIsaGVpZ2h0OiIifSksImZ1bmN0aW9uIj09dHlwZW9mIGUub3B0aW9ucy5vbk9wZW5FbmQmJmUub3B0aW9ucy5vbk9wZW5FbmQuY2FsbChlLGlbMF0pfX0pfX19LHtrZXk6Il9hbmltYXRlT3V0Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy4kZWwuY2hpbGRyZW4oImxpIikuZXEodCk7aWYoaS5sZW5ndGgpe3ZhciBuPWkuY2hpbGRyZW4oIi5jb2xsYXBzaWJsZS1ib2R5Iik7bC5yZW1vdmUoblswXSksbi5jc3MoIm92ZXJmbG93IiwiaGlkZGVuIiksbCh7dGFyZ2V0czpuWzBdLGhlaWdodDowLHBhZGRpbmdUb3A6MCxwYWRkaW5nQm90dG9tOjAsZHVyYXRpb246dGhpcy5vcHRpb25zLm91dER1cmF0aW9uLGVhc2luZzoiZWFzZUluT3V0Q3ViaWMiLGNvbXBsZXRlOmZ1bmN0aW9uKCl7bi5jc3Moe2hlaWdodDoiIixvdmVyZmxvdzoiIixwYWRkaW5nOiIiLGRpc3BsYXk6IiJ9KSwiZnVuY3Rpb24iPT10eXBlb2YgZS5vcHRpb25zLm9uQ2xvc2VFbmQmJmUub3B0aW9ucy5vbkNsb3NlRW5kLmNhbGwoZSxpWzBdKX19KX19fSx7a2V5OiJvcGVuIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgaT10aGlzLGU9dGhpcy4kZWwuY2hpbGRyZW4oImxpIikuZXEodCk7aWYoZS5sZW5ndGgmJiFlWzBdLmNsYXNzTGlzdC5jb250YWlucygiYWN0aXZlIikpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMub25PcGVuU3RhcnQmJnRoaXMub3B0aW9ucy5vbk9wZW5TdGFydC5jYWxsKHRoaXMsZVswXSksdGhpcy5vcHRpb25zLmFjY29yZGlvbil7dmFyIG49dGhpcy4kZWwuY2hpbGRyZW4oImxpIik7dGhpcy4kZWwuY2hpbGRyZW4oImxpLmFjdGl2ZSIpLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9bi5pbmRleChyKHQpKTtpLmNsb3NlKGUpfSl9ZVswXS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSx0aGlzLl9hbmltYXRlSW4odCl9fX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJGVsLmNoaWxkcmVuKCJsaSIpLmVxKHQpO2UubGVuZ3RoJiZlWzBdLmNsYXNzTGlzdC5jb250YWlucygiYWN0aXZlIikmJigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLm9uQ2xvc2VTdGFydCYmdGhpcy5vcHRpb25zLm9uQ2xvc2VTdGFydC5jYWxsKHRoaXMsZVswXSksZVswXS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSx0aGlzLl9hbmltYXRlT3V0KHQpKX19XSxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gX2dldChzLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHMpLCJpbml0Iix0aGlzKS5jYWxsKHRoaXMsdGhpcyx0LGUpfX0se2tleToiZ2V0SW5zdGFuY2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybih0LmpxdWVyeT90WzBdOnQpLk1fQ29sbGFwc2libGV9fSx7a2V5OiJkZWZhdWx0cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGV9fV0pLHN9KCk7TS5Db2xsYXBzaWJsZT10LE0ualF1ZXJ5TG9hZGVkJiZNLmluaXRpYWxpemVKcXVlcnlXcmFwcGVyKHQsImNvbGxhcHNpYmxlIiwiTV9Db2xsYXBzaWJsZSIpfShjYXNoLE0uYW5pbWUpLGZ1bmN0aW9uKGgsaSl7InVzZSBzdHJpY3QiO3ZhciBlPXthbGlnbm1lbnQ6ImxlZnQiLGF1dG9Gb2N1czohMCxjb25zdHJhaW5XaWR0aDohMCxjb250YWluZXI6bnVsbCxjb3ZlclRyaWdnZXI6ITAsY2xvc2VPbkNsaWNrOiEwLGhvdmVyOiExLGluRHVyYXRpb246MTUwLG91dER1cmF0aW9uOjI1MCxvbk9wZW5TdGFydDpudWxsLG9uT3BlbkVuZDpudWxsLG9uQ2xvc2VTdGFydDpudWxsLG9uQ2xvc2VFbmQ6bnVsbCxvbkl0ZW1DbGljazpudWxsfSx0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCxlKXtfY2xhc3NDYWxsQ2hlY2sodGhpcyxuKTt2YXIgaT1fcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLChuLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pKS5jYWxsKHRoaXMsbix0LGUpKTtyZXR1cm4gaS5lbC5NX0Ryb3Bkb3duPWksbi5fZHJvcGRvd25zLnB1c2goaSksaS5pZD1NLmdldElkRnJvbVRyaWdnZXIodCksaS5kcm9wZG93bkVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGkuaWQpLGkuJGRyb3Bkb3duRWw9aChpLmRyb3Bkb3duRWwpLGkub3B0aW9ucz1oLmV4dGVuZCh7fSxuLmRlZmF1bHRzLGUpLGkuaXNPcGVuPSExLGkuaXNTY3JvbGxhYmxlPSExLGkuaXNUb3VjaE1vdmluZz0hMSxpLmZvY3VzZWRJbmRleD0tMSxpLmZpbHRlclF1ZXJ5PVtdLGkub3B0aW9ucy5jb250YWluZXI/aChpLm9wdGlvbnMuY29udGFpbmVyKS5hcHBlbmQoaS5kcm9wZG93bkVsKTppLiRlbC5hZnRlcihpLmRyb3Bkb3duRWwpLGkuX21ha2VEcm9wZG93bkZvY3VzYWJsZSgpLGkuX3Jlc2V0RmlsdGVyUXVlcnlCb3VuZD1pLl9yZXNldEZpbHRlclF1ZXJ5LmJpbmQoaSksaS5faGFuZGxlRG9jdW1lbnRDbGlja0JvdW5kPWkuX2hhbmRsZURvY3VtZW50Q2xpY2suYmluZChpKSxpLl9oYW5kbGVEb2N1bWVudFRvdWNobW92ZUJvdW5kPWkuX2hhbmRsZURvY3VtZW50VG91Y2htb3ZlLmJpbmQoaSksaS5faGFuZGxlRHJvcGRvd25DbGlja0JvdW5kPWkuX2hhbmRsZURyb3Bkb3duQ2xpY2suYmluZChpKSxpLl9oYW5kbGVEcm9wZG93bktleWRvd25Cb3VuZD1pLl9oYW5kbGVEcm9wZG93bktleWRvd24uYmluZChpKSxpLl9oYW5kbGVUcmlnZ2VyS2V5ZG93bkJvdW5kPWkuX2hhbmRsZVRyaWdnZXJLZXlkb3duLmJpbmQoaSksaS5fc2V0dXBFdmVudEhhbmRsZXJzKCksaX1yZXR1cm4gX2luaGVyaXRzKG4sQ29tcG9uZW50KSxfY3JlYXRlQ2xhc3Mobixbe2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9yZXNldERyb3Bkb3duU3R5bGVzKCksdGhpcy5fcmVtb3ZlRXZlbnRIYW5kbGVycygpLG4uX2Ryb3Bkb3ducy5zcGxpY2Uobi5fZHJvcGRvd25zLmluZGV4T2YodGhpcyksMSksdGhpcy5lbC5NX0Ryb3Bkb3duPXZvaWQgMH19LHtrZXk6Il9zZXR1cEV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9oYW5kbGVUcmlnZ2VyS2V5ZG93bkJvdW5kKSx0aGlzLmRyb3Bkb3duRWwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZURyb3Bkb3duQ2xpY2tCb3VuZCksdGhpcy5vcHRpb25zLmhvdmVyPyh0aGlzLl9oYW5kbGVNb3VzZUVudGVyQm91bmQ9dGhpcy5faGFuZGxlTW91c2VFbnRlci5iaW5kKHRoaXMpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdGhpcy5faGFuZGxlTW91c2VFbnRlckJvdW5kKSx0aGlzLl9oYW5kbGVNb3VzZUxlYXZlQm91bmQ9dGhpcy5faGFuZGxlTW91c2VMZWF2ZS5iaW5kKHRoaXMpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5faGFuZGxlTW91c2VMZWF2ZUJvdW5kKSx0aGlzLmRyb3Bkb3duRWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5faGFuZGxlTW91c2VMZWF2ZUJvdW5kKSk6KHRoaXMuX2hhbmRsZUNsaWNrQm91bmQ9dGhpcy5faGFuZGxlQ2xpY2suYmluZCh0aGlzKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVDbGlja0JvdW5kKSl9fSx7a2V5OiJfcmVtb3ZlRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2hhbmRsZVRyaWdnZXJLZXlkb3duQm91bmQpLHRoaXMuZHJvcGRvd25FbC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFuZGxlRHJvcGRvd25DbGlja0JvdW5kKSx0aGlzLm9wdGlvbnMuaG92ZXI/KHRoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdGhpcy5faGFuZGxlTW91c2VFbnRlckJvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX2hhbmRsZU1vdXNlTGVhdmVCb3VuZCksdGhpcy5kcm9wZG93bkVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX2hhbmRsZU1vdXNlTGVhdmVCb3VuZCkpOnRoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZUNsaWNrQm91bmQpfX0se2tleToiX3NldHVwVGVtcG9yYXJ5RXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVEb2N1bWVudENsaWNrQm91bmQsITApLGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX2hhbmRsZURvY3VtZW50Q2xpY2tCb3VuZCksZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX2hhbmRsZURvY3VtZW50VG91Y2htb3ZlQm91bmQpLHRoaXMuZHJvcGRvd25FbC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9oYW5kbGVEcm9wZG93bktleWRvd25Cb3VuZCl9fSx7a2V5OiJfcmVtb3ZlVGVtcG9yYXJ5RXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVEb2N1bWVudENsaWNrQm91bmQsITApLGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX2hhbmRsZURvY3VtZW50Q2xpY2tCb3VuZCksZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX2hhbmRsZURvY3VtZW50VG91Y2htb3ZlQm91bmQpLHRoaXMuZHJvcGRvd25FbC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9oYW5kbGVEcm9wZG93bktleWRvd25Cb3VuZCl9fSx7a2V5OiJfaGFuZGxlQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0aGlzLm9wZW4oKX19LHtrZXk6Il9oYW5kbGVNb3VzZUVudGVyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMub3BlbigpfX0se2tleToiX2hhbmRsZU1vdXNlTGVhdmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQudG9FbGVtZW50fHx0LnJlbGF0ZWRUYXJnZXQsaT0hIWgoZSkuY2xvc2VzdCgiLmRyb3Bkb3duLWNvbnRlbnQiKS5sZW5ndGgsbj0hMSxzPWgoZSkuY2xvc2VzdCgiLmRyb3Bkb3duLXRyaWdnZXIiKTtzLmxlbmd0aCYmc1swXS5NX0Ryb3Bkb3duJiZzWzBdLk1fRHJvcGRvd24uaXNPcGVuJiYobj0hMCksbnx8aXx8dGhpcy5jbG9zZSgpfX0se2tleToiX2hhbmRsZURvY3VtZW50Q2xpY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1oKHQudGFyZ2V0KTt0aGlzLm9wdGlvbnMuY2xvc2VPbkNsaWNrJiZpLmNsb3Nlc3QoIi5kcm9wZG93bi1jb250ZW50IikubGVuZ3RoJiYhdGhpcy5pc1RvdWNoTW92aW5nP3NldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmNsb3NlKCl9LDApOiFpLmNsb3Nlc3QoIi5kcm9wZG93bi10cmlnZ2VyIikubGVuZ3RoJiZpLmNsb3Nlc3QoIi5kcm9wZG93bi1jb250ZW50IikubGVuZ3RofHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5jbG9zZSgpfSwwKSx0aGlzLmlzVG91Y2hNb3Zpbmc9ITF9fSx7a2V5OiJfaGFuZGxlVHJpZ2dlcktleWRvd24iLHZhbHVlOmZ1bmN0aW9uKHQpe3Qud2hpY2ghPT1NLmtleXMuQVJST1dfRE9XTiYmdC53aGljaCE9PU0ua2V5cy5FTlRFUnx8dGhpcy5pc09wZW58fCh0LnByZXZlbnREZWZhdWx0KCksdGhpcy5vcGVuKCkpfX0se2tleToiX2hhbmRsZURvY3VtZW50VG91Y2htb3ZlIix2YWx1ZTpmdW5jdGlvbih0KXtoKHQudGFyZ2V0KS5jbG9zZXN0KCIuZHJvcGRvd24tY29udGVudCIpLmxlbmd0aCYmKHRoaXMuaXNUb3VjaE1vdmluZz0hMCl9fSx7a2V5OiJfaGFuZGxlRHJvcGRvd25DbGljayIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5vbkl0ZW1DbGljayl7dmFyIGU9aCh0LnRhcmdldCkuY2xvc2VzdCgibGkiKVswXTt0aGlzLm9wdGlvbnMub25JdGVtQ2xpY2suY2FsbCh0aGlzLGUpfX19LHtrZXk6Il9oYW5kbGVEcm9wZG93bktleWRvd24iLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHQud2hpY2g9PT1NLmtleXMuVEFCKXQucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlKCk7ZWxzZSBpZih0LndoaWNoIT09TS5rZXlzLkFSUk9XX0RPV04mJnQud2hpY2ghPT1NLmtleXMuQVJST1dfVVB8fCF0aGlzLmlzT3BlbilpZih0LndoaWNoPT09TS5rZXlzLkVOVEVSJiZ0aGlzLmlzT3Blbil7dmFyIGU9dGhpcy5kcm9wZG93bkVsLmNoaWxkcmVuW3RoaXMuZm9jdXNlZEluZGV4XSxpPWgoZSkuZmluZCgiYSwgYnV0dG9uIikuZmlyc3QoKTtpLmxlbmd0aD9pWzBdLmNsaWNrKCk6ZSYmZS5jbGljaygpfWVsc2UgdC53aGljaD09PU0ua2V5cy5FU0MmJnRoaXMuaXNPcGVuJiYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2xvc2UoKSk7ZWxzZXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIG49dC53aGljaD09PU0ua2V5cy5BUlJPV19ET1dOPzE6LTEscz10aGlzLmZvY3VzZWRJbmRleCxvPSExO2Rve2lmKHMrPW4sdGhpcy5kcm9wZG93bkVsLmNoaWxkcmVuW3NdJiYtMSE9PXRoaXMuZHJvcGRvd25FbC5jaGlsZHJlbltzXS50YWJJbmRleCl7bz0hMDticmVha319d2hpbGUoczx0aGlzLmRyb3Bkb3duRWwuY2hpbGRyZW4ubGVuZ3RoJiYwPD1zKTtvJiYodGhpcy5mb2N1c2VkSW5kZXg9cyx0aGlzLl9mb2N1c0ZvY3VzZWRJdGVtKCkpfXZhciBhPVN0cmluZy5mcm9tQ2hhckNvZGUodC53aGljaCkudG9Mb3dlckNhc2UoKTtpZihhJiYtMT09PVs5LDEzLDI3LDM4LDQwXS5pbmRleE9mKHQud2hpY2gpKXt0aGlzLmZpbHRlclF1ZXJ5LnB1c2goYSk7dmFyIHI9dGhpcy5maWx0ZXJRdWVyeS5qb2luKCIiKSxsPWgodGhpcy5kcm9wZG93bkVsKS5maW5kKCJsaSIpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gMD09PWgodCkudGV4dCgpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihyKX0pWzBdO2wmJih0aGlzLmZvY3VzZWRJbmRleD1oKGwpLmluZGV4KCksdGhpcy5fZm9jdXNGb2N1c2VkSXRlbSgpKX10aGlzLmZpbHRlclRpbWVvdXQ9c2V0VGltZW91dCh0aGlzLl9yZXNldEZpbHRlclF1ZXJ5Qm91bmQsMWUzKX19LHtrZXk6Il9yZXNldEZpbHRlclF1ZXJ5Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZmlsdGVyUXVlcnk9W119fSx7a2V5OiJfcmVzZXREcm9wZG93blN0eWxlcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLiRkcm9wZG93bkVsLmNzcyh7ZGlzcGxheToiIix3aWR0aDoiIixoZWlnaHQ6IiIsbGVmdDoiIix0b3A6IiIsInRyYW5zZm9ybS1vcmlnaW4iOiIiLHRyYW5zZm9ybToiIixvcGFjaXR5OiIifSl9fSx7a2V5OiJfbWFrZURyb3Bkb3duRm9jdXNhYmxlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZHJvcGRvd25FbC50YWJJbmRleD0wLGgodGhpcy5kcm9wZG93bkVsKS5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24odCl7dC5nZXRBdHRyaWJ1dGUoInRhYmluZGV4Iil8fHQuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsMCl9KX19LHtrZXk6Il9mb2N1c0ZvY3VzZWRJdGVtIix2YWx1ZTpmdW5jdGlvbigpezA8PXRoaXMuZm9jdXNlZEluZGV4JiZ0aGlzLmZvY3VzZWRJbmRleDx0aGlzLmRyb3Bkb3duRWwuY2hpbGRyZW4ubGVuZ3RoJiZ0aGlzLm9wdGlvbnMuYXV0b0ZvY3VzJiZ0aGlzLmRyb3Bkb3duRWwuY2hpbGRyZW5bdGhpcy5mb2N1c2VkSW5kZXhdLmZvY3VzKCl9fSx7a2V5OiJfZ2V0RHJvcGRvd25Qb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsLm9mZnNldFBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt2YXIgdD10aGlzLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGU9dGhpcy5kcm9wZG93bkVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9ZS5oZWlnaHQsbj1lLndpZHRoLHM9dC5sZWZ0LWUubGVmdCxvPXQudG9wLWUudG9wLGE9e2xlZnQ6cyx0b3A6byxoZWlnaHQ6aSx3aWR0aDpufSxyPXRoaXMuZHJvcGRvd25FbC5vZmZzZXRQYXJlbnQ/dGhpcy5kcm9wZG93bkVsLm9mZnNldFBhcmVudDp0aGlzLmRyb3Bkb3duRWwucGFyZW50Tm9kZSxsPU0uY2hlY2tQb3NzaWJsZUFsaWdubWVudHModGhpcy5lbCxyLGEsdGhpcy5vcHRpb25zLmNvdmVyVHJpZ2dlcj8wOnQuaGVpZ2h0KSxoPSJ0b3AiLGQ9dGhpcy5vcHRpb25zLmFsaWdubWVudDtpZihvKz10aGlzLm9wdGlvbnMuY292ZXJUcmlnZ2VyPzA6dC5oZWlnaHQsdGhpcy5pc1Njcm9sbGFibGU9ITEsbC50b3B8fChsLmJvdHRvbT9oPSJib3R0b20iOih0aGlzLmlzU2Nyb2xsYWJsZT0hMCxsLnNwYWNlT25Ub3A+bC5zcGFjZU9uQm90dG9tPyhoPSJib3R0b20iLGkrPWwuc3BhY2VPblRvcCxvLT1sLnNwYWNlT25Ub3ApOmkrPWwuc3BhY2VPbkJvdHRvbSkpLCFsW2RdKXt2YXIgdT0ibGVmdCI9PT1kPyJyaWdodCI6ImxlZnQiO2xbdV0/ZD11Omwuc3BhY2VPbkxlZnQ+bC5zcGFjZU9uUmlnaHQ/KGQ9InJpZ2h0IixuKz1sLnNwYWNlT25MZWZ0LHMtPWwuc3BhY2VPbkxlZnQpOihkPSJsZWZ0IixuKz1sLnNwYWNlT25SaWdodCl9cmV0dXJuImJvdHRvbSI9PT1oJiYobz1vLWUuaGVpZ2h0Kyh0aGlzLm9wdGlvbnMuY292ZXJUcmlnZ2VyP3QuaGVpZ2h0OjApKSwicmlnaHQiPT09ZCYmKHM9cy1lLndpZHRoK3Qud2lkdGgpLHt4OnMseTpvLHZlcnRpY2FsQWxpZ25tZW50OmgsaG9yaXpvbnRhbEFsaWdubWVudDpkLGhlaWdodDppLHdpZHRoOm59fX0se2tleToiX2FuaW1hdGVJbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2kucmVtb3ZlKHRoaXMuZHJvcGRvd25FbCksaSh7dGFyZ2V0czp0aGlzLmRyb3Bkb3duRWwsb3BhY2l0eTp7dmFsdWU6WzAsMV0sZWFzaW5nOiJlYXNlT3V0UXVhZCJ9LHNjYWxlWDpbLjMsMV0sc2NhbGVZOlsuMywxXSxkdXJhdGlvbjp0aGlzLm9wdGlvbnMuaW5EdXJhdGlvbixlYXNpbmc6ImVhc2VPdXRRdWludCIsY29tcGxldGU6ZnVuY3Rpb24odCl7ZS5vcHRpb25zLmF1dG9Gb2N1cyYmZS5kcm9wZG93bkVsLmZvY3VzKCksImZ1bmN0aW9uIj09dHlwZW9mIGUub3B0aW9ucy5vbk9wZW5FbmQmJmUub3B0aW9ucy5vbk9wZW5FbmQuY2FsbChlLGUuZWwpfX0pfX0se2tleToiX2FuaW1hdGVPdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpLnJlbW92ZSh0aGlzLmRyb3Bkb3duRWwpLGkoe3RhcmdldHM6dGhpcy5kcm9wZG93bkVsLG9wYWNpdHk6e3ZhbHVlOjAsZWFzaW5nOiJlYXNlT3V0UXVpbnQifSxzY2FsZVg6LjMsc2NhbGVZOi4zLGR1cmF0aW9uOnRoaXMub3B0aW9ucy5vdXREdXJhdGlvbixlYXNpbmc6ImVhc2VPdXRRdWludCIsY29tcGxldGU6ZnVuY3Rpb24odCl7ZS5fcmVzZXREcm9wZG93blN0eWxlcygpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLm9wdGlvbnMub25DbG9zZUVuZCYmZS5vcHRpb25zLm9uQ2xvc2VFbmQuY2FsbChlLGUuZWwpfX0pfX0se2tleToiX3BsYWNlRHJvcGRvd24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLmNvbnN0cmFpbldpZHRoP3RoaXMuZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg6dGhpcy5kcm9wZG93bkVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO3RoaXMuZHJvcGRvd25FbC5zdHlsZS53aWR0aD10KyJweCI7dmFyIGU9dGhpcy5fZ2V0RHJvcGRvd25Qb3NpdGlvbigpO3RoaXMuZHJvcGRvd25FbC5zdHlsZS5sZWZ0PWUueCsicHgiLHRoaXMuZHJvcGRvd25FbC5zdHlsZS50b3A9ZS55KyJweCIsdGhpcy5kcm9wZG93bkVsLnN0eWxlLmhlaWdodD1lLmhlaWdodCsicHgiLHRoaXMuZHJvcGRvd25FbC5zdHlsZS53aWR0aD1lLndpZHRoKyJweCIsdGhpcy5kcm9wZG93bkVsLnN0eWxlLnRyYW5zZm9ybU9yaWdpbj0oImxlZnQiPT09ZS5ob3Jpem9udGFsQWxpZ25tZW50PyIwIjoiMTAwJSIpKyIgIisoInRvcCI9PT1lLnZlcnRpY2FsQWxpZ25tZW50PyIwIjoiMTAwJSIpfX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzT3Blbnx8KHRoaXMuaXNPcGVuPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMub25PcGVuU3RhcnQmJnRoaXMub3B0aW9ucy5vbk9wZW5TdGFydC5jYWxsKHRoaXMsdGhpcy5lbCksdGhpcy5fcmVzZXREcm9wZG93blN0eWxlcygpLHRoaXMuZHJvcGRvd25FbC5zdHlsZS5kaXNwbGF5PSJibG9jayIsdGhpcy5fcGxhY2VEcm9wZG93bigpLHRoaXMuX2FuaW1hdGVJbigpLHRoaXMuX3NldHVwVGVtcG9yYXJ5RXZlbnRIYW5kbGVycygpKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXNPcGVuJiYodGhpcy5pc09wZW49ITEsdGhpcy5mb2N1c2VkSW5kZXg9LTEsImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5vbkNsb3NlU3RhcnQmJnRoaXMub3B0aW9ucy5vbkNsb3NlU3RhcnQuY2FsbCh0aGlzLHRoaXMuZWwpLHRoaXMuX2FuaW1hdGVPdXQoKSx0aGlzLl9yZW1vdmVUZW1wb3JhcnlFdmVudEhhbmRsZXJzKCksdGhpcy5vcHRpb25zLmF1dG9Gb2N1cyYmdGhpcy5lbC5mb2N1cygpKX19LHtrZXk6InJlY2FsY3VsYXRlRGltZW5zaW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzT3BlbiYmKHRoaXMuJGRyb3Bkb3duRWwuY3NzKHt3aWR0aDoiIixoZWlnaHQ6IiIsbGVmdDoiIix0b3A6IiIsInRyYW5zZm9ybS1vcmlnaW4iOiIifSksdGhpcy5fcGxhY2VEcm9wZG93bigpKX19XSxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gX2dldChuLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pLCJpbml0Iix0aGlzKS5jYWxsKHRoaXMsdGhpcyx0LGUpfX0se2tleToiZ2V0SW5zdGFuY2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybih0LmpxdWVyeT90WzBdOnQpLk1fRHJvcGRvd259fSx7a2V5OiJkZWZhdWx0cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGV9fV0pLG59KCk7dC5fZHJvcGRvd25zPVtdLE0uRHJvcGRvd249dCxNLmpRdWVyeUxvYWRlZCYmTS5pbml0aWFsaXplSnF1ZXJ5V3JhcHBlcih0LCJkcm9wZG93biIsIk1fRHJvcGRvd24iKX0oY2FzaCxNLmFuaW1lKSxmdW5jdGlvbihzLGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT17b3BhY2l0eTouNSxpbkR1cmF0aW9uOjI1MCxvdXREdXJhdGlvbjoyNTAsb25PcGVuU3RhcnQ6bnVsbCxvbk9wZW5FbmQ6bnVsbCxvbkNsb3NlU3RhcnQ6bnVsbCxvbkNsb3NlRW5kOm51bGwscHJldmVudFNjcm9sbGluZzohMCxkaXNtaXNzaWJsZTohMCxzdGFydGluZ1RvcDoiNCUiLGVuZGluZ1RvcDoiMTAlIn0sdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQsZSl7X2NsYXNzQ2FsbENoZWNrKHRoaXMsbik7dmFyIGk9X3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywobi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihuKSkuY2FsbCh0aGlzLG4sdCxlKSk7cmV0dXJuKGkuZWwuTV9Nb2RhbD1pKS5vcHRpb25zPXMuZXh0ZW5kKHt9LG4uZGVmYXVsdHMsZSksaS5pc09wZW49ITEsaS5pZD1pLiRlbC5hdHRyKCJpZCIpLGkuX29wZW5pbmdUcmlnZ2VyPXZvaWQgMCxpLiRvdmVybGF5PXMoJzxkaXYgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPjwvZGl2PicpLGkuZWwudGFiSW5kZXg9MCxpLl9udGhNb2RhbE9wZW5lZD0wLG4uX2NvdW50KyssaS5fc2V0dXBFdmVudEhhbmRsZXJzKCksaX1yZXR1cm4gX2luaGVyaXRzKG4sQ29tcG9uZW50KSxfY3JlYXRlQ2xhc3Mobixbe2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXtuLl9jb3VudC0tLHRoaXMuX3JlbW92ZUV2ZW50SGFuZGxlcnMoKSx0aGlzLmVsLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSx0aGlzLiRvdmVybGF5LnJlbW92ZSgpLHRoaXMuZWwuTV9Nb2RhbD12b2lkIDB9fSx7a2V5OiJfc2V0dXBFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2hhbmRsZU92ZXJsYXlDbGlja0JvdW5kPXRoaXMuX2hhbmRsZU92ZXJsYXlDbGljay5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZU1vZGFsQ2xvc2VDbGlja0JvdW5kPXRoaXMuX2hhbmRsZU1vZGFsQ2xvc2VDbGljay5iaW5kKHRoaXMpLDE9PT1uLl9jb3VudCYmZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFuZGxlVHJpZ2dlckNsaWNrKSx0aGlzLiRvdmVybGF5WzBdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVPdmVybGF5Q2xpY2tCb3VuZCksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFuZGxlTW9kYWxDbG9zZUNsaWNrQm91bmQpfX0se2tleToiX3JlbW92ZUV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7MD09PW4uX2NvdW50JiZkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVUcmlnZ2VyQ2xpY2spLHRoaXMuJG92ZXJsYXlbMF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZU92ZXJsYXlDbGlja0JvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVNb2RhbENsb3NlQ2xpY2tCb3VuZCl9fSx7a2V5OiJfaGFuZGxlVHJpZ2dlckNsaWNrIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1zKHQudGFyZ2V0KS5jbG9zZXN0KCIubW9kYWwtdHJpZ2dlciIpO2lmKGUubGVuZ3RoKXt2YXIgaT1NLmdldElkRnJvbVRyaWdnZXIoZVswXSksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpKS5NX01vZGFsO24mJm4ub3BlbihlKSx0LnByZXZlbnREZWZhdWx0KCl9fX0se2tleToiX2hhbmRsZU92ZXJsYXlDbGljayIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuZGlzbWlzc2libGUmJnRoaXMuY2xvc2UoKX19LHtrZXk6Il9oYW5kbGVNb2RhbENsb3NlQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3ModC50YXJnZXQpLmNsb3Nlc3QoIi5tb2RhbC1jbG9zZSIpLmxlbmd0aCYmdGhpcy5jbG9zZSgpfX0se2tleToiX2hhbmRsZUtleWRvd24iLHZhbHVlOmZ1bmN0aW9uKHQpezI3PT09dC5rZXlDb2RlJiZ0aGlzLm9wdGlvbnMuZGlzbWlzc2libGUmJnRoaXMuY2xvc2UoKX19LHtrZXk6Il9oYW5kbGVGb2N1cyIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5lbC5jb250YWlucyh0LnRhcmdldCl8fHRoaXMuX250aE1vZGFsT3BlbmVkIT09bi5fbW9kYWxzT3Blbnx8dGhpcy5lbC5mb2N1cygpfX0se2tleToiX2FuaW1hdGVJbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3MuZXh0ZW5kKHRoaXMuZWwuc3R5bGUse2Rpc3BsYXk6ImJsb2NrIixvcGFjaXR5OjB9KSxzLmV4dGVuZCh0aGlzLiRvdmVybGF5WzBdLnN0eWxlLHtkaXNwbGF5OiJibG9jayIsb3BhY2l0eTowfSksaSh7dGFyZ2V0czp0aGlzLiRvdmVybGF5WzBdLG9wYWNpdHk6dGhpcy5vcHRpb25zLm9wYWNpdHksZHVyYXRpb246dGhpcy5vcHRpb25zLmluRHVyYXRpb24sZWFzaW5nOiJlYXNlT3V0UXVhZCJ9KTt2YXIgZT17dGFyZ2V0czp0aGlzLmVsLGR1cmF0aW9uOnRoaXMub3B0aW9ucy5pbkR1cmF0aW9uLGVhc2luZzoiZWFzZU91dEN1YmljIixjb21wbGV0ZTpmdW5jdGlvbigpeyJmdW5jdGlvbiI9PXR5cGVvZiB0Lm9wdGlvbnMub25PcGVuRW5kJiZ0Lm9wdGlvbnMub25PcGVuRW5kLmNhbGwodCx0LmVsLHQuX29wZW5pbmdUcmlnZ2VyKX19O3RoaXMuZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCJib3R0b20tc2hlZXQiKT9zLmV4dGVuZChlLHtib3R0b206MCxvcGFjaXR5OjF9KTpzLmV4dGVuZChlLHt0b3A6W3RoaXMub3B0aW9ucy5zdGFydGluZ1RvcCx0aGlzLm9wdGlvbnMuZW5kaW5nVG9wXSxvcGFjaXR5OjEsc2NhbGVYOlsuOCwxXSxzY2FsZVk6Wy44LDFdfSksaShlKX19LHtrZXk6Il9hbmltYXRlT3V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aSh7dGFyZ2V0czp0aGlzLiRvdmVybGF5WzBdLG9wYWNpdHk6MCxkdXJhdGlvbjp0aGlzLm9wdGlvbnMub3V0RHVyYXRpb24sZWFzaW5nOiJlYXNlT3V0UXVhcnQifSk7dmFyIGU9e3RhcmdldHM6dGhpcy5lbCxkdXJhdGlvbjp0aGlzLm9wdGlvbnMub3V0RHVyYXRpb24sZWFzaW5nOiJlYXNlT3V0Q3ViaWMiLGNvbXBsZXRlOmZ1bmN0aW9uKCl7dC5lbC5zdHlsZS5kaXNwbGF5PSJub25lIix0LiRvdmVybGF5LnJlbW92ZSgpLCJmdW5jdGlvbiI9PXR5cGVvZiB0Lm9wdGlvbnMub25DbG9zZUVuZCYmdC5vcHRpb25zLm9uQ2xvc2VFbmQuY2FsbCh0LHQuZWwpfX07dGhpcy5lbC5jbGFzc0xpc3QuY29udGFpbnMoImJvdHRvbS1zaGVldCIpP3MuZXh0ZW5kKGUse2JvdHRvbToiLTEwMCUiLG9wYWNpdHk6MH0pOnMuZXh0ZW5kKGUse3RvcDpbdGhpcy5vcHRpb25zLmVuZGluZ1RvcCx0aGlzLm9wdGlvbnMuc3RhcnRpbmdUb3BdLG9wYWNpdHk6MCxzY2FsZVg6Ljgsc2NhbGVZOi44fSksaShlKX19LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLmlzT3BlbilyZXR1cm4gdGhpcy5pc09wZW49ITAsbi5fbW9kYWxzT3BlbisrLHRoaXMuX250aE1vZGFsT3BlbmVkPW4uX21vZGFsc09wZW4sdGhpcy4kb3ZlcmxheVswXS5zdHlsZS56SW5kZXg9MWUzKzIqbi5fbW9kYWxzT3Blbix0aGlzLmVsLnN0eWxlLnpJbmRleD0xZTMrMipuLl9tb2RhbHNPcGVuKzEsdGhpcy5fb3BlbmluZ1RyaWdnZXI9dD90WzBdOnZvaWQgMCwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLm9uT3BlblN0YXJ0JiZ0aGlzLm9wdGlvbnMub25PcGVuU3RhcnQuY2FsbCh0aGlzLHRoaXMuZWwsdGhpcy5fb3BlbmluZ1RyaWdnZXIpLHRoaXMub3B0aW9ucy5wcmV2ZW50U2Nyb2xsaW5nJiYoZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIiksdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJvcGVuIiksdGhpcy5lbC5pbnNlcnRBZGphY2VudEVsZW1lbnQoImFmdGVyZW5kIix0aGlzLiRvdmVybGF5WzBdKSx0aGlzLm9wdGlvbnMuZGlzbWlzc2libGUmJih0aGlzLl9oYW5kbGVLZXlkb3duQm91bmQ9dGhpcy5faGFuZGxlS2V5ZG93bi5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZUZvY3VzQm91bmQ9dGhpcy5faGFuZGxlRm9jdXMuYmluZCh0aGlzKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9oYW5kbGVLZXlkb3duQm91bmQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9oYW5kbGVGb2N1c0JvdW5kLCEwKSksaS5yZW1vdmUodGhpcy5lbCksaS5yZW1vdmUodGhpcy4kb3ZlcmxheVswXSksdGhpcy5fYW5pbWF0ZUluKCksdGhpcy5lbC5mb2N1cygpLHRoaXN9fSx7a2V5OiJjbG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmlzT3BlbilyZXR1cm4gdGhpcy5pc09wZW49ITEsbi5fbW9kYWxzT3Blbi0tLHRoaXMuX250aE1vZGFsT3BlbmVkPTAsImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5vbkNsb3NlU3RhcnQmJnRoaXMub3B0aW9ucy5vbkNsb3NlU3RhcnQuY2FsbCh0aGlzLHRoaXMuZWwpLHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpLDA9PT1uLl9tb2RhbHNPcGVuJiYoZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iIiksdGhpcy5vcHRpb25zLmRpc21pc3NpYmxlJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5faGFuZGxlS2V5ZG93bkJvdW5kKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5faGFuZGxlRm9jdXNCb3VuZCwhMCkpLGkucmVtb3ZlKHRoaXMuZWwpLGkucmVtb3ZlKHRoaXMuJG92ZXJsYXlbMF0pLHRoaXMuX2FuaW1hdGVPdXQoKSx0aGlzfX1dLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiBfZ2V0KG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobiksImluaXQiLHRoaXMpLmNhbGwodGhpcyx0aGlzLHQsZSl9fSx7a2V5OiJnZXRJbnN0YW5jZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKHQuanF1ZXJ5P3RbMF06dCkuTV9Nb2RhbH19LHtrZXk6ImRlZmF1bHRzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX19XSksbn0oKTt0Ll9tb2RhbHNPcGVuPTAsdC5fY291bnQ9MCxNLk1vZGFsPXQsTS5qUXVlcnlMb2FkZWQmJk0uaW5pdGlhbGl6ZUpxdWVyeVdyYXBwZXIodCwibW9kYWwiLCJNX01vZGFsIil9KGNhc2gsTS5hbmltZSksZnVuY3Rpb24obyxhKXsidXNlIHN0cmljdCI7dmFyIGU9e2luRHVyYXRpb246Mjc1LG91dER1cmF0aW9uOjIwMCxvbk9wZW5TdGFydDpudWxsLG9uT3BlbkVuZDpudWxsLG9uQ2xvc2VTdGFydDpudWxsLG9uQ2xvc2VFbmQ6bnVsbH0sdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQsZSl7X2NsYXNzQ2FsbENoZWNrKHRoaXMsbik7dmFyIGk9X3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywobi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihuKSkuY2FsbCh0aGlzLG4sdCxlKSk7cmV0dXJuKGkuZWwuTV9NYXRlcmlhbGJveD1pKS5vcHRpb25zPW8uZXh0ZW5kKHt9LG4uZGVmYXVsdHMsZSksaS5vdmVybGF5QWN0aXZlPSExLGkuZG9uZUFuaW1hdGluZz0hMCxpLnBsYWNlaG9sZGVyPW8oIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoIm1hdGVyaWFsLXBsYWNlaG9sZGVyIiksaS5vcmlnaW5hbFdpZHRoPTAsaS5vcmlnaW5hbEhlaWdodD0wLGkub3JpZ2luSW5saW5lU3R5bGVzPWkuJGVsLmF0dHIoInN0eWxlIiksaS5jYXB0aW9uPWkuZWwuZ2V0QXR0cmlidXRlKCJkYXRhLWNhcHRpb24iKXx8IiIsaS4kZWwuYmVmb3JlKGkucGxhY2Vob2xkZXIpLGkucGxhY2Vob2xkZXIuYXBwZW5kKGkuJGVsKSxpLl9zZXR1cEV2ZW50SGFuZGxlcnMoKSxpfXJldHVybiBfaW5oZXJpdHMobixDb21wb25lbnQpLF9jcmVhdGVDbGFzcyhuLFt7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3JlbW92ZUV2ZW50SGFuZGxlcnMoKSx0aGlzLmVsLk1fTWF0ZXJpYWxib3g9dm9pZCAwLG8odGhpcy5wbGFjZWhvbGRlcikuYWZ0ZXIodGhpcy5lbCkucmVtb3ZlKCksdGhpcy4kZWwucmVtb3ZlQXR0cigic3R5bGUiKX19LHtrZXk6Il9zZXR1cEV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGFuZGxlTWF0ZXJpYWxib3hDbGlja0JvdW5kPXRoaXMuX2hhbmRsZU1hdGVyaWFsYm94Q2xpY2suYmluZCh0aGlzKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVNYXRlcmlhbGJveENsaWNrQm91bmQpfX0se2tleToiX3JlbW92ZUV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFuZGxlTWF0ZXJpYWxib3hDbGlja0JvdW5kKX19LHtrZXk6Il9oYW5kbGVNYXRlcmlhbGJveENsaWNrIix2YWx1ZTpmdW5jdGlvbih0KXshMT09PXRoaXMuZG9uZUFuaW1hdGluZ3x8dGhpcy5vdmVybGF5QWN0aXZlJiZ0aGlzLmRvbmVBbmltYXRpbmc/dGhpcy5jbG9zZSgpOnRoaXMub3BlbigpfX0se2tleToiX2hhbmRsZVdpbmRvd1Njcm9sbCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm92ZXJsYXlBY3RpdmUmJnRoaXMuY2xvc2UoKX19LHtrZXk6Il9oYW5kbGVXaW5kb3dSZXNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5vdmVybGF5QWN0aXZlJiZ0aGlzLmNsb3NlKCl9fSx7a2V5OiJfaGFuZGxlV2luZG93RXNjYXBlIix2YWx1ZTpmdW5jdGlvbih0KXsyNz09PXQua2V5Q29kZSYmdGhpcy5kb25lQW5pbWF0aW5nJiZ0aGlzLm92ZXJsYXlBY3RpdmUmJnRoaXMuY2xvc2UoKX19LHtrZXk6Il9tYWtlQW5jZXN0b3JzT3ZlcmZsb3dWaXNpYmxlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYW5jZXN0b3JzQ2hhbmdlZD1vKCk7Zm9yKHZhciB0PXRoaXMucGxhY2Vob2xkZXJbMF0ucGFyZW50Tm9kZTtudWxsIT09dCYmIW8odCkuaXMoZG9jdW1lbnQpOyl7dmFyIGU9byh0KTsidmlzaWJsZSIhPT1lLmNzcygib3ZlcmZsb3ciKSYmKGUuY3NzKCJvdmVyZmxvdyIsInZpc2libGUiKSx2b2lkIDA9PT10aGlzLmFuY2VzdG9yc0NoYW5nZWQ/dGhpcy5hbmNlc3RvcnNDaGFuZ2VkPWU6dGhpcy5hbmNlc3RvcnNDaGFuZ2VkPXRoaXMuYW5jZXN0b3JzQ2hhbmdlZC5hZGQoZSkpLHQ9dC5wYXJlbnROb2RlfX19LHtrZXk6Il9hbmltYXRlSW1hZ2VJbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9e3RhcmdldHM6dGhpcy5lbCxoZWlnaHQ6W3RoaXMub3JpZ2luYWxIZWlnaHQsdGhpcy5uZXdIZWlnaHRdLHdpZHRoOlt0aGlzLm9yaWdpbmFsV2lkdGgsdGhpcy5uZXdXaWR0aF0sbGVmdDpNLmdldERvY3VtZW50U2Nyb2xsTGVmdCgpK3RoaXMud2luZG93V2lkdGgvMi10aGlzLnBsYWNlaG9sZGVyLm9mZnNldCgpLmxlZnQtdGhpcy5uZXdXaWR0aC8yLHRvcDpNLmdldERvY3VtZW50U2Nyb2xsVG9wKCkrdGhpcy53aW5kb3dIZWlnaHQvMi10aGlzLnBsYWNlaG9sZGVyLm9mZnNldCgpLnRvcC10aGlzLm5ld0hlaWdodC8yLGR1cmF0aW9uOnRoaXMub3B0aW9ucy5pbkR1cmF0aW9uLGVhc2luZzoiZWFzZU91dFF1YWQiLGNvbXBsZXRlOmZ1bmN0aW9uKCl7dC5kb25lQW5pbWF0aW5nPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiB0Lm9wdGlvbnMub25PcGVuRW5kJiZ0Lm9wdGlvbnMub25PcGVuRW5kLmNhbGwodCx0LmVsKX19O3RoaXMubWF4V2lkdGg9dGhpcy4kZWwuY3NzKCJtYXgtd2lkdGgiKSx0aGlzLm1heEhlaWdodD10aGlzLiRlbC5jc3MoIm1heC1oZWlnaHQiKSwibm9uZSIhPT10aGlzLm1heFdpZHRoJiYoZS5tYXhXaWR0aD10aGlzLm5ld1dpZHRoKSwibm9uZSIhPT10aGlzLm1heEhlaWdodCYmKGUubWF4SGVpZ2h0PXRoaXMubmV3SGVpZ2h0KSxhKGUpfX0se2tleToiX2FuaW1hdGVJbWFnZU91dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9e3RhcmdldHM6dGhpcy5lbCx3aWR0aDp0aGlzLm9yaWdpbmFsV2lkdGgsaGVpZ2h0OnRoaXMub3JpZ2luYWxIZWlnaHQsbGVmdDowLHRvcDowLGR1cmF0aW9uOnRoaXMub3B0aW9ucy5vdXREdXJhdGlvbixlYXNpbmc6ImVhc2VPdXRRdWFkIixjb21wbGV0ZTpmdW5jdGlvbigpe3QucGxhY2Vob2xkZXIuY3NzKHtoZWlnaHQ6IiIsd2lkdGg6IiIscG9zaXRpb246IiIsdG9wOiIiLGxlZnQ6IiJ9KSx0LmF0dHJXaWR0aCYmdC4kZWwuYXR0cigid2lkdGgiLHQuYXR0cldpZHRoKSx0LmF0dHJIZWlnaHQmJnQuJGVsLmF0dHIoImhlaWdodCIsdC5hdHRySGVpZ2h0KSx0LiRlbC5yZW1vdmVBdHRyKCJzdHlsZSIpLHQub3JpZ2luSW5saW5lU3R5bGVzJiZ0LiRlbC5hdHRyKCJzdHlsZSIsdC5vcmlnaW5JbmxpbmVTdHlsZXMpLHQuJGVsLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSx0LmRvbmVBbmltYXRpbmc9ITAsdC5hbmNlc3RvcnNDaGFuZ2VkLmxlbmd0aCYmdC5hbmNlc3RvcnNDaGFuZ2VkLmNzcygib3ZlcmZsb3ciLCIiKSwiZnVuY3Rpb24iPT10eXBlb2YgdC5vcHRpb25zLm9uQ2xvc2VFbmQmJnQub3B0aW9ucy5vbkNsb3NlRW5kLmNhbGwodCx0LmVsKX19O2EoZSl9fSx7a2V5OiJfdXBkYXRlVmFycyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLndpbmRvd1dpZHRoPXdpbmRvdy5pbm5lcldpZHRoLHRoaXMud2luZG93SGVpZ2h0PXdpbmRvdy5pbm5lckhlaWdodCx0aGlzLmNhcHRpb249dGhpcy5lbC5nZXRBdHRyaWJ1dGUoImRhdGEtY2FwdGlvbiIpfHwiIn19LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl91cGRhdGVWYXJzKCksdGhpcy5vcmlnaW5hbFdpZHRoPXRoaXMuZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsdGhpcy5vcmlnaW5hbEhlaWdodD10aGlzLmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCx0aGlzLmRvbmVBbmltYXRpbmc9ITEsdGhpcy4kZWwuYWRkQ2xhc3MoImFjdGl2ZSIpLHRoaXMub3ZlcmxheUFjdGl2ZT0hMCwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLm9uT3BlblN0YXJ0JiZ0aGlzLm9wdGlvbnMub25PcGVuU3RhcnQuY2FsbCh0aGlzLHRoaXMuZWwpLHRoaXMucGxhY2Vob2xkZXIuY3NzKHt3aWR0aDp0aGlzLnBsYWNlaG9sZGVyWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKyJweCIsaGVpZ2h0OnRoaXMucGxhY2Vob2xkZXJbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KyJweCIscG9zaXRpb246InJlbGF0aXZlIix0b3A6MCxsZWZ0OjB9KSx0aGlzLl9tYWtlQW5jZXN0b3JzT3ZlcmZsb3dWaXNpYmxlKCksdGhpcy4kZWwuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLCJ6LWluZGV4IjoxZTMsIndpbGwtY2hhbmdlIjoibGVmdCwgdG9wLCB3aWR0aCwgaGVpZ2h0In0pLHRoaXMuYXR0cldpZHRoPXRoaXMuJGVsLmF0dHIoIndpZHRoIiksdGhpcy5hdHRySGVpZ2h0PXRoaXMuJGVsLmF0dHIoImhlaWdodCIpLHRoaXMuYXR0cldpZHRoJiYodGhpcy4kZWwuY3NzKCJ3aWR0aCIsdGhpcy5hdHRyV2lkdGgrInB4IiksdGhpcy4kZWwucmVtb3ZlQXR0cigid2lkdGgiKSksdGhpcy5hdHRySGVpZ2h0JiYodGhpcy4kZWwuY3NzKCJ3aWR0aCIsdGhpcy5hdHRySGVpZ2h0KyJweCIpLHRoaXMuJGVsLnJlbW92ZUF0dHIoImhlaWdodCIpKSx0aGlzLiRvdmVybGF5PW8oJzxkaXYgaWQ9Im1hdGVyaWFsYm94LW92ZXJsYXkiPjwvZGl2PicpLmNzcyh7b3BhY2l0eTowfSkub25lKCJjbGljayIsZnVuY3Rpb24oKXt0LmRvbmVBbmltYXRpbmcmJnQuY2xvc2UoKX0pLHRoaXMuJGVsLmJlZm9yZSh0aGlzLiRvdmVybGF5KTt2YXIgZT10aGlzLiRvdmVybGF5WzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuJG92ZXJsYXkuY3NzKHt3aWR0aDp0aGlzLndpbmRvd1dpZHRoKyJweCIsaGVpZ2h0OnRoaXMud2luZG93SGVpZ2h0KyJweCIsbGVmdDotMSplLmxlZnQrInB4Iix0b3A6LTEqZS50b3ArInB4In0pLGEucmVtb3ZlKHRoaXMuZWwpLGEucmVtb3ZlKHRoaXMuJG92ZXJsYXlbMF0pLGEoe3RhcmdldHM6dGhpcy4kb3ZlcmxheVswXSxvcGFjaXR5OjEsZHVyYXRpb246dGhpcy5vcHRpb25zLmluRHVyYXRpb24sZWFzaW5nOiJlYXNlT3V0UXVhZCJ9KSwiIiE9PXRoaXMuY2FwdGlvbiYmKHRoaXMuJHBob3RvY2FwdGlvbiYmYS5yZW1vdmUodGhpcy4kcGhvdG9DYXB0aW9uWzBdKSx0aGlzLiRwaG90b0NhcHRpb249bygnPGRpdiBjbGFzcz0ibWF0ZXJpYWxib3gtY2FwdGlvbiI+PC9kaXY+JyksdGhpcy4kcGhvdG9DYXB0aW9uLnRleHQodGhpcy5jYXB0aW9uKSxvKCJib2R5IikuYXBwZW5kKHRoaXMuJHBob3RvQ2FwdGlvbiksdGhpcy4kcGhvdG9DYXB0aW9uLmNzcyh7ZGlzcGxheToiaW5saW5lIn0pLGEoe3RhcmdldHM6dGhpcy4kcGhvdG9DYXB0aW9uWzBdLG9wYWNpdHk6MSxkdXJhdGlvbjp0aGlzLm9wdGlvbnMuaW5EdXJhdGlvbixlYXNpbmc6ImVhc2VPdXRRdWFkIn0pKTt2YXIgaT0wLG49dGhpcy5vcmlnaW5hbFdpZHRoL3RoaXMud2luZG93V2lkdGgscz10aGlzLm9yaWdpbmFsSGVpZ2h0L3RoaXMud2luZG93SGVpZ2h0O3RoaXMubmV3V2lkdGg9MCx0aGlzLm5ld0hlaWdodD0wLHM8bj8oaT10aGlzLm9yaWdpbmFsSGVpZ2h0L3RoaXMub3JpZ2luYWxXaWR0aCx0aGlzLm5ld1dpZHRoPS45KnRoaXMud2luZG93V2lkdGgsdGhpcy5uZXdIZWlnaHQ9LjkqdGhpcy53aW5kb3dXaWR0aCppKTooaT10aGlzLm9yaWdpbmFsV2lkdGgvdGhpcy5vcmlnaW5hbEhlaWdodCx0aGlzLm5ld1dpZHRoPS45KnRoaXMud2luZG93SGVpZ2h0KmksdGhpcy5uZXdIZWlnaHQ9LjkqdGhpcy53aW5kb3dIZWlnaHQpLHRoaXMuX2FuaW1hdGVJbWFnZUluKCksdGhpcy5faGFuZGxlV2luZG93U2Nyb2xsQm91bmQ9dGhpcy5faGFuZGxlV2luZG93U2Nyb2xsLmJpbmQodGhpcyksdGhpcy5faGFuZGxlV2luZG93UmVzaXplQm91bmQ9dGhpcy5faGFuZGxlV2luZG93UmVzaXplLmJpbmQodGhpcyksdGhpcy5faGFuZGxlV2luZG93RXNjYXBlQm91bmQ9dGhpcy5faGFuZGxlV2luZG93RXNjYXBlLmJpbmQodGhpcyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5faGFuZGxlV2luZG93U2Nyb2xsQm91bmQpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX2hhbmRsZVdpbmRvd1Jlc2l6ZUJvdW5kKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuX2hhbmRsZVdpbmRvd0VzY2FwZUJvdW5kKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fdXBkYXRlVmFycygpLHRoaXMuZG9uZUFuaW1hdGluZz0hMSwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLm9uQ2xvc2VTdGFydCYmdGhpcy5vcHRpb25zLm9uQ2xvc2VTdGFydC5jYWxsKHRoaXMsdGhpcy5lbCksYS5yZW1vdmUodGhpcy5lbCksYS5yZW1vdmUodGhpcy4kb3ZlcmxheVswXSksIiIhPT10aGlzLmNhcHRpb24mJmEucmVtb3ZlKHRoaXMuJHBob3RvQ2FwdGlvblswXSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5faGFuZGxlV2luZG93U2Nyb2xsQm91bmQpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX2hhbmRsZVdpbmRvd1Jlc2l6ZUJvdW5kKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuX2hhbmRsZVdpbmRvd0VzY2FwZUJvdW5kKSxhKHt0YXJnZXRzOnRoaXMuJG92ZXJsYXlbMF0sb3BhY2l0eTowLGR1cmF0aW9uOnRoaXMub3B0aW9ucy5vdXREdXJhdGlvbixlYXNpbmc6ImVhc2VPdXRRdWFkIixjb21wbGV0ZTpmdW5jdGlvbigpe3Qub3ZlcmxheUFjdGl2ZT0hMSx0LiRvdmVybGF5LnJlbW92ZSgpfX0pLHRoaXMuX2FuaW1hdGVJbWFnZU91dCgpLCIiIT09dGhpcy5jYXB0aW9uJiZhKHt0YXJnZXRzOnRoaXMuJHBob3RvQ2FwdGlvblswXSxvcGFjaXR5OjAsZHVyYXRpb246dGhpcy5vcHRpb25zLm91dER1cmF0aW9uLGVhc2luZzoiZWFzZU91dFF1YWQiLGNvbXBsZXRlOmZ1bmN0aW9uKCl7dC4kcGhvdG9DYXB0aW9uLnJlbW92ZSgpfX0pfX1dLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiBfZ2V0KG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobiksImluaXQiLHRoaXMpLmNhbGwodGhpcyx0aGlzLHQsZSl9fSx7a2V5OiJnZXRJbnN0YW5jZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKHQuanF1ZXJ5P3RbMF06dCkuTV9NYXRlcmlhbGJveH19LHtrZXk6ImRlZmF1bHRzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX19XSksbn0oKTtNLk1hdGVyaWFsYm94PXQsTS5qUXVlcnlMb2FkZWQmJk0uaW5pdGlhbGl6ZUpxdWVyeVdyYXBwZXIodCwibWF0ZXJpYWxib3giLCJNX01hdGVyaWFsYm94Iil9KGNhc2gsTS5hbmltZSksZnVuY3Rpb24ocyl7InVzZSBzdHJpY3QiO3ZhciBlPXtyZXNwb25zaXZlVGhyZXNob2xkOjB9LHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0LGUpe19jbGFzc0NhbGxDaGVjayh0aGlzLG4pO3ZhciBpPV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobikpLmNhbGwodGhpcyxuLHQsZSkpO3JldHVybihpLmVsLk1fUGFyYWxsYXg9aSkub3B0aW9ucz1zLmV4dGVuZCh7fSxuLmRlZmF1bHRzLGUpLGkuX2VuYWJsZWQ9d2luZG93LmlubmVyV2lkdGg+aS5vcHRpb25zLnJlc3BvbnNpdmVUaHJlc2hvbGQsaS4kaW1nPWkuJGVsLmZpbmQoImltZyIpLmZpcnN0KCksaS4kaW1nLmVhY2goZnVuY3Rpb24oKXt0aGlzLmNvbXBsZXRlJiZzKHRoaXMpLnRyaWdnZXIoImxvYWQiKX0pLGkuX3VwZGF0ZVBhcmFsbGF4KCksaS5fc2V0dXBFdmVudEhhbmRsZXJzKCksaS5fc2V0dXBTdHlsZXMoKSxuLl9wYXJhbGxheGVzLnB1c2goaSksaX1yZXR1cm4gX2luaGVyaXRzKG4sQ29tcG9uZW50KSxfY3JlYXRlQ2xhc3Mobixbe2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXtuLl9wYXJhbGxheGVzLnNwbGljZShuLl9wYXJhbGxheGVzLmluZGV4T2YodGhpcyksMSksdGhpcy4kaW1nWzBdLnN0eWxlLnRyYW5zZm9ybT0iIix0aGlzLl9yZW1vdmVFdmVudEhhbmRsZXJzKCksdGhpcy4kZWxbMF0uTV9QYXJhbGxheD12b2lkIDB9fSx7a2V5OiJfc2V0dXBFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2hhbmRsZUltYWdlTG9hZEJvdW5kPXRoaXMuX2hhbmRsZUltYWdlTG9hZC5iaW5kKHRoaXMpLHRoaXMuJGltZ1swXS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIix0aGlzLl9oYW5kbGVJbWFnZUxvYWRCb3VuZCksMD09PW4uX3BhcmFsbGF4ZXMubGVuZ3RoJiYobi5faGFuZGxlU2Nyb2xsVGhyb3R0bGVkPU0udGhyb3R0bGUobi5faGFuZGxlU2Nyb2xsLDUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLG4uX2hhbmRsZVNjcm9sbFRocm90dGxlZCksbi5faGFuZGxlV2luZG93UmVzaXplVGhyb3R0bGVkPU0udGhyb3R0bGUobi5faGFuZGxlV2luZG93UmVzaXplLDUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLG4uX2hhbmRsZVdpbmRvd1Jlc2l6ZVRocm90dGxlZCkpfX0se2tleToiX3JlbW92ZUV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy4kaW1nWzBdLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLHRoaXMuX2hhbmRsZUltYWdlTG9hZEJvdW5kKSwwPT09bi5fcGFyYWxsYXhlcy5sZW5ndGgmJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixuLl9oYW5kbGVTY3JvbGxUaHJvdHRsZWQpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLG4uX2hhbmRsZVdpbmRvd1Jlc2l6ZVRocm90dGxlZCkpfX0se2tleToiX3NldHVwU3R5bGVzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuJGltZ1swXS5zdHlsZS5vcGFjaXR5PTF9fSx7a2V5OiJfaGFuZGxlSW1hZ2VMb2FkIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZVBhcmFsbGF4KCl9fSx7a2V5OiJfdXBkYXRlUGFyYWxsYXgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9MDx0aGlzLiRlbC5oZWlnaHQoKT90aGlzLmVsLnBhcmVudE5vZGUub2Zmc2V0SGVpZ2h0OjUwMCxlPXRoaXMuJGltZ1swXS5vZmZzZXRIZWlnaHQtdCxpPXRoaXMuJGVsLm9mZnNldCgpLnRvcCt0LG49dGhpcy4kZWwub2Zmc2V0KCkudG9wLHM9TS5nZXREb2N1bWVudFNjcm9sbFRvcCgpLG89d2luZG93LmlubmVySGVpZ2h0LGE9ZSooKHMrby1uKS8odCtvKSk7dGhpcy5fZW5hYmxlZD9zPGkmJm48cytvJiYodGhpcy4kaW1nWzBdLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlM0QoLTUwJSwgIithKyJweCwgMCkiKTp0aGlzLiRpbWdbMF0uc3R5bGUudHJhbnNmb3JtPSIifX1dLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiBfZ2V0KG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobiksImluaXQiLHRoaXMpLmNhbGwodGhpcyx0aGlzLHQsZSl9fSx7a2V5OiJnZXRJbnN0YW5jZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKHQuanF1ZXJ5P3RbMF06dCkuTV9QYXJhbGxheH19LHtrZXk6Il9oYW5kbGVTY3JvbGwiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxuLl9wYXJhbGxheGVzLmxlbmd0aDt0Kyspe3ZhciBlPW4uX3BhcmFsbGF4ZXNbdF07ZS5fdXBkYXRlUGFyYWxsYXguY2FsbChlKX19fSx7a2V5OiJfaGFuZGxlV2luZG93UmVzaXplIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8bi5fcGFyYWxsYXhlcy5sZW5ndGg7dCsrKXt2YXIgZT1uLl9wYXJhbGxheGVzW3RdO2UuX2VuYWJsZWQ9d2luZG93LmlubmVyV2lkdGg+ZS5vcHRpb25zLnJlc3BvbnNpdmVUaHJlc2hvbGR9fX0se2tleToiZGVmYXVsdHMiLGdldDpmdW5jdGlvbigpe3JldHVybiBlfX1dKSxufSgpO3QuX3BhcmFsbGF4ZXM9W10sTS5QYXJhbGxheD10LE0ualF1ZXJ5TG9hZGVkJiZNLmluaXRpYWxpemVKcXVlcnlXcmFwcGVyKHQsInBhcmFsbGF4IiwiTV9QYXJhbGxheCIpfShjYXNoKSxmdW5jdGlvbihhLHMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT17ZHVyYXRpb246MzAwLG9uU2hvdzpudWxsLHN3aXBlYWJsZTohMSxyZXNwb25zaXZlVGhyZXNob2xkOjEvMH0sdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQsZSl7X2NsYXNzQ2FsbENoZWNrKHRoaXMsbik7dmFyIGk9X3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywobi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihuKSkuY2FsbCh0aGlzLG4sdCxlKSk7cmV0dXJuKGkuZWwuTV9UYWJzPWkpLm9wdGlvbnM9YS5leHRlbmQoe30sbi5kZWZhdWx0cyxlKSxpLiR0YWJMaW5rcz1pLiRlbC5jaGlsZHJlbigibGkudGFiIikuY2hpbGRyZW4oImEiKSxpLmluZGV4PTAsaS5fc2V0dXBBY3RpdmVUYWJMaW5rKCksaS5vcHRpb25zLnN3aXBlYWJsZT9pLl9zZXR1cFN3aXBlYWJsZVRhYnMoKTppLl9zZXR1cE5vcm1hbFRhYnMoKSxpLl9zZXRUYWJzQW5kVGFiV2lkdGgoKSxpLl9jcmVhdGVJbmRpY2F0b3IoKSxpLl9zZXR1cEV2ZW50SGFuZGxlcnMoKSxpfXJldHVybiBfaW5oZXJpdHMobixDb21wb25lbnQpLF9jcmVhdGVDbGFzcyhuLFt7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3JlbW92ZUV2ZW50SGFuZGxlcnMoKSx0aGlzLl9pbmRpY2F0b3IucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9pbmRpY2F0b3IpLHRoaXMub3B0aW9ucy5zd2lwZWFibGU/dGhpcy5fdGVhcmRvd25Td2lwZWFibGVUYWJzKCk6dGhpcy5fdGVhcmRvd25Ob3JtYWxUYWJzKCksdGhpcy4kZWxbMF0uTV9UYWJzPXZvaWQgMH19LHtrZXk6Il9zZXR1cEV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGFuZGxlV2luZG93UmVzaXplQm91bmQ9dGhpcy5faGFuZGxlV2luZG93UmVzaXplLmJpbmQodGhpcyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5faGFuZGxlV2luZG93UmVzaXplQm91bmQpLHRoaXMuX2hhbmRsZVRhYkNsaWNrQm91bmQ9dGhpcy5faGFuZGxlVGFiQ2xpY2suYmluZCh0aGlzKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVUYWJDbGlja0JvdW5kKX19LHtrZXk6Il9yZW1vdmVFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX2hhbmRsZVdpbmRvd1Jlc2l6ZUJvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVUYWJDbGlja0JvdW5kKX19LHtrZXk6Il9oYW5kbGVXaW5kb3dSZXNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fc2V0VGFic0FuZFRhYldpZHRoKCksMCE9PXRoaXMudGFiV2lkdGgmJjAhPT10aGlzLnRhYnNXaWR0aCYmKHRoaXMuX2luZGljYXRvci5zdHlsZS5sZWZ0PXRoaXMuX2NhbGNMZWZ0UG9zKHRoaXMuJGFjdGl2ZVRhYkxpbmspKyJweCIsdGhpcy5faW5kaWNhdG9yLnN0eWxlLnJpZ2h0PXRoaXMuX2NhbGNSaWdodFBvcyh0aGlzLiRhY3RpdmVUYWJMaW5rKSsicHgiKX19LHtrZXk6Il9oYW5kbGVUYWJDbGljayIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPWEodC50YXJnZXQpLmNsb3Nlc3QoImxpLnRhYiIpLG49YSh0LnRhcmdldCkuY2xvc2VzdCgiYSIpO2lmKG4ubGVuZ3RoJiZuLnBhcmVudCgpLmhhc0NsYXNzKCJ0YWIiKSlpZihpLmhhc0NsYXNzKCJkaXNhYmxlZCIpKXQucHJldmVudERlZmF1bHQoKTtlbHNlIGlmKCFuLmF0dHIoInRhcmdldCIpKXt0aGlzLiRhY3RpdmVUYWJMaW5rLnJlbW92ZUNsYXNzKCJhY3RpdmUiKTt2YXIgcz10aGlzLiRjb250ZW50O3RoaXMuJGFjdGl2ZVRhYkxpbms9bix0aGlzLiRjb250ZW50PWEoTS5lc2NhcGVIYXNoKG5bMF0uaGFzaCkpLHRoaXMuJHRhYkxpbmtzPXRoaXMuJGVsLmNoaWxkcmVuKCJsaS50YWIiKS5jaGlsZHJlbigiYSIpLHRoaXMuJGFjdGl2ZVRhYkxpbmsuYWRkQ2xhc3MoImFjdGl2ZSIpO3ZhciBvPXRoaXMuaW5kZXg7dGhpcy5pbmRleD1NYXRoLm1heCh0aGlzLiR0YWJMaW5rcy5pbmRleChuKSwwKSx0aGlzLm9wdGlvbnMuc3dpcGVhYmxlP3RoaXMuX3RhYnNDYXJvdXNlbCYmdGhpcy5fdGFic0Nhcm91c2VsLnNldCh0aGlzLmluZGV4LGZ1bmN0aW9uKCl7ImZ1bmN0aW9uIj09dHlwZW9mIGUub3B0aW9ucy5vblNob3cmJmUub3B0aW9ucy5vblNob3cuY2FsbChlLGUuJGNvbnRlbnRbMF0pfSk6dGhpcy4kY29udGVudC5sZW5ndGgmJih0aGlzLiRjb250ZW50WzBdLnN0eWxlLmRpc3BsYXk9ImJsb2NrIix0aGlzLiRjb250ZW50LmFkZENsYXNzKCJhY3RpdmUiKSwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLm9uU2hvdyYmdGhpcy5vcHRpb25zLm9uU2hvdy5jYWxsKHRoaXMsdGhpcy4kY29udGVudFswXSkscy5sZW5ndGgmJiFzLmlzKHRoaXMuJGNvbnRlbnQpJiYoc1swXS5zdHlsZS5kaXNwbGF5PSJub25lIixzLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSkpLHRoaXMuX3NldFRhYnNBbmRUYWJXaWR0aCgpLHRoaXMuX2FuaW1hdGVJbmRpY2F0b3IobyksdC5wcmV2ZW50RGVmYXVsdCgpfX19LHtrZXk6Il9jcmVhdGVJbmRpY2F0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7ZS5jbGFzc0xpc3QuYWRkKCJpbmRpY2F0b3IiKSx0aGlzLmVsLmFwcGVuZENoaWxkKGUpLHRoaXMuX2luZGljYXRvcj1lLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0Ll9pbmRpY2F0b3Iuc3R5bGUubGVmdD10Ll9jYWxjTGVmdFBvcyh0LiRhY3RpdmVUYWJMaW5rKSsicHgiLHQuX2luZGljYXRvci5zdHlsZS5yaWdodD10Ll9jYWxjUmlnaHRQb3ModC4kYWN0aXZlVGFiTGluaykrInB4In0sMCl9fSx7a2V5OiJfc2V0dXBBY3RpdmVUYWJMaW5rIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuJGFjdGl2ZVRhYkxpbms9YSh0aGlzLiR0YWJMaW5rcy5maWx0ZXIoJ1tocmVmPSInK2xvY2F0aW9uLmhhc2grJyJdJykpLDA9PT10aGlzLiRhY3RpdmVUYWJMaW5rLmxlbmd0aCYmKHRoaXMuJGFjdGl2ZVRhYkxpbms9dGhpcy4kZWwuY2hpbGRyZW4oImxpLnRhYiIpLmNoaWxkcmVuKCJhLmFjdGl2ZSIpLmZpcnN0KCkpLDA9PT10aGlzLiRhY3RpdmVUYWJMaW5rLmxlbmd0aCYmKHRoaXMuJGFjdGl2ZVRhYkxpbms9dGhpcy4kZWwuY2hpbGRyZW4oImxpLnRhYiIpLmNoaWxkcmVuKCJhIikuZmlyc3QoKSksdGhpcy4kdGFiTGlua3MucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLHRoaXMuJGFjdGl2ZVRhYkxpbmtbMF0uY2xhc3NMaXN0LmFkZCgiYWN0aXZlIiksdGhpcy5pbmRleD1NYXRoLm1heCh0aGlzLiR0YWJMaW5rcy5pbmRleCh0aGlzLiRhY3RpdmVUYWJMaW5rKSwwKSx0aGlzLiRhY3RpdmVUYWJMaW5rLmxlbmd0aCYmKHRoaXMuJGNvbnRlbnQ9YShNLmVzY2FwZUhhc2godGhpcy4kYWN0aXZlVGFiTGlua1swXS5oYXNoKSksdGhpcy4kY29udGVudC5hZGRDbGFzcygiYWN0aXZlIikpfX0se2tleToiX3NldHVwU3dpcGVhYmxlVGFicyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaT10aGlzO3dpbmRvdy5pbm5lcldpZHRoPnRoaXMub3B0aW9ucy5yZXNwb25zaXZlVGhyZXNob2xkJiYodGhpcy5vcHRpb25zLnN3aXBlYWJsZT0hMSk7dmFyIG49YSgpO3RoaXMuJHRhYkxpbmtzLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9YShNLmVzY2FwZUhhc2godC5oYXNoKSk7ZS5hZGRDbGFzcygiY2Fyb3VzZWwtaXRlbSIpLG49bi5hZGQoZSl9KTt2YXIgdD1hKCc8ZGl2IGNsYXNzPSJ0YWJzLWNvbnRlbnQgY2Fyb3VzZWwgY2Fyb3VzZWwtc2xpZGVyIj48L2Rpdj4nKTtuLmZpcnN0KCkuYmVmb3JlKHQpLHQuYXBwZW5kKG4pLG5bMF0uc3R5bGUuZGlzcGxheT0iIjt2YXIgZT10aGlzLiRhY3RpdmVUYWJMaW5rLmNsb3Nlc3QoIi50YWIiKS5pbmRleCgpO3RoaXMuX3RhYnNDYXJvdXNlbD1NLkNhcm91c2VsLmluaXQodFswXSx7ZnVsbFdpZHRoOiEwLG5vV3JhcDohMCxvbkN5Y2xlVG86ZnVuY3Rpb24odCl7dmFyIGU9aS5pbmRleDtpLmluZGV4PWEodCkuaW5kZXgoKSxpLiRhY3RpdmVUYWJMaW5rLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSxpLiRhY3RpdmVUYWJMaW5rPWkuJHRhYkxpbmtzLmVxKGkuaW5kZXgpLGkuJGFjdGl2ZVRhYkxpbmsuYWRkQ2xhc3MoImFjdGl2ZSIpLGkuX2FuaW1hdGVJbmRpY2F0b3IoZSksImZ1bmN0aW9uIj09dHlwZW9mIGkub3B0aW9ucy5vblNob3cmJmkub3B0aW9ucy5vblNob3cuY2FsbChpLGkuJGNvbnRlbnRbMF0pfX0pLHRoaXMuX3RhYnNDYXJvdXNlbC5zZXQoZSl9fSx7a2V5OiJfdGVhcmRvd25Td2lwZWFibGVUYWJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3RhYnNDYXJvdXNlbC4kZWw7dGhpcy5fdGFic0Nhcm91c2VsLmRlc3Ryb3koKSx0LmFmdGVyKHQuY2hpbGRyZW4oKSksdC5yZW1vdmUoKX19LHtrZXk6Il9zZXR1cE5vcm1hbFRhYnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy4kdGFiTGlua3Mubm90KHRoaXMuJGFjdGl2ZVRhYkxpbmspLmVhY2goZnVuY3Rpb24odCl7aWYodC5oYXNoKXt2YXIgZT1hKE0uZXNjYXBlSGFzaCh0Lmhhc2gpKTtlLmxlbmd0aCYmKGVbMF0uc3R5bGUuZGlzcGxheT0ibm9uZSIpfX0pfX0se2tleToiX3RlYXJkb3duTm9ybWFsVGFicyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLiR0YWJMaW5rcy5lYWNoKGZ1bmN0aW9uKHQpe2lmKHQuaGFzaCl7dmFyIGU9YShNLmVzY2FwZUhhc2godC5oYXNoKSk7ZS5sZW5ndGgmJihlWzBdLnN0eWxlLmRpc3BsYXk9IiIpfX0pfX0se2tleToiX3NldFRhYnNBbmRUYWJXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnRhYnNXaWR0aD10aGlzLiRlbC53aWR0aCgpLHRoaXMudGFiV2lkdGg9TWF0aC5tYXgodGhpcy50YWJzV2lkdGgsdGhpcy5lbC5zY3JvbGxXaWR0aCkvdGhpcy4kdGFiTGlua3MubGVuZ3RofX0se2tleToiX2NhbGNSaWdodFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLnRhYnNXaWR0aC10LnBvc2l0aW9uKCkubGVmdC10WzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKX19LHtrZXk6Il9jYWxjTGVmdFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguZmxvb3IodC5wb3NpdGlvbigpLmxlZnQpfX0se2tleToidXBkYXRlVGFiSW5kaWNhdG9yIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3NldFRhYnNBbmRUYWJXaWR0aCgpLHRoaXMuX2FuaW1hdGVJbmRpY2F0b3IodGhpcy5pbmRleCl9fSx7a2V5OiJfYW5pbWF0ZUluZGljYXRvciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9MCxpPTA7MDw9dGhpcy5pbmRleC10P2U9OTA6aT05MDt2YXIgbj17dGFyZ2V0czp0aGlzLl9pbmRpY2F0b3IsbGVmdDp7dmFsdWU6dGhpcy5fY2FsY0xlZnRQb3ModGhpcy4kYWN0aXZlVGFiTGluayksZGVsYXk6ZX0scmlnaHQ6e3ZhbHVlOnRoaXMuX2NhbGNSaWdodFBvcyh0aGlzLiRhY3RpdmVUYWJMaW5rKSxkZWxheTppfSxkdXJhdGlvbjp0aGlzLm9wdGlvbnMuZHVyYXRpb24sZWFzaW5nOiJlYXNlT3V0UXVhZCJ9O3MucmVtb3ZlKHRoaXMuX2luZGljYXRvcikscyhuKX19LHtrZXk6InNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kdGFiTGlua3MuZmlsdGVyKCdbaHJlZj0iIycrdCsnIl0nKTtlLmxlbmd0aCYmZS50cmlnZ2VyKCJjbGljayIpfX1dLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiBfZ2V0KG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobiksImluaXQiLHRoaXMpLmNhbGwodGhpcyx0aGlzLHQsZSl9fSx7a2V5OiJnZXRJbnN0YW5jZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKHQuanF1ZXJ5P3RbMF06dCkuTV9UYWJzfX0se2tleToiZGVmYXVsdHMiLGdldDpmdW5jdGlvbigpe3JldHVybiBlfX1dKSxufSgpO00uVGFicz10LE0ualF1ZXJ5TG9hZGVkJiZNLmluaXRpYWxpemVKcXVlcnlXcmFwcGVyKHQsInRhYnMiLCJNX1RhYnMiKX0oY2FzaCxNLmFuaW1lKSxmdW5jdGlvbihkLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgaT17ZXhpdERlbGF5OjIwMCxlbnRlckRlbGF5OjAsaHRtbDpudWxsLG1hcmdpbjo1LGluRHVyYXRpb246MjUwLG91dER1cmF0aW9uOjIwMCxwb3NpdGlvbjoiYm90dG9tIix0cmFuc2l0aW9uTW92ZW1lbnQ6MTB9LHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0LGUpe19jbGFzc0NhbGxDaGVjayh0aGlzLG4pO3ZhciBpPV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobikpLmNhbGwodGhpcyxuLHQsZSkpO3JldHVybihpLmVsLk1fVG9vbHRpcD1pKS5vcHRpb25zPWQuZXh0ZW5kKHt9LG4uZGVmYXVsdHMsZSksaS5pc09wZW49ITEsaS5pc0hvdmVyZWQ9ITEsaS5pc0ZvY3VzZWQ9ITEsaS5fYXBwZW5kVG9vbHRpcEVsKCksaS5fc2V0dXBFdmVudEhhbmRsZXJzKCksaX1yZXR1cm4gX2luaGVyaXRzKG4sQ29tcG9uZW50KSxfY3JlYXRlQ2xhc3Mobixbe2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXtkKHRoaXMudG9vbHRpcEVsKS5yZW1vdmUoKSx0aGlzLl9yZW1vdmVFdmVudEhhbmRsZXJzKCksdGhpcy5lbC5NX1Rvb2x0aXA9dm9pZCAwfX0se2tleToiX2FwcGVuZFRvb2x0aXBFbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTGlzdC5hZGQoIm1hdGVyaWFsLXRvb2x0aXAiKSx0aGlzLnRvb2x0aXBFbD10O3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuY2xhc3NMaXN0LmFkZCgidG9vbHRpcC1jb250ZW50IiksZS5pbm5lckhUTUw9dGhpcy5vcHRpb25zLmh0bWwsdC5hcHBlbmRDaGlsZChlKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpfX0se2tleToiX3VwZGF0ZVRvb2x0aXBDb250ZW50Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudG9vbHRpcEVsLnF1ZXJ5U2VsZWN0b3IoIi50b29sdGlwLWNvbnRlbnQiKS5pbm5lckhUTUw9dGhpcy5vcHRpb25zLmh0bWx9fSx7a2V5OiJfc2V0dXBFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2hhbmRsZU1vdXNlRW50ZXJCb3VuZD10aGlzLl9oYW5kbGVNb3VzZUVudGVyLmJpbmQodGhpcyksdGhpcy5faGFuZGxlTW91c2VMZWF2ZUJvdW5kPXRoaXMuX2hhbmRsZU1vdXNlTGVhdmUuYmluZCh0aGlzKSx0aGlzLl9oYW5kbGVGb2N1c0JvdW5kPXRoaXMuX2hhbmRsZUZvY3VzLmJpbmQodGhpcyksdGhpcy5faGFuZGxlQmx1ckJvdW5kPXRoaXMuX2hhbmRsZUJsdXIuYmluZCh0aGlzKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLHRoaXMuX2hhbmRsZU1vdXNlRW50ZXJCb3VuZCksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIix0aGlzLl9oYW5kbGVNb3VzZUxlYXZlQm91bmQpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX2hhbmRsZUZvY3VzQm91bmQsITApLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5faGFuZGxlQmx1ckJvdW5kLCEwKX19LHtrZXk6Il9yZW1vdmVFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdGhpcy5faGFuZGxlTW91c2VFbnRlckJvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX2hhbmRsZU1vdXNlTGVhdmVCb3VuZCksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5faGFuZGxlRm9jdXNCb3VuZCwhMCksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9oYW5kbGVCbHVyQm91bmQsITApfX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5pc09wZW58fCh0PXZvaWQgMD09PXR8fHZvaWQgMCx0aGlzLmlzT3Blbj0hMCx0aGlzLm9wdGlvbnM9ZC5leHRlbmQoe30sdGhpcy5vcHRpb25zLHRoaXMuX2dldEF0dHJpYnV0ZU9wdGlvbnMoKSksdGhpcy5fdXBkYXRlVG9vbHRpcENvbnRlbnQoKSx0aGlzLl9zZXRFbnRlckRlbGF5VGltZW91dCh0KSl9fSx7a2V5OiJjbG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzT3BlbiYmKHRoaXMuaXNIb3ZlcmVkPSExLHRoaXMuaXNGb2N1c2VkPSExLHRoaXMuaXNPcGVuPSExLHRoaXMuX3NldEV4aXREZWxheVRpbWVvdXQoKSl9fSx7a2V5OiJfc2V0RXhpdERlbGF5VGltZW91dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2NsZWFyVGltZW91dCh0aGlzLl9leGl0RGVsYXlUaW1lb3V0KSx0aGlzLl9leGl0RGVsYXlUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmlzSG92ZXJlZHx8dC5pc0ZvY3VzZWR8fHQuX2FuaW1hdGVPdXQoKX0sdGhpcy5vcHRpb25zLmV4aXREZWxheSl9fSx7a2V5OiJfc2V0RW50ZXJEZWxheVRpbWVvdXQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7Y2xlYXJUaW1lb3V0KHRoaXMuX2VudGVyRGVsYXlUaW1lb3V0KSx0aGlzLl9lbnRlckRlbGF5VGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7KGUuaXNIb3ZlcmVkfHxlLmlzRm9jdXNlZHx8dCkmJmUuX2FuaW1hdGVJbigpfSx0aGlzLm9wdGlvbnMuZW50ZXJEZWxheSl9fSx7a2V5OiJfcG9zaXRpb25Ub29sdGlwIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5lbCxpPXRoaXMudG9vbHRpcEVsLG49ZS5vZmZzZXRIZWlnaHQscz1lLm9mZnNldFdpZHRoLG89aS5vZmZzZXRIZWlnaHQsYT1pLm9mZnNldFdpZHRoLHI9dGhpcy5vcHRpb25zLm1hcmdpbixsPXZvaWQgMCxoPXZvaWQgMDt0aGlzLnhNb3ZlbWVudD0wLHRoaXMueU1vdmVtZW50PTAsbD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCtNLmdldERvY3VtZW50U2Nyb2xsVG9wKCksaD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQrTS5nZXREb2N1bWVudFNjcm9sbExlZnQoKSwidG9wIj09PXRoaXMub3B0aW9ucy5wb3NpdGlvbj8obCs9LW8tcixoKz1zLzItYS8yLHRoaXMueU1vdmVtZW50PS10aGlzLm9wdGlvbnMudHJhbnNpdGlvbk1vdmVtZW50KToicmlnaHQiPT09dGhpcy5vcHRpb25zLnBvc2l0aW9uPyhsKz1uLzItby8yLGgrPXMrcix0aGlzLnhNb3ZlbWVudD10aGlzLm9wdGlvbnMudHJhbnNpdGlvbk1vdmVtZW50KToibGVmdCI9PT10aGlzLm9wdGlvbnMucG9zaXRpb24/KGwrPW4vMi1vLzIsaCs9LWEtcix0aGlzLnhNb3ZlbWVudD0tdGhpcy5vcHRpb25zLnRyYW5zaXRpb25Nb3ZlbWVudCk6KGwrPW4rcixoKz1zLzItYS8yLHRoaXMueU1vdmVtZW50PXRoaXMub3B0aW9ucy50cmFuc2l0aW9uTW92ZW1lbnQpLHQ9dGhpcy5fcmVwb3NpdGlvbldpdGhpblNjcmVlbihoLGwsYSxvKSxkKGkpLmNzcyh7dG9wOnQueSsicHgiLGxlZnQ6dC54KyJweCJ9KX19LHtrZXk6Il9yZXBvc2l0aW9uV2l0aGluU2NyZWVuIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcz1NLmdldERvY3VtZW50U2Nyb2xsTGVmdCgpLG89TS5nZXREb2N1bWVudFNjcm9sbFRvcCgpLGE9dC1zLHI9ZS1vLGw9e2xlZnQ6YSx0b3A6cix3aWR0aDppLGhlaWdodDpufSxoPXRoaXMub3B0aW9ucy5tYXJnaW4rdGhpcy5vcHRpb25zLnRyYW5zaXRpb25Nb3ZlbWVudCxkPU0uY2hlY2tXaXRoaW5Db250YWluZXIoZG9jdW1lbnQuYm9keSxsLGgpO3JldHVybiBkLmxlZnQ/YT1oOmQucmlnaHQmJihhLT1hK2ktd2luZG93LmlubmVyV2lkdGgpLGQudG9wP3I9aDpkLmJvdHRvbSYmKHItPXIrbi13aW5kb3cuaW5uZXJIZWlnaHQpLHt4OmErcyx5OnIrb319fSx7a2V5OiJfYW5pbWF0ZUluIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3Bvc2l0aW9uVG9vbHRpcCgpLHRoaXMudG9vbHRpcEVsLnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUiLGUucmVtb3ZlKHRoaXMudG9vbHRpcEVsKSxlKHt0YXJnZXRzOnRoaXMudG9vbHRpcEVsLG9wYWNpdHk6MSx0cmFuc2xhdGVYOnRoaXMueE1vdmVtZW50LHRyYW5zbGF0ZVk6dGhpcy55TW92ZW1lbnQsZHVyYXRpb246dGhpcy5vcHRpb25zLmluRHVyYXRpb24sZWFzaW5nOiJlYXNlT3V0Q3ViaWMifSl9fSx7a2V5OiJfYW5pbWF0ZU91dCIsdmFsdWU6ZnVuY3Rpb24oKXtlLnJlbW92ZSh0aGlzLnRvb2x0aXBFbCksZSh7dGFyZ2V0czp0aGlzLnRvb2x0aXBFbCxvcGFjaXR5OjAsdHJhbnNsYXRlWDowLHRyYW5zbGF0ZVk6MCxkdXJhdGlvbjp0aGlzLm9wdGlvbnMub3V0RHVyYXRpb24sZWFzaW5nOiJlYXNlT3V0Q3ViaWMifSl9fSx7a2V5OiJfaGFuZGxlTW91c2VFbnRlciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzSG92ZXJlZD0hMCx0aGlzLmlzRm9jdXNlZD0hMSx0aGlzLm9wZW4oITEpfX0se2tleToiX2hhbmRsZU1vdXNlTGVhdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc0hvdmVyZWQ9ITEsdGhpcy5pc0ZvY3VzZWQ9ITEsdGhpcy5jbG9zZSgpfX0se2tleToiX2hhbmRsZUZvY3VzIix2YWx1ZTpmdW5jdGlvbigpe00udGFiUHJlc3NlZCYmKHRoaXMuaXNGb2N1c2VkPSEwLHRoaXMub3BlbighMSkpfX0se2tleToiX2hhbmRsZUJsdXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc0ZvY3VzZWQ9ITEsdGhpcy5jbG9zZSgpfX0se2tleToiX2dldEF0dHJpYnV0ZU9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9e30sZT10aGlzLmVsLmdldEF0dHJpYnV0ZSgiZGF0YS10b29sdGlwIiksaT10aGlzLmVsLmdldEF0dHJpYnV0ZSgiZGF0YS1wb3NpdGlvbiIpO3JldHVybiBlJiYodC5odG1sPWUpLGkmJih0LnBvc2l0aW9uPWkpLHR9fV0sW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9nZXQobi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihuKSwiaW5pdCIsdGhpcykuY2FsbCh0aGlzLHRoaXMsdCxlKX19LHtrZXk6ImdldEluc3RhbmNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4odC5qcXVlcnk/dFswXTp0KS5NX1Rvb2x0aXB9fSx7a2V5OiJkZWZhdWx0cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGl9fV0pLG59KCk7TS5Ub29sdGlwPXQsTS5qUXVlcnlMb2FkZWQmJk0uaW5pdGlhbGl6ZUpxdWVyeVdyYXBwZXIodCwidG9vbHRpcCIsIk1fVG9vbHRpcCIpfShjYXNoLE0uYW5pbWUpLGZ1bmN0aW9uKGkpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD10fHx7fSxlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwuYmluZChkb2N1bWVudCk7ZnVuY3Rpb24gbSh0KXt2YXIgZT0iIjtmb3IodmFyIGkgaW4gdCl0Lmhhc093blByb3BlcnR5KGkpJiYoZSs9aSsiOiIrdFtpXSsiOyIpO3JldHVybiBlfXZhciBnPXtkdXJhdGlvbjo3NTAsc2hvdzpmdW5jdGlvbih0LGUpe2lmKDI9PT10LmJ1dHRvbilyZXR1cm4hMTt2YXIgaT1lfHx0aGlzLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5jbGFzc05hbWU9IndhdmVzLXJpcHBsZSIsaS5hcHBlbmRDaGlsZChuKTt2YXIgcyxvLGEscixsLGgsZCx1PShoPXt0b3A6MCxsZWZ0OjB9LGQ9KHM9aSkmJnMub3duZXJEb2N1bWVudCxvPWQuZG9jdW1lbnRFbGVtZW50LHZvaWQgMCE9PXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0JiYoaD1zLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxhPW51bGwhPT0obD1yPWQpJiZsPT09bC53aW5kb3c/cjo5PT09ci5ub2RlVHlwZSYmci5kZWZhdWx0Vmlldyx7dG9wOmgudG9wK2EucGFnZVlPZmZzZXQtby5jbGllbnRUb3AsbGVmdDpoLmxlZnQrYS5wYWdlWE9mZnNldC1vLmNsaWVudExlZnR9KSxjPXQucGFnZVktdS50b3AscD10LnBhZ2VYLXUubGVmdCx2PSJzY2FsZSgiK2kuY2xpZW50V2lkdGgvMTAwKjEwKyIpIjsidG91Y2hlcyJpbiB0JiYoYz10LnRvdWNoZXNbMF0ucGFnZVktdS50b3AscD10LnRvdWNoZXNbMF0ucGFnZVgtdS5sZWZ0KSxuLnNldEF0dHJpYnV0ZSgiZGF0YS1ob2xkIixEYXRlLm5vdygpKSxuLnNldEF0dHJpYnV0ZSgiZGF0YS1zY2FsZSIsdiksbi5zZXRBdHRyaWJ1dGUoImRhdGEteCIscCksbi5zZXRBdHRyaWJ1dGUoImRhdGEteSIsYyk7dmFyIGY9e3RvcDpjKyJweCIsbGVmdDpwKyJweCJ9O24uY2xhc3NOYW1lPW4uY2xhc3NOYW1lKyIgd2F2ZXMtbm90cmFuc2l0aW9uIixuLnNldEF0dHJpYnV0ZSgic3R5bGUiLG0oZikpLG4uY2xhc3NOYW1lPW4uY2xhc3NOYW1lLnJlcGxhY2UoIndhdmVzLW5vdHJhbnNpdGlvbiIsIiIpLGZbIi13ZWJraXQtdHJhbnNmb3JtIl09dixmWyItbW96LXRyYW5zZm9ybSJdPXYsZlsiLW1zLXRyYW5zZm9ybSJdPXYsZlsiLW8tdHJhbnNmb3JtIl09dixmLnRyYW5zZm9ybT12LGYub3BhY2l0eT0iMSIsZlsiLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uIl09Zy5kdXJhdGlvbisibXMiLGZbIi1tb3otdHJhbnNpdGlvbi1kdXJhdGlvbiJdPWcuZHVyYXRpb24rIm1zIixmWyItby10cmFuc2l0aW9uLWR1cmF0aW9uIl09Zy5kdXJhdGlvbisibXMiLGZbInRyYW5zaXRpb24tZHVyYXRpb24iXT1nLmR1cmF0aW9uKyJtcyIsZlsiLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiJdPSJjdWJpYy1iZXppZXIoMC4yNTAsIDAuNDYwLCAwLjQ1MCwgMC45NDApIixmWyItbW96LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIl09ImN1YmljLWJlemllcigwLjI1MCwgMC40NjAsIDAuNDUwLCAwLjk0MCkiLGZbIi1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIl09ImN1YmljLWJlemllcigwLjI1MCwgMC40NjAsIDAuNDUwLCAwLjk0MCkiLGZbInRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIl09ImN1YmljLWJlemllcigwLjI1MCwgMC40NjAsIDAuNDUwLCAwLjk0MCkiLG4uc2V0QXR0cmlidXRlKCJzdHlsZSIsbShmKSl9LGhpZGU6ZnVuY3Rpb24odCl7bC50b3VjaHVwKHQpO3ZhciBlPXRoaXMsaT0oZS5jbGllbnRXaWR0aCxudWxsKSxuPWUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgid2F2ZXMtcmlwcGxlIik7aWYoISgwPG4ubGVuZ3RoKSlyZXR1cm4hMTt2YXIgcz0oaT1uW24ubGVuZ3RoLTFdKS5nZXRBdHRyaWJ1dGUoImRhdGEteCIpLG89aS5nZXRBdHRyaWJ1dGUoImRhdGEteSIpLGE9aS5nZXRBdHRyaWJ1dGUoImRhdGEtc2NhbGUiKSxyPTM1MC0oRGF0ZS5ub3coKS1OdW1iZXIoaS5nZXRBdHRyaWJ1dGUoImRhdGEtaG9sZCIpKSk7cjwwJiYocj0wKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9e3RvcDpvKyJweCIsbGVmdDpzKyJweCIsb3BhY2l0eToiMCIsIi13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbiI6Zy5kdXJhdGlvbisibXMiLCItbW96LXRyYW5zaXRpb24tZHVyYXRpb24iOmcuZHVyYXRpb24rIm1zIiwiLW8tdHJhbnNpdGlvbi1kdXJhdGlvbiI6Zy5kdXJhdGlvbisibXMiLCJ0cmFuc2l0aW9uLWR1cmF0aW9uIjpnLmR1cmF0aW9uKyJtcyIsIi13ZWJraXQtdHJhbnNmb3JtIjphLCItbW96LXRyYW5zZm9ybSI6YSwiLW1zLXRyYW5zZm9ybSI6YSwiLW8tdHJhbnNmb3JtIjphLHRyYW5zZm9ybTphfTtpLnNldEF0dHJpYnV0ZSgic3R5bGUiLG0odCkpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0cnl7ZS5yZW1vdmVDaGlsZChpKX1jYXRjaCh0KXtyZXR1cm4hMX19LGcuZHVyYXRpb24pfSxyKX0sd3JhcElucHV0OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgaT10W2VdO2lmKCJpbnB1dCI9PT1pLnRhZ05hbWUudG9Mb3dlckNhc2UoKSl7dmFyIG49aS5wYXJlbnROb2RlO2lmKCJpIj09PW4udGFnTmFtZS50b0xvd2VyQ2FzZSgpJiYtMSE9PW4uY2xhc3NOYW1lLmluZGV4T2YoIndhdmVzLWVmZmVjdCIpKWNvbnRpbnVlO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImkiKTtzLmNsYXNzTmFtZT1pLmNsYXNzTmFtZSsiIHdhdmVzLWlucHV0LXdyYXBwZXIiO3ZhciBvPWkuZ2V0QXR0cmlidXRlKCJzdHlsZSIpO298fChvPSIiKSxzLnNldEF0dHJpYnV0ZSgic3R5bGUiLG8pLGkuY2xhc3NOYW1lPSJ3YXZlcy1idXR0b24taW5wdXQiLGkucmVtb3ZlQXR0cmlidXRlKCJzdHlsZSIpLG4ucmVwbGFjZUNoaWxkKHMsaSkscy5hcHBlbmRDaGlsZChpKX19fX0sbD17dG91Y2hlczowLGFsbG93RXZlbnQ6ZnVuY3Rpb24odCl7dmFyIGU9ITA7cmV0dXJuInRvdWNoc3RhcnQiPT09dC50eXBlP2wudG91Y2hlcys9MToidG91Y2hlbmQiPT09dC50eXBlfHwidG91Y2hjYW5jZWwiPT09dC50eXBlP3NldFRpbWVvdXQoZnVuY3Rpb24oKXswPGwudG91Y2hlcyYmKGwudG91Y2hlcy09MSl9LDUwMCk6Im1vdXNlZG93biI9PT10LnR5cGUmJjA8bC50b3VjaGVzJiYoZT0hMSksZX0sdG91Y2h1cDpmdW5jdGlvbih0KXtsLmFsbG93RXZlbnQodCl9fTtmdW5jdGlvbiBuKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCExPT09bC5hbGxvd0V2ZW50KHQpKXJldHVybiBudWxsO2Zvcih2YXIgZT1udWxsLGk9dC50YXJnZXR8fHQuc3JjRWxlbWVudDtudWxsIT09aS5wYXJlbnROb2RlOyl7aWYoIShpIGluc3RhbmNlb2YgU1ZHRWxlbWVudCkmJi0xIT09aS5jbGFzc05hbWUuaW5kZXhPZigid2F2ZXMtZWZmZWN0Iikpe2U9aTticmVha31pPWkucGFyZW50Tm9kZX1yZXR1cm4gZX0odCk7bnVsbCE9PWUmJihnLnNob3codCxlKSwib250b3VjaHN0YXJ0ImluIGkmJihlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixnLmhpZGUsITEpLGUuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLGcuaGlkZSwhMSkpLGUuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsZy5oaWRlLCExKSxlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGcuaGlkZSwhMSksZS5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW5kIixnLmhpZGUsITEpKX10LmRpc3BsYXlFZmZlY3Q9ZnVuY3Rpb24odCl7ImR1cmF0aW9uImluKHQ9dHx8e30pJiYoZy5kdXJhdGlvbj10LmR1cmF0aW9uKSxnLndyYXBJbnB1dChlKCIud2F2ZXMtZWZmZWN0IikpLCJvbnRvdWNoc3RhcnQiaW4gaSYmZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixuLCExKSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsbiwhMSl9LHQuYXR0YWNoPWZ1bmN0aW9uKHQpeyJpbnB1dCI9PT10LnRhZ05hbWUudG9Mb3dlckNhc2UoKSYmKGcud3JhcElucHV0KFt0XSksdD10LnBhcmVudE5vZGUpLCJvbnRvdWNoc3RhcnQiaW4gaSYmdC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixuLCExKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsbiwhMSl9LGkuV2F2ZXM9dCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe3QuZGlzcGxheUVmZmVjdCgpfSwhMSl9KHdpbmRvdyksZnVuY3Rpb24oaSxuKXsidXNlIHN0cmljdCI7dmFyIHQ9e2h0bWw6IiIsZGlzcGxheUxlbmd0aDo0ZTMsaW5EdXJhdGlvbjozMDAsb3V0RHVyYXRpb246Mzc1LGNsYXNzZXM6IiIsY29tcGxldGVDYWxsYmFjazpudWxsLGFjdGl2YXRpb25QZXJjZW50Oi44fSxlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcyh0KXtfY2xhc3NDYWxsQ2hlY2sodGhpcyxzKSx0aGlzLm9wdGlvbnM9aS5leHRlbmQoe30scy5kZWZhdWx0cyx0KSx0aGlzLm1lc3NhZ2U9dGhpcy5vcHRpb25zLmh0bWwsdGhpcy5wYW5uaW5nPSExLHRoaXMudGltZVJlbWFpbmluZz10aGlzLm9wdGlvbnMuZGlzcGxheUxlbmd0aCwwPT09cy5fdG9hc3RzLmxlbmd0aCYmcy5fY3JlYXRlQ29udGFpbmVyKCkscy5fdG9hc3RzLnB1c2godGhpcyk7dmFyIGU9dGhpcy5fY3JlYXRlVG9hc3QoKTsoZS5NX1RvYXN0PXRoaXMpLmVsPWUsdGhpcy4kZWw9aShlKSx0aGlzLl9hbmltYXRlSW4oKSx0aGlzLl9zZXRUaW1lcigpfXJldHVybiBfY3JlYXRlQ2xhc3Mocyxbe2tleToiX2NyZWF0ZVRvYXN0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LmNsYXNzTGlzdC5hZGQoInRvYXN0IiksdGhpcy5vcHRpb25zLmNsYXNzZXMubGVuZ3RoJiZpKHQpLmFkZENsYXNzKHRoaXMub3B0aW9ucy5jbGFzc2VzKSwoIm9iamVjdCI9PXR5cGVvZiBIVE1MRWxlbWVudD90aGlzLm1lc3NhZ2UgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDp0aGlzLm1lc3NhZ2UmJiJvYmplY3QiPT10eXBlb2YgdGhpcy5tZXNzYWdlJiZudWxsIT09dGhpcy5tZXNzYWdlJiYxPT09dGhpcy5tZXNzYWdlLm5vZGVUeXBlJiYic3RyaW5nIj09dHlwZW9mIHRoaXMubWVzc2FnZS5ub2RlTmFtZSk/dC5hcHBlbmRDaGlsZCh0aGlzLm1lc3NhZ2UpOnRoaXMubWVzc2FnZS5qcXVlcnk/aSh0KS5hcHBlbmQodGhpcy5tZXNzYWdlWzBdKTp0LmlubmVySFRNTD10aGlzLm1lc3NhZ2Uscy5fY29udGFpbmVyLmFwcGVuZENoaWxkKHQpLHR9fSx7a2V5OiJfYW5pbWF0ZUluIix2YWx1ZTpmdW5jdGlvbigpe24oe3RhcmdldHM6dGhpcy5lbCx0b3A6MCxvcGFjaXR5OjEsZHVyYXRpb246dGhpcy5vcHRpb25zLmluRHVyYXRpb24sZWFzaW5nOiJlYXNlT3V0Q3ViaWMifSl9fSx7a2V5OiJfc2V0VGltZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLnRpbWVSZW1haW5pbmchPT0xLzAmJih0aGlzLmNvdW50ZXJJbnRlcnZhbD1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3QucGFubmluZ3x8KHQudGltZVJlbWFpbmluZy09MjApLHQudGltZVJlbWFpbmluZzw9MCYmdC5kaXNtaXNzKCl9LDIwKSl9fSx7a2V5OiJkaXNtaXNzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7d2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5jb3VudGVySW50ZXJ2YWwpO3ZhciBlPXRoaXMuZWwub2Zmc2V0V2lkdGgqdGhpcy5vcHRpb25zLmFjdGl2YXRpb25QZXJjZW50O3RoaXMud2FzU3dpcGVkJiYodGhpcy5lbC5zdHlsZS50cmFuc2l0aW9uPSJ0cmFuc2Zvcm0gLjA1cywgb3BhY2l0eSAuMDVzIix0aGlzLmVsLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgiK2UrInB4KSIsdGhpcy5lbC5zdHlsZS5vcGFjaXR5PTApLG4oe3RhcmdldHM6dGhpcy5lbCxvcGFjaXR5OjAsbWFyZ2luVG9wOi00MCxkdXJhdGlvbjp0aGlzLm9wdGlvbnMub3V0RHVyYXRpb24sZWFzaW5nOiJlYXNlT3V0RXhwbyIsY29tcGxldGU6ZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT10eXBlb2YgdC5vcHRpb25zLmNvbXBsZXRlQ2FsbGJhY2smJnQub3B0aW9ucy5jb21wbGV0ZUNhbGxiYWNrKCksdC4kZWwucmVtb3ZlKCkscy5fdG9hc3RzLnNwbGljZShzLl90b2FzdHMuaW5kZXhPZih0KSwxKSwwPT09cy5fdG9hc3RzLmxlbmd0aCYmcy5fcmVtb3ZlQ29udGFpbmVyKCl9fSl9fV0sW3trZXk6ImdldEluc3RhbmNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4odC5qcXVlcnk/dFswXTp0KS5NX1RvYXN0fX0se2tleToiX2NyZWF0ZUNvbnRhaW5lciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LnNldEF0dHJpYnV0ZSgiaWQiLCJ0b2FzdC1jb250YWluZXIiKSx0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHMuX29uRHJhZ1N0YXJ0KSx0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIscy5fb25EcmFnTW92ZSksdC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIscy5fb25EcmFnRW5kKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIscy5fb25EcmFnU3RhcnQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIscy5fb25EcmFnTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIscy5fb25EcmFnRW5kKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpLHMuX2NvbnRhaW5lcj10fX0se2tleToiX3JlbW92ZUNvbnRhaW5lciIsdmFsdWU6ZnVuY3Rpb24oKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHMuX29uRHJhZ01vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHMuX29uRHJhZ0VuZCksaShzLl9jb250YWluZXIpLnJlbW92ZSgpLHMuX2NvbnRhaW5lcj1udWxsfX0se2tleToiX29uRHJhZ1N0YXJ0Iix2YWx1ZTpmdW5jdGlvbih0KXtpZih0LnRhcmdldCYmaSh0LnRhcmdldCkuY2xvc2VzdCgiLnRvYXN0IikubGVuZ3RoKXt2YXIgZT1pKHQudGFyZ2V0KS5jbG9zZXN0KCIudG9hc3QiKVswXS5NX1RvYXN0O2UucGFubmluZz0hMCwocy5fZHJhZ2dlZFRvYXN0PWUpLmVsLmNsYXNzTGlzdC5hZGQoInBhbm5pbmciKSxlLmVsLnN0eWxlLnRyYW5zaXRpb249IiIsZS5zdGFydGluZ1hQb3M9cy5feFBvcyh0KSxlLnRpbWU9RGF0ZS5ub3coKSxlLnhQb3M9cy5feFBvcyh0KX19fSx7a2V5OiJfb25EcmFnTW92ZSIsdmFsdWU6ZnVuY3Rpb24odCl7aWYocy5fZHJhZ2dlZFRvYXN0KXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIGU9cy5fZHJhZ2dlZFRvYXN0O2UuZGVsdGFYPU1hdGguYWJzKGUueFBvcy1zLl94UG9zKHQpKSxlLnhQb3M9cy5feFBvcyh0KSxlLnZlbG9jaXR5WD1lLmRlbHRhWC8oRGF0ZS5ub3coKS1lLnRpbWUpLGUudGltZT1EYXRlLm5vdygpO3ZhciBpPWUueFBvcy1lLnN0YXJ0aW5nWFBvcyxuPWUuZWwub2Zmc2V0V2lkdGgqZS5vcHRpb25zLmFjdGl2YXRpb25QZXJjZW50O2UuZWwuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVYKCIraSsicHgpIixlLmVsLnN0eWxlLm9wYWNpdHk9MS1NYXRoLmFicyhpL24pfX19LHtrZXk6Il9vbkRyYWdFbmQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYocy5fZHJhZ2dlZFRvYXN0KXt2YXIgdD1zLl9kcmFnZ2VkVG9hc3Q7dC5wYW5uaW5nPSExLHQuZWwuY2xhc3NMaXN0LnJlbW92ZSgicGFubmluZyIpO3ZhciBlPXQueFBvcy10LnN0YXJ0aW5nWFBvcyxpPXQuZWwub2Zmc2V0V2lkdGgqdC5vcHRpb25zLmFjdGl2YXRpb25QZXJjZW50O01hdGguYWJzKGUpPml8fDE8dC52ZWxvY2l0eVg/KHQud2FzU3dpcGVkPSEwLHQuZGlzbWlzcygpKToodC5lbC5zdHlsZS50cmFuc2l0aW9uPSJ0cmFuc2Zvcm0gLjJzLCBvcGFjaXR5IC4ycyIsdC5lbC5zdHlsZS50cmFuc2Zvcm09IiIsdC5lbC5zdHlsZS5vcGFjaXR5PSIiKSxzLl9kcmFnZ2VkVG9hc3Q9bnVsbH19fSx7a2V5OiJfeFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQudGFyZ2V0VG91Y2hlcyYmMTw9dC50YXJnZXRUb3VjaGVzLmxlbmd0aD90LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WDp0LmNsaWVudFh9fSx7a2V5OiJkaXNtaXNzQWxsIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiBzLl90b2FzdHMpcy5fdG9hc3RzW3RdLmRpc21pc3MoKX19LHtrZXk6ImRlZmF1bHRzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdH19XSksc30oKTtlLl90b2FzdHM9W10sZS5fY29udGFpbmVyPW51bGwsZS5fZHJhZ2dlZFRvYXN0PW51bGwsTS5Ub2FzdD1lLE0udG9hc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHQpfX0oY2FzaCxNLmFuaW1lKSxmdW5jdGlvbihzLG8peyJ1c2Ugc3RyaWN0Ijt2YXIgZT17ZWRnZToibGVmdCIsZHJhZ2dhYmxlOiEwLGluRHVyYXRpb246MjUwLG91dER1cmF0aW9uOjIwMCxvbk9wZW5TdGFydDpudWxsLG9uT3BlbkVuZDpudWxsLG9uQ2xvc2VTdGFydDpudWxsLG9uQ2xvc2VFbmQ6bnVsbCxwcmV2ZW50U2Nyb2xsaW5nOiEwfSx0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCxlKXtfY2xhc3NDYWxsQ2hlY2sodGhpcyxuKTt2YXIgaT1fcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLChuLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pKS5jYWxsKHRoaXMsbix0LGUpKTtyZXR1cm4oaS5lbC5NX1NpZGVuYXY9aSkuaWQ9aS4kZWwuYXR0cigiaWQiKSxpLm9wdGlvbnM9cy5leHRlbmQoe30sbi5kZWZhdWx0cyxlKSxpLmlzT3Blbj0hMSxpLmlzRml4ZWQ9aS5lbC5jbGFzc0xpc3QuY29udGFpbnMoInNpZGVuYXYtZml4ZWQiKSxpLmlzRHJhZ2dlZD0hMSxpLmxhc3RXaW5kb3dXaWR0aD13aW5kb3cuaW5uZXJXaWR0aCxpLmxhc3RXaW5kb3dIZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0LGkuX2NyZWF0ZU92ZXJsYXkoKSxpLl9jcmVhdGVEcmFnVGFyZ2V0KCksaS5fc2V0dXBFdmVudEhhbmRsZXJzKCksaS5fc2V0dXBDbGFzc2VzKCksaS5fc2V0dXBGaXhlZCgpLG4uX3NpZGVuYXZzLnB1c2goaSksaX1yZXR1cm4gX2luaGVyaXRzKG4sQ29tcG9uZW50KSxfY3JlYXRlQ2xhc3Mobixbe2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVFdmVudEhhbmRsZXJzKCksdGhpcy5fZW5hYmxlQm9keVNjcm9sbGluZygpLHRoaXMuX292ZXJsYXkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9vdmVybGF5KSx0aGlzLmRyYWdUYXJnZXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmRyYWdUYXJnZXQpLHRoaXMuZWwuTV9TaWRlbmF2PXZvaWQgMCx0aGlzLmVsLnN0eWxlLnRyYW5zZm9ybT0iIjt2YXIgdD1uLl9zaWRlbmF2cy5pbmRleE9mKHRoaXMpOzA8PXQmJm4uX3NpZGVuYXZzLnNwbGljZSh0LDEpfX0se2tleToiX2NyZWF0ZU92ZXJsYXkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dGhpcy5fY2xvc2VCb3VuZD10aGlzLmNsb3NlLmJpbmQodGhpcyksdC5jbGFzc0xpc3QuYWRkKCJzaWRlbmF2LW92ZXJsYXkiKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9jbG9zZUJvdW5kKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpLHRoaXMuX292ZXJsYXk9dH19LHtrZXk6Il9zZXR1cEV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7MD09PW4uX3NpZGVuYXZzLmxlbmd0aCYmZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFuZGxlVHJpZ2dlckNsaWNrKSx0aGlzLl9oYW5kbGVEcmFnVGFyZ2V0RHJhZ0JvdW5kPXRoaXMuX2hhbmRsZURyYWdUYXJnZXREcmFnLmJpbmQodGhpcyksdGhpcy5faGFuZGxlRHJhZ1RhcmdldFJlbGVhc2VCb3VuZD10aGlzLl9oYW5kbGVEcmFnVGFyZ2V0UmVsZWFzZS5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZUNsb3NlRHJhZ0JvdW5kPXRoaXMuX2hhbmRsZUNsb3NlRHJhZy5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZUNsb3NlUmVsZWFzZUJvdW5kPXRoaXMuX2hhbmRsZUNsb3NlUmVsZWFzZS5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZUNsb3NlVHJpZ2dlckNsaWNrQm91bmQ9dGhpcy5faGFuZGxlQ2xvc2VUcmlnZ2VyQ2xpY2suYmluZCh0aGlzKSx0aGlzLmRyYWdUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLl9oYW5kbGVEcmFnVGFyZ2V0RHJhZ0JvdW5kKSx0aGlzLmRyYWdUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX2hhbmRsZURyYWdUYXJnZXRSZWxlYXNlQm91bmQpLHRoaXMuX292ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLl9oYW5kbGVDbG9zZURyYWdCb3VuZCksdGhpcy5fb3ZlcmxheS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5faGFuZGxlQ2xvc2VSZWxlYXNlQm91bmQpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLl9oYW5kbGVDbG9zZURyYWdCb3VuZCksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5faGFuZGxlQ2xvc2VSZWxlYXNlQm91bmQpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZUNsb3NlVHJpZ2dlckNsaWNrQm91bmQpLHRoaXMuaXNGaXhlZCYmKHRoaXMuX2hhbmRsZVdpbmRvd1Jlc2l6ZUJvdW5kPXRoaXMuX2hhbmRsZVdpbmRvd1Jlc2l6ZS5iaW5kKHRoaXMpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX2hhbmRsZVdpbmRvd1Jlc2l6ZUJvdW5kKSl9fSx7a2V5OiJfcmVtb3ZlRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXsxPT09bi5fc2lkZW5hdnMubGVuZ3RoJiZkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVUcmlnZ2VyQ2xpY2spLHRoaXMuZHJhZ1RhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX2hhbmRsZURyYWdUYXJnZXREcmFnQm91bmQpLHRoaXMuZHJhZ1RhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5faGFuZGxlRHJhZ1RhcmdldFJlbGVhc2VCb3VuZCksdGhpcy5fb3ZlcmxheS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX2hhbmRsZUNsb3NlRHJhZ0JvdW5kKSx0aGlzLl9vdmVybGF5LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl9oYW5kbGVDbG9zZVJlbGVhc2VCb3VuZCksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX2hhbmRsZUNsb3NlRHJhZ0JvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl9oYW5kbGVDbG9zZVJlbGVhc2VCb3VuZCksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFuZGxlQ2xvc2VUcmlnZ2VyQ2xpY2tCb3VuZCksdGhpcy5pc0ZpeGVkJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9oYW5kbGVXaW5kb3dSZXNpemVCb3VuZCl9fSx7a2V5OiJfaGFuZGxlVHJpZ2dlckNsaWNrIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1zKHQudGFyZ2V0KS5jbG9zZXN0KCIuc2lkZW5hdi10cmlnZ2VyIik7aWYodC50YXJnZXQmJmUubGVuZ3RoKXt2YXIgaT1NLmdldElkRnJvbVRyaWdnZXIoZVswXSksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpKS5NX1NpZGVuYXY7biYmbi5vcGVuKGUpLHQucHJldmVudERlZmF1bHQoKX19fSx7a2V5OiJfc3RhcnREcmFnIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WDt0aGlzLmlzRHJhZ2dlZD0hMCx0aGlzLl9zdGFydGluZ1hwb3M9ZSx0aGlzLl94UG9zPXRoaXMuX3N0YXJ0aW5nWHBvcyx0aGlzLl90aW1lPURhdGUubm93KCksdGhpcy5fd2lkdGg9dGhpcy5lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCx0aGlzLl9vdmVybGF5LnN0eWxlLmRpc3BsYXk9ImJsb2NrIix0aGlzLl9pbml0aWFsU2Nyb2xsVG9wPXRoaXMuaXNPcGVuP3RoaXMuZWwuc2Nyb2xsVG9wOk0uZ2V0RG9jdW1lbnRTY3JvbGxUb3AoKSx0aGlzLl92ZXJ0aWNhbGx5U2Nyb2xsaW5nPSExLG8ucmVtb3ZlKHRoaXMuZWwpLG8ucmVtb3ZlKHRoaXMuX292ZXJsYXkpfX0se2tleToiX2RyYWdNb3ZlVXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WCxpPXRoaXMuaXNPcGVuP3RoaXMuZWwuc2Nyb2xsVG9wOk0uZ2V0RG9jdW1lbnRTY3JvbGxUb3AoKTt0aGlzLmRlbHRhWD1NYXRoLmFicyh0aGlzLl94UG9zLWUpLHRoaXMuX3hQb3M9ZSx0aGlzLnZlbG9jaXR5WD10aGlzLmRlbHRhWC8oRGF0ZS5ub3coKS10aGlzLl90aW1lKSx0aGlzLl90aW1lPURhdGUubm93KCksdGhpcy5faW5pdGlhbFNjcm9sbFRvcCE9PWkmJih0aGlzLl92ZXJ0aWNhbGx5U2Nyb2xsaW5nPSEwKX19LHtrZXk6Il9oYW5kbGVEcmFnVGFyZ2V0RHJhZyIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy5vcHRpb25zLmRyYWdnYWJsZSYmIXRoaXMuX2lzQ3VycmVudGx5Rml4ZWQoKSYmIXRoaXMuX3ZlcnRpY2FsbHlTY3JvbGxpbmcpe3RoaXMuaXNEcmFnZ2VkfHx0aGlzLl9zdGFydERyYWcodCksdGhpcy5fZHJhZ01vdmVVcGRhdGUodCk7dmFyIGU9dGhpcy5feFBvcy10aGlzLl9zdGFydGluZ1hwb3MsaT0wPGU/InJpZ2h0IjoibGVmdCI7ZT1NYXRoLm1pbih0aGlzLl93aWR0aCxNYXRoLmFicyhlKSksdGhpcy5vcHRpb25zLmVkZ2U9PT1pJiYoZT0wKTt2YXIgbj1lLHM9InRyYW5zbGF0ZVgoLTEwMCUpIjsicmlnaHQiPT09dGhpcy5vcHRpb25zLmVkZ2UmJihzPSJ0cmFuc2xhdGVYKDEwMCUpIixuPS1uKSx0aGlzLnBlcmNlbnRPcGVuPU1hdGgubWluKDEsZS90aGlzLl93aWR0aCksdGhpcy5lbC5zdHlsZS50cmFuc2Zvcm09cysiIHRyYW5zbGF0ZVgoIituKyJweCkiLHRoaXMuX292ZXJsYXkuc3R5bGUub3BhY2l0eT10aGlzLnBlcmNlbnRPcGVufX19LHtrZXk6Il9oYW5kbGVEcmFnVGFyZ2V0UmVsZWFzZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzRHJhZ2dlZCYmKC4yPHRoaXMucGVyY2VudE9wZW4/dGhpcy5vcGVuKCk6dGhpcy5fYW5pbWF0ZU91dCgpLHRoaXMuaXNEcmFnZ2VkPSExLHRoaXMuX3ZlcnRpY2FsbHlTY3JvbGxpbmc9ITEpfX0se2tleToiX2hhbmRsZUNsb3NlRHJhZyIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy5pc09wZW4pe2lmKCF0aGlzLm9wdGlvbnMuZHJhZ2dhYmxlfHx0aGlzLl9pc0N1cnJlbnRseUZpeGVkKCl8fHRoaXMuX3ZlcnRpY2FsbHlTY3JvbGxpbmcpcmV0dXJuO3RoaXMuaXNEcmFnZ2VkfHx0aGlzLl9zdGFydERyYWcodCksdGhpcy5fZHJhZ01vdmVVcGRhdGUodCk7dmFyIGU9dGhpcy5feFBvcy10aGlzLl9zdGFydGluZ1hwb3MsaT0wPGU/InJpZ2h0IjoibGVmdCI7ZT1NYXRoLm1pbih0aGlzLl93aWR0aCxNYXRoLmFicyhlKSksdGhpcy5vcHRpb25zLmVkZ2UhPT1pJiYoZT0wKTt2YXIgbj0tZTsicmlnaHQiPT09dGhpcy5vcHRpb25zLmVkZ2UmJihuPS1uKSx0aGlzLnBlcmNlbnRPcGVuPU1hdGgubWluKDEsMS1lL3RoaXMuX3dpZHRoKSx0aGlzLmVsLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgiK24rInB4KSIsdGhpcy5fb3ZlcmxheS5zdHlsZS5vcGFjaXR5PXRoaXMucGVyY2VudE9wZW59fX0se2tleToiX2hhbmRsZUNsb3NlUmVsZWFzZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzT3BlbiYmdGhpcy5pc0RyYWdnZWQmJiguODx0aGlzLnBlcmNlbnRPcGVuP3RoaXMuX2FuaW1hdGVJbigpOnRoaXMuY2xvc2UoKSx0aGlzLmlzRHJhZ2dlZD0hMSx0aGlzLl92ZXJ0aWNhbGx5U2Nyb2xsaW5nPSExKX19LHtrZXk6Il9oYW5kbGVDbG9zZVRyaWdnZXJDbGljayIsdmFsdWU6ZnVuY3Rpb24odCl7cyh0LnRhcmdldCkuY2xvc2VzdCgiLnNpZGVuYXYtY2xvc2UiKS5sZW5ndGgmJiF0aGlzLl9pc0N1cnJlbnRseUZpeGVkKCkmJnRoaXMuY2xvc2UoKX19LHtrZXk6Il9oYW5kbGVXaW5kb3dSZXNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5sYXN0V2luZG93V2lkdGghPT13aW5kb3cuaW5uZXJXaWR0aCYmKDk5Mjx3aW5kb3cuaW5uZXJXaWR0aD90aGlzLm9wZW4oKTp0aGlzLmNsb3NlKCkpLHRoaXMubGFzdFdpbmRvd1dpZHRoPXdpbmRvdy5pbm5lcldpZHRoLHRoaXMubGFzdFdpbmRvd0hlaWdodD13aW5kb3cuaW5uZXJIZWlnaHR9fSx7a2V5OiJfc2V0dXBDbGFzc2VzIix2YWx1ZTpmdW5jdGlvbigpeyJyaWdodCI9PT10aGlzLm9wdGlvbnMuZWRnZSYmKHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgicmlnaHQtYWxpZ25lZCIpLHRoaXMuZHJhZ1RhcmdldC5jbGFzc0xpc3QuYWRkKCJyaWdodC1hbGlnbmVkIikpfX0se2tleToiX3JlbW92ZUNsYXNzZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJyaWdodC1hbGlnbmVkIiksdGhpcy5kcmFnVGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoInJpZ2h0LWFsaWduZWQiKX19LHtrZXk6Il9zZXR1cEZpeGVkIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2lzQ3VycmVudGx5Rml4ZWQoKSYmdGhpcy5vcGVuKCl9fSx7a2V5OiJfaXNDdXJyZW50bHlGaXhlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0ZpeGVkJiY5OTI8d2luZG93LmlubmVyV2lkdGh9fSx7a2V5OiJfY3JlYXRlRHJhZ1RhcmdldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTGlzdC5hZGQoImRyYWctdGFyZ2V0IiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KSx0aGlzLmRyYWdUYXJnZXQ9dH19LHtrZXk6Il9wcmV2ZW50Qm9keVNjcm9sbGluZyIsdmFsdWU6ZnVuY3Rpb24oKXtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PSJoaWRkZW4ifX0se2tleToiX2VuYWJsZUJvZHlTY3JvbGxpbmciLHZhbHVlOmZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iIn19LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7ITAhPT10aGlzLmlzT3BlbiYmKHRoaXMuaXNPcGVuPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMub25PcGVuU3RhcnQmJnRoaXMub3B0aW9ucy5vbk9wZW5TdGFydC5jYWxsKHRoaXMsdGhpcy5lbCksdGhpcy5faXNDdXJyZW50bHlGaXhlZCgpPyhvLnJlbW92ZSh0aGlzLmVsKSxvKHt0YXJnZXRzOnRoaXMuZWwsdHJhbnNsYXRlWDowLGR1cmF0aW9uOjAsZWFzaW5nOiJlYXNlT3V0UXVhZCJ9KSx0aGlzLl9lbmFibGVCb2R5U2Nyb2xsaW5nKCksdGhpcy5fb3ZlcmxheS5zdHlsZS5kaXNwbGF5PSJub25lIik6KHRoaXMub3B0aW9ucy5wcmV2ZW50U2Nyb2xsaW5nJiZ0aGlzLl9wcmV2ZW50Qm9keVNjcm9sbGluZygpLHRoaXMuaXNEcmFnZ2VkJiYxPT10aGlzLnBlcmNlbnRPcGVufHx0aGlzLl9hbmltYXRlSW4oKSkpfX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoITEhPT10aGlzLmlzT3BlbilpZih0aGlzLmlzT3Blbj0hMSwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLm9uQ2xvc2VTdGFydCYmdGhpcy5vcHRpb25zLm9uQ2xvc2VTdGFydC5jYWxsKHRoaXMsdGhpcy5lbCksdGhpcy5faXNDdXJyZW50bHlGaXhlZCgpKXt2YXIgdD0ibGVmdCI9PT10aGlzLm9wdGlvbnMuZWRnZT8iLTEwNSUiOiIxMDUlIjt0aGlzLmVsLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWCgiK3QrIikifWVsc2UgdGhpcy5fZW5hYmxlQm9keVNjcm9sbGluZygpLHRoaXMuaXNEcmFnZ2VkJiYwPT10aGlzLnBlcmNlbnRPcGVuP3RoaXMuX292ZXJsYXkuc3R5bGUuZGlzcGxheT0ibm9uZSI6dGhpcy5fYW5pbWF0ZU91dCgpfX0se2tleToiX2FuaW1hdGVJbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9hbmltYXRlU2lkZW5hdkluKCksdGhpcy5fYW5pbWF0ZU92ZXJsYXlJbigpfX0se2tleToiX2FuaW1hdGVTaWRlbmF2SW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPSJsZWZ0Ij09PXRoaXMub3B0aW9ucy5lZGdlPy0xOjE7dGhpcy5pc0RyYWdnZWQmJihlPSJsZWZ0Ij09PXRoaXMub3B0aW9ucy5lZGdlP2UrdGhpcy5wZXJjZW50T3BlbjplLXRoaXMucGVyY2VudE9wZW4pLG8ucmVtb3ZlKHRoaXMuZWwpLG8oe3RhcmdldHM6dGhpcy5lbCx0cmFuc2xhdGVYOlsxMDAqZSsiJSIsMF0sZHVyYXRpb246dGhpcy5vcHRpb25zLmluRHVyYXRpb24sZWFzaW5nOiJlYXNlT3V0UXVhZCIsY29tcGxldGU6ZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT10eXBlb2YgdC5vcHRpb25zLm9uT3BlbkVuZCYmdC5vcHRpb25zLm9uT3BlbkVuZC5jYWxsKHQsdC5lbCl9fSl9fSx7a2V5OiJfYW5pbWF0ZU92ZXJsYXlJbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD0wO3RoaXMuaXNEcmFnZ2VkP3Q9dGhpcy5wZXJjZW50T3BlbjpzKHRoaXMuX292ZXJsYXkpLmNzcyh7ZGlzcGxheToiYmxvY2sifSksby5yZW1vdmUodGhpcy5fb3ZlcmxheSksbyh7dGFyZ2V0czp0aGlzLl9vdmVybGF5LG9wYWNpdHk6W3QsMV0sZHVyYXRpb246dGhpcy5vcHRpb25zLmluRHVyYXRpb24sZWFzaW5nOiJlYXNlT3V0UXVhZCJ9KX19LHtrZXk6Il9hbmltYXRlT3V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2FuaW1hdGVTaWRlbmF2T3V0KCksdGhpcy5fYW5pbWF0ZU92ZXJsYXlPdXQoKX19LHtrZXk6Il9hbmltYXRlU2lkZW5hdk91dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9ImxlZnQiPT09dGhpcy5vcHRpb25zLmVkZ2U/LTE6MSxpPTA7dGhpcy5pc0RyYWdnZWQmJihpPSJsZWZ0Ij09PXRoaXMub3B0aW9ucy5lZGdlP2UrdGhpcy5wZXJjZW50T3BlbjplLXRoaXMucGVyY2VudE9wZW4pLG8ucmVtb3ZlKHRoaXMuZWwpLG8oe3RhcmdldHM6dGhpcy5lbCx0cmFuc2xhdGVYOlsxMDAqaSsiJSIsMTA1KmUrIiUiXSxkdXJhdGlvbjp0aGlzLm9wdGlvbnMub3V0RHVyYXRpb24sZWFzaW5nOiJlYXNlT3V0UXVhZCIsY29tcGxldGU6ZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT10eXBlb2YgdC5vcHRpb25zLm9uQ2xvc2VFbmQmJnQub3B0aW9ucy5vbkNsb3NlRW5kLmNhbGwodCx0LmVsKX19KX19LHtrZXk6Il9hbmltYXRlT3ZlcmxheU91dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO28ucmVtb3ZlKHRoaXMuX292ZXJsYXkpLG8oe3RhcmdldHM6dGhpcy5fb3ZlcmxheSxvcGFjaXR5OjAsZHVyYXRpb246dGhpcy5vcHRpb25zLm91dER1cmF0aW9uLGVhc2luZzoiZWFzZU91dFF1YWQiLGNvbXBsZXRlOmZ1bmN0aW9uKCl7cyh0Ll9vdmVybGF5KS5jc3MoImRpc3BsYXkiLCJub25lIil9fSl9fV0sW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9nZXQobi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihuKSwiaW5pdCIsdGhpcykuY2FsbCh0aGlzLHRoaXMsdCxlKX19LHtrZXk6ImdldEluc3RhbmNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4odC5qcXVlcnk/dFswXTp0KS5NX1NpZGVuYXZ9fSx7a2V5OiJkZWZhdWx0cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGV9fV0pLG59KCk7dC5fc2lkZW5hdnM9W10sTS5TaWRlbmF2PXQsTS5qUXVlcnlMb2FkZWQmJk0uaW5pdGlhbGl6ZUpxdWVyeVdyYXBwZXIodCwic2lkZW5hdiIsIk1fU2lkZW5hdiIpfShjYXNoLE0uYW5pbWUpLGZ1bmN0aW9uKG8sYSl7InVzZSBzdHJpY3QiO3ZhciBlPXt0aHJvdHRsZToxMDAsc2Nyb2xsT2Zmc2V0OjIwMCxhY3RpdmVDbGFzczoiYWN0aXZlIixnZXRBY3RpdmVFbGVtZW50OmZ1bmN0aW9uKHQpe3JldHVybidhW2hyZWY9IiMnK3QrJyJdJ319LHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gYyh0LGUpe19jbGFzc0NhbGxDaGVjayh0aGlzLGMpO3ZhciBpPV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKGMuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoYykpLmNhbGwodGhpcyxjLHQsZSkpO3JldHVybihpLmVsLk1fU2Nyb2xsU3B5PWkpLm9wdGlvbnM9by5leHRlbmQoe30sYy5kZWZhdWx0cyxlKSxjLl9lbGVtZW50cy5wdXNoKGkpLGMuX2NvdW50KyssYy5faW5jcmVtZW50KyssaS50aWNrSWQ9LTEsaS5pZD1jLl9pbmNyZW1lbnQsaS5fc2V0dXBFdmVudEhhbmRsZXJzKCksaS5faGFuZGxlV2luZG93U2Nyb2xsKCksaX1yZXR1cm4gX2luaGVyaXRzKGMsQ29tcG9uZW50KSxfY3JlYXRlQ2xhc3MoYyxbe2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXtjLl9lbGVtZW50cy5zcGxpY2UoYy5fZWxlbWVudHMuaW5kZXhPZih0aGlzKSwxKSxjLl9lbGVtZW50c0luVmlldy5zcGxpY2UoYy5fZWxlbWVudHNJblZpZXcuaW5kZXhPZih0aGlzKSwxKSxjLl92aXNpYmxlRWxlbWVudHMuc3BsaWNlKGMuX3Zpc2libGVFbGVtZW50cy5pbmRleE9mKHRoaXMuJGVsKSwxKSxjLl9jb3VudC0tLHRoaXMuX3JlbW92ZUV2ZW50SGFuZGxlcnMoKSxvKHRoaXMub3B0aW9ucy5nZXRBY3RpdmVFbGVtZW50KHRoaXMuJGVsLmF0dHIoImlkIikpKS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MpLHRoaXMuZWwuTV9TY3JvbGxTcHk9dm9pZCAwfX0se2tleToiX3NldHVwRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1NLnRocm90dGxlKHRoaXMuX2hhbmRsZVdpbmRvd1Njcm9sbCwyMDApO3RoaXMuX2hhbmRsZVRocm90dGxlZFJlc2l6ZUJvdW5kPXQuYmluZCh0aGlzKSx0aGlzLl9oYW5kbGVXaW5kb3dTY3JvbGxCb3VuZD10aGlzLl9oYW5kbGVXaW5kb3dTY3JvbGwuYmluZCh0aGlzKSwxPT09Yy5fY291bnQmJih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix0aGlzLl9oYW5kbGVXaW5kb3dTY3JvbGxCb3VuZCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5faGFuZGxlVGhyb3R0bGVkUmVzaXplQm91bmQpLGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZVRyaWdnZXJDbGljaykpfX0se2tleToiX3JlbW92ZUV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7MD09PWMuX2NvdW50JiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5faGFuZGxlV2luZG93U2Nyb2xsQm91bmQpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX2hhbmRsZVRocm90dGxlZFJlc2l6ZUJvdW5kKSxkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVUcmlnZ2VyQ2xpY2spKX19LHtrZXk6Il9oYW5kbGVUcmlnZ2VyQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1vKHQudGFyZ2V0KSxpPWMuX2VsZW1lbnRzLmxlbmd0aC0xOzA8PWk7aS0tKXt2YXIgbj1jLl9lbGVtZW50c1tpXTtpZihlLmlzKCdhW2hyZWY9IiMnK24uJGVsLmF0dHIoImlkIikrJyJdJykpe3QucHJldmVudERlZmF1bHQoKTt2YXIgcz1uLiRlbC5vZmZzZXQoKS50b3ArMTthKHt0YXJnZXRzOltkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZG9jdW1lbnQuYm9keV0sc2Nyb2xsVG9wOnMtbi5vcHRpb25zLnNjcm9sbE9mZnNldCxkdXJhdGlvbjo0MDAsZWFzaW5nOiJlYXNlT3V0Q3ViaWMifSk7YnJlYWt9fX19LHtrZXk6Il9oYW5kbGVXaW5kb3dTY3JvbGwiLHZhbHVlOmZ1bmN0aW9uKCl7Yy5fdGlja3MrKztmb3IodmFyIHQ9TS5nZXREb2N1bWVudFNjcm9sbFRvcCgpLGU9TS5nZXREb2N1bWVudFNjcm9sbExlZnQoKSxpPWUrd2luZG93LmlubmVyV2lkdGgsbj10K3dpbmRvdy5pbm5lckhlaWdodCxzPWMuX2ZpbmRFbGVtZW50cyh0LGksbixlKSxvPTA7bzxzLmxlbmd0aDtvKyspe3ZhciBhPXNbb107YS50aWNrSWQ8MCYmYS5fZW50ZXIoKSxhLnRpY2tJZD1jLl90aWNrc31mb3IodmFyIHI9MDtyPGMuX2VsZW1lbnRzSW5WaWV3Lmxlbmd0aDtyKyspe3ZhciBsPWMuX2VsZW1lbnRzSW5WaWV3W3JdLGg9bC50aWNrSWQ7MDw9aCYmaCE9PWMuX3RpY2tzJiYobC5fZXhpdCgpLGwudGlja0lkPS0xKX1jLl9lbGVtZW50c0luVmlldz1zfX0se2tleToiX2VudGVyIix2YWx1ZTpmdW5jdGlvbigpeyhjLl92aXNpYmxlRWxlbWVudHM9Yy5fdmlzaWJsZUVsZW1lbnRzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gMCE9dC5oZWlnaHQoKX0pKVswXT8obyh0aGlzLm9wdGlvbnMuZ2V0QWN0aXZlRWxlbWVudChjLl92aXNpYmxlRWxlbWVudHNbMF0uYXR0cigiaWQiKSkpLnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyksYy5fdmlzaWJsZUVsZW1lbnRzWzBdWzBdLk1fU2Nyb2xsU3B5JiZ0aGlzLmlkPGMuX3Zpc2libGVFbGVtZW50c1swXVswXS5NX1Njcm9sbFNweS5pZD9jLl92aXNpYmxlRWxlbWVudHMudW5zaGlmdCh0aGlzLiRlbCk6Yy5fdmlzaWJsZUVsZW1lbnRzLnB1c2godGhpcy4kZWwpKTpjLl92aXNpYmxlRWxlbWVudHMucHVzaCh0aGlzLiRlbCksbyh0aGlzLm9wdGlvbnMuZ2V0QWN0aXZlRWxlbWVudChjLl92aXNpYmxlRWxlbWVudHNbMF0uYXR0cigiaWQiKSkpLmFkZENsYXNzKHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyl9fSx7a2V5OiJfZXhpdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzOyhjLl92aXNpYmxlRWxlbWVudHM9Yy5fdmlzaWJsZUVsZW1lbnRzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gMCE9dC5oZWlnaHQoKX0pKVswXSYmKG8odGhpcy5vcHRpb25zLmdldEFjdGl2ZUVsZW1lbnQoYy5fdmlzaWJsZUVsZW1lbnRzWzBdLmF0dHIoImlkIikpKS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MpLChjLl92aXNpYmxlRWxlbWVudHM9Yy5fdmlzaWJsZUVsZW1lbnRzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5hdHRyKCJpZCIpIT1lLiRlbC5hdHRyKCJpZCIpfSkpWzBdJiZvKHRoaXMub3B0aW9ucy5nZXRBY3RpdmVFbGVtZW50KGMuX3Zpc2libGVFbGVtZW50c1swXS5hdHRyKCJpZCIpKSkuYWRkQ2xhc3ModGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzKSl9fV0sW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9nZXQoYy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihjKSwiaW5pdCIsdGhpcykuY2FsbCh0aGlzLHRoaXMsdCxlKX19LHtrZXk6ImdldEluc3RhbmNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4odC5qcXVlcnk/dFswXTp0KS5NX1Njcm9sbFNweX19LHtrZXk6Il9maW5kRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpLG4pe2Zvcih2YXIgcz1bXSxvPTA7bzxjLl9lbGVtZW50cy5sZW5ndGg7bysrKXt2YXIgYT1jLl9lbGVtZW50c1tvXSxyPXQrYS5vcHRpb25zLnNjcm9sbE9mZnNldHx8MjAwO2lmKDA8YS4kZWwuaGVpZ2h0KCkpe3ZhciBsPWEuJGVsLm9mZnNldCgpLnRvcCxoPWEuJGVsLm9mZnNldCgpLmxlZnQsZD1oK2EuJGVsLndpZHRoKCksdT1sK2EuJGVsLmhlaWdodCgpOyEoZTxofHxkPG58fGk8bHx8dTxyKSYmcy5wdXNoKGEpfX1yZXR1cm4gc319LHtrZXk6ImRlZmF1bHRzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX19XSksY30oKTt0Ll9lbGVtZW50cz1bXSx0Ll9lbGVtZW50c0luVmlldz1bXSx0Ll92aXNpYmxlRWxlbWVudHM9W10sdC5fY291bnQ9MCx0Ll9pbmNyZW1lbnQ9MCx0Ll90aWNrcz0wLE0uU2Nyb2xsU3B5PXQsTS5qUXVlcnlMb2FkZWQmJk0uaW5pdGlhbGl6ZUpxdWVyeVdyYXBwZXIodCwic2Nyb2xsU3B5IiwiTV9TY3JvbGxTcHkiKX0oY2FzaCxNLmFuaW1lKSxmdW5jdGlvbihoKXsidXNlIHN0cmljdCI7dmFyIGU9e2RhdGE6e30sbGltaXQ6MS8wLG9uQXV0b2NvbXBsZXRlOm51bGwsbWluTGVuZ3RoOjEsc29ydEZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gdC5pbmRleE9mKGkpLWUuaW5kZXhPZihpKX19LHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gcyh0LGUpe19jbGFzc0NhbGxDaGVjayh0aGlzLHMpO3ZhciBpPV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKHMuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YocykpLmNhbGwodGhpcyxzLHQsZSkpO3JldHVybihpLmVsLk1fQXV0b2NvbXBsZXRlPWkpLm9wdGlvbnM9aC5leHRlbmQoe30scy5kZWZhdWx0cyxlKSxpLmlzT3Blbj0hMSxpLmNvdW50PTAsaS5hY3RpdmVJbmRleD0tMSxpLm9sZFZhbCxpLiRpbnB1dEZpZWxkPWkuJGVsLmNsb3Nlc3QoIi5pbnB1dC1maWVsZCIpLGkuJGFjdGl2ZT1oKCksaS5fbW91c2Vkb3duPSExLGkuX3NldHVwRHJvcGRvd24oKSxpLl9zZXR1cEV2ZW50SGFuZGxlcnMoKSxpfXJldHVybiBfaW5oZXJpdHMocyxDb21wb25lbnQpLF9jcmVhdGVDbGFzcyhzLFt7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3JlbW92ZUV2ZW50SGFuZGxlcnMoKSx0aGlzLl9yZW1vdmVEcm9wZG93bigpLHRoaXMuZWwuTV9BdXRvY29tcGxldGU9dm9pZCAwfX0se2tleToiX3NldHVwRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oYW5kbGVJbnB1dEJsdXJCb3VuZD10aGlzLl9oYW5kbGVJbnB1dEJsdXIuYmluZCh0aGlzKSx0aGlzLl9oYW5kbGVJbnB1dEtleXVwQW5kRm9jdXNCb3VuZD10aGlzLl9oYW5kbGVJbnB1dEtleXVwQW5kRm9jdXMuYmluZCh0aGlzKSx0aGlzLl9oYW5kbGVJbnB1dEtleWRvd25Cb3VuZD10aGlzLl9oYW5kbGVJbnB1dEtleWRvd24uYmluZCh0aGlzKSx0aGlzLl9oYW5kbGVJbnB1dENsaWNrQm91bmQ9dGhpcy5faGFuZGxlSW5wdXRDbGljay5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZUNvbnRhaW5lck1vdXNlZG93bkFuZFRvdWNoc3RhcnRCb3VuZD10aGlzLl9oYW5kbGVDb250YWluZXJNb3VzZWRvd25BbmRUb3VjaHN0YXJ0LmJpbmQodGhpcyksdGhpcy5faGFuZGxlQ29udGFpbmVyTW91c2V1cEFuZFRvdWNoZW5kQm91bmQ9dGhpcy5faGFuZGxlQ29udGFpbmVyTW91c2V1cEFuZFRvdWNoZW5kLmJpbmQodGhpcyksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJibHVyIix0aGlzLl9oYW5kbGVJbnB1dEJsdXJCb3VuZCksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdGhpcy5faGFuZGxlSW5wdXRLZXl1cEFuZEZvY3VzQm91bmQpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHRoaXMuX2hhbmRsZUlucHV0S2V5dXBBbmRGb2N1c0JvdW5kKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2hhbmRsZUlucHV0S2V5ZG93bkJvdW5kKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVJbnB1dENsaWNrQm91bmQpLHRoaXMuY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5faGFuZGxlQ29udGFpbmVyTW91c2Vkb3duQW5kVG91Y2hzdGFydEJvdW5kKSx0aGlzLmNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9oYW5kbGVDb250YWluZXJNb3VzZXVwQW5kVG91Y2hlbmRCb3VuZCksdm9pZCAwIT09d2luZG93Lm9udG91Y2hzdGFydCYmKHRoaXMuY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX2hhbmRsZUNvbnRhaW5lck1vdXNlZG93bkFuZFRvdWNoc3RhcnRCb3VuZCksdGhpcy5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX2hhbmRsZUNvbnRhaW5lck1vdXNldXBBbmRUb3VjaGVuZEJvdW5kKSl9fSx7a2V5OiJfcmVtb3ZlRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX2hhbmRsZUlucHV0Qmx1ckJvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLl9oYW5kbGVJbnB1dEtleXVwQW5kRm9jdXNCb3VuZCksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5faGFuZGxlSW5wdXRLZXl1cEFuZEZvY3VzQm91bmQpLHRoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5faGFuZGxlSW5wdXRLZXlkb3duQm91bmQpLHRoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZUlucHV0Q2xpY2tCb3VuZCksdGhpcy5jb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLl9oYW5kbGVDb250YWluZXJNb3VzZWRvd25BbmRUb3VjaHN0YXJ0Qm91bmQpLHRoaXMuY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuX2hhbmRsZUNvbnRhaW5lck1vdXNldXBBbmRUb3VjaGVuZEJvdW5kKSx2b2lkIDAhPT13aW5kb3cub250b3VjaHN0YXJ0JiYodGhpcy5jb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5faGFuZGxlQ29udGFpbmVyTW91c2Vkb3duQW5kVG91Y2hzdGFydEJvdW5kKSx0aGlzLmNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5faGFuZGxlQ29udGFpbmVyTW91c2V1cEFuZFRvdWNoZW5kQm91bmQpKX19LHtrZXk6Il9zZXR1cERyb3Bkb3duIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5jb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidWwiKSx0aGlzLmNvbnRhaW5lci5pZD0iYXV0b2NvbXBsZXRlLW9wdGlvbnMtIitNLmd1aWQoKSxoKHRoaXMuY29udGFpbmVyKS5hZGRDbGFzcygiYXV0b2NvbXBsZXRlLWNvbnRlbnQgZHJvcGRvd24tY29udGVudCIpLHRoaXMuJGlucHV0RmllbGQuYXBwZW5kKHRoaXMuY29udGFpbmVyKSx0aGlzLmVsLnNldEF0dHJpYnV0ZSgiZGF0YS10YXJnZXQiLHRoaXMuY29udGFpbmVyLmlkKSx0aGlzLmRyb3Bkb3duPU0uRHJvcGRvd24uaW5pdCh0aGlzLmVsLHthdXRvRm9jdXM6ITEsY2xvc2VPbkNsaWNrOiExLGNvdmVyVHJpZ2dlcjohMSxvbkl0ZW1DbGljazpmdW5jdGlvbih0KXtlLnNlbGVjdE9wdGlvbihoKHQpKX19KSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLmRyb3Bkb3duLl9oYW5kbGVDbGlja0JvdW5kKX19LHtrZXk6Il9yZW1vdmVEcm9wZG93biIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuY29udGFpbmVyKX19LHtrZXk6Il9oYW5kbGVJbnB1dEJsdXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fbW91c2Vkb3dufHwodGhpcy5jbG9zZSgpLHRoaXMuX3Jlc2V0QXV0b2NvbXBsZXRlKCkpfX0se2tleToiX2hhbmRsZUlucHV0S2V5dXBBbmRGb2N1cyIsdmFsdWU6ZnVuY3Rpb24odCl7ImtleXVwIj09PXQudHlwZSYmKHMuX2tleWRvd249ITEpLHRoaXMuY291bnQ9MDt2YXIgZT10aGlzLmVsLnZhbHVlLnRvTG93ZXJDYXNlKCk7MTMhPT10LmtleUNvZGUmJjM4IT09dC5rZXlDb2RlJiY0MCE9PXQua2V5Q29kZSYmKHRoaXMub2xkVmFsPT09ZXx8IU0udGFiUHJlc3NlZCYmImZvY3VzIj09PXQudHlwZXx8dGhpcy5vcGVuKCksdGhpcy5vbGRWYWw9ZSl9fSx7a2V5OiJfaGFuZGxlSW5wdXRLZXlkb3duIix2YWx1ZTpmdW5jdGlvbih0KXtzLl9rZXlkb3duPSEwO3ZhciBlPXQua2V5Q29kZSxpPXZvaWQgMCxuPWgodGhpcy5jb250YWluZXIpLmNoaWxkcmVuKCJsaSIpLmxlbmd0aDtlPT09TS5rZXlzLkVOVEVSJiYwPD10aGlzLmFjdGl2ZUluZGV4PyhpPWgodGhpcy5jb250YWluZXIpLmNoaWxkcmVuKCJsaSIpLmVxKHRoaXMuYWN0aXZlSW5kZXgpKS5sZW5ndGgmJih0aGlzLnNlbGVjdE9wdGlvbihpKSx0LnByZXZlbnREZWZhdWx0KCkpOmUhPT1NLmtleXMuQVJST1dfVVAmJmUhPT1NLmtleXMuQVJST1dfRE9XTnx8KHQucHJldmVudERlZmF1bHQoKSxlPT09TS5rZXlzLkFSUk9XX1VQJiYwPHRoaXMuYWN0aXZlSW5kZXgmJnRoaXMuYWN0aXZlSW5kZXgtLSxlPT09TS5rZXlzLkFSUk9XX0RPV04mJnRoaXMuYWN0aXZlSW5kZXg8bi0xJiZ0aGlzLmFjdGl2ZUluZGV4KyssdGhpcy4kYWN0aXZlLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSwwPD10aGlzLmFjdGl2ZUluZGV4JiYodGhpcy4kYWN0aXZlPWgodGhpcy5jb250YWluZXIpLmNoaWxkcmVuKCJsaSIpLmVxKHRoaXMuYWN0aXZlSW5kZXgpLHRoaXMuJGFjdGl2ZS5hZGRDbGFzcygiYWN0aXZlIikpKX19LHtrZXk6Il9oYW5kbGVJbnB1dENsaWNrIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLm9wZW4oKX19LHtrZXk6Il9oYW5kbGVDb250YWluZXJNb3VzZWRvd25BbmRUb3VjaHN0YXJ0Iix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLl9tb3VzZWRvd249ITB9fSx7a2V5OiJfaGFuZGxlQ29udGFpbmVyTW91c2V1cEFuZFRvdWNoZW5kIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLl9tb3VzZWRvd249ITF9fSx7a2V5OiJfaGlnaGxpZ2h0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPWUuZmluZCgiaW1nIiksbj1lLnRleHQoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoIiIrdC50b0xvd2VyQ2FzZSgpKSxzPW4rdC5sZW5ndGgtMSxvPWUudGV4dCgpLnNsaWNlKDAsbiksYT1lLnRleHQoKS5zbGljZShuLHMrMSkscj1lLnRleHQoKS5zbGljZShzKzEpO2UuaHRtbCgiPHNwYW4+IitvKyI8c3BhbiBjbGFzcz0naGlnaGxpZ2h0Jz4iK2ErIjwvc3Bhbj4iK3IrIjwvc3Bhbj4iKSxpLmxlbmd0aCYmZS5wcmVwZW5kKGkpfX0se2tleToiX3Jlc2V0Q3VycmVudEVsZW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5hY3RpdmVJbmRleD0tMSx0aGlzLiRhY3RpdmUucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfX0se2tleToiX3Jlc2V0QXV0b2NvbXBsZXRlIix2YWx1ZTpmdW5jdGlvbigpe2godGhpcy5jb250YWluZXIpLmVtcHR5KCksdGhpcy5fcmVzZXRDdXJyZW50RWxlbWVudCgpLHRoaXMub2xkVmFsPW51bGwsdGhpcy5pc09wZW49ITEsdGhpcy5fbW91c2Vkb3duPSExfX0se2tleToic2VsZWN0T3B0aW9uIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LnRleHQoKS50cmltKCk7dGhpcy5lbC52YWx1ZT1lLHRoaXMuJGVsLnRyaWdnZXIoImNoYW5nZSIpLHRoaXMuX3Jlc2V0QXV0b2NvbXBsZXRlKCksdGhpcy5jbG9zZSgpLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMub25BdXRvY29tcGxldGUmJnRoaXMub3B0aW9ucy5vbkF1dG9jb21wbGV0ZS5jYWxsKHRoaXMsZSl9fSx7a2V5OiJfcmVuZGVyRHJvcGRvd24iLHZhbHVlOmZ1bmN0aW9uKHQsaSl7dmFyIG49dGhpczt0aGlzLl9yZXNldEF1dG9jb21wbGV0ZSgpO3ZhciBlPVtdO2Zvcih2YXIgcyBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkocykmJi0xIT09cy50b0xvd2VyQ2FzZSgpLmluZGV4T2YoaSkpe2lmKHRoaXMuY291bnQ+PXRoaXMub3B0aW9ucy5saW1pdClicmVhazt2YXIgbz17ZGF0YTp0W3NdLGtleTpzfTtlLnB1c2gobyksdGhpcy5jb3VudCsrfWlmKHRoaXMub3B0aW9ucy5zb3J0RnVuY3Rpb24pe2Uuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBuLm9wdGlvbnMuc29ydEZ1bmN0aW9uKHQua2V5LnRvTG93ZXJDYXNlKCksZS5rZXkudG9Mb3dlckNhc2UoKSxpLnRvTG93ZXJDYXNlKCkpfSl9Zm9yKHZhciBhPTA7YTxlLmxlbmd0aDthKyspe3ZhciByPWVbYV0sbD1oKCI8bGk+PC9saT4iKTtyLmRhdGE/bC5hcHBlbmQoJzxpbWcgc3JjPSInK3IuZGF0YSsnIiBjbGFzcz0icmlnaHQgY2lyY2xlIj48c3Bhbj4nK3Iua2V5KyI8L3NwYW4+Iik6bC5hcHBlbmQoIjxzcGFuPiIrci5rZXkrIjwvc3Bhbj4iKSxoKHRoaXMuY29udGFpbmVyKS5hcHBlbmQobCksdGhpcy5faGlnaGxpZ2h0KGksbCl9fX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsLnZhbHVlLnRvTG93ZXJDYXNlKCk7dGhpcy5fcmVzZXRBdXRvY29tcGxldGUoKSx0Lmxlbmd0aD49dGhpcy5vcHRpb25zLm1pbkxlbmd0aCYmKHRoaXMuaXNPcGVuPSEwLHRoaXMuX3JlbmRlckRyb3Bkb3duKHRoaXMub3B0aW9ucy5kYXRhLHQpKSx0aGlzLmRyb3Bkb3duLmlzT3Blbj90aGlzLmRyb3Bkb3duLnJlY2FsY3VsYXRlRGltZW5zaW9ucygpOnRoaXMuZHJvcGRvd24ub3BlbigpfX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kcm9wZG93bi5jbG9zZSgpfX0se2tleToidXBkYXRlRGF0YSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5lbC52YWx1ZS50b0xvd2VyQ2FzZSgpO3RoaXMub3B0aW9ucy5kYXRhPXQsdGhpcy5pc09wZW4mJnRoaXMuX3JlbmRlckRyb3Bkb3duKHQsZSl9fV0sW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9nZXQocy5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihzKSwiaW5pdCIsdGhpcykuY2FsbCh0aGlzLHRoaXMsdCxlKX19LHtrZXk6ImdldEluc3RhbmNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4odC5qcXVlcnk/dFswXTp0KS5NX0F1dG9jb21wbGV0ZX19LHtrZXk6ImRlZmF1bHRzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX19XSksc30oKTt0Ll9rZXlkb3duPSExLE0uQXV0b2NvbXBsZXRlPXQsTS5qUXVlcnlMb2FkZWQmJk0uaW5pdGlhbGl6ZUpxdWVyeVdyYXBwZXIodCwiYXV0b2NvbXBsZXRlIiwiTV9BdXRvY29tcGxldGUiKX0oY2FzaCksZnVuY3Rpb24oZCl7TS51cGRhdGVUZXh0RmllbGRzPWZ1bmN0aW9uKCl7ZCgiaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1wYXNzd29yZF0sIGlucHV0W3R5cGU9ZW1haWxdLCBpbnB1dFt0eXBlPXVybF0sIGlucHV0W3R5cGU9dGVsXSwgaW5wdXRbdHlwZT1udW1iZXJdLCBpbnB1dFt0eXBlPXNlYXJjaF0sIGlucHV0W3R5cGU9ZGF0ZV0sIGlucHV0W3R5cGU9dGltZV0sIHRleHRhcmVhIikuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBpPWQodGhpcyk7MDx0LnZhbHVlLmxlbmd0aHx8ZCh0KS5pcygiOmZvY3VzIil8fHQuYXV0b2ZvY3VzfHxudWxsIT09aS5hdHRyKCJwbGFjZWhvbGRlciIpP2kuc2libGluZ3MoImxhYmVsIikuYWRkQ2xhc3MoImFjdGl2ZSIpOnQudmFsaWRpdHk/aS5zaWJsaW5ncygibGFiZWwiKS50b2dnbGVDbGFzcygiYWN0aXZlIiwhMD09PXQudmFsaWRpdHkuYmFkSW5wdXQpOmkuc2libGluZ3MoImxhYmVsIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfSl9LE0udmFsaWRhdGVfZmllbGQ9ZnVuY3Rpb24odCl7dmFyIGU9bnVsbCE9PXQuYXR0cigiZGF0YS1sZW5ndGgiKSxpPXBhcnNlSW50KHQuYXR0cigiZGF0YS1sZW5ndGgiKSksbj10WzBdLnZhbHVlLmxlbmd0aDswIT09bnx8ITEhPT10WzBdLnZhbGlkaXR5LmJhZElucHV0fHx0LmlzKCI6cmVxdWlyZWQiKT90Lmhhc0NsYXNzKCJ2YWxpZGF0ZSIpJiYodC5pcygiOnZhbGlkIikmJmUmJm48PWl8fHQuaXMoIjp2YWxpZCIpJiYhZT8odC5yZW1vdmVDbGFzcygiaW52YWxpZCIpLHQuYWRkQ2xhc3MoInZhbGlkIikpOih0LnJlbW92ZUNsYXNzKCJ2YWxpZCIpLHQuYWRkQ2xhc3MoImludmFsaWQiKSkpOnQuaGFzQ2xhc3MoInZhbGlkYXRlIikmJih0LnJlbW92ZUNsYXNzKCJ2YWxpZCIpLHQucmVtb3ZlQ2xhc3MoImludmFsaWQiKSl9LE0udGV4dGFyZWFBdXRvUmVzaXplPWZ1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBFbGVtZW50JiYodD1kKHQpKSx0Lmxlbmd0aCl7dmFyIGU9ZCgiLmhpZGRlbmRpdiIpLmZpcnN0KCk7ZS5sZW5ndGh8fChlPWQoJzxkaXYgY2xhc3M9ImhpZGRlbmRpdiBjb21tb24iPjwvZGl2PicpLGQoImJvZHkiKS5hcHBlbmQoZSkpO3ZhciBpPXQuY3NzKCJmb250LWZhbWlseSIpLG49dC5jc3MoImZvbnQtc2l6ZSIpLHM9dC5jc3MoImxpbmUtaGVpZ2h0Iiksbz10LmNzcygicGFkZGluZy10b3AiKSxhPXQuY3NzKCJwYWRkaW5nLXJpZ2h0Iikscj10LmNzcygicGFkZGluZy1ib3R0b20iKSxsPXQuY3NzKCJwYWRkaW5nLWxlZnQiKTtuJiZlLmNzcygiZm9udC1zaXplIixuKSxpJiZlLmNzcygiZm9udC1mYW1pbHkiLGkpLHMmJmUuY3NzKCJsaW5lLWhlaWdodCIscyksbyYmZS5jc3MoInBhZGRpbmctdG9wIixvKSxhJiZlLmNzcygicGFkZGluZy1yaWdodCIsYSksciYmZS5jc3MoInBhZGRpbmctYm90dG9tIixyKSxsJiZlLmNzcygicGFkZGluZy1sZWZ0IixsKSx0LmRhdGEoIm9yaWdpbmFsLWhlaWdodCIpfHx0LmRhdGEoIm9yaWdpbmFsLWhlaWdodCIsdC5oZWlnaHQoKSksIm9mZiI9PT10LmF0dHIoIndyYXAiKSYmZS5jc3MoIm92ZXJmbG93LXdyYXAiLCJub3JtYWwiKS5jc3MoIndoaXRlLXNwYWNlIiwicHJlIiksZS50ZXh0KHRbMF0udmFsdWUrIlxuIik7dmFyIGg9ZS5odG1sKCkucmVwbGFjZSgvXG4vZywiPGJyPiIpO2UuaHRtbChoKSwwPHRbMF0ub2Zmc2V0V2lkdGgmJjA8dFswXS5vZmZzZXRIZWlnaHQ/ZS5jc3MoIndpZHRoIix0LndpZHRoKCkrInB4Iik6ZS5jc3MoIndpZHRoIix3aW5kb3cuaW5uZXJXaWR0aC8yKyJweCIpLHQuZGF0YSgib3JpZ2luYWwtaGVpZ2h0Iik8PWUuaW5uZXJIZWlnaHQoKT90LmNzcygiaGVpZ2h0IixlLmlubmVySGVpZ2h0KCkrInB4Iik6dFswXS52YWx1ZS5sZW5ndGg8dC5kYXRhKCJwcmV2aW91cy1sZW5ndGgiKSYmdC5jc3MoImhlaWdodCIsdC5kYXRhKCJvcmlnaW5hbC1oZWlnaHQiKSsicHgiKSx0LmRhdGEoInByZXZpb3VzLWxlbmd0aCIsdFswXS52YWx1ZS5sZW5ndGgpfWVsc2UgY29uc29sZS5lcnJvcigiTm8gdGV4dGFyZWEgZWxlbWVudCBmb3VuZCIpfSxkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe3ZhciBuPSJpbnB1dFt0eXBlPXRleHRdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgaW5wdXRbdHlwZT1lbWFpbF0sIGlucHV0W3R5cGU9dXJsXSwgaW5wdXRbdHlwZT10ZWxdLCBpbnB1dFt0eXBlPW51bWJlcl0sIGlucHV0W3R5cGU9c2VhcmNoXSwgaW5wdXRbdHlwZT1kYXRlXSwgaW5wdXRbdHlwZT10aW1lXSwgdGV4dGFyZWEiO2QoZG9jdW1lbnQpLm9uKCJjaGFuZ2UiLG4sZnVuY3Rpb24oKXswPT09dGhpcy52YWx1ZS5sZW5ndGgmJm51bGw9PT1kKHRoaXMpLmF0dHIoInBsYWNlaG9sZGVyIil8fGQodGhpcykuc2libGluZ3MoImxhYmVsIikuYWRkQ2xhc3MoImFjdGl2ZSIpLE0udmFsaWRhdGVfZmllbGQoZCh0aGlzKSl9KSxkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe00udXBkYXRlVGV4dEZpZWxkcygpfSksZChkb2N1bWVudCkub24oInJlc2V0IixmdW5jdGlvbih0KXt2YXIgZT1kKHQudGFyZ2V0KTtlLmlzKCJmb3JtIikmJihlLmZpbmQobikucmVtb3ZlQ2xhc3MoInZhbGlkIikucmVtb3ZlQ2xhc3MoImludmFsaWQiKSxlLmZpbmQobikuZWFjaChmdW5jdGlvbih0KXt0aGlzLnZhbHVlLmxlbmd0aCYmZCh0aGlzKS5zaWJsaW5ncygibGFiZWwiKS5yZW1vdmVDbGFzcygiYWN0aXZlIil9KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5maW5kKCJzZWxlY3QiKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5NX0Zvcm1TZWxlY3QmJmQodGhpcykudHJpZ2dlcigiY2hhbmdlIil9KX0sMCkpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKHQpe2QodC50YXJnZXQpLmlzKG4pJiZkKHQudGFyZ2V0KS5zaWJsaW5ncygibGFiZWwsIC5wcmVmaXgiKS5hZGRDbGFzcygiYWN0aXZlIil9LCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJibHVyIixmdW5jdGlvbih0KXt2YXIgZT1kKHQudGFyZ2V0KTtpZihlLmlzKG4pKXt2YXIgaT0iLnByZWZpeCI7MD09PWVbMF0udmFsdWUubGVuZ3RoJiYhMCE9PWVbMF0udmFsaWRpdHkuYmFkSW5wdXQmJm51bGw9PT1lLmF0dHIoInBsYWNlaG9sZGVyIikmJihpKz0iLCBsYWJlbCIpLGUuc2libGluZ3MoaSkucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLE0udmFsaWRhdGVfZmllbGQoZSl9fSwhMCk7ZChkb2N1bWVudCkub24oImtleXVwIiwiaW5wdXRbdHlwZT1yYWRpb10sIGlucHV0W3R5cGU9Y2hlY2tib3hdIixmdW5jdGlvbih0KXtpZih0LndoaWNoPT09TS5rZXlzLlRBQilyZXR1cm4gZCh0aGlzKS5hZGRDbGFzcygidGFiYmVkIiksdm9pZCBkKHRoaXMpLm9uZSgiYmx1ciIsZnVuY3Rpb24odCl7ZCh0aGlzKS5yZW1vdmVDbGFzcygidGFiYmVkIil9KX0pO3ZhciB0PSIubWF0ZXJpYWxpemUtdGV4dGFyZWEiO2QodCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PWQodGhpcyk7dC5kYXRhKCJvcmlnaW5hbC1oZWlnaHQiLHQuaGVpZ2h0KCkpLHQuZGF0YSgicHJldmlvdXMtbGVuZ3RoIix0aGlzLnZhbHVlLmxlbmd0aCksTS50ZXh0YXJlYUF1dG9SZXNpemUodCl9KSxkKGRvY3VtZW50KS5vbigia2V5dXAiLHQsZnVuY3Rpb24oKXtNLnRleHRhcmVhQXV0b1Jlc2l6ZShkKHRoaXMpKX0pLGQoZG9jdW1lbnQpLm9uKCJrZXlkb3duIix0LGZ1bmN0aW9uKCl7TS50ZXh0YXJlYUF1dG9SZXNpemUoZCh0aGlzKSl9KSxkKGRvY3VtZW50KS5vbigiY2hhbmdlIiwnLmZpbGUtZmllbGQgaW5wdXRbdHlwZT0iZmlsZSJdJyxmdW5jdGlvbigpe2Zvcih2YXIgdD1kKHRoaXMpLmNsb3Nlc3QoIi5maWxlLWZpZWxkIikuZmluZCgiaW5wdXQuZmlsZS1wYXRoIiksZT1kKHRoaXMpWzBdLmZpbGVzLGk9W10sbj0wO248ZS5sZW5ndGg7bisrKWkucHVzaChlW25dLm5hbWUpO3RbMF0udmFsdWU9aS5qb2luKCIsICIpLHQudHJpZ2dlcigiY2hhbmdlIil9KX0pfShjYXNoKSxmdW5jdGlvbihzLG8peyJ1c2Ugc3RyaWN0Ijt2YXIgZT17aW5kaWNhdG9yczohMCxoZWlnaHQ6NDAwLGR1cmF0aW9uOjUwMCxpbnRlcnZhbDo2ZTN9LHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0LGUpe19jbGFzc0NhbGxDaGVjayh0aGlzLG4pO3ZhciBpPV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobikpLmNhbGwodGhpcyxuLHQsZSkpO3JldHVybihpLmVsLk1fU2xpZGVyPWkpLm9wdGlvbnM9cy5leHRlbmQoe30sbi5kZWZhdWx0cyxlKSxpLiRzbGlkZXI9aS4kZWwuZmluZCgiLnNsaWRlcyIpLGkuJHNsaWRlcz1pLiRzbGlkZXIuY2hpbGRyZW4oImxpIiksaS5hY3RpdmVJbmRleD1pLiRzbGlkZXMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBzKHQpLmhhc0NsYXNzKCJhY3RpdmUiKX0pLmZpcnN0KCkuaW5kZXgoKSwtMSE9aS5hY3RpdmVJbmRleCYmKGkuJGFjdGl2ZT1pLiRzbGlkZXMuZXEoaS5hY3RpdmVJbmRleCkpLGkuX3NldFNsaWRlckhlaWdodCgpLGkuJHNsaWRlcy5maW5kKCIuY2FwdGlvbiIpLmVhY2goZnVuY3Rpb24odCl7aS5fYW5pbWF0ZUNhcHRpb25Jbih0LDApfSksaS4kc2xpZGVzLmZpbmQoImltZyIpLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9ImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFCQVAvLy93QUFBQ0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFBQUlDVEFFQU93PT0iO3ModCkuYXR0cigic3JjIikhPT1lJiYocyh0KS5jc3MoImJhY2tncm91bmQtaW1hZ2UiLCd1cmwoIicrcyh0KS5hdHRyKCJzcmMiKSsnIiknKSxzKHQpLmF0dHIoInNyYyIsZSkpfSksaS5fc2V0dXBJbmRpY2F0b3JzKCksaS4kYWN0aXZlP2kuJGFjdGl2ZS5jc3MoImRpc3BsYXkiLCJibG9jayIpOihpLiRzbGlkZXMuZmlyc3QoKS5hZGRDbGFzcygiYWN0aXZlIiksbyh7dGFyZ2V0czppLiRzbGlkZXMuZmlyc3QoKVswXSxvcGFjaXR5OjEsZHVyYXRpb246aS5vcHRpb25zLmR1cmF0aW9uLGVhc2luZzoiZWFzZU91dFF1YWQifSksaS5hY3RpdmVJbmRleD0wLGkuJGFjdGl2ZT1pLiRzbGlkZXMuZXEoaS5hY3RpdmVJbmRleCksaS5vcHRpb25zLmluZGljYXRvcnMmJmkuJGluZGljYXRvcnMuZXEoaS5hY3RpdmVJbmRleCkuYWRkQ2xhc3MoImFjdGl2ZSIpKSxpLiRhY3RpdmUuZmluZCgiaW1nIikuZWFjaChmdW5jdGlvbih0KXtvKHt0YXJnZXRzOmkuJGFjdGl2ZS5maW5kKCIuY2FwdGlvbiIpWzBdLG9wYWNpdHk6MSx0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLGR1cmF0aW9uOmkub3B0aW9ucy5kdXJhdGlvbixlYXNpbmc6ImVhc2VPdXRRdWFkIn0pfSksaS5fc2V0dXBFdmVudEhhbmRsZXJzKCksaS5zdGFydCgpLGl9cmV0dXJuIF9pbmhlcml0cyhuLENvbXBvbmVudCksX2NyZWF0ZUNsYXNzKG4sW3trZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5wYXVzZSgpLHRoaXMuX3JlbW92ZUluZGljYXRvcnMoKSx0aGlzLl9yZW1vdmVFdmVudEhhbmRsZXJzKCksdGhpcy5lbC5NX1NsaWRlcj12b2lkIDB9fSx7a2V5OiJfc2V0dXBFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5faGFuZGxlSW50ZXJ2YWxCb3VuZD10aGlzLl9oYW5kbGVJbnRlcnZhbC5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZUluZGljYXRvckNsaWNrQm91bmQ9dGhpcy5faGFuZGxlSW5kaWNhdG9yQ2xpY2suYmluZCh0aGlzKSx0aGlzLm9wdGlvbnMuaW5kaWNhdG9ycyYmdGhpcy4kaW5kaWNhdG9ycy5lYWNoKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGUuX2hhbmRsZUluZGljYXRvckNsaWNrQm91bmQpfSl9fSx7a2V5OiJfcmVtb3ZlRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMub3B0aW9ucy5pbmRpY2F0b3JzJiZ0aGlzLiRpbmRpY2F0b3JzLmVhY2goZnVuY3Rpb24odCl7dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsZS5faGFuZGxlSW5kaWNhdG9yQ2xpY2tCb3VuZCl9KX19LHtrZXk6Il9oYW5kbGVJbmRpY2F0b3JDbGljayIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9cyh0LnRhcmdldCkuaW5kZXgoKTt0aGlzLnNldChlKX19LHtrZXk6Il9oYW5kbGVJbnRlcnZhbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRzbGlkZXIuZmluZCgiLmFjdGl2ZSIpLmluZGV4KCk7dGhpcy4kc2xpZGVzLmxlbmd0aD09PXQrMT90PTA6dCs9MSx0aGlzLnNldCh0KX19LHtrZXk6Il9hbmltYXRlQ2FwdGlvbkluIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXt0YXJnZXRzOnQsb3BhY2l0eTowLGR1cmF0aW9uOmUsZWFzaW5nOiJlYXNlT3V0UXVhZCJ9O3ModCkuaGFzQ2xhc3MoImNlbnRlci1hbGlnbiIpP2kudHJhbnNsYXRlWT0tMTAwOnModCkuaGFzQ2xhc3MoInJpZ2h0LWFsaWduIik/aS50cmFuc2xhdGVYPTEwMDpzKHQpLmhhc0NsYXNzKCJsZWZ0LWFsaWduIikmJihpLnRyYW5zbGF0ZVg9LTEwMCksbyhpKX19LHtrZXk6Il9zZXRTbGlkZXJIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy4kZWwuaGFzQ2xhc3MoImZ1bGxzY3JlZW4iKXx8KHRoaXMub3B0aW9ucy5pbmRpY2F0b3JzP3RoaXMuJGVsLmNzcygiaGVpZ2h0Iix0aGlzLm9wdGlvbnMuaGVpZ2h0KzQwKyJweCIpOnRoaXMuJGVsLmNzcygiaGVpZ2h0Iix0aGlzLm9wdGlvbnMuaGVpZ2h0KyJweCIpLHRoaXMuJHNsaWRlci5jc3MoImhlaWdodCIsdGhpcy5vcHRpb25zLmhlaWdodCsicHgiKSl9fSx7a2V5OiJfc2V0dXBJbmRpY2F0b3JzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBuPXRoaXM7dGhpcy5vcHRpb25zLmluZGljYXRvcnMmJih0aGlzLiRpbmRpY2F0b3JzPXMoJzx1bCBjbGFzcz0iaW5kaWNhdG9ycyI+PC91bD4nKSx0aGlzLiRzbGlkZXMuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBpPXMoJzxsaSBjbGFzcz0iaW5kaWNhdG9yLWl0ZW0iPjwvbGk+Jyk7bi4kaW5kaWNhdG9ycy5hcHBlbmQoaVswXSl9KSx0aGlzLiRlbC5hcHBlbmQodGhpcy4kaW5kaWNhdG9yc1swXSksdGhpcy4kaW5kaWNhdG9ycz10aGlzLiRpbmRpY2F0b3JzLmNoaWxkcmVuKCJsaS5pbmRpY2F0b3ItaXRlbSIpKX19LHtrZXk6Il9yZW1vdmVJbmRpY2F0b3JzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuJGVsLmZpbmQoInVsLmluZGljYXRvcnMiKS5yZW1vdmUoKX19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0Pj10aGlzLiRzbGlkZXMubGVuZ3RoP3Q9MDp0PDAmJih0PXRoaXMuJHNsaWRlcy5sZW5ndGgtMSksdGhpcy5hY3RpdmVJbmRleCE9dCl7dGhpcy4kYWN0aXZlPXRoaXMuJHNsaWRlcy5lcSh0aGlzLmFjdGl2ZUluZGV4KTt2YXIgaT10aGlzLiRhY3RpdmUuZmluZCgiLmNhcHRpb24iKTt0aGlzLiRhY3RpdmUucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLG8oe3RhcmdldHM6dGhpcy4kYWN0aXZlWzBdLG9wYWNpdHk6MCxkdXJhdGlvbjp0aGlzLm9wdGlvbnMuZHVyYXRpb24sZWFzaW5nOiJlYXNlT3V0UXVhZCIsY29tcGxldGU6ZnVuY3Rpb24oKXtlLiRzbGlkZXMubm90KCIuYWN0aXZlIikuZWFjaChmdW5jdGlvbih0KXtvKHt0YXJnZXRzOnQsb3BhY2l0eTowLHRyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAsZHVyYXRpb246MCxlYXNpbmc6ImVhc2VPdXRRdWFkIn0pfSl9fSksdGhpcy5fYW5pbWF0ZUNhcHRpb25JbihpWzBdLHRoaXMub3B0aW9ucy5kdXJhdGlvbiksdGhpcy5vcHRpb25zLmluZGljYXRvcnMmJih0aGlzLiRpbmRpY2F0b3JzLmVxKHRoaXMuYWN0aXZlSW5kZXgpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSx0aGlzLiRpbmRpY2F0b3JzLmVxKHQpLmFkZENsYXNzKCJhY3RpdmUiKSksbyh7dGFyZ2V0czp0aGlzLiRzbGlkZXMuZXEodClbMF0sb3BhY2l0eToxLGR1cmF0aW9uOnRoaXMub3B0aW9ucy5kdXJhdGlvbixlYXNpbmc6ImVhc2VPdXRRdWFkIn0pLG8oe3RhcmdldHM6dGhpcy4kc2xpZGVzLmVxKHQpLmZpbmQoIi5jYXB0aW9uIilbMF0sb3BhY2l0eToxLHRyYW5zbGF0ZVg6MCx0cmFuc2xhdGVZOjAsZHVyYXRpb246dGhpcy5vcHRpb25zLmR1cmF0aW9uLGRlbGF5OnRoaXMub3B0aW9ucy5kdXJhdGlvbixlYXNpbmc6ImVhc2VPdXRRdWFkIn0pLHRoaXMuJHNsaWRlcy5lcSh0KS5hZGRDbGFzcygiYWN0aXZlIiksdGhpcy5hY3RpdmVJbmRleD10LHRoaXMuc3RhcnQoKX19fSx7a2V5OiJwYXVzZSIsdmFsdWU6ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpfX0se2tleToic3RhcnQiLHZhbHVlOmZ1bmN0aW9uKCl7Y2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKSx0aGlzLmludGVydmFsPXNldEludGVydmFsKHRoaXMuX2hhbmRsZUludGVydmFsQm91bmQsdGhpcy5vcHRpb25zLmR1cmF0aW9uK3RoaXMub3B0aW9ucy5pbnRlcnZhbCl9fSx7a2V5OiJuZXh0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuYWN0aXZlSW5kZXgrMTt0Pj10aGlzLiRzbGlkZXMubGVuZ3RoP3Q9MDp0PDAmJih0PXRoaXMuJHNsaWRlcy5sZW5ndGgtMSksdGhpcy5zZXQodCl9fSx7a2V5OiJwcmV2Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuYWN0aXZlSW5kZXgtMTt0Pj10aGlzLiRzbGlkZXMubGVuZ3RoP3Q9MDp0PDAmJih0PXRoaXMuJHNsaWRlcy5sZW5ndGgtMSksdGhpcy5zZXQodCl9fV0sW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9nZXQobi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihuKSwiaW5pdCIsdGhpcykuY2FsbCh0aGlzLHRoaXMsdCxlKX19LHtrZXk6ImdldEluc3RhbmNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4odC5qcXVlcnk/dFswXTp0KS5NX1NsaWRlcn19LHtrZXk6ImRlZmF1bHRzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX19XSksbn0oKTtNLlNsaWRlcj10LE0ualF1ZXJ5TG9hZGVkJiZNLmluaXRpYWxpemVKcXVlcnlXcmFwcGVyKHQsInNsaWRlciIsIk1fU2xpZGVyIil9KGNhc2gsTS5hbmltZSksZnVuY3Rpb24obixzKXtuKGRvY3VtZW50KS5vbigiY2xpY2siLCIuY2FyZCIsZnVuY3Rpb24odCl7aWYobih0aGlzKS5jaGlsZHJlbigiLmNhcmQtcmV2ZWFsIikubGVuZ3RoKXt2YXIgaT1uKHQudGFyZ2V0KS5jbG9zZXN0KCIuY2FyZCIpO3ZvaWQgMD09PWkuZGF0YSgiaW5pdGlhbE92ZXJmbG93IikmJmkuZGF0YSgiaW5pdGlhbE92ZXJmbG93Iix2b2lkIDA9PT1pLmNzcygib3ZlcmZsb3ciKT8iIjppLmNzcygib3ZlcmZsb3ciKSk7dmFyIGU9bih0aGlzKS5maW5kKCIuY2FyZC1yZXZlYWwiKTtuKHQudGFyZ2V0KS5pcyhuKCIuY2FyZC1yZXZlYWwgLmNhcmQtdGl0bGUiKSl8fG4odC50YXJnZXQpLmlzKG4oIi5jYXJkLXJldmVhbCAuY2FyZC10aXRsZSBpIikpP3Moe3RhcmdldHM6ZVswXSx0cmFuc2xhdGVZOjAsZHVyYXRpb246MjI1LGVhc2luZzoiZWFzZUluT3V0UXVhZCIsY29tcGxldGU6ZnVuY3Rpb24odCl7dmFyIGU9dC5hbmltYXRhYmxlc1swXS50YXJnZXQ7bihlKS5jc3Moe2Rpc3BsYXk6Im5vbmUifSksaS5jc3MoIm92ZXJmbG93IixpLmRhdGEoImluaXRpYWxPdmVyZmxvdyIpKX19KToobih0LnRhcmdldCkuaXMobigiLmNhcmQgLmFjdGl2YXRvciIpKXx8bih0LnRhcmdldCkuaXMobigiLmNhcmQgLmFjdGl2YXRvciBpIikpKSYmKGkuY3NzKCJvdmVyZmxvdyIsImhpZGRlbiIpLGUuY3NzKHtkaXNwbGF5OiJibG9jayJ9KSxzKHt0YXJnZXRzOmVbMF0sdHJhbnNsYXRlWToiLTEwMCUiLGR1cmF0aW9uOjMwMCxlYXNpbmc6ImVhc2VJbk91dFF1YWQifSkpfX0pfShjYXNoLE0uYW5pbWUpLGZ1bmN0aW9uKGgpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT17ZGF0YTpbXSxwbGFjZWhvbGRlcjoiIixzZWNvbmRhcnlQbGFjZWhvbGRlcjoiIixhdXRvY29tcGxldGVPcHRpb25zOnt9LGxpbWl0OjEvMCxvbkNoaXBBZGQ6bnVsbCxvbkNoaXBTZWxlY3Q6bnVsbCxvbkNoaXBEZWxldGU6bnVsbH0sdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBsKHQsZSl7X2NsYXNzQ2FsbENoZWNrKHRoaXMsbCk7dmFyIGk9X3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywobC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihsKSkuY2FsbCh0aGlzLGwsdCxlKSk7cmV0dXJuKGkuZWwuTV9DaGlwcz1pKS5vcHRpb25zPWguZXh0ZW5kKHt9LGwuZGVmYXVsdHMsZSksaS4kZWwuYWRkQ2xhc3MoImNoaXBzIGlucHV0LWZpZWxkIiksaS5jaGlwc0RhdGE9W10saS4kY2hpcHM9aCgpLGkuX3NldHVwSW5wdXQoKSxpLmhhc0F1dG9jb21wbGV0ZT0wPE9iamVjdC5rZXlzKGkub3B0aW9ucy5hdXRvY29tcGxldGVPcHRpb25zKS5sZW5ndGgsaS4kaW5wdXQuYXR0cigiaWQiKXx8aS4kaW5wdXQuYXR0cigiaWQiLE0uZ3VpZCgpKSxpLm9wdGlvbnMuZGF0YS5sZW5ndGgmJihpLmNoaXBzRGF0YT1pLm9wdGlvbnMuZGF0YSxpLl9yZW5kZXJDaGlwcyhpLmNoaXBzRGF0YSkpLGkuaGFzQXV0b2NvbXBsZXRlJiZpLl9zZXR1cEF1dG9jb21wbGV0ZSgpLGkuX3NldFBsYWNlaG9sZGVyKCksaS5fc2V0dXBMYWJlbCgpLGkuX3NldHVwRXZlbnRIYW5kbGVycygpLGl9cmV0dXJuIF9pbmhlcml0cyhsLENvbXBvbmVudCksX2NyZWF0ZUNsYXNzKGwsW3trZXk6ImdldERhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpcHNEYXRhfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVFdmVudEhhbmRsZXJzKCksdGhpcy4kY2hpcHMucmVtb3ZlKCksdGhpcy5lbC5NX0NoaXBzPXZvaWQgMH19LHtrZXk6Il9zZXR1cEV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGFuZGxlQ2hpcENsaWNrQm91bmQ9dGhpcy5faGFuZGxlQ2hpcENsaWNrLmJpbmQodGhpcyksdGhpcy5faGFuZGxlSW5wdXRLZXlkb3duQm91bmQ9dGhpcy5faGFuZGxlSW5wdXRLZXlkb3duLmJpbmQodGhpcyksdGhpcy5faGFuZGxlSW5wdXRGb2N1c0JvdW5kPXRoaXMuX2hhbmRsZUlucHV0Rm9jdXMuYmluZCh0aGlzKSx0aGlzLl9oYW5kbGVJbnB1dEJsdXJCb3VuZD10aGlzLl9oYW5kbGVJbnB1dEJsdXIuYmluZCh0aGlzKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVDaGlwQ2xpY2tCb3VuZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbC5faGFuZGxlQ2hpcHNLZXlkb3duKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbC5faGFuZGxlQ2hpcHNLZXl1cCksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJibHVyIixsLl9oYW5kbGVDaGlwc0JsdXIsITApLHRoaXMuJGlucHV0WzBdLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9oYW5kbGVJbnB1dEZvY3VzQm91bmQpLHRoaXMuJGlucHV0WzBdLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX2hhbmRsZUlucHV0Qmx1ckJvdW5kKSx0aGlzLiRpbnB1dFswXS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9oYW5kbGVJbnB1dEtleWRvd25Cb3VuZCl9fSx7a2V5OiJfcmVtb3ZlRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVDaGlwQ2xpY2tCb3VuZCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbC5faGFuZGxlQ2hpcHNLZXlkb3duKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsbC5faGFuZGxlQ2hpcHNLZXl1cCksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIixsLl9oYW5kbGVDaGlwc0JsdXIsITApLHRoaXMuJGlucHV0WzBdLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvY3VzIix0aGlzLl9oYW5kbGVJbnB1dEZvY3VzQm91bmQpLHRoaXMuJGlucHV0WzBdLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX2hhbmRsZUlucHV0Qmx1ckJvdW5kKSx0aGlzLiRpbnB1dFswXS5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9oYW5kbGVJbnB1dEtleWRvd25Cb3VuZCl9fSx7a2V5OiJfaGFuZGxlQ2hpcENsaWNrIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1oKHQudGFyZ2V0KS5jbG9zZXN0KCIuY2hpcCIpLGk9aCh0LnRhcmdldCkuaXMoIi5jbG9zZSIpO2lmKGUubGVuZ3RoKXt2YXIgbj1lLmluZGV4KCk7aT8odGhpcy5kZWxldGVDaGlwKG4pLHRoaXMuJGlucHV0WzBdLmZvY3VzKCkpOnRoaXMuc2VsZWN0Q2hpcChuKX1lbHNlIHRoaXMuJGlucHV0WzBdLmZvY3VzKCl9fSx7a2V5OiJfaGFuZGxlSW5wdXRGb2N1cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLiRlbC5hZGRDbGFzcygiZm9jdXMiKX19LHtrZXk6Il9oYW5kbGVJbnB1dEJsdXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy4kZWwucmVtb3ZlQ2xhc3MoImZvY3VzIil9fSx7a2V5OiJfaGFuZGxlSW5wdXRLZXlkb3duIix2YWx1ZTpmdW5jdGlvbih0KXtpZihsLl9rZXlkb3duPSEwLDEzPT09dC5rZXlDb2RlKXtpZih0aGlzLmhhc0F1dG9jb21wbGV0ZSYmdGhpcy5hdXRvY29tcGxldGUmJnRoaXMuYXV0b2NvbXBsZXRlLmlzT3BlbilyZXR1cm47dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuYWRkQ2hpcCh7dGFnOnRoaXMuJGlucHV0WzBdLnZhbHVlfSksdGhpcy4kaW5wdXRbMF0udmFsdWU9IiJ9ZWxzZSA4IT09dC5rZXlDb2RlJiYzNyE9PXQua2V5Q29kZXx8IiIhPT10aGlzLiRpbnB1dFswXS52YWx1ZXx8IXRoaXMuY2hpcHNEYXRhLmxlbmd0aHx8KHQucHJldmVudERlZmF1bHQoKSx0aGlzLnNlbGVjdENoaXAodGhpcy5jaGlwc0RhdGEubGVuZ3RoLTEpKX19LHtrZXk6Il9yZW5kZXJDaGlwIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0LnRhZyl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7aWYoZS5jbGFzc0xpc3QuYWRkKCJjaGlwIiksZS50ZXh0Q29udGVudD10LnRhZyxlLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLDApLGgoaSkuYWRkQ2xhc3MoIm1hdGVyaWFsLWljb25zIGNsb3NlIiksaS50ZXh0Q29udGVudD0iY2xvc2UiLHQuaW1hZ2Upe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpO24uc2V0QXR0cmlidXRlKCJzcmMiLHQuaW1hZ2UpLGUuaW5zZXJ0QmVmb3JlKG4sZS5maXJzdENoaWxkKX1yZXR1cm4gZS5hcHBlbmRDaGlsZChpKSxlfX19LHtrZXk6Il9yZW5kZXJDaGlwcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLiRjaGlwcy5yZW1vdmUoKTtmb3IodmFyIHQ9MDt0PHRoaXMuY2hpcHNEYXRhLmxlbmd0aDt0Kyspe3ZhciBlPXRoaXMuX3JlbmRlckNoaXAodGhpcy5jaGlwc0RhdGFbdF0pO3RoaXMuJGVsLmFwcGVuZChlKSx0aGlzLiRjaGlwcy5hZGQoZSl9dGhpcy4kZWwuYXBwZW5kKHRoaXMuJGlucHV0WzBdKX19LHtrZXk6Il9zZXR1cEF1dG9jb21wbGV0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMub3B0aW9ucy5hdXRvY29tcGxldGVPcHRpb25zLm9uQXV0b2NvbXBsZXRlPWZ1bmN0aW9uKHQpe2UuYWRkQ2hpcCh7dGFnOnR9KSxlLiRpbnB1dFswXS52YWx1ZT0iIixlLiRpbnB1dFswXS5mb2N1cygpfSx0aGlzLmF1dG9jb21wbGV0ZT1NLkF1dG9jb21wbGV0ZS5pbml0KHRoaXMuJGlucHV0WzBdLHRoaXMub3B0aW9ucy5hdXRvY29tcGxldGVPcHRpb25zKX19LHtrZXk6Il9zZXR1cElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuJGlucHV0PXRoaXMuJGVsLmZpbmQoImlucHV0IiksdGhpcy4kaW5wdXQubGVuZ3RofHwodGhpcy4kaW5wdXQ9aCgiPGlucHV0PjwvaW5wdXQ+IiksdGhpcy4kZWwuYXBwZW5kKHRoaXMuJGlucHV0KSksdGhpcy4kaW5wdXQuYWRkQ2xhc3MoImlucHV0Iil9fSx7a2V5OiJfc2V0dXBMYWJlbCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLiRsYWJlbD10aGlzLiRlbC5maW5kKCJsYWJlbCIpLHRoaXMuJGxhYmVsLmxlbmd0aCYmdGhpcy4kbGFiZWwuc2V0QXR0cmlidXRlKCJmb3IiLHRoaXMuJGlucHV0LmF0dHIoImlkIikpfX0se2tleToiX3NldFBsYWNlaG9sZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZvaWQgMCE9PXRoaXMuY2hpcHNEYXRhJiYhdGhpcy5jaGlwc0RhdGEubGVuZ3RoJiZ0aGlzLm9wdGlvbnMucGxhY2Vob2xkZXI/aCh0aGlzLiRpbnB1dCkucHJvcCgicGxhY2Vob2xkZXIiLHRoaXMub3B0aW9ucy5wbGFjZWhvbGRlcik6KHZvaWQgMD09PXRoaXMuY2hpcHNEYXRhfHx0aGlzLmNoaXBzRGF0YS5sZW5ndGgpJiZ0aGlzLm9wdGlvbnMuc2Vjb25kYXJ5UGxhY2Vob2xkZXImJmgodGhpcy4kaW5wdXQpLnByb3AoInBsYWNlaG9sZGVyIix0aGlzLm9wdGlvbnMuc2Vjb25kYXJ5UGxhY2Vob2xkZXIpfX0se2tleToiX2lzVmFsaWQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHQuaGFzT3duUHJvcGVydHkoInRhZyIpJiYiIiE9PXQudGFnKXtmb3IodmFyIGU9ITEsaT0wO2k8dGhpcy5jaGlwc0RhdGEubGVuZ3RoO2krKylpZih0aGlzLmNoaXBzRGF0YVtpXS50YWc9PT10LnRhZyl7ZT0hMDticmVha31yZXR1cm4hZX1yZXR1cm4hMX19LHtrZXk6ImFkZENoaXAiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHRoaXMuX2lzVmFsaWQodCkmJiEodGhpcy5jaGlwc0RhdGEubGVuZ3RoPj10aGlzLm9wdGlvbnMubGltaXQpKXt2YXIgZT10aGlzLl9yZW5kZXJDaGlwKHQpO3RoaXMuJGNoaXBzLmFkZChlKSx0aGlzLmNoaXBzRGF0YS5wdXNoKHQpLGgodGhpcy4kaW5wdXQpLmJlZm9yZShlKSx0aGlzLl9zZXRQbGFjZWhvbGRlcigpLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMub25DaGlwQWRkJiZ0aGlzLm9wdGlvbnMub25DaGlwQWRkLmNhbGwodGhpcyx0aGlzLiRlbCxlKX19fSx7a2V5OiJkZWxldGVDaGlwIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLiRjaGlwcy5lcSh0KTt0aGlzLiRjaGlwcy5lcSh0KS5yZW1vdmUoKSx0aGlzLiRjaGlwcz10aGlzLiRjaGlwcy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIDA8PWgodCkuaW5kZXgoKX0pLHRoaXMuY2hpcHNEYXRhLnNwbGljZSh0LDEpLHRoaXMuX3NldFBsYWNlaG9sZGVyKCksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5vbkNoaXBEZWxldGUmJnRoaXMub3B0aW9ucy5vbkNoaXBEZWxldGUuY2FsbCh0aGlzLHRoaXMuJGVsLGVbMF0pfX0se2tleToic2VsZWN0Q2hpcCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kY2hpcHMuZXEodCk7KHRoaXMuX3NlbGVjdGVkQ2hpcD1lKVswXS5mb2N1cygpLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMub25DaGlwU2VsZWN0JiZ0aGlzLm9wdGlvbnMub25DaGlwU2VsZWN0LmNhbGwodGhpcyx0aGlzLiRlbCxlWzBdKX19XSxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gX2dldChsLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGwpLCJpbml0Iix0aGlzKS5jYWxsKHRoaXMsdGhpcyx0LGUpfX0se2tleToiZ2V0SW5zdGFuY2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybih0LmpxdWVyeT90WzBdOnQpLk1fQ2hpcHN9fSx7a2V5OiJfaGFuZGxlQ2hpcHNLZXlkb3duIix2YWx1ZTpmdW5jdGlvbih0KXtsLl9rZXlkb3duPSEwO3ZhciBlPWgodC50YXJnZXQpLmNsb3Nlc3QoIi5jaGlwcyIpLGk9dC50YXJnZXQmJmUubGVuZ3RoO2lmKCFoKHQudGFyZ2V0KS5pcygiaW5wdXQsIHRleHRhcmVhIikmJmkpe3ZhciBuPWVbMF0uTV9DaGlwcztpZig4PT09dC5rZXlDb2RlfHw0Nj09PXQua2V5Q29kZSl7dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBzPW4uY2hpcHNEYXRhLmxlbmd0aDtpZihuLl9zZWxlY3RlZENoaXApe3ZhciBvPW4uX3NlbGVjdGVkQ2hpcC5pbmRleCgpO24uZGVsZXRlQ2hpcChvKSxuLl9zZWxlY3RlZENoaXA9bnVsbCxzPU1hdGgubWF4KG8tMSwwKX1uLmNoaXBzRGF0YS5sZW5ndGgmJm4uc2VsZWN0Q2hpcChzKX1lbHNlIGlmKDM3PT09dC5rZXlDb2RlKXtpZihuLl9zZWxlY3RlZENoaXApe3ZhciBhPW4uX3NlbGVjdGVkQ2hpcC5pbmRleCgpLTE7aWYoYTwwKXJldHVybjtuLnNlbGVjdENoaXAoYSl9fWVsc2UgaWYoMzk9PT10LmtleUNvZGUmJm4uX3NlbGVjdGVkQ2hpcCl7dmFyIHI9bi5fc2VsZWN0ZWRDaGlwLmluZGV4KCkrMTtyPj1uLmNoaXBzRGF0YS5sZW5ndGg/bi4kaW5wdXRbMF0uZm9jdXMoKTpuLnNlbGVjdENoaXAocil9fX19LHtrZXk6Il9oYW5kbGVDaGlwc0tleXVwIix2YWx1ZTpmdW5jdGlvbih0KXtsLl9rZXlkb3duPSExfX0se2tleToiX2hhbmRsZUNoaXBzQmx1ciIsdmFsdWU6ZnVuY3Rpb24odCl7bC5fa2V5ZG93bnx8KGgodC50YXJnZXQpLmNsb3Nlc3QoIi5jaGlwcyIpWzBdLk1fQ2hpcHMuX3NlbGVjdGVkQ2hpcD1udWxsKX19LHtrZXk6ImRlZmF1bHRzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX19XSksbH0oKTt0Ll9rZXlkb3duPSExLE0uQ2hpcHM9dCxNLmpRdWVyeUxvYWRlZCYmTS5pbml0aWFsaXplSnF1ZXJ5V3JhcHBlcih0LCJjaGlwcyIsIk1fQ2hpcHMiKSxoKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2goZG9jdW1lbnQuYm9keSkub24oImNsaWNrIiwiLmNoaXAgLmNsb3NlIixmdW5jdGlvbigpe3ZhciB0PWgodGhpcykuY2xvc2VzdCgiLmNoaXBzIik7dC5sZW5ndGgmJnRbMF0uTV9DaGlwc3x8aCh0aGlzKS5jbG9zZXN0KCIuY2hpcCIpLnJlbW92ZSgpfSl9KX0oY2FzaCksZnVuY3Rpb24ocyl7InVzZSBzdHJpY3QiO3ZhciBlPXt0b3A6MCxib3R0b206MS8wLG9mZnNldDowLG9uUG9zaXRpb25DaGFuZ2U6bnVsbH0sdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQsZSl7X2NsYXNzQ2FsbENoZWNrKHRoaXMsbik7dmFyIGk9X3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywobi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihuKSkuY2FsbCh0aGlzLG4sdCxlKSk7cmV0dXJuKGkuZWwuTV9QdXNocGluPWkpLm9wdGlvbnM9cy5leHRlbmQoe30sbi5kZWZhdWx0cyxlKSxpLm9yaWdpbmFsT2Zmc2V0PWkuZWwub2Zmc2V0VG9wLG4uX3B1c2hwaW5zLnB1c2goaSksaS5fc2V0dXBFdmVudEhhbmRsZXJzKCksaS5fdXBkYXRlUG9zaXRpb24oKSxpfXJldHVybiBfaW5oZXJpdHMobixDb21wb25lbnQpLF9jcmVhdGVDbGFzcyhuLFt7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWwuc3R5bGUudG9wPW51bGwsdGhpcy5fcmVtb3ZlUGluQ2xhc3NlcygpLHRoaXMuX3JlbW92ZUV2ZW50SGFuZGxlcnMoKTt2YXIgdD1uLl9wdXNocGlucy5pbmRleE9mKHRoaXMpO24uX3B1c2hwaW5zLnNwbGljZSh0LDEpfX0se2tleToiX3NldHVwRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLG4uX3VwZGF0ZUVsZW1lbnRzKX19LHtrZXk6Il9yZW1vdmVFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsbi5fdXBkYXRlRWxlbWVudHMpfX0se2tleToiX3VwZGF0ZVBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PU0uZ2V0RG9jdW1lbnRTY3JvbGxUb3AoKSt0aGlzLm9wdGlvbnMub2Zmc2V0O3RoaXMub3B0aW9ucy50b3A8PXQmJnRoaXMub3B0aW9ucy5ib3R0b20+PXQmJiF0aGlzLmVsLmNsYXNzTGlzdC5jb250YWlucygicGlubmVkIikmJih0aGlzLl9yZW1vdmVQaW5DbGFzc2VzKCksdGhpcy5lbC5zdHlsZS50b3A9dGhpcy5vcHRpb25zLm9mZnNldCsicHgiLHRoaXMuZWwuY2xhc3NMaXN0LmFkZCgicGlubmVkIiksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5vblBvc2l0aW9uQ2hhbmdlJiZ0aGlzLm9wdGlvbnMub25Qb3NpdGlvbkNoYW5nZS5jYWxsKHRoaXMsInBpbm5lZCIpKSx0PHRoaXMub3B0aW9ucy50b3AmJiF0aGlzLmVsLmNsYXNzTGlzdC5jb250YWlucygicGluLXRvcCIpJiYodGhpcy5fcmVtb3ZlUGluQ2xhc3NlcygpLHRoaXMuZWwuc3R5bGUudG9wPTAsdGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJwaW4tdG9wIiksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5vblBvc2l0aW9uQ2hhbmdlJiZ0aGlzLm9wdGlvbnMub25Qb3NpdGlvbkNoYW5nZS5jYWxsKHRoaXMsInBpbi10b3AiKSksdD50aGlzLm9wdGlvbnMuYm90dG9tJiYhdGhpcy5lbC5jbGFzc0xpc3QuY29udGFpbnMoInBpbi1ib3R0b20iKSYmKHRoaXMuX3JlbW92ZVBpbkNsYXNzZXMoKSx0aGlzLmVsLmNsYXNzTGlzdC5hZGQoInBpbi1ib3R0b20iKSx0aGlzLmVsLnN0eWxlLnRvcD10aGlzLm9wdGlvbnMuYm90dG9tLXRoaXMub3JpZ2luYWxPZmZzZXQrInB4IiwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLm9uUG9zaXRpb25DaGFuZ2UmJnRoaXMub3B0aW9ucy5vblBvc2l0aW9uQ2hhbmdlLmNhbGwodGhpcywicGluLWJvdHRvbSIpKX19LHtrZXk6Il9yZW1vdmVQaW5DbGFzc2VzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgicGluLXRvcCIpLHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZSgicGlubmVkIiksdGhpcy5lbC5jbGFzc0xpc3QucmVtb3ZlKCJwaW4tYm90dG9tIil9fV0sW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9nZXQobi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihuKSwiaW5pdCIsdGhpcykuY2FsbCh0aGlzLHRoaXMsdCxlKX19LHtrZXk6ImdldEluc3RhbmNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4odC5qcXVlcnk/dFswXTp0KS5NX1B1c2hwaW59fSx7a2V5OiJfdXBkYXRlRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIG4uX3B1c2hwaW5zKXtuLl9wdXNocGluc1t0XS5fdXBkYXRlUG9zaXRpb24oKX19fSx7a2V5OiJkZWZhdWx0cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGV9fV0pLG59KCk7dC5fcHVzaHBpbnM9W10sTS5QdXNocGluPXQsTS5qUXVlcnlMb2FkZWQmJk0uaW5pdGlhbGl6ZUpxdWVyeVdyYXBwZXIodCwicHVzaHBpbiIsIk1fUHVzaHBpbiIpfShjYXNoKSxmdW5jdGlvbihyLHMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT17ZGlyZWN0aW9uOiJ0b3AiLGhvdmVyRW5hYmxlZDohMCx0b29sYmFyRW5hYmxlZDohMX07ci5mbi5yZXZlcnNlPVtdLnJldmVyc2U7dmFyIHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0LGUpe19jbGFzc0NhbGxDaGVjayh0aGlzLG4pO3ZhciBpPV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobikpLmNhbGwodGhpcyxuLHQsZSkpO3JldHVybihpLmVsLk1fRmxvYXRpbmdBY3Rpb25CdXR0b249aSkub3B0aW9ucz1yLmV4dGVuZCh7fSxuLmRlZmF1bHRzLGUpLGkuaXNPcGVuPSExLGkuJGFuY2hvcj1pLiRlbC5jaGlsZHJlbigiYSIpLmZpcnN0KCksaS4kbWVudT1pLiRlbC5jaGlsZHJlbigidWwiKS5maXJzdCgpLGkuJGZsb2F0aW5nQnRucz1pLiRlbC5maW5kKCJ1bCAuYnRuLWZsb2F0aW5nIiksaS4kZmxvYXRpbmdCdG5zUmV2ZXJzZT1pLiRlbC5maW5kKCJ1bCAuYnRuLWZsb2F0aW5nIikucmV2ZXJzZSgpLGkub2Zmc2V0WT0wLGkub2Zmc2V0WD0wLGkuJGVsLmFkZENsYXNzKCJkaXJlY3Rpb24tIitpLm9wdGlvbnMuZGlyZWN0aW9uKSwidG9wIj09PWkub3B0aW9ucy5kaXJlY3Rpb24/aS5vZmZzZXRZPTQwOiJyaWdodCI9PT1pLm9wdGlvbnMuZGlyZWN0aW9uP2kub2Zmc2V0WD0tNDA6ImJvdHRvbSI9PT1pLm9wdGlvbnMuZGlyZWN0aW9uP2kub2Zmc2V0WT0tNDA6aS5vZmZzZXRYPTQwLGkuX3NldHVwRXZlbnRIYW5kbGVycygpLGl9cmV0dXJuIF9pbmhlcml0cyhuLENvbXBvbmVudCksX2NyZWF0ZUNsYXNzKG4sW3trZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fcmVtb3ZlRXZlbnRIYW5kbGVycygpLHRoaXMuZWwuTV9GbG9hdGluZ0FjdGlvbkJ1dHRvbj12b2lkIDB9fSx7a2V5OiJfc2V0dXBFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2hhbmRsZUZBQkNsaWNrQm91bmQ9dGhpcy5faGFuZGxlRkFCQ2xpY2suYmluZCh0aGlzKSx0aGlzLl9oYW5kbGVPcGVuQm91bmQ9dGhpcy5vcGVuLmJpbmQodGhpcyksdGhpcy5faGFuZGxlQ2xvc2VCb3VuZD10aGlzLmNsb3NlLmJpbmQodGhpcyksdGhpcy5vcHRpb25zLmhvdmVyRW5hYmxlZCYmIXRoaXMub3B0aW9ucy50b29sYmFyRW5hYmxlZD8odGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzLl9oYW5kbGVPcGVuQm91bmQpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5faGFuZGxlQ2xvc2VCb3VuZCkpOnRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZUZBQkNsaWNrQm91bmQpfX0se2tleToiX3JlbW92ZUV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLmhvdmVyRW5hYmxlZCYmIXRoaXMub3B0aW9ucy50b29sYmFyRW5hYmxlZD8odGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix0aGlzLl9oYW5kbGVPcGVuQm91bmQpLHRoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5faGFuZGxlQ2xvc2VCb3VuZCkpOnRoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZUZBQkNsaWNrQm91bmQpfX0se2tleToiX2hhbmRsZUZBQkNsaWNrIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXNPcGVuP3RoaXMuY2xvc2UoKTp0aGlzLm9wZW4oKX19LHtrZXk6Il9oYW5kbGVEb2N1bWVudENsaWNrIix2YWx1ZTpmdW5jdGlvbih0KXtyKHQudGFyZ2V0KS5jbG9zZXN0KHRoaXMuJG1lbnUpLmxlbmd0aHx8dGhpcy5jbG9zZSgpfX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzT3Blbnx8KHRoaXMub3B0aW9ucy50b29sYmFyRW5hYmxlZD90aGlzLl9hbmltYXRlSW5Ub29sYmFyKCk6dGhpcy5fYW5pbWF0ZUluRkFCKCksdGhpcy5pc09wZW49ITApfX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc09wZW4mJih0aGlzLm9wdGlvbnMudG9vbGJhckVuYWJsZWQ/KHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuX2hhbmRsZUNsb3NlQm91bmQsITApLGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZURvY3VtZW50Q2xpY2tCb3VuZCwhMCksdGhpcy5fYW5pbWF0ZU91dFRvb2xiYXIoKSk6dGhpcy5fYW5pbWF0ZU91dEZBQigpLHRoaXMuaXNPcGVuPSExKX19LHtrZXk6Il9hbmltYXRlSW5GQUIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLiRlbC5hZGRDbGFzcygiYWN0aXZlIik7dmFyIGk9MDt0aGlzLiRmbG9hdGluZ0J0bnNSZXZlcnNlLmVhY2goZnVuY3Rpb24odCl7cyh7dGFyZ2V0czp0LG9wYWNpdHk6MSxzY2FsZTpbLjQsMV0sdHJhbnNsYXRlWTpbZS5vZmZzZXRZLDBdLHRyYW5zbGF0ZVg6W2Uub2Zmc2V0WCwwXSxkdXJhdGlvbjoyNzUsZGVsYXk6aSxlYXNpbmc6ImVhc2VJbk91dFF1YWQifSksaSs9NDB9KX19LHtrZXk6Il9hbmltYXRlT3V0RkFCIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy4kZmxvYXRpbmdCdG5zUmV2ZXJzZS5lYWNoKGZ1bmN0aW9uKHQpe3MucmVtb3ZlKHQpLHMoe3RhcmdldHM6dCxvcGFjaXR5OjAsc2NhbGU6LjQsdHJhbnNsYXRlWTplLm9mZnNldFksdHJhbnNsYXRlWDplLm9mZnNldFgsZHVyYXRpb246MTc1LGVhc2luZzoiZWFzZU91dFF1YWQiLGNvbXBsZXRlOmZ1bmN0aW9uKCl7ZS4kZWwucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfX0pfSl9fSx7a2V5OiJfYW5pbWF0ZUluVG9vbGJhciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMsaT13aW5kb3cuaW5uZXJXaWR0aCxuPXdpbmRvdy5pbm5lckhlaWdodCxzPXRoaXMuZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1yKCc8ZGl2IGNsYXNzPSJmYWItYmFja2Ryb3AiPjwvZGl2PicpLGE9dGhpcy4kYW5jaG9yLmNzcygiYmFja2dyb3VuZC1jb2xvciIpO3RoaXMuJGFuY2hvci5hcHBlbmQobyksdGhpcy5vZmZzZXRYPXMubGVmdC1pLzIrcy53aWR0aC8yLHRoaXMub2Zmc2V0WT1uLXMuYm90dG9tLHQ9aS9vWzBdLmNsaWVudFdpZHRoLHRoaXMuYnRuQm90dG9tPXMuYm90dG9tLHRoaXMuYnRuTGVmdD1zLmxlZnQsdGhpcy5idG5XaWR0aD1zLndpZHRoLHRoaXMuJGVsLmFkZENsYXNzKCJhY3RpdmUiKSx0aGlzLiRlbC5jc3MoeyJ0ZXh0LWFsaWduIjoiY2VudGVyIix3aWR0aDoiMTAwJSIsYm90dG9tOjAsbGVmdDowLHRyYW5zZm9ybToidHJhbnNsYXRlWCgiK3RoaXMub2Zmc2V0WCsicHgpIix0cmFuc2l0aW9uOiJub25lIn0pLHRoaXMuJGFuY2hvci5jc3Moe3RyYW5zZm9ybToidHJhbnNsYXRlWSgiKy10aGlzLm9mZnNldFkrInB4KSIsdHJhbnNpdGlvbjoibm9uZSJ9KSxvLmNzcyh7ImJhY2tncm91bmQtY29sb3IiOmF9KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS4kZWwuY3NzKHt0cmFuc2Zvcm06IiIsdHJhbnNpdGlvbjoidHJhbnNmb3JtIC4ycyBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDg1LCAwLjY4MCwgMC41MzApLCBiYWNrZ3JvdW5kLWNvbG9yIDBzIGxpbmVhciAuMnMifSksZS4kYW5jaG9yLmNzcyh7b3ZlcmZsb3c6InZpc2libGUiLHRyYW5zZm9ybToiIix0cmFuc2l0aW9uOiJ0cmFuc2Zvcm0gLjJzIn0pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLiRlbC5jc3Moe292ZXJmbG93OiJoaWRkZW4iLCJiYWNrZ3JvdW5kLWNvbG9yIjphfSksby5jc3Moe3RyYW5zZm9ybToic2NhbGUoIit0KyIpIix0cmFuc2l0aW9uOiJ0cmFuc2Zvcm0gLjJzIGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCkifSksZS4kbWVudS5jaGlsZHJlbigibGkiKS5jaGlsZHJlbigiYSIpLmNzcyh7b3BhY2l0eToxfSksZS5faGFuZGxlRG9jdW1lbnRDbGlja0JvdW5kPWUuX2hhbmRsZURvY3VtZW50Q2xpY2suYmluZChlKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixlLl9oYW5kbGVDbG9zZUJvdW5kLCEwKSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlLl9oYW5kbGVEb2N1bWVudENsaWNrQm91bmQsITApfSwxMDApfSwwKX19LHtrZXk6Il9hbmltYXRlT3V0VG9vbGJhciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9d2luZG93LmlubmVyV2lkdGgsaT13aW5kb3cuaW5uZXJIZWlnaHQsbj10aGlzLiRlbC5maW5kKCIuZmFiLWJhY2tkcm9wIikscz10aGlzLiRhbmNob3IuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIik7dGhpcy5vZmZzZXRYPXRoaXMuYnRuTGVmdC1lLzIrdGhpcy5idG5XaWR0aC8yLHRoaXMub2Zmc2V0WT1pLXRoaXMuYnRuQm90dG9tLHRoaXMuJGVsLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSx0aGlzLiRlbC5jc3MoeyJiYWNrZ3JvdW5kLWNvbG9yIjoidHJhbnNwYXJlbnQiLHRyYW5zaXRpb246Im5vbmUifSksdGhpcy4kYW5jaG9yLmNzcyh7dHJhbnNpdGlvbjoibm9uZSJ9KSxuLmNzcyh7dHJhbnNmb3JtOiJzY2FsZSgwKSIsImJhY2tncm91bmQtY29sb3IiOnN9KSx0aGlzLiRtZW51LmNoaWxkcmVuKCJsaSIpLmNoaWxkcmVuKCJhIikuY3NzKHtvcGFjaXR5OiIifSksc2V0VGltZW91dChmdW5jdGlvbigpe24ucmVtb3ZlKCksdC4kZWwuY3NzKHsidGV4dC1hbGlnbiI6IiIsd2lkdGg6IiIsYm90dG9tOiIiLGxlZnQ6IiIsb3ZlcmZsb3c6IiIsImJhY2tncm91bmQtY29sb3IiOiIiLHRyYW5zZm9ybToidHJhbnNsYXRlM2QoIistdC5vZmZzZXRYKyJweCwwLDApIn0pLHQuJGFuY2hvci5jc3Moe292ZXJmbG93OiIiLHRyYW5zZm9ybToidHJhbnNsYXRlM2QoMCwiK3Qub2Zmc2V0WSsicHgsMCkifSksc2V0VGltZW91dChmdW5jdGlvbigpe3QuJGVsLmNzcyh7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgwLDAsMCkiLHRyYW5zaXRpb246InRyYW5zZm9ybSAuMnMifSksdC4kYW5jaG9yLmNzcyh7dHJhbnNmb3JtOiJ0cmFuc2xhdGUzZCgwLDAsMCkiLHRyYW5zaXRpb246InRyYW5zZm9ybSAuMnMgY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKSJ9KX0sMjApfSwyMDApfX1dLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiBfZ2V0KG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobiksImluaXQiLHRoaXMpLmNhbGwodGhpcyx0aGlzLHQsZSl9fSx7a2V5OiJnZXRJbnN0YW5jZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKHQuanF1ZXJ5P3RbMF06dCkuTV9GbG9hdGluZ0FjdGlvbkJ1dHRvbn19LHtrZXk6ImRlZmF1bHRzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX19XSksbn0oKTtNLkZsb2F0aW5nQWN0aW9uQnV0dG9uPXQsTS5qUXVlcnlMb2FkZWQmJk0uaW5pdGlhbGl6ZUpxdWVyeVdyYXBwZXIodCwiZmxvYXRpbmdBY3Rpb25CdXR0b24iLCJNX0Zsb2F0aW5nQWN0aW9uQnV0dG9uIil9KGNhc2gsTS5hbmltZSksZnVuY3Rpb24oZyl7InVzZSBzdHJpY3QiO3ZhciBlPXthdXRvQ2xvc2U6ITEsZm9ybWF0OiJtbW0gZGQsIHl5eXkiLHBhcnNlOm51bGwsZGVmYXVsdERhdGU6bnVsbCxzZXREZWZhdWx0RGF0ZTohMSxkaXNhYmxlV2Vla2VuZHM6ITEsZGlzYWJsZURheUZuOm51bGwsZmlyc3REYXk6MCxtaW5EYXRlOm51bGwsbWF4RGF0ZTpudWxsLHllYXJSYW5nZToxMCxtaW5ZZWFyOjAsbWF4WWVhcjo5OTk5LG1pbk1vbnRoOnZvaWQgMCxtYXhNb250aDp2b2lkIDAsc3RhcnRSYW5nZTpudWxsLGVuZFJhbmdlOm51bGwsaXNSVEw6ITEsc2hvd01vbnRoQWZ0ZXJZZWFyOiExLHNob3dEYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHM6ITEsY29udGFpbmVyOm51bGwsc2hvd0NsZWFyQnRuOiExLGkxOG46e2NhbmNlbDoiQ2FuY2VsIixjbGVhcjoiQ2xlYXIiLGRvbmU6Ik9rIixwcmV2aW91c01vbnRoOiLigLkiLG5leHRNb250aDoi4oC6Iixtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLG1vbnRoc1Nob3J0OlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sd2Vla2RheXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLHdlZWtkYXlzU2hvcnQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSx3ZWVrZGF5c0FiYnJldjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXX0sZXZlbnRzOltdLG9uU2VsZWN0Om51bGwsb25PcGVuOm51bGwsb25DbG9zZTpudWxsLG9uRHJhdzpudWxsfSx0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIEIodCxlKXtfY2xhc3NDYWxsQ2hlY2sodGhpcyxCKTt2YXIgaT1fcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLChCLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKEIpKS5jYWxsKHRoaXMsQix0LGUpKTsoaS5lbC5NX0RhdGVwaWNrZXI9aSkub3B0aW9ucz1nLmV4dGVuZCh7fSxCLmRlZmF1bHRzLGUpLGUmJmUuaGFzT3duUHJvcGVydHkoImkxOG4iKSYmIm9iamVjdCI9PXR5cGVvZiBlLmkxOG4mJihpLm9wdGlvbnMuaTE4bj1nLmV4dGVuZCh7fSxCLmRlZmF1bHRzLmkxOG4sZS5pMThuKSksaS5vcHRpb25zLm1pbkRhdGUmJmkub3B0aW9ucy5taW5EYXRlLnNldEhvdXJzKDAsMCwwLDApLGkub3B0aW9ucy5tYXhEYXRlJiZpLm9wdGlvbnMubWF4RGF0ZS5zZXRIb3VycygwLDAsMCwwKSxpLmlkPU0uZ3VpZCgpLGkuX3NldHVwVmFyaWFibGVzKCksaS5faW5zZXJ0SFRNTEludG9ET00oKSxpLl9zZXR1cE1vZGFsKCksaS5fc2V0dXBFdmVudEhhbmRsZXJzKCksaS5vcHRpb25zLmRlZmF1bHREYXRlfHwoaS5vcHRpb25zLmRlZmF1bHREYXRlPW5ldyBEYXRlKERhdGUucGFyc2UoaS5lbC52YWx1ZSkpKTt2YXIgbj1pLm9wdGlvbnMuZGVmYXVsdERhdGU7cmV0dXJuIEIuX2lzRGF0ZShuKT9pLm9wdGlvbnMuc2V0RGVmYXVsdERhdGU/KGkuc2V0RGF0ZShuLCEwKSxpLnNldElucHV0VmFsdWUoKSk6aS5nb3RvRGF0ZShuKTppLmdvdG9EYXRlKG5ldyBEYXRlKSxpLmlzT3Blbj0hMSxpfXJldHVybiBfaW5oZXJpdHMoQixDb21wb25lbnQpLF9jcmVhdGVDbGFzcyhCLFt7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3JlbW92ZUV2ZW50SGFuZGxlcnMoKSx0aGlzLm1vZGFsLmRlc3Ryb3koKSxnKHRoaXMubW9kYWxFbCkucmVtb3ZlKCksdGhpcy5kZXN0cm95U2VsZWN0cygpLHRoaXMuZWwuTV9EYXRlcGlja2VyPXZvaWQgMH19LHtrZXk6ImRlc3Ryb3lTZWxlY3RzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY2FsZW5kYXJFbC5xdWVyeVNlbGVjdG9yKCIub3JpZy1zZWxlY3QteWVhciIpO3QmJk0uRm9ybVNlbGVjdC5nZXRJbnN0YW5jZSh0KS5kZXN0cm95KCk7dmFyIGU9dGhpcy5jYWxlbmRhckVsLnF1ZXJ5U2VsZWN0b3IoIi5vcmlnLXNlbGVjdC1tb250aCIpO2UmJk0uRm9ybVNlbGVjdC5nZXRJbnN0YW5jZShlKS5kZXN0cm95KCl9fSx7a2V5OiJfaW5zZXJ0SFRNTEludG9ET00iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLnNob3dDbGVhckJ0biYmKGcodGhpcy5jbGVhckJ0bikuY3NzKHt2aXNpYmlsaXR5OiIifSksdGhpcy5jbGVhckJ0bi5pbm5lckhUTUw9dGhpcy5vcHRpb25zLmkxOG4uY2xlYXIpLHRoaXMuZG9uZUJ0bi5pbm5lckhUTUw9dGhpcy5vcHRpb25zLmkxOG4uZG9uZSx0aGlzLmNhbmNlbEJ0bi5pbm5lckhUTUw9dGhpcy5vcHRpb25zLmkxOG4uY2FuY2VsLHRoaXMub3B0aW9ucy5jb250YWluZXI/dGhpcy4kbW9kYWxFbC5hcHBlbmRUbyh0aGlzLm9wdGlvbnMuY29udGFpbmVyKTp0aGlzLiRtb2RhbEVsLmluc2VydEJlZm9yZSh0aGlzLmVsKX19LHtrZXk6Il9zZXR1cE1vZGFsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5tb2RhbEVsLmlkPSJtb2RhbC0iK3RoaXMuaWQsdGhpcy5tb2RhbD1NLk1vZGFsLmluaXQodGhpcy5tb2RhbEVsLHtvbkNsb3NlRW5kOmZ1bmN0aW9uKCl7dC5pc09wZW49ITF9fSl9fSx7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdD10fHx0aGlzLm9wdGlvbnMuZm9ybWF0LEIuX2lzRGF0ZSh0aGlzLmRhdGUpP3Quc3BsaXQoLyhkezEsNH18bXsxLDR9fHl7NH18eXl8IS4pL2cpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZS5mb3JtYXRzW3RdP2UuZm9ybWF0c1t0XSgpOnR9KS5qb2luKCIiKToiIn19LHtrZXk6InNldERhdGUiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYoIXQpcmV0dXJuIHRoaXMuZGF0ZT1udWxsLHRoaXMuX3JlbmRlckRhdGVEaXNwbGF5KCksdGhpcy5kcmF3KCk7aWYoInN0cmluZyI9PXR5cGVvZiB0JiYodD1uZXcgRGF0ZShEYXRlLnBhcnNlKHQpKSksQi5faXNEYXRlKHQpKXt2YXIgaT10aGlzLm9wdGlvbnMubWluRGF0ZSxuPXRoaXMub3B0aW9ucy5tYXhEYXRlO0IuX2lzRGF0ZShpKSYmdDxpP3Q9aTpCLl9pc0RhdGUobikmJm48dCYmKHQ9biksdGhpcy5kYXRlPW5ldyBEYXRlKHQuZ2V0VGltZSgpKSx0aGlzLl9yZW5kZXJEYXRlRGlzcGxheSgpLEIuX3NldFRvU3RhcnRPZkRheSh0aGlzLmRhdGUpLHRoaXMuZ290b0RhdGUodGhpcy5kYXRlKSxlfHwiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5vcHRpb25zLm9uU2VsZWN0fHx0aGlzLm9wdGlvbnMub25TZWxlY3QuY2FsbCh0aGlzLHRoaXMuZGF0ZSl9fX0se2tleToic2V0SW5wdXRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsLnZhbHVlPXRoaXMudG9TdHJpbmcoKSx0aGlzLiRlbC50cmlnZ2VyKCJjaGFuZ2UiLHtmaXJlZEJ5OnRoaXN9KX19LHtrZXk6Il9yZW5kZXJEYXRlRGlzcGxheSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1CLl9pc0RhdGUodGhpcy5kYXRlKT90aGlzLmRhdGU6bmV3IERhdGUsZT10aGlzLm9wdGlvbnMuaTE4bixpPWUud2Vla2RheXNTaG9ydFt0LmdldERheSgpXSxuPWUubW9udGhzU2hvcnRbdC5nZXRNb250aCgpXSxzPXQuZ2V0RGF0ZSgpO3RoaXMueWVhclRleHRFbC5pbm5lckhUTUw9dC5nZXRGdWxsWWVhcigpLHRoaXMuZGF0ZVRleHRFbC5pbm5lckhUTUw9aSsiLCAiK24rIiAiK3N9fSx7a2V5OiJnb3RvRGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9ITA7aWYoQi5faXNEYXRlKHQpKXtpZih0aGlzLmNhbGVuZGFycyl7dmFyIGk9bmV3IERhdGUodGhpcy5jYWxlbmRhcnNbMF0ueWVhcix0aGlzLmNhbGVuZGFyc1swXS5tb250aCwxKSxuPW5ldyBEYXRlKHRoaXMuY2FsZW5kYXJzW3RoaXMuY2FsZW5kYXJzLmxlbmd0aC0xXS55ZWFyLHRoaXMuY2FsZW5kYXJzW3RoaXMuY2FsZW5kYXJzLmxlbmd0aC0xXS5tb250aCwxKSxzPXQuZ2V0VGltZSgpO24uc2V0TW9udGgobi5nZXRNb250aCgpKzEpLG4uc2V0RGF0ZShuLmdldERhdGUoKS0xKSxlPXM8aS5nZXRUaW1lKCl8fG4uZ2V0VGltZSgpPHN9ZSYmKHRoaXMuY2FsZW5kYXJzPVt7bW9udGg6dC5nZXRNb250aCgpLHllYXI6dC5nZXRGdWxsWWVhcigpfV0pLHRoaXMuYWRqdXN0Q2FsZW5kYXJzKCl9fX0se2tleToiYWRqdXN0Q2FsZW5kYXJzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2FsZW5kYXJzWzBdPXRoaXMuYWRqdXN0Q2FsZW5kYXIodGhpcy5jYWxlbmRhcnNbMF0pLHRoaXMuZHJhdygpfX0se2tleToiYWRqdXN0Q2FsZW5kYXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0Lm1vbnRoPDAmJih0LnllYXItPU1hdGguY2VpbChNYXRoLmFicyh0Lm1vbnRoKS8xMiksdC5tb250aCs9MTIpLDExPHQubW9udGgmJih0LnllYXIrPU1hdGguZmxvb3IoTWF0aC5hYnModC5tb250aCkvMTIpLHQubW9udGgtPTEyKSx0fX0se2tleToibmV4dE1vbnRoIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2FsZW5kYXJzWzBdLm1vbnRoKyssdGhpcy5hZGp1c3RDYWxlbmRhcnMoKX19LHtrZXk6InByZXZNb250aCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNhbGVuZGFyc1swXS5tb250aC0tLHRoaXMuYWRqdXN0Q2FsZW5kYXJzKCl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbj10aGlzLm9wdGlvbnMscz1uZXcgRGF0ZSxvPUIuX2dldERheXNJbk1vbnRoKHQsZSksYT1uZXcgRGF0ZSh0LGUsMSkuZ2V0RGF5KCkscj1bXSxsPVtdO0IuX3NldFRvU3RhcnRPZkRheShzKSwwPG4uZmlyc3REYXkmJihhLT1uLmZpcnN0RGF5KTwwJiYoYSs9Nyk7Zm9yKHZhciBoPTA9PT1lPzExOmUtMSxkPTExPT09ZT8wOmUrMSx1PTA9PT1lP3QtMTp0LGM9MTE9PT1lP3QrMTp0LHA9Qi5fZ2V0RGF5c0luTW9udGgodSxoKSx2PW8rYSxmPXY7NzxmOylmLT03O3YrPTctZjtmb3IodmFyIG09ITEsZz0wLF89MDtnPHY7ZysrKXt2YXIgeT1uZXcgRGF0ZSh0LGUsZy1hKzEpLGs9ISFCLl9pc0RhdGUodGhpcy5kYXRlKSYmQi5fY29tcGFyZURhdGVzKHksdGhpcy5kYXRlKSxiPUIuX2NvbXBhcmVEYXRlcyh5LHMpLHc9LTEhPT1uLmV2ZW50cy5pbmRleE9mKHkudG9EYXRlU3RyaW5nKCkpLEM9ZzxhfHxvK2E8PWcsRT1nLWErMSxNPWUsTz10LHg9bi5zdGFydFJhbmdlJiZCLl9jb21wYXJlRGF0ZXMobi5zdGFydFJhbmdlLHkpLEw9bi5lbmRSYW5nZSYmQi5fY29tcGFyZURhdGVzKG4uZW5kUmFuZ2UseSksVD1uLnN0YXJ0UmFuZ2UmJm4uZW5kUmFuZ2UmJm4uc3RhcnRSYW5nZTx5JiZ5PG4uZW5kUmFuZ2U7QyYmKGc8YT8oRT1wK0UsTT1oLE89dSk6KEUtPW8sTT1kLE89YykpO3ZhciAkPXtkYXk6RSxtb250aDpNLHllYXI6TyxoYXNFdmVudDp3LGlzU2VsZWN0ZWQ6ayxpc1RvZGF5OmIsaXNEaXNhYmxlZDpuLm1pbkRhdGUmJnk8bi5taW5EYXRlfHxuLm1heERhdGUmJnk+bi5tYXhEYXRlfHxuLmRpc2FibGVXZWVrZW5kcyYmQi5faXNXZWVrZW5kKHkpfHxuLmRpc2FibGVEYXlGbiYmbi5kaXNhYmxlRGF5Rm4oeSksaXNFbXB0eTpDLGlzU3RhcnRSYW5nZTp4LGlzRW5kUmFuZ2U6TCxpc0luUmFuZ2U6VCxzaG93RGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzOm4uc2hvd0RheXNJbk5leHRBbmRQcmV2aW91c01vbnRoc307bC5wdXNoKHRoaXMucmVuZGVyRGF5KCQpKSw3PT0rK18mJihyLnB1c2godGhpcy5yZW5kZXJSb3cobCxuLmlzUlRMLG0pKSxfPTAsbT0hKGw9W10pKX1yZXR1cm4gdGhpcy5yZW5kZXJUYWJsZShuLHIsaSl9fSx7a2V5OiJyZW5kZXJEYXkiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPVtdLGk9ImZhbHNlIjtpZih0LmlzRW1wdHkpe2lmKCF0LnNob3dEYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHMpcmV0dXJuJzx0ZCBjbGFzcz0iaXMtZW1wdHkiPjwvdGQ+JztlLnB1c2goImlzLW91dHNpZGUtY3VycmVudC1tb250aCIpLGUucHVzaCgiaXMtc2VsZWN0aW9uLWRpc2FibGVkIil9cmV0dXJuIHQuaXNEaXNhYmxlZCYmZS5wdXNoKCJpcy1kaXNhYmxlZCIpLHQuaXNUb2RheSYmZS5wdXNoKCJpcy10b2RheSIpLHQuaXNTZWxlY3RlZCYmKGUucHVzaCgiaXMtc2VsZWN0ZWQiKSxpPSJ0cnVlIiksdC5oYXNFdmVudCYmZS5wdXNoKCJoYXMtZXZlbnQiKSx0LmlzSW5SYW5nZSYmZS5wdXNoKCJpcy1pbnJhbmdlIiksdC5pc1N0YXJ0UmFuZ2UmJmUucHVzaCgiaXMtc3RhcnRyYW5nZSIpLHQuaXNFbmRSYW5nZSYmZS5wdXNoKCJpcy1lbmRyYW5nZSIpLCc8dGQgZGF0YS1kYXk9IicrdC5kYXkrJyIgY2xhc3M9IicrZS5qb2luKCIgIikrJyIgYXJpYS1zZWxlY3RlZD0iJytpKyciPjxidXR0b24gY2xhc3M9ImRhdGVwaWNrZXItZGF5LWJ1dHRvbiIgdHlwZT0iYnV0dG9uIiBkYXRhLXllYXI9IicrdC55ZWFyKyciIGRhdGEtbW9udGg9IicrdC5tb250aCsnIiBkYXRhLWRheT0iJyt0LmRheSsnIj4nK3QuZGF5KyI8L2J1dHRvbj48L3RkPiJ9fSx7a2V5OiJyZW5kZXJSb3ciLHZhbHVlOmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4nPHRyIGNsYXNzPSJkYXRlcGlja2VyLXJvdycrKGk/IiBpcy1zZWxlY3RlZCI6IiIpKyciPicrKGU/dC5yZXZlcnNlKCk6dCkuam9pbigiIikrIjwvdHI+In19LHtrZXk6InJlbmRlclRhYmxlIix2YWx1ZTpmdW5jdGlvbih0LGUsaSl7cmV0dXJuJzxkaXYgY2xhc3M9ImRhdGVwaWNrZXItdGFibGUtd3JhcHBlciI+PHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgY2xhc3M9ImRhdGVwaWNrZXItdGFibGUiIHJvbGU9ImdyaWQiIGFyaWEtbGFiZWxsZWRieT0iJytpKyciPicrdGhpcy5yZW5kZXJIZWFkKHQpK3RoaXMucmVuZGVyQm9keShlKSsiPC90YWJsZT48L2Rpdj4ifX0se2tleToicmVuZGVySGVhZCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dm9pZCAwLGk9W107Zm9yKGU9MDtlPDc7ZSsrKWkucHVzaCgnPHRoIHNjb3BlPSJjb2wiPjxhYmJyIHRpdGxlPSInK3RoaXMucmVuZGVyRGF5TmFtZSh0LGUpKyciPicrdGhpcy5yZW5kZXJEYXlOYW1lKHQsZSwhMCkrIjwvYWJicj48L3RoPiIpO3JldHVybiI8dGhlYWQ+PHRyPiIrKHQuaXNSVEw/aS5yZXZlcnNlKCk6aSkuam9pbigiIikrIjwvdHI+PC90aGVhZD4ifX0se2tleToicmVuZGVyQm9keSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIjx0Ym9keT4iK3Quam9pbigiIikrIjwvdGJvZHk+In19LHtrZXk6InJlbmRlclRpdGxlIix2YWx1ZTpmdW5jdGlvbih0LGUsaSxuLHMsbyl7dmFyIGEscixsPXZvaWQgMCxoPXZvaWQgMCxkPXZvaWQgMCx1PXRoaXMub3B0aW9ucyxjPWk9PT11Lm1pblllYXIscD1pPT09dS5tYXhZZWFyLHY9JzxkaXYgaWQ9IicrbysnIiBjbGFzcz0iZGF0ZXBpY2tlci1jb250cm9scyIgcm9sZT0iaGVhZGluZyIgYXJpYS1saXZlPSJhc3NlcnRpdmUiPicsZj0hMCxtPSEwO2ZvcihkPVtdLGw9MDtsPDEyO2wrKylkLnB1c2goJzxvcHRpb24gdmFsdWU9IicrKGk9PT1zP2wtZToxMitsLWUpKyciJysobD09PW4/JyBzZWxlY3RlZD0ic2VsZWN0ZWQiJzoiIikrKGMmJmw8dS5taW5Nb250aHx8cCYmbD51Lm1heE1vbnRoPydkaXNhYmxlZD0iZGlzYWJsZWQiJzoiIikrIj4iK3UuaTE4bi5tb250aHNbbF0rIjwvb3B0aW9uPiIpO2ZvcihhPSc8c2VsZWN0IGNsYXNzPSJkYXRlcGlja2VyLXNlbGVjdCBvcmlnLXNlbGVjdC1tb250aCIgdGFiaW5kZXg9Ii0xIj4nK2Quam9pbigiIikrIjwvc2VsZWN0PiIsZy5pc0FycmF5KHUueWVhclJhbmdlKT8obD11LnllYXJSYW5nZVswXSxoPXUueWVhclJhbmdlWzFdKzEpOihsPWktdS55ZWFyUmFuZ2UsaD0xK2krdS55ZWFyUmFuZ2UpLGQ9W107bDxoJiZsPD11Lm1heFllYXI7bCsrKWw+PXUubWluWWVhciYmZC5wdXNoKCc8b3B0aW9uIHZhbHVlPSInK2wrJyIgJysobD09PWk/J3NlbGVjdGVkPSJzZWxlY3RlZCInOiIiKSsiPiIrbCsiPC9vcHRpb24+Iik7cj0nPHNlbGVjdCBjbGFzcz0iZGF0ZXBpY2tlci1zZWxlY3Qgb3JpZy1zZWxlY3QteWVhciIgdGFiaW5kZXg9Ii0xIj4nK2Quam9pbigiIikrIjwvc2VsZWN0PiI7dis9JzxidXR0b24gY2xhc3M9Im1vbnRoLXByZXYnKyhmPyIiOiIgaXMtZGlzYWJsZWQiKSsnIiB0eXBlPSJidXR0b24iPjxzdmcgZmlsbD0iIzAwMDAwMCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjQxIDE2LjA5bC00LjU4LTQuNTkgNC41OC00LjU5TDE0IDUuNWwtNiA2IDYgNnoiLz48cGF0aCBkPSJNMC0uNWgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPjwvYnV0dG9uPicsdis9JzxkaXYgY2xhc3M9InNlbGVjdHMtY29udGFpbmVyIj4nLHUuc2hvd01vbnRoQWZ0ZXJZZWFyP3YrPXIrYTp2Kz1hK3Isdis9IjwvZGl2PiIsYyYmKDA9PT1ufHx1Lm1pbk1vbnRoPj1uKSYmKGY9ITEpLHAmJigxMT09PW58fHUubWF4TW9udGg8PW4pJiYobT0hMSk7cmV0dXJuKHYrPSc8YnV0dG9uIGNsYXNzPSJtb250aC1uZXh0JysobT8iIjoiIGlzLWRpc2FibGVkIikrJyIgdHlwZT0iYnV0dG9uIj48c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik04LjU5IDE2LjM0bDQuNTgtNC41OS00LjU4LTQuNTlMMTAgNS43NWw2IDYtNiA2eiIvPjxwYXRoIGQ9Ik0wLS4yNWgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPjwvYnV0dG9uPicpKyI8L2Rpdj4ifX0se2tleToiZHJhdyIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy5pc09wZW58fHQpe3ZhciBlLGk9dGhpcy5vcHRpb25zLG49aS5taW5ZZWFyLHM9aS5tYXhZZWFyLG89aS5taW5Nb250aCxhPWkubWF4TW9udGgscj0iIjt0aGlzLl95PD1uJiYodGhpcy5feT1uLCFpc05hTihvKSYmdGhpcy5fbTxvJiYodGhpcy5fbT1vKSksdGhpcy5feT49cyYmKHRoaXMuX3k9cywhaXNOYU4oYSkmJnRoaXMuX20+YSYmKHRoaXMuX209YSkpLGU9ImRhdGVwaWNrZXItdGl0bGUtIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5yZXBsYWNlKC9bXmEtel0rL2csIiIpLnN1YnN0cigwLDIpO2Zvcih2YXIgbD0wO2w8MTtsKyspdGhpcy5fcmVuZGVyRGF0ZURpc3BsYXkoKSxyKz10aGlzLnJlbmRlclRpdGxlKHRoaXMsbCx0aGlzLmNhbGVuZGFyc1tsXS55ZWFyLHRoaXMuY2FsZW5kYXJzW2xdLm1vbnRoLHRoaXMuY2FsZW5kYXJzWzBdLnllYXIsZSkrdGhpcy5yZW5kZXIodGhpcy5jYWxlbmRhcnNbbF0ueWVhcix0aGlzLmNhbGVuZGFyc1tsXS5tb250aCxlKTt0aGlzLmRlc3Ryb3lTZWxlY3RzKCksdGhpcy5jYWxlbmRhckVsLmlubmVySFRNTD1yO3ZhciBoPXRoaXMuY2FsZW5kYXJFbC5xdWVyeVNlbGVjdG9yKCIub3JpZy1zZWxlY3QteWVhciIpLGQ9dGhpcy5jYWxlbmRhckVsLnF1ZXJ5U2VsZWN0b3IoIi5vcmlnLXNlbGVjdC1tb250aCIpO00uRm9ybVNlbGVjdC5pbml0KGgse2NsYXNzZXM6InNlbGVjdC15ZWFyIixkcm9wZG93bk9wdGlvbnM6e2NvbnRhaW5lcjpkb2N1bWVudC5ib2R5LGNvbnN0cmFpbldpZHRoOiExfX0pLE0uRm9ybVNlbGVjdC5pbml0KGQse2NsYXNzZXM6InNlbGVjdC1tb250aCIsZHJvcGRvd25PcHRpb25zOntjb250YWluZXI6ZG9jdW1lbnQuYm9keSxjb25zdHJhaW5XaWR0aDohMX19KSxoLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5faGFuZGxlWWVhckNoYW5nZS5iaW5kKHRoaXMpKSxkLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5faGFuZGxlTW9udGhDaGFuZ2UuYmluZCh0aGlzKSksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5vbkRyYXcmJnRoaXMub3B0aW9ucy5vbkRyYXcodGhpcyl9fX0se2tleToiX3NldHVwRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oYW5kbGVJbnB1dEtleWRvd25Cb3VuZD10aGlzLl9oYW5kbGVJbnB1dEtleWRvd24uYmluZCh0aGlzKSx0aGlzLl9oYW5kbGVJbnB1dENsaWNrQm91bmQ9dGhpcy5faGFuZGxlSW5wdXRDbGljay5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZUlucHV0Q2hhbmdlQm91bmQ9dGhpcy5faGFuZGxlSW5wdXRDaGFuZ2UuYmluZCh0aGlzKSx0aGlzLl9oYW5kbGVDYWxlbmRhckNsaWNrQm91bmQ9dGhpcy5faGFuZGxlQ2FsZW5kYXJDbGljay5iaW5kKHRoaXMpLHRoaXMuX2ZpbmlzaFNlbGVjdGlvbkJvdW5kPXRoaXMuX2ZpbmlzaFNlbGVjdGlvbi5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZU1vbnRoQ2hhbmdlPXRoaXMuX2hhbmRsZU1vbnRoQ2hhbmdlLmJpbmQodGhpcyksdGhpcy5fY2xvc2VCb3VuZD10aGlzLmNsb3NlLmJpbmQodGhpcyksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFuZGxlSW5wdXRDbGlja0JvdW5kKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2hhbmRsZUlucHV0S2V5ZG93bkJvdW5kKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5faGFuZGxlSW5wdXRDaGFuZ2VCb3VuZCksdGhpcy5jYWxlbmRhckVsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVDYWxlbmRhckNsaWNrQm91bmQpLHRoaXMuZG9uZUJ0bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fZmluaXNoU2VsZWN0aW9uQm91bmQpLHRoaXMuY2FuY2VsQnRuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9jbG9zZUJvdW5kKSx0aGlzLm9wdGlvbnMuc2hvd0NsZWFyQnRuJiYodGhpcy5faGFuZGxlQ2xlYXJDbGlja0JvdW5kPXRoaXMuX2hhbmRsZUNsZWFyQ2xpY2suYmluZCh0aGlzKSx0aGlzLmNsZWFyQnRuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVDbGVhckNsaWNrQm91bmQpKX19LHtrZXk6Il9zZXR1cFZhcmlhYmxlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuJG1vZGFsRWw9ZyhCLl90ZW1wbGF0ZSksdGhpcy5tb2RhbEVsPXRoaXMuJG1vZGFsRWxbMF0sdGhpcy5jYWxlbmRhckVsPXRoaXMubW9kYWxFbC5xdWVyeVNlbGVjdG9yKCIuZGF0ZXBpY2tlci1jYWxlbmRhciIpLHRoaXMueWVhclRleHRFbD10aGlzLm1vZGFsRWwucXVlcnlTZWxlY3RvcigiLnllYXItdGV4dCIpLHRoaXMuZGF0ZVRleHRFbD10aGlzLm1vZGFsRWwucXVlcnlTZWxlY3RvcigiLmRhdGUtdGV4dCIpLHRoaXMub3B0aW9ucy5zaG93Q2xlYXJCdG4mJih0aGlzLmNsZWFyQnRuPXRoaXMubW9kYWxFbC5xdWVyeVNlbGVjdG9yKCIuZGF0ZXBpY2tlci1jbGVhciIpKSx0aGlzLmRvbmVCdG49dGhpcy5tb2RhbEVsLnF1ZXJ5U2VsZWN0b3IoIi5kYXRlcGlja2VyLWRvbmUiKSx0aGlzLmNhbmNlbEJ0bj10aGlzLm1vZGFsRWwucXVlcnlTZWxlY3RvcigiLmRhdGVwaWNrZXItY2FuY2VsIiksdGhpcy5mb3JtYXRzPXtkOmZ1bmN0aW9uKCl7cmV0dXJuIGUuZGF0ZS5nZXREYXRlKCl9LGRkOmZ1bmN0aW9uKCl7dmFyIHQ9ZS5kYXRlLmdldERhdGUoKTtyZXR1cm4odDwxMD8iMCI6IiIpK3R9LGRkZDpmdW5jdGlvbigpe3JldHVybiBlLm9wdGlvbnMuaTE4bi53ZWVrZGF5c1Nob3J0W2UuZGF0ZS5nZXREYXkoKV19LGRkZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5vcHRpb25zLmkxOG4ud2Vla2RheXNbZS5kYXRlLmdldERheSgpXX0sbTpmdW5jdGlvbigpe3JldHVybiBlLmRhdGUuZ2V0TW9udGgoKSsxfSxtbTpmdW5jdGlvbigpe3ZhciB0PWUuZGF0ZS5nZXRNb250aCgpKzE7cmV0dXJuKHQ8MTA/IjAiOiIiKSt0fSxtbW06ZnVuY3Rpb24oKXtyZXR1cm4gZS5vcHRpb25zLmkxOG4ubW9udGhzU2hvcnRbZS5kYXRlLmdldE1vbnRoKCldfSxtbW1tOmZ1bmN0aW9uKCl7cmV0dXJuIGUub3B0aW9ucy5pMThuLm1vbnRoc1tlLmRhdGUuZ2V0TW9udGgoKV19LHl5OmZ1bmN0aW9uKCl7cmV0dXJuKCIiK2UuZGF0ZS5nZXRGdWxsWWVhcigpKS5zbGljZSgyKX0seXl5eTpmdW5jdGlvbigpe3JldHVybiBlLmRhdGUuZ2V0RnVsbFllYXIoKX19fX0se2tleToiX3JlbW92ZUV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFuZGxlSW5wdXRDbGlja0JvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2hhbmRsZUlucHV0S2V5ZG93bkJvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5faGFuZGxlSW5wdXRDaGFuZ2VCb3VuZCksdGhpcy5jYWxlbmRhckVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVDYWxlbmRhckNsaWNrQm91bmQpfX0se2tleToiX2hhbmRsZUlucHV0Q2xpY2siLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5vcGVuKCl9fSx7a2V5OiJfaGFuZGxlSW5wdXRLZXlkb3duIix2YWx1ZTpmdW5jdGlvbih0KXt0LndoaWNoPT09TS5rZXlzLkVOVEVSJiYodC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMub3BlbigpKX19LHtrZXk6Il9oYW5kbGVDYWxlbmRhckNsaWNrIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLmlzT3Blbil7dmFyIGU9Zyh0LnRhcmdldCk7ZS5oYXNDbGFzcygiaXMtZGlzYWJsZWQiKXx8KCFlLmhhc0NsYXNzKCJkYXRlcGlja2VyLWRheS1idXR0b24iKXx8ZS5oYXNDbGFzcygiaXMtZW1wdHkiKXx8ZS5wYXJlbnQoKS5oYXNDbGFzcygiaXMtZGlzYWJsZWQiKT9lLmNsb3Nlc3QoIi5tb250aC1wcmV2IikubGVuZ3RoP3RoaXMucHJldk1vbnRoKCk6ZS5jbG9zZXN0KCIubW9udGgtbmV4dCIpLmxlbmd0aCYmdGhpcy5uZXh0TW9udGgoKToodGhpcy5zZXREYXRlKG5ldyBEYXRlKHQudGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS15ZWFyIiksdC50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLW1vbnRoIiksdC50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLWRheSIpKSksdGhpcy5vcHRpb25zLmF1dG9DbG9zZSYmdGhpcy5fZmluaXNoU2VsZWN0aW9uKCkpKX19fSx7a2V5OiJfaGFuZGxlQ2xlYXJDbGljayIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRhdGU9bnVsbCx0aGlzLnNldElucHV0VmFsdWUoKSx0aGlzLmNsb3NlKCl9fSx7a2V5OiJfaGFuZGxlTW9udGhDaGFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuZ290b01vbnRoKHQudGFyZ2V0LnZhbHVlKX19LHtrZXk6Il9oYW5kbGVZZWFyQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmdvdG9ZZWFyKHQudGFyZ2V0LnZhbHVlKX19LHtrZXk6ImdvdG9Nb250aCIsdmFsdWU6ZnVuY3Rpb24odCl7aXNOYU4odCl8fCh0aGlzLmNhbGVuZGFyc1swXS5tb250aD1wYXJzZUludCh0LDEwKSx0aGlzLmFkanVzdENhbGVuZGFycygpKX19LHtrZXk6ImdvdG9ZZWFyIix2YWx1ZTpmdW5jdGlvbih0KXtpc05hTih0KXx8KHRoaXMuY2FsZW5kYXJzWzBdLnllYXI9cGFyc2VJbnQodCwxMCksdGhpcy5hZGp1c3RDYWxlbmRhcnMoKSl9fSx7a2V5OiJfaGFuZGxlSW5wdXRDaGFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXZvaWQgMDt0LmZpcmVkQnkhPT10aGlzJiYoZT10aGlzLm9wdGlvbnMucGFyc2U/dGhpcy5vcHRpb25zLnBhcnNlKHRoaXMuZWwudmFsdWUsdGhpcy5vcHRpb25zLmZvcm1hdCk6bmV3IERhdGUoRGF0ZS5wYXJzZSh0aGlzLmVsLnZhbHVlKSksQi5faXNEYXRlKGUpJiZ0aGlzLnNldERhdGUoZSkpfX0se2tleToicmVuZGVyRGF5TmFtZSIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe2ZvcihlKz10LmZpcnN0RGF5Ozc8PWU7KWUtPTc7cmV0dXJuIGk/dC5pMThuLndlZWtkYXlzQWJicmV2W2VdOnQuaTE4bi53ZWVrZGF5c1tlXX19LHtrZXk6Il9maW5pc2hTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZXRJbnB1dFZhbHVlKCksdGhpcy5jbG9zZSgpfX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy5pc09wZW4pcmV0dXJuIHRoaXMuaXNPcGVuPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMub25PcGVuJiZ0aGlzLm9wdGlvbnMub25PcGVuLmNhbGwodGhpcyksdGhpcy5kcmF3KCksdGhpcy5tb2RhbC5vcGVuKCksdGhpc319LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuaXNPcGVuKXJldHVybiB0aGlzLmlzT3Blbj0hMSwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLm9uQ2xvc2UmJnRoaXMub3B0aW9ucy5vbkNsb3NlLmNhbGwodGhpcyksdGhpcy5tb2RhbC5jbG9zZSgpLHRoaXN9fV0sW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9nZXQoQi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihCKSwiaW5pdCIsdGhpcykuY2FsbCh0aGlzLHRoaXMsdCxlKX19LHtrZXk6Il9pc0RhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybi9EYXRlLy50ZXN0KE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSkmJiFpc05hTih0LmdldFRpbWUoKSl9fSx7a2V5OiJfaXNXZWVrZW5kIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LmdldERheSgpO3JldHVybiAwPT09ZXx8Nj09PWV9fSx7a2V5OiJfc2V0VG9TdGFydE9mRGF5Iix2YWx1ZTpmdW5jdGlvbih0KXtCLl9pc0RhdGUodCkmJnQuc2V0SG91cnMoMCwwLDAsMCl9fSx7a2V5OiJfZ2V0RGF5c0luTW9udGgiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuWzMxLEIuX2lzTGVhcFllYXIodCk/Mjk6MjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdW2VdfX0se2tleToiX2lzTGVhcFllYXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0JTQ9PTAmJnQlMTAwIT0wfHx0JTQwMD09MH19LHtrZXk6Il9jb21wYXJlRGF0ZXMiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuZ2V0VGltZSgpPT09ZS5nZXRUaW1lKCl9fSx7a2V5OiJfc2V0VG9TdGFydE9mRGF5Iix2YWx1ZTpmdW5jdGlvbih0KXtCLl9pc0RhdGUodCkmJnQuc2V0SG91cnMoMCwwLDAsMCl9fSx7a2V5OiJnZXRJbnN0YW5jZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKHQuanF1ZXJ5P3RbMF06dCkuTV9EYXRlcGlja2VyfX0se2tleToiZGVmYXVsdHMiLGdldDpmdW5jdGlvbigpe3JldHVybiBlfX1dKSxCfSgpO3QuX3RlbXBsYXRlPVsnPGRpdiBjbGFzcz0gIm1vZGFsIGRhdGVwaWNrZXItbW9kYWwiPicsJzxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQgZGF0ZXBpY2tlci1jb250YWluZXIiPicsJzxkaXYgY2xhc3M9ImRhdGVwaWNrZXItZGF0ZS1kaXNwbGF5Ij4nLCc8c3BhbiBjbGFzcz0ieWVhci10ZXh0Ij48L3NwYW4+JywnPHNwYW4gY2xhc3M9ImRhdGUtdGV4dCI+PC9zcGFuPicsIjwvZGl2PiIsJzxkaXYgY2xhc3M9ImRhdGVwaWNrZXItY2FsZW5kYXItY29udGFpbmVyIj4nLCc8ZGl2IGNsYXNzPSJkYXRlcGlja2VyLWNhbGVuZGFyIj48L2Rpdj4nLCc8ZGl2IGNsYXNzPSJkYXRlcGlja2VyLWZvb3RlciI+JywnPGJ1dHRvbiBjbGFzcz0iYnRuLWZsYXQgZGF0ZXBpY2tlci1jbGVhciB3YXZlcy1lZmZlY3QiIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW47IiB0eXBlPSJidXR0b24iPjwvYnV0dG9uPicsJzxkaXYgY2xhc3M9ImNvbmZpcm1hdGlvbi1idG5zIj4nLCc8YnV0dG9uIGNsYXNzPSJidG4tZmxhdCBkYXRlcGlja2VyLWNhbmNlbCB3YXZlcy1lZmZlY3QiIHR5cGU9ImJ1dHRvbiI+PC9idXR0b24+JywnPGJ1dHRvbiBjbGFzcz0iYnRuLWZsYXQgZGF0ZXBpY2tlci1kb25lIHdhdmVzLWVmZmVjdCIgdHlwZT0iYnV0dG9uIj48L2J1dHRvbj4nLCI8L2Rpdj4iLCI8L2Rpdj4iLCI8L2Rpdj4iLCI8L2Rpdj4iLCI8L2Rpdj4iXS5qb2luKCIiKSxNLkRhdGVwaWNrZXI9dCxNLmpRdWVyeUxvYWRlZCYmTS5pbml0aWFsaXplSnF1ZXJ5V3JhcHBlcih0LCJkYXRlcGlja2VyIiwiTV9EYXRlcGlja2VyIil9KGNhc2gpLGZ1bmN0aW9uKGgpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT17ZGlhbFJhZGl1czoxMzUsb3V0ZXJSYWRpdXM6MTA1LGlubmVyUmFkaXVzOjcwLHRpY2tSYWRpdXM6MjAsZHVyYXRpb246MzUwLGNvbnRhaW5lcjpudWxsLGRlZmF1bHRUaW1lOiJub3ciLGZyb21Ob3c6MCxzaG93Q2xlYXJCdG46ITEsaTE4bjp7Y2FuY2VsOiJDYW5jZWwiLGNsZWFyOiJDbGVhciIsZG9uZToiT2sifSxhdXRvQ2xvc2U6ITEsdHdlbHZlSG91cjohMCx2aWJyYXRlOiEwLG9uT3BlblN0YXJ0Om51bGwsb25PcGVuRW5kOm51bGwsb25DbG9zZVN0YXJ0Om51bGwsb25DbG9zZUVuZDpudWxsLG9uU2VsZWN0Om51bGx9LHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZih0LGUpe19jbGFzc0NhbGxDaGVjayh0aGlzLGYpO3ZhciBpPV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKGYuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZikpLmNhbGwodGhpcyxmLHQsZSkpO3JldHVybihpLmVsLk1fVGltZXBpY2tlcj1pKS5vcHRpb25zPWguZXh0ZW5kKHt9LGYuZGVmYXVsdHMsZSksaS5pZD1NLmd1aWQoKSxpLl9pbnNlcnRIVE1MSW50b0RPTSgpLGkuX3NldHVwTW9kYWwoKSxpLl9zZXR1cFZhcmlhYmxlcygpLGkuX3NldHVwRXZlbnRIYW5kbGVycygpLGkuX2Nsb2NrU2V0dXAoKSxpLl9waWNrZXJTZXR1cCgpLGl9cmV0dXJuIF9pbmhlcml0cyhmLENvbXBvbmVudCksX2NyZWF0ZUNsYXNzKGYsW3trZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fcmVtb3ZlRXZlbnRIYW5kbGVycygpLHRoaXMubW9kYWwuZGVzdHJveSgpLGgodGhpcy5tb2RhbEVsKS5yZW1vdmUoKSx0aGlzLmVsLk1fVGltZXBpY2tlcj12b2lkIDB9fSx7a2V5OiJfc2V0dXBFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2hhbmRsZUlucHV0S2V5ZG93bkJvdW5kPXRoaXMuX2hhbmRsZUlucHV0S2V5ZG93bi5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZUlucHV0Q2xpY2tCb3VuZD10aGlzLl9oYW5kbGVJbnB1dENsaWNrLmJpbmQodGhpcyksdGhpcy5faGFuZGxlQ2xvY2tDbGlja1N0YXJ0Qm91bmQ9dGhpcy5faGFuZGxlQ2xvY2tDbGlja1N0YXJ0LmJpbmQodGhpcyksdGhpcy5faGFuZGxlRG9jdW1lbnRDbGlja01vdmVCb3VuZD10aGlzLl9oYW5kbGVEb2N1bWVudENsaWNrTW92ZS5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZURvY3VtZW50Q2xpY2tFbmRCb3VuZD10aGlzLl9oYW5kbGVEb2N1bWVudENsaWNrRW5kLmJpbmQodGhpcyksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFuZGxlSW5wdXRDbGlja0JvdW5kKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHRoaXMuX2hhbmRsZUlucHV0S2V5ZG93bkJvdW5kKSx0aGlzLnBsYXRlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5faGFuZGxlQ2xvY2tDbGlja1N0YXJ0Qm91bmQpLHRoaXMucGxhdGUuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5faGFuZGxlQ2xvY2tDbGlja1N0YXJ0Qm91bmQpLGgodGhpcy5zcGFuSG91cnMpLm9uKCJjbGljayIsdGhpcy5zaG93Vmlldy5iaW5kKHRoaXMsImhvdXJzIikpLGgodGhpcy5zcGFuTWludXRlcykub24oImNsaWNrIix0aGlzLnNob3dWaWV3LmJpbmQodGhpcywibWludXRlcyIpKX19LHtrZXk6Il9yZW1vdmVFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZUlucHV0Q2xpY2tCb3VuZCksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9oYW5kbGVJbnB1dEtleWRvd25Cb3VuZCl9fSx7a2V5OiJfaGFuZGxlSW5wdXRDbGljayIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm9wZW4oKX19LHtrZXk6Il9oYW5kbGVJbnB1dEtleWRvd24iLHZhbHVlOmZ1bmN0aW9uKHQpe3Qud2hpY2g9PT1NLmtleXMuRU5URVImJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5vcGVuKCkpfX0se2tleToiX2hhbmRsZUNsb2NrQ2xpY2tTdGFydCIsdmFsdWU6ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBlPXRoaXMucGxhdGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT1lLmxlZnQsbj1lLnRvcDt0aGlzLngwPWkrdGhpcy5vcHRpb25zLmRpYWxSYWRpdXMsdGhpcy55MD1uK3RoaXMub3B0aW9ucy5kaWFsUmFkaXVzLHRoaXMubW92ZWQ9ITE7dmFyIHM9Zi5fUG9zKHQpO3RoaXMuZHg9cy54LXRoaXMueDAsdGhpcy5keT1zLnktdGhpcy55MCx0aGlzLnNldEhhbmQodGhpcy5keCx0aGlzLmR5LCExKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX2hhbmRsZURvY3VtZW50Q2xpY2tNb3ZlQm91bmQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5faGFuZGxlRG9jdW1lbnRDbGlja01vdmVCb3VuZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5faGFuZGxlRG9jdW1lbnRDbGlja0VuZEJvdW5kKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5faGFuZGxlRG9jdW1lbnRDbGlja0VuZEJvdW5kKX19LHtrZXk6Il9oYW5kbGVEb2N1bWVudENsaWNrTW92ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBlPWYuX1Bvcyh0KSxpPWUueC10aGlzLngwLG49ZS55LXRoaXMueTA7dGhpcy5tb3ZlZD0hMCx0aGlzLnNldEhhbmQoaSxuLCExLCEwKX19LHtrZXk6Il9oYW5kbGVEb2N1bWVudENsaWNrRW5kIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3QucHJldmVudERlZmF1bHQoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9oYW5kbGVEb2N1bWVudENsaWNrRW5kQm91bmQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl9oYW5kbGVEb2N1bWVudENsaWNrRW5kQm91bmQpO3ZhciBpPWYuX1Bvcyh0KSxuPWkueC10aGlzLngwLHM9aS55LXRoaXMueTA7dGhpcy5tb3ZlZCYmbj09PXRoaXMuZHgmJnM9PT10aGlzLmR5JiZ0aGlzLnNldEhhbmQobixzKSwiaG91cnMiPT09dGhpcy5jdXJyZW50Vmlldz90aGlzLnNob3dWaWV3KCJtaW51dGVzIix0aGlzLm9wdGlvbnMuZHVyYXRpb24vMik6dGhpcy5vcHRpb25zLmF1dG9DbG9zZSYmKGgodGhpcy5taW51dGVzVmlldykuYWRkQ2xhc3MoInRpbWVwaWNrZXItZGlhbC1vdXQiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5kb25lKCl9LHRoaXMub3B0aW9ucy5kdXJhdGlvbi8yKSksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5vblNlbGVjdCYmdGhpcy5vcHRpb25zLm9uU2VsZWN0LmNhbGwodGhpcyx0aGlzLmhvdXJzLHRoaXMubWludXRlcyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9oYW5kbGVEb2N1bWVudENsaWNrTW92ZUJvdW5kKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX2hhbmRsZURvY3VtZW50Q2xpY2tNb3ZlQm91bmQpfX0se2tleToiX2luc2VydEhUTUxJbnRvRE9NIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuJG1vZGFsRWw9aChmLl90ZW1wbGF0ZSksdGhpcy5tb2RhbEVsPXRoaXMuJG1vZGFsRWxbMF0sdGhpcy5tb2RhbEVsLmlkPSJtb2RhbC0iK3RoaXMuaWQ7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLm9wdGlvbnMuY29udGFpbmVyKTt0aGlzLm9wdGlvbnMuY29udGFpbmVyJiZ0P3RoaXMuJG1vZGFsRWwuYXBwZW5kVG8odCk6dGhpcy4kbW9kYWxFbC5pbnNlcnRCZWZvcmUodGhpcy5lbCl9fSx7a2V5OiJfc2V0dXBNb2RhbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMubW9kYWw9TS5Nb2RhbC5pbml0KHRoaXMubW9kYWxFbCx7b25PcGVuU3RhcnQ6dGhpcy5vcHRpb25zLm9uT3BlblN0YXJ0LG9uT3BlbkVuZDp0aGlzLm9wdGlvbnMub25PcGVuRW5kLG9uQ2xvc2VTdGFydDp0aGlzLm9wdGlvbnMub25DbG9zZVN0YXJ0LG9uQ2xvc2VFbmQ6ZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT10eXBlb2YgdC5vcHRpb25zLm9uQ2xvc2VFbmQmJnQub3B0aW9ucy5vbkNsb3NlRW5kLmNhbGwodCksdC5pc09wZW49ITF9fSl9fSx7a2V5OiJfc2V0dXBWYXJpYWJsZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50Vmlldz0iaG91cnMiLHRoaXMudmlicmF0ZT1uYXZpZ2F0b3IudmlicmF0ZT8idmlicmF0ZSI6bmF2aWdhdG9yLndlYmtpdFZpYnJhdGU/IndlYmtpdFZpYnJhdGUiOm51bGwsdGhpcy5fY2FudmFzPXRoaXMubW9kYWxFbC5xdWVyeVNlbGVjdG9yKCIudGltZXBpY2tlci1jYW52YXMiKSx0aGlzLnBsYXRlPXRoaXMubW9kYWxFbC5xdWVyeVNlbGVjdG9yKCIudGltZXBpY2tlci1wbGF0ZSIpLHRoaXMuaG91cnNWaWV3PXRoaXMubW9kYWxFbC5xdWVyeVNlbGVjdG9yKCIudGltZXBpY2tlci1ob3VycyIpLHRoaXMubWludXRlc1ZpZXc9dGhpcy5tb2RhbEVsLnF1ZXJ5U2VsZWN0b3IoIi50aW1lcGlja2VyLW1pbnV0ZXMiKSx0aGlzLnNwYW5Ib3Vycz10aGlzLm1vZGFsRWwucXVlcnlTZWxlY3RvcigiLnRpbWVwaWNrZXItc3Bhbi1ob3VycyIpLHRoaXMuc3Bhbk1pbnV0ZXM9dGhpcy5tb2RhbEVsLnF1ZXJ5U2VsZWN0b3IoIi50aW1lcGlja2VyLXNwYW4tbWludXRlcyIpLHRoaXMuc3BhbkFtUG09dGhpcy5tb2RhbEVsLnF1ZXJ5U2VsZWN0b3IoIi50aW1lcGlja2VyLXNwYW4tYW0tcG0iKSx0aGlzLmZvb3Rlcj10aGlzLm1vZGFsRWwucXVlcnlTZWxlY3RvcigiLnRpbWVwaWNrZXItZm9vdGVyIiksdGhpcy5hbU9yUG09IlBNIn19LHtrZXk6Il9waWNrZXJTZXR1cCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1oKCc8YnV0dG9uIGNsYXNzPSJidG4tZmxhdCB0aW1lcGlja2VyLWNsZWFyIHdhdmVzLWVmZmVjdCIgc3R5bGU9InZpc2liaWxpdHk6IGhpZGRlbjsiIHR5cGU9ImJ1dHRvbiIgdGFiaW5kZXg9IicrKHRoaXMub3B0aW9ucy50d2VsdmVIb3VyPyIzIjoiMSIpKyciPicrdGhpcy5vcHRpb25zLmkxOG4uY2xlYXIrIjwvYnV0dG9uPiIpLmFwcGVuZFRvKHRoaXMuZm9vdGVyKS5vbigiY2xpY2siLHRoaXMuY2xlYXIuYmluZCh0aGlzKSk7dGhpcy5vcHRpb25zLnNob3dDbGVhckJ0biYmdC5jc3Moe3Zpc2liaWxpdHk6IiJ9KTt2YXIgZT1oKCc8ZGl2IGNsYXNzPSJjb25maXJtYXRpb24tYnRucyI+PC9kaXY+Jyk7aCgnPGJ1dHRvbiBjbGFzcz0iYnRuLWZsYXQgdGltZXBpY2tlci1jbG9zZSB3YXZlcy1lZmZlY3QiIHR5cGU9ImJ1dHRvbiIgdGFiaW5kZXg9IicrKHRoaXMub3B0aW9ucy50d2VsdmVIb3VyPyIzIjoiMSIpKyciPicrdGhpcy5vcHRpb25zLmkxOG4uY2FuY2VsKyI8L2J1dHRvbj4iKS5hcHBlbmRUbyhlKS5vbigiY2xpY2siLHRoaXMuY2xvc2UuYmluZCh0aGlzKSksaCgnPGJ1dHRvbiBjbGFzcz0iYnRuLWZsYXQgdGltZXBpY2tlci1jbG9zZSB3YXZlcy1lZmZlY3QiIHR5cGU9ImJ1dHRvbiIgdGFiaW5kZXg9IicrKHRoaXMub3B0aW9ucy50d2VsdmVIb3VyPyIzIjoiMSIpKyciPicrdGhpcy5vcHRpb25zLmkxOG4uZG9uZSsiPC9idXR0b24+IikuYXBwZW5kVG8oZSkub24oImNsaWNrIix0aGlzLmRvbmUuYmluZCh0aGlzKSksZS5hcHBlbmRUbyh0aGlzLmZvb3Rlcil9fSx7a2V5OiJfY2xvY2tTZXR1cCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMudHdlbHZlSG91ciYmKHRoaXMuJGFtQnRuPWgoJzxkaXYgY2xhc3M9ImFtLWJ0biI+QU08L2Rpdj4nKSx0aGlzLiRwbUJ0bj1oKCc8ZGl2IGNsYXNzPSJwbS1idG4iPlBNPC9kaXY+JyksdGhpcy4kYW1CdG4ub24oImNsaWNrIix0aGlzLl9oYW5kbGVBbVBtQ2xpY2suYmluZCh0aGlzKSkuYXBwZW5kVG8odGhpcy5zcGFuQW1QbSksdGhpcy4kcG1CdG4ub24oImNsaWNrIix0aGlzLl9oYW5kbGVBbVBtQ2xpY2suYmluZCh0aGlzKSkuYXBwZW5kVG8odGhpcy5zcGFuQW1QbSkpLHRoaXMuX2J1aWxkSG91cnNWaWV3KCksdGhpcy5fYnVpbGRNaW51dGVzVmlldygpLHRoaXMuX2J1aWxkU1ZHQ2xvY2soKX19LHtrZXk6Il9idWlsZFNWR0Nsb2NrIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy5kaWFsUmFkaXVzLGU9dGhpcy5vcHRpb25zLnRpY2tSYWRpdXMsaT0yKnQsbj1mLl9jcmVhdGVTVkdFbCgic3ZnIik7bi5zZXRBdHRyaWJ1dGUoImNsYXNzIiwidGltZXBpY2tlci1zdmciKSxuLnNldEF0dHJpYnV0ZSgid2lkdGgiLGkpLG4uc2V0QXR0cmlidXRlKCJoZWlnaHQiLGkpO3ZhciBzPWYuX2NyZWF0ZVNWR0VsKCJnIik7cy5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK3QrIiwiK3QrIikiKTt2YXIgbz1mLl9jcmVhdGVTVkdFbCgiY2lyY2xlIik7by5zZXRBdHRyaWJ1dGUoImNsYXNzIiwidGltZXBpY2tlci1jYW52YXMtYmVhcmluZyIpLG8uc2V0QXR0cmlidXRlKCJjeCIsMCksby5zZXRBdHRyaWJ1dGUoImN5IiwwKSxvLnNldEF0dHJpYnV0ZSgiciIsNCk7dmFyIGE9Zi5fY3JlYXRlU1ZHRWwoImxpbmUiKTthLnNldEF0dHJpYnV0ZSgieDEiLDApLGEuc2V0QXR0cmlidXRlKCJ5MSIsMCk7dmFyIHI9Zi5fY3JlYXRlU1ZHRWwoImNpcmNsZSIpO3Iuc2V0QXR0cmlidXRlKCJjbGFzcyIsInRpbWVwaWNrZXItY2FudmFzLWJnIiksci5zZXRBdHRyaWJ1dGUoInIiLGUpLHMuYXBwZW5kQ2hpbGQoYSkscy5hcHBlbmRDaGlsZChyKSxzLmFwcGVuZENoaWxkKG8pLG4uYXBwZW5kQ2hpbGQocyksdGhpcy5fY2FudmFzLmFwcGVuZENoaWxkKG4pLHRoaXMuaGFuZD1hLHRoaXMuYmc9cix0aGlzLmJlYXJpbmc9byx0aGlzLmc9c319LHtrZXk6Il9idWlsZEhvdXJzVmlldyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1oKCc8ZGl2IGNsYXNzPSJ0aW1lcGlja2VyLXRpY2siPjwvZGl2PicpO2lmKHRoaXMub3B0aW9ucy50d2VsdmVIb3VyKWZvcih2YXIgZT0xO2U8MTM7ZSs9MSl7dmFyIGk9dC5jbG9uZSgpLG49ZS82Kk1hdGguUEkscz10aGlzLm9wdGlvbnMub3V0ZXJSYWRpdXM7aS5jc3Moe2xlZnQ6dGhpcy5vcHRpb25zLmRpYWxSYWRpdXMrTWF0aC5zaW4obikqcy10aGlzLm9wdGlvbnMudGlja1JhZGl1cysicHgiLHRvcDp0aGlzLm9wdGlvbnMuZGlhbFJhZGl1cy1NYXRoLmNvcyhuKSpzLXRoaXMub3B0aW9ucy50aWNrUmFkaXVzKyJweCJ9KSxpLmh0bWwoMD09PWU/IjAwIjplKSx0aGlzLmhvdXJzVmlldy5hcHBlbmRDaGlsZChpWzBdKX1lbHNlIGZvcih2YXIgbz0wO288MjQ7bys9MSl7dmFyIGE9dC5jbG9uZSgpLHI9by82Kk1hdGguUEksbD0wPG8mJm88MTM/dGhpcy5vcHRpb25zLmlubmVyUmFkaXVzOnRoaXMub3B0aW9ucy5vdXRlclJhZGl1czthLmNzcyh7bGVmdDp0aGlzLm9wdGlvbnMuZGlhbFJhZGl1cytNYXRoLnNpbihyKSpsLXRoaXMub3B0aW9ucy50aWNrUmFkaXVzKyJweCIsdG9wOnRoaXMub3B0aW9ucy5kaWFsUmFkaXVzLU1hdGguY29zKHIpKmwtdGhpcy5vcHRpb25zLnRpY2tSYWRpdXMrInB4In0pLGEuaHRtbCgwPT09bz8iMDAiOm8pLHRoaXMuaG91cnNWaWV3LmFwcGVuZENoaWxkKGFbMF0pfX19LHtrZXk6Il9idWlsZE1pbnV0ZXNWaWV3Iix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1oKCc8ZGl2IGNsYXNzPSJ0aW1lcGlja2VyLXRpY2siPjwvZGl2PicpLGU9MDtlPDYwO2UrPTUpe3ZhciBpPXQuY2xvbmUoKSxuPWUvMzAqTWF0aC5QSTtpLmNzcyh7bGVmdDp0aGlzLm9wdGlvbnMuZGlhbFJhZGl1cytNYXRoLnNpbihuKSp0aGlzLm9wdGlvbnMub3V0ZXJSYWRpdXMtdGhpcy5vcHRpb25zLnRpY2tSYWRpdXMrInB4Iix0b3A6dGhpcy5vcHRpb25zLmRpYWxSYWRpdXMtTWF0aC5jb3MobikqdGhpcy5vcHRpb25zLm91dGVyUmFkaXVzLXRoaXMub3B0aW9ucy50aWNrUmFkaXVzKyJweCJ9KSxpLmh0bWwoZi5fYWRkTGVhZGluZ1plcm8oZSkpLHRoaXMubWludXRlc1ZpZXcuYXBwZW5kQ2hpbGQoaVswXSl9fX0se2tleToiX2hhbmRsZUFtUG1DbGljayIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9aCh0LnRhcmdldCk7dGhpcy5hbU9yUG09ZS5oYXNDbGFzcygiYW0tYnRuIik/IkFNIjoiUE0iLHRoaXMuX3VwZGF0ZUFtUG1WaWV3KCl9fSx7a2V5OiJfdXBkYXRlQW1QbVZpZXciLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLnR3ZWx2ZUhvdXImJih0aGlzLiRhbUJ0bi50b2dnbGVDbGFzcygidGV4dC1wcmltYXJ5IiwiQU0iPT09dGhpcy5hbU9yUG0pLHRoaXMuJHBtQnRuLnRvZ2dsZUNsYXNzKCJ0ZXh0LXByaW1hcnkiLCJQTSI9PT10aGlzLmFtT3JQbSkpfX0se2tleToiX3VwZGF0ZVRpbWVGcm9tSW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9KCh0aGlzLmVsLnZhbHVlfHx0aGlzLm9wdGlvbnMuZGVmYXVsdFRpbWV8fCIiKSsiIikuc3BsaXQoIjoiKTtpZih0aGlzLm9wdGlvbnMudHdlbHZlSG91ciYmdm9pZCAwIT09dFsxXSYmKDA8dFsxXS50b1VwcGVyQ2FzZSgpLmluZGV4T2YoIkFNIik/dGhpcy5hbU9yUG09IkFNIjp0aGlzLmFtT3JQbT0iUE0iLHRbMV09dFsxXS5yZXBsYWNlKCJBTSIsIiIpLnJlcGxhY2UoIlBNIiwiIikpLCJub3ciPT09dFswXSl7dmFyIGU9bmV3IERhdGUoK25ldyBEYXRlK3RoaXMub3B0aW9ucy5mcm9tTm93KTt0PVtlLmdldEhvdXJzKCksZS5nZXRNaW51dGVzKCldLHRoaXMub3B0aW9ucy50d2VsdmVIb3VyJiYodGhpcy5hbU9yUG09MTI8PXRbMF0mJnRbMF08MjQ/IlBNIjoiQU0iKX10aGlzLmhvdXJzPSt0WzBdfHwwLHRoaXMubWludXRlcz0rdFsxXXx8MCx0aGlzLnNwYW5Ib3Vycy5pbm5lckhUTUw9dGhpcy5ob3Vycyx0aGlzLnNwYW5NaW51dGVzLmlubmVySFRNTD1mLl9hZGRMZWFkaW5nWmVybyh0aGlzLm1pbnV0ZXMpLHRoaXMuX3VwZGF0ZUFtUG1WaWV3KCl9fSx7a2V5OiJzaG93VmlldyIsdmFsdWU6ZnVuY3Rpb24odCxlKXsibWludXRlcyI9PT10JiZoKHRoaXMuaG91cnNWaWV3KS5jc3MoInZpc2liaWxpdHkiKTt2YXIgaT0iaG91cnMiPT09dCxuPWk/dGhpcy5ob3Vyc1ZpZXc6dGhpcy5taW51dGVzVmlldyxzPWk/dGhpcy5taW51dGVzVmlldzp0aGlzLmhvdXJzVmlldzt0aGlzLmN1cnJlbnRWaWV3PXQsaCh0aGlzLnNwYW5Ib3VycykudG9nZ2xlQ2xhc3MoInRleHQtcHJpbWFyeSIsaSksaCh0aGlzLnNwYW5NaW51dGVzKS50b2dnbGVDbGFzcygidGV4dC1wcmltYXJ5IiwhaSkscy5jbGFzc0xpc3QuYWRkKCJ0aW1lcGlja2VyLWRpYWwtb3V0IiksaChuKS5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIikucmVtb3ZlQ2xhc3MoInRpbWVwaWNrZXItZGlhbC1vdXQiKSx0aGlzLnJlc2V0Q2xvY2soZSksY2xlYXJUaW1lb3V0KHRoaXMudG9nZ2xlVmlld1RpbWVyKSx0aGlzLnRvZ2dsZVZpZXdUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aChzKS5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKX0sdGhpcy5vcHRpb25zLmR1cmF0aW9uKX19LHtrZXk6InJlc2V0Q2xvY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3VycmVudFZpZXcsaT10aGlzW2VdLG49ImhvdXJzIj09PWUscz1pKihNYXRoLlBJLyhuPzY6MzApKSxvPW4mJjA8aSYmaTwxMz90aGlzLm9wdGlvbnMuaW5uZXJSYWRpdXM6dGhpcy5vcHRpb25zLm91dGVyUmFkaXVzLGE9TWF0aC5zaW4ocykqbyxyPS1NYXRoLmNvcyhzKSpvLGw9dGhpczt0PyhoKHRoaXMuY2FudmFzKS5hZGRDbGFzcygidGltZXBpY2tlci1jYW52YXMtb3V0Iiksc2V0VGltZW91dChmdW5jdGlvbigpe2gobC5jYW52YXMpLnJlbW92ZUNsYXNzKCJ0aW1lcGlja2VyLWNhbnZhcy1vdXQiKSxsLnNldEhhbmQoYSxyKX0sdCkpOnRoaXMuc2V0SGFuZChhLHIpfX0se2tleToic2V0SGFuZCIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBuPXRoaXMscz1NYXRoLmF0YW4yKHQsLWUpLG89ImhvdXJzIj09PXRoaXMuY3VycmVudFZpZXcsYT1NYXRoLlBJLyhvfHxpPzY6MzApLHI9TWF0aC5zcXJ0KHQqdCtlKmUpLGw9byYmcjwodGhpcy5vcHRpb25zLm91dGVyUmFkaXVzK3RoaXMub3B0aW9ucy5pbm5lclJhZGl1cykvMixoPWw/dGhpcy5vcHRpb25zLmlubmVyUmFkaXVzOnRoaXMub3B0aW9ucy5vdXRlclJhZGl1czt0aGlzLm9wdGlvbnMudHdlbHZlSG91ciYmKGg9dGhpcy5vcHRpb25zLm91dGVyUmFkaXVzKSxzPDAmJihzPTIqTWF0aC5QSStzKTt2YXIgZD1NYXRoLnJvdW5kKHMvYSk7cz1kKmEsdGhpcy5vcHRpb25zLnR3ZWx2ZUhvdXI/bz8wPT09ZCYmKGQ9MTIpOihpJiYoZCo9NSksNjA9PT1kJiYoZD0wKSk6bz8oMTI9PT1kJiYoZD0wKSxkPWw/MD09PWQ/MTI6ZDowPT09ZD8wOmQrMTIpOihpJiYoZCo9NSksNjA9PT1kJiYoZD0wKSksdGhpc1t0aGlzLmN1cnJlbnRWaWV3XSE9PWQmJnRoaXMudmlicmF0ZSYmdGhpcy5vcHRpb25zLnZpYnJhdGUmJih0aGlzLnZpYnJhdGVUaW1lcnx8KG5hdmlnYXRvclt0aGlzLnZpYnJhdGVdKDEwKSx0aGlzLnZpYnJhdGVUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi52aWJyYXRlVGltZXI9bnVsbH0sMTAwKSkpLHRoaXNbdGhpcy5jdXJyZW50Vmlld109ZCxvP3RoaXMuc3BhbkhvdXJzLmlubmVySFRNTD1kOnRoaXMuc3Bhbk1pbnV0ZXMuaW5uZXJIVE1MPWYuX2FkZExlYWRpbmdaZXJvKGQpO3ZhciB1PU1hdGguc2luKHMpKihoLXRoaXMub3B0aW9ucy50aWNrUmFkaXVzKSxjPS1NYXRoLmNvcyhzKSooaC10aGlzLm9wdGlvbnMudGlja1JhZGl1cykscD1NYXRoLnNpbihzKSpoLHY9LU1hdGguY29zKHMpKmg7dGhpcy5oYW5kLnNldEF0dHJpYnV0ZSgieDIiLHUpLHRoaXMuaGFuZC5zZXRBdHRyaWJ1dGUoInkyIixjKSx0aGlzLmJnLnNldEF0dHJpYnV0ZSgiY3giLHApLHRoaXMuYmcuc2V0QXR0cmlidXRlKCJjeSIsdil9fSx7a2V5OiJvcGVuIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXNPcGVufHwodGhpcy5pc09wZW49ITAsdGhpcy5fdXBkYXRlVGltZUZyb21JbnB1dCgpLHRoaXMuc2hvd1ZpZXcoImhvdXJzIiksdGhpcy5tb2RhbC5vcGVuKCkpfX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc09wZW4mJih0aGlzLmlzT3Blbj0hMSx0aGlzLm1vZGFsLmNsb3NlKCkpfX0se2tleToiZG9uZSIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLmVsLnZhbHVlLG49ZT8iIjpmLl9hZGRMZWFkaW5nWmVybyh0aGlzLmhvdXJzKSsiOiIrZi5fYWRkTGVhZGluZ1plcm8odGhpcy5taW51dGVzKTt0aGlzLnRpbWU9biwhZSYmdGhpcy5vcHRpb25zLnR3ZWx2ZUhvdXImJihuPW4rIiAiK3RoaXMuYW1PclBtKSwodGhpcy5lbC52YWx1ZT1uKSE9PWkmJnRoaXMuJGVsLnRyaWdnZXIoImNoYW5nZSIpLHRoaXMuY2xvc2UoKSx0aGlzLmVsLmZvY3VzKCl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRvbmUobnVsbCwhMCl9fV0sW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9nZXQoZi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihmKSwiaW5pdCIsdGhpcykuY2FsbCh0aGlzLHRoaXMsdCxlKX19LHtrZXk6Il9hZGRMZWFkaW5nWmVybyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKHQ8MTA/IjAiOiIiKSt0fX0se2tleToiX2NyZWF0ZVNWR0VsIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsdCl9fSx7a2V5OiJfUG9zIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC50YXJnZXRUb3VjaGVzJiYxPD10LnRhcmdldFRvdWNoZXMubGVuZ3RoP3t4OnQudGFyZ2V0VG91Y2hlc1swXS5jbGllbnRYLHk6dC50YXJnZXRUb3VjaGVzWzBdLmNsaWVudFl9Ont4OnQuY2xpZW50WCx5OnQuY2xpZW50WX19fSx7a2V5OiJnZXRJbnN0YW5jZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKHQuanF1ZXJ5P3RbMF06dCkuTV9UaW1lcGlja2VyfX0se2tleToiZGVmYXVsdHMiLGdldDpmdW5jdGlvbigpe3JldHVybiBlfX1dKSxmfSgpO3QuX3RlbXBsYXRlPVsnPGRpdiBjbGFzcz0gIm1vZGFsIHRpbWVwaWNrZXItbW9kYWwiPicsJzxkaXYgY2xhc3M9Im1vZGFsLWNvbnRlbnQgdGltZXBpY2tlci1jb250YWluZXIiPicsJzxkaXYgY2xhc3M9InRpbWVwaWNrZXItZGlnaXRhbC1kaXNwbGF5Ij4nLCc8ZGl2IGNsYXNzPSJ0aW1lcGlja2VyLXRleHQtY29udGFpbmVyIj4nLCc8ZGl2IGNsYXNzPSJ0aW1lcGlja2VyLWRpc3BsYXktY29sdW1uIj4nLCc8c3BhbiBjbGFzcz0idGltZXBpY2tlci1zcGFuLWhvdXJzIHRleHQtcHJpbWFyeSI+PC9zcGFuPicsIjoiLCc8c3BhbiBjbGFzcz0idGltZXBpY2tlci1zcGFuLW1pbnV0ZXMiPjwvc3Bhbj4nLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJ0aW1lcGlja2VyLWRpc3BsYXktY29sdW1uIHRpbWVwaWNrZXItZGlzcGxheS1hbS1wbSI+JywnPGRpdiBjbGFzcz0idGltZXBpY2tlci1zcGFuLWFtLXBtIj48L2Rpdj4nLCI8L2Rpdj4iLCI8L2Rpdj4iLCI8L2Rpdj4iLCc8ZGl2IGNsYXNzPSJ0aW1lcGlja2VyLWFuYWxvZy1kaXNwbGF5Ij4nLCc8ZGl2IGNsYXNzPSJ0aW1lcGlja2VyLXBsYXRlIj4nLCc8ZGl2IGNsYXNzPSJ0aW1lcGlja2VyLWNhbnZhcyI+PC9kaXY+JywnPGRpdiBjbGFzcz0idGltZXBpY2tlci1kaWFsIHRpbWVwaWNrZXItaG91cnMiPjwvZGl2PicsJzxkaXYgY2xhc3M9InRpbWVwaWNrZXItZGlhbCB0aW1lcGlja2VyLW1pbnV0ZXMgdGltZXBpY2tlci1kaWFsLW91dCI+PC9kaXY+JywiPC9kaXY+IiwnPGRpdiBjbGFzcz0idGltZXBpY2tlci1mb290ZXIiPjwvZGl2PicsIjwvZGl2PiIsIjwvZGl2PiIsIjwvZGl2PiJdLmpvaW4oIiIpLE0uVGltZXBpY2tlcj10LE0ualF1ZXJ5TG9hZGVkJiZNLmluaXRpYWxpemVKcXVlcnlXcmFwcGVyKHQsInRpbWVwaWNrZXIiLCJNX1RpbWVwaWNrZXIiKX0oY2FzaCksZnVuY3Rpb24ocyl7InVzZSBzdHJpY3QiO3ZhciBlPXt9LHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0LGUpe19jbGFzc0NhbGxDaGVjayh0aGlzLG4pO3ZhciBpPV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobikpLmNhbGwodGhpcyxuLHQsZSkpO3JldHVybihpLmVsLk1fQ2hhcmFjdGVyQ291bnRlcj1pKS5vcHRpb25zPXMuZXh0ZW5kKHt9LG4uZGVmYXVsdHMsZSksaS5pc0ludmFsaWQ9ITEsaS5pc1ZhbGlkTGVuZ3RoPSExLGkuX3NldHVwQ291bnRlcigpLGkuX3NldHVwRXZlbnRIYW5kbGVycygpLGl9cmV0dXJuIF9pbmhlcml0cyhuLENvbXBvbmVudCksX2NyZWF0ZUNsYXNzKG4sW3trZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fcmVtb3ZlRXZlbnRIYW5kbGVycygpLHRoaXMuZWwuQ2hhcmFjdGVyQ291bnRlcj12b2lkIDAsdGhpcy5fcmVtb3ZlQ291bnRlcigpfX0se2tleToiX3NldHVwRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oYW5kbGVVcGRhdGVDb3VudGVyQm91bmQ9dGhpcy51cGRhdGVDb3VudGVyLmJpbmQodGhpcyksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5faGFuZGxlVXBkYXRlQ291bnRlckJvdW5kLCEwKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0Iix0aGlzLl9oYW5kbGVVcGRhdGVDb3VudGVyQm91bmQsITApfX0se2tleToiX3JlbW92ZUV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsdGhpcy5faGFuZGxlVXBkYXRlQ291bnRlckJvdW5kLCEwKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImlucHV0Iix0aGlzLl9oYW5kbGVVcGRhdGVDb3VudGVyQm91bmQsITApfX0se2tleToiX3NldHVwQ291bnRlciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNvdW50ZXJFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikscyh0aGlzLmNvdW50ZXJFbCkuYWRkQ2xhc3MoImNoYXJhY3Rlci1jb3VudGVyIikuY3NzKHtmbG9hdDoicmlnaHQiLCJmb250LXNpemUiOiIxMnB4IixoZWlnaHQ6MX0pLHRoaXMuJGVsLnBhcmVudCgpLmFwcGVuZCh0aGlzLmNvdW50ZXJFbCl9fSx7a2V5OiJfcmVtb3ZlQ291bnRlciIsdmFsdWU6ZnVuY3Rpb24oKXtzKHRoaXMuY291bnRlckVsKS5yZW1vdmUoKX19LHtrZXk6InVwZGF0ZUNvdW50ZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9K3RoaXMuJGVsLmF0dHIoImRhdGEtbGVuZ3RoIiksZT10aGlzLmVsLnZhbHVlLmxlbmd0aDt0aGlzLmlzVmFsaWRMZW5ndGg9ZTw9dDt2YXIgaT1lO3QmJihpKz0iLyIrdCx0aGlzLl92YWxpZGF0ZUlucHV0KCkpLHModGhpcy5jb3VudGVyRWwpLmh0bWwoaSl9fSx7a2V5OiJfdmFsaWRhdGVJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzVmFsaWRMZW5ndGgmJnRoaXMuaXNJbnZhbGlkPyh0aGlzLmlzSW52YWxpZD0hMSx0aGlzLiRlbC5yZW1vdmVDbGFzcygiaW52YWxpZCIpKTp0aGlzLmlzVmFsaWRMZW5ndGh8fHRoaXMuaXNJbnZhbGlkfHwodGhpcy5pc0ludmFsaWQ9ITAsdGhpcy4kZWwucmVtb3ZlQ2xhc3MoInZhbGlkIiksdGhpcy4kZWwuYWRkQ2xhc3MoImludmFsaWQiKSl9fV0sW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9nZXQobi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihuKSwiaW5pdCIsdGhpcykuY2FsbCh0aGlzLHRoaXMsdCxlKX19LHtrZXk6ImdldEluc3RhbmNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4odC5qcXVlcnk/dFswXTp0KS5NX0NoYXJhY3RlckNvdW50ZXJ9fSx7a2V5OiJkZWZhdWx0cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGV9fV0pLG59KCk7TS5DaGFyYWN0ZXJDb3VudGVyPXQsTS5qUXVlcnlMb2FkZWQmJk0uaW5pdGlhbGl6ZUpxdWVyeVdyYXBwZXIodCwiY2hhcmFjdGVyQ291bnRlciIsIk1fQ2hhcmFjdGVyQ291bnRlciIpfShjYXNoKSxmdW5jdGlvbihiKXsidXNlIHN0cmljdCI7dmFyIGU9e2R1cmF0aW9uOjIwMCxkaXN0Oi0xMDAsc2hpZnQ6MCxwYWRkaW5nOjAsbnVtVmlzaWJsZTo1LGZ1bGxXaWR0aDohMSxpbmRpY2F0b3JzOiExLG5vV3JhcDohMSxvbkN5Y2xlVG86bnVsbH0sdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBpKHQsZSl7X2NsYXNzQ2FsbENoZWNrKHRoaXMsaSk7dmFyIG49X3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywoaS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihpKSkuY2FsbCh0aGlzLGksdCxlKSk7cmV0dXJuKG4uZWwuTV9DYXJvdXNlbD1uKS5vcHRpb25zPWIuZXh0ZW5kKHt9LGkuZGVmYXVsdHMsZSksbi5oYXNNdWx0aXBsZVNsaWRlcz0xPG4uJGVsLmZpbmQoIi5jYXJvdXNlbC1pdGVtIikubGVuZ3RoLG4uc2hvd0luZGljYXRvcnM9bi5vcHRpb25zLmluZGljYXRvcnMmJm4uaGFzTXVsdGlwbGVTbGlkZXMsbi5ub1dyYXA9bi5vcHRpb25zLm5vV3JhcHx8IW4uaGFzTXVsdGlwbGVTbGlkZXMsbi5wcmVzc2VkPSExLG4uZHJhZ2dlZD0hMSxuLm9mZnNldD1uLnRhcmdldD0wLG4uaW1hZ2VzPVtdLG4uaXRlbVdpZHRoPW4uJGVsLmZpbmQoIi5jYXJvdXNlbC1pdGVtIikuZmlyc3QoKS5pbm5lcldpZHRoKCksbi5pdGVtSGVpZ2h0PW4uJGVsLmZpbmQoIi5jYXJvdXNlbC1pdGVtIikuZmlyc3QoKS5pbm5lckhlaWdodCgpLG4uZGltPTIqbi5pdGVtV2lkdGgrbi5vcHRpb25zLnBhZGRpbmd8fDEsbi5fYXV0b1Njcm9sbEJvdW5kPW4uX2F1dG9TY3JvbGwuYmluZChuKSxuLl90cmFja0JvdW5kPW4uX3RyYWNrLmJpbmQobiksbi5vcHRpb25zLmZ1bGxXaWR0aCYmKG4ub3B0aW9ucy5kaXN0PTAsbi5fc2V0Q2Fyb3VzZWxIZWlnaHQoKSxuLnNob3dJbmRpY2F0b3JzJiZuLiRlbC5maW5kKCIuY2Fyb3VzZWwtZml4ZWQtaXRlbSIpLmFkZENsYXNzKCJ3aXRoLWluZGljYXRvcnMiKSksbi4kaW5kaWNhdG9ycz1iKCc8dWwgY2xhc3M9ImluZGljYXRvcnMiPjwvdWw+Jyksbi4kZWwuZmluZCgiLmNhcm91c2VsLWl0ZW0iKS5lYWNoKGZ1bmN0aW9uKHQsZSl7aWYobi5pbWFnZXMucHVzaCh0KSxuLnNob3dJbmRpY2F0b3JzKXt2YXIgaT1iKCc8bGkgY2xhc3M9ImluZGljYXRvci1pdGVtIj48L2xpPicpOzA9PT1lJiZpWzBdLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLG4uJGluZGljYXRvcnMuYXBwZW5kKGkpfX0pLG4uc2hvd0luZGljYXRvcnMmJm4uJGVsLmFwcGVuZChuLiRpbmRpY2F0b3JzKSxuLmNvdW50PW4uaW1hZ2VzLmxlbmd0aCxuLm9wdGlvbnMubnVtVmlzaWJsZT1NYXRoLm1pbihuLmNvdW50LG4ub3B0aW9ucy5udW1WaXNpYmxlKSxuLnhmb3JtPSJ0cmFuc2Zvcm0iLFsid2Via2l0IiwiTW96IiwiTyIsIm1zIl0uZXZlcnkoZnVuY3Rpb24odCl7dmFyIGU9dCsiVHJhbnNmb3JtIjtyZXR1cm4gdm9pZCAwPT09ZG9jdW1lbnQuYm9keS5zdHlsZVtlXXx8KG4ueGZvcm09ZSwhMSl9KSxuLl9zZXR1cEV2ZW50SGFuZGxlcnMoKSxuLl9zY3JvbGwobi5vZmZzZXQpLG59cmV0dXJuIF9pbmhlcml0cyhpLENvbXBvbmVudCksX2NyZWF0ZUNsYXNzKGksW3trZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fcmVtb3ZlRXZlbnRIYW5kbGVycygpLHRoaXMuZWwuTV9DYXJvdXNlbD12b2lkIDB9fSx7a2V5OiJfc2V0dXBFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBpPXRoaXM7dGhpcy5faGFuZGxlQ2Fyb3VzZWxUYXBCb3VuZD10aGlzLl9oYW5kbGVDYXJvdXNlbFRhcC5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZUNhcm91c2VsRHJhZ0JvdW5kPXRoaXMuX2hhbmRsZUNhcm91c2VsRHJhZy5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZUNhcm91c2VsUmVsZWFzZUJvdW5kPXRoaXMuX2hhbmRsZUNhcm91c2VsUmVsZWFzZS5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZUNhcm91c2VsQ2xpY2tCb3VuZD10aGlzLl9oYW5kbGVDYXJvdXNlbENsaWNrLmJpbmQodGhpcyksdm9pZCAwIT09d2luZG93Lm9udG91Y2hzdGFydCYmKHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5faGFuZGxlQ2Fyb3VzZWxUYXBCb3VuZCksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX2hhbmRsZUNhcm91c2VsRHJhZ0JvdW5kKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl9oYW5kbGVDYXJvdXNlbFJlbGVhc2VCb3VuZCkpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLl9oYW5kbGVDYXJvdXNlbFRhcEJvdW5kKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5faGFuZGxlQ2Fyb3VzZWxEcmFnQm91bmQpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5faGFuZGxlQ2Fyb3VzZWxSZWxlYXNlQm91bmQpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdGhpcy5faGFuZGxlQ2Fyb3VzZWxSZWxlYXNlQm91bmQpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZUNhcm91c2VsQ2xpY2tCb3VuZCksdGhpcy5zaG93SW5kaWNhdG9ycyYmdGhpcy4kaW5kaWNhdG9ycyYmKHRoaXMuX2hhbmRsZUluZGljYXRvckNsaWNrQm91bmQ9dGhpcy5faGFuZGxlSW5kaWNhdG9yQ2xpY2suYmluZCh0aGlzKSx0aGlzLiRpbmRpY2F0b3JzLmZpbmQoIi5pbmRpY2F0b3ItaXRlbSIpLmVhY2goZnVuY3Rpb24odCxlKXt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixpLl9oYW5kbGVJbmRpY2F0b3JDbGlja0JvdW5kKX0pKTt2YXIgdD1NLnRocm90dGxlKHRoaXMuX2hhbmRsZVJlc2l6ZSwyMDApO3RoaXMuX2hhbmRsZVRocm90dGxlZFJlc2l6ZUJvdW5kPXQuYmluZCh0aGlzKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9oYW5kbGVUaHJvdHRsZWRSZXNpemVCb3VuZCl9fSx7a2V5OiJfcmVtb3ZlRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaT10aGlzO3ZvaWQgMCE9PXdpbmRvdy5vbnRvdWNoc3RhcnQmJih0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX2hhbmRsZUNhcm91c2VsVGFwQm91bmQpLHRoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLl9oYW5kbGVDYXJvdXNlbERyYWdCb3VuZCksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5faGFuZGxlQ2Fyb3VzZWxSZWxlYXNlQm91bmQpKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5faGFuZGxlQ2Fyb3VzZWxUYXBCb3VuZCksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX2hhbmRsZUNhcm91c2VsRHJhZ0JvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuX2hhbmRsZUNhcm91c2VsUmVsZWFzZUJvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHRoaXMuX2hhbmRsZUNhcm91c2VsUmVsZWFzZUJvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVDYXJvdXNlbENsaWNrQm91bmQpLHRoaXMuc2hvd0luZGljYXRvcnMmJnRoaXMuJGluZGljYXRvcnMmJnRoaXMuJGluZGljYXRvcnMuZmluZCgiLmluZGljYXRvci1pdGVtIikuZWFjaChmdW5jdGlvbih0LGUpe3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLGkuX2hhbmRsZUluZGljYXRvckNsaWNrQm91bmQpfSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5faGFuZGxlVGhyb3R0bGVkUmVzaXplQm91bmQpfX0se2tleToiX2hhbmRsZUNhcm91c2VsVGFwIix2YWx1ZTpmdW5jdGlvbih0KXsibW91c2Vkb3duIj09PXQudHlwZSYmYih0LnRhcmdldCkuaXMoImltZyIpJiZ0LnByZXZlbnREZWZhdWx0KCksdGhpcy5wcmVzc2VkPSEwLHRoaXMuZHJhZ2dlZD0hMSx0aGlzLnZlcnRpY2FsRHJhZ2dlZD0hMSx0aGlzLnJlZmVyZW5jZT10aGlzLl94cG9zKHQpLHRoaXMucmVmZXJlbmNlWT10aGlzLl95cG9zKHQpLHRoaXMudmVsb2NpdHk9dGhpcy5hbXBsaXR1ZGU9MCx0aGlzLmZyYW1lPXRoaXMub2Zmc2V0LHRoaXMudGltZXN0YW1wPURhdGUubm93KCksY2xlYXJJbnRlcnZhbCh0aGlzLnRpY2tlciksdGhpcy50aWNrZXI9c2V0SW50ZXJ2YWwodGhpcy5fdHJhY2tCb3VuZCwxMDApfX0se2tleToiX2hhbmRsZUNhcm91c2VsRHJhZyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dm9pZCAwLGk9dm9pZCAwLG49dm9pZCAwO2lmKHRoaXMucHJlc3NlZClpZihlPXRoaXMuX3hwb3ModCksaT10aGlzLl95cG9zKHQpLG49dGhpcy5yZWZlcmVuY2UtZSxNYXRoLmFicyh0aGlzLnJlZmVyZW5jZVktaSk8MzAmJiF0aGlzLnZlcnRpY2FsRHJhZ2dlZCkoMjxufHxuPC0yKSYmKHRoaXMuZHJhZ2dlZD0hMCx0aGlzLnJlZmVyZW5jZT1lLHRoaXMuX3Njcm9sbCh0aGlzLm9mZnNldCtuKSk7ZWxzZXtpZih0aGlzLmRyYWdnZWQpcmV0dXJuIHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLCExO3RoaXMudmVydGljYWxEcmFnZ2VkPSEwfWlmKHRoaXMuZHJhZ2dlZClyZXR1cm4gdC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksITF9fSx7a2V5OiJfaGFuZGxlQ2Fyb3VzZWxSZWxlYXNlIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLnByZXNzZWQpcmV0dXJuIHRoaXMucHJlc3NlZD0hMSxjbGVhckludGVydmFsKHRoaXMudGlja2VyKSx0aGlzLnRhcmdldD10aGlzLm9mZnNldCwoMTA8dGhpcy52ZWxvY2l0eXx8dGhpcy52ZWxvY2l0eTwtMTApJiYodGhpcy5hbXBsaXR1ZGU9LjkqdGhpcy52ZWxvY2l0eSx0aGlzLnRhcmdldD10aGlzLm9mZnNldCt0aGlzLmFtcGxpdHVkZSksdGhpcy50YXJnZXQ9TWF0aC5yb3VuZCh0aGlzLnRhcmdldC90aGlzLmRpbSkqdGhpcy5kaW0sdGhpcy5ub1dyYXAmJih0aGlzLnRhcmdldD49dGhpcy5kaW0qKHRoaXMuY291bnQtMSk/dGhpcy50YXJnZXQ9dGhpcy5kaW0qKHRoaXMuY291bnQtMSk6dGhpcy50YXJnZXQ8MCYmKHRoaXMudGFyZ2V0PTApKSx0aGlzLmFtcGxpdHVkZT10aGlzLnRhcmdldC10aGlzLm9mZnNldCx0aGlzLnRpbWVzdGFtcD1EYXRlLm5vdygpLHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLl9hdXRvU2Nyb2xsQm91bmQpLHRoaXMuZHJhZ2dlZCYmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpKSwhMX19LHtrZXk6Il9oYW5kbGVDYXJvdXNlbENsaWNrIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLmRyYWdnZWQpcmV0dXJuIHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLCExO2lmKCF0aGlzLm9wdGlvbnMuZnVsbFdpZHRoKXt2YXIgZT1iKHQudGFyZ2V0KS5jbG9zZXN0KCIuY2Fyb3VzZWwtaXRlbSIpLmluZGV4KCk7MCE9PXRoaXMuX3dyYXAodGhpcy5jZW50ZXIpLWUmJih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSksdGhpcy5fY3ljbGVUbyhlKX19fSx7a2V5OiJfaGFuZGxlSW5kaWNhdG9yQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGU9Yih0LnRhcmdldCkuY2xvc2VzdCgiLmluZGljYXRvci1pdGVtIik7ZS5sZW5ndGgmJnRoaXMuX2N5Y2xlVG8oZS5pbmRleCgpKX19LHtrZXk6Il9oYW5kbGVSZXNpemUiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMub3B0aW9ucy5mdWxsV2lkdGg/KHRoaXMuaXRlbVdpZHRoPXRoaXMuJGVsLmZpbmQoIi5jYXJvdXNlbC1pdGVtIikuZmlyc3QoKS5pbm5lcldpZHRoKCksdGhpcy5pbWFnZUhlaWdodD10aGlzLiRlbC5maW5kKCIuY2Fyb3VzZWwtaXRlbS5hY3RpdmUiKS5oZWlnaHQoKSx0aGlzLmRpbT0yKnRoaXMuaXRlbVdpZHRoK3RoaXMub3B0aW9ucy5wYWRkaW5nLHRoaXMub2Zmc2V0PTIqdGhpcy5jZW50ZXIqdGhpcy5pdGVtV2lkdGgsdGhpcy50YXJnZXQ9dGhpcy5vZmZzZXQsdGhpcy5fc2V0Q2Fyb3VzZWxIZWlnaHQoITApKTp0aGlzLl9zY3JvbGwoKX19LHtrZXk6Il9zZXRDYXJvdXNlbEhlaWdodCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcyxlPXRoaXMuJGVsLmZpbmQoIi5jYXJvdXNlbC1pdGVtLmFjdGl2ZSIpLmxlbmd0aD90aGlzLiRlbC5maW5kKCIuY2Fyb3VzZWwtaXRlbS5hY3RpdmUiKS5maXJzdCgpOnRoaXMuJGVsLmZpbmQoIi5jYXJvdXNlbC1pdGVtIikuZmlyc3QoKSxuPWUuZmluZCgiaW1nIikuZmlyc3QoKTtpZihuLmxlbmd0aClpZihuWzBdLmNvbXBsZXRlKXt2YXIgcz1uLmhlaWdodCgpO2lmKDA8cyl0aGlzLiRlbC5jc3MoImhlaWdodCIscysicHgiKTtlbHNle3ZhciBvPW5bMF0ubmF0dXJhbFdpZHRoLGE9blswXS5uYXR1cmFsSGVpZ2h0LHI9dGhpcy4kZWwud2lkdGgoKS9vKmE7dGhpcy4kZWwuY3NzKCJoZWlnaHQiLHIrInB4Iil9fWVsc2Ugbi5vbmUoImxvYWQiLGZ1bmN0aW9uKHQsZSl7aS4kZWwuY3NzKCJoZWlnaHQiLHQub2Zmc2V0SGVpZ2h0KyJweCIpfSk7ZWxzZSBpZighdCl7dmFyIGw9ZS5oZWlnaHQoKTt0aGlzLiRlbC5jc3MoImhlaWdodCIsbCsicHgiKX19fSx7a2V5OiJfeHBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQudGFyZ2V0VG91Y2hlcyYmMTw9dC50YXJnZXRUb3VjaGVzLmxlbmd0aD90LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WDp0LmNsaWVudFh9fSx7a2V5OiJfeXBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQudGFyZ2V0VG91Y2hlcyYmMTw9dC50YXJnZXRUb3VjaGVzLmxlbmd0aD90LnRhcmdldFRvdWNoZXNbMF0uY2xpZW50WTp0LmNsaWVudFl9fSx7a2V5OiJfd3JhcCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PXRoaXMuY291bnQ/dCV0aGlzLmNvdW50OnQ8MD90aGlzLl93cmFwKHRoaXMuY291bnQrdCV0aGlzLmNvdW50KTp0fX0se2tleToiX3RyYWNrIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuO2U9KHQ9RGF0ZS5ub3coKSktdGhpcy50aW1lc3RhbXAsdGhpcy50aW1lc3RhbXA9dCxpPXRoaXMub2Zmc2V0LXRoaXMuZnJhbWUsdGhpcy5mcmFtZT10aGlzLm9mZnNldCxuPTFlMyppLygxK2UpLHRoaXMudmVsb2NpdHk9LjgqbisuMip0aGlzLnZlbG9jaXR5fX0se2tleToiX2F1dG9TY3JvbGwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dm9pZCAwLGU9dm9pZCAwO3RoaXMuYW1wbGl0dWRlJiYodD1EYXRlLm5vdygpLXRoaXMudGltZXN0YW1wLDI8KGU9dGhpcy5hbXBsaXR1ZGUqTWF0aC5leHAoLXQvdGhpcy5vcHRpb25zLmR1cmF0aW9uKSl8fGU8LTI/KHRoaXMuX3Njcm9sbCh0aGlzLnRhcmdldC1lKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5fYXV0b1Njcm9sbEJvdW5kKSk6dGhpcy5fc2Nyb2xsKHRoaXMudGFyZ2V0KSl9fSx7a2V5OiJfc2Nyb2xsIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJGVsLmhhc0NsYXNzKCJzY3JvbGxpbmciKXx8dGhpcy5lbC5jbGFzc0xpc3QuYWRkKCJzY3JvbGxpbmciKSxudWxsIT10aGlzLnNjcm9sbGluZ1RpbWVvdXQmJndpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5zY3JvbGxpbmdUaW1lb3V0KSx0aGlzLnNjcm9sbGluZ1RpbWVvdXQ9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLiRlbC5yZW1vdmVDbGFzcygic2Nyb2xsaW5nIil9LHRoaXMub3B0aW9ucy5kdXJhdGlvbik7dmFyIGksbixzLG8sYT12b2lkIDAscj12b2lkIDAsbD12b2lkIDAsaD12b2lkIDAsZD12b2lkIDAsdT12b2lkIDAsYz10aGlzLmNlbnRlcixwPTEvdGhpcy5vcHRpb25zLm51bVZpc2libGU7aWYodGhpcy5vZmZzZXQ9Im51bWJlciI9PXR5cGVvZiB0P3Q6dGhpcy5vZmZzZXQsdGhpcy5jZW50ZXI9TWF0aC5mbG9vcigodGhpcy5vZmZzZXQrdGhpcy5kaW0vMikvdGhpcy5kaW0pLG89LShzPShuPXRoaXMub2Zmc2V0LXRoaXMuY2VudGVyKnRoaXMuZGltKTwwPzE6LTEpKm4qMi90aGlzLmRpbSxpPXRoaXMuY291bnQ+PjEsdGhpcy5vcHRpb25zLmZ1bGxXaWR0aD8obD0idHJhbnNsYXRlWCgwKSIsdT0xKToobD0idHJhbnNsYXRlWCgiKyh0aGlzLmVsLmNsaWVudFdpZHRoLXRoaXMuaXRlbVdpZHRoKS8yKyJweCkgIixsKz0idHJhbnNsYXRlWSgiKyh0aGlzLmVsLmNsaWVudEhlaWdodC10aGlzLml0ZW1IZWlnaHQpLzIrInB4KSIsdT0xLXAqbyksdGhpcy5zaG93SW5kaWNhdG9ycyl7dmFyIHY9dGhpcy5jZW50ZXIldGhpcy5jb3VudCxmPXRoaXMuJGluZGljYXRvcnMuZmluZCgiLmluZGljYXRvci1pdGVtLmFjdGl2ZSIpO2YuaW5kZXgoKSE9PXYmJihmLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSx0aGlzLiRpbmRpY2F0b3JzLmZpbmQoIi5pbmRpY2F0b3ItaXRlbSIpLmVxKHYpWzBdLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpKX1pZighdGhpcy5ub1dyYXB8fDA8PXRoaXMuY2VudGVyJiZ0aGlzLmNlbnRlcjx0aGlzLmNvdW50KXtyPXRoaXMuaW1hZ2VzW3RoaXMuX3dyYXAodGhpcy5jZW50ZXIpXSxiKHIpLmhhc0NsYXNzKCJhY3RpdmUiKXx8KHRoaXMuJGVsLmZpbmQoIi5jYXJvdXNlbC1pdGVtIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLHIuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIikpO3ZhciBtPWwrIiB0cmFuc2xhdGVYKCIrLW4vMisicHgpIHRyYW5zbGF0ZVgoIitzKnRoaXMub3B0aW9ucy5zaGlmdCpvKmErInB4KSB0cmFuc2xhdGVaKCIrdGhpcy5vcHRpb25zLmRpc3QqbysicHgpIjt0aGlzLl91cGRhdGVJdGVtU3R5bGUocix1LDAsbSl9Zm9yKGE9MTthPD1pOysrYSl7aWYodGhpcy5vcHRpb25zLmZ1bGxXaWR0aD8oaD10aGlzLm9wdGlvbnMuZGlzdCxkPWE9PT1pJiZuPDA/MS1vOjEpOihoPXRoaXMub3B0aW9ucy5kaXN0KigyKmErbypzKSxkPTEtcCooMiphK28qcykpLCF0aGlzLm5vV3JhcHx8dGhpcy5jZW50ZXIrYTx0aGlzLmNvdW50KXtyPXRoaXMuaW1hZ2VzW3RoaXMuX3dyYXAodGhpcy5jZW50ZXIrYSldO3ZhciBnPWwrIiB0cmFuc2xhdGVYKCIrKHRoaXMub3B0aW9ucy5zaGlmdCsodGhpcy5kaW0qYS1uKS8yKSsicHgpIHRyYW5zbGF0ZVooIitoKyJweCkiO3RoaXMuX3VwZGF0ZUl0ZW1TdHlsZShyLGQsLWEsZyl9aWYodGhpcy5vcHRpb25zLmZ1bGxXaWR0aD8oaD10aGlzLm9wdGlvbnMuZGlzdCxkPWE9PT1pJiYwPG4/MS1vOjEpOihoPXRoaXMub3B0aW9ucy5kaXN0KigyKmEtbypzKSxkPTEtcCooMiphLW8qcykpLCF0aGlzLm5vV3JhcHx8MDw9dGhpcy5jZW50ZXItYSl7cj10aGlzLmltYWdlc1t0aGlzLl93cmFwKHRoaXMuY2VudGVyLWEpXTt2YXIgXz1sKyIgdHJhbnNsYXRlWCgiKygtdGhpcy5vcHRpb25zLnNoaWZ0KygtdGhpcy5kaW0qYS1uKS8yKSsicHgpIHRyYW5zbGF0ZVooIitoKyJweCkiO3RoaXMuX3VwZGF0ZUl0ZW1TdHlsZShyLGQsLWEsXyl9fWlmKCF0aGlzLm5vV3JhcHx8MDw9dGhpcy5jZW50ZXImJnRoaXMuY2VudGVyPHRoaXMuY291bnQpe3I9dGhpcy5pbWFnZXNbdGhpcy5fd3JhcCh0aGlzLmNlbnRlcildO3ZhciB5PWwrIiB0cmFuc2xhdGVYKCIrLW4vMisicHgpIHRyYW5zbGF0ZVgoIitzKnRoaXMub3B0aW9ucy5zaGlmdCpvKyJweCkgdHJhbnNsYXRlWigiK3RoaXMub3B0aW9ucy5kaXN0Km8rInB4KSI7dGhpcy5fdXBkYXRlSXRlbVN0eWxlKHIsdSwwLHkpfXZhciBrPXRoaXMuJGVsLmZpbmQoIi5jYXJvdXNlbC1pdGVtIikuZXEodGhpcy5fd3JhcCh0aGlzLmNlbnRlcikpO2MhPT10aGlzLmNlbnRlciYmImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5vbkN5Y2xlVG8mJnRoaXMub3B0aW9ucy5vbkN5Y2xlVG8uY2FsbCh0aGlzLGtbMF0sdGhpcy5kcmFnZ2VkKSwiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vbmVUaW1lQ2FsbGJhY2smJih0aGlzLm9uZVRpbWVDYWxsYmFjay5jYWxsKHRoaXMsa1swXSx0aGlzLmRyYWdnZWQpLHRoaXMub25lVGltZUNhbGxiYWNrPW51bGwpfX0se2tleToiX3VwZGF0ZUl0ZW1TdHlsZSIsdmFsdWU6ZnVuY3Rpb24odCxlLGksbil7dC5zdHlsZVt0aGlzLnhmb3JtXT1uLHQuc3R5bGUuekluZGV4PWksdC5zdHlsZS5vcGFjaXR5PWUsdC5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxlIn19LHtrZXk6Il9jeWNsZVRvIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuY2VudGVyJXRoaXMuY291bnQtdDt0aGlzLm5vV3JhcHx8KGk8MD9NYXRoLmFicyhpK3RoaXMuY291bnQpPE1hdGguYWJzKGkpJiYoaSs9dGhpcy5jb3VudCk6MDxpJiZNYXRoLmFicyhpLXRoaXMuY291bnQpPGkmJihpLT10aGlzLmNvdW50KSksdGhpcy50YXJnZXQ9dGhpcy5kaW0qTWF0aC5yb3VuZCh0aGlzLm9mZnNldC90aGlzLmRpbSksaTwwP3RoaXMudGFyZ2V0Kz10aGlzLmRpbSpNYXRoLmFicyhpKTowPGkmJih0aGlzLnRhcmdldC09dGhpcy5kaW0qaSksImZ1bmN0aW9uIj09dHlwZW9mIGUmJih0aGlzLm9uZVRpbWVDYWxsYmFjaz1lKSx0aGlzLm9mZnNldCE9PXRoaXMudGFyZ2V0JiYodGhpcy5hbXBsaXR1ZGU9dGhpcy50YXJnZXQtdGhpcy5vZmZzZXQsdGhpcy50aW1lc3RhbXA9RGF0ZS5ub3coKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5fYXV0b1Njcm9sbEJvdW5kKSl9fSx7a2V5OiJuZXh0Iix2YWx1ZTpmdW5jdGlvbih0KXsodm9pZCAwPT09dHx8aXNOYU4odCkpJiYodD0xKTt2YXIgZT10aGlzLmNlbnRlcit0O2lmKGU+PXRoaXMuY291bnR8fGU8MCl7aWYodGhpcy5ub1dyYXApcmV0dXJuO2U9dGhpcy5fd3JhcChlKX10aGlzLl9jeWNsZVRvKGUpfX0se2tleToicHJldiIsdmFsdWU6ZnVuY3Rpb24odCl7KHZvaWQgMD09PXR8fGlzTmFOKHQpKSYmKHQ9MSk7dmFyIGU9dGhpcy5jZW50ZXItdDtpZihlPj10aGlzLmNvdW50fHxlPDApe2lmKHRoaXMubm9XcmFwKXJldHVybjtlPXRoaXMuX3dyYXAoZSl9dGhpcy5fY3ljbGVUbyhlKX19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZigodm9pZCAwPT09dHx8aXNOYU4odCkpJiYodD0wKSx0PnRoaXMuY291bnR8fHQ8MCl7aWYodGhpcy5ub1dyYXApcmV0dXJuO3Q9dGhpcy5fd3JhcCh0KX10aGlzLl9jeWNsZVRvKHQsZSl9fV0sW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9nZXQoaS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihpKSwiaW5pdCIsdGhpcykuY2FsbCh0aGlzLHRoaXMsdCxlKX19LHtrZXk6ImdldEluc3RhbmNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4odC5qcXVlcnk/dFswXTp0KS5NX0Nhcm91c2VsfX0se2tleToiZGVmYXVsdHMiLGdldDpmdW5jdGlvbigpe3JldHVybiBlfX1dKSxpfSgpO00uQ2Fyb3VzZWw9dCxNLmpRdWVyeUxvYWRlZCYmTS5pbml0aWFsaXplSnF1ZXJ5V3JhcHBlcih0LCJjYXJvdXNlbCIsIk1fQ2Fyb3VzZWwiKX0oY2FzaCksZnVuY3Rpb24oUyl7InVzZSBzdHJpY3QiO3ZhciBlPXtvbk9wZW46dm9pZCAwLG9uQ2xvc2U6dm9pZCAwfSx0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCxlKXtfY2xhc3NDYWxsQ2hlY2sodGhpcyxuKTt2YXIgaT1fcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLChuLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pKS5jYWxsKHRoaXMsbix0LGUpKTtyZXR1cm4oaS5lbC5NX1RhcFRhcmdldD1pKS5vcHRpb25zPVMuZXh0ZW5kKHt9LG4uZGVmYXVsdHMsZSksaS5pc09wZW49ITEsaS4kb3JpZ2luPVMoIiMiK2kuJGVsLmF0dHIoImRhdGEtdGFyZ2V0IikpLGkuX3NldHVwKCksaS5fY2FsY3VsYXRlUG9zaXRpb25pbmcoKSxpLl9zZXR1cEV2ZW50SGFuZGxlcnMoKSxpfXJldHVybiBfaW5oZXJpdHMobixDb21wb25lbnQpLF9jcmVhdGVDbGFzcyhuLFt7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3JlbW92ZUV2ZW50SGFuZGxlcnMoKSx0aGlzLmVsLlRhcFRhcmdldD12b2lkIDB9fSx7a2V5OiJfc2V0dXBFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2hhbmRsZURvY3VtZW50Q2xpY2tCb3VuZD10aGlzLl9oYW5kbGVEb2N1bWVudENsaWNrLmJpbmQodGhpcyksdGhpcy5faGFuZGxlVGFyZ2V0Q2xpY2tCb3VuZD10aGlzLl9oYW5kbGVUYXJnZXRDbGljay5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZU9yaWdpbkNsaWNrQm91bmQ9dGhpcy5faGFuZGxlT3JpZ2luQ2xpY2suYmluZCh0aGlzKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVUYXJnZXRDbGlja0JvdW5kKSx0aGlzLm9yaWdpbkVsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVPcmlnaW5DbGlja0JvdW5kKTt2YXIgdD1NLnRocm90dGxlKHRoaXMuX2hhbmRsZVJlc2l6ZSwyMDApO3RoaXMuX2hhbmRsZVRocm90dGxlZFJlc2l6ZUJvdW5kPXQuYmluZCh0aGlzKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9oYW5kbGVUaHJvdHRsZWRSZXNpemVCb3VuZCl9fSx7a2V5OiJfcmVtb3ZlRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVUYXJnZXRDbGlja0JvdW5kKSx0aGlzLm9yaWdpbkVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVPcmlnaW5DbGlja0JvdW5kKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9oYW5kbGVUaHJvdHRsZWRSZXNpemVCb3VuZCl9fSx7a2V5OiJfaGFuZGxlVGFyZ2V0Q2xpY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMub3BlbigpfX0se2tleToiX2hhbmRsZU9yaWdpbkNsaWNrIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmNsb3NlKCl9fSx7a2V5OiJfaGFuZGxlUmVzaXplIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLl9jYWxjdWxhdGVQb3NpdGlvbmluZygpfX0se2tleToiX2hhbmRsZURvY3VtZW50Q2xpY2siLHZhbHVlOmZ1bmN0aW9uKHQpe1ModC50YXJnZXQpLmNsb3Nlc3QoIi50YXAtdGFyZ2V0LXdyYXBwZXIiKS5sZW5ndGh8fCh0aGlzLmNsb3NlKCksdC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCkpfX0se2tleToiX3NldHVwIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMud3JhcHBlcj10aGlzLiRlbC5wYXJlbnQoKVswXSx0aGlzLndhdmVFbD1TKHRoaXMud3JhcHBlcikuZmluZCgiLnRhcC10YXJnZXQtd2F2ZSIpWzBdLHRoaXMub3JpZ2luRWw9Uyh0aGlzLndyYXBwZXIpLmZpbmQoIi50YXAtdGFyZ2V0LW9yaWdpbiIpWzBdLHRoaXMuY29udGVudEVsPXRoaXMuJGVsLmZpbmQoIi50YXAtdGFyZ2V0LWNvbnRlbnQiKVswXSxTKHRoaXMud3JhcHBlcikuaGFzQ2xhc3MoIi50YXAtdGFyZ2V0LXdyYXBwZXIiKXx8KHRoaXMud3JhcHBlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLndyYXBwZXIuY2xhc3NMaXN0LmFkZCgidGFwLXRhcmdldC13cmFwcGVyIiksdGhpcy4kZWwuYmVmb3JlKFModGhpcy53cmFwcGVyKSksdGhpcy53cmFwcGVyLmFwcGVuZCh0aGlzLmVsKSksdGhpcy5jb250ZW50RWx8fCh0aGlzLmNvbnRlbnRFbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLmNvbnRlbnRFbC5jbGFzc0xpc3QuYWRkKCJ0YXAtdGFyZ2V0LWNvbnRlbnQiKSx0aGlzLiRlbC5hcHBlbmQodGhpcy5jb250ZW50RWwpKSx0aGlzLndhdmVFbHx8KHRoaXMud2F2ZUVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMud2F2ZUVsLmNsYXNzTGlzdC5hZGQoInRhcC10YXJnZXQtd2F2ZSIpLHRoaXMub3JpZ2luRWx8fCh0aGlzLm9yaWdpbkVsPXRoaXMuJG9yaWdpbi5jbG9uZSghMCwhMCksdGhpcy5vcmlnaW5FbC5hZGRDbGFzcygidGFwLXRhcmdldC1vcmlnaW4iKSx0aGlzLm9yaWdpbkVsLnJlbW92ZUF0dHIoImlkIiksdGhpcy5vcmlnaW5FbC5yZW1vdmVBdHRyKCJzdHlsZSIpLHRoaXMub3JpZ2luRWw9dGhpcy5vcmlnaW5FbFswXSx0aGlzLndhdmVFbC5hcHBlbmQodGhpcy5vcmlnaW5FbCkpLHRoaXMud3JhcHBlci5hcHBlbmQodGhpcy53YXZlRWwpKX19LHtrZXk6Il9jYWxjdWxhdGVQb3NpdGlvbmluZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD0iZml4ZWQiPT09dGhpcy4kb3JpZ2luLmNzcygicG9zaXRpb24iKTtpZighdClmb3IodmFyIGU9dGhpcy4kb3JpZ2luLnBhcmVudHMoKSxpPTA7aTxlLmxlbmd0aCYmISh0PSJmaXhlZCI9PVMoZVtpXSkuY3NzKCJwb3NpdGlvbiIpKTtpKyspO3ZhciBuPXRoaXMuJG9yaWdpbi5vdXRlcldpZHRoKCkscz10aGlzLiRvcmlnaW4ub3V0ZXJIZWlnaHQoKSxvPXQ/dGhpcy4kb3JpZ2luLm9mZnNldCgpLnRvcC1NLmdldERvY3VtZW50U2Nyb2xsVG9wKCk6dGhpcy4kb3JpZ2luLm9mZnNldCgpLnRvcCxhPXQ/dGhpcy4kb3JpZ2luLm9mZnNldCgpLmxlZnQtTS5nZXREb2N1bWVudFNjcm9sbExlZnQoKTp0aGlzLiRvcmlnaW4ub2Zmc2V0KCkubGVmdCxyPXdpbmRvdy5pbm5lcldpZHRoLGw9d2luZG93LmlubmVySGVpZ2h0LGg9ci8yLGQ9bC8yLHU9YTw9aCxjPWg8YSxwPW88PWQsdj1kPG8sZj0uMjUqcjw9YSYmYTw9Ljc1KnIsbT10aGlzLiRlbC5vdXRlcldpZHRoKCksZz10aGlzLiRlbC5vdXRlckhlaWdodCgpLF89bytzLzItZy8yLHk9YStuLzItbS8yLGs9dD8iZml4ZWQiOiJhYnNvbHV0ZSIsYj1mP206bS8yK24sdz1nLzIsQz1wP2cvMjowLEU9dSYmIWY/bS8yLW46MCxPPW4seD12PyJib3R0b20iOiJ0b3AiLEw9MipuLFQ9TCwkPWcvMi1ULzIsQj1tLzItTC8yLEQ9e307RC50b3A9cD9fKyJweCI6IiIsRC5yaWdodD1jP3IteS1tKyJweCI6IiIsRC5ib3R0b209dj9sLV8tZysicHgiOiIiLEQubGVmdD11P3krInB4IjoiIixELnBvc2l0aW9uPWssUyh0aGlzLndyYXBwZXIpLmNzcyhEKSxTKHRoaXMuY29udGVudEVsKS5jc3Moe3dpZHRoOmIrInB4IixoZWlnaHQ6dysicHgiLHRvcDpDKyJweCIscmlnaHQ6IjBweCIsYm90dG9tOiIwcHgiLGxlZnQ6RSsicHgiLHBhZGRpbmc6TysicHgiLHZlcnRpY2FsQWxpZ246eH0pLFModGhpcy53YXZlRWwpLmNzcyh7dG9wOiQrInB4IixsZWZ0OkIrInB4Iix3aWR0aDpMKyJweCIsaGVpZ2h0OlQrInB4In0pfX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzT3Blbnx8KCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMub25PcGVuJiZ0aGlzLm9wdGlvbnMub25PcGVuLmNhbGwodGhpcyx0aGlzLiRvcmlnaW5bMF0pLHRoaXMuaXNPcGVuPSEwLHRoaXMud3JhcHBlci5jbGFzc0xpc3QuYWRkKCJvcGVuIiksZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5faGFuZGxlRG9jdW1lbnRDbGlja0JvdW5kLCEwKSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl9oYW5kbGVEb2N1bWVudENsaWNrQm91bmQpKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXNPcGVuJiYoImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5vbkNsb3NlJiZ0aGlzLm9wdGlvbnMub25DbG9zZS5jYWxsKHRoaXMsdGhpcy4kb3JpZ2luWzBdKSx0aGlzLmlzT3Blbj0hMSx0aGlzLndyYXBwZXIuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpLGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZURvY3VtZW50Q2xpY2tCb3VuZCwhMCksZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsdGhpcy5faGFuZGxlRG9jdW1lbnRDbGlja0JvdW5kKSl9fV0sW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9nZXQobi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihuKSwiaW5pdCIsdGhpcykuY2FsbCh0aGlzLHRoaXMsdCxlKX19LHtrZXk6ImdldEluc3RhbmNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4odC5qcXVlcnk/dFswXTp0KS5NX1RhcFRhcmdldH19LHtrZXk6ImRlZmF1bHRzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX19XSksbn0oKTtNLlRhcFRhcmdldD10LE0ualF1ZXJ5TG9hZGVkJiZNLmluaXRpYWxpemVKcXVlcnlXcmFwcGVyKHQsInRhcFRhcmdldCIsIk1fVGFwVGFyZ2V0Iil9KGNhc2gpLGZ1bmN0aW9uKGQpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT17Y2xhc3NlczoiIixkcm9wZG93bk9wdGlvbnM6e319LHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0LGUpe19jbGFzc0NhbGxDaGVjayh0aGlzLG4pO3ZhciBpPV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobikpLmNhbGwodGhpcyxuLHQsZSkpO3JldHVybiBpLiRlbC5oYXNDbGFzcygiYnJvd3Nlci1kZWZhdWx0Iik/X3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oaSk6KChpLmVsLk1fRm9ybVNlbGVjdD1pKS5vcHRpb25zPWQuZXh0ZW5kKHt9LG4uZGVmYXVsdHMsZSksaS5pc011bHRpcGxlPWkuJGVsLnByb3AoIm11bHRpcGxlIiksaS5lbC50YWJJbmRleD0tMSxpLl9rZXlzU2VsZWN0ZWQ9e30saS5fdmFsdWVEaWN0PXt9LGkuX3NldHVwRHJvcGRvd24oKSxpLl9zZXR1cEV2ZW50SGFuZGxlcnMoKSxpKX1yZXR1cm4gX2luaGVyaXRzKG4sQ29tcG9uZW50KSxfY3JlYXRlQ2xhc3Mobixbe2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVFdmVudEhhbmRsZXJzKCksdGhpcy5fcmVtb3ZlRHJvcGRvd24oKSx0aGlzLmVsLk1fRm9ybVNlbGVjdD12b2lkIDB9fSx7a2V5OiJfc2V0dXBFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5faGFuZGxlU2VsZWN0Q2hhbmdlQm91bmQ9dGhpcy5faGFuZGxlU2VsZWN0Q2hhbmdlLmJpbmQodGhpcyksdGhpcy5faGFuZGxlT3B0aW9uQ2xpY2tCb3VuZD10aGlzLl9oYW5kbGVPcHRpb25DbGljay5iaW5kKHRoaXMpLHRoaXMuX2hhbmRsZUlucHV0Q2xpY2tCb3VuZD10aGlzLl9oYW5kbGVJbnB1dENsaWNrLmJpbmQodGhpcyksZCh0aGlzLmRyb3Bkb3duT3B0aW9ucykuZmluZCgibGk6bm90KC5vcHRncm91cCkiKS5lYWNoKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGUuX2hhbmRsZU9wdGlvbkNsaWNrQm91bmQpfSksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMuX2hhbmRsZVNlbGVjdENoYW5nZUJvdW5kKSx0aGlzLmlucHV0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0aGlzLl9oYW5kbGVJbnB1dENsaWNrQm91bmQpfX0se2tleToiX3JlbW92ZUV2ZW50SGFuZGxlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztkKHRoaXMuZHJvcGRvd25PcHRpb25zKS5maW5kKCJsaTpub3QoLm9wdGdyb3VwKSIpLmVhY2goZnVuY3Rpb24odCl7dC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsZS5faGFuZGxlT3B0aW9uQ2xpY2tCb3VuZCl9KSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNoYW5nZSIsdGhpcy5faGFuZGxlU2VsZWN0Q2hhbmdlQm91bmQpLHRoaXMuaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX2hhbmRsZUlucHV0Q2xpY2tCb3VuZCl9fSx7a2V5OiJfaGFuZGxlU2VsZWN0Q2hhbmdlIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLl9zZXRWYWx1ZVRvSW5wdXQoKX19LHtrZXk6Il9oYW5kbGVPcHRpb25DbGljayIsdmFsdWU6ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBlPWQodC50YXJnZXQpLmNsb3Nlc3QoImxpIilbMF0saT1lLmlkO2lmKCFkKGUpLmhhc0NsYXNzKCJkaXNhYmxlZCIpJiYhZChlKS5oYXNDbGFzcygib3B0Z3JvdXAiKSYmaS5sZW5ndGgpe3ZhciBuPSEwO2lmKHRoaXMuaXNNdWx0aXBsZSl7dmFyIHM9ZCh0aGlzLmRyb3Bkb3duT3B0aW9ucykuZmluZCgibGkuZGlzYWJsZWQuc2VsZWN0ZWQiKTtzLmxlbmd0aCYmKHMucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIikscy5maW5kKCdpbnB1dFt0eXBlPSJjaGVja2JveCJdJykucHJvcCgiY2hlY2tlZCIsITEpLHRoaXMuX3RvZ2dsZUVudHJ5RnJvbUFycmF5KHNbMF0uaWQpKSxuPXRoaXMuX3RvZ2dsZUVudHJ5RnJvbUFycmF5KGkpfWVsc2UgZCh0aGlzLmRyb3Bkb3duT3B0aW9ucykuZmluZCgibGkiKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKSxkKGUpLnRvZ2dsZUNsYXNzKCJzZWxlY3RlZCIsbik7ZCh0aGlzLl92YWx1ZURpY3RbaV0uZWwpLnByb3AoInNlbGVjdGVkIikhPT1uJiYoZCh0aGlzLl92YWx1ZURpY3RbaV0uZWwpLnByb3AoInNlbGVjdGVkIixuKSx0aGlzLiRlbC50cmlnZ2VyKCJjaGFuZ2UiKSl9dC5zdG9wUHJvcGFnYXRpb24oKX19LHtrZXk6Il9oYW5kbGVJbnB1dENsaWNrIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZHJvcGRvd24mJnRoaXMuZHJvcGRvd24uaXNPcGVuJiYodGhpcy5fc2V0VmFsdWVUb0lucHV0KCksdGhpcy5fc2V0U2VsZWN0ZWRTdGF0ZXMoKSl9fSx7a2V5OiJfc2V0dXBEcm9wZG93biIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgbj10aGlzO3RoaXMud3JhcHBlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxkKHRoaXMud3JhcHBlcikuYWRkQ2xhc3MoInNlbGVjdC13cmFwcGVyICIrdGhpcy5vcHRpb25zLmNsYXNzZXMpLHRoaXMuJGVsLmJlZm9yZShkKHRoaXMud3JhcHBlcikpLHRoaXMud3JhcHBlci5hcHBlbmRDaGlsZCh0aGlzLmVsKSx0aGlzLmVsLmRpc2FibGVkJiZ0aGlzLndyYXBwZXIuY2xhc3NMaXN0LmFkZCgiZGlzYWJsZWQiKSx0aGlzLiRzZWxlY3RPcHRpb25zPXRoaXMuJGVsLmNoaWxkcmVuKCJvcHRpb24sIG9wdGdyb3VwIiksdGhpcy5kcm9wZG93bk9wdGlvbnM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidWwiKSx0aGlzLmRyb3Bkb3duT3B0aW9ucy5pZD0ic2VsZWN0LW9wdGlvbnMtIitNLmd1aWQoKSxkKHRoaXMuZHJvcGRvd25PcHRpb25zKS5hZGRDbGFzcygiZHJvcGRvd24tY29udGVudCBzZWxlY3QtZHJvcGRvd24gIisodGhpcy5pc011bHRpcGxlPyJtdWx0aXBsZS1zZWxlY3QtZHJvcGRvd24iOiIiKSksdGhpcy4kc2VsZWN0T3B0aW9ucy5sZW5ndGgmJnRoaXMuJHNlbGVjdE9wdGlvbnMuZWFjaChmdW5jdGlvbih0KXtpZihkKHQpLmlzKCJvcHRpb24iKSl7dmFyIGU9dm9pZCAwO2U9bi5pc011bHRpcGxlP24uX2FwcGVuZE9wdGlvbldpdGhJY29uKG4uJGVsLHQsIm11bHRpcGxlIik6bi5fYXBwZW5kT3B0aW9uV2l0aEljb24obi4kZWwsdCksbi5fYWRkT3B0aW9uVG9WYWx1ZURpY3QodCxlKX1lbHNlIGlmKGQodCkuaXMoIm9wdGdyb3VwIikpe3ZhciBpPWQodCkuY2hpbGRyZW4oIm9wdGlvbiIpO2Qobi5kcm9wZG93bk9wdGlvbnMpLmFwcGVuZChkKCc8bGkgY2xhc3M9Im9wdGdyb3VwIj48c3Bhbj4nK3QuZ2V0QXR0cmlidXRlKCJsYWJlbCIpKyI8L3NwYW4+PC9saT4iKVswXSksaS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPW4uX2FwcGVuZE9wdGlvbldpdGhJY29uKG4uJGVsLHQsIm9wdGdyb3VwLW9wdGlvbiIpO24uX2FkZE9wdGlvblRvVmFsdWVEaWN0KHQsZSl9KX19KSx0aGlzLiRlbC5hZnRlcih0aGlzLmRyb3Bkb3duT3B0aW9ucyksdGhpcy5pbnB1dD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLGQodGhpcy5pbnB1dCkuYWRkQ2xhc3MoInNlbGVjdC1kcm9wZG93biBkcm9wZG93bi10cmlnZ2VyIiksdGhpcy5pbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0IiksdGhpcy5pbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwidHJ1ZSIpLHRoaXMuaW5wdXQuc2V0QXR0cmlidXRlKCJkYXRhLXRhcmdldCIsdGhpcy5kcm9wZG93bk9wdGlvbnMuaWQpLHRoaXMuZWwuZGlzYWJsZWQmJmQodGhpcy5pbnB1dCkucHJvcCgiZGlzYWJsZWQiLCJ0cnVlIiksdGhpcy4kZWwuYmVmb3JlKHRoaXMuaW5wdXQpLHRoaXMuX3NldFZhbHVlVG9JbnB1dCgpO3ZhciB0PWQoJzxzdmcgY2xhc3M9ImNhcmV0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNyAxMGw1IDUgNS01eiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4nKTtpZih0aGlzLiRlbC5iZWZvcmUodFswXSksIXRoaXMuZWwuZGlzYWJsZWQpe3ZhciBlPWQuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucy5kcm9wZG93bk9wdGlvbnMpO2Uub25PcGVuRW5kPWZ1bmN0aW9uKHQpe3ZhciBlPWQobi5kcm9wZG93bk9wdGlvbnMpLmZpbmQoIi5zZWxlY3RlZCIpLmZpcnN0KCk7aWYoZS5sZW5ndGgmJihNLmtleURvd249ITAsbi5kcm9wZG93bi5mb2N1c2VkSW5kZXg9ZS5pbmRleCgpLG4uZHJvcGRvd24uX2ZvY3VzRm9jdXNlZEl0ZW0oKSxNLmtleURvd249ITEsbi5kcm9wZG93bi5pc1Njcm9sbGFibGUpKXt2YXIgaT1lWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcC1uLmRyb3Bkb3duT3B0aW9ucy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7aS09bi5kcm9wZG93bk9wdGlvbnMuY2xpZW50SGVpZ2h0LzIsbi5kcm9wZG93bk9wdGlvbnMuc2Nyb2xsVG9wPWl9fSx0aGlzLmlzTXVsdGlwbGUmJihlLmNsb3NlT25DbGljaz0hMSksdGhpcy5kcm9wZG93bj1NLkRyb3Bkb3duLmluaXQodGhpcy5pbnB1dCxlKX10aGlzLl9zZXRTZWxlY3RlZFN0YXRlcygpfX0se2tleToiX2FkZE9wdGlvblRvVmFsdWVEaWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPU9iamVjdC5rZXlzKHRoaXMuX3ZhbHVlRGljdCkubGVuZ3RoLG49dGhpcy5kcm9wZG93bk9wdGlvbnMuaWQraSxzPXt9O2UuaWQ9bixzLmVsPXQscy5vcHRpb25FbD1lLHRoaXMuX3ZhbHVlRGljdFtuXT1zfX0se2tleToiX3JlbW92ZURyb3Bkb3duIix2YWx1ZTpmdW5jdGlvbigpe2QodGhpcy53cmFwcGVyKS5maW5kKCIuY2FyZXQiKS5yZW1vdmUoKSxkKHRoaXMuaW5wdXQpLnJlbW92ZSgpLGQodGhpcy5kcm9wZG93bk9wdGlvbnMpLnJlbW92ZSgpLGQodGhpcy53cmFwcGVyKS5iZWZvcmUodGhpcy4kZWwpLGQodGhpcy53cmFwcGVyKS5yZW1vdmUoKX19LHtrZXk6Il9hcHBlbmRPcHRpb25XaXRoSWNvbiIsdmFsdWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBuPWUuZGlzYWJsZWQ/ImRpc2FibGVkICI6IiIscz0ib3B0Z3JvdXAtb3B0aW9uIj09PWk/Im9wdGdyb3VwLW9wdGlvbiAiOiIiLG89dGhpcy5pc011bHRpcGxlPyc8bGFiZWw+PGlucHV0IHR5cGU9ImNoZWNrYm94IicrbisnIi8+PHNwYW4+JytlLmlubmVySFRNTCsiPC9zcGFuPjwvbGFiZWw+IjplLmlubmVySFRNTCxhPWQoIjxsaT48L2xpPiIpLHI9ZCgiPHNwYW4+PC9zcGFuPiIpO3IuaHRtbChvKSxhLmFkZENsYXNzKG4rIiAiK3MpLGEuYXBwZW5kKHIpO3ZhciBsPWUuZ2V0QXR0cmlidXRlKCJkYXRhLWljb24iKTtpZihsKXt2YXIgaD1kKCc8aW1nIGFsdD0iIiBzcmM9IicrbCsnIj4nKTthLnByZXBlbmQoaCl9cmV0dXJuIGQodGhpcy5kcm9wZG93bk9wdGlvbnMpLmFwcGVuZChhWzBdKSxhWzBdfX0se2tleToiX3RvZ2dsZUVudHJ5RnJvbUFycmF5Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT0hdGhpcy5fa2V5c1NlbGVjdGVkLmhhc093blByb3BlcnR5KHQpLGk9ZCh0aGlzLl92YWx1ZURpY3RbdF0ub3B0aW9uRWwpO3JldHVybiBlP3RoaXMuX2tleXNTZWxlY3RlZFt0XT0hMDpkZWxldGUgdGhpcy5fa2V5c1NlbGVjdGVkW3RdLGkudG9nZ2xlQ2xhc3MoInNlbGVjdGVkIixlKSxpLmZpbmQoJ2lucHV0W3R5cGU9ImNoZWNrYm94Il0nKS5wcm9wKCJjaGVja2VkIixlKSxpLnByb3AoInNlbGVjdGVkIixlKSxlfX0se2tleToiX3NldFZhbHVlVG9JbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaT1bXTtpZih0aGlzLiRlbC5maW5kKCJvcHRpb24iKS5lYWNoKGZ1bmN0aW9uKHQpe2lmKGQodCkucHJvcCgic2VsZWN0ZWQiKSl7dmFyIGU9ZCh0KS50ZXh0KCk7aS5wdXNoKGUpfX0pLCFpLmxlbmd0aCl7dmFyIHQ9dGhpcy4kZWwuZmluZCgib3B0aW9uOmRpc2FibGVkIikuZXEoMCk7dC5sZW5ndGgmJiIiPT09dFswXS52YWx1ZSYmaS5wdXNoKHQudGV4dCgpKX10aGlzLmlucHV0LnZhbHVlPWkuam9pbigiLCAiKX19LHtrZXk6Il9zZXRTZWxlY3RlZFN0YXRlcyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5fa2V5c1NlbGVjdGVkPXt9LHRoaXMuX3ZhbHVlRGljdCl7dmFyIGU9dGhpcy5fdmFsdWVEaWN0W3RdLGk9ZChlLmVsKS5wcm9wKCJzZWxlY3RlZCIpO2QoZS5vcHRpb25FbCkuZmluZCgnaW5wdXRbdHlwZT0iY2hlY2tib3giXScpLnByb3AoImNoZWNrZWQiLGkpLGk/KHRoaXMuX2FjdGl2YXRlT3B0aW9uKGQodGhpcy5kcm9wZG93bk9wdGlvbnMpLGQoZS5vcHRpb25FbCkpLHRoaXMuX2tleXNTZWxlY3RlZFt0XT0hMCk6ZChlLm9wdGlvbkVsKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKX19fSx7a2V5OiJfYWN0aXZhdGVPcHRpb24iLHZhbHVlOmZ1bmN0aW9uKHQsZSl7ZSYmKHRoaXMuaXNNdWx0aXBsZXx8dC5maW5kKCJsaS5zZWxlY3RlZCIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpLGQoZSkuYWRkQ2xhc3MoInNlbGVjdGVkIikpfX0se2tleToiZ2V0U2VsZWN0ZWRWYWx1ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMuX2tleXNTZWxlY3RlZCl0LnB1c2godGhpcy5fdmFsdWVEaWN0W2VdLmVsLnZhbHVlKTtyZXR1cm4gdH19XSxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gX2dldChuLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pLCJpbml0Iix0aGlzKS5jYWxsKHRoaXMsdGhpcyx0LGUpfX0se2tleToiZ2V0SW5zdGFuY2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybih0LmpxdWVyeT90WzBdOnQpLk1fRm9ybVNlbGVjdH19LHtrZXk6ImRlZmF1bHRzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZX19XSksbn0oKTtNLkZvcm1TZWxlY3Q9dCxNLmpRdWVyeUxvYWRlZCYmTS5pbml0aWFsaXplSnF1ZXJ5V3JhcHBlcih0LCJmb3JtU2VsZWN0IiwiTV9Gb3JtU2VsZWN0Iil9KGNhc2gpLGZ1bmN0aW9uKHMsZSl7InVzZSBzdHJpY3QiO3ZhciBpPXt9LHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0LGUpe19jbGFzc0NhbGxDaGVjayh0aGlzLG4pO3ZhciBpPV9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsKG4uX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YobikpLmNhbGwodGhpcyxuLHQsZSkpO3JldHVybihpLmVsLk1fUmFuZ2U9aSkub3B0aW9ucz1zLmV4dGVuZCh7fSxuLmRlZmF1bHRzLGUpLGkuX21vdXNlZG93bj0hMSxpLl9zZXR1cFRodW1iKCksaS5fc2V0dXBFdmVudEhhbmRsZXJzKCksaX1yZXR1cm4gX2luaGVyaXRzKG4sQ29tcG9uZW50KSxfY3JlYXRlQ2xhc3Mobixbe2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVFdmVudEhhbmRsZXJzKCksdGhpcy5fcmVtb3ZlVGh1bWIoKSx0aGlzLmVsLk1fUmFuZ2U9dm9pZCAwfX0se2tleToiX3NldHVwRXZlbnRIYW5kbGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oYW5kbGVSYW5nZUNoYW5nZUJvdW5kPXRoaXMuX2hhbmRsZVJhbmdlQ2hhbmdlLmJpbmQodGhpcyksdGhpcy5faGFuZGxlUmFuZ2VNb3VzZWRvd25Ub3VjaHN0YXJ0Qm91bmQ9dGhpcy5faGFuZGxlUmFuZ2VNb3VzZWRvd25Ub3VjaHN0YXJ0LmJpbmQodGhpcyksdGhpcy5faGFuZGxlUmFuZ2VJbnB1dE1vdXNlbW92ZVRvdWNobW92ZUJvdW5kPXRoaXMuX2hhbmRsZVJhbmdlSW5wdXRNb3VzZW1vdmVUb3VjaG1vdmUuYmluZCh0aGlzKSx0aGlzLl9oYW5kbGVSYW5nZU1vdXNldXBUb3VjaGVuZEJvdW5kPXRoaXMuX2hhbmRsZVJhbmdlTW91c2V1cFRvdWNoZW5kLmJpbmQodGhpcyksdGhpcy5faGFuZGxlUmFuZ2VCbHVyTW91c2VvdXRUb3VjaGxlYXZlQm91bmQ9dGhpcy5faGFuZGxlUmFuZ2VCbHVyTW91c2VvdXRUb3VjaGxlYXZlLmJpbmQodGhpcyksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLHRoaXMuX2hhbmRsZVJhbmdlQ2hhbmdlQm91bmQpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLl9oYW5kbGVSYW5nZU1vdXNlZG93blRvdWNoc3RhcnRCb3VuZCksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix0aGlzLl9oYW5kbGVSYW5nZU1vdXNlZG93blRvdWNoc3RhcnRCb3VuZCksdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsdGhpcy5faGFuZGxlUmFuZ2VJbnB1dE1vdXNlbW92ZVRvdWNobW92ZUJvdW5kKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5faGFuZGxlUmFuZ2VJbnB1dE1vdXNlbW92ZVRvdWNobW92ZUJvdW5kKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsdGhpcy5faGFuZGxlUmFuZ2VJbnB1dE1vdXNlbW92ZVRvdWNobW92ZUJvdW5kKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuX2hhbmRsZVJhbmdlTW91c2V1cFRvdWNoZW5kQm91bmQpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX2hhbmRsZVJhbmdlTW91c2V1cFRvdWNoZW5kQm91bmQpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsdGhpcy5faGFuZGxlUmFuZ2VCbHVyTW91c2VvdXRUb3VjaGxlYXZlQm91bmQpLHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLHRoaXMuX2hhbmRsZVJhbmdlQmx1ck1vdXNlb3V0VG91Y2hsZWF2ZUJvdW5kKSx0aGlzLmVsLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobGVhdmUiLHRoaXMuX2hhbmRsZVJhbmdlQmx1ck1vdXNlb3V0VG91Y2hsZWF2ZUJvdW5kKX19LHtrZXk6Il9yZW1vdmVFdmVudEhhbmRsZXJzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0aGlzLl9oYW5kbGVSYW5nZUNoYW5nZUJvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5faGFuZGxlUmFuZ2VNb3VzZWRvd25Ub3VjaHN0YXJ0Qm91bmQpLHRoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5faGFuZGxlUmFuZ2VNb3VzZWRvd25Ub3VjaHN0YXJ0Qm91bmQpLHRoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHRoaXMuX2hhbmRsZVJhbmdlSW5wdXRNb3VzZW1vdmVUb3VjaG1vdmVCb3VuZCksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX2hhbmRsZVJhbmdlSW5wdXRNb3VzZW1vdmVUb3VjaG1vdmVCb3VuZCksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX2hhbmRsZVJhbmdlSW5wdXRNb3VzZW1vdmVUb3VjaG1vdmVCb3VuZCksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9oYW5kbGVSYW5nZU1vdXNldXBUb3VjaGVuZEJvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl9oYW5kbGVSYW5nZU1vdXNldXBUb3VjaGVuZEJvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLHRoaXMuX2hhbmRsZVJhbmdlQmx1ck1vdXNlb3V0VG91Y2hsZWF2ZUJvdW5kKSx0aGlzLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iix0aGlzLl9oYW5kbGVSYW5nZUJsdXJNb3VzZW91dFRvdWNobGVhdmVCb3VuZCksdGhpcy5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGxlYXZlIix0aGlzLl9oYW5kbGVSYW5nZUJsdXJNb3VzZW91dFRvdWNobGVhdmVCb3VuZCl9fSx7a2V5OiJfaGFuZGxlUmFuZ2VDaGFuZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7cyh0aGlzLnZhbHVlKS5odG1sKHRoaXMuJGVsLnZhbCgpKSxzKHRoaXMudGh1bWIpLmhhc0NsYXNzKCJhY3RpdmUiKXx8dGhpcy5fc2hvd1JhbmdlQnViYmxlKCk7dmFyIHQ9dGhpcy5fY2FsY1JhbmdlT2Zmc2V0KCk7cyh0aGlzLnRodW1iKS5hZGRDbGFzcygiYWN0aXZlIikuY3NzKCJsZWZ0Iix0KyJweCIpfX0se2tleToiX2hhbmRsZVJhbmdlTW91c2Vkb3duVG91Y2hzdGFydCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYocyh0aGlzLnZhbHVlKS5odG1sKHRoaXMuJGVsLnZhbCgpKSx0aGlzLl9tb3VzZWRvd249ITAsdGhpcy4kZWwuYWRkQ2xhc3MoImFjdGl2ZSIpLHModGhpcy50aHVtYikuaGFzQ2xhc3MoImFjdGl2ZSIpfHx0aGlzLl9zaG93UmFuZ2VCdWJibGUoKSwiaW5wdXQiIT09dC50eXBlKXt2YXIgZT10aGlzLl9jYWxjUmFuZ2VPZmZzZXQoKTtzKHRoaXMudGh1bWIpLmFkZENsYXNzKCJhY3RpdmUiKS5jc3MoImxlZnQiLGUrInB4Iil9fX0se2tleToiX2hhbmRsZVJhbmdlSW5wdXRNb3VzZW1vdmVUb3VjaG1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy5fbW91c2Vkb3duKXtzKHRoaXMudGh1bWIpLmhhc0NsYXNzKCJhY3RpdmUiKXx8dGhpcy5fc2hvd1JhbmdlQnViYmxlKCk7dmFyIHQ9dGhpcy5fY2FsY1JhbmdlT2Zmc2V0KCk7cyh0aGlzLnRodW1iKS5hZGRDbGFzcygiYWN0aXZlIikuY3NzKCJsZWZ0Iix0KyJweCIpLHModGhpcy52YWx1ZSkuaHRtbCh0aGlzLiRlbC52YWwoKSl9fX0se2tleToiX2hhbmRsZVJhbmdlTW91c2V1cFRvdWNoZW5kIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX21vdXNlZG93bj0hMSx0aGlzLiRlbC5yZW1vdmVDbGFzcygiYWN0aXZlIil9fSx7a2V5OiJfaGFuZGxlUmFuZ2VCbHVyTW91c2VvdXRUb3VjaGxlYXZlIix2YWx1ZTpmdW5jdGlvbigpe2lmKCF0aGlzLl9tb3VzZWRvd24pe3ZhciB0PTcrcGFyc2VJbnQodGhpcy4kZWwuY3NzKCJwYWRkaW5nLWxlZnQiKSkrInB4IjtzKHRoaXMudGh1bWIpLmhhc0NsYXNzKCJhY3RpdmUiKSYmKGUucmVtb3ZlKHRoaXMudGh1bWIpLGUoe3RhcmdldHM6dGhpcy50aHVtYixoZWlnaHQ6MCx3aWR0aDowLHRvcDoxMCxlYXNpbmc6ImVhc2VPdXRRdWFkIixtYXJnaW5MZWZ0OnQsZHVyYXRpb246MTAwfSkpLHModGhpcy50aHVtYikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfX19LHtrZXk6Il9zZXR1cFRodW1iIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudGh1bWI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHRoaXMudmFsdWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHModGhpcy50aHVtYikuYWRkQ2xhc3MoInRodW1iIikscyh0aGlzLnZhbHVlKS5hZGRDbGFzcygidmFsdWUiKSxzKHRoaXMudGh1bWIpLmFwcGVuZCh0aGlzLnZhbHVlKSx0aGlzLiRlbC5hZnRlcih0aGlzLnRodW1iKX19LHtrZXk6Il9yZW1vdmVUaHVtYiIsdmFsdWU6ZnVuY3Rpb24oKXtzKHRoaXMudGh1bWIpLnJlbW92ZSgpfX0se2tleToiX3Nob3dSYW5nZUJ1YmJsZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD0tNytwYXJzZUludChzKHRoaXMudGh1bWIpLnBhcmVudCgpLmNzcygicGFkZGluZy1sZWZ0IikpKyJweCI7ZS5yZW1vdmUodGhpcy50aHVtYiksZSh7dGFyZ2V0czp0aGlzLnRodW1iLGhlaWdodDozMCx3aWR0aDozMCx0b3A6LTMwLG1hcmdpbkxlZnQ6dCxkdXJhdGlvbjozMDAsZWFzaW5nOiJlYXNlT3V0UXVpbnQifSl9fSx7a2V5OiJfY2FsY1JhbmdlT2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJGVsLndpZHRoKCktMTUsZT1wYXJzZUZsb2F0KHRoaXMuJGVsLmF0dHIoIm1heCIpKXx8MTAwLGk9cGFyc2VGbG9hdCh0aGlzLiRlbC5hdHRyKCJtaW4iKSl8fDA7cmV0dXJuKHBhcnNlRmxvYXQodGhpcy4kZWwudmFsKCkpLWkpLyhlLWkpKnR9fV0sW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIF9nZXQobi5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihuKSwiaW5pdCIsdGhpcykuY2FsbCh0aGlzLHRoaXMsdCxlKX19LHtrZXk6ImdldEluc3RhbmNlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4odC5qcXVlcnk/dFswXTp0KS5NX1JhbmdlfX0se2tleToiZGVmYXVsdHMiLGdldDpmdW5jdGlvbigpe3JldHVybiBpfX1dKSxufSgpO00uUmFuZ2U9dCxNLmpRdWVyeUxvYWRlZCYmTS5pbml0aWFsaXplSnF1ZXJ5V3JhcHBlcih0LCJyYW5nZSIsIk1fUmFuZ2UiKSx0LmluaXQocygiaW5wdXRbdHlwZT1yYW5nZV0iKSl9KGNhc2gsTS5hbmltZSk7Cjwvc2NyaXB0PgoKPHNjcmlwdD4KICAoZnVuY3Rpb24gKCQpIHsKICAgIGlmICghalF1ZXJ5KCkuZHJhZ2dhYmxlKSB7CiAgICAgICQuZm4uZHJhZ2dhYmxlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHRoaXMuY3NzKCJjdXJzb3IiLCAibW92ZSIpLm9uKCJtb3VzZWRvd24iLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgdmFyICRkcmFnZ2VkID0gJCh0aGlzKTsKICAgICAgICAgIHZhciB4ID0gJGRyYWdnZWQub2Zmc2V0KCkubGVmdCAtIGUucGFnZVgsCiAgICAgICAgICAgIHkgPSAkZHJhZ2dlZC5vZmZzZXQoKS50b3AgLSBlLnBhZ2VZLAogICAgICAgICAgICB6ID0gJGRyYWdnZWQuY3NzKCJ6LWluZGV4Iik7CiAgICAgICAgICAkKHdpbmRvdykKICAgICAgICAgICAgLm9uKCJtb3VzZW1vdmUuZHJhZ2dhYmxlIiwgZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAkZHJhZ2dlZAogICAgICAgICAgICAgICAgLmNzcyh7CiAgICAgICAgICAgICAgICAgICJ6LWluZGV4IjogOTk5LAogICAgICAgICAgICAgICAgICBib3R0b206ICJhdXRvIiwKICAgICAgICAgICAgICAgICAgcmlnaHQ6ICJhdXRvIiwKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAub2Zmc2V0KHsKICAgICAgICAgICAgICAgICAgbGVmdDogeCArIGUucGFnZVgsCiAgICAgICAgICAgICAgICAgIHRvcDogeSArIGUucGFnZVksCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSkKICAgICAgICAgICAgLm9uZSgibW91c2V1cCIsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAkKHRoaXMpLm9mZigibW91c2Vtb3ZlLmRyYWdnYWJsZSIpOwogICAgICAgICAgICAgICRkcmFnZ2VkLmNzcygiei1pbmRleCIsIHopOwogICAgICAgICAgICB9KTsKICAgICAgICAgIC8vIGRpc2FibGUgc2VsZWN0aW9uCiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH07CiAgICB9CiAgfSkoalF1ZXJ5KTsKICAkKCIuZHJhZyIpLmRyYWdnYWJsZSgpOwo8L3NjcmlwdD4KCjxzY3JpcHQ+CiAgbGV0IGVkaXRvcjsKcmVxdWlyZS5jb25maWcoewogIHBhdGhzOiB7IHZzOiAiaHR0cHM6Ly91bnBrZy5jb20vbW9uYWNvLWVkaXRvckBsYXRlc3QvbWluL3ZzIiB9LAp9KTsKd2luZG93Lk1vbmFjb0Vudmlyb25tZW50ID0geyBnZXRXb3JrZXJVcmw6ICgpID0+IHByb3h5IH07CgpsZXQgcHJveHkgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKAogIG5ldyBCbG9iKAogICAgWwogICAgICBgc2VsZi5Nb25hY29FbnZpcm9ubWVudCA9IHsKICAgICAgICBiYXNlVXJsOiAnaHR0cHM6Ly91bnBrZy5jb20vbW9uYWNvLWVkaXRvckBsYXRlc3QvbWluLycKICAgIH07CiAgICBpbXBvcnRTY3JpcHRzKCdodHRwczovL3VucGtnLmNvbS9tb25hY28tZWRpdG9yQGxhdGVzdC9taW4vdnMvYmFzZS93b3JrZXIvd29ya2VyTWFpbi5qcycpO2AsCiAgICBdLAogICAgeyB0eXBlOiAidGV4dC9qYXZhc2NyaXB0IiB9CiAgKQopOwoKcmVxdWlyZShbInZzL2VkaXRvci9lZGl0b3IubWFpbiJdLCBmdW5jdGlvbiAoKSB7CiAgZWRpdG9yID0gbW9uYWNvLmVkaXRvci5jcmVhdGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLCB7CiAgICAgIHZhbHVlOiBbCiAgICAgICAgIi8qIiwKICAgICAgICAiICogWWV0IEFub3RoZXIgVXRpbGl0eSBNb2QgMS4wLjAiLAogICAgICAgICIgKiAtIFByZXNzIEFsdCB3aGlsZSBiZWluZyBmb2N1c2VkIG9uIHRoaXMgdGV4dGJveCB0byBleGVjdXRlIHRoZSBzY3JpcHQiLAogICAgICAgICIgKiAtIFByZXNzIEVTQyB3aGlsZSBiZWluZyBmb2N1c2VkIG9uIHRoaXMgdGV4dGJveCB0byBjbG9zZSBvdXQgb2YgdGhpcyB3aW5kb3ciLAogICAgICAgICIgKiAtIFVzZSB0aGlzIGZvciBleGVjdXRpbmcgY3VzdG9tIHNjcmlwdHMgaW50byB0aGUgY3VycmVudCB3ZWJwYWdlIHRoYXQgeW91J3JlIG9uIiwKICAgICAgICAiICovIiwKICAgICAgXS5qb2luKCJcbiIpLAogICAgICBsYW5ndWFnZTogImphdmFzY3JpcHQiLAogICAgICB0aGVtZTogInZzLWRhcmsiLAogICAgfSk7CiAgfSk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCAoZXZlbnQpID0+IHsKICAgIGlmIChldmVudC5rZXlDb2RlID09IDE4KSB7CiAgICAgIGV2YWwoZWRpdG9yLmdldE1vZGVsKCkuZ2V0VmFsdWUoKSk7CiAgICB9CiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PSAyNykgewogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ19jb250YWluZXIiKS5yZW1vdmUoKTsKICAgIH0KICB9KTsKPC9zY3JpcHQ+Cgo8c3R5bGU+CiAgLmRyYWcgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2lkdGg6IDUwMHB4OwogICAgaGVpZ2h0OiAzMDBweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7CiAgICBwYWRkaW5nOiAwcHg7CiAgfQoKICAuZHJhZzo6YWZ0ZXIgewogICAgY29udGVudDogIiI7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB6LWluZGV4OiAtMTsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgb3BhY2l0eTogMDsKICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTsKICB9CgogIC5kcmFnOmhvdmVyIHsKICAgIGJveC1zaGFkb3c6IDAgMTRweCAyOHB4IHJnYmEoMCwgMCwgMCwgMC4yNSksIDAgMTBweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yMik7CiAgfQoKICAuZHJhZzpob3Zlcjo6YWZ0ZXIgewogICAgb3BhY2l0eTogMTsKICB9CgogIC50aXRsZSB7CiAgICBmb250LWZhbWlseTogQW5kYWxlIE1vbm8sIEFuZGFsZU1vbm8sIG1vbm9zcGFjZTsKICB9CgogICNjb250YWluZXIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYm90dG9tOiAwOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDYyLjUlOwogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogMDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgfQo8L3N0eWxlPg==")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment