@kontur.candy/tools 2.185.7 → 2.187.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -82,11 +82,11 @@ const validateAndPrepareFarmDirectoriesPath = async (allFarmDirectories, current
|
|
|
82
82
|
(0, _ConsoleApplication.runConsoleApplication)(async (argv, context) => {
|
|
83
83
|
var _process$env$NODE_OPT;
|
|
84
84
|
remoteInspectFlagToDisableDebuggerInChildProcess();
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
context.logger.log("NODE_OPTIONS: " + ((_process$env$NODE_OPT = process.env["NODE_OPTIONS"]) !== null && _process$env$NODE_OPT !== void 0 ? _process$env$NODE_OPT : "<empty>"));
|
|
86
|
+
context.logger.log("execArgv : " + process.execArgv.join(" "));
|
|
87
87
|
setInterval(x => {
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
context.logger.log("memoryUsage: ");
|
|
89
|
+
context.logger.log(JSON.stringify(process.memoryUsage(), null, 2));
|
|
90
90
|
}, 1000 * 30);
|
|
91
91
|
context.logger.log("@kontur.candy/tools: " + (await (0, _SelfUpdate.getCurrentVersion)()));
|
|
92
92
|
const parsedArgs = (0, _CandyToolOptions.parseOptions)(argv);
|
|
@@ -144,4 +144,4 @@ const validateAndPrepareFarmDirectoriesPath = async (allFarmDirectories, current
|
|
|
144
144
|
await (0, _RunLocalization.runLocalization)(context, parsedArgs.options, farmDirectory, engineDirectory, candyModulesDirectory, farmConfig.hlFarmDirectoryPath);
|
|
145
145
|
}
|
|
146
146
|
});
|
|
147
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2ZzRXh0cmEiLCJfc2hlbGxqcyIsIl9SdW5CdWlsZEZvcm1zIiwiX1J1bkJ1aWxkU2VydmVyIiwiX1J1bkRldkJ1aWxkIiwiX1J1bkZvcm1TdGF0cyIsIl9SdW5Jbml0Rm9ybSIsIl9SdW5Mb2NhbGl6YXRpb24iLCJfUnVuVXBncmFkZUZvcm0iLCJfQ29uc29sZUFwcGxpY2F0aW9uIiwiX1N0YXRpY0xvZ2dlciIsIl9DYW5keVRvb2xPcHRpb25zIiwiX1JlYWRGYXJtQ29uZmlnIiwiX1NlbGZVcGRhdGUiLCJfUnVuUmVuYW1lRmlsZXMiLCJjb25maWciLCJmYXRhbCIsInJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcyIsImRlYnVnQXJnSWR4IiwicHJvY2VzcyIsImV4ZWNBcmd2IiwiaW5kZXhPZiIsInNwbGljZSIsImRlYnVnQXJnMklkeCIsInJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyIsImZhcm1EaXJlY3RvcnkiLCJsb2dnZXIiLCJmaWxlcyIsInJlYWRkaXIiLCJvbGRUZW1wRmlsZU5hbWVzIiwiZmlsdGVyIiwieCIsImVuZHNXaXRoIiwibGVuZ3RoIiwibG9nIiwiZmlsZU5hbWUiLCJ1bmxpbmsiLCJwYXRoIiwiam9pbiIsInZhbGlkYXRlRmFybUNvbmZpZyIsImZhcm1Db25maWciLCJyZWFkRmFybUNvbmZpZyIsImVuZ2luZURpcmVjdG9yeSIsInVuZGVmaW5lZCIsIkVycm9yIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwicmVzb2x2ZSIsInZhbGlkYXRlQW5kUHJlcGFyZUZhcm1EaXJlY3Rvcmllc1BhdGgiLCJhbGxGYXJtRGlyZWN0b3JpZXMiLCJjdXJyZW50RGlyIiwiY29udGV4dCIsInJlc3VsdCIsInB0aCIsInBhdGhFeGlzdHMiLCJwdXNoIiwicGF0aFRvRmFybSIsInJ1bkNvbnNvbGVBcHBsaWNhdGlvbiIsImFyZ3YiLCJfcHJvY2VzcyRlbnYkTk9ERV9PUFQiLCJjb25zb2xlIiwiZW52Iiwic2V0SW50ZXJ2YWwiLCJtZW1vcnlVc2FnZSIsImdldEN1cnJlbnRWZXJzaW9uIiwicGFyc2VkQXJncyIsInBhcnNlT3B0aW9ucyIsInNldENvbnNvbGVMb2dnaW5nVmVyYm9zaXR5Iiwib3B0aW9ucyIsImxvZ1ZlcmJvc2l0eSIsInNldExvZ2dlciIsInZlcmJvc2UiLCJ0eXBlIiwicnVuSW5pdEZvcm0iLCJjd2QiLCJhbGxGYXJtc0RpciIsIndhcm5pbmciLCJhbGxGYXJtQ29uZmlnIiwiQXJyYXkiLCJpc0FycmF5IiwicnVuRGV2QnVpbGRTZXJ2ZXIiLCJydW5CdWlsZFNlcnZlciIsInJ1bkJ1aWxkRm9ybXMiLCJobEZhcm1EaXJlY3RvcnlQYXRoIiwicnVuRGV2QnVpbGQiLCJydW5Gb3JtU3RhdHMiLCJydW5VcGdyYWRlRm9ybSIsInJ1blJlbmFtZUZpbGVzIiwicnVuTG9jYWxpemF0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0NhbmR5Q0xJLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcImNvcmUtanMvZmVhdHVyZXMvYXJyYXkvZmxhdFwiO1xuaW1wb3J0IFwiY29yZS1qcy9wcm9wb3NhbHMvaXRlcmF0b3ItaGVscGVyc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9zdGFibGVcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHBhdGhFeGlzdHMsIHJlYWRkaXIsIHVubGluayB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IFwicmVmbGVjdC1tZXRhZGF0YVwiO1xuaW1wb3J0IFwicmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lXCI7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tIFwic2hlbGxqc1wiO1xuXG5pbXBvcnQgeyBydW5CdWlsZEZvcm1zIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvQnVpbGRGb3Jtcy9SdW5CdWlsZEZvcm1zXCI7XG5pbXBvcnQgeyBydW5CdWlsZFNlcnZlciwgcnVuRGV2QnVpbGRTZXJ2ZXIgfSBmcm9tIFwiLi9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SdW5CdWlsZFNlcnZlclwiO1xuaW1wb3J0IHsgcnVuRGV2QnVpbGQgfSBmcm9tIFwiLi9DTElDb21tYW5kcy9EZXZCdWlsZC9SdW5EZXZCdWlsZFwiO1xuaW1wb3J0IHsgcnVuRm9ybVN0YXRzIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvRm9ybVN0YXRzL1J1bkZvcm1TdGF0c1wiO1xuaW1wb3J0IHsgcnVuSW5pdEZvcm0gfSBmcm9tIFwiLi9DTElDb21tYW5kcy9Jbml0Rm9ybS9SdW5Jbml0Rm9ybVwiO1xuaW1wb3J0IHsgcnVuTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvTG9jYWxpemF0aW9uL1J1bkxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgcnVuVXBncmFkZUZvcm0gfSBmcm9tIFwiLi9DTElDb21tYW5kcy9VcGdyYWRlRm9ybS9SdW5VcGdyYWRlRm9ybVwiO1xuaW1wb3J0IHsgcnVuQ29uc29sZUFwcGxpY2F0aW9uIH0gZnJvbSBcIi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4vQ29tbW9ucy9Mb2dnaW5nL0lMb2dnZXJcIjtcbmltcG9ydCB7IHNldExvZ2dlciB9IGZyb20gXCIuL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IHBhcnNlT3B0aW9ucyB9IGZyb20gXCIuL09wdGlvbnMvQ2FuZHlUb29sT3B0aW9uc1wiO1xuaW1wb3J0IHsgcmVhZEZhcm1Db25maWcgfSBmcm9tIFwiLi9SZWFkRmFybUNvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFZlcnNpb24gfSBmcm9tIFwiLi9TZWxmVXBkYXRlXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFwiO1xuaW1wb3J0IHsgcnVuUmVuYW1lRmlsZXMgfSBmcm9tIFwiLi9DTElDb21tYW5kcy9SZW5hbWVGaWxlcy9SdW5SZW5hbWVGaWxlc1wiO1xuXG5jb25maWcuZmF0YWwgPSB0cnVlO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZhcm1Db25maWcge1xuICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeTogc3RyaW5nO1xuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZztcbiAgICBlbmdpbmVEaXJlY3Rvcnk/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcmVzb3VyY2VzRGlyZWN0b3J5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGhsRmFybURpcmVjdG9yeVBhdGg6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gcmVtb3RlSW5zcGVjdEZsYWdUb0Rpc2FibGVEZWJ1Z2dlckluQ2hpbGRQcm9jZXNzKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlYnVnQXJnSWR4ID0gcHJvY2Vzcy5leGVjQXJndi5pbmRleE9mKFwiLS1pbnNwZWN0LWJya1wiKTtcbiAgICBpZiAoZGVidWdBcmdJZHggIT09IC0xKSB7XG4gICAgICAgIHByb2Nlc3MuZXhlY0FyZ3Yuc3BsaWNlKGRlYnVnQXJnSWR4LCAxKTtcbiAgICB9XG4gICAgY29uc3QgZGVidWdBcmcySWR4ID0gcHJvY2Vzcy5leGVjQXJndi5pbmRleE9mKFwiLS1pbnNwZWN0XCIpO1xuICAgIGlmIChkZWJ1Z0FyZzJJZHggIT09IC0xKSB7XG4gICAgICAgIHByb2Nlc3MuZXhlY0FyZ3Yuc3BsaWNlKGRlYnVnQXJnMklkeCwgMSk7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMoZmFybURpcmVjdG9yeTogc3RyaW5nLCBsb2dnZXI6IElMb2dnZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmaWxlcyA9IGF3YWl0IHJlYWRkaXIoZmFybURpcmVjdG9yeSk7XG4gICAgY29uc3Qgb2xkVGVtcEZpbGVOYW1lcyA9IGZpbGVzLmZpbHRlcih4ID0+IHguZW5kc1dpdGgoXCIuY2FuZHktdG1wLndlYnBhY2suY29uZmlnLmpzXCIpKTtcbiAgICBpZiAob2xkVGVtcEZpbGVOYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJSZW1vdmluZyBvbGQgd2VicGFjay5jb25maWcuanMgZmlsZXNcIik7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZU5hbWUgb2Ygb2xkVGVtcEZpbGVOYW1lcykge1xuICAgICAgICAgICAgYXdhaXQgdW5saW5rKHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBmaWxlTmFtZSkpO1xuICAgICAgICB9XG4gICAgICAgIGxvZ2dlci5sb2coXCJSZW1vdmVkIG9sZCB3ZWJwYWNrLmNvbmZpZy5qcyBmaWxlc1wiKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlRmFybUNvbmZpZyhmYXJtRGlyZWN0b3J5OiBzdHJpbmcpOiBGYXJtQ29uZmlnIHtcbiAgICBjb25zdCBmYXJtQ29uZmlnID0gcmVhZEZhcm1Db25maWcoZmFybURpcmVjdG9yeSk7XG5cbiAgICBpZiAoZmFybUNvbmZpZy5lbmdpbmVEaXJlY3RvcnkgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVuZ2luZURpcmVjdG9yeSBpcyBub3Qgc3BlY2lmaWVkXCIpO1xuICAgIH1cbiAgICBpZiAoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlc291cmNlc0RpcmVjdG9yeSBpcyBub3Qgc3BlY2lmaWVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiLmNhbmR5X21vZHVsZXNcIik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZmFybUNvbmZpZyxcbiAgICAgICAgZmFybURpcmVjdG9yeTogZmFybURpcmVjdG9yeSxcbiAgICAgICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5OiBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgfTtcbn1cblxuY29uc3QgdmFsaWRhdGVBbmRQcmVwYXJlRmFybURpcmVjdG9yaWVzUGF0aCA9IGFzeW5jIChcbiAgICBhbGxGYXJtRGlyZWN0b3JpZXM6IHN0cmluZ1tdLFxuICAgIGN1cnJlbnREaXI6IHN0cmluZyxcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0XG4pOiBQcm9taXNlPEZhcm1Db25maWdbXT4gPT4ge1xuICAgIGNvbnN0IHJlc3VsdDogRmFybUNvbmZpZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBwdGggb2YgYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhdGguam9pbihwdGgsIFwiY29uZmlnLmpzXCIpKSkge1xuICAgICAgICAgICAgYXdhaXQgcmVtb3ZlVGVtcG9yYXJ5V2VicGFja0NvbmZpZ0ZpbGVzKHB0aCwgY29udGV4dC5sb2dnZXIpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsaWRhdGVGYXJtQ29uZmlnKHB0aCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8g0JLRgdC1INC00LXQu9C+INCyINGC0L7QvCwg0YfRgtC+INGB0LLRj9C30LrQsCBzZXJ2aWNlLXJ1bm5lci0yICsgdG9vbHMg0LrQvtGA0YDQtdC60YLQvdC+INGA0LDQsdC+0YLQsNC10YIg0YLQvtC70YzQutC+INCyINC/0LDQv9C60LUg0YEg0YTQvtGA0LzQvtC5XG4gICAgICAgICAgICAvLyDQuNC3INC30LAg0YfQtdCz0L4sINCy0L3Rg9GC0YDQuCDRgNCw0L3QvdC10YDQsCDQvdCw0L/QuNC70LXQvSDRhdC40YLRgNGL0Lkg0LzQtdGF0LDQvdC40LfQvCDQv9C+0LjRgdC60LAg0L/Rg9GC0LXQuSDRhNC+0YDQvNGLLiDQn9C10YDQtdC/0LjQu9C40LLQsNGC0Ywg0LLRgdC1INC80LXRhdCw0L3QuNC60LhcbiAgICAgICAgICAgIC8vINGB0L7QstGB0LXQvCDQvdC1INGF0L7Rh9C10YLRgdGPLCDQv9C+0Y3RgtC+0LzRgyDQtNC70Y8g0L3QsNGBLCDRgdGH0LjRgtCw0Y4g0L/QvtC00L3Rj9GC0LjQtSDQtNC+INGD0YDQvtCy0L3RjyBlbmdpbmUg0LLQv9C+0LvQvdC1INC/0YDQuNC10LzQu9C10LzRi9C8INGA0LXRiNC10L3QuNC10LxcbiAgICAgICAgICAgIGNvbnN0IHBhdGhUb0Zhcm0gPSBwYXRoLmpvaW4oY3VycmVudERpciwgXCIuLlwiLCBcIi4uXCIsIFwiLi5cIiwgcHRoKTtcbiAgICAgICAgICAgIGlmICghKGF3YWl0IHBhdGhFeGlzdHMocGF0aFRvRmFybSkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoYGFsbEZhcm1EaXJlY3RvcmllcyBwYXRoID0gJHtwYXRoVG9GYXJtfSBub3QgZXhpc3RgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IHJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyhwYXRoVG9GYXJtLCBjb250ZXh0LmxvZ2dlcik7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh2YWxpZGF0ZUZhcm1Db25maWcocGF0aFRvRmFybSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5ydW5Db25zb2xlQXBwbGljYXRpb24oYXN5bmMgKGFyZ3YsIGNvbnRleHQpID0+IHtcbiAgICByZW1vdGVJbnNwZWN0RmxhZ1RvRGlzYWJsZURlYnVnZ2VySW5DaGlsZFByb2Nlc3MoKTtcblxuICAgIGNvbnNvbGUubG9nKFwiTk9ERV9PUFRJT05TOiBcIiArIChwcm9jZXNzLmVudltcIk5PREVfT1BUSU9OU1wiXSA/PyBcIjxlbXB0eT5cIikpO1xuICAgIGNvbnNvbGUubG9nKFwiZXhlY0FyZ3YgICAgOiBcIiArIChwcm9jZXNzLmV4ZWNBcmd2LmpvaW4oXCIgXCIpKSk7XG5cbiAgICBzZXRJbnRlcnZhbCh4ID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coXCJtZW1vcnlVc2FnZTogXCIpO1xuICAgICAgICBjb25zb2xlLmxvZyhwcm9jZXNzLm1lbW9yeVVzYWdlKCkpO1xuICAgIH0sIDEwMDAgKiAzMCk7XG5cbiAgICBjb250ZXh0LmxvZ2dlci5sb2coXCJAa29udHVyLmNhbmR5L3Rvb2xzOiBcIiArIChhd2FpdCBnZXRDdXJyZW50VmVyc2lvbigpKSk7XG4gICAgY29uc3QgcGFyc2VkQXJncyA9IHBhcnNlT3B0aW9ucyhhcmd2KTtcblxuICAgIGNvbnRleHQuc2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkocGFyc2VkQXJncy5vcHRpb25zLmxvZ1ZlcmJvc2l0eSk7XG4gICAgc2V0TG9nZ2VyKGNvbnRleHQubG9nZ2VyKTtcbiAgICBjb250ZXh0LmxvZ2dlci52ZXJib3NlKGBWZXJib3NlIGxldmVsOiAke3BhcnNlZEFyZ3Mub3B0aW9ucy5sb2dWZXJib3NpdHl9YCk7XG5cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImluaXQtZm9ybVwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkluaXRGb3JtKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucyk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmYXJtRGlyZWN0b3J5ID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMoZmFybURpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgIGNvbnN0IGZhcm1Db25maWcgPSByZWFkRmFybUNvbmZpZyhmYXJtRGlyZWN0b3J5KTtcblxuICAgIGlmIChmYXJtQ29uZmlnLmVuZ2luZURpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5naW5lRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuICAgIGlmIChmYXJtQ29uZmlnLnJlc291cmNlc0RpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVzb3VyY2VzRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZW5naW5lRGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5KTtcbiAgICBjb25zdCByZXNvdXJjZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiLmNhbmR5X21vZHVsZXNcIik7XG5cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImJ1aWxkLXNlcnZlclwiIHx8IHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgY29uc3QgYWxsRmFybURpcmVjdG9yaWVzID0gcGFyc2VkQXJncy5vcHRpb25zLmFsbEZhcm1zRGlyO1xuICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBhbGxGYXJtRGlyZWN0b3JpZXMgPSAke3BhcnNlZEFyZ3Mub3B0aW9ucy5hbGxGYXJtc0Rpcn1gKTtcbiAgICAgICAgbGV0IGFsbEZhcm1Db25maWc7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFsbEZhcm1EaXJlY3RvcmllcykgJiYgYWxsRmFybURpcmVjdG9yaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGFsbEZhcm1Db25maWcgPSBhd2FpdCB2YWxpZGF0ZUFuZFByZXBhcmVGYXJtRGlyZWN0b3JpZXNQYXRoKGFsbEZhcm1EaXJlY3RvcmllcywgZmFybURpcmVjdG9yeSwgY29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBVc2UgZGVmYXVsdCBjYW5keUZhcm0gcGF0aCBkaXIgPSAke2Zhcm1EaXJlY3Rvcnl9YCk7XG4gICAgICAgICAgICBhbGxGYXJtQ29uZmlnID0gYXdhaXQgdmFsaWRhdGVBbmRQcmVwYXJlRmFybURpcmVjdG9yaWVzUGF0aChbZmFybURpcmVjdG9yeV0sIGZhcm1EaXJlY3RvcnksIGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgICAgIGF3YWl0IHJ1bkRldkJ1aWxkU2VydmVyKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucywgYWxsRmFybUNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBydW5CdWlsZFNlcnZlcihjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGFsbEZhcm1Db25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJidWlsZFwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkJ1aWxkRm9ybXMoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZGV2LWJ1aWxkXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuRGV2QnVpbGQoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZm9ybS1zdGF0c1wiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkZvcm1TdGF0cyhjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcInVwZ3JhZGVcIikge1xuICAgICAgICBhd2FpdCBydW5VcGdyYWRlRm9ybShjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSk7XG4gICAgfVxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwicmVuYW1lXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuUmVuYW1lRmlsZXMoY29udGV4dCwgcGFyc2VkQXJncy5vcHRpb25zLCByZXNvdXJjZXNEaXJlY3RvcnksIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImxvY2FsaXplXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuTG9jYWxpemF0aW9uKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIHBhcnNlZEFyZ3Mub3B0aW9ucyxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUFBLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0FBLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLGNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFlBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGFBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFlBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLGdCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxlQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxtQkFBQSxHQUFBWixPQUFBO0FBRUEsSUFBQWEsYUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsaUJBQUEsR0FBQWQsT0FBQTtBQUNBLElBQUFlLGVBQUEsR0FBQWYsT0FBQTtBQUNBLElBQUFnQixXQUFBLEdBQUFoQixPQUFBO0FBRUEsSUFBQWlCLGVBQUEsR0FBQWpCLE9BQUE7QUFFQWtCLGVBQU0sQ0FBQ0MsS0FBSyxHQUFHLElBQUk7QUFVbkIsU0FBU0MsZ0RBQWdEQSxDQUFBLEVBQVM7RUFDOUQsTUFBTUMsV0FBVyxHQUFHQyxPQUFPLENBQUNDLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDLGVBQWUsQ0FBQztFQUM3RCxJQUFJSCxXQUFXLEtBQUssQ0FBQyxDQUFDLEVBQUU7SUFDcEJDLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDRSxNQUFNLENBQUNKLFdBQVcsRUFBRSxDQUFDLENBQUM7RUFDM0M7RUFDQSxNQUFNSyxZQUFZLEdBQUdKLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDQyxPQUFPLENBQUMsV0FBVyxDQUFDO0VBQzFELElBQUlFLFlBQVksS0FBSyxDQUFDLENBQUMsRUFBRTtJQUNyQkosT0FBTyxDQUFDQyxRQUFRLENBQUNFLE1BQU0sQ0FBQ0MsWUFBWSxFQUFFLENBQUMsQ0FBQztFQUM1QztBQUNKO0FBRUEsZUFBZUMsaUNBQWlDQSxDQUFDQyxhQUFxQixFQUFFQyxNQUFlLEVBQWlCO0VBQ3BHLE1BQU1DLEtBQUssR0FBRyxNQUFNLElBQUFDLGdCQUFPLEVBQUNILGFBQWEsQ0FBQztFQUMxQyxNQUFNSSxnQkFBZ0IsR0FBR0YsS0FBSyxDQUFDRyxNQUFNLENBQUNDLENBQUMsSUFBSUEsQ0FBQyxDQUFDQyxRQUFRLENBQUMsOEJBQThCLENBQUMsQ0FBQztFQUN0RixJQUFJSCxnQkFBZ0IsQ0FBQ0ksTUFBTSxHQUFHLENBQUMsRUFBRTtJQUM3QlAsTUFBTSxDQUFDUSxHQUFHLENBQUMsc0NBQXNDLENBQUM7SUFDbEQsS0FBSyxNQUFNQyxRQUFRLElBQUlOLGdCQUFnQixFQUFFO01BQ3JDLE1BQU0sSUFBQU8sZUFBTSxFQUFDQyxhQUFJLENBQUNDLElBQUksQ0FBQ2IsYUFBYSxFQUFFVSxRQUFRLENBQUMsQ0FBQztJQUNwRDtJQUNBVCxNQUFNLENBQUNRLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQztFQUNyRDtBQUNKO0FBRUEsU0FBU0ssa0JBQWtCQSxDQUFDZCxhQUFxQixFQUFjO0VBQzNELE1BQU1lLFVBQVUsR0FBRyxJQUFBQyw4QkFBYyxFQUFDaEIsYUFBYSxDQUFDO0VBRWhELElBQUllLFVBQVUsQ0FBQ0UsZUFBZSxJQUFJQyxTQUFTLEVBQUU7SUFDekMsTUFBTSxJQUFJQyxLQUFLLENBQUMsa0NBQWtDLENBQUM7RUFDdkQ7RUFDQSxJQUFJSixVQUFVLENBQUNLLGtCQUFrQixJQUFJRixTQUFTLEVBQUU7SUFDNUMsTUFBTSxJQUFJQyxLQUFLLENBQUMscUNBQXFDLENBQUM7RUFDMUQ7RUFFQSxNQUFNRSxxQkFBcUIsR0FBR1QsYUFBSSxDQUFDVSxPQUFPLENBQUN0QixhQUFhLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixDQUFDO0VBQ2pGLE9BQU87SUFDSCxHQUFHZSxVQUFVO0lBQ2JmLGFBQWEsRUFBRUEsYUFBYTtJQUM1QnFCLHFCQUFxQixFQUFFQTtFQUMzQixDQUFDO0FBQ0w7QUFFQSxNQUFNRSxxQ0FBcUMsR0FBRyxNQUFBQSxDQUMxQ0Msa0JBQTRCLEVBQzVCQyxVQUFrQixFQUNsQkMsT0FBa0MsS0FDVjtFQUN4QixNQUFNQyxNQUFvQixHQUFHLEVBQUU7RUFDL0IsS0FBSyxNQUFNQyxHQUFHLElBQUlKLGtCQUFrQixFQUFFO0lBQ2xDLElBQUksTUFBTSxJQUFBSyxtQkFBVSxFQUFDakIsYUFBSSxDQUFDQyxJQUFJLENBQUNlLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQyxFQUFFO01BQy9DLE1BQU03QixpQ0FBaUMsQ0FBQzZCLEdBQUcsRUFBRUYsT0FBTyxDQUFDekIsTUFBTSxDQUFDO01BQzVEMEIsTUFBTSxDQUFDRyxJQUFJLENBQUNoQixrQkFBa0IsQ0FBQ2MsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQyxNQUFNO01BQ0g7TUFDQTtNQUNBO01BQ0EsTUFBTUcsVUFBVSxHQUFHbkIsYUFBSSxDQUFDQyxJQUFJLENBQUNZLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRUcsR0FBRyxDQUFDO01BQy9ELElBQUksRUFBRSxNQUFNLElBQUFDLG1CQUFVLEVBQUNFLFVBQVUsQ0FBQyxDQUFDLEVBQUU7UUFDakMsTUFBTVosS0FBSyxDQUFDLDZCQUE2QlksVUFBVSxZQUFZLENBQUM7TUFDcEU7TUFDQSxNQUFNaEMsaUNBQWlDLENBQUNnQyxVQUFVLEVBQUVMLE9BQU8sQ0FBQ3pCLE1BQU0sQ0FBQztNQUNuRTBCLE1BQU0sQ0FBQ0csSUFBSSxDQUFDaEIsa0JBQWtCLENBQUNpQixVQUFVLENBQUMsQ0FBQztJQUMvQztFQUNKO0VBQ0EsT0FBT0osTUFBTTtBQUNqQixDQUFDO0FBRUQsSUFBQUsseUNBQXFCLEVBQUMsT0FBT0MsSUFBSSxFQUFFUCxPQUFPLEtBQUs7RUFBQSxJQUFBUSxxQkFBQTtFQUMzQzFDLGdEQUFnRCxDQUFDLENBQUM7RUFFbEQyQyxPQUFPLENBQUMxQixHQUFHLENBQUMsZ0JBQWdCLEtBQUF5QixxQkFBQSxHQUFJeEMsT0FBTyxDQUFDMEMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxjQUFBRixxQkFBQSxjQUFBQSxxQkFBQSxHQUFJLFNBQVMsQ0FBQyxDQUFDO0VBQzFFQyxPQUFPLENBQUMxQixHQUFHLENBQUMsZ0JBQWdCLEdBQUlmLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDa0IsSUFBSSxDQUFDLEdBQUcsQ0FBRSxDQUFDO0VBRTVEd0IsV0FBVyxDQUFDL0IsQ0FBQyxJQUFJO0lBQ2I2QixPQUFPLENBQUMxQixHQUFHLENBQUMsZUFBZSxDQUFDO0lBQzVCMEIsT0FBTyxDQUFDMUIsR0FBRyxDQUFDZixPQUFPLENBQUM0QyxXQUFXLENBQUMsQ0FBQyxDQUFDO0VBQ3RDLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO0VBRWJaLE9BQU8sQ0FBQ3pCLE1BQU0sQ0FBQ1EsR0FBRyxDQUFDLHVCQUF1QixJQUFJLE1BQU0sSUFBQThCLDZCQUFpQixFQUFDLENBQUMsQ0FBQyxDQUFDO0VBQ3pFLE1BQU1DLFVBQVUsR0FBRyxJQUFBQyw4QkFBWSxFQUFDUixJQUFJLENBQUM7RUFFckNQLE9BQU8sQ0FBQ2dCLDBCQUEwQixDQUFDRixVQUFVLENBQUNHLE9BQU8sQ0FBQ0MsWUFBWSxDQUFDO0VBQ25FLElBQUFDLHVCQUFTLEVBQUNuQixPQUFPLENBQUN6QixNQUFNLENBQUM7RUFDekJ5QixPQUFPLENBQUN6QixNQUFNLENBQUM2QyxPQUFPLENBQUMsa0JBQWtCTixVQUFVLENBQUNHLE9BQU8sQ0FBQ0MsWUFBWSxFQUFFLENBQUM7RUFFM0UsSUFBSUosVUFBVSxDQUFDTyxJQUFJLEtBQUssV0FBVyxFQUFFO0lBQ2pDLE1BQU0sSUFBQUMsd0JBQVcsRUFBQ3RCLE9BQU8sRUFBRWMsVUFBVSxDQUFDRyxPQUFPLENBQUM7SUFDOUM7RUFDSjtFQUVBLE1BQU0zQyxhQUFhLEdBQUdOLE9BQU8sQ0FBQ3VELEdBQUcsQ0FBQyxDQUFDO0VBQ25DLE1BQU1sRCxpQ0FBaUMsQ0FBQ0MsYUFBYSxFQUFFMEIsT0FBTyxDQUFDekIsTUFBTSxDQUFDO0VBQ3RFLE1BQU1jLFVBQVUsR0FBRyxJQUFBQyw4QkFBYyxFQUFDaEIsYUFBYSxDQUFDO0VBRWhELElBQUllLFVBQVUsQ0FBQ0UsZUFBZSxJQUFJQyxTQUFTLEVBQUU7SUFDekMsTUFBTSxJQUFJQyxLQUFLLENBQUMsa0NBQWtDLENBQUM7RUFDdkQ7RUFDQSxJQUFJSixVQUFVLENBQUNLLGtCQUFrQixJQUFJRixTQUFTLEVBQUU7SUFDNUMsTUFBTSxJQUFJQyxLQUFLLENBQUMscUNBQXFDLENBQUM7RUFDMUQ7RUFFQSxNQUFNRixlQUFlLEdBQUdMLGFBQUksQ0FBQ1UsT0FBTyxDQUFDUCxVQUFVLENBQUNFLGVBQWUsQ0FBQztFQUNoRSxNQUFNRyxrQkFBa0IsR0FBR1IsYUFBSSxDQUFDVSxPQUFPLENBQUNQLFVBQVUsQ0FBQ0ssa0JBQWtCLENBQUM7RUFDdEUsTUFBTUMscUJBQXFCLEdBQUdULGFBQUksQ0FBQ1UsT0FBTyxDQUFDdEIsYUFBYSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsQ0FBQztFQUVqRixJQUFJd0MsVUFBVSxDQUFDTyxJQUFJLEtBQUssY0FBYyxJQUFJUCxVQUFVLENBQUNPLElBQUksS0FBSyxrQkFBa0IsRUFBRTtJQUM5RSxNQUFNdkIsa0JBQWtCLEdBQUdnQixVQUFVLENBQUNHLE9BQU8sQ0FBQ08sV0FBVztJQUN6RHhCLE9BQU8sQ0FBQ3pCLE1BQU0sQ0FBQ2tELE9BQU8sQ0FBQyx3QkFBd0JYLFVBQVUsQ0FBQ0csT0FBTyxDQUFDTyxXQUFXLEVBQUUsQ0FBQztJQUNoRixJQUFJRSxhQUFhO0lBQ2pCLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDOUIsa0JBQWtCLENBQUMsSUFBSUEsa0JBQWtCLENBQUNoQixNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ3BFNEMsYUFBYSxHQUFHLE1BQU03QixxQ0FBcUMsQ0FBQ0Msa0JBQWtCLEVBQUV4QixhQUFhLEVBQUUwQixPQUFPLENBQUM7SUFDM0csQ0FBQyxNQUFNO01BQ0hBLE9BQU8sQ0FBQ3pCLE1BQU0sQ0FBQ2tELE9BQU8sQ0FBQyxvQ0FBb0NuRCxhQUFhLEVBQUUsQ0FBQztNQUMzRW9ELGFBQWEsR0FBRyxNQUFNN0IscUNBQXFDLENBQUMsQ0FBQ3ZCLGFBQWEsQ0FBQyxFQUFFQSxhQUFhLEVBQUUwQixPQUFPLENBQUM7SUFDeEc7SUFFQSxJQUFJYyxVQUFVLENBQUNPLElBQUksS0FBSyxrQkFBa0IsRUFBRTtNQUN4QyxNQUFNLElBQUFRLGlDQUFpQixFQUFDN0IsT0FBTyxFQUFFYyxVQUFVLENBQUNHLE9BQU8sRUFBRVMsYUFBYSxDQUFDO0lBQ3ZFLENBQUMsTUFBTTtNQUNILE1BQU0sSUFBQUksOEJBQWMsRUFBQzlCLE9BQU8sRUFBRWMsVUFBVSxDQUFDRyxPQUFPLEVBQUVTLGFBQWEsQ0FBQztJQUNwRTtFQUNKO0VBRUEsSUFBSVosVUFBVSxDQUFDTyxJQUFJLEtBQUssT0FBTyxFQUFFO0lBQzdCLE1BQU0sSUFBQVUsNEJBQWEsRUFDZi9CLE9BQU8sRUFDUGMsVUFBVSxDQUFDRyxPQUFPLEVBQ2xCM0MsYUFBYSxFQUNib0Isa0JBQWtCLEVBQ2xCSCxlQUFlLEVBQ2ZJLHFCQUFxQixFQUNyQk4sVUFBVSxDQUFDMkMsbUJBQ2YsQ0FBQztFQUNMO0VBRUEsSUFBSWxCLFVBQVUsQ0FBQ08sSUFBSSxLQUFLLFdBQVcsRUFBRTtJQUNqQyxNQUFNLElBQUFZLHdCQUFXLEVBQ2JqQyxPQUFPLEVBQ1BjLFVBQVUsQ0FBQ0csT0FBTyxFQUNsQjFCLGVBQWUsRUFDZkcsa0JBQWtCLEVBQ2xCcEIsYUFBYSxFQUNicUIscUJBQXFCLEVBQ3JCTixVQUFVLENBQUMyQyxtQkFDZixDQUFDO0VBQ0w7RUFFQSxJQUFJbEIsVUFBVSxDQUFDTyxJQUFJLEtBQUssWUFBWSxFQUFFO0lBQ2xDLE1BQU0sSUFBQWEsMEJBQVksRUFBQ2xDLE9BQU8sRUFBRWMsVUFBVSxDQUFDRyxPQUFPLEVBQUUzQyxhQUFhLENBQUM7RUFDbEU7RUFDQSxJQUFJd0MsVUFBVSxDQUFDTyxJQUFJLEtBQUssU0FBUyxFQUFFO0lBQy9CLE1BQU0sSUFBQWMsOEJBQWMsRUFBQ25DLE9BQU8sRUFBRWMsVUFBVSxDQUFDRyxPQUFPLEVBQUV2QixrQkFBa0IsRUFBRXBCLGFBQWEsQ0FBQztFQUN4RjtFQUNBLElBQUl3QyxVQUFVLENBQUNPLElBQUksS0FBSyxRQUFRLEVBQUU7SUFDOUIsTUFBTSxJQUFBZSw4QkFBYyxFQUFDcEMsT0FBTyxFQUFFYyxVQUFVLENBQUNHLE9BQU8sRUFBRXZCLGtCQUFrQixFQUFFcEIsYUFBYSxDQUFDO0VBQ3hGO0VBQ0EsSUFBSXdDLFVBQVUsQ0FBQ08sSUFBSSxLQUFLLFVBQVUsRUFBRTtJQUNoQyxNQUFNLElBQUFnQixnQ0FBZSxFQUNqQnJDLE9BQU8sRUFDUGMsVUFBVSxDQUFDRyxPQUFPLEVBQ2xCM0MsYUFBYSxFQUNiaUIsZUFBZSxFQUNmSSxxQkFBcUIsRUFDckJOLFVBQVUsQ0FBQzJDLG1CQUNmLENBQUM7RUFDTDtBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
147
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2ZzRXh0cmEiLCJfc2hlbGxqcyIsIl9SdW5CdWlsZEZvcm1zIiwiX1J1bkJ1aWxkU2VydmVyIiwiX1J1bkRldkJ1aWxkIiwiX1J1bkZvcm1TdGF0cyIsIl9SdW5Jbml0Rm9ybSIsIl9SdW5Mb2NhbGl6YXRpb24iLCJfUnVuVXBncmFkZUZvcm0iLCJfQ29uc29sZUFwcGxpY2F0aW9uIiwiX1N0YXRpY0xvZ2dlciIsIl9DYW5keVRvb2xPcHRpb25zIiwiX1JlYWRGYXJtQ29uZmlnIiwiX1NlbGZVcGRhdGUiLCJfUnVuUmVuYW1lRmlsZXMiLCJjb25maWciLCJmYXRhbCIsInJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcyIsImRlYnVnQXJnSWR4IiwicHJvY2VzcyIsImV4ZWNBcmd2IiwiaW5kZXhPZiIsInNwbGljZSIsImRlYnVnQXJnMklkeCIsInJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyIsImZhcm1EaXJlY3RvcnkiLCJsb2dnZXIiLCJmaWxlcyIsInJlYWRkaXIiLCJvbGRUZW1wRmlsZU5hbWVzIiwiZmlsdGVyIiwieCIsImVuZHNXaXRoIiwibGVuZ3RoIiwibG9nIiwiZmlsZU5hbWUiLCJ1bmxpbmsiLCJwYXRoIiwiam9pbiIsInZhbGlkYXRlRmFybUNvbmZpZyIsImZhcm1Db25maWciLCJyZWFkRmFybUNvbmZpZyIsImVuZ2luZURpcmVjdG9yeSIsInVuZGVmaW5lZCIsIkVycm9yIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwicmVzb2x2ZSIsInZhbGlkYXRlQW5kUHJlcGFyZUZhcm1EaXJlY3Rvcmllc1BhdGgiLCJhbGxGYXJtRGlyZWN0b3JpZXMiLCJjdXJyZW50RGlyIiwiY29udGV4dCIsInJlc3VsdCIsInB0aCIsInBhdGhFeGlzdHMiLCJwdXNoIiwicGF0aFRvRmFybSIsInJ1bkNvbnNvbGVBcHBsaWNhdGlvbiIsImFyZ3YiLCJfcHJvY2VzcyRlbnYkTk9ERV9PUFQiLCJlbnYiLCJzZXRJbnRlcnZhbCIsIkpTT04iLCJzdHJpbmdpZnkiLCJtZW1vcnlVc2FnZSIsImdldEN1cnJlbnRWZXJzaW9uIiwicGFyc2VkQXJncyIsInBhcnNlT3B0aW9ucyIsInNldENvbnNvbGVMb2dnaW5nVmVyYm9zaXR5Iiwib3B0aW9ucyIsImxvZ1ZlcmJvc2l0eSIsInNldExvZ2dlciIsInZlcmJvc2UiLCJ0eXBlIiwicnVuSW5pdEZvcm0iLCJjd2QiLCJhbGxGYXJtc0RpciIsIndhcm5pbmciLCJhbGxGYXJtQ29uZmlnIiwiQXJyYXkiLCJpc0FycmF5IiwicnVuRGV2QnVpbGRTZXJ2ZXIiLCJydW5CdWlsZFNlcnZlciIsInJ1bkJ1aWxkRm9ybXMiLCJobEZhcm1EaXJlY3RvcnlQYXRoIiwicnVuRGV2QnVpbGQiLCJydW5Gb3JtU3RhdHMiLCJydW5VcGdyYWRlRm9ybSIsInJ1blJlbmFtZUZpbGVzIiwicnVuTG9jYWxpemF0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0NhbmR5Q0xJLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcImNvcmUtanMvZmVhdHVyZXMvYXJyYXkvZmxhdFwiO1xuaW1wb3J0IFwiY29yZS1qcy9wcm9wb3NhbHMvaXRlcmF0b3ItaGVscGVyc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9zdGFibGVcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHBhdGhFeGlzdHMsIHJlYWRkaXIsIHVubGluayB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IFwicmVmbGVjdC1tZXRhZGF0YVwiO1xuaW1wb3J0IFwicmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lXCI7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tIFwic2hlbGxqc1wiO1xuXG5pbXBvcnQgeyBydW5CdWlsZEZvcm1zIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvQnVpbGRGb3Jtcy9SdW5CdWlsZEZvcm1zXCI7XG5pbXBvcnQgeyBydW5CdWlsZFNlcnZlciwgcnVuRGV2QnVpbGRTZXJ2ZXIgfSBmcm9tIFwiLi9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SdW5CdWlsZFNlcnZlclwiO1xuaW1wb3J0IHsgcnVuRGV2QnVpbGQgfSBmcm9tIFwiLi9DTElDb21tYW5kcy9EZXZCdWlsZC9SdW5EZXZCdWlsZFwiO1xuaW1wb3J0IHsgcnVuRm9ybVN0YXRzIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvRm9ybVN0YXRzL1J1bkZvcm1TdGF0c1wiO1xuaW1wb3J0IHsgcnVuSW5pdEZvcm0gfSBmcm9tIFwiLi9DTElDb21tYW5kcy9Jbml0Rm9ybS9SdW5Jbml0Rm9ybVwiO1xuaW1wb3J0IHsgcnVuTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvTG9jYWxpemF0aW9uL1J1bkxvY2FsaXphdGlvblwiO1xuaW1wb3J0IHsgcnVuVXBncmFkZUZvcm0gfSBmcm9tIFwiLi9DTElDb21tYW5kcy9VcGdyYWRlRm9ybS9SdW5VcGdyYWRlRm9ybVwiO1xuaW1wb3J0IHsgcnVuQ29uc29sZUFwcGxpY2F0aW9uIH0gZnJvbSBcIi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4vQ29tbW9ucy9Mb2dnaW5nL0lMb2dnZXJcIjtcbmltcG9ydCB7IHNldExvZ2dlciB9IGZyb20gXCIuL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IHBhcnNlT3B0aW9ucyB9IGZyb20gXCIuL09wdGlvbnMvQ2FuZHlUb29sT3B0aW9uc1wiO1xuaW1wb3J0IHsgcmVhZEZhcm1Db25maWcgfSBmcm9tIFwiLi9SZWFkRmFybUNvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFZlcnNpb24gfSBmcm9tIFwiLi9TZWxmVXBkYXRlXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFwiO1xuaW1wb3J0IHsgcnVuUmVuYW1lRmlsZXMgfSBmcm9tIFwiLi9DTElDb21tYW5kcy9SZW5hbWVGaWxlcy9SdW5SZW5hbWVGaWxlc1wiO1xuXG5jb25maWcuZmF0YWwgPSB0cnVlO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZhcm1Db25maWcge1xuICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeTogc3RyaW5nO1xuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZztcbiAgICBlbmdpbmVEaXJlY3Rvcnk/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcmVzb3VyY2VzRGlyZWN0b3J5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGhsRmFybURpcmVjdG9yeVBhdGg6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gcmVtb3RlSW5zcGVjdEZsYWdUb0Rpc2FibGVEZWJ1Z2dlckluQ2hpbGRQcm9jZXNzKCk6IHZvaWQge1xuICAgIGNvbnN0IGRlYnVnQXJnSWR4ID0gcHJvY2Vzcy5leGVjQXJndi5pbmRleE9mKFwiLS1pbnNwZWN0LWJya1wiKTtcbiAgICBpZiAoZGVidWdBcmdJZHggIT09IC0xKSB7XG4gICAgICAgIHByb2Nlc3MuZXhlY0FyZ3Yuc3BsaWNlKGRlYnVnQXJnSWR4LCAxKTtcbiAgICB9XG4gICAgY29uc3QgZGVidWdBcmcySWR4ID0gcHJvY2Vzcy5leGVjQXJndi5pbmRleE9mKFwiLS1pbnNwZWN0XCIpO1xuICAgIGlmIChkZWJ1Z0FyZzJJZHggIT09IC0xKSB7XG4gICAgICAgIHByb2Nlc3MuZXhlY0FyZ3Yuc3BsaWNlKGRlYnVnQXJnMklkeCwgMSk7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMoZmFybURpcmVjdG9yeTogc3RyaW5nLCBsb2dnZXI6IElMb2dnZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmaWxlcyA9IGF3YWl0IHJlYWRkaXIoZmFybURpcmVjdG9yeSk7XG4gICAgY29uc3Qgb2xkVGVtcEZpbGVOYW1lcyA9IGZpbGVzLmZpbHRlcih4ID0+IHguZW5kc1dpdGgoXCIuY2FuZHktdG1wLndlYnBhY2suY29uZmlnLmpzXCIpKTtcbiAgICBpZiAob2xkVGVtcEZpbGVOYW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJSZW1vdmluZyBvbGQgd2VicGFjay5jb25maWcuanMgZmlsZXNcIik7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZU5hbWUgb2Ygb2xkVGVtcEZpbGVOYW1lcykge1xuICAgICAgICAgICAgYXdhaXQgdW5saW5rKHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBmaWxlTmFtZSkpO1xuICAgICAgICB9XG4gICAgICAgIGxvZ2dlci5sb2coXCJSZW1vdmVkIG9sZCB3ZWJwYWNrLmNvbmZpZy5qcyBmaWxlc1wiKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlRmFybUNvbmZpZyhmYXJtRGlyZWN0b3J5OiBzdHJpbmcpOiBGYXJtQ29uZmlnIHtcbiAgICBjb25zdCBmYXJtQ29uZmlnID0gcmVhZEZhcm1Db25maWcoZmFybURpcmVjdG9yeSk7XG5cbiAgICBpZiAoZmFybUNvbmZpZy5lbmdpbmVEaXJlY3RvcnkgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVuZ2luZURpcmVjdG9yeSBpcyBub3Qgc3BlY2lmaWVkXCIpO1xuICAgIH1cbiAgICBpZiAoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlc291cmNlc0RpcmVjdG9yeSBpcyBub3Qgc3BlY2lmaWVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiLmNhbmR5X21vZHVsZXNcIik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZmFybUNvbmZpZyxcbiAgICAgICAgZmFybURpcmVjdG9yeTogZmFybURpcmVjdG9yeSxcbiAgICAgICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5OiBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgfTtcbn1cblxuY29uc3QgdmFsaWRhdGVBbmRQcmVwYXJlRmFybURpcmVjdG9yaWVzUGF0aCA9IGFzeW5jIChcbiAgICBhbGxGYXJtRGlyZWN0b3JpZXM6IHN0cmluZ1tdLFxuICAgIGN1cnJlbnREaXI6IHN0cmluZyxcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0XG4pOiBQcm9taXNlPEZhcm1Db25maWdbXT4gPT4ge1xuICAgIGNvbnN0IHJlc3VsdDogRmFybUNvbmZpZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBwdGggb2YgYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhdGguam9pbihwdGgsIFwiY29uZmlnLmpzXCIpKSkge1xuICAgICAgICAgICAgYXdhaXQgcmVtb3ZlVGVtcG9yYXJ5V2VicGFja0NvbmZpZ0ZpbGVzKHB0aCwgY29udGV4dC5sb2dnZXIpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsaWRhdGVGYXJtQ29uZmlnKHB0aCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8g0JLRgdC1INC00LXQu9C+INCyINGC0L7QvCwg0YfRgtC+INGB0LLRj9C30LrQsCBzZXJ2aWNlLXJ1bm5lci0yICsgdG9vbHMg0LrQvtGA0YDQtdC60YLQvdC+INGA0LDQsdC+0YLQsNC10YIg0YLQvtC70YzQutC+INCyINC/0LDQv9C60LUg0YEg0YTQvtGA0LzQvtC5XG4gICAgICAgICAgICAvLyDQuNC3INC30LAg0YfQtdCz0L4sINCy0L3Rg9GC0YDQuCDRgNCw0L3QvdC10YDQsCDQvdCw0L/QuNC70LXQvSDRhdC40YLRgNGL0Lkg0LzQtdGF0LDQvdC40LfQvCDQv9C+0LjRgdC60LAg0L/Rg9GC0LXQuSDRhNC+0YDQvNGLLiDQn9C10YDQtdC/0LjQu9C40LLQsNGC0Ywg0LLRgdC1INC80LXRhdCw0L3QuNC60LhcbiAgICAgICAgICAgIC8vINGB0L7QstGB0LXQvCDQvdC1INGF0L7Rh9C10YLRgdGPLCDQv9C+0Y3RgtC+0LzRgyDQtNC70Y8g0L3QsNGBLCDRgdGH0LjRgtCw0Y4g0L/QvtC00L3Rj9GC0LjQtSDQtNC+INGD0YDQvtCy0L3RjyBlbmdpbmUg0LLQv9C+0LvQvdC1INC/0YDQuNC10LzQu9C10LzRi9C8INGA0LXRiNC10L3QuNC10LxcbiAgICAgICAgICAgIGNvbnN0IHBhdGhUb0Zhcm0gPSBwYXRoLmpvaW4oY3VycmVudERpciwgXCIuLlwiLCBcIi4uXCIsIFwiLi5cIiwgcHRoKTtcbiAgICAgICAgICAgIGlmICghKGF3YWl0IHBhdGhFeGlzdHMocGF0aFRvRmFybSkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoYGFsbEZhcm1EaXJlY3RvcmllcyBwYXRoID0gJHtwYXRoVG9GYXJtfSBub3QgZXhpc3RgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IHJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyhwYXRoVG9GYXJtLCBjb250ZXh0LmxvZ2dlcik7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh2YWxpZGF0ZUZhcm1Db25maWcocGF0aFRvRmFybSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5ydW5Db25zb2xlQXBwbGljYXRpb24oYXN5bmMgKGFyZ3YsIGNvbnRleHQpID0+IHtcbiAgICByZW1vdGVJbnNwZWN0RmxhZ1RvRGlzYWJsZURlYnVnZ2VySW5DaGlsZFByb2Nlc3MoKTtcblxuICAgIGNvbnRleHQubG9nZ2VyLmxvZyhcIk5PREVfT1BUSU9OUzogXCIgKyAocHJvY2Vzcy5lbnZbXCJOT0RFX09QVElPTlNcIl0gPz8gXCI8ZW1wdHk+XCIpKTtcbiAgICBjb250ZXh0LmxvZ2dlci5sb2coXCJleGVjQXJndiAgICA6IFwiICsgcHJvY2Vzcy5leGVjQXJndi5qb2luKFwiIFwiKSk7XG5cbiAgICBzZXRJbnRlcnZhbCh4ID0+IHtcbiAgICAgICAgY29udGV4dC5sb2dnZXIubG9nKFwibWVtb3J5VXNhZ2U6IFwiKTtcbiAgICAgICAgY29udGV4dC5sb2dnZXIubG9nKEpTT04uc3RyaW5naWZ5KHByb2Nlc3MubWVtb3J5VXNhZ2UoKSwgbnVsbCwgMikpO1xuICAgIH0sIDEwMDAgKiAzMCk7XG5cbiAgICBjb250ZXh0LmxvZ2dlci5sb2coXCJAa29udHVyLmNhbmR5L3Rvb2xzOiBcIiArIChhd2FpdCBnZXRDdXJyZW50VmVyc2lvbigpKSk7XG4gICAgY29uc3QgcGFyc2VkQXJncyA9IHBhcnNlT3B0aW9ucyhhcmd2KTtcblxuICAgIGNvbnRleHQuc2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkocGFyc2VkQXJncy5vcHRpb25zLmxvZ1ZlcmJvc2l0eSk7XG4gICAgc2V0TG9nZ2VyKGNvbnRleHQubG9nZ2VyKTtcbiAgICBjb250ZXh0LmxvZ2dlci52ZXJib3NlKGBWZXJib3NlIGxldmVsOiAke3BhcnNlZEFyZ3Mub3B0aW9ucy5sb2dWZXJib3NpdHl9YCk7XG5cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImluaXQtZm9ybVwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkluaXRGb3JtKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucyk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmYXJtRGlyZWN0b3J5ID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMoZmFybURpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgIGNvbnN0IGZhcm1Db25maWcgPSByZWFkRmFybUNvbmZpZyhmYXJtRGlyZWN0b3J5KTtcblxuICAgIGlmIChmYXJtQ29uZmlnLmVuZ2luZURpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5naW5lRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuICAgIGlmIChmYXJtQ29uZmlnLnJlc291cmNlc0RpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVzb3VyY2VzRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZW5naW5lRGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5KTtcbiAgICBjb25zdCByZXNvdXJjZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiLmNhbmR5X21vZHVsZXNcIik7XG5cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImJ1aWxkLXNlcnZlclwiIHx8IHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgY29uc3QgYWxsRmFybURpcmVjdG9yaWVzID0gcGFyc2VkQXJncy5vcHRpb25zLmFsbEZhcm1zRGlyO1xuICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBhbGxGYXJtRGlyZWN0b3JpZXMgPSAke3BhcnNlZEFyZ3Mub3B0aW9ucy5hbGxGYXJtc0Rpcn1gKTtcbiAgICAgICAgbGV0IGFsbEZhcm1Db25maWc7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFsbEZhcm1EaXJlY3RvcmllcykgJiYgYWxsRmFybURpcmVjdG9yaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGFsbEZhcm1Db25maWcgPSBhd2FpdCB2YWxpZGF0ZUFuZFByZXBhcmVGYXJtRGlyZWN0b3JpZXNQYXRoKGFsbEZhcm1EaXJlY3RvcmllcywgZmFybURpcmVjdG9yeSwgY29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBVc2UgZGVmYXVsdCBjYW5keUZhcm0gcGF0aCBkaXIgPSAke2Zhcm1EaXJlY3Rvcnl9YCk7XG4gICAgICAgICAgICBhbGxGYXJtQ29uZmlnID0gYXdhaXQgdmFsaWRhdGVBbmRQcmVwYXJlRmFybURpcmVjdG9yaWVzUGF0aChbZmFybURpcmVjdG9yeV0sIGZhcm1EaXJlY3RvcnksIGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgICAgIGF3YWl0IHJ1bkRldkJ1aWxkU2VydmVyKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucywgYWxsRmFybUNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBydW5CdWlsZFNlcnZlcihjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGFsbEZhcm1Db25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJidWlsZFwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkJ1aWxkRm9ybXMoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZGV2LWJ1aWxkXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuRGV2QnVpbGQoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZm9ybS1zdGF0c1wiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkZvcm1TdGF0cyhjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcInVwZ3JhZGVcIikge1xuICAgICAgICBhd2FpdCBydW5VcGdyYWRlRm9ybShjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSk7XG4gICAgfVxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwicmVuYW1lXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuUmVuYW1lRmlsZXMoY29udGV4dCwgcGFyc2VkQXJncy5vcHRpb25zLCByZXNvdXJjZXNEaXJlY3RvcnksIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImxvY2FsaXplXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuTG9jYWxpemF0aW9uKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIHBhcnNlZEFyZ3Mub3B0aW9ucyxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUFBLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0FBLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLGNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFlBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGFBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFlBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLGdCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxlQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxtQkFBQSxHQUFBWixPQUFBO0FBRUEsSUFBQWEsYUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsaUJBQUEsR0FBQWQsT0FBQTtBQUNBLElBQUFlLGVBQUEsR0FBQWYsT0FBQTtBQUNBLElBQUFnQixXQUFBLEdBQUFoQixPQUFBO0FBRUEsSUFBQWlCLGVBQUEsR0FBQWpCLE9BQUE7QUFFQWtCLGVBQU0sQ0FBQ0MsS0FBSyxHQUFHLElBQUk7QUFVbkIsU0FBU0MsZ0RBQWdEQSxDQUFBLEVBQVM7RUFDOUQsTUFBTUMsV0FBVyxHQUFHQyxPQUFPLENBQUNDLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDLGVBQWUsQ0FBQztFQUM3RCxJQUFJSCxXQUFXLEtBQUssQ0FBQyxDQUFDLEVBQUU7SUFDcEJDLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDRSxNQUFNLENBQUNKLFdBQVcsRUFBRSxDQUFDLENBQUM7RUFDM0M7RUFDQSxNQUFNSyxZQUFZLEdBQUdKLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDQyxPQUFPLENBQUMsV0FBVyxDQUFDO0VBQzFELElBQUlFLFlBQVksS0FBSyxDQUFDLENBQUMsRUFBRTtJQUNyQkosT0FBTyxDQUFDQyxRQUFRLENBQUNFLE1BQU0sQ0FBQ0MsWUFBWSxFQUFFLENBQUMsQ0FBQztFQUM1QztBQUNKO0FBRUEsZUFBZUMsaUNBQWlDQSxDQUFDQyxhQUFxQixFQUFFQyxNQUFlLEVBQWlCO0VBQ3BHLE1BQU1DLEtBQUssR0FBRyxNQUFNLElBQUFDLGdCQUFPLEVBQUNILGFBQWEsQ0FBQztFQUMxQyxNQUFNSSxnQkFBZ0IsR0FBR0YsS0FBSyxDQUFDRyxNQUFNLENBQUNDLENBQUMsSUFBSUEsQ0FBQyxDQUFDQyxRQUFRLENBQUMsOEJBQThCLENBQUMsQ0FBQztFQUN0RixJQUFJSCxnQkFBZ0IsQ0FBQ0ksTUFBTSxHQUFHLENBQUMsRUFBRTtJQUM3QlAsTUFBTSxDQUFDUSxHQUFHLENBQUMsc0NBQXNDLENBQUM7SUFDbEQsS0FBSyxNQUFNQyxRQUFRLElBQUlOLGdCQUFnQixFQUFFO01BQ3JDLE1BQU0sSUFBQU8sZUFBTSxFQUFDQyxhQUFJLENBQUNDLElBQUksQ0FBQ2IsYUFBYSxFQUFFVSxRQUFRLENBQUMsQ0FBQztJQUNwRDtJQUNBVCxNQUFNLENBQUNRLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQztFQUNyRDtBQUNKO0FBRUEsU0FBU0ssa0JBQWtCQSxDQUFDZCxhQUFxQixFQUFjO0VBQzNELE1BQU1lLFVBQVUsR0FBRyxJQUFBQyw4QkFBYyxFQUFDaEIsYUFBYSxDQUFDO0VBRWhELElBQUllLFVBQVUsQ0FBQ0UsZUFBZSxJQUFJQyxTQUFTLEVBQUU7SUFDekMsTUFBTSxJQUFJQyxLQUFLLENBQUMsa0NBQWtDLENBQUM7RUFDdkQ7RUFDQSxJQUFJSixVQUFVLENBQUNLLGtCQUFrQixJQUFJRixTQUFTLEVBQUU7SUFDNUMsTUFBTSxJQUFJQyxLQUFLLENBQUMscUNBQXFDLENBQUM7RUFDMUQ7RUFFQSxNQUFNRSxxQkFBcUIsR0FBR1QsYUFBSSxDQUFDVSxPQUFPLENBQUN0QixhQUFhLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixDQUFDO0VBQ2pGLE9BQU87SUFDSCxHQUFHZSxVQUFVO0lBQ2JmLGFBQWEsRUFBRUEsYUFBYTtJQUM1QnFCLHFCQUFxQixFQUFFQTtFQUMzQixDQUFDO0FBQ0w7QUFFQSxNQUFNRSxxQ0FBcUMsR0FBRyxNQUFBQSxDQUMxQ0Msa0JBQTRCLEVBQzVCQyxVQUFrQixFQUNsQkMsT0FBa0MsS0FDVjtFQUN4QixNQUFNQyxNQUFvQixHQUFHLEVBQUU7RUFDL0IsS0FBSyxNQUFNQyxHQUFHLElBQUlKLGtCQUFrQixFQUFFO0lBQ2xDLElBQUksTUFBTSxJQUFBSyxtQkFBVSxFQUFDakIsYUFBSSxDQUFDQyxJQUFJLENBQUNlLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQyxFQUFFO01BQy9DLE1BQU03QixpQ0FBaUMsQ0FBQzZCLEdBQUcsRUFBRUYsT0FBTyxDQUFDekIsTUFBTSxDQUFDO01BQzVEMEIsTUFBTSxDQUFDRyxJQUFJLENBQUNoQixrQkFBa0IsQ0FBQ2MsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQyxNQUFNO01BQ0g7TUFDQTtNQUNBO01BQ0EsTUFBTUcsVUFBVSxHQUFHbkIsYUFBSSxDQUFDQyxJQUFJLENBQUNZLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRUcsR0FBRyxDQUFDO01BQy9ELElBQUksRUFBRSxNQUFNLElBQUFDLG1CQUFVLEVBQUNFLFVBQVUsQ0FBQyxDQUFDLEVBQUU7UUFDakMsTUFBTVosS0FBSyxDQUFDLDZCQUE2QlksVUFBVSxZQUFZLENBQUM7TUFDcEU7TUFDQSxNQUFNaEMsaUNBQWlDLENBQUNnQyxVQUFVLEVBQUVMLE9BQU8sQ0FBQ3pCLE1BQU0sQ0FBQztNQUNuRTBCLE1BQU0sQ0FBQ0csSUFBSSxDQUFDaEIsa0JBQWtCLENBQUNpQixVQUFVLENBQUMsQ0FBQztJQUMvQztFQUNKO0VBQ0EsT0FBT0osTUFBTTtBQUNqQixDQUFDO0FBRUQsSUFBQUsseUNBQXFCLEVBQUMsT0FBT0MsSUFBSSxFQUFFUCxPQUFPLEtBQUs7RUFBQSxJQUFBUSxxQkFBQTtFQUMzQzFDLGdEQUFnRCxDQUFDLENBQUM7RUFFbERrQyxPQUFPLENBQUN6QixNQUFNLENBQUNRLEdBQUcsQ0FBQyxnQkFBZ0IsS0FBQXlCLHFCQUFBLEdBQUl4QyxPQUFPLENBQUN5QyxHQUFHLENBQUMsY0FBYyxDQUFDLGNBQUFELHFCQUFBLGNBQUFBLHFCQUFBLEdBQUksU0FBUyxDQUFDLENBQUM7RUFDakZSLE9BQU8sQ0FBQ3pCLE1BQU0sQ0FBQ1EsR0FBRyxDQUFDLGdCQUFnQixHQUFHZixPQUFPLENBQUNDLFFBQVEsQ0FBQ2tCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUVqRXVCLFdBQVcsQ0FBQzlCLENBQUMsSUFBSTtJQUNib0IsT0FBTyxDQUFDekIsTUFBTSxDQUFDUSxHQUFHLENBQUMsZUFBZSxDQUFDO0lBQ25DaUIsT0FBTyxDQUFDekIsTUFBTSxDQUFDUSxHQUFHLENBQUM0QixJQUFJLENBQUNDLFNBQVMsQ0FBQzVDLE9BQU8sQ0FBQzZDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0VBQ3RFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO0VBRWJiLE9BQU8sQ0FBQ3pCLE1BQU0sQ0FBQ1EsR0FBRyxDQUFDLHVCQUF1QixJQUFJLE1BQU0sSUFBQStCLDZCQUFpQixFQUFDLENBQUMsQ0FBQyxDQUFDO0VBQ3pFLE1BQU1DLFVBQVUsR0FBRyxJQUFBQyw4QkFBWSxFQUFDVCxJQUFJLENBQUM7RUFFckNQLE9BQU8sQ0FBQ2lCLDBCQUEwQixDQUFDRixVQUFVLENBQUNHLE9BQU8sQ0FBQ0MsWUFBWSxDQUFDO0VBQ25FLElBQUFDLHVCQUFTLEVBQUNwQixPQUFPLENBQUN6QixNQUFNLENBQUM7RUFDekJ5QixPQUFPLENBQUN6QixNQUFNLENBQUM4QyxPQUFPLENBQUMsa0JBQWtCTixVQUFVLENBQUNHLE9BQU8sQ0FBQ0MsWUFBWSxFQUFFLENBQUM7RUFFM0UsSUFBSUosVUFBVSxDQUFDTyxJQUFJLEtBQUssV0FBVyxFQUFFO0lBQ2pDLE1BQU0sSUFBQUMsd0JBQVcsRUFBQ3ZCLE9BQU8sRUFBRWUsVUFBVSxDQUFDRyxPQUFPLENBQUM7SUFDOUM7RUFDSjtFQUVBLE1BQU01QyxhQUFhLEdBQUdOLE9BQU8sQ0FBQ3dELEdBQUcsQ0FBQyxDQUFDO0VBQ25DLE1BQU1uRCxpQ0FBaUMsQ0FBQ0MsYUFBYSxFQUFFMEIsT0FBTyxDQUFDekIsTUFBTSxDQUFDO0VBQ3RFLE1BQU1jLFVBQVUsR0FBRyxJQUFBQyw4QkFBYyxFQUFDaEIsYUFBYSxDQUFDO0VBRWhELElBQUllLFVBQVUsQ0FBQ0UsZUFBZSxJQUFJQyxTQUFTLEVBQUU7SUFDekMsTUFBTSxJQUFJQyxLQUFLLENBQUMsa0NBQWtDLENBQUM7RUFDdkQ7RUFDQSxJQUFJSixVQUFVLENBQUNLLGtCQUFrQixJQUFJRixTQUFTLEVBQUU7SUFDNUMsTUFBTSxJQUFJQyxLQUFLLENBQUMscUNBQXFDLENBQUM7RUFDMUQ7RUFFQSxNQUFNRixlQUFlLEdBQUdMLGFBQUksQ0FBQ1UsT0FBTyxDQUFDUCxVQUFVLENBQUNFLGVBQWUsQ0FBQztFQUNoRSxNQUFNRyxrQkFBa0IsR0FBR1IsYUFBSSxDQUFDVSxPQUFPLENBQUNQLFVBQVUsQ0FBQ0ssa0JBQWtCLENBQUM7RUFDdEUsTUFBTUMscUJBQXFCLEdBQUdULGFBQUksQ0FBQ1UsT0FBTyxDQUFDdEIsYUFBYSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsQ0FBQztFQUVqRixJQUFJeUMsVUFBVSxDQUFDTyxJQUFJLEtBQUssY0FBYyxJQUFJUCxVQUFVLENBQUNPLElBQUksS0FBSyxrQkFBa0IsRUFBRTtJQUM5RSxNQUFNeEIsa0JBQWtCLEdBQUdpQixVQUFVLENBQUNHLE9BQU8sQ0FBQ08sV0FBVztJQUN6RHpCLE9BQU8sQ0FBQ3pCLE1BQU0sQ0FBQ21ELE9BQU8sQ0FBQyx3QkFBd0JYLFVBQVUsQ0FBQ0csT0FBTyxDQUFDTyxXQUFXLEVBQUUsQ0FBQztJQUNoRixJQUFJRSxhQUFhO0lBQ2pCLElBQUlDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDL0Isa0JBQWtCLENBQUMsSUFBSUEsa0JBQWtCLENBQUNoQixNQUFNLEdBQUcsQ0FBQyxFQUFFO01BQ3BFNkMsYUFBYSxHQUFHLE1BQU05QixxQ0FBcUMsQ0FBQ0Msa0JBQWtCLEVBQUV4QixhQUFhLEVBQUUwQixPQUFPLENBQUM7SUFDM0csQ0FBQyxNQUFNO01BQ0hBLE9BQU8sQ0FBQ3pCLE1BQU0sQ0FBQ21ELE9BQU8sQ0FBQyxvQ0FBb0NwRCxhQUFhLEVBQUUsQ0FBQztNQUMzRXFELGFBQWEsR0FBRyxNQUFNOUIscUNBQXFDLENBQUMsQ0FBQ3ZCLGFBQWEsQ0FBQyxFQUFFQSxhQUFhLEVBQUUwQixPQUFPLENBQUM7SUFDeEc7SUFFQSxJQUFJZSxVQUFVLENBQUNPLElBQUksS0FBSyxrQkFBa0IsRUFBRTtNQUN4QyxNQUFNLElBQUFRLGlDQUFpQixFQUFDOUIsT0FBTyxFQUFFZSxVQUFVLENBQUNHLE9BQU8sRUFBRVMsYUFBYSxDQUFDO0lBQ3ZFLENBQUMsTUFBTTtNQUNILE1BQU0sSUFBQUksOEJBQWMsRUFBQy9CLE9BQU8sRUFBRWUsVUFBVSxDQUFDRyxPQUFPLEVBQUVTLGFBQWEsQ0FBQztJQUNwRTtFQUNKO0VBRUEsSUFBSVosVUFBVSxDQUFDTyxJQUFJLEtBQUssT0FBTyxFQUFFO0lBQzdCLE1BQU0sSUFBQVUsNEJBQWEsRUFDZmhDLE9BQU8sRUFDUGUsVUFBVSxDQUFDRyxPQUFPLEVBQ2xCNUMsYUFBYSxFQUNib0Isa0JBQWtCLEVBQ2xCSCxlQUFlLEVBQ2ZJLHFCQUFxQixFQUNyQk4sVUFBVSxDQUFDNEMsbUJBQ2YsQ0FBQztFQUNMO0VBRUEsSUFBSWxCLFVBQVUsQ0FBQ08sSUFBSSxLQUFLLFdBQVcsRUFBRTtJQUNqQyxNQUFNLElBQUFZLHdCQUFXLEVBQ2JsQyxPQUFPLEVBQ1BlLFVBQVUsQ0FBQ0csT0FBTyxFQUNsQjNCLGVBQWUsRUFDZkcsa0JBQWtCLEVBQ2xCcEIsYUFBYSxFQUNicUIscUJBQXFCLEVBQ3JCTixVQUFVLENBQUM0QyxtQkFDZixDQUFDO0VBQ0w7RUFFQSxJQUFJbEIsVUFBVSxDQUFDTyxJQUFJLEtBQUssWUFBWSxFQUFFO0lBQ2xDLE1BQU0sSUFBQWEsMEJBQVksRUFBQ25DLE9BQU8sRUFBRWUsVUFBVSxDQUFDRyxPQUFPLEVBQUU1QyxhQUFhLENBQUM7RUFDbEU7RUFDQSxJQUFJeUMsVUFBVSxDQUFDTyxJQUFJLEtBQUssU0FBUyxFQUFFO0lBQy9CLE1BQU0sSUFBQWMsOEJBQWMsRUFBQ3BDLE9BQU8sRUFBRWUsVUFBVSxDQUFDRyxPQUFPLEVBQUV4QixrQkFBa0IsRUFBRXBCLGFBQWEsQ0FBQztFQUN4RjtFQUNBLElBQUl5QyxVQUFVLENBQUNPLElBQUksS0FBSyxRQUFRLEVBQUU7SUFDOUIsTUFBTSxJQUFBZSw4QkFBYyxFQUFDckMsT0FBTyxFQUFFZSxVQUFVLENBQUNHLE9BQU8sRUFBRXhCLGtCQUFrQixFQUFFcEIsYUFBYSxDQUFDO0VBQ3hGO0VBQ0EsSUFBSXlDLFVBQVUsQ0FBQ08sSUFBSSxLQUFLLFVBQVUsRUFBRTtJQUNoQyxNQUFNLElBQUFnQixnQ0FBZSxFQUNqQnRDLE9BQU8sRUFDUGUsVUFBVSxDQUFDRyxPQUFPLEVBQ2xCNUMsYUFBYSxFQUNiaUIsZUFBZSxFQUNmSSxxQkFBcUIsRUFDckJOLFVBQVUsQ0FBQzRDLG1CQUNmLENBQUM7RUFDTDtBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CandyCLI.js","names":["require","_path","_interopRequireDefault","_fsExtra","_shelljs","_RunBuildForms","_RunBuildServer","_RunDevBuild","_RunFormStats","_RunInitForm","_RunLocalization","_RunUpgradeForm","_ConsoleApplication","_StaticLogger","_CandyToolOptions","_ReadFarmConfig","_SelfUpdate","_RunRenameFiles","config","fatal","remoteInspectFlagToDisableDebuggerInChildProcess","debugArgIdx","process","execArgv","indexOf","splice","debugArg2Idx","removeTemporaryWebpackConfigFiles","farmDirectory","logger","files","readdir","oldTempFileNames","filter","x","endsWith","length","log","fileName","unlink","path","join","validateFarmConfig","farmConfig","readFarmConfig","engineDirectory","undefined","Error","resourcesDirectory","candyModulesDirectory","resolve","validateAndPrepareFarmDirectoriesPath","allFarmDirectories","currentDir","context","result","pth","pathExists","push","pathToFarm","runConsoleApplication","argv","_process$env$NODE_OPT","console","env","setInterval","memoryUsage","getCurrentVersion","parsedArgs","parseOptions","setConsoleLoggingVerbosity","options","logVerbosity","setLogger","verbose","type","runInitForm","cwd","allFarmsDir","warning","allFarmConfig","Array","isArray","runDevBuildServer","runBuildServer","runBuildForms","hlFarmDirectoryPath","runDevBuild","runFormStats","runUpgradeForm","runRenameFiles","runLocalization"],"sources":["../../../src/CandyCLI.ts"],"sourcesContent":["import \"core-js/features/array/flat\";\nimport \"core-js/proposals/iterator-helpers\";\nimport \"core-js/stable\";\nimport path from \"path\";\n\nimport { pathExists, readdir, unlink } from \"fs-extra\";\nimport \"reflect-metadata\";\nimport \"regenerator-runtime/runtime\";\nimport { config } from \"shelljs\";\n\nimport { runBuildForms } from \"./CLICommands/BuildForms/RunBuildForms\";\nimport { runBuildServer, runDevBuildServer } from \"./CLICommands/BuildServer/RunBuildServer\";\nimport { runDevBuild } from \"./CLICommands/DevBuild/RunDevBuild\";\nimport { runFormStats } from \"./CLICommands/FormStats/RunFormStats\";\nimport { runInitForm } from \"./CLICommands/InitForm/RunInitForm\";\nimport { runLocalization } from \"./CLICommands/Localization/RunLocalization\";\nimport { runUpgradeForm } from \"./CLICommands/UpgradeForm/RunUpgradeForm\";\nimport { runConsoleApplication } from \"./Commons/ConsoleApplication/ConsoleApplication\";\nimport { ILogger } from \"./Commons/Logging/ILogger\";\nimport { setLogger } from \"./Commons/Logging/StaticLogger\";\nimport { parseOptions } from \"./Options/CandyToolOptions\";\nimport { readFarmConfig } from \"./ReadFarmConfig\";\nimport { getCurrentVersion } from \"./SelfUpdate\";\nimport { ConsoleApplicationContext } from \"./Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { runRenameFiles } from \"./CLICommands/RenameFiles/RunRenameFiles\";\n\nconfig.fatal = true;\n\nexport interface FarmConfig {\n candyModulesDirectory: string;\n farmDirectory: string;\n engineDirectory?: string | undefined;\n resourcesDirectory?: string | undefined;\n hlFarmDirectoryPath: string;\n}\n\nfunction remoteInspectFlagToDisableDebuggerInChildProcess(): void {\n const debugArgIdx = process.execArgv.indexOf(\"--inspect-brk\");\n if (debugArgIdx !== -1) {\n process.execArgv.splice(debugArgIdx, 1);\n }\n const debugArg2Idx = process.execArgv.indexOf(\"--inspect\");\n if (debugArg2Idx !== -1) {\n process.execArgv.splice(debugArg2Idx, 1);\n }\n}\n\nasync function removeTemporaryWebpackConfigFiles(farmDirectory: string, logger: ILogger): Promise<void> {\n const files = await readdir(farmDirectory);\n const oldTempFileNames = files.filter(x => x.endsWith(\".candy-tmp.webpack.config.js\"));\n if (oldTempFileNames.length > 0) {\n logger.log(\"Removing old webpack.config.js files\");\n for (const fileName of oldTempFileNames) {\n await unlink(path.join(farmDirectory, fileName));\n }\n logger.log(\"Removed old webpack.config.js files\");\n }\n}\n\nfunction validateFarmConfig(farmDirectory: string): FarmConfig {\n const farmConfig = readFarmConfig(farmDirectory);\n\n if (farmConfig.engineDirectory == undefined) {\n throw new Error(\"EngineDirectory is not specified\");\n }\n if (farmConfig.resourcesDirectory == undefined) {\n throw new Error(\"ResourcesDirectory is not specified\");\n }\n\n const candyModulesDirectory = path.resolve(farmDirectory, \"..\", \".candy_modules\");\n return {\n ...farmConfig,\n farmDirectory: farmDirectory,\n candyModulesDirectory: candyModulesDirectory,\n };\n}\n\nconst validateAndPrepareFarmDirectoriesPath = async (\n allFarmDirectories: string[],\n currentDir: string,\n context: ConsoleApplicationContext\n): Promise<FarmConfig[]> => {\n const result: FarmConfig[] = [];\n for (const pth of allFarmDirectories) {\n if (await pathExists(path.join(pth, \"config.js\"))) {\n await removeTemporaryWebpackConfigFiles(pth, context.logger);\n result.push(validateFarmConfig(pth));\n } else {\n // Все дело в том, что связка service-runner-2 + tools корректно работает только в папке с формой\n // из за чего, внутри раннера напилен хитрый механизм поиска путей формы. Перепиливать все механики\n // совсем не хочется, поэтому для нас, считаю поднятие до уровня engine вполне приемлемым решением\n const pathToFarm = path.join(currentDir, \"..\", \"..\", \"..\", pth);\n if (!(await pathExists(pathToFarm))) {\n throw Error(`allFarmDirectories path = ${pathToFarm} not exist`);\n }\n await removeTemporaryWebpackConfigFiles(pathToFarm, context.logger);\n result.push(validateFarmConfig(pathToFarm));\n }\n }\n return result;\n};\n\nrunConsoleApplication(async (argv, context) => {\n remoteInspectFlagToDisableDebuggerInChildProcess();\n\n console.log(\"NODE_OPTIONS: \" + (process.env[\"NODE_OPTIONS\"] ?? \"<empty>\"));\n console.log(\"execArgv : \" + (process.execArgv.join(\" \")));\n\n setInterval(x => {\n console.log(\"memoryUsage: \");\n console.log(process.memoryUsage());\n }, 1000 * 30);\n\n context.logger.log(\"@kontur.candy/tools: \" + (await getCurrentVersion()));\n const parsedArgs = parseOptions(argv);\n\n context.setConsoleLoggingVerbosity(parsedArgs.options.logVerbosity);\n setLogger(context.logger);\n context.logger.verbose(`Verbose level: ${parsedArgs.options.logVerbosity}`);\n\n if (parsedArgs.type === \"init-form\") {\n await runInitForm(context, parsedArgs.options);\n return;\n }\n\n const farmDirectory = process.cwd();\n await removeTemporaryWebpackConfigFiles(farmDirectory, context.logger);\n const farmConfig = readFarmConfig(farmDirectory);\n\n if (farmConfig.engineDirectory == undefined) {\n throw new Error(\"EngineDirectory is not specified\");\n }\n if (farmConfig.resourcesDirectory == undefined) {\n throw new Error(\"ResourcesDirectory is not specified\");\n }\n\n const engineDirectory = path.resolve(farmConfig.engineDirectory);\n const resourcesDirectory = path.resolve(farmConfig.resourcesDirectory);\n const candyModulesDirectory = path.resolve(farmDirectory, \"..\", \".candy_modules\");\n\n if (parsedArgs.type === \"build-server\" || parsedArgs.type === \"dev-build-server\") {\n const allFarmDirectories = parsedArgs.options.allFarmsDir;\n context.logger.warning(`allFarmDirectories = ${parsedArgs.options.allFarmsDir}`);\n let allFarmConfig;\n if (Array.isArray(allFarmDirectories) && allFarmDirectories.length > 0) {\n allFarmConfig = await validateAndPrepareFarmDirectoriesPath(allFarmDirectories, farmDirectory, context);\n } else {\n context.logger.warning(`Use default candyFarm path dir = ${farmDirectory}`);\n allFarmConfig = await validateAndPrepareFarmDirectoriesPath([farmDirectory], farmDirectory, context);\n }\n\n if (parsedArgs.type === \"dev-build-server\") {\n await runDevBuildServer(context, parsedArgs.options, allFarmConfig);\n } else {\n await runBuildServer(context, parsedArgs.options, allFarmConfig);\n }\n }\n\n if (parsedArgs.type === \"build\") {\n await runBuildForms(\n context,\n parsedArgs.options,\n farmDirectory,\n resourcesDirectory,\n engineDirectory,\n candyModulesDirectory,\n farmConfig.hlFarmDirectoryPath\n );\n }\n\n if (parsedArgs.type === \"dev-build\") {\n await runDevBuild(\n context,\n parsedArgs.options,\n engineDirectory,\n resourcesDirectory,\n farmDirectory,\n candyModulesDirectory,\n farmConfig.hlFarmDirectoryPath\n );\n }\n\n if (parsedArgs.type === \"form-stats\") {\n await runFormStats(context, parsedArgs.options, farmDirectory);\n }\n if (parsedArgs.type === \"upgrade\") {\n await runUpgradeForm(context, parsedArgs.options, resourcesDirectory, farmDirectory);\n }\n if (parsedArgs.type === \"rename\") {\n await runRenameFiles(context, parsedArgs.options, resourcesDirectory, farmDirectory);\n }\n if (parsedArgs.type === \"localize\") {\n await runLocalization(\n context,\n parsedArgs.options,\n farmDirectory,\n engineDirectory,\n candyModulesDirectory,\n farmConfig.hlFarmDirectoryPath\n );\n }\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"CandyCLI.js","names":["require","_path","_interopRequireDefault","_fsExtra","_shelljs","_RunBuildForms","_RunBuildServer","_RunDevBuild","_RunFormStats","_RunInitForm","_RunLocalization","_RunUpgradeForm","_ConsoleApplication","_StaticLogger","_CandyToolOptions","_ReadFarmConfig","_SelfUpdate","_RunRenameFiles","config","fatal","remoteInspectFlagToDisableDebuggerInChildProcess","debugArgIdx","process","execArgv","indexOf","splice","debugArg2Idx","removeTemporaryWebpackConfigFiles","farmDirectory","logger","files","readdir","oldTempFileNames","filter","x","endsWith","length","log","fileName","unlink","path","join","validateFarmConfig","farmConfig","readFarmConfig","engineDirectory","undefined","Error","resourcesDirectory","candyModulesDirectory","resolve","validateAndPrepareFarmDirectoriesPath","allFarmDirectories","currentDir","context","result","pth","pathExists","push","pathToFarm","runConsoleApplication","argv","_process$env$NODE_OPT","env","setInterval","JSON","stringify","memoryUsage","getCurrentVersion","parsedArgs","parseOptions","setConsoleLoggingVerbosity","options","logVerbosity","setLogger","verbose","type","runInitForm","cwd","allFarmsDir","warning","allFarmConfig","Array","isArray","runDevBuildServer","runBuildServer","runBuildForms","hlFarmDirectoryPath","runDevBuild","runFormStats","runUpgradeForm","runRenameFiles","runLocalization"],"sources":["../../../src/CandyCLI.ts"],"sourcesContent":["import \"core-js/features/array/flat\";\nimport \"core-js/proposals/iterator-helpers\";\nimport \"core-js/stable\";\nimport path from \"path\";\n\nimport { pathExists, readdir, unlink } from \"fs-extra\";\nimport \"reflect-metadata\";\nimport \"regenerator-runtime/runtime\";\nimport { config } from \"shelljs\";\n\nimport { runBuildForms } from \"./CLICommands/BuildForms/RunBuildForms\";\nimport { runBuildServer, runDevBuildServer } from \"./CLICommands/BuildServer/RunBuildServer\";\nimport { runDevBuild } from \"./CLICommands/DevBuild/RunDevBuild\";\nimport { runFormStats } from \"./CLICommands/FormStats/RunFormStats\";\nimport { runInitForm } from \"./CLICommands/InitForm/RunInitForm\";\nimport { runLocalization } from \"./CLICommands/Localization/RunLocalization\";\nimport { runUpgradeForm } from \"./CLICommands/UpgradeForm/RunUpgradeForm\";\nimport { runConsoleApplication } from \"./Commons/ConsoleApplication/ConsoleApplication\";\nimport { ILogger } from \"./Commons/Logging/ILogger\";\nimport { setLogger } from \"./Commons/Logging/StaticLogger\";\nimport { parseOptions } from \"./Options/CandyToolOptions\";\nimport { readFarmConfig } from \"./ReadFarmConfig\";\nimport { getCurrentVersion } from \"./SelfUpdate\";\nimport { ConsoleApplicationContext } from \"./Commons/ConsoleApplication/ConsoleApplicationContext\";\nimport { runRenameFiles } from \"./CLICommands/RenameFiles/RunRenameFiles\";\n\nconfig.fatal = true;\n\nexport interface FarmConfig {\n candyModulesDirectory: string;\n farmDirectory: string;\n engineDirectory?: string | undefined;\n resourcesDirectory?: string | undefined;\n hlFarmDirectoryPath: string;\n}\n\nfunction remoteInspectFlagToDisableDebuggerInChildProcess(): void {\n const debugArgIdx = process.execArgv.indexOf(\"--inspect-brk\");\n if (debugArgIdx !== -1) {\n process.execArgv.splice(debugArgIdx, 1);\n }\n const debugArg2Idx = process.execArgv.indexOf(\"--inspect\");\n if (debugArg2Idx !== -1) {\n process.execArgv.splice(debugArg2Idx, 1);\n }\n}\n\nasync function removeTemporaryWebpackConfigFiles(farmDirectory: string, logger: ILogger): Promise<void> {\n const files = await readdir(farmDirectory);\n const oldTempFileNames = files.filter(x => x.endsWith(\".candy-tmp.webpack.config.js\"));\n if (oldTempFileNames.length > 0) {\n logger.log(\"Removing old webpack.config.js files\");\n for (const fileName of oldTempFileNames) {\n await unlink(path.join(farmDirectory, fileName));\n }\n logger.log(\"Removed old webpack.config.js files\");\n }\n}\n\nfunction validateFarmConfig(farmDirectory: string): FarmConfig {\n const farmConfig = readFarmConfig(farmDirectory);\n\n if (farmConfig.engineDirectory == undefined) {\n throw new Error(\"EngineDirectory is not specified\");\n }\n if (farmConfig.resourcesDirectory == undefined) {\n throw new Error(\"ResourcesDirectory is not specified\");\n }\n\n const candyModulesDirectory = path.resolve(farmDirectory, \"..\", \".candy_modules\");\n return {\n ...farmConfig,\n farmDirectory: farmDirectory,\n candyModulesDirectory: candyModulesDirectory,\n };\n}\n\nconst validateAndPrepareFarmDirectoriesPath = async (\n allFarmDirectories: string[],\n currentDir: string,\n context: ConsoleApplicationContext\n): Promise<FarmConfig[]> => {\n const result: FarmConfig[] = [];\n for (const pth of allFarmDirectories) {\n if (await pathExists(path.join(pth, \"config.js\"))) {\n await removeTemporaryWebpackConfigFiles(pth, context.logger);\n result.push(validateFarmConfig(pth));\n } else {\n // Все дело в том, что связка service-runner-2 + tools корректно работает только в папке с формой\n // из за чего, внутри раннера напилен хитрый механизм поиска путей формы. Перепиливать все механики\n // совсем не хочется, поэтому для нас, считаю поднятие до уровня engine вполне приемлемым решением\n const pathToFarm = path.join(currentDir, \"..\", \"..\", \"..\", pth);\n if (!(await pathExists(pathToFarm))) {\n throw Error(`allFarmDirectories path = ${pathToFarm} not exist`);\n }\n await removeTemporaryWebpackConfigFiles(pathToFarm, context.logger);\n result.push(validateFarmConfig(pathToFarm));\n }\n }\n return result;\n};\n\nrunConsoleApplication(async (argv, context) => {\n remoteInspectFlagToDisableDebuggerInChildProcess();\n\n context.logger.log(\"NODE_OPTIONS: \" + (process.env[\"NODE_OPTIONS\"] ?? \"<empty>\"));\n context.logger.log(\"execArgv : \" + process.execArgv.join(\" \"));\n\n setInterval(x => {\n context.logger.log(\"memoryUsage: \");\n context.logger.log(JSON.stringify(process.memoryUsage(), null, 2));\n }, 1000 * 30);\n\n context.logger.log(\"@kontur.candy/tools: \" + (await getCurrentVersion()));\n const parsedArgs = parseOptions(argv);\n\n context.setConsoleLoggingVerbosity(parsedArgs.options.logVerbosity);\n setLogger(context.logger);\n context.logger.verbose(`Verbose level: ${parsedArgs.options.logVerbosity}`);\n\n if (parsedArgs.type === \"init-form\") {\n await runInitForm(context, parsedArgs.options);\n return;\n }\n\n const farmDirectory = process.cwd();\n await removeTemporaryWebpackConfigFiles(farmDirectory, context.logger);\n const farmConfig = readFarmConfig(farmDirectory);\n\n if (farmConfig.engineDirectory == undefined) {\n throw new Error(\"EngineDirectory is not specified\");\n }\n if (farmConfig.resourcesDirectory == undefined) {\n throw new Error(\"ResourcesDirectory is not specified\");\n }\n\n const engineDirectory = path.resolve(farmConfig.engineDirectory);\n const resourcesDirectory = path.resolve(farmConfig.resourcesDirectory);\n const candyModulesDirectory = path.resolve(farmDirectory, \"..\", \".candy_modules\");\n\n if (parsedArgs.type === \"build-server\" || parsedArgs.type === \"dev-build-server\") {\n const allFarmDirectories = parsedArgs.options.allFarmsDir;\n context.logger.warning(`allFarmDirectories = ${parsedArgs.options.allFarmsDir}`);\n let allFarmConfig;\n if (Array.isArray(allFarmDirectories) && allFarmDirectories.length > 0) {\n allFarmConfig = await validateAndPrepareFarmDirectoriesPath(allFarmDirectories, farmDirectory, context);\n } else {\n context.logger.warning(`Use default candyFarm path dir = ${farmDirectory}`);\n allFarmConfig = await validateAndPrepareFarmDirectoriesPath([farmDirectory], farmDirectory, context);\n }\n\n if (parsedArgs.type === \"dev-build-server\") {\n await runDevBuildServer(context, parsedArgs.options, allFarmConfig);\n } else {\n await runBuildServer(context, parsedArgs.options, allFarmConfig);\n }\n }\n\n if (parsedArgs.type === \"build\") {\n await runBuildForms(\n context,\n parsedArgs.options,\n farmDirectory,\n resourcesDirectory,\n engineDirectory,\n candyModulesDirectory,\n farmConfig.hlFarmDirectoryPath\n );\n }\n\n if (parsedArgs.type === \"dev-build\") {\n await runDevBuild(\n context,\n parsedArgs.options,\n engineDirectory,\n resourcesDirectory,\n farmDirectory,\n candyModulesDirectory,\n farmConfig.hlFarmDirectoryPath\n );\n }\n\n if (parsedArgs.type === \"form-stats\") {\n await runFormStats(context, parsedArgs.options, farmDirectory);\n }\n if (parsedArgs.type === \"upgrade\") {\n await runUpgradeForm(context, parsedArgs.options, resourcesDirectory, farmDirectory);\n }\n if (parsedArgs.type === \"rename\") {\n await runRenameFiles(context, parsedArgs.options, resourcesDirectory, farmDirectory);\n }\n if (parsedArgs.type === \"localize\") {\n await runLocalization(\n context,\n parsedArgs.options,\n farmDirectory,\n engineDirectory,\n candyModulesDirectory,\n farmConfig.hlFarmDirectoryPath\n );\n }\n});\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kontur.candy/tools",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.187.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"files": [
|
|
6
6
|
"candy.js",
|
|
@@ -30,6 +30,8 @@
|
|
|
30
30
|
"watch:common": "babel ../Common --env-name node --config-file ../babel.config.js --out-dir distr/Common --extensions .js,.jsx,.ts,.tsx --copy-files --delete-dir-on-start --watch",
|
|
31
31
|
"watch:cli": "babel src --env-name node --config-file ../babel.config.js --out-dir distr/Tools/src --extensions .js,.jsx,.ts,.tsx --copy-files --delete-dir-on-start --watch",
|
|
32
32
|
"watch": "run-p --print-label watch:*",
|
|
33
|
+
"tools:publish": "cd .. && npm run candy-tools:publish",
|
|
34
|
+
"temp": "echo 1",
|
|
33
35
|
"run-script": "babel-node --extensions \".ts,.tsx,.js,.jsx\""
|
|
34
36
|
},
|
|
35
37
|
"author": "",
|