Skip to content
dmFyIENTUz0iI29ydGgtYmxvZyAqe2JveC1zaXppbmc6Ym9yZGVyLWJveDt9I29ydGgtYmxvZ3tiYWNrZ3JvdW5kOiMwNzA3MGM7Y29sb3I6I2ZmZjtwYWRkaW5nOjkwcHggMjBweCAxMTBweDtmb250LWZhbWlseTppbmhlcml0O3Bvc2l0aW9uOnJlbGF0aXZlO30jb3J0aC1ibG9nIC5vYi13cmFwe21heC13aWR0aDoxMjAwcHg7bWFyZ2luOjAgYXV0bzt9I29ydGgtYmxvZyAub2ItaGVhZHt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tYm90dG9tOjQ2cHg7fSNvcnRoLWJsb2cgLm9iLXRhZ3tkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6MnB4O2NvbG9yOiNmZjdhM2Q7YmFja2dyb3VuZDpyZ2JhKDI1NSwxMDcsNDQsLjEyKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDEwNyw0NCwuMzUpO3BhZGRpbmc6N3B4IDE2cHg7Ym9yZGVyLXJhZGl1czozMHB4O21hcmdpbi1ib3R0b206MjJweDt9I29ydGgtYmxvZyBoMS5vYi1oMXtmb250LXNpemU6NTRweDtsaW5lLWhlaWdodDoxLjA1O2ZvbnQtd2VpZ2h0OjgwMDttYXJnaW46MCAwIDE4cHg7fSNvcnRoLWJsb2cgaDEub2ItaDEgc3BhbntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjZmY3YTNkLCNmZjVhMWYpOy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7YmFja2dyb3VuZC1jbGlwOnRleHQ7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7fSNvcnRoLWJsb2cgLm9iLXN1Yntjb2xvcjojOWI5YmFiO2ZvbnQtc2l6ZToxOHB4O21heC13aWR0aDo2MjBweDttYXJnaW46MCBhdXRvO30jb3J0aC1ibG9nIC5vYi1iYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MThweDtmbGV4LXdyYXA6d3JhcDtiYWNrZ3JvdW5kOiMwZjBmMTc7Ym9yZGVyOjFweCBzb2xpZCAjMWQxZDI4O2JvcmRlci1yYWRpdXM6MTZweDtwYWRkaW5nOjE2cHg7bWFyZ2luLWJvdHRvbTo0MHB4O30jb3J0aC1ibG9nIC5vYi1zZWFyY2h7ZmxleDoxO21pbi13aWR0aDoyMjBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2JhY2tncm91bmQ6IzA3MDcwYztib3JkZXI6MXB4IHNvbGlkICMyMDIwMmM7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6MTJweCAxNnB4O30jb3J0aC1ibG9nIC5vYi1zZWFyY2ggaW5wdXR7ZmxleDoxO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7b3V0bGluZTpub25lO2NvbG9yOiNmZmY7Zm9udC1zaXplOjE1cHg7fSNvcnRoLWJsb2cgLm9iLXNlYXJjaCBzdmd7ZmxleDpub25lO30jb3J0aC1ibG9nIC5vYi1waWxsc3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXA7fSNvcnRoLWJsb2cgLm9iLXBpbGx7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyOjFweCBzb2xpZCAjMjAyMDJjO2JhY2tncm91bmQ6IzA3MDcwYztjb2xvcjojYzljOWQ0O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjExcHggMjBweDtib3JkZXItcmFkaXVzOjMwcHg7dHJhbnNpdGlvbjouMnM7fSNvcnRoLWJsb2cgLm9iLXBpbGw6aG92ZXJ7Ym9yZGVyLWNvbG9yOiNmZjdhM2Q7Y29sb3I6I2ZmZjt9I29ydGgtYmxvZyAub2ItcGlsbC5vbntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywjZmY3YTNkLCNmZjVhMWYpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjojZmZmO30jb3J0aC1ibG9nIC5vYi1ncmlke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsMWZyKTtnYXA6MjhweDt9I29ydGgtYmxvZyAub2ItY2FyZHtiYWNrZ3JvdW5kOiMwZjBmMTc7Ym9yZGVyOjFweCBzb2xpZCAjMWMxYzI3O2JvcmRlci1yYWRpdXM6MThweDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt0cmFuc2l0aW9uOi4yNXM7fSNvcnRoLWJsb2cgLm9iLWNhcmQ6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTZweCk7Ym9yZGVyLWNvbG9yOiNmZjdhM2Q7Ym94LXNoYWRvdzowIDE4cHggNDBweCByZ2JhKDI1NSw5MCwzMSwuMTIpO30jb3J0aC1ibG9nIC5vYi10aHVtYntoZWlnaHQ6MTkwcHg7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7fSNvcnRoLWJsb2cgLm9iLXRodW1iOmFmdGVye2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kLWltYWdlOnJhZGlhbC1ncmFkaWVudChyZ2JhKDI1NSwyNTUsMjU1LC4wNykgMXB4LHRyYW5zcGFyZW50IDFweCk7YmFja2dyb3VuZC1zaXplOjE4cHggMThweDt9I29ydGgtYmxvZyAub2ItYmFkZ2V7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO21hcmdpbjoxNnB4O2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzouNXB4O2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZmY1YTFmO3BhZGRpbmc6NnB4IDEzcHg7Ym9yZGVyLXJhZGl1czo3cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO30jb3J0aC1ibG9nIC5vYi1ib2R5e3BhZGRpbmc6MjRweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MTt9I29ydGgtYmxvZyAub2ItbWV0YXtmb250LXNpemU6MTNweDtjb2xvcjojOGE4YTk5O21hcmdpbi1ib3R0b206MTJweDt9I29ydGgtYmxvZyAub2ItdGl0bGV7Zm9udC1zaXplOjIxcHg7bGluZS1oZWlnaHQ6MS4zO2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW46MCAwIDEycHg7Y29sb3I6I2ZmZjt9I29ydGgtYmxvZyAub2ItZXh7Zm9udC1zaXplOjE0LjVweDtsaW5lLWhlaWdodDoxLjY7Y29sb3I6IzliOWJhYjttYXJnaW46MCAwIDIwcHg7ZGlzcGxheTotd2Via2l0LWJveDstd2Via2l0LWxpbmUtY2xhbXA6Mzstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7b3ZlcmZsb3c6aGlkZGVuO2ZsZXg6MTt9I29ydGgtYmxvZyAub2ItZm9vdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtib3JkZXItdG9wOjFweCBzb2xpZCAjMWMxYzI3O3BhZGRpbmctdG9wOjE2cHg7fSNvcnRoLWJsb2cgLm9iLXJlYWR7Y29sb3I6I2ZmN2EzZDtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjE0cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fSNvcnRoLWJsb2cgLm9iLXJlYWQ6aG92ZXJ7Y29sb3I6I2ZmNWExZjt9I29ydGgtYmxvZyAub2ItZW1wdHl7Z3JpZC1jb2x1bW46MS8tMTt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojOGE4YTk5O3BhZGRpbmc6NTBweDt9QG1lZGlhKG1heC13aWR0aDo5ODBweCl7I29ydGgtYmxvZyAub2ItZ3JpZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsMWZyKTt9I29ydGgtYmxvZyBoMS5vYi1oMXtmb250LXNpemU6NDBweDt9fUBtZWRpYShtYXgtd2lkdGg6NjQwcHgpeyNvcnRoLWJsb2cgLm9iLWdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjt9I29ydGgtYmxvZyAub2ItYmFye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO319Ijt2YXIgTUFSS1VQPSI8ZGl2IGNsYXNzPSdvYi13cmFwJz48ZGl2IGNsYXNzPSdvYi1oZWFkJz48c3BhbiBjbGFzcz0nb2ItdGFnJz5CTE9HICZhbXA7IElOU0lHSFRTPC9zcGFuPjxoMSBjbGFzcz0nb2ItaDEnPktub3dsZWRnZSAmYW1wOyA8c3Bhbj5JbnNpZ2h0czwvc3Bhbj48L2gxPjxwIGNsYXNzPSdvYi1zdWInPkluLWRlcHRoIGFydGljbGVzLCBndWlkZXMsIGFuZCB0ZWNobmljYWwgZGVlcC1kaXZlcyBvbiBhZ2VudGljIEFJIGFuZCBnZW5lcmF0aXZlIEFJLCB3cml0dGVuIGJ5IHRoZSBPcnRob25pdHkgdGVhbS48L3A+PC9kaXY+PGRpdiBjbGFzcz0nb2ItYmFyJz48ZGl2IGNsYXNzPSdvYi1zZWFyY2gnPjxzdmcgd2lkdGg9JzE4JyBoZWlnaHQ9JzE4JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nIzhhOGE5OScgc3Ryb2tlLXdpZHRoPScyJz48Y2lyY2xlIGN4PScxMScgY3k9JzExJyByPSc3Jz48L2NpcmNsZT48cGF0aCBkPSdNMjEgMjFsLTQuMy00LjMnPjwvcGF0aD48L3N2Zz48aW5wdXQgaWQ9J29iLXEnIHR5cGU9J3RleHQnIHBsYWNlaG9sZGVyPSdTZWFyY2ggYXJ0aWNsZXMuLi4nPjwvZGl2PjxkaXYgY2xhc3M9J29iLXBpbGxzJyBpZD0nb2ItcGlsbHMnPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29iLWdyaWQnIGlkPSdvYi1ncmlkJz48ZGl2IGNsYXNzPSdvYi1lbXB0eSc+TG9hZGluZyBhcnRpY2xlcy4uLjwvZGl2PjwvZGl2PjwvZGl2PiI7dmFyIEM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29ydGgtYmxvZycpO3ZhciBzdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO3N0LnRleHRDb250ZW50PUNTUztkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0KTtDLmlubmVySFRNTD1NQVJLVVA7dmFyIGdyaWQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29iLWdyaWQnKTt2YXIgcGlsbHNFbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb2ItcGlsbHMnKTt2YXIgcUVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvYi1xJyk7dmFyIHN0YXRlPXtjYXQ6J0FsbCcscTonJ307dmFyIFBPU1RTPVtdO3ZhciBncmFkcz17J0FJICYgTUwnOidsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCMxYjEwMzAsIzNhMTUzMCA1NSUsI2ZmNWExZiknLCdFbmdpbmVlcmluZyc6J2xpbmVhci1ncmFkaWVudCgxMzVkZWcsIzBiMTQzMCwjMTAyYTRhIDU1JSwjZmY1YTFmKScsJ2RlZmF1bHQnOidsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCMxYTEwMjAsIzJhMTYyNiA1NSUsI2ZmNWExZiknfTtmdW5jdGlvbiBkZWMocyl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTt0LmlubmVySFRNTD1zfHwnJztyZXR1cm4gdC52YWx1ZTt9ZnVuY3Rpb24gc3RyaXAoaCl7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7ZC5pbm5lckhUTUw9aHx8Jyc7dmFyIHg9KGQudGV4dENvbnRlbnR8fCcnKTtyZXR1cm4geC5yZXBsYWNlKC9cdTIwMjYvZywnJykucmVwbGFjZSgvXFtccypcXS9nLCcnKS50cmltKCk7fWZ1bmN0aW9uIGZtdChkKXt2YXIgbT1bJ0phbnVhcnknLCdGZWJydWFyeScsJ01hcmNoJywnQXByaWwnLCdNYXknLCdKdW5lJywnSnVseScsJ0F1Z3VzdCcsJ1NlcHRlbWJlcicsJ09jdG9iZXInLCdOb3ZlbWJlcicsJ0RlY2VtYmVyJ107dmFyIHg9bmV3IERhdGUoZCk7cmV0dXJuIG1beC5nZXRNb250aCgpXSsnICcreC5nZXREYXRlKCkrJywgJyt4LmdldEZ1bGxZZWFyKCk7fWZ1bmN0aW9uIHJ0KGgpe3ZhciB3PXN0cmlwKGgpLnNwbGl0KC9ccysvKS5sZW5ndGg7cmV0dXJuIE1hdGgubWF4KDEsTWF0aC5yb3VuZCh3LzIwMCkpO31mdW5jdGlvbiBjYXRzKHApe3RyeXt2YXIgdD1wLl9lbWJlZGRlZFsnd3A6dGVybSddWzBdfHxbXTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24oeCl7cmV0dXJuIGRlYyh4Lm5hbWUpO30pLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbiYmbiE9PSdVbmNhdGVnb3JpemVkJzt9KTt9Y2F0Y2goZSl7cmV0dXJuIFtdO319ZnVuY3Rpb24gZXNjKHMpe3JldHVybiAoc3x8JycpLnJlcGxhY2UoLyYvZywnJmFtcDsnKS5yZXBsYWNlKC88L2csJyZsdDsnKS5yZXBsYWNlKC8+L2csJyZndDsnKTt9ZnVuY3Rpb24gY2FyZChwKXt2YXIgY3M9Y2F0cyhwKTt2YXIgYz1jc1swXXx8J0luc2lnaHRzJzt2YXIgZz1ncmFkc1tjXXx8Z3JhZHNbJ2RlZmF1bHQnXTt2YXIgZXg9c3RyaXAocC5leGNlcnB0JiZwLmV4Y2VycHQucmVuZGVyZWQpO3ZhciB0aT1zdHJpcChwLnRpdGxlJiZwLnRpdGxlLnJlbmRlcmVkKTtyZXR1cm4gIjxhcnRpY2xlIGNsYXNzPSdvYi1jYXJkJz48ZGl2IGNsYXNzPSdvYi10aHVtYicgc3R5bGU9J2JhY2tncm91bmQ6IitnKyInPjxzcGFuIGNsYXNzPSdvYi1iYWRnZSc+Iitlc2MoYykrIjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSdvYi1ib2R5Jz48ZGl2IGNsYXNzPSdvYi1tZXRhJz4iK2ZtdChwLmRhdGUpKyIgJmJ1bGw7ICIrcnQocC5jb250ZW50JiZwLmNvbnRlbnQucmVuZGVyZWQpKyIgbWluIHJlYWQ8L2Rpdj48aDMgY2xhc3M9J29iLXRpdGxlJz4iK2VzYyh0aSkrIjwvaDM+PHAgY2xhc3M9J29iLWV4Jz4iK2VzYyhleCkrIjwvcD48ZGl2IGNsYXNzPSdvYi1mb290Jz48YSBjbGFzcz0nb2ItcmVhZCcgaHJlZj0nIitwLmxpbmsrIic+UmVhZCBQb3N0ICZyYXJyOzwvYT48L2Rpdj48L2Rpdj48L2FydGljbGU+Ijt9ZnVuY3Rpb24gcmVuZGVyKCl7dmFyIHE9c3RhdGUucS50b0xvd2VyQ2FzZSgpO3ZhciBsaXN0PVBPU1RTLmZpbHRlcihmdW5jdGlvbihwKXt2YXIgaW5DYXQ9c3RhdGUuY2F0PT09J0FsbCd8fGNhdHMocCkuaW5kZXhPZihzdGF0ZS5jYXQpPi0xO2lmKCFpbkNhdClyZXR1cm4gZmFsc2U7aWYoIXEpcmV0dXJuIHRydWU7dmFyIGhheT0oc3RyaXAocC50aXRsZS5yZW5kZXJlZCkrJyAnK3N0cmlwKHAuZXhjZXJwdC5yZW5kZXJlZCkpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGhheS5pbmRleE9mKHEpPi0xO30pO2dyaWQuaW5uZXJIVE1MPWxpc3QubGVuZ3RoP2xpc3QubWFwKGNhcmQpLmpvaW4oJycpOiI8ZGl2IGNsYXNzPSdvYi1lbXB0eSc+Tm8gYXJ0aWNsZXMgbWF0Y2ggeW91ciBzZWFyY2guPC9kaXY+Ijt9ZnVuY3Rpb24gcGlsbHMoKXt2YXIgc2V0PXt9O1BPU1RTLmZvckVhY2goZnVuY3Rpb24ocCl7Y2F0cyhwKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe3NldFtjXT0xO30pO30pO3ZhciBuYW1lcz1bJ0FsbCddLmNvbmNhdChPYmplY3Qua2V5cyhzZXQpLnNvcnQoKSk7cGlsbHNFbC5pbm5lckhUTUw9bmFtZXMubWFwKGZ1bmN0aW9uKG4pe3JldHVybiAiPHNwYW4gY2xhc3M9J29iLXBpbGwiKyhuPT09c3RhdGUuY2F0Pycgb24nOicnKSsiJyBkYXRhLWM9XCIiK2VzYyhuKSsiXCI+Iitlc2MobikrIjwvc3Bhbj4iO30pLmpvaW4oJycpO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwocGlsbHNFbC5xdWVyeVNlbGVjdG9yQWxsKCcub2ItcGlsbCcpLGZ1bmN0aW9uKGVsKXtlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oKXtzdGF0ZS5jYXQ9ZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWMnKTtwaWxscygpO3JlbmRlcigpO30pO30pO31xRWwuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLGZ1bmN0aW9uKCl7c3RhdGUucT1xRWwudmFsdWU7cmVuZGVyKCk7fSk7ZmV0Y2goJy93cC1qc29uL3dwL3YyL3Bvc3RzP19lbWJlZCZwZXJfcGFnZT01MCcpLnRoZW4oZnVuY3Rpb24ocil7cmV0dXJuIHIuanNvbigpO30pLnRoZW4oZnVuY3Rpb24oZCl7UE9TVFM9ZC5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBEYXRlKGIuZGF0ZSktbmV3IERhdGUoYS5kYXRlKTt9KTtwaWxscygpO3JlbmRlcigpO30pLmNhdGNoKGZ1bmN0aW9uKGUpe2dyaWQuaW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSdvYi1lbXB0eSc+Q291bGQgbm90IGxvYWQgYXJ0aWNsZXMuPC9kaXY+Ijt9KTs=