@horietakehiro/aws-cdk-utul 0.11.3 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +1 -0
- package/index.js +3 -2
- package/lib/stack-manager.d.ts +4 -4
- package/lib/stack-manager.js +17 -17
- package/package.json +1 -1
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.assertions = exports.typed_resource = exports.cfn_resource_types = void 0;
|
|
3
|
+
exports.stack_manager = exports.assertions = exports.typed_resource = exports.cfn_resource_types = void 0;
|
|
4
4
|
exports.cfn_resource_types = require("./lib/types/cfn-resource-types");
|
|
5
5
|
exports.typed_resource = require("./lib/typed-resource");
|
|
6
6
|
exports.assertions = require("./lib/assertions");
|
|
7
|
-
|
|
7
|
+
exports.stack_manager = require("./lib/stack-manager");
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1RUFBbUU7QUFDbkUseURBQXNEO0FBQ3RELGlEQUE4QztBQUM5Qyx1REFBb0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBhcyBjZm5fcmVzb3VyY2VfdHlwZXMgZnJvbVwiLi9saWIvdHlwZXMvY2ZuLXJlc291cmNlLXR5cGVzXCJcbmV4cG9ydCAqIGFzIHR5cGVkX3Jlc291cmNlIGZyb20gXCIuL2xpYi90eXBlZC1yZXNvdXJjZVwiXG5leHBvcnQgKiBhcyBhc3NlcnRpb25zIGZyb20gXCIuL2xpYi9hc3NlcnRpb25zXCJcbmV4cG9ydCAqIGFzIHN0YWNrX21hbmFnZXIgZnJvbSBcIi4vbGliL3N0YWNrLW1hbmFnZXJcIiJdfQ==
|
package/lib/stack-manager.d.ts
CHANGED
|
@@ -27,15 +27,15 @@ export declare class StackManager {
|
|
|
27
27
|
*
|
|
28
28
|
* This method waits until stack deployment gets completed.
|
|
29
29
|
* @param deployStackInput
|
|
30
|
-
* @param
|
|
30
|
+
* @param maxWaitTimeInSeconds the default values is `60 * 60 = 1hour`. Allowed minimum value is `31 seconds`
|
|
31
31
|
*/
|
|
32
|
-
deployStack(deployStackInput: DeployStackInput,
|
|
32
|
+
deployStack(deployStackInput: DeployStackInput, maxWaitTimeInSeconds?: number): Promise<void>;
|
|
33
33
|
/**
|
|
34
34
|
* Destroy the stack
|
|
35
35
|
* @param destroyStackInput
|
|
36
36
|
* @param wait If `true`, this method waits until stack deletion complete. The default value is 'false'
|
|
37
|
-
* @param
|
|
37
|
+
* @param maxWaitTimeInSeconds the default value is `60 * 60 = 1hour`. Allowed minimum value is `31 seconds`. This param will be used only when parameter `wait` is set to 'true'
|
|
38
38
|
*/
|
|
39
|
-
destroyStack(destroyStackInput: DestroyStackInput, wait?: boolean,
|
|
39
|
+
destroyStack(destroyStackInput: DestroyStackInput, wait?: boolean, maxWaitTimeInSeconds?: number): Promise<void>;
|
|
40
40
|
}
|
|
41
41
|
export {};
|
package/lib/stack-manager.js
CHANGED
|
@@ -45,15 +45,15 @@ class StackManager {
|
|
|
45
45
|
*
|
|
46
46
|
* This method waits until stack deployment gets completed.
|
|
47
47
|
* @param deployStackInput
|
|
48
|
-
* @param
|
|
48
|
+
* @param maxWaitTimeInSeconds the default values is `60 * 60 = 1hour`. Allowed minimum value is `31 seconds`
|
|
49
49
|
*/
|
|
50
|
-
async deployStack(deployStackInput,
|
|
51
|
-
if (
|
|
52
|
-
console.debug("set
|
|
53
|
-
|
|
50
|
+
async deployStack(deployStackInput, maxWaitTimeInSeconds) {
|
|
51
|
+
if (maxWaitTimeInSeconds === undefined) {
|
|
52
|
+
console.debug("set 1hour as maxWaitTimeInSeconds default value");
|
|
53
|
+
maxWaitTimeInSeconds = 60 * 60;
|
|
54
54
|
}
|
|
55
|
-
if (
|
|
56
|
-
throw Error("
|
|
55
|
+
if (maxWaitTimeInSeconds <= 30) {
|
|
56
|
+
throw Error("maxWaitTimeInSeconds must be greater than 30");
|
|
57
57
|
}
|
|
58
58
|
console.debug(`check if stack ${this.stack.stackName} exists`);
|
|
59
59
|
let existStacks = [];
|
|
@@ -77,7 +77,7 @@ class StackManager {
|
|
|
77
77
|
TemplateBody: JSON.stringify(assertions_1.Template.fromStack(this.stack)),
|
|
78
78
|
}));
|
|
79
79
|
console.debug(`wait until deploying of stack ${this.stack.stackName} completes`);
|
|
80
|
-
await (0, client_cloudformation_1.waitUntilStackCreateComplete)({ client: this.client, maxWaitTime:
|
|
80
|
+
await (0, client_cloudformation_1.waitUntilStackCreateComplete)({ client: this.client, maxWaitTime: maxWaitTimeInSeconds }, { StackName: this.stack.stackName });
|
|
81
81
|
}
|
|
82
82
|
else {
|
|
83
83
|
try {
|
|
@@ -88,7 +88,7 @@ class StackManager {
|
|
|
88
88
|
TemplateBody: JSON.stringify(assertions_1.Template.fromStack(this.stack)),
|
|
89
89
|
}));
|
|
90
90
|
console.debug(`wait until deploying of stack ${this.stack.stackName} completes`);
|
|
91
|
-
await (0, client_cloudformation_1.waitUntilStackUpdateComplete)({ client: this.client, maxWaitTime:
|
|
91
|
+
await (0, client_cloudformation_1.waitUntilStackUpdateComplete)({ client: this.client, maxWaitTime: maxWaitTimeInSeconds }, { StackName: this.stack.stackName });
|
|
92
92
|
}
|
|
93
93
|
catch (error) {
|
|
94
94
|
if (error instanceof client_cloudformation_1.CloudFormationServiceException &&
|
|
@@ -105,9 +105,9 @@ class StackManager {
|
|
|
105
105
|
* Destroy the stack
|
|
106
106
|
* @param destroyStackInput
|
|
107
107
|
* @param wait If `true`, this method waits until stack deletion complete. The default value is 'false'
|
|
108
|
-
* @param
|
|
108
|
+
* @param maxWaitTimeInSeconds the default value is `60 * 60 = 1hour`. Allowed minimum value is `31 seconds`. This param will be used only when parameter `wait` is set to 'true'
|
|
109
109
|
*/
|
|
110
|
-
async destroyStack(destroyStackInput, wait,
|
|
110
|
+
async destroyStack(destroyStackInput, wait, maxWaitTimeInSeconds) {
|
|
111
111
|
console.debug(`destroy stack ${this.stack.stackName}`);
|
|
112
112
|
await this.client.send(new client_cloudformation_1.DeleteStackCommand({
|
|
113
113
|
StackName: this.stack.stackName,
|
|
@@ -118,15 +118,15 @@ class StackManager {
|
|
|
118
118
|
return;
|
|
119
119
|
}
|
|
120
120
|
console.debug("wait until stack deletion complets");
|
|
121
|
-
if (
|
|
122
|
-
|
|
121
|
+
if (maxWaitTimeInSeconds === undefined) {
|
|
122
|
+
maxWaitTimeInSeconds = 60 * 60;
|
|
123
123
|
}
|
|
124
|
-
if (
|
|
125
|
-
throw Error("
|
|
124
|
+
if (maxWaitTimeInSeconds <= 30) {
|
|
125
|
+
throw Error("maxWaitTimeInSeconds must be greater than 30");
|
|
126
126
|
}
|
|
127
|
-
await (0, client_cloudformation_1.waitUntilStackDeleteComplete)({ client: this.client, maxWaitTime:
|
|
127
|
+
await (0, client_cloudformation_1.waitUntilStackDeleteComplete)({ client: this.client, maxWaitTime: maxWaitTimeInSeconds }, { StackName: this.stack.stackName });
|
|
128
128
|
return;
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
exports.StackManager = StackManager;
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMEVBY3dDO0FBRXhDLHVEQUFrRDtBQVFsRDs7R0FFRztBQUNILE1BQWEsWUFBWTtJQUl2Qjs7OztPQUlHO0lBQ0gsWUFBWSxLQUFlLEVBQUUsTUFBNEI7UUFDdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQWlCO1FBQ3BDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoRSxNQUFNLHNCQUFzQixHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ25ELElBQUksNkNBQXFCLENBQUM7WUFDeEIsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztTQUNoQyxDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDbkQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sS0FBSyxDQUNULHVDQUF1QyxTQUFTLGVBQWUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUM1RSxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxLQUFLLENBQ1gsb0JBQW9CLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxVQUFVLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDNUUsQ0FBQztRQUNGLE1B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LENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDdkMsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxvQkFBb0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUNELElBQUksb0JBQW9CLElBQUksRUFBRSxFQUFFLENBQUM7WUFDL0IsTUFBTyxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQTtRQUM5RCxDQUFDO1FBQ0QsTUFBTSxJQUFBLG9EQUE0QixFQUNoQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxFQUMxRCxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUNwQyxDQUFDO1FBQ0YsT0FBTztJQUNULENBQUM7Q0FDRjtBQXJLRCxvQ0FxS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDbG91ZEZvcm1hdGlvbkNsaWVudCxcbiAgQ2xvdWRGb3JtYXRpb25TZXJ2aWNlRXhjZXB0aW9uLFxuICBDcmVhdGVTdGFja0NvbW1hbmQsXG4gIENyZWF0ZVN0YWNrQ29tbWFuZElucHV0LFxuICBEZWxldGVTdGFja0NvbW1hbmQsXG4gIERlbGV0ZVN0YWNrQ29tbWFuZElucHV0LFxuICBEZXNjcmliZVN0YWNrc0NvbW1hbmQsXG4gIFVwZGF0ZVN0YWNrQ29tbWFuZCxcbiAgVXBkYXRlU3RhY2tDb21tYW5kSW5wdXQsXG4gIHdhaXRVbnRpbFN0YWNrQ3JlYXRlQ29tcGxldGUsXG4gIHdhaXRVbnRpbFN0YWNrRGVsZXRlQ29tcGxldGUsXG4gIHdhaXRVbnRpbFN0YWNrVXBkYXRlQ29tcGxldGUsXG4gIFN0YWNrIGFzIGNmblN0YWNrLFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uXCI7XG5pbXBvcnQgeyBTdGFjayBhcyBjZGtTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXNzZXJ0aW9uc1wiO1xuXG50eXBlIERlcGxveVN0YWNrSW5wdXQgPSBPbWl0PFxuICBDcmVhdGVTdGFja0NvbW1hbmRJbnB1dCB8IFVwZGF0ZVN0YWNrQ29tbWFuZElucHV0LFxuICBcIlN0YWNrTmFtZVwiXG4+O1xudHlwZSBEZXN0cm95U3RhY2tJbnB1dCA9IE9taXQ8RGVsZXRlU3RhY2tDb21tYW5kSW5wdXQsIFwiU3RhY2tOYW1lXCI+O1xuXG4vKipcbiAqIFN0YWNrIE1hbmFnZXIgbWFrZXMgaXQgZWFzaWVyIGFuZCBtb3JlIGVmZmljaWVudCB0aGF0IHlvdSBkZXBsb3koYW5kIGRlc3Ryb3kpIHN0YWNrcyB3aXRoIHNob3J0LXRlcm0tbGlmZWN5Y2xlIGR1cmFpbmcgdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja01hbmFnZXIge1xuICByZWFkb25seSBzdGFjazogY2RrU3RhY2s7XG4gIHJlYWRvbmx5IGNsaWVudDogQ2xvdWRGb3JtYXRpb25DbGllbnQ7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBzdGFjayBzdGFjayB0byBiZSBtYW5hZ2VkXG4gICAqIEBwYXJhbSBjbGllbnQgY2xvdWRmb3JtYXRpb24gc2RrIGNsaWVudCB0byB1c2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKHN0YWNrOiBjZGtTdGFjaywgY2xpZW50OiBDbG91ZEZvcm1hdGlvbkNsaWVudCkge1xuICAgIHRoaXMuc3RhY2sgPSBzdGFjaztcbiAgICB0aGlzLmNsaWVudCA9IGNsaWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgc3BlY2lmaWMgb3V0cHV0IHZhbHVlIGZyb20gdGhlIHN0YWNrXG4gICAqIEBwYXJhbSBvdXRwdXRLZXkgbG9naWNhbCBpZCBvZiBPdXRwdXQgdGhhdCB5b3Ugd2FudCB0byBnZXRcbiAgICogQHJldHVybnNcbiAgICovXG4gIGFzeW5jIGdldFN0YWNrT3V0cHV0KG91dHB1dEtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zb2xlLmRlYnVnKGBnZXQgb3V0cHV0cyBmcm9tIHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9YCk7XG4gICAgY29uc3QgZGVzY3JpYmVTdGFja3NSZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnNlbmQoXG4gICAgICBuZXcgRGVzY3JpYmVTdGFja3NDb21tYW5kKHtcbiAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSxcbiAgICAgIH0pXG4gICAgKTtcbiAgICBjb25zdCBzdGFja3MgPSBkZXNjcmliZVN0YWNrc1Jlc3BvbnNlLlN0YWNrcyA/PyBbXTtcbiAgICBpZiAoc3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIGBmYWlsZWQgdG8gZ2V0IG91dHB1dCB2YWx1ZSB3aXRoIGtleSAke291dHB1dEtleX0gZnJvbSBzdGFjayAke3RoaXMuc3RhY2t9YFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3Qgb3V0cHV0cyA9IHN0YWNrc1swXS5PdXRwdXRzID8/IFtdO1xuICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICBgb3V0cHV0cyBvZiBzdGFjayAke3RoaXMuc3RhY2suc3RhY2tOYW1lfSBhcmUgOiAke0pTT04uc3RyaW5naWZ5KG91dHB1dHMpfWBcbiAgICApO1xuICAgIGNvbnN0IG91dHB1dCA9IG91dHB1dHMuZmlsdGVyKChvKSA9PiBvLk91dHB1dEtleSA9PT0gb3V0cHV0S2V5KTtcbiAgICBpZiAob3V0cHV0Lmxlbmd0aCA9PT0gMCB8fCBvdXRwdXRbMF0uT3V0cHV0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIGBmYWlsZWQgdG8gZ2V0IG91dHB1dCB2YWx1ZSB3aXRoIGtleSAke291dHB1dEtleX0gZnJvbSBzdGFjayAke3RoaXMuc3RhY2t9YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG91dHB1dFswXS5PdXRwdXRWYWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXBsb3kgdGhlIHNwZWNpZmllZCBzdGFjay5cbiAgICpcbiAgICogSWYgdGhlIHNwZWNpZmllZCBzdGFjayBoYXMgbm90IGJlZW4gY3JlYXRlZCB5ZXQsIGNyZWF0ZSBuZXcgb25lLiBJZiBhbHJlYWR5IGNyZWF0ZWQsIHVwZGF0ZSBpdC5cbiAgICpcbiAgICogVGhpcyBtZXRob2Qgd2FpdHMgdW50aWwgc3RhY2sgZGVwbG95bWVudCBnZXRzIGNvbXBsZXRlZC5cbiAgICogQHBhcmFtIGRlcGxveVN0YWNrSW5wdXRcbiAgICogQHBhcmFtIG1heFdhaXRUaW1lSW5NaW51dGVzIHRoZSBkZWZhdWx0KGFuZCBtaW5pbXVtKSB2YWx1ZSBpcyBgMzFgXG4gICAqL1xuICBhc3luYyBkZXBsb3lTdGFjayhcbiAgICBkZXBsb3lTdGFja0lucHV0OiBEZXBsb3lTdGFja0lucHV0LFxuICAgIG1heFdhaXRUaW1lSW5NaW51dGVzPzogbnVtYmVyXG4gICkge1xuICAgIGlmIChtYXhXYWl0VGltZUluTWludXRlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKFwic2V0IDMxIG1pbnV0ZXMgYXMgbWF4V2FpdFRpbWVJbk1pbnV0ZXMgZGVmYXVsdCB2YWx1ZVwiKTtcbiAgICAgIG1heFdhaXRUaW1lSW5NaW51dGVzID0gMzE7XG4gICAgfVxuICAgIGlmIChtYXhXYWl0VGltZUluTWludXRlcyA8PSAzMCkge1xuICAgICAgdGhyb3cgIEVycm9yKFwibWF4V2FpdFRpbWVJbk1pbnV0ZXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMzBcIilcbiAgICB9XG4gICAgY29uc29sZS5kZWJ1ZyhgY2hlY2sgaWYgc3RhY2sgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX0gZXhpc3RzYCk7XG4gICAgbGV0IGV4aXN0U3RhY2tzOiBjZm5TdGFja1tdID0gW107XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlc2NyaWJlU3RhYWNrc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuc2VuZChcbiAgICAgICAgbmV3IERlc2NyaWJlU3RhY2tzQ29tbWFuZCh7XG4gICAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICBleGlzdFN0YWNrcyA9IGRlc2NyaWJlU3RhYWNrc1Jlc3BvbnNlLlN0YWNrcyA/PyBbXTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKFxuICAgICAgICAhKFxuICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgQ2xvdWRGb3JtYXRpb25TZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcImRvZXMgbm90IGV4aXN0XCIpXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV4aXN0U3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS5kZWJ1Zyhgc3RhY2sgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX0gZG9lcyBub3QgZXhpc3QsIGNyZWF0ZSBuZXdgKTtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnNlbmQoXG4gICAgICAgIG5ldyBDcmVhdGVTdGFja0NvbW1hbmQoe1xuICAgICAgICAgIC4uLmRlcGxveVN0YWNrSW5wdXQsXG4gICAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgICBUZW1wbGF0ZUJvZHk6IEpTT04uc3RyaW5naWZ5KFRlbXBsYXRlLmZyb21TdGFjayh0aGlzLnN0YWNrKSksXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgY29uc29sZS5kZWJ1ZyhcbiAgICAgICAgYHdhaXQgdW50aWwgZGVwbG95aW5nIG9mIHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9IGNvbXBsZXRlc2BcbiAgICAgICk7XG4gICAgICBhd2FpdCB3YWl0VW50aWxTdGFja0NyZWF0ZUNvbXBsZXRlKFxuICAgICAgICB7IGNsaWVudDogdGhpcy5jbGllbnQsIG1heFdhaXRUaW1lOiBtYXhXYWl0VGltZUluTWludXRlcyB9LFxuICAgICAgICB7IFN0YWNrTmFtZTogdGhpcy5zdGFjay5zdGFja05hbWUgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc29sZS5kZWJ1Zyhgc3RhY2sgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX0gZXhpc3RzLCB1cGRhdGUgaXRgKTtcbiAgICAgICAgYXdhaXQgdGhpcy5jbGllbnQuc2VuZChcbiAgICAgICAgICBuZXcgVXBkYXRlU3RhY2tDb21tYW5kKHtcbiAgICAgICAgICAgIC4uLmRlcGxveVN0YWNrSW5wdXQsXG4gICAgICAgICAgICBTdGFja05hbWU6IHRoaXMuc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICAgICAgVGVtcGxhdGVCb2R5OiBKU09OLnN0cmluZ2lmeShUZW1wbGF0ZS5mcm9tU3RhY2sodGhpcy5zdGFjaykpLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICAgICAgYHdhaXQgdW50aWwgZGVwbG95aW5nIG9mIHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9IGNvbXBsZXRlc2BcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgd2FpdFVudGlsU3RhY2tVcGRhdGVDb21wbGV0ZShcbiAgICAgICAgICB7IGNsaWVudDogdGhpcy5jbGllbnQsIG1heFdhaXRUaW1lOiBtYXhXYWl0VGltZUluTWludXRlcyB9LFxuICAgICAgICAgIHsgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSB9XG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXJyb3IgaW5zdGFuY2VvZiBDbG91ZEZvcm1hdGlvblNlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICBlcnJvci5tZXNzYWdlID09PSBcIk5vIHVwZGF0ZXMgYXJlIHRvIGJlIHBlcmZvcm1lZC5cIlxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKFwibm8gdXBkYXRlcyBhcmUgdG8gYmUgcGVyZm9ybWVkXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBEZXN0cm95IHRoZSBzdGFja1xuICAgKiBAcGFyYW0gZGVzdHJveVN0YWNrSW5wdXRcbiAgICogQHBhcmFtIHdhaXQgSWYgYHRydWVgLCB0aGlzIG1ldGhvZCB3YWl0cyB1bnRpbCBzdGFjayBkZWxldGlvbiBjb21wbGV0ZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgJ2ZhbHNlJ1xuICAgKiBAcGFyYW0gbWF4V2FpdFRpbWVJbk1pbnV0ZXMgdGhlIGRlZmF1bHQoYW5kIG1pbmltdW0pIHZhbHVlIGlzIGAzMWAuIHVzZWQgb25seSB3aGVuIHBhcmFtZXRlciBgd2FpdGAgaXMgc2V0IHRvICd0cnVlJ1xuICAgKi9cbiAgYXN5bmMgZGVzdHJveVN0YWNrKFxuICAgIGRlc3Ryb3lTdGFja0lucHV0OiBEZXN0cm95U3RhY2tJbnB1dCxcbiAgICB3YWl0PzogYm9vbGVhbixcbiAgICBtYXhXYWl0VGltZUluTWludXRlcz86IG51bWJlclxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLmRlYnVnKGBkZXN0cm95IHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9YCk7XG4gICAgYXdhaXQgdGhpcy5jbGllbnQuc2VuZChcbiAgICAgIG5ldyBEZWxldGVTdGFja0NvbW1hbmQoe1xuICAgICAgICBTdGFja05hbWU6IHRoaXMuc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICAuLi5kZXN0cm95U3RhY2tJbnB1dCxcbiAgICAgIH0pXG4gICAgKTtcbiAgICBpZiAoIXdhaXQgfHwgd2FpdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKFwicmV0dXJuIGFzeW5jaHJvbm91c2x5XCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZGVidWcoXCJ3YWl0IHVudGlsIHN0YWNrIGRlbGV0aW9uIGNvbXBsZXRzXCIpO1xuICAgIGlmIChtYXhXYWl0VGltZUluTWludXRlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBtYXhXYWl0VGltZUluTWludXRlcyA9IDMxO1xuICAgIH1cbiAgICBpZiAobWF4V2FpdFRpbWVJbk1pbnV0ZXMgPD0gMzApIHtcbiAgICAgIHRocm93ICBFcnJvcihcIm1heFdhaXRUaW1lSW5NaW51dGVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDMwXCIpXG4gICAgfVxuICAgIGF3YWl0IHdhaXRVbnRpbFN0YWNrRGVsZXRlQ29tcGxldGUoXG4gICAgICB7IGNsaWVudDogdGhpcy5jbGllbnQsIG1heFdhaXRUaW1lOiBtYXhXYWl0VGltZUluTWludXRlcyB9LFxuICAgICAgeyBTdGFja05hbWU6IHRoaXMuc3RhY2suc3RhY2tOYW1lIH1cbiAgICApO1xuICAgIHJldHVybjtcbiAgfVxufVxuIl19
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMEVBY3dDO0FBRXhDLHVEQUFrRDtBQVFsRDs7R0FFRztBQUNILE1BQWEsWUFBWTtJQUl2Qjs7OztPQUlHO0lBQ0gsWUFBWSxLQUFlLEVBQUUsTUFBNEI7UUFDdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQWlCO1FBQ3BDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoRSxNQUFNLHNCQUFzQixHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ25ELElBQUksNkNBQXFCLENBQUM7WUFDeEIsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztTQUNoQyxDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDbkQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sS0FBSyxDQUNULHVDQUF1QyxTQUFTLGVBQWUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUM1RSxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxLQUFLLENBQ1gsb0JBQW9CLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxVQUFVLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDNUUsQ0FBQztRQUNGLE1B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LENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3BELElBQUksb0JBQW9CLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkMsb0JBQW9CLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxvQkFBb0IsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUMvQixNQUFPLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFBO1FBQzlELENBQUM7UUFDRCxNQUFNLElBQUEsb0RBQTRCLEVBQ2hDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLEVBQzFELEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQ3BDLENBQUM7UUFDRixPQUFPO0lBQ1QsQ0FBQztDQUNGO0FBcktELG9DQXFLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENsb3VkRm9ybWF0aW9uQ2xpZW50LFxuICBDbG91ZEZvcm1hdGlvblNlcnZpY2VFeGNlcHRpb24sXG4gIENyZWF0ZVN0YWNrQ29tbWFuZCxcbiAgQ3JlYXRlU3RhY2tDb21tYW5kSW5wdXQsXG4gIERlbGV0ZVN0YWNrQ29tbWFuZCxcbiAgRGVsZXRlU3RhY2tDb21tYW5kSW5wdXQsXG4gIERlc2NyaWJlU3RhY2tzQ29tbWFuZCxcbiAgVXBkYXRlU3RhY2tDb21tYW5kLFxuICBVcGRhdGVTdGFja0NvbW1hbmRJbnB1dCxcbiAgd2FpdFVudGlsU3RhY2tDcmVhdGVDb21wbGV0ZSxcbiAgd2FpdFVudGlsU3RhY2tEZWxldGVDb21wbGV0ZSxcbiAgd2FpdFVudGlsU3RhY2tVcGRhdGVDb21wbGV0ZSxcbiAgU3RhY2sgYXMgY2ZuU3RhY2ssXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb25cIjtcbmltcG9ydCB7IFN0YWNrIGFzIGNka1N0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hc3NlcnRpb25zXCI7XG5cbnR5cGUgRGVwbG95U3RhY2tJbnB1dCA9IE9taXQ8XG4gIENyZWF0ZVN0YWNrQ29tbWFuZElucHV0IHwgVXBkYXRlU3RhY2tDb21tYW5kSW5wdXQsXG4gIFwiU3RhY2tOYW1lXCJcbj47XG50eXBlIERlc3Ryb3lTdGFja0lucHV0ID0gT21pdDxEZWxldGVTdGFja0NvbW1hbmRJbnB1dCwgXCJTdGFja05hbWVcIj47XG5cbi8qKlxuICogU3RhY2sgTWFuYWdlciBtYWtlcyBpdCBlYXNpZXIgYW5kIG1vcmUgZWZmaWNpZW50IHRoYXQgeW91IGRlcGxveShhbmQgZGVzdHJveSkgc3RhY2tzIHdpdGggc2hvcnQtdGVybS1saWZlY3ljbGUgZHVyYWluZyB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWNrTWFuYWdlciB7XG4gIHJlYWRvbmx5IHN0YWNrOiBjZGtTdGFjaztcbiAgcmVhZG9ubHkgY2xpZW50OiBDbG91ZEZvcm1hdGlvbkNsaWVudDtcblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHN0YWNrIHN0YWNrIHRvIGJlIG1hbmFnZWRcbiAgICogQHBhcmFtIGNsaWVudCBjbG91ZGZvcm1hdGlvbiBzZGsgY2xpZW50IHRvIHVzZVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc3RhY2s6IGNka1N0YWNrLCBjbGllbnQ6IENsb3VkRm9ybWF0aW9uQ2xpZW50KSB7XG4gICAgdGhpcy5zdGFjayA9IHN0YWNrO1xuICAgIHRoaXMuY2xpZW50ID0gY2xpZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBzcGVjaWZpYyBvdXRwdXQgdmFsdWUgZnJvbSB0aGUgc3RhY2tcbiAgICogQHBhcmFtIG91dHB1dEtleSBsb2dpY2FsIGlkIG9mIE91dHB1dCB0aGF0IHlvdSB3YW50IHRvIGdldFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgYXN5bmMgZ2V0U3RhY2tPdXRwdXQob3V0cHV0S2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnNvbGUuZGVidWcoYGdldCBvdXRwdXRzIGZyb20gc3RhY2sgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX1gKTtcbiAgICBjb25zdCBkZXNjcmliZVN0YWNrc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuc2VuZChcbiAgICAgIG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe1xuICAgICAgICBTdGFja05hbWU6IHRoaXMuc3RhY2suc3RhY2tOYW1lLFxuICAgICAgfSlcbiAgICApO1xuICAgIGNvbnN0IHN0YWNrcyA9IGRlc2NyaWJlU3RhY2tzUmVzcG9uc2UuU3RhY2tzID8/IFtdO1xuICAgIGlmIChzdGFja3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYGZhaWxlZCB0byBnZXQgb3V0cHV0IHZhbHVlIHdpdGgga2V5ICR7b3V0cHV0S2V5fSBmcm9tIHN0YWNrICR7dGhpcy5zdGFja31gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBvdXRwdXRzID0gc3RhY2tzWzBdLk91dHB1dHMgPz8gW107XG4gICAgY29uc29sZS5kZWJ1ZyhcbiAgICAgIGBvdXRwdXRzIG9mIHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9IGFyZSA6ICR7SlNPTi5zdHJpbmdpZnkob3V0cHV0cyl9YFxuICAgICk7XG4gICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uT3V0cHV0S2V5ID09PSBvdXRwdXRLZXkpO1xuICAgIGlmIChvdXRwdXQubGVuZ3RoID09PSAwIHx8IG91dHB1dFswXS5PdXRwdXRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYGZhaWxlZCB0byBnZXQgb3V0cHV0IHZhbHVlIHdpdGgga2V5ICR7b3V0cHV0S2V5fSBmcm9tIHN0YWNrICR7dGhpcy5zdGFja31gXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0WzBdLk91dHB1dFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcGxveSB0aGUgc3BlY2lmaWVkIHN0YWNrLlxuICAgKlxuICAgKiBJZiB0aGUgc3BlY2lmaWVkIHN0YWNrIGhhcyBub3QgYmVlbiBjcmVhdGVkIHlldCwgY3JlYXRlIG5ldyBvbmUuIElmIGFscmVhZHkgY3JlYXRlZCwgdXBkYXRlIGl0LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCB3YWl0cyB1bnRpbCBzdGFjayBkZXBsb3ltZW50IGdldHMgY29tcGxldGVkLlxuICAgKiBAcGFyYW0gZGVwbG95U3RhY2tJbnB1dFxuICAgKiBAcGFyYW0gbWF4V2FpdFRpbWVJblNlY29uZHMgdGhlIGRlZmF1bHQgdmFsdWVzIGlzIGA2MCAqIDYwID0gMWhvdXJgLiBBbGxvd2VkIG1pbmltdW0gdmFsdWUgaXMgYDMxIHNlY29uZHNgXG4gICAqL1xuICBhc3luYyBkZXBsb3lTdGFjayhcbiAgICBkZXBsb3lTdGFja0lucHV0OiBEZXBsb3lTdGFja0lucHV0LFxuICAgIG1heFdhaXRUaW1lSW5TZWNvbmRzPzogbnVtYmVyXG4gICkge1xuICAgIGlmIChtYXhXYWl0VGltZUluU2Vjb25kcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKFwic2V0IDFob3VyIGFzIG1heFdhaXRUaW1lSW5TZWNvbmRzIGRlZmF1bHQgdmFsdWVcIik7XG4gICAgICBtYXhXYWl0VGltZUluU2Vjb25kcyA9IDYwICogNjA7XG4gICAgfVxuICAgIGlmIChtYXhXYWl0VGltZUluU2Vjb25kcyA8PSAzMCkge1xuICAgICAgdGhyb3cgIEVycm9yKFwibWF4V2FpdFRpbWVJblNlY29uZHMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMzBcIilcbiAgICB9XG4gICAgY29uc29sZS5kZWJ1ZyhgY2hlY2sgaWYgc3RhY2sgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX0gZXhpc3RzYCk7XG4gICAgbGV0IGV4aXN0U3RhY2tzOiBjZm5TdGFja1tdID0gW107XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlc2NyaWJlU3RhYWNrc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuc2VuZChcbiAgICAgICAgbmV3IERlc2NyaWJlU3RhY2tzQ29tbWFuZCh7XG4gICAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICBleGlzdFN0YWNrcyA9IGRlc2NyaWJlU3RhYWNrc1Jlc3BvbnNlLlN0YWNrcyA/PyBbXTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKFxuICAgICAgICAhKFxuICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgQ2xvdWRGb3JtYXRpb25TZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcImRvZXMgbm90IGV4aXN0XCIpXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV4aXN0U3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS5kZWJ1Zyhgc3RhY2sgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX0gZG9lcyBub3QgZXhpc3QsIGNyZWF0ZSBuZXdgKTtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnNlbmQoXG4gICAgICAgIG5ldyBDcmVhdGVTdGFja0NvbW1hbmQoe1xuICAgICAgICAgIC4uLmRlcGxveVN0YWNrSW5wdXQsXG4gICAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgICBUZW1wbGF0ZUJvZHk6IEpTT04uc3RyaW5naWZ5KFRlbXBsYXRlLmZyb21TdGFjayh0aGlzLnN0YWNrKSksXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgY29uc29sZS5kZWJ1ZyhcbiAgICAgICAgYHdhaXQgdW50aWwgZGVwbG95aW5nIG9mIHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9IGNvbXBsZXRlc2BcbiAgICAgICk7XG4gICAgICBhd2FpdCB3YWl0VW50aWxTdGFja0NyZWF0ZUNvbXBsZXRlKFxuICAgICAgICB7IGNsaWVudDogdGhpcy5jbGllbnQsIG1heFdhaXRUaW1lOiBtYXhXYWl0VGltZUluU2Vjb25kcyB9LFxuICAgICAgICB7IFN0YWNrTmFtZTogdGhpcy5zdGFjay5zdGFja05hbWUgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc29sZS5kZWJ1Zyhgc3RhY2sgJHt0aGlzLnN0YWNrLnN0YWNrTmFtZX0gZXhpc3RzLCB1cGRhdGUgaXRgKTtcbiAgICAgICAgYXdhaXQgdGhpcy5jbGllbnQuc2VuZChcbiAgICAgICAgICBuZXcgVXBkYXRlU3RhY2tDb21tYW5kKHtcbiAgICAgICAgICAgIC4uLmRlcGxveVN0YWNrSW5wdXQsXG4gICAgICAgICAgICBTdGFja05hbWU6IHRoaXMuc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICAgICAgVGVtcGxhdGVCb2R5OiBKU09OLnN0cmluZ2lmeShUZW1wbGF0ZS5mcm9tU3RhY2sodGhpcy5zdGFjaykpLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICAgICAgYHdhaXQgdW50aWwgZGVwbG95aW5nIG9mIHN0YWNrICR7dGhpcy5zdGFjay5zdGFja05hbWV9IGNvbXBsZXRlc2BcbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgd2FpdFVudGlsU3RhY2tVcGRhdGVDb21wbGV0ZShcbiAgICAgICAgICB7IGNsaWVudDogdGhpcy5jbGllbnQsIG1heFdhaXRUaW1lOiBtYXhXYWl0VGltZUluU2Vjb25kcyB9LFxuICAgICAgICAgIHsgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSB9XG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXJyb3IgaW5zdGFuY2VvZiBDbG91ZEZvcm1hdGlvblNlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICBlcnJvci5tZXNzYWdlID09PSBcIk5vIHVwZGF0ZXMgYXJlIHRvIGJlIHBlcmZvcm1lZC5cIlxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zb2xlLmRlYnVnKFwibm8gdXBkYXRlcyBhcmUgdG8gYmUgcGVyZm9ybWVkXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBEZXN0cm95IHRoZSBzdGFja1xuICAgKiBAcGFyYW0gZGVzdHJveVN0YWNrSW5wdXRcbiAgICogQHBhcmFtIHdhaXQgSWYgYHRydWVgLCB0aGlzIG1ldGhvZCB3YWl0cyB1bnRpbCBzdGFjayBkZWxldGlvbiBjb21wbGV0ZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgJ2ZhbHNlJ1xuICAgKiBAcGFyYW0gbWF4V2FpdFRpbWVJblNlY29uZHMgdGhlIGRlZmF1bHQgdmFsdWUgaXMgYDYwICogNjAgPSAxaG91cmAuIEFsbG93ZWQgbWluaW11bSB2YWx1ZSBpcyBgMzEgc2Vjb25kc2AuIFRoaXMgcGFyYW0gd2lsbCBiZSB1c2VkIG9ubHkgd2hlbiBwYXJhbWV0ZXIgYHdhaXRgIGlzIHNldCB0byAndHJ1ZSdcbiAgICovXG4gIGFzeW5jIGRlc3Ryb3lTdGFjayhcbiAgICBkZXN0cm95U3RhY2tJbnB1dDogRGVzdHJveVN0YWNrSW5wdXQsXG4gICAgd2FpdD86IGJvb2xlYW4sXG4gICAgbWF4V2FpdFRpbWVJblNlY29uZHM/OiBudW1iZXJcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc29sZS5kZWJ1ZyhgZGVzdHJveSBzdGFjayAke3RoaXMuc3RhY2suc3RhY2tOYW1lfWApO1xuICAgIGF3YWl0IHRoaXMuY2xpZW50LnNlbmQoXG4gICAgICBuZXcgRGVsZXRlU3RhY2tDb21tYW5kKHtcbiAgICAgICAgU3RhY2tOYW1lOiB0aGlzLnN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgLi4uZGVzdHJveVN0YWNrSW5wdXQsXG4gICAgICB9KVxuICAgICk7XG4gICAgaWYgKCF3YWl0IHx8IHdhaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc29sZS5kZWJ1ZyhcInJldHVybiBhc3luY2hyb25vdXNseVwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zb2xlLmRlYnVnKFwid2FpdCB1bnRpbCBzdGFjayBkZWxldGlvbiBjb21wbGV0c1wiKTtcbiAgICBpZiAobWF4V2FpdFRpbWVJblNlY29uZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbWF4V2FpdFRpbWVJblNlY29uZHMgPSA2MCAqIDYwO1xuICAgIH1cbiAgICBpZiAobWF4V2FpdFRpbWVJblNlY29uZHMgPD0gMzApIHtcbiAgICAgIHRocm93ICBFcnJvcihcIm1heFdhaXRUaW1lSW5TZWNvbmRzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDMwXCIpXG4gICAgfVxuICAgIGF3YWl0IHdhaXRVbnRpbFN0YWNrRGVsZXRlQ29tcGxldGUoXG4gICAgICB7IGNsaWVudDogdGhpcy5jbGllbnQsIG1heFdhaXRUaW1lOiBtYXhXYWl0VGltZUluU2Vjb25kcyB9LFxuICAgICAgeyBTdGFja05hbWU6IHRoaXMuc3RhY2suc3RhY2tOYW1lIH1cbiAgICApO1xuICAgIHJldHVybjtcbiAgfVxufVxuIl19
|