dmencu 3.0.4 → 3.0.6
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.
|
@@ -246,7 +246,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
246
246
|
tareasTemTable: depot.def.name
|
|
247
247
|
});
|
|
248
248
|
var grid = depot.manager;
|
|
249
|
-
grid.retrieveRowAndRefresh(depot, {
|
|
249
|
+
grid.retrieveRowAndRefresh(depot, { retrieveWithBroadWhere: true });
|
|
250
250
|
if (action.nombre_wscreen) {
|
|
251
251
|
//TODO acomodar esto en algun momento
|
|
252
252
|
let params = depot.row;
|
|
@@ -700,4 +700,4 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
700
700
|
};
|
|
701
701
|
});
|
|
702
702
|
/* FIN sincronizar y cambio de modo LEGACY */
|
|
703
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUFBLDJDQUFrQztJQUNsQywyQ0FBa0Q7SUFDbEQsbUVBQWlGO0lBUWpGLGtDQUFrQztJQUNsQyxtRUFBd0U7SUFDeEUseURBQXlFO0lBQ3pFLDZEQUE0RDtJQUM1RCxxRUFBMEU7SUFHMUUsa0JBQWtCO0lBRWxCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztJQUM3QixJQUFJLGlCQUFpQixHQUFrQixJQUFJLENBQUM7SUFFckMsTUFBTSxlQUFlLEdBQUcsQ0FBTyxNQUFnQyxFQUF1QixFQUFFLGtEQUMzRixPQUFBLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQSxHQUFBLENBQUM7SUFEdkUsUUFBQSxlQUFlLG1CQUN3RDtJQUdwRixLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQVMsRUFBRTtRQUNyQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDZixJQUFJLENBQUM7WUFDRCxpQkFBaUIsR0FBRyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ1gsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFBLDRDQUE4QixFQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELEtBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHO1lBQzVCLFVBQVUsRUFBRTtnQkFDUixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUs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IjpbImltcG9ydCB7IGh0bWwgfSBmcm9tIFwianMtdG8taHRtbFwiO1xyXG5pbXBvcnQgeyBleHBlY3RlZCwgdW5leHBlY3RlZCB9IGZyb20gXCJjYXN0LWVycm9yXCI7XHJcbmltcG9ydCB7IGRpc3BhdGNoZXJzLCBjcmVhclN0b3JlRm9ybXVsYXJpbyB9IGZyb20gXCIuLi91bmxvZ2dlZC9yZWR1eC1mb3JtdWxhcmlvXCI7XHJcbmltcG9ydCB7XHJcbiAgICBDYXNvU3RhdGUsXHJcbiAgICBJZEZvcm11bGFyaW8sIERhdG9zQnlQYXNzUGVyc2lzdGlibGVzLCBJZEVuYywgSWRPcGVyYXRpdm8sIElkVGFyZWEsIEVzdGFkb0FjY2lvbiwgRGlyZWNjaW9uQWNjaW9uLFxyXG4gICAgQ2FtcG9Qa1JhaXosIE1vZG9ETSxcclxuICAgIEVzdHJ1Y3R1cmEsXHJcbiAgICBGb3JQa1JhaXpcclxufSBmcm9tIFwiLi4vdW5sb2dnZWQvdGlwb3NcIjtcclxuaW1wb3J0ICogYXMgbGlrZUFyIGZyb20gXCJsaWtlLWFyXCI7XHJcbmltcG9ydCB7IEJBQ0tVUFMsIGNhcmdhckVzdHJ1Y3R1cmEgfSBmcm9tIFwiLi4vdW5sb2dnZWQvYWJyaXItZm9ybXVsYXJpb1wiXHJcbmltcG9ydCB7IGNyZWF0ZUxvY2FsU3RvcmFnZUZvcm1SZW5kZXJlciB9IGZyb20gXCIuLi91bmxvZ2dlZC9yZW5kZXItaW5pdFwiO1xyXG5pbXBvcnQgeyBnZXRGb3JtUmVuZGVyZXIgfSBmcm9tIFwiLi4vdW5sb2dnZWQvcmVuZGVyLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBkZXNwbGVnYXJGb3JtdWxhcmlvQWN0dWFsIH0gZnJvbSAnLi4vdW5sb2dnZWQvcmVuZGVyLWZvcm11bGFyaW8nO1xyXG5pbXBvcnQgeyBoYXlEYXRvc0J5UGFzc0FsbWFjZW5hZG9zIH0gZnJvbSBcIi4uL3VubG9nZ2VkL2J5cGFzcy1mb3JtdWxhcmlvXCI7XHJcblxyXG4vL1RPRE8gR0VORVJBTElaQVJcclxuXHJcbmNvbnN0IFRBUkVBX0RFRkFVTFQgPSAnZW5jdSc7XHJcbnZhciBPUEVSQVRJVk9fREVGQVVMVDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG5leHBvcnQgY29uc3QgdHJhZXJFc3RydWN0dXJhID0gYXN5bmMgKHBhcmFtczoge29wZXJhdGl2bzpJZE9wZXJhdGl2byB9KTogUHJvbWlzZTxFc3RydWN0dXJhPiA9PlxyXG4gICAgYXdhaXQgbXlPd24uYWpheC5vcGVyYXRpdm9fZXN0cnVjdHVyYV9jb21wbGV0YSh7IG9wZXJhdGl2bzogcGFyYW1zLm9wZXJhdGl2byB9KTtcclxuXHJcblxyXG5teU93bi5hdXRvU2V0dXBGdW5jdGlvbnMucHVzaChhc3luYyAoKSA9PiB7XHJcbiAgICB2YXIgbXkgPSBteU93bjtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgT1BFUkFUSVZPX0RFRkFVTFQgPSBhd2FpdCBteS5hamF4Lm9wZXJhdGl2b19nZXQoe30pO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgT1BFUkFUSVZPX0RFRkFVTFQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZm9ybVJlbmRlcmVyID0gY3JlYXRlTG9jYWxTdG9yYWdlRm9ybVJlbmRlcmVyKHt9KTtcclxuICAgIG15T3duLndTY3JlZW5zLmFicmlyX2VuY3Vlc3RhID0ge1xyXG4gICAgICAgIHBhcmFtZXRlcnM6IFtcclxuICAgICAgICAgICAgeyBuYW1lOiAnb3BlcmF0aXZvJywgdHlwZU5hbWU6ICd0ZXh0JywgZGVmYXVsdFZhbHVlOiBPUEVSQVRJVk9fREVGQVVMVCwgcmVmZXJlbmNlczogJ29wZXJhdGl2b3MnIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ3RhcmVhJywgdHlwZU5hbWU6ICd0ZXh0JywgZGVmYXVsdFZhbHVlOiBUQVJFQV9ERUZBVUxULCByZWZlcmVuY2VzOiAndGFyZWFzJyB9LFxyXG4gICAgICAgICAgICB7IG5hbWU6ICdlbmMnLCB0eXBlTmFtZTogJ2ludGVnZXInLCBkZWZhdWx0VmFsdWU6IDEzMDAzMSB9XHJcbiAgICAgICAgXSxcclxuICAgICAgICBhdXRvcHJvY2VkOiB0cnVlLFxyXG4gICAgICAgIG1haW5BY3Rpb246IGFzeW5jIChwYXJhbXMpID0+IHtcclxuICAgICAgICAgICAgLy8gYW50ZXM6IGFicmlyRGlyZWN0b1xyXG4gICAgICAgICAgICB2YXIgeyBvcGVyYXRpdm8sIGVuYywgdGFyZWEgfSA9IHBhcmFtcztcclxuICAgICAgICAgICAgZm9ybVJlbmRlcmVyLnVwZGF0ZUNvbmZpZyh7XHJcbiAgICAgICAgICAgICAgICBsZWVyRGF0b3M6IGFzeW5jIGZ1bmN0aW9uIGxlZXJEYXRvc0VuQmFzZURlRGF0b3MoKTogUHJvbWlzZTxEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcz4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBteS5hamF4LmRtX2ZvcnBrcmFpel9jYXJnYXIoeyBvcGVyYXRpdm8sIHBrX3JhaXpfdmFsdWU6IGVuYywgdGFyZWEgfSkgYXMgRGF0b3NCeVBhc3NQZXJzaXN0aWJsZXM7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgcGVyc2lzdGlyRGF0b3M6IGFzeW5jIGZ1bmN0aW9uIHBlcnNpc3RpckRhdG9zRW5CYXNlRGVEYXRvcyhwZXJzaXN0ZW50ZXM6IERhdG9zQnlQYXNzUGVyc2lzdGlibGVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBlcnNpc3RlbnRlcy5zb2xvTGVjdHVyYSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFc3TDoSBpbnRlbnRhbmRvIG1vZGlmaWNhciB1bmEgZW5jdWVzdGEgYWJpZXJ0YSBjb21vIHNvbG8gbGVjdHVyYSwgbm8gc2UgZ3VhcmRhcm9uIGxvcyBjYW1iaW9zXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IG15LmFqYXguZG1fZm9ycGtyYWl6X2Rlc2Nhcmdhcih7IG9wZXJhdGl2bywgcGVyc2lzdGVudGVzIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdmFyIGVzdHJ1Y3R1cmEgPSBhd2FpdCBmb3JtUmVuZGVyZXIubGVlckVzdHJ1Y3R1cmEoKTtcclxuICAgICAgICAgICAgdmFyIGNhcmdhID0gYXdhaXQgZm9ybVJlbmRlcmVyLmxlZXJEYXRvcygpO1xyXG4gICAgICAgICAgICBpZiAoIWVzdHJ1Y3R1cmEgfHwgKGVzdHJ1Y3R1cmEudGltZXN0YW1wID8/IDApIDwgY2FyZ2E/LnRpbWVzdGFtcEVzdHJ1Y3R1cmEhIHx8IGVzdHJ1Y3R1cmEub3BlcmF0aXZvICE9IG9wZXJhdGl2byB8fCBteS5jb25maWcuY29uZmlnLmRldmVsKSB7XHJcbiAgICAgICAgICAgICAgICBlc3RydWN0dXJhID0gYXdhaXQgdHJhZXJFc3RydWN0dXJhKHsgb3BlcmF0aXZvIH0pXHJcbiAgICAgICAgICAgICAgICBhd2FpdCBmb3JtUmVuZGVyZXIucGVyc2lzdGlyRXN0cnVjdHVyYShlc3RydWN0dXJhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgLy92YXIgc3RhdGU6IENhc29TdGF0ZSA9IHt9XHJcbiAgICAgICAgICAgIC8vaW5pY2lhbGl6YXJTdGF0ZShzdGF0ZSk7XHJcbiAgICAgICAgICAgIHZhciBmb3JQa1JhaXogPSB7IGZvcm11bGFyaW86IGNhcmdhLmluZm9ybWFjaW9uSGRyW2VuYyBhcyBJZEVuY10udGFyZWEubWFpbl9mb3JtLCBbZXN0cnVjdHVyYS5wa0FncmVnYWRhVWFQcGFsXTogZW5jIH07XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNhcmdhPy5yZXNwdWVzdGFzW2VzdHJ1Y3R1cmEudWFQcGFsXVtmb3JQa1JhaXpbZXN0cnVjdHVyYS5wa0FncmVnYWRhVWFQcGFsIGFzIENhbXBvUGtSYWl6XV0pIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc2UgZW5jdWVudHJhIGVsL2xhICR7ZXN0cnVjdHVyYS5wa0FncmVnYWRhVWFQcGFsfSAke2ZvclBrUmFpeltlc3RydWN0dXJhLnBrQWdyZWdhZGFVYVBwYWxdfWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRlc3BsZWdhckZvcm11bGFyaW9BY3R1YWwoZm9ybVJlbmRlcmVyLCB7IGZvclBrUmFpejpmb3JQa1JhaXogYXMgRm9yUGtSYWl6IH0pO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBteU93bi53U2NyZWVucy5jb25zaXN0aXJfZW5jdWVzdGEgPSB7XHJcbiAgICAgICAgcGFyYW1ldGVyczogW1xyXG4gICAgICAgICAgICB7IG5hbWU6ICdvcGVyYXRpdm8nLCB0eXBlTmFtZTogJ3RleHQnLCBkZWZhdWx0VmFsdWU6IE9QRVJBVElWT19ERUZBVUxULCByZWZlcmVuY2VzOiAnb3BlcmF0aXZvcycgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAndGFyZWEnLCB0eXBlTmFtZTogJ3RleHQnIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ2VuYycsIHR5cGVOYW1lOiAnaW50ZWdlcicgfVxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgYXV0b3Byb2NlZDogdHJ1ZSxcclxuICAgICAgICBtYWluQWN0aW9uOiBhc3luYyAocGFyYW1zKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh3aW5kb3cub3BlbmVyKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgbWFpblRvcEJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluLXRvcC1iYXInKTtcclxuICAgICAgICAgICAgICAgIGlmIChtYWluVG9wQmFyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFpblRvcEJhci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciB7IG9wZXJhdGl2bywgdGFyZWEsIGVuYyB9ID0gcGFyYW1zO1xyXG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gYXdhaXQgbXlPd24uYWpheC5jb25zaXN0aXJfZW5jdWVzdGEoe1xyXG4gICAgICAgICAgICAgICAgb3BlcmF0aXZvOiBvcGVyYXRpdm8sXHJcbiAgICAgICAgICAgICAgICBpZF9jYXNvOiBlbmNcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQub2spIHtcclxuICAgICAgICAgICAgICAgIHZhciBmaXhlZEZpZWxkcyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgZml4ZWRGaWVsZHMucHVzaCh7IGZpZWxkTmFtZTogJ29wZXJhdGl2bycsIHZhbHVlOiBvcGVyYXRpdm8gfSk7XHJcbiAgICAgICAgICAgICAgICBmaXhlZEZpZWxkcy5wdXNoKHsgZmllbGROYW1lOiAndml2aWVuZGEnLCB2YWx1ZTogZW5jIH0pO1xyXG4gICAgICAgICAgICAgICAgdmFyIG1haW5MYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbl9sYXlvdXQnKSE7XHJcbiAgICAgICAgICAgICAgICB2YXIgZGl2R3JpbGxhID0gaHRtbC5kaXYoeyBpZDogJ2luY29uc2lzdGVuY2lhcycgfSkuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgICAgICBtYWluTGF5b3V0Lmluc2VydEJlZm9yZShkaXZHcmlsbGEsIG1haW5MYXlvdXQuZmlyc3RDaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgZGl2Qm90b25lcyA9IGh0bWwuZGl2KHsgaWQ6ICdib3RvbmVzLXBvc3QtY29uc2lzdGlyJyB9LCBbXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXJCb3RvbkNlcnJhckVuY3Vlc3RhKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBgY2VycmFyIGVuY3Vlc3RhYFxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXJCb3RvblZlckFicmlyRW5jdWVzdGEoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGl2byxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZWEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuYyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYHZvbHZlciBhIGVuY3Vlc3RhICR7ZW5jfWBcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICBdKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICAgICAgbWFpbkxheW91dC5pbnNlcnRCZWZvcmUoZGl2Qm90b25lcywgbWFpbkxheW91dC5maXJzdENoaWxkKTtcclxuICAgICAgICAgICAgICAgIG15LnRhYmxlR3JpZChcImluY29uc2lzdGVuY2lhc19jdW1wbGVuX2NvbmRpY2lvblwiLCBkaXZHcmlsbGEsIHsgdGFibGVEZWY6IHt9LCBmaXhlZEZpZWxkczogZml4ZWRGaWVsZHMgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59KTtcclxuXHJcblxyXG4vL3F1aXRhIGJvb3RzdHJhcCBkZWwgaGVhZCBwYXJhIHF1ZSBubyByb21wYSBsb3MgZXN0aWxvcyBkZSBCRVBsdXMgKHNvbG8gc2UgdXNhIGJvb3RzdHJhcCBlbiBlbCBmb3JtKVxyXG52YXIgbGlua05vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbaHJlZj1cImNzcy9ib290c3RyYXAubWluLmNzc1wiXScpO1xyXG5saW5rTm9kZVswXT8ucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQobGlua05vZGVbMF0pO1xyXG5cclxuZnVuY3Rpb24gY29uc2lzdGlyX2ZpbHRybyh0YXJlYTogc3RyaW5nLCByZWFfdGVtOiBudW1iZXIgfCBudWxsLCByZWE6IG51bWJlciB8IG51bGwpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIHJldHVybiB0YXJlYSA/IHJlYV90ZW0gOiByZWE7XHJcbn07XHJcblxyXG52YXIgdGFyZWFzOiBhbnkgPSBudWxsO1xyXG5cclxuZnVuY3Rpb24gaHRtbE51bWVybyhudW06IG51bWJlcikge1xyXG4gICAgcmV0dXJuIGh0bWwuc3Bhbih7IGNsYXNzOiAnbnVtZXJvJyB9LCAnJyArIChudW0gPz8gJycpKVxyXG59XHJcblxyXG52YXIgY3JlYXJCb3RvbkNlcnJhckVuY3Vlc3RhID0gKGxhYmVsOiBzdHJpbmcpID0+IHtcclxuICAgIGxldCBwYXRoID0gXCJNMyAzdjE4aDE4VjNIM3ptMTQgMTIuNTlMMTUuNTkgMTcgMTIgMTMuNDEgOC40MSAxNyA3IDE1LjU5IDEwLjU5IDEyIDcgOC40MSA4LjQxIDcgMTIgMTAuNTkgMTUuNTkgNyAxNyA4LjQxIDEzLjQxIDEyIDE3IDE1LjU5elwiO1xyXG4gICAgdmFyIHN2ZyA9IGh0bWwuc3ZnKHsgY2xhc3M6IFwic3ZnLWNlcnJhci1lbmN1ZXN0YVwiIH0sIFtcclxuICAgICAgICBodG1sLnBhdGgoe1xyXG4gICAgICAgICAgICBkOiBwYXRoXHJcbiAgICAgICAgfSlcclxuICAgIF0pLmNyZWF0ZSgpO1xyXG4gICAgc3ZnLnNldEF0dHJpYnV0ZShcInZpZXdCb3hcIiwgXCIwIDAgMjYgMjZcIik7XHJcbiAgICAvL0B0cy1pZ25vcmUgc3ZnIHB1ZWRlIHNlciBoaWpvIGRlIHVuIGJvdG9uXHJcbiAgICBsZXQgdmVyID0gaHRtbC5idXR0b24oeyBpZDogJ2JvdG9uLWNlcnJhci1lbmN1ZXN0YScgfSwgW3N2ZywgbGFiZWxdKS5jcmVhdGUoKTtcclxuICAgIHZlci5vbmNsaWNrID0gKCkgPT4gY2xvc2UoKTtcclxuICAgIHJldHVybiB2ZXJcclxufVxyXG5cclxuY29uc3QgYWJyaXJFbmN1ZXN0YUVuUGVzdGFubmlhRGVkaWNhZGEgPSAodXJsOiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IEFCUklSX1RBQiA9IFwiX2FicmlyXCI7XHJcbiAgICB3aW5kb3cub3Blbih1cmwsIEFCUklSX1RBQik7XHJcbn1cclxuXHJcbnZhciBjcmVhckJvdG9uVmVyQWJyaXJFbmN1ZXN0YSA9IChvcGVyYXRpdm86IElkT3BlcmF0aXZvLCB0YXJlYTogSWRUYXJlYSwgZW5jdWVzdGE6IG51bWJlciwgbGFiZWw6IHN0cmluZykgPT4ge1xyXG4gICAgdmFyIHVwID0ge1xyXG4gICAgICAgIG9wZXJhdGl2bzogb3BlcmF0aXZvLFxyXG4gICAgICAgIHRhcmVhOiB0YXJlYSxcclxuICAgICAgICBlbmM6IGVuY3Vlc3RhXHJcbiAgICB9XHJcbiAgICBsZXQgdmVyID0gaHRtbC5idXR0b24oeyBpZDogJ2JvdG9uLXZvbHZlci1hLWVuY3Vlc3RhJyB9LCBsYWJlbCkuY3JlYXRlKCk7XHJcbiAgICB2ZXIub25jbGljayA9ICgpID0+IGFicmlyRW5jdWVzdGFFblBlc3Rhbm5pYURlZGljYWRhKGxvY2F0aW9uLm9yaWdpbiArIGxvY2F0aW9uLnBhdGhuYW1lICsgbXkubWVudVNlcGFyYXRvciArIGB3PWFicmlyX2VuY3Vlc3RhJnVwPSR7SlNPTi5zdHJpbmdpZnkodXApfSZhdXRvcHJvY2VkPXRydWVgKVxyXG4gICAgcmV0dXJuIHZlclxyXG59XHJcblxyXG52YXIgY3JlYXJCb3RvbmVzVmVyQWJyaXJUYXJlYXMgPSBhc3luYyAoZGVwb3Q6IG15T3duLkRlcG90LCBmaWVsZE5hbWU6IHN0cmluZywgbGFiZWw6ICdhYnJpcicgfCAndmVyJykgPT4ge1xyXG4gICAgdGFyZWFzID0gdGFyZWFzID8gdGFyZWFzIDogKGF3YWl0IG15T3duLmFqYXgudGFibGVfZGF0YSh7IHRhYmxlOiBgdGFyZWFzYCwgZml4ZWRGaWVsZHM6IFtdIH0pKTtcclxuICAgIHZhciBtaXNUYXJlYXMgPSB0YXJlYXMuZmlsdGVyKCh0YXJlYTphbnkpID0+XHJcbiAgICAgICAgLy9AdHMtaWdub3JlIGRlZiBleGlzdGUgZW4gbWFuYWdlciB5IG11ZXN0cmFBYnJpckVuVG9kYXNMYXNUYXJlYXMgdGFtYmllbiAoZW4gZXNhIGdyaWxsYSlcclxuICAgICAgICAhIXRhcmVhLm1haW5fZm9ybSAmJiB0YXJlYS5vcGVyYXRpdm8gPT0gZGVwb3Qucm93Lm9wZXJhdGl2byAmJiAoZGVwb3QubWFuYWdlci5kZWYubXVlc3RyYUFicmlyRW5Ub2Rhc0xhc1RhcmVhcyA/IHRydWUgOiBkZXBvdC5yb3cudGFyZWEgPT0gdGFyZWEudGFyZWEpXHJcbiAgICApO1xyXG4gICAgZGVwb3Qucm93Q29udHJvbHNbZmllbGROYW1lXS5pbm5lckhUTUwgPSAnJztcclxuICAgIG1pc1RhcmVhcy5mb3JFYWNoKCh0YXJlYTogeyB0YXJlYTogc3RyaW5nLCBub21icmU6IHN0cmluZywgbWFpbl9mb3JtOiBJZEZvcm11bGFyaW8gfSkgPT4ge1xyXG4gICAgICAgIGxldCBidXR0b25MYWJlbCA9IGAke2xhYmVsfSAke3RhcmVhLnRhcmVhfWA7XHJcbiAgICAgICAgbGV0IHZlciA9IGNyZWFyQm90b25WZXJBYnJpckVuY3Vlc3RhKFxyXG4gICAgICAgICAgICBkZXBvdC5yb3cub3BlcmF0aXZvIGFzIElkT3BlcmF0aXZvLFxyXG4gICAgICAgICAgICB0YXJlYS50YXJlYSBhcyBJZFRhcmVhLFxyXG4gICAgICAgICAgICBOdW1iZXIoZGVwb3Qucm93LmVuYyksXHJcbiAgICAgICAgICAgIGJ1dHRvbkxhYmVsXHJcbiAgICAgICAgKTtcclxuICAgICAgICB2ZXIuc3R5bGUgPSAnbWFyZ2luOjBweCAycHg7JztcclxuICAgICAgICBkZXBvdC5yb3dDb250cm9sc1tmaWVsZE5hbWVdLmFwcGVuZENoaWxkKHZlcik7XHJcbiAgICB9KVxyXG59XHJcblxyXG52YXIgZ2V0QWJyaXJPdmVyID0gKF9kZXBvdDogbXlPd24uRGVwb3QsIF9maWVsZE5hbWU6IHN0cmluZyk6ICdhYnJpcicgPT4gJ2FicmlyJ1xyXG4vL1xyXG4vKihkZXBvdC5yb3cuY2FyZ2Fkb19kbSB8fCAhZGVwb3Qucm93Wydlc3RhZG9zX19wZXJtaXRlX2VkaXRhcl9lbmN1ZXN0YSddICYmIGRlcG90LnJvdy5hc2lnbmFkbyAhPSBteS5jb25maWcuaWRwZXIpP1xyXG4gICAgJ3Zlcic6J2FicmlyJ1xyXG4qL1xyXG5cclxuXHJcbm15T3duLmNsaWVudFNpZGVzLmFicmlyID0ge1xyXG4gICAgcHJlcGFyZTogKF9kZXBvdCwgX2ZpZWxkTmFtZSkgPT4geyB9LFxyXG4gICAgdXBkYXRlOiAoZGVwb3QsIGZpZWxkTmFtZSkgPT4ge1xyXG4gICAgICAgIHZhciBsYWJlbDogJ3ZlcicgfCAnYWJyaXInID0gZ2V0QWJyaXJPdmVyKGRlcG90LCBmaWVsZE5hbWUpO1xyXG4gICAgICAgIGNyZWFyQm90b25lc1ZlckFicmlyVGFyZWFzKGRlcG90LCBmaWVsZE5hbWUsIGxhYmVsKTsgLy9ubyBlc3Blcm8gcHJvbWVzYSBwb3JxdWUgbm8gZXMgbmVjZXNhcmlvXHJcbiAgICB9XHJcbn07XHJcblxyXG5teU93bi5jbGllbnRTaWRlcy5hYnJpclJlY2VwY2lvbiA9IHtcclxuICAgIHByZXBhcmU6IChfZGVwb3QsIF9maWVsZE5hbWUpID0+IHsgfSxcclxuICAgIHVwZGF0ZTogKGRlcG90LCBmaWVsZE5hbWUpID0+IHtcclxuICAgICAgICB2YXIgbGFiZWw6ICd2ZXInIHwgJ2FicmlyJyA9IGdldEFicmlyT3ZlcihkZXBvdCwgZmllbGROYW1lKTtcclxuICAgICAgICBjcmVhckJvdG9uZXNWZXJBYnJpclRhcmVhcyhkZXBvdCwgZmllbGROYW1lLCBsYWJlbCk7IC8vbm8gZXNwZXJvIHByb21lc2EgcG9ycXVlIG5vIGVzIG5lY2VzYXJpb1xyXG4gICAgfVxyXG59O1xyXG5cclxubXlPd24uY2xpZW50U2lkZXMudmVySWNvbm9TdmcgPSB7XHJcbiAgICBwcmVwYXJlOiAoX2RlcG90LCBfZmllbGROYW1lKSA9PiB7IH0sXHJcbiAgICB1cGRhdGU6IChkZXBvdCwgZmllbGROYW1lKSA9PiB7XHJcbiAgICAgICAgbGV0IHRkID0gZGVwb3Qucm93Q29udHJvbHNbZmllbGROYW1lXTtcclxuICAgICAgICB0ZC5pbm5lckhUTUwgPSAnJztcclxuICAgICAgICBpZiAoZGVwb3Qucm93LnBhdGhfaWNvbm9fc3ZnKSB7XHJcbiAgICAgICAgICAgIHZhciBzdmcgPSBodG1sLnN2Zyh7XHJcbiAgICAgICAgICAgICAgICBjbGFzczogXCJzdmctYWNjaW9uZXNcIlxyXG4gICAgICAgICAgICB9LCBbXHJcbiAgICAgICAgICAgICAgICBodG1sLnBhdGgoe1xyXG4gICAgICAgICAgICAgICAgICAgIGQ6IGRlcG90LnJvdy5wYXRoX2ljb25vX3N2Z1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgXSkuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoXCJ2aWV3Qm94XCIsIFwiMCAwIDUwIDUwXCIpO1xyXG4gICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChzdmcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuXHJcbnZhciBjcmVhclNWRyA9IChwYXRoOiBzdHJpbmcsIHByb3BzOiBhbnkpID0+IHtcclxuICAgIHZhciBzdmcgPSBodG1sLnN2Zyhwcm9wcyB8fCB7fSwgW1xyXG4gICAgICAgIGh0bWwucGF0aCh7XHJcbiAgICAgICAgICAgIGQ6IHBhdGhcclxuICAgICAgICB9KVxyXG4gICAgXSkuY3JlYXRlKCk7XHJcbiAgICBzdmcuc2V0QXR0cmlidXRlKFwidmlld0JveFwiLCBcIjAgMCA1MCA1MFwiKTtcclxuICAgIHJldHVybiBzdmdcclxufVxyXG52YXIgY3JlYXJCb3RvbkFjY2lvbiA9IChkZXBvdDogbXlPd24uRGVwb3QsIGFjdGlvbjogRXN0YWRvQWNjaW9uKSA9PiB7XHJcbiAgICBsZXQgYWNjaW9uU2luR3Vpb25lcyA9IGFjdGlvbi5lYWNjaW9uLnJlcGxhY2UoJ18nLCAnICcpO1xyXG4gICAgdmFyIHN2ZyA9IGNyZWFyU1ZHKGFjdGlvbi5wYXRoX2ljb25vX3N2ZywgeyBjbGFzczogXCJzdmctYWNjaW9uZXNcIiB9KVxyXG4gICAgaWYgKGFjdGlvbi5kZXNhY3RpdmFfYm90b24pIHtcclxuICAgICAgICByZXR1cm4gaHRtbC5zcGFuKHsgY2xhc3M6IGBzaW4tYm90b24tYWNjaW9uYCB9LCBbYWNjaW9uU2luR3Vpb25lcywgc3ZnIGFzIHVua25vd24gYXMgSFRNTEVsZW1lbnRdKS5jcmVhdGUoKVxyXG4gICAgfVxyXG4gICAgbGV0IGJ1dHRvbiA9IGh0bWwuYnV0dG9uKHtcclxuICAgICAgICBjbGFzczogYGJvdG9uLWFjY2lvbiBib3Rvbi1hY2Npb24tJHthY3Rpb24uZWFjY2lvbl9kaXJlY2Npb259YFxyXG4gICAgfSwgW1xyXG4gICAgICAgIGAke2FjY2lvblNpbkd1aW9uZXN9YCxcclxuICAgICAgICAvL0B0cy1pZ25vcmUgc3ZnIGVzIGh0bWxlbGVtZW50XHJcbiAgICAgICAgYWN0aW9uLnBhdGhfaWNvbm9fc3ZnID8gc3ZnIDogbnVsbCxcclxuICAgIF0pLmNyZWF0ZSgpO1xyXG4gICAgYnV0dG9uLm9uY2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgdmFyIGFjdGlvbkZ1biA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgYnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IG15LmFqYXguYWNjaW9uX3RhcmVhc190ZW1fZWplY3V0YXIoe1xyXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdGl2bzogZGVwb3Qucm93Lm9wZXJhdGl2byxcclxuICAgICAgICAgICAgICAgICAgICB0YXJlYTogZGVwb3Qucm93LnRhcmVhLFxyXG4gICAgICAgICAgICAgICAgICAgIGVuYzogZGVwb3Qucm93LmVuYyxcclxuICAgICAgICAgICAgICAgICAgICBjb25kaWNpb246IGFjdGlvbi5jb25kaWNpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgYWNjaW9uOiBhY3Rpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZWFzVGVtVGFibGU6IGRlcG90LmRlZi5uYW1lXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHZhciBncmlkID0gZGVwb3QubWFuYWdlcjtcclxuICAgICAgICAgICAgICAgIGdyaWQucmV0cmlldmVSb3dBbmRSZWZyZXNoKGRlcG90LCB7IHJldHJpZXZlSWdub3JpbmdXaGVyZTogdHJ1ZSB9KVxyXG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbi5ub21icmVfd3NjcmVlbikge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vVE9ETyBhY29tb2RhciBlc3RvIGVuIGFsZ3VuIG1vbWVudG9cclxuICAgICAgICAgICAgICAgICAgICBsZXQgcGFyYW1zID0gZGVwb3Qucm93O1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB1cCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aXZvOiBwYXJhbXMub3BlcmF0aXZvLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJlYTogcGFyYW1zLnRhcmVhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmM6IE51bWJlcihwYXJhbXMuZW5jKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBhYnJpckVuY3Vlc3RhRW5QZXN0YW5uaWFEZWRpY2FkYShsb2NhdGlvbi5vcmlnaW4gKyBsb2NhdGlvbi5wYXRobmFtZSArIG15Lm1lbnVTZXBhcmF0b3IgKyBgdz0ke2FjdGlvbi5ub21icmVfd3NjcmVlbn0mdXA9JHtKU09OLnN0cmluZ2lmeSh1cCl9JmF1dG9wcm9jZWQ9dHJ1ZWApXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgYWxlcnRQcm9taXNlKHVuZXhwZWN0ZWQoZXJyKS5tZXNzYWdlKVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyXHJcbiAgICAgICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgICAgICAvL3JldHJhc28gbGEgaGFiaWxpdGFjacOzbiBwb3JxdWUgYSB2ZWNlcyB0YXJkYSBlbiByZWRpYnVqYXJzZSBsYSBib3RvbmVyYSB5IHB1ZWRlIHRyYWVyIHByb2JsZW1hcyBzaSBkYW4gZG9ibGUgY2xpY2sgXHJcbiAgICAgICAgICAgICAgICAvL3lhIHF1ZSBlamVjdXRhIG51ZXZhbWVudGUgdW5hIGFjY2nDs24gcXVlIHlhIHNlIGVqZWN1dMOzICh5IHRlcm1pbsOzKSBhbnRlc1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBidXR0b24uZGlzYWJsZWQgPSBmYWxzZSwgMzAwMClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGNvbmZpcm1Qcm9taXNlT3B0czogRGlhbG9nT3B0aW9ucyA9IHt9XHJcbiAgICAgICAgaWYgKGFjdGlvbi5jb25maXJtYSkge1xyXG4gICAgICAgICAgICBjb25maXJtUHJvbWlzZU9wdHMuYXNrRm9yTm9SZXBlYXQgPSAnbm8gdm9sdmVyIGEgbW9zdHJhcic7IC8vbXVlc3RyYSBtZW5zYWplIHBvciBkZWZhdWx0IHBlcm8gYW5kYSBpZ3VhbFxyXG4gICAgICAgICAgICB2YXIgYnV0dG9uc0RlZiA9IFtcclxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdzw60nLCB2YWx1ZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ25vJywgdmFsdWU6IGZhbHNlIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICBjb25maXJtUHJvbWlzZShgY29uZmlybWEgYWNjacOzbiBcIiR7YWNjaW9uU2luR3Vpb25lc31cIj9gLCB7IC4uLmNvbmZpcm1Qcm9taXNlT3B0cywgYnV0dG9uc0RlZiB9KS50aGVuKGFjdGlvbkZ1bik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYWN0aW9uRnVuKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGJ1dHRvblxyXG59XHJcblxyXG52YXIgY3JlYXJCb3RvbmVzQWNjaW9uZXMgPSBhc3luYyAob3B0czogeyBkZXBvdDogbXlPd24uRGVwb3QsIGZpZWxkTmFtZTogc3RyaW5nLCBkaXJlY2Npb246IERpcmVjY2lvbkFjY2lvbiB9KSA9PiB7XHJcbiAgICBsZXQgeyBkZXBvdCwgZmllbGROYW1lLCBkaXJlY2Npb24gfSA9IG9wdHM7XHJcbiAgICBsZXQgdGQgPSBkZXBvdC5yb3dDb250cm9sc1tmaWVsZE5hbWVdO1xyXG4gICAgdGQuaW5uZXJIVE1MID0gJyc7XHJcbiAgICAoZGVwb3Qucm93Q29udHJvbHMuYWNjaW9uZXMuZ2V0VHlwZWRWYWx1ZSgpIHx8IFtdKVxyXG4gICAgICAgIC5maWx0ZXIoKGFjdGlvbjogRXN0YWRvQWNjaW9uKSA9PiBhY3Rpb24uZWFjY2lvbl9kaXJlY2Npb24gPT0gZGlyZWNjaW9uKVxyXG4gICAgICAgIC5mb3JFYWNoKChhY3Rpb246IEVzdGFkb0FjY2lvbikgPT4gdGQuYXBwZW5kQ2hpbGQoY3JlYXJCb3RvbkFjY2lvbihkZXBvdCwgYWN0aW9uKSkpO1xyXG59XHJcblxyXG52YXIgY3JlYXJTd2l0Y2ggPSAob3B0czogeyByb3VuZD86IGJvb2xlYW4sIGRpc2FibGVkPzogYm9vbGVhbiwgY2hlY2tlZD86IGJvb2xlYW4sIG9uQ2xpY2tGdW46IEZ1bmN0aW9uLCBvbkVyckZ1bj86IEZ1bmN0aW9uIH0pID0+IHtcclxuICAgIHZhciBjaGVja2JveCA9IGh0bWwuaW5wdXQoeyB0eXBlOiAnY2hlY2tib3gnLCBjaGVja2VkOiBvcHRzLmNoZWNrZWQgfSkuY3JlYXRlKCk7XHJcbiAgICBjaGVja2JveC5vbmNsaWNrID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNoZWNrYm94LmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgYXdhaXQgb3B0cy5vbkNsaWNrRnVuKClcclxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgYWxlcnRQcm9taXNlKHVuZXhwZWN0ZWQoZXJyKS5tZXNzYWdlKVxyXG4gICAgICAgICAgICB0aHJvdyBlcnJcclxuICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICBjaGVja2JveC5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBodG1sLmxhYmVsKHsgY2xhc3M6ICdzd2l0Y2gnIH0sIFtcclxuICAgICAgICBjaGVja2JveCxcclxuICAgICAgICBodG1sLnNwYW4oeyBjbGFzczogYHNsaWRlciAke29wdHMucm91bmQgPyAncm91bmQnIDogJyd9YCB9KSxcclxuICAgIF0pLmNyZWF0ZSgpO1xyXG59XHJcblxyXG5teU93bi5jbGllbnRTaWRlcy5oYWJpbGl0YXIgPSB7XHJcbiAgICBwcmVwYXJlOiAoX2RlcG90LCBfZmllbGROYW1lKSA9PiB7IH0sXHJcbiAgICB1cGRhdGU6IChkZXBvdCwgZmllbGROYW1lKSA9PiB7XHJcbiAgICAgICAgdmFyIHRkID0gZGVwb3Qucm93Q29udHJvbHNbZmllbGROYW1lXTtcclxuICAgICAgICB0ZC5pbm5lckhUTUwgPSBcIlwiO1xyXG4gICAgICAgIHRkLmFwcGVuZENoaWxkKFxyXG4gICAgICAgICAgICBjcmVhclN3aXRjaCh7XHJcbiAgICAgICAgICAgICAgICByb3VuZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGNoZWNrZWQ6IGRlcG90LnJvdy5oYWJpbGl0YWRhLFxyXG4gICAgICAgICAgICAgICAgb25DbGlja0Z1bjogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IG15LmFqYXguZW5jdWVzdGFfaGFiaWxpdGFyX2Rlc2hhYmlsaXRhcih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGl2bzogZGVwb3Qucm93Lm9wZXJhdGl2byxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW5jOiBkZXBvdC5yb3cuZW5jXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGdyaWQgPSBkZXBvdC5tYW5hZ2VyO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZ3JpZC5yZXRyaWV2ZVJvd0FuZFJlZnJlc2goZGVwb3QpLCAzMDApOy8vcGFyYSBxdWUgc2UgdmVhIGVsIGVmZWN0b1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5teU93bi5jbGllbnRTaWRlcy5hY2Npb25lc0F2YW5jZSA9IHtcclxuICAgIHByZXBhcmU6IChfZGVwb3QsIF9maWVsZE5hbWUpID0+IHsgfSxcclxuICAgIHVwZGF0ZTogKGRlcG90LCBmaWVsZE5hbWUpID0+IHtcclxuICAgICAgICBjcmVhckJvdG9uZXNBY2Npb25lcyh7IGRlcG90LCBmaWVsZE5hbWUsIGRpcmVjY2lvbjogJ2F2YW5jZScgfSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5teU93bi5jbGllbnRTaWRlcy5hY2Npb25lc1JldHJvY2VzbyA9IHtcclxuICAgIHByZXBhcmU6IChfZGVwb3QsIF9maWVsZE5hbWUpID0+IHsgfSxcclxuICAgIHVwZGF0ZTogKGRlcG90LCBmaWVsZE5hbWUpID0+IHtcclxuICAgICAgICBjcmVhckJvdG9uZXNBY2Npb25lcyh7IGRlcG90LCBmaWVsZE5hbWUsIGRpcmVjY2lvbjogJ3JldHJvY2VzbycgfSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5teU93bi5jbGllbnRTaWRlcy5hY2Npb25lc0JsYW5xdWVvID0ge1xyXG4gICAgcHJlcGFyZTogKF9kZXBvdCwgX2ZpZWxkTmFtZSkgPT4geyB9LFxyXG4gICAgdXBkYXRlOiAoZGVwb3QsIGZpZWxkTmFtZSkgPT4ge1xyXG4gICAgICAgIGNyZWFyQm90b25lc0FjY2lvbmVzKHsgZGVwb3QsIGZpZWxkTmFtZSwgZGlyZWNjaW9uOiAnYmxhbnF1ZW8nIH0pO1xyXG4gICAgfVxyXG59O1xyXG5cclxuZnVuY3Rpb25cclxuICAgIGJvdG9uQ2xpZW50U2lkZUVuR3JpbGxhKG9wdHM6IHsgbm9tYnJlQm90b246IHN0cmluZywgbGxhbWFkYTogKGRlcG90OiBteU93bi5EZXBvdCkgPT4gUHJvbWlzZTxhbnk+IH0pIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcHJlcGFyZTogZnVuY3Rpb24gKGRlcG90OiBteU93bi5EZXBvdCwgZmllbGROYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdmFyIHRkID0gZGVwb3Qucm93Q29udHJvbHNbZmllbGROYW1lXTtcclxuICAgICAgICAgICAgdmFyIGJvdG9uID0gaHRtbC5idXR0b24ob3B0cy5ub21icmVCb3RvbikuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgIHRkLmlubmVySFRNTCA9IFwiXCI7XHJcbiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGJvdG9uKTtcclxuICAgICAgICAgICAgdmFyIHJlc3RhdXJhckJvdG9uID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgYm90b24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGJvdG9uLnRleHRDb250ZW50ID0gb3B0cy5ub21icmVCb3RvbjtcclxuICAgICAgICAgICAgICAgIGJvdG9uLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcnO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBib3Rvbi5vbmNsaWNrID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgYm90b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYm90b24udGV4dENvbnRlbnQgPSAncHJvY2VzYW5kby4uLic7XHJcbiAgICAgICAgICAgICAgICBvcHRzLmxsYW1hZGEoZGVwb3QpLnRoZW4oYXN5bmMgZnVuY3Rpb24gKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgJiYgdHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcgJiYgJ29rJyBpbiByZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5vaykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGdyaWQgPSBkZXBvdC5tYW5hZ2VyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgZ3JpZC5yZXRyaWV2ZVJvd0FuZFJlZnJlc2goZGVwb3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlcG90LmRldGFpbENvbnRyb2xzLmluY29uc2lzdGVuY2lhcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcG90LmRldGFpbENvbnRyb2xzLmluY29uc2lzdGVuY2lhcy5mb3JjZURpc3BsYXlEZXRhaWxHcmlkKHt9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdG9uLnRleHRDb250ZW50ID0gcmVzdWx0Lm1lc3NhZ2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3Rvbi50aXRsZSA9IHJlc3VsdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdG9uLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcjOEY4JztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChyZXN0YXVyYXJCb3RvbiwgMjUwMCk7XHJcbiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbiAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGVycm9yID0gZXhwZWN0ZWQoZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICBib3Rvbi50ZXh0Q29udGVudCA9ICdlcnJvcic7XHJcbiAgICAgICAgICAgICAgICAgICAgYm90b24uc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyNGRjgnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGVuIGFjY2nDs24gZGUgZ3JpbGxhOicsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICBhbGVydFByb21pc2UoZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vaWYgKChkZXBvdC5yb3cuY29uc2lzdGlkbz09bnVsbCAgJiYgZGVwb3Qucm93LnJlYSE9bnVsbCkgfHwgZGVwb3Qucm93Lm1vZGlmaWNhZG8hPW51bGwgJiYgZGVwb3Qucm93LmNvbnNpc3RpZG8hPW51bGwgJiYgZGVwb3Qucm93Lm1vZGlmaWNhZG8gPmRlcG90LnJvdy5jb25zaXN0aWRvKXtcclxuICAgICAgICAgICAgLy8gICAgYm90b24uc3R5bGUuYmFja2dyb3VuZENvbG9yPScjOENGJ1xyXG4gICAgICAgICAgICAvL31cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59XHJcblxyXG5cclxubXlPd24uY2xpZW50U2lkZXMuY29uc2lzdGlyID0gYm90b25DbGllbnRTaWRlRW5HcmlsbGEoe1xyXG4gICAgbm9tYnJlQm90b246ICdjb25zaXN0aXInLFxyXG4gICAgbGxhbWFkYTogZnVuY3Rpb24gKGRlcG90OiBteU93bi5EZXBvdCkge1xyXG4gICAgICAgIC8vQHRzLWlnbm9yZSBkZWYgZXhpc3RlIGVuIG1hbmFnZXJcclxuICAgICAgICB2YXIgbXlSZWFGaWVsZE5hbWUgPSBkZXBvdC5tYW5hZ2VyLmRlZi50YWJsZU5hbWUgPT0gXCJ0ZW1cIiA/ICdyZWEnIDogJ3VsdF9yZWEnO1xyXG4gICAgICAgIHZhciBmaWx0cm9SZWEgPSBjb25zaXN0aXJfZmlsdHJvKGRlcG90LnJvdy50YXJlYSwgZGVwb3Qucm93W215UmVhRmllbGROYW1lXSwgZGVwb3Qucm93LnJlYSlcclxuICAgICAgICByZXR1cm4gZmlsdHJvUmVhID8gbXlPd24uYWpheC5jb25zaXN0aXJfZW5jdWVzdGEoe1xyXG4gICAgICAgICAgICBvcGVyYXRpdm86IGRlcG90LnJvdy5vcGVyYXRpdm8sXHJcbiAgICAgICAgICAgIGlkX2Nhc286IGRlcG90LnJvdy5lbmNcclxuICAgICAgICB9KSA6IGFsZXJ0UHJvbWlzZSgnTGEgZW5jdWVzdGEgZGViZSB0ZW5lciBkYXRvIGVuIHJlYSBwYXJhIHBvZGVyIGNvbnNpc3RpcmxhLicpO1xyXG4gICAgfVxyXG59KTtcclxuXHJcbm15T3duLndTY3JlZW5zLnByb2MucmVzdWx0Lm1vc3RyYXJfZW5jdWVzdGFzX2FfYmxhbnF1ZWFyID0gZnVuY3Rpb24gKHJlc3VsdCwgZGl2UmVzdWx0KSB7XHJcbiAgICBpZiAocmVzdWx0LnJvd3MubGVuZ3RoKSB7XHJcbiAgICAgICAgdmFyIGN1cnJlbnRUb2tlbjogc3RyaW5nIHwgbnVsbCA9IG51bGxcclxuICAgICAgICB2YXIgbnJvQ2FyZ2EgPSAwO1xyXG4gICAgICAgIHZhciBlbmN1ZXN0YXNEaXY6IG51bGwgfCBIVE1MRGl2RWxlbWVudCA9IG51bGw7XHJcbiAgICAgICAgZGl2UmVzdWx0LmFwcGVuZENoaWxkKGh0bWwuaDIoJ29wZXJhdGl2bzogJyArIHJlc3VsdC5vcGVyYXRpdm8pLmNyZWF0ZSgpKTtcclxuICAgICAgICByZXN1bHQucm93cy5mb3JFYWNoKChlbmN1ZXN0YTphbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRUb2tlbiAhPSBlbmN1ZXN0YS5jYXJnYWRvX2RtKSB7XHJcbiAgICAgICAgICAgICAgICBucm9DYXJnYSsrO1xyXG4gICAgICAgICAgICAgICAgY3VycmVudFRva2VuID0gZW5jdWVzdGEuY2FyZ2Fkb19kbTtcclxuICAgICAgICAgICAgICAgIGRpdlJlc3VsdC5hcHBlbmRDaGlsZChodG1sLmg0KCdjYXJnYSBOwrogJyArIG5yb0NhcmdhLnRvU3RyaW5nKCkpLmNyZWF0ZSgpKTtcclxuICAgICAgICAgICAgICAgIGVuY3Vlc3Rhc0RpdiA9IGh0bWwuZGl2KHsgY2xhc3M6ICdlbmN1ZXN0YXMtYS1ibGFucXVlYXInIH0pLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgLy9sYXMgY29waW8gY29uIGxldCBwYXJhIHF1ZSB0b21lIGVsIHZhbG9yIGFjdHVhbCB5IG5vIGVsIMO6bHRpbW9cclxuICAgICAgICAgICAgICAgIGxldCBtaVRva2VuID0gY3VycmVudFRva2VuO1xyXG4gICAgICAgICAgICAgICAgbGV0IG1pTnJvQ2FyZ2EgPSBucm9DYXJnYTtcclxuICAgICAgICAgICAgICAgIHZhciBidXR0b24gPSBodG1sLmJ1dHRvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M6IGBib3Rvbi1ibGFucXVlYXItZG0gYm90b24tYWNjaW9uYFxyXG4gICAgICAgICAgICAgICAgfSwgJ2JsYW5xdWVhciBjYXJnYSAnICsgbnJvQ2FyZ2EudG9TdHJpbmcoKSkuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgICAgICBidXR0b24ub25jbGljayA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgbWFpbkRpdiA9IGh0bWwuZGl2KCkuY3JlYXRlKClcclxuICAgICAgICAgICAgICAgICAgICBtYWluRGl2LmFwcGVuZENoaWxkKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sLmRpdih7fSwgW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYoeyBjbGFzczogJ2RhbmdlcicgfSwgW2BFc3TDoSBwb3IgYmxhbnF1ZWFyIGxhIGNhcmdhICR7bWlOcm9DYXJnYX0uIE5vIHNlIHBvZHLDoSBkZXNjYXJnYXIgZWwgZGlzcG9zaXRpdm8uYF0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXRGb3J6YXIgPSBodG1sLmlucHV0KHsgY2xhc3M6ICdpbnB1dC1mb3J6YXInIH0pLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1haW5EaXYuYXBwZW5kQ2hpbGQoaHRtbC5kaXYoW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sLmRpdihbJ1NlIHB1ZWRlIGZvcnphciBlbCBibGFucXVlbyAnLCBpbnB1dEZvcnphcl0pXHJcbiAgICAgICAgICAgICAgICAgICAgXSkuY3JlYXRlKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBmb3J6YXIgPSBhd2FpdCBjb25maXJtUHJvbWlzZShtYWluRGl2LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhDbG9zZUJ1dHRvbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnNEZWY6IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdmb3J6YXIgYmxhbnF1ZW8nLCB2YWx1ZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ2NhbmNlbGFyIGJsYW5xdWVvJywgdmFsdWU6IGZhbHNlIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmb3J6YXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0Rm9yemFyLnZhbHVlID09ICdmb3J6YXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdEJsYW5xdWVvID0gYXdhaXQgbXkuYWpheC5kbV9ibGFucXVlYXIoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpdm86IHJlc3VsdC5vcGVyYXRpdm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuOiBtaVRva2VuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGl2UmVzdWx0LmlubmVySFRNTCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdEJsYW5xdWVvLmZvckVhY2goKHR0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGl2UmVzdWx0LmFwcGVuZENoaWxkKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYoe30sIFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sLnNwYW4oe30sIGAke3R0LnJlc3VsdF9ibGFucXVlb31gKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRQcm9taXNlKHVuZXhwZWN0ZWQoZXJyKS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRQcm9taXNlKCdzaSBuZWNlc2l0YSBibGFucXVlYXIgZXNjcmliYSBmb3J6YXIuJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGRpdlJlc3VsdC5hcHBlbmRDaGlsZChlbmN1ZXN0YXNEaXYpO1xyXG4gICAgICAgICAgICAgICAgZGl2UmVzdWx0LmFwcGVuZENoaWxkKGJ1dHRvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZW5jdWVzdGFzRGl2Py5hcHBlbmRDaGlsZChodG1sLmRpdih7fSwgW1xyXG4gICAgICAgICAgICAgICAgaHRtbC5zcGFuKGBlbmN1ZXN0YTogJHtlbmN1ZXN0YS5lbmN9IGApLFxyXG4gICAgICAgICAgICAgICAgaHRtbC5zcGFuKGB0YXJlYTogICR7ZW5jdWVzdGEudGFyZWF9IGApLFxyXG4gICAgICAgICAgICBdKS5jcmVhdGUoKSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG59XHJcblxyXG5teU93bi53U2NyZWVucy5wcm9jLnJlc3VsdC5kb3dubG9hZF9zcWwgPSBmdW5jdGlvbiAocmVzdWx0LCBkaXZSZXN1bHQpIHtcclxuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFtyZXN1bHRdLCB7IHR5cGU6ICd0ZXh0L3NxbCcgfSkpO1xyXG5cclxuICAgIGRpdlJlc3VsdC5pbm5lckhUTUwgPSAnJztcclxuXHJcbiAgICBjb25zdCBsaW5rID0gaHRtbC5hKCdEZXNjYXJnYXIgYXJjaGl2byBTUUwnKS5jcmVhdGUoKVxyXG4gICAgbGluay5ocmVmID0gdXJsO1xyXG4gICAgbGluay5kb3dubG9hZCA9ICdtaWdyYXJfb3BlcmF0aXZvLnNxbCc7XHJcbiAgICBkaXZSZXN1bHQuYXBwZW5kQ2hpbGQobGluayk7XHJcbn1cclxuXHJcbmNvbnN0IHByZXZpc3VhbGl6YXJFbmN1ZXN0YSA9IChcclxuICAgIHJlc3VsdFRlbTogYW55LFxyXG4gICAgZGl2UmVzdWx0OiBIVE1MRGl2RWxlbWVudCxcclxuICAgIHBhcmFtczoge1xyXG4gICAgICAgIG5vbWJyZVByb2NlZHVyZTogc3RyaW5nLFxyXG4gICAgICAgIGlnbm9yYUpzb25FbmN1ZXN0YVZhY2lvOiBib29sZWFuXHJcbiAgICAgICAgbGFiZWxBY3Rpb246IHN0cmluZ1xyXG4gICAgfVxyXG4pID0+IHtcclxuICAgIGxldCB7IGNhc29UZW0gfSA9IHJlc3VsdFRlbTtcclxuICAgIGlmICghY2Fzb1RlbS5qc29uX2VuY3Vlc3RhKSB7XHJcbiAgICAgICAgZGl2UmVzdWx0LmFwcGVuZENoaWxkKGh0bWwucCh7IGlkOiAnbWVuc2FqZS1uby1oYXktanNvbi1lbmN1ZXN0YScgfSwgYG5vIHNlIGVuY29udHLDsyBpbmZvcm1hY2lvbiBjYXJnYWRhIGVuIGxhIGVuY3Vlc3RhICR7Y2Fzb1RlbS5lbmN9YCkuY3JlYXRlKCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNhc29UZW0uanNvbl9lbmN1ZXN0YSB8fCBwYXJhbXMuaWdub3JhSnNvbkVuY3Vlc3RhVmFjaW8pIHtcclxuICAgICAgICB2YXIgZW5jdWVzdGFEaXYgPSBodG1sLmRpdih7IGlkOiAnYmFja3VwLWRpdicgfSkuY3JlYXRlKCk7XHJcbiAgICAgICAgZGl2UmVzdWx0LmFwcGVuZENoaWxkKGVuY3Vlc3RhRGl2KTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBteS5hZ3JlZ2FyX2pzb24oZW5jdWVzdGFEaXYsIGNhc29UZW0uanNvbl9lbmN1ZXN0YSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIGRpdlJlc3VsdC5hcHBlbmRDaGlsZChodG1sLnAoeyBpZDogJ21lbnNhamUtZXJyb3ItanNvbi1lbmN1ZXN0YScgfSwgYG5vIHNlIHB1ZG8gYWwgcHJldmlzdWFsaXphciBsYSBlbmN1ZXN0YSAke2Nhc29UZW0uZW5jfSBjb3JyZWN0YW1lbnRlLiAke3VuZXhwZWN0ZWQoZXJyKS5tZXNzYWdlfWApLmNyZWF0ZSgpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGJ1dHRvbiA9IGh0bWwuYnV0dG9uKHtcclxuICAgICAgICAgICAgY2xhc3M6IGBib3Rvbi1ibGFucXVlYXItZW5jdWVzdGEtYWNjaW9uYFxyXG4gICAgICAgIH0sIGAke3BhcmFtcy5sYWJlbEFjdGlvbn0gZW5jdWVzdGFgKS5jcmVhdGUoKTtcclxuICAgICAgICBidXR0b24ub25jbGljayA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgdmFyIG1haW5EaXYgPSBodG1sLmRpdigpLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgIG1haW5EaXYuYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgICAgICAgICBodG1sLmRpdih7fSwgW1xyXG4gICAgICAgICAgICAgICAgICAgIGh0bWwuZGl2KHsgY2xhc3M6ICdkYW5nZXInIH0sIFtgRXN0w6EgcG9yICR7cGFyYW1zLmxhYmVsQWN0aW9ufSBsYSBlbmN1ZXN0YSAke2Nhc29UZW0uZW5jfS4gU2UgcGVyZGVyw6FuIGxvcyBkYXRvcyBkZSBsYSBtaXNtYS5gXSlcclxuICAgICAgICAgICAgICAgIF0pLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHZhciBpbnB1dEZvcnphciA9IGh0bWwuaW5wdXQoeyBjbGFzczogJ2lucHV0LWZvcnphcicgfSkuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgIG1haW5EaXYuYXBwZW5kQ2hpbGQoaHRtbC5kaXYoW1xyXG4gICAgICAgICAgICAgICAgaHRtbC5kaXYoW2BwYXJhICR7cGFyYW1zLmxhYmVsQWN0aW9ufSBlc2NyaWJhIGZvcnphciBgLCBpbnB1dEZvcnphcl0pXHJcbiAgICAgICAgICAgIF0pLmNyZWF0ZSgpKTtcclxuICAgICAgICAgICAgdmFyIGZvcnphciA9IGF3YWl0IGNvbmZpcm1Qcm9taXNlKG1haW5EaXYsIHtcclxuICAgICAgICAgICAgICAgIHdpdGhDbG9zZUJ1dHRvbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICByZWplY3Q6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgYnV0dG9uc0RlZjogW1xyXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdmb3J6YXInLCB2YWx1ZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdjYW5jZWxhcicsIHZhbHVlOiBmYWxzZSB9XHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoZm9yemFyKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXRGb3J6YXIudmFsdWUgPT0gJ2ZvcnphcicpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgd2FpdEdpZiA9IGh0bWwuaW1nKHsgc3JjOiAnaW1nL2xvYWRpbmcxNi5naWYnIH0pLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhaXRHaWYuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpdlJlc3VsdC5hcHBlbmRDaGlsZCh3YWl0R2lmKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdEJsYW5xdWVvID0gYXdhaXQgbXkuYWpheFtwYXJhbXMubm9tYnJlUHJvY2VkdXJlXShjYXNvVGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGl2UmVzdWx0LmlubmVySFRNTCA9IHJlc3VsdEJsYW5xdWVvO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRQcm9taXNlKHVuZXhwZWN0ZWQoZXJyKS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2FpdEdpZi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0UHJvbWlzZShgc2kgbmVjZXNpdGEgJHtwYXJhbXMubGFiZWxBY3Rpb259IGVzY3JpYmEgZm9yemFyLmApXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZGl2UmVzdWx0LmFwcGVuZENoaWxkKGJ1dHRvbik7XHJcbiAgICB9XHJcbn1cclxuXHJcbm15T3duLndTY3JlZW5zLnByb2MucmVzdWx0Lm1vc3RyYXJfZW5jdWVzdGFfYV9ibGFucXVlYXJfY29udGVuaWRvID0gZnVuY3Rpb24gKHJlc3VsdCwgZGl2UmVzdWx0KSB7XHJcbiAgICBwcmV2aXN1YWxpemFyRW5jdWVzdGEocmVzdWx0LCBkaXZSZXN1bHQsIHtcclxuICAgICAgICBub21icmVQcm9jZWR1cmU6ICdlbmN1ZXN0YV9ibGFucXVlYXInLFxyXG4gICAgICAgIGlnbm9yYUpzb25FbmN1ZXN0YVZhY2lvOiBmYWxzZSxcclxuICAgICAgICBsYWJlbEFjdGlvbjogJ2JsYW5xdWVhcidcclxuICAgIH0pXHJcbn1cclxuXHJcbm15T3duLndTY3JlZW5zLnByb2MucmVzdWx0Lm1vc3RyYXJfZW5jdWVzdGFfYV9ib3JyYXIgPSBmdW5jdGlvbiAocmVzdWx0LCBkaXZSZXN1bHQpIHtcclxuICAgIHByZXZpc3VhbGl6YXJFbmN1ZXN0YShyZXN1bHQsIGRpdlJlc3VsdCwge1xyXG4gICAgICAgIG5vbWJyZVByb2NlZHVyZTogJ2VuY3Vlc3RhX2JvcnJhcicsXHJcbiAgICAgICAgaWdub3JhSnNvbkVuY3Vlc3RhVmFjaW86IHRydWUsXHJcbiAgICAgICAgbGFiZWxBY3Rpb246ICdib3JyYXInXHJcbiAgICB9KVxyXG59XHJcblxyXG5mdW5jdGlvbiBhcnJheUZsYXQ8VD4oYXJyYXlzOiBUW11bXSk6IFRbXSB7XHJcbiAgICByZXR1cm4gKFtdIGFzIFRbXSkuY29uY2F0LmFwcGx5KFtdLCBhcnJheXMpO1xyXG59XHJcblxyXG5cclxuLypzaW5jcm9uaXphciB5IGNhbWJpbyBkZSBtb2RvIExFR0FDWSAqL1xyXG5hc3luYyBmdW5jdGlvbiBzaW5jcm9uaXphckRhdG9zKHBlcnNpc3RlbnRlczogRGF0b3NCeVBhc3NQZXJzaXN0aWJsZXMgfCBudWxsLCBjYW1iaWFNb2RvRE06IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGZvcm1SZW5kZXJlciA9IGdldEZvcm1SZW5kZXJlcigpO1xyXG4gICAgbGV0IG1vZG9ETTogTW9kb0RNID0gZm9ybVJlbmRlcmVyLmdldE1vZG9ETSgpIHx8IGF3YWl0IG15LmFqYXgubW9kb19kbV9kZWZlY3RvX29idGVuZXIoe30pO1xyXG4gICAgZm9ybVJlbmRlcmVyLnNldE1vZG9ETShtb2RvRE0pO1xyXG4gICAgY29uc3QgaWRwZXJfbG9ndWVhZG9fdGFibGV0ID0gZm9ybVJlbmRlcmVyLmdldElkcGVyTG9ndWVhZG8oKTtcclxuICAgIHZhciBkYXRvcyA9IGF3YWl0IG15LmFqYXguZG1fc2luY3Jvbml6YXIoeyBwZXJzaXN0ZW50ZXMsIG1vZG9fZG06IG1vZG9ETSwgY2FtYmlhX21vZG9fZG06IGNhbWJpYU1vZG9ETSwgaWRwZXJfbG9ndWVhZG9fdGFibGV0IH0pO1xyXG4gICAgYXdhaXQgZm9ybVJlbmRlcmVyLnBlcnNpc3RpckRhdG9zKHsgLi4uZGF0b3MsIG1vZG9BbG1hY2VuYW1pZW50bzogJ2xvY2FsJyB9KTtcclxuICAgIHZhciBlc3RydWN0dXJhID0gYXdhaXQgbXlPd24uYWpheC5vcGVyYXRpdm9fZXN0cnVjdHVyYV9jb21wbGV0YSh7IG9wZXJhdGl2bzogZGF0b3Mub3BlcmF0aXZvLCBpZHBlcl9sb2d1ZWFkb190YWJsZXQgfSk7XHJcbiAgICBhd2FpdCBmb3JtUmVuZGVyZXIucGVyc2lzdGlyRXN0cnVjdHVyYShlc3RydWN0dXJhKTtcclxuICAgIG15LnJlbW92ZUxvY2FsVmFyKEJBQ0tVUFMpO1xyXG4gICAgcmV0dXJuIGRhdG9zO1xyXG59XHJcblxyXG5jb25zdCBtb3N0cmFySW5mb0xvY2FsID0gYXN5bmMgKGRpdkF2aXNvU2luY3JvOiBIVE1MRGl2RWxlbWVudCwgdGl0dWxvOiBzdHJpbmcsIG5yb1NpbmNybzogbnVtYmVyIHwgbnVsbCwgbW9zdHJhckxpbmtIZHI6IGJvb2xlYW4pID0+IHtcclxuICAgIGNvbnN0IGRhdG9zID0gYXdhaXQgZ2V0Rm9ybVJlbmRlcmVyKCkubGVlckRhdG9zKCk7XHJcbiAgICBjb25zdCBlc3RydWN0dXJhID0gYXdhaXQgZ2V0Rm9ybVJlbmRlcmVyKCkubGVlckVzdHJ1Y3R1cmEoKTtcclxuICAgIGlmIChkYXRvcykge1xyXG4gICAgICAgIGRpdkF2aXNvU2luY3JvLmFwcGVuZChodG1sLmRpdih7IGlkOiAnYXZpc28tc2luY3JvJyB9LCBbXHJcbiAgICAgICAgICAgIG5yb1NpbmNybyA/IGh0bWwucChbXCJOw7ptZXJvIGRlIHNpbmNyb25pemFjacOzbjogXCIsIGh0bWwuYihcIlwiICsgbnJvU2luY3JvLnRvU3RyaW5nKCkpXSkgOiBudWxsLFxyXG4gICAgICAgICAgICBodG1sLmg0KHRpdHVsbyksXHJcbiAgICAgICAgICAgIGh0bWwucChbaHRtbE51bWVybyhsaWtlQXIoZGF0b3MuY2FyZ2FzKS5hcnJheSgpLmxlbmd0aCksICcgYXJlYXM6ICcsIGxpa2VBcihkYXRvcy5jYXJnYXMpLmtleXMoKS5qb2luKCcsICcpXSksXHJcbiAgICAgICAgICAgIGh0bWwucChbaHRtbE51bWVybyhsaWtlQXIoZGF0b3MucmVzcHVlc3Rhc1tlc3RydWN0dXJhLnVhUHBhbF0pLmFycmF5KCkubGVuZ3RoKSwgJyAnICsgZXN0cnVjdHVyYS51YVBwYWxdKSxcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIG1vc3RyYXJMaW5rSGRyID8gaHRtbC5hKHsgaHJlZjogJy4vY2FtcG8nIH0sIFtodG1sLmIoJ0lSIEEgTEEgSE9KQSBERSBSVVRBJyldKSA6IG51bGxcclxuICAgICAgICBdKS5jcmVhdGUoKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRpdkF2aXNvU2luY3JvLmFwcGVuZENoaWxkKGh0bWwuZGl2KHsgY2xhc3M6ICdhdmlzbycgfSwgW1xyXG4gICAgICAgICAgICBodG1sLmg0KCdTaXN0ZW1hIHZhY8OtbycpLFxyXG4gICAgICAgICAgICBodG1sLnAoJ05vIGhheSBpbmZvcm1hY2nDs24gZGUgZm9ybXVsYXJpb3MnKSxcclxuICAgICAgICBdKS5jcmVhdGUoKSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNvbnN0IG1vc3RyYXJJbmZvTW9kbyA9IGFzeW5jIChtYWluTGF5b3V0OiBIVE1MRWxlbWVudCkgPT4ge1xyXG4gICAgbGV0IG1vZG9ETTogTW9kb0RNID0gZ2V0Rm9ybVJlbmRlcmVyKCkuZ2V0TW9kb0RNKCkgfHwgYXdhaXQgbXkuYWpheC5tb2RvX2RtX2RlZmVjdG9fb2J0ZW5lcih7fSk7XHJcbiAgICBnZXRGb3JtUmVuZGVyZXIoKS5zZXRNb2RvRE0obW9kb0RNKTtcclxuICAgIC8vQHRzLWlnbm9yZSBzZXRlbyB1biBhdHJpYnV0b1xyXG4gICAgdmFyIGRpdkF2aXNvTW9kbzogSFRNTERpdkVsZW1lbnQgPSBodG1sLmRpdih7IGNsYXNzOiBcImluZm8tbW9kb1wiLCBcIm1vZG8tZG1cIjogbW9kb0RNIH0sIGBtb2RvIGFjdHVhbDogJHttb2RvRE19YCkuY3JlYXRlKClcclxuICAgIG1haW5MYXlvdXQuYXBwZW5kQ2hpbGQoZGl2QXZpc29Nb2RvKVxyXG4gICAgcmV0dXJuIG1vZG9ETTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FtYmlhck1vZG9ETUVuTG9jYWxTdG9yYWdlKG1vZG9BY3R1YWw6IE1vZG9ETSkge1xyXG4gICAgbW9kb0FjdHVhbCA9IG1vZG9BY3R1YWwgPT0gJ3Byb2R1YycgPyAnY2FwYScgOiAncHJvZHVjJztcclxuICAgIGdldEZvcm1SZW5kZXJlcigpLnNldE1vZG9ETShtb2RvQWN0dWFsKTtcclxufVxyXG5cclxudmFyIHByb2NlZGVyU2luY3JvRnVuID0gYXN5bmMgKGJ1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQsIGRpdkF2aXNvU2luY3JvOiBIVE1MRGl2RWxlbWVudCwgY2FtYmlhTW9kb0RNOiBib29sZWFuKSA9PiB7XHJcbiAgICBidXR0b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgYnV0dG9uLmNsYXNzTmFtZSA9ICdkb3dubG9hZC1kbS1idXR0b24nO1xyXG4gICAgZGl2QXZpc29TaW5jcm8uaW5uZXJIVE1MID0gJyc7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHBlcnNpc3RlbnRlcyA9IGF3YWl0IGdldEZvcm1SZW5kZXJlcigpLmxlZXJEYXRvcygpO1xyXG4gICAgICAgIGNvbnN0IGRhdG9zID0gYXdhaXQgc2luY3Jvbml6YXJEYXRvcyhwZXJzaXN0ZW50ZXMsIGNhbWJpYU1vZG9ETSk7XHJcbiAgICAgICAgbGV0IG1vZG9ETUFjdHVhbDogTW9kb0RNID0gZ2V0Rm9ybVJlbmRlcmVyKCkuZ2V0TW9kb0RNKCkgfHwgYXdhaXQgbXkuYWpheC5tb2RvX2RtX2RlZmVjdG9fb2J0ZW5lcih7fSk7XHJcbiAgICAgICAgaWYgKGNhbWJpYU1vZG9ETSkge1xyXG4gICAgICAgICAgICBjYW1iaWFyTW9kb0RNRW5Mb2NhbFN0b3JhZ2UobW9kb0RNQWN0dWFsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgbW9zdHJhckluZm9Mb2NhbChkaXZBdmlzb1NpbmNybywgJ2RhdG9zIHJlY2liaWRvcycsIGRhdG9zLm51bV9zaW5jcm8sIHRydWUpO1xyXG4gICAgICAgIChhd2FpdCBjcmVhclN0b3JlRm9ybXVsYXJpbyh7fSkpLmRpc3BhdGNoKGRpc3BhdGNoZXJzLlJFU0VUX09QQ0lPTkVTKHt9KSk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICBhbGVydFByb21pc2UodW5leHBlY3RlZChlcnIpLm1lc3NhZ2UpXHJcbiAgICAgICAgdGhyb3cgZXJyXHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIGJ1dHRvbi5jbGFzc05hbWUgPSAnZG93bmxvYWQtZG0tYnV0dG9uLWNvbnQnO1xyXG4gICAgfVxyXG59XHJcbm15T3duLndTY3JlZW5zLnNpbmNyb25pemFyX2RtID0gYXN5bmMgZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIG1haW5MYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbl9sYXlvdXQnKSE7XHJcbiAgICBjb25zdCBtb2RvRE0gPSBhd2FpdCBtb3N0cmFySW5mb01vZG8obWFpbkxheW91dCk7XHJcbiAgICB2YXIgcHJvY2VkZXJCdXR0b24gPSBodG1sLmJ1dHRvbih7IGNsYXNzOiAnZG93bmxvYWQtZG0tYnV0dG9uLWNvbnQnIH0sICdzaW5jcm9uaXphcicpLmNyZWF0ZSgpO1xyXG4gICAgcHJvY2VkZXJCdXR0b24uc2V0QXR0cmlidXRlKFwibW9kby1kbVwiLCBtb2RvRE0pO1xyXG4gICAgdmFyIGRpdkF2aXNvU2luY3JvOiBIVE1MRGl2RWxlbWVudCA9IGh0bWwuZGl2KCkuY3JlYXRlKCk7XHJcbiAgICBhd2FpdCBtb3N0cmFySW5mb0xvY2FsKG1haW5MYXlvdXQgYXMgSFRNTERpdkVsZW1lbnQsICdpbmZvcm1hY2nDs24gYSB0cmFuc21pdGlyJywgbnVsbCwgZmFsc2UpXHJcbiAgICBtYWluTGF5b3V0LmFwcGVuZENoaWxkKHByb2NlZGVyQnV0dG9uKTtcclxuICAgIG1haW5MYXlvdXQuYXBwZW5kQ2hpbGQoZGl2QXZpc29TaW5jcm8pO1xyXG4gICAgcHJvY2VkZXJCdXR0b24ub25jbGljayA9ICgpID0+IHByb2NlZGVyU2luY3JvRnVuKHByb2NlZGVyQnV0dG9uLCBkaXZBdmlzb1NpbmNybywgZmFsc2UpXHJcbn07XHJcblxyXG5teU93bi53U2NyZWVucy5jYW1iaWFyX21vZG9fZG0gPSBhc3luYyBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgbWFpbkxheW91dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluX2xheW91dCcpITtcclxuICAgIGNvbnN0IG1vZG9ETSA9IGF3YWl0IG1vc3RyYXJJbmZvTW9kbyhtYWluTGF5b3V0KTtcclxuICAgIHZhciBwcm9jZWRlckJ1dHRvbiA9IGh0bWwuYnV0dG9uKHsgY2xhc3M6ICdjYW1iaWFyLW1vZG8tZG0tYnV0dG9uJyB9LCBgY2FtYmlhciBhIG1vZG8gJHttb2RvRE0gPT0gJ3Byb2R1YycgPyAnY2FwYScgOiAncHJvZHVjJ30g4oeSYCkuY3JlYXRlKCk7XHJcbiAgICB2YXIgZGl2QXZpc29TaW5jcm86IEhUTUxEaXZFbGVtZW50ID0gaHRtbC5kaXYoKS5jcmVhdGUoKTtcclxuICAgIGF3YWl0IG1vc3RyYXJJbmZvTG9jYWwobWFpbkxheW91dCBhcyBIVE1MRGl2RWxlbWVudCwgYGluZm9ybWFjacOzbiBtb2RvIFwiJHttb2RvRE19XCIgYSB0cmFuc21pdGlyYCwgbnVsbCwgZmFsc2UpXHJcbiAgICBtYWluTGF5b3V0LmFwcGVuZENoaWxkKHByb2NlZGVyQnV0dG9uKTtcclxuICAgIG1haW5MYXlvdXQuYXBwZW5kQ2hpbGQoZGl2QXZpc29TaW5jcm8pO1xyXG4gICAgcHJvY2VkZXJCdXR0b24ub25jbGljayA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICB2YXIgbWFpbkRpdiA9IGh0bWwuZGl2KCkuY3JlYXRlKClcclxuICAgICAgICBtYWluRGl2LmFwcGVuZENoaWxkKFxyXG4gICAgICAgICAgICBodG1sLmRpdih7fSwgW1xyXG4gICAgICAgICAgICAgICAgaHRtbC5kaXYoe30sIFtgQ29uZmlybWEgY2FtYmlvIGRlIG1vZG8gXCIke21vZG9ETX1cIiBhICR7bW9kb0RNID09ICdwcm9kdWMnID8gJ1wiY2FwYVwiJyA6ICdcInByb2R1Y1wiJ30uYF0pXHJcbiAgICAgICAgICAgIF0pLmNyZWF0ZSgpXHJcbiAgICAgICAgKTtcclxuICAgICAgICB2YXIgaW5wdXRDYW1iaWFyTW9kbyA9IGh0bWwuaW5wdXQoeyBjbGFzczogJ2lucHV0LWNhbWJpYXItbW9kbycgfSkuY3JlYXRlKCk7XHJcbiAgICAgICAgbWFpbkRpdi5hcHBlbmRDaGlsZChodG1sLmRpdihbXHJcbiAgICAgICAgICAgIGh0bWwuZGl2KFsnUG9yIGZhdm9yIGluZ3Jlc2UgbGEgY29udHJhc2XDsWEgJywgaW5wdXRDYW1iaWFyTW9kb10pXHJcbiAgICAgICAgXSkuY3JlYXRlKCkpO1xyXG4gICAgICAgIHZhciBjYW1iaWFyTW9kb1ZhbHVlID0gYXdhaXQgY29uZmlybVByb21pc2UobWFpbkRpdiwge1xyXG4gICAgICAgICAgICB3aXRoQ2xvc2VCdXR0b246IGZhbHNlLFxyXG4gICAgICAgICAgICByZWplY3Q6IGZhbHNlLFxyXG4gICAgICAgICAgICBidXR0b25zRGVmOiBbXHJcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiBgY2FtYmlhcmAsIHZhbHVlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiBgY2FuY2VsYXJgLCB2YWx1ZTogZmFsc2UgfVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGNhbWJpYXJNb2RvVmFsdWUpIHtcclxuICAgICAgICAgICAgaWYgKGlucHV0Q2FtYmlhck1vZG8udmFsdWUgPT0gJzEyMzQnKSB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2NlZGVyQnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBwcm9jZWRlclNpbmNyb0Z1bihwcm9jZWRlckJ1dHRvbiwgZGl2QXZpc29TaW5jcm8sIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIG1haW5MYXlvdXQuaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFpbkxheW91dC5hcHBlbmRDaGlsZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYoYE1PRE8gJHtnZXRGb3JtUmVuZGVyZXIoKS5nZXRNb2RvRE0oKX0gQUNUSVZBRE9gKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0UHJvbWlzZSh1bmV4cGVjdGVkKGVycikubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2NlZGVyQnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgYWxlcnRQcm9taXNlKCdjb250cmFzZcOxYSBpbmNvcnJlY3RhLicpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn07XHJcblxyXG4vKiBGSU4gc2luY3Jvbml6YXIgeSBjYW1iaW8gZGUgbW9kbyBMRUdBQ1kgKi9cclxuIl19
|
|
703
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUFBLDJDQUFrQztJQUNsQywyQ0FBa0Q7SUFDbEQsbUVBQWlGO0lBUWpGLGtDQUFrQztJQUNsQyxtRUFBd0U7SUFDeEUseURBQXlFO0lBQ3pFLDZEQUE0RDtJQUM1RCxxRUFBMEU7SUFHMUUsa0JBQWtCO0lBRWxCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztJQUM3QixJQUFJLGlCQUFpQixHQUFrQixJQUFJLENBQUM7SUFFckMsTUFBTSxlQUFlLEdBQUcsQ0FBTyxNQUFnQyxFQUF1QixFQUFFLGtEQUMzRixPQUFBLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQSxHQUFBLENBQUM7SUFEdkUsUUFBQSxlQUFlLG1CQUN3RDtJQUdwRixLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQVMsRUFBRTtRQUNyQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDZixJQUFJLENBQUM7WUFDRCxpQkFBaUIsR0FBRyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ1gsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFBLDRDQUE4QixFQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELEtBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHO1lBQzVCLFVBQVUsRUFBRTtnQkFDUixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUs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IjpbImltcG9ydCB7IGh0bWwgfSBmcm9tIFwianMtdG8taHRtbFwiO1xyXG5pbXBvcnQgeyBleHBlY3RlZCwgdW5leHBlY3RlZCB9IGZyb20gXCJjYXN0LWVycm9yXCI7XHJcbmltcG9ydCB7IGRpc3BhdGNoZXJzLCBjcmVhclN0b3JlRm9ybXVsYXJpbyB9IGZyb20gXCIuLi91bmxvZ2dlZC9yZWR1eC1mb3JtdWxhcmlvXCI7XHJcbmltcG9ydCB7XHJcbiAgICBDYXNvU3RhdGUsXHJcbiAgICBJZEZvcm11bGFyaW8sIERhdG9zQnlQYXNzUGVyc2lzdGlibGVzLCBJZEVuYywgSWRPcGVyYXRpdm8sIElkVGFyZWEsIEVzdGFkb0FjY2lvbiwgRGlyZWNjaW9uQWNjaW9uLFxyXG4gICAgQ2FtcG9Qa1JhaXosIE1vZG9ETSxcclxuICAgIEVzdHJ1Y3R1cmEsXHJcbiAgICBGb3JQa1JhaXpcclxufSBmcm9tIFwiLi4vdW5sb2dnZWQvdGlwb3NcIjtcclxuaW1wb3J0ICogYXMgbGlrZUFyIGZyb20gXCJsaWtlLWFyXCI7XHJcbmltcG9ydCB7IEJBQ0tVUFMsIGNhcmdhckVzdHJ1Y3R1cmEgfSBmcm9tIFwiLi4vdW5sb2dnZWQvYWJyaXItZm9ybXVsYXJpb1wiXHJcbmltcG9ydCB7IGNyZWF0ZUxvY2FsU3RvcmFnZUZvcm1SZW5kZXJlciB9IGZyb20gXCIuLi91bmxvZ2dlZC9yZW5kZXItaW5pdFwiO1xyXG5pbXBvcnQgeyBnZXRGb3JtUmVuZGVyZXIgfSBmcm9tIFwiLi4vdW5sb2dnZWQvcmVuZGVyLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBkZXNwbGVnYXJGb3JtdWxhcmlvQWN0dWFsIH0gZnJvbSAnLi4vdW5sb2dnZWQvcmVuZGVyLWZvcm11bGFyaW8nO1xyXG5pbXBvcnQgeyBoYXlEYXRvc0J5UGFzc0FsbWFjZW5hZG9zIH0gZnJvbSBcIi4uL3VubG9nZ2VkL2J5cGFzcy1mb3JtdWxhcmlvXCI7XHJcblxyXG4vL1RPRE8gR0VORVJBTElaQVJcclxuXHJcbmNvbnN0IFRBUkVBX0RFRkFVTFQgPSAnZW5jdSc7XHJcbnZhciBPUEVSQVRJVk9fREVGQVVMVDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG5leHBvcnQgY29uc3QgdHJhZXJFc3RydWN0dXJhID0gYXN5bmMgKHBhcmFtczoge29wZXJhdGl2bzpJZE9wZXJhdGl2byB9KTogUHJvbWlzZTxFc3RydWN0dXJhPiA9PlxyXG4gICAgYXdhaXQgbXlPd24uYWpheC5vcGVyYXRpdm9fZXN0cnVjdHVyYV9jb21wbGV0YSh7IG9wZXJhdGl2bzogcGFyYW1zLm9wZXJhdGl2byB9KTtcclxuXHJcblxyXG5teU93bi5hdXRvU2V0dXBGdW5jdGlvbnMucHVzaChhc3luYyAoKSA9PiB7XHJcbiAgICB2YXIgbXkgPSBteU93bjtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgT1BFUkFUSVZPX0RFRkFVTFQgPSBhd2FpdCBteS5hamF4Lm9wZXJhdGl2b19nZXQoe30pO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgT1BFUkFUSVZPX0RFRkFVTFQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZm9ybVJlbmRlcmVyID0gY3JlYXRlTG9jYWxTdG9yYWdlRm9ybVJlbmRlcmVyKHt9KTtcclxuICAgIG15T3duLndTY3JlZW5zLmFicmlyX2VuY3Vlc3RhID0ge1xyXG4gICAgICAgIHBhcmFtZXRlcnM6IFtcclxuICAgICAgICAgICAgeyBuYW1lOiAnb3BlcmF0aXZvJywgdHlwZU5hbWU6ICd0ZXh0JywgZGVmYXVsdFZhbHVlOiBPUEVSQVRJVk9fREVGQVVMVCwgcmVmZXJlbmNlczogJ29wZXJhdGl2b3MnIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ3RhcmVhJywgdHlwZU5hbWU6ICd0ZXh0JywgZGVmYXVsdFZhbHVlOiBUQVJFQV9ERUZBVUxULCByZWZlcmVuY2VzOiAndGFyZWFzJyB9LFxyXG4gICAgICAgICAgICB7IG5hbWU6ICdlbmMnLCB0eXBlTmFtZTogJ2ludGVnZXInLCBkZWZhdWx0VmFsdWU6IDEzMDAzMSB9XHJcbiAgICAgICAgXSxcclxuICAgICAgICBhdXRvcHJvY2VkOiB0cnVlLFxyXG4gICAgICAgIG1haW5BY3Rpb246IGFzeW5jIChwYXJhbXMpID0+IHtcclxuICAgICAgICAgICAgLy8gYW50ZXM6IGFicmlyRGlyZWN0b1xyXG4gICAgICAgICAgICB2YXIgeyBvcGVyYXRpdm8sIGVuYywgdGFyZWEgfSA9IHBhcmFtcztcclxuICAgICAgICAgICAgZm9ybVJlbmRlcmVyLnVwZGF0ZUNvbmZpZyh7XHJcbiAgICAgICAgICAgICAgICBsZWVyRGF0b3M6IGFzeW5jIGZ1bmN0aW9uIGxlZXJEYXRvc0VuQmFzZURlRGF0b3MoKTogUHJvbWlzZTxEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcz4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBteS5hamF4LmRtX2ZvcnBrcmFpel9jYXJnYXIoeyBvcGVyYXRpdm8sIHBrX3JhaXpfdmFsdWU6IGVuYywgdGFyZWEgfSkgYXMgRGF0b3NCeVBhc3NQZXJzaXN0aWJsZXM7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgcGVyc2lzdGlyRGF0b3M6IGFzeW5jIGZ1bmN0aW9uIHBlcnNpc3RpckRhdG9zRW5CYXNlRGVEYXRvcyhwZXJzaXN0ZW50ZXM6IERhdG9zQnlQYXNzUGVyc2lzdGlibGVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBlcnNpc3RlbnRlcy5zb2xvTGVjdHVyYSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFc3TDoSBpbnRlbnRhbmRvIG1vZGlmaWNhciB1bmEgZW5jdWVzdGEgYWJpZXJ0YSBjb21vIHNvbG8gbGVjdHVyYSwgbm8gc2UgZ3VhcmRhcm9uIGxvcyBjYW1iaW9zXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IG15LmFqYXguZG1fZm9ycGtyYWl6X2Rlc2Nhcmdhcih7IG9wZXJhdGl2bywgcGVyc2lzdGVudGVzIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdmFyIGVzdHJ1Y3R1cmEgPSBhd2FpdCBmb3JtUmVuZGVyZXIubGVlckVzdHJ1Y3R1cmEoKTtcclxuICAgICAgICAgICAgdmFyIGNhcmdhID0gYXdhaXQgZm9ybVJlbmRlcmVyLmxlZXJEYXRvcygpO1xyXG4gICAgICAgICAgICBpZiAoIWVzdHJ1Y3R1cmEgfHwgKGVzdHJ1Y3R1cmEudGltZXN0YW1wID8/IDApIDwgY2FyZ2E/LnRpbWVzdGFtcEVzdHJ1Y3R1cmEhIHx8IGVzdHJ1Y3R1cmEub3BlcmF0aXZvICE9IG9wZXJhdGl2byB8fCBteS5jb25maWcuY29uZmlnLmRldmVsKSB7XHJcbiAgICAgICAgICAgICAgICBlc3RydWN0dXJhID0gYXdhaXQgdHJhZXJFc3RydWN0dXJhKHsgb3BlcmF0aXZvIH0pXHJcbiAgICAgICAgICAgICAgICBhd2FpdCBmb3JtUmVuZGVyZXIucGVyc2lzdGlyRXN0cnVjdHVyYShlc3RydWN0dXJhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgLy92YXIgc3RhdGU6IENhc29TdGF0ZSA9IHt9XHJcbiAgICAgICAgICAgIC8vaW5pY2lhbGl6YXJTdGF0ZShzdGF0ZSk7XHJcbiAgICAgICAgICAgIHZhciBmb3JQa1JhaXogPSB7IGZvcm11bGFyaW86IGNhcmdhLmluZm9ybWFjaW9uSGRyW2VuYyBhcyBJZEVuY10udGFyZWEubWFpbl9mb3JtLCBbZXN0cnVjdHVyYS5wa0FncmVnYWRhVWFQcGFsXTogZW5jIH07XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNhcmdhPy5yZXNwdWVzdGFzW2VzdHJ1Y3R1cmEudWFQcGFsXVtmb3JQa1JhaXpbZXN0cnVjdHVyYS5wa0FncmVnYWRhVWFQcGFsIGFzIENhbXBvUGtSYWl6XV0pIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc2UgZW5jdWVudHJhIGVsL2xhICR7ZXN0cnVjdHVyYS5wa0FncmVnYWRhVWFQcGFsfSAke2ZvclBrUmFpeltlc3RydWN0dXJhLnBrQWdyZWdhZGFVYVBwYWxdfWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRlc3BsZWdhckZvcm11bGFyaW9BY3R1YWwoZm9ybVJlbmRlcmVyLCB7IGZvclBrUmFpejpmb3JQa1JhaXogYXMgRm9yUGtSYWl6IH0pO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICBteU93bi53U2NyZWVucy5jb25zaXN0aXJfZW5jdWVzdGEgPSB7XHJcbiAgICAgICAgcGFyYW1ldGVyczogW1xyXG4gICAgICAgICAgICB7IG5hbWU6ICdvcGVyYXRpdm8nLCB0eXBlTmFtZTogJ3RleHQnLCBkZWZhdWx0VmFsdWU6IE9QRVJBVElWT19ERUZBVUxULCByZWZlcmVuY2VzOiAnb3BlcmF0aXZvcycgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAndGFyZWEnLCB0eXBlTmFtZTogJ3RleHQnIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ2VuYycsIHR5cGVOYW1lOiAnaW50ZWdlcicgfVxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgYXV0b3Byb2NlZDogdHJ1ZSxcclxuICAgICAgICBtYWluQWN0aW9uOiBhc3luYyAocGFyYW1zKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh3aW5kb3cub3BlbmVyKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgbWFpblRvcEJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluLXRvcC1iYXInKTtcclxuICAgICAgICAgICAgICAgIGlmIChtYWluVG9wQmFyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFpblRvcEJhci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciB7IG9wZXJhdGl2bywgdGFyZWEsIGVuYyB9ID0gcGFyYW1zO1xyXG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gYXdhaXQgbXlPd24uYWpheC5jb25zaXN0aXJfZW5jdWVzdGEoe1xyXG4gICAgICAgICAgICAgICAgb3BlcmF0aXZvOiBvcGVyYXRpdm8sXHJcbiAgICAgICAgICAgICAgICBpZF9jYXNvOiBlbmNcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQub2spIHtcclxuICAgICAgICAgICAgICAgIHZhciBmaXhlZEZpZWxkcyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgZml4ZWRGaWVsZHMucHVzaCh7IGZpZWxkTmFtZTogJ29wZXJhdGl2bycsIHZhbHVlOiBvcGVyYXRpdm8gfSk7XHJcbiAgICAgICAgICAgICAgICBmaXhlZEZpZWxkcy5wdXNoKHsgZmllbGROYW1lOiAndml2aWVuZGEnLCB2YWx1ZTogZW5jIH0pO1xyXG4gICAgICAgICAgICAgICAgdmFyIG1haW5MYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbl9sYXlvdXQnKSE7XHJcbiAgICAgICAgICAgICAgICB2YXIgZGl2R3JpbGxhID0gaHRtbC5kaXYoeyBpZDogJ2luY29uc2lzdGVuY2lhcycgfSkuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgICAgICBtYWluTGF5b3V0Lmluc2VydEJlZm9yZShkaXZHcmlsbGEsIG1haW5MYXlvdXQuZmlyc3RDaGlsZCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgZGl2Qm90b25lcyA9IGh0bWwuZGl2KHsgaWQ6ICdib3RvbmVzLXBvc3QtY29uc2lzdGlyJyB9LCBbXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXJCb3RvbkNlcnJhckVuY3Vlc3RhKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBgY2VycmFyIGVuY3Vlc3RhYFxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXJCb3RvblZlckFicmlyRW5jdWVzdGEoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGl2byxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZWEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuYyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYHZvbHZlciBhIGVuY3Vlc3RhICR7ZW5jfWBcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICBdKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICAgICAgbWFpbkxheW91dC5pbnNlcnRCZWZvcmUoZGl2Qm90b25lcywgbWFpbkxheW91dC5maXJzdENoaWxkKTtcclxuICAgICAgICAgICAgICAgIG15LnRhYmxlR3JpZChcImluY29uc2lzdGVuY2lhc19jdW1wbGVuX2NvbmRpY2lvblwiLCBkaXZHcmlsbGEsIHsgdGFibGVEZWY6IHt9LCBmaXhlZEZpZWxkczogZml4ZWRGaWVsZHMgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59KTtcclxuXHJcblxyXG4vL3F1aXRhIGJvb3RzdHJhcCBkZWwgaGVhZCBwYXJhIHF1ZSBubyByb21wYSBsb3MgZXN0aWxvcyBkZSBCRVBsdXMgKHNvbG8gc2UgdXNhIGJvb3RzdHJhcCBlbiBlbCBmb3JtKVxyXG52YXIgbGlua05vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbaHJlZj1cImNzcy9ib290c3RyYXAubWluLmNzc1wiXScpO1xyXG5saW5rTm9kZVswXT8ucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQobGlua05vZGVbMF0pO1xyXG5cclxuZnVuY3Rpb24gY29uc2lzdGlyX2ZpbHRybyh0YXJlYTogc3RyaW5nLCByZWFfdGVtOiBudW1iZXIgfCBudWxsLCByZWE6IG51bWJlciB8IG51bGwpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIHJldHVybiB0YXJlYSA/IHJlYV90ZW0gOiByZWE7XHJcbn07XHJcblxyXG52YXIgdGFyZWFzOiBhbnkgPSBudWxsO1xyXG5cclxuZnVuY3Rpb24gaHRtbE51bWVybyhudW06IG51bWJlcikge1xyXG4gICAgcmV0dXJuIGh0bWwuc3Bhbih7IGNsYXNzOiAnbnVtZXJvJyB9LCAnJyArIChudW0gPz8gJycpKVxyXG59XHJcblxyXG52YXIgY3JlYXJCb3RvbkNlcnJhckVuY3Vlc3RhID0gKGxhYmVsOiBzdHJpbmcpID0+IHtcclxuICAgIGxldCBwYXRoID0gXCJNMyAzdjE4aDE4VjNIM3ptMTQgMTIuNTlMMTUuNTkgMTcgMTIgMTMuNDEgOC40MSAxNyA3IDE1LjU5IDEwLjU5IDEyIDcgOC40MSA4LjQxIDcgMTIgMTAuNTkgMTUuNTkgNyAxNyA4LjQxIDEzLjQxIDEyIDE3IDE1LjU5elwiO1xyXG4gICAgdmFyIHN2ZyA9IGh0bWwuc3ZnKHsgY2xhc3M6IFwic3ZnLWNlcnJhci1lbmN1ZXN0YVwiIH0sIFtcclxuICAgICAgICBodG1sLnBhdGgoe1xyXG4gICAgICAgICAgICBkOiBwYXRoXHJcbiAgICAgICAgfSlcclxuICAgIF0pLmNyZWF0ZSgpO1xyXG4gICAgc3ZnLnNldEF0dHJpYnV0ZShcInZpZXdCb3hcIiwgXCIwIDAgMjYgMjZcIik7XHJcbiAgICAvL0B0cy1pZ25vcmUgc3ZnIHB1ZWRlIHNlciBoaWpvIGRlIHVuIGJvdG9uXHJcbiAgICBsZXQgdmVyID0gaHRtbC5idXR0b24oeyBpZDogJ2JvdG9uLWNlcnJhci1lbmN1ZXN0YScgfSwgW3N2ZywgbGFiZWxdKS5jcmVhdGUoKTtcclxuICAgIHZlci5vbmNsaWNrID0gKCkgPT4gY2xvc2UoKTtcclxuICAgIHJldHVybiB2ZXJcclxufVxyXG5cclxuY29uc3QgYWJyaXJFbmN1ZXN0YUVuUGVzdGFubmlhRGVkaWNhZGEgPSAodXJsOiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IEFCUklSX1RBQiA9IFwiX2FicmlyXCI7XHJcbiAgICB3aW5kb3cub3Blbih1cmwsIEFCUklSX1RBQik7XHJcbn1cclxuXHJcbnZhciBjcmVhckJvdG9uVmVyQWJyaXJFbmN1ZXN0YSA9IChvcGVyYXRpdm86IElkT3BlcmF0aXZvLCB0YXJlYTogSWRUYXJlYSwgZW5jdWVzdGE6IG51bWJlciwgbGFiZWw6IHN0cmluZykgPT4ge1xyXG4gICAgdmFyIHVwID0ge1xyXG4gICAgICAgIG9wZXJhdGl2bzogb3BlcmF0aXZvLFxyXG4gICAgICAgIHRhcmVhOiB0YXJlYSxcclxuICAgICAgICBlbmM6IGVuY3Vlc3RhXHJcbiAgICB9XHJcbiAgICBsZXQgdmVyID0gaHRtbC5idXR0b24oeyBpZDogJ2JvdG9uLXZvbHZlci1hLWVuY3Vlc3RhJyB9LCBsYWJlbCkuY3JlYXRlKCk7XHJcbiAgICB2ZXIub25jbGljayA9ICgpID0+IGFicmlyRW5jdWVzdGFFblBlc3Rhbm5pYURlZGljYWRhKGxvY2F0aW9uLm9yaWdpbiArIGxvY2F0aW9uLnBhdGhuYW1lICsgbXkubWVudVNlcGFyYXRvciArIGB3PWFicmlyX2VuY3Vlc3RhJnVwPSR7SlNPTi5zdHJpbmdpZnkodXApfSZhdXRvcHJvY2VkPXRydWVgKVxyXG4gICAgcmV0dXJuIHZlclxyXG59XHJcblxyXG52YXIgY3JlYXJCb3RvbmVzVmVyQWJyaXJUYXJlYXMgPSBhc3luYyAoZGVwb3Q6IG15T3duLkRlcG90LCBmaWVsZE5hbWU6IHN0cmluZywgbGFiZWw6ICdhYnJpcicgfCAndmVyJykgPT4ge1xyXG4gICAgdGFyZWFzID0gdGFyZWFzID8gdGFyZWFzIDogKGF3YWl0IG15T3duLmFqYXgudGFibGVfZGF0YSh7IHRhYmxlOiBgdGFyZWFzYCwgZml4ZWRGaWVsZHM6IFtdIH0pKTtcclxuICAgIHZhciBtaXNUYXJlYXMgPSB0YXJlYXMuZmlsdGVyKCh0YXJlYTphbnkpID0+XHJcbiAgICAgICAgLy9AdHMtaWdub3JlIGRlZiBleGlzdGUgZW4gbWFuYWdlciB5IG11ZXN0cmFBYnJpckVuVG9kYXNMYXNUYXJlYXMgdGFtYmllbiAoZW4gZXNhIGdyaWxsYSlcclxuICAgICAgICAhIXRhcmVhLm1haW5fZm9ybSAmJiB0YXJlYS5vcGVyYXRpdm8gPT0gZGVwb3Qucm93Lm9wZXJhdGl2byAmJiAoZGVwb3QubWFuYWdlci5kZWYubXVlc3RyYUFicmlyRW5Ub2Rhc0xhc1RhcmVhcyA/IHRydWUgOiBkZXBvdC5yb3cudGFyZWEgPT0gdGFyZWEudGFyZWEpXHJcbiAgICApO1xyXG4gICAgZGVwb3Qucm93Q29udHJvbHNbZmllbGROYW1lXS5pbm5lckhUTUwgPSAnJztcclxuICAgIG1pc1RhcmVhcy5mb3JFYWNoKCh0YXJlYTogeyB0YXJlYTogc3RyaW5nLCBub21icmU6IHN0cmluZywgbWFpbl9mb3JtOiBJZEZvcm11bGFyaW8gfSkgPT4ge1xyXG4gICAgICAgIGxldCBidXR0b25MYWJlbCA9IGAke2xhYmVsfSAke3RhcmVhLnRhcmVhfWA7XHJcbiAgICAgICAgbGV0IHZlciA9IGNyZWFyQm90b25WZXJBYnJpckVuY3Vlc3RhKFxyXG4gICAgICAgICAgICBkZXBvdC5yb3cub3BlcmF0aXZvIGFzIElkT3BlcmF0aXZvLFxyXG4gICAgICAgICAgICB0YXJlYS50YXJlYSBhcyBJZFRhcmVhLFxyXG4gICAgICAgICAgICBOdW1iZXIoZGVwb3Qucm93LmVuYyksXHJcbiAgICAgICAgICAgIGJ1dHRvbkxhYmVsXHJcbiAgICAgICAgKTtcclxuICAgICAgICB2ZXIuc3R5bGUgPSAnbWFyZ2luOjBweCAycHg7JztcclxuICAgICAgICBkZXBvdC5yb3dDb250cm9sc1tmaWVsZE5hbWVdLmFwcGVuZENoaWxkKHZlcik7XHJcbiAgICB9KVxyXG59XHJcblxyXG52YXIgZ2V0QWJyaXJPdmVyID0gKF9kZXBvdDogbXlPd24uRGVwb3QsIF9maWVsZE5hbWU6IHN0cmluZyk6ICdhYnJpcicgPT4gJ2FicmlyJ1xyXG4vL1xyXG4vKihkZXBvdC5yb3cuY2FyZ2Fkb19kbSB8fCAhZGVwb3Qucm93Wydlc3RhZG9zX19wZXJtaXRlX2VkaXRhcl9lbmN1ZXN0YSddICYmIGRlcG90LnJvdy5hc2lnbmFkbyAhPSBteS5jb25maWcuaWRwZXIpP1xyXG4gICAgJ3Zlcic6J2FicmlyJ1xyXG4qL1xyXG5cclxuXHJcbm15T3duLmNsaWVudFNpZGVzLmFicmlyID0ge1xyXG4gICAgcHJlcGFyZTogKF9kZXBvdCwgX2ZpZWxkTmFtZSkgPT4geyB9LFxyXG4gICAgdXBkYXRlOiAoZGVwb3QsIGZpZWxkTmFtZSkgPT4ge1xyXG4gICAgICAgIHZhciBsYWJlbDogJ3ZlcicgfCAnYWJyaXInID0gZ2V0QWJyaXJPdmVyKGRlcG90LCBmaWVsZE5hbWUpO1xyXG4gICAgICAgIGNyZWFyQm90b25lc1ZlckFicmlyVGFyZWFzKGRlcG90LCBmaWVsZE5hbWUsIGxhYmVsKTsgLy9ubyBlc3Blcm8gcHJvbWVzYSBwb3JxdWUgbm8gZXMgbmVjZXNhcmlvXHJcbiAgICB9XHJcbn07XHJcblxyXG5teU93bi5jbGllbnRTaWRlcy5hYnJpclJlY2VwY2lvbiA9IHtcclxuICAgIHByZXBhcmU6IChfZGVwb3QsIF9maWVsZE5hbWUpID0+IHsgfSxcclxuICAgIHVwZGF0ZTogKGRlcG90LCBmaWVsZE5hbWUpID0+IHtcclxuICAgICAgICB2YXIgbGFiZWw6ICd2ZXInIHwgJ2FicmlyJyA9IGdldEFicmlyT3ZlcihkZXBvdCwgZmllbGROYW1lKTtcclxuICAgICAgICBjcmVhckJvdG9uZXNWZXJBYnJpclRhcmVhcyhkZXBvdCwgZmllbGROYW1lLCBsYWJlbCk7IC8vbm8gZXNwZXJvIHByb21lc2EgcG9ycXVlIG5vIGVzIG5lY2VzYXJpb1xyXG4gICAgfVxyXG59O1xyXG5cclxubXlPd24uY2xpZW50U2lkZXMudmVySWNvbm9TdmcgPSB7XHJcbiAgICBwcmVwYXJlOiAoX2RlcG90LCBfZmllbGROYW1lKSA9PiB7IH0sXHJcbiAgICB1cGRhdGU6IChkZXBvdCwgZmllbGROYW1lKSA9PiB7XHJcbiAgICAgICAgbGV0IHRkID0gZGVwb3Qucm93Q29udHJvbHNbZmllbGROYW1lXTtcclxuICAgICAgICB0ZC5pbm5lckhUTUwgPSAnJztcclxuICAgICAgICBpZiAoZGVwb3Qucm93LnBhdGhfaWNvbm9fc3ZnKSB7XHJcbiAgICAgICAgICAgIHZhciBzdmcgPSBodG1sLnN2Zyh7XHJcbiAgICAgICAgICAgICAgICBjbGFzczogXCJzdmctYWNjaW9uZXNcIlxyXG4gICAgICAgICAgICB9LCBbXHJcbiAgICAgICAgICAgICAgICBodG1sLnBhdGgoe1xyXG4gICAgICAgICAgICAgICAgICAgIGQ6IGRlcG90LnJvdy5wYXRoX2ljb25vX3N2Z1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgXSkuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoXCJ2aWV3Qm94XCIsIFwiMCAwIDUwIDUwXCIpO1xyXG4gICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChzdmcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuXHJcbnZhciBjcmVhclNWRyA9IChwYXRoOiBzdHJpbmcsIHByb3BzOiBhbnkpID0+IHtcclxuICAgIHZhciBzdmcgPSBodG1sLnN2Zyhwcm9wcyB8fCB7fSwgW1xyXG4gICAgICAgIGh0bWwucGF0aCh7XHJcbiAgICAgICAgICAgIGQ6IHBhdGhcclxuICAgICAgICB9KVxyXG4gICAgXSkuY3JlYXRlKCk7XHJcbiAgICBzdmcuc2V0QXR0cmlidXRlKFwidmlld0JveFwiLCBcIjAgMCA1MCA1MFwiKTtcclxuICAgIHJldHVybiBzdmdcclxufVxyXG52YXIgY3JlYXJCb3RvbkFjY2lvbiA9IChkZXBvdDogbXlPd24uRGVwb3QsIGFjdGlvbjogRXN0YWRvQWNjaW9uKSA9PiB7XHJcbiAgICBsZXQgYWNjaW9uU2luR3Vpb25lcyA9IGFjdGlvbi5lYWNjaW9uLnJlcGxhY2UoJ18nLCAnICcpO1xyXG4gICAgdmFyIHN2ZyA9IGNyZWFyU1ZHKGFjdGlvbi5wYXRoX2ljb25vX3N2ZywgeyBjbGFzczogXCJzdmctYWNjaW9uZXNcIiB9KVxyXG4gICAgaWYgKGFjdGlvbi5kZXNhY3RpdmFfYm90b24pIHtcclxuICAgICAgICByZXR1cm4gaHRtbC5zcGFuKHsgY2xhc3M6IGBzaW4tYm90b24tYWNjaW9uYCB9LCBbYWNjaW9uU2luR3Vpb25lcywgc3ZnIGFzIHVua25vd24gYXMgSFRNTEVsZW1lbnRdKS5jcmVhdGUoKVxyXG4gICAgfVxyXG4gICAgbGV0IGJ1dHRvbiA9IGh0bWwuYnV0dG9uKHtcclxuICAgICAgICBjbGFzczogYGJvdG9uLWFjY2lvbiBib3Rvbi1hY2Npb24tJHthY3Rpb24uZWFjY2lvbl9kaXJlY2Npb259YFxyXG4gICAgfSwgW1xyXG4gICAgICAgIGAke2FjY2lvblNpbkd1aW9uZXN9YCxcclxuICAgICAgICAvL0B0cy1pZ25vcmUgc3ZnIGVzIGh0bWxlbGVtZW50XHJcbiAgICAgICAgYWN0aW9uLnBhdGhfaWNvbm9fc3ZnID8gc3ZnIDogbnVsbCxcclxuICAgIF0pLmNyZWF0ZSgpO1xyXG4gICAgYnV0dG9uLm9uY2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgdmFyIGFjdGlvbkZ1biA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgYnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IG15LmFqYXguYWNjaW9uX3RhcmVhc190ZW1fZWplY3V0YXIoe1xyXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdGl2bzogZGVwb3Qucm93Lm9wZXJhdGl2byxcclxuICAgICAgICAgICAgICAgICAgICB0YXJlYTogZGVwb3Qucm93LnRhcmVhLFxyXG4gICAgICAgICAgICAgICAgICAgIGVuYzogZGVwb3Qucm93LmVuYyxcclxuICAgICAgICAgICAgICAgICAgICBjb25kaWNpb246IGFjdGlvbi5jb25kaWNpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgYWNjaW9uOiBhY3Rpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZWFzVGVtVGFibGU6IGRlcG90LmRlZi5uYW1lXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHZhciBncmlkID0gZGVwb3QubWFuYWdlcjtcclxuICAgICAgICAgICAgICAgIGdyaWQucmV0cmlldmVSb3dBbmRSZWZyZXNoKGRlcG90LCB7IHJldHJpZXZlV2l0aEJyb2FkV2hlcmU6IHRydWUgfSlcclxuICAgICAgICAgICAgICAgIGlmIChhY3Rpb24ubm9tYnJlX3dzY3JlZW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAvL1RPRE8gYWNvbW9kYXIgZXN0byBlbiBhbGd1biBtb21lbnRvXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmFtcyA9IGRlcG90LnJvdztcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdXAgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGl2bzogcGFyYW1zLm9wZXJhdGl2byxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZWE6IHBhcmFtcy50YXJlYSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW5jOiBOdW1iZXIocGFyYW1zLmVuYylcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYWJyaXJFbmN1ZXN0YUVuUGVzdGFubmlhRGVkaWNhZGEobG9jYXRpb24ub3JpZ2luICsgbG9jYXRpb24ucGF0aG5hbWUgKyBteS5tZW51U2VwYXJhdG9yICsgYHc9JHthY3Rpb24ubm9tYnJlX3dzY3JlZW59JnVwPSR7SlNPTi5zdHJpbmdpZnkodXApfSZhdXRvcHJvY2VkPXRydWVgKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgICAgIGFsZXJ0UHJvbWlzZSh1bmV4cGVjdGVkKGVycikubWVzc2FnZSlcclxuICAgICAgICAgICAgICAgIHRocm93IGVyclxyXG4gICAgICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgLy9yZXRyYXNvIGxhIGhhYmlsaXRhY2nDs24gcG9ycXVlIGEgdmVjZXMgdGFyZGEgZW4gcmVkaWJ1amFyc2UgbGEgYm90b25lcmEgeSBwdWVkZSB0cmFlciBwcm9ibGVtYXMgc2kgZGFuIGRvYmxlIGNsaWNrIFxyXG4gICAgICAgICAgICAgICAgLy95YSBxdWUgZWplY3V0YSBudWV2YW1lbnRlIHVuYSBhY2Npw7NuIHF1ZSB5YSBzZSBlamVjdXTDsyAoeSB0ZXJtaW7DsykgYW50ZXNcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gYnV0dG9uLmRpc2FibGVkID0gZmFsc2UsIDMwMDApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBjb25maXJtUHJvbWlzZU9wdHM6IERpYWxvZ09wdGlvbnMgPSB7fVxyXG4gICAgICAgIGlmIChhY3Rpb24uY29uZmlybWEpIHtcclxuICAgICAgICAgICAgY29uZmlybVByb21pc2VPcHRzLmFza0Zvck5vUmVwZWF0ID0gJ25vIHZvbHZlciBhIG1vc3RyYXInOyAvL211ZXN0cmEgbWVuc2FqZSBwb3IgZGVmYXVsdCBwZXJvIGFuZGEgaWd1YWxcclxuICAgICAgICAgICAgdmFyIGJ1dHRvbnNEZWYgPSBbXHJcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnc8OtJywgdmFsdWU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdubycsIHZhbHVlOiBmYWxzZSB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgY29uZmlybVByb21pc2UoYGNvbmZpcm1hIGFjY2nDs24gXCIke2FjY2lvblNpbkd1aW9uZXN9XCI/YCwgeyAuLi5jb25maXJtUHJvbWlzZU9wdHMsIGJ1dHRvbnNEZWYgfSkudGhlbihhY3Rpb25GdW4pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGFjdGlvbkZ1bigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBidXR0b25cclxufVxyXG5cclxudmFyIGNyZWFyQm90b25lc0FjY2lvbmVzID0gYXN5bmMgKG9wdHM6IHsgZGVwb3Q6IG15T3duLkRlcG90LCBmaWVsZE5hbWU6IHN0cmluZywgZGlyZWNjaW9uOiBEaXJlY2Npb25BY2Npb24gfSkgPT4ge1xyXG4gICAgbGV0IHsgZGVwb3QsIGZpZWxkTmFtZSwgZGlyZWNjaW9uIH0gPSBvcHRzO1xyXG4gICAgbGV0IHRkID0gZGVwb3Qucm93Q29udHJvbHNbZmllbGROYW1lXTtcclxuICAgIHRkLmlubmVySFRNTCA9ICcnO1xyXG4gICAgKGRlcG90LnJvd0NvbnRyb2xzLmFjY2lvbmVzLmdldFR5cGVkVmFsdWUoKSB8fCBbXSlcclxuICAgICAgICAuZmlsdGVyKChhY3Rpb246IEVzdGFkb0FjY2lvbikgPT4gYWN0aW9uLmVhY2Npb25fZGlyZWNjaW9uID09IGRpcmVjY2lvbilcclxuICAgICAgICAuZm9yRWFjaCgoYWN0aW9uOiBFc3RhZG9BY2Npb24pID0+IHRkLmFwcGVuZENoaWxkKGNyZWFyQm90b25BY2Npb24oZGVwb3QsIGFjdGlvbikpKTtcclxufVxyXG5cclxudmFyIGNyZWFyU3dpdGNoID0gKG9wdHM6IHsgcm91bmQ/OiBib29sZWFuLCBkaXNhYmxlZD86IGJvb2xlYW4sIGNoZWNrZWQ/OiBib29sZWFuLCBvbkNsaWNrRnVuOiBGdW5jdGlvbiwgb25FcnJGdW4/OiBGdW5jdGlvbiB9KSA9PiB7XHJcbiAgICB2YXIgY2hlY2tib3ggPSBodG1sLmlucHV0KHsgdHlwZTogJ2NoZWNrYm94JywgY2hlY2tlZDogb3B0cy5jaGVja2VkIH0pLmNyZWF0ZSgpO1xyXG4gICAgY2hlY2tib3gub25jbGljayA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjaGVja2JveC5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGF3YWl0IG9wdHMub25DbGlja0Z1bigpXHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIGFsZXJ0UHJvbWlzZSh1bmV4cGVjdGVkKGVycikubWVzc2FnZSlcclxuICAgICAgICAgICAgdGhyb3cgZXJyXHJcbiAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgY2hlY2tib3guZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaHRtbC5sYWJlbCh7IGNsYXNzOiAnc3dpdGNoJyB9LCBbXHJcbiAgICAgICAgY2hlY2tib3gsXHJcbiAgICAgICAgaHRtbC5zcGFuKHsgY2xhc3M6IGBzbGlkZXIgJHtvcHRzLnJvdW5kID8gJ3JvdW5kJyA6ICcnfWAgfSksXHJcbiAgICBdKS5jcmVhdGUoKTtcclxufVxyXG5cclxubXlPd24uY2xpZW50U2lkZXMuaGFiaWxpdGFyID0ge1xyXG4gICAgcHJlcGFyZTogKF9kZXBvdCwgX2ZpZWxkTmFtZSkgPT4geyB9LFxyXG4gICAgdXBkYXRlOiAoZGVwb3QsIGZpZWxkTmFtZSkgPT4ge1xyXG4gICAgICAgIHZhciB0ZCA9IGRlcG90LnJvd0NvbnRyb2xzW2ZpZWxkTmFtZV07XHJcbiAgICAgICAgdGQuaW5uZXJIVE1MID0gXCJcIjtcclxuICAgICAgICB0ZC5hcHBlbmRDaGlsZChcclxuICAgICAgICAgICAgY3JlYXJTd2l0Y2goe1xyXG4gICAgICAgICAgICAgICAgcm91bmQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBjaGVja2VkOiBkZXBvdC5yb3cuaGFiaWxpdGFkYSxcclxuICAgICAgICAgICAgICAgIG9uQ2xpY2tGdW46IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBteS5hamF4LmVuY3Vlc3RhX2hhYmlsaXRhcl9kZXNoYWJpbGl0YXIoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpdm86IGRlcG90LnJvdy5vcGVyYXRpdm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuYzogZGVwb3Qucm93LmVuY1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBncmlkID0gZGVwb3QubWFuYWdlcjtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGdyaWQucmV0cmlldmVSb3dBbmRSZWZyZXNoKGRlcG90KSwgMzAwKTsvL3BhcmEgcXVlIHNlIHZlYSBlbCBlZmVjdG9cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59O1xyXG5cclxubXlPd24uY2xpZW50U2lkZXMuYWNjaW9uZXNBdmFuY2UgPSB7XHJcbiAgICBwcmVwYXJlOiAoX2RlcG90LCBfZmllbGROYW1lKSA9PiB7IH0sXHJcbiAgICB1cGRhdGU6IChkZXBvdCwgZmllbGROYW1lKSA9PiB7XHJcbiAgICAgICAgY3JlYXJCb3RvbmVzQWNjaW9uZXMoeyBkZXBvdCwgZmllbGROYW1lLCBkaXJlY2Npb246ICdhdmFuY2UnIH0pO1xyXG4gICAgfVxyXG59O1xyXG5cclxubXlPd24uY2xpZW50U2lkZXMuYWNjaW9uZXNSZXRyb2Nlc28gPSB7XHJcbiAgICBwcmVwYXJlOiAoX2RlcG90LCBfZmllbGROYW1lKSA9PiB7IH0sXHJcbiAgICB1cGRhdGU6IChkZXBvdCwgZmllbGROYW1lKSA9PiB7XHJcbiAgICAgICAgY3JlYXJCb3RvbmVzQWNjaW9uZXMoeyBkZXBvdCwgZmllbGROYW1lLCBkaXJlY2Npb246ICdyZXRyb2Nlc28nIH0pO1xyXG4gICAgfVxyXG59O1xyXG5cclxubXlPd24uY2xpZW50U2lkZXMuYWNjaW9uZXNCbGFucXVlbyA9IHtcclxuICAgIHByZXBhcmU6IChfZGVwb3QsIF9maWVsZE5hbWUpID0+IHsgfSxcclxuICAgIHVwZGF0ZTogKGRlcG90LCBmaWVsZE5hbWUpID0+IHtcclxuICAgICAgICBjcmVhckJvdG9uZXNBY2Npb25lcyh7IGRlcG90LCBmaWVsZE5hbWUsIGRpcmVjY2lvbjogJ2JsYW5xdWVvJyB9KTtcclxuICAgIH1cclxufTtcclxuXHJcbmZ1bmN0aW9uXHJcbiAgICBib3RvbkNsaWVudFNpZGVFbkdyaWxsYShvcHRzOiB7IG5vbWJyZUJvdG9uOiBzdHJpbmcsIGxsYW1hZGE6IChkZXBvdDogbXlPd24uRGVwb3QpID0+IFByb21pc2U8YW55PiB9KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByZXBhcmU6IGZ1bmN0aW9uIChkZXBvdDogbXlPd24uRGVwb3QsIGZpZWxkTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHZhciB0ZCA9IGRlcG90LnJvd0NvbnRyb2xzW2ZpZWxkTmFtZV07XHJcbiAgICAgICAgICAgIHZhciBib3RvbiA9IGh0bWwuYnV0dG9uKG9wdHMubm9tYnJlQm90b24pLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSBcIlwiO1xyXG4gICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChib3Rvbik7XHJcbiAgICAgICAgICAgIHZhciByZXN0YXVyYXJCb3RvbiA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGJvdG9uLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBib3Rvbi50ZXh0Q29udGVudCA9IG9wdHMubm9tYnJlQm90b247XHJcbiAgICAgICAgICAgICAgICBib3Rvbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnJztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYm90b24ub25jbGljayA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGJvdG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJvdG9uLnRleHRDb250ZW50ID0gJ3Byb2Nlc2FuZG8uLi4nO1xyXG4gICAgICAgICAgICAgICAgb3B0cy5sbGFtYWRhKGRlcG90KS50aGVuKGFzeW5jIGZ1bmN0aW9uIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHR5cGVvZiByZXN1bHQgPT09ICdvYmplY3QnICYmICdvaycgaW4gcmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQub2spIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBncmlkID0gZGVwb3QubWFuYWdlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGdyaWQucmV0cmlldmVSb3dBbmRSZWZyZXNoKGRlcG90KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXBvdC5kZXRhaWxDb250cm9scy5pbmNvbnNpc3RlbmNpYXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBvdC5kZXRhaWxDb250cm9scy5pbmNvbnNpc3RlbmNpYXMuZm9yY2VEaXNwbGF5RGV0YWlsR3JpZCh7fSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3Rvbi50ZXh0Q29udGVudCA9IHJlc3VsdC5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90b24udGl0bGUgPSByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3Rvbi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIzhGOCc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQocmVzdGF1cmFyQm90b24sIDI1MDApO1xyXG4gICAgICAgICAgICAgICAgfSwgZnVuY3Rpb24gKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBlcnJvciA9IGV4cGVjdGVkKGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgYm90b24udGV4dENvbnRlbnQgPSAnZXJyb3InO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvdG9uLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcjRkY4JztcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBlbiBhY2Npw7NuIGRlIGdyaWxsYTonLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxlcnRQcm9taXNlKGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL2lmICgoZGVwb3Qucm93LmNvbnNpc3RpZG89PW51bGwgICYmIGRlcG90LnJvdy5yZWEhPW51bGwpIHx8IGRlcG90LnJvdy5tb2RpZmljYWRvIT1udWxsICYmIGRlcG90LnJvdy5jb25zaXN0aWRvIT1udWxsICYmIGRlcG90LnJvdy5tb2RpZmljYWRvID5kZXBvdC5yb3cuY29uc2lzdGlkbyl7XHJcbiAgICAgICAgICAgIC8vICAgIGJvdG9uLnN0eWxlLmJhY2tncm91bmRDb2xvcj0nIzhDRidcclxuICAgICAgICAgICAgLy99XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG5cclxuXHJcbm15T3duLmNsaWVudFNpZGVzLmNvbnNpc3RpciA9IGJvdG9uQ2xpZW50U2lkZUVuR3JpbGxhKHtcclxuICAgIG5vbWJyZUJvdG9uOiAnY29uc2lzdGlyJyxcclxuICAgIGxsYW1hZGE6IGZ1bmN0aW9uIChkZXBvdDogbXlPd24uRGVwb3QpIHtcclxuICAgICAgICAvL0B0cy1pZ25vcmUgZGVmIGV4aXN0ZSBlbiBtYW5hZ2VyXHJcbiAgICAgICAgdmFyIG15UmVhRmllbGROYW1lID0gZGVwb3QubWFuYWdlci5kZWYudGFibGVOYW1lID09IFwidGVtXCIgPyAncmVhJyA6ICd1bHRfcmVhJztcclxuICAgICAgICB2YXIgZmlsdHJvUmVhID0gY29uc2lzdGlyX2ZpbHRybyhkZXBvdC5yb3cudGFyZWEsIGRlcG90LnJvd1tteVJlYUZpZWxkTmFtZV0sIGRlcG90LnJvdy5yZWEpXHJcbiAgICAgICAgcmV0dXJuIGZpbHRyb1JlYSA/IG15T3duLmFqYXguY29uc2lzdGlyX2VuY3Vlc3RhKHtcclxuICAgICAgICAgICAgb3BlcmF0aXZvOiBkZXBvdC5yb3cub3BlcmF0aXZvLFxyXG4gICAgICAgICAgICBpZF9jYXNvOiBkZXBvdC5yb3cuZW5jXHJcbiAgICAgICAgfSkgOiBhbGVydFByb21pc2UoJ0xhIGVuY3Vlc3RhIGRlYmUgdGVuZXIgZGF0byBlbiByZWEgcGFyYSBwb2RlciBjb25zaXN0aXJsYS4nKTtcclxuICAgIH1cclxufSk7XHJcblxyXG5teU93bi53U2NyZWVucy5wcm9jLnJlc3VsdC5tb3N0cmFyX2VuY3Vlc3Rhc19hX2JsYW5xdWVhciA9IGZ1bmN0aW9uIChyZXN1bHQsIGRpdlJlc3VsdCkge1xyXG4gICAgaWYgKHJlc3VsdC5yb3dzLmxlbmd0aCkge1xyXG4gICAgICAgIHZhciBjdXJyZW50VG9rZW46IHN0cmluZyB8IG51bGwgPSBudWxsXHJcbiAgICAgICAgdmFyIG5yb0NhcmdhID0gMDtcclxuICAgICAgICB2YXIgZW5jdWVzdGFzRGl2OiBudWxsIHwgSFRNTERpdkVsZW1lbnQgPSBudWxsO1xyXG4gICAgICAgIGRpdlJlc3VsdC5hcHBlbmRDaGlsZChodG1sLmgyKCdvcGVyYXRpdm86ICcgKyByZXN1bHQub3BlcmF0aXZvKS5jcmVhdGUoKSk7XHJcbiAgICAgICAgcmVzdWx0LnJvd3MuZm9yRWFjaCgoZW5jdWVzdGE6YW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50VG9rZW4gIT0gZW5jdWVzdGEuY2FyZ2Fkb19kbSkge1xyXG4gICAgICAgICAgICAgICAgbnJvQ2FyZ2ErKztcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRUb2tlbiA9IGVuY3Vlc3RhLmNhcmdhZG9fZG07XHJcbiAgICAgICAgICAgICAgICBkaXZSZXN1bHQuYXBwZW5kQ2hpbGQoaHRtbC5oNCgnY2FyZ2EgTsK6ICcgKyBucm9DYXJnYS50b1N0cmluZygpKS5jcmVhdGUoKSk7XHJcbiAgICAgICAgICAgICAgICBlbmN1ZXN0YXNEaXYgPSBodG1sLmRpdih7IGNsYXNzOiAnZW5jdWVzdGFzLWEtYmxhbnF1ZWFyJyB9KS5jcmVhdGUoKTtcclxuICAgICAgICAgICAgICAgIC8vbGFzIGNvcGlvIGNvbiBsZXQgcGFyYSBxdWUgdG9tZSBlbCB2YWxvciBhY3R1YWwgeSBubyBlbCDDumx0aW1vXHJcbiAgICAgICAgICAgICAgICBsZXQgbWlUb2tlbiA9IGN1cnJlbnRUb2tlbjtcclxuICAgICAgICAgICAgICAgIGxldCBtaU5yb0NhcmdhID0gbnJvQ2FyZ2E7XHJcbiAgICAgICAgICAgICAgICB2YXIgYnV0dG9uID0gaHRtbC5idXR0b24oe1xyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzOiBgYm90b24tYmxhbnF1ZWFyLWRtIGJvdG9uLWFjY2lvbmBcclxuICAgICAgICAgICAgICAgIH0sICdibGFucXVlYXIgY2FyZ2EgJyArIG5yb0NhcmdhLnRvU3RyaW5nKCkpLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgYnV0dG9uLm9uY2xpY2sgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIG1haW5EaXYgPSBodG1sLmRpdigpLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgbWFpbkRpdi5hcHBlbmRDaGlsZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYoe30sIFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwuZGl2KHsgY2xhc3M6ICdkYW5nZXInIH0sIFtgRXN0w6EgcG9yIGJsYW5xdWVhciBsYSBjYXJnYSAke21pTnJvQ2FyZ2F9LiBObyBzZSBwb2Ryw6EgZGVzY2FyZ2FyIGVsIGRpc3Bvc2l0aXZvLmBdKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0Rm9yemFyID0gaHRtbC5pbnB1dCh7IGNsYXNzOiAnaW5wdXQtZm9yemFyJyB9KS5jcmVhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICBtYWluRGl2LmFwcGVuZENoaWxkKGh0bWwuZGl2KFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5kaXYoWydTZSBwdWVkZSBmb3J6YXIgZWwgYmxhbnF1ZW8gJywgaW5wdXRGb3J6YXJdKVxyXG4gICAgICAgICAgICAgICAgICAgIF0pLmNyZWF0ZSgpKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZm9yemFyID0gYXdhaXQgY29uZmlybVByb21pc2UobWFpbkRpdiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoQ2xvc2VCdXR0b246IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3Q6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25zRGVmOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnZm9yemFyIGJsYW5xdWVvJywgdmFsdWU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdjYW5jZWxhciBibGFucXVlbycsIHZhbHVlOiBmYWxzZSB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZm9yemFyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dEZvcnphci52YWx1ZSA9PSAnZm9yemFyJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHRCbGFucXVlbyA9IGF3YWl0IG15LmFqYXguZG1fYmxhbnF1ZWFyKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aXZvOiByZXN1bHQub3BlcmF0aXZvLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbjogbWlUb2tlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpdlJlc3VsdC5pbm5lckhUTUwgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRCbGFucXVlby5mb3JFYWNoKCh0dDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpdlJlc3VsdC5hcHBlbmRDaGlsZChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwuZGl2KHt9LCBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbC5zcGFuKHt9LCBgJHt0dC5yZXN1bHRfYmxhbnF1ZW99YCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0UHJvbWlzZSh1bmV4cGVjdGVkKGVycikubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0UHJvbWlzZSgnc2kgbmVjZXNpdGEgYmxhbnF1ZWFyIGVzY3JpYmEgZm9yemFyLicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBkaXZSZXN1bHQuYXBwZW5kQ2hpbGQoZW5jdWVzdGFzRGl2KTtcclxuICAgICAgICAgICAgICAgIGRpdlJlc3VsdC5hcHBlbmRDaGlsZChidXR0b24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVuY3Vlc3Rhc0Rpdj8uYXBwZW5kQ2hpbGQoaHRtbC5kaXYoe30sIFtcclxuICAgICAgICAgICAgICAgIGh0bWwuc3BhbihgZW5jdWVzdGE6ICR7ZW5jdWVzdGEuZW5jfSBgKSxcclxuICAgICAgICAgICAgICAgIGh0bWwuc3BhbihgdGFyZWE6ICAke2VuY3Vlc3RhLnRhcmVhfSBgKSxcclxuICAgICAgICAgICAgXSkuY3JlYXRlKCkpXHJcbiAgICAgICAgfSlcclxuICAgIH1cclxufVxyXG5cclxubXlPd24ud1NjcmVlbnMucHJvYy5yZXN1bHQuZG93bmxvYWRfc3FsID0gZnVuY3Rpb24gKHJlc3VsdCwgZGl2UmVzdWx0KSB7XHJcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbcmVzdWx0XSwgeyB0eXBlOiAndGV4dC9zcWwnIH0pKTtcclxuXHJcbiAgICBkaXZSZXN1bHQuaW5uZXJIVE1MID0gJyc7XHJcblxyXG4gICAgY29uc3QgbGluayA9IGh0bWwuYSgnRGVzY2FyZ2FyIGFyY2hpdm8gU1FMJykuY3JlYXRlKClcclxuICAgIGxpbmsuaHJlZiA9IHVybDtcclxuICAgIGxpbmsuZG93bmxvYWQgPSAnbWlncmFyX29wZXJhdGl2by5zcWwnO1xyXG4gICAgZGl2UmVzdWx0LmFwcGVuZENoaWxkKGxpbmspO1xyXG59XHJcblxyXG5jb25zdCBwcmV2aXN1YWxpemFyRW5jdWVzdGEgPSAoXHJcbiAgICByZXN1bHRUZW06IGFueSxcclxuICAgIGRpdlJlc3VsdDogSFRNTERpdkVsZW1lbnQsXHJcbiAgICBwYXJhbXM6IHtcclxuICAgICAgICBub21icmVQcm9jZWR1cmU6IHN0cmluZyxcclxuICAgICAgICBpZ25vcmFKc29uRW5jdWVzdGFWYWNpbzogYm9vbGVhblxyXG4gICAgICAgIGxhYmVsQWN0aW9uOiBzdHJpbmdcclxuICAgIH1cclxuKSA9PiB7XHJcbiAgICBsZXQgeyBjYXNvVGVtIH0gPSByZXN1bHRUZW07XHJcbiAgICBpZiAoIWNhc29UZW0uanNvbl9lbmN1ZXN0YSkge1xyXG4gICAgICAgIGRpdlJlc3VsdC5hcHBlbmRDaGlsZChodG1sLnAoeyBpZDogJ21lbnNhamUtbm8taGF5LWpzb24tZW5jdWVzdGEnIH0sIGBubyBzZSBlbmNvbnRyw7MgaW5mb3JtYWNpb24gY2FyZ2FkYSBlbiBsYSBlbmN1ZXN0YSAke2Nhc29UZW0uZW5jfWApLmNyZWF0ZSgpKTtcclxuICAgIH1cclxuICAgIGlmIChjYXNvVGVtLmpzb25fZW5jdWVzdGEgfHwgcGFyYW1zLmlnbm9yYUpzb25FbmN1ZXN0YVZhY2lvKSB7XHJcbiAgICAgICAgdmFyIGVuY3Vlc3RhRGl2ID0gaHRtbC5kaXYoeyBpZDogJ2JhY2t1cC1kaXYnIH0pLmNyZWF0ZSgpO1xyXG4gICAgICAgIGRpdlJlc3VsdC5hcHBlbmRDaGlsZChlbmN1ZXN0YURpdik7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbXkuYWdyZWdhcl9qc29uKGVuY3Vlc3RhRGl2LCBjYXNvVGVtLmpzb25fZW5jdWVzdGEpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICBkaXZSZXN1bHQuYXBwZW5kQ2hpbGQoaHRtbC5wKHsgaWQ6ICdtZW5zYWplLWVycm9yLWpzb24tZW5jdWVzdGEnIH0sIGBubyBzZSBwdWRvIGFsIHByZXZpc3VhbGl6YXIgbGEgZW5jdWVzdGEgJHtjYXNvVGVtLmVuY30gY29ycmVjdGFtZW50ZS4gJHt1bmV4cGVjdGVkKGVycikubWVzc2FnZX1gKS5jcmVhdGUoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBidXR0b24gPSBodG1sLmJ1dHRvbih7XHJcbiAgICAgICAgICAgIGNsYXNzOiBgYm90b24tYmxhbnF1ZWFyLWVuY3Vlc3RhLWFjY2lvbmBcclxuICAgICAgICB9LCBgJHtwYXJhbXMubGFiZWxBY3Rpb259IGVuY3Vlc3RhYCkuY3JlYXRlKCk7XHJcbiAgICAgICAgYnV0dG9uLm9uY2xpY2sgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBtYWluRGl2ID0gaHRtbC5kaXYoKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICBtYWluRGl2LmFwcGVuZENoaWxkKFxyXG4gICAgICAgICAgICAgICAgaHRtbC5kaXYoe30sIFtcclxuICAgICAgICAgICAgICAgICAgICBodG1sLmRpdih7IGNsYXNzOiAnZGFuZ2VyJyB9LCBbYEVzdMOhIHBvciAke3BhcmFtcy5sYWJlbEFjdGlvbn0gbGEgZW5jdWVzdGEgJHtjYXNvVGVtLmVuY30uIFNlIHBlcmRlcsOhbiBsb3MgZGF0b3MgZGUgbGEgbWlzbWEuYF0pXHJcbiAgICAgICAgICAgICAgICBdKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB2YXIgaW5wdXRGb3J6YXIgPSBodG1sLmlucHV0KHsgY2xhc3M6ICdpbnB1dC1mb3J6YXInIH0pLmNyZWF0ZSgpO1xyXG4gICAgICAgICAgICBtYWluRGl2LmFwcGVuZENoaWxkKGh0bWwuZGl2KFtcclxuICAgICAgICAgICAgICAgIGh0bWwuZGl2KFtgcGFyYSAke3BhcmFtcy5sYWJlbEFjdGlvbn0gZXNjcmliYSBmb3J6YXIgYCwgaW5wdXRGb3J6YXJdKVxyXG4gICAgICAgICAgICBdKS5jcmVhdGUoKSk7XHJcbiAgICAgICAgICAgIHZhciBmb3J6YXIgPSBhd2FpdCBjb25maXJtUHJvbWlzZShtYWluRGl2LCB7XHJcbiAgICAgICAgICAgICAgICB3aXRoQ2xvc2VCdXR0b246IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcmVqZWN0OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGJ1dHRvbnNEZWY6IFtcclxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnZm9yemFyJywgdmFsdWU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnY2FuY2VsYXInLCB2YWx1ZTogZmFsc2UgfVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKGZvcnphcikge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlucHV0Rm9yemFyLnZhbHVlID09ICdmb3J6YXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHdhaXRHaWYgPSBodG1sLmltZyh7IHNyYzogJ2ltZy9sb2FkaW5nMTYuZ2lmJyB9KS5jcmVhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3YWl0R2lmLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXZSZXN1bHQuYXBwZW5kQ2hpbGQod2FpdEdpZik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHRCbGFucXVlbyA9IGF3YWl0IG15LmFqYXhbcGFyYW1zLm5vbWJyZVByb2NlZHVyZV0oY2Fzb1RlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpdlJlc3VsdC5pbm5lckhUTUwgPSByZXN1bHRCbGFucXVlbztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0UHJvbWlzZSh1bmV4cGVjdGVkKGVycikubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhaXRHaWYuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBhbGVydFByb21pc2UoYHNpIG5lY2VzaXRhICR7cGFyYW1zLmxhYmVsQWN0aW9ufSBlc2NyaWJhIGZvcnphci5gKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRpdlJlc3VsdC5hcHBlbmRDaGlsZChidXR0b24pO1xyXG4gICAgfVxyXG59XHJcblxyXG5teU93bi53U2NyZWVucy5wcm9jLnJlc3VsdC5tb3N0cmFyX2VuY3Vlc3RhX2FfYmxhbnF1ZWFyX2NvbnRlbmlkbyA9IGZ1bmN0aW9uIChyZXN1bHQsIGRpdlJlc3VsdCkge1xyXG4gICAgcHJldmlzdWFsaXphckVuY3Vlc3RhKHJlc3VsdCwgZGl2UmVzdWx0LCB7XHJcbiAgICAgICAgbm9tYnJlUHJvY2VkdXJlOiAnZW5jdWVzdGFfYmxhbnF1ZWFyJyxcclxuICAgICAgICBpZ25vcmFKc29uRW5jdWVzdGFWYWNpbzogZmFsc2UsXHJcbiAgICAgICAgbGFiZWxBY3Rpb246ICdibGFucXVlYXInXHJcbiAgICB9KVxyXG59XHJcblxyXG5teU93bi53U2NyZWVucy5wcm9jLnJlc3VsdC5tb3N0cmFyX2VuY3Vlc3RhX2FfYm9ycmFyID0gZnVuY3Rpb24gKHJlc3VsdCwgZGl2UmVzdWx0KSB7XHJcbiAgICBwcmV2aXN1YWxpemFyRW5jdWVzdGEocmVzdWx0LCBkaXZSZXN1bHQsIHtcclxuICAgICAgICBub21icmVQcm9jZWR1cmU6ICdlbmN1ZXN0YV9ib3JyYXInLFxyXG4gICAgICAgIGlnbm9yYUpzb25FbmN1ZXN0YVZhY2lvOiB0cnVlLFxyXG4gICAgICAgIGxhYmVsQWN0aW9uOiAnYm9ycmFyJ1xyXG4gICAgfSlcclxufVxyXG5cclxuZnVuY3Rpb24gYXJyYXlGbGF0PFQ+KGFycmF5czogVFtdW10pOiBUW10ge1xyXG4gICAgcmV0dXJuIChbXSBhcyBUW10pLmNvbmNhdC5hcHBseShbXSwgYXJyYXlzKTtcclxufVxyXG5cclxuXHJcbi8qc2luY3Jvbml6YXIgeSBjYW1iaW8gZGUgbW9kbyBMRUdBQ1kgKi9cclxuYXN5bmMgZnVuY3Rpb24gc2luY3Jvbml6YXJEYXRvcyhwZXJzaXN0ZW50ZXM6IERhdG9zQnlQYXNzUGVyc2lzdGlibGVzIHwgbnVsbCwgY2FtYmlhTW9kb0RNOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBmb3JtUmVuZGVyZXIgPSBnZXRGb3JtUmVuZGVyZXIoKTtcclxuICAgIGxldCBtb2RvRE06IE1vZG9ETSA9IGZvcm1SZW5kZXJlci5nZXRNb2RvRE0oKSB8fCBhd2FpdCBteS5hamF4Lm1vZG9fZG1fZGVmZWN0b19vYnRlbmVyKHt9KTtcclxuICAgIGZvcm1SZW5kZXJlci5zZXRNb2RvRE0obW9kb0RNKTtcclxuICAgIGNvbnN0IGlkcGVyX2xvZ3VlYWRvX3RhYmxldCA9IGZvcm1SZW5kZXJlci5nZXRJZHBlckxvZ3VlYWRvKCk7XHJcbiAgICB2YXIgZGF0b3MgPSBhd2FpdCBteS5hamF4LmRtX3NpbmNyb25pemFyKHsgcGVyc2lzdGVudGVzLCBtb2RvX2RtOiBtb2RvRE0sIGNhbWJpYV9tb2RvX2RtOiBjYW1iaWFNb2RvRE0sIGlkcGVyX2xvZ3VlYWRvX3RhYmxldCB9KTtcclxuICAgIGF3YWl0IGZvcm1SZW5kZXJlci5wZXJzaXN0aXJEYXRvcyh7IC4uLmRhdG9zLCBtb2RvQWxtYWNlbmFtaWVudG86ICdsb2NhbCcgfSk7XHJcbiAgICB2YXIgZXN0cnVjdHVyYSA9IGF3YWl0IG15T3duLmFqYXgub3BlcmF0aXZvX2VzdHJ1Y3R1cmFfY29tcGxldGEoeyBvcGVyYXRpdm86IGRhdG9zLm9wZXJhdGl2bywgaWRwZXJfbG9ndWVhZG9fdGFibGV0IH0pO1xyXG4gICAgYXdhaXQgZm9ybVJlbmRlcmVyLnBlcnNpc3RpckVzdHJ1Y3R1cmEoZXN0cnVjdHVyYSk7XHJcbiAgICBteS5yZW1vdmVMb2NhbFZhcihCQUNLVVBTKTtcclxuICAgIHJldHVybiBkYXRvcztcclxufVxyXG5cclxuY29uc3QgbW9zdHJhckluZm9Mb2NhbCA9IGFzeW5jIChkaXZBdmlzb1NpbmNybzogSFRNTERpdkVsZW1lbnQsIHRpdHVsbzogc3RyaW5nLCBucm9TaW5jcm86IG51bWJlciB8IG51bGwsIG1vc3RyYXJMaW5rSGRyOiBib29sZWFuKSA9PiB7XHJcbiAgICBjb25zdCBkYXRvcyA9IGF3YWl0IGdldEZvcm1SZW5kZXJlcigpLmxlZXJEYXRvcygpO1xyXG4gICAgY29uc3QgZXN0cnVjdHVyYSA9IGF3YWl0IGdldEZvcm1SZW5kZXJlcigpLmxlZXJFc3RydWN0dXJhKCk7XHJcbiAgICBpZiAoZGF0b3MpIHtcclxuICAgICAgICBkaXZBdmlzb1NpbmNyby5hcHBlbmQoaHRtbC5kaXYoeyBpZDogJ2F2aXNvLXNpbmNybycgfSwgW1xyXG4gICAgICAgICAgICBucm9TaW5jcm8gPyBodG1sLnAoW1wiTsO6bWVybyBkZSBzaW5jcm9uaXphY2nDs246IFwiLCBodG1sLmIoXCJcIiArIG5yb1NpbmNyby50b1N0cmluZygpKV0pIDogbnVsbCxcclxuICAgICAgICAgICAgaHRtbC5oNCh0aXR1bG8pLFxyXG4gICAgICAgICAgICBodG1sLnAoW2h0bWxOdW1lcm8obGlrZUFyKGRhdG9zLmNhcmdhcykuYXJyYXkoKS5sZW5ndGgpLCAnIGFyZWFzOiAnLCBsaWtlQXIoZGF0b3MuY2FyZ2FzKS5rZXlzKCkuam9pbignLCAnKV0pLFxyXG4gICAgICAgICAgICBodG1sLnAoW2h0bWxOdW1lcm8obGlrZUFyKGRhdG9zLnJlc3B1ZXN0YXNbZXN0cnVjdHVyYS51YVBwYWxdKS5hcnJheSgpLmxlbmd0aCksICcgJyArIGVzdHJ1Y3R1cmEudWFQcGFsXSksXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBtb3N0cmFyTGlua0hkciA/IGh0bWwuYSh7IGhyZWY6ICcuL2NhbXBvJyB9LCBbaHRtbC5iKCdJUiBBIExBIEhPSkEgREUgUlVUQScpXSkgOiBudWxsXHJcbiAgICAgICAgXSkuY3JlYXRlKCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBkaXZBdmlzb1NpbmNyby5hcHBlbmRDaGlsZChodG1sLmRpdih7IGNsYXNzOiAnYXZpc28nIH0sIFtcclxuICAgICAgICAgICAgaHRtbC5oNCgnU2lzdGVtYSB2YWPDrW8nKSxcclxuICAgICAgICAgICAgaHRtbC5wKCdObyBoYXkgaW5mb3JtYWNpw7NuIGRlIGZvcm11bGFyaW9zJyksXHJcbiAgICAgICAgXSkuY3JlYXRlKCkpO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBtb3N0cmFySW5mb01vZG8gPSBhc3luYyAobWFpbkxheW91dDogSFRNTEVsZW1lbnQpID0+IHtcclxuICAgIGxldCBtb2RvRE06IE1vZG9ETSA9IGdldEZvcm1SZW5kZXJlcigpLmdldE1vZG9ETSgpIHx8IGF3YWl0IG15LmFqYXgubW9kb19kbV9kZWZlY3RvX29idGVuZXIoe30pO1xyXG4gICAgZ2V0Rm9ybVJlbmRlcmVyKCkuc2V0TW9kb0RNKG1vZG9ETSk7XHJcbiAgICAvL0B0cy1pZ25vcmUgc2V0ZW8gdW4gYXRyaWJ1dG9cclxuICAgIHZhciBkaXZBdmlzb01vZG86IEhUTUxEaXZFbGVtZW50ID0gaHRtbC5kaXYoeyBjbGFzczogXCJpbmZvLW1vZG9cIiwgXCJtb2RvLWRtXCI6IG1vZG9ETSB9LCBgbW9kbyBhY3R1YWw6ICR7bW9kb0RNfWApLmNyZWF0ZSgpXHJcbiAgICBtYWluTGF5b3V0LmFwcGVuZENoaWxkKGRpdkF2aXNvTW9kbylcclxuICAgIHJldHVybiBtb2RvRE07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNhbWJpYXJNb2RvRE1FbkxvY2FsU3RvcmFnZShtb2RvQWN0dWFsOiBNb2RvRE0pIHtcclxuICAgIG1vZG9BY3R1YWwgPSBtb2RvQWN0dWFsID09ICdwcm9kdWMnID8gJ2NhcGEnIDogJ3Byb2R1Yyc7XHJcbiAgICBnZXRGb3JtUmVuZGVyZXIoKS5zZXRNb2RvRE0obW9kb0FjdHVhbCk7XHJcbn1cclxuXHJcbnZhciBwcm9jZWRlclNpbmNyb0Z1biA9IGFzeW5jIChidXR0b246IEhUTUxCdXR0b25FbGVtZW50LCBkaXZBdmlzb1NpbmNybzogSFRNTERpdkVsZW1lbnQsIGNhbWJpYU1vZG9ETTogYm9vbGVhbikgPT4ge1xyXG4gICAgYnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgIGJ1dHRvbi5jbGFzc05hbWUgPSAnZG93bmxvYWQtZG0tYnV0dG9uJztcclxuICAgIGRpdkF2aXNvU2luY3JvLmlubmVySFRNTCA9ICcnO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBwZXJzaXN0ZW50ZXMgPSBhd2FpdCBnZXRGb3JtUmVuZGVyZXIoKS5sZWVyRGF0b3MoKTtcclxuICAgICAgICBjb25zdCBkYXRvcyA9IGF3YWl0IHNpbmNyb25pemFyRGF0b3MocGVyc2lzdGVudGVzLCBjYW1iaWFNb2RvRE0pO1xyXG4gICAgICAgIGxldCBtb2RvRE1BY3R1YWw6IE1vZG9ETSA9IGdldEZvcm1SZW5kZXJlcigpLmdldE1vZG9ETSgpIHx8IGF3YWl0IG15LmFqYXgubW9kb19kbV9kZWZlY3RvX29idGVuZXIoe30pO1xyXG4gICAgICAgIGlmIChjYW1iaWFNb2RvRE0pIHtcclxuICAgICAgICAgICAgY2FtYmlhck1vZG9ETUVuTG9jYWxTdG9yYWdlKG1vZG9ETUFjdHVhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IG1vc3RyYXJJbmZvTG9jYWwoZGl2QXZpc29TaW5jcm8sICdkYXRvcyByZWNpYmlkb3MnLCBkYXRvcy5udW1fc2luY3JvLCB0cnVlKTtcclxuICAgICAgICAoYXdhaXQgY3JlYXJTdG9yZUZvcm11bGFyaW8oe30pKS5kaXNwYXRjaChkaXNwYXRjaGVycy5SRVNFVF9PUENJT05FUyh7fSkpO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgYWxlcnRQcm9taXNlKHVuZXhwZWN0ZWQoZXJyKS5tZXNzYWdlKVxyXG4gICAgICAgIHRocm93IGVyclxyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgICBidXR0b24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICBidXR0b24uY2xhc3NOYW1lID0gJ2Rvd25sb2FkLWRtLWJ1dHRvbi1jb250JztcclxuICAgIH1cclxufVxyXG5teU93bi53U2NyZWVucy5zaW5jcm9uaXphcl9kbSA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBtYWluTGF5b3V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5fbGF5b3V0JykhO1xyXG4gICAgY29uc3QgbW9kb0RNID0gYXdhaXQgbW9zdHJhckluZm9Nb2RvKG1haW5MYXlvdXQpO1xyXG4gICAgdmFyIHByb2NlZGVyQnV0dG9uID0gaHRtbC5idXR0b24oeyBjbGFzczogJ2Rvd25sb2FkLWRtLWJ1dHRvbi1jb250JyB9LCAnc2luY3Jvbml6YXInKS5jcmVhdGUoKTtcclxuICAgIHByb2NlZGVyQnV0dG9uLnNldEF0dHJpYnV0ZShcIm1vZG8tZG1cIiwgbW9kb0RNKTtcclxuICAgIHZhciBkaXZBdmlzb1NpbmNybzogSFRNTERpdkVsZW1lbnQgPSBodG1sLmRpdigpLmNyZWF0ZSgpO1xyXG4gICAgYXdhaXQgbW9zdHJhckluZm9Mb2NhbChtYWluTGF5b3V0IGFzIEhUTUxEaXZFbGVtZW50LCAnaW5mb3JtYWNpw7NuIGEgdHJhbnNtaXRpcicsIG51bGwsIGZhbHNlKVxyXG4gICAgbWFpbkxheW91dC5hcHBlbmRDaGlsZChwcm9jZWRlckJ1dHRvbik7XHJcbiAgICBtYWluTGF5b3V0LmFwcGVuZENoaWxkKGRpdkF2aXNvU2luY3JvKTtcclxuICAgIHByb2NlZGVyQnV0dG9uLm9uY2xpY2sgPSAoKSA9PiBwcm9jZWRlclNpbmNyb0Z1bihwcm9jZWRlckJ1dHRvbiwgZGl2QXZpc29TaW5jcm8sIGZhbHNlKVxyXG59O1xyXG5cclxubXlPd24ud1NjcmVlbnMuY2FtYmlhcl9tb2RvX2RtID0gYXN5bmMgZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIG1haW5MYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbl9sYXlvdXQnKSE7XHJcbiAgICBjb25zdCBtb2RvRE0gPSBhd2FpdCBtb3N0cmFySW5mb01vZG8obWFpbkxheW91dCk7XHJcbiAgICB2YXIgcHJvY2VkZXJCdXR0b24gPSBodG1sLmJ1dHRvbih7IGNsYXNzOiAnY2FtYmlhci1tb2RvLWRtLWJ1dHRvbicgfSwgYGNhbWJpYXIgYSBtb2RvICR7bW9kb0RNID09ICdwcm9kdWMnID8gJ2NhcGEnIDogJ3Byb2R1Yyd9IOKHkmApLmNyZWF0ZSgpO1xyXG4gICAgdmFyIGRpdkF2aXNvU2luY3JvOiBIVE1MRGl2RWxlbWVudCA9IGh0bWwuZGl2KCkuY3JlYXRlKCk7XHJcbiAgICBhd2FpdCBtb3N0cmFySW5mb0xvY2FsKG1haW5MYXlvdXQgYXMgSFRNTERpdkVsZW1lbnQsIGBpbmZvcm1hY2nDs24gbW9kbyBcIiR7bW9kb0RNfVwiIGEgdHJhbnNtaXRpcmAsIG51bGwsIGZhbHNlKVxyXG4gICAgbWFpbkxheW91dC5hcHBlbmRDaGlsZChwcm9jZWRlckJ1dHRvbik7XHJcbiAgICBtYWluTGF5b3V0LmFwcGVuZENoaWxkKGRpdkF2aXNvU2luY3JvKTtcclxuICAgIHByb2NlZGVyQnV0dG9uLm9uY2xpY2sgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgdmFyIG1haW5EaXYgPSBodG1sLmRpdigpLmNyZWF0ZSgpXHJcbiAgICAgICAgbWFpbkRpdi5hcHBlbmRDaGlsZChcclxuICAgICAgICAgICAgaHRtbC5kaXYoe30sIFtcclxuICAgICAgICAgICAgICAgIGh0bWwuZGl2KHt9LCBbYENvbmZpcm1hIGNhbWJpbyBkZSBtb2RvIFwiJHttb2RvRE19XCIgYSAke21vZG9ETSA9PSAncHJvZHVjJyA/ICdcImNhcGFcIicgOiAnXCJwcm9kdWNcIid9LmBdKVxyXG4gICAgICAgICAgICBdKS5jcmVhdGUoKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdmFyIGlucHV0Q2FtYmlhck1vZG8gPSBodG1sLmlucHV0KHsgY2xhc3M6ICdpbnB1dC1jYW1iaWFyLW1vZG8nIH0pLmNyZWF0ZSgpO1xyXG4gICAgICAgIG1haW5EaXYuYXBwZW5kQ2hpbGQoaHRtbC5kaXYoW1xyXG4gICAgICAgICAgICBodG1sLmRpdihbJ1BvciBmYXZvciBpbmdyZXNlIGxhIGNvbnRyYXNlw7FhICcsIGlucHV0Q2FtYmlhck1vZG9dKVxyXG4gICAgICAgIF0pLmNyZWF0ZSgpKTtcclxuICAgICAgICB2YXIgY2FtYmlhck1vZG9WYWx1ZSA9IGF3YWl0IGNvbmZpcm1Qcm9taXNlKG1haW5EaXYsIHtcclxuICAgICAgICAgICAgd2l0aENsb3NlQnV0dG9uOiBmYWxzZSxcclxuICAgICAgICAgICAgcmVqZWN0OiBmYWxzZSxcclxuICAgICAgICAgICAgYnV0dG9uc0RlZjogW1xyXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogYGNhbWJpYXJgLCB2YWx1ZTogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogYGNhbmNlbGFyYCwgdmFsdWU6IGZhbHNlIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChjYW1iaWFyTW9kb1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIGlmIChpbnB1dENhbWJpYXJNb2RvLnZhbHVlID09ICcxMjM0Jykge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBwcm9jZWRlckJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgcHJvY2VkZXJTaW5jcm9GdW4ocHJvY2VkZXJCdXR0b24sIGRpdkF2aXNvU2luY3JvLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICBtYWluTGF5b3V0LmlubmVySFRNTCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIG1haW5MYXlvdXQuYXBwZW5kQ2hpbGQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwuZGl2KGBNT0RPICR7Z2V0Rm9ybVJlbmRlcmVyKCkuZ2V0TW9kb0RNKCl9IEFDVElWQURPYCkuY3JlYXRlKClcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICBhbGVydFByb21pc2UodW5leHBlY3RlZChlcnIpLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgICAgICAgICBwcm9jZWRlckJ1dHRvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGFsZXJ0UHJvbWlzZSgnY29udHJhc2XDsWEgaW5jb3JyZWN0YS4nKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5cclxuLyogRklOIHNpbmNyb25pemFyIHkgY2FtYmlvIGRlIG1vZG8gTEVHQUNZICovXHJcbiJdfQ==
|
|
@@ -637,6 +637,7 @@ export declare function emergeAppDmEncu<T extends procesamiento.Constructor<proc
|
|
|
637
637
|
endTransformationSql: string[];
|
|
638
638
|
}>);
|
|
639
639
|
specialSqlDefaultExpressions: Record<string, string>;
|
|
640
|
+
activeSkinFiles: Set<string>;
|
|
640
641
|
};
|
|
641
642
|
} & T;
|
|
642
643
|
export declare var AppDmEncu: {
|
|
@@ -1270,6 +1271,7 @@ export declare var AppDmEncu: {
|
|
|
1270
1271
|
endTransformationSql: string[];
|
|
1271
1272
|
}>);
|
|
1272
1273
|
specialSqlDefaultExpressions: Record<string, string>;
|
|
1274
|
+
activeSkinFiles: Set<string>;
|
|
1273
1275
|
};
|
|
1274
1276
|
} & (new (...args: any[]) => {
|
|
1275
1277
|
getProcedures(): Promise<import("backend-plus").ProcedureDef<any>[]>;
|
|
@@ -175,6 +175,7 @@
|
|
|
175
175
|
|
|
176
176
|
|
|
177
177
|
)`,
|
|
178
|
+
broadWhere: 'true',
|
|
178
179
|
},
|
|
179
180
|
//refrescable: true, //no está permitido aún
|
|
180
181
|
//clientSide:'tareasTemRow' //desactivo para borrar los íconos de las celdas
|
|
@@ -201,4 +202,4 @@
|
|
|
201
202
|
return tableDef;
|
|
202
203
|
}
|
|
203
204
|
});
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdGFyZWFzX3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvdGFibGUtdGFyZWFzX3RlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7SUFBQSxZQUFZLENBQUM7OztJQTBCYixnQ0FvSkM7SUFFRCxnRUFJQztJQUVELGdFQUlDO0lBRUQsZ0VBSUM7SUFFRCxnRUFJQztJQW5NRCxpREFBa0Q7SUFDbEQsc0NBQXNDO0lBUy9CLElBQUksa0JBQWtCLEdBQUcsQ0FBQyxjQUFzQixFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsY0FBYyxDQUFBLENBQUMsQ0FBQSxjQUFjLEdBQUMsR0FBRyxDQUFBLENBQUMsQ0FBQSxFQUFFLDJGQUEyRixDQUFBO0lBQXBNLFFBQUEsa0JBQWtCLHNCQUFrTDtJQUV4TSxJQUFJLFlBQVksR0FBRyxDQUFDLFdBQW1CLEVBQW9CLEVBQUUsQ0FBQztRQUNqRSxFQUFDLElBQUksRUFBQyxLQUFLLEVBQTJCLFFBQVEsRUFBQyxTQUFTLEVBQU8sUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsUUFBUSxFQUFDO1FBQ3JHLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBeUIsUUFBUSxFQUFDLFNBQVMsRUFBTyxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBQyxVQUFVLEVBQUM7UUFDdkcsb0dBQW9HO1FBQ3BHLEVBQUMsSUFBSSxFQUFDLGdCQUFnQixFQUFnQixRQUFRLEVBQUMsTUFBTSxFQUFVLFFBQVEsRUFBRSxLQUFLLEVBQUssS0FBSyxFQUFFLG1CQUFtQixFQUFDO1FBQzlHLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBdUIsUUFBUSxFQUFDLFNBQVMsRUFBTyxRQUFRLEVBQUUsS0FBSyxFQUFNLE9BQU8sRUFBQyxLQUFLLEVBQUM7UUFDbEcsRUFBQyxJQUFJLEVBQUMsV0FBVyxFQUFxQixRQUFRLEVBQUMsU0FBUyxFQUFPLFFBQVEsRUFBRSxLQUFLLEVBQU0sT0FB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TyxFQUFFLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsWUFBWSxFQUFFLElBQUksRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUE7UUFDL0YsUUFBUSxDQUFDLEdBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzlCLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7VGFibGVEZWZpbml0aW9uLCBUYWJsZUNvbnRleHQsIEZpZWxkRGVmaW5pdGlvbn0gZnJvbSBcIi4vdHlwZXMtZG1lbmN1XCI7XHJcbmltcG9ydCB7T3BlcmF0aXZvR2VuZXJhdG9yIH0gZnJvbSBcInByb2Nlc2FtaWVudG9cIjtcclxuaW1wb3J0ICogYXMgc3FsVG9vbHMgZnJvbSAnc3FsLXRvb2xzJztcclxuXHJcbmV4cG9ydCB0eXBlIE9wdHNUYXJlYXNUZW0gPSB7XHJcbiAgICByb2w6ICdlbmN1J3wncmVjdSd8J3N1cGUnfCdpbmdyJ3xudWxsXHJcbiAgICBuYW1lOiBzdHJpbmdcclxuICAgIGFicmU/OmJvb2xlYW5cclxuICAgIGNvbnNpc3RlPzpib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgZ2V0RGlhc0FQYXNhclF1ZXJ5ID0gKHRhcmVhc1RlbUFsaWFzPzpzdHJpbmcpID0+IGBleHRyYWN0KGRheSBmcm9tICR7dGFyZWFzVGVtQWxpYXM/dGFyZWFzVGVtQWxpYXMrJy4nOicnfXRzX2VudHJhZGEgLSBjdXJyZW50X3RpbWVzdGFtcCkgKyAoc2VsZWN0IGRpYXNfZmluYyBmcm9tIHBhcmFtZXRyb3Mgd2hlcmUgdW5pY29fcmVnaXN0cm8pYFxyXG5cclxuZXhwb3J0IHZhciBnZXRSZWFGaWVsZHMgPSAocHVlZGVFZGl0YXI6Ym9vbGVhbik6RmllbGREZWZpbml0aW9uW10gPT4gW1xyXG4gICAge25hbWU6J3JlYScgICAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IHB1ZWRlRWRpdGFyLCBsYWJlbDoncmVhX2RtJ30sXHJcbiAgICB7bmFtZTonbm9yZWEnICAgICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogcHVlZGVFZGl0YXIsIGxhYmVsOidub3JlYV9kbSd9LFxyXG4gICAgLy97bmFtZTonY29kX25vX3JlYScgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCBpblRhYmxlOmZhbHNlICB9LFxyXG4gICAge25hbWU6J3Jlc3VtZW5fZXN0YWRvJyAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCBsYWJlbDogJ3Jlc3VtZW5fZXN0YWRvX2RtJ30sXHJcbiAgICB7bmFtZTondWx0X3JlYScgICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogZmFsc2UgICAsICBpblRhYmxlOmZhbHNlfSxcclxuICAgIHtuYW1lOid1bHRfbm9yZWEnICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICAgICAsIGVkaXRhYmxlOiBmYWxzZSAgICwgIGluVGFibGU6ZmFsc2V9LFxyXG4gICAge25hbWU6J3VsdF9ncnVfbm9fcmVhJyAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICB7bmFtZTondWx0X3Jlc3VtZW5fZXN0YWRvJyAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTogZmFsc2UgICAsICBpblRhYmxlOmZhbHNlfVxyXG5dXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdGFyZWFzX3RlbShjb250ZXh0OlRhYmxlQ29udGV4dCxvcHRzPzpPcHRzVGFyZWFzVGVtKTpUYWJsZURlZmluaXRpb24ge1xyXG4gICAgaWYgKG9wdHMgPT0gbnVsbCkge1xyXG4gICAgICAgIG9wdHMgPSB7XHJcbiAgICAgICAgICAgIHJvbDogbnVsbCxcclxuICAgICAgICAgICAgbmFtZTogJ3JlbGV2YWRvcidcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBvcHRzLmFicmUgPz89IHRydWU7XHJcbiAgICBvcHRzLmNvbnNpc3RlID8/PSB0cnVlO1xyXG4gICAgdmFyIGJlPWNvbnRleHQuYmU7XHJcbiAgICB2YXIgZGI9YmUuZGI7IFxyXG4gICAgdmFyIHB1ZWRlRWRpdGFyID0gY29udGV4dC5mb3JEdW1wIHx8IGNvbnRleHQucHVlZGU/LmNhbXBvPy5hZG1pbmlzdHJhcnx8Y29udGV4dC51c2VyLnJvbD09PSdyZWNlcGNpb25pc3RhJzsgICAgICAgXHJcbiAgICB2YXIgZmllbGRzOkZpZWxkRGVmaW5pdGlvbltdPVtcclxuICAgICAgICB7bmFtZTonb3BlcmF0aXZvJyAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JywgaXNQazoyLCBlZGl0YWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J2VuYycgICAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcsIGlzUGs6MywgZWRpdGFibGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOid0YXJlYScgICAgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnLCBpc1BrOjEsIGVkaXRhYmxlOmZhbHNlfSxcclxuICAgICAgICB7bmFtZTondHNfZW50cmFkYScgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0aW1lc3RhbXAnICAgLCBlZGl0YWJsZTpmYWxzZSAgICAgICAgICAgICAgICwgdmlzaWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J2FkZWxhbnRhcicgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonYm9vbGVhbicgICAgICwgZWRpdGFibGU6dHJ1ZSAgICAgICAgICAgICAgICAsIHZpc2libGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOidkaWFzX2FfcGFzYXInICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICAgICAsIGVkaXRhYmxlOmZhbHNlLCBpblRhYmxlOmZhbHNlLCB2aXNpYmxlOmZhbHNlfSxcclxuICAgICAgICB7bmFtZTonZXN0YWRvJyAgICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTpmYWxzZSAgICwgbnVsbGFibGU6IGZhbHNlLCBkZWZhdWx0RGJWYWx1ZTpcIicwRCdcIn0sXHJcbiAgICAgICAge25hbWU6J3Byb2llJyAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6dHJ1ZSAsIHRhYmxlOiAndGVtJyAsIHZpc2libGU6ZmFsc2UgfVxyXG4gICAgXTtcclxuICAgIGlmKG9wdHMuYWJyZSl7XHJcbiAgICAgICAgZmllbGRzLnB1c2goe25hbWU6J2FicmlyJyAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6ZmFsc2UgICAsIGluVGFibGU6ZmFsc2UsIGNsaWVudFNpZGU6J2FicmlyUmVjZXBjaW9uJ30pO1xyXG4gICAgfVxyXG4gICAgaWYob3B0cy5jb25zaXN0ZSl7XHJcbiAgICAgICAgZmllbGRzLnB1c2goe25hbWU6XCJjb25zaXN0aXJcIiAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOiAndGV4dCcgICAgICAgLCBlZGl0YWJsZTpmYWxzZSAgICwgaW5UYWJsZTpmYWxzZSwgY2xpZW50U2lkZTonY29uc2lzdGlyJ30pO1xyXG4gICAgfVxyXG4gICAgZmllbGRzPWZpZWxkcy5jb25jYXQoW1xyXG4gICAgICAgIHtuYW1lOidhcmVhJyAgICAgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6ICdpbnRlZ2VyJyAgICAsIGVkaXRhYmxlOmZhbHNlICAgLCBpblRhYmxlOmZhbHNlIH0sXHJcbiAgICAgICAge25hbWU6J3RhcmVhX2FjdHVhbCcgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgaW5UYWJsZTpmYWxzZSAgICAsIGVkaXRhYmxlOmZhbHNlLCBzZXJ2ZXJTaWRlOnRydWV9LFxyXG4gICAgICAvLyAge25hbWU6J29rJyAgICAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTogJ3RleHQnICAgICAgICwgZWRpdGFibGU6ZmFsc2UgICAsIGluVGFibGU6ZmFsc2UgfSxcclxuICAgICAgICB7bmFtZToncmVjZXBjaW9uaXN0YScgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTp0cnVlIH0sIFxyXG4gICAgICAgIHtuYW1lOidhc2lnbmFkbycgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOnRydWUsIHRpdGxlOiBvcHRzLm5hbWV9LCAvLyB2YSBhIGxhIGhvamEgZGUgcnV0YVxyXG4gICAgICAgIHtuYW1lOidmZWNoYV9hc2lnbmFjaW9uJyAgICAgICAgICAgICwgdHlwZU5hbWU6J2RhdGUnfSwgLy8gY2FyZ2FyL2Rlc2NhcmdhclxyXG4gICAgXSk7XHJcbiAgICBmaWVsZHMgPSBmaWVsZHMuY29uY2F0KC4uLmdldFJlYUZpZWxkcyhwdWVkZUVkaXRhciksW1xyXG4gICAgICAgIC8ve25hbWU6J3Jlc3VsdGFkbycgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnfSwgLy8gZmsgdGFyZWFzX3Jlc3VsdGFkb3MgXHJcbiAgICAgICAgLy97bmFtZTonZmVjaGFfcmVzdWx0YWRvJyAgICAgICAgICAgLCB0eXBlTmFtZTonZGF0ZSd9LCAvLyBmayB0YXJlYXNfcmVzdWx0YWRvcyBcclxuICAgICAgICB7bmFtZTonbW9kYWxpZGFkJyAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTogZmFsc2UsIGluVGFibGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOidzdXBlcnZpc2lvbl9kaXJpZ2lkYScgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICAgICAsIGVkaXRhYmxlOiBmYWxzZSwgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J3N1cGVydmlzaW9uX2FsZWF0b3JpYScgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IGZhbHNlLCBpblRhYmxlOmZhbHNlfSxcclxuICAgICAgICB7bmFtZToncmVzdWx0X3N1cCcgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogcHVlZGVFZGl0YXIgICwgIGluVGFibGU6ZmFsc2UsIHRhYmxlOid0ZW0nfSxcclxuICAgICAgICB7bmFtZTondmVyaWZpY2FkbycgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTpmYWxzZSx9LCBcclxuICAgICAgICB7bmFtZTonYV9yZWN1cGVyYWNpb24nICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTpmYWxzZSAsIGluVGFibGU6ZmFsc2V9LCBcclxuICAgICAgICB7bmFtZTonb2JzX3ZlcmlmaWNhZG8nICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0J30sXHJcbiAgICAgICAge25hbWU6J3JlYV9zdXAnICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IHB1ZWRlRWRpdGFyLCBsYWJlbDoncmVhX3N1cF9kbSd9LFxyXG4gICAgICAgIHtuYW1lOidub3JlYV9zdXAnICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICAgICAsIGVkaXRhYmxlOiBwdWVkZUVkaXRhciwgbGFiZWw6J25vcmVhX3N1cF9kbSd9LFxyXG4gICAgICAgIHtuYW1lOidyZXN1bWVuX2VzdGFkb19zdXAnICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOiBmYWxzZSwgICAgICAgbGFiZWw6ICdyZXN1bWVuX2VzdGFkb19zdXBfZG0nfSxcclxuICAgICAgICB7bmFtZTondWx0X3JlYV9zdXAnICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogZmFsc2UgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J3VsdF9ub3JlYV9zdXAnICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IGZhbHNlICwgIGluVGFibGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOid1bHRfcmVzdW1lbl9lc3RhZG9fc3VwJyAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOiBmYWxzZSAsICBpblRhYmxlOmZhbHNlfSxcclxuICAgICAgICB7bmFtZTonb3BlcmFjaW9uJyAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTpmYWxzZSx9LCAvLyBjYXJnYXIvZGVzY2FyZ2FyXHJcbiAgICAgICAge25hbWU6XCJjYXJnYV9vYnNlcnZhY2lvbmVzXCIgICAgICAgICAsIHR5cGVOYW1lOiBcInRleHRcIiAgICAgICAsIGVkaXRhYmxlOiB0cnVlfSwgICAgICAgIFxyXG4gICAgICAgIHtuYW1lOidjYXJnYWRvX2RtJyAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOiBmYWxzZX0sIC8vY2FyZ2FyL2Rlc2NhcmdhciBcclxuICAgICAgICB7bmFtZTpcImNhcmdhZG9cIiAgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6IFwiYm9vbGVhblwiICAgICwgZWRpdGFibGU6IGZhbHNlfSxcclxuICAgICAgICB7bmFtZTonbm90YXMnICAgICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0J30sIC8vIHZpZW5lIGRlIGxhIGhvamEgZGUgcnV0YVxyXG4gICAgXSk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6YHRhcmVhc190ZW1gLFxyXG4gICAgICAgIHRhYmxlTmFtZTpgdGFyZWFzX3RlbWAsXHJcbiAgICAgICAgYWxsb3c6e1xyXG4gICAgICAgICAgICBpbnNlcnQ6ZmFsc2UsXHJcbiAgICAgICAgICAgIGRlbGV0ZTpjb250ZXh0LmZvckR1bXBcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVkaXRhYmxlOnB1ZWRlRWRpdGFyLFxyXG4gICAgICAgIGZpZWxkcyxcclxuICAgICAgICBwcmltYXJ5S2V5OlsndGFyZWEnLCdvcGVyYXRpdm8nLCdlbmMnXSxcclxuICAgICAgICBoaWRkZW5Db2x1bW5zOlsnY2FyZ2Fkb19kbScsJ25vdGFzJywgJ2VzdGFkb3NfX3Blcm1pdGVfZWRpdGFyX2VuY3Vlc3RhJ10sXHJcbiAgICAgICAgZm9yZWlnbktleXM6W1xyXG4gICAgICAgICAgICB7cmVmZXJlbmNlczondGVtJyAsIGZpZWxkczpbJ29wZXJhdGl2bycsJ2VuYyddLCBkaXNwbGF5RmllbGRzOltdfSxcclxuICAgICAgICAgICAge3JlZmVyZW5jZXM6J3RhcmVhcycgLCBmaWVsZHM6WydvcGVyYXRpdm8nLCd0YXJlYSddfSxcclxuICAgICAgICAgICAge3JlZmVyZW5jZXM6J3VzdWFyaW9zJywgZmllbGRzOlt7c291cmNlOidhc2lnbmFkbycgLCB0YXJnZXQ6J2lkcGVyJ31dLCBhbGlhczonYXNpZ25hZG8nLCBkaXNwbGF5RmllbGRzOlsnbm9tYnJlJywnYXBlbGxpZG8nXX0sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOidvcGVyYWNpb25lcycgLCBmaWVsZHM6WydvcGVyYWNpb24nXX0sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOidlc3RhZG9zJyAsIGZpZWxkczpbJ29wZXJhdGl2bycsJ2VzdGFkbyddfSxcclxuICAgICAgICAgICAge3JlZmVyZW5jZXM6J3VzdWFyaW9zJywgZmllbGRzOlt7c291cmNlOidyZWNlcGNpb25pc3RhJyAsIHRhcmdldDonaWRwZXInfV0sIGFsaWFzOidyZWNlcGNpb25pc3RhJ30sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBzb2Z0Rm9yZWlnbktleXM6W1xyXG4gICAgICAgICAgICB7cmVmZXJlbmNlczondXN1YXJpb3MnLCBmaWVsZHM6W3tzb3VyY2U6J3JlY2VwY2lvbmlzdGEnLCB0YXJnZXQ6J2lkcGVyJ31dLCBhbGlhczonYXQnfSxcclxuICAgICAgICAgICAge3JlZmVyZW5jZXM6J3RlbScgLCBmaWVsZHM6WydvcGVyYXRpdm8nLCdlbmMnXSwgZGlzcGxheUFsbEZpZWxkczp0cnVlLCBkaXNwbGF5QWZ0ZXJGaWVsZE5hbWU6J3Jlc3VtZW5fZXN0YWRvX3N1cCcsIGFsaWFzOlwidGVtX3JlY1wifSxcclxuICAgICAgICAgICAge3JlZmVyZW5jZXM6J3Rva2VucycsIGZpZWxkczpbe3NvdXJjZTonY2FyZ2Fkb19kbScsIHRhcmdldDondG9rZW4nfV0sIGRpc3BsYXlGaWVsZHM6Wyd1c2VybmFtZSddLCBkaXNwbGF5QWZ0ZXJGaWVsZE5hbWU6J2NhcmdhZG8nfSxcclxuICAgICAgICAgICAge3JlZmVyZW5jZXM6J3JlY2VwY2lvbmlzdGFzJywgZmllbGRzOlt7c291cmNlOidyZWNlcGNpb25pc3RhJywgdGFyZ2V0OidwZXJzb25hJ31dLCBhbGlhczoncmVjJ30sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBkZXRhaWxUYWJsZXM6IFtcclxuICAgICAgICAgICAge3RhYmxlOiBcImluY29uc2lzdGVuY2lhc1wiLCBhYnI6IFwiSVwiLCBmaWVsZHM6IFt7c291cmNlOidvcGVyYXRpdm8nLCB0YXJnZXQ6J29wZXJhdGl2byd9LHtzb3VyY2U6J2VuYycsIHRhcmdldDpPcGVyYXRpdm9HZW5lcmF0b3IubWFpblREUEt9XSwgcmVmcmVzaFBhcmVudDp0cnVlLCByZWZyZXNoRnJvbVBhcmVudDp0cnVlfVxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgc3FsOntcclxuICAgICAgICAgICAgaXNUYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgZnJvbTpgKFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ICpcclxuICAgICAgICAgICAgICAgICAgICBmcm9tIChcclxuICAgICAgICAgICAgICAgIHNlbGVjdCB0dC50YXJlYSwgdC5vcGVyYXRpdm8sIHQuZW5jLCB0LmFyZWEsICR7Z2V0RGlhc0FQYXNhclF1ZXJ5KCd0dCcpfSAgYXMgZGlhc19hX3Bhc2FyLFxyXG4gICAgICAgICAgICAgICAgICAgIHQudGFyZWFfYWN0dWFsXHJcbiAgICAgICAgICAgICAgICAgICAgJHtmaWVsZHMuZmlsdGVyKHg9PiEoeC5pc1BrIHx8eC50YWJsZXx8IHguaW5UYWJsZT09PWZhbHNlfHx4Lm5hbWU9PSdhcmVhJykpLm1hcCh4PT5gLCB0dC4ke2RiLnF1b3RlSWRlbnQoeC5uYW1lKX1gKS5qb2luKCcnKX1cclxuICAgICAgICAgICAgICAgICAgICAsIHkuZ3J1cG8gYXMgdWx0X2dydV9ub19yZWFcclxuICAgICAgICAgICAgICAgICAgICAsIGNhc2Ugd2hlbiB0dC50YXJlYT0ncmVjdScgYW5kIHkuZ3J1cG8wIGluICgnYXVzZW50ZXMnLCdyZWNoYXpvcycpIHRoZW4gJ3JlY3VwZXJhY2lvbicgZWxzZSBudWxsIGVuZCBhX3JlY3VwZXJhY2lvbiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICwgdC5zdXBlcnZpc2lvbl9hbGVhdG9yaWFcclxuICAgICAgICAgICAgICAgICAgICAsIHQuc3VwZXJ2aXNpb25fZGlyaWdpZGFcclxuICAgICAgICAgICAgICAgICAgICAsIGNhc2Ugd2hlbiB5LmdydXBvMD0nbm8gZW5jdWVzdGFibGUnIG9yIHQuc3VwZXJ2aXNpb25fZGlyaWdpZGEgPSAxIG9yIHQuc3VwZXJ2aXNpb25fYWxlYXRvcmlhID0gMSB0aGVuICdwcmVzZW5jaWFsJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVuIHQuc3VwZXJ2aXNpb25fZGlyaWdpZGEgPSAyIG9yIHQuc3VwZXJ2aXNpb25fYWxlYXRvcmlhID0gMiB0aGVuICd0ZWxlZsOzbmljYScgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgbnVsbCBlbmQgYXMgbW9kYWxpZGFkXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LnJlYSB1bHRfcmVhLCB0Lm5vcmVhIGFzIHVsdF9ub3JlYSwgdC5yZXN1bWVuX2VzdGFkbyB1bHRfcmVzdW1lbl9lc3RhZG9cclxuICAgICAgICAgICAgICAgICAgICAsIHQucmVhX3N1cCB1bHRfcmVhX3N1cCwgdC5ub3JlYV9zdXAgYXMgdWx0X25vcmVhX3N1cCwgdC5yZXN1bWVuX2VzdGFkb19zdXAgdWx0X3Jlc3VtZW5fZXN0YWRvX3N1cFxyXG4gICAgICAgICAgICAgICAgICAgICwgdC5wcm9pZVxyXG4gICAgICAgICAgICAgICAgICAgICwgZG9taW5pb1xyXG4gICAgICAgICAgICAgICAgICAgICwgYXV4LmNvbnNpc3RpZG9cclxuICAgICAgICAgICAgICAgICAgICAsIGUudmlzaWJsZV9lbl9yZWNlcGNpb25cclxuICAgICAgICAgICAgICAgICAgICAsIGUudmlzaWJsZV9lbl9pbmdyZXNvXHJcbiAgICAgICAgICAgICAgICAgICAgLCBlLnZpc2libGVfZW5fZmluX2NhbXBvXHJcbiAgICAgICAgICAgICAgICAgICAgLCBlLnZpc2libGVfZW5fYW5hbGlzaXNfY2FtcG9cclxuICAgICAgICAgICAgICAgICAgICAsIGUudmlzaWJsZV9lbl9wcm9jZXNhbWllbnRvXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LnJlc3VsdF9zdXBcclxuICAgICAgICAgICAgICAgICAgICAsIHQuY29kY2FsbGVcclxuICAgICAgICAgICAgICAgICAgICAsIHQubm9tY2FsbGVcclxuICAgICAgICAgICAgICAgICAgICAsIHQubnJvY2F0YXN0cmFsXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LnBpc29cclxuICAgICAgICAgICAgICAgICAgICAsIHQuZGVwYXJ0YW1lbnRvXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LmhhYml0YWNpb25cclxuICAgICAgICAgICAgICAgICAgICAsIHQuc2VjdG9yXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LmVkaWZpY2lvXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LmVudHJhZGFcclxuICAgICAgICAgICAgICAgICAgICAsIHQuYmFycmlvXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LmVuY19hdXRvZ2VuZXJhZG9fZG1cclxuICAgICAgICAgICAgICAgICAgICAsIHQuZW5jX2F1dG9nZW5lcmFkb19kbV9jYXBhXHJcbiAgICAgICAgICAgICAgICAgICAgLCAnX19pbXBsZW1lbnRhcl9lbl9vcGVyYXRpdm9fZmluYWwnIGFzIHRlbGVmb25vXHJcbiAgICAgICAgICAgICAgICAgICAgZnJvbSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGVtIHQgbGVmdCBqb2luIHRhcmVhc190ZW0gdHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uIHQub3BlcmF0aXZvID0gdHQub3BlcmF0aXZvIGFuZCB0LmVuYyA9IHR0LmVuY1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IGpvaW4gdGFyZWFzIHRhIG9uIHR0Lm9wZXJhdGl2byA9IHRhLm9wZXJhdGl2byBhbmQgdHQudGFyZWEgPSB0YS50YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IGpvaW4gYXJlYXMgYSBvbiB0dC5vcGVyYXRpdm8gPSBhLm9wZXJhdGl2byBhbmQgdC5hcmVhID0gYS5hcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgam9pbiBub19yZWEgeSBvbiB0Lm5vcmVhPXkubm9fcmVhOjppbnRlZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgam9pbiAke3NxbFRvb2xzLnF1b3RlSWRlbnQoT3BlcmF0aXZvR2VuZXJhdG9yLm1haW5URCl9IGF1eCBvbiBhdXgub3BlcmF0aXZvPXQub3BlcmF0aXZvIGFuZCBhdXguJHtzcWxUb29scy5xdW90ZUlkZW50KE9wZXJhdGl2b0dlbmVyYXRvci5tYWluVERQSyl9PXQuZW5jIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBqb2luIGVzdGFkb3MgZSBvbiB0Lm9wZXJhdGl2byA9IGUub3BlcmF0aXZvIGFuZCB0dC5lc3RhZG8gPSBlLmVzdGFkb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBqb2luIHVzdWFyaW9zIHVzdV9jb24gb24gdXN1X2Nvbi51c3VhcmlvID0gJHtzcWxUb29scy5xdW90ZUxpdGVyYWwoY29udGV4dC51c2VyLnVzdWFyaW8pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzdV9jb24ubXVlc3RyYV9lbmN1ZXN0YXNfcHJvZCBhbmQgdC5lbmNfYXV0b2dlbmVyYWRvX2RtIGlzIG5vdCBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c3VfY29uLm11ZXN0cmFfZW5jdWVzdGFzX2NhcGEgYW5kIHQuZW5jX2F1dG9nZW5lcmFkb19kbV9jYXBhIGlzIG5vdCBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuZW5jX2F1dG9nZW5lcmFkb19kbSBpcyBudWxsIGFuZCB0LmVuY19hdXRvZ2VuZXJhZG9fZG1fY2FwYSBpcyBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgKSB4XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICApYCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vcmVmcmVzY2FibGU6IHRydWUsIC8vbm8gZXN0w6EgcGVybWl0aWRvIGHDum5cclxuICAgICAgICAvL2NsaWVudFNpZGU6J3RhcmVhc1RlbVJvdycgLy9kZXNhY3Rpdm8gcGFyYSBib3JyYXIgbG9zIMOtY29ub3MgZGUgbGFzIGNlbGRhc1xyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRhcmVhc190ZW1fYXNpZ25hY2lvbl9lbmN1KGNvbnRleHQ6VGFibGVDb250ZXh0KXtcclxuICAgIHZhciB0YWJsZURlZiA9IHRhcmVhc190ZW0oY29udGV4dCwge3JvbDonZW5jdScsIG5hbWU6J2VuY3Vlc3RhZG9yJywgYWJyZTpmYWxzZSwgY29uc2lzdGU6ZmFsc2V9KSBcclxuICAgIHRhYmxlRGVmLnNxbCEuaXNUYWJsZSA9IGZhbHNlO1xyXG4gICAgcmV0dXJuIHRhYmxlRGVmO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdGFyZWFzX3RlbV9hc2lnbmFjaW9uX3JlY3UoY29udGV4dDpUYWJsZUNvbnRleHQpe1xyXG4gICAgdmFyIHRhYmxlRGVmID0gdGFyZWFzX3RlbShjb250ZXh0LCB7cm9sOidyZWN1JywgbmFtZToncmVjdXBlcmFkb3InLCBhYnJlOnRydWUsIGNvbnNpc3RlOmZhbHNlfSkgXHJcbiAgICB0YWJsZURlZi5zcWwhLmlzVGFibGUgPSBmYWxzZTtcclxuICAgIHJldHVybiB0YWJsZURlZjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRhcmVhc190ZW1fYXNpZ25hY2lvbl9zdXBlKGNvbnRleHQ6VGFibGVDb250ZXh0KXtcclxuICAgIHZhciB0YWJsZURlZiA9IHRhcmVhc190ZW0oY29udGV4dCwge3JvbDonc3VwZScsIG5hbWU6J3N1cGVydmlzb3InLCBhYnJlOnRydWUsIGNvbnNpc3RlOmZhbHNlfSkgXHJcbiAgICB0YWJsZURlZi5zcWwhLmlzVGFibGUgPSBmYWxzZTtcclxuICAgIHJldHVybiB0YWJsZURlZjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRhcmVhc190ZW1fYXNpZ25hY2lvbl9pbmdyKGNvbnRleHQ6VGFibGVDb250ZXh0KXtcclxuICAgIHZhciB0YWJsZURlZiA9IHRhcmVhc190ZW0oY29udGV4dCwge3JvbDonaW5ncicsIG5hbWU6J2luZ3Jlc2Fkb3InLCBhYnJlOmZhbHNlLCBjb25zaXN0ZTpmYWxzZX0pIFxyXG4gICAgdGFibGVEZWYuc3FsIS5pc1RhYmxlID0gZmFsc2U7XHJcbiAgICByZXR1cm4gdGFibGVEZWY7XHJcbn0iXX0=
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdGFyZWFzX3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvdGFibGUtdGFyZWFzX3RlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7SUFBQSxZQUFZLENBQUM7OztJQTBCYixnQ0FxSkM7SUFFRCxnRUFJQztJQUVELGdFQUlDO0lBRUQsZ0VBSUM7SUFFRCxnRUFJQztJQXBNRCxpREFBa0Q7SUFDbEQsc0NBQXNDO0lBUy9CLElBQUksa0JBQWtCLEdBQUcsQ0FBQyxjQUFzQixFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsY0FBYyxDQUFBLENBQUMsQ0FBQSxjQUFjLEdBQUMsR0FBRyxDQUFBLENBQUMsQ0FBQSxFQUFFLDJGQUEyRixDQUFBO0lBQXBNLFFBQUEsa0JBQWtCLHNCQUFrTDtJQUV4TSxJQUFJLFlBQVksR0FBRyxDQUFDLFdBQW1CLEVBQW9CLEVBQUUsQ0FBQztRQUNqRSxFQUFDLElBQUksRUFBQyxLQUFLLEVBQTJCLFFBQVEsRUFBQyxTQUFTLEVBQU8sUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsUUFBUSxFQUFDO1FBQ3JHLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBeUIsUUFBUSxFQUFDLFNBQVMsRUFBTyxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBQyxVQUFVLEVBQUM7UUFDdkcsb0dBQW9HO1FBQ3BHLEVBQUMsSUFBSSxFQUFDLGdCQUFnQixFQUFnQixRQUFRLEVBQUMsTUFBTSxFQUFVLFFBQVEsRUFBRSxLQUFLLEVBQUssS0FBSyxFQUFFLG1CQUFtQixFQUFDO1FBQzlHLEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBdUIsUUFBUSxFQUFDLFNBQVMsRUFBTyxRQUFRLEVBQUUsS0FBSyxFQUFNLE9BQU8sRUFBQyxLQUFLLEVBQUM7UUFDbEcsRUFBQyxJQUFJLEVBQUMsV0FBVyxFQUFxQixRQUFRLEVBQUMsU0FBUyxFQUFPLFFBQVEsRUFBRSxLQUFLLEVBQU0sT0FB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QUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLFlBQVksRUFBRSxJQUFJLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFBO1FBQy9GLFFBQVEsQ0FBQyxHQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUM5QixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQge1RhYmxlRGVmaW5pdGlvbiwgVGFibGVDb250ZXh0LCBGaWVsZERlZmluaXRpb259IGZyb20gXCIuL3R5cGVzLWRtZW5jdVwiO1xyXG5pbXBvcnQge09wZXJhdGl2b0dlbmVyYXRvciB9IGZyb20gXCJwcm9jZXNhbWllbnRvXCI7XHJcbmltcG9ydCAqIGFzIHNxbFRvb2xzIGZyb20gJ3NxbC10b29scyc7XHJcblxyXG5leHBvcnQgdHlwZSBPcHRzVGFyZWFzVGVtID0ge1xyXG4gICAgcm9sOiAnZW5jdSd8J3JlY3UnfCdzdXBlJ3wnaW5ncid8bnVsbFxyXG4gICAgbmFtZTogc3RyaW5nXHJcbiAgICBhYnJlPzpib29sZWFuXHJcbiAgICBjb25zaXN0ZT86Ym9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdmFyIGdldERpYXNBUGFzYXJRdWVyeSA9ICh0YXJlYXNUZW1BbGlhcz86c3RyaW5nKSA9PiBgZXh0cmFjdChkYXkgZnJvbSAke3RhcmVhc1RlbUFsaWFzP3RhcmVhc1RlbUFsaWFzKycuJzonJ310c19lbnRyYWRhIC0gY3VycmVudF90aW1lc3RhbXApICsgKHNlbGVjdCBkaWFzX2ZpbmMgZnJvbSBwYXJhbWV0cm9zIHdoZXJlIHVuaWNvX3JlZ2lzdHJvKWBcclxuXHJcbmV4cG9ydCB2YXIgZ2V0UmVhRmllbGRzID0gKHB1ZWRlRWRpdGFyOmJvb2xlYW4pOkZpZWxkRGVmaW5pdGlvbltdID0+IFtcclxuICAgIHtuYW1lOidyZWEnICAgICAgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICAgICAsIGVkaXRhYmxlOiBwdWVkZUVkaXRhciwgbGFiZWw6J3JlYV9kbSd9LFxyXG4gICAge25hbWU6J25vcmVhJyAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IHB1ZWRlRWRpdGFyLCBsYWJlbDonbm9yZWFfZG0nfSxcclxuICAgIC8ve25hbWU6J2NvZF9ub19yZWEnICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOiBmYWxzZSAgICwgaW5UYWJsZTpmYWxzZSAgfSxcclxuICAgIHtuYW1lOidyZXN1bWVuX2VzdGFkbycgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOiBmYWxzZSAgICwgbGFiZWw6ICdyZXN1bWVuX2VzdGFkb19kbSd9LFxyXG4gICAge25hbWU6J3VsdF9yZWEnICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICB7bmFtZTondWx0X25vcmVhJyAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogZmFsc2UgICAsICBpblRhYmxlOmZhbHNlfSxcclxuICAgIHtuYW1lOid1bHRfZ3J1X25vX3JlYScgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOiBmYWxzZSAgICwgIGluVGFibGU6ZmFsc2V9LFxyXG4gICAge25hbWU6J3VsdF9yZXN1bWVuX2VzdGFkbycgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCAgaW5UYWJsZTpmYWxzZX1cclxuXVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRhcmVhc190ZW0oY29udGV4dDpUYWJsZUNvbnRleHQsb3B0cz86T3B0c1RhcmVhc1RlbSk6VGFibGVEZWZpbml0aW9uIHtcclxuICAgIGlmIChvcHRzID09IG51bGwpIHtcclxuICAgICAgICBvcHRzID0ge1xyXG4gICAgICAgICAgICByb2w6IG51bGwsXHJcbiAgICAgICAgICAgIG5hbWU6ICdyZWxldmFkb3InXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb3B0cy5hYnJlID8/PSB0cnVlO1xyXG4gICAgb3B0cy5jb25zaXN0ZSA/Pz0gdHJ1ZTtcclxuICAgIHZhciBiZT1jb250ZXh0LmJlO1xyXG4gICAgdmFyIGRiPWJlLmRiOyBcclxuICAgIHZhciBwdWVkZUVkaXRhciA9IGNvbnRleHQuZm9yRHVtcCB8fCBjb250ZXh0LnB1ZWRlPy5jYW1wbz8uYWRtaW5pc3RyYXJ8fGNvbnRleHQudXNlci5yb2w9PT0ncmVjZXBjaW9uaXN0YSc7ICAgICAgIFxyXG4gICAgdmFyIGZpZWxkczpGaWVsZERlZmluaXRpb25bXT1bXHJcbiAgICAgICAge25hbWU6J29wZXJhdGl2bycgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcsIGlzUGs6MiwgZWRpdGFibGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOidlbmMnICAgICAgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnLCBpc1BrOjMsIGVkaXRhYmxlOmZhbHNlfSxcclxuICAgICAgICB7bmFtZTondGFyZWEnICAgICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JywgaXNQazoxLCBlZGl0YWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J3RzX2VudHJhZGEnICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGltZXN0YW1wJyAgICwgZWRpdGFibGU6ZmFsc2UgICAgICAgICAgICAgICAsIHZpc2libGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOidhZGVsYW50YXInICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2Jvb2xlYW4nICAgICAsIGVkaXRhYmxlOnRydWUgICAgICAgICAgICAgICAgLCB2aXNpYmxlOmZhbHNlfSxcclxuICAgICAgICB7bmFtZTonZGlhc19hX3Bhc2FyJyAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTpmYWxzZSwgaW5UYWJsZTpmYWxzZSwgdmlzaWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J2VzdGFkbycgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6ZmFsc2UgICAsIG51bGxhYmxlOiBmYWxzZSwgZGVmYXVsdERiVmFsdWU6XCInMEQnXCJ9LFxyXG4gICAgICAgIHtuYW1lOidwcm9pZScgICAgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOnRydWUgLCB0YWJsZTogJ3RlbScgLCB2aXNpYmxlOmZhbHNlIH1cclxuICAgIF07XHJcbiAgICBpZihvcHRzLmFicmUpe1xyXG4gICAgICAgIGZpZWxkcy5wdXNoKHtuYW1lOidhYnJpcicgICAgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOmZhbHNlICAgLCBpblRhYmxlOmZhbHNlLCBjbGllbnRTaWRlOidhYnJpclJlY2VwY2lvbid9KTtcclxuICAgIH1cclxuICAgIGlmKG9wdHMuY29uc2lzdGUpe1xyXG4gICAgICAgIGZpZWxkcy5wdXNoKHtuYW1lOlwiY29uc2lzdGlyXCIgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTogJ3RleHQnICAgICAgICwgZWRpdGFibGU6ZmFsc2UgICAsIGluVGFibGU6ZmFsc2UsIGNsaWVudFNpZGU6J2NvbnNpc3Rpcid9KTtcclxuICAgIH1cclxuICAgIGZpZWxkcz1maWVsZHMuY29uY2F0KFtcclxuICAgICAgICB7bmFtZTonYXJlYScgICAgICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOiAnaW50ZWdlcicgICAgLCBlZGl0YWJsZTpmYWxzZSAgICwgaW5UYWJsZTpmYWxzZSB9LFxyXG4gICAgICAgIHtuYW1lOid0YXJlYV9hY3R1YWwnICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGluVGFibGU6ZmFsc2UgICAgLCBlZGl0YWJsZTpmYWxzZSwgc2VydmVyU2lkZTp0cnVlfSxcclxuICAgICAgLy8gIHtuYW1lOidvaycgICAgICAgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6ICd0ZXh0JyAgICAgICAsIGVkaXRhYmxlOmZhbHNlICAgLCBpblRhYmxlOmZhbHNlIH0sXHJcbiAgICAgICAge25hbWU6J3JlY2VwY2lvbmlzdGEnICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6dHJ1ZSB9LCBcclxuICAgICAgICB7bmFtZTonYXNpZ25hZG8nICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTp0cnVlLCB0aXRsZTogb3B0cy5uYW1lfSwgLy8gdmEgYSBsYSBob2phIGRlIHJ1dGFcclxuICAgICAgICB7bmFtZTonZmVjaGFfYXNpZ25hY2lvbicgICAgICAgICAgICAsIHR5cGVOYW1lOidkYXRlJ30sIC8vIGNhcmdhci9kZXNjYXJnYXJcclxuICAgIF0pO1xyXG4gICAgZmllbGRzID0gZmllbGRzLmNvbmNhdCguLi5nZXRSZWFGaWVsZHMocHVlZGVFZGl0YXIpLFtcclxuICAgICAgICAvL3tuYW1lOidyZXN1bHRhZG8nICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0J30sIC8vIGZrIHRhcmVhc19yZXN1bHRhZG9zIFxyXG4gICAgICAgIC8ve25hbWU6J2ZlY2hhX3Jlc3VsdGFkbycgICAgICAgICAgICwgdHlwZU5hbWU6J2RhdGUnfSwgLy8gZmsgdGFyZWFzX3Jlc3VsdGFkb3MgXHJcbiAgICAgICAge25hbWU6J21vZGFsaWRhZCcgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlLCBpblRhYmxlOmZhbHNlfSxcclxuICAgICAgICB7bmFtZTonc3VwZXJ2aXNpb25fZGlyaWdpZGEnICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogZmFsc2UsIGluVGFibGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOidzdXBlcnZpc2lvbl9hbGVhdG9yaWEnICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICAgICAsIGVkaXRhYmxlOiBmYWxzZSwgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J3Jlc3VsdF9zdXAnICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IHB1ZWRlRWRpdGFyICAsICBpblRhYmxlOmZhbHNlLCB0YWJsZTondGVtJ30sXHJcbiAgICAgICAge25hbWU6J3ZlcmlmaWNhZG8nICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6ZmFsc2UsfSwgXHJcbiAgICAgICAge25hbWU6J2FfcmVjdXBlcmFjaW9uJyAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6ZmFsc2UgLCBpblRhYmxlOmZhbHNlfSwgXHJcbiAgICAgICAge25hbWU6J29ic192ZXJpZmljYWRvJyAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCd9LFxyXG4gICAgICAgIHtuYW1lOidyZWFfc3VwJyAgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICAgICAsIGVkaXRhYmxlOiBwdWVkZUVkaXRhciwgbGFiZWw6J3JlYV9zdXBfZG0nfSxcclxuICAgICAgICB7bmFtZTonbm9yZWFfc3VwJyAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogcHVlZGVFZGl0YXIsIGxhYmVsOidub3JlYV9zdXBfZG0nfSxcclxuICAgICAgICB7bmFtZToncmVzdW1lbl9lc3RhZG9fc3VwJyAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTogZmFsc2UsICAgICAgIGxhYmVsOiAncmVzdW1lbl9lc3RhZG9fc3VwX2RtJ30sXHJcbiAgICAgICAge25hbWU6J3VsdF9yZWFfc3VwJyAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IGZhbHNlICwgIGluVGFibGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOid1bHRfbm9yZWFfc3VwJyAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICAgICAsIGVkaXRhYmxlOiBmYWxzZSAsICBpblRhYmxlOmZhbHNlfSxcclxuICAgICAgICB7bmFtZTondWx0X3Jlc3VtZW5fZXN0YWRvX3N1cCcgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTogZmFsc2UgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J29wZXJhY2lvbicgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6ZmFsc2UsfSwgLy8gY2FyZ2FyL2Rlc2NhcmdhclxyXG4gICAgICAgIHtuYW1lOlwiY2FyZ2Ffb2JzZXJ2YWNpb25lc1wiICAgICAgICAgLCB0eXBlTmFtZTogXCJ0ZXh0XCIgICAgICAgLCBlZGl0YWJsZTogdHJ1ZX0sICAgICAgICBcclxuICAgICAgICB7bmFtZTonY2FyZ2Fkb19kbScgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTogZmFsc2V9LCAvL2Nhcmdhci9kZXNjYXJnYXIgXHJcbiAgICAgICAge25hbWU6XCJjYXJnYWRvXCIgICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOiBcImJvb2xlYW5cIiAgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J25vdGFzJyAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCd9LCAvLyB2aWVuZSBkZSBsYSBob2phIGRlIHJ1dGFcclxuICAgIF0pO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOmB0YXJlYXNfdGVtYCxcclxuICAgICAgICB0YWJsZU5hbWU6YHRhcmVhc190ZW1gLFxyXG4gICAgICAgIGFsbG93OntcclxuICAgICAgICAgICAgaW5zZXJ0OmZhbHNlLFxyXG4gICAgICAgICAgICBkZWxldGU6Y29udGV4dC5mb3JEdW1wXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlZGl0YWJsZTpwdWVkZUVkaXRhcixcclxuICAgICAgICBmaWVsZHMsXHJcbiAgICAgICAgcHJpbWFyeUtleTpbJ3RhcmVhJywnb3BlcmF0aXZvJywnZW5jJ10sXHJcbiAgICAgICAgaGlkZGVuQ29sdW1uczpbJ2NhcmdhZG9fZG0nLCdub3RhcycsICdlc3RhZG9zX19wZXJtaXRlX2VkaXRhcl9lbmN1ZXN0YSddLFxyXG4gICAgICAgIGZvcmVpZ25LZXlzOltcclxuICAgICAgICAgICAge3JlZmVyZW5jZXM6J3RlbScgLCBmaWVsZHM6WydvcGVyYXRpdm8nLCdlbmMnXSwgZGlzcGxheUZpZWxkczpbXX0sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOid0YXJlYXMnICwgZmllbGRzOlsnb3BlcmF0aXZvJywndGFyZWEnXX0sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOid1c3VhcmlvcycsIGZpZWxkczpbe3NvdXJjZTonYXNpZ25hZG8nICwgdGFyZ2V0OidpZHBlcid9XSwgYWxpYXM6J2FzaWduYWRvJywgZGlzcGxheUZpZWxkczpbJ25vbWJyZScsJ2FwZWxsaWRvJ119LFxyXG4gICAgICAgICAgICB7cmVmZXJlbmNlczonb3BlcmFjaW9uZXMnICwgZmllbGRzOlsnb3BlcmFjaW9uJ119LFxyXG4gICAgICAgICAgICB7cmVmZXJlbmNlczonZXN0YWRvcycgLCBmaWVsZHM6WydvcGVyYXRpdm8nLCdlc3RhZG8nXX0sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOid1c3VhcmlvcycsIGZpZWxkczpbe3NvdXJjZToncmVjZXBjaW9uaXN0YScgLCB0YXJnZXQ6J2lkcGVyJ31dLCBhbGlhczoncmVjZXBjaW9uaXN0YSd9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgc29mdEZvcmVpZ25LZXlzOltcclxuICAgICAgICAgICAge3JlZmVyZW5jZXM6J3VzdWFyaW9zJywgZmllbGRzOlt7c291cmNlOidyZWNlcGNpb25pc3RhJywgdGFyZ2V0OidpZHBlcid9XSwgYWxpYXM6J2F0J30sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOid0ZW0nICwgZmllbGRzOlsnb3BlcmF0aXZvJywnZW5jJ10sIGRpc3BsYXlBbGxGaWVsZHM6dHJ1ZSwgZGlzcGxheUFmdGVyRmllbGROYW1lOidyZXN1bWVuX2VzdGFkb19zdXAnLCBhbGlhczpcInRlbV9yZWNcIn0sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOid0b2tlbnMnLCBmaWVsZHM6W3tzb3VyY2U6J2NhcmdhZG9fZG0nLCB0YXJnZXQ6J3Rva2VuJ31dLCBkaXNwbGF5RmllbGRzOlsndXNlcm5hbWUnXSwgZGlzcGxheUFmdGVyRmllbGROYW1lOidjYXJnYWRvJ30sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOidyZWNlcGNpb25pc3RhcycsIGZpZWxkczpbe3NvdXJjZToncmVjZXBjaW9uaXN0YScsIHRhcmdldDoncGVyc29uYSd9XSwgYWxpYXM6J3JlYyd9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgZGV0YWlsVGFibGVzOiBbXHJcbiAgICAgICAgICAgIHt0YWJsZTogXCJpbmNvbnNpc3RlbmNpYXNcIiwgYWJyOiBcIklcIiwgZmllbGRzOiBbe3NvdXJjZTonb3BlcmF0aXZvJywgdGFyZ2V0OidvcGVyYXRpdm8nfSx7c291cmNlOidlbmMnLCB0YXJnZXQ6T3BlcmF0aXZvR2VuZXJhdG9yLm1haW5URFBLfV0sIHJlZnJlc2hQYXJlbnQ6dHJ1ZSwgcmVmcmVzaEZyb21QYXJlbnQ6dHJ1ZX1cclxuICAgICAgICBdLFxyXG4gICAgICAgIHNxbDp7XHJcbiAgICAgICAgICAgIGlzVGFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGZyb206YChcclxuICAgICAgICAgICAgICAgIHNlbGVjdCAqXHJcbiAgICAgICAgICAgICAgICAgICAgZnJvbSAoXHJcbiAgICAgICAgICAgICAgICBzZWxlY3QgdHQudGFyZWEsIHQub3BlcmF0aXZvLCB0LmVuYywgdC5hcmVhLCAke2dldERpYXNBUGFzYXJRdWVyeSgndHQnKX0gIGFzIGRpYXNfYV9wYXNhcixcclxuICAgICAgICAgICAgICAgICAgICB0LnRhcmVhX2FjdHVhbFxyXG4gICAgICAgICAgICAgICAgICAgICR7ZmllbGRzLmZpbHRlcih4PT4hKHguaXNQayB8fHgudGFibGV8fCB4LmluVGFibGU9PT1mYWxzZXx8eC5uYW1lPT0nYXJlYScpKS5tYXAoeD0+YCwgdHQuJHtkYi5xdW90ZUlkZW50KHgubmFtZSl9YCkuam9pbignJyl9XHJcbiAgICAgICAgICAgICAgICAgICAgLCB5LmdydXBvIGFzIHVsdF9ncnVfbm9fcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgLCBjYXNlIHdoZW4gdHQudGFyZWE9J3JlY3UnIGFuZCB5LmdydXBvMCBpbiAoJ2F1c2VudGVzJywncmVjaGF6b3MnKSB0aGVuICdyZWN1cGVyYWNpb24nIGVsc2UgbnVsbCBlbmQgYV9yZWN1cGVyYWNpb24gICBcclxuICAgICAgICAgICAgICAgICAgICAsIHQuc3VwZXJ2aXNpb25fYWxlYXRvcmlhXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LnN1cGVydmlzaW9uX2RpcmlnaWRhXHJcbiAgICAgICAgICAgICAgICAgICAgLCBjYXNlIHdoZW4geS5ncnVwbzA9J25vIGVuY3Vlc3RhYmxlJyBvciB0LnN1cGVydmlzaW9uX2RpcmlnaWRhID0gMSBvciB0LnN1cGVydmlzaW9uX2FsZWF0b3JpYSA9IDEgdGhlbiAncHJlc2VuY2lhbCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiB0LnN1cGVydmlzaW9uX2RpcmlnaWRhID0gMiBvciB0LnN1cGVydmlzaW9uX2FsZWF0b3JpYSA9IDIgdGhlbiAndGVsZWbDs25pY2EnIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIG51bGwgZW5kIGFzIG1vZGFsaWRhZFxyXG4gICAgICAgICAgICAgICAgICAgICwgdC5yZWEgdWx0X3JlYSwgdC5ub3JlYSBhcyB1bHRfbm9yZWEsIHQucmVzdW1lbl9lc3RhZG8gdWx0X3Jlc3VtZW5fZXN0YWRvXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LnJlYV9zdXAgdWx0X3JlYV9zdXAsIHQubm9yZWFfc3VwIGFzIHVsdF9ub3JlYV9zdXAsIHQucmVzdW1lbl9lc3RhZG9fc3VwIHVsdF9yZXN1bWVuX2VzdGFkb19zdXBcclxuICAgICAgICAgICAgICAgICAgICAsIHQucHJvaWVcclxuICAgICAgICAgICAgICAgICAgICAsIGRvbWluaW9cclxuICAgICAgICAgICAgICAgICAgICAsIGF1eC5jb25zaXN0aWRvXHJcbiAgICAgICAgICAgICAgICAgICAgLCBlLnZpc2libGVfZW5fcmVjZXBjaW9uXHJcbiAgICAgICAgICAgICAgICAgICAgLCBlLnZpc2libGVfZW5faW5ncmVzb1xyXG4gICAgICAgICAgICAgICAgICAgICwgZS52aXNpYmxlX2VuX2Zpbl9jYW1wb1xyXG4gICAgICAgICAgICAgICAgICAgICwgZS52aXNpYmxlX2VuX2FuYWxpc2lzX2NhbXBvXHJcbiAgICAgICAgICAgICAgICAgICAgLCBlLnZpc2libGVfZW5fcHJvY2VzYW1pZW50b1xyXG4gICAgICAgICAgICAgICAgICAgICwgdC5yZXN1bHRfc3VwXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LmNvZGNhbGxlXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0Lm5vbWNhbGxlXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0Lm5yb2NhdGFzdHJhbFxyXG4gICAgICAgICAgICAgICAgICAgICwgdC5waXNvXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LmRlcGFydGFtZW50b1xyXG4gICAgICAgICAgICAgICAgICAgICwgdC5oYWJpdGFjaW9uXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LnNlY3RvclxyXG4gICAgICAgICAgICAgICAgICAgICwgdC5lZGlmaWNpb1xyXG4gICAgICAgICAgICAgICAgICAgICwgdC5lbnRyYWRhXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LmJhcnJpb1xyXG4gICAgICAgICAgICAgICAgICAgICwgdC5lbmNfYXV0b2dlbmVyYWRvX2RtXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LmVuY19hdXRvZ2VuZXJhZG9fZG1fY2FwYVxyXG4gICAgICAgICAgICAgICAgICAgICwgJ19faW1wbGVtZW50YXJfZW5fb3BlcmF0aXZvX2ZpbmFsJyBhcyB0ZWxlZm9ub1xyXG4gICAgICAgICAgICAgICAgICAgIGZyb20gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbSB0IGxlZnQgam9pbiB0YXJlYXNfdGVtIHR0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbiB0Lm9wZXJhdGl2byA9IHR0Lm9wZXJhdGl2byBhbmQgdC5lbmMgPSB0dC5lbmNcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCBqb2luIHRhcmVhcyB0YSBvbiB0dC5vcGVyYXRpdm8gPSB0YS5vcGVyYXRpdm8gYW5kIHR0LnRhcmVhID0gdGEudGFyZWFcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCBqb2luIGFyZWFzIGEgb24gdHQub3BlcmF0aXZvID0gYS5vcGVyYXRpdm8gYW5kIHQuYXJlYSA9IGEuYXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IGpvaW4gbm9fcmVhIHkgb24gdC5ub3JlYT15Lm5vX3JlYTo6aW50ZWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IGpvaW4gJHtzcWxUb29scy5xdW90ZUlkZW50KE9wZXJhdGl2b0dlbmVyYXRvci5tYWluVEQpfSBhdXggb24gYXV4Lm9wZXJhdGl2bz10Lm9wZXJhdGl2byBhbmQgYXV4LiR7c3FsVG9vbHMucXVvdGVJZGVudChPcGVyYXRpdm9HZW5lcmF0b3IubWFpblREUEspfT10LmVuYyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgam9pbiBlc3RhZG9zIGUgb24gdC5vcGVyYXRpdm8gPSBlLm9wZXJhdGl2byBhbmQgdHQuZXN0YWRvID0gZS5lc3RhZG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgam9pbiB1c3VhcmlvcyB1c3VfY29uIG9uIHVzdV9jb24udXN1YXJpbyA9ICR7c3FsVG9vbHMucXVvdGVMaXRlcmFsKGNvbnRleHQudXNlci51c3VhcmlvKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgd2hlcmUgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c3VfY29uLm11ZXN0cmFfZW5jdWVzdGFzX3Byb2QgYW5kIHQuZW5jX2F1dG9nZW5lcmFkb19kbSBpcyBub3QgbnVsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXN1X2Nvbi5tdWVzdHJhX2VuY3Vlc3Rhc19jYXBhIGFuZCB0LmVuY19hdXRvZ2VuZXJhZG9fZG1fY2FwYSBpcyBub3QgbnVsbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmVuY19hdXRvZ2VuZXJhZG9fZG0gaXMgbnVsbCBhbmQgdC5lbmNfYXV0b2dlbmVyYWRvX2RtX2NhcGEgaXMgbnVsbFxyXG4gICAgICAgICAgICAgICAgICAgICkgeFxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgKWAsXHJcbiAgICAgICAgICAgIGJyb2FkV2hlcmU6ICd0cnVlJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vcmVmcmVzY2FibGU6IHRydWUsIC8vbm8gZXN0w6EgcGVybWl0aWRvIGHDum5cclxuICAgICAgICAvL2NsaWVudFNpZGU6J3RhcmVhc1RlbVJvdycgLy9kZXNhY3Rpdm8gcGFyYSBib3JyYXIgbG9zIMOtY29ub3MgZGUgbGFzIGNlbGRhc1xyXG4gICAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRhcmVhc190ZW1fYXNpZ25hY2lvbl9lbmN1KGNvbnRleHQ6VGFibGVDb250ZXh0KXtcclxuICAgIHZhciB0YWJsZURlZiA9IHRhcmVhc190ZW0oY29udGV4dCwge3JvbDonZW5jdScsIG5hbWU6J2VuY3Vlc3RhZG9yJywgYWJyZTpmYWxzZSwgY29uc2lzdGU6ZmFsc2V9KSBcclxuICAgIHRhYmxlRGVmLnNxbCEuaXNUYWJsZSA9IGZhbHNlO1xyXG4gICAgcmV0dXJuIHRhYmxlRGVmO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdGFyZWFzX3RlbV9hc2lnbmFjaW9uX3JlY3UoY29udGV4dDpUYWJsZUNvbnRleHQpe1xyXG4gICAgdmFyIHRhYmxlRGVmID0gdGFyZWFzX3RlbShjb250ZXh0LCB7cm9sOidyZWN1JywgbmFtZToncmVjdXBlcmFkb3InLCBhYnJlOnRydWUsIGNvbnNpc3RlOmZhbHNlfSkgXHJcbiAgICB0YWJsZURlZi5zcWwhLmlzVGFibGUgPSBmYWxzZTtcclxuICAgIHJldHVybiB0YWJsZURlZjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRhcmVhc190ZW1fYXNpZ25hY2lvbl9zdXBlKGNvbnRleHQ6VGFibGVDb250ZXh0KXtcclxuICAgIHZhciB0YWJsZURlZiA9IHRhcmVhc190ZW0oY29udGV4dCwge3JvbDonc3VwZScsIG5hbWU6J3N1cGVydmlzb3InLCBhYnJlOnRydWUsIGNvbnNpc3RlOmZhbHNlfSkgXHJcbiAgICB0YWJsZURlZi5zcWwhLmlzVGFibGUgPSBmYWxzZTtcclxuICAgIHJldHVybiB0YWJsZURlZjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRhcmVhc190ZW1fYXNpZ25hY2lvbl9pbmdyKGNvbnRleHQ6VGFibGVDb250ZXh0KXtcclxuICAgIHZhciB0YWJsZURlZiA9IHRhcmVhc190ZW0oY29udGV4dCwge3JvbDonaW5ncicsIG5hbWU6J2luZ3Jlc2Fkb3InLCBhYnJlOmZhbHNlLCBjb25zaXN0ZTpmYWxzZX0pIFxyXG4gICAgdGFibGVEZWYuc3FsIS5pc1RhYmxlID0gZmFsc2U7XHJcbiAgICByZXR1cm4gdGFibGVEZWY7XHJcbn0iXX0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dmencu",
|
|
3
3
|
"description": "DM Encu - Encuestas en dispositivo móvil",
|
|
4
|
-
"version": "3.0.
|
|
4
|
+
"version": "3.0.6",
|
|
5
5
|
"author": "Codenautas <codenautas@googlegroups.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/server/server/app-dmencu.js",
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
],
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@mui/material": "^5.16.7",
|
|
15
|
-
"backend-plus": "^2.
|
|
15
|
+
"backend-plus": "^2.7.0-beta.13",
|
|
16
16
|
"cast-error": "^0.1.3",
|
|
17
17
|
"like-ar": "^0.3.9",
|
|
18
|
-
"meta-enc": "^1.4.
|
|
18
|
+
"meta-enc": "^1.4.17",
|
|
19
19
|
"procesamiento": "^2.0.10",
|
|
20
20
|
"qrcode": "^1.5.3",
|
|
21
21
|
"react": "~17.0.2",
|