footprintjs 4.3.1 → 4.4.1
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/CLAUDE.md +6 -2
- package/dist/advanced.js +4 -3
- package/dist/esm/advanced.js +2 -2
- package/dist/esm/lib/builder/FlowChartBuilder.js +15 -3
- package/dist/esm/lib/builder/index.js +2 -1
- package/dist/esm/lib/builder/types.js +2 -2
- package/dist/esm/lib/engine/handlers/SubflowInputMapper.js +10 -5
- package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +2 -1
- package/dist/esm/lib/engine/narrative/narrativeTypes.js +1 -1
- package/dist/esm/lib/engine/types.js +14 -1
- package/dist/esm/lib/pause/types.js +1 -1
- package/dist/lib/builder/FlowChartBuilder.js +15 -3
- package/dist/lib/builder/index.js +4 -2
- package/dist/lib/builder/types.js +4 -1
- package/dist/lib/engine/handlers/SubflowInputMapper.js +10 -5
- package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +2 -1
- package/dist/lib/engine/narrative/narrativeTypes.js +1 -1
- package/dist/lib/engine/types.js +15 -2
- package/dist/lib/pause/types.js +1 -1
- package/dist/types/advanced.d.ts +1 -1
- package/dist/types/lib/builder/FlowChartBuilder.d.ts +3 -3
- package/dist/types/lib/builder/index.d.ts +1 -0
- package/dist/types/lib/builder/types.d.ts +1 -0
- package/dist/types/lib/engine/narrative/narrativeTypes.d.ts +4 -0
- package/dist/types/lib/engine/types.d.ts +34 -9
- package/dist/types/lib/pause/types.d.ts +13 -16
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Can be used standalone for building flowchart specs without execution.
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.specToStageNode = exports.flowChart = exports.SelectorFnList = exports.FlowChartBuilder = exports.DeciderList = void 0;
|
|
10
|
+
exports.ArrayMergeMode = exports.specToStageNode = exports.flowChart = exports.SelectorFnList = exports.FlowChartBuilder = exports.DeciderList = void 0;
|
|
11
11
|
// Classes
|
|
12
12
|
var FlowChartBuilder_js_1 = require("./FlowChartBuilder.js");
|
|
13
13
|
Object.defineProperty(exports, "DeciderList", { enumerable: true, get: function () { return FlowChartBuilder_js_1.DeciderList; } });
|
|
@@ -17,4 +17,6 @@ Object.defineProperty(exports, "SelectorFnList", { enumerable: true, get: functi
|
|
|
17
17
|
var FlowChartBuilder_js_2 = require("./FlowChartBuilder.js");
|
|
18
18
|
Object.defineProperty(exports, "flowChart", { enumerable: true, get: function () { return FlowChartBuilder_js_2.flowChart; } });
|
|
19
19
|
Object.defineProperty(exports, "specToStageNode", { enumerable: true, get: function () { return FlowChartBuilder_js_2.specToStageNode; } });
|
|
20
|
-
|
|
20
|
+
var types_js_1 = require("./types.js");
|
|
21
|
+
Object.defineProperty(exports, "ArrayMergeMode", { enumerable: true, get: function () { return types_js_1.ArrayMergeMode; } });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2J1aWxkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUEwQjtBQUMxQjs7Ozs7R0FLRzs7O0FBRUgsVUFBVTtBQUNWLDZEQUFzRjtBQUE3RSxrSEFBQSxXQUFXLE9BQUE7QUFBRSx1SEFBQSxnQkFBZ0IsT0FBQTtBQUFFLHFIQUFBLGNBQWMsT0FBQTtBQUV0RCxzQkFBc0I7QUFDdEIsNkRBQW1FO0FBQTFELGdIQUFBLFNBQVMsT0FBQTtBQUFFLHNIQUFBLGVBQWUsT0FBQTtBQXdCbkMsdUNBQTRDO0FBQW5DLDBHQUFBLGNBQWMsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG4vKipcbiAqIGJ1aWxkZXIvIOKAlCBGbG93Y2hhcnQgY29uc3RydWN0aW9uIGxpYnJhcnkgKHplcm8gZGVwcyBvbiBvbGQgY29kZSlcbiAqXG4gKiBGbHVlbnQgQVBJIGZvciBidWlsZGluZyBTdGFnZU5vZGUgdHJlZXMgYW5kIFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZS5cbiAqIENhbiBiZSB1c2VkIHN0YW5kYWxvbmUgZm9yIGJ1aWxkaW5nIGZsb3djaGFydCBzcGVjcyB3aXRob3V0IGV4ZWN1dGlvbi5cbiAqL1xuXG4vLyBDbGFzc2VzXG5leHBvcnQgeyBEZWNpZGVyTGlzdCwgRmxvd0NoYXJ0QnVpbGRlciwgU2VsZWN0b3JGbkxpc3QgfSBmcm9tICcuL0Zsb3dDaGFydEJ1aWxkZXIuanMnO1xuXG4vLyBGYWN0b3J5ICYgdXRpbGl0aWVzXG5leHBvcnQgeyBmbG93Q2hhcnQsIHNwZWNUb1N0YWdlTm9kZSB9IGZyb20gJy4vRmxvd0NoYXJ0QnVpbGRlci5qcyc7XG5cbi8vIFR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIEJ1aWxkVGltZUV4dHJhY3RvcixcbiAgQnVpbGRUaW1lTm9kZU1ldGFkYXRhLFxuICBFeGVjT3B0aW9ucyxcbiAgRmxvd0NoYXJ0LFxuICBGbG93Q2hhcnRTcGVjLFxuICBJTG9nZ2VyLFxuICBTY29wZVByb3RlY3Rpb25Nb2RlLFxuICBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUsXG4gIFNpbXBsaWZpZWRQYXJhbGxlbFNwZWMsXG4gIFN0YWdlRm4sXG4gIFN0YWdlRnVuY3Rpb24sXG4gIFN0YWdlTm9kZSxcbiAgU3RyZWFtQ2FsbGJhY2ssXG4gIFN0cmVhbUhhbmRsZXJzLFxuICBTdHJlYW1MaWZlY3ljbGVIYW5kbGVyLFxuICBTdHJlYW1Ub2tlbkhhbmRsZXIsXG4gIFN1YmZsb3dNb3VudE9wdGlvbnMsXG4gIFN1YmZsb3dSZWYsXG4gIFRyYXZlcnNhbEV4dHJhY3Rvcixcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5leHBvcnQgeyBBcnJheU1lcmdlTW9kZSB9IGZyb20gJy4vdHlwZXMuanMnO1xuIl19
|
|
@@ -10,4 +10,7 @@
|
|
|
10
10
|
* The builder remains standalone at runtime.
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2J1aWxkZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7R0FTRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogYnVpbGRlci90eXBlcy50cyDigJQgQWxsIHR5cGVzIHVzZWQgYnkgdGhlIGJ1aWxkZXIgbGlicmFyeS5cbiAqXG4gKiBTaGFyZWQgdHlwZXMgKFN0YWdlTm9kZSwgU3RhZ2VGdW5jdGlvbiwgZXRjLikgYXJlIGltcG9ydGVkIGZyb20gdGhlIGVuZ2luZS5cbiAqIEJ1aWxkZXItc3BlY2lmaWMgdHlwZXMgKEZsb3dDaGFydFNwZWMsIEZsb3dDaGFydCwgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlKVxuICogYXJlIGRlZmluZWQgbG9jYWxseSDigJQgdGhleSBjYXJyeSBidWlsZGVyLW9ubHkgZmllbGRzIChkZXNjcmlwdGlvbiwgb3V0cHV0TWFwcGVyLCBldGMuKS5cbiAqXG4gKiBOT1RFOiBBbGwgZW5naW5lIGltcG9ydHMgYXJlIGBpbXBvcnQgdHlwZWAg4oCUIHplcm8gcnVudGltZSBkZXBlbmRlbmN5LlxuICogVGhlIGJ1aWxkZXIgcmVtYWlucyBzdGFuZGFsb25lIGF0IHJ1bnRpbWUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBTdGFnZU5vZGUgfSBmcm9tICcuLi9lbmdpbmUvZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmltcG9ydCB0eXBlIHsgSUxvZ2dlciwgU2NvcGVGYWN0b3J5LCBTdGFnZUZ1bmN0aW9uLCBUcmF2ZXJzYWxFeHRyYWN0b3IgfSBmcm9tICcuLi9lbmdpbmUvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTY29wZVByb3RlY3Rpb25Nb2RlIH0gZnJvbSAnLi4vc2NvcGUvcHJvdGVjdGlvbi90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gUmUtZXhwb3J0cyBmcm9tIGVuZ2luZSAoY2Fub25pY2FsIGRlZmluaXRpb25zKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCB0eXBlIHsgUmVzdW1lRm4sIFN0YWdlTm9kZSB9IGZyb20gJy4uL2VuZ2luZS9ncmFwaC9TdGFnZU5vZGUuanMnO1xuZXhwb3J0IHR5cGUge1xuICBJTG9nZ2VyLFxuICBTdGFnZUZ1bmN0aW9uLFxuICBTdHJlYW1DYWxsYmFjayxcbiAgU3RyZWFtSGFuZGxlcnMsXG4gIFN0cmVhbUxpZmVjeWNsZUhhbmRsZXIsXG4gIFN0cmVhbVRva2VuSGFuZGxlcixcbiAgU3ViZmxvd01vdW50T3B0aW9ucyxcbn0gZnJvbSAnLi4vZW5naW5lL3R5cGVzLmpzJztcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBBbGlhc2VzXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLyoqIFJlbGF4ZWQtZ2VuZXJpYyBhbGlhcyBmb3IgYnVpbGRlciBlcmdvbm9taWNzLiAqL1xuZXhwb3J0IHR5cGUgU3RhZ2VGbiA9IFN0YWdlRnVuY3Rpb248YW55LCBhbnk+O1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFNjb3BlIFByb3RlY3Rpb24g4oCUIGNhbm9uaWNhbCBkZWZpbml0aW9uIGluIHNjb3BlL3Byb3RlY3Rpb24vdHlwZXMudHNcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgdHlwZSB7IFNjb3BlUHJvdGVjdGlvbk1vZGUgfTtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTZXJpYWxpemVkIFBpcGVsaW5lIFN0cnVjdHVyZSAoSlNPTi1zYWZlLCBmb3IgdmlzdWFsaXphdGlvbilcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogJ3N0YWdlJyB8ICdkZWNpZGVyJyB8ICdzZWxlY3RvcicgfCAnZm9yaycgfCAnc3RyZWFtaW5nJyB8ICdzdWJmbG93JyB8ICdsb29wJztcbiAgLyoqIFNlbWFudGljIGljb24gaGludCBmb3IgdmlzdWFsaXphdGlvbiAoZS5nLiwgXCJsbG1cIiwgXCJ0b29sXCIsIFwicmFnXCIsIFwiYWdlbnRcIiwgXCJzdGFydFwiKSAqL1xuICBpY29uPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmVbXTtcbiAgbmV4dD86IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZTtcbiAgaGFzRGVjaWRlcj86IGJvb2xlYW47XG4gIGhhc1NlbGVjdG9yPzogYm9vbGVhbjtcbiAgYnJhbmNoSWRzPzogc3RyaW5nW107XG4gIGxvb3BUYXJnZXQ/OiBzdHJpbmc7XG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhbjtcbiAgc3RyZWFtSWQ/OiBzdHJpbmc7XG4gIGlzUGFyYWxsZWxDaGlsZD86IGJvb2xlYW47XG4gIHBhcmFsbGVsR3JvdXBJZD86IHN0cmluZztcbiAgaXNTdWJmbG93Um9vdD86IGJvb2xlYW47XG4gIHN1YmZsb3dJZD86IHN0cmluZztcbiAgc3ViZmxvd05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBOZXN0ZWQgcGlwZWxpbmUgc3RydWN0dXJlIGZvciBhIHN1YmZsb3cgbm9kZS5cbiAgICogV0FSTklORzogQW55IGZ1dHVyZSB3YWxrZXIgdGhhdCB0cmF2ZXJzZXMgdGhpcyBmaWVsZCByZWN1cnNpdmVseSBtdXN0IGFwcGx5IGl0cyBvd25cbiAgICogZGVwdGggZ3VhcmQgKHNlZSBNQVhfV0FMS19ERVBUSCBpbiBjb250cmFjdC9vcGVuYXBpLnRzKS4gVGhlIGN1cnJlbnQgYGJ1aWxkRGVzY3JpcHRpb25gXG4gICAqIHdhbGsgaW4gb3BlbmFwaS50cyBkb2VzIE5PVCB0cmF2ZXJzZSBzdWJmbG93U3RydWN0dXJlIOKAlCBpZiBpdCBldmVyIGRvZXMsIHRoZSBkZXB0aFxuICAgKiBndWFyZCBtdXN0IGNvdmVyIGJvdGggdGhlIGBuZXh0YCBjaGFpbiBhbmQgdGhpcyBuZXN0ZWQgc3RydWN0dXJlLlxuICAgKi9cbiAgc3ViZmxvd1N0cnVjdHVyZT86IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZTtcbiAgaXRlcmF0aW9uQ291bnQ/OiBudW1iZXI7XG4gIC8qKiBUcnVlIHdoZW4gdGhpcyBzdWJmbG93IHVzZXMgbGF6eSByZXNvbHV0aW9uIChkZWZlcnJlZCB1bnRpbCBleGVjdXRpb24pLiAqL1xuICBpc0xhenk/OiBib29sZWFuO1xuICAvKiogVHJ1ZSB3aGVuIHRoaXMgbm9kZSBpcyBhIGJhY2stZWRnZSByZWZlcmVuY2UgY3JlYXRlZCBieSBsb29wVG8oKSDigJQgbm90IGFuIGV4ZWN1dGFibGUgc3RhZ2UuICovXG4gIGlzTG9vcFJlZmVyZW5jZT86IGJvb2xlYW47XG4gIC8qKiBXaGVuIHRydWUsIHRoaXMgc3RhZ2UgY2FuIHBhdXNlIGV4ZWN1dGlvbiAoUGF1c2FibGVIYW5kbGVyIHBhdHRlcm4pLiAqL1xuICBpc1BhdXNhYmxlPzogYm9vbGVhbjtcbn1cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBGbG93Q2hhcnRTcGVjIChwdXJlIEpTT04sIG5vIGZ1bmN0aW9ucyDigJQgZm9yIEZF4oaSQkUgdHJhbnNwb3J0KVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0NoYXJ0U3BlYyB7XG4gIG5hbWU6IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgLyoqIE5vZGUgdHlwZSDigJQgbWF0Y2hlcyBgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlLnR5cGVgIGZvciB2aXN1YWxpemF0aW9uIGFsaWdubWVudC4gKi9cbiAgdHlwZT86ICdzdGFnZScgfCAnZGVjaWRlcicgfCAnc2VsZWN0b3InIHwgJ2ZvcmsnIHwgJ3N0cmVhbWluZycgfCAnc3ViZmxvdycgfCAnbG9vcCc7XG4gIC8qKiBTZW1hbnRpYyBpY29uIGhpbnQgZm9yIHZpc3VhbGl6YXRpb24gKGUuZy4sIFwibGxtXCIsIFwidG9vbFwiLCBcInJhZ1wiLCBcImFnZW50XCIsIFwic3RhcnRcIikgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogRmxvd0NoYXJ0U3BlY1tdO1xuICBuZXh0PzogRmxvd0NoYXJ0U3BlYztcbiAgaGFzRGVjaWRlcj86IGJvb2xlYW47XG4gIGhhc1NlbGVjdG9yPzogYm9vbGVhbjtcbiAgYnJhbmNoSWRzPzogc3RyaW5nW107XG4gIGxvb3BUYXJnZXQ/OiBzdHJpbmc7XG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhbjtcbiAgc3RyZWFtSWQ/OiBzdHJpbmc7XG4gIGlzUGFyYWxsZWxDaGlsZD86IGJvb2xlYW47XG4gIHBhcmFsbGVsR3JvdXBJZD86IHN0cmluZztcbiAgaXNTdWJmbG93Um9vdD86IGJvb2xlYW47XG4gIHN1YmZsb3dJZD86IHN0cmluZztcbiAgc3ViZmxvd05hbWU/OiBzdHJpbmc7XG4gIC8qKiBUcnVlIHdoZW4gdGhpcyBub2RlIGlzIGEgYmFjay1lZGdlIHJlZmVyZW5jZSBjcmVhdGVkIGJ5IGxvb3BUbygpIOKAlCBub3QgYW4gZXhlY3V0YWJsZSBzdGFnZS4gKi9cbiAgaXNMb29wUmVmZXJlbmNlPzogYm9vbGVhbjtcbn1cblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBCdWlsZC1UaW1lIEV4dHJhY3RvclxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi8qKiBNZXRhZGF0YSBwcm92aWRlZCB0byB0aGUgYnVpbGQtdGltZSBleHRyYWN0b3IgZm9yIGVhY2ggbm9kZS4gKi9cbmV4cG9ydCB0eXBlIEJ1aWxkVGltZU5vZGVNZXRhZGF0YSA9IEZsb3dDaGFydFNwZWM7XG5cbmV4cG9ydCB0eXBlIEJ1aWxkVGltZUV4dHJhY3RvcjxUUmVzdWx0ID0gRmxvd0NoYXJ0U3BlYz4gPSAobWV0YWRhdGE6IEJ1aWxkVGltZU5vZGVNZXRhZGF0YSkgPT4gVFJlc3VsdDtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBUcmF2ZXJzYWwgRXh0cmFjdG9yIChydW50aW1lKSDigJQgY2Fub25pY2FsIGRlZmluaXRpb24gbGl2ZXMgaW4gZW5naW5lL3R5cGVzLlxuLy8gUmUtZXhwb3J0ZWQgaGVyZSBzbyBjYWxsZXJzIGRvbid0IG5lZWQgdHdvIGltcG9ydCBwYXRocy5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgdHlwZSB7IFRyYXZlcnNhbEV4dHJhY3RvciB9IGZyb20gJy4uL2VuZ2luZS90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gRmxvd0NoYXJ0IOKAlCBjb21waWxlZCBvdXRwdXQgb2YgYnVpbGQoKVxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCB0eXBlIEZsb3dDaGFydDxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+ID0ge1xuICByb290OiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPjtcbiAgc3RhZ2VNYXA6IE1hcDxzdHJpbmcsIFN0YWdlRnVuY3Rpb248VE91dCwgVFNjb3BlPj47XG4gIGV4dHJhY3Rvcj86IFRyYXZlcnNhbEV4dHJhY3RvcjtcbiAgc3ViZmxvd3M/OiBSZWNvcmQ8c3RyaW5nLCB7IHJvb3Q6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+IH0+O1xuICBidWlsZFRpbWVTdHJ1Y3R1cmU6IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZTtcbiAgZW5hYmxlTmFycmF0aXZlPzogYm9vbGVhbjtcbiAgbG9nZ2VyPzogSUxvZ2dlcjtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhZ2VEZXNjcmlwdGlvbnM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKiBJbnB1dCBzY2hlbWEgKFpvZCBvciBKU09OIFNjaGVtYSkg4oCUIGRlY2xhcmVkIHZpYSBzZXRJbnB1dFNjaGVtYSgpIG9yIC5jb250cmFjdCgpLiAqL1xuICBpbnB1dFNjaGVtYT86IHVua25vd247XG4gIC8qKiBPdXRwdXQgc2NoZW1hIChab2Qgb3IgSlNPTiBTY2hlbWEpIOKAlCBkZWNsYXJlZCB2aWEgc2V0T3V0cHV0U2NoZW1hKCkgb3IgLmNvbnRyYWN0KCkuICovXG4gIG91dHB1dFNjaGVtYT86IHVua25vd247XG4gIC8qKiBPdXRwdXQgbWFwcGVyIOKAlCBleHRyYWN0cyByZXNwb25zZSBmcm9tIGZpbmFsIHNjb3BlLiAqL1xuICBvdXRwdXRNYXBwZXI/OiAoZmluYWxTY29wZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHVua25vd247XG4gIC8qKiBTY29wZSBmYWN0b3J5IOKAlCBhdXRvLWVtYmVkZGVkIGJ5IGZsb3dDaGFydDxUPigpLiBFeGVjdXRvciByZWFkcyB0aGlzIGlmIG5vIGZhY3RvcnkgcGFyYW0uICovXG4gIHNjb3BlRmFjdG9yeT86IFNjb3BlRmFjdG9yeTxUU2NvcGU+O1xufTtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTaW1wbGlmaWVkIFBhcmFsbGVsIFNwZWMgKGZvciBhZGRMaXN0T2ZGdW5jdGlvbilcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgdHlwZSBTaW1wbGlmaWVkUGFyYWxsZWxTcGVjPFRPdXQgPSBhbnksIFRTY29wZSA9IGFueT4gPSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZm4/OiBTdGFnZUZ1bmN0aW9uPFRPdXQsIFRTY29wZT47XG59O1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEV4ZWNPcHRpb25zIChmb3IgZXhlY3V0ZSgpIGNvbnZlbmllbmNlIOKAlCB1c2VkIGJ5IHJ1bm5lciBsYXllcilcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgdHlwZSBFeGVjT3B0aW9ucyA9IHtcbiAgZGVmYXVsdHM/OiB1bmtub3duO1xuICBpbml0aWFsPzogdW5rbm93bjtcbiAgcmVhZE9ubHk/OiB1bmtub3duO1xuICB0aHJvdHRsaW5nRXJyb3JDaGVja2VyPzogKGU6IHVua25vd24pID0+IGJvb2xlYW47XG4gIHNjb3BlUHJvdGVjdGlvbk1vZGU/OiBTY29wZVByb3RlY3Rpb25Nb2RlO1xuICBlbmFibGVOYXJyYXRpdmU/OiBib29sZWFuO1xufTtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTdWJmbG93UmVmXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IGludGVyZmFjZSBTdWJmbG93UmVmIHtcbiAgJHJlZjogc3RyaW5nO1xuICBtb3VudElkOiBzdHJpbmc7XG59XG4iXX0=
|
|
13
|
+
exports.ArrayMergeMode = void 0;
|
|
14
|
+
var types_js_1 = require("../engine/types.js");
|
|
15
|
+
Object.defineProperty(exports, "ArrayMergeMode", { enumerable: true, get: function () { return types_js_1.ArrayMergeMode; } });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2J1aWxkZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7R0FTRzs7O0FBb0JILCtDQUFvRDtBQUEzQywwR0FBQSxjQUFjLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGJ1aWxkZXIvdHlwZXMudHMg4oCUIEFsbCB0eXBlcyB1c2VkIGJ5IHRoZSBidWlsZGVyIGxpYnJhcnkuXG4gKlxuICogU2hhcmVkIHR5cGVzIChTdGFnZU5vZGUsIFN0YWdlRnVuY3Rpb24sIGV0Yy4pIGFyZSBpbXBvcnRlZCBmcm9tIHRoZSBlbmdpbmUuXG4gKiBCdWlsZGVyLXNwZWNpZmljIHR5cGVzIChGbG93Q2hhcnRTcGVjLCBGbG93Q2hhcnQsIFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZSlcbiAqIGFyZSBkZWZpbmVkIGxvY2FsbHkg4oCUIHRoZXkgY2FycnkgYnVpbGRlci1vbmx5IGZpZWxkcyAoZGVzY3JpcHRpb24sIG91dHB1dE1hcHBlciwgZXRjLikuXG4gKlxuICogTk9URTogQWxsIGVuZ2luZSBpbXBvcnRzIGFyZSBgaW1wb3J0IHR5cGVgIOKAlCB6ZXJvIHJ1bnRpbWUgZGVwZW5kZW5jeS5cbiAqIFRoZSBidWlsZGVyIHJlbWFpbnMgc3RhbmRhbG9uZSBhdCBydW50aW1lLlxuICovXG5cbmltcG9ydCB0eXBlIHsgU3RhZ2VOb2RlIH0gZnJvbSAnLi4vZW5naW5lL2dyYXBoL1N0YWdlTm9kZS5qcyc7XG5pbXBvcnQgdHlwZSB7IElMb2dnZXIsIFNjb3BlRmFjdG9yeSwgU3RhZ2VGdW5jdGlvbiwgVHJhdmVyc2FsRXh0cmFjdG9yIH0gZnJvbSAnLi4vZW5naW5lL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgU2NvcGVQcm90ZWN0aW9uTW9kZSB9IGZyb20gJy4uL3Njb3BlL3Byb3RlY3Rpb24vdHlwZXMuanMnO1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIFJlLWV4cG9ydHMgZnJvbSBlbmdpbmUgKGNhbm9uaWNhbCBkZWZpbml0aW9ucylcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgdHlwZSB7IFJlc3VtZUZuLCBTdGFnZU5vZGUgfSBmcm9tICcuLi9lbmdpbmUvZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgSUxvZ2dlcixcbiAgU3RhZ2VGdW5jdGlvbixcbiAgU3RyZWFtQ2FsbGJhY2ssXG4gIFN0cmVhbUhhbmRsZXJzLFxuICBTdHJlYW1MaWZlY3ljbGVIYW5kbGVyLFxuICBTdHJlYW1Ub2tlbkhhbmRsZXIsXG4gIFN1YmZsb3dNb3VudE9wdGlvbnMsXG59IGZyb20gJy4uL2VuZ2luZS90eXBlcy5qcyc7XG5leHBvcnQgeyBBcnJheU1lcmdlTW9kZSB9IGZyb20gJy4uL2VuZ2luZS90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQWxpYXNlc1xuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbi8qKiBSZWxheGVkLWdlbmVyaWMgYWxpYXMgZm9yIGJ1aWxkZXIgZXJnb25vbWljcy4gKi9cbmV4cG9ydCB0eXBlIFN0YWdlRm4gPSBTdGFnZUZ1bmN0aW9uPGFueSwgYW55PjtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBTY29wZSBQcm90ZWN0aW9uIOKAlCBjYW5vbmljYWwgZGVmaW5pdGlvbiBpbiBzY29wZS9wcm90ZWN0aW9uL3R5cGVzLnRzXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgeyBTY29wZVByb3RlY3Rpb25Nb2RlIH07XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU2VyaWFsaXplZCBQaXBlbGluZSBTdHJ1Y3R1cmUgKEpTT04tc2FmZSwgZm9yIHZpc3VhbGl6YXRpb24pXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUge1xuICBuYW1lOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6ICdzdGFnZScgfCAnZGVjaWRlcicgfCAnc2VsZWN0b3InIHwgJ2ZvcmsnIHwgJ3N0cmVhbWluZycgfCAnc3ViZmxvdycgfCAnbG9vcCc7XG4gIC8qKiBTZW1hbnRpYyBpY29uIGhpbnQgZm9yIHZpc3VhbGl6YXRpb24gKGUuZy4sIFwibGxtXCIsIFwidG9vbFwiLCBcInJhZ1wiLCBcImFnZW50XCIsIFwic3RhcnRcIikgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlW107XG4gIG5leHQ/OiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmU7XG4gIGhhc0RlY2lkZXI/OiBib29sZWFuO1xuICBoYXNTZWxlY3Rvcj86IGJvb2xlYW47XG4gIGJyYW5jaElkcz86IHN0cmluZ1tdO1xuICBsb29wVGFyZ2V0Pzogc3RyaW5nO1xuICBpc1N0cmVhbWluZz86IGJvb2xlYW47XG4gIHN0cmVhbUlkPzogc3RyaW5nO1xuICBpc1BhcmFsbGVsQ2hpbGQ/OiBib29sZWFuO1xuICBwYXJhbGxlbEdyb3VwSWQ/OiBzdHJpbmc7XG4gIGlzU3ViZmxvd1Jvb3Q/OiBib29sZWFuO1xuICBzdWJmbG93SWQ/OiBzdHJpbmc7XG4gIHN1YmZsb3dOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogTmVzdGVkIHBpcGVsaW5lIHN0cnVjdHVyZSBmb3IgYSBzdWJmbG93IG5vZGUuXG4gICAqIFdBUk5JTkc6IEFueSBmdXR1cmUgd2Fsa2VyIHRoYXQgdHJhdmVyc2VzIHRoaXMgZmllbGQgcmVjdXJzaXZlbHkgbXVzdCBhcHBseSBpdHMgb3duXG4gICAqIGRlcHRoIGd1YXJkIChzZWUgTUFYX1dBTEtfREVQVEggaW4gY29udHJhY3Qvb3BlbmFwaS50cykuIFRoZSBjdXJyZW50IGBidWlsZERlc2NyaXB0aW9uYFxuICAgKiB3YWxrIGluIG9wZW5hcGkudHMgZG9lcyBOT1QgdHJhdmVyc2Ugc3ViZmxvd1N0cnVjdHVyZSDigJQgaWYgaXQgZXZlciBkb2VzLCB0aGUgZGVwdGhcbiAgICogZ3VhcmQgbXVzdCBjb3ZlciBib3RoIHRoZSBgbmV4dGAgY2hhaW4gYW5kIHRoaXMgbmVzdGVkIHN0cnVjdHVyZS5cbiAgICovXG4gIHN1YmZsb3dTdHJ1Y3R1cmU/OiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmU7XG4gIGl0ZXJhdGlvbkNvdW50PzogbnVtYmVyO1xuICAvKiogVHJ1ZSB3aGVuIHRoaXMgc3ViZmxvdyB1c2VzIGxhenkgcmVzb2x1dGlvbiAoZGVmZXJyZWQgdW50aWwgZXhlY3V0aW9uKS4gKi9cbiAgaXNMYXp5PzogYm9vbGVhbjtcbiAgLyoqIFRydWUgd2hlbiB0aGlzIG5vZGUgaXMgYSBiYWNrLWVkZ2UgcmVmZXJlbmNlIGNyZWF0ZWQgYnkgbG9vcFRvKCkg4oCUIG5vdCBhbiBleGVjdXRhYmxlIHN0YWdlLiAqL1xuICBpc0xvb3BSZWZlcmVuY2U/OiBib29sZWFuO1xuICAvKiogV2hlbiB0cnVlLCB0aGlzIHN0YWdlIGNhbiBwYXVzZSBleGVjdXRpb24gKFBhdXNhYmxlSGFuZGxlciBwYXR0ZXJuKS4gKi9cbiAgaXNQYXVzYWJsZT86IGJvb2xlYW47XG59XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gRmxvd0NoYXJ0U3BlYyAocHVyZSBKU09OLCBubyBmdW5jdGlvbnMg4oCUIGZvciBGReKGkkJFIHRyYW5zcG9ydClcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dDaGFydFNwZWMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBOb2RlIHR5cGUg4oCUIG1hdGNoZXMgYFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZS50eXBlYCBmb3IgdmlzdWFsaXphdGlvbiBhbGlnbm1lbnQuICovXG4gIHR5cGU/OiAnc3RhZ2UnIHwgJ2RlY2lkZXInIHwgJ3NlbGVjdG9yJyB8ICdmb3JrJyB8ICdzdHJlYW1pbmcnIHwgJ3N1YmZsb3cnIHwgJ2xvb3AnO1xuICAvKiogU2VtYW50aWMgaWNvbiBoaW50IGZvciB2aXN1YWxpemF0aW9uIChlLmcuLCBcImxsbVwiLCBcInRvb2xcIiwgXCJyYWdcIiwgXCJhZ2VudFwiLCBcInN0YXJ0XCIpICovXG4gIGljb24/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IEZsb3dDaGFydFNwZWNbXTtcbiAgbmV4dD86IEZsb3dDaGFydFNwZWM7XG4gIGhhc0RlY2lkZXI/OiBib29sZWFuO1xuICBoYXNTZWxlY3Rvcj86IGJvb2xlYW47XG4gIGJyYW5jaElkcz86IHN0cmluZ1tdO1xuICBsb29wVGFyZ2V0Pzogc3RyaW5nO1xuICBpc1N0cmVhbWluZz86IGJvb2xlYW47XG4gIHN0cmVhbUlkPzogc3RyaW5nO1xuICBpc1BhcmFsbGVsQ2hpbGQ/OiBib29sZWFuO1xuICBwYXJhbGxlbEdyb3VwSWQ/OiBzdHJpbmc7XG4gIGlzU3ViZmxvd1Jvb3Q/OiBib29sZWFuO1xuICBzdWJmbG93SWQ/OiBzdHJpbmc7XG4gIHN1YmZsb3dOYW1lPzogc3RyaW5nO1xuICAvKiogVHJ1ZSB3aGVuIHRoaXMgbm9kZSBpcyBhIGJhY2stZWRnZSByZWZlcmVuY2UgY3JlYXRlZCBieSBsb29wVG8oKSDigJQgbm90IGFuIGV4ZWN1dGFibGUgc3RhZ2UuICovXG4gIGlzTG9vcFJlZmVyZW5jZT86IGJvb2xlYW47XG59XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQnVpbGQtVGltZSBFeHRyYWN0b3Jcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKiogTWV0YWRhdGEgcHJvdmlkZWQgdG8gdGhlIGJ1aWxkLXRpbWUgZXh0cmFjdG9yIGZvciBlYWNoIG5vZGUuICovXG5leHBvcnQgdHlwZSBCdWlsZFRpbWVOb2RlTWV0YWRhdGEgPSBGbG93Q2hhcnRTcGVjO1xuXG5leHBvcnQgdHlwZSBCdWlsZFRpbWVFeHRyYWN0b3I8VFJlc3VsdCA9IEZsb3dDaGFydFNwZWM+ID0gKG1ldGFkYXRhOiBCdWlsZFRpbWVOb2RlTWV0YWRhdGEpID0+IFRSZXN1bHQ7XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gVHJhdmVyc2FsIEV4dHJhY3RvciAocnVudGltZSkg4oCUIGNhbm9uaWNhbCBkZWZpbml0aW9uIGxpdmVzIGluIGVuZ2luZS90eXBlcy5cbi8vIFJlLWV4cG9ydGVkIGhlcmUgc28gY2FsbGVycyBkb24ndCBuZWVkIHR3byBpbXBvcnQgcGF0aHMuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgeyBUcmF2ZXJzYWxFeHRyYWN0b3IgfSBmcm9tICcuLi9lbmdpbmUvdHlwZXMuanMnO1xuXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEZsb3dDaGFydCDigJQgY29tcGlsZWQgb3V0cHV0IG9mIGJ1aWxkKClcbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgdHlwZSBGbG93Q2hhcnQ8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiA9IHtcbiAgcm9vdDogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT47XG4gIHN0YWdlTWFwOiBNYXA8c3RyaW5nLCBTdGFnZUZ1bmN0aW9uPFRPdXQsIFRTY29wZT4+O1xuICBleHRyYWN0b3I/OiBUcmF2ZXJzYWxFeHRyYWN0b3I7XG4gIHN1YmZsb3dzPzogUmVjb3JkPHN0cmluZywgeyByb290OiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPiB9PjtcbiAgYnVpbGRUaW1lU3RydWN0dXJlOiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmU7XG4gIGVuYWJsZU5hcnJhdGl2ZT86IGJvb2xlYW47XG4gIGxvZ2dlcj86IElMb2dnZXI7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHN0YWdlRGVzY3JpcHRpb25zOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogSW5wdXQgc2NoZW1hIChab2Qgb3IgSlNPTiBTY2hlbWEpIOKAlCBkZWNsYXJlZCB2aWEgc2V0SW5wdXRTY2hlbWEoKSBvciAuY29udHJhY3QoKS4gKi9cbiAgaW5wdXRTY2hlbWE/OiB1bmtub3duO1xuICAvKiogT3V0cHV0IHNjaGVtYSAoWm9kIG9yIEpTT04gU2NoZW1hKSDigJQgZGVjbGFyZWQgdmlhIHNldE91dHB1dFNjaGVtYSgpIG9yIC5jb250cmFjdCgpLiAqL1xuICBvdXRwdXRTY2hlbWE/OiB1bmtub3duO1xuICAvKiogT3V0cHV0IG1hcHBlciDigJQgZXh0cmFjdHMgcmVzcG9uc2UgZnJvbSBmaW5hbCBzY29wZS4gKi9cbiAgb3V0cHV0TWFwcGVyPzogKGZpbmFsU2NvcGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB1bmtub3duO1xuICAvKiogU2NvcGUgZmFjdG9yeSDigJQgYXV0by1lbWJlZGRlZCBieSBmbG93Q2hhcnQ8VD4oKS4gRXhlY3V0b3IgcmVhZHMgdGhpcyBpZiBubyBmYWN0b3J5IHBhcmFtLiAqL1xuICBzY29wZUZhY3Rvcnk/OiBTY29wZUZhY3Rvcnk8VFNjb3BlPjtcbn07XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU2ltcGxpZmllZCBQYXJhbGxlbCBTcGVjIChmb3IgYWRkTGlzdE9mRnVuY3Rpb24pXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgU2ltcGxpZmllZFBhcmFsbGVsU3BlYzxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+ID0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGZuPzogU3RhZ2VGdW5jdGlvbjxUT3V0LCBUU2NvcGU+O1xufTtcblxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBFeGVjT3B0aW9ucyAoZm9yIGV4ZWN1dGUoKSBjb252ZW5pZW5jZSDigJQgdXNlZCBieSBydW5uZXIgbGF5ZXIpXG4vLyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuZXhwb3J0IHR5cGUgRXhlY09wdGlvbnMgPSB7XG4gIGRlZmF1bHRzPzogdW5rbm93bjtcbiAgaW5pdGlhbD86IHVua25vd247XG4gIHJlYWRPbmx5PzogdW5rbm93bjtcbiAgdGhyb3R0bGluZ0Vycm9yQ2hlY2tlcj86IChlOiB1bmtub3duKSA9PiBib29sZWFuO1xuICBzY29wZVByb3RlY3Rpb25Nb2RlPzogU2NvcGVQcm90ZWN0aW9uTW9kZTtcbiAgZW5hYmxlTmFycmF0aXZlPzogYm9vbGVhbjtcbn07XG5cbi8vIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gU3ViZmxvd1JlZlxuLy8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgU3ViZmxvd1JlZiB7XG4gICRyZWY6IHN0cmluZztcbiAgbW91bnRJZDogc3RyaW5nO1xufVxuIl19
|
|
@@ -104,12 +104,17 @@ function applyOutputMapping(subflowOutput, parentScope, parentContext, options)
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
else if (Array.isArray(value)) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
parentContext.setGlobal(key, [...existing, ...value]);
|
|
107
|
+
if ((options === null || options === void 0 ? void 0 : options.arrayMerge) === 'replace') {
|
|
108
|
+
parentContext.setGlobal(key, value);
|
|
110
109
|
}
|
|
111
110
|
else {
|
|
112
|
-
parentContext.
|
|
111
|
+
const existing = parentContext.getGlobal(key);
|
|
112
|
+
if (Array.isArray(existing)) {
|
|
113
|
+
parentContext.setGlobal(key, [...existing, ...value]);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
parentContext.setGlobal(key, value);
|
|
117
|
+
}
|
|
113
118
|
}
|
|
114
119
|
}
|
|
115
120
|
else {
|
|
@@ -119,4 +124,4 @@ function applyOutputMapping(subflowOutput, parentScope, parentContext, options)
|
|
|
119
124
|
return mappedOutput;
|
|
120
125
|
}
|
|
121
126
|
exports.applyOutputMapping = applyOutputMapping;
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3ViZmxvd0lucHV0TWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvaGFuZGxlcnMvU3ViZmxvd0lucHV0TWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRzs7O0FBS0gsMERBQTBEO0FBQzFELFNBQWdCLHdCQUF3QixDQUN0QyxXQUF5QixFQUN6QixPQUEwRDtJQUUxRCxJQUFJLENBQUMsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVyxDQUFBLEVBQUUsQ0FBQztRQUMxQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDNUMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQWRELDREQWNDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQ25DLFdBQXlCLEVBQ3pCLE9BQTBEO0lBRTFELE9BQU8sd0JBQXdCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBNEIsQ0FBQztBQUNuRixDQUFDO0FBTEQsc0RBS0M7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQix3QkFBd0IsQ0FDdEMsVUFBcUMsRUFDckMsY0FBaUMsRUFDakMsV0FBb0M7SUFFcEMsT0FBTztRQUNMLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtRQUM3QixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7UUFDckIsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUFZO1FBQ3JDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtRQUM3QixzQkFBc0IsRUFBRSxVQUFVLENBQUMsc0JBQXNCO1FBQ3pELGNBQWMsRUFBRSxV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QUMsQ0FBQztnQkFDekQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDeEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQXhDRCxnREF3Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN1YmZsb3dJbnB1dE1hcHBlciDigJQgUHVyZSBmdW5jdGlvbnMgZm9yIHN1YmZsb3cgZGF0YSBjb250cmFjdHMuXG4gKlxuICogTWVudGFsIG1vZGVsOiBTdWJmbG93ID0gUHVyZSBGdW5jdGlvblxuICogLSBJc29sYXRlZCBzY29wZSAob3duIEdsb2JhbFN0b3JlKVxuICogLSBFeHBsaWNpdCBpbnB1dHMgdmlhIGlucHV0TWFwcGVyXG4gKiAtIEV4cGxpY2l0IG91dHB1dHMgdmlhIG91dHB1dE1hcHBlclxuICpcbiAqIHwgU2NlbmFyaW8gICAgICAgIHwgQmVoYXZpb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8IE5vIGlucHV0TWFwcGVyICB8IFN1YmZsb3cgc3RhcnRzIHdpdGggZW1wdHkgc2NvcGUgICAgICAgICAgIHxcbiAqIHwgTm8gb3V0cHV0TWFwcGVyIHwgU3ViZmxvdyBzY29wZSBjaGFuZ2VzIGRpc2NhcmRlZCAgICAgICAgICAgfFxuICogfCBCb3RoIHByZXNlbnQgICAgfCBGdWxsIGRhdGEgY29udHJhY3QgKGFyZ3MgaW4sIHJlc3VsdHMgb3V0KSB8XG4gKiB8IE5laXRoZXIgcHJlc2VudCB8IENvbXBsZXRlIGlzb2xhdGlvbiAoc2lkZSBlZmZlY3RzIG9ubHkpICAgIHxcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL21lbW9yeS9TdGFnZUNvbnRleHQuanMnO1xuaW1wb3J0IHR5cGUgeyBIYW5kbGVyRGVwcywgSUV4ZWN1dGlvblJ1bnRpbWUsIFN1YmZsb3dNb3VudE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbi8qKiBFeHRyYWN0IHZhbHVlcyBmcm9tIHBhcmVudCBzY29wZSB1c2luZyBpbnB1dE1hcHBlci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0UGFyZW50U2NvcGVWYWx1ZXM8VFBhcmVudFNjb3BlLCBUU3ViZmxvd0lucHV0PihcbiAgcGFyZW50U2NvcGU6IFRQYXJlbnRTY29wZSxcbiAgb3B0aW9ucz86IFN1YmZsb3dNb3VudE9wdGlvbnM8VFBhcmVudFNjb3BlLCBUU3ViZmxvd0lucHV0Pixcbik6IFRTdWJmbG93SW5wdXQgfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIGlmICghb3B0aW9ucz8uaW5wdXRNYXBwZXIpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSBvcHRpb25zLmlucHV0TWFwcGVyKHBhcmVudFNjb3BlKTtcbiAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSBpbml0aWFsIHNjb3BlIHZhbHVlcyBmb3IgYSBzdWJmbG93LlxuICogQWx3YXlzIGlzb2xhdGVkIOKAlCBvbmx5IGlucHV0TWFwcGVyIHZhbHVlcyBhcmUgaW5jbHVkZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbml0aWFsU2NvcGVWYWx1ZXM8VFBhcmVudFNjb3BlLCBUU3ViZmxvd0lucHV0PihcbiAgcGFyZW50U2NvcGU6IFRQYXJlbnRTY29wZSxcbiAgb3B0aW9ucz86IFN1YmZsb3dNb3VudE9wdGlvbnM8VFBhcmVudFNjb3BlLCBUU3ViZmxvd0lucHV0Pixcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIGV4dHJhY3RQYXJlbnRTY29wZVZhbHVlcyhwYXJlbnRTY29wZSwgb3B0aW9ucykgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IEhhbmRsZXJEZXBzIGZvciBzdWJmbG93IGV4ZWN1dGlvbi5cbiAqIEtleTogc2V0cyByZWFkT25seUNvbnRleHQgdG8gbWFwcGVkIGlucHV0IHNvIFN0YWdlUnVubmVyIHBhc3NlcyBpdCB0byBTY29wZUZhY3RvcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdWJmbG93SGFuZGxlckRlcHM8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PihcbiAgcGFyZW50RGVwczogSGFuZGxlckRlcHM8VE91dCwgVFNjb3BlPixcbiAgc3ViZmxvd1J1bnRpbWU6IElFeGVjdXRpb25SdW50aW1lLFxuICBtYXBwZWRJbnB1dDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4pOiBIYW5kbGVyRGVwczxUT3V0LCBUU2NvcGU+IHtcbiAgcmV0dXJuIHtcbiAgICBzdGFnZU1hcDogcGFyZW50RGVwcy5zdGFnZU1hcCxcbiAgICByb290OiBwYXJlbnREZXBzLnJvb3QsXG4gICAgc2NvcGVGYWN0b3J5OiBwYXJlbnREZXBzLnNjb3BlRmFjdG9yeSxcbiAgICBzdWJmbG93czogcGFyZW50RGVwcy5zdWJmbG93cyxcbiAgICB0aHJvdHRsaW5nRXJyb3JDaGVja2VyOiBwYXJlbnREZXBzLnRocm90dGxpbmdFcnJvckNoZWNrZXIsXG4gICAgc3RyZWFtSGFuZGxlcnM6IHBhcmVudERlcHMuc3RyZWFtSGFuZGxlcnMsXG4gICAgc2NvcGVQcm90ZWN0aW9uTW9kZTogcGFyZW50RGVwcy5zY29wZVByb3RlY3Rpb25Nb2RlLFxuICAgIGV4ZWN1dGlvblJ1bnRpbWU6IHN1YmZsb3dSdW50aW1lLFxuICAgIHJlYWRPbmx5Q29udGV4dDogbWFwcGVkSW5wdXQsXG4gICAgZXhlY3V0aW9uRW52OiBwYXJlbnREZXBzLmV4ZWN1dGlvbkVudiwgLy8gaW5oZXJpdGVkIOKAlCBsaWtlIHByb2Nlc3MuZW52XG4gICAgbmFycmF0aXZlR2VuZXJhdG9yOiBwYXJlbnREZXBzLm5hcnJhdGl2ZUdlbmVyYXRvcixcbiAgICBsb2dnZXI6IHBhcmVudERlcHMubG9nZ2VyLFxuICB9O1xufVxuXG4vKipcbiAqIFNlZWQgdGhlIHN1YmZsb3cncyBHbG9iYWxTdG9yZSB3aXRoIGluaXRpYWwgdmFsdWVzLlxuICogQ2FsbGVkIGJlZm9yZSBzdWJmbG93IGV4ZWN1dGlvbiB0byBtYWtlIGlucHV0TWFwcGVyIHZhbHVlcyBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWVkU3ViZmxvd0dsb2JhbFN0b3JlKFxuICBzdWJmbG93UnVudGltZTogSUV4ZWN1dGlvblJ1bnRpbWUsXG4gIGluaXRpYWxWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuKTogdm9pZCB7XG4gIGNvbnN0IHJvb3RDb250ZXh0ID0gc3ViZmxvd1J1bnRpbWUucm9vdFN0YWdlQ29udGV4dDtcblxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhpbml0aWFsVmFsdWVzKSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgZm9yIChjb25zdCBbbmVzdGVkS2V5LCBuZXN0ZWRWYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICAgIHJvb3RDb250ZXh0LnNldE9iamVjdChba2V5XSwgbmVzdGVkS2V5LCBuZXN0ZWRWYWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvb3RDb250ZXh0LnNldEdsb2JhbChrZXksIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICByb290Q29udGV4dC5jb21taXQoKTtcbn1cblxuLyoqXG4gKiBBcHBseSBvdXRwdXQgbWFwcGluZyBhZnRlciBzdWJmbG93IGNvbXBsZXRpb24uXG4gKiBXcml0ZXMgbWFwcGVkIHZhbHVlcyBiYWNrIHRvIHBhcmVudCBzY29wZSB1c2luZyBtZXJnZSBzZW1hbnRpY3M6XG4gKiBhcnJheXMgYXJlIGFwcGVuZGVkLCBvYmplY3RzIGFyZSBzaGFsbG93LW1lcmdlZCwgc2NhbGFycyBhcmUgcmVwbGFjZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseU91dHB1dE1hcHBpbmc8VFBhcmVudFNjb3BlLCBUU3ViZmxvd091dHB1dD4oXG4gIHN1YmZsb3dPdXRwdXQ6IFRTdWJmbG93T3V0cHV0LFxuICBwYXJlbnRTY29wZTogVFBhcmVudFNjb3BlLFxuICBwYXJlbnRDb250ZXh0OiBTdGFnZUNvbnRleHQsXG4gIG9wdGlvbnM/OiBTdWJmbG93TW91bnRPcHRpb25zPFRQYXJlbnRTY29wZSwgYW55LCBUU3ViZmxvd091dHB1dD4sXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gIGlmICghb3B0aW9ucz8ub3V0cHV0TWFwcGVyKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IG1hcHBlZE91dHB1dCA9IG9wdGlvbnMub3V0cHV0TWFwcGVyKHN1YmZsb3dPdXRwdXQsIHBhcmVudFNjb3BlKTtcblxuICBpZiAobWFwcGVkT3V0cHV0ID09PSBudWxsIHx8IG1hcHBlZE91dHB1dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG1hcHBlZE91dHB1dCkpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGZvciAoY29uc3QgW25lc3RlZEtleSwgbmVzdGVkVmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShuZXN0ZWRWYWx1ZSkpIHtcbiAgICAgICAgICBwYXJlbnRDb250ZXh0LmFwcGVuZFRvQXJyYXkoW2tleV0sIG5lc3RlZEtleSwgbmVzdGVkVmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBuZXN0ZWRWYWx1ZSA9PT0gJ29iamVjdCcgJiYgbmVzdGVkVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICBwYXJlbnRDb250ZXh0Lm1lcmdlT2JqZWN0KFtrZXldLCBuZXN0ZWRLZXksIG5lc3RlZFZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXJlbnRDb250ZXh0LnNldE9iamVjdChba2V5XSwgbmVzdGVkS2V5LCBuZXN0ZWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBjb25zdCBleGlzdGluZyA9IHBhcmVudENvbnRleHQuZ2V0R2xvYmFsKGtleSk7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShleGlzdGluZykpIHtcbiAgICAgICAgcGFyZW50Q29udGV4dC5zZXRHbG9iYWwoa2V5LCBbLi4uZXhpc3RpbmcsIC4uLnZhbHVlXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJlbnRDb250ZXh0LnNldEdsb2JhbChrZXksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGFyZW50Q29udGV4dC5zZXRHbG9iYWwoa2V5LCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1hcHBlZE91dHB1dDtcbn1cbiJdfQ==
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3ViZmxvd0lucHV0TWFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvaGFuZGxlcnMvU3ViZmxvd0lucHV0TWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRzs7O0FBS0gsMERBQTBEO0FBQzFELFNBQWdCLHdCQUF3QixDQUN0QyxXQUF5QixFQUN6QixPQUEwRDtJQUUxRCxJQUFJLENBQUMsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsV0FBVyxDQUFBLEVBQUUsQ0FBQztRQUMxQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDNUMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQWRELDREQWNDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQ25DLFdBQXlCLEVBQ3pCLE9BQTBEO0lBRTFELE9BQU8sd0JBQXdCLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBNEIsQ0FBQztBQUNuRixDQUFDO0FBTEQsc0RBS0M7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQix3QkFBd0IsQ0FDdEMsVUFBcUMsRUFDckMsY0FBaUMsRUFDakMsV0FBb0M7SUFFcEMsT0FBTztRQUNMLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtRQUM3QixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7UUFDckIsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUFZO1FBQ3JDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtRQUM3QixzQkFBc0IsRUFBRSxVQUFVLENBQUMsc0JBQXNCO1FBQ3pELGNBQWMsRUFBRSxV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QUMsQ0FBQztnQkFDekQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxVQUFVLE1BQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3RDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDNUIsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3hELENBQUM7cUJBQU0sQ0FBQztvQkFDTixhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQTVDRCxnREE0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN1YmZsb3dJbnB1dE1hcHBlciDigJQgUHVyZSBmdW5jdGlvbnMgZm9yIHN1YmZsb3cgZGF0YSBjb250cmFjdHMuXG4gKlxuICogTWVudGFsIG1vZGVsOiBTdWJmbG93ID0gUHVyZSBGdW5jdGlvblxuICogLSBJc29sYXRlZCBzY29wZSAob3duIEdsb2JhbFN0b3JlKVxuICogLSBFeHBsaWNpdCBpbnB1dHMgdmlhIGlucHV0TWFwcGVyXG4gKiAtIEV4cGxpY2l0IG91dHB1dHMgdmlhIG91dHB1dE1hcHBlclxuICpcbiAqIHwgU2NlbmFyaW8gICAgICAgIHwgQmVoYXZpb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8IE5vIGlucHV0TWFwcGVyICB8IFN1YmZsb3cgc3RhcnRzIHdpdGggZW1wdHkgc2NvcGUgICAgICAgICAgIHxcbiAqIHwgTm8gb3V0cHV0TWFwcGVyIHwgU3ViZmxvdyBzY29wZSBjaGFuZ2VzIGRpc2NhcmRlZCAgICAgICAgICAgfFxuICogfCBCb3RoIHByZXNlbnQgICAgfCBGdWxsIGRhdGEgY29udHJhY3QgKGFyZ3MgaW4sIHJlc3VsdHMgb3V0KSB8XG4gKiB8IE5laXRoZXIgcHJlc2VudCB8IENvbXBsZXRlIGlzb2xhdGlvbiAoc2lkZSBlZmZlY3RzIG9ubHkpICAgIHxcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL21lbW9yeS9TdGFnZUNvbnRleHQuanMnO1xuaW1wb3J0IHR5cGUgeyBIYW5kbGVyRGVwcywgSUV4ZWN1dGlvblJ1bnRpbWUsIFN1YmZsb3dNb3VudE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbi8qKiBFeHRyYWN0IHZhbHVlcyBmcm9tIHBhcmVudCBzY29wZSB1c2luZyBpbnB1dE1hcHBlci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0UGFyZW50U2NvcGVWYWx1ZXM8VFBhcmVudFNjb3BlLCBUU3ViZmxvd0lucHV0PihcbiAgcGFyZW50U2NvcGU6IFRQYXJlbnRTY29wZSxcbiAgb3B0aW9ucz86IFN1YmZsb3dNb3VudE9wdGlvbnM8VFBhcmVudFNjb3BlLCBUU3ViZmxvd0lucHV0Pixcbik6IFRTdWJmbG93SW5wdXQgfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIGlmICghb3B0aW9ucz8uaW5wdXRNYXBwZXIpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSBvcHRpb25zLmlucHV0TWFwcGVyKHBhcmVudFNjb3BlKTtcbiAgaWYgKHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSBpbml0aWFsIHNjb3BlIHZhbHVlcyBmb3IgYSBzdWJmbG93LlxuICogQWx3YXlzIGlzb2xhdGVkIOKAlCBvbmx5IGlucHV0TWFwcGVyIHZhbHVlcyBhcmUgaW5jbHVkZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbml0aWFsU2NvcGVWYWx1ZXM8VFBhcmVudFNjb3BlLCBUU3ViZmxvd0lucHV0PihcbiAgcGFyZW50U2NvcGU6IFRQYXJlbnRTY29wZSxcbiAgb3B0aW9ucz86IFN1YmZsb3dNb3VudE9wdGlvbnM8VFBhcmVudFNjb3BlLCBUU3ViZmxvd0lucHV0Pixcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIGV4dHJhY3RQYXJlbnRTY29wZVZhbHVlcyhwYXJlbnRTY29wZSwgb3B0aW9ucykgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IEhhbmRsZXJEZXBzIGZvciBzdWJmbG93IGV4ZWN1dGlvbi5cbiAqIEtleTogc2V0cyByZWFkT25seUNvbnRleHQgdG8gbWFwcGVkIGlucHV0IHNvIFN0YWdlUnVubmVyIHBhc3NlcyBpdCB0byBTY29wZUZhY3RvcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdWJmbG93SGFuZGxlckRlcHM8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PihcbiAgcGFyZW50RGVwczogSGFuZGxlckRlcHM8VE91dCwgVFNjb3BlPixcbiAgc3ViZmxvd1J1bnRpbWU6IElFeGVjdXRpb25SdW50aW1lLFxuICBtYXBwZWRJbnB1dDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4pOiBIYW5kbGVyRGVwczxUT3V0LCBUU2NvcGU+IHtcbiAgcmV0dXJuIHtcbiAgICBzdGFnZU1hcDogcGFyZW50RGVwcy5zdGFnZU1hcCxcbiAgICByb290OiBwYXJlbnREZXBzLnJvb3QsXG4gICAgc2NvcGVGYWN0b3J5OiBwYXJlbnREZXBzLnNjb3BlRmFjdG9yeSxcbiAgICBzdWJmbG93czogcGFyZW50RGVwcy5zdWJmbG93cyxcbiAgICB0aHJvdHRsaW5nRXJyb3JDaGVja2VyOiBwYXJlbnREZXBzLnRocm90dGxpbmdFcnJvckNoZWNrZXIsXG4gICAgc3RyZWFtSGFuZGxlcnM6IHBhcmVudERlcHMuc3RyZWFtSGFuZGxlcnMsXG4gICAgc2NvcGVQcm90ZWN0aW9uTW9kZTogcGFyZW50RGVwcy5zY29wZVByb3RlY3Rpb25Nb2RlLFxuICAgIGV4ZWN1dGlvblJ1bnRpbWU6IHN1YmZsb3dSdW50aW1lLFxuICAgIHJlYWRPbmx5Q29udGV4dDogbWFwcGVkSW5wdXQsXG4gICAgZXhlY3V0aW9uRW52OiBwYXJlbnREZXBzLmV4ZWN1dGlvbkVudiwgLy8gaW5oZXJpdGVkIOKAlCBsaWtlIHByb2Nlc3MuZW52XG4gICAgbmFycmF0aXZlR2VuZXJhdG9yOiBwYXJlbnREZXBzLm5hcnJhdGl2ZUdlbmVyYXRvcixcbiAgICBsb2dnZXI6IHBhcmVudERlcHMubG9nZ2VyLFxuICB9O1xufVxuXG4vKipcbiAqIFNlZWQgdGhlIHN1YmZsb3cncyBHbG9iYWxTdG9yZSB3aXRoIGluaXRpYWwgdmFsdWVzLlxuICogQ2FsbGVkIGJlZm9yZSBzdWJmbG93IGV4ZWN1dGlvbiB0byBtYWtlIGlucHV0TWFwcGVyIHZhbHVlcyBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWVkU3ViZmxvd0dsb2JhbFN0b3JlKFxuICBzdWJmbG93UnVudGltZTogSUV4ZWN1dGlvblJ1bnRpbWUsXG4gIGluaXRpYWxWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuKTogdm9pZCB7XG4gIGNvbnN0IHJvb3RDb250ZXh0ID0gc3ViZmxvd1J1bnRpbWUucm9vdFN0YWdlQ29udGV4dDtcblxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhpbml0aWFsVmFsdWVzKSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgZm9yIChjb25zdCBbbmVzdGVkS2V5LCBuZXN0ZWRWYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICAgIHJvb3RDb250ZXh0LnNldE9iamVjdChba2V5XSwgbmVzdGVkS2V5LCBuZXN0ZWRWYWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvb3RDb250ZXh0LnNldEdsb2JhbChrZXksIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICByb290Q29udGV4dC5jb21taXQoKTtcbn1cblxuLyoqXG4gKiBBcHBseSBvdXRwdXQgbWFwcGluZyBhZnRlciBzdWJmbG93IGNvbXBsZXRpb24uXG4gKiBXcml0ZXMgbWFwcGVkIHZhbHVlcyBiYWNrIHRvIHBhcmVudCBzY29wZSB1c2luZyBtZXJnZSBzZW1hbnRpY3M6XG4gKiBhcnJheXMgYXJlIGFwcGVuZGVkLCBvYmplY3RzIGFyZSBzaGFsbG93LW1lcmdlZCwgc2NhbGFycyBhcmUgcmVwbGFjZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseU91dHB1dE1hcHBpbmc8VFBhcmVudFNjb3BlLCBUU3ViZmxvd091dHB1dD4oXG4gIHN1YmZsb3dPdXRwdXQ6IFRTdWJmbG93T3V0cHV0LFxuICBwYXJlbnRTY29wZTogVFBhcmVudFNjb3BlLFxuICBwYXJlbnRDb250ZXh0OiBTdGFnZUNvbnRleHQsXG4gIG9wdGlvbnM/OiBTdWJmbG93TW91bnRPcHRpb25zPFRQYXJlbnRTY29wZSwgYW55LCBUU3ViZmxvd091dHB1dD4sXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gIGlmICghb3B0aW9ucz8ub3V0cHV0TWFwcGVyKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IG1hcHBlZE91dHB1dCA9IG9wdGlvbnMub3V0cHV0TWFwcGVyKHN1YmZsb3dPdXRwdXQsIHBhcmVudFNjb3BlKTtcblxuICBpZiAobWFwcGVkT3V0cHV0ID09PSBudWxsIHx8IG1hcHBlZE91dHB1dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG1hcHBlZE91dHB1dCkpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGZvciAoY29uc3QgW25lc3RlZEtleSwgbmVzdGVkVmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShuZXN0ZWRWYWx1ZSkpIHtcbiAgICAgICAgICBwYXJlbnRDb250ZXh0LmFwcGVuZFRvQXJyYXkoW2tleV0sIG5lc3RlZEtleSwgbmVzdGVkVmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBuZXN0ZWRWYWx1ZSA9PT0gJ29iamVjdCcgJiYgbmVzdGVkVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICBwYXJlbnRDb250ZXh0Lm1lcmdlT2JqZWN0KFtrZXldLCBuZXN0ZWRLZXksIG5lc3RlZFZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXJlbnRDb250ZXh0LnNldE9iamVjdChba2V5XSwgbmVzdGVkS2V5LCBuZXN0ZWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBpZiAob3B0aW9ucz8uYXJyYXlNZXJnZSA9PT0gJ3JlcGxhY2UnKSB7XG4gICAgICAgIHBhcmVudENvbnRleHQuc2V0R2xvYmFsKGtleSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBwYXJlbnRDb250ZXh0LmdldEdsb2JhbChrZXkpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShleGlzdGluZykpIHtcbiAgICAgICAgICBwYXJlbnRDb250ZXh0LnNldEdsb2JhbChrZXksIFsuLi5leGlzdGluZywgLi4udmFsdWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXJlbnRDb250ZXh0LnNldEdsb2JhbChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXJlbnRDb250ZXh0LnNldEdsb2JhbChrZXksIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWFwcGVkT3V0cHV0O1xufVxuIl19
|
|
@@ -379,6 +379,7 @@ class CombinedNarrativeRecorder {
|
|
|
379
379
|
stageId,
|
|
380
380
|
stepNumber: op.stepNumber,
|
|
381
381
|
subflowId,
|
|
382
|
+
key: op.key,
|
|
382
383
|
rawValue: op.rawValue,
|
|
383
384
|
});
|
|
384
385
|
}
|
|
@@ -502,4 +503,4 @@ class CombinedNarrativeRecorder {
|
|
|
502
503
|
}
|
|
503
504
|
}
|
|
504
505
|
exports.CombinedNarrativeRecorder = CombinedNarrativeRecorder;
|
|
505
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tYmluZWROYXJyYXRpdmVSZWNvcmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL25hcnJhdGl2ZS9Db21iaW5lZE5hcnJhdGl2ZVJlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHOzs7QUFFSCwrRUFBeUU7QUFtRHpFLDhFQUE4RTtBQUU5RSxNQUFhLHlCQUF5QjtJQXdCcEMsWUFBWSxPQUE0RDs7UUFyQmhFLFlBQU8sR0FBNkIsRUFBRSxDQUFDO1FBQy9DOzs7Ozs7O1dBT0c7UUFDSyxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7UUFDckQsc0RBQXNEO1FBQzlDLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFDbEQseURBQXlEO1FBQ2pELG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7UUFTbkQsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxFQUFFLG1DQUFJLG9CQUFvQixDQUFDO1FBQzlDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxrQkFBa0IsbUNBQUksSUFBSSxDQUFDO1FBQzlELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsYUFBYSxtQ0FBSSxJQUFJLENBQUM7UUFDcEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxjQUFjLG1DQUFJLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFdBQVcsbUNBQUksa0NBQWMsQ0FBQztRQUMxRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sYUFBUCxP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QyxXQUFXO1lBQ3BCLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksYUFBYSxHQUFHLENBQUMsV0FBVyxHQUFHO1lBQ3pELENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDO0lBQzFDLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxHQUFzQjtRQUM5QyxPQUFPLEdBQUcsQ0FBQyxXQUFXO1lBQ3BCLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxTQUFTLEtBQUssR0FBRyxDQUFDLFdBQVcsU0FBUztZQUN2RCxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsU0FBUyxZQUFZLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztJQUN4RCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsR0FBdUI7UUFDaEQsT0FBTyx3QkFBd0IsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDO0lBQ2xELENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxHQUF1QjtRQUNoRCxJQUFJLElBQUksR0FBRyx3QkFBd0IsR0FBRyxDQUFDLFNBQVMsS0FBSyxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUM7UUFDcEUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN6QixJQUFJLElBQUksdUJBQXVCLEdBQUcsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDO1FBQ3pELENBQUM7UUFDRCxPQUFPLFlBQVksSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBdGdCRCw4REFzZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb21iaW5lZE5hcnJhdGl2ZVJlY29yZGVyIOKAlCBJbmxpbmUgbmFycmF0aXZlIGJ1aWxkZXIgdGhhdCBtZXJnZXMgZmxvdyArIGRhdGEgZHVyaW5nIHRyYXZlcnNhbC5cbiAqXG4gKiBSZXBsYWNlcyB0aGUgcG9zdC1wcm9jZXNzaW5nIENvbWJpbmVkTmFycmF0aXZlQnVpbGRlciBieSBpbXBsZW1lbnRpbmcgQk9USFxuICogRmxvd1JlY29yZGVyIChjb250cm9sLWZsb3cgZXZlbnRzKSBhbmQgUmVjb3JkZXIgKHNjb3BlIGRhdGEgZXZlbnRzKS5cbiAqXG4gKiBFdmVudCBvcmRlcmluZyBndWFyYW50ZWVzIHRoaXMgd29ya3M6XG4gKiAgIDEuIFNjb3BlIGV2ZW50cyAob25SZWFkLCBvbldyaXRlKSBmaXJlIERVUklORyBzdGFnZSBleGVjdXRpb25cbiAqICAgMi4gRmxvdyBldmVudHMgKG9uU3RhZ2VFeGVjdXRlZCwgb25EZWNpc2lvbikgZmlyZSBBRlRFUiBzdGFnZSBleGVjdXRpb25cbiAqICAgMy4gQm90aCBjYXJyeSB0aGUgc2FtZSBgc3RhZ2VOYW1lYCDigJQgbm8gbWF0Y2hpbmcgYW1iaWd1aXR5XG4gKlxuICogU28gd2UgYnVmZmVyIHNjb3BlIG9wcyBwZXItc3RhZ2UsIHRoZW4gd2hlbiB0aGUgZmxvdyBldmVudCBhcnJpdmVzLFxuICogZW1pdCB0aGUgc3RhZ2UgZW50cnkgKyBmbHVzaCB0aGUgYnVmZmVyZWQgb3BzIGluIG9uZSBwYXNzLlxuICovXG5cbmltcG9ydCB7IHN1bW1hcml6ZVZhbHVlIH0gZnJvbSAnLi4vLi4vc2NvcGUvcmVjb3JkZXJzL3N1bW1hcml6ZVZhbHVlLmpzJztcbmltcG9ydCB0eXBlIHsgUmVhZEV2ZW50LCBSZWNvcmRlciwgV3JpdGVFdmVudCB9IGZyb20gJy4uLy4uL3Njb3BlL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQnJlYWtSZW5kZXJDb250ZXh0LFxuICBDb21iaW5lZE5hcnJhdGl2ZUVudHJ5LFxuICBEZWNpc2lvblJlbmRlckNvbnRleHQsXG4gIEVycm9yUmVuZGVyQ29udGV4dCxcbiAgRm9ya1JlbmRlckNvbnRleHQsXG4gIExvb3BSZW5kZXJDb250ZXh0LFxuICBOYXJyYXRpdmVSZW5kZXJlcixcbiAgT3BSZW5kZXJDb250ZXh0LFxuICBTZWxlY3RlZFJlbmRlckNvbnRleHQsXG4gIFN0YWdlUmVuZGVyQ29udGV4dCxcbiAgU3ViZmxvd1JlbmRlckNvbnRleHQsXG59IGZyb20gJy4vbmFycmF0aXZlVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBGbG93QnJlYWtFdmVudCxcbiAgRmxvd0RlY2lzaW9uRXZlbnQsXG4gIEZsb3dFcnJvckV2ZW50LFxuICBGbG93Rm9ya0V2ZW50LFxuICBGbG93TG9vcEV2ZW50LFxuICBGbG93UGF1c2VFdmVudCxcbiAgRmxvd1JlY29yZGVyLFxuICBGbG93UmVzdW1lRXZlbnQsXG4gIEZsb3dTZWxlY3RlZEV2ZW50LFxuICBGbG93U3RhZ2VFdmVudCxcbiAgRmxvd1N1YmZsb3dFdmVudCxcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgCBUeXBlcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuaW50ZXJmYWNlIEJ1ZmZlcmVkT3Age1xuICB0eXBlOiAncmVhZCcgfCAnd3JpdGUnO1xuICBrZXk6IHN0cmluZztcbiAgcmF3VmFsdWU6IHVua25vd247XG4gIG9wZXJhdGlvbj86ICdzZXQnIHwgJ3VwZGF0ZScgfCAnZGVsZXRlJztcbiAgc3RlcE51bWJlcjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbWJpbmVkTmFycmF0aXZlUmVjb3JkZXJPcHRpb25zIHtcbiAgaW5jbHVkZVN0ZXBOdW1iZXJzPzogYm9vbGVhbjtcbiAgaW5jbHVkZVZhbHVlcz86IGJvb2xlYW47XG4gIG1heFZhbHVlTGVuZ3RoPzogbnVtYmVyO1xuICAvKiogQ3VzdG9tIHZhbHVlIGZvcm1hdHRlci4gQ2FsbGVkIGF0IHJlbmRlciB0aW1lIChmbHVzaE9wcyksIG5vdCBjYXB0dXJlIHRpbWUuXG4gICAqICBSZWNlaXZlcyB0aGUgcmF3IHZhbHVlIGFuZCBtYXhWYWx1ZUxlbmd0aC4gRGVmYXVsdHMgdG8gc3VtbWFyaXplVmFsdWUoKS4gKi9cbiAgZm9ybWF0VmFsdWU/OiAodmFsdWU6IHVua25vd24sIG1heExlbjogbnVtYmVyKSA9PiBzdHJpbmc7XG4gIC8qKiBQbHVnZ2FibGUgcmVuZGVyZXIgZm9yIGN1c3RvbWl6aW5nIG5hcnJhdGl2ZSBvdXRwdXQuIFVuaW1wbGVtZW50ZWQgbWV0aG9kc1xuICAgKiAgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IEVuZ2xpc2ggcmVuZGVyZXIuIFNlZSBOYXJyYXRpdmVSZW5kZXJlciBkb2NzLiAqL1xuICByZW5kZXJlcj86IE5hcnJhdGl2ZVJlbmRlcmVyO1xufVxuXG4vLyDilIDilIAgUmVjb3JkZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCBjbGFzcyBDb21iaW5lZE5hcnJhdGl2ZVJlY29yZGVyIGltcGxlbWVudHMgRmxvd1JlY29yZGVyLCBSZWNvcmRlciB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBlbnRyaWVzOiBDb21iaW5lZE5hcnJhdGl2ZUVudHJ5W10gPSBbXTtcbiAgLyoqXG4gICAqIFBlbmRpbmcgc2NvcGUgb3BzIGtleWVkIGJ5IHN0YWdlTmFtZS4gRmx1c2hlZCBpbiBvblN0YWdlRXhlY3V0ZWQvb25EZWNpc2lvbi5cbiAgICpcbiAgICogTmFtZSBjb2xsaXNpb25zICh0d28gc3RhZ2VzIHdpdGggdGhlIHNhbWUgbmFtZSwgZGlmZmVyZW50IElEcykgYXJlIHByZXZlbnRlZCBieVxuICAgKiB0aGUgZXZlbnQgb3JkZXJpbmcgY29udHJhY3Q6IHNjb3BlIGV2ZW50cyAob25SZWFkL29uV3JpdGUpIGZvciBzdGFnZSBOIGFyZSBhbHdheXNcbiAgICogZmx1c2hlZCBieSBvblN0YWdlRXhlY3V0ZWQgZm9yIHN0YWdlIE4gYmVmb3JlIHN0YWdlIE4rMSdzIHNjb3BlIGV2ZW50cyBiZWdpbi5cbiAgICogU28gdGhlIGtleSBpcyBhbHdheXMgdW5pcXVlbHkgYm91bmQgdG8gdGhlIGN1cnJlbnRseS1leGVjdXRpbmcgc3RhZ2UuXG4gICAqL1xuICBwcml2YXRlIHBlbmRpbmdPcHMgPSBuZXcgTWFwPHN0cmluZywgQnVmZmVyZWRPcFtdPigpO1xuICAvKiogUGVyLXN1YmZsb3cgc3RhZ2UgY291bnRlcnMuIEtleSAnJyA9IHJvb3QgZmxvdy4gKi9cbiAgcHJpdmF0ZSBzdGFnZUNvdW50ZXJzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgLyoqIFBlci1zdWJmbG93IGZpcnN0LXN0YWdlIGZsYWdzLiBLZXkgJycgPSByb290IGZsb3cuICovXG4gIHByaXZhdGUgZmlyc3RTdGFnZUZsYWdzID0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSBpbmNsdWRlU3RlcE51bWJlcnM6IGJvb2xlYW47XG4gIHByaXZhdGUgaW5jbHVkZVZhbHVlczogYm9vbGVhbjtcbiAgcHJpdmF0ZSBtYXhWYWx1ZUxlbmd0aDogbnVtYmVyO1xuICBwcml2YXRlIGZvcm1hdFZhbHVlOiAodmFsdWU6IHVua25vd24sIG1heExlbjogbnVtYmVyKSA9PiBzdHJpbmc7XG4gIHByaXZhdGUgcmVuZGVyZXI/OiBOYXJyYXRpdmVSZW5kZXJlcjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzogQ29tYmluZWROYXJyYXRpdmVSZWNvcmRlck9wdGlvbnMgJiB7IGlkPzogc3RyaW5nIH0pIHtcbiAgICB0aGlzLmlkID0gb3B0aW9ucz8uaWQgPz8gJ2NvbWJpbmVkLW5hcnJhdGl2ZSc7XG4gICAgdGhpcy5pbmNsdWRlU3RlcE51bWJlcnMgPSBvcHRpb25zPy5pbmNsdWRlU3RlcE51bWJlcnMgPz8gdHJ1ZTtcbiAgICB0aGlzLmluY2x1ZGVWYWx1ZXMgPSBvcHRpb25zPy5pbmNsdWRlVmFsdWVzID8/IHRydWU7XG4gICAgdGhpcy5tYXhWYWx1ZUxlbmd0aCA9IG9wdGlvbnM/Lm1heFZhbHVlTGVuZ3RoID8/IDgwO1xuICAgIHRoaXMuZm9ybWF0VmFsdWUgPSBvcHRpb25zPy5mb3JtYXRWYWx1ZSA/PyBzdW1tYXJpemVWYWx1ZTtcbiAgICB0aGlzLnJlbmRlcmVyID0gb3B0aW9ucz8ucmVuZGVyZXI7XG4gIH1cblxuICAvLyDilIDilIAgU2NvcGUgY2hhbm5lbCAoZmlyZXMgZmlyc3QsIGR1cmluZyBzdGFnZSBleGVjdXRpb24pIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIG9uUmVhZChldmVudDogUmVhZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCFldmVudC5rZXkpIHJldHVybjtcbiAgICB0aGlzLmJ1ZmZlck9wKGV2ZW50LnN0YWdlTmFtZSwge1xuICAgICAgdHlwZTogJ3JlYWQnLFxuICAgICAga2V5OiBldmVudC5rZXksXG4gICAgICByYXdWYWx1ZTogZXZlbnQudmFsdWUsXG4gICAgfSk7XG4gIH1cblxuICBvbldyaXRlKGV2ZW50OiBXcml0ZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5idWZmZXJPcChldmVudC5zdGFnZU5hbWUsIHtcbiAgICAgIHR5cGU6ICd3cml0ZScsXG4gICAgICBrZXk6IGV2ZW50LmtleSxcbiAgICAgIHJhd1ZhbHVlOiBldmVudC52YWx1ZSxcbiAgICAgIG9wZXJhdGlvbjogZXZlbnQub3BlcmF0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgLy8g4pSA4pSAIEZsb3cgY2hhbm5lbCAoZmlyZXMgYWZ0ZXIgc3RhZ2UgZXhlY3V0aW9uKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICBvblN0YWdlRXhlY3V0ZWQoZXZlbnQ6IEZsb3dTdGFnZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhZ2VJZCA9IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN0YWdlSWQ7XG4gICAgY29uc3Qgc2ZLZXkgPSBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQgPz8gJyc7XG4gICAgY29uc3Qgc3RhZ2VOdW0gPSB0aGlzLmluY3JlbWVudFN0YWdlQ291bnRlcihzZktleSk7XG4gICAgY29uc3QgaXNGaXJzdCA9IHRoaXMuY29uc3VtZUZpcnN0U3RhZ2VGbGFnKHNmS2V5KTtcblxuICAgIGNvbnN0IGN0eDogU3RhZ2VSZW5kZXJDb250ZXh0ID0ge1xuICAgICAgc3RhZ2VOYW1lOiBldmVudC5zdGFnZU5hbWUsXG4gICAgICBzdGFnZU51bWJlcjogc3RhZ2VOdW0sXG4gICAgICBpc0ZpcnN0LFxuICAgICAgZGVzY3JpcHRpb246IGV2ZW50LmRlc2NyaXB0aW9uLFxuICAgIH07XG4gICAgY29uc3QgdGV4dCA9IHRoaXMucmVuZGVyZXI/LnJlbmRlclN0YWdlPy4oY3R4KSA/PyB0aGlzLmRlZmF1bHRSZW5kZXJTdGFnZShjdHgpO1xuXG4gICAgY29uc3Qgc2ZJZCA9IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN1YmZsb3dJZDtcbiAgICB0aGlzLmVudHJpZXMucHVzaCh7XG4gICAgICB0eXBlOiAnc3RhZ2UnLFxuICAgICAgdGV4dCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgc3RhZ2VOYW1lOiBldmVudC5zdGFnZU5hbWUsXG4gICAgICBzdGFnZUlkLFxuICAgICAgc3ViZmxvd0lkOiBzZklkLFxuICAgIH0pO1xuICAgIHRoaXMuZmx1c2hPcHMoZXZlbnQuc3RhZ2VOYW1lLCBzZklkLCBzdGFnZUlkKTtcbiAgfVxuXG4gIG9uRGVjaXNpb24oZXZlbnQ6IEZsb3dEZWNpc2lvbkV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZGVjaWRlclN0YWdlSWRFYXJseSA9IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN0YWdlSWQ7XG5cbiAgICAvLyBFbWl0IHRoZSBkZWNpZGVyIHN0YWdlIGVudHJ5IChkZWNpZGVycyBkb24ndCBmaXJlIG9uU3RhZ2VFeGVjdXRlZClcbiAgICBjb25zdCBzZktleSA9IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN1YmZsb3dJZCA/PyAnJztcbiAgICBjb25zdCBzdGFnZU51bSA9IHRoaXMuaW5jcmVtZW50U3RhZ2VDb3VudGVyKHNmS2V5KTtcbiAgICBjb25zdCBpc0ZpcnN0ID0gdGhpcy5jb25zdW1lRmlyc3RTdGFnZUZsYWcoc2ZLZXkpO1xuXG4gICAgY29uc3Qgc3RhZ2VDdHg6IFN0YWdlUmVuZGVyQ29udGV4dCA9IHtcbiAgICAgIHN0YWdlTmFtZTogZXZlbnQuZGVjaWRlcixcbiAgICAgIHN0YWdlTnVtYmVyOiBzdGFnZU51bSxcbiAgICAgIGlzRmlyc3QsXG4gICAgICBkZXNjcmlwdGlvbjogZXZlbnQuZGVzY3JpcHRpb24sXG4gICAgfTtcbiAgICBjb25zdCBzdGFnZVRleHQgPSB0aGlzLnJlbmRlcmVyPy5yZW5kZXJTdGFnZT8uKHN0YWdlQ3R4KSA/PyB0aGlzLmRlZmF1bHRSZW5kZXJTdGFnZShzdGFnZUN0eCk7XG5cbiAgICB0aGlzLmVudHJpZXMucHVzaCh7XG4gICAgICB0eXBlOiAnc3RhZ2UnLFxuICAgICAgdGV4dDogc3RhZ2VUZXh0LFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBzdGFnZU5hbWU6IGV2ZW50LmRlY2lkZXIsXG4gICAgICBzdGFnZUlkOiBkZWNpZGVyU3RhZ2VJZEVhcmx5LFxuICAgICAgc3ViZmxvd0lkOiBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQsXG4gICAgfSk7XG4gICAgdGhpcy5mbHVzaE9wcyhldmVudC5kZWNpZGVyLCBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQsIGRlY2lkZXJTdGFnZUlkRWFybHkpO1xuXG4gICAgLy8gRW1pdCB0aGUgY29uZGl0aW9uIGVudHJ5IGFzIGEgbmVzdGVkIHN1Yi1pdGVtIChkZXB0aCAxKSBvZiB0aGUgc3RhZ2UgYWJvdmUuXG4gICAgLy8gRGVjaXNpb24gb3V0Y29tZSBpcyBhIGRldGFpbCBvZiB0aGUgZGVjaWRlciBzdGFnZSwgbm90IGEgc2VwYXJhdGUgdG9wLWxldmVsIGVudHJ5LlxuICAgIGNvbnN0IGRlY2lzaW9uQ3R4OiBEZWNpc2lvblJlbmRlckNvbnRleHQgPSB7XG4gICAgICBkZWNpZGVyOiBldmVudC5kZWNpZGVyLFxuICAgICAgY2hvc2VuOiBldmVudC5jaG9zZW4sXG4gICAgICBkZXNjcmlwdGlvbjogZXZlbnQuZGVzY3JpcHRpb24sXG4gICAgICByYXRpb25hbGU6IGV2ZW50LnJhdGlvbmFsZSxcbiAgICAgIGV2aWRlbmNlOiBldmVudC5ldmlkZW5jZSxcbiAgICB9O1xuICAgIGNvbnN0IGNvbmRpdGlvblRleHQgPSB0aGlzLnJlbmRlcmVyPy5yZW5kZXJEZWNpc2lvbj8uKGRlY2lzaW9uQ3R4KSA/PyB0aGlzLmRlZmF1bHRSZW5kZXJEZWNpc2lvbihkZWNpc2lvbkN0eCk7XG4gICAgdGhpcy5lbnRyaWVzLnB1c2goe1xuICAgICAgdHlwZTogJ2NvbmRpdGlvbicsXG4gICAgICB0ZXh0OiBjb25kaXRpb25UZXh0LFxuICAgICAgZGVwdGg6IDEsXG4gICAgICBzdGFnZU5hbWU6IGV2ZW50LmRlY2lkZXIsXG4gICAgICBzdGFnZUlkOiBkZWNpZGVyU3RhZ2VJZEVhcmx5LFxuICAgICAgc3ViZmxvd0lkOiBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQsXG4gICAgfSk7XG4gIH1cblxuICBvbk5leHQoKTogdm9pZCB7XG4gICAgLy8gTm8tb3AuIG9uU3RhZ2VFeGVjdXRlZCBhbHJlYWR5IGhhcyB0aGUgZGVzY3JpcHRpb24gZm9yIHRoZSBuZXh0IHN0YWdlLlxuICAgIC8vIEZvciBkZWNpZGVycyAobm8gb25TdGFnZUV4ZWN1dGVkKSwgb25EZWNpc2lvbiBoYW5kbGVzIHRoZSBhbm5vdW5jZW1lbnQuXG4gIH1cblxuICBvbkZvcmsoZXZlbnQ6IEZsb3dGb3JrRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjdHg6IEZvcmtSZW5kZXJDb250ZXh0ID0geyBjaGlsZHJlbjogZXZlbnQuY2hpbGRyZW4gfTtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy5yZW5kZXJlcj8ucmVuZGVyRm9yaz8uKGN0eCkgPz8gdGhpcy5kZWZhdWx0UmVuZGVyRm9yayhjdHgpO1xuICAgIHRoaXMuZW50cmllcy5wdXNoKHtcbiAgICAgIHR5cGU6ICdmb3JrJyxcbiAgICAgIHRleHQsXG4gICAgICBkZXB0aDogMCxcbiAgICAgIHN0YWdlSWQ6IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN0YWdlSWQsXG4gICAgICBzdWJmbG93SWQ6IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN1YmZsb3dJZCxcbiAgICB9KTtcbiAgfVxuXG4gIG9uU2VsZWN0ZWQoZXZlbnQ6IEZsb3dTZWxlY3RlZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY3R4OiBTZWxlY3RlZFJlbmRlckNvbnRleHQgPSB7XG4gICAgICBzZWxlY3RlZDogZXZlbnQuc2VsZWN0ZWQsXG4gICAgICB0b3RhbDogZXZlbnQudG90YWwsXG4gICAgICBldmlkZW5jZTogZXZlbnQuZXZpZGVuY2UsXG4gICAgfTtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy5yZW5kZXJlcj8ucmVuZGVyU2VsZWN0ZWQ/LihjdHgpID8/IHRoaXMuZGVmYXVsdFJlbmRlclNlbGVjdGVkKGN0eCk7XG4gICAgdGhpcy5lbnRyaWVzLnB1c2goe1xuICAgICAgdHlwZTogJ3NlbGVjdG9yJyxcbiAgICAgIHRleHQsXG4gICAgICBkZXB0aDogMCxcbiAgICAgIHN0YWdlSWQ6IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN0YWdlSWQsXG4gICAgICBzdWJmbG93SWQ6IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN1YmZsb3dJZCxcbiAgICB9KTtcbiAgfVxuXG4gIG9uU3ViZmxvd0VudHJ5KGV2ZW50OiBGbG93U3ViZmxvd0V2ZW50KTogdm9pZCB7XG4gICAgLy8gUmVzZXQgc3RhZ2UgY291bnRlciBmb3IgdGhpcyBzdWJmbG93IHNvIHN0YWdlcyBzdGFydCBhdCBcIlN0YWdlIDFcIiBvbiByZS1lbnRyeVxuICAgIGNvbnN0IHNmS2V5ID0gZXZlbnQuc3ViZmxvd0lkID8/ICcnO1xuICAgIHRoaXMuc3RhZ2VDb3VudGVycy5kZWxldGUoc2ZLZXkpO1xuICAgIHRoaXMuZmlyc3RTdGFnZUZsYWdzLmRlbGV0ZShzZktleSk7XG5cbiAgICBjb25zdCBjdHg6IFN1YmZsb3dSZW5kZXJDb250ZXh0ID0ge1xuICAgICAgbmFtZTogZXZlbnQubmFtZSxcbiAgICAgIGRpcmVjdGlvbjogJ2VudHJ5JyxcbiAgICAgIGRlc2NyaXB0aW9uOiBldmVudC5kZXNjcmlwdGlvbixcbiAgICB9O1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlbmRlcmVyPy5yZW5kZXJTdWJmbG93Py4oY3R4KSA/PyB0aGlzLmRlZmF1bHRSZW5kZXJTdWJmbG93KGN0eCk7XG4gICAgdGhpcy5lbnRyaWVzLnB1c2goe1xuICAgICAgdHlwZTogJ3N1YmZsb3cnLFxuICAgICAgdGV4dCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgc3RhZ2VOYW1lOiBldmVudC5uYW1lLFxuICAgICAgc3RhZ2VJZDogZXZlbnQudHJhdmVyc2FsQ29udGV4dD8uc3RhZ2VJZCxcbiAgICAgIHN1YmZsb3dJZDogZXZlbnQudHJhdmVyc2FsQ29udGV4dD8uc3ViZmxvd0lkLFxuICAgIH0pO1xuICB9XG5cbiAgb25TdWJmbG93RXhpdChldmVudDogRmxvd1N1YmZsb3dFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGN0eDogU3ViZmxvd1JlbmRlckNvbnRleHQgPSB7XG4gICAgICBuYW1lOiBldmVudC5uYW1lLFxuICAgICAgZGlyZWN0aW9uOiAnZXhpdCcsXG4gICAgfTtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy5yZW5kZXJlcj8ucmVuZGVyU3ViZmxvdz8uKGN0eCkgPz8gdGhpcy5kZWZhdWx0UmVuZGVyU3ViZmxvdyhjdHgpO1xuICAgIHRoaXMuZW50cmllcy5wdXNoKHtcbiAgICAgIHR5cGU6ICdzdWJmbG93JyxcbiAgICAgIHRleHQsXG4gICAgICBkZXB0aDogMCxcbiAgICAgIHN0YWdlTmFtZTogZXZlbnQubmFtZSxcbiAgICAgIHN0YWdlSWQ6IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN0YWdlSWQsXG4gICAgICBzdWJmbG93SWQ6IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN1YmZsb3dJZCxcbiAgICB9KTtcbiAgfVxuXG4gIG9uTG9vcChldmVudDogRmxvd0xvb3BFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGN0eDogTG9vcFJlbmRlckNvbnRleHQgPSB7XG4gICAgICB0YXJnZXQ6IGV2ZW50LnRhcmdldCxcbiAgICAgIGl0ZXJhdGlvbjogZXZlbnQuaXRlcmF0aW9uLFxuICAgICAgZGVzY3JpcHRpb246IGV2ZW50LmRlc2NyaXB0aW9uLFxuICAgIH07XG4gICAgY29uc3QgdGV4dCA9IHRoaXMucmVuZGVyZXI/LnJlbmRlckxvb3A/LihjdHgpID8/IHRoaXMuZGVmYXVsdFJlbmRlckxvb3AoY3R4KTtcbiAgICB0aGlzLmVudHJpZXMucHVzaCh7XG4gICAgICB0eXBlOiAnbG9vcCcsXG4gICAgICB0ZXh0LFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBzdGFnZUlkOiBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdGFnZUlkLFxuICAgICAgc3ViZmxvd0lkOiBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQsXG4gICAgfSk7XG4gIH1cblxuICBvbkJyZWFrKGV2ZW50OiBGbG93QnJlYWtFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGN0eDogQnJlYWtSZW5kZXJDb250ZXh0ID0geyBzdGFnZU5hbWU6IGV2ZW50LnN0YWdlTmFtZSB9O1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlbmRlcmVyPy5yZW5kZXJCcmVhaz8uKGN0eCkgPz8gdGhpcy5kZWZhdWx0UmVuZGVyQnJlYWsoY3R4KTtcbiAgICB0aGlzLmVudHJpZXMucHVzaCh7XG4gICAgICB0eXBlOiAnYnJlYWsnLFxuICAgICAgdGV4dCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgc3RhZ2VOYW1lOiBldmVudC5zdGFnZU5hbWUsXG4gICAgICBzdGFnZUlkOiBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdGFnZUlkLFxuICAgICAgc3ViZmxvd0lkOiBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQsXG4gICAgfSk7XG4gIH1cblxuICBvblBhdXNlKGV2ZW50OiBGbG93UGF1c2VFdmVudCB8IHsgc3RhZ2VOYW1lPzogc3RyaW5nOyBzdGFnZUlkPzogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAvLyBPbmx5IGhhbmRsZSBGbG93UGF1c2VFdmVudCAoZnJvbSBGbG93UmVjb3JkZXIgY2hhbm5lbCk7IGlnbm9yZSBzY29wZSBQYXVzZUV2ZW50LlxuICAgIC8vIEZsb3dQYXVzZUV2ZW50IGhhcyAnc3ViZmxvd1BhdGgnLCBzY29wZSBQYXVzZUV2ZW50IGhhcyAncGlwZWxpbmVJZCcuXG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChldmVudCwgJ3BpcGVsaW5lSWQnKSkgcmV0dXJuO1xuICAgIGNvbnN0IGZsb3dFdmVudCA9IGV2ZW50IGFzIEZsb3dQYXVzZUV2ZW50O1xuICAgIGlmICghZmxvd0V2ZW50LnN0YWdlTmFtZSB8fCAhZmxvd0V2ZW50LnN0YWdlSWQpIHJldHVybjtcbiAgICBjb25zdCB0ZXh0ID0gYEV4ZWN1dGlvbiBwYXVzZWQgYXQgJHtmbG93RXZlbnQuc3RhZ2VOYW1lfS5gO1xuICAgIHRoaXMuZW50cmllcy5wdXNoKHtcbiAgICAgIHR5cGU6ICdwYXVzZScsXG4gICAgICB0ZXh0LFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBzdGFnZU5hbWU6IGZsb3dFdmVudC5zdGFnZU5hbWUsXG4gICAgICBzdGFnZUlkOiBmbG93RXZlbnQudHJhdmVyc2FsQ29udGV4dD8uc3RhZ2VJZCA/PyBmbG93RXZlbnQuc3RhZ2VJZCxcbiAgICAgIHN1YmZsb3dJZDogZmxvd0V2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN1YmZsb3dJZCxcbiAgICB9KTtcbiAgfVxuXG4gIG9uUmVzdW1lKGV2ZW50OiBGbG93UmVzdW1lRXZlbnQgfCB7IHN0YWdlTmFtZT86IHN0cmluZzsgc3RhZ2VJZD86IHN0cmluZyB9KTogdm9pZCB7XG4gICAgLy8gT25seSBoYW5kbGUgRmxvd1Jlc3VtZUV2ZW50IChmcm9tIEZsb3dSZWNvcmRlciBjaGFubmVsKTsgaWdub3JlIHNjb3BlIFJlc3VtZUV2ZW50LlxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXZlbnQsICdwaXBlbGluZUlkJykpIHJldHVybjtcbiAgICBjb25zdCBmbG93RXZlbnQgPSBldmVudCBhcyBGbG93UmVzdW1lRXZlbnQ7XG4gICAgaWYgKCFmbG93RXZlbnQuc3RhZ2VOYW1lIHx8ICFmbG93RXZlbnQuc3RhZ2VJZCkgcmV0dXJuO1xuICAgIGNvbnN0IHN1ZmZpeCA9IGZsb3dFdmVudC5oYXNJbnB1dCA/ICcgd2l0aCBpbnB1dC4nIDogJy4nO1xuICAgIGNvbnN0IHRleHQgPSBgRXhlY3V0aW9uIHJlc3VtZWQgYXQgJHtmbG93RXZlbnQuc3RhZ2VOYW1lfSR7c3VmZml4fWA7XG4gICAgdGhpcy5lbnRyaWVzLnB1c2goe1xuICAgICAgdHlwZTogJ3Jlc3VtZScsXG4gICAgICB0ZXh0LFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBzdGFnZU5hbWU6IGZsb3dFdmVudC5zdGFnZU5hbWUsXG4gICAgICBzdGFnZUlkOiBmbG93RXZlbnQudHJhdmVyc2FsQ29udGV4dD8uc3RhZ2VJZCA/PyBmbG93RXZlbnQuc3RhZ2VJZCxcbiAgICAgIHN1YmZsb3dJZDogZmxvd0V2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN1YmZsb3dJZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGVycm9ycyBmcm9tIGJvdGggY2hhbm5lbHM6XG4gICAqIC0gRmxvd1JlY29yZGVyLm9uRXJyb3IgKEZsb3dFcnJvckV2ZW50IHdpdGggbWVzc2FnZSArIHN0cnVjdHVyZWRFcnJvcilcbiAgICogLSBSZWNvcmRlci5vbkVycm9yIChFcnJvckV2ZW50IGZyb20gc2NvcGUgc3lzdGVtIOKAlCBpZ25vcmVkIGZvciBuYXJyYXRpdmUpXG4gICAqL1xuICBvbkVycm9yKGV2ZW50OiBGbG93RXJyb3JFdmVudCB8IHsgc3RhZ2VOYW1lPzogc3RyaW5nOyBtZXNzYWdlPzogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAvLyBPbmx5IGhhbmRsZSBmbG93IGVycm9ycyAod2hpY2ggaGF2ZSBgbWVzc2FnZWAgYW5kIGBzdHJ1Y3R1cmVkRXJyb3JgKVxuICAgIGlmICh0eXBlb2YgKGV2ZW50IGFzIEZsb3dFcnJvckV2ZW50KS5tZXNzYWdlICE9PSAnc3RyaW5nJykgcmV0dXJuO1xuICAgIGNvbnN0IGZsb3dFdmVudCA9IGV2ZW50IGFzIEZsb3dFcnJvckV2ZW50O1xuXG4gICAgbGV0IHZhbGlkYXRpb25Jc3N1ZXM6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBpZiAoZmxvd0V2ZW50LnN0cnVjdHVyZWRFcnJvcj8uaXNzdWVzPy5sZW5ndGgpIHtcbiAgICAgIHZhbGlkYXRpb25Jc3N1ZXMgPSBmbG93RXZlbnQuc3RydWN0dXJlZEVycm9yLmlzc3Vlc1xuICAgICAgICAubWFwKChpc3N1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhdGggPSBpc3N1ZS5wYXRoLmxlbmd0aCA+IDAgPyBpc3N1ZS5wYXRoLmpvaW4oJy4nKSA6ICcocm9vdCknO1xuICAgICAgICAgIHJldHVybiBgJHtwYXRofTogJHtpc3N1ZS5tZXNzYWdlfWA7XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCc7ICcpO1xuICAgIH1cblxuICAgIGNvbnN0IGN0eDogRXJyb3JSZW5kZXJDb250ZXh0ID0ge1xuICAgICAgc3RhZ2VOYW1lOiBmbG93RXZlbnQuc3RhZ2VOYW1lLFxuICAgICAgbWVzc2FnZTogZmxvd0V2ZW50Lm1lc3NhZ2UsXG4gICAgICB2YWxpZGF0aW9uSXNzdWVzLFxuICAgIH07XG4gICAgY29uc3QgdGV4dCA9IHRoaXMucmVuZGVyZXI/LnJlbmRlckVycm9yPy4oY3R4KSA/PyB0aGlzLmRlZmF1bHRSZW5kZXJFcnJvcihjdHgpO1xuICAgIHRoaXMuZW50cmllcy5wdXNoKHtcbiAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICB0ZXh0LFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBzdGFnZU5hbWU6IGZsb3dFdmVudC5zdGFnZU5hbWUsXG4gICAgICBzdGFnZUlkOiBmbG93RXZlbnQudHJhdmVyc2FsQ29udGV4dD8uc3RhZ2VJZCxcbiAgICAgIHN1YmZsb3dJZDogZmxvd0V2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN1YmZsb3dJZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBPdXRwdXQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqIFJldHVybnMgc3RydWN0dXJlZCBlbnRyaWVzIGZvciBwcm9ncmFtbWF0aWMgY29uc3VtcHRpb24uICovXG4gIGdldEVudHJpZXMoKTogQ29tYmluZWROYXJyYXRpdmVFbnRyeVtdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuZW50cmllc107XG4gIH1cblxuICAvKiogUmV0dXJucyBmb3JtYXR0ZWQgbmFycmF0aXZlIGxpbmVzIChzYW1lIG91dHB1dCBhcyBDb21iaW5lZE5hcnJhdGl2ZUJ1aWxkZXIuYnVpbGQpLiAqL1xuICBnZXROYXJyYXRpdmUoaW5kZW50ID0gJyAgJyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5lbnRyaWVzLm1hcCgoZW50cnkpID0+IGAke2luZGVudC5yZXBlYXQoZW50cnkuZGVwdGgpfSR7ZW50cnkudGV4dH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGVudHJpZXMgZ3JvdXBlZCBieSBzdWJmbG93SWQgZm9yIHN0cnVjdHVyZWQgYWNjZXNzLlxuICAgKiBSb290LWxldmVsIGVudHJpZXMgaGF2ZSBzdWJmbG93SWQgPSB1bmRlZmluZWQuXG4gICAqL1xuICBnZXRFbnRyaWVzQnlTdWJmbG93KCk6IFJlY29yZDxzdHJpbmcsIENvbWJpbmVkTmFycmF0aXZlRW50cnlbXT4ge1xuICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgQ29tYmluZWROYXJyYXRpdmVFbnRyeVtdPiA9IHsgJyc6IFtdIH07XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiB0aGlzLmVudHJpZXMpIHtcbiAgICAgIGNvbnN0IGtleSA9IGVudHJ5LnN1YmZsb3dJZCA/PyAnJztcbiAgICAgIGlmICghcmVzdWx0W2tleV0pIHJlc3VsdFtrZXldID0gW107XG4gICAgICByZXN1bHRba2V5XS5wdXNoKGVudHJ5KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKiBDbGVhcnMgYWxsIHN0YXRlLiBDYWxsZWQgYXV0b21hdGljYWxseSBiZWZvcmUgZWFjaCBydW4uICovXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuZW50cmllcyA9IFtdO1xuICAgIHRoaXMucGVuZGluZ09wcy5jbGVhcigpO1xuICAgIHRoaXMuc3RhZ2VDb3VudGVycy5jbGVhcigpO1xuICAgIHRoaXMuZmlyc3RTdGFnZUZsYWdzLmNsZWFyKCk7XG4gIH1cblxuICAvLyDilIDilIAgUHJpdmF0ZSBoZWxwZXJzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKiBJbmNyZW1lbnQgYW5kIHJldHVybiB0aGUgc3RhZ2UgY291bnRlciBmb3IgYSBnaXZlbiBzdWJmbG93ICgnJyA9IHJvb3QpLiAqL1xuICBwcml2YXRlIGluY3JlbWVudFN0YWdlQ291bnRlcihzdWJmbG93S2V5OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnN0YWdlQ291bnRlcnMuZ2V0KHN1YmZsb3dLZXkpID8/IDA7XG4gICAgY29uc3QgbmV4dCA9IGN1cnJlbnQgKyAxO1xuICAgIHRoaXMuc3RhZ2VDb3VudGVycy5zZXQoc3ViZmxvd0tleSwgbmV4dCk7XG4gICAgcmV0dXJuIG5leHQ7XG4gIH1cblxuICAvKiogUmV0dXJucyB0cnVlIGlmIHRoaXMgaXMgdGhlIGZpcnN0IHN0YWdlIGZvciB0aGUgZ2l2ZW4gc3ViZmxvdywgY29uc3VtaW5nIHRoZSBmbGFnLiAqL1xuICBwcml2YXRlIGNvbnN1bWVGaXJzdFN0YWdlRmxhZyhzdWJmbG93S2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuZmlyc3RTdGFnZUZsYWdzLmhhcyhzdWJmbG93S2V5KSkge1xuICAgICAgdGhpcy5maXJzdFN0YWdlRmxhZ3Muc2V0KHN1YmZsb3dLZXksIGZhbHNlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGJ1ZmZlck9wKHN0YWdlTmFtZTogc3RyaW5nLCBvcDogT21pdDxCdWZmZXJlZE9wLCAnc3RlcE51bWJlcic+KTogdm9pZCB7XG4gICAgbGV0IG9wcyA9IHRoaXMucGVuZGluZ09wcy5nZXQoc3RhZ2VOYW1lKTtcbiAgICBpZiAoIW9wcykge1xuICAgICAgb3BzID0gW107XG4gICAgICB0aGlzLnBlbmRpbmdPcHMuc2V0KHN0YWdlTmFtZSwgb3BzKTtcbiAgICB9XG4gICAgb3BzLnB1c2goeyAuLi5vcCwgc3RlcE51bWJlcjogb3BzLmxlbmd0aCArIDEgfSk7XG4gIH1cblxuICBwcml2YXRlIGZsdXNoT3BzKHN0YWdlTmFtZTogc3RyaW5nLCBzdWJmbG93SWQ/OiBzdHJpbmcsIHN0YWdlSWQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBvcHMgPSB0aGlzLnBlbmRpbmdPcHMuZ2V0KHN0YWdlTmFtZSk7XG4gICAgaWYgKCFvcHMgfHwgb3BzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgZm9yIChjb25zdCBvcCBvZiBvcHMpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3VtbWFyeSA9IHRoaXMuZm9ybWF0VmFsdWUob3AucmF3VmFsdWUsIHRoaXMubWF4VmFsdWVMZW5ndGgpO1xuICAgICAgY29uc3Qgb3BDdHg6IE9wUmVuZGVyQ29udGV4dCA9IHtcbiAgICAgICAgdHlwZTogb3AudHlwZSxcbiAgICAgICAga2V5OiBvcC5rZXksXG4gICAgICAgIHJhd1ZhbHVlOiBvcC5yYXdWYWx1ZSxcbiAgICAgICAgdmFsdWVTdW1tYXJ5LFxuICAgICAgICBvcGVyYXRpb246IG9wLm9wZXJhdGlvbixcbiAgICAgICAgc3RlcE51bWJlcjogb3Auc3RlcE51bWJlcixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlbmRlcmVyPy5yZW5kZXJPcCA/IHRoaXMucmVuZGVyZXIucmVuZGVyT3Aob3BDdHgpIDogdGhpcy5kZWZhdWx0UmVuZGVyT3Aob3BDdHgpO1xuXG4gICAgICBpZiAodGV4dCA9PSBudWxsKSBjb250aW51ZTsgLy8gcmVuZGVyZXIgZXhjbHVkZWQgdGhpcyBvcCAobnVsbCBvciB1bmRlZmluZWQpXG5cbiAgICAgIHRoaXMuZW50cmllcy5wdXNoKHtcbiAgICAgICAgdHlwZTogJ3N0ZXAnLFxuICAgICAgICB0ZXh0LFxuICAgICAgICBkZXB0aDogMSxcbiAgICAgICAgc3RhZ2VOYW1lLFxuICAgICAgICBzdGFnZUlkLFxuICAgICAgICBzdGVwTnVtYmVyOiBvcC5zdGVwTnVtYmVyLFxuICAgICAgICBzdWJmbG93SWQsXG4gICAgICAgIHJhd1ZhbHVlOiBvcC5yYXdWYWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMucGVuZGluZ09wcy5kZWxldGUoc3RhZ2VOYW1lKTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBEZWZhdWx0IHJlbmRlcmVycyAodXNlZCB3aGVuIG5vIGN1c3RvbSByZW5kZXJlciBpcyBwcm92aWRlZCkg4pSA4pSA4pSA4pSAXG5cbiAgcHJpdmF0ZSBkZWZhdWx0UmVuZGVyU3RhZ2UoY3R4OiBTdGFnZVJlbmRlckNvbnRleHQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGlubmVyID0gY3R4LmlzRmlyc3RcbiAgICAgID8gY3R4LmRlc2NyaXB0aW9uXG4gICAgICAgID8gYFRoZSBwcm9jZXNzIGJlZ2FuOiAke2N0eC5kZXNjcmlwdGlvbn0uYFxuICAgICAgICA6IGBUaGUgcHJvY2VzcyBiZWdhbiB3aXRoICR7Y3R4LnN0YWdlTmFtZX0uYFxuICAgICAgOiBjdHguZGVzY3JpcHRpb25cbiAgICAgID8gYE5leHQgc3RlcDogJHtjdHguZGVzY3JpcHRpb259LmBcbiAgICAgIDogYE5leHQsIGl0IG1vdmVkIG9uIHRvICR7Y3R4LnN0YWdlTmFtZX0uYDtcbiAgICByZXR1cm4gYFN0YWdlICR7Y3R4LnN0YWdlTnVtYmVyfTogJHtpbm5lcn1gO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0UmVuZGVyT3AoY3R4OiBPcFJlbmRlckNvbnRleHQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0ZXBQcmVmaXggPSB0aGlzLmluY2x1ZGVTdGVwTnVtYmVycyA/IGBTdGVwICR7Y3R4LnN0ZXBOdW1iZXJ9OiBgIDogJyc7XG4gICAgaWYgKGN0eC50eXBlID09PSAncmVhZCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmluY2x1ZGVWYWx1ZXMgJiYgY3R4LnZhbHVlU3VtbWFyeVxuICAgICAgICA/IGAke3N0ZXBQcmVmaXh9UmVhZCAke2N0eC5rZXl9ID0gJHtjdHgudmFsdWVTdW1tYXJ5fWBcbiAgICAgICAgOiBgJHtzdGVwUHJlZml4fVJlYWQgJHtjdHgua2V5fWA7XG4gICAgfVxuICAgIGlmIChjdHgub3BlcmF0aW9uID09PSAnZGVsZXRlJykge1xuICAgICAgcmV0dXJuIGAke3N0ZXBQcmVmaXh9RGVsZXRlICR7Y3R4LmtleX1gO1xuICAgIH1cbiAgICBpZiAoY3R4Lm9wZXJhdGlvbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgIHJldHVybiB0aGlzLmluY2x1ZGVWYWx1ZXNcbiAgICAgICAgPyBgJHtzdGVwUHJlZml4fVVwZGF0ZSAke2N0eC5rZXl9ID0gJHtjdHgudmFsdWVTdW1tYXJ5fWBcbiAgICAgICAgOiBgJHtzdGVwUHJlZml4fVVwZGF0ZSAke2N0eC5rZXl9YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW5jbHVkZVZhbHVlcyA/IGAke3N0ZXBQcmVmaXh9V3JpdGUgJHtjdHgua2V5fSA9ICR7Y3R4LnZhbHVlU3VtbWFyeX1gIDogYCR7c3RlcFByZWZpeH1Xcml0ZSAke2N0eC5rZXl9YDtcbiAgfVxuXG4gIHByaXZhdGUgZGVmYXVsdFJlbmRlckRlY2lzaW9uKGN0eDogRGVjaXNpb25SZW5kZXJDb250ZXh0KTogc3RyaW5nIHtcbiAgICBjb25zdCBicmFuY2hOYW1lID0gY3R4LmNob3NlbjtcbiAgICBsZXQgY29uZGl0aW9uVGV4dDogc3RyaW5nO1xuICAgIGlmIChjdHguZXZpZGVuY2UpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICBjb25zdCBldmlkZW5jZSA9IGN0eC5ldmlkZW5jZSBhcyBhbnk7XG4gICAgICBjb25zdCBtYXRjaGVkUnVsZSA9IGV2aWRlbmNlLnJ1bGVzPy5maW5kKChyOiBhbnkpID0+IHIubWF0Y2hlZCk7XG4gICAgICBpZiAobWF0Y2hlZFJ1bGUpIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBtYXRjaGVkUnVsZS5sYWJlbCA/IGAgXCIke21hdGNoZWRSdWxlLmxhYmVsfVwiYCA6ICcnO1xuICAgICAgICBpZiAobWF0Y2hlZFJ1bGUudHlwZSA9PT0gJ2ZpbHRlcicpIHtcbiAgICAgICAgICBjb25zdCBwYXJ0cyA9IG1hdGNoZWRSdWxlLmNvbmRpdGlvbnMubWFwKFxuICAgICAgICAgICAgKGM6IGFueSkgPT5cbiAgICAgICAgICAgICAgYCR7Yy5rZXl9ICR7Yy5hY3R1YWxTdW1tYXJ5fSAke2Mub3B9ICR7SlNPTi5zdHJpbmdpZnkoYy50aHJlc2hvbGQpfSAke2MucmVzdWx0ID8gJ1xcdTI3MTMnIDogJ1xcdTI3MTcnfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25kaXRpb25UZXh0ID0gYEl0IGV2YWx1YXRlZCBSdWxlICR7bWF0Y2hlZFJ1bGUucnVsZUluZGV4fSR7bGFiZWx9OiAke3BhcnRzLmpvaW4oXG4gICAgICAgICAgICAnLCAnLFxuICAgICAgICAgICl9LCBhbmQgY2hvc2UgJHticmFuY2hOYW1lfS5gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHBhcnRzID0gbWF0Y2hlZFJ1bGUuaW5wdXRzLm1hcCgoaTogYW55KSA9PiBgJHtpLmtleX09JHtpLnZhbHVlU3VtbWFyeX1gKTtcbiAgICAgICAgICBjb25kaXRpb25UZXh0ID0gYEl0IGV4YW1pbmVkJHtsYWJlbH06ICR7cGFydHMuam9pbignLCAnKX0sIGFuZCBjaG9zZSAke2JyYW5jaE5hbWV9LmA7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGVycm9yZWRDb3VudCA9IGV2aWRlbmNlLnJ1bGVzPy5maWx0ZXIoKHI6IGFueSkgPT4gci5tYXRjaEVycm9yICE9PSB1bmRlZmluZWQpLmxlbmd0aCA/PyAwO1xuICAgICAgICBjb25zdCBlcnJvck5vdGUgPSBlcnJvcmVkQ291bnQgPiAwID8gYCAoJHtlcnJvcmVkQ291bnR9IHJ1bGUke2Vycm9yZWRDb3VudCA+IDEgPyAncycgOiAnJ30gdGhyZXcgZXJyb3JzKWAgOiAnJztcbiAgICAgICAgY29uZGl0aW9uVGV4dCA9IGBObyBydWxlcyBtYXRjaGVkJHtlcnJvck5vdGV9LCBmZWxsIGJhY2sgdG8gZGVmYXVsdDogJHticmFuY2hOYW1lfS5gO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY3R4LmRlc2NyaXB0aW9uICYmIGN0eC5yYXRpb25hbGUpIHtcbiAgICAgIGNvbmRpdGlvblRleHQgPSBgSXQgJHtjdHguZGVzY3JpcHRpb259OiAke2N0eC5yYXRpb25hbGV9LCBzbyBpdCBjaG9zZSAke2JyYW5jaE5hbWV9LmA7XG4gICAgfSBlbHNlIGlmIChjdHguZGVzY3JpcHRpb24pIHtcbiAgICAgIGNvbmRpdGlvblRleHQgPSBgSXQgJHtjdHguZGVzY3JpcHRpb259IGFuZCBjaG9zZSAke2JyYW5jaE5hbWV9LmA7XG4gICAgfSBlbHNlIGlmIChjdHgucmF0aW9uYWxlKSB7XG4gICAgICBjb25kaXRpb25UZXh0ID0gYEEgZGVjaXNpb24gd2FzIG1hZGU6ICR7Y3R4LnJhdGlvbmFsZX0sIHNvIHRoZSBwYXRoIHRha2VuIHdhcyAke2JyYW5jaE5hbWV9LmA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbmRpdGlvblRleHQgPSBgQSBkZWNpc2lvbiB3YXMgbWFkZSwgYW5kIHRoZSBwYXRoIHRha2VuIHdhcyAke2JyYW5jaE5hbWV9LmA7XG4gICAgfVxuICAgIHJldHVybiBgW0NvbmRpdGlvbl06ICR7Y29uZGl0aW9uVGV4dH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0UmVuZGVyRm9yayhjdHg6IEZvcmtSZW5kZXJDb250ZXh0KTogc3RyaW5nIHtcbiAgICBjb25zdCBuYW1lcyA9IGN0eC5jaGlsZHJlbi5qb2luKCcsICcpO1xuICAgIHJldHVybiBgW1BhcmFsbGVsXTogRm9ya2luZyBpbnRvICR7Y3R4LmNoaWxkcmVuLmxlbmd0aH0gcGFyYWxsZWwgcGF0aHM6ICR7bmFtZXN9LmA7XG4gIH1cblxuICBwcml2YXRlIGRlZmF1bHRSZW5kZXJTZWxlY3RlZChjdHg6IFNlbGVjdGVkUmVuZGVyQ29udGV4dCk6IHN0cmluZyB7XG4gICAgaWYgKGN0eC5ldmlkZW5jZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIGNvbnN0IGV2aWRlbmNlID0gY3R4LmV2aWRlbmNlIGFzIGFueTtcbiAgICAgIGNvbnN0IG1hdGNoZWQgPSBldmlkZW5jZS5ydWxlcz8uZmlsdGVyKChyOiBhbnkpID0+IHIubWF0Y2hlZCkgPz8gW107XG4gICAgICBjb25zdCBwYXJ0cyA9IG1hdGNoZWQubWFwKChyOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSByLmxhYmVsID8gYCBcIiR7ci5sYWJlbH1cImAgOiAnJztcbiAgICAgICAgaWYgKHIudHlwZSA9PT0gJ2ZpbHRlcicpIHtcbiAgICAgICAgICBjb25zdCBjb25kcyA9IHIuY29uZGl0aW9uc1xuICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgKGM6IGFueSkgPT5cbiAgICAgICAgICAgICAgICBgJHtjLmtleX0gJHtjLmFjdHVhbFN1bW1hcnl9ICR7Yy5vcH0gJHtKU09OLnN0cmluZ2lmeShjLnRocmVzaG9sZCl9ICR7Yy5yZXN1bHQgPyAnXFx1MjcxMycgOiAnXFx1MjcxNyd9YCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5qb2luKCcsICcpO1xuICAgICAgICAgIHJldHVybiBgJHtyLmJyYW5jaH0ke2xhYmVsfSAoJHtjb25kc30pYDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnB1dHMgPSByLmlucHV0cy5tYXAoKGk6IGFueSkgPT4gYCR7aS5rZXl9PSR7aS52YWx1ZVN1bW1hcnl9YCkuam9pbignLCAnKTtcbiAgICAgICAgcmV0dXJuIGAke3IuYnJhbmNofSR7bGFiZWx9ICgke2lucHV0c30pYDtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGBbU2VsZWN0ZWRdOiAke2N0eC5zZWxlY3RlZC5sZW5ndGh9IG9mICR7Y3R4LnRvdGFsfSBwYXRocyBzZWxlY3RlZDogJHtwYXJ0cy5qb2luKCc7ICcpfS5gO1xuICAgIH1cbiAgICBjb25zdCBuYW1lcyA9IGN0eC5zZWxlY3RlZC5qb2luKCcsICcpO1xuICAgIHJldHVybiBgW1NlbGVjdGVkXTogJHtjdHguc2VsZWN0ZWQubGVuZ3RofSBvZiAke2N0eC50b3RhbH0gcGF0aHMgc2VsZWN0ZWQgZm9yIGV4ZWN1dGlvbjogJHtuYW1lc30uYDtcbiAgfVxuXG4gIHByaXZhdGUgZGVmYXVsdFJlbmRlclN1YmZsb3coY3R4OiBTdWJmbG93UmVuZGVyQ29udGV4dCk6IHN0cmluZyB7XG4gICAgaWYgKGN0eC5kaXJlY3Rpb24gPT09ICdleGl0Jykge1xuICAgICAgcmV0dXJuIGBFeGl0aW5nIHRoZSAke2N0eC5uYW1lfSBzdWJmbG93LmA7XG4gICAgfVxuICAgIHJldHVybiBjdHguZGVzY3JpcHRpb25cbiAgICAgID8gYEVudGVyaW5nIHRoZSAke2N0eC5uYW1lfSBzdWJmbG93OiAke2N0eC5kZXNjcmlwdGlvbn0uYFxuICAgICAgOiBgRW50ZXJpbmcgdGhlICR7Y3R4Lm5hbWV9IHN1YmZsb3cuYDtcbiAgfVxuXG4gIHByaXZhdGUgZGVmYXVsdFJlbmRlckxvb3AoY3R4OiBMb29wUmVuZGVyQ29udGV4dCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGN0eC5kZXNjcmlwdGlvblxuICAgICAgPyBgT24gcGFzcyAke2N0eC5pdGVyYXRpb259OiAke2N0eC5kZXNjcmlwdGlvbn0gYWdhaW4uYFxuICAgICAgOiBgT24gcGFzcyAke2N0eC5pdGVyYXRpb259IHRocm91Z2ggJHtjdHgudGFyZ2V0fS5gO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0UmVuZGVyQnJlYWsoY3R4OiBCcmVha1JlbmRlckNvbnRleHQpOiBzdHJpbmcge1xuICAgIHJldHVybiBgRXhlY3V0aW9uIHN0b3BwZWQgYXQgJHtjdHguc3RhZ2VOYW1lfS5gO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0UmVuZGVyRXJyb3IoY3R4OiBFcnJvclJlbmRlckNvbnRleHQpOiBzdHJpbmcge1xuICAgIGxldCB0ZXh0ID0gYEFuIGVycm9yIG9jY3VycmVkIGF0ICR7Y3R4LnN0YWdlTmFtZX06ICR7Y3R4Lm1lc3NhZ2V9LmA7XG4gICAgaWYgKGN0eC52YWxpZGF0aW9uSXNzdWVzKSB7XG4gICAgICB0ZXh0ICs9IGAgVmFsaWRhdGlvbiBpc3N1ZXM6ICR7Y3R4LnZhbGlkYXRpb25Jc3N1ZXN9LmA7XG4gICAgfVxuICAgIHJldHVybiBgW0Vycm9yXTogJHt0ZXh0fWA7XG4gIH1cbn1cbiJdfQ==
|
|
506
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tYmluZWROYXJyYXRpdmVSZWNvcmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL25hcnJhdGl2ZS9Db21iaW5lZE5hcnJhdGl2ZVJlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHOzs7QUFFSCwrRUFBeUU7QUFtRHpFLDhFQUE4RTtBQUU5RSxNQUFhLHlCQUF5QjtJQXdCcEMsWUFBWSxPQUE0RDs7UUFyQmhFLFlBQU8sR0FBNkIsRUFBRSxDQUFDO1FBQy9DOzs7Ozs7O1dBT0c7UUFDSyxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7UUFDckQsc0RBQXNEO1FBQzlDLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFDbEQseURBQXlEO1FBQ2pELG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7UUFTbkQsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxFQUFFLG1DQUFJLG9CQUFvQixDQUFDO1FBQzlDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxrQkFBa0IsbUNBQUksSUFBSSxDQUFDO1FBQzlELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsYUFBYSxtQ0FBSSxJQUFJLENBQUM7UUFDcEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxjQUFjLG1DQUFJLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFdBQVcsbUNBQUksa0NBQWMsQ0FBQztRQUMxRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sYUFBUCxP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QztRQUM1QyxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUMsV0FBVztZQUNwQixDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLGFBQWEsR0FBRyxDQUFDLFdBQVcsR0FBRztZQUN6RCxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQztJQUMxQyxDQUFDO0lBRU8saUJBQWlCLENBQUMsR0FBc0I7UUFDOUMsT0FBTyxHQUFHLENBQUMsV0FBVztZQUNwQixDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsU0FBUyxLQUFLLEdBQUcsQ0FBQyxXQUFXLFNBQVM7WUFDdkQsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLFNBQVMsWUFBWSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUM7SUFDeEQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEdBQXVCO1FBQ2hELE9BQU8sd0JBQXdCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsQ0FBQztJQUNsRCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsR0FBdUI7UUFDaEQsSUFBSSxJQUFJLEdBQUcsd0JBQXdCLEdBQUcsQ0FBQyxTQUFTLEtBQUssR0FBRyxDQUFDLE9BQU8sR0FBRyxDQUFDO1FBQ3BFLElBQUksR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDekIsSUFBSSxJQUFJLHVCQUF1QixHQUFHLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsT0FBTyxZQUFZLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FDRjtBQXZnQkQsOERBdWdCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29tYmluZWROYXJyYXRpdmVSZWNvcmRlciDigJQgSW5saW5lIG5hcnJhdGl2ZSBidWlsZGVyIHRoYXQgbWVyZ2VzIGZsb3cgKyBkYXRhIGR1cmluZyB0cmF2ZXJzYWwuXG4gKlxuICogUmVwbGFjZXMgdGhlIHBvc3QtcHJvY2Vzc2luZyBDb21iaW5lZE5hcnJhdGl2ZUJ1aWxkZXIgYnkgaW1wbGVtZW50aW5nIEJPVEhcbiAqIEZsb3dSZWNvcmRlciAoY29udHJvbC1mbG93IGV2ZW50cykgYW5kIFJlY29yZGVyIChzY29wZSBkYXRhIGV2ZW50cykuXG4gKlxuICogRXZlbnQgb3JkZXJpbmcgZ3VhcmFudGVlcyB0aGlzIHdvcmtzOlxuICogICAxLiBTY29wZSBldmVudHMgKG9uUmVhZCwgb25Xcml0ZSkgZmlyZSBEVVJJTkcgc3RhZ2UgZXhlY3V0aW9uXG4gKiAgIDIuIEZsb3cgZXZlbnRzIChvblN0YWdlRXhlY3V0ZWQsIG9uRGVjaXNpb24pIGZpcmUgQUZURVIgc3RhZ2UgZXhlY3V0aW9uXG4gKiAgIDMuIEJvdGggY2FycnkgdGhlIHNhbWUgYHN0YWdlTmFtZWAg4oCUIG5vIG1hdGNoaW5nIGFtYmlndWl0eVxuICpcbiAqIFNvIHdlIGJ1ZmZlciBzY29wZSBvcHMgcGVyLXN0YWdlLCB0aGVuIHdoZW4gdGhlIGZsb3cgZXZlbnQgYXJyaXZlcyxcbiAqIGVtaXQgdGhlIHN0YWdlIGVudHJ5ICsgZmx1c2ggdGhlIGJ1ZmZlcmVkIG9wcyBpbiBvbmUgcGFzcy5cbiAqL1xuXG5pbXBvcnQgeyBzdW1tYXJpemVWYWx1ZSB9IGZyb20gJy4uLy4uL3Njb3BlL3JlY29yZGVycy9zdW1tYXJpemVWYWx1ZS5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlYWRFdmVudCwgUmVjb3JkZXIsIFdyaXRlRXZlbnQgfSBmcm9tICcuLi8uLi9zY29wZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEJyZWFrUmVuZGVyQ29udGV4dCxcbiAgQ29tYmluZWROYXJyYXRpdmVFbnRyeSxcbiAgRGVjaXNpb25SZW5kZXJDb250ZXh0LFxuICBFcnJvclJlbmRlckNvbnRleHQsXG4gIEZvcmtSZW5kZXJDb250ZXh0LFxuICBMb29wUmVuZGVyQ29udGV4dCxcbiAgTmFycmF0aXZlUmVuZGVyZXIsXG4gIE9wUmVuZGVyQ29udGV4dCxcbiAgU2VsZWN0ZWRSZW5kZXJDb250ZXh0LFxuICBTdGFnZVJlbmRlckNvbnRleHQsXG4gIFN1YmZsb3dSZW5kZXJDb250ZXh0LFxufSBmcm9tICcuL25hcnJhdGl2ZVR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgRmxvd0JyZWFrRXZlbnQsXG4gIEZsb3dEZWNpc2lvbkV2ZW50LFxuICBGbG93RXJyb3JFdmVudCxcbiAgRmxvd0ZvcmtFdmVudCxcbiAgRmxvd0xvb3BFdmVudCxcbiAgRmxvd1BhdXNlRXZlbnQsXG4gIEZsb3dSZWNvcmRlcixcbiAgRmxvd1Jlc3VtZUV2ZW50LFxuICBGbG93U2VsZWN0ZWRFdmVudCxcbiAgRmxvd1N0YWdlRXZlbnQsXG4gIEZsb3dTdWJmbG93RXZlbnQsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyDilIDilIAgVHlwZXMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmludGVyZmFjZSBCdWZmZXJlZE9wIHtcbiAgdHlwZTogJ3JlYWQnIHwgJ3dyaXRlJztcbiAga2V5OiBzdHJpbmc7XG4gIHJhd1ZhbHVlOiB1bmtub3duO1xuICBvcGVyYXRpb24/OiAnc2V0JyB8ICd1cGRhdGUnIHwgJ2RlbGV0ZSc7XG4gIHN0ZXBOdW1iZXI6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21iaW5lZE5hcnJhdGl2ZVJlY29yZGVyT3B0aW9ucyB7XG4gIGluY2x1ZGVTdGVwTnVtYmVycz86IGJvb2xlYW47XG4gIGluY2x1ZGVWYWx1ZXM/OiBib29sZWFuO1xuICBtYXhWYWx1ZUxlbmd0aD86IG51bWJlcjtcbiAgLyoqIEN1c3RvbSB2YWx1ZSBmb3JtYXR0ZXIuIENhbGxlZCBhdCByZW5kZXIgdGltZSAoZmx1c2hPcHMpLCBub3QgY2FwdHVyZSB0aW1lLlxuICAgKiAgUmVjZWl2ZXMgdGhlIHJhdyB2YWx1ZSBhbmQgbWF4VmFsdWVMZW5ndGguIERlZmF1bHRzIHRvIHN1bW1hcml6ZVZhbHVlKCkuICovXG4gIGZvcm1hdFZhbHVlPzogKHZhbHVlOiB1bmtub3duLCBtYXhMZW46IG51bWJlcikgPT4gc3RyaW5nO1xuICAvKiogUGx1Z2dhYmxlIHJlbmRlcmVyIGZvciBjdXN0b21pemluZyBuYXJyYXRpdmUgb3V0cHV0LiBVbmltcGxlbWVudGVkIG1ldGhvZHNcbiAgICogIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCBFbmdsaXNoIHJlbmRlcmVyLiBTZWUgTmFycmF0aXZlUmVuZGVyZXIgZG9jcy4gKi9cbiAgcmVuZGVyZXI/OiBOYXJyYXRpdmVSZW5kZXJlcjtcbn1cblxuLy8g4pSA4pSAIFJlY29yZGVyIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG5leHBvcnQgY2xhc3MgQ29tYmluZWROYXJyYXRpdmVSZWNvcmRlciBpbXBsZW1lbnRzIEZsb3dSZWNvcmRlciwgUmVjb3JkZXIge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgZW50cmllczogQ29tYmluZWROYXJyYXRpdmVFbnRyeVtdID0gW107XG4gIC8qKlxuICAgKiBQZW5kaW5nIHNjb3BlIG9wcyBrZXllZCBieSBzdGFnZU5hbWUuIEZsdXNoZWQgaW4gb25TdGFnZUV4ZWN1dGVkL29uRGVjaXNpb24uXG4gICAqXG4gICAqIE5hbWUgY29sbGlzaW9ucyAodHdvIHN0YWdlcyB3aXRoIHRoZSBzYW1lIG5hbWUsIGRpZmZlcmVudCBJRHMpIGFyZSBwcmV2ZW50ZWQgYnlcbiAgICogdGhlIGV2ZW50IG9yZGVyaW5nIGNvbnRyYWN0OiBzY29wZSBldmVudHMgKG9uUmVhZC9vbldyaXRlKSBmb3Igc3RhZ2UgTiBhcmUgYWx3YXlzXG4gICAqIGZsdXNoZWQgYnkgb25TdGFnZUV4ZWN1dGVkIGZvciBzdGFnZSBOIGJlZm9yZSBzdGFnZSBOKzEncyBzY29wZSBldmVudHMgYmVnaW4uXG4gICAqIFNvIHRoZSBrZXkgaXMgYWx3YXlzIHVuaXF1ZWx5IGJvdW5kIHRvIHRoZSBjdXJyZW50bHktZXhlY3V0aW5nIHN0YWdlLlxuICAgKi9cbiAgcHJpdmF0ZSBwZW5kaW5nT3BzID0gbmV3IE1hcDxzdHJpbmcsIEJ1ZmZlcmVkT3BbXT4oKTtcbiAgLyoqIFBlci1zdWJmbG93IHN0YWdlIGNvdW50ZXJzLiBLZXkgJycgPSByb290IGZsb3cuICovXG4gIHByaXZhdGUgc3RhZ2VDb3VudGVycyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gIC8qKiBQZXItc3ViZmxvdyBmaXJzdC1zdGFnZSBmbGFncy4gS2V5ICcnID0gcm9vdCBmbG93LiAqL1xuICBwcml2YXRlIGZpcnN0U3RhZ2VGbGFncyA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xuXG4gIHByaXZhdGUgaW5jbHVkZVN0ZXBOdW1iZXJzOiBib29sZWFuO1xuICBwcml2YXRlIGluY2x1ZGVWYWx1ZXM6IGJvb2xlYW47XG4gIHByaXZhdGUgbWF4VmFsdWVMZW5ndGg6IG51bWJlcjtcbiAgcHJpdmF0ZSBmb3JtYXRWYWx1ZTogKHZhbHVlOiB1bmtub3duLCBtYXhMZW46IG51bWJlcikgPT4gc3RyaW5nO1xuICBwcml2YXRlIHJlbmRlcmVyPzogTmFycmF0aXZlUmVuZGVyZXI7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IENvbWJpbmVkTmFycmF0aXZlUmVjb3JkZXJPcHRpb25zICYgeyBpZD86IHN0cmluZyB9KSB7XG4gICAgdGhpcy5pZCA9IG9wdGlvbnM/LmlkID8/ICdjb21iaW5lZC1uYXJyYXRpdmUnO1xuICAgIHRoaXMuaW5jbHVkZVN0ZXBOdW1iZXJzID0gb3B0aW9ucz8uaW5jbHVkZVN0ZXBOdW1iZXJzID8/IHRydWU7XG4gICAgdGhpcy5pbmNsdWRlVmFsdWVzID0gb3B0aW9ucz8uaW5jbHVkZVZhbHVlcyA/PyB0cnVlO1xuICAgIHRoaXMubWF4VmFsdWVMZW5ndGggPSBvcHRpb25zPy5tYXhWYWx1ZUxlbmd0aCA/PyA4MDtcbiAgICB0aGlzLmZvcm1hdFZhbHVlID0gb3B0aW9ucz8uZm9ybWF0VmFsdWUgPz8gc3VtbWFyaXplVmFsdWU7XG4gICAgdGhpcy5yZW5kZXJlciA9IG9wdGlvbnM/LnJlbmRlcmVyO1xuICB9XG5cbiAgLy8g4pSA4pSAIFNjb3BlIGNoYW5uZWwgKGZpcmVzIGZpcnN0LCBkdXJpbmcgc3RhZ2UgZXhlY3V0aW9uKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICBvblJlYWQoZXZlbnQ6IFJlYWRFdmVudCk6IHZvaWQge1xuICAgIGlmICghZXZlbnQua2V5KSByZXR1cm47XG4gICAgdGhpcy5idWZmZXJPcChldmVudC5zdGFnZU5hbWUsIHtcbiAgICAgIHR5cGU6ICdyZWFkJyxcbiAgICAgIGtleTogZXZlbnQua2V5LFxuICAgICAgcmF3VmFsdWU6IGV2ZW50LnZhbHVlLFxuICAgIH0pO1xuICB9XG5cbiAgb25Xcml0ZShldmVudDogV3JpdGVFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuYnVmZmVyT3AoZXZlbnQuc3RhZ2VOYW1lLCB7XG4gICAgICB0eXBlOiAnd3JpdGUnLFxuICAgICAga2V5OiBldmVudC5rZXksXG4gICAgICByYXdWYWx1ZTogZXZlbnQudmFsdWUsXG4gICAgICBvcGVyYXRpb246IGV2ZW50Lm9wZXJhdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBGbG93IGNoYW5uZWwgKGZpcmVzIGFmdGVyIHN0YWdlIGV4ZWN1dGlvbikg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgb25TdGFnZUV4ZWN1dGVkKGV2ZW50OiBGbG93U3RhZ2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YWdlSWQgPSBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdGFnZUlkO1xuICAgIGNvbnN0IHNmS2V5ID0gZXZlbnQudHJhdmVyc2FsQ29udGV4dD8uc3ViZmxvd0lkID8/ICcnO1xuICAgIGNvbnN0IHN0YWdlTnVtID0gdGhpcy5pbmNyZW1lbnRTdGFnZUNvdW50ZXIoc2ZLZXkpO1xuICAgIGNvbnN0IGlzRmlyc3QgPSB0aGlzLmNvbnN1bWVGaXJzdFN0YWdlRmxhZyhzZktleSk7XG5cbiAgICBjb25zdCBjdHg6IFN0YWdlUmVuZGVyQ29udGV4dCA9IHtcbiAgICAgIHN0YWdlTmFtZTogZXZlbnQuc3RhZ2VOYW1lLFxuICAgICAgc3RhZ2VOdW1iZXI6IHN0YWdlTnVtLFxuICAgICAgaXNGaXJzdCxcbiAgICAgIGRlc2NyaXB0aW9uOiBldmVudC5kZXNjcmlwdGlvbixcbiAgICB9O1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlbmRlcmVyPy5yZW5kZXJTdGFnZT8uKGN0eCkgPz8gdGhpcy5kZWZhdWx0UmVuZGVyU3RhZ2UoY3R4KTtcblxuICAgIGNvbnN0IHNmSWQgPSBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQ7XG4gICAgdGhpcy5lbnRyaWVzLnB1c2goe1xuICAgICAgdHlwZTogJ3N0YWdlJyxcbiAgICAgIHRleHQsXG4gICAgICBkZXB0aDogMCxcbiAgICAgIHN0YWdlTmFtZTogZXZlbnQuc3RhZ2VOYW1lLFxuICAgICAgc3RhZ2VJZCxcbiAgICAgIHN1YmZsb3dJZDogc2ZJZCxcbiAgICB9KTtcbiAgICB0aGlzLmZsdXNoT3BzKGV2ZW50LnN0YWdlTmFtZSwgc2ZJZCwgc3RhZ2VJZCk7XG4gIH1cblxuICBvbkRlY2lzaW9uKGV2ZW50OiBGbG93RGVjaXNpb25FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGRlY2lkZXJTdGFnZUlkRWFybHkgPSBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdGFnZUlkO1xuXG4gICAgLy8gRW1pdCB0aGUgZGVjaWRlciBzdGFnZSBlbnRyeSAoZGVjaWRlcnMgZG9uJ3QgZmlyZSBvblN0YWdlRXhlY3V0ZWQpXG4gICAgY29uc3Qgc2ZLZXkgPSBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQgPz8gJyc7XG4gICAgY29uc3Qgc3RhZ2VOdW0gPSB0aGlzLmluY3JlbWVudFN0YWdlQ291bnRlcihzZktleSk7XG4gICAgY29uc3QgaXNGaXJzdCA9IHRoaXMuY29uc3VtZUZpcnN0U3RhZ2VGbGFnKHNmS2V5KTtcblxuICAgIGNvbnN0IHN0YWdlQ3R4OiBTdGFnZVJlbmRlckNvbnRleHQgPSB7XG4gICAgICBzdGFnZU5hbWU6IGV2ZW50LmRlY2lkZXIsXG4gICAgICBzdGFnZU51bWJlcjogc3RhZ2VOdW0sXG4gICAgICBpc0ZpcnN0LFxuICAgICAgZGVzY3JpcHRpb246IGV2ZW50LmRlc2NyaXB0aW9uLFxuICAgIH07XG4gICAgY29uc3Qgc3RhZ2VUZXh0ID0gdGhpcy5yZW5kZXJlcj8ucmVuZGVyU3RhZ2U/LihzdGFnZUN0eCkgPz8gdGhpcy5kZWZhdWx0UmVuZGVyU3RhZ2Uoc3RhZ2VDdHgpO1xuXG4gICAgdGhpcy5lbnRyaWVzLnB1c2goe1xuICAgICAgdHlwZTogJ3N0YWdlJyxcbiAgICAgIHRleHQ6IHN0YWdlVGV4dCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgc3RhZ2VOYW1lOiBldmVudC5kZWNpZGVyLFxuICAgICAgc3RhZ2VJZDogZGVjaWRlclN0YWdlSWRFYXJseSxcbiAgICAgIHN1YmZsb3dJZDogZXZlbnQudHJhdmVyc2FsQ29udGV4dD8uc3ViZmxvd0lkLFxuICAgIH0pO1xuICAgIHRoaXMuZmx1c2hPcHMoZXZlbnQuZGVjaWRlciwgZXZlbnQudHJhdmVyc2FsQ29udGV4dD8uc3ViZmxvd0lkLCBkZWNpZGVyU3RhZ2VJZEVhcmx5KTtcblxuICAgIC8vIEVtaXQgdGhlIGNvbmRpdGlvbiBlbnRyeSBhcyBhIG5lc3RlZCBzdWItaXRlbSAoZGVwdGggMSkgb2YgdGhlIHN0YWdlIGFib3ZlLlxuICAgIC8vIERlY2lzaW9uIG91dGNvbWUgaXMgYSBkZXRhaWwgb2YgdGhlIGRlY2lkZXIgc3RhZ2UsIG5vdCBhIHNlcGFyYXRlIHRvcC1sZXZlbCBlbnRyeS5cbiAgICBjb25zdCBkZWNpc2lvbkN0eDogRGVjaXNpb25SZW5kZXJDb250ZXh0ID0ge1xuICAgICAgZGVjaWRlcjogZXZlbnQuZGVjaWRlcixcbiAgICAgIGNob3NlbjogZXZlbnQuY2hvc2VuLFxuICAgICAgZGVzY3JpcHRpb246IGV2ZW50LmRlc2NyaXB0aW9uLFxuICAgICAgcmF0aW9uYWxlOiBldmVudC5yYXRpb25hbGUsXG4gICAgICBldmlkZW5jZTogZXZlbnQuZXZpZGVuY2UsXG4gICAgfTtcbiAgICBjb25zdCBjb25kaXRpb25UZXh0ID0gdGhpcy5yZW5kZXJlcj8ucmVuZGVyRGVjaXNpb24/LihkZWNpc2lvbkN0eCkgPz8gdGhpcy5kZWZhdWx0UmVuZGVyRGVjaXNpb24oZGVjaXNpb25DdHgpO1xuICAgIHRoaXMuZW50cmllcy5wdXNoKHtcbiAgICAgIHR5cGU6ICdjb25kaXRpb24nLFxuICAgICAgdGV4dDogY29uZGl0aW9uVGV4dCxcbiAgICAgIGRlcHRoOiAxLFxuICAgICAgc3RhZ2VOYW1lOiBldmVudC5kZWNpZGVyLFxuICAgICAgc3RhZ2VJZDogZGVjaWRlclN0YWdlSWRFYXJseSxcbiAgICAgIHN1YmZsb3dJZDogZXZlbnQudHJhdmVyc2FsQ29udGV4dD8uc3ViZmxvd0lkLFxuICAgIH0pO1xuICB9XG5cbiAgb25OZXh0KCk6IHZvaWQge1xuICAgIC8vIE5vLW9wLiBvblN0YWdlRXhlY3V0ZWQgYWxyZWFkeSBoYXMgdGhlIGRlc2NyaXB0aW9uIGZvciB0aGUgbmV4dCBzdGFnZS5cbiAgICAvLyBGb3IgZGVjaWRlcnMgKG5vIG9uU3RhZ2VFeGVjdXRlZCksIG9uRGVjaXNpb24gaGFuZGxlcyB0aGUgYW5ub3VuY2VtZW50LlxuICB9XG5cbiAgb25Gb3JrKGV2ZW50OiBGbG93Rm9ya0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY3R4OiBGb3JrUmVuZGVyQ29udGV4dCA9IHsgY2hpbGRyZW46IGV2ZW50LmNoaWxkcmVuIH07XG4gICAgY29uc3QgdGV4dCA9IHRoaXMucmVuZGVyZXI/LnJlbmRlckZvcms/LihjdHgpID8/IHRoaXMuZGVmYXVsdFJlbmRlckZvcmsoY3R4KTtcbiAgICB0aGlzLmVudHJpZXMucHVzaCh7XG4gICAgICB0eXBlOiAnZm9yaycsXG4gICAgICB0ZXh0LFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBzdGFnZUlkOiBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdGFnZUlkLFxuICAgICAgc3ViZmxvd0lkOiBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQsXG4gICAgfSk7XG4gIH1cblxuICBvblNlbGVjdGVkKGV2ZW50OiBGbG93U2VsZWN0ZWRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGN0eDogU2VsZWN0ZWRSZW5kZXJDb250ZXh0ID0ge1xuICAgICAgc2VsZWN0ZWQ6IGV2ZW50LnNlbGVjdGVkLFxuICAgICAgdG90YWw6IGV2ZW50LnRvdGFsLFxuICAgICAgZXZpZGVuY2U6IGV2ZW50LmV2aWRlbmNlLFxuICAgIH07XG4gICAgY29uc3QgdGV4dCA9IHRoaXMucmVuZGVyZXI/LnJlbmRlclNlbGVjdGVkPy4oY3R4KSA/PyB0aGlzLmRlZmF1bHRSZW5kZXJTZWxlY3RlZChjdHgpO1xuICAgIHRoaXMuZW50cmllcy5wdXNoKHtcbiAgICAgIHR5cGU6ICdzZWxlY3RvcicsXG4gICAgICB0ZXh0LFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBzdGFnZUlkOiBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdGFnZUlkLFxuICAgICAgc3ViZmxvd0lkOiBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQsXG4gICAgfSk7XG4gIH1cblxuICBvblN1YmZsb3dFbnRyeShldmVudDogRmxvd1N1YmZsb3dFdmVudCk6IHZvaWQge1xuICAgIC8vIFJlc2V0IHN0YWdlIGNvdW50ZXIgZm9yIHRoaXMgc3ViZmxvdyBzbyBzdGFnZXMgc3RhcnQgYXQgXCJTdGFnZSAxXCIgb24gcmUtZW50cnlcbiAgICBjb25zdCBzZktleSA9IGV2ZW50LnN1YmZsb3dJZCA/PyAnJztcbiAgICB0aGlzLnN0YWdlQ291bnRlcnMuZGVsZXRlKHNmS2V5KTtcbiAgICB0aGlzLmZpcnN0U3RhZ2VGbGFncy5kZWxldGUoc2ZLZXkpO1xuXG4gICAgY29uc3QgY3R4OiBTdWJmbG93UmVuZGVyQ29udGV4dCA9IHtcbiAgICAgIG5hbWU6IGV2ZW50Lm5hbWUsXG4gICAgICBkaXJlY3Rpb246ICdlbnRyeScsXG4gICAgICBkZXNjcmlwdGlvbjogZXZlbnQuZGVzY3JpcHRpb24sXG4gICAgfTtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy5yZW5kZXJlcj8ucmVuZGVyU3ViZmxvdz8uKGN0eCkgPz8gdGhpcy5kZWZhdWx0UmVuZGVyU3ViZmxvdyhjdHgpO1xuICAgIHRoaXMuZW50cmllcy5wdXNoKHtcbiAgICAgIHR5cGU6ICdzdWJmbG93JyxcbiAgICAgIHRleHQsXG4gICAgICBkZXB0aDogMCxcbiAgICAgIHN0YWdlTmFtZTogZXZlbnQubmFtZSxcbiAgICAgIHN0YWdlSWQ6IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN0YWdlSWQsXG4gICAgICBzdWJmbG93SWQ6IGV2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN1YmZsb3dJZCxcbiAgICB9KTtcbiAgfVxuXG4gIG9uU3ViZmxvd0V4aXQoZXZlbnQ6IEZsb3dTdWJmbG93RXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjdHg6IFN1YmZsb3dSZW5kZXJDb250ZXh0ID0ge1xuICAgICAgbmFtZTogZXZlbnQubmFtZSxcbiAgICAgIGRpcmVjdGlvbjogJ2V4aXQnLFxuICAgIH07XG4gICAgY29uc3QgdGV4dCA9IHRoaXMucmVuZGVyZXI/LnJlbmRlclN1YmZsb3c/LihjdHgpID8/IHRoaXMuZGVmYXVsdFJlbmRlclN1YmZsb3coY3R4KTtcbiAgICB0aGlzLmVudHJpZXMucHVzaCh7XG4gICAgICB0eXBlOiAnc3ViZmxvdycsXG4gICAgICB0ZXh0LFxuICAgICAgZGVwdGg6IDAsXG4gICAgICBzdGFnZU5hbWU6IGV2ZW50Lm5hbWUsXG4gICAgICBzdGFnZUlkOiBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdGFnZUlkLFxuICAgICAgc3ViZmxvd0lkOiBldmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQsXG4gICAgfSk7XG4gIH1cblxuICBvbkxvb3AoZXZlbnQ6IEZsb3dMb29wRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjdHg6IExvb3BSZW5kZXJDb250ZXh0ID0ge1xuICAgICAgdGFyZ2V0OiBldmVudC50YXJnZXQsXG4gICAgICBpdGVyYXRpb246IGV2ZW50Lml0ZXJhdGlvbixcbiAgICAgIGRlc2NyaXB0aW9uOiBldmVudC5kZXNjcmlwdGlvbixcbiAgICB9O1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlbmRlcmVyPy5yZW5kZXJMb29wPy4oY3R4KSA/PyB0aGlzLmRlZmF1bHRSZW5kZXJMb29wKGN0eCk7XG4gICAgdGhpcy5lbnRyaWVzLnB1c2goe1xuICAgICAgdHlwZTogJ2xvb3AnLFxuICAgICAgdGV4dCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgc3RhZ2VJZDogZXZlbnQudHJhdmVyc2FsQ29udGV4dD8uc3RhZ2VJZCxcbiAgICAgIHN1YmZsb3dJZDogZXZlbnQudHJhdmVyc2FsQ29udGV4dD8uc3ViZmxvd0lkLFxuICAgIH0pO1xuICB9XG5cbiAgb25CcmVhayhldmVudDogRmxvd0JyZWFrRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjdHg6IEJyZWFrUmVuZGVyQ29udGV4dCA9IHsgc3RhZ2VOYW1lOiBldmVudC5zdGFnZU5hbWUgfTtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy5yZW5kZXJlcj8ucmVuZGVyQnJlYWs/LihjdHgpID8/IHRoaXMuZGVmYXVsdFJlbmRlckJyZWFrKGN0eCk7XG4gICAgdGhpcy5lbnRyaWVzLnB1c2goe1xuICAgICAgdHlwZTogJ2JyZWFrJyxcbiAgICAgIHRleHQsXG4gICAgICBkZXB0aDogMCxcbiAgICAgIHN0YWdlTmFtZTogZXZlbnQuc3RhZ2VOYW1lLFxuICAgICAgc3RhZ2VJZDogZXZlbnQudHJhdmVyc2FsQ29udGV4dD8uc3RhZ2VJZCxcbiAgICAgIHN1YmZsb3dJZDogZXZlbnQudHJhdmVyc2FsQ29udGV4dD8uc3ViZmxvd0lkLFxuICAgIH0pO1xuICB9XG5cbiAgb25QYXVzZShldmVudDogRmxvd1BhdXNlRXZlbnQgfCB7IHN0YWdlTmFtZT86IHN0cmluZzsgc3RhZ2VJZD86IHN0cmluZyB9KTogdm9pZCB7XG4gICAgLy8gT25seSBoYW5kbGUgRmxvd1BhdXNlRXZlbnQgKGZyb20gRmxvd1JlY29yZGVyIGNoYW5uZWwpOyBpZ25vcmUgc2NvcGUgUGF1c2VFdmVudC5cbiAgICAvLyBGbG93UGF1c2VFdmVudCBoYXMgJ3N1YmZsb3dQYXRoJywgc2NvcGUgUGF1c2VFdmVudCBoYXMgJ3BpcGVsaW5lSWQnLlxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXZlbnQsICdwaXBlbGluZUlkJykpIHJldHVybjtcbiAgICBjb25zdCBmbG93RXZlbnQgPSBldmVudCBhcyBGbG93UGF1c2VFdmVudDtcbiAgICBpZiAoIWZsb3dFdmVudC5zdGFnZU5hbWUgfHwgIWZsb3dFdmVudC5zdGFnZUlkKSByZXR1cm47XG4gICAgY29uc3QgdGV4dCA9IGBFeGVjdXRpb24gcGF1c2VkIGF0ICR7Zmxvd0V2ZW50LnN0YWdlTmFtZX0uYDtcbiAgICB0aGlzLmVudHJpZXMucHVzaCh7XG4gICAgICB0eXBlOiAncGF1c2UnLFxuICAgICAgdGV4dCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgc3RhZ2VOYW1lOiBmbG93RXZlbnQuc3RhZ2VOYW1lLFxuICAgICAgc3RhZ2VJZDogZmxvd0V2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN0YWdlSWQgPz8gZmxvd0V2ZW50LnN0YWdlSWQsXG4gICAgICBzdWJmbG93SWQ6IGZsb3dFdmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQsXG4gICAgfSk7XG4gIH1cblxuICBvblJlc3VtZShldmVudDogRmxvd1Jlc3VtZUV2ZW50IHwgeyBzdGFnZU5hbWU/OiBzdHJpbmc7IHN0YWdlSWQ/OiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIC8vIE9ubHkgaGFuZGxlIEZsb3dSZXN1bWVFdmVudCAoZnJvbSBGbG93UmVjb3JkZXIgY2hhbm5lbCk7IGlnbm9yZSBzY29wZSBSZXN1bWVFdmVudC5cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV2ZW50LCAncGlwZWxpbmVJZCcpKSByZXR1cm47XG4gICAgY29uc3QgZmxvd0V2ZW50ID0gZXZlbnQgYXMgRmxvd1Jlc3VtZUV2ZW50O1xuICAgIGlmICghZmxvd0V2ZW50LnN0YWdlTmFtZSB8fCAhZmxvd0V2ZW50LnN0YWdlSWQpIHJldHVybjtcbiAgICBjb25zdCBzdWZmaXggPSBmbG93RXZlbnQuaGFzSW5wdXQgPyAnIHdpdGggaW5wdXQuJyA6ICcuJztcbiAgICBjb25zdCB0ZXh0ID0gYEV4ZWN1dGlvbiByZXN1bWVkIGF0ICR7Zmxvd0V2ZW50LnN0YWdlTmFtZX0ke3N1ZmZpeH1gO1xuICAgIHRoaXMuZW50cmllcy5wdXNoKHtcbiAgICAgIHR5cGU6ICdyZXN1bWUnLFxuICAgICAgdGV4dCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgc3RhZ2VOYW1lOiBmbG93RXZlbnQuc3RhZ2VOYW1lLFxuICAgICAgc3RhZ2VJZDogZmxvd0V2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN0YWdlSWQgPz8gZmxvd0V2ZW50LnN0YWdlSWQsXG4gICAgICBzdWJmbG93SWQ6IGZsb3dFdmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBlcnJvcnMgZnJvbSBib3RoIGNoYW5uZWxzOlxuICAgKiAtIEZsb3dSZWNvcmRlci5vbkVycm9yIChGbG93RXJyb3JFdmVudCB3aXRoIG1lc3NhZ2UgKyBzdHJ1Y3R1cmVkRXJyb3IpXG4gICAqIC0gUmVjb3JkZXIub25FcnJvciAoRXJyb3JFdmVudCBmcm9tIHNjb3BlIHN5c3RlbSDigJQgaWdub3JlZCBmb3IgbmFycmF0aXZlKVxuICAgKi9cbiAgb25FcnJvcihldmVudDogRmxvd0Vycm9yRXZlbnQgfCB7IHN0YWdlTmFtZT86IHN0cmluZzsgbWVzc2FnZT86IHN0cmluZyB9KTogdm9pZCB7XG4gICAgLy8gT25seSBoYW5kbGUgZmxvdyBlcnJvcnMgKHdoaWNoIGhhdmUgYG1lc3NhZ2VgIGFuZCBgc3RydWN0dXJlZEVycm9yYClcbiAgICBpZiAodHlwZW9mIChldmVudCBhcyBGbG93RXJyb3JFdmVudCkubWVzc2FnZSAhPT0gJ3N0cmluZycpIHJldHVybjtcbiAgICBjb25zdCBmbG93RXZlbnQgPSBldmVudCBhcyBGbG93RXJyb3JFdmVudDtcblxuICAgIGxldCB2YWxpZGF0aW9uSXNzdWVzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKGZsb3dFdmVudC5zdHJ1Y3R1cmVkRXJyb3I/Lmlzc3Vlcz8ubGVuZ3RoKSB7XG4gICAgICB2YWxpZGF0aW9uSXNzdWVzID0gZmxvd0V2ZW50LnN0cnVjdHVyZWRFcnJvci5pc3N1ZXNcbiAgICAgICAgLm1hcCgoaXNzdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBwYXRoID0gaXNzdWUucGF0aC5sZW5ndGggPiAwID8gaXNzdWUucGF0aC5qb2luKCcuJykgOiAnKHJvb3QpJztcbiAgICAgICAgICByZXR1cm4gYCR7cGF0aH06ICR7aXNzdWUubWVzc2FnZX1gO1xuICAgICAgICB9KVxuICAgICAgICAuam9pbignOyAnKTtcbiAgICB9XG5cbiAgICBjb25zdCBjdHg6IEVycm9yUmVuZGVyQ29udGV4dCA9IHtcbiAgICAgIHN0YWdlTmFtZTogZmxvd0V2ZW50LnN0YWdlTmFtZSxcbiAgICAgIG1lc3NhZ2U6IGZsb3dFdmVudC5tZXNzYWdlLFxuICAgICAgdmFsaWRhdGlvbklzc3VlcyxcbiAgICB9O1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlbmRlcmVyPy5yZW5kZXJFcnJvcj8uKGN0eCkgPz8gdGhpcy5kZWZhdWx0UmVuZGVyRXJyb3IoY3R4KTtcbiAgICB0aGlzLmVudHJpZXMucHVzaCh7XG4gICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgdGV4dCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgc3RhZ2VOYW1lOiBmbG93RXZlbnQuc3RhZ2VOYW1lLFxuICAgICAgc3RhZ2VJZDogZmxvd0V2ZW50LnRyYXZlcnNhbENvbnRleHQ/LnN0YWdlSWQsXG4gICAgICBzdWJmbG93SWQ6IGZsb3dFdmVudC50cmF2ZXJzYWxDb250ZXh0Py5zdWJmbG93SWQsXG4gICAgfSk7XG4gIH1cblxuICAvLyDilIDilIAgT3V0cHV0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKiBSZXR1cm5zIHN0cnVjdHVyZWQgZW50cmllcyBmb3IgcHJvZ3JhbW1hdGljIGNvbnN1bXB0aW9uLiAqL1xuICBnZXRFbnRyaWVzKCk6IENvbWJpbmVkTmFycmF0aXZlRW50cnlbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmVudHJpZXNdO1xuICB9XG5cbiAgLyoqIFJldHVybnMgZm9ybWF0dGVkIG5hcnJhdGl2ZSBsaW5lcyAoc2FtZSBvdXRwdXQgYXMgQ29tYmluZWROYXJyYXRpdmVCdWlsZGVyLmJ1aWxkKS4gKi9cbiAgZ2V0TmFycmF0aXZlKGluZGVudCA9ICcgICcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcy5tYXAoKGVudHJ5KSA9PiBgJHtpbmRlbnQucmVwZWF0KGVudHJ5LmRlcHRoKX0ke2VudHJ5LnRleHR9YCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBlbnRyaWVzIGdyb3VwZWQgYnkgc3ViZmxvd0lkIGZvciBzdHJ1Y3R1cmVkIGFjY2Vzcy5cbiAgICogUm9vdC1sZXZlbCBlbnRyaWVzIGhhdmUgc3ViZmxvd0lkID0gdW5kZWZpbmVkLlxuICAgKi9cbiAgZ2V0RW50cmllc0J5U3ViZmxvdygpOiBSZWNvcmQ8c3RyaW5nLCBDb21iaW5lZE5hcnJhdGl2ZUVudHJ5W10+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIENvbWJpbmVkTmFycmF0aXZlRW50cnlbXT4gPSB7ICcnOiBbXSB9O1xuICAgIGZvciAoY29uc3QgZW50cnkgb2YgdGhpcy5lbnRyaWVzKSB7XG4gICAgICBjb25zdCBrZXkgPSBlbnRyeS5zdWJmbG93SWQgPz8gJyc7XG4gICAgICBpZiAoIXJlc3VsdFtrZXldKSByZXN1bHRba2V5XSA9IFtdO1xuICAgICAgcmVzdWx0W2tleV0ucHVzaChlbnRyeSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKiogQ2xlYXJzIGFsbCBzdGF0ZS4gQ2FsbGVkIGF1dG9tYXRpY2FsbHkgYmVmb3JlIGVhY2ggcnVuLiAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmVudHJpZXMgPSBbXTtcbiAgICB0aGlzLnBlbmRpbmdPcHMuY2xlYXIoKTtcbiAgICB0aGlzLnN0YWdlQ291bnRlcnMuY2xlYXIoKTtcbiAgICB0aGlzLmZpcnN0U3RhZ2VGbGFncy5jbGVhcigpO1xuICB9XG5cbiAgLy8g4pSA4pSAIFByaXZhdGUgaGVscGVycyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKiogSW5jcmVtZW50IGFuZCByZXR1cm4gdGhlIHN0YWdlIGNvdW50ZXIgZm9yIGEgZ2l2ZW4gc3ViZmxvdyAoJycgPSByb290KS4gKi9cbiAgcHJpdmF0ZSBpbmNyZW1lbnRTdGFnZUNvdW50ZXIoc3ViZmxvd0tleTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5zdGFnZUNvdW50ZXJzLmdldChzdWJmbG93S2V5KSA/PyAwO1xuICAgIGNvbnN0IG5leHQgPSBjdXJyZW50ICsgMTtcbiAgICB0aGlzLnN0YWdlQ291bnRlcnMuc2V0KHN1YmZsb3dLZXksIG5leHQpO1xuICAgIHJldHVybiBuZXh0O1xuICB9XG5cbiAgLyoqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGlzIHRoZSBmaXJzdCBzdGFnZSBmb3IgdGhlIGdpdmVuIHN1YmZsb3csIGNvbnN1bWluZyB0aGUgZmxhZy4gKi9cbiAgcHJpdmF0ZSBjb25zdW1lRmlyc3RTdGFnZUZsYWcoc3ViZmxvd0tleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmZpcnN0U3RhZ2VGbGFncy5oYXMoc3ViZmxvd0tleSkpIHtcbiAgICAgIHRoaXMuZmlyc3RTdGFnZUZsYWdzLnNldChzdWJmbG93S2V5LCBmYWxzZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBidWZmZXJPcChzdGFnZU5hbWU6IHN0cmluZywgb3A6IE9taXQ8QnVmZmVyZWRPcCwgJ3N0ZXBOdW1iZXInPik6IHZvaWQge1xuICAgIGxldCBvcHMgPSB0aGlzLnBlbmRpbmdPcHMuZ2V0KHN0YWdlTmFtZSk7XG4gICAgaWYgKCFvcHMpIHtcbiAgICAgIG9wcyA9IFtdO1xuICAgICAgdGhpcy5wZW5kaW5nT3BzLnNldChzdGFnZU5hbWUsIG9wcyk7XG4gICAgfVxuICAgIG9wcy5wdXNoKHsgLi4ub3AsIHN0ZXBOdW1iZXI6IG9wcy5sZW5ndGggKyAxIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmbHVzaE9wcyhzdGFnZU5hbWU6IHN0cmluZywgc3ViZmxvd0lkPzogc3RyaW5nLCBzdGFnZUlkPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgb3BzID0gdGhpcy5wZW5kaW5nT3BzLmdldChzdGFnZU5hbWUpO1xuICAgIGlmICghb3BzIHx8IG9wcy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIGZvciAoY29uc3Qgb3Agb2Ygb3BzKSB7XG4gICAgICBjb25zdCB2YWx1ZVN1bW1hcnkgPSB0aGlzLmZvcm1hdFZhbHVlKG9wLnJhd1ZhbHVlLCB0aGlzLm1heFZhbHVlTGVuZ3RoKTtcbiAgICAgIGNvbnN0IG9wQ3R4OiBPcFJlbmRlckNvbnRleHQgPSB7XG4gICAgICAgIHR5cGU6IG9wLnR5cGUsXG4gICAgICAgIGtleTogb3Aua2V5LFxuICAgICAgICByYXdWYWx1ZTogb3AucmF3VmFsdWUsXG4gICAgICAgIHZhbHVlU3VtbWFyeSxcbiAgICAgICAgb3BlcmF0aW9uOiBvcC5vcGVyYXRpb24sXG4gICAgICAgIHN0ZXBOdW1iZXI6IG9wLnN0ZXBOdW1iZXIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCB0ZXh0ID0gdGhpcy5yZW5kZXJlcj8ucmVuZGVyT3AgPyB0aGlzLnJlbmRlcmVyLnJlbmRlck9wKG9wQ3R4KSA6IHRoaXMuZGVmYXVsdFJlbmRlck9wKG9wQ3R4KTtcblxuICAgICAgaWYgKHRleHQgPT0gbnVsbCkgY29udGludWU7IC8vIHJlbmRlcmVyIGV4Y2x1ZGVkIHRoaXMgb3AgKG51bGwgb3IgdW5kZWZpbmVkKVxuXG4gICAgICB0aGlzLmVudHJpZXMucHVzaCh7XG4gICAgICAgIHR5cGU6ICdzdGVwJyxcbiAgICAgICAgdGV4dCxcbiAgICAgICAgZGVwdGg6IDEsXG4gICAgICAgIHN0YWdlTmFtZSxcbiAgICAgICAgc3RhZ2VJZCxcbiAgICAgICAgc3RlcE51bWJlcjogb3Auc3RlcE51bWJlcixcbiAgICAgICAgc3ViZmxvd0lkLFxuICAgICAgICBrZXk6IG9wLmtleSxcbiAgICAgICAgcmF3VmFsdWU6IG9wLnJhd1ZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5wZW5kaW5nT3BzLmRlbGV0ZShzdGFnZU5hbWUpO1xuICB9XG5cbiAgLy8g4pSA4pSAIERlZmF1bHQgcmVuZGVyZXJzICh1c2VkIHdoZW4gbm8gY3VzdG9tIHJlbmRlcmVyIGlzIHByb3ZpZGVkKSDilIDilIDilIDilIBcblxuICBwcml2YXRlIGRlZmF1bHRSZW5kZXJTdGFnZShjdHg6IFN0YWdlUmVuZGVyQ29udGV4dCk6IHN0cmluZyB7XG4gICAgY29uc3QgaW5uZXIgPSBjdHguaXNGaXJzdFxuICAgICAgPyBjdHguZGVzY3JpcHRpb25cbiAgICAgICAgPyBgVGhlIHByb2Nlc3MgYmVnYW46ICR7Y3R4LmRlc2NyaXB0aW9ufS5gXG4gICAgICAgIDogYFRoZSBwcm9jZXNzIGJlZ2FuIHdpdGggJHtjdHguc3RhZ2VOYW1lfS5gXG4gICAgICA6IGN0eC5kZXNjcmlwdGlvblxuICAgICAgPyBgTmV4dCBzdGVwOiAke2N0eC5kZXNjcmlwdGlvbn0uYFxuICAgICAgOiBgTmV4dCwgaXQgbW92ZWQgb24gdG8gJHtjdHguc3RhZ2VOYW1lfS5gO1xuICAgIHJldHVybiBgU3RhZ2UgJHtjdHguc3RhZ2VOdW1iZXJ9OiAke2lubmVyfWA7XG4gIH1cblxuICBwcml2YXRlIGRlZmF1bHRSZW5kZXJPcChjdHg6IE9wUmVuZGVyQ29udGV4dCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RlcFByZWZpeCA9IHRoaXMuaW5jbHVkZVN0ZXBOdW1iZXJzID8gYFN0ZXAgJHtjdHguc3RlcE51bWJlcn06IGAgOiAnJztcbiAgICBpZiAoY3R4LnR5cGUgPT09ICdyZWFkJykge1xuICAgICAgcmV0dXJuIHRoaXMuaW5jbHVkZVZhbHVlcyAmJiBjdHgudmFsdWVTdW1tYXJ5XG4gICAgICAgID8gYCR7c3RlcFByZWZpeH1SZWFkICR7Y3R4LmtleX0gPSAke2N0eC52YWx1ZVN1bW1hcnl9YFxuICAgICAgICA6IGAke3N0ZXBQcmVmaXh9UmVhZCAke2N0eC5rZXl9YDtcbiAgICB9XG4gICAgaWYgKGN0eC5vcGVyYXRpb24gPT09ICdkZWxldGUnKSB7XG4gICAgICByZXR1cm4gYCR7c3RlcFByZWZpeH1EZWxldGUgJHtjdHgua2V5fWA7XG4gICAgfVxuICAgIGlmIChjdHgub3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgcmV0dXJuIHRoaXMuaW5jbHVkZVZhbHVlc1xuICAgICAgICA/IGAke3N0ZXBQcmVmaXh9VXBkYXRlICR7Y3R4LmtleX0gPSAke2N0eC52YWx1ZVN1bW1hcnl9YFxuICAgICAgICA6IGAke3N0ZXBQcmVmaXh9VXBkYXRlICR7Y3R4LmtleX1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbmNsdWRlVmFsdWVzID8gYCR7c3RlcFByZWZpeH1Xcml0ZSAke2N0eC5rZXl9ID0gJHtjdHgudmFsdWVTdW1tYXJ5fWAgOiBgJHtzdGVwUHJlZml4fVdyaXRlICR7Y3R4LmtleX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0UmVuZGVyRGVjaXNpb24oY3R4OiBEZWNpc2lvblJlbmRlckNvbnRleHQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJyYW5jaE5hbWUgPSBjdHguY2hvc2VuO1xuICAgIGxldCBjb25kaXRpb25UZXh0OiBzdHJpbmc7XG4gICAgaWYgKGN0eC5ldmlkZW5jZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIGNvbnN0IGV2aWRlbmNlID0gY3R4LmV2aWRlbmNlIGFzIGFueTtcbiAgICAgIGNvbnN0IG1hdGNoZWRSdWxlID0gZXZpZGVuY2UucnVsZXM/LmZpbmQoKHI6IGFueSkgPT4gci5tYXRjaGVkKTtcbiAgICAgIGlmIChtYXRjaGVkUnVsZSkge1xuICAgICAgICBjb25zdCBsYWJlbCA9IG1hdGNoZWRSdWxlLmxhYmVsID8gYCBcIiR7bWF0Y2hlZFJ1bGUubGFiZWx9XCJgIDogJyc7XG4gICAgICAgIGlmIChtYXRjaGVkUnVsZS50eXBlID09PSAnZmlsdGVyJykge1xuICAgICAgICAgIGNvbnN0IHBhcnRzID0gbWF0Y2hlZFJ1bGUuY29uZGl0aW9ucy5tYXAoXG4gICAgICAgICAgICAoYzogYW55KSA9PlxuICAgICAgICAgICAgICBgJHtjLmtleX0gJHtjLmFjdHVhbFN1bW1hcnl9ICR7Yy5vcH0gJHtKU09OLnN0cmluZ2lmeShjLnRocmVzaG9sZCl9ICR7Yy5yZXN1bHQgPyAnXFx1MjcxMycgOiAnXFx1MjcxNyd9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbmRpdGlvblRleHQgPSBgSXQgZXZhbHVhdGVkIFJ1bGUgJHttYXRjaGVkUnVsZS5ydWxlSW5kZXh9JHtsYWJlbH06ICR7cGFydHMuam9pbihcbiAgICAgICAgICAgICcsICcsXG4gICAgICAgICAgKX0sIGFuZCBjaG9zZSAke2JyYW5jaE5hbWV9LmA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcGFydHMgPSBtYXRjaGVkUnVsZS5pbnB1dHMubWFwKChpOiBhbnkpID0+IGAke2kua2V5fT0ke2kudmFsdWVTdW1tYXJ5fWApO1xuICAgICAgICAgIGNvbmRpdGlvblRleHQgPSBgSXQgZXhhbWluZWQke2xhYmVsfTogJHtwYXJ0cy5qb2luKCcsICcpfSwgYW5kIGNob3NlICR7YnJhbmNoTmFtZX0uYDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZXJyb3JlZENvdW50ID0gZXZpZGVuY2UucnVsZXM/LmZpbHRlcigocjogYW55KSA9PiByLm1hdGNoRXJyb3IgIT09IHVuZGVmaW5lZCkubGVuZ3RoID8/IDA7XG4gICAgICAgIGNvbnN0IGVycm9yTm90ZSA9IGVycm9yZWRDb3VudCA+IDAgPyBgICgke2Vycm9yZWRDb3VudH0gcnVsZSR7ZXJyb3JlZENvdW50ID4gMSA/ICdzJyA6ICcnfSB0aHJldyBlcnJvcnMpYCA6ICcnO1xuICAgICAgICBjb25kaXRpb25UZXh0ID0gYE5vIHJ1bGVzIG1hdGNoZWQke2Vycm9yTm90ZX0sIGZlbGwgYmFjayB0byBkZWZhdWx0OiAke2JyYW5jaE5hbWV9LmA7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjdHguZGVzY3JpcHRpb24gJiYgY3R4LnJhdGlvbmFsZSkge1xuICAgICAgY29uZGl0aW9uVGV4dCA9IGBJdCAke2N0eC5kZXNjcmlwdGlvbn06ICR7Y3R4LnJhdGlvbmFsZX0sIHNvIGl0IGNob3NlICR7YnJhbmNoTmFtZX0uYDtcbiAgICB9IGVsc2UgaWYgKGN0eC5kZXNjcmlwdGlvbikge1xuICAgICAgY29uZGl0aW9uVGV4dCA9IGBJdCAke2N0eC5kZXNjcmlwdGlvbn0gYW5kIGNob3NlICR7YnJhbmNoTmFtZX0uYDtcbiAgICB9IGVsc2UgaWYgKGN0eC5yYXRpb25hbGUpIHtcbiAgICAgIGNvbmRpdGlvblRleHQgPSBgQSBkZWNpc2lvbiB3YXMgbWFkZTogJHtjdHgucmF0aW9uYWxlfSwgc28gdGhlIHBhdGggdGFrZW4gd2FzICR7YnJhbmNoTmFtZX0uYDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZGl0aW9uVGV4dCA9IGBBIGRlY2lzaW9uIHdhcyBtYWRlLCBhbmQgdGhlIHBhdGggdGFrZW4gd2FzICR7YnJhbmNoTmFtZX0uYDtcbiAgICB9XG4gICAgcmV0dXJuIGBbQ29uZGl0aW9uXTogJHtjb25kaXRpb25UZXh0fWA7XG4gIH1cblxuICBwcml2YXRlIGRlZmF1bHRSZW5kZXJGb3JrKGN0eDogRm9ya1JlbmRlckNvbnRleHQpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5hbWVzID0gY3R4LmNoaWxkcmVuLmpvaW4oJywgJyk7XG4gICAgcmV0dXJuIGBbUGFyYWxsZWxdOiBGb3JraW5nIGludG8gJHtjdHguY2hpbGRyZW4ubGVuZ3RofSBwYXJhbGxlbCBwYXRoczogJHtuYW1lc30uYDtcbiAgfVxuXG4gIHByaXZhdGUgZGVmYXVsdFJlbmRlclNlbGVjdGVkKGN0eDogU2VsZWN0ZWRSZW5kZXJDb250ZXh0KTogc3RyaW5nIHtcbiAgICBpZiAoY3R4LmV2aWRlbmNlKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgY29uc3QgZXZpZGVuY2UgPSBjdHguZXZpZGVuY2UgYXMgYW55O1xuICAgICAgY29uc3QgbWF0Y2hlZCA9IGV2aWRlbmNlLnJ1bGVzPy5maWx0ZXIoKHI6IGFueSkgPT4gci5tYXRjaGVkKSA/PyBbXTtcbiAgICAgIGNvbnN0IHBhcnRzID0gbWF0Y2hlZC5tYXAoKHI6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBsYWJlbCA9IHIubGFiZWwgPyBgIFwiJHtyLmxhYmVsfVwiYCA6ICcnO1xuICAgICAgICBpZiAoci50eXBlID09PSAnZmlsdGVyJykge1xuICAgICAgICAgIGNvbnN0IGNvbmRzID0gci5jb25kaXRpb25zXG4gICAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgICAoYzogYW55KSA9PlxuICAgICAgICAgICAgICAgIGAke2Mua2V5fSAke2MuYWN0dWFsU3VtbWFyeX0gJHtjLm9wfSAke0pTT04uc3RyaW5naWZ5KGMudGhyZXNob2xkKX0gJHtjLnJlc3VsdCA/ICdcXHUyNzEzJyA6ICdcXHUyNzE3J31gLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgICAgICAgcmV0dXJuIGAke3IuYnJhbmNofSR7bGFiZWx9ICgke2NvbmRzfSlgO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlucHV0cyA9IHIuaW5wdXRzLm1hcCgoaTogYW55KSA9PiBgJHtpLmtleX09JHtpLnZhbHVlU3VtbWFyeX1gKS5qb2luKCcsICcpO1xuICAgICAgICByZXR1cm4gYCR7ci5icmFuY2h9JHtsYWJlbH0gKCR7aW5wdXRzfSlgO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gYFtTZWxlY3RlZF06ICR7Y3R4LnNlbGVjdGVkLmxlbmd0aH0gb2YgJHtjdHgudG90YWx9IHBhdGhzIHNlbGVjdGVkOiAke3BhcnRzLmpvaW4oJzsgJyl9LmA7XG4gICAgfVxuICAgIGNvbnN0IG5hbWVzID0gY3R4LnNlbGVjdGVkLmpvaW4oJywgJyk7XG4gICAgcmV0dXJuIGBbU2VsZWN0ZWRdOiAke2N0eC5zZWxlY3RlZC5sZW5ndGh9IG9mICR7Y3R4LnRvdGFsfSBwYXRocyBzZWxlY3RlZCBmb3IgZXhlY3V0aW9uOiAke25hbWVzfS5gO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0UmVuZGVyU3ViZmxvdyhjdHg6IFN1YmZsb3dSZW5kZXJDb250ZXh0KTogc3RyaW5nIHtcbiAgICBpZiAoY3R4LmRpcmVjdGlvbiA9PT0gJ2V4aXQnKSB7XG4gICAgICByZXR1cm4gYEV4aXRpbmcgdGhlICR7Y3R4Lm5hbWV9IHN1YmZsb3cuYDtcbiAgICB9XG4gICAgcmV0dXJuIGN0eC5kZXNjcmlwdGlvblxuICAgICAgPyBgRW50ZXJpbmcgdGhlICR7Y3R4Lm5hbWV9IHN1YmZsb3c6ICR7Y3R4LmRlc2NyaXB0aW9ufS5gXG4gICAgICA6IGBFbnRlcmluZyB0aGUgJHtjdHgubmFtZX0gc3ViZmxvdy5gO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0UmVuZGVyTG9vcChjdHg6IExvb3BSZW5kZXJDb250ZXh0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gY3R4LmRlc2NyaXB0aW9uXG4gICAgICA/IGBPbiBwYXNzICR7Y3R4Lml0ZXJhdGlvbn06ICR7Y3R4LmRlc2NyaXB0aW9ufSBhZ2Fpbi5gXG4gICAgICA6IGBPbiBwYXNzICR7Y3R4Lml0ZXJhdGlvbn0gdGhyb3VnaCAke2N0eC50YXJnZXR9LmA7XG4gIH1cblxuICBwcml2YXRlIGRlZmF1bHRSZW5kZXJCcmVhayhjdHg6IEJyZWFrUmVuZGVyQ29udGV4dCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBFeGVjdXRpb24gc3RvcHBlZCBhdCAke2N0eC5zdGFnZU5hbWV9LmA7XG4gIH1cblxuICBwcml2YXRlIGRlZmF1bHRSZW5kZXJFcnJvcihjdHg6IEVycm9yUmVuZGVyQ29udGV4dCk6IHN0cmluZyB7XG4gICAgbGV0IHRleHQgPSBgQW4gZXJyb3Igb2NjdXJyZWQgYXQgJHtjdHguc3RhZ2VOYW1lfTogJHtjdHgubWVzc2FnZX0uYDtcbiAgICBpZiAoY3R4LnZhbGlkYXRpb25Jc3N1ZXMpIHtcbiAgICAgIHRleHQgKz0gYCBWYWxpZGF0aW9uIGlzc3VlczogJHtjdHgudmFsaWRhdGlvbklzc3Vlc30uYDtcbiAgICB9XG4gICAgcmV0dXJuIGBbRXJyb3JdOiAke3RleHR9YDtcbiAgfVxufVxuIl19
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* Use CombinedNarrativeRecorder (auto-attached by setEnableNarrative()) instead.
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFycmF0aXZlVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvbmFycmF0aXZlVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogbmFycmF0aXZlVHlwZXMg4oCUIFNoYXJlZCB0eXBlIGRlZmluaXRpb25zIGZvciB0aGUgbmFycmF0aXZlIHJlY29yZGVyIHN5c3RlbS5cbiAqXG4gKiBQcmV2aW91c2x5OiBDb21iaW5lZE5hcnJhdGl2ZUJ1aWxkZXIudHMgKGZpbGUgcmVuYW1lZCBpbiBwb3N0LXJlbGVhc2UgY2xlYW51cCkuXG4gKiBUaGUgQ29tYmluZWROYXJyYXRpdmVCdWlsZGVyIGNsYXNzIHdhcyByZW1vdmVkIGluIHYxLjAuXG4gKiBVc2UgQ29tYmluZWROYXJyYXRpdmVSZWNvcmRlciAoYXV0by1hdHRhY2hlZCBieSBzZXRFbmFibGVOYXJyYXRpdmUoKSkgaW5zdGVhZC5cbiAqL1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFR5cGVzIChrZXB0IOKAlCB1c2VkIGJ5IENvbWJpbmVkTmFycmF0aXZlUmVjb3JkZXIsIEZsb3dDaGFydEV4ZWN1dG9yLCBldGMuKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluZWROYXJyYXRpdmVFbnRyeSB7XG4gIHR5cGU6XG4gICAgfCAnc3RhZ2UnXG4gICAgfCAnc3RlcCdcbiAgICB8ICdjb25kaXRpb24nXG4gICAgfCAnZm9yaydcbiAgICB8ICdzZWxlY3RvcidcbiAgICB8ICdzdWJmbG93J1xuICAgIHwgJ2xvb3AnXG4gICAgfCAnYnJlYWsnXG4gICAgfCAnZXJyb3InXG4gICAgfCAncGF1c2UnXG4gICAgfCAncmVzdW1lJztcbiAgdGV4dDogc3RyaW5nO1xuICBkZXB0aDogbnVtYmVyO1xuICBzdGFnZU5hbWU/OiBzdHJpbmc7XG4gIC8qKiBTdGFibGUgc3RhZ2UgaWRlbnRpZmllciBmcm9tIHRoZSBidWlsZGVyIChtYXRjaGVzIHNwZWMgbm9kZSBpZCkuIFVzZSBmb3IgVUkgc3luYy4gKi9cbiAgc3RhZ2VJZD86IHN0cmluZztcbiAgc3RlcE51bWJlcj86IG51bWJlcjtcbiAgLyoqIFN1YmZsb3cgSUQgd2hlbiB0aGlzIGVudHJ5IHdhcyBnZW5lcmF0ZWQgaW5zaWRlIGEgc3ViZmxvdy4gVW5kZWZpbmVkIGZvciByb290LWxldmVsLiAqL1xuICBzdWJmbG93SWQ/OiBzdHJpbmc7XG4gIC8qKiBSYXcgdmFsdWUgZnJvbSB0aGUgc2NvcGUgZXZlbnQg4oCUIGF2YWlsYWJsZSBmb3IgcHJvZ3JhbW1hdGljIGFjY2VzcyBhbmQgY3VzdG9tIGZvcm1hdHRpbmcuXG4gICAqICBPbmx5IHByZXNlbnQgb24gJ3N0ZXAnIGVudHJpZXMgKHJlYWQvd3JpdGUgb3BzKS4gVGhpcyBpcyBhIGxpdmUgcmVmZXJlbmNlLCBub3QgYSBjbG9uZS5cbiAgICogIFdoZW4gdXNpbmcgU2NvcGVGYWNhZGUsIHJlZGFjdGVkIGtleXMgd2lsbCBoYXZlIHZhbHVlICdbUkVEQUNURURdJyAoc2FuaXRpemVkIHVwc3RyZWFtXG4gICAqICBieSBTY29wZUZhY2FkZSBiZWZvcmUgZGlzcGF0Y2hpbmcgZXZlbnRzIOKAlCB0aGUgcmVjb3JkZXIgZG9lcyBub3QgZW5mb3JjZSByZWRhY3Rpb24pLiAqL1xuICByYXdWYWx1ZT86IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluZWROYXJyYXRpdmVPcHRpb25zIHtcbiAgaW5jbHVkZVN0ZXBOdW1iZXJzPzogYm9vbGVhbjtcbiAgaW5jbHVkZVZhbHVlcz86IGJvb2xlYW47XG4gIGluZGVudD86IHN0cmluZztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBOYXJyYXRpdmVSZW5kZXJlciDigJQgUGx1Z2dhYmxlIHJlbmRlcmluZyBmb3IgQ29tYmluZWROYXJyYXRpdmVSZWNvcmRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBDb250ZXh0IHBhc3NlZCB0byByZW5kZXJTdGFnZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VSZW5kZXJDb250ZXh0IHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIHN0YWdlTnVtYmVyOiBudW1iZXI7XG4gIGlzRmlyc3Q6IGJvb2xlYW47XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vKiogQ29udGV4dCBwYXNzZWQgdG8gcmVuZGVyT3AuIFJldHVybiBudWxsIHRvIGV4Y2x1ZGUgdGhlIGVudHJ5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcFJlbmRlckNvbnRleHQge1xuICB0eXBlOiAncmVhZCcgfCAnd3JpdGUnO1xuICBrZXk6IHN0cmluZztcbiAgcmF3VmFsdWU6IHVua25vd247XG4gIHZhbHVlU3VtbWFyeTogc3RyaW5nO1xuICBvcGVyYXRpb24/OiAnc2V0JyB8ICd1cGRhdGUnIHwgJ2RlbGV0ZSc7XG4gIHN0ZXBOdW1iZXI6IG51bWJlcjtcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlckRlY2lzaW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNpc2lvblJlbmRlckNvbnRleHQge1xuICBkZWNpZGVyOiBzdHJpbmc7XG4gIGNob3Nlbjogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcmF0aW9uYWxlPzogc3RyaW5nO1xuICAvKiogUmF3IGV2aWRlbmNlIGZyb20gZGVjaWRlKCkvc2VsZWN0KCkg4oCUIGF2YWlsYWJsZSBmb3IgY3VzdG9tIHJlbmRlcmluZy4gKi9cbiAgZXZpZGVuY2U/OiB1bmtub3duO1xufVxuXG4vKiogQ29udGV4dCBwYXNzZWQgdG8gcmVuZGVyRm9yay4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9ya1JlbmRlckNvbnRleHQge1xuICBjaGlsZHJlbjogc3RyaW5nW107XG59XG5cbi8qKiBDb250ZXh0IHBhc3NlZCB0byByZW5kZXJTdWJmbG93LiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJmbG93UmVuZGVyQ29udGV4dCB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGlyZWN0aW9uOiAnZW50cnknIHwgJ2V4aXQnO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlckxvb3AuICovXG5leHBvcnQgaW50ZXJmYWNlIExvb3BSZW5kZXJDb250ZXh0IHtcbiAgdGFyZ2V0OiBzdHJpbmc7XG4gIGl0ZXJhdGlvbjogbnVtYmVyO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlckJyZWFrLiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmVha1JlbmRlckNvbnRleHQge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlclNlbGVjdGVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RlZFJlbmRlckNvbnRleHQge1xuICBzZWxlY3RlZDogc3RyaW5nW107XG4gIHRvdGFsOiBudW1iZXI7XG4gIC8qKiBSYXcgZXZpZGVuY2UgZnJvbSBzZWxlY3QoKSDigJQgYXZhaWxhYmxlIGZvciBjdXN0b20gcmVuZGVyaW5nLiAqL1xuICBldmlkZW5jZT86IHVua25vd247XG59XG5cbi8qKiBDb250ZXh0IHBhc3NlZCB0byByZW5kZXJFcnJvci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JSZW5kZXJDb250ZXh0IHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdmFsaWRhdGlvbklzc3Vlcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQbHVnZ2FibGUgcmVuZGVyZXIgZm9yIGN1c3RvbWl6aW5nIG5hcnJhdGl2ZSBvdXRwdXQuXG4gKlxuICogRWFjaCBtZXRob2QgaXMgb3B0aW9uYWwg4oCUIHVuaW1wbGVtZW50ZWQgbWV0aG9kcyBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHRcbiAqIEVuZ2xpc2ggcmVuZGVyZXIuIFJldHVybiBudWxsIGZyb20gcmVuZGVyT3AgdG8gZXhjbHVkZSBhbiBlbnRyeSBlbnRpcmVseS5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZWMgPSBuYXJyYXRpdmUoe1xuICogICByZW5kZXJlcjoge1xuICogICAgIHJlbmRlck9wKGN0eCkge1xuICogICAgICAgaWYgKGN0eC5rZXkuc3RhcnRzV2l0aCgnX2ludGVybmFsJykpIHJldHVybiBudWxsOyAvLyBmaWx0ZXIgb3V0IGludGVybmFsIGtleXNcbiAqICAgICAgIHJldHVybiBgJHtjdHgudHlwZSA9PT0gJ3JlYWQnID8gJ1JlYWQnIDogJ1dyb3RlJ30gJHtjdHgua2V5fTogJHtjdHgudmFsdWVTdW1tYXJ5fWA7XG4gKiAgICAgfSxcbiAqICAgfSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmFycmF0aXZlUmVuZGVyZXIge1xuICByZW5kZXJTdGFnZT8oY3R4OiBTdGFnZVJlbmRlckNvbnRleHQpOiBzdHJpbmc7XG4gIC8qKiBSZXR1cm4gbnVsbCB0byBleGNsdWRlIHRoZSBvcCBmcm9tIHRoZSBuYXJyYXRpdmUuICovXG4gIHJlbmRlck9wPyhjdHg6IE9wUmVuZGVyQ29udGV4dCk6IHN0cmluZyB8IG51bGw7XG4gIHJlbmRlckRlY2lzaW9uPyhjdHg6IERlY2lzaW9uUmVuZGVyQ29udGV4dCk6IHN0cmluZztcbiAgcmVuZGVyRm9yaz8oY3R4OiBGb3JrUmVuZGVyQ29udGV4dCk6IHN0cmluZztcbiAgcmVuZGVyU2VsZWN0ZWQ/KGN0eDogU2VsZWN0ZWRSZW5kZXJDb250ZXh0KTogc3RyaW5nO1xuICByZW5kZXJTdWJmbG93PyhjdHg6IFN1YmZsb3dSZW5kZXJDb250ZXh0KTogc3RyaW5nO1xuICByZW5kZXJMb29wPyhjdHg6IExvb3BSZW5kZXJDb250ZXh0KTogc3RyaW5nO1xuICByZW5kZXJCcmVhaz8oY3R4OiBCcmVha1JlbmRlckNvbnRleHQpOiBzdHJpbmc7XG4gIHJlbmRlckVycm9yPyhjdHg6IEVycm9yUmVuZGVyQ29udGV4dCk6IHN0cmluZztcbn1cbiJdfQ==
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFycmF0aXZlVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvbmFycmF0aXZlVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogbmFycmF0aXZlVHlwZXMg4oCUIFNoYXJlZCB0eXBlIGRlZmluaXRpb25zIGZvciB0aGUgbmFycmF0aXZlIHJlY29yZGVyIHN5c3RlbS5cbiAqXG4gKiBQcmV2aW91c2x5OiBDb21iaW5lZE5hcnJhdGl2ZUJ1aWxkZXIudHMgKGZpbGUgcmVuYW1lZCBpbiBwb3N0LXJlbGVhc2UgY2xlYW51cCkuXG4gKiBUaGUgQ29tYmluZWROYXJyYXRpdmVCdWlsZGVyIGNsYXNzIHdhcyByZW1vdmVkIGluIHYxLjAuXG4gKiBVc2UgQ29tYmluZWROYXJyYXRpdmVSZWNvcmRlciAoYXV0by1hdHRhY2hlZCBieSBzZXRFbmFibGVOYXJyYXRpdmUoKSkgaW5zdGVhZC5cbiAqL1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFR5cGVzIChrZXB0IOKAlCB1c2VkIGJ5IENvbWJpbmVkTmFycmF0aXZlUmVjb3JkZXIsIEZsb3dDaGFydEV4ZWN1dG9yLCBldGMuKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluZWROYXJyYXRpdmVFbnRyeSB7XG4gIHR5cGU6XG4gICAgfCAnc3RhZ2UnXG4gICAgfCAnc3RlcCdcbiAgICB8ICdjb25kaXRpb24nXG4gICAgfCAnZm9yaydcbiAgICB8ICdzZWxlY3RvcidcbiAgICB8ICdzdWJmbG93J1xuICAgIHwgJ2xvb3AnXG4gICAgfCAnYnJlYWsnXG4gICAgfCAnZXJyb3InXG4gICAgfCAncGF1c2UnXG4gICAgfCAncmVzdW1lJztcbiAgdGV4dDogc3RyaW5nO1xuICBkZXB0aDogbnVtYmVyO1xuICBzdGFnZU5hbWU/OiBzdHJpbmc7XG4gIC8qKiBTdGFibGUgc3RhZ2UgaWRlbnRpZmllciBmcm9tIHRoZSBidWlsZGVyIChtYXRjaGVzIHNwZWMgbm9kZSBpZCkuIFVzZSBmb3IgVUkgc3luYy4gKi9cbiAgc3RhZ2VJZD86IHN0cmluZztcbiAgc3RlcE51bWJlcj86IG51bWJlcjtcbiAgLyoqIFN1YmZsb3cgSUQgd2hlbiB0aGlzIGVudHJ5IHdhcyBnZW5lcmF0ZWQgaW5zaWRlIGEgc3ViZmxvdy4gVW5kZWZpbmVkIGZvciByb290LWxldmVsLiAqL1xuICBzdWJmbG93SWQ/OiBzdHJpbmc7XG4gIC8qKiBTY29wZSBrZXkgdGhhdCB3YXMgcmVhZCBvciB3cml0dGVuLiBPbmx5IHByZXNlbnQgb24gJ3N0ZXAnIGVudHJpZXMuXG4gICAqICBVc2UgdGhpcyBmb3Igc3RydWN0dXJlZCBkYXRhIGV4dHJhY3Rpb24gKGUuZy4sIGdyb3VuZGluZyBhbmFseXNpcylcbiAgICogIGluc3RlYWQgb2YgbWF0Y2hpbmcgb24gcmVuZGVyZWQgdGV4dCBzdHJpbmdzLiAqL1xuICBrZXk/OiBzdHJpbmc7XG4gIC8qKiBSYXcgdmFsdWUgZnJvbSB0aGUgc2NvcGUgZXZlbnQg4oCUIGF2YWlsYWJsZSBmb3IgcHJvZ3JhbW1hdGljIGFjY2VzcyBhbmQgY3VzdG9tIGZvcm1hdHRpbmcuXG4gICAqICBPbmx5IHByZXNlbnQgb24gJ3N0ZXAnIGVudHJpZXMgKHJlYWQvd3JpdGUgb3BzKS4gVGhpcyBpcyBhIGxpdmUgcmVmZXJlbmNlLCBub3QgYSBjbG9uZS5cbiAgICogIFdoZW4gdXNpbmcgU2NvcGVGYWNhZGUsIHJlZGFjdGVkIGtleXMgd2lsbCBoYXZlIHZhbHVlICdbUkVEQUNURURdJyAoc2FuaXRpemVkIHVwc3RyZWFtXG4gICAqICBieSBTY29wZUZhY2FkZSBiZWZvcmUgZGlzcGF0Y2hpbmcgZXZlbnRzIOKAlCB0aGUgcmVjb3JkZXIgZG9lcyBub3QgZW5mb3JjZSByZWRhY3Rpb24pLiAqL1xuICByYXdWYWx1ZT86IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluZWROYXJyYXRpdmVPcHRpb25zIHtcbiAgaW5jbHVkZVN0ZXBOdW1iZXJzPzogYm9vbGVhbjtcbiAgaW5jbHVkZVZhbHVlcz86IGJvb2xlYW47XG4gIGluZGVudD86IHN0cmluZztcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBOYXJyYXRpdmVSZW5kZXJlciDigJQgUGx1Z2dhYmxlIHJlbmRlcmluZyBmb3IgQ29tYmluZWROYXJyYXRpdmVSZWNvcmRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBDb250ZXh0IHBhc3NlZCB0byByZW5kZXJTdGFnZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VSZW5kZXJDb250ZXh0IHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIHN0YWdlTnVtYmVyOiBudW1iZXI7XG4gIGlzRmlyc3Q6IGJvb2xlYW47XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vKiogQ29udGV4dCBwYXNzZWQgdG8gcmVuZGVyT3AuIFJldHVybiBudWxsIHRvIGV4Y2x1ZGUgdGhlIGVudHJ5LiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcFJlbmRlckNvbnRleHQge1xuICB0eXBlOiAncmVhZCcgfCAnd3JpdGUnO1xuICBrZXk6IHN0cmluZztcbiAgcmF3VmFsdWU6IHVua25vd247XG4gIHZhbHVlU3VtbWFyeTogc3RyaW5nO1xuICBvcGVyYXRpb24/OiAnc2V0JyB8ICd1cGRhdGUnIHwgJ2RlbGV0ZSc7XG4gIHN0ZXBOdW1iZXI6IG51bWJlcjtcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlckRlY2lzaW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNpc2lvblJlbmRlckNvbnRleHQge1xuICBkZWNpZGVyOiBzdHJpbmc7XG4gIGNob3Nlbjogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcmF0aW9uYWxlPzogc3RyaW5nO1xuICAvKiogUmF3IGV2aWRlbmNlIGZyb20gZGVjaWRlKCkvc2VsZWN0KCkg4oCUIGF2YWlsYWJsZSBmb3IgY3VzdG9tIHJlbmRlcmluZy4gKi9cbiAgZXZpZGVuY2U/OiB1bmtub3duO1xufVxuXG4vKiogQ29udGV4dCBwYXNzZWQgdG8gcmVuZGVyRm9yay4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9ya1JlbmRlckNvbnRleHQge1xuICBjaGlsZHJlbjogc3RyaW5nW107XG59XG5cbi8qKiBDb250ZXh0IHBhc3NlZCB0byByZW5kZXJTdWJmbG93LiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJmbG93UmVuZGVyQ29udGV4dCB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGlyZWN0aW9uOiAnZW50cnknIHwgJ2V4aXQnO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlckxvb3AuICovXG5leHBvcnQgaW50ZXJmYWNlIExvb3BSZW5kZXJDb250ZXh0IHtcbiAgdGFyZ2V0OiBzdHJpbmc7XG4gIGl0ZXJhdGlvbjogbnVtYmVyO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlckJyZWFrLiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmVha1JlbmRlckNvbnRleHQge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbn1cblxuLyoqIENvbnRleHQgcGFzc2VkIHRvIHJlbmRlclNlbGVjdGVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RlZFJlbmRlckNvbnRleHQge1xuICBzZWxlY3RlZDogc3RyaW5nW107XG4gIHRvdGFsOiBudW1iZXI7XG4gIC8qKiBSYXcgZXZpZGVuY2UgZnJvbSBzZWxlY3QoKSDigJQgYXZhaWxhYmxlIGZvciBjdXN0b20gcmVuZGVyaW5nLiAqL1xuICBldmlkZW5jZT86IHVua25vd247XG59XG5cbi8qKiBDb250ZXh0IHBhc3NlZCB0byByZW5kZXJFcnJvci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JSZW5kZXJDb250ZXh0IHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdmFsaWRhdGlvbklzc3Vlcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQbHVnZ2FibGUgcmVuZGVyZXIgZm9yIGN1c3RvbWl6aW5nIG5hcnJhdGl2ZSBvdXRwdXQuXG4gKlxuICogRWFjaCBtZXRob2QgaXMgb3B0aW9uYWwg4oCUIHVuaW1wbGVtZW50ZWQgbWV0aG9kcyBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHRcbiAqIEVuZ2xpc2ggcmVuZGVyZXIuIFJldHVybiBudWxsIGZyb20gcmVuZGVyT3AgdG8gZXhjbHVkZSBhbiBlbnRyeSBlbnRpcmVseS5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZWMgPSBuYXJyYXRpdmUoe1xuICogICByZW5kZXJlcjoge1xuICogICAgIHJlbmRlck9wKGN0eCkge1xuICogICAgICAgaWYgKGN0eC5rZXkuc3RhcnRzV2l0aCgnX2ludGVybmFsJykpIHJldHVybiBudWxsOyAvLyBmaWx0ZXIgb3V0IGludGVybmFsIGtleXNcbiAqICAgICAgIHJldHVybiBgJHtjdHgudHlwZSA9PT0gJ3JlYWQnID8gJ1JlYWQnIDogJ1dyb3RlJ30gJHtjdHgua2V5fTogJHtjdHgudmFsdWVTdW1tYXJ5fWA7XG4gKiAgICAgfSxcbiAqICAgfSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmFycmF0aXZlUmVuZGVyZXIge1xuICByZW5kZXJTdGFnZT8oY3R4OiBTdGFnZVJlbmRlckNvbnRleHQpOiBzdHJpbmc7XG4gIC8qKiBSZXR1cm4gbnVsbCB0byBleGNsdWRlIHRoZSBvcCBmcm9tIHRoZSBuYXJyYXRpdmUuICovXG4gIHJlbmRlck9wPyhjdHg6IE9wUmVuZGVyQ29udGV4dCk6IHN0cmluZyB8IG51bGw7XG4gIHJlbmRlckRlY2lzaW9uPyhjdHg6IERlY2lzaW9uUmVuZGVyQ29udGV4dCk6IHN0cmluZztcbiAgcmVuZGVyRm9yaz8oY3R4OiBGb3JrUmVuZGVyQ29udGV4dCk6IHN0cmluZztcbiAgcmVuZGVyU2VsZWN0ZWQ/KGN0eDogU2VsZWN0ZWRSZW5kZXJDb250ZXh0KTogc3RyaW5nO1xuICByZW5kZXJTdWJmbG93PyhjdHg6IFN1YmZsb3dSZW5kZXJDb250ZXh0KTogc3RyaW5nO1xuICByZW5kZXJMb29wPyhjdHg6IExvb3BSZW5kZXJDb250ZXh0KTogc3RyaW5nO1xuICByZW5kZXJCcmVhaz8oY3R4OiBCcmVha1JlbmRlckNvbnRleHQpOiBzdHJpbmc7XG4gIHJlbmRlckVycm9yPyhjdHg6IEVycm9yUmVuZGVyQ29udGV4dCk6IHN0cmluZztcbn1cbiJdfQ==
|