Jira
- -diff --git a/dist/content.js b/dist/content.js index 3920a37..4d100e7 100644 --- a/dist/content.js +++ b/dist/content.js @@ -522,10 +522,16 @@ /*! ../../MakeBranchName */ './src/MakeBranchName.js' ); - var isPageAJiraTaskIUPage = function isPageAJiraTaskIUPage() { - return location.host.includes('jira.danskespil.dk') && location.pathname.startsWith('/browse/IU-'); + var isPageAJiraTask = function isPageAJiraTask() { + return location.host.includes('jira.danskespil.dk') && location.pathname.startsWith('/browse/'); }; - var createCTA = function createCTA() { + var isJiraIU = function isJiraIU() { + return location.pathname.includes('/IU-'); + }; + var isJiraFOR = function isJiraFOR() { + return location.pathname.includes('/FOR-'); + }; + var createCTA = function createCTA(repo) { var branchName = (0, _MakeBranchName__WEBPACK_IMPORTED_MODULE_0__['default'])(); if (!branchName) return; var toolBar = document.querySelector('.aui-toolbar2-primary'); @@ -536,15 +542,15 @@ cta.innerText = 'Create Branch'; cta.addEventListener('click', function () { window.open( - 'https://github.com/ds-itu-frontend-service/danskespil-website/branches?newBranch=' + branchName + 'https://github.com/ds-itu-frontend-service/'.concat(repo, '/branches?newBranch=').concat(branchName) ); }); newCtaContainer.appendChild(cta); toolBar.appendChild(newCtaContainer); }; function showCreateBranchLink() { - if (isPageAJiraTaskIUPage()) { - createCTA(); + if (isPageAJiraTask() && (isJiraIU() || isJiraFOR())) { + createCTA('danskespil-website'); } } @@ -1300,4 +1306,4 @@ /******/ })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0EseUNBQXlDLHdDQUF3QztXQUNqRjtXQUNBO1dBQ0E7Ozs7O1dDUEE7Ozs7O1dDQUE7V0FDQTtXQUNBO1dBQ0EsdURBQXVELGlCQUFpQjtXQUN4RTtXQUNBLGdEQUFnRCxhQUFhO1dBQzdEOzs7Ozs7Ozs7Ozs7Ozs7QUNOMkQ7QUFDMEI7QUFDTjtBQUNHO0FBRWxGdEYsd0VBQXFCLENBQUMsQ0FBQztBQUN2QnBHLGtHQUF1QixDQUFDLENBQUM7QUFDekI0TCw0RkFBK0IsQ0FBQyxDQUFDO0FBQ2pDOUksK0ZBQW9CLENBQUMsQ0FBQztBQUV0QixJQUFJcEMsUUFBUSxDQUFDQyxJQUFJLENBQUMwRixRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUU7RUFDM0N6RyxRQUFRLENBQUMrQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsVUFBVXRCLEtBQUssRUFBRTtJQUNwRCxJQUFJQSxLQUFLLENBQUMxQyxHQUFHLEtBQUssSUFBSSxFQUFFO01BQ3RCO01BQ0FtTixLQUFLLENBQUMsZ0JBQWdCLENBQUM7TUFFdkI5QixNQUFNLENBQUMrQixPQUFPLENBQUNDLFdBQVcsQ0FBQztRQUFFQyxNQUFNLEVBQUU7TUFBaUIsQ0FBQyxFQUFFLFVBQVVDLFFBQVEsRUFBRTtRQUMzRUMsT0FBTyxDQUFDdE4sS0FBSyxDQUFDLDZCQUE2QixFQUFFcU4sUUFBUSxDQUFDO01BQ3hELENBQUMsQ0FBQztJQUNKO0VBQ0YsQ0FBQyxDQUFDO0FBQ0osQyIsInNvdXJjZXMiOlsid2VicGFjazovL2RzLWNocm9tZS1leHRlbnNpb24vLi9zcmMvQ29udGVudFNjcmlwdHMvR2l0aHViL0dpdEh1YkNyZWF0ZUJyYW5jaC5qcyIsIndlYnBhY2s6Ly9kcy1jaHJvbWUtZXh0ZW5zaW9uLy4vc3JjL0NvbnRlbnRTY3JpcHRzL0ppcmEvU2hvd0NyZWF0ZUJyYW5jaExpbmsuanMiLCJ3ZWJwYWNrOi8vZHMtY2hyb21lLWV4dGVuc2lvbi8uL3NyYy9Ec0ZpbmREaWN0aW9uYXJ5LmpzIiwid2VicGFjazovL2RzLWNocm9tZS1leHRlbnNpb24vLi9zcmMvTWFrZUJyYW5jaE5hbWUuanMiLCJ3ZWJwYWNrOi8vZHMtY2hyb21lLWV4dGVuc2lvbi8uL3NyYy9TaXRlY29yZUxheW91dEltcHJvdmVtZW50cy5qcyIsIndlYnBhY2s6Ly9kcy1jaHJvbWUtZXh0ZW5zaW9uL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2RzLWNocm9tZS1leHRlbnNpb24vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL2RzLWNocm9tZS1leHRlbnNpb24vd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9kcy1jaHJvbWUtZXh0ZW5zaW9uL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vZHMtY2hyb21lLWV4dGVuc2lvbi8uL3NyYy9jb250ZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHdhaXRGb3JFbGVtZW50ID0gYXN5bmMgKHNlbGVjdG9yKSA9PiB7XG4gIHdoaWxlICghZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvcikpIHtcbiAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHJlc29sdmUpKTtcbiAgfVxuICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2V0dXBHaXRodWJDcmVhdGVCcmFuY2goKSB7XG4gIGlmIChsb2NhdGlvbi5ob3N0ID09PSAnZ2l0aHViLmNvbScgJiYgbG9jYXRpb24uc2VhcmNoLmluY2x1ZGVzKCc/bmV3QnJhbmNoPScpKSB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICAgIGNvbnN0IG5ld0JyYW5jaCA9IHBhcmFtcy5nZXQoJ25ld0JyYW5jaCcpO1xuXG4gICAgY29uc3QgY3RhID0gYXdhaXQgd2FpdEZvckVsZW1lbnQoJ1thcHAtbmFtZT1cInJlcG9zLWJyYW5jaGVzXCJdIGJ1dHRvbicpO1xuICAgIGN0YT8uY2xpY2soKTtcbiAgICBjb25zdCBpbnB1dCA9IGF3YWl0IHdhaXRGb3JFbGVtZW50KCdbcm9sZT1kaWFsb2ddW2RhdGEtZm9jdXMtdHJhcD1cImFjdGl2ZVwiXSBpbnB1dCcpO1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vIFNldCB0aGUgdmFsdWUgYXR0cmlidXRlIGRpcmVjdGx5XG4gICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgndmFsdWUnLCBuZXdCcmFuY2gpO1xuXG4gICAgICAgIC8vIERpc3BhdGNoIGV2ZW50c1xuICAgICAgICBjb25zdCBldmVudHNUb0Rpc3BhdGNoID0gWydpbnB1dCcsICdjaGFuZ2UnLCAna2V5dXAnXTtcbiAgICAgICAgZXZlbnRzVG9EaXNwYXRjaC5mb3JFYWNoKChldmVudFR5cGUpID0+IHtcbiAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudChldmVudFR5cGUsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgICB9LCA1MDApO1xuICAgIH1cblxuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uKTtcbiAgICB1cmwuc2VhcmNoUGFyYW1zLmRlbGV0ZSgnbmV3QnJhbmNoJyk7XG4gICAgaGlzdG9yeS5wdXNoU3RhdGUoe30sICcnLCB1cmwpO1xuICB9XG59XG4iLCJpbXBvcnQgbWFrZUJyYW5jaE5hbWUgZnJvbSAnLi4vLi4vTWFrZUJyYW5jaE5hbWUnO1xuXG5jb25zdCBpc1BhZ2VBSmlyYVRhc2tJVVBhZ2UgPSAoKSA9PlxuICBsb2NhdGlvbi5ob3N0LmluY2x1ZGVzKCdqaXJhLmRhbnNrZXNwaWwuZGsnKSAmJiBsb2NhdGlvbi5wYXRobmFtZS5zdGFydHNXaXRoKCcvYnJvd3NlL0lVLScpO1xuXG5jb25zdCBjcmVhdGVDVEEgPSAoKSA9PiB7XG4gIGNvbnN0IGJyYW5jaE5hbWUgPSBtYWtlQnJhbmNoTmFtZSgpO1xuICBpZiAoIWJyYW5jaE5hbWUpIHJldHVybjtcblxuICBjb25zdCB0b29sQmFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmF1aS10b29sYmFyMi1wcmltYXJ5Jyk7XG4gIGNvbnN0IG5ld0N0YUNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBuZXdDdGFDb250YWluZXIuY2xhc3NMaXN0LmFkZCgnYXVpLWJ1dHRvbnMnKTtcbiAgY29uc3QgY3RhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICBjdGEuY2xhc3NMaXN0LmFkZCgnYXVpLWJ1dHRvbicpO1xuICBjdGEuaW5uZXJUZXh0ID0gJ0NyZWF0ZSBCcmFuY2gnO1xuICBjdGEuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgd2luZG93Lm9wZW4oJ2h0dHBzOi8vZ2l0aHViLmNvbS9kcy1pdHUtZnJvbnRlbmQtc2VydmljZS9kYW5za2VzcGlsLXdlYnNpdGUvYnJhbmNoZXM/bmV3QnJhbmNoPScgKyBicmFuY2hOYW1lKTtcbiAgfSk7XG4gIG5ld0N0YUNvbnRhaW5lci5hcHBlbmRDaGlsZChjdGEpO1xuICB0b29sQmFyLmFwcGVuZENoaWxkKG5ld0N0YUNvbnRhaW5lcik7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc2hvd0NyZWF0ZUJyYW5jaExpbmsoKSB7XG4gIGlmIChpc1BhZ2VBSmlyYVRhc2tJVVBhZ2UoKSkge1xuICAgIGNyZWF0ZUNUQSgpO1xuICB9XG59XG4iLCJjb25zdCBmaW5kVGV4dEluRGljdGlvbmFyaWVzID0gKCkgPT4ge1xuICBjb25zdCBzZWFyY2hTdHJpbmcgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuXG4gIGlmIChzZWFyY2hTdHJpbmc/Lmxlbmd0aCA+IDQpIHtcbiAgICBsZXQgcmVzdWx0cyA9IHt9O1xuXG4gICAgY29uc3Qgb3V0cHV0ID0gKHsga2V5LCBrZXkyLCBrZXkzLCBrZXk0LCBrZXk1LCBrZXk2LCBrZXk3LCBrZXk4LCByZXMsIGRpY3Rpb25hcnlLZXkgfSkgPT4ge1xuICAgICAga2V5ID0ga2V5ID8ga2V5ICsgJy8nIDogJyc7XG4gICAgICBrZXkyID0ga2V5MiA/IGtleTIgKyAnLycgOiAnJztcbiAgICAgIGtleTMgPSBrZXkzID8ga2V5MyArICcvJyA6ICcnO1xuICAgICAga2V5NCA9IGtleTQgPyBrZXk0ICsgJy8nIDogJyc7XG4gICAgICBrZXk1ID0ga2V5NSA/IGtleTUgKyAnLycgOiAnJztcbiAgICAgIGtleTYgPSBrZXk2ID8ga2V5NiArICcvJyA6ICcnO1xuICAgICAga2V5NyA9IGtleTcgPyBrZXk3ICsgJy8nIDogJyc7XG4gICAgICBrZXk4ID0ga2V5OCA/IGtleTggKyAnLycgOiAnJztcblxuICAgICAgY29uc3QgaXNEbG8gPSBkaWN0aW9uYXJ5S2V5LmluY2x1ZGVzKCctRExPLScpO1xuXG4gICAgICBjb25zdCByZWdpb24gPSBkaWN0aW9uYXJ5S2V5LnNwbGl0KCdwYXRoPS8nKVsxXS5zcGxpdCgnJicpWzBdICsgJy8nO1xuXG4gICAgICByZXN1bHRzW3JlZ2lvbiArIGtleTIgKyBrZXkzICsga2V5NCArIGtleTUgKyBrZXk2ICsga2V5NyArIGtleThdID0ge1xuICAgICAgICBpc0RsbyxcbiAgICAgICAgcmVzLFxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgbGV0IGluZGV4S2V5ID0gMDtcbiAgICBjb25zdCBkaWN0aW9uYXJ5S2V5cyA9IFtdO1xuXG4gICAgd2hpbGUgKGxvY2FsU3RvcmFnZS5rZXkoaW5kZXhLZXkpKSB7XG4gICAgICBjb25zdCBzdG9yYWdlS2V5ID0gbG9jYWxTdG9yYWdlLmtleShpbmRleEtleSk7XG5cbiAgICAgIGlmIChzdG9yYWdlS2V5LmluY2x1ZGVzKCcvZGxvL3NjYXBpL2NvbW1vbi9kaWN0aW9uYXJ5L2RpY3Rpb25hcnknKSkge1xuICAgICAgICBkaWN0aW9uYXJ5S2V5cy5wdXNoKHN0b3JhZ2VLZXkpO1xuICAgICAgfVxuXG4gICAgICBpbmRleEtleSsrO1xuICAgIH1cblxuICAgIGRpY3Rpb25hcnlLZXlzLmZvckVhY2goKGRpY3Rpb25hcnlLZXkpID0+IHtcbiAgICAgIGNvbnN0IHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGRpY3Rpb25hcnlLZXkpKTtcblxuICAgICAgaWYgKHR5cGVvZiBzICE9PSAnb2JqZWN0JykgcmV0dXJuO1xuXG4gICAgICBPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKCFzW2tleV0pIHJldHVybjtcblxuICAgICAgICBpZiAodHlwZW9mIHNba2V5XSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBpZiAoc1trZXldLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKSkge1xuICAgICAgICAgICAgb3V0cHV0KHtcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICByZXM6IHNba2V5XSxcbiAgICAgICAgICAgICAgZGljdGlvbmFyeUtleSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5rZXlzKHNba2V5XSkuZm9yRWFjaCgoa2V5MikgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2Ygc1trZXldW2tleTJdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKHNba2V5XVtrZXkyXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFN0cmluZykpIHtcbiAgICAgICAgICAgICAgb3V0cHV0KHtcbiAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAga2V5MixcbiAgICAgICAgICAgICAgICByZXM6IHNba2V5XVtrZXkyXSxcbiAgICAgICAgICAgICAgICBkaWN0aW9uYXJ5S2V5LFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBPYmplY3Qua2V5cyhzW2tleV1ba2V5Ml0pLmZvckVhY2goKGtleTMpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc1trZXldW2tleTJdW2tleTNdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICBpZiAoc1trZXldW2tleTJdW2tleTNdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKSkge1xuICAgICAgICAgICAgICAgIG91dHB1dCh7XG4gICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICBrZXkyLFxuICAgICAgICAgICAgICAgICAga2V5MyxcbiAgICAgICAgICAgICAgICAgIHJlczogc1trZXldW2tleTJdW2tleTNdLFxuICAgICAgICAgICAgICAgICAgZGljdGlvbmFyeUtleSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhzW2tleV1ba2V5Ml1ba2V5M10pLmZvckVhY2goKGtleTQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNba2V5XVtrZXkyXVtrZXkzXVtrZXk0XS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFN0cmluZykpIHtcbiAgICAgICAgICAgICAgICAgIG91dHB1dCh7XG4gICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAga2V5MixcbiAgICAgICAgICAgICAgICAgICAga2V5MyxcbiAgICAgICAgICAgICAgICAgICAga2V5NCxcbiAgICAgICAgICAgICAgICAgICAgcmVzOiBzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF0sXG4gICAgICAgICAgICAgICAgICAgIGRpY3Rpb25hcnlLZXksXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBPYmplY3Qua2V5cyhzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF0pLmZvckVhY2goKGtleTUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHNba2V5XVtrZXkyXVtrZXkzXVtrZXk0XVtrZXk1XSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF1ba2V5NV0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hTdHJpbmcpKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCh7XG4gICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgIGtleTIsXG4gICAgICAgICAgICAgICAgICAgICAga2V5MyxcbiAgICAgICAgICAgICAgICAgICAgICBrZXk0LFxuICAgICAgICAgICAgICAgICAgICAgIGtleTUsXG4gICAgICAgICAgICAgICAgICAgICAgcmVzOiBzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF1ba2V5NV0sXG4gICAgICAgICAgICAgICAgICAgICAgZGljdGlvbmFyeUtleSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdKS5mb3JFYWNoKChrZXk2KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHNba2V5XVtrZXkyXVtrZXkzXVtrZXk0XVtrZXk1XVtrZXk2XSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNba2V5XVtrZXkyXVtrZXkzXVtrZXk0XVtrZXk1XVtrZXk2XS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFN0cmluZykpIHtcbiAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5MixcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTMsXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk0LFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5NSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTYsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXM6IHNba2V5XVtrZXkyXVtrZXkzXVtrZXk0XVtrZXk1XVtrZXk2XSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpY3Rpb25hcnlLZXksXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdW2tleTZdKS5mb3JFYWNoKChrZXk3KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdW2tleTZdW2tleTddID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF1ba2V5NV1ba2V5Nl1ba2V5N10udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hTdHJpbmcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlczogc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdW2tleTZdW2tleTddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaWN0aW9uYXJ5S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdW2tleTZdW2tleTddKS5mb3JFYWNoKChrZXk4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF1ba2V5NV1ba2V5Nl1ba2V5N11ba2V5OF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdW2tleTZdW2tleTddW2tleThdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5NCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk1LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5NyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlczogc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdW2tleTZdW2tleTddW2tleThdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpY3Rpb25hcnlLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbnRlbnQgPSBbXTtcbiAgICBpZiAoT2JqZWN0LmtleXMocmVzdWx0cykubGVuZ3RoID4gMTUwKSByZXR1cm47XG4gICAgT2JqZWN0LmtleXMocmVzdWx0cykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCB1cmwgPSBnZXREaWN0aW9uYXJ5VXJsKHJlc3VsdHNba2V5XS5pc0RsbykgKyBrZXk7XG4gICAgICBjb250ZW50LnB1c2goeyB0eHQ6IHJlc3VsdHNba2V5XS5yZXMsIHVybCwga2V5IH0pO1xuICAgIH0pO1xuXG4gICAgZmlsbERpY3Rpb25hcnkoY29udGVudCk7XG4gIH0gZWxzZSB7XG4gICAgY2xlYXJGaWxsRGljdGlvbmFyeSgpO1xuICB9XG59O1xuXG5jb25zdCBnZXREaWN0aW9uYXJ5VXJsID0gKGlzRGxvKSA9PiB7XG4gIGNvbnN0IGhvc3RQYXJ0cyA9IGxvY2F0aW9uLmhvc3Quc3BsaXQoJy4nKTtcbiAgY29uc3QgcHJvdG9jb2wgPSBsb2NhdGlvbi5wcm90b2NvbCArICcvLyc7XG4gIGNvbnN0IGlzVG93bkVudiA9IGhvc3RQYXJ0c1swXS5pbmNsdWRlcygndG93bicpO1xuICBjb25zdCBpc0RldkVudiA9IGhvc3RQYXJ0c1swXS5pbmNsdWRlcygnd2ViJyk7XG4gIGxldCBlbnZQYXJ0O1xuXG4gIGlmIChpc0RldkVudikge1xuICAgIGVudlBhcnQgPSBgd2ViLiR7aG9zdFBhcnRzWzFdfWA7XG4gIH0gZWxzZSBpZiAoaXNUb3duRW52KSB7XG4gICAgZW52UGFydCA9IGAke2hvc3RQYXJ0c1swXX1lZGl0JHtpc0RsbyA/ICdkbG8nIDogJ2RsaSd9YDtcbiAgfSBlbHNlIHtcbiAgICBlbnZQYXJ0ID0gYGVkaXQke2lzRGxvID8gJ2RsbycgOiAnZGxpJ31gO1xuICB9XG5cbiAgcmV0dXJuIGAke3Byb3RvY29sfSR7ZW52UGFydH0uZGFuc2tlc3BpbC5kay9zaXRlY29yZS9zaGVsbC9BcHBsaWNhdGlvbnMvQ29udGVudCUyMEVkaXRvci5hc3B4P3NjX2J3PTEmZm89L3NpdGVjb3JlL2NvbnRlbnQvRGFuc2tlU3BpbC9TaXRlJTIwc2V0dGluZ3MvRGljdGlvbmFyeS9gO1xufTtcblxuY29uc3QgY2xlYXJGaWxsRGljdGlvbmFyeSA9ICgpID0+IHtcbiAgY29uc3QgcmVtb3ZlRWxlbWVudEJ5SWQgPSAoaWQpID0+IHtcbiAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgICBpZiAoZWwpIGVsLnJlbW92ZSgpO1xuICB9O1xuXG4gIHJlbW92ZUVsZW1lbnRCeUlkKCdmaW5kVGV4dEluRGljdGlvbmFyaWVzJyk7XG4gIHJlbW92ZUVsZW1lbnRCeUlkKCdmaW5kVGV4dEluRGljdGlvbmFyaWVzU3R5bGUnKTtcbn07XG5cbmNvbnN0IGVuc3VyZUVsZW1lbnQgPSAoaWQsIGNyZWF0ZUVsZW1lbnQpID0+IHtcbiAgbGV0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICBpZiAoIWVsKSB7XG4gICAgZWwgPSBjcmVhdGVFbGVtZW50KCk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbCk7XG4gIH1cbiAgcmV0dXJuIGVsO1xufTtcblxuY29uc3Qgc2V0U3R5bGUgPSAoc3R5bGUsIGNzcykgPT4ge1xuICBzdHlsZS5pbm5lclRleHQgPSBjc3M7XG59O1xuXG5jb25zdCBmaWxsRGljdGlvbmFyeSA9IChjb250ZW50KSA9PiB7XG4gIGNvbnN0IGVsID0gZW5zdXJlRWxlbWVudCgnZmluZFRleHRJbkRpY3Rpb25hcmllcycsICgpID0+IHtcbiAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBkaXYuaWQgPSAnZmluZFRleHRJbkRpY3Rpb25hcmllcyc7XG4gICAgcmV0dXJuIGRpdjtcbiAgfSk7XG4gIGVsLmlubmVyVGV4dCA9ICcnO1xuXG4gIGNvbnN0IHN0eWxlID0gZW5zdXJlRWxlbWVudCgnZmluZFRleHRJbkRpY3Rpb25hcmllc1N0eWxlJywgKCkgPT4ge1xuICAgIGNvbnN0IHN0eWxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIHN0eWxlRWwuaWQgPSAnZmluZFRleHRJbkRpY3Rpb25hcmllc1N0eWxlJztcbiAgICByZXR1cm4gc3R5bGVFbDtcbiAgfSk7XG5cbiAgc2V0U3R5bGUoXG4gICAgc3R5bGUsXG4gICAgYFxuICAgICAgICAjZmluZFRleHRJbkRpY3Rpb25hcmllcyB7XG4gICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgIHotaW5kZXg6IDEwMDAwMDAwMDE7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB0b3A6IDEwMHZoO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNlZGVkZWQ7XG4gICAgICAgICAgcGFkZGluZzogMTVweCAyMHB4O1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDEzcHggMXB4ICNjY2M7XG4gICAgICAgICAgbWF4LWhlaWdodDogOTV2aDtcbiAgICAgICAgICBtYXgtd2lkdGg6IDk1dnc7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICNmaW5kVGV4dEluRGljdGlvbmFyaWVzOjphZnRlciB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDEwMDAwMDAwMDA7XG4gICAgICAgICAgY29udGVudDogXCIke2NvbnRlbnQubGVuZ3RofVwiO1xuICAgICAgICAgIHRvcDogLTM1cHg7XG4gICAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2JkZmZlNTtcbiAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSA1MCUgMCAwO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAjZmluZFRleHRJbkRpY3Rpb25hcmllczpob3ZlciB7XG4gICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgI2ZpbmRUZXh0SW5EaWN0aW9uYXJpZXMgYSB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAjZmluZFRleHRJbkRpY3Rpb25hcmllcyBhOmhvdmVyIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgI2ZpbmRUZXh0SW5EaWN0aW9uYXJpZXMgcCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICNmaW5kVGV4dEluRGljdGlvbmFyaWVzIGEge1xuICAgICAgICAgIG1hcmdpbjogMCAwIDVweCAxMHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgICBgXG4gICk7XG5cbiAgY29udGVudC5mb3JFYWNoKCh7IHR4dCwgdXJsLCBrZXkgfSkgPT4ge1xuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGNvbnN0IHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBwLmlubmVyVGV4dCA9IHR4dDtcbiAgICBhLmhyZWYgPSB1cmw7XG4gICAgYS50YXJnZXQgPSAnX2JsYW5rJztcbiAgICBhLnRleHQgPSBrZXk7XG4gICAgZGl2LmFwcGVuZENoaWxkKHApO1xuICAgIGRpdi5hcHBlbmRDaGlsZChhKTtcbiAgICBlbC5hcHBlbmRDaGlsZChkaXYpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cERzRmluZERpY3Rpb25hcnkoKSB7XG4gIGlmIChsb2NhdGlvbi5ob3N0LmVuZHNXaXRoKCdkYW5za2VzcGlsLmRrJykgJiYgIWxvY2F0aW9uLnBhdGhuYW1lLnN0YXJ0c1dpdGgoJy9zaXRlY29yZS8nKSkge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGlvbmNoYW5nZScsIGZpbmRUZXh0SW5EaWN0aW9uYXJpZXMpO1xuICB9XG59XG4iLCJmdW5jdGlvbiBtYWtlQnJhbmNoTmFtZSgpIHtcbiAgbGV0IHR5cGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaXNzdWVkZXRhaWxzICN0eXBlLXZhbCcpO1xuICBsZXQgaXNzdWUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaXNzdWUtbGluaycpO1xuICBsZXQgc3VtbWFyeSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzdW1tYXJ5LXZhbCcpO1xuXG4gIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZ2h4LWNvbHVtbnMgLmdoeC1pc3N1ZS5naHgtc2VsZWN0ZWQnKSkge1xuICAgIHR5cGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZ2h4LWlzc3VlLmdoeC1zZWxlY3RlZCAuZ2h4LXR5cGUnKTtcbiAgICBpc3N1ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5naHgtaXNzdWUuZ2h4LXNlbGVjdGVkIC5naHgta2V5Jyk7XG4gICAgc3VtbWFyeSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5naHgtaXNzdWUuZ2h4LXNlbGVjdGVkIC5naHgtc3VtbWFyeScpO1xuICB9XG5cbiAgaWYgKCEodHlwZSAmJiBpc3N1ZSAmJiBzdW1tYXJ5KSkgcmV0dXJuO1xuXG4gIHR5cGUgPSB0eXBlLmlubmVyVGV4dCB8fCB0eXBlLnRpdGxlO1xuICB0eXBlID0gdHlwZS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgdHlwZSA9IHR5cGUucmVwbGFjZSgvc3RvcnkvLCAnZmVhdHVyZScpO1xuXG4gIGlzc3VlID0gaXNzdWUuaW5uZXJUZXh0LnRyaW0oKTtcblxuICBzdW1tYXJ5ID0gc3VtbWFyeS5pbm5lclRleHRcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC5yZXBsYWNlKC9bXmEteiBdL2csICctJylcbiAgICAucmVwbGFjZSgvIC9nLCAnLScpXG4gICAgLnJlcGxhY2UoLy0tKy9nLCAnLScpO1xuXG4gIHJldHVybiBgJHt0eXBlfS8ke2lzc3VlfS0ke3N1bW1hcnl9YC5zbGljZSgwLCA1MCkucmVwbGFjZSgvLSQvLCAnJyk7XG59XG5cbi8vIEFkZCB0byB3aW5kb3csIGFzIGl0J3MgdXNlZCBpbiBKaXJhTWFrZUJSYW5jaE5hbWUuanMuXG53aW5kb3cubWFrZUJyYW5jaE5hbWUgPSBtYWtlQnJhbmNoTmFtZTtcblxuZXhwb3J0IGRlZmF1bHQgbWFrZUJyYW5jaE5hbWU7XG4iLCJsZXQgcHJldmlvdXNTZWxlY3RlZFNpdGVjb3JlSWQgPSAnJztcbmxldCBzaG93RmF2b3JpdGVzUG9wdXAgPSBmYWxzZTtcbmxldCBkZWZhdWx0VGV4dEFyZWFIZWlnaHQgPSAnNTAwcHg7JztcblxuY29uc3QgYWRkVXJsVG9UcmVlTGlzdElkcyA9ICgpID0+IHtcbiAgY29uc3QgdHJlZUxpc3RzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnNjQ29udGVudENvbnRyb2xTZWxlY3RlZExpc3QnKTtcblxuICB0cmVlTGlzdHMuZm9yRWFjaCgodHJlZUxpc3QpID0+IHtcbiAgICBpZiAodHJlZUxpc3QuY2xhc3NMaXN0LmNvbnRhaW5zKCdDaHJvbWVFeHRlbnNpb25BZGRVcmxUb1RyZWVMaXN0SWRzJykpIHJldHVybjtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB0cmVlTGlzdC5xdWVyeVNlbGVjdG9yQWxsKCdzZWxlY3Qgb3B0aW9uJyk7XG4gICAgY29uc3QgaGVscCA9IHRyZWVMaXN0LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNjQ29udGVudENvbnRyb2xUcmVlTGlzdEhlbHAnKTtcblxuICAgIGlmICghaGVscCB8fCBvcHRpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgdHJlZUxpc3QuY2xhc3NMaXN0LmFkZCgnQ2hyb21lRXh0ZW5zaW9uQWRkVXJsVG9UcmVlTGlzdElkcycpO1xuXG4gICAgb3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcbiAgICAgIGNvbnN0IGlkID0gb3B0aW9uLnZhbHVlPy5zcGxpdCgnfCcpPy5bMV07XG4gICAgICBpZiAoIWlkKSByZXR1cm47XG5cbiAgICAgIG9wdGlvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChsb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2ZvJywgaWQpO1xuICAgICAgICBpZiAoaGVscC5pbm5lckhUTUwuaW5jbHVkZXMoaWQpKSByZXR1cm47XG5cbiAgICAgICAgaGVscC5pbm5lckhUTUwgPSBgJHtoZWxwLmlubmVySFRNTH0gPGEgaHJlZj1cIiR7dXJsLmhyZWZ9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTBweDtcIj4ke2lkfTwvYT5gO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuY29uc3Qgc3RyZXRjaENvbHVtbiA9ICgpID0+IHtcbiAgY29uc3QgY29sdW1uV2lkdGggPSA0MDA7XG4gIGRvY3VtZW50LmNvb2tpZSA9IGBzY0NvbnRlbnRFZGl0b3JGb2xkZXJzV2lkdGg9JHtjb2x1bW5XaWR0aH07IGV4cGlyZXM9VGh1LCAzMSBEZWMgMjEwMCAxMjowMDowMCBVVEM7IHBhdGg9L2A7XG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNDb250ZW50VHJlZVBhbmVsJykuc3R5bGUud2lkdGggPSBgJHtjb2x1bW5XaWR0aH1weGA7XG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zcGxpdHRlci1iYXItdmVydGljYWwnKS5zdHlsZS5sZWZ0ID0gYCR7Y29sdW1uV2lkdGh9cHhgO1xuICBjb25zdCBlZGl0b3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjQ29udGVudEVkaXRvcicpO1xuICBlZGl0b3Iuc3R5bGUud2lkdGggPSBwYXJzZUludChlZGl0b3Iuc3R5bGUud2lkdGgpIC0gY29sdW1uV2lkdGggKyBwYXJzZUludChlZGl0b3Iuc3R5bGUubGVmdCkgKyAncHgnO1xuICBlZGl0b3Iuc3R5bGUubGVmdCA9IGAke2NvbHVtbldpZHRofXB4YDtcbn07XG5cbmNvbnN0IHNjcm9sbFRvSXRlbSA9ICgpID0+IHtcbiAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnNjQ29udGVudFRyZWVOb2RlQWN0aXZlJylbMF07XG4gIGNvbnN0IHRvZ2dsZUFycm93ID0gc2VsZWN0ZWRJdGVtLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignaW1nJyk7XG4gIHRvZ2dsZUFycm93ICYmIHRvZ2dsZUFycm93LmNsaWNrKCk7XG4gIHNlbGVjdGVkSXRlbSAmJiBzZWxlY3RlZEl0ZW0ucGFyZW50RWxlbWVudCAmJiBzZWxlY3RlZEl0ZW0ucGFyZW50RWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xufTtcblxuY29uc3QgZ2V0QWN0aXZlVHJlZU5vZGVUZXh0ID0gKCkgPT4ge1xuICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNjQ29udGVudFRyZWVOb2RlQWN0aXZlIHNwYW4nKS5pbm5lclRleHQ7XG59O1xuXG5jb25zdCBnZXRBY3RpdmVUcmVlTm9kZVBhdGggPSAoKSA9PiB7XG4gIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2NFZGl0b3JRdWlja0luZm8gdHI6bnRoLWNoaWxkKDMpIC5zY0VkaXRvckhlYWRlclF1aWNrSW5mb0lucHV0JykudmFsdWU7XG59O1xuXG5jb25zdCBhZGRCb29rbWFyayA9ICgpID0+IHtcbiAgY29uc3Qgc2l0ZWNvcmVUZXh0ID0gZ2V0QWN0aXZlVHJlZU5vZGVUZXh0KCk7XG4gIGlmIChzaXRlY29yZVRleHQgPT09IHByZXZpb3VzU2VsZWN0ZWRTaXRlY29yZUlkKSByZXR1cm47XG4gIHByZXZpb3VzU2VsZWN0ZWRTaXRlY29yZUlkID0gc2l0ZWNvcmVUZXh0O1xuXG4gIGxldCBib29rbWFya0xpbmsgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYm9va21hcmtMaW5rJyk7XG4gIGxldCBib29rbWFya1N0eWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2Jvb2ttYXJrU3R5bGUnKTtcblxuICBpZiAoIWJvb2ttYXJrTGluaykge1xuICAgIGJvb2ttYXJrTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBib29rbWFya0xpbmsuaWQgPSAnYm9va21hcmtMaW5rJztcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykuYXBwZW5kQ2hpbGQoYm9va21hcmtMaW5rKTtcbiAgICBib29rbWFya1N0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBib29rbWFya1N0eWxlLmlkID0gJ2Jvb2ttYXJrU3R5bGUnO1xuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKS5hcHBlbmRDaGlsZChib29rbWFya1N0eWxlKTtcbiAgfVxuXG4gIGJvb2ttYXJrTGluay5ocmVmID0gYGphdmFzY3JpcHQ6d2luZG93LmxvY2F0aW9uLmhyZWY9d2luZG93LmxvY2F0aW9uLm9yaWdpbisnL3NpdGVjb3JlL3NoZWxsL0FwcGxpY2F0aW9ucy9Db250ZW50IEVkaXRvci5hc3B4P3NjX2J3PTEmZm89JHtnZXRBY3RpdmVUcmVlTm9kZVBhdGgoKX0nYDtcbiAgYm9va21hcmtMaW5rLmlubmVySFRNTCA9IHNpdGVjb3JlVGV4dDtcblxuICBib29rbWFya1N0eWxlLmlubmVySFRNTCA9IGBcbiAgICAgICNib29rbWFya0xpbmsge1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICB6LWluZGV4OiAxMDAwMDAwO1xuICAgICAgICAgIHRvcDogMTFweDtcbiAgICAgICAgICBsZWZ0OiA2MHB4O1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsICdPcGVuIFNhbnMnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDhweCAwIDdweDtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMHB4IDFweCAjNTg1ODU4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgICB9XG4gICAgYDtcbn07XG5cbmNvbnN0IGluY3JlYXNlSGVpZ2h0T25UcmVlTGlzdHMgPSAoKSA9PiB7XG4gIGRvY3VtZW50XG4gICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zY0VkaXRvclNlY3Rpb25QYW5lbENlbGwgLnNjQ29udGVudENvbnRyb2wuc2NDb250ZW50Q29udHJvbFRyZWVsaXN0JylcbiAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuY2xpZW50SGVpZ2h0ID09PSAyMjApIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnNDAwcHgnO1xuICAgICAgfVxuICAgIH0pO1xufTtcblxuY29uc3QgZml4SW5wdXRDZWxsVGV4dEFyZWEgPSAoKSA9PiB7XG4gIGNvbnN0IHR4dHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuc2NFZGl0b3JGaWVsZE1hcmtlcklucHV0Q2VsbCB0ZXh0YXJlYScpO1xuICBpZiAodHh0cy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXhJbnB1dENlbGxUZXh0QXJlYScpKSB7XG4gICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIHN0eWxlLmlkID0gJ2ZpeElucHV0Q2VsbFRleHRBcmVhJztcbiAgICBzdHlsZS5pbm5lckhUTUwgPSBgXG4gICAgICAubW9ub3NwYWNlLWZvbnQge2ZvbnQtZmFtaWx5OiBDb25zb2xhcywgTW9uYWNvLCBcIkFuZGFsZSBNb25vXCIsIFwiVWJ1bnR1IE1vbm9cIiwgbW9ub3NwYWNlO31cbiAgICBgO1xuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKS5hcHBlbmRDaGlsZChzdHlsZSk7XG4gIH1cblxuICB0eHRzLmZvckVhY2goKHR4dCkgPT4ge1xuICAgIGlmICh0eHQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtb25vc3BhY2UtZm9udCcpKSByZXR1cm47XG5cbiAgICB0eHQuY2xhc3NMaXN0LmFkZCgnbW9ub3NwYWNlLWZvbnQnKTtcbiAgICB0eHQuc2V0QXR0cmlidXRlKCdzcGVsbGNoZWNrJywgZmFsc2UpO1xuXG4gICAgdHh0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5zdHlsZS5oZWlnaHQgPSAnODAwcHgnO1xuICAgICAgdGhpcy5zdHlsZS5mb250U2l6ZSA9ICcxM3B4JztcbiAgICAgIHRoaXMuc3R5bGUubGluZUhlaWdodCA9ICcxLjQ1JztcbiAgICB9KTtcblxuICAgIHR4dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5zdHlsZSA9IGBoZWlnaHQ6ICR7ZGVmYXVsdFRleHRBcmVhSGVpZ2h0fWA7IC8vIEZyb20gZW5sYXJnZVRyZWVsaXN0KCkgZnVuY3Rpb24gYmVsb3cuXG4gICAgfSk7XG4gIH0pO1xufTtcblxuY29uc3QgZW5sYXJnZVRyZWVsaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkYXRhU2VjdGlvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tpZCo9XCJTZWN0aW9uX0RhdGFcIl0nKTtcbiAgaWYgKCFkYXRhU2VjdGlvbikgcmV0dXJuO1xuICBsZXQgZGF0YVRyZWVsaXN0ID0gZG9jdW1lbnRcbiAgICAucXVlcnlTZWxlY3RvcignW2lkKj1cIlNlY3Rpb25fRGF0YVwiXScpXG4gICAgLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNjQ29udGVudENvbnRyb2xUcmVlbGlzdCcpO1xuICBpZiAoIWRhdGFUcmVlbGlzdCkgcmV0dXJuO1xuICBkYXRhVHJlZWxpc3Quc3R5bGUgPSBgaGVpZ2h0OiAke2RlZmF1bHRUZXh0QXJlYUhlaWdodH1gO1xufTtcblxuY29uc3QgZ2V0RmF2b3JpdGVJdGVtTGFiZWwgPSAoZmF2b3JpdGUpID0+IHtcbiAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gIHNwYW4uaW5uZXJUZXh0ID0gZmF2b3JpdGUubGFiZWw7XG4gIHJldHVybiBzcGFuO1xufTtcblxuY29uc3QgZ2V0RmF2b3JpdGVJdGVtUGFyZW50VGV4dCA9IChmYXZvcml0ZSkgPT4ge1xuICBsZXQgcGF0aCA9IGZhdm9yaXRlLnBhdGguc3BsaXQoJy8nKTtcbiAgcGF0aC5wb3AoKTtcbiAgcGF0aCA9IHBhdGguam9pbignLycpO1xuICBwYXRoID0gYCR7cGF0aH0vIGA7XG4gIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICBzcGFuLmNsYXNzTmFtZSA9ICdDaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1BvcHVwSXRlbVBhcmVudCc7XG4gIHNwYW4uaW5uZXJUZXh0ID0gcGF0aDtcbiAgcmV0dXJuIHNwYW47XG59O1xuXG5jb25zdCBhZGRGYXZvcml0ZXMgPSAoKSA9PiB7XG4gIGxldCBmYXZvcml0ZXNTdHlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNDaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1N0eWxlJyk7XG5cbiAgaWYgKCFmYXZvcml0ZXNTdHlsZSkge1xuICAgIGZhdm9yaXRlc1N0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBmYXZvcml0ZXNTdHlsZS5pZCA9ICdDaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1N0eWxlJztcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykuYXBwZW5kQ2hpbGQoZmF2b3JpdGVzU3R5bGUpO1xuICAgIGZhdm9yaXRlc1N0eWxlLmlubmVySFRNTCA9IGBcbiAgICAgIC5zYy1nbG9iYWxIZWFkZXIge1xuICAgICAgICB6LWluZGV4OiAxMDE7XG4gICAgICB9XG4gICAgICBcbiAgICAgICNDaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlcyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgICAgI0Nocm9tZUV4dGVuc2lvbkZvclNpdGVjb3JlRmF2b3JpdGVzUG9wdXAge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDEwMDAwMDtcbiAgICAgICAgYmFja2dyb3VuZDogIzJiMmIyYjtcbiAgICAgICAgdG9wOiA1MHB4O1xuICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZzogMCA1cHggNnB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgcGFkZGluZzogNnB4IDdweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDM1cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG4gICAgICAuQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW06aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5DaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1BvcHVwSXRlbSBzcGFuLkNocm9tZUV4dGVuc2lvbkZvclNpdGVjb3JlRmF2b3JpdGVzUG9wdXBJdGVtUmVtb3ZlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLkNocm9tZUV4dGVuc2lvbkZvclNpdGVjb3JlRmF2b3JpdGVzUG9wdXBJdGVtIHNwYW4uQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW1SZW1vdmU6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZWQ7IFxuICAgICAgfVxuICAgICAgXG4gICAgICAuQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW0gc3Bhbi5DaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1BvcHVwSXRlbVBhcmVudCB7XG4gICAgICAgIGNvbG9yOiAjOTY5Njk2O1xuICAgICAgfVxuICAgIFxuICAgICAgI0Nocm9tZUV4dGVuc2lvbkZvclNpdGVjb3JlRmF2b3JpdGVzUG9wdXBBZGRGYXZvcml0ZSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgcGFkZGluZzogNnB4IDdweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHJlZDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1gO1xuICB9XG5cbiAgY2hyb21lLnN0b3JhZ2Uuc3luYy5nZXQoJ2Zhdm9yaXRlcycsICh7IGZhdm9yaXRlcyB9KSA9PiB7XG4gICAgZmF2b3JpdGVzID0gZmF2b3JpdGVzIHx8IFtdO1xuICAgIGlmIChmYXZvcml0ZXMubGVuZ3RoID4gMSkge1xuICAgICAgZmF2b3JpdGVzID0gZmF2b3JpdGVzLnNvcnQoKGEsIGIpID0+IChhLnBhdGggPiBiLnBhdGggPyAxIDogLTEpKTtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NJbmZvID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNjLWFjY291bnRJbmZvcm1hdGlvbicpO1xuICAgIGxldCBmYXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXMnKTtcbiAgICBsZXQgcG9wdXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cCcpO1xuXG4gICAgaWYgKCFmYXYpIHtcbiAgICAgIGZhdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7XG4gICAgICBmYXYuaWQgPSAnQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXMnO1xuICAgICAgZmF2LmlubmVyVGV4dCA9ICdGYXZvcml0ZXMnO1xuICAgICAgYWNjSW5mby5pbnNlcnRCZWZvcmUoZmF2LCBhY2NJbmZvLmZpcnN0Q2hpbGQpO1xuICAgICAgZmF2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBzaG93RmF2b3JpdGVzUG9wdXAgPSAhc2hvd0Zhdm9yaXRlc1BvcHVwO1xuICAgICAgICBhZGRGYXZvcml0ZXMoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghc2hvd0Zhdm9yaXRlc1BvcHVwICYmIHBvcHVwKSB7XG4gICAgICBmYXYucmVtb3ZlQ2hpbGQocG9wdXApO1xuICAgIH1cblxuICAgIGlmIChzaG93RmF2b3JpdGVzUG9wdXApIHtcbiAgICAgIGlmICghcG9wdXApIHtcbiAgICAgICAgcG9wdXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgcG9wdXAuaWQgPSAnQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cCc7XG4gICAgICAgIGZhdi5hcHBlbmRDaGlsZChwb3B1cCk7XG4gICAgICB9XG5cbiAgICAgIGZhdm9yaXRlcy5mb3JFYWNoKChmYXZvcml0ZSkgPT4ge1xuICAgICAgICBsZXQgZiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtDaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1BvcHVwSXRlbT1cIiR7ZmF2b3JpdGUucGF0aH1cIl1gKTtcblxuICAgICAgICBpZiAoIWYpIHtcbiAgICAgICAgICBmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgZi5jbGFzc05hbWUgPSAnQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW0nO1xuICAgICAgICAgIGYuc2V0QXR0cmlidXRlKCdDaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1BvcHVwSXRlbScsIGZhdm9yaXRlLnBhdGgpO1xuXG4gICAgICAgICAgZi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7bG9jYXRpb24ub3JpZ2lufSR7bG9jYXRpb24ucGF0aG5hbWV9P3NjX2J3PTEmZm89JHtmYXZvcml0ZS5wYXRofWA7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBmLmFwcGVuZENoaWxkKGdldEZhdm9yaXRlSXRlbVBhcmVudFRleHQoZmF2b3JpdGUpKTtcbiAgICAgICAgICBmLmFwcGVuZENoaWxkKGdldEZhdm9yaXRlSXRlbUxhYmVsKGZhdm9yaXRlKSk7XG5cbiAgICAgICAgICBsZXQgcmVtb3ZlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgIHJlbW92ZS5jbGFzc05hbWUgPSAnQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW1SZW1vdmUnO1xuICAgICAgICAgIHJlbW92ZS5pbm5lclRleHQgPSAneCc7XG4gICAgICAgICAgcmVtb3ZlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgZmF2b3JpdGVzID0gZmF2b3JpdGVzLmZpbHRlcigoZikgPT4gZiAhPT0gZmF2b3JpdGUpO1xuICAgICAgICAgICAgY2hyb21lLnN0b3JhZ2Uuc3luYy5zZXQoeyBmYXZvcml0ZXMgfSk7XG4gICAgICAgICAgICBwb3B1cC5yZW1vdmVDaGlsZChmKTtcbiAgICAgICAgICAgIGFkZEZhdm9yaXRlcygpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgZi5hcHBlbmRDaGlsZChyZW1vdmUpO1xuICAgICAgICAgIHBvcHVwLmFwcGVuZENoaWxkKGYpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbGV0IGlzSXRlbUluTWVudSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIGBbQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW0gPSBcIiR7Z2V0QWN0aXZlVHJlZU5vZGVQYXRoKCl9XCJdYFxuICAgICAgKTtcbiAgICAgIGxldCBhZGRCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEFkZEZhdm9yaXRlJyk7XG5cbiAgICAgIGlmIChhZGRCdXR0b24pIHBvcHVwLnJlbW92ZUNoaWxkKGFkZEJ1dHRvbik7XG5cbiAgICAgIGlmICghaXNJdGVtSW5NZW51KSB7XG4gICAgICAgIGFkZEJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBhZGRCdXR0b24uaWQgPSAnQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEFkZEZhdm9yaXRlJztcbiAgICAgICAgYWRkQnV0dG9uLmlubmVyVGV4dCA9IGBBZGQgJHtnZXRBY3RpdmVUcmVlTm9kZVRleHQoKX0gPyBgO1xuICAgICAgICBhZGRCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXYpID0+IHtcbiAgICAgICAgICBmYXZvcml0ZXMucHVzaCh7XG4gICAgICAgICAgICBsYWJlbDogZ2V0QWN0aXZlVHJlZU5vZGVUZXh0KCksXG4gICAgICAgICAgICBwYXRoOiBnZXRBY3RpdmVUcmVlTm9kZVBhdGgoKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjaHJvbWUuc3RvcmFnZS5zeW5jLnNldCh7IGZhdm9yaXRlcyB9KTtcbiAgICAgICAgICBhZGRGYXZvcml0ZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcG9wdXAuYXBwZW5kQ2hpbGQoYWRkQnV0dG9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufTtcblxuY29uc3QgYWRkSW1hZ2VEaXJlY3RVcmwgPSAoKSA9PiB7XG4gIGxldCBpdGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0VkaXRvckZyYW1lcycpPy5xdWVyeVNlbGVjdG9yKCdkaXYnKTtcbiAgbGV0IGlzVmlzaWJsZSA9IGl0ZW0/LnN0eWxlLmRpc3BsYXkgIT09ICdub25lJztcbiAgY29uc3QgdGFibGUgPSBpdGVtPy5xdWVyeVNlbGVjdG9yKCd0YWJsZS5zY0VkaXRvclF1aWNrSW5mbyB0Ym9keScpO1xuXG4gIGlmIChpdGVtPy5pZCAmJiBpc1Zpc2libGUgJiYgdGFibGUgJiYgIXRhYmxlLnF1ZXJ5U2VsZWN0b3IoJyNzY1Rvb2xNZWRpYVBhdGgnKSkge1xuICAgIGNvbnN0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTtcbiAgICB0ci5pZCA9ICdzY1Rvb2xNZWRpYVBhdGgnO1xuICAgIGNvbnN0IHRkMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7XG4gICAgY29uc3QgdGQyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTtcbiAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIGlucHV0LnNldEF0dHJpYnV0ZSgncmVhZG9ubHknLCAncmVhZG9ubHknKTtcbiAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDp0aGlzLnNlbGVjdCgpO3JldHVybiBmYWxzZScpO1xuICAgIGlucHV0LnZhbHVlID0gJy0vbWVkaWEvJyArIGl0ZW0uaWQucmVwbGFjZSgnRkNvbnRlbnQnLCAnJykgKyAnLmFzaHgnO1xuXG4gICAgdGQxLmlubmVyVGV4dCA9ICdSZWxhdGl2IHN0aTonO1xuICAgIHRkMi5hcHBlbmRDaGlsZChpbnB1dCk7XG4gICAgdHIuYXBwZW5kQ2hpbGQodGQxKTtcbiAgICB0ci5hcHBlbmRDaGlsZCh0ZDIpO1xuICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTtcbiAgfVxufTtcblxuY29uc3QgaW5pdGlhbGl6ZSA9ICgpID0+IHtcbiAgaWYgKGxvY2F0aW9uLmhvc3QuZW5kc1dpdGgoJ2RhbnNrZXNwaWwuZGsnKSkge1xuICAgIGlmIChsb2NhdGlvbi5wYXRobmFtZSA9PT0gJy9zaXRlY29yZS9zaGVsbC9BcHBsaWNhdGlvbnMvQ29udGVudCUyMEVkaXRvci5hc3B4Jykge1xuICAgICAgc3RyZXRjaENvbHVtbigpO1xuICAgICAgc2Nyb2xsVG9JdGVtKCk7XG4gICAgICBhZGRCb29rbWFyaygpO1xuICAgICAgc2V0SW50ZXJ2YWwoYWRkVXJsVG9UcmVlTGlzdElkcywgNTAwKTtcbiAgICAgIHNldEludGVydmFsKGluY3JlYXNlSGVpZ2h0T25UcmVlTGlzdHMsIDUwMCk7XG4gICAgICBzZXRJbnRlcnZhbChmaXhJbnB1dENlbGxUZXh0QXJlYSwgNTAwKTtcbiAgICAgIHNldEludGVydmFsKGFkZEJvb2ttYXJrLCA1MDApO1xuXG4gICAgICBzZXRJbnRlcnZhbChlbmxhcmdlVHJlZWxpc3QsIDUwMCk7XG5cbiAgICAgIGFkZEZhdm9yaXRlcygpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBzZXRUaW1lb3V0KGFkZEZhdm9yaXRlcywgNTAwKSk7XG4gICAgfVxuXG4gICAgaWYgKGxvY2F0aW9uLnBhdGhuYW1lID09PSAnL3NpdGVjb3JlL3NoZWxsL0FwcGxpY2F0aW9ucy9Db250ZW50JTIwTWFuYWdlci9EZWZhdWx0LmFzcHgnKSB7XG4gICAgICBzZXRJbnRlcnZhbChhZGRJbWFnZURpcmVjdFVybCwgNTAwKTtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cFNpdGVjb3JlTGF5b3V0SW1wcm92ZW1lbnRzKCkge1xuICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJyB8fCBkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnaW50ZXJhY3RpdmUnKSB7XG4gICAgLy8gRG9jdW1lbnQgaXMgYWxyZWFkeSByZWFkeSB0byBnbywgcnVuIHlvdXIgY29kZVxuICAgIGluaXRpYWxpemUoKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBBZGQgZXZlbnQgbGlzdGVuZXIgZm9yIERPTUNvbnRlbnRMb2FkZWRcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgaW5pdGlhbGl6ZSk7XG4gIH1cbn1cbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiaW1wb3J0IHsgc2V0dXBEc0ZpbmREaWN0aW9uYXJ5IH0gZnJvbSAnLi9Ec0ZpbmREaWN0aW9uYXJ5JztcbmltcG9ydCB7IHNldHVwR2l0aHViQ3JlYXRlQnJhbmNoIH0gZnJvbSAnLi9Db250ZW50U2NyaXB0cy9HaXRodWIvR2l0SHViQ3JlYXRlQnJhbmNoJztcbmltcG9ydCB7IHNldHVwU2l0ZWNvcmVMYXlvdXRJbXByb3ZlbWVudHMgfSBmcm9tICcuL1NpdGVjb3JlTGF5b3V0SW1wcm92ZW1lbnRzJztcbmltcG9ydCB7IHNob3dDcmVhdGVCcmFuY2hMaW5rIH0gZnJvbSAnLi9Db250ZW50U2NyaXB0cy9KaXJhL1Nob3dDcmVhdGVCcmFuY2hMaW5rJztcblxuc2V0dXBEc0ZpbmREaWN0aW9uYXJ5KCk7XG5zZXR1cEdpdGh1YkNyZWF0ZUJyYW5jaCgpO1xuc2V0dXBTaXRlY29yZUxheW91dEltcHJvdmVtZW50cygpO1xuc2hvd0NyZWF0ZUJyYW5jaExpbmsoKTtcblxuaWYgKGxvY2F0aW9uLmhvc3QuZW5kc1dpdGgoJ2RhbnNrZXNwaWwuZGsnKSkge1xuICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0YyJykge1xuICAgICAgLy8gRG8gc29tZXRoaW5nIHdoZW4gRjIgaXMgcHJlc3NlZFxuICAgICAgYWxlcnQoJ0YyIHdhcyBwcmVzc2VkJyk7XG5cbiAgICAgIGNocm9tZS5ydW50aW1lLnNlbmRNZXNzYWdlKHsgYWN0aW9uOiAnY2FsbE15RnVuY3Rpb24nIH0sIGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCd4eHggQ0FMTElORyBNWSBGVU5DVElPTiB4eHgnLCByZXNwb25zZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJlIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImluZm8iLCJlcnJvciIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiZXJyIiwidW5kZWZpbmVkIiwid2FpdEZvckVsZW1lbnQiLCJfcmVmIiwiX2NhbGxlZSIsInNlbGVjdG9yIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIl94Iiwic2V0dXBHaXRodWJDcmVhdGVCcmFuY2giLCJfc2V0dXBHaXRodWJDcmVhdGVCcmFuY2giLCJfY2FsbGVlMiIsInBhcmFtcyIsIm5ld0JyYW5jaCIsImN0YSIsImlucHV0IiwidXJsIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwibG9jYXRpb24iLCJob3N0Iiwic2VhcmNoIiwiaW5jbHVkZXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJnZXQiLCJjbGljayIsInNldFRpbWVvdXQiLCJzZXRBdHRyaWJ1dGUiLCJldmVudHNUb0Rpc3BhdGNoIiwiZXZlbnRUeXBlIiwiZXZlbnQiLCJFdmVudCIsImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwiZGlzcGF0Y2hFdmVudCIsIlVSTCIsIndpbmRvdyIsInNlYXJjaFBhcmFtcyIsImhpc3RvcnkiLCJwdXNoU3RhdGUiLCJtYWtlQnJhbmNoTmFtZSIsImlzUGFnZUFKaXJhVGFza0lVUGFnZSIsInBhdGhuYW1lIiwic3RhcnRzV2l0aCIsImNyZWF0ZUNUQSIsImJyYW5jaE5hbWUiLCJ0b29sQmFyIiwibmV3Q3RhQ29udGFpbmVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTGlzdCIsImFkZCIsImlubmVyVGV4dCIsImFkZEV2ZW50TGlzdGVuZXIiLCJvcGVuIiwiYXBwZW5kQ2hpbGQiLCJzaG93Q3JlYXRlQnJhbmNoTGluayIsImZpbmRUZXh0SW5EaWN0aW9uYXJpZXMiLCJzZWFyY2hTdHJpbmciLCJnZXRTZWxlY3Rpb24iLCJ0b1N0cmluZyIsInRvTG93ZXJDYXNlIiwicmVzdWx0cyIsIm91dHB1dCIsImtleTIiLCJrZXkzIiwia2V5NCIsImtleTUiLCJrZXk2Iiwia2V5NyIsImtleTgiLCJyZXMiLCJkaWN0aW9uYXJ5S2V5IiwiaXNEbG8iLCJyZWdpb24iLCJzcGxpdCIsImluZGV4S2V5IiwiZGljdGlvbmFyeUtleXMiLCJsb2NhbFN0b3JhZ2UiLCJzdG9yYWdlS2V5IiwiSlNPTiIsInBhcnNlIiwiZ2V0SXRlbSIsImNvbnRlbnQiLCJnZXREaWN0aW9uYXJ5VXJsIiwidHh0IiwiZmlsbERpY3Rpb25hcnkiLCJjbGVhckZpbGxEaWN0aW9uYXJ5IiwiaG9zdFBhcnRzIiwicHJvdG9jb2wiLCJpc1Rvd25FbnYiLCJpc0RldkVudiIsImVudlBhcnQiLCJjb25jYXQiLCJyZW1vdmVFbGVtZW50QnlJZCIsImlkIiwiZWwiLCJnZXRFbGVtZW50QnlJZCIsInJlbW92ZSIsImVuc3VyZUVsZW1lbnQiLCJib2R5Iiwic2V0U3R5bGUiLCJzdHlsZSIsImNzcyIsImRpdiIsInN0eWxlRWwiLCJfcmVmMiIsImhyZWYiLCJ0YXJnZXQiLCJ0ZXh0Iiwic2V0dXBEc0ZpbmREaWN0aW9uYXJ5IiwiZW5kc1dpdGgiLCJpc3N1ZSIsInN1bW1hcnkiLCJ0aXRsZSIsInRyaW0iLCJyZXBsYWNlIiwicHJldmlvdXNTZWxlY3RlZFNpdGVjb3JlSWQiLCJzaG93RmF2b3JpdGVzUG9wdXAiLCJkZWZhdWx0VGV4dEFyZWFIZWlnaHQiLCJhZGRVcmxUb1RyZWVMaXN0SWRzIiwidHJlZUxpc3RzIiwicXVlcnlTZWxlY3RvckFsbCIsInRyZWVMaXN0IiwiY29udGFpbnMiLCJvcHRpb25zIiwiaGVscCIsInBhcmVudEVsZW1lbnQiLCJvcHRpb24iLCJfb3B0aW9uJHZhbHVlIiwic2V0IiwiaW5uZXJIVE1MIiwic3RyZXRjaENvbHVtbiIsImNvbHVtbldpZHRoIiwiY29va2llIiwid2lkdGgiLCJsZWZ0IiwiZWRpdG9yIiwicGFyc2VJbnQiLCJzY3JvbGxUb0l0ZW0iLCJzZWxlY3RlZEl0ZW0iLCJ0b2dnbGVBcnJvdyIsInNjcm9sbEludG9WaWV3IiwiZ2V0QWN0aXZlVHJlZU5vZGVUZXh0IiwiZ2V0QWN0aXZlVHJlZU5vZGVQYXRoIiwiYWRkQm9va21hcmsiLCJzaXRlY29yZVRleHQiLCJib29rbWFya0xpbmsiLCJib29rbWFya1N0eWxlIiwiaW5jcmVhc2VIZWlnaHRPblRyZWVMaXN0cyIsImVsZW1lbnQiLCJjbGllbnRIZWlnaHQiLCJoZWlnaHQiLCJmaXhJbnB1dENlbGxUZXh0QXJlYSIsInR4dHMiLCJmb250U2l6ZSIsImxpbmVIZWlnaHQiLCJlbmxhcmdlVHJlZWxpc3QiLCJkYXRhU2VjdGlvbiIsImRhdGFUcmVlbGlzdCIsImdldEZhdm9yaXRlSXRlbUxhYmVsIiwiZmF2b3JpdGUiLCJzcGFuIiwibGFiZWwiLCJnZXRGYXZvcml0ZUl0ZW1QYXJlbnRUZXh0IiwicGF0aCIsImpvaW4iLCJjbGFzc05hbWUiLCJhZGRGYXZvcml0ZXMiLCJmYXZvcml0ZXNTdHlsZSIsImNocm9tZSIsInN0b3JhZ2UiLCJzeW5jIiwiZmF2b3JpdGVzIiwic29ydCIsImIiLCJhY2NJbmZvIiwiZmF2IiwicG9wdXAiLCJpbnNlcnRCZWZvcmUiLCJmaXJzdENoaWxkIiwicmVtb3ZlQ2hpbGQiLCJvcmlnaW4iLCJmaWx0ZXIiLCJpc0l0ZW1Jbk1lbnUiLCJhZGRCdXR0b24iLCJldiIsImFkZEltYWdlRGlyZWN0VXJsIiwiX2RvY3VtZW50JGdldEVsZW1lbnRCIiwiaXRlbSIsImlzVmlzaWJsZSIsImRpc3BsYXkiLCJ0YWJsZSIsInRyIiwidGQxIiwidGQyIiwiaW5pdGlhbGl6ZSIsInNldEludGVydmFsIiwic2V0dXBTaXRlY29yZUxheW91dEltcHJvdmVtZW50cyIsInJlYWR5U3RhdGUiLCJhbGVydCIsInJ1bnRpbWUiLCJzZW5kTWVzc2FnZSIsImFjdGlvbiIsInJlc3BvbnNlIiwiY29uc29sZSJdLCJzb3VyY2VSb290IjoiIn0= +//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDO0lBQ0o7RUFDRixDQUFDLENBQUM7QUFDSixDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZHMtY2hyb21lLWV4dGVuc2lvbi8uL3NyYy9Db250ZW50U2NyaXB0cy9HaXRodWIvR2l0SHViQ3JlYXRlQnJhbmNoLmpzIiwid2VicGFjazovL2RzLWNocm9tZS1leHRlbnNpb24vLi9zcmMvQ29udGVudFNjcmlwdHMvSmlyYS9TaG93Q3JlYXRlQnJhbmNoTGluay5qcyIsIndlYnBhY2s6Ly9kcy1jaHJvbWUtZXh0ZW5zaW9uLy4vc3JjL0RzRmluZERpY3Rpb25hcnkuanMiLCJ3ZWJwYWNrOi8vZHMtY2hyb21lLWV4dGVuc2lvbi8uL3NyYy9NYWtlQnJhbmNoTmFtZS5qcyIsIndlYnBhY2s6Ly9kcy1jaHJvbWUtZXh0ZW5zaW9uLy4vc3JjL1NpdGVjb3JlTGF5b3V0SW1wcm92ZW1lbnRzLmpzIiwid2VicGFjazovL2RzLWNocm9tZS1leHRlbnNpb24vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vZHMtY2hyb21lLWV4dGVuc2lvbi93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vZHMtY2hyb21lLWV4dGVuc2lvbi93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL2RzLWNocm9tZS1leHRlbnNpb24vd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9kcy1jaHJvbWUtZXh0ZW5zaW9uLy4vc3JjL2NvbnRlbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgd2FpdEZvckVsZW1lbnQgPSBhc3luYyAoc2VsZWN0b3IpID0+IHtcbiAgd2hpbGUgKCFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKSkge1xuICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVzb2x2ZSkpO1xuICB9XG4gIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXR1cEdpdGh1YkNyZWF0ZUJyYW5jaCgpIHtcbiAgaWYgKGxvY2F0aW9uLmhvc3QgPT09ICdnaXRodWIuY29tJyAmJiBsb2NhdGlvbi5zZWFyY2guaW5jbHVkZXMoJz9uZXdCcmFuY2g9JykpIHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gICAgY29uc3QgbmV3QnJhbmNoID0gcGFyYW1zLmdldCgnbmV3QnJhbmNoJyk7XG5cbiAgICBjb25zdCBjdGEgPSBhd2FpdCB3YWl0Rm9yRWxlbWVudCgnW2FwcC1uYW1lPVwicmVwb3MtYnJhbmNoZXNcIl0gYnV0dG9uJyk7XG4gICAgY3RhPy5jbGljaygpO1xuICAgIGNvbnN0IGlucHV0ID0gYXdhaXQgd2FpdEZvckVsZW1lbnQoJ1tyb2xlPWRpYWxvZ11bZGF0YS1mb2N1cy10cmFwPVwiYWN0aXZlXCJdIGlucHV0Jyk7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gU2V0IHRoZSB2YWx1ZSBhdHRyaWJ1dGUgZGlyZWN0bHlcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd2YWx1ZScsIG5ld0JyYW5jaCk7XG5cbiAgICAgICAgLy8gRGlzcGF0Y2ggZXZlbnRzXG4gICAgICAgIGNvbnN0IGV2ZW50c1RvRGlzcGF0Y2ggPSBbJ2lucHV0JywgJ2NoYW5nZScsICdrZXl1cCddO1xuICAgICAgICBldmVudHNUb0Rpc3BhdGNoLmZvckVhY2goKGV2ZW50VHlwZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEV2ZW50KGV2ZW50VHlwZSwgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pO1xuICAgICAgICAgIGlucHV0LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIDUwMCk7XG4gICAgfVxuXG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24pO1xuICAgIHVybC5zZWFyY2hQYXJhbXMuZGVsZXRlKCduZXdCcmFuY2gnKTtcbiAgICBoaXN0b3J5LnB1c2hTdGF0ZSh7fSwgJycsIHVybCk7XG4gIH1cbn1cbiIsImltcG9ydCBtYWtlQnJhbmNoTmFtZSBmcm9tICcuLi8uLi9NYWtlQnJhbmNoTmFtZSc7XG5cbmNvbnN0IGlzUGFnZUFKaXJhVGFzayA9ICgpID0+IGxvY2F0aW9uLmhvc3QuaW5jbHVkZXMoJ2ppcmEuZGFuc2tlc3BpbC5kaycpICYmIGxvY2F0aW9uLnBhdGhuYW1lLnN0YXJ0c1dpdGgoJy9icm93c2UvJyk7XG5jb25zdCBpc0ppcmFJVSA9ICgpID0+IGxvY2F0aW9uLnBhdGhuYW1lLmluY2x1ZGVzKCcvSVUtJyk7XG5jb25zdCBpc0ppcmFGT1IgPSAoKSA9PiBsb2NhdGlvbi5wYXRobmFtZS5pbmNsdWRlcygnL0ZPUi0nKTtcblxuY29uc3QgY3JlYXRlQ1RBID0gKHJlcG8pID0+IHtcbiAgY29uc3QgYnJhbmNoTmFtZSA9IG1ha2VCcmFuY2hOYW1lKCk7XG4gIGlmICghYnJhbmNoTmFtZSkgcmV0dXJuO1xuXG4gIGNvbnN0IHRvb2xCYXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYXVpLXRvb2xiYXIyLXByaW1hcnknKTtcbiAgY29uc3QgbmV3Q3RhQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIG5ld0N0YUNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdhdWktYnV0dG9ucycpO1xuICBjb25zdCBjdGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gIGN0YS5jbGFzc0xpc3QuYWRkKCdhdWktYnV0dG9uJyk7XG4gIGN0YS5pbm5lclRleHQgPSAnQ3JlYXRlIEJyYW5jaCc7XG4gIGN0YS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICB3aW5kb3cub3BlbihgaHR0cHM6Ly9naXRodWIuY29tL2RzLWl0dS1mcm9udGVuZC1zZXJ2aWNlLyR7cmVwb30vYnJhbmNoZXM/bmV3QnJhbmNoPSR7YnJhbmNoTmFtZX1gKTtcbiAgfSk7XG4gIG5ld0N0YUNvbnRhaW5lci5hcHBlbmRDaGlsZChjdGEpO1xuICB0b29sQmFyLmFwcGVuZENoaWxkKG5ld0N0YUNvbnRhaW5lcik7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc2hvd0NyZWF0ZUJyYW5jaExpbmsoKSB7XG4gIGlmIChpc1BhZ2VBSmlyYVRhc2soKSAmJiAoaXNKaXJhSVUoKSB8fCBpc0ppcmFGT1IoKSkpIHtcbiAgICBjcmVhdGVDVEEoJ2RhbnNrZXNwaWwtd2Vic2l0ZScpO1xuICB9XG59XG4iLCJjb25zdCBmaW5kVGV4dEluRGljdGlvbmFyaWVzID0gKCkgPT4ge1xuICBjb25zdCBzZWFyY2hTdHJpbmcgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuXG4gIGlmIChzZWFyY2hTdHJpbmc/Lmxlbmd0aCA+IDQpIHtcbiAgICBsZXQgcmVzdWx0cyA9IHt9O1xuXG4gICAgY29uc3Qgb3V0cHV0ID0gKHsga2V5LCBrZXkyLCBrZXkzLCBrZXk0LCBrZXk1LCBrZXk2LCBrZXk3LCBrZXk4LCByZXMsIGRpY3Rpb25hcnlLZXkgfSkgPT4ge1xuICAgICAga2V5ID0ga2V5ID8ga2V5ICsgJy8nIDogJyc7XG4gICAgICBrZXkyID0ga2V5MiA/IGtleTIgKyAnLycgOiAnJztcbiAgICAgIGtleTMgPSBrZXkzID8ga2V5MyArICcvJyA6ICcnO1xuICAgICAga2V5NCA9IGtleTQgPyBrZXk0ICsgJy8nIDogJyc7XG4gICAgICBrZXk1ID0ga2V5NSA/IGtleTUgKyAnLycgOiAnJztcbiAgICAgIGtleTYgPSBrZXk2ID8ga2V5NiArICcvJyA6ICcnO1xuICAgICAga2V5NyA9IGtleTcgPyBrZXk3ICsgJy8nIDogJyc7XG4gICAgICBrZXk4ID0ga2V5OCA/IGtleTggKyAnLycgOiAnJztcblxuICAgICAgY29uc3QgaXNEbG8gPSBkaWN0aW9uYXJ5S2V5LmluY2x1ZGVzKCctRExPLScpO1xuXG4gICAgICBjb25zdCByZWdpb24gPSBkaWN0aW9uYXJ5S2V5LnNwbGl0KCdwYXRoPS8nKVsxXS5zcGxpdCgnJicpWzBdICsgJy8nO1xuXG4gICAgICByZXN1bHRzW3JlZ2lvbiArIGtleTIgKyBrZXkzICsga2V5NCArIGtleTUgKyBrZXk2ICsga2V5NyArIGtleThdID0ge1xuICAgICAgICBpc0RsbyxcbiAgICAgICAgcmVzLFxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgbGV0IGluZGV4S2V5ID0gMDtcbiAgICBjb25zdCBkaWN0aW9uYXJ5S2V5cyA9IFtdO1xuXG4gICAgd2hpbGUgKGxvY2FsU3RvcmFnZS5rZXkoaW5kZXhLZXkpKSB7XG4gICAgICBjb25zdCBzdG9yYWdlS2V5ID0gbG9jYWxTdG9yYWdlLmtleShpbmRleEtleSk7XG5cbiAgICAgIGlmIChzdG9yYWdlS2V5LmluY2x1ZGVzKCcvZGxvL3NjYXBpL2NvbW1vbi9kaWN0aW9uYXJ5L2RpY3Rpb25hcnknKSkge1xuICAgICAgICBkaWN0aW9uYXJ5S2V5cy5wdXNoKHN0b3JhZ2VLZXkpO1xuICAgICAgfVxuXG4gICAgICBpbmRleEtleSsrO1xuICAgIH1cblxuICAgIGRpY3Rpb25hcnlLZXlzLmZvckVhY2goKGRpY3Rpb25hcnlLZXkpID0+IHtcbiAgICAgIGNvbnN0IHMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGRpY3Rpb25hcnlLZXkpKTtcblxuICAgICAgaWYgKHR5cGVvZiBzICE9PSAnb2JqZWN0JykgcmV0dXJuO1xuXG4gICAgICBPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKCFzW2tleV0pIHJldHVybjtcblxuICAgICAgICBpZiAodHlwZW9mIHNba2V5XSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBpZiAoc1trZXldLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKSkge1xuICAgICAgICAgICAgb3V0cHV0KHtcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICByZXM6IHNba2V5XSxcbiAgICAgICAgICAgICAgZGljdGlvbmFyeUtleSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5rZXlzKHNba2V5XSkuZm9yRWFjaCgoa2V5MikgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2Ygc1trZXldW2tleTJdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKHNba2V5XVtrZXkyXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFN0cmluZykpIHtcbiAgICAgICAgICAgICAgb3V0cHV0KHtcbiAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAga2V5MixcbiAgICAgICAgICAgICAgICByZXM6IHNba2V5XVtrZXkyXSxcbiAgICAgICAgICAgICAgICBkaWN0aW9uYXJ5S2V5LFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBPYmplY3Qua2V5cyhzW2tleV1ba2V5Ml0pLmZvckVhY2goKGtleTMpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc1trZXldW2tleTJdW2tleTNdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICBpZiAoc1trZXldW2tleTJdW2tleTNdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKSkge1xuICAgICAgICAgICAgICAgIG91dHB1dCh7XG4gICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICBrZXkyLFxuICAgICAgICAgICAgICAgICAga2V5MyxcbiAgICAgICAgICAgICAgICAgIHJlczogc1trZXldW2tleTJdW2tleTNdLFxuICAgICAgICAgICAgICAgICAgZGljdGlvbmFyeUtleSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhzW2tleV1ba2V5Ml1ba2V5M10pLmZvckVhY2goKGtleTQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHNba2V5XVtrZXkyXVtrZXkzXVtrZXk0XS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFN0cmluZykpIHtcbiAgICAgICAgICAgICAgICAgIG91dHB1dCh7XG4gICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAga2V5MixcbiAgICAgICAgICAgICAgICAgICAga2V5MyxcbiAgICAgICAgICAgICAgICAgICAga2V5NCxcbiAgICAgICAgICAgICAgICAgICAgcmVzOiBzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF0sXG4gICAgICAgICAgICAgICAgICAgIGRpY3Rpb25hcnlLZXksXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBPYmplY3Qua2V5cyhzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF0pLmZvckVhY2goKGtleTUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHNba2V5XVtrZXkyXVtrZXkzXVtrZXk0XVtrZXk1XSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF1ba2V5NV0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hTdHJpbmcpKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCh7XG4gICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgIGtleTIsXG4gICAgICAgICAgICAgICAgICAgICAga2V5MyxcbiAgICAgICAgICAgICAgICAgICAgICBrZXk0LFxuICAgICAgICAgICAgICAgICAgICAgIGtleTUsXG4gICAgICAgICAgICAgICAgICAgICAgcmVzOiBzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF1ba2V5NV0sXG4gICAgICAgICAgICAgICAgICAgICAgZGljdGlvbmFyeUtleSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdKS5mb3JFYWNoKChrZXk2KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHNba2V5XVtrZXkyXVtrZXkzXVtrZXk0XVtrZXk1XVtrZXk2XSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNba2V5XVtrZXkyXVtrZXkzXVtrZXk0XVtrZXk1XVtrZXk2XS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFN0cmluZykpIHtcbiAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5MixcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTMsXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk0LFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5NSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTYsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXM6IHNba2V5XVtrZXkyXVtrZXkzXVtrZXk0XVtrZXk1XVtrZXk2XSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpY3Rpb25hcnlLZXksXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdW2tleTZdKS5mb3JFYWNoKChrZXk3KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdW2tleTZdW2tleTddID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF1ba2V5NV1ba2V5Nl1ba2V5N10udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hTdHJpbmcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlczogc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdW2tleTZdW2tleTddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaWN0aW9uYXJ5S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdW2tleTZdW2tleTddKS5mb3JFYWNoKChrZXk4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzW2tleV1ba2V5Ml1ba2V5M11ba2V5NF1ba2V5NV1ba2V5Nl1ba2V5N11ba2V5OF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdW2tleTZdW2tleTddW2tleThdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5NCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk1LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5NyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlczogc1trZXldW2tleTJdW2tleTNdW2tleTRdW2tleTVdW2tleTZdW2tleTddW2tleThdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpY3Rpb25hcnlLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbnRlbnQgPSBbXTtcbiAgICBpZiAoT2JqZWN0LmtleXMocmVzdWx0cykubGVuZ3RoID4gMTUwKSByZXR1cm47XG4gICAgT2JqZWN0LmtleXMocmVzdWx0cykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCB1cmwgPSBnZXREaWN0aW9uYXJ5VXJsKHJlc3VsdHNba2V5XS5pc0RsbykgKyBrZXk7XG4gICAgICBjb250ZW50LnB1c2goeyB0eHQ6IHJlc3VsdHNba2V5XS5yZXMsIHVybCwga2V5IH0pO1xuICAgIH0pO1xuXG4gICAgZmlsbERpY3Rpb25hcnkoY29udGVudCk7XG4gIH0gZWxzZSB7XG4gICAgY2xlYXJGaWxsRGljdGlvbmFyeSgpO1xuICB9XG59O1xuXG5jb25zdCBnZXREaWN0aW9uYXJ5VXJsID0gKGlzRGxvKSA9PiB7XG4gIGNvbnN0IGhvc3RQYXJ0cyA9IGxvY2F0aW9uLmhvc3Quc3BsaXQoJy4nKTtcbiAgY29uc3QgcHJvdG9jb2wgPSBsb2NhdGlvbi5wcm90b2NvbCArICcvLyc7XG4gIGNvbnN0IGlzVG93bkVudiA9IGhvc3RQYXJ0c1swXS5pbmNsdWRlcygndG93bicpO1xuICBjb25zdCBpc0RldkVudiA9IGhvc3RQYXJ0c1swXS5pbmNsdWRlcygnd2ViJyk7XG4gIGxldCBlbnZQYXJ0O1xuXG4gIGlmIChpc0RldkVudikge1xuICAgIGVudlBhcnQgPSBgd2ViLiR7aG9zdFBhcnRzWzFdfWA7XG4gIH0gZWxzZSBpZiAoaXNUb3duRW52KSB7XG4gICAgZW52UGFydCA9IGAke2hvc3RQYXJ0c1swXX1lZGl0JHtpc0RsbyA/ICdkbG8nIDogJ2RsaSd9YDtcbiAgfSBlbHNlIHtcbiAgICBlbnZQYXJ0ID0gYGVkaXQke2lzRGxvID8gJ2RsbycgOiAnZGxpJ31gO1xuICB9XG5cbiAgcmV0dXJuIGAke3Byb3RvY29sfSR7ZW52UGFydH0uZGFuc2tlc3BpbC5kay9zaXRlY29yZS9zaGVsbC9BcHBsaWNhdGlvbnMvQ29udGVudCUyMEVkaXRvci5hc3B4P3NjX2J3PTEmZm89L3NpdGVjb3JlL2NvbnRlbnQvRGFuc2tlU3BpbC9TaXRlJTIwc2V0dGluZ3MvRGljdGlvbmFyeS9gO1xufTtcblxuY29uc3QgY2xlYXJGaWxsRGljdGlvbmFyeSA9ICgpID0+IHtcbiAgY29uc3QgcmVtb3ZlRWxlbWVudEJ5SWQgPSAoaWQpID0+IHtcbiAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgICBpZiAoZWwpIGVsLnJlbW92ZSgpO1xuICB9O1xuXG4gIHJlbW92ZUVsZW1lbnRCeUlkKCdmaW5kVGV4dEluRGljdGlvbmFyaWVzJyk7XG4gIHJlbW92ZUVsZW1lbnRCeUlkKCdmaW5kVGV4dEluRGljdGlvbmFyaWVzU3R5bGUnKTtcbn07XG5cbmNvbnN0IGVuc3VyZUVsZW1lbnQgPSAoaWQsIGNyZWF0ZUVsZW1lbnQpID0+IHtcbiAgbGV0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICBpZiAoIWVsKSB7XG4gICAgZWwgPSBjcmVhdGVFbGVtZW50KCk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbCk7XG4gIH1cbiAgcmV0dXJuIGVsO1xufTtcblxuY29uc3Qgc2V0U3R5bGUgPSAoc3R5bGUsIGNzcykgPT4ge1xuICBzdHlsZS5pbm5lclRleHQgPSBjc3M7XG59O1xuXG5jb25zdCBmaWxsRGljdGlvbmFyeSA9IChjb250ZW50KSA9PiB7XG4gIGNvbnN0IGVsID0gZW5zdXJlRWxlbWVudCgnZmluZFRleHRJbkRpY3Rpb25hcmllcycsICgpID0+IHtcbiAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBkaXYuaWQgPSAnZmluZFRleHRJbkRpY3Rpb25hcmllcyc7XG4gICAgcmV0dXJuIGRpdjtcbiAgfSk7XG4gIGVsLmlubmVyVGV4dCA9ICcnO1xuXG4gIGNvbnN0IHN0eWxlID0gZW5zdXJlRWxlbWVudCgnZmluZFRleHRJbkRpY3Rpb25hcmllc1N0eWxlJywgKCkgPT4ge1xuICAgIGNvbnN0IHN0eWxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIHN0eWxlRWwuaWQgPSAnZmluZFRleHRJbkRpY3Rpb25hcmllc1N0eWxlJztcbiAgICByZXR1cm4gc3R5bGVFbDtcbiAgfSk7XG5cbiAgc2V0U3R5bGUoXG4gICAgc3R5bGUsXG4gICAgYFxuICAgICAgICAjZmluZFRleHRJbkRpY3Rpb25hcmllcyB7XG4gICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgIHotaW5kZXg6IDEwMDAwMDAwMDE7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB0b3A6IDEwMHZoO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNlZGVkZWQ7XG4gICAgICAgICAgcGFkZGluZzogMTVweCAyMHB4O1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDEzcHggMXB4ICNjY2M7XG4gICAgICAgICAgbWF4LWhlaWdodDogOTV2aDtcbiAgICAgICAgICBtYXgtd2lkdGg6IDk1dnc7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICNmaW5kVGV4dEluRGljdGlvbmFyaWVzOjphZnRlciB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDEwMDAwMDAwMDA7XG4gICAgICAgICAgY29udGVudDogXCIke2NvbnRlbnQubGVuZ3RofVwiO1xuICAgICAgICAgIHRvcDogLTM1cHg7XG4gICAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2JkZmZlNTtcbiAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSA1MCUgMCAwO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAjZmluZFRleHRJbkRpY3Rpb25hcmllczpob3ZlciB7XG4gICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgI2ZpbmRUZXh0SW5EaWN0aW9uYXJpZXMgYSB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAjZmluZFRleHRJbkRpY3Rpb25hcmllcyBhOmhvdmVyIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgI2ZpbmRUZXh0SW5EaWN0aW9uYXJpZXMgcCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICNmaW5kVGV4dEluRGljdGlvbmFyaWVzIGEge1xuICAgICAgICAgIG1hcmdpbjogMCAwIDVweCAxMHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgICBgXG4gICk7XG5cbiAgY29udGVudC5mb3JFYWNoKCh7IHR4dCwgdXJsLCBrZXkgfSkgPT4ge1xuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGNvbnN0IHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBwLmlubmVyVGV4dCA9IHR4dDtcbiAgICBhLmhyZWYgPSB1cmw7XG4gICAgYS50YXJnZXQgPSAnX2JsYW5rJztcbiAgICBhLnRleHQgPSBrZXk7XG4gICAgZGl2LmFwcGVuZENoaWxkKHApO1xuICAgIGRpdi5hcHBlbmRDaGlsZChhKTtcbiAgICBlbC5hcHBlbmRDaGlsZChkaXYpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cERzRmluZERpY3Rpb25hcnkoKSB7XG4gIGlmIChsb2NhdGlvbi5ob3N0LmVuZHNXaXRoKCdkYW5za2VzcGlsLmRrJykgJiYgIWxvY2F0aW9uLnBhdGhuYW1lLnN0YXJ0c1dpdGgoJy9zaXRlY29yZS8nKSkge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGlvbmNoYW5nZScsIGZpbmRUZXh0SW5EaWN0aW9uYXJpZXMpO1xuICB9XG59XG4iLCJmdW5jdGlvbiBtYWtlQnJhbmNoTmFtZSgpIHtcbiAgbGV0IHR5cGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaXNzdWVkZXRhaWxzICN0eXBlLXZhbCcpO1xuICBsZXQgaXNzdWUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaXNzdWUtbGluaycpO1xuICBsZXQgc3VtbWFyeSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzdW1tYXJ5LXZhbCcpO1xuXG4gIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZ2h4LWNvbHVtbnMgLmdoeC1pc3N1ZS5naHgtc2VsZWN0ZWQnKSkge1xuICAgIHR5cGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZ2h4LWlzc3VlLmdoeC1zZWxlY3RlZCAuZ2h4LXR5cGUnKTtcbiAgICBpc3N1ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5naHgtaXNzdWUuZ2h4LXNlbGVjdGVkIC5naHgta2V5Jyk7XG4gICAgc3VtbWFyeSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5naHgtaXNzdWUuZ2h4LXNlbGVjdGVkIC5naHgtc3VtbWFyeScpO1xuICB9XG5cbiAgaWYgKCEodHlwZSAmJiBpc3N1ZSAmJiBzdW1tYXJ5KSkgcmV0dXJuO1xuXG4gIHR5cGUgPSB0eXBlLmlubmVyVGV4dCB8fCB0eXBlLnRpdGxlO1xuICB0eXBlID0gdHlwZS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgdHlwZSA9IHR5cGUucmVwbGFjZSgvc3RvcnkvLCAnZmVhdHVyZScpO1xuXG4gIGlzc3VlID0gaXNzdWUuaW5uZXJUZXh0LnRyaW0oKTtcblxuICBzdW1tYXJ5ID0gc3VtbWFyeS5pbm5lclRleHRcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC5yZXBsYWNlKC9bXmEteiBdL2csICctJylcbiAgICAucmVwbGFjZSgvIC9nLCAnLScpXG4gICAgLnJlcGxhY2UoLy0tKy9nLCAnLScpO1xuXG4gIHJldHVybiBgJHt0eXBlfS8ke2lzc3VlfS0ke3N1bW1hcnl9YC5zbGljZSgwLCA1MCkucmVwbGFjZSgvLSQvLCAnJyk7XG59XG5cbi8vIEFkZCB0byB3aW5kb3csIGFzIGl0J3MgdXNlZCBpbiBKaXJhTWFrZUJSYW5jaE5hbWUuanMuXG53aW5kb3cubWFrZUJyYW5jaE5hbWUgPSBtYWtlQnJhbmNoTmFtZTtcblxuZXhwb3J0IGRlZmF1bHQgbWFrZUJyYW5jaE5hbWU7XG4iLCJsZXQgcHJldmlvdXNTZWxlY3RlZFNpdGVjb3JlSWQgPSAnJztcbmxldCBzaG93RmF2b3JpdGVzUG9wdXAgPSBmYWxzZTtcbmxldCBkZWZhdWx0VGV4dEFyZWFIZWlnaHQgPSAnNTAwcHg7JztcblxuY29uc3QgYWRkVXJsVG9UcmVlTGlzdElkcyA9ICgpID0+IHtcbiAgY29uc3QgdHJlZUxpc3RzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnNjQ29udGVudENvbnRyb2xTZWxlY3RlZExpc3QnKTtcblxuICB0cmVlTGlzdHMuZm9yRWFjaCgodHJlZUxpc3QpID0+IHtcbiAgICBpZiAodHJlZUxpc3QuY2xhc3NMaXN0LmNvbnRhaW5zKCdDaHJvbWVFeHRlbnNpb25BZGRVcmxUb1RyZWVMaXN0SWRzJykpIHJldHVybjtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB0cmVlTGlzdC5xdWVyeVNlbGVjdG9yQWxsKCdzZWxlY3Qgb3B0aW9uJyk7XG4gICAgY29uc3QgaGVscCA9IHRyZWVMaXN0LnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNjQ29udGVudENvbnRyb2xUcmVlTGlzdEhlbHAnKTtcblxuICAgIGlmICghaGVscCB8fCBvcHRpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgdHJlZUxpc3QuY2xhc3NMaXN0LmFkZCgnQ2hyb21lRXh0ZW5zaW9uQWRkVXJsVG9UcmVlTGlzdElkcycpO1xuXG4gICAgb3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcbiAgICAgIGNvbnN0IGlkID0gb3B0aW9uLnZhbHVlPy5zcGxpdCgnfCcpPy5bMV07XG4gICAgICBpZiAoIWlkKSByZXR1cm47XG5cbiAgICAgIG9wdGlvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChsb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2ZvJywgaWQpO1xuICAgICAgICBpZiAoaGVscC5pbm5lckhUTUwuaW5jbHVkZXMoaWQpKSByZXR1cm47XG5cbiAgICAgICAgaGVscC5pbm5lckhUTUwgPSBgJHtoZWxwLmlubmVySFRNTH0gPGEgaHJlZj1cIiR7dXJsLmhyZWZ9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTBweDtcIj4ke2lkfTwvYT5gO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuY29uc3Qgc3RyZXRjaENvbHVtbiA9ICgpID0+IHtcbiAgY29uc3QgY29sdW1uV2lkdGggPSA0MDA7XG4gIGRvY3VtZW50LmNvb2tpZSA9IGBzY0NvbnRlbnRFZGl0b3JGb2xkZXJzV2lkdGg9JHtjb2x1bW5XaWR0aH07IGV4cGlyZXM9VGh1LCAzMSBEZWMgMjEwMCAxMjowMDowMCBVVEM7IHBhdGg9L2A7XG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNDb250ZW50VHJlZVBhbmVsJykuc3R5bGUud2lkdGggPSBgJHtjb2x1bW5XaWR0aH1weGA7XG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zcGxpdHRlci1iYXItdmVydGljYWwnKS5zdHlsZS5sZWZ0ID0gYCR7Y29sdW1uV2lkdGh9cHhgO1xuICBjb25zdCBlZGl0b3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjQ29udGVudEVkaXRvcicpO1xuICBlZGl0b3Iuc3R5bGUud2lkdGggPSBwYXJzZUludChlZGl0b3Iuc3R5bGUud2lkdGgpIC0gY29sdW1uV2lkdGggKyBwYXJzZUludChlZGl0b3Iuc3R5bGUubGVmdCkgKyAncHgnO1xuICBlZGl0b3Iuc3R5bGUubGVmdCA9IGAke2NvbHVtbldpZHRofXB4YDtcbn07XG5cbmNvbnN0IHNjcm9sbFRvSXRlbSA9ICgpID0+IHtcbiAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnNjQ29udGVudFRyZWVOb2RlQWN0aXZlJylbMF07XG4gIGNvbnN0IHRvZ2dsZUFycm93ID0gc2VsZWN0ZWRJdGVtLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignaW1nJyk7XG4gIHRvZ2dsZUFycm93ICYmIHRvZ2dsZUFycm93LmNsaWNrKCk7XG4gIHNlbGVjdGVkSXRlbSAmJiBzZWxlY3RlZEl0ZW0ucGFyZW50RWxlbWVudCAmJiBzZWxlY3RlZEl0ZW0ucGFyZW50RWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xufTtcblxuY29uc3QgZ2V0QWN0aXZlVHJlZU5vZGVUZXh0ID0gKCkgPT4ge1xuICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNjQ29udGVudFRyZWVOb2RlQWN0aXZlIHNwYW4nKS5pbm5lclRleHQ7XG59O1xuXG5jb25zdCBnZXRBY3RpdmVUcmVlTm9kZVBhdGggPSAoKSA9PiB7XG4gIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2NFZGl0b3JRdWlja0luZm8gdHI6bnRoLWNoaWxkKDMpIC5zY0VkaXRvckhlYWRlclF1aWNrSW5mb0lucHV0JykudmFsdWU7XG59O1xuXG5jb25zdCBhZGRCb29rbWFyayA9ICgpID0+IHtcbiAgY29uc3Qgc2l0ZWNvcmVUZXh0ID0gZ2V0QWN0aXZlVHJlZU5vZGVUZXh0KCk7XG4gIGlmIChzaXRlY29yZVRleHQgPT09IHByZXZpb3VzU2VsZWN0ZWRTaXRlY29yZUlkKSByZXR1cm47XG4gIHByZXZpb3VzU2VsZWN0ZWRTaXRlY29yZUlkID0gc2l0ZWNvcmVUZXh0O1xuXG4gIGxldCBib29rbWFya0xpbmsgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYm9va21hcmtMaW5rJyk7XG4gIGxldCBib29rbWFya1N0eWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2Jvb2ttYXJrU3R5bGUnKTtcblxuICBpZiAoIWJvb2ttYXJrTGluaykge1xuICAgIGJvb2ttYXJrTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBib29rbWFya0xpbmsuaWQgPSAnYm9va21hcmtMaW5rJztcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykuYXBwZW5kQ2hpbGQoYm9va21hcmtMaW5rKTtcbiAgICBib29rbWFya1N0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBib29rbWFya1N0eWxlLmlkID0gJ2Jvb2ttYXJrU3R5bGUnO1xuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKS5hcHBlbmRDaGlsZChib29rbWFya1N0eWxlKTtcbiAgfVxuXG4gIGJvb2ttYXJrTGluay5ocmVmID0gYGphdmFzY3JpcHQ6d2luZG93LmxvY2F0aW9uLmhyZWY9d2luZG93LmxvY2F0aW9uLm9yaWdpbisnL3NpdGVjb3JlL3NoZWxsL0FwcGxpY2F0aW9ucy9Db250ZW50IEVkaXRvci5hc3B4P3NjX2J3PTEmZm89JHtnZXRBY3RpdmVUcmVlTm9kZVBhdGgoKX0nYDtcbiAgYm9va21hcmtMaW5rLmlubmVySFRNTCA9IHNpdGVjb3JlVGV4dDtcblxuICBib29rbWFya1N0eWxlLmlubmVySFRNTCA9IGBcbiAgICAgICNib29rbWFya0xpbmsge1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICB6LWluZGV4OiAxMDAwMDAwO1xuICAgICAgICAgIHRvcDogMTFweDtcbiAgICAgICAgICBsZWZ0OiA2MHB4O1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsICdPcGVuIFNhbnMnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDhweCAwIDdweDtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMHB4IDFweCAjNTg1ODU4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgICB9XG4gICAgYDtcbn07XG5cbmNvbnN0IGluY3JlYXNlSGVpZ2h0T25UcmVlTGlzdHMgPSAoKSA9PiB7XG4gIGRvY3VtZW50XG4gICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zY0VkaXRvclNlY3Rpb25QYW5lbENlbGwgLnNjQ29udGVudENvbnRyb2wuc2NDb250ZW50Q29udHJvbFRyZWVsaXN0JylcbiAgICAuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuY2xpZW50SGVpZ2h0ID09PSAyMjApIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnNDAwcHgnO1xuICAgICAgfVxuICAgIH0pO1xufTtcblxuY29uc3QgZml4SW5wdXRDZWxsVGV4dEFyZWEgPSAoKSA9PiB7XG4gIGNvbnN0IHR4dHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuc2NFZGl0b3JGaWVsZE1hcmtlcklucHV0Q2VsbCB0ZXh0YXJlYScpO1xuICBpZiAodHh0cy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXhJbnB1dENlbGxUZXh0QXJlYScpKSB7XG4gICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIHN0eWxlLmlkID0gJ2ZpeElucHV0Q2VsbFRleHRBcmVhJztcbiAgICBzdHlsZS5pbm5lckhUTUwgPSBgXG4gICAgICAubW9ub3NwYWNlLWZvbnQge2ZvbnQtZmFtaWx5OiBDb25zb2xhcywgTW9uYWNvLCBcIkFuZGFsZSBNb25vXCIsIFwiVWJ1bnR1IE1vbm9cIiwgbW9ub3NwYWNlO31cbiAgICBgO1xuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKS5hcHBlbmRDaGlsZChzdHlsZSk7XG4gIH1cblxuICB0eHRzLmZvckVhY2goKHR4dCkgPT4ge1xuICAgIGlmICh0eHQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtb25vc3BhY2UtZm9udCcpKSByZXR1cm47XG5cbiAgICB0eHQuY2xhc3NMaXN0LmFkZCgnbW9ub3NwYWNlLWZvbnQnKTtcbiAgICB0eHQuc2V0QXR0cmlidXRlKCdzcGVsbGNoZWNrJywgZmFsc2UpO1xuXG4gICAgdHh0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5zdHlsZS5oZWlnaHQgPSAnODAwcHgnO1xuICAgICAgdGhpcy5zdHlsZS5mb250U2l6ZSA9ICcxM3B4JztcbiAgICAgIHRoaXMuc3R5bGUubGluZUhlaWdodCA9ICcxLjQ1JztcbiAgICB9KTtcblxuICAgIHR4dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5zdHlsZSA9IGBoZWlnaHQ6ICR7ZGVmYXVsdFRleHRBcmVhSGVpZ2h0fWA7IC8vIEZyb20gZW5sYXJnZVRyZWVsaXN0KCkgZnVuY3Rpb24gYmVsb3cuXG4gICAgfSk7XG4gIH0pO1xufTtcblxuY29uc3QgZW5sYXJnZVRyZWVsaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkYXRhU2VjdGlvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tpZCo9XCJTZWN0aW9uX0RhdGFcIl0nKTtcbiAgaWYgKCFkYXRhU2VjdGlvbikgcmV0dXJuO1xuICBsZXQgZGF0YVRyZWVsaXN0ID0gZG9jdW1lbnRcbiAgICAucXVlcnlTZWxlY3RvcignW2lkKj1cIlNlY3Rpb25fRGF0YVwiXScpXG4gICAgLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNjQ29udGVudENvbnRyb2xUcmVlbGlzdCcpO1xuICBpZiAoIWRhdGFUcmVlbGlzdCkgcmV0dXJuO1xuICBkYXRhVHJlZWxpc3Quc3R5bGUgPSBgaGVpZ2h0OiAke2RlZmF1bHRUZXh0QXJlYUhlaWdodH1gO1xufTtcblxuY29uc3QgZ2V0RmF2b3JpdGVJdGVtTGFiZWwgPSAoZmF2b3JpdGUpID0+IHtcbiAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gIHNwYW4uaW5uZXJUZXh0ID0gZmF2b3JpdGUubGFiZWw7XG4gIHJldHVybiBzcGFuO1xufTtcblxuY29uc3QgZ2V0RmF2b3JpdGVJdGVtUGFyZW50VGV4dCA9IChmYXZvcml0ZSkgPT4ge1xuICBsZXQgcGF0aCA9IGZhdm9yaXRlLnBhdGguc3BsaXQoJy8nKTtcbiAgcGF0aC5wb3AoKTtcbiAgcGF0aCA9IHBhdGguam9pbignLycpO1xuICBwYXRoID0gYCR7cGF0aH0vIGA7XG4gIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICBzcGFuLmNsYXNzTmFtZSA9ICdDaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1BvcHVwSXRlbVBhcmVudCc7XG4gIHNwYW4uaW5uZXJUZXh0ID0gcGF0aDtcbiAgcmV0dXJuIHNwYW47XG59O1xuXG5jb25zdCBhZGRGYXZvcml0ZXMgPSAoKSA9PiB7XG4gIGxldCBmYXZvcml0ZXNTdHlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNDaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1N0eWxlJyk7XG5cbiAgaWYgKCFmYXZvcml0ZXNTdHlsZSkge1xuICAgIGZhdm9yaXRlc1N0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBmYXZvcml0ZXNTdHlsZS5pZCA9ICdDaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1N0eWxlJztcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykuYXBwZW5kQ2hpbGQoZmF2b3JpdGVzU3R5bGUpO1xuICAgIGZhdm9yaXRlc1N0eWxlLmlubmVySFRNTCA9IGBcbiAgICAgIC5zYy1nbG9iYWxIZWFkZXIge1xuICAgICAgICB6LWluZGV4OiAxMDE7XG4gICAgICB9XG4gICAgICBcbiAgICAgICNDaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlcyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgICAgI0Nocm9tZUV4dGVuc2lvbkZvclNpdGVjb3JlRmF2b3JpdGVzUG9wdXAge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDEwMDAwMDtcbiAgICAgICAgYmFja2dyb3VuZDogIzJiMmIyYjtcbiAgICAgICAgdG9wOiA1MHB4O1xuICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZzogMCA1cHggNnB4O1xuICAgICAgfVxuICAgICAgXG4gICAgICAuQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgcGFkZGluZzogNnB4IDdweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDM1cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG4gICAgICAuQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW06aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC5DaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1BvcHVwSXRlbSBzcGFuLkNocm9tZUV4dGVuc2lvbkZvclNpdGVjb3JlRmF2b3JpdGVzUG9wdXBJdGVtUmVtb3ZlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLkNocm9tZUV4dGVuc2lvbkZvclNpdGVjb3JlRmF2b3JpdGVzUG9wdXBJdGVtIHNwYW4uQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW1SZW1vdmU6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZWQ7IFxuICAgICAgfVxuICAgICAgXG4gICAgICAuQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW0gc3Bhbi5DaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1BvcHVwSXRlbVBhcmVudCB7XG4gICAgICAgIGNvbG9yOiAjOTY5Njk2O1xuICAgICAgfVxuICAgIFxuICAgICAgI0Nocm9tZUV4dGVuc2lvbkZvclNpdGVjb3JlRmF2b3JpdGVzUG9wdXBBZGRGYXZvcml0ZSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgcGFkZGluZzogNnB4IDdweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHJlZDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1gO1xuICB9XG5cbiAgY2hyb21lLnN0b3JhZ2Uuc3luYy5nZXQoJ2Zhdm9yaXRlcycsICh7IGZhdm9yaXRlcyB9KSA9PiB7XG4gICAgZmF2b3JpdGVzID0gZmF2b3JpdGVzIHx8IFtdO1xuICAgIGlmIChmYXZvcml0ZXMubGVuZ3RoID4gMSkge1xuICAgICAgZmF2b3JpdGVzID0gZmF2b3JpdGVzLnNvcnQoKGEsIGIpID0+IChhLnBhdGggPiBiLnBhdGggPyAxIDogLTEpKTtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NJbmZvID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNjLWFjY291bnRJbmZvcm1hdGlvbicpO1xuICAgIGxldCBmYXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXMnKTtcbiAgICBsZXQgcG9wdXAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cCcpO1xuXG4gICAgaWYgKCFmYXYpIHtcbiAgICAgIGZhdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7XG4gICAgICBmYXYuaWQgPSAnQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXMnO1xuICAgICAgZmF2LmlubmVyVGV4dCA9ICdGYXZvcml0ZXMnO1xuICAgICAgYWNjSW5mby5pbnNlcnRCZWZvcmUoZmF2LCBhY2NJbmZvLmZpcnN0Q2hpbGQpO1xuICAgICAgZmF2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBzaG93RmF2b3JpdGVzUG9wdXAgPSAhc2hvd0Zhdm9yaXRlc1BvcHVwO1xuICAgICAgICBhZGRGYXZvcml0ZXMoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghc2hvd0Zhdm9yaXRlc1BvcHVwICYmIHBvcHVwKSB7XG4gICAgICBmYXYucmVtb3ZlQ2hpbGQocG9wdXApO1xuICAgIH1cblxuICAgIGlmIChzaG93RmF2b3JpdGVzUG9wdXApIHtcbiAgICAgIGlmICghcG9wdXApIHtcbiAgICAgICAgcG9wdXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgcG9wdXAuaWQgPSAnQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cCc7XG4gICAgICAgIGZhdi5hcHBlbmRDaGlsZChwb3B1cCk7XG4gICAgICB9XG5cbiAgICAgIGZhdm9yaXRlcy5mb3JFYWNoKChmYXZvcml0ZSkgPT4ge1xuICAgICAgICBsZXQgZiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtDaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1BvcHVwSXRlbT1cIiR7ZmF2b3JpdGUucGF0aH1cIl1gKTtcblxuICAgICAgICBpZiAoIWYpIHtcbiAgICAgICAgICBmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgZi5jbGFzc05hbWUgPSAnQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW0nO1xuICAgICAgICAgIGYuc2V0QXR0cmlidXRlKCdDaHJvbWVFeHRlbnNpb25Gb3JTaXRlY29yZUZhdm9yaXRlc1BvcHVwSXRlbScsIGZhdm9yaXRlLnBhdGgpO1xuXG4gICAgICAgICAgZi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7bG9jYXRpb24ub3JpZ2lufSR7bG9jYXRpb24ucGF0aG5hbWV9P3NjX2J3PTEmZm89JHtmYXZvcml0ZS5wYXRofWA7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBmLmFwcGVuZENoaWxkKGdldEZhdm9yaXRlSXRlbVBhcmVudFRleHQoZmF2b3JpdGUpKTtcbiAgICAgICAgICBmLmFwcGVuZENoaWxkKGdldEZhdm9yaXRlSXRlbUxhYmVsKGZhdm9yaXRlKSk7XG5cbiAgICAgICAgICBsZXQgcmVtb3ZlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgIHJlbW92ZS5jbGFzc05hbWUgPSAnQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW1SZW1vdmUnO1xuICAgICAgICAgIHJlbW92ZS5pbm5lclRleHQgPSAneCc7XG4gICAgICAgICAgcmVtb3ZlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgZmF2b3JpdGVzID0gZmF2b3JpdGVzLmZpbHRlcigoZikgPT4gZiAhPT0gZmF2b3JpdGUpO1xuICAgICAgICAgICAgY2hyb21lLnN0b3JhZ2Uuc3luYy5zZXQoeyBmYXZvcml0ZXMgfSk7XG4gICAgICAgICAgICBwb3B1cC5yZW1vdmVDaGlsZChmKTtcbiAgICAgICAgICAgIGFkZEZhdm9yaXRlcygpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgZi5hcHBlbmRDaGlsZChyZW1vdmUpO1xuICAgICAgICAgIHBvcHVwLmFwcGVuZENoaWxkKGYpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbGV0IGlzSXRlbUluTWVudSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIGBbQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEl0ZW0gPSBcIiR7Z2V0QWN0aXZlVHJlZU5vZGVQYXRoKCl9XCJdYFxuICAgICAgKTtcbiAgICAgIGxldCBhZGRCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEFkZEZhdm9yaXRlJyk7XG5cbiAgICAgIGlmIChhZGRCdXR0b24pIHBvcHVwLnJlbW92ZUNoaWxkKGFkZEJ1dHRvbik7XG5cbiAgICAgIGlmICghaXNJdGVtSW5NZW51KSB7XG4gICAgICAgIGFkZEJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBhZGRCdXR0b24uaWQgPSAnQ2hyb21lRXh0ZW5zaW9uRm9yU2l0ZWNvcmVGYXZvcml0ZXNQb3B1cEFkZEZhdm9yaXRlJztcbiAgICAgICAgYWRkQnV0dG9uLmlubmVyVGV4dCA9IGBBZGQgJHtnZXRBY3RpdmVUcmVlTm9kZVRleHQoKX0gPyBgO1xuICAgICAgICBhZGRCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXYpID0+IHtcbiAgICAgICAgICBmYXZvcml0ZXMucHVzaCh7XG4gICAgICAgICAgICBsYWJlbDogZ2V0QWN0aXZlVHJlZU5vZGVUZXh0KCksXG4gICAgICAgICAgICBwYXRoOiBnZXRBY3RpdmVUcmVlTm9kZVBhdGgoKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjaHJvbWUuc3RvcmFnZS5zeW5jLnNldCh7IGZhdm9yaXRlcyB9KTtcbiAgICAgICAgICBhZGRGYXZvcml0ZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcG9wdXAuYXBwZW5kQ2hpbGQoYWRkQnV0dG9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufTtcblxuY29uc3QgYWRkSW1hZ2VEaXJlY3RVcmwgPSAoKSA9PiB7XG4gIGxldCBpdGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0VkaXRvckZyYW1lcycpPy5xdWVyeVNlbGVjdG9yKCdkaXYnKTtcbiAgbGV0IGlzVmlzaWJsZSA9IGl0ZW0/LnN0eWxlLmRpc3BsYXkgIT09ICdub25lJztcbiAgY29uc3QgdGFibGUgPSBpdGVtPy5xdWVyeVNlbGVjdG9yKCd0YWJsZS5zY0VkaXRvclF1aWNrSW5mbyB0Ym9keScpO1xuXG4gIGlmIChpdGVtPy5pZCAmJiBpc1Zpc2libGUgJiYgdGFibGUgJiYgIXRhYmxlLnF1ZXJ5U2VsZWN0b3IoJyNzY1Rvb2xNZWRpYVBhdGgnKSkge1xuICAgIGNvbnN0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTtcbiAgICB0ci5pZCA9ICdzY1Rvb2xNZWRpYVBhdGgnO1xuICAgIGNvbnN0IHRkMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7XG4gICAgY29uc3QgdGQyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTtcbiAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIGlucHV0LnNldEF0dHJpYnV0ZSgncmVhZG9ubHknLCAncmVhZG9ubHknKTtcbiAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDp0aGlzLnNlbGVjdCgpO3JldHVybiBmYWxzZScpO1xuICAgIGlucHV0LnZhbHVlID0gJy0vbWVkaWEvJyArIGl0ZW0uaWQucmVwbGFjZSgnRkNvbnRlbnQnLCAnJykgKyAnLmFzaHgnO1xuXG4gICAgdGQxLmlubmVyVGV4dCA9ICdSZWxhdGl2IHN0aTonO1xuICAgIHRkMi5hcHBlbmRDaGlsZChpbnB1dCk7XG4gICAgdHIuYXBwZW5kQ2hpbGQodGQxKTtcbiAgICB0ci5hcHBlbmRDaGlsZCh0ZDIpO1xuICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTtcbiAgfVxufTtcblxuY29uc3QgaW5pdGlhbGl6ZSA9ICgpID0+IHtcbiAgaWYgKGxvY2F0aW9uLmhvc3QuZW5kc1dpdGgoJ2RhbnNrZXNwaWwuZGsnKSkge1xuICAgIGlmIChsb2NhdGlvbi5wYXRobmFtZSA9PT0gJy9zaXRlY29yZS9zaGVsbC9BcHBsaWNhdGlvbnMvQ29udGVudCUyMEVkaXRvci5hc3B4Jykge1xuICAgICAgc3RyZXRjaENvbHVtbigpO1xuICAgICAgc2Nyb2xsVG9JdGVtKCk7XG4gICAgICBhZGRCb29rbWFyaygpO1xuICAgICAgc2V0SW50ZXJ2YWwoYWRkVXJsVG9UcmVlTGlzdElkcywgNTAwKTtcbiAgICAgIHNldEludGVydmFsKGluY3JlYXNlSGVpZ2h0T25UcmVlTGlzdHMsIDUwMCk7XG4gICAgICBzZXRJbnRlcnZhbChmaXhJbnB1dENlbGxUZXh0QXJlYSwgNTAwKTtcbiAgICAgIHNldEludGVydmFsKGFkZEJvb2ttYXJrLCA1MDApO1xuXG4gICAgICBzZXRJbnRlcnZhbChlbmxhcmdlVHJlZWxpc3QsIDUwMCk7XG5cbiAgICAgIGFkZEZhdm9yaXRlcygpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBzZXRUaW1lb3V0KGFkZEZhdm9yaXRlcywgNTAwKSk7XG4gICAgfVxuXG4gICAgaWYgKGxvY2F0aW9uLnBhdGhuYW1lID09PSAnL3NpdGVjb3JlL3NoZWxsL0FwcGxpY2F0aW9ucy9Db250ZW50JTIwTWFuYWdlci9EZWZhdWx0LmFzcHgnKSB7XG4gICAgICBzZXRJbnRlcnZhbChhZGRJbWFnZURpcmVjdFVybCwgNTAwKTtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cFNpdGVjb3JlTGF5b3V0SW1wcm92ZW1lbnRzKCkge1xuICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJyB8fCBkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnaW50ZXJhY3RpdmUnKSB7XG4gICAgLy8gRG9jdW1lbnQgaXMgYWxyZWFkeSByZWFkeSB0byBnbywgcnVuIHlvdXIgY29kZVxuICAgIGluaXRpYWxpemUoKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBBZGQgZXZlbnQgbGlzdGVuZXIgZm9yIERPTUNvbnRlbnRMb2FkZWRcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgaW5pdGlhbGl6ZSk7XG4gIH1cbn1cbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiaW1wb3J0IHsgc2V0dXBEc0ZpbmREaWN0aW9uYXJ5IH0gZnJvbSAnLi9Ec0ZpbmREaWN0aW9uYXJ5JztcbmltcG9ydCB7IHNldHVwR2l0aHViQ3JlYXRlQnJhbmNoIH0gZnJvbSAnLi9Db250ZW50U2NyaXB0cy9HaXRodWIvR2l0SHViQ3JlYXRlQnJhbmNoJztcbmltcG9ydCB7IHNldHVwU2l0ZWNvcmVMYXlvdXRJbXByb3ZlbWVudHMgfSBmcm9tICcuL1NpdGVjb3JlTGF5b3V0SW1wcm92ZW1lbnRzJztcbmltcG9ydCB7IHNob3dDcmVhdGVCcmFuY2hMaW5rIH0gZnJvbSAnLi9Db250ZW50U2NyaXB0cy9KaXJhL1Nob3dDcmVhdGVCcmFuY2hMaW5rJztcblxuc2V0dXBEc0ZpbmREaWN0aW9uYXJ5KCk7XG5zZXR1cEdpdGh1YkNyZWF0ZUJyYW5jaCgpO1xuc2V0dXBTaXRlY29yZUxheW91dEltcHJvdmVtZW50cygpO1xuc2hvd0NyZWF0ZUJyYW5jaExpbmsoKTtcblxuaWYgKGxvY2F0aW9uLmhvc3QuZW5kc1dpdGgoJ2RhbnNrZXNwaWwuZGsnKSkge1xuICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0YyJykge1xuICAgICAgLy8gRG8gc29tZXRoaW5nIHdoZW4gRjIgaXMgcHJlc3NlZFxuICAgICAgYWxlcnQoJ0YyIHdhcyBwcmVzc2VkJyk7XG5cbiAgICAgIGNocm9tZS5ydW50aW1lLnNlbmRNZXNzYWdlKHsgYWN0aW9uOiAnY2FsbE15RnVuY3Rpb24nIH0sIGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCd4eHggQ0FMTElORyBNWSBGVU5DVElPTiB4eHgnLCByZXNwb25zZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJlIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImluZm8iLCJlcnJvciIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiZXJyIiwidW5kZWZpbmVkIiwid2FpdEZvckVsZW1lbnQiLCJfcmVmIiwiX2NhbGxlZSIsInNlbGVjdG9yIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIl94Iiwic2V0dXBHaXRodWJDcmVhdGVCcmFuY2giLCJfc2V0dXBHaXRodWJDcmVhdGVCcmFuY2giLCJfY2FsbGVlMiIsInBhcmFtcyIsIm5ld0JyYW5jaCIsImN0YSIsImlucHV0IiwidXJsIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwibG9jYXRpb24iLCJob3N0Iiwic2VhcmNoIiwiaW5jbHVkZXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJnZXQiLCJjbGljayIsInNldFRpbWVvdXQiLCJzZXRBdHRyaWJ1dGUiLCJldmVudHNUb0Rpc3BhdGNoIiwiZXZlbnRUeXBlIiwiZXZlbnQiLCJFdmVudCIsImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwiZGlzcGF0Y2hFdmVudCIsIlVSTCIsIndpbmRvdyIsInNlYXJjaFBhcmFtcyIsImhpc3RvcnkiLCJwdXNoU3RhdGUiLCJtYWtlQnJhbmNoTmFtZSIsImlzUGFnZUFKaXJhVGFzayIsInBhdGhuYW1lIiwic3RhcnRzV2l0aCIsImlzSmlyYUlVIiwiaXNKaXJhRk9SIiwiY3JlYXRlQ1RBIiwicmVwbyIsImJyYW5jaE5hbWUiLCJ0b29sQmFyIiwibmV3Q3RhQ29udGFpbmVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTGlzdCIsImFkZCIsImlubmVyVGV4dCIsImFkZEV2ZW50TGlzdGVuZXIiLCJvcGVuIiwiY29uY2F0IiwiYXBwZW5kQ2hpbGQiLCJzaG93Q3JlYXRlQnJhbmNoTGluayIsImZpbmRUZXh0SW5EaWN0aW9uYXJpZXMiLCJzZWFyY2hTdHJpbmciLCJnZXRTZWxlY3Rpb24iLCJ0b1N0cmluZyIsInRvTG93ZXJDYXNlIiwicmVzdWx0cyIsIm91dHB1dCIsImtleTIiLCJrZXkzIiwia2V5NCIsImtleTUiLCJrZXk2Iiwia2V5NyIsImtleTgiLCJyZXMiLCJkaWN0aW9uYXJ5S2V5IiwiaXNEbG8iLCJyZWdpb24iLCJzcGxpdCIsImluZGV4S2V5IiwiZGljdGlvbmFyeUtleXMiLCJsb2NhbFN0b3JhZ2UiLCJzdG9yYWdlS2V5IiwiSlNPTiIsInBhcnNlIiwiZ2V0SXRlbSIsImNvbnRlbnQiLCJnZXREaWN0aW9uYXJ5VXJsIiwidHh0IiwiZmlsbERpY3Rpb25hcnkiLCJjbGVhckZpbGxEaWN0aW9uYXJ5IiwiaG9zdFBhcnRzIiwicHJvdG9jb2wiLCJpc1Rvd25FbnYiLCJpc0RldkVudiIsImVudlBhcnQiLCJyZW1vdmVFbGVtZW50QnlJZCIsImlkIiwiZWwiLCJnZXRFbGVtZW50QnlJZCIsInJlbW92ZSIsImVuc3VyZUVsZW1lbnQiLCJib2R5Iiwic2V0U3R5bGUiLCJzdHlsZSIsImNzcyIsImRpdiIsInN0eWxlRWwiLCJfcmVmMiIsImhyZWYiLCJ0YXJnZXQiLCJ0ZXh0Iiwic2V0dXBEc0ZpbmREaWN0aW9uYXJ5IiwiZW5kc1dpdGgiLCJpc3N1ZSIsInN1bW1hcnkiLCJ0aXRsZSIsInRyaW0iLCJyZXBsYWNlIiwicHJldmlvdXNTZWxlY3RlZFNpdGVjb3JlSWQiLCJzaG93RmF2b3JpdGVzUG9wdXAiLCJkZWZhdWx0VGV4dEFyZWFIZWlnaHQiLCJhZGRVcmxUb1RyZWVMaXN0SWRzIiwidHJlZUxpc3RzIiwicXVlcnlTZWxlY3RvckFsbCIsInRyZWVMaXN0IiwiY29udGFpbnMiLCJvcHRpb25zIiwiaGVscCIsInBhcmVudEVsZW1lbnQiLCJvcHRpb24iLCJfb3B0aW9uJHZhbHVlIiwic2V0IiwiaW5uZXJIVE1MIiwic3RyZXRjaENvbHVtbiIsImNvbHVtbldpZHRoIiwiY29va2llIiwid2lkdGgiLCJsZWZ0IiwiZWRpdG9yIiwicGFyc2VJbnQiLCJzY3JvbGxUb0l0ZW0iLCJzZWxlY3RlZEl0ZW0iLCJ0b2dnbGVBcnJvdyIsInNjcm9sbEludG9WaWV3IiwiZ2V0QWN0aXZlVHJlZU5vZGVUZXh0IiwiZ2V0QWN0aXZlVHJlZU5vZGVQYXRoIiwiYWRkQm9va21hcmsiLCJzaXRlY29yZVRleHQiLCJib29rbWFya0xpbmsiLCJib29rbWFya1N0eWxlIiwiaW5jcmVhc2VIZWlnaHRPblRyZWVMaXN0cyIsImVsZW1lbnQiLCJjbGllbnRIZWlnaHQiLCJoZWlnaHQiLCJmaXhJbnB1dENlbGxUZXh0QXJlYSIsInR4dHMiLCJmb250U2l6ZSIsImxpbmVIZWlnaHQiLCJlbmxhcmdlVHJlZWxpc3QiLCJkYXRhU2VjdGlvbiIsImRhdGFUcmVlbGlzdCIsImdldEZhdm9yaXRlSXRlbUxhYmVsIiwiZmF2b3JpdGUiLCJzcGFuIiwibGFiZWwiLCJnZXRGYXZvcml0ZUl0ZW1QYXJlbnRUZXh0IiwicGF0aCIsImpvaW4iLCJjbGFzc05hbWUiLCJhZGRGYXZvcml0ZXMiLCJmYXZvcml0ZXNTdHlsZSIsImNocm9tZSIsInN0b3JhZ2UiLCJzeW5jIiwiZmF2b3JpdGVzIiwic29ydCIsImIiLCJhY2NJbmZvIiwiZmF2IiwicG9wdXAiLCJpbnNlcnRCZWZvcmUiLCJmaXJzdENoaWxkIiwicmVtb3ZlQ2hpbGQiLCJvcmlnaW4iLCJmaWx0ZXIiLCJpc0l0ZW1Jbk1lbnUiLCJhZGRCdXR0b24iLCJldiIsImFkZEltYWdlRGlyZWN0VXJsIiwiX2RvY3VtZW50JGdldEVsZW1lbnRCIiwiaXRlbSIsImlzVmlzaWJsZSIsImRpc3BsYXkiLCJ0YWJsZSIsInRyIiwidGQxIiwidGQyIiwiaW5pdGlhbGl6ZSIsInNldEludGVydmFsIiwic2V0dXBTaXRlY29yZUxheW91dEltcHJvdmVtZW50cyIsInJlYWR5U3RhdGUiLCJhbGVydCIsInJ1bnRpbWUiLCJzZW5kTWVzc2FnZSIsImFjdGlvbiIsInJlc3BvbnNlIiwiY29uc29sZSJdLCJzb3VyY2VSb290IjoiIn0= diff --git a/dist/popup.html b/dist/popup.html index 8ce3752..9e15966 100644 --- a/dist/popup.html +++ b/dist/popup.html @@ -37,37 +37,37 @@ -
Jira
- -Jira
- -