dmencu 0.3.10 → 0.3.12
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.
- package/dist/client/unlogged/bypass-formulario.d.ts +2 -2
- package/dist/client/unlogged/bypass-formulario.js +14 -12
- package/dist/client/unlogged/redux-formulario.d.ts +1 -1
- package/dist/client/unlogged/redux-formulario.js +8 -5
- package/dist/client/unlogged/render-formulario.tsx +42 -38
- package/dist/client/unlogged/tipos.d.ts +12 -6
- package/dist/client/unlogged/tipos.js +6 -3
- package/dist/server/server/app-dmencu.js +1 -1
- package/dist/server/server/procedures-dmencu.js +16 -23
- package/dist/server/server/table-estados_acciones.js +2 -6
- package/dist/server/server/table-tareas_tem_asignables.js +3 -3
- package/dist/server/unlogged/tipos.d.ts +12 -6
- package/dist/server/unlogged/tipos.js +6 -3
- package/dist/unlogged/unlogged/bypass-formulario.d.ts +2 -2
- package/dist/unlogged/unlogged/bypass-formulario.js +14 -12
- package/dist/unlogged/unlogged/redux-formulario.d.ts +1 -1
- package/dist/unlogged/unlogged/redux-formulario.js +8 -5
- package/dist/unlogged/unlogged/render-formulario.d.ts +4 -3
- package/dist/unlogged/unlogged/render-formulario.js +32 -25
- package/dist/unlogged/unlogged/render-formulario.tsx +42 -38
- package/dist/unlogged/unlogged/tipos.d.ts +12 -6
- package/dist/unlogged/unlogged/tipos.js +6 -3
- package/install/accion_cumple_condicion.sql +13 -9
- package/package.json +3 -2
|
@@ -4,16 +4,19 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports"], factory);
|
|
7
|
+
define(["require", "exports", "like-ar"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.toPlainForPk = void 0;
|
|
12
|
+
exports.empty = exports.iterator = exports.toPlainForPk = void 0;
|
|
13
|
+
const LikeAr = require("like-ar");
|
|
13
14
|
function toPlainForPk(forPk) {
|
|
14
15
|
// @ts-ignore sabemos que hay que hacer un JSON
|
|
15
16
|
return JSON.stringify(forPk);
|
|
16
17
|
}
|
|
17
18
|
exports.toPlainForPk = toPlainForPk;
|
|
19
|
+
exports.iterator = LikeAr.iterator;
|
|
20
|
+
exports.empty = LikeAr.empty;
|
|
18
21
|
});
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdGlwb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUFnZGIsU0FBZ0IsWUFBWSxDQUFDLEtBQVc7UUFDcEMsK0NBQStDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBSEQsb0NBR0MiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuaW1wb3J0IHtTdHJ1Y3R1cmUsIEZlZWRiYWNrfSBmcm9tIFwicm93LXZhbGlkYXRvclwiO1xyXG5cclxuZXhwb3J0IHR5cGUgTW9kb0FsbWFjZW5hbWllbnRvID0gJ3Nlc3Npb24nfCAvLyBjdWFuZG8gc2VhIHBhcmEgdW5hIHNvbGEgcGVzdGHDsWEsIHNlIHVzYSBlbiBtb2RvIGRpcmVjdG8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2NhbCcgICAgLy8gcGFyYSB0b2RvIGVsIGRpc3Bvc2l0aXZvLCBzZSB1c2EgYWwgY2FyZ2FyIGhvamFzIGRlIHJ1dGEgZW50cmVzXHJcblxyXG5leHBvcnQgdHlwZSBJZE9wY2lvbiA9IG51bWJlclxyXG5leHBvcnQgdHlwZSBJZE9wZXJhdGl2byA9ICdldG9pMjExJ3wnZWFoMjAyMid8J2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRWYXJpYWJsZSA9ICd2MSd8J3YyJ3wndjMnfCdldGMuLi4nfCd2ZG9taW5pbyd8JyRwMCdcclxuZXhwb3J0IHR5cGUgSWRQcmVndW50YSA9ICdQMSd8J1AyJ3wnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEJsb3F1ZSA9ICdCMSd8J0IyJ3wnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEZvcm11bGFyaW8gPSAnRjEnfCdGMid8J2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRVbmlkYWRBbmFsaXNpcyA9ICd2aXZpZW5kYXMnfCdob2dhcmVzJ3wncGVyc29uYXMnXHJcbmV4cG9ydCB0eXBlIElkQm90b25Gb3JtdWxhcmlvID0gJ0JGOkYxJ3wnQkY6RjInfCdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ29uc2lzdGVuY2lhID0gJ0NPTlMxJ3wnQ09OUzInfCdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkVGV4dG8gPSAnRDMwX1JFRid8J01FU19SRUYnfCdTRU1fUkVGJ3wnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEZpbHRybyA9ICdGSUxUUk8xJyB8ICdGSUxUUk8yJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ2FzaWxsZXJvID0gSWRWYXJpYWJsZSB8IElkUHJlZ3VudGEgfCBJZEJsb3F1ZSB8IElkRm9ybXVsYXJpbyB8IElkRmlsdHJvIHwgSWRPcGNpb25cclxuZXhwb3J0IHR5cGUgSWRGaW4gPSAnZmluJzsgLy8gbmV2ZXIgLy8gVE9ETzogcG9kZXIgcG9uZXIgJ0ZJTidcclxuZXhwb3J0IHR5cGUgSWREZXN0aW5vID0gSWRQcmVndW50YSB8IElkQmxvcXVlIHwgSWRGaW4gfCBJZEZpbHRybyBcclxuZXhwb3J0IHR5cGUgVmFsb3IgPSBzdHJpbmd8bnVtYmVyfG51bGw7XHJcbmV4cG9ydCB0eXBlIFRpcG9jRGVzdGlub3MgPSAnUCd8J0NQJ3wnQid8J0ZJTFRSTyd8J0JGJ1xyXG5leHBvcnQgdHlwZSBUaXBvYyA9IFRpcG9jRGVzdGlub3MgfCAnRid8J08nfCdPTSd8J0NPTlMnIHwnVEVYVE8nIHwgJ0xJQlJFJ1xyXG5cclxuZXhwb3J0IHR5cGUgSWRUYXJlYSA9ICdlbmN1J3wncmVjdSd8J3N1cGUnO1xyXG5cclxuZXhwb3J0IHR5cGUgRmVlZGJhY2tWYXJpYWJsZSA9IEZlZWRiYWNrPElkVmFyaWFibGUsIElkRmluPlxyXG5cclxuZXhwb3J0IHR5cGUgVGlwb1ZhcmlhYmxlcyA9ICd0ZXh0byd8J251bWVybyd8J2ZlY2hhJ3wnaG9yYXMnXHJcblxyXG5leHBvcnQgdHlwZSBEZXNwbGllZ3VlID0gJ2hvcml6b250YWwnfCdvY3VsdGEnXHJcblxyXG5leHBvcnQgdHlwZSBDYXNpbGxlcm9CYXNlID0ge1xyXG4gICAgaWRfY2FzaWxsZXJvPzpzdHJpbmdcclxuICAgIHRpcG9jOlRpcG9jXHJcbiAgICBjYXNpbGxlcm86SWRDYXNpbGxlcm9cclxuICAgIG5vbWJyZTpzdHJpbmdcclxuICAgIHNhbHRvOklkRGVzdGlub3xJZEZpbnxudWxsXHJcbiAgICB2ZXJfaWQ6c3RyaW5nfG51bGxcclxuICAgIGRlc3BsaWVndWVFbmNhYmV6YWRvOidsYXRlcmFsJ3wnc3VwZXJpb3InfG51bGxcclxuICAgIGRlc3BsaWVndWVDb250ZW5pZG86J3ZlcnRpY2FsJ3wnaG9yaXpvbnRhbCd8bnVsbFxyXG4gICAgZGVzcGxpZWd1ZVRpcG9JbnB1dDondGVsJ3xudWxsXHJcbiAgICBkZXNwbGllZ3VlT2N1bHRhOmJvb2xlYW58bnVsbFxyXG4gICAgbGVlcjpib29sZWFufG51bGxcclxuICAgIGFjbGFyYWNpb246c3RyaW5nfG51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/OklkVmFyaWFibGV8bnVsbFxyXG4gICAgdmFyX25hbWU/OklkVmFyaWFibGV8bnVsbFxyXG4gICAgdmFyX25hbWVfZXNwZWNpYWw/OnN0cmluZ3xudWxsXHJcbiAgICB0aXBvdmFyPzpUaXBvVmFyaWFibGVzfCdvcGNpb25lcyd8J3NpX25vJ3xudWxsXHJcbiAgICBjYXNpbGxlcm9zPzpDYXNpbGxlcm9zSW1wbGVtZW50YWRvc1tdfG51bGxcclxuICAgIGV4cHJlc2lvbl9oYWJpbGl0YXI/OnN0cmluZ1xyXG4gICAgZXhwcmVzaW9uX2hhYmlsaXRhcl9qcz86c3RyaW5nXHJcbiAgICBleHByZXNpb25fYXV0b2luZ3Jlc2FyPzpzdHJpbmdcclxuICAgIGV4cHJlc2lvbl9hdXRvaW5ncmVzYXJfanM/OnN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGNpb249Q2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidPJ1xyXG4gICAgY2FzaWxsZXJvOklkT3BjaW9uXHJcbiAgICBjYXNpbGxlcm9zOlByZWd1bnRhU2ltcGxlW11cclxuICAgIHZhcl9uYW1lPzpudWxsXHJcbiAgICB0aXBvdmFyPzpudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzpudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvblNpPU9wY2lvbiAmIHtcclxuICAgIGNhc2lsbGVybzoxXHJcbiAgICBub21icmU6J1PDrSdcclxuICAgIGNhc2lsbGVyb3M6UHJlZ3VudGFTaW1wbGVbXSBcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uTm89T3BjaW9uICYge1xyXG4gICAgY2FzaWxsZXJvOjJcclxuICAgIG5vbWJyZTonTm8nXHJcbiAgICBjYXNpbGxlcm9zOlByZWd1bnRhU2ltcGxlW10gXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvbk11bHRpcGxlPUNhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonT00nXHJcbiAgICB0aXBvdmFyOidvcGNpb25lcydcclxuICAgIHZhcl9uYW1lOklkVmFyaWFibGVcclxuICAgIGNhc2lsbGVyb3M6W09wY2lvblNpLCBPcGNpb25Ob11cclxuICAgIGNhbGN1bGFkYT86Ym9vbGVhblxyXG4gICAgbGlicmU/OmJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFCYXNlID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidQJ1xyXG4gICAgb3B0YXRpdm86Ym9vbGVhbnxudWxsXHJcbiAgICBjYXNpbGxlcm86SWRQcmVndW50YVxyXG4gICAgY2FsY3VsYWRhOiBib29sZWFufG51bGxcclxuICAgIGxpYnJlOiBib29sZWFufG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFTaW1wbGUgPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB0aXBvdmFyOlRpcG9WYXJpYWJsZXNcclxuICAgIHZhcl9uYW1lOklkVmFyaWFibGVcclxuICAgIGxvbmdpdHVkOnN0cmluZ1xyXG4gICAgc2FsdG9fbnNfbmM6SWRWYXJpYWJsZXxudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBQcmVndW50YVNpbXBsZVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhQ29uU2lObyA9IFByZWd1bnRhQmFzZSAmIHtcclxuICAgIHRpcG92YXI6J3NpX25vJ1xyXG4gICAgdmFyX25hbWU6SWRWYXJpYWJsZVxyXG4gICAgc2FsdG9fbnNfbmM6SWRWYXJpYWJsZXxudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBbT3BjaW9uU2ksIE9wY2lvbk5vXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUNvbk9wY2lvbmVzID0gUHJlZ3VudGFCYXNlICYge1xyXG4gICAgdGlwb3Zhcjonb3BjaW9uZXMnXHJcbiAgICB2YXJfbmFtZTpJZFZhcmlhYmxlXHJcbiAgICBzYWx0b19uc19uYzpJZFZhcmlhYmxlfG51bGxcclxuICAgIGNhc2lsbGVyb3M6IE9wY2lvbltdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhQ29uT3BjaW9uZXNNdWx0aXBsZXMgPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgY2FzaWxsZXJvczogT3BjaW9uTXVsdGlwbGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YT1QcmVndW50YVNpbXBsZSB8IFByZWd1bnRhQ29uU2lObyB8IFByZWd1bnRhQ29uT3BjaW9uZXMgfCBQcmVndW50YUNvbk9wY2lvbmVzTXVsdGlwbGVzXHJcblxyXG5leHBvcnQgdHlwZSBDb25qdW50b1ByZWd1bnRhcz0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidDUCdcclxuICAgIGNhc2lsbGVybzpJZFByZWd1bnRhXHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgY2FzaWxsZXJvczpQcmVndW50YVtdXHJcbn1cclxuXHJcbi8qXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRlbmlkbyBleHRlbmRzIENhc2lsbGVyb0Jhc2Uge1xyXG4gICAgY2FzaWxsZXJvczpJQ29udGVuaWRvW11cclxufVxyXG4qL1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsdHJvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidGSUxUUk8nXHJcbiAgICBjYXNpbGxlcm86SWRGaWx0cm9cclxuICAgIHZhcl9uYW1lPzpudWxsXHJcbiAgICB0aXBvdmFyPzpudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzpudWxsXHJcbiAgICBjYWxjdWxhZGE/Om51bGxcclxuICAgIGxpYnJlPzpudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbnRlbmlkb0Zvcm11bGFyaW89QmxvcXVlfFByZWd1bnRhfENvbmp1bnRvUHJlZ3VudGFzfEZpbHRyb3xCb3RvbkZvcm11bGFyaW98Q29uc2lzdGVuY2lhfFRleHRvXHJcblxyXG5leHBvcnQgdHlwZSBCbG9xdWUgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6J0InXHJcbiAgICBjYXNpbGxlcm86SWRCbG9xdWVcclxuICAgIGNhc2lsbGVyb3M6Q29udGVuaWRvRm9ybXVsYXJpb1tdXHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgdW5pZGFkX2FuYWxpc2lzPzpJZFVuaWRhZEFuYWxpc2lzXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbnNpc3RlbmNpYSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonQ09OUydcclxuICAgIGNhc2lsbGVybzpJZENvbnNpc3RlbmNpYVxyXG4gICAgdmFyX25hbWU/Om51bGxcclxuICAgIHRpcG92YXI/Om51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/Om51bGxcclxufVxyXG5leHBvcnQgdHlwZSBUZXh0byA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonVEVYVE8nXHJcbiAgICBjYXNpbGxlcm86SWRUZXh0b1xyXG4gICAgdmFyX25hbWU/Om51bGxcclxuICAgIHRpcG92YXI/Om51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/Om51bGxcclxufVxyXG5leHBvcnQgdHlwZSBMaWJyZSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonTElCUkUnXHJcbiAgICBjYXNpbGxlcm86SWRUZXh0b1xyXG4gICAgdmFyX25hbWU/Om51bGxcclxuICAgIHRpcG92YXI/Om51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/Om51bGxcclxufVxyXG5leHBvcnQgdHlwZSBCb3RvbkZvcm11bGFyaW8gPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6J0JGJ1xyXG4gICAgY2FzaWxsZXJvOklkQm90b25Gb3JtdWxhcmlvXHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86bnVsbFxyXG4gICAgdmFyX25hbWVfQkY/OklkVmFyaWFibGVcclxuICAgIGxvbmdpdHVkPzpzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRm9ybXVsYXJpbyA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonRidcclxuICAgIGNhc2lsbGVybzpJZEZvcm11bGFyaW9cclxuICAgIGZvcm11bGFyaW9fcHJpbmNpcGFsOmJvb2xlYW5cclxuICAgIGNhc2lsbGVyb3M6Q29udGVuaWRvRm9ybXVsYXJpb1tdXHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgaGVybWFubz86dHJ1ZVxyXG4gICAgdW5pZGFkX2FuYWxpc2lzOklkVW5pZGFkQW5hbGlzaXNcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FzaWxsZXJvc0ltcGxlbWVudGFkb3M9Rm9ybXVsYXJpb3xCbG9xdWV8RmlsdHJvfENvbmp1bnRvUHJlZ3VudGFzfFByZWd1bnRhfE9wY2lvbk11bHRpcGxlfE9wY2lvbnxCb3RvbkZvcm11bGFyaW98Q29uc2lzdGVuY2lhfFRleHRvfExpYnJlXHJcblxyXG5leHBvcnQgdHlwZSBDYW1wb1BrUmFpeiA9ICd2aXZpZW5kYSd8J2V0Yy4uLic7XHJcblxyXG5leHBvcnQgdHlwZSBGb3JQa1JhaXo9e1xyXG4gICAgZm9ybXVsYXJpbzpJZEZvcm11bGFyaW8sIFxyXG59ICYge1xyXG4gICAgW2NhbXBvIGluIENhbXBvUGtSYWl6XT86bnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhbXBvUGsgPSAndml2aWVuZGEnfCdob2dhcid8J3BlcnNvbmEnfCdldGMuLi4nO1xyXG5leHBvcnQgdHlwZSBGb3JQayA9IHtcclxuICAgIGZvcm11bGFyaW86SWRGb3JtdWxhcmlvLCBcclxufSAmIHtcclxuICAgIFtjYW1wbyBpbiBDYW1wb1BrXT86bnVtYmVyXHJcbn1cclxuZXhwb3J0IHR5cGUgUGxhaW5Gb3JQaz0ne1wiZm9ybXVsYXJpb1wiOlwiRjpGMVwiLFwidml2aWVuZGFcIjpcIjEwMjAyXCIsXCJwZXJzb25hXCI6bnVsbH0nfCdldGMuLi4nO1xyXG5cclxuZXhwb3J0IHR5cGUgT2JqZXRvTnVtZXJhZG9PQXJyYXk8VD4gPSBUW10gfCB7W24gaW4gbnVtYmVyXTpUfVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzcHVlc3Rhcz17XHJcbiAgICAgICAgW3ByZWd1bnRhIGluIElkVmFyaWFibGVdOlZhbG9yXHJcbiAgICB9ICYge1xyXG4gICAgICAgIFt1YSBpbiBJZFVuaWRhZEFuYWxpc2lzXTpPYmpldG9OdW1lcmFkb09BcnJheTxSZXNwdWVzdGFzPlxyXG4gICAgfVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzcHVlc3Rhc1JhaXo9UmVzcHVlc3RhcyAmIHtcclxuICAgIHJlc3VtZW5Fc3RhZG86UmVzdW1lbkVzdGFkb1xyXG4gICAgcmVzdW1lbkVzdGFkb1N1cDpSZXN1bWVuRXN0YWRvXHJcbiAgICAkZGlydHk6Ym9vbGVhblxyXG4gICAgY29kTm9SZWE6IHN0cmluZ3xudWxsXHJcbiAgICBjb2RSZWE6IG51bWJlcnxudWxsXHJcbiAgICBjb2ROb1JlYVN1cDogc3RyaW5nfG51bGxcclxuICAgIGNvZFJlYVN1cDogbnVtYmVyfG51bGxcclxufVxyXG5cclxuLypcclxuICAgIGFjbGFyYWNpw7NuOlxyXG4gICAge3YxOid4JywgdjI6J3gnLCBwZXJzb25hczpbe3AxOjEsIHAyOid4fSx7cDE6MiwgcDI6eH1dLCBtYXNjb3RhczpbXSB9XHJcbiAgICBlc3TDoSBhbmlkYWRvIHBvciB1bmlkYWQgZGUgYW7DoWxpc2lzXHJcbiovXHJcblxyXG5leHBvcnQgdHlwZSBVbmlkYWRBbmFsaXNpcyA9IHtcclxuICAgIHVuaWRhZF9hbmFsaXNpczpJZFVuaWRhZEFuYWxpc2lzLCBcclxuICAgIHBhZHJlPzpJZFVuaWRhZEFuYWxpc2lzLCBcclxuICAgIHBrX2FncmVnYWRhOkNhbXBvUGssIFxyXG4gICAgcHJpbmNpcGFsPzpib29sZWFuLCBcclxuICAgIGhpamFzOiB7W2sgaW4gSWRVbmlkYWRBbmFsaXNpc10/OiBVbmlkYWRBbmFsaXNpc31cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVEVNID0ge1xyXG4gICAgbm9tY2FsbGU6c3RyaW5nXHJcbiAgICBkb21pbmlvOm51bWJlclxyXG4gICAgc2VjdG9yOnN0cmluZ1xyXG4gICAgZWRpZmljaW86c3RyaW5nXHJcbiAgICBlbnRyYWRhOnN0cmluZ1xyXG4gICAgbnJvY2F0YXN0cmFsOnN0cmluZ1xyXG4gICAgcGlzbzpzdHJpbmdcdFxyXG4gICAgZGVwYXJ0YW1lbnRvOnN0cmluZ1xyXG4gICAgaGFiaXRhY2lvbjpzdHJpbmdcclxuICAgIGNhc2E6c3RyaW5nXHJcbiAgICBwcmlvcmlkYWQ6MXwyfDNcclxuICAgIG9ic2VydmFjaW9uZXM6c3RyaW5nXHJcbiAgICBzZWxlY2Npb25hZG86bnVtYmVyLFxyXG4gICAgY2l0YTogc3RyaW5nLFxyXG4gICAgY2FyZ2E6c3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJlc3VtZW5Fc3RhZG8gPSAndmFjaW8nIHwgJ2NvbiBwcm9ibGVtYXMnIHwgJ2luY29tcGxldG8nIHwgJ29rJyB8ICdubyByZWEnIHwgJ2NpdGEgcGFjdGFkYSc7XHJcblxyXG5leHBvcnQgdHlwZSBJbmZvVGFyZWE9IHtcclxuICAgIHRhcmVhPzogSWRUYXJlYVxyXG4gICAgbm90YXM/OnN0cmluZ1xyXG4gICAgZmVjaGFfYXNpZ25hY2lvbj86RGF0ZVxyXG4gICAgYXNpZ25hZG8/OnN0cmluZ1xyXG4gICAgbWFpbl9mb3JtOiBJZEZvcm11bGFyaW9cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVmlzaXRhPXtcclxuICAgIGZlY2hhOiBzdHJpbmcgfCBudWxsXHJcbiAgICBob3JhOiBzdHJpbmcgfCBudWxsXHJcbiAgICBpZHBlcjogc3RyaW5nIHwgbnVsbFxyXG4gICAgb2JzZXJ2YWNpb25lczogc3RyaW5nIHwgbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSAgRGF0b3NIZHJVYVBwYWw9IHtcclxuICAgIHRhcmVhOiBJbmZvVGFyZWFcclxuICAgIHRlbTogVEVNXHJcbiAgICBcclxuLypcclxuICAgIGFjbGFyYWNpw7NuOlxyXG4gICAge3YxOid4JywgdjI6J3gnLCBwZXJzb25hczpbe3AxOjEsIHAyOid4fSx7cDE6MiwgcDI6eH1dLCBtYXNjb3RhczpbXSB9XHJcbiAgICBlc3TDoSBhbmlkYWRvIHBvciB1bmlkYWQgZGUgYW7DoWxpc2lzXHJcbiovXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElkQ2FyZ2E9XCIyMDIwLTA3LTA3XCJ8XCIyMDIwLTA3LTA4XCJcclxuXHJcbmV4cG9ydCB0eXBlIEVzdGFkb0NhcmdhPSdyZXN1bWVuJ3wncmVsZXZhbWllbnRvJ3wncmVjaWJvJ1xyXG5cclxuZXhwb3J0IHR5cGUgQ2FyZ2E9e1xyXG4gICAgZmVjaGE6IERhdGVcclxuICAgIGVzdGFkb19jYXJnYTogRXN0YWRvQ2FyZ2FcclxuICAgIG5lY2VzYXJpYXM6IG51bWJlclxyXG4gICAgb2JzZXJ2YWNpb25lczogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhcmdhcz17XHJcbiAgICBbaWRDYXJnYSBpbiBJZENhcmdhXTogQ2FyZ2FcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXN0cnVjdHVyYVJvd1ZhbGlkYXRvcj1TdHJ1Y3R1cmU8SWRWYXJpYWJsZSxWYWxvcixJZEZpbj47XHJcblxyXG5leHBvcnQgdHlwZSBNb2RvRGVzcGxpZWd1ZSA9ICdtZXRhZGF0b3MnfCdyZWxldmFtaWVudG8nfCdQREYnXHJcblxyXG5leHBvcnQgdHlwZSBJbmZvRm9ybXVsYXJpbz17XHJcbiAgICBjYXNpbGxlcm9zOkZvcm11bGFyaW8sIC8vIGNhc2lsbGVyb3MgYXBsYW5hZG9zXHJcbiAgICBlc3RydWN0dXJhUm93VmFsaWRhdG9yOkVzdHJ1Y3R1cmFSb3dWYWxpZGF0b3IgLy8gZXN0cnVjdHVyYSBkZSB2YXJpYWJsZXMgcGFyYSBlbCBSb3dWYWxpZGF0b3JcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRSZXN1bHRhZG8gPSAnQVZFUklHVUFSJ3wnVE9ETyc7XHJcblxyXG5leHBvcnQgdHlwZSBUYXJlYXNFc3RydWN0dXJhPXtcclxuICAgIFtpZFRhcmVhIGluIElkVGFyZWFdOntcclxuICAgICAgICByZXN1bHRhZG9zOntcclxuICAgICAgICAgICAgW2lkUmVzdWx0YWRvIGluIElkUmVzdWx0YWRvXTp7XHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwY2lvbjpzdHJpbmdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXN0cnVjdHVyYSA9IHtcclxuICAgIGZvcm11bGFyaW9zOnsgXHJcbiAgICAgICAgW25vbWJyZUZvcm11bGFyaW8gaW4gSWRGb3JtdWxhcmlvXTpJbmZvRm9ybXVsYXJpb1xyXG4gICAgfVxyXG4gICAgdW5pZGFkZXNfYW5hbGlzaXM6eyBcclxuICAgICAgICBbaWRVbmlkYWRBbmFsaXNpcyBpbiBJZFVuaWRhZEFuYWxpc2lzXTogVW5pZGFkQW5hbGlzaXNcclxuICAgIH1cclxuICAgIHRhcmVhczpUYXJlYXNFc3RydWN0dXJhXHJcbiAgICB0aW1lc3RhbXA6bnVtYmVyXHJcbiAgICBvcGVyYXRpdm86SWRPcGVyYXRpdm9cclxuICAgIGNvbmZpZ1NvcnRlbzogQ29uZmlndXJhY2lvblNvcnRlb1xyXG5cdG5vUmVhczogeyBcclxuXHQgICAgICBub19yZWE6IHN0cmluZyAgXHJcblx0XHQgIGRlc2NyaXBjaW9uOiBzdHJpbmdcclxuXHRcdCAgZ3J1cG86ICAgICBzdHJpbmcgICAgXHJcblx0XHQgIHZhcmlhYmxlOiAgc3RyaW5nXHJcblx0XHQgIHZhbG9yOiAgICAgc3RyaW5nXHJcblx0XHQgIGdydXBvMDogICAgc3RyaW5nXHJcblx0fVtdXHJcbiAgICBub1JlYXNTdXA6IHsgXHJcbiAgICAgICAgbm9fcmVhX3N1cDogc3RyaW5nICBcclxuICAgICAgICBkZXNjX25vcmVhX3N1cDogc3RyaW5nXHJcbiAgICAgICAgZ3J1cG9fc3VwOiAgICAgc3RyaW5nICAgIFxyXG4gICAgICAgIHZhcmlhYmxlX3N1cDogIHN0cmluZ1xyXG4gICAgICAgIHZhbG9yX3N1cDogICAgIHN0cmluZ1xyXG4gICAgICAgIGdydXBvMF9zdXA6ICAgIHN0cmluZ1xyXG4gIH1bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJZEVuYyA9ICcxMzAwMzEnfCcxMzAwMzInfCdldGMnO1xyXG5leHBvcnQgdHlwZSBJbmZvcm1hY2lvbkhkcj17W2VuYyBpbiBJZEVuY106IERhdG9zSGRyVWFQcGFsfVxyXG5cclxuZXhwb3J0IHR5cGUgQ2Fzb1N0YXRlPXtcclxuICAgIG9wY2lvbmVzOnsgLy8gZGF0b3MgZGUgbmF2ZWdhY2nDs24gcXVlIGVsaWplIGVsIHVzdWFyaW9cclxuICAgICAgICBmb3JQazpGb3JQa3xudWxsIC8vIMOtbmRpY2UgZGVudHJvIGRlIGxhcyB1bmlkYWRlcyBkZSBhbsOhbGlzaXMuIE51bGwgPSBlbiBob2phIGRlIHJ1dGFcclxuICAgICAgICBwaWxhRm9yUGs6Rm9yUGtbXVxyXG4gICAgICAgIG1vZG9EZXNwbGllZ3VlOk1vZG9EZXNwbGllZ3VlXHJcbiAgICAgICAgYmllbnZlbmlkbzpib29sZWFuXHJcbiAgICAgICAgbW9kb0RpcmVjdG86Ym9vbGVhblxyXG4gICAgICAgIG1vZG9Cb3JyYXJSZXNwdWVzdGE6SWRWYXJpYWJsZXxudWxsXHJcbiAgICAgICAgY29uQ2FtcG9PcGNpb25lczpib29sZWFuXHJcbiAgICAgICAgc2FsdG9BdXRvbWF0aWNvOmJvb2xlYW5cclxuICAgIH0sIFxyXG4gICAgbW9kbzp7IC8vIG5vIHNlIHBlcnNpc3RlXHJcbiAgICAgICAgZGVtbzpib29sZWFuXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERlZk9wZXJhdGl2byA9IHtcclxuICAgIGVzTm9SZWE6KHJlc3B1ZXN0YXM6UmVzcHVlc3Rhcyk9PiB7Y29kTm9SZWE6c3RyaW5nfG51bGwsIGVzTm9SZWE6Ym9vbGVhbn0sXHJcbiAgICBlc05vUmVhU3VwOihyZXNwdWVzdGFzOlJlc3B1ZXN0YXMpPT4ge2NvZE5vUmVhU3VwOnN0cmluZ3xudWxsLCBlc05vUmVhU3VwOmJvb2xlYW59LFxyXG4gICAgZXNSZWFsaXphZGE6KHJlc3B1ZXN0YXM6UmVzcHVlc3Rhcyk9PiB7Y29kUmVhOm51bWJlcnxudWxsLCBlc1JlYTpib29sZWFufSxcclxuICAgIGVzUmVhbGl6YWRhU3VwOihyZXNwdWVzdGFzOlJlc3B1ZXN0YXMpPT4ge2NvZFJlYVN1cDpudW1iZXJ8bnVsbCwgZXNSZWFTdXA6Ym9vbGVhbn0sXHJcbiAgICBVQXByaW5jaXBhbDogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIGRlZlVBOntbaSBpbiBJZFVuaWRhZEFuYWxpc2lzXTp7cGs6SWRWYXJpYWJsZSwgaW5jbHVpZGFzOklkVW5pZGFkQW5hbGlzaXNbXSwgaWRzRm9yOklkRm9ybXVsYXJpb1tdfX0sXHJcbiAgICBkZWZGb3I6e1tmIGluIElkRm9ybXVsYXJpb106ey8qYXJib2xVQTpJZFVuaWRhZEFuYWxpc2lzW10sICovIGhlcm1hbm8/OnRydWV9fVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcyA9IHtcclxuICAgIHJlc3B1ZXN0YXM6e1t1YSBpbiBJZFVuaWRhZEFuYWxpc2lzXTpSZXNwdWVzdGFzUmFpeltdfVxyXG4gICAgbW9kb0FsbWFjZW5hbWllbnRvOk1vZG9BbG1hY2VuYW1pZW50b1xyXG4gICAgcGVyc29uYTpzdHJpbmdcclxuICAgIHRhcmVhOklkVGFyZWFcclxuICAgIGlkcGVyOnN0cmluZ1xyXG4gICAgY2FyZ2FzOiBDYXJnYXNcclxuICAgIGluZm9ybWFjaW9uSGRyOiBJbmZvcm1hY2lvbkhkclxyXG4gICAgc29sb0xlY3R1cmE6IGJvb2xlYW5cclxuICAgIHRva2VuPzpzdHJpbmdcclxuICAgIG51bV9zaW5jcm8/Om51bWJlclxyXG4gICAgdGltZXN0YW1wRXN0cnVjdHVyYT86bnVtYmVyXHJcbn1cclxuXHJcbnR5cGUgQ29uZmlndXJhY2lvblNvcnRlb1RhYmxhID0ge1xyXG4gICAgbWV0b2RvOiBcInRhYmxhXCIsXHJcbiAgICBwYXJhbV9tZXRvZG86IHtcclxuICAgICAgICB0YWJsYTpzdHJpbmdbXSxcclxuICAgICAgICB2YXJfbGV0cmE6SWRWYXJpYWJsZSxcclxuICAgIH0gICAgXHJcbn1cclxuXHJcbnR5cGUgQ29uZmlndXJhY2lvblNvcnRlb0hhc2ggPSB7XHJcbiAgICBtZXRvZG86IFwiaGFzaFwiLFxyXG4gICAgcGFyYW1fbWV0b2RvOiB7XHJcbiAgICAgICAgdmFyX2NvZWY6IFtcclxuICAgICAgICAgICAge3ZhcjpJZFZhcmlhYmxlLCBjb2VmOm51bWJlcn0sXHJcbiAgICAgICAgICAgIHt2YXI6SWRWYXJpYWJsZSwgY29lZjpudW1iZXJ9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgZGl2aXNvcjogbnVtYmVyXHJcbiAgICB9ICAgIFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb25maWd1cmFjaW9uU29ydGVvID0ge1trZXkgaW4gSWRGb3JtdWxhcmlvXTpDb25maWd1cmFjaW9uU29ydGVvRm9ybXVsYXJpb31cclxuXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWNpb25Tb3J0ZW9Gb3JtdWxhcmlvID0ge1xyXG4gICAgdW5pZGFkX2FuYWxpc2lzOiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgdW5pZGFkX2FuYWxpc2lzX3BhZHJlOiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgLy9leHByX2luY29tcGxldGl0dWQ6IHN0cmluZyAvL1wibm90IChwMSkgb3Igbm8gdCAocDIpIG9yIG5vdChwMylcIlxyXG4gICAgZXhwcl9pbmNvbXBsZXRpdHVkOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOntkb21pbmlvOm51bWJlciwgZXhwcjpzdHJpbmd9XHJcbiAgICB9IFxyXG4gICAgLy9leHByX2luY29tcGxldGl0dWRfanM6IHN0cmluZyAvL3NlIGNyZWEgYWwgY29tcGlsYXJcclxuICAgIGV4cHJfaW5jb21wbGV0aXR1ZF9qczoge1xyXG4gICAgICAgIFtrZXkgaW4gbnVtYmVyXTp7ZG9taW5pbzpudW1iZXIsIGV4cHI6c3RyaW5nfVxyXG4gICAgfSBcclxuICAgIGRpc3BhcmFkb3I6IElkVmFyaWFibGUgLy9cInA5XCJcclxuICAgIC8vZmlsdHJvOiBzdHJpbmcgLy9cInAzPj0xOFwiXHJcbiAgICBmaWx0cm86IHtcclxuICAgICAgICBba2V5IGluIG51bWJlcl06e2RvbWluaW86bnVtYmVyLCBleHByOnN0cmluZ31cclxuICAgIH0gXHJcbiAgICAvL2ZpbHRyb19qczogc3RyaW5nIC8vc2UgY3JlYSBhbCBjb21waWxhclxyXG4gICAgZmlsdHJvX2pzOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOntkb21pbmlvOm51bWJlciwgZXhwcjpzdHJpbmd9XHJcbiAgICB9IFxyXG4gICAgb3JkZW46IHtcclxuICAgICAgICB2YXJpYWJsZTpJZFZhcmlhYmxlXHJcbiAgICAgICAgb3JkZW46IDF8LTFcclxuICAgIH1bXSAvL1tcInAzXCIsIFwicDJcIiwgXCJwMVwiLCBcInAwXCJdLCAvLyBwMCBlcyBjb25zdHJ1aWRhLCBubyB2YSBlbiBwYXLDoW1ldHJvcywgc2UgcG9uZSBwYXJhIHF1ZSBlbCBvcmRlbiBzZWEgZGV0ZXJtaW7DrXN0aWNvXHJcbiAgICBwYXJhbWV0cm9zOklkVmFyaWFibGVbXS8vIFtcInAxXCIsXCJwMlwiLFwicDNcIiwgXCJwNFwiLCBcInA1XCIsIFwicDZcIl0sIC8vIHZhcmlhYmxlcyBxdWUgYW51bGFuIGFsIGRpc3BhcmFkb3JcclxuICAgIGNhbnRpZGFkX3NvcnRlYWJsZXM6IElkVmFyaWFibGVcclxuICAgIGNhbnRpZGFkX3RvdGFsOiBJZFZhcmlhYmxlXHJcbiAgICByZXN1bHRhZG86IElkVmFyaWFibGUgLy9cInAxMVwiXHJcbiAgICByZXN1bHRhZG9fbWFudWFsOiBJZFZhcmlhYmxlIC8vXCJwMTFcIlxyXG4gICAgc29ydGVhZG9fbW9zdHJhcj86IHtzb3VyY2U6SWRWYXJpYWJsZSwgdGFyZ2V0OklkVmFyaWFibGV9W10sXHJcbiAgICBpbmNvbXBsZXRhczogSWRWYXJpYWJsZVxyXG4gICAgdmFyaWFibGVCb3RvbkZvcm11bGFyaW9VQTogSWRWYXJpYWJsZS8vJyRCLkY6UzFfUCdcclxuICAgIHZhcmlhYmxlQm90b25Gb3JtdWxhcmlvVUFJbmRpdmlkdWFsPzogSWRWYXJpYWJsZSAvLyckQi5GOkkxJ1xyXG4gICAgaWRfZm9ybXVsYXJpb19pbmRpdmlkdWFsPzogSWRGb3JtdWxhcmlvIC8vICdGOkkxJ1xyXG4gICAgaWRfZm9ybXVsYXJpb19wYWRyZT86IElkRm9ybXVsYXJpbyAvLyAnRjpTMSdcclxufSAmIChDb25maWd1cmFjaW9uU29ydGVvSGFzaCB8IENvbmZpZ3VyYWNpb25Tb3J0ZW9UYWJsYSlcclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdG9QbGFpbkZvclBrKGZvclBrOkZvclBrKTpQbGFpbkZvclBre1xyXG4gICAgLy8gQHRzLWlnbm9yZSBzYWJlbW9zIHF1ZSBoYXkgcXVlIGhhY2VyIHVuIEpTT05cclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShmb3JQayk7XHJcbn1cclxuXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICAgIG5hbWVzcGFjZSBteU93bntcclxuICAgICAgICBpbnRlcmZhY2UgQWRkclBhcmFtcyB7XHJcbiAgICAgICAgICAgIHN0YXRlX2ZvclBrOnN0cmluZ1xyXG4gICAgICAgICAgICBzdGF0ZV9waWxhRm9yUGs6c3RyaW5nXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEaXJlY2Npb25BY2Npb24gPSAnYXZhbmNlJyB8ICdyZXRyb2Nlc28nIHwgJ2JsYW5xdWVvJ1xyXG5cclxuZXhwb3J0IHR5cGUgRXN0YWRvQWNjaW9uID0ge1xyXG4gICAgb3BlcmF0aXZvOiBzdHJpbmdcclxuICAgIHRhcmVhOiAnZW5jdSd8J3JlY3UnfCdzdXBlJ1xyXG4gICAgZXN0YWRvOiBzdHJpbmdcclxuICAgIGVhY2Npb246IHN0cmluZ1xyXG4gICAgY29uZGljaW9uOiBzdHJpbmdcclxuICAgIGVzdGFkb19kZXN0aW5vOiBzdHJpbmdcclxuICAgIHRhcmVhX2Rlc3Rpbm86IHN0cmluZ1xyXG4gICAgZWFjY2lvbl9kaXJlY2Npb246IERpcmVjY2lvbkFjY2lvblxyXG4gICAgcGF0aF9pY29ub19zdmc6IHN0cmluZ1xyXG4gICAgbm9tYnJlX3Byb2NlZHVyZTogc3RyaW5nXHJcbiAgICBkZXNhY3RpdmFfYm90b246IGJvb2xlYW5cclxuICAgIGNvbmZpcm1hOiBib29sZWFuXHJcbn0iXX0=
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdGlwb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUFFYixrQ0FBa0M7SUF1ZGxDLFNBQWdCLFlBQVksQ0FBQyxLQUFXO1FBQ3BDLCtDQUErQztRQUMvQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUhELG9DQUdDO0lBRVUsUUFBQSxRQUFRLEdBQStDLE1BQU0sQ0FBQyxRQUFRLENBQUE7SUFDdEUsUUFBQSxLQUFLLEdBQTBELE1BQU0sQ0FBQyxLQUFLLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuaW1wb3J0IHtTdHJ1Y3R1cmUsIEZlZWRiYWNrfSBmcm9tIFwicm93LXZhbGlkYXRvclwiO1xyXG5pbXBvcnQgKiBhcyBMaWtlQXIgZnJvbSBcImxpa2UtYXJcIjtcclxuXHJcbmV4cG9ydCB0eXBlIE1vZG9BbG1hY2VuYW1pZW50byA9ICdzZXNzaW9uJ3wgLy8gY3VhbmRvIHNlYSBwYXJhIHVuYSBzb2xhIHBlc3Rhw7FhLCBzZSB1c2EgZW4gbW9kbyBkaXJlY3RvLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9jYWwnICAgIC8vIHBhcmEgdG9kbyBlbCBkaXNwb3NpdGl2bywgc2UgdXNhIGFsIGNhcmdhciBob2phcyBkZSBydXRhIGVudHJlc1xyXG5cclxuZXhwb3J0IHR5cGUgSWRPcGNpb24gPSBudW1iZXJcclxuZXhwb3J0IHR5cGUgSWRPcGVyYXRpdm8gPSAnZXRvaTIxMSd8J2VhaDIwMjInfCdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkVmFyaWFibGUgPSAndjEnfCd2Mid8J3YzJ3wnZXRjLi4uJ3wndmRvbWluaW8nfCckcDAnXHJcbmV4cG9ydCB0eXBlIElkUHJlZ3VudGEgPSAnUDEnfCdQMid8J2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRCbG9xdWUgPSAnQjEnfCdCMid8J2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRGb3JtdWxhcmlvID0gJ0YxJ3wnRjInfCdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkVW5pZGFkQW5hbGlzaXMgPSAndml2aWVuZGFzJ3wnaG9nYXJlcyd8J3BlcnNvbmFzJ1xyXG5leHBvcnQgdHlwZSBJZEJvdG9uRm9ybXVsYXJpbyA9ICdCRjpGMSd8J0JGOkYyJ3wnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZENvbnNpc3RlbmNpYSA9ICdDT05TMSd8J0NPTlMyJ3wnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZFRleHRvID0gJ0QzMF9SRUYnfCdNRVNfUkVGJ3wnU0VNX1JFRid8J2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRGaWx0cm8gPSAnRklMVFJPMScgfCAnRklMVFJPMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZENhc2lsbGVybyA9IElkVmFyaWFibGUgfCBJZFByZWd1bnRhIHwgSWRCbG9xdWUgfCBJZEZvcm11bGFyaW8gfCBJZEZpbHRybyB8IElkT3BjaW9uXHJcbmV4cG9ydCB0eXBlIElkRmluID0gJ2Zpbic7IC8vIG5ldmVyIC8vIFRPRE86IHBvZGVyIHBvbmVyICdGSU4nXHJcbmV4cG9ydCB0eXBlIElkRGVzdGlubyA9IElkUHJlZ3VudGEgfCBJZEJsb3F1ZSB8IElkRmluIHwgSWRGaWx0cm8gXHJcbmV4cG9ydCB0eXBlIFZhbG9yID0gc3RyaW5nfG51bWJlcnxudWxsO1xyXG5leHBvcnQgdHlwZSBUaXBvY0Rlc3Rpbm9zID0gJ1AnfCdDUCd8J0InfCdGSUxUUk8nfCdCRidcclxuZXhwb3J0IHR5cGUgVGlwb2MgPSBUaXBvY0Rlc3Rpbm9zIHwgJ0YnfCdPJ3wnT00nfCdDT05TJyB8J1RFWFRPJyB8ICdMSUJSRSdcclxuXHJcbmV4cG9ydCB0eXBlIElkVGFyZWEgPSAnZW5jdSd8J3JlY3UnfCdzdXBlJztcclxuXHJcbmV4cG9ydCB0eXBlIEZlZWRiYWNrVmFyaWFibGUgPSBGZWVkYmFjazxJZFZhcmlhYmxlLCBJZEZpbj5cclxuXHJcbmV4cG9ydCB0eXBlIFRpcG9WYXJpYWJsZXMgPSAndGV4dG8nfCdudW1lcm8nfCdmZWNoYSd8J2hvcmFzJ1xyXG5cclxuZXhwb3J0IHR5cGUgRGVzcGxpZWd1ZSA9ICdob3Jpem9udGFsJ3wnb2N1bHRhJ1xyXG5cclxuZXhwb3J0IHR5cGUgQ2FzaWxsZXJvQmFzZSA9IHtcclxuICAgIGlkX2Nhc2lsbGVybz86c3RyaW5nXHJcbiAgICB0aXBvYzpUaXBvY1xyXG4gICAgY2FzaWxsZXJvOklkQ2FzaWxsZXJvXHJcbiAgICBub21icmU6c3RyaW5nXHJcbiAgICBzYWx0bzpJZERlc3Rpbm98SWRGaW58bnVsbFxyXG4gICAgdmVyX2lkOnN0cmluZ3xudWxsXHJcbiAgICBkZXNwbGllZ3VlRW5jYWJlemFkbzonbGF0ZXJhbCd8J3N1cGVyaW9yJ3xudWxsXHJcbiAgICBkZXNwbGllZ3VlQ29udGVuaWRvOid2ZXJ0aWNhbCd8J2hvcml6b250YWwnfG51bGxcclxuICAgIGRlc3BsaWVndWVUaXBvSW5wdXQ6J3RlbCd8bnVsbFxyXG4gICAgZGVzcGxpZWd1ZU9jdWx0YTpib29sZWFufG51bGxcclxuICAgIGxlZXI6Ym9vbGVhbnxudWxsXHJcbiAgICBhY2xhcmFjaW9uOnN0cmluZ3xudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzpJZFZhcmlhYmxlfG51bGxcclxuICAgIHZhcl9uYW1lPzpJZFZhcmlhYmxlfG51bGxcclxuICAgIHZhcl9uYW1lX2VzcGVjaWFsPzpzdHJpbmd8bnVsbFxyXG4gICAgdGlwb3Zhcj86VGlwb1ZhcmlhYmxlc3wnb3BjaW9uZXMnfCdzaV9ubyd8bnVsbFxyXG4gICAgY2FzaWxsZXJvcz86Q2FzaWxsZXJvc0ltcGxlbWVudGFkb3NbXXxudWxsXHJcbiAgICBleHByZXNpb25faGFiaWxpdGFyPzpzdHJpbmdcclxuICAgIGV4cHJlc2lvbl9oYWJpbGl0YXJfanM/OnN0cmluZ1xyXG4gICAgZXhwcmVzaW9uX2F1dG9pbmdyZXNhcj86c3RyaW5nXHJcbiAgICBleHByZXNpb25fYXV0b2luZ3Jlc2FyX2pzPzpzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uPUNhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonTydcclxuICAgIGNhc2lsbGVybzpJZE9wY2lvblxyXG4gICAgY2FzaWxsZXJvczpQcmVndW50YVNpbXBsZVtdXHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86bnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGNpb25TaT1PcGNpb24gJiB7XHJcbiAgICBjYXNpbGxlcm86MVxyXG4gICAgbm9tYnJlOidTw60nXHJcbiAgICBjYXNpbGxlcm9zOlByZWd1bnRhU2ltcGxlW10gXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvbk5vPU9wY2lvbiAmIHtcclxuICAgIGNhc2lsbGVybzoyXHJcbiAgICBub21icmU6J05vJ1xyXG4gICAgY2FzaWxsZXJvczpQcmVndW50YVNpbXBsZVtdIFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGNpb25NdWx0aXBsZT1DYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6J09NJ1xyXG4gICAgdGlwb3Zhcjonb3BjaW9uZXMnXHJcbiAgICB2YXJfbmFtZTpJZFZhcmlhYmxlXHJcbiAgICBjYXNpbGxlcm9zOltPcGNpb25TaSwgT3BjaW9uTm9dXHJcbiAgICBjYWxjdWxhZGE/OmJvb2xlYW5cclxuICAgIGxpYnJlPzpib29sZWFuXHJcbiAgICB2YWxvcl9uc19uYzogYW55XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhQmFzZSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonUCdcclxuICAgIG9wdGF0aXZvOmJvb2xlYW58bnVsbFxyXG4gICAgY2FzaWxsZXJvOklkUHJlZ3VudGFcclxuICAgIGNhbGN1bGFkYTogYm9vbGVhbnxudWxsXHJcbiAgICBsaWJyZTogYm9vbGVhbnxudWxsXHJcbiAgICB2YWxvcl9uc19uYzogYW55XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhU2ltcGxlID0gUHJlZ3VudGFCYXNlICYge1xyXG4gICAgdGlwb3ZhcjpUaXBvVmFyaWFibGVzXHJcbiAgICB2YXJfbmFtZTpJZFZhcmlhYmxlXHJcbiAgICBsb25naXR1ZDpzdHJpbmdcclxuICAgIHNhbHRvX25zX25jOklkVmFyaWFibGV8bnVsbFxyXG4gICAgY2FzaWxsZXJvczogUHJlZ3VudGFTaW1wbGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUNvblNpTm8gPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB0aXBvdmFyOidzaV9ubydcclxuICAgIHZhcl9uYW1lOklkVmFyaWFibGVcclxuICAgIHNhbHRvX25zX25jOklkVmFyaWFibGV8bnVsbFxyXG4gICAgY2FzaWxsZXJvczogW09wY2lvblNpLCBPcGNpb25Ob11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFDb25PcGNpb25lcyA9IFByZWd1bnRhQmFzZSAmIHtcclxuICAgIHRpcG92YXI6J29wY2lvbmVzJ1xyXG4gICAgdmFyX25hbWU6SWRWYXJpYWJsZVxyXG4gICAgc2FsdG9fbnNfbmM6SWRWYXJpYWJsZXxudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBPcGNpb25bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUNvbk9wY2lvbmVzTXVsdGlwbGVzID0gUHJlZ3VudGFCYXNlICYge1xyXG4gICAgdmFyX25hbWU/Om51bGxcclxuICAgIHRpcG92YXI/Om51bGxcclxuICAgIGNhc2lsbGVyb3M6IE9wY2lvbk11bHRpcGxlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGE9UHJlZ3VudGFTaW1wbGUgfCBQcmVndW50YUNvblNpTm8gfCBQcmVndW50YUNvbk9wY2lvbmVzIHwgUHJlZ3VudGFDb25PcGNpb25lc011bHRpcGxlc1xyXG5cclxuZXhwb3J0IHR5cGUgQ29uanVudG9QcmVndW50YXM9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonQ1AnXHJcbiAgICBjYXNpbGxlcm86SWRQcmVndW50YVxyXG4gICAgdmFyX25hbWU/Om51bGxcclxuICAgIHRpcG92YXI/Om51bGxcclxuICAgIGNhc2lsbGVyb3M6UHJlZ3VudGFbXVxyXG59XHJcblxyXG4vKlxyXG5leHBvcnQgaW50ZXJmYWNlIElDb250ZW5pZG8gZXh0ZW5kcyBDYXNpbGxlcm9CYXNlIHtcclxuICAgIGNhc2lsbGVyb3M6SUNvbnRlbmlkb1tdXHJcbn1cclxuKi9cclxuXHJcbmV4cG9ydCB0eXBlIEZpbHRybyA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonRklMVFJPJ1xyXG4gICAgY2FzaWxsZXJvOklkRmlsdHJvXHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86bnVsbFxyXG4gICAgY2FsY3VsYWRhPzpudWxsXHJcbiAgICBsaWJyZT86bnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb250ZW5pZG9Gb3JtdWxhcmlvPUJsb3F1ZXxQcmVndW50YXxDb25qdW50b1ByZWd1bnRhc3xGaWx0cm98Qm90b25Gb3JtdWxhcmlvfENvbnNpc3RlbmNpYXxUZXh0b1xyXG5cclxuZXhwb3J0IHR5cGUgQmxvcXVlID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidCJ1xyXG4gICAgY2FzaWxsZXJvOklkQmxvcXVlXHJcbiAgICBjYXNpbGxlcm9zOkNvbnRlbmlkb0Zvcm11bGFyaW9bXVxyXG4gICAgdmFyX25hbWU/Om51bGxcclxuICAgIHRpcG92YXI/Om51bGxcclxuICAgIHVuaWRhZF9hbmFsaXNpcz86SWRVbmlkYWRBbmFsaXNpc1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb25zaXN0ZW5jaWEgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6J0NPTlMnXHJcbiAgICBjYXNpbGxlcm86SWRDb25zaXN0ZW5jaWFcclxuICAgIHZhcl9uYW1lPzpudWxsXHJcbiAgICB0aXBvdmFyPzpudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzpudWxsXHJcbn1cclxuZXhwb3J0IHR5cGUgVGV4dG8gPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6J1RFWFRPJ1xyXG4gICAgY2FzaWxsZXJvOklkVGV4dG9cclxuICAgIHZhcl9uYW1lPzpudWxsXHJcbiAgICB0aXBvdmFyPzpudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzpudWxsXHJcbn1cclxuZXhwb3J0IHR5cGUgTGlicmUgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6J0xJQlJFJ1xyXG4gICAgY2FzaWxsZXJvOklkVGV4dG9cclxuICAgIHZhcl9uYW1lPzpudWxsXHJcbiAgICB0aXBvdmFyPzpudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzpudWxsXHJcbn1cclxuZXhwb3J0IHR5cGUgQm90b25Gb3JtdWxhcmlvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidCRidcclxuICAgIGNhc2lsbGVybzpJZEJvdG9uRm9ybXVsYXJpb1xyXG4gICAgdmFyX25hbWU/Om51bGxcclxuICAgIHRpcG92YXI/Om51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/Om51bGxcclxuICAgIHZhcl9uYW1lX0JGPzpJZFZhcmlhYmxlXHJcbiAgICBsb25naXR1ZD86c3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEZvcm11bGFyaW8gPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6J0YnXHJcbiAgICBjYXNpbGxlcm86SWRGb3JtdWxhcmlvXHJcbiAgICBmb3JtdWxhcmlvX3ByaW5jaXBhbDpib29sZWFuXHJcbiAgICBjYXNpbGxlcm9zOkNvbnRlbmlkb0Zvcm11bGFyaW9bXVxyXG4gICAgdmFyX25hbWU/Om51bGxcclxuICAgIHRpcG92YXI/Om51bGxcclxuICAgIGhlcm1hbm8/OnRydWVcclxuICAgIHVuaWRhZF9hbmFsaXNpczpJZFVuaWRhZEFuYWxpc2lzXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhc2lsbGVyb3NJbXBsZW1lbnRhZG9zPUZvcm11bGFyaW98QmxvcXVlfEZpbHRyb3xDb25qdW50b1ByZWd1bnRhc3xQcmVndW50YXxPcGNpb25NdWx0aXBsZXxPcGNpb258Qm90b25Gb3JtdWxhcmlvfENvbnNpc3RlbmNpYXxUZXh0b3xMaWJyZVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FtcG9Qa1JhaXogPSAndml2aWVuZGEnfCdldGMuLi4nO1xyXG5cclxuZXhwb3J0IHR5cGUgRm9yUGtSYWl6PXtcclxuICAgIGZvcm11bGFyaW86SWRGb3JtdWxhcmlvLCBcclxuICAgIHZpdmllbmRhOklkRW5jXHJcbn0gJiB7XHJcbiAgICBbY2FtcG8gaW4gQ2FtcG9Qa1JhaXpdPzpudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FtcG9QayA9ICd2aXZpZW5kYSd8J2hvZ2FyJ3wncGVyc29uYSd8J2V0Yy4uLic7XHJcbmV4cG9ydCB0eXBlIEZvclBrID0ge1xyXG4gICAgZm9ybXVsYXJpbzpJZEZvcm11bGFyaW8sIFxyXG4gICAgdml2aWVuZGE6SWRFbmNcclxufSAmIHtcclxuICAgIFtjYW1wbyBpbiBDYW1wb1BrXT86bnVtYmVyXHJcbn1cclxuZXhwb3J0IHR5cGUgUGxhaW5Gb3JQaz0ne1wiZm9ybXVsYXJpb1wiOlwiRjpGMVwiLFwidml2aWVuZGFcIjpcIjEwMjAyXCIsXCJwZXJzb25hXCI6bnVsbH0nfCdldGMuLi4nO1xyXG5cclxuZXhwb3J0IHR5cGUgT2JqZXRvTnVtZXJhZG9PQXJyYXk8VD4gPSBUW10gfCB7W24gaW4gbnVtYmVyXTpUfVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzcHVlc3Rhc1VuYVVBID0ge1xyXG4gICAgW3ByZWd1bnRhIGluIElkVmFyaWFibGVdOlZhbG9yXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJlc3B1ZXN0YUxhc1VBID0ge1xyXG4gICAgW3VhIGluIElkVW5pZGFkQW5hbGlzaXNdOk9iamV0b051bWVyYWRvT0FycmF5PFJlc3B1ZXN0YXM+XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJlc3B1ZXN0YXM9IFJlc3B1ZXN0YXNVbmFVQSAmIFJlc3B1ZXN0YUxhc1VBXHJcblxyXG5leHBvcnQgdHlwZSBSZXNwdWVzdGFzUmFpej1SZXNwdWVzdGFzICYge1xyXG4gICAgcmVzdW1lbkVzdGFkbzpSZXN1bWVuRXN0YWRvXHJcbiAgICByZXN1bWVuRXN0YWRvU3VwOlJlc3VtZW5Fc3RhZG9cclxuICAgICRkaXJ0eTpib29sZWFuXHJcbiAgICBjb2ROb1JlYTogc3RyaW5nfG51bGxcclxuICAgIGNvZFJlYTogbnVtYmVyfG51bGxcclxuICAgIGNvZE5vUmVhU3VwOiBzdHJpbmd8bnVsbFxyXG4gICAgY29kUmVhU3VwOiBudW1iZXJ8bnVsbFxyXG59XHJcblxyXG4vKlxyXG4gICAgYWNsYXJhY2nDs246XHJcbiAgICB7djE6J3gnLCB2MjoneCcsIHBlcnNvbmFzOlt7cDE6MSwgcDI6J3h9LHtwMToyLCBwMjp4fV0sIG1hc2NvdGFzOltdIH1cclxuICAgIGVzdMOhIGFuaWRhZG8gcG9yIHVuaWRhZCBkZSBhbsOhbGlzaXNcclxuKi9cclxuXHJcbmV4cG9ydCB0eXBlIFVuaWRhZEFuYWxpc2lzID0ge1xyXG4gICAgdW5pZGFkX2FuYWxpc2lzOklkVW5pZGFkQW5hbGlzaXMsIFxyXG4gICAgcGFkcmU/OklkVW5pZGFkQW5hbGlzaXMsIFxyXG4gICAgcGtfYWdyZWdhZGE6Q2FtcG9QaywgXHJcbiAgICBwcmluY2lwYWw/OmJvb2xlYW4sIFxyXG4gICAgaGlqYXM6IHtbayBpbiBJZFVuaWRhZEFuYWxpc2lzXT86IFVuaWRhZEFuYWxpc2lzfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBURU0gPSB7XHJcbiAgICBub21jYWxsZTpzdHJpbmdcclxuICAgIGRvbWluaW86bnVtYmVyXHJcbiAgICBzZWN0b3I6c3RyaW5nXHJcbiAgICBlZGlmaWNpbzpzdHJpbmdcclxuICAgIGVudHJhZGE6c3RyaW5nXHJcbiAgICBucm9jYXRhc3RyYWw6c3RyaW5nXHJcbiAgICBwaXNvOnN0cmluZ1x0XHJcbiAgICBkZXBhcnRhbWVudG86c3RyaW5nXHJcbiAgICBoYWJpdGFjaW9uOnN0cmluZ1xyXG4gICAgY2FzYTpzdHJpbmdcclxuICAgIHByaW9yaWRhZDoxfDJ8M1xyXG4gICAgb2JzZXJ2YWNpb25lczpzdHJpbmdcclxuICAgIHNlbGVjY2lvbmFkbzpudW1iZXIsXHJcbiAgICBjaXRhOiBzdHJpbmcsXHJcbiAgICBjYXJnYTpzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzdW1lbkVzdGFkbyA9ICd2YWNpbycgfCAnY29uIHByb2JsZW1hcycgfCAnaW5jb21wbGV0bycgfCAnb2snIHwgJ25vIHJlYScgfCAnY2l0YSBwYWN0YWRhJztcclxuXHJcbmV4cG9ydCB0eXBlIEluZm9UYXJlYT0ge1xyXG4gICAgdGFyZWE6IElkVGFyZWFcclxuICAgIG5vdGFzPzpzdHJpbmdcclxuICAgIGZlY2hhX2FzaWduYWNpb24/OkRhdGVcclxuICAgIGFzaWduYWRvPzpzdHJpbmdcclxuICAgIG1haW5fZm9ybTogSWRGb3JtdWxhcmlvXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFZpc2l0YT17XHJcbiAgICBmZWNoYTogc3RyaW5nIHwgbnVsbFxyXG4gICAgaG9yYTogc3RyaW5nIHwgbnVsbFxyXG4gICAgaWRwZXI6IHN0cmluZyB8IG51bGxcclxuICAgIG9ic2VydmFjaW9uZXM6IHN0cmluZyB8IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgIERhdG9zSGRyVWFQcGFsPSB7XHJcbiAgICB0YXJlYTogSW5mb1RhcmVhXHJcbiAgICB0ZW06IFRFTVxyXG4gICAgXHJcbi8qXHJcbiAgICBhY2xhcmFjacOzbjpcclxuICAgIHt2MToneCcsIHYyOid4JywgcGVyc29uYXM6W3twMToxLCBwMjoneH0se3AxOjIsIHAyOnh9XSwgbWFzY290YXM6W10gfVxyXG4gICAgZXN0w6EgYW5pZGFkbyBwb3IgdW5pZGFkIGRlIGFuw6FsaXNpc1xyXG4qL1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJZENhcmdhPVwiMjAyMC0wNy0wN1wifFwiMjAyMC0wNy0wOFwiXHJcblxyXG5leHBvcnQgdHlwZSBFc3RhZG9DYXJnYT0ncmVzdW1lbid8J3JlbGV2YW1pZW50byd8J3JlY2libydcclxuXHJcbmV4cG9ydCB0eXBlIENhcmdhPXtcclxuICAgIGZlY2hhOiBEYXRlXHJcbiAgICBlc3RhZG9fY2FyZ2E6IEVzdGFkb0NhcmdhXHJcbiAgICBuZWNlc2FyaWFzOiBudW1iZXJcclxuICAgIG9ic2VydmFjaW9uZXM6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYXJnYXM9e1xyXG4gICAgW2lkQ2FyZ2EgaW4gSWRDYXJnYV06IENhcmdhXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEVzdHJ1Y3R1cmFSb3dWYWxpZGF0b3I9U3RydWN0dXJlPElkVmFyaWFibGUsVmFsb3IsSWRGaW4+O1xyXG5cclxuZXhwb3J0IHR5cGUgTW9kb0Rlc3BsaWVndWUgPSAnbWV0YWRhdG9zJ3wncmVsZXZhbWllbnRvJ3wnUERGJ1xyXG5cclxuZXhwb3J0IHR5cGUgSW5mb0Zvcm11bGFyaW89e1xyXG4gICAgY2FzaWxsZXJvczpGb3JtdWxhcmlvLCAvLyBjYXNpbGxlcm9zIGFwbGFuYWRvc1xyXG4gICAgZXN0cnVjdHVyYVJvd1ZhbGlkYXRvcjpFc3RydWN0dXJhUm93VmFsaWRhdG9yIC8vIGVzdHJ1Y3R1cmEgZGUgdmFyaWFibGVzIHBhcmEgZWwgUm93VmFsaWRhdG9yXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElkUmVzdWx0YWRvID0gJ0FWRVJJR1VBUid8J1RPRE8nO1xyXG5cclxuZXhwb3J0IHR5cGUgVGFyZWFzRXN0cnVjdHVyYT17XHJcbiAgICBbaWRUYXJlYSBpbiBJZFRhcmVhXTp7XHJcbiAgICAgICAgcmVzdWx0YWRvczp7XHJcbiAgICAgICAgICAgIFtpZFJlc3VsdGFkbyBpbiBJZFJlc3VsdGFkb106e1xyXG4gICAgICAgICAgICAgICAgZGVzY3JpcGNpb246c3RyaW5nXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEVzdHJ1Y3R1cmEgPSB7XHJcbiAgICBmb3JtdWxhcmlvczp7IFxyXG4gICAgICAgIFtub21icmVGb3JtdWxhcmlvIGluIElkRm9ybXVsYXJpb106SW5mb0Zvcm11bGFyaW9cclxuICAgIH1cclxuICAgIHVuaWRhZGVzX2FuYWxpc2lzOnsgXHJcbiAgICAgICAgW2lkVW5pZGFkQW5hbGlzaXMgaW4gSWRVbmlkYWRBbmFsaXNpc106IFVuaWRhZEFuYWxpc2lzXHJcbiAgICB9XHJcbiAgICB0YXJlYXM6VGFyZWFzRXN0cnVjdHVyYVxyXG4gICAgdGltZXN0YW1wOm51bWJlclxyXG4gICAgb3BlcmF0aXZvOklkT3BlcmF0aXZvXHJcbiAgICBjb25maWdTb3J0ZW86IENvbmZpZ3VyYWNpb25Tb3J0ZW9cclxuXHRub1JlYXM6IHsgXHJcblx0ICAgICAgbm9fcmVhOiBzdHJpbmcgIFxyXG5cdFx0ICBkZXNjcmlwY2lvbjogc3RyaW5nXHJcblx0XHQgIGdydXBvOiAgICAgc3RyaW5nICAgIFxyXG5cdFx0ICB2YXJpYWJsZTogIHN0cmluZ1xyXG5cdFx0ICB2YWxvcjogICAgIHN0cmluZ1xyXG5cdFx0ICBncnVwbzA6ICAgIHN0cmluZ1xyXG5cdH1bXVxyXG4gICAgbm9SZWFzU3VwOiB7IFxyXG4gICAgICAgIG5vX3JlYV9zdXA6IHN0cmluZyAgXHJcbiAgICAgICAgZGVzY19ub3JlYV9zdXA6IHN0cmluZ1xyXG4gICAgICAgIGdydXBvX3N1cDogICAgIHN0cmluZyAgICBcclxuICAgICAgICB2YXJpYWJsZV9zdXA6ICBzdHJpbmdcclxuICAgICAgICB2YWxvcl9zdXA6ICAgICBzdHJpbmdcclxuICAgICAgICBncnVwbzBfc3VwOiAgICBzdHJpbmdcclxuICB9W11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRFbmMgPSAxMzAwMzF8MTMwMDMyO1xyXG5leHBvcnQgdHlwZSBJbmZvcm1hY2lvbkhkcj17W2VuYyBpbiBJZEVuY106IERhdG9zSGRyVWFQcGFsfVxyXG5cclxuZXhwb3J0IHR5cGUgQ2Fzb1N0YXRlPXtcclxuICAgIG9wY2lvbmVzOnsgLy8gZGF0b3MgZGUgbmF2ZWdhY2nDs24gcXVlIGVsaWplIGVsIHVzdWFyaW9cclxuICAgICAgICBmb3JQazpGb3JQa3xudWxsIC8vIMOtbmRpY2UgZGVudHJvIGRlIGxhcyB1bmlkYWRlcyBkZSBhbsOhbGlzaXMuIE51bGwgPSBlbiBob2phIGRlIHJ1dGFcclxuICAgICAgICBwaWxhRm9yUGs6Rm9yUGtbXVxyXG4gICAgICAgIG1vZG9EZXNwbGllZ3VlOk1vZG9EZXNwbGllZ3VlXHJcbiAgICAgICAgYmllbnZlbmlkbzpib29sZWFuXHJcbiAgICAgICAgbW9kb0RpcmVjdG86Ym9vbGVhblxyXG4gICAgICAgIG1vZG9Cb3JyYXJSZXNwdWVzdGE6SWRWYXJpYWJsZXxudWxsXHJcbiAgICAgICAgY29uQ2FtcG9PcGNpb25lczpib29sZWFuXHJcbiAgICAgICAgc2FsdG9BdXRvbWF0aWNvOmJvb2xlYW5cclxuICAgIH0sIFxyXG4gICAgbW9kbzp7IC8vIG5vIHNlIHBlcnNpc3RlXHJcbiAgICAgICAgZGVtbzpib29sZWFuXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERlZk9wZXJhdGl2byA9IHtcclxuICAgIGVzTm9SZWE6KHJlc3B1ZXN0YXM6UmVzcHVlc3Rhcyk9PiB7Y29kTm9SZWE6c3RyaW5nfG51bGwsIGVzTm9SZWE6Ym9vbGVhbn0sXHJcbiAgICBlc05vUmVhU3VwOihyZXNwdWVzdGFzOlJlc3B1ZXN0YXMpPT4ge2NvZE5vUmVhU3VwOnN0cmluZ3xudWxsLCBlc05vUmVhU3VwOmJvb2xlYW59LFxyXG4gICAgZXNSZWFsaXphZGE6KHJlc3B1ZXN0YXM6UmVzcHVlc3Rhcyk9PiB7Y29kUmVhOm51bWJlcnxudWxsLCBlc1JlYTpib29sZWFufSxcclxuICAgIGVzUmVhbGl6YWRhU3VwOihyZXNwdWVzdGFzOlJlc3B1ZXN0YXMpPT4ge2NvZFJlYVN1cDpudW1iZXJ8bnVsbCwgZXNSZWFTdXA6Ym9vbGVhbn0sXHJcbiAgICBVQXByaW5jaXBhbDogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIGRlZlVBOntbaSBpbiBJZFVuaWRhZEFuYWxpc2lzXTp7cGs6SWRWYXJpYWJsZSwgaW5jbHVpZGFzOklkVW5pZGFkQW5hbGlzaXNbXSwgaWRzRm9yOklkRm9ybXVsYXJpb1tdfX0sXHJcbiAgICBkZWZGb3I6e1tmIGluIElkRm9ybXVsYXJpb106ey8qYXJib2xVQTpJZFVuaWRhZEFuYWxpc2lzW10sICovIGhlcm1hbm8/OnRydWV9fVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcyA9IHtcclxuICAgIHJlc3B1ZXN0YXM6e1t1YSBpbiBJZFVuaWRhZEFuYWxpc2lzXTpSZXNwdWVzdGFzUmFpeltdfVxyXG4gICAgbW9kb0FsbWFjZW5hbWllbnRvOk1vZG9BbG1hY2VuYW1pZW50b1xyXG4gICAgcGVyc29uYTpzdHJpbmdcclxuICAgIHRhcmVhOklkVGFyZWFcclxuICAgIGlkcGVyOnN0cmluZ1xyXG4gICAgY2FyZ2FzOiBDYXJnYXNcclxuICAgIGluZm9ybWFjaW9uSGRyOiBJbmZvcm1hY2lvbkhkclxyXG4gICAgc29sb0xlY3R1cmE6IGJvb2xlYW5cclxuICAgIHRva2VuPzpzdHJpbmdcclxuICAgIG51bV9zaW5jcm8/Om51bWJlclxyXG4gICAgdGltZXN0YW1wRXN0cnVjdHVyYT86bnVtYmVyXHJcbn1cclxuXHJcbnR5cGUgQ29uZmlndXJhY2lvblNvcnRlb1RhYmxhID0ge1xyXG4gICAgbWV0b2RvOiBcInRhYmxhXCIsXHJcbiAgICBwYXJhbV9tZXRvZG86IHtcclxuICAgICAgICB0YWJsYTpzdHJpbmdbXSxcclxuICAgICAgICB2YXJfbGV0cmE6SWRWYXJpYWJsZSxcclxuICAgIH0gICAgXHJcbn1cclxuXHJcbnR5cGUgQ29uZmlndXJhY2lvblNvcnRlb0hhc2ggPSB7XHJcbiAgICBtZXRvZG86IFwiaGFzaFwiLFxyXG4gICAgcGFyYW1fbWV0b2RvOiB7XHJcbiAgICAgICAgdmFyX2NvZWY6IFtcclxuICAgICAgICAgICAge3ZhcjpJZFZhcmlhYmxlLCBjb2VmOm51bWJlcn0sXHJcbiAgICAgICAgICAgIHt2YXI6SWRWYXJpYWJsZSwgY29lZjpudW1iZXJ9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgZGl2aXNvcjogbnVtYmVyXHJcbiAgICB9ICAgIFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb25maWd1cmFjaW9uU29ydGVvID0ge1trZXkgaW4gSWRGb3JtdWxhcmlvXTpDb25maWd1cmFjaW9uU29ydGVvRm9ybXVsYXJpb31cclxuXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWNpb25Tb3J0ZW9Gb3JtdWxhcmlvID0ge1xyXG4gICAgdW5pZGFkX2FuYWxpc2lzOiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgdW5pZGFkX2FuYWxpc2lzX3BhZHJlOiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgLy9leHByX2luY29tcGxldGl0dWQ6IHN0cmluZyAvL1wibm90IChwMSkgb3Igbm8gdCAocDIpIG9yIG5vdChwMylcIlxyXG4gICAgZXhwcl9pbmNvbXBsZXRpdHVkOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOntkb21pbmlvOm51bWJlciwgZXhwcjpzdHJpbmd9XHJcbiAgICB9IFxyXG4gICAgLy9leHByX2luY29tcGxldGl0dWRfanM6IHN0cmluZyAvL3NlIGNyZWEgYWwgY29tcGlsYXJcclxuICAgIGV4cHJfaW5jb21wbGV0aXR1ZF9qczoge1xyXG4gICAgICAgIFtrZXkgaW4gbnVtYmVyXTp7ZG9taW5pbzpudW1iZXIsIGV4cHI6c3RyaW5nfVxyXG4gICAgfSBcclxuICAgIGRpc3BhcmFkb3I6IElkVmFyaWFibGUgLy9cInA5XCJcclxuICAgIC8vZmlsdHJvOiBzdHJpbmcgLy9cInAzPj0xOFwiXHJcbiAgICBmaWx0cm86IHtcclxuICAgICAgICBba2V5IGluIG51bWJlcl06e2RvbWluaW86bnVtYmVyLCBleHByOnN0cmluZ31cclxuICAgIH0gXHJcbiAgICAvL2ZpbHRyb19qczogc3RyaW5nIC8vc2UgY3JlYSBhbCBjb21waWxhclxyXG4gICAgZmlsdHJvX2pzOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOntkb21pbmlvOm51bWJlciwgZXhwcjpzdHJpbmd9XHJcbiAgICB9IFxyXG4gICAgb3JkZW46IHtcclxuICAgICAgICB2YXJpYWJsZTpJZFZhcmlhYmxlXHJcbiAgICAgICAgb3JkZW46IDF8LTFcclxuICAgIH1bXSAvL1tcInAzXCIsIFwicDJcIiwgXCJwMVwiLCBcInAwXCJdLCAvLyBwMCBlcyBjb25zdHJ1aWRhLCBubyB2YSBlbiBwYXLDoW1ldHJvcywgc2UgcG9uZSBwYXJhIHF1ZSBlbCBvcmRlbiBzZWEgZGV0ZXJtaW7DrXN0aWNvXHJcbiAgICBwYXJhbWV0cm9zOklkVmFyaWFibGVbXS8vIFtcInAxXCIsXCJwMlwiLFwicDNcIiwgXCJwNFwiLCBcInA1XCIsIFwicDZcIl0sIC8vIHZhcmlhYmxlcyBxdWUgYW51bGFuIGFsIGRpc3BhcmFkb3JcclxuICAgIGNhbnRpZGFkX3NvcnRlYWJsZXM6IElkVmFyaWFibGVcclxuICAgIGNhbnRpZGFkX3RvdGFsOiBJZFZhcmlhYmxlXHJcbiAgICByZXN1bHRhZG86IElkVmFyaWFibGUgLy9cInAxMVwiXHJcbiAgICByZXN1bHRhZG9fbWFudWFsOiBJZFZhcmlhYmxlIC8vXCJwMTFcIlxyXG4gICAgc29ydGVhZG9fbW9zdHJhcj86IHtzb3VyY2U6SWRWYXJpYWJsZSwgdGFyZ2V0OklkVmFyaWFibGV9W10sXHJcbiAgICBpbmNvbXBsZXRhczogSWRWYXJpYWJsZVxyXG4gICAgdmFyaWFibGVCb3RvbkZvcm11bGFyaW9VQTogSWRWYXJpYWJsZS8vJyRCLkY6UzFfUCdcclxuICAgIHZhcmlhYmxlQm90b25Gb3JtdWxhcmlvVUFJbmRpdmlkdWFsPzogSWRWYXJpYWJsZSAvLyckQi5GOkkxJ1xyXG4gICAgaWRfZm9ybXVsYXJpb19pbmRpdmlkdWFsPzogSWRGb3JtdWxhcmlvIC8vICdGOkkxJ1xyXG4gICAgaWRfZm9ybXVsYXJpb19wYWRyZT86IElkRm9ybXVsYXJpbyAvLyAnRjpTMSdcclxufSAmIChDb25maWd1cmFjaW9uU29ydGVvSGFzaCB8IENvbmZpZ3VyYWNpb25Tb3J0ZW9UYWJsYSlcclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdG9QbGFpbkZvclBrKGZvclBrOkZvclBrKTpQbGFpbkZvclBre1xyXG4gICAgLy8gQHRzLWlnbm9yZSBzYWJlbW9zIHF1ZSBoYXkgcXVlIGhhY2VyIHVuIEpTT05cclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShmb3JQayk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgaXRlcmF0b3I6PFQ+KG86T2JqZXRvTnVtZXJhZG9PQXJyYXk8VD4pPT5JdGVyYWJsZTxUPiA9IExpa2VBci5pdGVyYXRvclxyXG5leHBvcnQgdmFyIGVtcHR5OjxUPihvOk9iamV0b051bWVyYWRvT0FycmF5PFQ+fG51bGx8dW5kZWZpbmVkKT0+Ym9vbGVhbiA9IExpa2VBci5lbXB0eVxyXG5cclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gICAgbmFtZXNwYWNlIG15T3due1xyXG4gICAgICAgIGludGVyZmFjZSBBZGRyUGFyYW1zIHtcclxuICAgICAgICAgICAgc3RhdGVfZm9yUGs6c3RyaW5nXHJcbiAgICAgICAgICAgIHN0YXRlX3BpbGFGb3JQazpzdHJpbmdcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERpcmVjY2lvbkFjY2lvbiA9ICdhdmFuY2UnIHwgJ3JldHJvY2VzbycgfCAnYmxhbnF1ZW8nXHJcblxyXG5leHBvcnQgdHlwZSBFc3RhZG9BY2Npb24gPSB7XHJcbiAgICBvcGVyYXRpdm86IHN0cmluZ1xyXG4gICAgZXN0YWRvOiBzdHJpbmdcclxuICAgIGVhY2Npb246IHN0cmluZ1xyXG4gICAgY29uZGljaW9uOiBzdHJpbmdcclxuICAgIGVzdGFkb19kZXN0aW5vOiBzdHJpbmdcclxuICAgIGVhY2Npb25fZGlyZWNjaW9uOiBEaXJlY2Npb25BY2Npb25cclxuICAgIHBhdGhfaWNvbm9fc3ZnOiBzdHJpbmdcclxuICAgIG5vbWJyZV9wcm9jZWR1cmU6IHN0cmluZ1xyXG4gICAgZGVzYWN0aXZhX2JvdG9uOiBib29sZWFuXHJcbiAgICBjb25maXJtYTogYm9vbGVhblxyXG59Il19
|
|
@@ -675,4 +675,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
675
675
|
exports.emergeAppDmEncu = emergeAppDmEncu;
|
|
676
676
|
exports.AppDmEncu = emergeAppDmEncu((0, procesamiento_1.emergeAppProcesamiento)((0, procesamiento_1.emergeAppConsistencias)((0, procesamiento_1.emergeAppVarCal)((0, procesamiento_1.emergeAppDatosExt)((0, procesamiento_1.emergeAppOperativos)(procesamiento_1.AppBackend))))));
|
|
677
677
|
});
|
|
678
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWRtZW5jdS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvYXBwLWRtZW5jdS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUFBLFlBQVksQ0FBQzs7O0lBR2IsaURBQTBMO0lBQzFMLDJEQUF5RTtJQUV6RSx3Q0FBd0M7SUFFeEMsd0NBQXdDO0lBSXhDLDZCQUE2QjtJQUU3QixrQ0FBa0M7SUFDbEMsbUNBQW1DO0lBRW5DLDJCQUFtQztJQUVuQywrQ0FBb0Q7SUFDcEQscURBQXVEO0lBQ3ZELGlFQUE2RDtJQUM3RCwrREFBOEQ7SUFDOUQsdUVBQWtFO0lBQ2xFLCtEQUE0RDtJQUM1RCw2REFBMkQ7SUFDM0QsNkRBQTJEO0lBQzNELHFEQUF1RDtJQUN2RCxpRUFBNkQ7SUFDN0QseURBQXlEO0lBQ3pELHlFQUFpRTtJQUVqRSxpREFBcUQ7SUFDckQseURBQXlEO0lBQ3pELDJDQUFrRDtJQUNsRCwrREFBNEQ7SUFDNUQsbURBQXNEO0lBQ3RELHFEQUF1RDtJQUN2RCwyREFBMEQ7SUFDMUQsbURBQXNEO0lBQ3RELCtDQUFvRDtJQUNwRCxxRUFBK0Q7SUFDL0QsaURBQXFEO0lBQ3JELHlEQUF5RDtJQUN6RCw2REFBMkQ7SUFDM0QseURBQXlEO0lBQ3pELCtFQUFzRTtJQUN0RSw2RUFBcUU7SUFDckUscUVBQStEO0lBQy9ELCtEQUE0RDtJQUM1RCxtRUFBOEQ7SUFDOUQsdURBQXdEO0lBQ3hELG1EQUFzRDtJQUN0RCxtREFBc0Q7SUFDdEQscURBQXVEO0lBQ3ZELDJEQUEwRDtJQUMxRCwyREFBMEQ7SUFDMUQsNkRBQTJEO0lBRTNELG1EQUFzRDtJQUN0RCxxREFBdUQ7SUFDdkQscUVBQStEO0lBRy9ELGlEQUErQjtJQUMvQiw2Q0FBc0M7SUFFdEMsTUFBTSxjQUFjLEdBQUMsV0FBVyxDQUFDO0lBRWpDLFNBQWdCLGVBQWUsQ0FBMEUsSUFBTTtRQUM3RyxPQUFPLE1BQU0s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QUMsQ0FBQTtnQkFDRixFQUFFLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFDLFVBQVMsUUFBUSxFQUFFLE9BQU87b0JBQzlELFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUM7d0JBQ3ZCLElBQUksRUFBQyxlQUFlO3dCQUNwQixRQUFRLEVBQUMsT0FBTzt3QkFDaEIsUUFBUSxFQUFFLEtBQUs7cUJBQ2xCLENBQUMsQ0FBQztvQkFDSCxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDO3dCQUN2QixJQUFJLEVBQUMsaUJBQWlCO3dCQUN0QixRQUFRLEVBQUMsU0FBUzt3QkFDbEIsWUFBWSxFQUFFLEtBQUs7d0JBQ25CLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFFLENBQUMsT0FBTyxFQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO3FCQUFDLENBQ3BGLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLENBQUE7Z0JBRUYsdUVBQXVFO2dCQUN2RSxnR0FBZ0c7Z0JBQ2hHLEtBQUs7WUFDVCxDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUEzbUJELDBDQTJtQkM7SUFFVSxRQUFBLFNBQVMsR0FBRyxlQUFlLENBQUMsSUFBQSxzQ0FBc0IsRUFBQyxJQUFBLHNDQUFzQixFQUFDLElBQUEsK0JBQWUsRUFBQyxJQUFBLGlDQUFpQixFQUFDLElBQUEsbUNBQW1CLEVBQUMsMEJBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuaW1wb3J0ICogYXMgcHJvY2VzYW1pZW50byBmcm9tIFwicHJvY2VzYW1pZW50b1wiO1xyXG5pbXBvcnQge2VtZXJnZUFwcFByb2Nlc2FtaWVudG8sIGVtZXJnZUFwcENvbnNpc3RlbmNpYXMsIGVtZXJnZUFwcFZhckNhbCwgZW1lcmdlQXBwRGF0b3NFeHQsIGVtZXJnZUFwcE9wZXJhdGl2b3MsIEFwcEJhY2tlbmQsIENsaWVudE1vZHVsZURlZmluaXRpb24sIE9wdHNDbGllbnRQYWdlfSBmcm9tIFwicHJvY2VzYW1pZW50b1wiO1xyXG5pbXBvcnQge2dldE9wZXJhdGl2b0FjdHVhbCwgUHJvY2VkdXJlc0RtRW5jdX0gZnJvbSBcIi4vcHJvY2VkdXJlcy1kbWVuY3VcIjtcclxuXHJcbmltcG9ydCAqIGFzIHBnIGZyb20gXCJwZy1wcm9taXNlLXN0cmljdFwiO1xyXG5pbXBvcnQge2pzb259IGZyb20gXCJwZy1wcm9taXNlLXN0cmljdFwiO1xyXG5pbXBvcnQgKiBhcyBtaW5pVG9vbHMgZnJvbSBcIm1pbmktdG9vbHNcIjtcclxuaW1wb3J0IHtDb250ZXh0LCBNZW51SW5mb0Jhc2UsIFJlcXVlc3QsIFJlc3BvbnNlfSBmcm9tIFwiLi90eXBlcy1kbWVuY3VcIjtcclxuaW1wb3J0IHsgY2hhbmdpbmcgfSBmcm9tIFwiYmVzdC1nbG9iYWxzXCI7XHJcblxyXG5pbXBvcnQgKiBhcyB5YXpsIGZyb20gXCJ5YXpsXCI7XHJcbmltcG9ydCB7IE5leHRGdW5jdGlvbiB9IGZyb20gXCJleHByZXNzLXNlcnZlLXN0YXRpYy1jb3JlXCI7XHJcbmltcG9ydCAqIGFzIGxpa2VBciBmcm9tIFwibGlrZS1hclwiO1xyXG5pbXBvcnQgKiBhcyBleHByZXNzIGZyb20gXCJleHByZXNzXCI7XHJcblxyXG5pbXBvcnQge3Byb21pc2VzIGFzIGZzIH0gZnJvbSBcImZzXCI7XHJcblxyXG5pbXBvcnQgeyByb2xlcyAgICAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcm9sZXNcIjtcclxuaW1wb3J0IHsgcGVyc29uYWwgICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXBlcnNvbmFsXCI7XHJcbmltcG9ydCB7IHJlY2VwY2lvbmlzdGFzICAgICAgfSBmcm9tIFwiLi90YWJsZS1yZWNlcGNpb25pc3Rhc1wiO1xyXG5pbXBvcnQgeyBlbmN1ZXN0YWRvcmVzICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1lbmN1ZXN0YWRvcmVzXCI7XHJcbmltcG9ydCB7IG1pc19lbmN1ZXN0YWRvcmVzICAgICB9IGZyb20gXCIuL3RhYmxlLW1pc19lbmN1ZXN0YWRvcmVzXCI7XHJcbmltcG9ydCB7IHJlY3VwZXJhZG9yZXMgICAgICAgfSBmcm9tIFwiLi90YWJsZS1yZWN1cGVyYWRvcmVzXCI7XHJcbmltcG9ydCB7IHN1cGVydmlzb3JlcyAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1zdXBlcnZpc29yZXNcIjtcclxuaW1wb3J0IHsgcGVyc29uYWxfcm9sICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXBlcnNvbmFsX3JvbFwiO1xyXG5pbXBvcnQgeyBwZXJtaXNvcyAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcGVybWlzb3NcIjtcclxuaW1wb3J0IHsgcm9sZXNfcGVybWlzb3MgICAgICB9IGZyb20gXCIuL3RhYmxlLXJvbGVzX3Blcm1pc29zXCI7XHJcbmltcG9ydCB7IHBhcmFtZXRyb3MgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1wYXJhbWV0cm9zXCI7XHJcbmltcG9ydCB7IHJvbGVzX3N1Ym9yZGluYWRvcyAgfSBmcm9tIFwiLi90YWJsZS1yb2xlc19zdWJvcmRpbmFkb3NcIjtcclxuXHJcbmltcG9ydCB7bm9fcmVhICAgICAgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1ub19yZWFcIjtcclxuaW1wb3J0IHtub19yZWFfc3VwICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLW5vX3JlYV9zdXBcIjtcclxuaW1wb3J0IHt0ZW0gICAgICAgICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXRlbVwiO1xyXG5pbXBvcnQge3RlbV9yZWNlcGNpb24gICAgICAgIH0gZnJvbSBcIi4vdGFibGUtdGVtX3JlY2VwY2lvblwiO1xyXG5pbXBvcnQge3NlbWFuYXMgICAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtc2VtYW5hc1wiO1xyXG5pbXBvcnQgeyB1c3VhcmlvcyAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS11c3Vhcmlvcyc7XHJcbmltcG9ydCB7IG9wZXJhY2lvbmVzICAgICAgICAgfSBmcm9tICcuL3RhYmxlLW9wZXJhY2lvbmVzJztcclxuaW1wb3J0IHsgY29tdW5hcyAgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtY29tdW5hcyc7XHJcbmltcG9ydCB7IGFyZWFzICAgICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLWFyZWFzJztcclxuaW1wb3J0IHsgc2luY3Jvbml6YWNpb25lcyAgICB9IGZyb20gJy4vdGFibGUtc2luY3Jvbml6YWNpb25lcyc7XHJcbmltcG9ydCB7IHRhcmVhcyAgICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhcyc7XHJcbmltcG9ydCB7IHRhcmVhc190ZW0gICAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc190ZW0nO1xyXG5pbXBvcnQgeyB0YXJlYXNfYXJlYXMgICAgICAgIH0gZnJvbSAnLi90YWJsZS10YXJlYXNfYXJlYXMnO1xyXG5pbXBvcnQgeyBtaXNfdGFyZWFzICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1taXNfdGFyZWFzJztcclxuaW1wb3J0IHsgdGFyZWFzX3RlbV9hc2lnbmFibGVzIH0gZnJvbSAnLi90YWJsZS10YXJlYXNfdGVtX2FzaWduYWJsZXMnO1xyXG5pbXBvcnQgeyB0YXJlYXNfdGVtX3JlY2VwY2lvbiAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc190ZW1fcmVjZXBjaW9uJztcclxuaW1wb3J0IHsgbWlzX3RhcmVhc19hcmVhcyAgICB9IGZyb20gJy4vdGFibGUtbWlzX3RhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IGNvbnRyb2xfY2FtcG8gICAgICAgfSBmcm9tICcuL3RhYmxlLWNvbnRyb2xfY2FtcG8nO1xyXG5pbXBvcnQgeyBjb250cm9sX3Jlc3VtZW4gICAgIH0gZnJvbSAnLi90YWJsZS1jb250cm9sX3Jlc3VtZW4nO1xyXG5pbXBvcnQgeyB2aXZpZW5kYXMgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS12aXZpZW5kYXMnO1xyXG5pbXBvcnQgeyB2aXNpdGFzICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS12aXNpdGFzJztcclxuaW1wb3J0IHsgaG9nYXJlcyAgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtaG9nYXJlcyc7XHJcbmltcG9ydCB7IHBlcnNvbmFzICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLXBlcnNvbmFzJztcclxuaW1wb3J0IHsgdmlzaXRhc19zdXAgICAgICAgICB9IGZyb20gJy4vdGFibGUtdmlzaXRhc19zdXAnO1xyXG5pbXBvcnQgeyBob2dhcmVzX3N1cCAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1ob2dhcmVzX3N1cCc7XHJcbmltcG9ydCB7IHBlcnNvbmFzX3N1cCAgICAgICAgfSBmcm9tICcuL3RhYmxlLXBlcnNvbmFzX3N1cCc7XHJcblxyXG5pbXBvcnQgeyBlc3RhZG9zICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1lc3RhZG9zJztcclxuaW1wb3J0IHsgYWNjaW9uZXMgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtYWNjaW9uZXMnO1xyXG5pbXBvcnQgeyBlc3RhZG9zX2FjY2lvbmVzICAgIH0gZnJvbSAnLi90YWJsZS1lc3RhZG9zX2FjY2lvbmVzJztcclxuXHJcblxyXG5leHBvcnQgKiBmcm9tIFwiLi90eXBlcy1kbWVuY3VcIjtcclxuaW1wb3J0IHtkZWZDb25maWd9IGZyb20gXCIuL2RlZi1jb25maWdcIlxyXG5cclxuY29uc3QgQVBQX0RNX1ZFUlNJT049XCIjMjItMTItMTVcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBlbWVyZ2VBcHBEbUVuY3U8VCBleHRlbmRzIHByb2Nlc2FtaWVudG8uQ29uc3RydWN0b3I8cHJvY2VzYW1pZW50by5BcHBQcm9jZXNhbWllbnRvVHlwZT4+KEJhc2U6VCl7XHJcbiAgcmV0dXJuIGNsYXNzIEFwcERtRW5jdSBleHRlbmRzIEJhc2V7XHJcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzOmFueVtdKXsgXHJcbiAgICAgICAgc3VwZXIoYXJncyk7IFxyXG4gICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudCA9IHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudCB8fCB7fTtcclxuICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhPVtdXHJcbiAgICAgICAgdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYV9ncm91cHM9W11cclxuICAgICAgICB0aGlzLm1ldGFFbmNJbmNsdWlyQ2FzaWxsZXJvc1NhbHRvUkVMID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lc3RhbXBFc3RydWN0dXJhID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICB9XHJcbiAgICBhc3luYyBnZXRQcm9jZWR1cmVzKCl7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICB2YXIgcHJvY2VkaW1pZW50b0FSZWVtcGxhemFyPVtcImNhc29fZ3VhcmRhclwiLFwiY2Fzb190cmFlclwiXTtcclxuICAgICAgICB2YXIgcGFyZW50UHJvYyA9IGF3YWl0IHN1cGVyLmdldFByb2NlZHVyZXMoKTtcclxuICAgICAgICBwYXJlbnRQcm9jID0gcGFyZW50UHJvYy5maWx0ZXIoKHByb2NlZHVyZTphbnkpID0+ICFwcm9jZWRpbWllbnRvQVJlZW1wbGF6YXIuaW5jbHVkZXMocHJvY2VkdXJlLmFjdGlvbikpO1xyXG4gICAgICAgIHBhcmVudFByb2MgPSBwYXJlbnRQcm9jLm1hcChwcm9jRGVmPT57XHJcbiAgICAgICAgICAgIGlmKHByb2NEZWYuYWN0aW9uID09ICd0YWJsZV9yZWNvcmRfc2F2ZScgfHwgcHJvY0RlZi5hY3Rpb24gPT0gJ3RhYmxlX3JlY29yZF9kZWxldGUnKXtcclxuICAgICAgICAgICAgICAgIHZhciBjb3JlRnVuY3Rpb25JbnRlcm5vID0gcHJvY0RlZi5jb3JlRnVuY3Rpb247XHJcbiAgICAgICAgICAgICAgICBwcm9jRGVmLmNvcmVGdW5jdGlvbiA9IGFzeW5jIGZ1bmN0aW9uKGNvbnRleHQsIHBhcmFtZXRlcnMpe1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCBjb3JlRnVuY3Rpb25JbnRlcm5vKGNvbnRleHQsIHBhcmFtZXRlcnMpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYocGFyYW1ldGVycy50YWJsZSA9PSAnY2FzaWxsZXJvcycpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZS50aW1lc3RhbXBFc3RydWN0dXJhID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzZSB0b2PDsyBsYSBlc3RydWN0dXJhJywgYmUudGltZXN0YW1wRXN0cnVjdHVyYSlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcHJvY0RlZjtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBwYXJlbnRQcm9jLmNvbmNhdChQcm9jZWR1cmVzRG1FbmN1KTtcclxuICAgIH1cclxuICAgIGFzeW5jIGNoZWNrRGF0YWJhc2VTdHJ1Y3R1cmUoX2NsaWVudDpDbGllbnQpe1xyXG4gICAgfVxyXG4gICAgYWRkU2NocsO2ZGluZ2VyU2VydmljZXMobWFpbkFwcDpwcm9jZXNhbWllbnRvLkV4cHJlc3MsIGJhc2VVcmw6c3RyaW5nKXtcclxuICAgICAgICBsZXQgYmU9dGhpcztcclxuICAgICAgICBzdXBlci5hZGRTY2hyw7ZkaW5nZXJTZXJ2aWNlcyhtYWluQXBwLCBiYXNlVXJsKTtcclxuICAgICAgICAvL3Blcm1pdG8gbGV2YW50YXIgbWlzIGltYWdlbmVzIGVuIGFwbGljYWNpb25lcyBkZXBlbmRpZW50ZXNcclxuICAgICAgICBiZS5hcHAudXNlKCcvaW1nJywgZXhwcmVzcy5zdGF0aWMoJ25vZGVfbW9kdWxlcy9kbWVuY3UvZGlzdC91bmxvZ2dlZC91bmxvZ2dlZC9pbWcnKSlcclxuICAgICAgICBtYWluQXBwLnVzZShmdW5jdGlvbihyZXE6UmVxdWVzdCxyZXM6UmVzcG9uc2UsIG5leHQ6TmV4dEZ1bmN0aW9uKXtcclxuICAgICAgICAgICAgaWYocmVxLnNlc3Npb24gJiYgIXJlcS5zZXNzaW9uLmluc3RhbGwpe1xyXG4gICAgICAgICAgICAgICAgcmVxLnNlc3Npb24uaW5zdGFsbD1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkucmVwbGFjZSgnLicsJycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG5leHQoKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIG1haW5BcHAuZ2V0KGJhc2VVcmwrJy9zYWx2YXInLGFzeW5jIGZ1bmN0aW9uKHJlcSxyZXMsX25leHQpe1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIHPDqSBxdWUgdm95IGEgcmVjaWJpciB1c2VyYWdlbnQgcG9yIGxvcyBtaWRkbGV3YXJlcyBkZSBCYWNrZW5kLXBsdXNcclxuICAgICAgICAgICAgdmFyIHt1c2VyYWdlbnR9ID0gcmVxO1xyXG4gICAgICAgICAgICB2YXIgaHRtbE1haW49YmUubWFpblBhZ2Uoe3VzZXJhZ2VudH0sIGZhbHNlLCB7c2tpcE1lbnU6dHJ1ZSwgb2ZmbGluZUZpbGU6dHJ1ZX0pLnRvSHRtbERvYygpO1xyXG4gICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVUZXh0KGh0bWxNYWluLCdodG1sJykocmVxLHJlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbWFpbkFwcC5nZXQoYmFzZVVybCsnL2NhbXBvJyxhc3luYyBmdW5jdGlvbihyZXEscmVzLF9uZXh0KXtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSBzw6kgcXVlIHZveSBhIHJlY2liaXIgdXNlcmFnZW50IHBvciBsb3MgbWlkZGxld2FyZXMgZGUgQmFja2VuZC1wbHVzXHJcbiAgICAgICAgICAgIHZhciB7dXNlcmFnZW50LCB1c2VyfSA9IHJlcTtcclxuICAgICAgICAgICAgaWYodXNlcil7XHJcbiAgICAgICAgICAgICAgICAvKiogQHR5cGUge3t0eXBlOidqcycsIHNyYzpzdHJpbmd9W119ICovXHJcbiAgICAgICAgICAgICAgICB2YXIgd2ViTWFuaWZlc3RQYXRoID0gJ2NhcmdhLWRtL3dlYi1tYW5pZmVzdC53ZWJtYW5pZmVzdCc7XHJcbiAgICAgICAgICAgICAgICB2YXIgaHRtbE1haW49YmUubWFpblBhZ2Uoe3VzZXJhZ2VudCwgdXNlcn0sIGZhbHNlLCB7c2tpcE1lbnU6dHJ1ZSwgd2ViTWFuaWZlc3RQYXRoLCBvZmZsaW5lRmlsZTp0cnVlfSkudG9IdG1sRG9jKCk7XHJcbiAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZVRleHQoaHRtbE1haW4sJ2h0bWwnKShyZXEscmVzKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICByZXMucmVkaXJlY3QoNDAxLCBiYXNlVXJsKycvbG9naW4jdz1wYXRoJnBhdGg9L2NhbXBvJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBjcmVhdGVTZXJ2aWNlV29ya2VyID0gYXN5bmMgZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdmFyIHN3ID0gYXdhaXQgZnMucmVhZEZpbGUoJ25vZGVfbW9kdWxlcy9zZXJ2aWNlLXdvcmtlci1hZG1pbi9kaXN0L3NlcnZpY2Utd29ya2VyLXdvLW1hbmlmZXN0LmpzJywgJ3V0ZjgnKTtcclxuICAgICAgICAgICAgdmFyIG1hbmlmZXN0ID0gYmUuY3JlYXRlUmVzb3VyY2VzRm9yQ2FjaGVKc29uKHt9KTtcclxuICAgICAgICAgICAgdmFyIHN3TWFuaWZlc3QgPSBzd1xyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoXCInLyp2ZXJzaW9uKi8nXCIsIEpTT04uc3RyaW5naWZ5KG1hbmlmZXN0LnZlcnNpb24pKVxyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoXCInLyphcHBOYW1lKi8nXCIsIEpTT04uc3RyaW5naWZ5KG1hbmlmZXN0LmFwcE5hbWUpKVxyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcW1xccypcXC9cXCp1cmxzVG9DYWNoZVxcKlxcL1xccypcXF0vLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdC5jYWNoZSkpXHJcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxbXFxzKlxcL1xcKmZhbGxiYWNrc1xcKlxcL1xccypcXF0vLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdC5mYWxsYmFjayB8fCBbXSkpO1xyXG4gICAgICAgICAgICAgICAgLy8ucmVwbGFjZShcIi8jQ0FDSEUkL1wiLCBcIi8oYVxcXFxkK21cXFxcZCtwXFxcXGQrdFxcXFxkK19lc3RydWN0dXJhLmpzKXwoYVxcXFxkK21cXFxcZCtwXFxcXGQrdFxcXFxkK19oZHIuanNvbikvXCIpO1xyXG4gICAgICAgICAgICByZXR1cm4gc3dNYW5pZmVzdFxyXG4gICAgICAgIH1cclxuICAgICAgICBtYWluQXBwLmdldChiYXNlVXJsK2Avc3ctbWFuaWZlc3QuanNgLCBhc3luYyBmdW5jdGlvbihyZXEsIHJlcywgbmV4dCl7XHJcbiAgICAgICAgICAgIHRyeXtcclxuICAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZVRleHQoYXdhaXQgY3JlYXRlU2VydmljZVdvcmtlcigpLCdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JykocmVxLHJlcyk7XHJcbiAgICAgICAgICAgIH1jYXRjaChlcnIpe1xyXG4gICAgICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlRXJyKHJlcSxyZXMsbmV4dCkoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG1haW5BcHAuZ2V0KGJhc2VVcmwrYC9jYXJnYS1kbS93ZWItbWFuaWZlc3Qud2VibWFuaWZlc3RgLCBhc3luYyBmdW5jdGlvbihyZXEsIHJlcywgbmV4dCl7XHJcbiAgICAgICAgICAgIGNvbnN0IEFQUF9OQU1FID0gKGF3YWl0IGJlLmluVHJhbnNhY3Rpb24obnVsbCwgKGNsaWVudDpwZy5DbGllbnQpPT5cclxuICAgICAgICAgICAgICAgIGNsaWVudC5xdWVyeShcInNlbGVjdCBvcGVyYXRpdm8gZnJvbSBwYXJhbWV0cm9zIHdoZXJlIHVuaWNvX3JlZ2lzdHJvXCIpLmZldGNoVW5pcXVlVmFsdWUoKVxyXG4gICAgICAgICAgICApKS52YWx1ZTtcclxuICAgICAgICAgICAgdmFyIHN1ZmlqbyA9IGJhc2VVcmwuaW5jbHVkZXMoJ3Rlc3QnKT8nX3Rlc3QnOlxyXG4gICAgICAgICAgICAgICAgYmFzZVVybC5pbmNsdWRlcygnY2FwYScpPydfY2FwYSc6Jyc7XHJcbiAgICAgICAgICAgIHRyeXtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBgJHtBUFBfTkFNRX0gUHJvZ3Jlc3NpdmUgV2ViIEFwcGAsXHJcbiAgICAgICAgICAgICAgICAgIFwic2hvcnRfbmFtZVwiOiBgJHtBUFBfTkFNRX0gUFdBYCxcclxuICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBgUHJvZ3Jlc3NpdmUgV2ViIEFwcCBmb3IgJHtBUFBfTkFNRX0uYCxcclxuICAgICAgICAgICAgICAgICAgXCJpY29uc1wiOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzcmNcIjogYC4uL2ltZy8ke0FQUF9OQU1FfS1sb2dvLWRtLTMyJHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiMzJ4MzJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlL3BuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNyY1wiOiBgLi4vaW1nLyR7QVBQX05BTUV9LWxvZ28tZG0tNDgke3N1Zmlqb30ucG5nYCxcclxuICAgICAgICAgICAgICAgICAgICAgIFwic2l6ZXNcIjogXCI0OHg0OFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2UvcG5nXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFwic3JjXCI6IGAuLi9pbWcvJHtBUFBfTkFNRX0tbG9nby1kbS02NCR7c3VmaWpvfS5wbmdgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzaXplc1wiOiBcIjY0eDY0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbWFnZS9wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzcmNcIjogYC4uL2ltZy8ke0FQUF9OQU1FfS1sb2dvLWRtLTcyJHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiNzJ4NzJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlL3BuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNyY1wiOiBgLi4vaW1nLyR7QVBQX05BTUV9LWxvZ28tZG0tMTkyJHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiMTkyeDE5MlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2UvcG5nXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFwic3JjXCI6IGAuLi9pbWcvJHtBUFBfTkFNRX0tbG9nby1kbS01MTIke3N1Zmlqb30ucG5nYCxcclxuICAgICAgICAgICAgICAgICAgICAgIFwic2l6ZXNcIjogXCI1MTJ4NTEyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbWFnZS9wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgLi4uYmUuZ2V0Q29sb3JzSnNvbihzdWZpam8pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVUZXh0KEpTT04uc3RyaW5naWZ5KGNvbnRlbnQpLCAnYXBwbGljYXRpb24vanNvbicpKHJlcSxyZXMpO1xyXG4gICAgICAgICAgICB9Y2F0Y2goZXJyKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVFcnIocmVxLCByZXMsIG5leHQpKGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGdldENvbG9yc0pzb24oX3N1ZmlqbzonX3Rlc3QnfCdfY2FwYSd8Jycpe1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIFwic3RhcnRfdXJsXCI6IFwiLi4vY2FtcG9cIixcclxuICAgICAgICAgICAgXCJkaXNwbGF5XCI6IFwic3RhbmRhbG9uZVwiLFxyXG4gICAgICAgICAgICBcInRoZW1lX2NvbG9yXCI6IFwiIzNGNTFCNVwiLFxyXG4gICAgICAgICAgICBcImJhY2tncm91bmRfY29sb3JcIjogXCIjNmQ2MGVkXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBhZGRMb2dnZWRTZXJ2aWNlcygpe1xyXG4gICAgICAgIHZhciBiZSA9IHRoaXM7XHJcbiAgICAgICAgc3VwZXIuYWRkTG9nZ2VkU2VydmljZXMoKTtcclxuICAgICAgICBiZS5hcHAuZ2V0KCcvbWFuaWZlc3QubWFuaWZlc3QnLCBhc3luYyBmdW5jdGlvbihyZXE6UmVxdWVzdCwgcmVzOlJlc3BvbnNlLCBuZXh0Ok5leHRGdW5jdGlvbil7XHJcbiAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZUZpbGUoJ3NyYy9jbGllbnQvbWFuaWZlc3QubWFuaWZlc3QnLHt9KShyZXEscmVzKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFwcC5nZXQoJy9maWxlJywgYXN5bmMgZnVuY3Rpb24ocmVxOlJlcXVlc3QscmVzOlJlc3BvbnNlKXtcclxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGJlLmluVHJhbnNhY3Rpb24ocmVxLCBcclxuICAgICAgICAgICAgICAgIChjbGllbnQ6cGcuQ2xpZW50KT0+XHJcbiAgICAgICAgICAgICAgICBjbGllbnQucXVlcnkoXCJzZWxlY3QgcnV0YSBmcm9tIGFkanVudG9zIHdoZXJlIGlkX2FkanVudG8gPSAkMVwiLFtyZXEucXVlcnkuaWRfYWRqdW50b10pXHJcbiAgICAgICAgICAgICAgICAuZmV0Y2hVbmlxdWVWYWx1ZSgpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHZhciBwYXRoID0gcmVzdWx0LnZhbHVlO1xyXG4gICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVGaWxlKHBhdGgse30pKHJlcSxyZXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYXBwLmdldCgnL2ltYWdlbmVzJywgYXN5bmMgZnVuY3Rpb24ocmVxOlJlcXVlc3QscmVzOlJlc3BvbnNlKXtcclxuICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlRmlsZSgnbG9jYWwtaW1hZ2VzLycrcmVxLnF1ZXJ5LnBkZix7fSkocmVxLHJlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hcHAuZ2V0KCcvZG93bmxvYWQvYWxsJyxhc3luYyBmdW5jdGlvbihyZXE6UmVxdWVzdCwgcmVzOlJlc3BvbnNlLCBuZXh0OigpPT52b2lkKXtcclxuICAgICAgICAgICAgaWYocmVxLnVzZXI9PW51bGwgfHwgcmVxLnVzZXIucm9sIT0nYWRtaW4nKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdubyBlc3TDoSBhdXRvcml6YWRvIGEgYmFqYXJzZSB0b2RvJyxyZXEudXNlcilcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IHppcCA9IG5ldyB5YXpsLlppcEZpbGUoKTtcclxuICAgICAgICAgICAgemlwLm91dHB1dFN0cmVhbS5waXBlKHJlcyk7XHJcbiAgICAgICAgICAgIGxldCBiYXNlID0gJ2xvY2FsLWF0dGFjaG1lbnRzJ1xyXG4gICAgICAgICAgICBsZXQgZmlsZXMgPSBhd2FpdCBmcy5yZWFkZGlyKGJhc2UpO1xyXG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChmaWxlcy5tYXAoYXN5bmMgZnVuY3Rpb24oZmlsZU5hbWU6c3RyaW5nKXtcclxuICAgICAgICAgICAgICAgIHZhciBwYXRoID0gYmFzZSsnLycrZmlsZU5hbWU7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3RhdCA9IGF3YWl0IGZzLnN0YXQocGF0aCk7XHJcbiAgICAgICAgICAgICAgICBpZihzdGF0LmlzRmlsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgemlwLmFkZEZpbGUocGF0aCxmaWxlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgemlwLmVuZCgpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBhc3luYyBwb3N0Q29uZmlnKCl7XHJcbiAgICAgICAgYXdhaXQgc3VwZXIucG9zdENvbmZpZygpO1xyXG4gICAgICAgIHZhciBiZT10aGlzO1xyXG4gICAgICAgIGJlLm1ldGFFbmNJbmNsdWlyQ2FzaWxsZXJvc1NhbHRvUkVMID0gZmFsc2U7XHJcbiAgICAgICAgYXdhaXQgYmUuaW5UcmFuc2FjdGlvbihudWxsLCBhc3luYyBmdW5jdGlvbihjbGllbnQ6cGcuQ2xpZW50KXtcclxuICAgICAgICAgICAgdmFyIHFQZXJtaXNvcz1gXHJcbiAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKHIucm9sLGpzb25iX2J1aWxkX29iamVjdCgnc3VwZXJ1c2VyJyxyLnN1cGVydXNlciwncHVlZGUnLChcclxuICAgICAgICAgICAgICAgICAgU0VMRUNUIGpzb25iX29iamVjdF9hZ2cocnAucGVybWlzbywoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKHJwYS5hY2Npb24scnBhLmhhYmlsaXRhZG8pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSByb2xlc19wZXJtaXNvcyBycGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBycGEucm9sPXJwLnJvbCBBTkQgcnBhLnBlcm1pc289cnAucGVybWlzb1xyXG4gICAgICAgICAgICAgICAgICAgICkpXHJcbiAgICAgICAgICAgICAgICAgICAgRlJPTSByb2xlc19wZXJtaXNvcyBycFxyXG4gICAgICAgICAgICAgICAgICAgIFdIRVJFIHJwLnJvbD1yLnJvbCAjY29uZEhhYmlsaXRhZG8jXHJcbiAgICAgICAgICAgICAgKSkpXHJcbiAgICAgICAgICAgICAgRlJPTSByb2xlcyByXHJcbiAgICAgICAgICAgIGA7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHRzID0gW1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LnF1ZXJ5KHFQZXJtaXNvcy5yZXBsYWNlKCcjY29uZEhhYmlsaXRhZG8jJywnJykpLmZldGNoVW5pcXVlVmFsdWUoKSxcclxuICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5xdWVyeShxUGVybWlzb3MucmVwbGFjZSgnI2NvbmRIYWJpbGl0YWRvIycsYCBhbmQgcnAuJHtwZy5xdW90ZUlkZW50KCdoYWJpbGl0YWRvJyl9YCkpLmZldGNoVW5pcXVlVmFsdWUoKSxcclxuICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5xdWVyeShgXHJcbiAgICAgICAgICAgICAgICAgICAgU0VMRUNUIGpzb25iX29iamVjdF9hZ2cocGVybWlzbywoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKGFjY2lvbix0cnVlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEZST00gcGVybWlzb3MgcGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBwYS5wZXJtaXNvPXAucGVybWlzb1xyXG4gICAgICAgICAgICAgICAgICAgICAgKSlcclxuICAgICAgICAgICAgICAgICAgICAgIEZST00gcGVybWlzb3MgcFxyXG4gICAgICAgICAgICAgICAgYCkuZmV0Y2hVbmlxdWVWYWx1ZSgpXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIGJlLnBlcm1pc29zUm9sPXJlc3VsdHNbMF0udmFsdWU7XHJcbiAgICAgICAgICAgIGJlLnBlcm1pc29zUm9sU29sb1RydWU9cmVzdWx0c1sxXS52YWx1ZTtcclxuICAgICAgICAgICAgYmUucGVybWlzb3NTdXBlcnVzZXI9cmVzdWx0c1syXS52YWx1ZTtcclxuICAgICAgICAgICAgYmUucGVybWlzb3NQYXJhTmFkaWU9bGlrZUFyKGJlLnBlcm1pc29zU3VwZXJ1c2VyKS5tYXAocD0+bGlrZUFyKHApLm1hcCh2YT0+ZmFsc2UpLnBsYWluKCkpLnBsYWluKClcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRpcihiZS5wZXJtaXNvc1JvbFNvbG9UcnVlLHtkZXB0aDo5fSk7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5kaXIoYmUucGVybWlzb3NTdXBlcnVzZXIse2RlcHRoOjl9KTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRpcihiZS5wZXJtaXNvc1BhcmFOYWRpZSx7ZGVwdGg6OX0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaENhY2hlcygpO1xyXG4gICAgfVxyXG4gICAgY29uZmlnU3RhdGljQ29uZmlnKCl7XHJcbiAgICAgICAgc3VwZXIuY29uZmlnU3RhdGljQ29uZmlnKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0aWNDb25maWcoZGVmQ29uZmlnKTtcclxuICAgIH1cclxuICAgIGNsaWVudEluY2x1ZGVzKHJlcTpSZXF1ZXN0LCBvcHRzOk9wdHNDbGllbnRQYWdlKTpDbGllbnRNb2R1bGVEZWZpbml0aW9uW10ge1xyXG4gICAgICAgIHZhciBiZSA9IHRoaXM7XHJcbiAgICAgICAgdmFyIHVubG9nZ2VkID0gb3B0cyAmJiBvcHRzLm9mZmxpbmVGaWxlO1xyXG4gICAgICAgIHZhciBtZW51ZWRSZXNvdXJjZXM6Q2xpZW50TW9kdWxlRGVmaW5pdGlvbltdPSB1bmxvZ2dlZD9bXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3VubG9nZ2VkLmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICBdOltcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vY2xpZW50L2NsaWVudCcsIGZpbGU6ICdjbGllbnQuanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgaWYob3B0cyAmJiBvcHRzLmV4dHJhRmlsZXMpe1xyXG4gICAgICAgICAgICBtZW51ZWRSZXNvdXJjZXMgPSBtZW51ZWRSZXNvdXJjZXMuY29uY2F0KG9wdHMuZXh0cmFGaWxlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBleHRlcm5hbFJlc291cmNlczpDbGllbnRNb2R1bGVEZWZpbml0aW9uW10gPSBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAncmVhY3QnLCBtb2RQYXRoOiAndW1kJywgZmlsZURldmVsb3BtZW50OidyZWFjdC5kZXZlbG9wbWVudC5qcycsIGZpbGU6J3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ3JlYWN0LWRvbScsIG1vZFBhdGg6ICd1bWQnLCBmaWxlRGV2ZWxvcG1lbnQ6J3JlYWN0LWRvbS5kZXZlbG9wbWVudC5qcycsIGZpbGU6J3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdAbWF0ZXJpYWwtdWkvY29yZScsIG1vZFBhdGg6ICd1bWQnLCBmaWxlRGV2ZWxvcG1lbnQ6J21hdGVyaWFsLXVpLmRldmVsb3BtZW50LmpzJywgZmlsZTonbWF0ZXJpYWwtdWkucHJvZHVjdGlvbi5taW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnY2xzeCcsIGZpbGU6J2Nsc3gubWluLmpzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ3JlZHV4JywgbW9kUGF0aDonLi4vZGlzdCcsIGZpbGVEZXZlbG9wbWVudDoncmVkdXguanMnLCBmaWxlOidyZWR1eC5taW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAncmVhY3QtcmVkdXgnLCBtb2RQYXRoOicuLi9kaXN0JywgZmlsZURldmVsb3BtZW50OidyZWFjdC1yZWR1eC5qcycsIGZpbGU6J3JlYWN0LXJlZHV4Lm1pbi5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdtZW1vaXplLW9uZScsICBmaWxlOidtZW1vaXplLW9uZS5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdxcmNvZGUnLCBtb2RQYXRoOiAnLi4vYnVpbGQnLCBmaWxlOiAncXJjb2RlLmpzJ30sXHJcbiAgICAgICAgICAgIC4uLnN1cGVyLmNsaWVudEluY2x1ZGVzKHJlcSwgb3B0cykuZmlsdGVyKG09Pm0uZmlsZSE9J2Zvcm11bGFyaW9zLmNzcycpXHJcbiAgICAgICAgICAgIC5maWx0ZXIobT0+IXVubG9nZ2VkIHx8IHRydWVcclxuICAgICAgICAgICAgICAgICYmIG0uZmlsZSE9J3Zhci1jYWwuanMnXHJcbiAgICAgICAgICAgICAgICAmJiBtLmZpbGUhPSd2YXItY2FsLmpzJyAgICAgXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnc2VydmljZS13b3JrZXItYWRtaW4nLCAgZmlsZTonc2VydmljZS13b3JrZXItYWRtaW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAncmVkdXgtdHlwZWQtcmVkdWNlcicsIG1vZFBhdGg6Jy4uL2Rpc3QnLCBmaWxlOidyZWR1eC10eXBlZC1yZWR1Y2VyLmpzJyB9XHJcbiAgICAgICAgXTtcclxuICAgICAgICB2YXIgcmVzb3VyY2VzOkNsaWVudE1vZHVsZURlZmluaXRpb25bXSA9IFtcclxuICAgICAgICAgICAgLi4uZXh0ZXJuYWxSZXNvdXJjZXMsXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ2FkYXB0LmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQnLCBmaWxlOiAndGlwb3MuanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICdieXBhc3MtZm9ybXVsYXJpby5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3JlZHV4LWZvcm11bGFyaW8uanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICdyZW5kZXItZ2VuZXJhbC5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3JlbmRlci1mb3JtdWxhcmlvLmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQnLCBmaWxlOiAnYWJyaXItZm9ybXVsYXJpby5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2NzcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi9jbGllbnQvY2xpZW50L2NzcycsIGZpbGU6ICdtZW51LmNzcycsIHBhdGg6ICdjc3MnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2NzcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZC9jc3MnLCBmaWxlOiAnZm9ybXVsYXJpby1yZWFjdC5jc3MnLCBwYXRoOiAnY3NzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdjc3MnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQvY3NzJywgZmlsZTogJ2Jvb3RzdHJhcC5taW4uY3NzJywgcGF0aDogJ2NzcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAndHRmJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkL2NzcycsIGZpbGU6ICdSb2JvdG8tUmVndWxhci50dGYnLCBwYXRoOiAnY3NzJyB9LFxyXG4gICAgICAgICAgICAuLi4gbWVudWVkUmVzb3VyY2VzLFxyXG4gICAgICAgIF1cclxuICAgICAgICByZXR1cm4gcmVzb3VyY2VzXHJcbiAgICAgICAgLy8gLm1hcChtPT4oey4uLm0sIGZpbGU6bS5maWxlRGV2ZWxvcG1lbnR8fG0uZmlsZX0pKTtcclxuICAgIH1cclxuICAgIGFzeW5jIHJlZnJlc2hDYWNoZXMoKXtcclxuICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQgPSB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQgfHwge307XHJcbiAgICAgICAgYXdhaXQgdGhpcy5pbkRiQ2xpZW50KG51bGwsIGFzeW5jIChjbGllbnQpPT57XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWEgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBzZWxlY3QgKiBmcm9tIG5vX3JlYSBvcmRlciBieSBub19yZWFgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY2FjaGVzJyx0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhKVxyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX2dyb3VwcyA9IChhd2FpdCBjbGllbnQucXVlcnkoYFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0IGdydXBvLCBqc29uYl9hZ2codG9fanNvbihyLiopKSBhcyBjb2RpZ29zIGZyb20gbm9fcmVhIHIgZ3JvdXAgYnkgZ3J1cG8gb3JkZXIgYnkgMVxyXG4gICAgICAgICAgICBgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX2dyb3VwczAgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBcclxuICAgICAgICAgICAgICAgIHNlbGVjdCBncnVwbzAgYXMgZ3J1cG8sIGpzb25iX2FnZyh0b19qc29uKHIuKikpIGFzIGNvZGlnb3MgZnJvbSBub19yZWEgciBncm91cCBieSBncnVwbzAgb3JkZXIgYnkgMVxyXG4gICAgICAgICAgICBgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX3N1cCA9IChhd2FpdCBjbGllbnQucXVlcnkoYHNlbGVjdCAqIGZyb20gbm9fcmVhX3N1cCBvcmRlciBieSBub19yZWFfc3VwYCkuZmV0Y2hBbGwoKSkucm93cztcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ2NhY2hlcycsdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYV9zdXApXHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfc3VwX2dyb3VwcyA9IChhd2FpdCBjbGllbnQucXVlcnkoYFxyXG4gICAgICAgICAgICBzZWxlY3QgZ3J1cG9fc3VwLCBqc29uYl9hZ2codG9fanNvbihyLiopKSBhcyBjb2RpZ29zIGZyb20gbm9fcmVhX3N1cCByIGdyb3VwIGJ5IGdydXBvX3N1cCBvcmRlciBieSAxXHJcbiAgICAgICAgICAgIGApLmZldGNoQWxsKCkpLnJvd3M7XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfc3VwX2dyb3VwczAgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBcclxuICAgICAgICAgICAgc2VsZWN0IGdydXBvMF9zdXAgYXMgZ3J1cG8sIGpzb25iX2FnZyh0b19qc29uKHIuKikpIGFzIGNvZGlnb3MgZnJvbSBub19yZWFfc3VwIHIgZ3JvdXAgYnkgZ3J1cG8wX3N1cCBvcmRlciBieSAxXHJcbiAgICAgICAgYCkuZmV0Y2hBbGwoKSkucm93cztcclxuICAgICAgICB9KVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCdjYWNoZXMgb2snKTtcclxuICAgIH1cclxuICAgIC8vc3FsTm9yZWFDYXNlKGNhbXBvTmVjZXNhcmlvOnN0cmluZyl7XHJcbiAgICAvLyAgICB2YXIgYmU9dGhpcztcclxuICAgIC8vICAgIHJldHVybiBgQ0FTRSAke2JlLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhLm1hcCh4PT5cclxuICAgIC8vICAgICAgICBgIFdIRU4gbm9yZWEgID0gJHtiZS5kYi5xdW90ZUxpdGVyYWwoeC5ub19yZWEpfTo6aW50ZWdlciBUSEVOICR7YmUuZGIucXVvdGVMaXRlcmFsKHhbY2FtcG9OZWNlc2FyaW9dKX1gXHJcbiAgICAvLyAgICApLmpvaW4oJycpfSBXSEVOIFRSVUUgVEhFTiBOVUxMIEVORGBcclxuICAgIC8vfSAgICBcclxuICAgIGdldENvbnRleHQocmVxOlJlcXVlc3QpOkNvbnRleHR7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICB2YXIgZmF0aGVyQ29udGV4dCA9IHN1cGVyLmdldENvbnRleHQocmVxKTtcclxuICAgICAgICBpZihmYXRoZXJDb250ZXh0LnVzZXIpe1xyXG4gICAgICAgICAgICBpZihiZS5wZXJtaXNvc1JvbFtyZXEudXNlci5yb2xdPy5zdXBlcnVzZXIpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtzdXBlcnVzZXI6dHJ1ZSwgcHVlZGU6IGJlLnBlcm1pc29zU3VwZXJ1c2VyLCAuLi5mYXRoZXJDb250ZXh0fVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7cHVlZGU6IGJlLnBlcm1pc29zUm9sW3JlcS51c2VyLnJvbF0/LnB1ZWRlLCAuLi5mYXRoZXJDb250ZXh0fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7cHVlZGU6YmUucGVybWlzb3NQYXJhTmFkaWUsIC4uLmZhdGhlckNvbnRleHR9O1xyXG4gICAgfVxyXG4gICAgZ2V0Q29udGV4dEZvckR1bXAoKTpDb250ZXh0e1xyXG4gICAgICAgIHZhciBmYXRoZXJDb250ZXh0ID0gc3VwZXIuZ2V0Q29udGV4dEZvckR1bXAoKTtcclxuICAgICAgICByZXR1cm4ge3N1cGVydXNlcjp0cnVlLCBwdWVkZTogdGhpcy5wZXJtaXNvc1N1cGVydXNlciwgLi4uZmF0aGVyQ29udGV4dH07XHJcbiAgICB9XHJcbiAgICBnZXRDbGllbnRTZXR1cEZvclNlbmRUb0Zyb250RW5kKHJlcTpSZXF1ZXN0KXtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5zdXBlci5nZXRDbGllbnRTZXR1cEZvclNlbmRUb0Zyb250RW5kKHJlcSksXHJcbiAgICAgICAgICAgIGlkcGVyOiByZXEudXNlcj8uaWRwZXJcclxuICAgICAgICB9XHJcbiAgICBcclxuICAgIH1cclxuICAgIGNyZWF0ZVJlc291cmNlc0ZvckNhY2hlSnNvbihwYXJhbWV0ZXJzKXtcclxuICAgICAgICB2YXIgYmUgPSB0aGlzO1xyXG4gICAgICAgIHZhciBqc29uUmVzdWx0ID0ge307XHJcbiAgICAgICAgXHJcbiAgICAgICAganNvblJlc3VsdC52ZXJzaW9uID0gQVBQX0RNX1ZFUlNJT047XHJcbiAgICAgICAganNvblJlc3VsdC5hcHBOYW1lID0gJ2RtZW5jdSc7XHJcbiAgICAgICAganNvblJlc3VsdC5jYWNoZT1bXHJcbiAgICAgICAgICAgIFwiY2FtcG9cIixcclxuICAgICAgICAgICAgXCJvZmZsaW5lXCIsXHJcbiAgICAgICAgICAgIFwibGliL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9tYXRlcmlhbC11aS5wcm9kdWN0aW9uLm1pbi5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9jbHN4Lm1pbi5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9yZWR1eC5taW4uanNcIixcclxuICAgICAgICAgICAgXCJsaWIvcmVhY3QtcmVkdXgubWluLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL21lbW9pemUtb25lLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL3FyY29kZS5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9yZXF1aXJlLWJyby5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9jYXN0LWVycm9yLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL2xpa2UtYXIuanNcIixcclxuICAgICAgICAgICAgXCJsaWIvYmVzdC1nbG9iYWxzLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL2pzb240YWxsLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL2pzLXRvLWh0bWwuanNcIixcclxuICAgICAgICAgICAgXCJsaWIvcmVkdXgtdHlwZWQtcmVkdWNlci5qc1wiLFxyXG4gICAgICAgICAgICBcImRtZW5jdS9hZGFwdC5qc1wiLFxyXG4gICAgICAgICAgICBcImRtZW5jdS91bmxvZ2dlZC5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9qcy15YW1sLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL3hsc3guY29yZS5taW4uanNcIixcclxuICAgICAgICAgICAgXCJsaWIvbGF6eS1zb21lLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL3NxbC10b29scy5qc1wiLFxyXG4gICAgICAgICAgICBcImRpYWxvZy1wcm9taXNlL2RpYWxvZy1wcm9taXNlLmpzXCIsXHJcbiAgICAgICAgICAgIFwibW9tZW50L21pbi9tb21lbnQuanNcIixcclxuICAgICAgICAgICAgXCJwaWthZGF5L3Bpa2FkYXkuanNcIixcclxuICAgICAgICAgICAgXCJsaWIvcG9seWZpbGxzLWJyby5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9iaWcuanNcIixcclxuICAgICAgICAgICAgXCJsaWIvdHlwZS1zdG9yZS5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi90eXBlZC1jb250cm9scy5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9hamF4LWJlc3QtcHJvbWlzZS5qc1wiLFxyXG4gICAgICAgICAgICBcIm15LWFqYXguanNcIixcclxuICAgICAgICAgICAgXCJteS1zdGFydC5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9teS1sb2NhbGRiLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL215LXdlYnNxbGRiLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL215LWxvY2FsZGIuanMubWFwXCIsXHJcbiAgICAgICAgICAgIFwibGliL215LXdlYnNxbGRiLmpzLm1hcFwiLFxyXG4gICAgICAgICAgICBcImxpYi9teS10aGluZ3MuanNcIixcclxuICAgICAgICAgICAgXCJsaWIvbXktdGFibGVzLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL215LWluZm9ybS1uZXQtc3RhdHVzLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL215LW1lbnUuanNcIixcclxuICAgICAgICAgICAgXCJsaWIvbXktc2tpbi5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9jbGllbnRlLWVuLWNhc3RlbGxhbm8uanNcIixcclxuICAgICAgICAgICAgXCJsaWIvc2VydmljZS13b3JrZXItYWRtaW4uanNcIixcclxuICAgICAgICAgICAgXCJsaWIvcmVkdXgtdHlwZWQtcmVkdWNlci5qc1wiLFxyXG4gICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL29wZXJhdGl2b3MuanNcIixcclxuICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy92YXJjYWwuanNcIixcclxuICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9mb3JtLXN0cnVjdHVyZS5qc1wiLFxyXG4gICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL21ldGEtZW5jLmpzXCIsXHJcbiAgICAgICAgICAgIFwiY2xpZW50X21vZHVsZXMvZGF0b3MtZXh0LmpzXCIsXHJcbiAgICAgICAgICAgIFwiY2xpZW50X21vZHVsZXMvY29uc2lzdGVuY2lhcy5qc1wiLFxyXG4gICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL3Byb2Nlc2FtaWVudG8uanNcIixcclxuICAgICAgICAgICAgXCJkbWVuY3UvdGlwb3MuanNcIixcclxuICAgICAgICAgICAgXCJkbWVuY3UvYnlwYXNzLWZvcm11bGFyaW8uanNcIixcclxuICAgICAgICAgICAgXCJkbWVuY3UvcmVkdXgtZm9ybXVsYXJpby5qc1wiLFxyXG4gICAgICAgICAgICBcImRtZW5jdS9yZW5kZXItZ2VuZXJhbC5qc1wiLFxyXG4gICAgICAgICAgICBcImRtZW5jdS9yZW5kZXItZm9ybXVsYXJpby5qc1wiLFxyXG4gICAgICAgICAgICBcImRtZW5jdS9hYnJpci1mb3JtdWxhcmlvLmpzXCIsXHJcbiAgICAgICAgICAgIFwiY2xpZW50X21vZHVsZXMvcm93LXZhbGlkYXRvci5qc1wiLFxyXG4gICAgICAgICAgICBcImNsaWVudC9tZW51LmpzXCIsXHJcbiAgICAgICAgICAgIFwiaW1nL2xvZ28ucG5nXCIsXHJcbiAgICAgICAgICAgIC8vXCJpbWcvbG9nby1kbS5wbmdcIixcclxuICAgICAgICAgICAgXCJpbWcvbG9nby0xMjgucG5nXCIsXHJcbiAgICAgICAgICAgIFwiaW1nL21haW4tbG9hZGluZy5naWZcIixcclxuICAgICAgICAgICAgXCJpbWcvYm9ycmFyLXZhbG9yLnBuZ1wiLFxyXG4gICAgICAgICAgICBcImltZy9mb25kby1zYWx0ZWFkby1lcnJvci5wbmdcIixcclxuICAgICAgICAgICAgXCJpbWcvZm9uZG8tc2FsdGVhZG8ucG5nXCIsXHJcbiAgICAgICAgICAgIFwiaW1nL2JhY2tncm91bmQtdGVzdC5wbmdcIixcclxuICAgICAgICAgICAgXCJjbGllbnQtc2V0dXBcIixcclxuICAgICAgICAgICAgXCJjc3MvYm9vdHN0cmFwLm1pbi5jc3NcIixcclxuICAgICAgICAgICAgXCJjc3MvZm9ybXVsYXJpby1yZWFjdC5jc3NcIixcclxuICAgICAgICAgICAgXCJwaWthZGF5L3Bpa2FkYXkuY3NzXCIsXHJcbiAgICAgICAgICAgIFwiZGlhbG9nLXByb21pc2UvZGlhbG9nLXByb21pc2UuY3NzXCIsXHJcbiAgICAgICAgICAgIFwicmVsLWVuYy9lc3RhZG9zLmNzc1wiLFxyXG4gICAgICAgICAgICBcImNzcy9teS10YWJsZXMuY3NzXCIsXHJcbiAgICAgICAgICAgIFwiY3NzL215LW1lbnUuY3NzXCIsXHJcbiAgICAgICAgICAgIFwiY3NzL215LXRoaW5ncy5jc3NcIixcclxuICAgICAgICAgICAgXCJjc3MvbWVudS5jc3NcIixcclxuICAgICAgICAgICAgXCJyZWwtZW5jL215LXRoaW5nczIuY3NzXCIsXHJcbiAgICAgICAgICAgIFwiY3NzL2Zvcm11bGFyaW8tcmVhY3QuY3NzXCIsXHJcbiAgICAgICAgICAgIFwiY3NzL1JvYm90by1SZWd1bGFyLnR0ZlwiXHJcbiAgICAgICAgXVxyXG4gICAgICAgIGpzb25SZXN1bHQuZmFsbGJhY2s9W1xyXG4gICAgICAgICAgICB7XCJwYXRoXCI6XCJsb2dpblwiLCBcImZhbGxiYWNrXCI6XCJvZmZsaW5lXCJ9LFxyXG4gICAgICAgICAgICB7XCJwYXRoXCI6XCJsb2dvdXRcIiwgXCJmYWxsYmFja1wiOlwib2ZmbGluZVwifSxcclxuICAgICAgICAgICAge1wicGF0aFwiOlwibG9naW4jaT1zaW5jcm9uaXphclwiLCBcImZhbGxiYWNrXCI6XCJvZmZsaW5lXCJ9LFxyXG4gICAgICAgICAgICB7XCJwYXRoXCI6XCJtZW51I2k9c2luY3Jvbml6YXJcIiwgXCJmYWxsYmFja1wiOlwib2ZmbGluZVwifVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGpzb25SZXN1bHRcclxuICAgIH1cclxuICAgIGdldE1lbnUoY29udGV4dDpDb250ZXh0KXtcclxuICAgICAgICBsZXQgbWVudTpNZW51SW5mb0Jhc2VbXSA9IFtdO1xyXG4gICAgICAgIGlmKHRoaXMuY29uZmlnLnNlcnZlci5wb2xpY3k9PSd3ZWInKXtcclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uZW5jdWVzdGFzLnJlbGV2YXIpe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0nZGVtbycgfHwgdGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0ndGVzdCcgfHwgdGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0nY2FwYScpe1xyXG4gICAgICAgICAgICAgICAgICAgIG1lbnUucHVzaCh7bWVudVR5cGU6J2RlbW8nLCBuYW1lOidkZW1vJywgc2VsZWN0ZWRCeURlZmF1bHQ6dHJ1ZX0pXHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBtZW51LnB1c2goe21lbnVUeXBlOidwYXRoJywgbmFtZToncmVsZXZhbWllbnRvJywgcGF0aDonL2NhbXBvJ30pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtZW51LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidzaW5jcm9uaXphcl9kbScsIG5hbWU6J3NpbmNyb25pemFyJ30sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGlmKGNvbnRleHQucHVlZGU/LmNhbXBvPy5lZGl0YXIpe1xyXG4gICAgICAgICAgICAgICAgbWVudS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonYWJyaXJfZW5jdWVzdGEnLCBuYW1lOidhYnJpcl9lbmN1ZXN0YSd9LFxyXG4gICAgICAgICAgICAgICAgICAgIC8ve21lbnVUeXBlOidjb25zaXN0aXJfZW5jdWVzdGEnLCBuYW1lOidjb25zaXN0aXJfZW5jdWVzdGEnfSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaChcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J21lbnUnLCBuYW1lOidyZWNlcGNpb24nLCBsYWJlbDoncmVjZXBjacOzbicgLG1lbnVDb250ZW50OltcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J21pc19hcmVhcycsIHRhYmxlOidhcmVhcycsIGZmOntyZWNlcGNpb25pc3RhOmNvbnRleHQudXNlci5pZHBlcn19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonbWlzX2VuY3Vlc3RhZG9yZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2FyZWFzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0ZW1fcmVjZXBjaW9uJywgbGFiZWw6J1RFTSd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTondGFyZWFzX3RlbScsIGxhYmVsOidUYXJlYXNURU0nfVxyXG4gICAgICAgICAgICAgICAgICAgIF19LCAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY29udGV4dCB1c2VyXCIsIGNvbnRleHQudXNlcilcclxuICAgICAgICAgICAgaWYoY29udGV4dC5zdXBlcnVzZXIpe1xyXG4gICAgICAgICAgICAgICAgbWVudS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J2NvbnRyb2wnLCBtZW51Q29udGVudDpbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidyZXN1bWVuJywgdGFibGU6J2NvbnRyb2xfcmVzdW1lbicsIHNlbGVjdGVkQnlEZWZhdWx0OnRydWV9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonZG9taW5pbycsIHRhYmxlOidjb250cm9sX2NhbXBvX2RvbWluaW8nfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3pvbmEnICAgLCB0YWJsZTonY29udHJvbF9jYW1wb196b25hJyAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2NvbXVuYScgLCB0YWJsZTonY29udHJvbF9jYW1wb19jb211bmEnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J8OhcmVhJyAgICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fYXJlYScgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidwYXJ0aWNpcGFjaW9uJyAgICAgICAgLCB0YWJsZTonY29udHJvbF9jYW1wb19wYXJ0aWNpcGFjaW9uJyAgfSxcclxuICAgICAgICAgICAgICAgICAgICBdfSwgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihjb250ZXh0LnB1ZWRlLmVuY3Vlc3Rhcy5wcm9jZXNhcil7XHJcbiAgICAgICAgICAgICAgICBtZW51ID0gWyAuLi5tZW51LFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J3Byb2Nlc2FyJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTondmFyaWFibGVzJyAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonY29uc2lzdGVuY2lhcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonaW5jb25zaXN0ZW5jaWFzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0YWJsYV9kYXRvcycgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidkaWNjaW9uYXJpbycgICwgbGFiZWw6J2RpY2Npb25hcmlvcycgfSxcclxuICAgICAgICAgICAgICAgICAgICBdfSxcclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihjb250ZXh0LnN1cGVydXNlcil7XHJcbiAgICAgICAgICAgICAgICBtZW51ID0gWyAuLi5tZW51LFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J2NvbmZpZ3VyYXInLCBtZW51Q29udGVudDpbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J211ZXN0cmEnLCBsYWJlbDonbXVlc3RyYScsIG1lbnVDb250ZW50OltcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0ZW0nLCBsYWJlbDogJ1RFTSd9ICxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0YXJlYXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8ge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3BlcnNvbmFsX3JvbCd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonbWV0YWRhdG9zJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J29wZXJhdGl2b3MnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidmb3JtdWxhcmlvcycgLCB0YWJsZTonY2FzaWxsZXJvc19wcmluY2lwYWxlcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3BsYW5vJyAgICAgICAsIHRhYmxlOidjYXNpbGxlcm9zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTondGlwb2MnICAgICAgICwgbGFiZWw6J3RpcG9zIGRlIGNlbGRhcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3RpcG9jX3RpcG9jJyAsIGxhYmVsOidpbmNsdXNpb25lcyBkZSBjZWxkYXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J2VzdGFkb3NfYWNjaW9uZXMnLCBsYWJlbDonZXN0YWRvcy9hY2Npb25lcycgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2VzdGFkb3MnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidhY2Npb25lcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2VzdGFkb3NfYWNjaW9uZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidwYXJhbWV0cm9zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgXX0sXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTondXN1YXJpb3MnLCBtZW51Q29udGVudDpbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid1c3VhcmlvcycsIHNlbGVjdGVkQnlEZWZhdWx0OnRydWV9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncm9sZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3Blcm1pc29zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidyb2xlc19wZXJtaXNvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgIF19LFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHttZW51VHlwZToncHJvYycsIG5hbWU6J2dlbmVyYXRlX3RhYmxlZGVmJywgcHJvYzondGFibGVkZWZfZ2VuZXJhdGUnLCBsYWJlbDonZ2VuZXJhciB0YWJsYXMnICB9LFxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgIHJldHVybiB7bWVudX07XHJcbiAgICB9XHJcbiAgICBwcmVwYXJlR2V0VGFibGVzKCl7XHJcbiAgICAgICAgdmFyIGJlPXRoaXM7XHJcbiAgICAgICAgc3VwZXIucHJlcGFyZUdldFRhYmxlcygpO1xyXG4gICAgICAgIHRoaXMuZ2V0VGFibGVEZWZpbml0aW9uPXtcclxuICAgICAgICAgICAgLi4udGhpcy5nZXRUYWJsZURlZmluaXRpb25cclxuICAgICAgICAgICAgLCByb2xlc1xyXG4gICAgICAgICAgICAsIHVzdWFyaW9zXHJcbiAgICAgICAgICAgICwgcGVyc29uYWxcclxuICAgICAgICAgICAgLCByZWNlcGNpb25pc3Rhc1xyXG4gICAgICAgICAgICAsIGVuY3Vlc3RhZG9yZXNcclxuICAgICAgICAgICAgLCBtaXNfZW5jdWVzdGFkb3Jlc1xyXG4gICAgICAgICAgICAsIHJlY3VwZXJhZG9yZXNcclxuICAgICAgICAgICAgLCBzdXBlcnZpc29yZXNcclxuICAgICAgICAgICAgLCBwZXJzb25hbF9yb2xcclxuICAgICAgICAgICAgLCBwZXJtaXNvc1xyXG4gICAgICAgICAgICAsIHJvbGVzX3Blcm1pc29zXHJcbiAgICAgICAgICAgICwgcm9sZXNfc3Vib3JkaW5hZG9zXHJcbiAgICAgICAgICAgICwgbm9fcmVhXHJcbiAgICAgICAgICAgICwgbm9fcmVhX3N1cFxyXG4gICAgICAgICAgICAsIHNlbWFuYXNcclxuICAgICAgICAgICAgLCBlc3RhZG9zXHJcbiAgICAgICAgICAgICwgYWNjaW9uZXNcclxuICAgICAgICAgICAgLCBlc3RhZG9zX2FjY2lvbmVzXHJcbiAgICAgICAgICAgICwgdGVtXHJcbiAgICAgICAgICAgICwgdGVtX3JlY2VwY2lvblxyXG4gICAgICAgICAgICAsIHBhcmFtZXRyb3NcclxuICAgICAgICAgICAgLCBvcGVyYWNpb25lc1xyXG4gICAgICAgICAgICAsIGNvbXVuYXNcclxuICAgICAgICAgICAgLCBhcmVhc1xyXG4gICAgICAgICAgICAsIHNpbmNyb25pemFjaW9uZXNcclxuICAgICAgICAgICAgLCB0YXJlYXNcclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtXHJcbiAgICAgICAgICAgICwgdGFyZWFzX2FyZWFzXHJcbiAgICAgICAgICAgICwgbWlzX3RhcmVhc1xyXG4gICAgICAgICAgICAsIHRhcmVhc190ZW1fYXNpZ25hYmxlc1xyXG4gICAgICAgICAgICAsIHRhcmVhc190ZW1fcmVjZXBjaW9uXHJcbiAgICAgICAgICAgICwgbWlzX3RhcmVhc19hcmVhc1xyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9cclxuICAgICAgICAgICAgLCBjb250cm9sX3Jlc3VtZW5cclxuICAgICAgICAgICAgLCBjb250cm9sX2NhbXBvX3pvbmE6IGNvbnRleHQ9PmNvbnRyb2xfY2FtcG8oY29udGV4dCwgXHJcbiAgICAgICAgICAgICAgICB7bm9tYnJlOidjb250cm9sX2NhbXBvX2NvbXVuYScsIHRpdGxlOidjb250cm9sIGNhbXBvIHggem9uYSBzb2xvIGNlbWVudG8nLCBjYW1wb3NDb3J0ZTpbe25hbWU6J3pvbmEnLCB0eXBlTmFtZTondGV4dCd9XSwgZmlsdHJvV2hlcmU6J2RvbWluaW89MycgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgICwgY29udHJvbF9jYW1wb19jb211bmE6IGNvbnRleHQ9PmNvbnRyb2xfY2FtcG8oY29udGV4dCwgXHJcbiAgICAgICAgICAgICAgICB7bm9tYnJlOidjb250cm9sX2NhbXBvX2NvbXVuYScsIHRpdGxlOidjb250cm9sIGNhbXBvIHggY29tdW5hIHNvbG8gY2VtZW50bycsIGNhbXBvc0NvcnRlOlt7bmFtZTonem9uYScsIHR5cGVOYW1lOid0ZXh0J30se25hbWU6J25yb2NvbXVuYScsIHR5cGVOYW1lOidpbnRlZ2VyJ31dLCBmaWx0cm9XaGVyZTonZG9taW5pbz0zJyB9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLCBjb250cm9sX2NhbXBvX2FyZWE6IGNvbnRleHQ9PmNvbnRyb2xfY2FtcG8oY29udGV4dCwgXHJcbiAgICAgICAgICAgICAgICB7bm9tYnJlOidjb250cm9sX2NhbXBvX2NvbXVuYScsIHRpdGxlOidjb250cm9sIGNhbXBvIHggYXJlYScsIGNhbXBvc0NvcnRlOlt7bmFtZTonem9uYScsIHR5cGVOYW1lOid0ZXh0J30se25hbWU6J25yb2NvbXVuYScsIHR5cGVOYW1lOidpbnRlZ2VyJ30se25hbWU6J2FyZWEnLCB0eXBlTmFtZTonaW50ZWdlcid9LHtuYW1lOidwYXJ0aWNpcGFjaW9uX2EnLCB0eXBlTmFtZTondGV4dCd9LHtuYW1lOidjbGFzZV9hJywgdHlwZU5hbWU6J3RleHQnfV19XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLCBjb250cm9sX2NhbXBvX3BhcnRpY2lwYWNpb246IGNvbnRleHQ9PmNvbnRyb2xfY2FtcG8oY29udGV4dCwgXHJcbiAgICAgICAgICAgICAgICB7bm9tYnJlOidjb250cm9sX2NhbXBvX2NvbXVuYScsIHRpdGxlOidjb250cm9sIGNhbXBvIHggcGFydGljaXBhY2lvbicsIGNhbXBvc0NvcnRlOlt7bmFtZToncGFydGljaXBhY2lvbicsIHR5cGVOYW1lOidiaWdpbnQnfV19XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLCBjb250cm9sX2NhbXBvX2RvbWluaW86IGNvbnRleHQ9PmNvbnRyb2xfY2FtcG8oY29udGV4dCwgXHJcbiAgICAgICAgICAgICAgICB7bm9tYnJlOidjb250cm9sX2NhbXBvX2NvbXVuYScsIHRpdGxlOidjb250cm9sIGNhbXBvIHggZG9taW5pbycsIGNhbXBvc0NvcnRlOlt7bmFtZTonZG9taW5pbycsIHR5cGVOYW1lOidpbnRlZ2VyJ31dfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgICwgdml2aWVuZGFzXHJcbiAgICAgICAgICAgICwgdmlzaXRhc1xyXG4gICAgICAgICAgICAsIGhvZ2FyZXNcclxuICAgICAgICAgICAgLCBwZXJzb25hc1xyXG4gICAgICAgICAgICAsIHZpc2l0YXNfc3VwXHJcbiAgICAgICAgICAgICwgaG9nYXJlc19zdXBcclxuICAgICAgICAgICAgLCBwZXJzb25hc19zdXBcclxuICAgICAgICB9XHJcbiAgICAgICAgYmUuYXBwZW5kVG9UYWJsZURlZmluaXRpb24oJ2NvbnNpc3RlbmNpYXMnLGZ1bmN0aW9uKHRhYmxlRGVmLCBjb250ZXh0KXtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLmZvckVhY2goZnVuY3Rpb24oZmllbGQpe1xyXG4gICAgICAgICAgICAgICAgaWYoZmllbGQubmFtZT09J2Vycm9yX2NvbXBpbGFjaW9uJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZmllbGQudmlzaWJsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJyoqKioqKioqKioqKiBRVUlUQVIgRVNUTyBlcnJvcl9jb21waWxhY2lvbiB5YSBlcyB2aXNpYmxlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnZpc2libGU9dHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgICAgIGJlLmFwcGVuZFRvVGFibGVEZWZpbml0aW9uKCdpbmNvbnNpc3RlbmNpYXMnLGZ1bmN0aW9uKHRhYmxlRGVmLCBjb250ZXh0KXtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnNwbGljZSgyLDAsXHJcbiAgICAgICAgICAgICAgICB7bmFtZTondml2aWVuZGEnICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICAgICB7bmFtZTonaG9nYXInICAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICAgICB7bmFtZToncGVyc29uYScgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICAgICB7bmFtZTondmlzaXRhJyAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRhYmxlRGVmLmVkaXRhYmxlPXRhYmxlRGVmLmVkaXRhYmxlIHx8IGNvbnRleHQucHVlZGU/LmVuY3Vlc3Rhcy5qdXN0aWZpY2FyO1xyXG4gICAgICAgICAgICB0YWJsZURlZi5maWVsZHMuZm9yRWFjaChmdW5jdGlvbihmaWVsZCl7XHJcbiAgICAgICAgICAgICAgICBpZihmaWVsZC5uYW1lPT0ncGtfaW50ZWdyYWRhJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudmlzaWJsZT1mYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKGZpZWxkLm5hbWU9PSdqdXN0aWZpY2FjaW9uJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQuZWRpdGFibGU9Y29udGV4dC5mb3JEdW1wIHx8IGNvbnRleHQucHVlZGU/LmVuY3Vlc3Rhcy5qdXN0aWZpY2FyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB0YWJsZURlZi5maWVsZHMucHVzaCh7bmFtZTonZmluX2NhbXBvJyAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgXHJcbiAgICAgICAgICAgICAgICAsIGVkaXRhYmxlOiBmYWxzZSwgaW5UYWJsZTpmYWxzZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB0YWJsZURlZi5zcWwhLmZyb209YFxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdCBpLiosIHQuZmluX2NhbXBvIFxyXG4gICAgICAgICAgICAgICAgICBmcm9tIGluY29uc2lzdGVuY2lhcyBpIGpvaW4gdGVtIHQgb24gaS52aXZpZW5kYT10LmVuYyBhbmQgaS5vcGVyYXRpdm89dC5vcGVyYXRpdm8gXHJcbiAgICAgICAgICAgICAgICApICBcclxuICAgICAgICAgICAgYFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgYmUuYXBwZW5kVG9UYWJsZURlZmluaXRpb24oJ29wZXJhdGl2b3MnLGZ1bmN0aW9uKHRhYmxlRGVmLCBjb250ZXh0KXtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnNwbGljZSgyLDAse1xyXG4gICAgICAgICAgICAgICAgbmFtZTonY29uZmlnX3NvcnRlbycsIFxyXG4gICAgICAgICAgICAgICAgdHlwZU5hbWU6J2pzb25iJyxcclxuICAgICAgICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnNwbGljZSgzLDAse1xyXG4gICAgICAgICAgICAgICAgbmFtZTonZGlzZm9ybV9jZXJyYWRvJywgXHJcbiAgICAgICAgICAgICAgICB0eXBlTmFtZTonYm9vbGVhbicsIFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSwgXHJcbiAgICAgICAgICAgICAgICBlZGl0YWJsZTogY29udGV4dC5mb3JEdW1wfHxbJ2FkbWluJywnZGlzX2NvbmNlcHR1YWwnXS5pbmNsdWRlcyhjb250ZXh0LnVzZXIucm9sKX1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICAvLyBiZS5hcHBlbmRUb1RhYmxlRGVmaW5pdGlvbignY2FzaWxsZXJvcycsZnVuY3Rpb24odGFibGVEZWYsIGNvbnRleHQpe1xyXG4gICAgICAgIC8vICAgICB0YWJsZURlZi5jb25zdHJhaW50cyA9IHRhYmxlRGVmLmNvbnN0cmFpbnRzLmZpbHRlcihjPT5jLmNvbnNOYW1lIT0nY2FzaWxsZXJvcyBzYWx0byBSRUwnKVxyXG4gICAgICAgIC8vIH0pXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIEFwcERtRW5jdSA9IGVtZXJnZUFwcERtRW5jdShlbWVyZ2VBcHBQcm9jZXNhbWllbnRvKGVtZXJnZUFwcENvbnNpc3RlbmNpYXMoZW1lcmdlQXBwVmFyQ2FsKGVtZXJnZUFwcERhdG9zRXh0KGVtZXJnZUFwcE9wZXJhdGl2b3MoQXBwQmFja2VuZCkpKSkpKTtcclxuZXhwb3J0IHR5cGUgQXBwQXBwRG1FbmN1VHlwZSA9IEluc3RhbmNlVHlwZTx0eXBlb2YgQXBwRG1FbmN1PjsiXX0=
|
|
678
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWRtZW5jdS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvYXBwLWRtZW5jdS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUFBLFlBQVksQ0FBQzs7O0lBR2IsaURBQTBMO0lBQzFMLDJEQUF5RTtJQUV6RSx3Q0FBd0M7SUFFeEMsd0NBQXdDO0lBSXhDLDZCQUE2QjtJQUU3QixrQ0FBa0M7SUFDbEMsbUNBQW1DO0lBRW5DLDJCQUFtQztJQUVuQywrQ0FBb0Q7SUFDcEQscURBQXVEO0lBQ3ZELGlFQUE2RDtJQUM3RCwrREFBOEQ7SUFDOUQsdUVBQWtFO0lBQ2xFLCtEQUE0RDtJQUM1RCw2REFBMkQ7SUFDM0QsNkRBQTJEO0lBQzNELHFEQUF1RDtJQUN2RCxpRUFBNkQ7SUFDN0QseURBQXlEO0lBQ3pELHlFQUFpRTtJQUVqRSxpREFBcUQ7SUFDckQseURBQXlEO0lBQ3pELDJDQUFrRDtJQUNsRCwrREFBNEQ7SUFDNUQsbURBQXNEO0lBQ3RELHFEQUF1RDtJQUN2RCwyREFBMEQ7SUFDMUQsbURBQXNEO0lBQ3RELCtDQUFvRDtJQUNwRCxxRUFBK0Q7SUFDL0QsaURBQXFEO0lBQ3JELHlEQUF5RDtJQUN6RCw2REFBMkQ7SUFDM0QseURBQXlEO0lBQ3pELCtFQUFzRTtJQUN0RSw2RUFBcUU7SUFDckUscUVBQStEO0lBQy9ELCtEQUE0RDtJQUM1RCxtRUFBOEQ7SUFDOUQsdURBQXdEO0lBQ3hELG1EQUFzRDtJQUN0RCxtREFBc0Q7SUFDdEQscURBQXVEO0lBQ3ZELDJEQUEwRDtJQUMxRCwyREFBMEQ7SUFDMUQsNkRBQTJEO0lBRTNELG1EQUFzRDtJQUN0RCxxREFBdUQ7SUFDdkQscUVBQStEO0lBRy9ELGlEQUErQjtJQUMvQiw2Q0FBc0M7SUFFdEMsTUFBTSxjQUFjLEdBQUMsV0FBVyxDQUFDO0lBRWpDLFNBQWdCLGVBQWUsQ0FBMEUsSUFBTTtRQUM3RyxPQUFPLE1BQU0s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QUMsQ0FBQTtnQkFDRixFQUFFLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFDLFVBQVMsUUFBUSxFQUFFLE9BQU87b0JBQzlELFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUM7d0JBQ3ZCLElBQUksRUFBQyxlQUFlO3dCQUNwQixRQUFRLEVBQUMsT0FBTzt3QkFDaEIsUUFBUSxFQUFFLEtBQUs7cUJBQ2xCLENBQUMsQ0FBQztvQkFDSCxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDO3dCQUN2QixJQUFJLEVBQUMsaUJBQWlCO3dCQUN0QixRQUFRLEVBQUMsU0FBUzt3QkFDbEIsWUFBWSxFQUFFLEtBQUs7d0JBQ25CLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFFLENBQUMsT0FBTyxFQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO3FCQUFDLENBQ3BGLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLENBQUE7Z0JBRUYsdUVBQXVFO2dCQUN2RSxnR0FBZ0c7Z0JBQ2hHLEtBQUs7WUFDVCxDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUEzbUJELDBDQTJtQkM7SUFFVSxRQUFBLFNBQVMsR0FBRyxlQUFlLENBQUMsSUFBQSxzQ0FBc0IsRUFBQyxJQUFBLHNDQUFzQixFQUFDLElBQUEsK0JBQWUsRUFBQyxJQUFBLGlDQUFpQixFQUFDLElBQUEsbUNBQW1CLEVBQUMsMEJBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuaW1wb3J0ICogYXMgcHJvY2VzYW1pZW50byBmcm9tIFwicHJvY2VzYW1pZW50b1wiO1xyXG5pbXBvcnQge2VtZXJnZUFwcFByb2Nlc2FtaWVudG8sIGVtZXJnZUFwcENvbnNpc3RlbmNpYXMsIGVtZXJnZUFwcFZhckNhbCwgZW1lcmdlQXBwRGF0b3NFeHQsIGVtZXJnZUFwcE9wZXJhdGl2b3MsIEFwcEJhY2tlbmQsIENsaWVudE1vZHVsZURlZmluaXRpb24sIE9wdHNDbGllbnRQYWdlfSBmcm9tIFwicHJvY2VzYW1pZW50b1wiO1xyXG5pbXBvcnQge2dldE9wZXJhdGl2b0FjdHVhbCwgUHJvY2VkdXJlc0RtRW5jdX0gZnJvbSBcIi4vcHJvY2VkdXJlcy1kbWVuY3VcIjtcclxuXHJcbmltcG9ydCAqIGFzIHBnIGZyb20gXCJwZy1wcm9taXNlLXN0cmljdFwiO1xyXG5pbXBvcnQge2pzb259IGZyb20gXCJwZy1wcm9taXNlLXN0cmljdFwiO1xyXG5pbXBvcnQgKiBhcyBtaW5pVG9vbHMgZnJvbSBcIm1pbmktdG9vbHNcIjtcclxuaW1wb3J0IHtDb250ZXh0LCBNZW51SW5mb0Jhc2UsIFJlcXVlc3QsIFJlc3BvbnNlfSBmcm9tIFwiLi90eXBlcy1kbWVuY3VcIjtcclxuaW1wb3J0IHsgY2hhbmdpbmcgfSBmcm9tIFwiYmVzdC1nbG9iYWxzXCI7XHJcblxyXG5pbXBvcnQgKiBhcyB5YXpsIGZyb20gXCJ5YXpsXCI7XHJcbmltcG9ydCB7IE5leHRGdW5jdGlvbiB9IGZyb20gXCJleHByZXNzLXNlcnZlLXN0YXRpYy1jb3JlXCI7XHJcbmltcG9ydCAqIGFzIGxpa2VBciBmcm9tIFwibGlrZS1hclwiO1xyXG5pbXBvcnQgKiBhcyBleHByZXNzIGZyb20gXCJleHByZXNzXCI7XHJcblxyXG5pbXBvcnQge3Byb21pc2VzIGFzIGZzIH0gZnJvbSBcImZzXCI7XHJcblxyXG5pbXBvcnQgeyByb2xlcyAgICAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcm9sZXNcIjtcclxuaW1wb3J0IHsgcGVyc29uYWwgICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXBlcnNvbmFsXCI7XHJcbmltcG9ydCB7IHJlY2VwY2lvbmlzdGFzICAgICAgfSBmcm9tIFwiLi90YWJsZS1yZWNlcGNpb25pc3Rhc1wiO1xyXG5pbXBvcnQgeyBlbmN1ZXN0YWRvcmVzICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1lbmN1ZXN0YWRvcmVzXCI7XHJcbmltcG9ydCB7IG1pc19lbmN1ZXN0YWRvcmVzICAgICB9IGZyb20gXCIuL3RhYmxlLW1pc19lbmN1ZXN0YWRvcmVzXCI7XHJcbmltcG9ydCB7IHJlY3VwZXJhZG9yZXMgICAgICAgfSBmcm9tIFwiLi90YWJsZS1yZWN1cGVyYWRvcmVzXCI7XHJcbmltcG9ydCB7IHN1cGVydmlzb3JlcyAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1zdXBlcnZpc29yZXNcIjtcclxuaW1wb3J0IHsgcGVyc29uYWxfcm9sICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXBlcnNvbmFsX3JvbFwiO1xyXG5pbXBvcnQgeyBwZXJtaXNvcyAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcGVybWlzb3NcIjtcclxuaW1wb3J0IHsgcm9sZXNfcGVybWlzb3MgICAgICB9IGZyb20gXCIuL3RhYmxlLXJvbGVzX3Blcm1pc29zXCI7XHJcbmltcG9ydCB7IHBhcmFtZXRyb3MgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1wYXJhbWV0cm9zXCI7XHJcbmltcG9ydCB7IHJvbGVzX3N1Ym9yZGluYWRvcyAgfSBmcm9tIFwiLi90YWJsZS1yb2xlc19zdWJvcmRpbmFkb3NcIjtcclxuXHJcbmltcG9ydCB7bm9fcmVhICAgICAgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1ub19yZWFcIjtcclxuaW1wb3J0IHtub19yZWFfc3VwICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLW5vX3JlYV9zdXBcIjtcclxuaW1wb3J0IHt0ZW0gICAgICAgICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXRlbVwiO1xyXG5pbXBvcnQge3RlbV9yZWNlcGNpb24gICAgICAgIH0gZnJvbSBcIi4vdGFibGUtdGVtX3JlY2VwY2lvblwiO1xyXG5pbXBvcnQge3NlbWFuYXMgICAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtc2VtYW5hc1wiO1xyXG5pbXBvcnQgeyB1c3VhcmlvcyAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS11c3Vhcmlvcyc7XHJcbmltcG9ydCB7IG9wZXJhY2lvbmVzICAgICAgICAgfSBmcm9tICcuL3RhYmxlLW9wZXJhY2lvbmVzJztcclxuaW1wb3J0IHsgY29tdW5hcyAgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtY29tdW5hcyc7XHJcbmltcG9ydCB7IGFyZWFzICAgICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLWFyZWFzJztcclxuaW1wb3J0IHsgc2luY3Jvbml6YWNpb25lcyAgICB9IGZyb20gJy4vdGFibGUtc2luY3Jvbml6YWNpb25lcyc7XHJcbmltcG9ydCB7IHRhcmVhcyAgICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhcyc7XHJcbmltcG9ydCB7IHRhcmVhc190ZW0gICAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc190ZW0nO1xyXG5pbXBvcnQgeyB0YXJlYXNfYXJlYXMgICAgICAgIH0gZnJvbSAnLi90YWJsZS10YXJlYXNfYXJlYXMnO1xyXG5pbXBvcnQgeyBtaXNfdGFyZWFzICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1taXNfdGFyZWFzJztcclxuaW1wb3J0IHsgdGFyZWFzX3RlbV9hc2lnbmFibGVzIH0gZnJvbSAnLi90YWJsZS10YXJlYXNfdGVtX2FzaWduYWJsZXMnO1xyXG5pbXBvcnQgeyB0YXJlYXNfdGVtX3JlY2VwY2lvbiAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc190ZW1fcmVjZXBjaW9uJztcclxuaW1wb3J0IHsgbWlzX3RhcmVhc19hcmVhcyAgICB9IGZyb20gJy4vdGFibGUtbWlzX3RhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IGNvbnRyb2xfY2FtcG8gICAgICAgfSBmcm9tICcuL3RhYmxlLWNvbnRyb2xfY2FtcG8nO1xyXG5pbXBvcnQgeyBjb250cm9sX3Jlc3VtZW4gICAgIH0gZnJvbSAnLi90YWJsZS1jb250cm9sX3Jlc3VtZW4nO1xyXG5pbXBvcnQgeyB2aXZpZW5kYXMgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS12aXZpZW5kYXMnO1xyXG5pbXBvcnQgeyB2aXNpdGFzICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS12aXNpdGFzJztcclxuaW1wb3J0IHsgaG9nYXJlcyAgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtaG9nYXJlcyc7XHJcbmltcG9ydCB7IHBlcnNvbmFzICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLXBlcnNvbmFzJztcclxuaW1wb3J0IHsgdmlzaXRhc19zdXAgICAgICAgICB9IGZyb20gJy4vdGFibGUtdmlzaXRhc19zdXAnO1xyXG5pbXBvcnQgeyBob2dhcmVzX3N1cCAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1ob2dhcmVzX3N1cCc7XHJcbmltcG9ydCB7IHBlcnNvbmFzX3N1cCAgICAgICAgfSBmcm9tICcuL3RhYmxlLXBlcnNvbmFzX3N1cCc7XHJcblxyXG5pbXBvcnQgeyBlc3RhZG9zICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1lc3RhZG9zJztcclxuaW1wb3J0IHsgYWNjaW9uZXMgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtYWNjaW9uZXMnO1xyXG5pbXBvcnQgeyBlc3RhZG9zX2FjY2lvbmVzICAgIH0gZnJvbSAnLi90YWJsZS1lc3RhZG9zX2FjY2lvbmVzJztcclxuXHJcblxyXG5leHBvcnQgKiBmcm9tIFwiLi90eXBlcy1kbWVuY3VcIjtcclxuaW1wb3J0IHtkZWZDb25maWd9IGZyb20gXCIuL2RlZi1jb25maWdcIlxyXG5cclxuY29uc3QgQVBQX0RNX1ZFUlNJT049XCIjMjItMTItMTVcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBlbWVyZ2VBcHBEbUVuY3U8VCBleHRlbmRzIHByb2Nlc2FtaWVudG8uQ29uc3RydWN0b3I8cHJvY2VzYW1pZW50by5BcHBQcm9jZXNhbWllbnRvVHlwZT4+KEJhc2U6VCl7XHJcbiAgcmV0dXJuIGNsYXNzIEFwcERtRW5jdSBleHRlbmRzIEJhc2V7XHJcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzOmFueVtdKXsgXHJcbiAgICAgICAgc3VwZXIoYXJncyk7IFxyXG4gICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudCA9IHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudCB8fCB7fTtcclxuICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhPVtdXHJcbiAgICAgICAgdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYV9ncm91cHM9W11cclxuICAgICAgICB0aGlzLm1ldGFFbmNJbmNsdWlyQ2FzaWxsZXJvc1NhbHRvUkVMID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lc3RhbXBFc3RydWN0dXJhID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICB9XHJcbiAgICBhc3luYyBnZXRQcm9jZWR1cmVzKCl7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICB2YXIgcHJvY2VkaW1pZW50b0FSZWVtcGxhemFyPVtcImNhc29fZ3VhcmRhclwiLFwiY2Fzb190cmFlclwiXTtcclxuICAgICAgICB2YXIgcGFyZW50UHJvYyA9IGF3YWl0IHN1cGVyLmdldFByb2NlZHVyZXMoKTtcclxuICAgICAgICBwYXJlbnRQcm9jID0gcGFyZW50UHJvYy5maWx0ZXIoKHByb2NlZHVyZTphbnkpID0+ICFwcm9jZWRpbWllbnRvQVJlZW1wbGF6YXIuaW5jbHVkZXMocHJvY2VkdXJlLmFjdGlvbikpO1xyXG4gICAgICAgIHBhcmVudFByb2MgPSBwYXJlbnRQcm9jLm1hcChwcm9jRGVmPT57XHJcbiAgICAgICAgICAgIGlmKHByb2NEZWYuYWN0aW9uID09ICd0YWJsZV9yZWNvcmRfc2F2ZScgfHwgcHJvY0RlZi5hY3Rpb24gPT0gJ3RhYmxlX3JlY29yZF9kZWxldGUnKXtcclxuICAgICAgICAgICAgICAgIHZhciBjb3JlRnVuY3Rpb25JbnRlcm5vID0gcHJvY0RlZi5jb3JlRnVuY3Rpb247XHJcbiAgICAgICAgICAgICAgICBwcm9jRGVmLmNvcmVGdW5jdGlvbiA9IGFzeW5jIGZ1bmN0aW9uKGNvbnRleHQsIHBhcmFtZXRlcnMpe1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCBjb3JlRnVuY3Rpb25JbnRlcm5vKGNvbnRleHQsIHBhcmFtZXRlcnMpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYocGFyYW1ldGVycy50YWJsZSA9PSAnY2FzaWxsZXJvcycpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZS50aW1lc3RhbXBFc3RydWN0dXJhID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzZSB0b2PDsyBsYSBlc3RydWN0dXJhJywgYmUudGltZXN0YW1wRXN0cnVjdHVyYSlcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gcHJvY0RlZjtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBwYXJlbnRQcm9jLmNvbmNhdChQcm9jZWR1cmVzRG1FbmN1KTtcclxuICAgIH1cclxuICAgIGFzeW5jIGNoZWNrRGF0YWJhc2VTdHJ1Y3R1cmUoX2NsaWVudDpDbGllbnQpe1xyXG4gICAgfVxyXG4gICAgYWRkU2NocsO2ZGluZ2VyU2VydmljZXMobWFpbkFwcDpwcm9jZXNhbWllbnRvLkV4cHJlc3MsIGJhc2VVcmw6c3RyaW5nKXtcclxuICAgICAgICBsZXQgYmU9dGhpcztcclxuICAgICAgICBzdXBlci5hZGRTY2hyw7ZkaW5nZXJTZXJ2aWNlcyhtYWluQXBwLCBiYXNlVXJsKTtcclxuICAgICAgICAvL3Blcm1pdG8gbGV2YW50YXIgbWlzIGltYWdlbmVzIGVuIGFwbGljYWNpb25lcyBkZXBlbmRpZW50ZXNcclxuICAgICAgICBiZS5hcHAudXNlKCcvaW1nJywgZXhwcmVzcy5zdGF0aWMoJ25vZGVfbW9kdWxlcy9kbWVuY3UvZGlzdC91bmxvZ2dlZC91bmxvZ2dlZC9pbWcnKSlcclxuICAgICAgICBtYWluQXBwLnVzZShmdW5jdGlvbihyZXE6UmVxdWVzdCxyZXM6UmVzcG9uc2UsIG5leHQ6TmV4dEZ1bmN0aW9uKXtcclxuICAgICAgICAgICAgaWYocmVxLnNlc3Npb24gJiYgIXJlcS5zZXNzaW9uLmluc3RhbGwpe1xyXG4gICAgICAgICAgICAgICAgcmVxLnNlc3Npb24uaW5zdGFsbD1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkucmVwbGFjZSgnLicsJycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG5leHQoKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIG1haW5BcHAuZ2V0KGJhc2VVcmwrJy9zYWx2YXInLGFzeW5jIGZ1bmN0aW9uKHJlcSxyZXMsX25leHQpe1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIHPDqSBxdWUgdm95IGEgcmVjaWJpciB1c2VyYWdlbnQgcG9yIGxvcyBtaWRkbGV3YXJlcyBkZSBCYWNrZW5kLXBsdXNcclxuICAgICAgICAgICAgdmFyIHt1c2VyYWdlbnR9ID0gcmVxO1xyXG4gICAgICAgICAgICB2YXIgaHRtbE1haW49YmUubWFpblBhZ2Uoe3VzZXJhZ2VudH0sIGZhbHNlLCB7c2tpcE1lbnU6dHJ1ZSwgb2ZmbGluZUZpbGU6dHJ1ZX0pLnRvSHRtbERvYygpO1xyXG4gICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVUZXh0KGh0bWxNYWluLCdodG1sJykocmVxLHJlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbWFpbkFwcC5nZXQoYmFzZVVybCsnL2NhbXBvJyxhc3luYyBmdW5jdGlvbihyZXEscmVzLF9uZXh0KXtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSBzw6kgcXVlIHZveSBhIHJlY2liaXIgdXNlcmFnZW50IHBvciBsb3MgbWlkZGxld2FyZXMgZGUgQmFja2VuZC1wbHVzXHJcbiAgICAgICAgICAgIHZhciB7dXNlcmFnZW50LCB1c2VyfSA9IHJlcTtcclxuICAgICAgICAgICAgaWYodXNlcil7XHJcbiAgICAgICAgICAgICAgICAvKiogQHR5cGUge3t0eXBlOidqcycsIHNyYzpzdHJpbmd9W119ICovXHJcbiAgICAgICAgICAgICAgICB2YXIgd2ViTWFuaWZlc3RQYXRoID0gJ2NhcmdhLWRtL3dlYi1tYW5pZmVzdC53ZWJtYW5pZmVzdCc7XHJcbiAgICAgICAgICAgICAgICB2YXIgaHRtbE1haW49YmUubWFpblBhZ2Uoe3VzZXJhZ2VudCwgdXNlcn0sIGZhbHNlLCB7c2tpcE1lbnU6dHJ1ZSwgd2ViTWFuaWZlc3RQYXRoLCBvZmZsaW5lRmlsZTp0cnVlfSkudG9IdG1sRG9jKCk7XHJcbiAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZVRleHQoaHRtbE1haW4sJ2h0bWwnKShyZXEscmVzKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICByZXMucmVkaXJlY3QoNDAxLCBiYXNlVXJsKycvbG9naW4jdz1wYXRoJnBhdGg9L2NhbXBvJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBjcmVhdGVTZXJ2aWNlV29ya2VyID0gYXN5bmMgZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdmFyIHN3ID0gYXdhaXQgZnMucmVhZEZpbGUoJ25vZGVfbW9kdWxlcy9zZXJ2aWNlLXdvcmtlci1hZG1pbi9kaXN0L3NlcnZpY2Utd29ya2VyLXdvLW1hbmlmZXN0LmpzJywgJ3V0ZjgnKTtcclxuICAgICAgICAgICAgdmFyIG1hbmlmZXN0ID0gYmUuY3JlYXRlUmVzb3VyY2VzRm9yQ2FjaGVKc29uKHt9KTtcclxuICAgICAgICAgICAgdmFyIHN3TWFuaWZlc3QgPSBzd1xyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoXCInLyp2ZXJzaW9uKi8nXCIsIEpTT04uc3RyaW5naWZ5KG1hbmlmZXN0LnZlcnNpb24pKVxyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoXCInLyphcHBOYW1lKi8nXCIsIEpTT04uc3RyaW5naWZ5KG1hbmlmZXN0LmFwcE5hbWUpKVxyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcW1xccypcXC9cXCp1cmxzVG9DYWNoZVxcKlxcL1xccypcXF0vLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdC5jYWNoZSkpXHJcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxbXFxzKlxcL1xcKmZhbGxiYWNrc1xcKlxcL1xccypcXF0vLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdC5mYWxsYmFjayB8fCBbXSkpO1xyXG4gICAgICAgICAgICAgICAgLy8ucmVwbGFjZShcIi8jQ0FDSEUkL1wiLCBcIi8oYVxcXFxkK21cXFxcZCtwXFxcXGQrdFxcXFxkK19lc3RydWN0dXJhLmpzKXwoYVxcXFxkK21cXFxcZCtwXFxcXGQrdFxcXFxkK19oZHIuanNvbikvXCIpO1xyXG4gICAgICAgICAgICByZXR1cm4gc3dNYW5pZmVzdFxyXG4gICAgICAgIH1cclxuICAgICAgICBtYWluQXBwLmdldChiYXNlVXJsK2Avc3ctbWFuaWZlc3QuanNgLCBhc3luYyBmdW5jdGlvbihyZXEsIHJlcywgbmV4dCl7XHJcbiAgICAgICAgICAgIHRyeXtcclxuICAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZVRleHQoYXdhaXQgY3JlYXRlU2VydmljZVdvcmtlcigpLCdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JykocmVxLHJlcyk7XHJcbiAgICAgICAgICAgIH1jYXRjaChlcnIpe1xyXG4gICAgICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlRXJyKHJlcSxyZXMsbmV4dCkoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG1haW5BcHAuZ2V0KGJhc2VVcmwrYC9jYXJnYS1kbS93ZWItbWFuaWZlc3Qud2VibWFuaWZlc3RgLCBhc3luYyBmdW5jdGlvbihyZXEsIHJlcywgbmV4dCl7XHJcbiAgICAgICAgICAgIGNvbnN0IEFQUF9OQU1FID0gKGF3YWl0IGJlLmluVHJhbnNhY3Rpb24obnVsbCwgKGNsaWVudDpwZy5DbGllbnQpPT5cclxuICAgICAgICAgICAgICAgIGNsaWVudC5xdWVyeShcInNlbGVjdCBvcGVyYXRpdm8gZnJvbSBwYXJhbWV0cm9zIHdoZXJlIHVuaWNvX3JlZ2lzdHJvXCIpLmZldGNoVW5pcXVlVmFsdWUoKVxyXG4gICAgICAgICAgICApKS52YWx1ZTtcclxuICAgICAgICAgICAgdmFyIHN1ZmlqbyA9IGJhc2VVcmwuaW5jbHVkZXMoJ3Rlc3QnKT8nX3Rlc3QnOlxyXG4gICAgICAgICAgICAgICAgYmFzZVVybC5pbmNsdWRlcygnY2FwYScpPydfY2FwYSc6Jyc7XHJcbiAgICAgICAgICAgIHRyeXtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBgJHtBUFBfTkFNRX0gUHJvZ3Jlc3NpdmUgV2ViIEFwcGAsXHJcbiAgICAgICAgICAgICAgICAgIFwic2hvcnRfbmFtZVwiOiBgJHtBUFBfTkFNRX0gUFdBYCxcclxuICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBgUHJvZ3Jlc3NpdmUgV2ViIEFwcCBmb3IgJHtBUFBfTkFNRX0uYCxcclxuICAgICAgICAgICAgICAgICAgXCJpY29uc1wiOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzcmNcIjogYC4uL2ltZy8ke0FQUF9OQU1FfS1sb2dvLWRtLTMyJHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiMzJ4MzJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlL3BuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNyY1wiOiBgLi4vaW1nLyR7QVBQX05BTUV9LWxvZ28tZG0tNDgke3N1Zmlqb30ucG5nYCxcclxuICAgICAgICAgICAgICAgICAgICAgIFwic2l6ZXNcIjogXCI0OHg0OFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2UvcG5nXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFwic3JjXCI6IGAuLi9pbWcvJHtBUFBfTkFNRX0tbG9nby1kbS02NCR7c3VmaWpvfS5wbmdgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzaXplc1wiOiBcIjY0eDY0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbWFnZS9wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzcmNcIjogYC4uL2ltZy8ke0FQUF9OQU1FfS1sb2dvLWRtLTcyJHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiNzJ4NzJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlL3BuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNyY1wiOiBgLi4vaW1nLyR7QVBQX05BTUV9LWxvZ28tZG0tMTkyJHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiMTkyeDE5MlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2UvcG5nXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFwic3JjXCI6IGAuLi9pbWcvJHtBUFBfTkFNRX0tbG9nby1kbS01MTIke3N1Zmlqb30ucG5nYCxcclxuICAgICAgICAgICAgICAgICAgICAgIFwic2l6ZXNcIjogXCI1MTJ4NTEyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbWFnZS9wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgLi4uYmUuZ2V0Q29sb3JzSnNvbihzdWZpam8pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVUZXh0KEpTT04uc3RyaW5naWZ5KGNvbnRlbnQpLCAnYXBwbGljYXRpb24vanNvbicpKHJlcSxyZXMpO1xyXG4gICAgICAgICAgICB9Y2F0Y2goZXJyKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVFcnIocmVxLCByZXMsIG5leHQpKGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGdldENvbG9yc0pzb24oX3N1ZmlqbzonX3Rlc3QnfCdfY2FwYSd8Jycpe1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIFwic3RhcnRfdXJsXCI6IFwiLi4vY2FtcG9cIixcclxuICAgICAgICAgICAgXCJkaXNwbGF5XCI6IFwic3RhbmRhbG9uZVwiLFxyXG4gICAgICAgICAgICBcInRoZW1lX2NvbG9yXCI6IFwiIzNGNTFCNVwiLFxyXG4gICAgICAgICAgICBcImJhY2tncm91bmRfY29sb3JcIjogXCIjNmQ2MGVkXCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBhZGRMb2dnZWRTZXJ2aWNlcygpe1xyXG4gICAgICAgIHZhciBiZSA9IHRoaXM7XHJcbiAgICAgICAgc3VwZXIuYWRkTG9nZ2VkU2VydmljZXMoKTtcclxuICAgICAgICBiZS5hcHAuZ2V0KCcvbWFuaWZlc3QubWFuaWZlc3QnLCBhc3luYyBmdW5jdGlvbihyZXE6UmVxdWVzdCwgcmVzOlJlc3BvbnNlLCBuZXh0Ok5leHRGdW5jdGlvbil7XHJcbiAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZUZpbGUoJ3NyYy9jbGllbnQvbWFuaWZlc3QubWFuaWZlc3QnLHt9KShyZXEscmVzKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFwcC5nZXQoJy9maWxlJywgYXN5bmMgZnVuY3Rpb24ocmVxOlJlcXVlc3QscmVzOlJlc3BvbnNlKXtcclxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGJlLmluVHJhbnNhY3Rpb24ocmVxLCBcclxuICAgICAgICAgICAgICAgIChjbGllbnQ6cGcuQ2xpZW50KT0+XHJcbiAgICAgICAgICAgICAgICBjbGllbnQucXVlcnkoXCJzZWxlY3QgcnV0YSBmcm9tIGFkanVudG9zIHdoZXJlIGlkX2FkanVudG8gPSAkMVwiLFtyZXEucXVlcnkuaWRfYWRqdW50b10pXHJcbiAgICAgICAgICAgICAgICAuZmV0Y2hVbmlxdWVWYWx1ZSgpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHZhciBwYXRoID0gcmVzdWx0LnZhbHVlO1xyXG4gICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVGaWxlKHBhdGgse30pKHJlcSxyZXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYXBwLmdldCgnL2ltYWdlbmVzJywgYXN5bmMgZnVuY3Rpb24ocmVxOlJlcXVlc3QscmVzOlJlc3BvbnNlKXtcclxuICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlRmlsZSgnbG9jYWwtaW1hZ2VzLycrcmVxLnF1ZXJ5LnBkZix7fSkocmVxLHJlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hcHAuZ2V0KCcvZG93bmxvYWQvYWxsJyxhc3luYyBmdW5jdGlvbihyZXE6UmVxdWVzdCwgcmVzOlJlc3BvbnNlLCBuZXh0OigpPT52b2lkKXtcclxuICAgICAgICAgICAgaWYocmVxLnVzZXI9PW51bGwgfHwgcmVxLnVzZXIucm9sIT0nYWRtaW4nKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdubyBlc3TDoSBhdXRvcml6YWRvIGEgYmFqYXJzZSB0b2RvJyxyZXEudXNlcilcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IHppcCA9IG5ldyB5YXpsLlppcEZpbGUoKTtcclxuICAgICAgICAgICAgemlwLm91dHB1dFN0cmVhbS5waXBlKHJlcyk7XHJcbiAgICAgICAgICAgIGxldCBiYXNlID0gJ2xvY2FsLWF0dGFjaG1lbnRzJ1xyXG4gICAgICAgICAgICBsZXQgZmlsZXMgPSBhd2FpdCBmcy5yZWFkZGlyKGJhc2UpO1xyXG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChmaWxlcy5tYXAoYXN5bmMgZnVuY3Rpb24oZmlsZU5hbWU6c3RyaW5nKXtcclxuICAgICAgICAgICAgICAgIHZhciBwYXRoID0gYmFzZSsnLycrZmlsZU5hbWU7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3RhdCA9IGF3YWl0IGZzLnN0YXQocGF0aCk7XHJcbiAgICAgICAgICAgICAgICBpZihzdGF0LmlzRmlsZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgemlwLmFkZEZpbGUocGF0aCxmaWxlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgemlwLmVuZCgpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBhc3luYyBwb3N0Q29uZmlnKCl7XHJcbiAgICAgICAgYXdhaXQgc3VwZXIucG9zdENvbmZpZygpO1xyXG4gICAgICAgIHZhciBiZT10aGlzO1xyXG4gICAgICAgIGJlLm1ldGFFbmNJbmNsdWlyQ2FzaWxsZXJvc1NhbHRvUkVMID0gZmFsc2U7XHJcbiAgICAgICAgYXdhaXQgYmUuaW5UcmFuc2FjdGlvbihudWxsLCBhc3luYyBmdW5jdGlvbihjbGllbnQ6cGcuQ2xpZW50KXtcclxuICAgICAgICAgICAgdmFyIHFQZXJtaXNvcz1gXHJcbiAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKHIucm9sLGpzb25iX2J1aWxkX29iamVjdCgnc3VwZXJ1c2VyJyxyLnN1cGVydXNlciwncHVlZGUnLChcclxuICAgICAgICAgICAgICAgICAgU0VMRUNUIGpzb25iX29iamVjdF9hZ2cocnAucGVybWlzbywoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKHJwYS5hY2Npb24scnBhLmhhYmlsaXRhZG8pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSByb2xlc19wZXJtaXNvcyBycGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBycGEucm9sPXJwLnJvbCBBTkQgcnBhLnBlcm1pc289cnAucGVybWlzb1xyXG4gICAgICAgICAgICAgICAgICAgICkpXHJcbiAgICAgICAgICAgICAgICAgICAgRlJPTSByb2xlc19wZXJtaXNvcyBycFxyXG4gICAgICAgICAgICAgICAgICAgIFdIRVJFIHJwLnJvbD1yLnJvbCAjY29uZEhhYmlsaXRhZG8jXHJcbiAgICAgICAgICAgICAgKSkpXHJcbiAgICAgICAgICAgICAgRlJPTSByb2xlcyByXHJcbiAgICAgICAgICAgIGA7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHRzID0gW1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LnF1ZXJ5KHFQZXJtaXNvcy5yZXBsYWNlKCcjY29uZEhhYmlsaXRhZG8jJywnJykpLmZldGNoVW5pcXVlVmFsdWUoKSxcclxuICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5xdWVyeShxUGVybWlzb3MucmVwbGFjZSgnI2NvbmRIYWJpbGl0YWRvIycsYCBhbmQgcnAuJHtwZy5xdW90ZUlkZW50KCdoYWJpbGl0YWRvJyl9YCkpLmZldGNoVW5pcXVlVmFsdWUoKSxcclxuICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5xdWVyeShgXHJcbiAgICAgICAgICAgICAgICAgICAgU0VMRUNUIGpzb25iX29iamVjdF9hZ2cocGVybWlzbywoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKGFjY2lvbix0cnVlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEZST00gcGVybWlzb3MgcGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBwYS5wZXJtaXNvPXAucGVybWlzb1xyXG4gICAgICAgICAgICAgICAgICAgICAgKSlcclxuICAgICAgICAgICAgICAgICAgICAgIEZST00gcGVybWlzb3MgcFxyXG4gICAgICAgICAgICAgICAgYCkuZmV0Y2hVbmlxdWVWYWx1ZSgpXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIGJlLnBlcm1pc29zUm9sPXJlc3VsdHNbMF0udmFsdWU7XHJcbiAgICAgICAgICAgIGJlLnBlcm1pc29zUm9sU29sb1RydWU9cmVzdWx0c1sxXS52YWx1ZTtcclxuICAgICAgICAgICAgYmUucGVybWlzb3NTdXBlcnVzZXI9cmVzdWx0c1syXS52YWx1ZTtcclxuICAgICAgICAgICAgYmUucGVybWlzb3NQYXJhTmFkaWU9bGlrZUFyKGJlLnBlcm1pc29zU3VwZXJ1c2VyKS5tYXAocD0+bGlrZUFyKHApLm1hcCh2YT0+ZmFsc2UpLnBsYWluKCkpLnBsYWluKClcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRpcihiZS5wZXJtaXNvc1JvbFNvbG9UcnVlLHtkZXB0aDo5fSk7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5kaXIoYmUucGVybWlzb3NTdXBlcnVzZXIse2RlcHRoOjl9KTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRpcihiZS5wZXJtaXNvc1BhcmFOYWRpZSx7ZGVwdGg6OX0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaENhY2hlcygpO1xyXG4gICAgfVxyXG4gICAgY29uZmlnU3RhdGljQ29uZmlnKCl7XHJcbiAgICAgICAgc3VwZXIuY29uZmlnU3RhdGljQ29uZmlnKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0aWNDb25maWcoZGVmQ29uZmlnKTtcclxuICAgIH1cclxuICAgIGNsaWVudEluY2x1ZGVzKHJlcTpSZXF1ZXN0LCBvcHRzOk9wdHNDbGllbnRQYWdlKTpDbGllbnRNb2R1bGVEZWZpbml0aW9uW10ge1xyXG4gICAgICAgIHZhciBiZSA9IHRoaXM7XHJcbiAgICAgICAgdmFyIHVubG9nZ2VkID0gb3B0cyAmJiBvcHRzLm9mZmxpbmVGaWxlO1xyXG4gICAgICAgIHZhciBtZW51ZWRSZXNvdXJjZXM6Q2xpZW50TW9kdWxlRGVmaW5pdGlvbltdPSB1bmxvZ2dlZD9bXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3VubG9nZ2VkLmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICBdOltcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vY2xpZW50L2NsaWVudCcsIGZpbGU6ICdjbGllbnQuanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgaWYob3B0cyAmJiBvcHRzLmV4dHJhRmlsZXMpe1xyXG4gICAgICAgICAgICBtZW51ZWRSZXNvdXJjZXMgPSBtZW51ZWRSZXNvdXJjZXMuY29uY2F0KG9wdHMuZXh0cmFGaWxlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBleHRlcm5hbFJlc291cmNlczpDbGllbnRNb2R1bGVEZWZpbml0aW9uW10gPSBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAncmVhY3QnLCBtb2RQYXRoOiAndW1kJywgZmlsZURldmVsb3BtZW50OidyZWFjdC5kZXZlbG9wbWVudC5qcycsIGZpbGU6J3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ3JlYWN0LWRvbScsIG1vZFBhdGg6ICd1bWQnLCBmaWxlRGV2ZWxvcG1lbnQ6J3JlYWN0LWRvbS5kZXZlbG9wbWVudC5qcycsIGZpbGU6J3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdAbWF0ZXJpYWwtdWkvY29yZScsIG1vZFBhdGg6ICd1bWQnLCBmaWxlRGV2ZWxvcG1lbnQ6J21hdGVyaWFsLXVpLmRldmVsb3BtZW50LmpzJywgZmlsZTonbWF0ZXJpYWwtdWkucHJvZHVjdGlvbi5taW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnY2xzeCcsIGZpbGU6J2Nsc3gubWluLmpzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ3JlZHV4JywgbW9kUGF0aDonLi4vZGlzdCcsIGZpbGVEZXZlbG9wbWVudDoncmVkdXguanMnLCBmaWxlOidyZWR1eC5taW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAncmVhY3QtcmVkdXgnLCBtb2RQYXRoOicuLi9kaXN0JywgZmlsZURldmVsb3BtZW50OidyZWFjdC1yZWR1eC5qcycsIGZpbGU6J3JlYWN0LXJlZHV4Lm1pbi5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdtZW1vaXplLW9uZScsICBmaWxlOidtZW1vaXplLW9uZS5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdxcmNvZGUnLCBtb2RQYXRoOiAnLi4vYnVpbGQnLCBmaWxlOiAncXJjb2RlLmpzJ30sXHJcbiAgICAgICAgICAgIC4uLnN1cGVyLmNsaWVudEluY2x1ZGVzKHJlcSwgb3B0cykuZmlsdGVyKG09Pm0uZmlsZSE9J2Zvcm11bGFyaW9zLmNzcycpXHJcbiAgICAgICAgICAgIC5maWx0ZXIobT0+IXVubG9nZ2VkIHx8IHRydWVcclxuICAgICAgICAgICAgICAgICYmIG0uZmlsZSE9J3Zhci1jYWwuanMnXHJcbiAgICAgICAgICAgICAgICAmJiBtLmZpbGUhPSd2YXItY2FsLmpzJyAgICAgXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnc2VydmljZS13b3JrZXItYWRtaW4nLCAgZmlsZTonc2VydmljZS13b3JrZXItYWRtaW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAncmVkdXgtdHlwZWQtcmVkdWNlcicsIG1vZFBhdGg6Jy4uL2Rpc3QnLCBmaWxlOidyZWR1eC10eXBlZC1yZWR1Y2VyLmpzJyB9XHJcbiAgICAgICAgXTtcclxuICAgICAgICB2YXIgcmVzb3VyY2VzOkNsaWVudE1vZHVsZURlZmluaXRpb25bXSA9IFtcclxuICAgICAgICAgICAgLi4uZXh0ZXJuYWxSZXNvdXJjZXMsXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ2FkYXB0LmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQnLCBmaWxlOiAndGlwb3MuanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICdieXBhc3MtZm9ybXVsYXJpby5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3JlZHV4LWZvcm11bGFyaW8uanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICdyZW5kZXItZ2VuZXJhbC5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3JlbmRlci1mb3JtdWxhcmlvLmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQnLCBmaWxlOiAnYWJyaXItZm9ybXVsYXJpby5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2NzcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi9jbGllbnQvY2xpZW50L2NzcycsIGZpbGU6ICdtZW51LmNzcycsIHBhdGg6ICdjc3MnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2NzcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZC9jc3MnLCBmaWxlOiAnZm9ybXVsYXJpby1yZWFjdC5jc3MnLCBwYXRoOiAnY3NzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdjc3MnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQvY3NzJywgZmlsZTogJ2Jvb3RzdHJhcC5taW4uY3NzJywgcGF0aDogJ2NzcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAndHRmJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkL2NzcycsIGZpbGU6ICdSb2JvdG8tUmVndWxhci50dGYnLCBwYXRoOiAnY3NzJyB9LFxyXG4gICAgICAgICAgICAuLi4gbWVudWVkUmVzb3VyY2VzLFxyXG4gICAgICAgIF1cclxuICAgICAgICByZXR1cm4gcmVzb3VyY2VzXHJcbiAgICAgICAgLy8gLm1hcChtPT4oey4uLm0sIGZpbGU6bS5maWxlRGV2ZWxvcG1lbnR8fG0uZmlsZX0pKTtcclxuICAgIH1cclxuICAgIGFzeW5jIHJlZnJlc2hDYWNoZXMoKXtcclxuICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQgPSB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQgfHwge307XHJcbiAgICAgICAgYXdhaXQgdGhpcy5pbkRiQ2xpZW50KG51bGwsIGFzeW5jIChjbGllbnQpPT57XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWEgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBzZWxlY3QgKiBmcm9tIG5vX3JlYSBvcmRlciBieSBub19yZWFgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY2FjaGVzJyx0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhKVxyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX2dyb3VwcyA9IChhd2FpdCBjbGllbnQucXVlcnkoYFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0IGdydXBvLCBqc29uYl9hZ2codG9fanNvbihyLiopKSBhcyBjb2RpZ29zIGZyb20gbm9fcmVhIHIgZ3JvdXAgYnkgZ3J1cG8gb3JkZXIgYnkgMVxyXG4gICAgICAgICAgICBgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX2dyb3VwczAgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBcclxuICAgICAgICAgICAgICAgIHNlbGVjdCBncnVwbzAgYXMgZ3J1cG8sIGpzb25iX2FnZyh0b19qc29uKHIuKikpIGFzIGNvZGlnb3MgZnJvbSBub19yZWEgciBncm91cCBieSBncnVwbzAgb3JkZXIgYnkgMVxyXG4gICAgICAgICAgICBgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX3N1cCA9IChhd2FpdCBjbGllbnQucXVlcnkoYHNlbGVjdCAqIGZyb20gbm9fcmVhX3N1cCBvcmRlciBieSBub19yZWFfc3VwYCkuZmV0Y2hBbGwoKSkucm93cztcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ2NhY2hlcycsdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYV9zdXApXHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfc3VwX2dyb3VwcyA9IChhd2FpdCBjbGllbnQucXVlcnkoYFxyXG4gICAgICAgICAgICBzZWxlY3QgZ3J1cG9fc3VwLCBqc29uYl9hZ2codG9fanNvbihyLiopKSBhcyBjb2RpZ29zIGZyb20gbm9fcmVhX3N1cCByIGdyb3VwIGJ5IGdydXBvX3N1cCBvcmRlciBieSAxXHJcbiAgICAgICAgICAgIGApLmZldGNoQWxsKCkpLnJvd3M7XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfc3VwX2dyb3VwczAgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBcclxuICAgICAgICAgICAgc2VsZWN0IGdydXBvMF9zdXAgYXMgZ3J1cG8sIGpzb25iX2FnZyh0b19qc29uKHIuKikpIGFzIGNvZGlnb3MgZnJvbSBub19yZWFfc3VwIHIgZ3JvdXAgYnkgZ3J1cG8wX3N1cCBvcmRlciBieSAxXHJcbiAgICAgICAgYCkuZmV0Y2hBbGwoKSkucm93cztcclxuICAgICAgICB9KVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCdjYWNoZXMgb2snKTtcclxuICAgIH1cclxuICAgIC8vc3FsTm9yZWFDYXNlKGNhbXBvTmVjZXNhcmlvOnN0cmluZyl7XHJcbiAgICAvLyAgICB2YXIgYmU9dGhpcztcclxuICAgIC8vICAgIHJldHVybiBgQ0FTRSAke2JlLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhLm1hcCh4PT5cclxuICAgIC8vICAgICAgICBgIFdIRU4gbm9yZWEgID0gJHtiZS5kYi5xdW90ZUxpdGVyYWwoeC5ub19yZWEpfTo6aW50ZWdlciBUSEVOICR7YmUuZGIucXVvdGVMaXRlcmFsKHhbY2FtcG9OZWNlc2FyaW9dKX1gXHJcbiAgICAvLyAgICApLmpvaW4oJycpfSBXSEVOIFRSVUUgVEhFTiBOVUxMIEVORGBcclxuICAgIC8vfSAgICBcclxuICAgIGdldENvbnRleHQocmVxOlJlcXVlc3QpOkNvbnRleHR7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICB2YXIgZmF0aGVyQ29udGV4dCA9IHN1cGVyLmdldENvbnRleHQocmVxKTtcclxuICAgICAgICBpZihmYXRoZXJDb250ZXh0LnVzZXIpe1xyXG4gICAgICAgICAgICBpZihiZS5wZXJtaXNvc1JvbFtyZXEudXNlci5yb2xdPy5zdXBlcnVzZXIpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtzdXBlcnVzZXI6dHJ1ZSwgcHVlZGU6IGJlLnBlcm1pc29zU3VwZXJ1c2VyLCAuLi5mYXRoZXJDb250ZXh0fVxyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7cHVlZGU6IGJlLnBlcm1pc29zUm9sW3JlcS51c2VyLnJvbF0/LnB1ZWRlLCAuLi5mYXRoZXJDb250ZXh0fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7cHVlZGU6YmUucGVybWlzb3NQYXJhTmFkaWUsIC4uLmZhdGhlckNvbnRleHR9O1xyXG4gICAgfVxyXG4gICAgZ2V0Q29udGV4dEZvckR1bXAoKTpDb250ZXh0e1xyXG4gICAgICAgIHZhciBmYXRoZXJDb250ZXh0ID0gc3VwZXIuZ2V0Q29udGV4dEZvckR1bXAoKTtcclxuICAgICAgICByZXR1cm4ge3N1cGVydXNlcjp0cnVlLCBwdWVkZTogdGhpcy5wZXJtaXNvc1N1cGVydXNlciwgLi4uZmF0aGVyQ29udGV4dH07XHJcbiAgICB9XHJcbiAgICBnZXRDbGllbnRTZXR1cEZvclNlbmRUb0Zyb250RW5kKHJlcTpSZXF1ZXN0KXtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5zdXBlci5nZXRDbGllbnRTZXR1cEZvclNlbmRUb0Zyb250RW5kKHJlcSksXHJcbiAgICAgICAgICAgIGlkcGVyOiByZXEudXNlcj8uaWRwZXJcclxuICAgICAgICB9XHJcbiAgICBcclxuICAgIH1cclxuICAgIGNyZWF0ZVJlc291cmNlc0ZvckNhY2hlSnNvbihwYXJhbWV0ZXJzKXtcclxuICAgICAgICB2YXIgYmUgPSB0aGlzO1xyXG4gICAgICAgIHZhciBqc29uUmVzdWx0ID0ge307XHJcbiAgICAgICAgXHJcbiAgICAgICAganNvblJlc3VsdC52ZXJzaW9uID0gQVBQX0RNX1ZFUlNJT047XHJcbiAgICAgICAganNvblJlc3VsdC5hcHBOYW1lID0gJ2RtZW5jdSc7XHJcbiAgICAgICAganNvblJlc3VsdC5jYWNoZT1bXHJcbiAgICAgICAgICAgIFwiY2FtcG9cIixcclxuICAgICAgICAgICAgXCJvZmZsaW5lXCIsXHJcbiAgICAgICAgICAgIFwibGliL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9tYXRlcmlhbC11aS5wcm9kdWN0aW9uLm1pbi5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9jbHN4Lm1pbi5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9yZWR1eC5taW4uanNcIixcclxuICAgICAgICAgICAgXCJsaWIvcmVhY3QtcmVkdXgubWluLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL21lbW9pemUtb25lLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL3FyY29kZS5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9yZXF1aXJlLWJyby5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9jYXN0LWVycm9yLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL2xpa2UtYXIuanNcIixcclxuICAgICAgICAgICAgXCJsaWIvYmVzdC1nbG9iYWxzLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL2pzb240YWxsLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL2pzLXRvLWh0bWwuanNcIixcclxuICAgICAgICAgICAgXCJsaWIvcmVkdXgtdHlwZWQtcmVkdWNlci5qc1wiLFxyXG4gICAgICAgICAgICBcImRtZW5jdS9hZGFwdC5qc1wiLFxyXG4gICAgICAgICAgICBcImRtZW5jdS91bmxvZ2dlZC5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9qcy15YW1sLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL3hsc3guY29yZS5taW4uanNcIixcclxuICAgICAgICAgICAgXCJsaWIvbGF6eS1zb21lLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL3NxbC10b29scy5qc1wiLFxyXG4gICAgICAgICAgICBcImRpYWxvZy1wcm9taXNlL2RpYWxvZy1wcm9taXNlLmpzXCIsXHJcbiAgICAgICAgICAgIFwibW9tZW50L21pbi9tb21lbnQuanNcIixcclxuICAgICAgICAgICAgXCJwaWthZGF5L3Bpa2FkYXkuanNcIixcclxuICAgICAgICAgICAgXCJsaWIvcG9seWZpbGxzLWJyby5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9iaWcuanNcIixcclxuICAgICAgICAgICAgXCJsaWIvdHlwZS1zdG9yZS5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi90eXBlZC1jb250cm9scy5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9hamF4LWJlc3QtcHJvbWlzZS5qc1wiLFxyXG4gICAgICAgICAgICBcIm15LWFqYXguanNcIixcclxuICAgICAgICAgICAgXCJteS1zdGFydC5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9teS1sb2NhbGRiLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL215LXdlYnNxbGRiLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL215LWxvY2FsZGIuanMubWFwXCIsXHJcbiAgICAgICAgICAgIFwibGliL215LXdlYnNxbGRiLmpzLm1hcFwiLFxyXG4gICAgICAgICAgICBcImxpYi9teS10aGluZ3MuanNcIixcclxuICAgICAgICAgICAgXCJsaWIvbXktdGFibGVzLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL215LWluZm9ybS1uZXQtc3RhdHVzLmpzXCIsXHJcbiAgICAgICAgICAgIFwibGliL215LW1lbnUuanNcIixcclxuICAgICAgICAgICAgXCJsaWIvbXktc2tpbi5qc1wiLFxyXG4gICAgICAgICAgICBcImxpYi9jbGllbnRlLWVuLWNhc3RlbGxhbm8uanNcIixcclxuICAgICAgICAgICAgXCJsaWIvc2VydmljZS13b3JrZXItYWRtaW4uanNcIixcclxuICAgICAgICAgICAgXCJsaWIvcmVkdXgtdHlwZWQtcmVkdWNlci5qc1wiLFxyXG4gICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL29wZXJhdGl2b3MuanNcIixcclxuICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy92YXJjYWwuanNcIixcclxuICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9mb3JtLXN0cnVjdHVyZS5qc1wiLFxyXG4gICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL21ldGEtZW5jLmpzXCIsXHJcbiAgICAgICAgICAgIFwiY2xpZW50X21vZHVsZXMvZGF0b3MtZXh0LmpzXCIsXHJcbiAgICAgICAgICAgIFwiY2xpZW50X21vZHVsZXMvY29uc2lzdGVuY2lhcy5qc1wiLFxyXG4gICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL3Byb2Nlc2FtaWVudG8uanNcIixcclxuICAgICAgICAgICAgXCJkbWVuY3UvdGlwb3MuanNcIixcclxuICAgICAgICAgICAgXCJkbWVuY3UvYnlwYXNzLWZvcm11bGFyaW8uanNcIixcclxuICAgICAgICAgICAgXCJkbWVuY3UvcmVkdXgtZm9ybXVsYXJpby5qc1wiLFxyXG4gICAgICAgICAgICBcImRtZW5jdS9yZW5kZXItZ2VuZXJhbC5qc1wiLFxyXG4gICAgICAgICAgICBcImRtZW5jdS9yZW5kZXItZm9ybXVsYXJpby5qc1wiLFxyXG4gICAgICAgICAgICBcImRtZW5jdS9hYnJpci1mb3JtdWxhcmlvLmpzXCIsXHJcbiAgICAgICAgICAgIFwiY2xpZW50X21vZHVsZXMvcm93LXZhbGlkYXRvci5qc1wiLFxyXG4gICAgICAgICAgICBcImNsaWVudC9tZW51LmpzXCIsXHJcbiAgICAgICAgICAgIFwiaW1nL2xvZ28ucG5nXCIsXHJcbiAgICAgICAgICAgIC8vXCJpbWcvbG9nby1kbS5wbmdcIixcclxuICAgICAgICAgICAgXCJpbWcvbG9nby0xMjgucG5nXCIsXHJcbiAgICAgICAgICAgIFwiaW1nL21haW4tbG9hZGluZy5naWZcIixcclxuICAgICAgICAgICAgXCJpbWcvYm9ycmFyLXZhbG9yLnBuZ1wiLFxyXG4gICAgICAgICAgICBcImltZy9mb25kby1zYWx0ZWFkby1lcnJvci5wbmdcIixcclxuICAgICAgICAgICAgXCJpbWcvZm9uZG8tc2FsdGVhZG8ucG5nXCIsXHJcbiAgICAgICAgICAgIFwiaW1nL2JhY2tncm91bmQtdGVzdC5wbmdcIixcclxuICAgICAgICAgICAgXCJjbGllbnQtc2V0dXBcIixcclxuICAgICAgICAgICAgXCJjc3MvYm9vdHN0cmFwLm1pbi5jc3NcIixcclxuICAgICAgICAgICAgXCJjc3MvZm9ybXVsYXJpby1yZWFjdC5jc3NcIixcclxuICAgICAgICAgICAgXCJwaWthZGF5L3Bpa2FkYXkuY3NzXCIsXHJcbiAgICAgICAgICAgIFwiZGlhbG9nLXByb21pc2UvZGlhbG9nLXByb21pc2UuY3NzXCIsXHJcbiAgICAgICAgICAgIFwicmVsLWVuYy9lc3RhZG9zLmNzc1wiLFxyXG4gICAgICAgICAgICBcImNzcy9teS10YWJsZXMuY3NzXCIsXHJcbiAgICAgICAgICAgIFwiY3NzL215LW1lbnUuY3NzXCIsXHJcbiAgICAgICAgICAgIFwiY3NzL215LXRoaW5ncy5jc3NcIixcclxuICAgICAgICAgICAgXCJjc3MvbWVudS5jc3NcIixcclxuICAgICAgICAgICAgXCJyZWwtZW5jL215LXRoaW5nczIuY3NzXCIsXHJcbiAgICAgICAgICAgIFwiY3NzL2Zvcm11bGFyaW8tcmVhY3QuY3NzXCIsXHJcbiAgICAgICAgICAgIFwiY3NzL1JvYm90by1SZWd1bGFyLnR0ZlwiXHJcbiAgICAgICAgXVxyXG4gICAgICAgIGpzb25SZXN1bHQuZmFsbGJhY2s9W1xyXG4gICAgICAgICAgICB7XCJwYXRoXCI6XCJsb2dpblwiLCBcImZhbGxiYWNrXCI6XCJvZmZsaW5lXCJ9LFxyXG4gICAgICAgICAgICB7XCJwYXRoXCI6XCJsb2dvdXRcIiwgXCJmYWxsYmFja1wiOlwib2ZmbGluZVwifSxcclxuICAgICAgICAgICAge1wicGF0aFwiOlwibG9naW4jaT1zaW5jcm9uaXphclwiLCBcImZhbGxiYWNrXCI6XCJvZmZsaW5lXCJ9LFxyXG4gICAgICAgICAgICB7XCJwYXRoXCI6XCJtZW51I2k9c2luY3Jvbml6YXJcIiwgXCJmYWxsYmFja1wiOlwib2ZmbGluZVwifVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgcmV0dXJuIGpzb25SZXN1bHRcclxuICAgIH1cclxuICAgIGdldE1lbnUoY29udGV4dDpDb250ZXh0KXtcclxuICAgICAgICBsZXQgbWVudTpNZW51SW5mb0Jhc2VbXSA9IFtdO1xyXG4gICAgICAgIGlmKHRoaXMuY29uZmlnLnNlcnZlci5wb2xpY3k9PSd3ZWInKXtcclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uZW5jdWVzdGFzLnJlbGV2YXIpe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0nZGVtbycgfHwgdGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0ndGVzdCcgfHwgdGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0nY2FwYScpe1xyXG4gICAgICAgICAgICAgICAgICAgIG1lbnUucHVzaCh7bWVudVR5cGU6J2RlbW8nLCBuYW1lOidkZW1vJywgc2VsZWN0ZWRCeURlZmF1bHQ6dHJ1ZX0pXHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBtZW51LnB1c2goe21lbnVUeXBlOidwYXRoJywgbmFtZToncmVsZXZhbWllbnRvJywgcGF0aDonL2NhbXBvJ30pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtZW51LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidzaW5jcm9uaXphcl9kbScsIG5hbWU6J3NpbmNyb25pemFyJ30sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGlmKGNvbnRleHQucHVlZGU/LmNhbXBvPy5lZGl0YXIpe1xyXG4gICAgICAgICAgICAgICAgbWVudS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonYWJyaXJfZW5jdWVzdGEnLCBuYW1lOidhYnJpcl9lbmN1ZXN0YSd9LFxyXG4gICAgICAgICAgICAgICAgICAgIC8ve21lbnVUeXBlOidjb25zaXN0aXJfZW5jdWVzdGEnLCBuYW1lOidjb25zaXN0aXJfZW5jdWVzdGEnfSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaChcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J21lbnUnLCBuYW1lOidyZWNlcGNpb24nLCBsYWJlbDoncmVjZXBjacOzbicgLG1lbnVDb250ZW50OltcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J21pc19hcmVhcycsIHRhYmxlOidhcmVhcycsIGZmOntyZWNlcGNpb25pc3RhOmNvbnRleHQudXNlci5pZHBlcn19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonbWlzX2VuY3Vlc3RhZG9yZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2FyZWFzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0ZW1fcmVjZXBjaW9uJywgbGFiZWw6J1RFTSd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTondGFyZWFzX3RlbScsIGxhYmVsOidUYXJlYXNURU0nfVxyXG4gICAgICAgICAgICAgICAgICAgIF19LCAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY29udGV4dCB1c2VyXCIsIGNvbnRleHQudXNlcilcclxuICAgICAgICAgICAgaWYoY29udGV4dC5zdXBlcnVzZXIpe1xyXG4gICAgICAgICAgICAgICAgbWVudS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J2NvbnRyb2wnLCBtZW51Q29udGVudDpbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidyZXN1bWVuJywgdGFibGU6J2NvbnRyb2xfcmVzdW1lbicsIHNlbGVjdGVkQnlEZWZhdWx0OnRydWV9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonZG9taW5pbycsIHRhYmxlOidjb250cm9sX2NhbXBvX2RvbWluaW8nfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3pvbmEnICAgLCB0YWJsZTonY29udHJvbF9jYW1wb196b25hJyAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2NvbXVuYScgLCB0YWJsZTonY29udHJvbF9jYW1wb19jb211bmEnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J8OhcmVhJyAgICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fYXJlYScgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidwYXJ0aWNpcGFjaW9uJyAgICAgICAgLCB0YWJsZTonY29udHJvbF9jYW1wb19wYXJ0aWNpcGFjaW9uJyAgfSxcclxuICAgICAgICAgICAgICAgICAgICBdfSwgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihjb250ZXh0LnB1ZWRlLmVuY3Vlc3Rhcy5wcm9jZXNhcil7XHJcbiAgICAgICAgICAgICAgICBtZW51ID0gWyAuLi5tZW51LFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J3Byb2Nlc2FyJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTondmFyaWFibGVzJyAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonY29uc2lzdGVuY2lhcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonaW5jb25zaXN0ZW5jaWFzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0YWJsYV9kYXRvcycgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidkaWNjaW9uYXJpbycgICwgbGFiZWw6J2RpY2Npb25hcmlvcycgfSxcclxuICAgICAgICAgICAgICAgICAgICBdfSxcclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihjb250ZXh0LnN1cGVydXNlcil7XHJcbiAgICAgICAgICAgICAgICBtZW51ID0gWyAuLi5tZW51LFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J2NvbmZpZ3VyYXInLCBtZW51Q29udGVudDpbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J211ZXN0cmEnLCBsYWJlbDonbXVlc3RyYScsIG1lbnVDb250ZW50OltcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0ZW0nLCBsYWJlbDogJ1RFTSd9ICxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0YXJlYXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8ge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3BlcnNvbmFsX3JvbCd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonbWV0YWRhdG9zJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J29wZXJhdGl2b3MnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidmb3JtdWxhcmlvcycgLCB0YWJsZTonY2FzaWxsZXJvc19wcmluY2lwYWxlcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3BsYW5vJyAgICAgICAsIHRhYmxlOidjYXNpbGxlcm9zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTondGlwb2MnICAgICAgICwgbGFiZWw6J3RpcG9zIGRlIGNlbGRhcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3RpcG9jX3RpcG9jJyAsIGxhYmVsOidpbmNsdXNpb25lcyBkZSBjZWxkYXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgXX0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J2VzdGFkb3NfYWNjaW9uZXMnLCBsYWJlbDonZXN0YWRvcy9hY2Npb25lcycsIG1lbnVDb250ZW50OltcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidlc3RhZG9zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonYWNjaW9uZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidlc3RhZG9zX2FjY2lvbmVzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncGFyYW1ldHJvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgIF19LFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J3VzdWFyaW9zJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTondXN1YXJpb3MnLCBzZWxlY3RlZEJ5RGVmYXVsdDp0cnVlfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3JvbGVzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidwZXJtaXNvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncm9sZXNfcGVybWlzb3MnfSxcclxuICAgICAgICAgICAgICAgICAgICBdfSxcclxuICAgICAgICAgICAgICAgICAgICAvLyB7bWVudVR5cGU6J3Byb2MnLCBuYW1lOidnZW5lcmF0ZV90YWJsZWRlZicsIHByb2M6J3RhYmxlZGVmX2dlbmVyYXRlJywgbGFiZWw6J2dlbmVyYXIgdGFibGFzJyAgfSxcclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgICByZXR1cm4ge21lbnV9O1xyXG4gICAgfVxyXG4gICAgcHJlcGFyZUdldFRhYmxlcygpe1xyXG4gICAgICAgIHZhciBiZT10aGlzO1xyXG4gICAgICAgIHN1cGVyLnByZXBhcmVHZXRUYWJsZXMoKTtcclxuICAgICAgICB0aGlzLmdldFRhYmxlRGVmaW5pdGlvbj17XHJcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0VGFibGVEZWZpbml0aW9uXHJcbiAgICAgICAgICAgICwgcm9sZXNcclxuICAgICAgICAgICAgLCB1c3Vhcmlvc1xyXG4gICAgICAgICAgICAsIHBlcnNvbmFsXHJcbiAgICAgICAgICAgICwgcmVjZXBjaW9uaXN0YXNcclxuICAgICAgICAgICAgLCBlbmN1ZXN0YWRvcmVzXHJcbiAgICAgICAgICAgICwgbWlzX2VuY3Vlc3RhZG9yZXNcclxuICAgICAgICAgICAgLCByZWN1cGVyYWRvcmVzXHJcbiAgICAgICAgICAgICwgc3VwZXJ2aXNvcmVzXHJcbiAgICAgICAgICAgICwgcGVyc29uYWxfcm9sXHJcbiAgICAgICAgICAgICwgcGVybWlzb3NcclxuICAgICAgICAgICAgLCByb2xlc19wZXJtaXNvc1xyXG4gICAgICAgICAgICAsIHJvbGVzX3N1Ym9yZGluYWRvc1xyXG4gICAgICAgICAgICAsIG5vX3JlYVxyXG4gICAgICAgICAgICAsIG5vX3JlYV9zdXBcclxuICAgICAgICAgICAgLCBzZW1hbmFzXHJcbiAgICAgICAgICAgICwgZXN0YWRvc1xyXG4gICAgICAgICAgICAsIGFjY2lvbmVzXHJcbiAgICAgICAgICAgICwgZXN0YWRvc19hY2Npb25lc1xyXG4gICAgICAgICAgICAsIHRlbVxyXG4gICAgICAgICAgICAsIHRlbV9yZWNlcGNpb25cclxuICAgICAgICAgICAgLCBwYXJhbWV0cm9zXHJcbiAgICAgICAgICAgICwgb3BlcmFjaW9uZXNcclxuICAgICAgICAgICAgLCBjb211bmFzXHJcbiAgICAgICAgICAgICwgYXJlYXNcclxuICAgICAgICAgICAgLCBzaW5jcm9uaXphY2lvbmVzXHJcbiAgICAgICAgICAgICwgdGFyZWFzXHJcbiAgICAgICAgICAgICwgdGFyZWFzX3RlbVxyXG4gICAgICAgICAgICAsIHRhcmVhc19hcmVhc1xyXG4gICAgICAgICAgICAsIG1pc190YXJlYXNcclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtX2FzaWduYWJsZXNcclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtX3JlY2VwY2lvblxyXG4gICAgICAgICAgICAsIG1pc190YXJlYXNfYXJlYXNcclxuICAgICAgICAgICAgLCBjb250cm9sX2NhbXBvXHJcbiAgICAgICAgICAgICwgY29udHJvbF9yZXN1bWVuXHJcbiAgICAgICAgICAgICwgY29udHJvbF9jYW1wb196b25hOiBjb250ZXh0PT5jb250cm9sX2NhbXBvKGNvbnRleHQsIFxyXG4gICAgICAgICAgICAgICAge25vbWJyZTonY29udHJvbF9jYW1wb19jb211bmEnLCB0aXRsZTonY29udHJvbCBjYW1wbyB4IHpvbmEgc29sbyBjZW1lbnRvJywgY2FtcG9zQ29ydGU6W3tuYW1lOid6b25hJywgdHlwZU5hbWU6J3RleHQnfV0sIGZpbHRyb1doZXJlOidkb21pbmlvPTMnIH1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9fY29tdW5hOiBjb250ZXh0PT5jb250cm9sX2NhbXBvKGNvbnRleHQsIFxyXG4gICAgICAgICAgICAgICAge25vbWJyZTonY29udHJvbF9jYW1wb19jb211bmEnLCB0aXRsZTonY29udHJvbCBjYW1wbyB4IGNvbXVuYSBzb2xvIGNlbWVudG8nLCBjYW1wb3NDb3J0ZTpbe25hbWU6J3pvbmEnLCB0eXBlTmFtZTondGV4dCd9LHtuYW1lOiducm9jb211bmEnLCB0eXBlTmFtZTonaW50ZWdlcid9XSwgZmlsdHJvV2hlcmU6J2RvbWluaW89MycgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgICwgY29udHJvbF9jYW1wb19hcmVhOiBjb250ZXh0PT5jb250cm9sX2NhbXBvKGNvbnRleHQsIFxyXG4gICAgICAgICAgICAgICAge25vbWJyZTonY29udHJvbF9jYW1wb19jb211bmEnLCB0aXRsZTonY29udHJvbCBjYW1wbyB4IGFyZWEnLCBjYW1wb3NDb3J0ZTpbe25hbWU6J3pvbmEnLCB0eXBlTmFtZTondGV4dCd9LHtuYW1lOiducm9jb211bmEnLCB0eXBlTmFtZTonaW50ZWdlcid9LHtuYW1lOidhcmVhJywgdHlwZU5hbWU6J2ludGVnZXInfSx7bmFtZToncGFydGljaXBhY2lvbl9hJywgdHlwZU5hbWU6J3RleHQnfSx7bmFtZTonY2xhc2VfYScsIHR5cGVOYW1lOid0ZXh0J31dfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgICwgY29udHJvbF9jYW1wb19wYXJ0aWNpcGFjaW9uOiBjb250ZXh0PT5jb250cm9sX2NhbXBvKGNvbnRleHQsIFxyXG4gICAgICAgICAgICAgICAge25vbWJyZTonY29udHJvbF9jYW1wb19jb211bmEnLCB0aXRsZTonY29udHJvbCBjYW1wbyB4IHBhcnRpY2lwYWNpb24nLCBjYW1wb3NDb3J0ZTpbe25hbWU6J3BhcnRpY2lwYWNpb24nLCB0eXBlTmFtZTonYmlnaW50J31dfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgICwgY29udHJvbF9jYW1wb19kb21pbmlvOiBjb250ZXh0PT5jb250cm9sX2NhbXBvKGNvbnRleHQsIFxyXG4gICAgICAgICAgICAgICAge25vbWJyZTonY29udHJvbF9jYW1wb19jb211bmEnLCB0aXRsZTonY29udHJvbCBjYW1wbyB4IGRvbWluaW8nLCBjYW1wb3NDb3J0ZTpbe25hbWU6J2RvbWluaW8nLCB0eXBlTmFtZTonaW50ZWdlcid9XX1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAsIHZpdmllbmRhc1xyXG4gICAgICAgICAgICAsIHZpc2l0YXNcclxuICAgICAgICAgICAgLCBob2dhcmVzXHJcbiAgICAgICAgICAgICwgcGVyc29uYXNcclxuICAgICAgICAgICAgLCB2aXNpdGFzX3N1cFxyXG4gICAgICAgICAgICAsIGhvZ2FyZXNfc3VwXHJcbiAgICAgICAgICAgICwgcGVyc29uYXNfc3VwXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJlLmFwcGVuZFRvVGFibGVEZWZpbml0aW9uKCdjb25zaXN0ZW5jaWFzJyxmdW5jdGlvbih0YWJsZURlZiwgY29udGV4dCl7XHJcbiAgICAgICAgICAgIHRhYmxlRGVmLmZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uKGZpZWxkKXtcclxuICAgICAgICAgICAgICAgIGlmKGZpZWxkLm5hbWU9PSdlcnJvcl9jb21waWxhY2lvbicpe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGZpZWxkLnZpc2libGUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCcqKioqKioqKioqKiogUVVJVEFSIEVTVE8gZXJyb3JfY29tcGlsYWNpb24geWEgZXMgdmlzaWJsZScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBmaWVsZC52aXNpYmxlPXRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfSlcclxuICAgICAgICBiZS5hcHBlbmRUb1RhYmxlRGVmaW5pdGlvbignaW5jb25zaXN0ZW5jaWFzJyxmdW5jdGlvbih0YWJsZURlZiwgY29udGV4dCl7XHJcbiAgICAgICAgICAgIHRhYmxlRGVmLmZpZWxkcy5zcGxpY2UoMiwwLFxyXG4gICAgICAgICAgICAgICAge25hbWU6J3ZpdmllbmRhJyAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgLCBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgICAgICAgICAge25hbWU6J2hvZ2FyJyAgICAgICAsIHR5cGVOYW1lOidiaWdpbnQnICAgLCBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgICAgICAgICAge25hbWU6J3BlcnNvbmEnICAgICAsIHR5cGVOYW1lOidiaWdpbnQnICAgLCBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgICAgICAgICAge25hbWU6J3Zpc2l0YScgICAgICAsIHR5cGVOYW1lOidiaWdpbnQnICAgLCBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0YWJsZURlZi5lZGl0YWJsZT10YWJsZURlZi5lZGl0YWJsZSB8fCBjb250ZXh0LnB1ZWRlPy5lbmN1ZXN0YXMuanVzdGlmaWNhcjtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLmZvckVhY2goZnVuY3Rpb24oZmllbGQpe1xyXG4gICAgICAgICAgICAgICAgaWYoZmllbGQubmFtZT09J3BrX2ludGVncmFkYScpe1xyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnZpc2libGU9ZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZihmaWVsZC5uYW1lPT0nanVzdGlmaWNhY2lvbicpe1xyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLmVkaXRhYmxlPWNvbnRleHQuZm9yRHVtcCB8fCBjb250ZXh0LnB1ZWRlPy5lbmN1ZXN0YXMuanVzdGlmaWNhcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnB1c2goe25hbWU6J2Zpbl9jYW1wbycgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgIFxyXG4gICAgICAgICAgICAgICAgLCBlZGl0YWJsZTogZmFsc2UsIGluVGFibGU6ZmFsc2VcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgdGFibGVEZWYuc3FsIS5mcm9tPWBcclxuICAgICAgICAgICAgICAgIChzZWxlY3QgaS4qLCB0LmZpbl9jYW1wbyBcclxuICAgICAgICAgICAgICAgICAgZnJvbSBpbmNvbnNpc3RlbmNpYXMgaSBqb2luIHRlbSB0IG9uIGkudml2aWVuZGE9dC5lbmMgYW5kIGkub3BlcmF0aXZvPXQub3BlcmF0aXZvIFxyXG4gICAgICAgICAgICAgICAgKSAgXHJcbiAgICAgICAgICAgIGBcclxuICAgICAgICB9KVxyXG4gICAgICAgIGJlLmFwcGVuZFRvVGFibGVEZWZpbml0aW9uKCdvcGVyYXRpdm9zJyxmdW5jdGlvbih0YWJsZURlZiwgY29udGV4dCl7XHJcbiAgICAgICAgICAgIHRhYmxlRGVmLmZpZWxkcy5zcGxpY2UoMiwwLHtcclxuICAgICAgICAgICAgICAgIG5hbWU6J2NvbmZpZ19zb3J0ZW8nLCBcclxuICAgICAgICAgICAgICAgIHR5cGVOYW1lOidqc29uYicsXHJcbiAgICAgICAgICAgICAgICBlZGl0YWJsZTogZmFsc2VcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRhYmxlRGVmLmZpZWxkcy5zcGxpY2UoMywwLHtcclxuICAgICAgICAgICAgICAgIG5hbWU6J2Rpc2Zvcm1fY2VycmFkbycsIFxyXG4gICAgICAgICAgICAgICAgdHlwZU5hbWU6J2Jvb2xlYW4nLCBcclxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsIFxyXG4gICAgICAgICAgICAgICAgZWRpdGFibGU6IGNvbnRleHQuZm9yRHVtcHx8WydhZG1pbicsJ2Rpc19jb25jZXB0dWFsJ10uaW5jbHVkZXMoY29udGV4dC51c2VyLnJvbCl9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgLy8gYmUuYXBwZW5kVG9UYWJsZURlZmluaXRpb24oJ2Nhc2lsbGVyb3MnLGZ1bmN0aW9uKHRhYmxlRGVmLCBjb250ZXh0KXtcclxuICAgICAgICAvLyAgICAgdGFibGVEZWYuY29uc3RyYWludHMgPSB0YWJsZURlZi5jb25zdHJhaW50cy5maWx0ZXIoYz0+Yy5jb25zTmFtZSE9J2Nhc2lsbGVyb3Mgc2FsdG8gUkVMJylcclxuICAgICAgICAvLyB9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHZhciBBcHBEbUVuY3UgPSBlbWVyZ2VBcHBEbUVuY3UoZW1lcmdlQXBwUHJvY2VzYW1pZW50byhlbWVyZ2VBcHBDb25zaXN0ZW5jaWFzKGVtZXJnZUFwcFZhckNhbChlbWVyZ2VBcHBEYXRvc0V4dChlbWVyZ2VBcHBPcGVyYXRpdm9zKEFwcEJhY2tlbmQpKSkpKSk7XHJcbmV4cG9ydCB0eXBlIEFwcEFwcERtRW5jdVR5cGUgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIEFwcERtRW5jdT47Il19
|