@cxbuilder/flow-config 1.0.2 → 1.1.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/.jsii +43 -32
- package/CHANGELOG.md +18 -0
- package/dist/backend/FlowConfig/index.js +109 -15
- package/dist/backend/FlowConfig/index.js.map +3 -3
- package/dist/backend/Static/static/assets/{index-Bx9Z3cF9.js → index-FHwnAA8f.js} +14 -14
- package/dist/backend/Static/static/index.html +1 -1
- package/dist/infrastructure/FlowConfigStack.d.ts +4 -0
- package/dist/infrastructure/FlowConfigStack.js +29 -2
- package/dist/infrastructure/tsconfig.tsbuildinfo +1 -1
- package/docs/Permissions-v1.md +132 -0
- package/docs/{Permissions.md → Permissions-v2.md} +15 -15
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>CXBuilder Flow Config</title>
|
|
7
|
-
<script type="module" crossorigin src="/prod/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/prod/assets/index-FHwnAA8f.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="/prod/assets/index-NRh8x3FI.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
@@ -105,6 +105,10 @@ export declare class FlowConfigStack extends cdk.Stack {
|
|
|
105
105
|
get appUrl(): string;
|
|
106
106
|
constructor(scope: Construct, id: string, props: FlowConfigStackProps);
|
|
107
107
|
createUserPoolClient(): UserPoolClient;
|
|
108
|
+
/**
|
|
109
|
+
* Create Cognito User Groups for role-based access control
|
|
110
|
+
*/
|
|
111
|
+
createUserPoolGroups(): void;
|
|
108
112
|
/**
|
|
109
113
|
* Associated Voicemail as Agent Workspace app
|
|
110
114
|
*/
|
|
@@ -48,6 +48,7 @@ class FlowConfigStack extends cdk.Stack {
|
|
|
48
48
|
const getConfig = new GetConfig_1.GetConfig(this);
|
|
49
49
|
this.api = new Api_1.Api(this);
|
|
50
50
|
this.userPoolClient = this.createUserPoolClient();
|
|
51
|
+
this.createUserPoolGroups();
|
|
51
52
|
this.associate3pApp();
|
|
52
53
|
new cdk.CfnOutput(this, 'AppUrl', {
|
|
53
54
|
value: this.appUrl,
|
|
@@ -83,6 +84,32 @@ class FlowConfigStack extends cdk.Stack {
|
|
|
83
84
|
});
|
|
84
85
|
return client;
|
|
85
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Create Cognito User Groups for role-based access control
|
|
89
|
+
*/
|
|
90
|
+
createUserPoolGroups() {
|
|
91
|
+
// FlowConfigAdmin - Full CRUD access
|
|
92
|
+
new aws_cognito_1.CfnUserPoolGroup(this, 'FlowConfigAdminGroup', {
|
|
93
|
+
userPoolId: this.userPool.userPoolId,
|
|
94
|
+
groupName: 'FlowConfigAdmin',
|
|
95
|
+
description: 'Full administrative access to all flow configs - can create, read, update, and delete flow configs and all their properties',
|
|
96
|
+
precedence: 1,
|
|
97
|
+
});
|
|
98
|
+
// FlowConfigEdit - Edit variable/prompt values only
|
|
99
|
+
new aws_cognito_1.CfnUserPoolGroup(this, 'FlowConfigEditGroup', {
|
|
100
|
+
userPoolId: this.userPool.userPoolId,
|
|
101
|
+
groupName: 'FlowConfigEdit',
|
|
102
|
+
description: 'Edit access to flow configs - can read and modify variable values and prompt content but cannot add/remove fields or delete configs',
|
|
103
|
+
precedence: 2,
|
|
104
|
+
});
|
|
105
|
+
// FlowConfigRead - Read-only access
|
|
106
|
+
new aws_cognito_1.CfnUserPoolGroup(this, 'FlowConfigReadGroup', {
|
|
107
|
+
userPoolId: this.userPool.userPoolId,
|
|
108
|
+
groupName: 'FlowConfigRead',
|
|
109
|
+
description: 'Read-only access to all flow configs for reporting and reference purposes',
|
|
110
|
+
precedence: 3,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
86
113
|
/**
|
|
87
114
|
* Associated Voicemail as Agent Workspace app
|
|
88
115
|
*/
|
|
@@ -196,5 +223,5 @@ class FlowConfigStack extends cdk.Stack {
|
|
|
196
223
|
}
|
|
197
224
|
exports.FlowConfigStack = FlowConfigStack;
|
|
198
225
|
_a = JSII_RTTI_SYMBOL_1;
|
|
199
|
-
FlowConfigStack[_a] = { fqn: "@cxbuilder/flow-config.FlowConfigStack", version: "1.0
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NvbmZpZ1N0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvRmxvd0NvbmZpZ1N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLHlEQUtpQztBQUNqQyxxREFBcUQ7QUFFckQsMkNBQTJDO0FBRTNDLG1DQUFnQztBQUNoQyxpREFBNEM7QUFDNUMsNkVBQXNFO0FBQ3RFLHVFQUFvRTtBQUNwRSx5REFBb0U7QUFDcEUseUVBQWlFO0FBQ2pFLDJDQUF3QztBQW1HeEMsTUFBYSxlQUFnQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBWTVDOzs7T0FHRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sV0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLGdCQUFnQixNQUFNLHFCQUFxQixDQUFDO0lBQzFGLENBQUM7SUFFRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDSCxLQUEyQjtRQUVsQyxNQUFNLEVBQ0osTUFBTSxFQUNOLE9BQU8sRUFDUCxXQUFXLEVBQ1gsSUFBSSxHQUFHLEtBQUssRUFDWixHQUFHLEVBQ0gsV0FBVyxHQUNaLEdBQUcsS0FBSyxDQUFDO1FBQ1YsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxNQUFNO1lBQ3BDLFdBQVcsRUFDVCxLQUFLLENBQUMsV0FBVztnQkFDakIsMklBQTJJO1lBQzdJLHFCQUFxQixFQUFFLElBQUk7U0FDNUIsQ0FBQyxDQUFDO1FBakJJLFVBQUssR0FBTCxLQUFLLENB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LG1CQUFtQixDQUNuQyxJQUFJLEVBQ0osc0JBQXNCLEtBQUssRUFBRSxFQUM3QixJQUFJLENBQ0wsQ0FDRixDQUFDO1FBRUYsMEJBQTBCO1FBQzFCLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUM5RCxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEtBQUssRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUNqRSxDQUFDO1FBRUYsdUNBQXVDO1FBQ3ZDLE1BQU0seUJBQXlCLEdBQUcsMkJBQTJCLENBQUMsR0FBRyxDQUMvRCxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUNkLEdBQUcsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQ25DLElBQUksRUFDSiwyQkFBMkIsS0FBSyxFQUFFLEVBQ2xDLElBQUksQ0FDTCxDQUNKLENBQUM7UUFFRixPQUFPO1lBQ0wsR0FBRztZQUNILG9CQUFvQjtZQUNwQixjQUFjO1lBQ2QseUJBQXlCO1NBQzFCLENBQUM7SUFDSixDQUFDOztBQWxSSCwwQ0FtUkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgSVVzZXJQb29sLFxuICBVc2VyUG9vbCxcbiAgVXNlclBvb2xDbGllbnQsXG4gIFVzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlcixcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZ25pdG8nO1xuaW1wb3J0ICogYXMgZHluYW1vZGIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcbmltcG9ydCB7IElWcGMsIElTZWN1cml0eUdyb3VwLCBJU3VibmV0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEFwaSB9IGZyb20gJy4vYXBpL0FwaSc7XG5pbXBvcnQgeyBUb3BpYyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0IHsgRW1haWxTdWJzY3JpcHRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zLXN1YnNjcmlwdGlvbnMnO1xuaW1wb3J0IHsgU2VjdXJpdHlQcm9maWxlUHJvdmlkZXIgfSBmcm9tICcuL1NlY3VyaXR5UHJvZmlsZVByb3ZpZGVyJztcbmltcG9ydCB7IENmbkludGVncmF0aW9uQXNzb2NpYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29ubmVjdCc7XG5pbXBvcnQgeyBDZm5BcHBsaWNhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBpbnRlZ3JhdGlvbnMnO1xuaW1wb3J0IHsgR2V0Q29uZmlnIH0gZnJvbSAnLi9HZXRDb25maWcnO1xuXG4vKipcbiAqIENvZ25pdG8gY29uZmlndXJhdGlvbiBmb3IgRmxvd0NvbmZpZyBzdGFja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZ25pdG9Db25maWcge1xuICByZWFkb25seSB1c2VyUG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZ1bGwgZG9tYWluIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBwcm92aWRlZCwgY2xpZW50IHdpbGwgYXV0aCB0byBTU08uIE90aGVyd2lzZSB3aWxsIGF1dGggdG8gdXNlciBwb29sXG4gICAqL1xuICByZWFkb25seSBzc29Qcm92aWRlck5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVlBDIGNvbmZpZ3VyYXRpb24gZm9yIHByaXZhdGUgZGVwbG95bWVudCB1c2luZyBzdHJpbmcgSURzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBWUEMgSUQgdG8gZGVwbG95IHJlc291cmNlcyBpbnRvXG4gICAqL1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBJRHMgZm9yIExhbWJkYSBmdW5jdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYVNlY3VyaXR5R3JvdXBJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQcml2YXRlIHN1Ym5ldCBJRHMgZm9yIExhbWJkYSBmdW5jdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVTdWJuZXRJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBJRHMgZm9yIFZQQyBlbmRwb2ludHNcbiAgICovXG4gIHJlYWRvbmx5IHZwY0VuZHBvaW50U2VjdXJpdHlHcm91cElkczogc3RyaW5nW107XG59XG5cbi8qKlxuICogR2xvYmFsIHRhYmxlIGNvbmZpZ3VyYXRpb24gZm9yIG11bHRpLXJlZ2lvbiBkZXBsb3ltZW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbFRhYmxlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpcyB0aGUgcHJpbWFyeSByZWdpb24gdGhhdCBjcmVhdGVzIHRoZSBnbG9iYWwgdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGlzUHJpbWFyeVJlZ2lvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogTGlzdCBvZiBhbGwgcmVnaW9ucyB0aGF0IHNob3VsZCBoYXZlIHJlcGxpY2FzXG4gICAqIE9ubHkgdXNlZCBieSB0aGUgcHJpbWFyeSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2FSZWdpb25zPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogSW50ZXJuYWwgaW50ZXJmYWNlIGZvciByZXNvbHZlZCBWUEMgcmVzb3VyY2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRWcGNDb25maWcge1xuICByZWFkb25seSB2cGM6IElWcGM7XG4gIHJlYWRvbmx5IGxhbWJkYVNlY3VyaXR5R3JvdXBzOiBJU2VjdXJpdHlHcm91cFtdO1xuICByZWFkb25seSBwcml2YXRlU3VibmV0czogSVN1Ym5ldFtdO1xuICByZWFkb25seSB2cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBzOiBJU2VjdXJpdHlHcm91cFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dDb25maWdTdGFja1Byb3BzIGV4dGVuZHMgY2RrLlN0YWNrUHJvcHMge1xuICAvKipcbiAgICogVXNlZCBmb3IgcmVzb3VyY2UgbmFtaW5nXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgY29nbml0bzogQ29nbml0b0NvbmZpZztcbiAgcmVhZG9ubHkgY29ubmVjdEluc3RhbmNlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdobyB0byBub3RpZnkgZm9yIHVuaGFuZGxlZCBleGNlcHRpb25zXG4gICAqL1xuICByZWFkb25seSBhbGVydEVtYWlsczogc3RyaW5nW107XG4gIHJlYWRvbmx5IHByb2Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBWUEMgY29uZmlndXJhdGlvbiBmb3IgcHJpdmF0ZSBkZXBsb3ltZW50LlxuICAgKiBJZiBwcm92aWRlZCwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgYmUgY29uZmlndXJlZCBmb3IgVlBDLW9ubHkgYWNjZXNzLlxuICAgKiBJZiB1bmRlZmluZWQsIHVzZXMgdGhlIGN1cnJlbnQgcHVibGljIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBWcGNDb25maWc7XG5cbiAgLyoqXG4gICAqIEdsb2JhbCB0YWJsZSBjb25maWd1cmF0aW9uIGZvciBtdWx0aS1yZWdpb24gZGVwbG95bWVudHMuXG4gICAqIElmIHByb3ZpZGVkLCBlbmFibGVzIGdsb2JhbCB0YWJsZSBzdXBwb3J0LlxuICAgKiBJZiB1bmRlZmluZWQsIGNyZWF0ZXMgYSBzaW5nbGUtcmVnaW9uIHRhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2xvYmFsVGFibGU/OiBHbG9iYWxUYWJsZUNvbmZpZztcbn1cblxuZXhwb3J0IGNsYXNzIEZsb3dDb25maWdTdGFjayBleHRlbmRzIGNkay5TdGFjayB7XG4gIHVzZXJQb29sOiBJVXNlclBvb2w7XG4gIHByaXZhdGUgYXBpOiBBcGk7XG4gIHVzZXJQb29sQ2xpZW50OiBVc2VyUG9vbENsaWVudDtcbiAgYWxlcnRUb3BpYzogVG9waWM7XG4gIHRhYmxlOiBjZGsuYXdzX2R5bmFtb2RiLklUYWJsZTtcblxuICAvKipcbiAgICogUmVzb2x2ZWQgVlBDIGNvbmZpZ3VyYXRpb24gaWYgcHJpdmF0ZSBkZXBsb3ltZW50IGlzIGVuYWJsZWRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc29sdmVkVnBjQ29uZmlnPzogUmVzb2x2ZWRWcGNDb25maWc7XG5cbiAgLyoqXG4gICAqIEdldCByZXNvbHZlZCBWUEMgY29uZmlndXJhdGlvbiBmb3IgY2hpbGQgY29uc3RydWN0c1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfZ2V0UmVzb2x2ZWRWcGNDb25maWcoKTogUmVzb2x2ZWRWcGNDb25maWcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9yZXNvbHZlZFZwY0NvbmZpZztcbiAgfVxuXG4gIGdldCBhcHBVcmwoKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IHJlZ2lvbiB9ID0gY2RrLlN0YWNrLm9mKHRoaXMpO1xuICAgIHJldHVybiBgaHR0cHM6Ly8ke3RoaXMuYXBpLnJlc3RBcGkucmVzdEFwaUlkfS5leGVjdXRlLWFwaS4ke3JlZ2lvbn0uYW1hem9uYXdzLmNvbS9wcm9kYDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcHJvcHM6IEZsb3dDb25maWdTdGFja1Byb3BzXG4gICkge1xuICAgIGNvbnN0IHtcbiAgICAgIHByZWZpeCxcbiAgICAgIGNvZ25pdG8sXG4gICAgICBhbGVydEVtYWlscyxcbiAgICAgIHByb2QgPSBmYWxzZSxcbiAgICAgIHZwYyxcbiAgICAgIGdsb2JhbFRhYmxlLFxuICAgIH0gPSBwcm9wcztcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgc3RhY2tOYW1lOiBwcm9wcy5zdGFja05hbWUgPz8gcHJlZml4LFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIHByb3BzLmRlc2NyaXB0aW9uID8/XG4gICAgICAgICdXZWItYmFzZWQgaW50ZXJmYWNlIGZvciBtYW5hZ2luZyBmbG93IHZhcmlhYmxlcyBhbmQgcHJvbXB0cyB0aGF0IGFyZSBkeW5hbWljYWxseSByZXRyaWV2ZWQgYnkgQW1hem9uIENvbm5lY3QgZHVyaW5nIGN1c3RvbWVyIGludGVyYWN0aW9ucycsXG4gICAgICB0ZXJtaW5hdGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgfSk7XG5cbiAgICAvLyBSZXNvbHZlIFZQQyBjb25maWd1cmF0aW9uIGlmIHByb3ZpZGVkXG4gICAgdGhpcy5fcmVzb2x2ZWRWcGNDb25maWcgPSB2cGMgPyB0aGlzLnJlc29sdmVWcGNDb25maWcodnBjKSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIER5bmFtb0RCIHRhYmxlIGZvciBzdG9yaW5nIGZsb3cgY29uZmlnc1xuICAgIHRoaXMudGFibGUgPSB0aGlzLmNyZWF0ZVRhYmxlKHByZWZpeCwgcHJvZCwgZ2xvYmFsVGFibGUpO1xuXG4gICAgdGhpcy5hbGVydFRvcGljID0gbmV3IFRvcGljKHRoaXMsICdBbGVydFRvcGljJywge1xuICAgICAgdG9waWNOYW1lOiBgJHtwcmVmaXh9LWVycm9yLWFsZXJ0c2AsXG4gICAgfSk7XG4gICAgYWxlcnRFbWFpbHMuZm9yRWFjaCgoZSkgPT5cbiAgICAgIHRoaXMuYWxlcnRUb3BpYy5hZGRTdWJzY3JpcHRpb24obmV3IEVtYWlsU3Vic2NyaXB0aW9uKGUpKVxuICAgICk7XG5cbiAgICB0aGlzLnVzZXJQb29sID0gVXNlclBvb2wuZnJvbVVzZXJQb29sSWQoXG4gICAgICB0aGlzLFxuICAgICAgJ1VzZXJQb29sJyxcbiAgICAgIGNvZ25pdG8udXNlclBvb2xJZFxuICAgICk7XG5cbiAgICBjb25zdCBnZXRDb25maWcgPSBuZXcgR2V0Q29uZmlnKHRoaXMpO1xuICAgIHRoaXMuYXBpID0gbmV3IEFwaSh0aGlzKTtcblxuICAgIHRoaXMudXNlclBvb2xDbGllbnQgPSB0aGlzLmNyZWF0ZVVzZXJQb29sQ2xpZW50KCk7XG5cbiAgICB0aGlzLmFzc29jaWF0ZTNwQXBwKCk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnQXBwVXJsJywge1xuICAgICAgdmFsdWU6IHRoaXMuYXBwVXJsLFxuICAgICAgZGVzY3JpcHRpb246ICdCYXNlIFVSTCBmb3IgdGhlIEZsb3cgQ29uZmlnIGFwcGxpY2F0aW9uJyxcbiAgICB9KTtcbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnQXBpVXJsJywge1xuICAgICAgdmFsdWU6IGAke3RoaXMuYXBwVXJsfS9hcGlgLFxuICAgICAgZGVzY3JpcHRpb246ICdCYXNlIFVSTCBmb3IgdGhlIEZsb3cgQ29uZmlnIEFQSScsXG4gICAgfSk7XG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ0dldENvbmZpZ0xhbWJkYU5hbWUnLCB7XG4gICAgICB2YWx1ZTogZ2V0Q29uZmlnLmZ1bmN0aW9uLmZ1bmN0aW9uTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnTGFtYmRhIGZ1bmN0aW9uIG5hbWUgZm9yIGFjY2Vzc2luZyBmbG93IGNvbmZpZ3MgZnJvbSBDb25uZWN0JyxcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZVVzZXJQb29sQ2xpZW50KCk6IFVzZXJQb29sQ2xpZW50IHtcbiAgICBjb25zdCB7IHByZWZpeCwgY29nbml0byB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGRvbWFpbnMgPSBbJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIHRoaXMuYXBwVXJsXTtcblxuICAgIGNvbnN0IG9BdXRoID0ge1xuICAgICAgY2FsbGJhY2tVcmxzOiBkb21haW5zLm1hcCgoeCkgPT4gYCR7eH0vcG9wdXAuaHRtbGApLFxuICAgICAgbG9nb3V0VXJsczogZG9tYWlucyxcbiAgICB9O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBVc2VyUG9vbENsaWVudCh0aGlzLCAnVXNlclBvb2xDbGllbnQnLCB7XG4gICAgICB1c2VyUG9vbENsaWVudE5hbWU6IHByZWZpeCxcbiAgICAgIHVzZXJQb29sOiB0aGlzLnVzZXJQb29sLFxuICAgICAgc3VwcG9ydGVkSWRlbnRpdHlQcm92aWRlcnM6IGNvZ25pdG8uc3NvUHJvdmlkZXJOYW1lXG4gICAgICAgID8gW1VzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlci5jdXN0b20oY29nbml0by5zc29Qcm92aWRlck5hbWUpXVxuICAgICAgICA6IFtVc2VyUG9vbENsaWVudElkZW50aXR5UHJvdmlkZXIuQ09HTklUT10sXG4gICAgICBnZW5lcmF0ZVNlY3JldDogZmFsc2UsXG4gICAgICBvQXV0aCxcbiAgICB9KTtcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdVc2VyUG9vbENsaWVudElkJywge1xuICAgICAgdmFsdWU6IGNsaWVudC51c2VyUG9vbENsaWVudElkLFxuICAgIH0pO1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICAvKipcbiAgICogQXNzb2NpYXRlZCBWb2ljZW1haWwgYXMgQWdlbnQgV29ya3NwYWNlIGFwcFxuICAgKi9cbiAgYXNzb2NpYXRlM3BBcHAoKSB7XG4gICAgY29uc3Qge1xuICAgICAgcHJvcHM6IHsgcHJlZml4LCBjb25uZWN0SW5zdGFuY2VBcm4gfSxcbiAgICAgIGFwcFVybDogdXJsLFxuICAgIH0gPSB0aGlzO1xuICAgIGxldCBuYW1lc3BhY2UgPSBgY3hidWlsZGVyLiR7cHJlZml4fWA7XG4gICAgaWYgKG5hbWVzcGFjZS5sZW5ndGggPiAzMiAmJiAhY2RrLlRva2VuLmlzVW5yZXNvbHZlZChuYW1lc3BhY2UpKSB7XG4gICAgICBuYW1lc3BhY2UgPSBuYW1lc3BhY2Uuc3Vic3RyaW5nKDAsIDMyKTtcbiAgICB9XG5cbiAgICBjb25zdCBhcHAgPSBuZXcgQ2ZuQXBwbGljYXRpb24odGhpcywgJzNwQXBwJywge1xuICAgICAgbmFtZTogdGhpcy5wcm9wcy5wcmVmaXgsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0FnZW50IFdvcmtzcGFjZSBhcHAgZm9yIGNvbmZpZ3VyaW5nIGNvbnRhY3QgZmxvdyB2YXJpYWJsZXMgYW5kIHByb21wdHMnLFxuICAgICAgbmFtZXNwYWNlLFxuICAgICAgYXBwbGljYXRpb25Tb3VyY2VDb25maWc6IHtcbiAgICAgICAgZXh0ZXJuYWxVcmxDb25maWc6IHtcbiAgICAgICAgICBhY2Nlc3NVcmw6IHVybCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAvLyBkb2NzOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29ubmVjdC9sYXRlc3QvYWRtaW5ndWlkZS8zcC1hcHBzLWV2ZW50cy1yZXF1ZXN0cy5odG1sXG4gICAgICBwZXJtaXNzaW9uczogW1xuICAgICAgICAnVXNlci5EZXRhaWxzLlZpZXcnLFxuICAgICAgICAnVXNlci5Db25maWd1cmF0aW9uLlZpZXcnLFxuICAgICAgICAnVXNlci5TdGF0dXMuVmlldycsXG4gICAgICAgICdDb250YWN0LkRldGFpbHMuVmlldycsXG4gICAgICAgICdDb250YWN0LkN1c3RvbWVyRGV0YWlscy5WaWV3JyxcbiAgICAgICAgJ0NvbnRhY3QuVmFyaWFibGVzLlZpZXcnLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFzc29jaWF0aW9uID0gbmV3IENmbkludGVncmF0aW9uQXNzb2NpYXRpb24oXG4gICAgICB0aGlzLFxuICAgICAgJzNwQXBwQXNzb2NpYXRpb24nLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZUlkOiBjb25uZWN0SW5zdGFuY2VBcm4sXG4gICAgICAgIGludGVncmF0aW9uVHlwZTogJ0FQUExJQ0FUSU9OJyxcbiAgICAgICAgaW50ZWdyYXRpb25Bcm46IGFwcC5hdHRyQXBwbGljYXRpb25Bcm4sXG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFNlY3VyaXR5UHJvZmlsZVByb3ZpZGVyKFxuICAgICAgdGhpcyxcbiAgICAgICdTZWN1cml0eVByb2ZpbGVQcm92aWRlcicsXG4gICAgICB7XG4gICAgICAgIGNvbm5lY3RJbnN0YW5jZUFybixcbiAgICAgIH1cbiAgICApO1xuICAgIHByb3ZpZGVyLm5vZGUuYWRkRGVwZW5kZW5jeShhc3NvY2lhdGlvbik7XG5cbiAgICAvLyBBdXRvbWF0aWNhbGx5IGFzc29jaWF0ZSB3aXRoIHNlY3VyaXR5IHByb2ZpbGVzXG4gICAgY29uc3Qgc2VjdXJpdHlQcm9maWxlcyA9IFsnQWRtaW4nXTtcbiAgICBmb3IgKGNvbnN0IHByb2ZpbGUgb2Ygc2VjdXJpdHlQcm9maWxlcykge1xuICAgICAgcHJvdmlkZXIuYWxsb3dBcHBsaWNhdGlvbihgQWxsb3cke3Byb2ZpbGV9YCwgcHJvZmlsZSwgbmFtZXNwYWNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIER5bmFtb0RCIHRhYmxlIHdpdGggb3B0aW9uYWwgZ2xvYmFsIHRhYmxlIHN1cHBvcnRcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlVGFibGUoXG4gICAgcHJlZml4OiBzdHJpbmcsXG4gICAgcHJvZDogYm9vbGVhbixcbiAgICBnbG9iYWxUYWJsZT86IEdsb2JhbFRhYmxlQ29uZmlnXG4gICk6IGR5bmFtb2RiLklUYWJsZSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gcHJlZml4O1xuXG4gICAgaWYgKCFnbG9iYWxUYWJsZSkge1xuICAgICAgLy8gU2luZ2xlLXJlZ2lvbiB0YWJsZVxuICAgICAgcmV0dXJuIG5ldyBkeW5hbW9kYi5UYWJsZSh0aGlzLCAnRmxvd0NvbmZpZ3NUYWJsZScsIHtcbiAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICBwYXJ0aXRpb25LZXk6IHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HLFxuICAgICAgICB9LFxuICAgICAgICBiaWxsaW5nTW9kZTogZHluYW1vZGIuQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNULFxuICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbjoge1xuICAgICAgICAgIHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IHByb2RcbiAgICAgICAgICA/IGNkay5SZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgICAgICAgIDogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChnbG9iYWxUYWJsZS5pc1ByaW1hcnlSZWdpb24pIHtcbiAgICAgIC8vIFByaW1hcnkgcmVnaW9uIGNyZWF0ZXMgZ2xvYmFsIHRhYmxlIHdpdGggcmVwbGljYXNcbiAgICAgIHJldHVybiBuZXcgZHluYW1vZGIuVGFibGUodGhpcywgJ0Zsb3dDb25maWdzVGFibGUnLCB7XG4gICAgICAgIHRhYmxlTmFtZSxcbiAgICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgICB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgfSxcbiAgICAgICAgYmlsbGluZ01vZGU6IGR5bmFtb2RiLkJpbGxpbmdNb2RlLlBBWV9QRVJfUkVRVUVTVCxcbiAgICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb246IHtcbiAgICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVwbGljYXRpb25SZWdpb25zOiBnbG9iYWxUYWJsZS5yZXBsaWNhUmVnaW9ucyB8fCBbXSxcbiAgICAgICAgZGVsZXRpb25Qcm90ZWN0aW9uOiBwcm9kLFxuICAgICAgICByZW1vdmFsUG9saWN5OiBwcm9kXG4gICAgICAgICAgPyBjZGsuUmVtb3ZhbFBvbGljeS5SRVRBSU5cbiAgICAgICAgICA6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2Vjb25kYXJ5IHJlZ2lvbiByZWZlcmVuY2VzIGV4aXN0aW5nIGdsb2JhbCB0YWJsZVxuICAgICAgcmV0dXJuIGR5bmFtb2RiLlRhYmxlLmZyb21UYWJsZUFybihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ0Zsb3dDb25maWdzVGFibGUnLFxuICAgICAgICBgYXJuOmF3czpkeW5hbW9kYjoke3RoaXMucmVnaW9ufToke3RoaXMuYWNjb3VudH06dGFibGUvJHt0YWJsZU5hbWV9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSBWUEMgY29uZmlndXJhdGlvbiBzdHJpbmcgSURzIHRvIENESyBvYmplY3RzXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVWcGNDb25maWcodnBjQ29uZmlnOiBWcGNDb25maWcpOiBSZXNvbHZlZFZwY0NvbmZpZyB7XG4gICAgY29uc3Qge1xuICAgICAgdnBjSWQsXG4gICAgICBsYW1iZGFTZWN1cml0eUdyb3VwSWRzLFxuICAgICAgcHJpdmF0ZVN1Ym5ldElkcyxcbiAgICAgIHZwY0VuZHBvaW50U2VjdXJpdHlHcm91cElkcyxcbiAgICB9ID0gdnBjQ29uZmlnO1xuXG4gICAgLy8gUmVzb2x2ZSBWUENcbiAgICBjb25zdCB2cGMgPSBlYzIuVnBjLmZyb21Mb29rdXAodGhpcywgJ1Jlc29sdmVkVnBjJywgeyB2cGNJZCB9KTtcblxuICAgIC8vIFJlc29sdmUgTGFtYmRhIHNlY3VyaXR5IGdyb3Vwc1xuICAgIGNvbnN0IGxhbWJkYVNlY3VyaXR5R3JvdXBzID0gbGFtYmRhU2VjdXJpdHlHcm91cElkcy5tYXAoKHNnSWQsIGluZGV4KSA9PlxuICAgICAgZWMyLlNlY3VyaXR5R3JvdXAuZnJvbVNlY3VyaXR5R3JvdXBJZChcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYExhbWJkYVNlY3VyaXR5R3JvdXAke2luZGV4fWAsXG4gICAgICAgIHNnSWRcbiAgICAgIClcbiAgICApO1xuXG4gICAgLy8gUmVzb2x2ZSBwcml2YXRlIHN1Ym5ldHNcbiAgICBjb25zdCBwcml2YXRlU3VibmV0cyA9IHByaXZhdGVTdWJuZXRJZHMubWFwKChzdWJuZXRJZCwgaW5kZXgpID0+XG4gICAgICBlYzIuU3VibmV0LmZyb21TdWJuZXRJZCh0aGlzLCBgUHJpdmF0ZVN1Ym5ldCR7aW5kZXh9YCwgc3VibmV0SWQpXG4gICAgKTtcblxuICAgIC8vIFJlc29sdmUgVlBDIGVuZHBvaW50IHNlY3VyaXR5IGdyb3Vwc1xuICAgIGNvbnN0IHZwY0VuZHBvaW50U2VjdXJpdHlHcm91cHMgPSB2cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBJZHMubWFwKFxuICAgICAgKHNnSWQsIGluZGV4KSA9PlxuICAgICAgICBlYzIuU2VjdXJpdHlHcm91cC5mcm9tU2VjdXJpdHlHcm91cElkKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgYFZwY0VuZHBvaW50U2VjdXJpdHlHcm91cCR7aW5kZXh9YCxcbiAgICAgICAgICBzZ0lkXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZwYyxcbiAgICAgIGxhbWJkYVNlY3VyaXR5R3JvdXBzLFxuICAgICAgcHJpdmF0ZVN1Ym5ldHMsXG4gICAgICB2cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBzLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
226
|
+
FlowConfigStack[_a] = { fqn: "@cxbuilder/flow-config.FlowConfigStack", version: "1.1.0" };
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NvbmZpZ1N0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvRmxvd0NvbmZpZ1N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLHlEQU1pQztBQUNqQyxxREFBcUQ7QUFFckQsMkNBQTJDO0FBRTNDLG1DQUFnQztBQUNoQyxpREFBNEM7QUFDNUMsNkVBQXNFO0FBQ3RFLHVFQUFvRTtBQUNwRSx5REFBb0U7QUFDcEUseUVBQWlFO0FBQ2pFLDJDQUF3QztBQW1HeEMsTUFBYSxlQUFnQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBWTVDOzs7T0FHRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sV0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLGdCQUFnQixNQUFNLHFCQUFxQixDQUFDO0lBQzFGLENBQUM7SUFFRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDSCxLQUEyQjtRQUVsQyxNQUFNLEVBQ0osTUFBTSxFQUNOLE9BQU8sRUFDUCxXQUFXLEVBQ1gsSUFBSSxHQUFHLEtBQUssRUFDWixHQUFHLEVBQ0gsV0FBVyxHQUNaLEdBQUcsS0FBSyxDQUFDO1FBQ1YsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxNQUFNO1lBQ3BDLFdBQVcsRUFDVCxLQUFLLENBQUMsV0FBVztnQkFDakIsMklBQTJJO1lBQzdJLHFCQUFxQixFQUFFLElBQUk7U0FDNUIsQ0FBQyxDQUFDO1FBakJJLFVBQUssR0FBTCxLQUFLLENB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Q0FDL0QsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDZCxHQUFHLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUNuQyxJQUFJLEVBQ0osMkJBQTJCLEtBQUssRUFBRSxFQUNsQyxJQUFJLENBQ0wsQ0FDSixDQUFDO1FBRUYsT0FBTztZQUNMLEdBQUc7WUFDSCxvQkFBb0I7WUFDcEIsY0FBYztZQUNkLHlCQUF5QjtTQUMxQixDQUFDO0lBQ0osQ0FBQzs7QUFuVEgsMENBb1RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIElVc2VyUG9vbCxcbiAgVXNlclBvb2wsXG4gIFVzZXJQb29sQ2xpZW50LFxuICBVc2VyUG9vbENsaWVudElkZW50aXR5UHJvdmlkZXIsXG4gIENmblVzZXJQb29sR3JvdXAsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2duaXRvJztcbmltcG9ydCAqIGFzIGR5bmFtb2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgeyBJVnBjLCBJU2VjdXJpdHlHcm91cCwgSVN1Ym5ldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBBcGkgfSBmcm9tICcuL2FwaS9BcGknO1xuaW1wb3J0IHsgVG9waWMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zJztcbmltcG9ydCB7IEVtYWlsU3Vic2NyaXB0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucy1zdWJzY3JpcHRpb25zJztcbmltcG9ydCB7IFNlY3VyaXR5UHJvZmlsZVByb3ZpZGVyIH0gZnJvbSAnLi9TZWN1cml0eVByb2ZpbGVQcm92aWRlcic7XG5pbXBvcnQgeyBDZm5JbnRlZ3JhdGlvbkFzc29jaWF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvbm5lY3QnO1xuaW1wb3J0IHsgQ2ZuQXBwbGljYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBwaW50ZWdyYXRpb25zJztcbmltcG9ydCB7IEdldENvbmZpZyB9IGZyb20gJy4vR2V0Q29uZmlnJztcblxuLyoqXG4gKiBDb2duaXRvIGNvbmZpZ3VyYXRpb24gZm9yIEZsb3dDb25maWcgc3RhY2tcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2duaXRvQ29uZmlnIHtcbiAgcmVhZG9ubHkgdXNlclBvb2xJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGdWxsIGRvbWFpbiBuYW1lXG4gICAqL1xuICByZWFkb25seSBkb21haW46IHN0cmluZztcblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIGNsaWVudCB3aWxsIGF1dGggdG8gU1NPLiBPdGhlcndpc2Ugd2lsbCBhdXRoIHRvIHVzZXIgcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgc3NvUHJvdmlkZXJOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFZQQyBjb25maWd1cmF0aW9uIGZvciBwcml2YXRlIGRlcGxveW1lbnQgdXNpbmcgc3RyaW5nIElEc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZwY0NvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIElEIHRvIGRlcGxveSByZXNvdXJjZXMgaW50b1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogU2VjdXJpdHkgZ3JvdXAgSURzIGZvciBMYW1iZGEgZnVuY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFTZWN1cml0eUdyb3VwSWRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHJpdmF0ZSBzdWJuZXQgSURzIGZvciBMYW1iZGEgZnVuY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlU3VibmV0SWRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogU2VjdXJpdHkgZ3JvdXAgSURzIGZvciBWUEMgZW5kcG9pbnRzXG4gICAqL1xuICByZWFkb25seSB2cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBJZHM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEdsb2JhbCB0YWJsZSBjb25maWd1cmF0aW9uIGZvciBtdWx0aS1yZWdpb24gZGVwbG95bWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHbG9iYWxUYWJsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgaXMgdGhlIHByaW1hcnkgcmVnaW9uIHRoYXQgY3JlYXRlcyB0aGUgZ2xvYmFsIHRhYmxlXG4gICAqL1xuICByZWFkb25seSBpc1ByaW1hcnlSZWdpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgYWxsIHJlZ2lvbnMgdGhhdCBzaG91bGQgaGF2ZSByZXBsaWNhc1xuICAgKiBPbmx5IHVzZWQgYnkgdGhlIHByaW1hcnkgcmVnaW9uXG4gICAqL1xuICByZWFkb25seSByZXBsaWNhUmVnaW9ucz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEludGVybmFsIGludGVyZmFjZSBmb3IgcmVzb2x2ZWQgVlBDIHJlc291cmNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkVnBjQ29uZmlnIHtcbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xuICByZWFkb25seSBsYW1iZGFTZWN1cml0eUdyb3VwczogSVNlY3VyaXR5R3JvdXBbXTtcbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldHM6IElTdWJuZXRbXTtcbiAgcmVhZG9ubHkgdnBjRW5kcG9pbnRTZWN1cml0eUdyb3VwczogSVNlY3VyaXR5R3JvdXBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93Q29uZmlnU3RhY2tQcm9wcyBleHRlbmRzIGNkay5TdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIHJlc291cmNlIG5hbWluZ1xuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvZ25pdG86IENvZ25pdG9Db25maWc7XG4gIHJlYWRvbmx5IGNvbm5lY3RJbnN0YW5jZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaG8gdG8gbm90aWZ5IGZvciB1bmhhbmRsZWQgZXhjZXB0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgYWxlcnRFbWFpbHM6IHN0cmluZ1tdO1xuICByZWFkb25seSBwcm9kPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVlBDIGNvbmZpZ3VyYXRpb24gZm9yIHByaXZhdGUgZGVwbG95bWVudC5cbiAgICogSWYgcHJvdmlkZWQsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGJlIGNvbmZpZ3VyZWQgZm9yIFZQQy1vbmx5IGFjY2Vzcy5cbiAgICogSWYgdW5kZWZpbmVkLCB1c2VzIHRoZSBjdXJyZW50IHB1YmxpYyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjPzogVnBjQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBHbG9iYWwgdGFibGUgY29uZmlndXJhdGlvbiBmb3IgbXVsdGktcmVnaW9uIGRlcGxveW1lbnRzLlxuICAgKiBJZiBwcm92aWRlZCwgZW5hYmxlcyBnbG9iYWwgdGFibGUgc3VwcG9ydC5cbiAgICogSWYgdW5kZWZpbmVkLCBjcmVhdGVzIGEgc2luZ2xlLXJlZ2lvbiB0YWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGdsb2JhbFRhYmxlPzogR2xvYmFsVGFibGVDb25maWc7XG59XG5cbmV4cG9ydCBjbGFzcyBGbG93Q29uZmlnU3RhY2sgZXh0ZW5kcyBjZGsuU3RhY2sge1xuICB1c2VyUG9vbDogSVVzZXJQb29sO1xuICBwcml2YXRlIGFwaTogQXBpO1xuICB1c2VyUG9vbENsaWVudDogVXNlclBvb2xDbGllbnQ7XG4gIGFsZXJ0VG9waWM6IFRvcGljO1xuICB0YWJsZTogY2RrLmF3c19keW5hbW9kYi5JVGFibGU7XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIFZQQyBjb25maWd1cmF0aW9uIGlmIHByaXZhdGUgZGVwbG95bWVudCBpcyBlbmFibGVkXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNvbHZlZFZwY0NvbmZpZz86IFJlc29sdmVkVnBjQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBHZXQgcmVzb2x2ZWQgVlBDIGNvbmZpZ3VyYXRpb24gZm9yIGNoaWxkIGNvbnN0cnVjdHNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX2dldFJlc29sdmVkVnBjQ29uZmlnKCk6IFJlc29sdmVkVnBjQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzb2x2ZWRWcGNDb25maWc7XG4gIH1cblxuICBnZXQgYXBwVXJsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgeyByZWdpb24gfSA9IGNkay5TdGFjay5vZih0aGlzKTtcbiAgICByZXR1cm4gYGh0dHBzOi8vJHt0aGlzLmFwaS5yZXN0QXBpLnJlc3RBcGlJZH0uZXhlY3V0ZS1hcGkuJHtyZWdpb259LmFtYXpvbmF3cy5jb20vcHJvZGA7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHVibGljIHByb3BzOiBGbG93Q29uZmlnU3RhY2tQcm9wc1xuICApIHtcbiAgICBjb25zdCB7XG4gICAgICBwcmVmaXgsXG4gICAgICBjb2duaXRvLFxuICAgICAgYWxlcnRFbWFpbHMsXG4gICAgICBwcm9kID0gZmFsc2UsXG4gICAgICB2cGMsXG4gICAgICBnbG9iYWxUYWJsZSxcbiAgICB9ID0gcHJvcHM7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHN0YWNrTmFtZTogcHJvcHMuc3RhY2tOYW1lID8/IHByZWZpeCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBwcm9wcy5kZXNjcmlwdGlvbiA/P1xuICAgICAgICAnV2ViLWJhc2VkIGludGVyZmFjZSBmb3IgbWFuYWdpbmcgZmxvdyB2YXJpYWJsZXMgYW5kIHByb21wdHMgdGhhdCBhcmUgZHluYW1pY2FsbHkgcmV0cmlldmVkIGJ5IEFtYXpvbiBDb25uZWN0IGR1cmluZyBjdXN0b21lciBpbnRlcmFjdGlvbnMnLFxuICAgICAgdGVybWluYXRpb25Qcm90ZWN0aW9uOiBwcm9kLFxuICAgIH0pO1xuXG4gICAgLy8gUmVzb2x2ZSBWUEMgY29uZmlndXJhdGlvbiBpZiBwcm92aWRlZFxuICAgIHRoaXMuX3Jlc29sdmVkVnBjQ29uZmlnID0gdnBjID8gdGhpcy5yZXNvbHZlVnBjQ29uZmlnKHZwYykgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBEeW5hbW9EQiB0YWJsZSBmb3Igc3RvcmluZyBmbG93IGNvbmZpZ3NcbiAgICB0aGlzLnRhYmxlID0gdGhpcy5jcmVhdGVUYWJsZShwcmVmaXgsIHByb2QsIGdsb2JhbFRhYmxlKTtcblxuICAgIHRoaXMuYWxlcnRUb3BpYyA9IG5ldyBUb3BpYyh0aGlzLCAnQWxlcnRUb3BpYycsIHtcbiAgICAgIHRvcGljTmFtZTogYCR7cHJlZml4fS1lcnJvci1hbGVydHNgLFxuICAgIH0pO1xuICAgIGFsZXJ0RW1haWxzLmZvckVhY2goKGUpID0+XG4gICAgICB0aGlzLmFsZXJ0VG9waWMuYWRkU3Vic2NyaXB0aW9uKG5ldyBFbWFpbFN1YnNjcmlwdGlvbihlKSlcbiAgICApO1xuXG4gICAgdGhpcy51c2VyUG9vbCA9IFVzZXJQb29sLmZyb21Vc2VyUG9vbElkKFxuICAgICAgdGhpcyxcbiAgICAgICdVc2VyUG9vbCcsXG4gICAgICBjb2duaXRvLnVzZXJQb29sSWRcbiAgICApO1xuXG4gICAgY29uc3QgZ2V0Q29uZmlnID0gbmV3IEdldENvbmZpZyh0aGlzKTtcbiAgICB0aGlzLmFwaSA9IG5ldyBBcGkodGhpcyk7XG5cbiAgICB0aGlzLnVzZXJQb29sQ2xpZW50ID0gdGhpcy5jcmVhdGVVc2VyUG9vbENsaWVudCgpO1xuICAgIHRoaXMuY3JlYXRlVXNlclBvb2xHcm91cHMoKTtcblxuICAgIHRoaXMuYXNzb2NpYXRlM3BBcHAoKTtcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdBcHBVcmwnLCB7XG4gICAgICB2YWx1ZTogdGhpcy5hcHBVcmwsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Jhc2UgVVJMIGZvciB0aGUgRmxvdyBDb25maWcgYXBwbGljYXRpb24nLFxuICAgIH0pO1xuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdBcGlVcmwnLCB7XG4gICAgICB2YWx1ZTogYCR7dGhpcy5hcHBVcmx9L2FwaWAsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Jhc2UgVVJMIGZvciB0aGUgRmxvdyBDb25maWcgQVBJJyxcbiAgICB9KTtcbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnR2V0Q29uZmlnTGFtYmRhTmFtZScsIHtcbiAgICAgIHZhbHVlOiBnZXRDb25maWcuZnVuY3Rpb24uZnVuY3Rpb25OYW1lLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdMYW1iZGEgZnVuY3Rpb24gbmFtZSBmb3IgYWNjZXNzaW5nIGZsb3cgY29uZmlncyBmcm9tIENvbm5lY3QnLFxuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlVXNlclBvb2xDbGllbnQoKTogVXNlclBvb2xDbGllbnQge1xuICAgIGNvbnN0IHsgcHJlZml4LCBjb2duaXRvIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgZG9tYWlucyA9IFsnaHR0cDovL2xvY2FsaG9zdDozMDAwJywgdGhpcy5hcHBVcmxdO1xuXG4gICAgY29uc3Qgb0F1dGggPSB7XG4gICAgICBjYWxsYmFja1VybHM6IGRvbWFpbnMubWFwKCh4KSA9PiBgJHt4fS9wb3B1cC5odG1sYCksXG4gICAgICBsb2dvdXRVcmxzOiBkb21haW5zLFxuICAgIH07XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IFVzZXJQb29sQ2xpZW50KHRoaXMsICdVc2VyUG9vbENsaWVudCcsIHtcbiAgICAgIHVzZXJQb29sQ2xpZW50TmFtZTogcHJlZml4LFxuICAgICAgdXNlclBvb2w6IHRoaXMudXNlclBvb2wsXG4gICAgICBzdXBwb3J0ZWRJZGVudGl0eVByb3ZpZGVyczogY29nbml0by5zc29Qcm92aWRlck5hbWVcbiAgICAgICAgPyBbVXNlclBvb2xDbGllbnRJZGVudGl0eVByb3ZpZGVyLmN1c3RvbShjb2duaXRvLnNzb1Byb3ZpZGVyTmFtZSldXG4gICAgICAgIDogW1VzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlci5DT0dOSVRPXSxcbiAgICAgIGdlbmVyYXRlU2VjcmV0OiBmYWxzZSxcbiAgICAgIG9BdXRoLFxuICAgIH0pO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ1VzZXJQb29sQ2xpZW50SWQnLCB7XG4gICAgICB2YWx1ZTogY2xpZW50LnVzZXJQb29sQ2xpZW50SWQsXG4gICAgfSk7XG4gICAgcmV0dXJuIGNsaWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgQ29nbml0byBVc2VyIEdyb3VwcyBmb3Igcm9sZS1iYXNlZCBhY2Nlc3MgY29udHJvbFxuICAgKi9cbiAgY3JlYXRlVXNlclBvb2xHcm91cHMoKTogdm9pZCB7XG4gICAgLy8gRmxvd0NvbmZpZ0FkbWluIC0gRnVsbCBDUlVEIGFjY2Vzc1xuICAgIG5ldyBDZm5Vc2VyUG9vbEdyb3VwKHRoaXMsICdGbG93Q29uZmlnQWRtaW5Hcm91cCcsIHtcbiAgICAgIHVzZXJQb29sSWQ6IHRoaXMudXNlclBvb2wudXNlclBvb2xJZCxcbiAgICAgIGdyb3VwTmFtZTogJ0Zsb3dDb25maWdBZG1pbicsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0Z1bGwgYWRtaW5pc3RyYXRpdmUgYWNjZXNzIHRvIGFsbCBmbG93IGNvbmZpZ3MgLSBjYW4gY3JlYXRlLCByZWFkLCB1cGRhdGUsIGFuZCBkZWxldGUgZmxvdyBjb25maWdzIGFuZCBhbGwgdGhlaXIgcHJvcGVydGllcycsXG4gICAgICBwcmVjZWRlbmNlOiAxLFxuICAgIH0pO1xuXG4gICAgLy8gRmxvd0NvbmZpZ0VkaXQgLSBFZGl0IHZhcmlhYmxlL3Byb21wdCB2YWx1ZXMgb25seVxuICAgIG5ldyBDZm5Vc2VyUG9vbEdyb3VwKHRoaXMsICdGbG93Q29uZmlnRWRpdEdyb3VwJywge1xuICAgICAgdXNlclBvb2xJZDogdGhpcy51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgICAgZ3JvdXBOYW1lOiAnRmxvd0NvbmZpZ0VkaXQnLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdFZGl0IGFjY2VzcyB0byBmbG93IGNvbmZpZ3MgLSBjYW4gcmVhZCBhbmQgbW9kaWZ5IHZhcmlhYmxlIHZhbHVlcyBhbmQgcHJvbXB0IGNvbnRlbnQgYnV0IGNhbm5vdCBhZGQvcmVtb3ZlIGZpZWxkcyBvciBkZWxldGUgY29uZmlncycsXG4gICAgICBwcmVjZWRlbmNlOiAyLFxuICAgIH0pO1xuXG4gICAgLy8gRmxvd0NvbmZpZ1JlYWQgLSBSZWFkLW9ubHkgYWNjZXNzXG4gICAgbmV3IENmblVzZXJQb29sR3JvdXAodGhpcywgJ0Zsb3dDb25maWdSZWFkR3JvdXAnLCB7XG4gICAgICB1c2VyUG9vbElkOiB0aGlzLnVzZXJQb29sLnVzZXJQb29sSWQsXG4gICAgICBncm91cE5hbWU6ICdGbG93Q29uZmlnUmVhZCcsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ1JlYWQtb25seSBhY2Nlc3MgdG8gYWxsIGZsb3cgY29uZmlncyBmb3IgcmVwb3J0aW5nIGFuZCByZWZlcmVuY2UgcHVycG9zZXMnLFxuICAgICAgcHJlY2VkZW5jZTogMyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3NvY2lhdGVkIFZvaWNlbWFpbCBhcyBBZ2VudCBXb3Jrc3BhY2UgYXBwXG4gICAqL1xuICBhc3NvY2lhdGUzcEFwcCgpIHtcbiAgICBjb25zdCB7XG4gICAgICBwcm9wczogeyBwcmVmaXgsIGNvbm5lY3RJbnN0YW5jZUFybiB9LFxuICAgICAgYXBwVXJsOiB1cmwsXG4gICAgfSA9IHRoaXM7XG4gICAgbGV0IG5hbWVzcGFjZSA9IGBjeGJ1aWxkZXIuJHtwcmVmaXh9YDtcbiAgICBpZiAobmFtZXNwYWNlLmxlbmd0aCA+IDMyICYmICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKG5hbWVzcGFjZSkpIHtcbiAgICAgIG5hbWVzcGFjZSA9IG5hbWVzcGFjZS5zdWJzdHJpbmcoMCwgMzIpO1xuICAgIH1cblxuICAgIGNvbnN0IGFwcCA9IG5ldyBDZm5BcHBsaWNhdGlvbih0aGlzLCAnM3BBcHAnLCB7XG4gICAgICBuYW1lOiB0aGlzLnByb3BzLnByZWZpeCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnQWdlbnQgV29ya3NwYWNlIGFwcCBmb3IgY29uZmlndXJpbmcgY29udGFjdCBmbG93IHZhcmlhYmxlcyBhbmQgcHJvbXB0cycsXG4gICAgICBuYW1lc3BhY2UsXG4gICAgICBhcHBsaWNhdGlvblNvdXJjZUNvbmZpZzoge1xuICAgICAgICBleHRlcm5hbFVybENvbmZpZzoge1xuICAgICAgICAgIGFjY2Vzc1VybDogdXJsLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIC8vIGRvY3M6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb25uZWN0L2xhdGVzdC9hZG1pbmd1aWRlLzNwLWFwcHMtZXZlbnRzLXJlcXVlc3RzLmh0bWxcbiAgICAgIHBlcm1pc3Npb25zOiBbXG4gICAgICAgICdVc2VyLkRldGFpbHMuVmlldycsXG4gICAgICAgICdVc2VyLkNvbmZpZ3VyYXRpb24uVmlldycsXG4gICAgICAgICdVc2VyLlN0YXR1cy5WaWV3JyxcbiAgICAgICAgJ0NvbnRhY3QuRGV0YWlscy5WaWV3JyxcbiAgICAgICAgJ0NvbnRhY3QuQ3VzdG9tZXJEZXRhaWxzLlZpZXcnLFxuICAgICAgICAnQ29udGFjdC5WYXJpYWJsZXMuVmlldycsXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYXNzb2NpYXRpb24gPSBuZXcgQ2ZuSW50ZWdyYXRpb25Bc3NvY2lhdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICAnM3BBcHBBc3NvY2lhdGlvbicsXG4gICAgICB7XG4gICAgICAgIGluc3RhbmNlSWQ6IGNvbm5lY3RJbnN0YW5jZUFybixcbiAgICAgICAgaW50ZWdyYXRpb25UeXBlOiAnQVBQTElDQVRJT04nLFxuICAgICAgICBpbnRlZ3JhdGlvbkFybjogYXBwLmF0dHJBcHBsaWNhdGlvbkFybixcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgU2VjdXJpdHlQcm9maWxlUHJvdmlkZXIoXG4gICAgICB0aGlzLFxuICAgICAgJ1NlY3VyaXR5UHJvZmlsZVByb3ZpZGVyJyxcbiAgICAgIHtcbiAgICAgICAgY29ubmVjdEluc3RhbmNlQXJuLFxuICAgICAgfVxuICAgICk7XG4gICAgcHJvdmlkZXIubm9kZS5hZGREZXBlbmRlbmN5KGFzc29jaWF0aW9uKTtcblxuICAgIC8vIEF1dG9tYXRpY2FsbHkgYXNzb2NpYXRlIHdpdGggc2VjdXJpdHkgcHJvZmlsZXNcbiAgICBjb25zdCBzZWN1cml0eVByb2ZpbGVzID0gWydBZG1pbiddO1xuICAgIGZvciAoY29uc3QgcHJvZmlsZSBvZiBzZWN1cml0eVByb2ZpbGVzKSB7XG4gICAgICBwcm92aWRlci5hbGxvd0FwcGxpY2F0aW9uKGBBbGxvdyR7cHJvZmlsZX1gLCBwcm9maWxlLCBuYW1lc3BhY2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgRHluYW1vREIgdGFibGUgd2l0aCBvcHRpb25hbCBnbG9iYWwgdGFibGUgc3VwcG9ydFxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVUYWJsZShcbiAgICBwcmVmaXg6IHN0cmluZyxcbiAgICBwcm9kOiBib29sZWFuLFxuICAgIGdsb2JhbFRhYmxlPzogR2xvYmFsVGFibGVDb25maWdcbiAgKTogZHluYW1vZGIuSVRhYmxlIHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBwcmVmaXg7XG5cbiAgICBpZiAoIWdsb2JhbFRhYmxlKSB7XG4gICAgICAvLyBTaW5nbGUtcmVnaW9uIHRhYmxlXG4gICAgICByZXR1cm4gbmV3IGR5bmFtb2RiLlRhYmxlKHRoaXMsICdGbG93Q29uZmlnc1RhYmxlJywge1xuICAgICAgICB0YWJsZU5hbWUsXG4gICAgICAgIHBhcnRpdGlvbktleToge1xuICAgICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgICAgdHlwZTogZHluYW1vZGIuQXR0cmlidXRlVHlwZS5TVFJJTkcsXG4gICAgICAgIH0sXG4gICAgICAgIGJpbGxpbmdNb2RlOiBkeW5hbW9kYi5CaWxsaW5nTW9kZS5QQVlfUEVSX1JFUVVFU1QsXG4gICAgICAgIHBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uOiB7XG4gICAgICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRlbGV0aW9uUHJvdGVjdGlvbjogcHJvZCxcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogcHJvZFxuICAgICAgICAgID8gY2RrLlJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAgICAgICAgOiBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGdsb2JhbFRhYmxlLmlzUHJpbWFyeVJlZ2lvbikge1xuICAgICAgLy8gUHJpbWFyeSByZWdpb24gY3JlYXRlcyBnbG9iYWwgdGFibGUgd2l0aCByZXBsaWNhc1xuICAgICAgcmV0dXJuIG5ldyBkeW5hbW9kYi5UYWJsZSh0aGlzLCAnRmxvd0NvbmZpZ3NUYWJsZScsIHtcbiAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICBwYXJ0aXRpb25LZXk6IHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HLFxuICAgICAgICB9LFxuICAgICAgICBiaWxsaW5nTW9kZTogZHluYW1vZGIuQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNULFxuICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbjoge1xuICAgICAgICAgIHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICByZXBsaWNhdGlvblJlZ2lvbnM6IGdsb2JhbFRhYmxlLnJlcGxpY2FSZWdpb25zIHx8IFtdLFxuICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IHByb2RcbiAgICAgICAgICA/IGNkay5SZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgICAgICAgIDogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTZWNvbmRhcnkgcmVnaW9uIHJlZmVyZW5jZXMgZXhpc3RpbmcgZ2xvYmFsIHRhYmxlXG4gICAgICByZXR1cm4gZHluYW1vZGIuVGFibGUuZnJvbVRhYmxlQXJuKFxuICAgICAgICB0aGlzLFxuICAgICAgICAnRmxvd0NvbmZpZ3NUYWJsZScsXG4gICAgICAgIGBhcm46YXdzOmR5bmFtb2RiOiR7dGhpcy5yZWdpb259OiR7dGhpcy5hY2NvdW50fTp0YWJsZS8ke3RhYmxlTmFtZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIFZQQyBjb25maWd1cmF0aW9uIHN0cmluZyBJRHMgdG8gQ0RLIG9iamVjdHNcbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZVZwY0NvbmZpZyh2cGNDb25maWc6IFZwY0NvbmZpZyk6IFJlc29sdmVkVnBjQ29uZmlnIHtcbiAgICBjb25zdCB7XG4gICAgICB2cGNJZCxcbiAgICAgIGxhbWJkYVNlY3VyaXR5R3JvdXBJZHMsXG4gICAgICBwcml2YXRlU3VibmV0SWRzLFxuICAgICAgdnBjRW5kcG9pbnRTZWN1cml0eUdyb3VwSWRzLFxuICAgIH0gPSB2cGNDb25maWc7XG5cbiAgICAvLyBSZXNvbHZlIFZQQ1xuICAgIGNvbnN0IHZwYyA9IGVjMi5WcGMuZnJvbUxvb2t1cCh0aGlzLCAnUmVzb2x2ZWRWcGMnLCB7IHZwY0lkIH0pO1xuXG4gICAgLy8gUmVzb2x2ZSBMYW1iZGEgc2VjdXJpdHkgZ3JvdXBzXG4gICAgY29uc3QgbGFtYmRhU2VjdXJpdHlHcm91cHMgPSBsYW1iZGFTZWN1cml0eUdyb3VwSWRzLm1hcCgoc2dJZCwgaW5kZXgpID0+XG4gICAgICBlYzIuU2VjdXJpdHlHcm91cC5mcm9tU2VjdXJpdHlHcm91cElkKFxuICAgICAgICB0aGlzLFxuICAgICAgICBgTGFtYmRhU2VjdXJpdHlHcm91cCR7aW5kZXh9YCxcbiAgICAgICAgc2dJZFxuICAgICAgKVxuICAgICk7XG5cbiAgICAvLyBSZXNvbHZlIHByaXZhdGUgc3VibmV0c1xuICAgIGNvbnN0IHByaXZhdGVTdWJuZXRzID0gcHJpdmF0ZVN1Ym5ldElkcy5tYXAoKHN1Ym5ldElkLCBpbmRleCkgPT5cbiAgICAgIGVjMi5TdWJuZXQuZnJvbVN1Ym5ldElkKHRoaXMsIGBQcml2YXRlU3VibmV0JHtpbmRleH1gLCBzdWJuZXRJZClcbiAgICApO1xuXG4gICAgLy8gUmVzb2x2ZSBWUEMgZW5kcG9pbnQgc2VjdXJpdHkgZ3JvdXBzXG4gICAgY29uc3QgdnBjRW5kcG9pbnRTZWN1cml0eUdyb3VwcyA9IHZwY0VuZHBvaW50U2VjdXJpdHlHcm91cElkcy5tYXAoXG4gICAgICAoc2dJZCwgaW5kZXgpID0+XG4gICAgICAgIGVjMi5TZWN1cml0eUdyb3VwLmZyb21TZWN1cml0eUdyb3VwSWQoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBgVnBjRW5kcG9pbnRTZWN1cml0eUdyb3VwJHtpbmRleH1gLFxuICAgICAgICAgIHNnSWRcbiAgICAgICAgKVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdnBjLFxuICAgICAgbGFtYmRhU2VjdXJpdHlHcm91cHMsXG4gICAgICBwcml2YXRlU3VibmV0cyxcbiAgICAgIHZwY0VuZHBvaW50U2VjdXJpdHlHcm91cHMsXG4gICAgfTtcbiAgfVxufVxuIl19
|