@cxbuilder/flow-config 2.0.0 → 2.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
CHANGED
|
@@ -4135,7 +4135,7 @@
|
|
|
4135
4135
|
},
|
|
4136
4136
|
"locationInModule": {
|
|
4137
4137
|
"filename": "infrastructure/FlowConfigStack.ts",
|
|
4138
|
-
"line":
|
|
4138
|
+
"line": 169
|
|
4139
4139
|
},
|
|
4140
4140
|
"parameters": [
|
|
4141
4141
|
{
|
|
@@ -4161,17 +4161,17 @@
|
|
|
4161
4161
|
"kind": "class",
|
|
4162
4162
|
"locationInModule": {
|
|
4163
4163
|
"filename": "infrastructure/FlowConfigStack.ts",
|
|
4164
|
-
"line":
|
|
4164
|
+
"line": 145
|
|
4165
4165
|
},
|
|
4166
4166
|
"methods": [
|
|
4167
4167
|
{
|
|
4168
4168
|
"docs": {
|
|
4169
4169
|
"stability": "stable",
|
|
4170
|
-
"summary": "
|
|
4170
|
+
"summary": "Associate FlowConfig as Agent Workspace app."
|
|
4171
4171
|
},
|
|
4172
4172
|
"locationInModule": {
|
|
4173
4173
|
"filename": "infrastructure/FlowConfigStack.ts",
|
|
4174
|
-
"line":
|
|
4174
|
+
"line": 295
|
|
4175
4175
|
},
|
|
4176
4176
|
"name": "associate3pApp"
|
|
4177
4177
|
},
|
|
@@ -4181,7 +4181,7 @@
|
|
|
4181
4181
|
},
|
|
4182
4182
|
"locationInModule": {
|
|
4183
4183
|
"filename": "infrastructure/FlowConfigStack.ts",
|
|
4184
|
-
"line":
|
|
4184
|
+
"line": 235
|
|
4185
4185
|
},
|
|
4186
4186
|
"name": "createUserPoolClient",
|
|
4187
4187
|
"returns": {
|
|
@@ -4197,7 +4197,7 @@
|
|
|
4197
4197
|
},
|
|
4198
4198
|
"locationInModule": {
|
|
4199
4199
|
"filename": "infrastructure/FlowConfigStack.ts",
|
|
4200
|
-
"line":
|
|
4200
|
+
"line": 263
|
|
4201
4201
|
},
|
|
4202
4202
|
"name": "createUserPoolGroups"
|
|
4203
4203
|
}
|
|
@@ -4211,7 +4211,7 @@
|
|
|
4211
4211
|
"immutable": true,
|
|
4212
4212
|
"locationInModule": {
|
|
4213
4213
|
"filename": "infrastructure/FlowConfigStack.ts",
|
|
4214
|
-
"line":
|
|
4214
|
+
"line": 165
|
|
4215
4215
|
},
|
|
4216
4216
|
"name": "appUrl",
|
|
4217
4217
|
"type": {
|
|
@@ -4224,7 +4224,7 @@
|
|
|
4224
4224
|
},
|
|
4225
4225
|
"locationInModule": {
|
|
4226
4226
|
"filename": "infrastructure/FlowConfigStack.ts",
|
|
4227
|
-
"line":
|
|
4227
|
+
"line": 149
|
|
4228
4228
|
},
|
|
4229
4229
|
"name": "alertTopic",
|
|
4230
4230
|
"type": {
|
|
@@ -4237,7 +4237,7 @@
|
|
|
4237
4237
|
},
|
|
4238
4238
|
"locationInModule": {
|
|
4239
4239
|
"filename": "infrastructure/FlowConfigStack.ts",
|
|
4240
|
-
"line":
|
|
4240
|
+
"line": 172
|
|
4241
4241
|
},
|
|
4242
4242
|
"name": "props",
|
|
4243
4243
|
"type": {
|
|
@@ -4250,7 +4250,7 @@
|
|
|
4250
4250
|
},
|
|
4251
4251
|
"locationInModule": {
|
|
4252
4252
|
"filename": "infrastructure/FlowConfigStack.ts",
|
|
4253
|
-
"line":
|
|
4253
|
+
"line": 150
|
|
4254
4254
|
},
|
|
4255
4255
|
"name": "table",
|
|
4256
4256
|
"type": {
|
|
@@ -4263,7 +4263,7 @@
|
|
|
4263
4263
|
},
|
|
4264
4264
|
"locationInModule": {
|
|
4265
4265
|
"filename": "infrastructure/FlowConfigStack.ts",
|
|
4266
|
-
"line":
|
|
4266
|
+
"line": 146
|
|
4267
4267
|
},
|
|
4268
4268
|
"name": "userPool",
|
|
4269
4269
|
"type": {
|
|
@@ -4276,7 +4276,7 @@
|
|
|
4276
4276
|
},
|
|
4277
4277
|
"locationInModule": {
|
|
4278
4278
|
"filename": "infrastructure/FlowConfigStack.ts",
|
|
4279
|
-
"line":
|
|
4279
|
+
"line": 148
|
|
4280
4280
|
},
|
|
4281
4281
|
"name": "userPoolClient",
|
|
4282
4282
|
"type": {
|
|
@@ -4389,6 +4389,25 @@
|
|
|
4389
4389
|
"fqn": "@cxbuilder/flow-config.ApiVpcConfig"
|
|
4390
4390
|
}
|
|
4391
4391
|
},
|
|
4392
|
+
{
|
|
4393
|
+
"abstract": true,
|
|
4394
|
+
"docs": {
|
|
4395
|
+
"default": "true",
|
|
4396
|
+
"remarks": "Set to false to disable automatic association.",
|
|
4397
|
+
"stability": "stable",
|
|
4398
|
+
"summary": "Whether to associate the app with the Connect Agent Workspace."
|
|
4399
|
+
},
|
|
4400
|
+
"immutable": true,
|
|
4401
|
+
"locationInModule": {
|
|
4402
|
+
"filename": "infrastructure/FlowConfigStack.ts",
|
|
4403
|
+
"line": 142
|
|
4404
|
+
},
|
|
4405
|
+
"name": "associate3pApp",
|
|
4406
|
+
"optional": true,
|
|
4407
|
+
"type": {
|
|
4408
|
+
"primitive": "boolean"
|
|
4409
|
+
}
|
|
4410
|
+
},
|
|
4392
4411
|
{
|
|
4393
4412
|
"abstract": true,
|
|
4394
4413
|
"docs": {
|
|
@@ -4595,6 +4614,6 @@
|
|
|
4595
4614
|
"symbolId": "infrastructure/FlowConfigStack:LambdaVpcConfig"
|
|
4596
4615
|
}
|
|
4597
4616
|
},
|
|
4598
|
-
"version": "2.
|
|
4599
|
-
"fingerprint": "
|
|
4617
|
+
"version": "2.1.0",
|
|
4618
|
+
"fingerprint": "7APV1MU2k9Svjp7XOp134U/3dAVzzVbNCFw80BjrU/4="
|
|
4600
4619
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,11 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [2.
|
|
8
|
+
## [2.1.0] - 2025-10-08
|
|
9
|
+
|
|
10
|
+
- Added `associate3pApp` stack prop which allow you turn off the automatic Agent Workspace app association
|
|
11
|
+
|
|
12
|
+
## [2.0.0] - 2025-07-30
|
|
9
13
|
|
|
10
14
|
- Add an admin page where users can select available locale an available voice ids.
|
|
11
15
|
- Add ability to import/export configs
|
|
@@ -103,6 +103,12 @@ export interface FlowConfigStackProps extends cdk.StackProps {
|
|
|
103
103
|
* @default true
|
|
104
104
|
*/
|
|
105
105
|
readonly branding?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Whether to associate the app with the Connect Agent Workspace.
|
|
108
|
+
* Set to false to disable automatic association.
|
|
109
|
+
* @default true
|
|
110
|
+
*/
|
|
111
|
+
readonly associate3pApp?: boolean;
|
|
106
112
|
}
|
|
107
113
|
export declare class FlowConfigStack extends cdk.Stack {
|
|
108
114
|
props: FlowConfigStackProps;
|
|
@@ -128,7 +134,7 @@ export declare class FlowConfigStack extends cdk.Stack {
|
|
|
128
134
|
*/
|
|
129
135
|
createUserPoolGroups(): void;
|
|
130
136
|
/**
|
|
131
|
-
*
|
|
137
|
+
* Associate FlowConfig as Agent Workspace app
|
|
132
138
|
*/
|
|
133
139
|
associate3pApp(): void;
|
|
134
140
|
/**
|
|
@@ -112,10 +112,13 @@ class FlowConfigStack extends cdk.Stack {
|
|
|
112
112
|
});
|
|
113
113
|
}
|
|
114
114
|
/**
|
|
115
|
-
*
|
|
115
|
+
* Associate FlowConfig as Agent Workspace app
|
|
116
116
|
*/
|
|
117
117
|
associate3pApp() {
|
|
118
|
-
const { props: { prefix, connectInstanceArn }, appUrl: url, } = this;
|
|
118
|
+
const { props: { prefix, connectInstanceArn }, appUrl: url, associate3pApp = true, } = this;
|
|
119
|
+
if (!associate3pApp) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
119
122
|
let namespace = `cxbuilder.${prefix}`;
|
|
120
123
|
if (namespace.length > 32 && !cdk.Token.isUnresolved(namespace)) {
|
|
121
124
|
namespace = namespace.substring(0, 32);
|
|
@@ -232,5 +235,5 @@ class FlowConfigStack extends cdk.Stack {
|
|
|
232
235
|
}
|
|
233
236
|
exports.FlowConfigStack = FlowConfigStack;
|
|
234
237
|
_a = JSII_RTTI_SYMBOL_1;
|
|
235
|
-
FlowConfigStack[_a] = { fqn: "@cxbuilder/flow-config.FlowConfigStack", version: "2.
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NvbmZpZ1N0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvRmxvd0NvbmZpZ1N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLHlEQU1pQztBQUNqQyxxREFBcUQ7QUFFckQsMkNBQTJDO0FBRTNDLG1DQUFnQztBQUNoQyxpREFBNEM7QUFDNUMsNkVBQXNFO0FBQ3RFLHVFQUFvRTtBQUNwRSx5REFBb0U7QUFDcEUseUVBQWlFO0FBQ2pFLDJDQUF3QztBQXVIeEMsTUFBYSxlQUFnQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBWTVDOzs7T0FHRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ0gsS0FBMkI7UUFFbEMsTUFBTSxFQUNKLE1BQU0sRUFDTixPQUFPLEVBQ1AsV0FBVyxFQUNYLElBQUksR0FBRyxLQUFLLEVBQ1osZUFBZSxFQUNmLFdBQVcsR0FDWixHQUFHLEtBQUssQ0FBQztRQUNWLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksTUFBTTtZQUNwQyxXQUFXLEVBQ1QsS0FBSyxDQUFDLFdBQVc7Z0JBQ2pCLDJJQUEySTtZQUM3SSxxQkFBcUIsRUFBRSxJQUFJO1NBQzVCLENBQUMsQ0FBQztRQWpCSSxVQUFLLEdBQUwsS0FBSyxDQUFzQjtRQW1CbEMsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxlQUFlO1lBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO1lBQ3hDLENBQUMs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RSxnQkFBZ0IsS0FBSyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQ2pFLENBQUM7UUFFRixPQUFPO1lBQ0wsR0FBRztZQUNILG9CQUFvQjtZQUNwQixjQUFjO1NBQ2YsQ0FBQztJQUNKLENBQUM7O0FBL1NILDBDQWdUQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge1xuICBJVXNlclBvb2wsXG4gIFVzZXJQb29sLFxuICBVc2VyUG9vbENsaWVudCxcbiAgVXNlclBvb2xDbGllbnRJZGVudGl0eVByb3ZpZGVyLFxuICBDZm5Vc2VyUG9vbEdyb3VwLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29nbml0byc7XG5pbXBvcnQgKiBhcyBkeW5hbW9kYiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgSVZwYywgSVNlY3VyaXR5R3JvdXAsIElTdWJuZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQXBpIH0gZnJvbSAnLi9hcGkvQXBpJztcbmltcG9ydCB7IFRvcGljIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgeyBFbWFpbFN1YnNjcmlwdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMtc3Vic2NyaXB0aW9ucyc7XG5pbXBvcnQgeyBTZWN1cml0eVByb2ZpbGVQcm92aWRlciB9IGZyb20gJy4vU2VjdXJpdHlQcm9maWxlUHJvdmlkZXInO1xuaW1wb3J0IHsgQ2ZuSW50ZWdyYXRpb25Bc3NvY2lhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb25uZWN0JztcbmltcG9ydCB7IENmbkFwcGxpY2F0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwcGludGVncmF0aW9ucyc7XG5pbXBvcnQgeyBHZXRDb25maWcgfSBmcm9tICcuL0dldENvbmZpZyc7XG5cbi8qKlxuICogQ29nbml0byBjb25maWd1cmF0aW9uIGZvciBGbG93Q29uZmlnIHN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b0NvbmZpZyB7XG4gIHJlYWRvbmx5IHVzZXJQb29sSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogRnVsbCBkb21haW4gbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHByb3ZpZGVkLCBjbGllbnQgd2lsbCBhdXRoIHRvIFNTTy4gT3RoZXJ3aXNlIHdpbGwgYXV0aCB0byB1c2VyIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHNzb1Byb3ZpZGVyTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBWUEMgY29uZmlndXJhdGlvbiBmb3IgQVBJIEdhdGV3YXlcbiAqIElmIHByb3ZpZGVkLCB0aGUgQVBJIHdpbGwgYmUgZGVwbG95ZWQgaW4gYSBwcml2YXRlIFZQQy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlWcGNDb25maWcge1xuICAvKipcbiAgICogVGhlIFZQQyBJRCB0byB1c2UgZm9yIHRoZSBBUElcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgVlBDIGVuZHBvaW50IElEIHRvIHVzZSBmb3IgdGhlIEFQSVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjRW5kcG9pbnRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIExhbWJkYSBWUEMgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYVZwY0NvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIElEIHRvIGRlcGxveSByZXNvdXJjZXMgaW50b1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogU2VjdXJpdHkgZ3JvdXAgSURzIGZvciBMYW1iZGEgZnVuY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwSWRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHJpdmF0ZSBzdWJuZXQgSURzIGZvciBMYW1iZGEgZnVuY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRJZHM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEdsb2JhbCB0YWJsZSBjb25maWd1cmF0aW9uIGZvciBtdWx0aS1yZWdpb24gZGVwbG95bWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHbG9iYWxUYWJsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgaXMgdGhlIHByaW1hcnkgcmVnaW9uIHRoYXQgY3JlYXRlcyB0aGUgZ2xvYmFsIHRhYmxlXG4gICAqL1xuICByZWFkb25seSBpc1ByaW1hcnlSZWdpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgYWxsIHJlZ2lvbnMgdGhhdCBzaG91bGQgaGF2ZSByZXBsaWNhc1xuICAgKiBPbmx5IHVzZWQgYnkgdGhlIHByaW1hcnkgcmVnaW9uXG4gICAqL1xuICByZWFkb25seSByZXBsaWNhUmVnaW9ucz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEludGVybmFsIGludGVyZmFjZSBmb3IgcmVzb2x2ZWQgVlBDIHJlc291cmNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkVnBjQ29uZmlnIHtcbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xuICByZWFkb25seSBsYW1iZGFTZWN1cml0eUdyb3VwczogSVNlY3VyaXR5R3JvdXBbXTtcbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldHM6IElTdWJuZXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93Q29uZmlnU3RhY2tQcm9wcyBleHRlbmRzIGNkay5TdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIHJlc291cmNlIG5hbWluZy4gV2lsbCBhbHNvIGJlIHRoZSBuYW1lIG9mIHRoZSBDb25uZWN0IExhbWJkYVxuICAgKiBAZXhhbXBsZSBgY3hidWlsZGVyLWZsb3ctY29uZmlnYFxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvZ25pdG86IENvZ25pdG9Db25maWc7XG4gIHJlYWRvbmx5IGNvbm5lY3RJbnN0YW5jZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaG8gdG8gbm90aWZ5IGZvciB1bmhhbmRsZWQgZXhjZXB0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgYWxlcnRFbWFpbHM6IHN0cmluZ1tdO1xuICByZWFkb25seSBwcm9kPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIHRoZSBBUEkgd2lsbCBiZSBkZXBsb3llZCBpbiBhIFZQQy5cbiAgICovXG4gIHJlYWRvbmx5IGFwaVZwY0NvbmZpZz86IEFwaVZwY0NvbmZpZztcblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIHRoZSBMYW1iZGEgZnVuY3Rpb25zIHdpbGwgYmUgZGVwbG95ZWQgaW4gYSBWUEMuXG4gICAqIE5vdGU6IFZQQyBzaG91bGQgY29udGFpbiBlbmRwb2ludHMgdG86IENsb3VkRm9ybWF0aW9uLCBMYW1iZGEsIER5bmFtb0RCLCBTTlMsIGFuZCBQb2xseS5cbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYVZwY0NvbmZpZz86IExhbWJkYVZwY0NvbmZpZztcblxuICAvKipcbiAgICogR2xvYmFsIHRhYmxlIGNvbmZpZ3VyYXRpb24gZm9yIG11bHRpLXJlZ2lvbiBkZXBsb3ltZW50cy5cbiAgICogSWYgcHJvdmlkZWQsIGVuYWJsZXMgZ2xvYmFsIHRhYmxlIHN1cHBvcnQuXG4gICAqIElmIHVuZGVmaW5lZCwgY3JlYXRlcyBhIHNpbmdsZS1yZWdpb24gdGFibGUuXG4gICAqL1xuICByZWFkb25seSBnbG9iYWxUYWJsZT86IEdsb2JhbFRhYmxlQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gZmFsc2UgdG8gcmVtb3ZlIENYQnVpbGRlciBicmFuZGluZyBmcm9tIHRoZSB3ZWIgYXBwLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBicmFuZGluZz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBGbG93Q29uZmlnU3RhY2sgZXh0ZW5kcyBjZGsuU3RhY2sge1xuICB1c2VyUG9vbDogSVVzZXJQb29sO1xuICBwcml2YXRlIGFwaTogQXBpO1xuICB1c2VyUG9vbENsaWVudDogVXNlclBvb2xDbGllbnQ7XG4gIGFsZXJ0VG9waWM6IFRvcGljO1xuICB0YWJsZTogY2RrLmF3c19keW5hbW9kYi5JVGFibGU7XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIFZQQyBjb25maWd1cmF0aW9uIGlmIHByaXZhdGUgZGVwbG95bWVudCBpcyBlbmFibGVkXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNvbHZlZFZwY0NvbmZpZz86IFJlc29sdmVkVnBjQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBHZXQgcmVzb2x2ZWQgVlBDIGNvbmZpZ3VyYXRpb24gZm9yIGNoaWxkIGNvbnN0cnVjdHNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX2dldFJlc29sdmVkVnBjQ29uZmlnKCk6IFJlc29sdmVkVnBjQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzb2x2ZWRWcGNDb25maWc7XG4gIH1cblxuICBnZXQgYXBwVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXBpLnVybDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcHJvcHM6IEZsb3dDb25maWdTdGFja1Byb3BzXG4gICkge1xuICAgIGNvbnN0IHtcbiAgICAgIHByZWZpeCxcbiAgICAgIGNvZ25pdG8sXG4gICAgICBhbGVydEVtYWlscyxcbiAgICAgIHByb2QgPSBmYWxzZSxcbiAgICAgIGxhbWJkYVZwY0NvbmZpZyxcbiAgICAgIGdsb2JhbFRhYmxlLFxuICAgIH0gPSBwcm9wcztcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgc3RhY2tOYW1lOiBwcm9wcy5zdGFja05hbWUgPz8gcHJlZml4LFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIHByb3BzLmRlc2NyaXB0aW9uID8/XG4gICAgICAgICdXZWItYmFzZWQgaW50ZXJmYWNlIGZvciBtYW5hZ2luZyBmbG93IHZhcmlhYmxlcyBhbmQgcHJvbXB0cyB0aGF0IGFyZSBkeW5hbWljYWxseSByZXRyaWV2ZWQgYnkgQW1hem9uIENvbm5lY3QgZHVyaW5nIGN1c3RvbWVyIGludGVyYWN0aW9ucycsXG4gICAgICB0ZXJtaW5hdGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgfSk7XG5cbiAgICAvLyBSZXNvbHZlIFZQQyBjb25maWd1cmF0aW9uIGlmIHByb3ZpZGVkXG4gICAgdGhpcy5fcmVzb2x2ZWRWcGNDb25maWcgPSBsYW1iZGFWcGNDb25maWdcbiAgICAgID8gdGhpcy5yZXNvbHZlVnBjQ29uZmlnKGxhbWJkYVZwY0NvbmZpZylcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gRHluYW1vREIgdGFibGUgZm9yIHN0b3JpbmcgZmxvdyBjb25maWdzXG4gICAgdGhpcy50YWJsZSA9IHRoaXMuY3JlYXRlVGFibGUocHJlZml4LCBwcm9kLCBnbG9iYWxUYWJsZSk7XG5cbiAgICB0aGlzLmFsZXJ0VG9waWMgPSBuZXcgVG9waWModGhpcywgJ0FsZXJ0VG9waWMnLCB7XG4gICAgICB0b3BpY05hbWU6IGAke3ByZWZpeH0tZXJyb3ItYWxlcnRzYCxcbiAgICB9KTtcbiAgICBhbGVydEVtYWlscy5mb3JFYWNoKChlKSA9PlxuICAgICAgdGhpcy5hbGVydFRvcGljLmFkZFN1YnNjcmlwdGlvbihuZXcgRW1haWxTdWJzY3JpcHRpb24oZSkpXG4gICAgKTtcblxuICAgIHRoaXMudXNlclBvb2wgPSBVc2VyUG9vbC5mcm9tVXNlclBvb2xJZChcbiAgICAgIHRoaXMsXG4gICAgICAnVXNlclBvb2wnLFxuICAgICAgY29nbml0by51c2VyUG9vbElkXG4gICAgKTtcblxuICAgIGNvbnN0IGdldENvbmZpZyA9IG5ldyBHZXRDb25maWcodGhpcyk7XG4gICAgdGhpcy5hcGkgPSBuZXcgQXBpKHRoaXMpO1xuXG4gICAgdGhpcy51c2VyUG9vbENsaWVudCA9IHRoaXMuY3JlYXRlVXNlclBvb2xDbGllbnQoKTtcbiAgICB0aGlzLmNyZWF0ZVVzZXJQb29sR3JvdXBzKCk7XG5cbiAgICB0aGlzLmFzc29jaWF0ZTNwQXBwKCk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnQXBwVXJsJywge1xuICAgICAgdmFsdWU6IHRoaXMuYXBwVXJsLFxuICAgICAgZGVzY3JpcHRpb246ICdCYXNlIFVSTCBmb3IgdGhlIEZsb3cgQ29uZmlnIGFwcGxpY2F0aW9uJyxcbiAgICB9KTtcbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnQXBpVXJsJywge1xuICAgICAgdmFsdWU6IGAke3RoaXMuYXBwVXJsfS9hcGlgLFxuICAgICAgZGVzY3JpcHRpb246ICdCYXNlIFVSTCBmb3IgdGhlIEZsb3cgQ29uZmlnIEFQSScsXG4gICAgfSk7XG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ0dldENvbmZpZ0xhbWJkYU5hbWUnLCB7XG4gICAgICB2YWx1ZTogZ2V0Q29uZmlnLmZ1bmN0aW9uLmZ1bmN0aW9uTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnTGFtYmRhIGZ1bmN0aW9uIG5hbWUgZm9yIGFjY2Vzc2luZyBmbG93IGNvbmZpZ3MgZnJvbSBDb25uZWN0JyxcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZVVzZXJQb29sQ2xpZW50KCk6IFVzZXJQb29sQ2xpZW50IHtcbiAgICBjb25zdCB7IHByZWZpeCwgY29nbml0byB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGRvbWFpbnMgPSBbJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIHRoaXMuYXBwVXJsXTtcblxuICAgIGNvbnN0IG9BdXRoID0ge1xuICAgICAgY2FsbGJhY2tVcmxzOiBkb21haW5zLm1hcCgoeCkgPT4gYCR7eH0vcG9wdXAuaHRtbGApLFxuICAgICAgbG9nb3V0VXJsczogZG9tYWlucyxcbiAgICB9O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBVc2VyUG9vbENsaWVudCh0aGlzLCAnVXNlclBvb2xDbGllbnQnLCB7XG4gICAgICB1c2VyUG9vbENsaWVudE5hbWU6IHByZWZpeCxcbiAgICAgIHVzZXJQb29sOiB0aGlzLnVzZXJQb29sLFxuICAgICAgc3VwcG9ydGVkSWRlbnRpdHlQcm92aWRlcnM6IGNvZ25pdG8uc3NvUHJvdmlkZXJOYW1lXG4gICAgICAgID8gW1VzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlci5jdXN0b20oY29nbml0by5zc29Qcm92aWRlck5hbWUpXVxuICAgICAgICA6IFtVc2VyUG9vbENsaWVudElkZW50aXR5UHJvdmlkZXIuQ09HTklUT10sXG4gICAgICBnZW5lcmF0ZVNlY3JldDogZmFsc2UsXG4gICAgICBvQXV0aCxcbiAgICB9KTtcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdVc2VyUG9vbENsaWVudElkJywge1xuICAgICAgdmFsdWU6IGNsaWVudC51c2VyUG9vbENsaWVudElkLFxuICAgIH0pO1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIENvZ25pdG8gVXNlciBHcm91cHMgZm9yIHJvbGUtYmFzZWQgYWNjZXNzIGNvbnRyb2xcbiAgICovXG4gIGNyZWF0ZVVzZXJQb29sR3JvdXBzKCk6IHZvaWQge1xuICAgIC8vIEZsb3dDb25maWdBZG1pbiAtIEZ1bGwgQ1JVRCBhY2Nlc3NcbiAgICBuZXcgQ2ZuVXNlclBvb2xHcm91cCh0aGlzLCAnRmxvd0NvbmZpZ0FkbWluR3JvdXAnLCB7XG4gICAgICB1c2VyUG9vbElkOiB0aGlzLnVzZXJQb29sLnVzZXJQb29sSWQsXG4gICAgICBncm91cE5hbWU6ICdGbG93Q29uZmlnQWRtaW4nLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdGdWxsIGFkbWluaXN0cmF0aXZlIGFjY2VzcyB0byBhbGwgZmxvdyBjb25maWdzIC0gY2FuIGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQgZGVsZXRlIGZsb3cgY29uZmlncyBhbmQgYWxsIHRoZWlyIHByb3BlcnRpZXMnLFxuICAgICAgcHJlY2VkZW5jZTogMSxcbiAgICB9KTtcblxuICAgIC8vIEZsb3dDb25maWdFZGl0IC0gRWRpdCB2YXJpYWJsZS9wcm9tcHQgdmFsdWVzIG9ubHlcbiAgICBuZXcgQ2ZuVXNlclBvb2xHcm91cCh0aGlzLCAnRmxvd0NvbmZpZ0VkaXRHcm91cCcsIHtcbiAgICAgIHVzZXJQb29sSWQ6IHRoaXMudXNlclBvb2wudXNlclBvb2xJZCxcbiAgICAgIGdyb3VwTmFtZTogJ0Zsb3dDb25maWdFZGl0JyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnRWRpdCBhY2Nlc3MgdG8gZmxvdyBjb25maWdzIC0gY2FuIHJlYWQgYW5kIG1vZGlmeSB2YXJpYWJsZSB2YWx1ZXMgYW5kIHByb21wdCBjb250ZW50IGJ1dCBjYW5ub3QgYWRkL3JlbW92ZSBmaWVsZHMgb3IgZGVsZXRlIGNvbmZpZ3MnLFxuICAgICAgcHJlY2VkZW5jZTogMixcbiAgICB9KTtcblxuICAgIC8vIEZsb3dDb25maWdSZWFkIC0gUmVhZC1vbmx5IGFjY2Vzc1xuICAgIG5ldyBDZm5Vc2VyUG9vbEdyb3VwKHRoaXMsICdGbG93Q29uZmlnUmVhZEdyb3VwJywge1xuICAgICAgdXNlclBvb2xJZDogdGhpcy51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgICAgZ3JvdXBOYW1lOiAnRmxvd0NvbmZpZ1JlYWQnLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdSZWFkLW9ubHkgYWNjZXNzIHRvIGFsbCBmbG93IGNvbmZpZ3MgZm9yIHJlcG9ydGluZyBhbmQgcmVmZXJlbmNlIHB1cnBvc2VzJyxcbiAgICAgIHByZWNlZGVuY2U6IDMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXNzb2NpYXRlZCBWb2ljZW1haWwgYXMgQWdlbnQgV29ya3NwYWNlIGFwcFxuICAgKi9cbiAgYXNzb2NpYXRlM3BBcHAoKSB7XG4gICAgY29uc3Qge1xuICAgICAgcHJvcHM6IHsgcHJlZml4LCBjb25uZWN0SW5zdGFuY2VBcm4gfSxcbiAgICAgIGFwcFVybDogdXJsLFxuICAgIH0gPSB0aGlzO1xuICAgIGxldCBuYW1lc3BhY2UgPSBgY3hidWlsZGVyLiR7cHJlZml4fWA7XG4gICAgaWYgKG5hbWVzcGFjZS5sZW5ndGggPiAzMiAmJiAhY2RrLlRva2VuLmlzVW5yZXNvbHZlZChuYW1lc3BhY2UpKSB7XG4gICAgICBuYW1lc3BhY2UgPSBuYW1lc3BhY2Uuc3Vic3RyaW5nKDAsIDMyKTtcbiAgICB9XG5cbiAgICBjb25zdCBhcHAgPSBuZXcgQ2ZuQXBwbGljYXRpb24odGhpcywgJzNwQXBwJywge1xuICAgICAgbmFtZTogdGhpcy5wcm9wcy5wcmVmaXgsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0FnZW50IFdvcmtzcGFjZSBhcHAgZm9yIGNvbmZpZ3VyaW5nIGNvbnRhY3QgZmxvdyB2YXJpYWJsZXMgYW5kIHByb21wdHMnLFxuICAgICAgbmFtZXNwYWNlLFxuICAgICAgYXBwbGljYXRpb25Tb3VyY2VDb25maWc6IHtcbiAgICAgICAgZXh0ZXJuYWxVcmxDb25maWc6IHtcbiAgICAgICAgICBhY2Nlc3NVcmw6IHVybCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAvLyBkb2NzOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29ubmVjdC9sYXRlc3QvYWRtaW5ndWlkZS8zcC1hcHBzLWV2ZW50cy1yZXF1ZXN0cy5odG1sXG4gICAgICBwZXJtaXNzaW9uczogW1xuICAgICAgICAnVXNlci5EZXRhaWxzLlZpZXcnLFxuICAgICAgICAnVXNlci5Db25maWd1cmF0aW9uLlZpZXcnLFxuICAgICAgICAnVXNlci5TdGF0dXMuVmlldycsXG4gICAgICAgICdDb250YWN0LkRldGFpbHMuVmlldycsXG4gICAgICAgICdDb250YWN0LkN1c3RvbWVyRGV0YWlscy5WaWV3JyxcbiAgICAgICAgJ0NvbnRhY3QuVmFyaWFibGVzLlZpZXcnLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFzc29jaWF0aW9uID0gbmV3IENmbkludGVncmF0aW9uQXNzb2NpYXRpb24oXG4gICAgICB0aGlzLFxuICAgICAgJzNwQXBwQXNzb2NpYXRpb24nLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZUlkOiBjb25uZWN0SW5zdGFuY2VBcm4sXG4gICAgICAgIGludGVncmF0aW9uVHlwZTogJ0FQUExJQ0FUSU9OJyxcbiAgICAgICAgaW50ZWdyYXRpb25Bcm46IGFwcC5hdHRyQXBwbGljYXRpb25Bcm4sXG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFNlY3VyaXR5UHJvZmlsZVByb3ZpZGVyKFxuICAgICAgdGhpcyxcbiAgICAgICdTZWN1cml0eVByb2ZpbGVQcm92aWRlcicsXG4gICAgICB7XG4gICAgICAgIGNvbm5lY3RJbnN0YW5jZUFybixcbiAgICAgIH1cbiAgICApO1xuICAgIHByb3ZpZGVyLm5vZGUuYWRkRGVwZW5kZW5jeShhc3NvY2lhdGlvbik7XG5cbiAgICAvLyBBdXRvbWF0aWNhbGx5IGFzc29jaWF0ZSB3aXRoIHNlY3VyaXR5IHByb2ZpbGVzXG4gICAgY29uc3Qgc2VjdXJpdHlQcm9maWxlcyA9IFsnQWRtaW4nXTtcbiAgICBmb3IgKGNvbnN0IHByb2ZpbGUgb2Ygc2VjdXJpdHlQcm9maWxlcykge1xuICAgICAgcHJvdmlkZXIuYWxsb3dBcHBsaWNhdGlvbihgQWxsb3cke3Byb2ZpbGV9YCwgcHJvZmlsZSwgbmFtZXNwYWNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIER5bmFtb0RCIHRhYmxlIHdpdGggb3B0aW9uYWwgZ2xvYmFsIHRhYmxlIHN1cHBvcnRcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlVGFibGUoXG4gICAgcHJlZml4OiBzdHJpbmcsXG4gICAgcHJvZDogYm9vbGVhbixcbiAgICBnbG9iYWxUYWJsZT86IEdsb2JhbFRhYmxlQ29uZmlnXG4gICk6IGR5bmFtb2RiLklUYWJsZSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gcHJlZml4O1xuXG4gICAgaWYgKCFnbG9iYWxUYWJsZSkge1xuICAgICAgLy8gU2luZ2xlLXJlZ2lvbiB0YWJsZVxuICAgICAgcmV0dXJuIG5ldyBkeW5hbW9kYi5UYWJsZVYyKHRoaXMsICdUYWJsZScsIHtcbiAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICBwYXJ0aXRpb25LZXk6IHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HLFxuICAgICAgICB9LFxuICAgICAgICBiaWxsaW5nOiBkeW5hbW9kYi5CaWxsaW5nLm9uRGVtYW5kKCksXG4gICAgICAgIHBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uOiB7XG4gICAgICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRlbGV0aW9uUHJvdGVjdGlvbjogcHJvZCxcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogcHJvZFxuICAgICAgICAgID8gY2RrLlJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAgICAgICAgOiBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGdsb2JhbFRhYmxlLmlzUHJpbWFyeVJlZ2lvbikge1xuICAgICAgLy8gUHJpbWFyeSByZWdpb24gY3JlYXRlcyBnbG9iYWwgdGFibGUgd2l0aCByZXBsaWNhc1xuICAgICAgY29uc3QgdGFibGUgPSBuZXcgZHluYW1vZGIuVGFibGVWMih0aGlzLCAnVGFibGUnLCB7XG4gICAgICAgIHRhYmxlTmFtZSxcbiAgICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgICB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgfSxcbiAgICAgICAgYmlsbGluZzogZHluYW1vZGIuQmlsbGluZy5vbkRlbWFuZCgpLFxuICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbjoge1xuICAgICAgICAgIHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IHByb2RcbiAgICAgICAgICA/IGNkay5SZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgICAgICAgIDogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIH0pO1xuICAgICAgaWYgKGdsb2JhbFRhYmxlLnJlcGxpY2FSZWdpb25zKSB7XG4gICAgICAgIGZvciAoY29uc3QgcmVnaW9uIG9mIGdsb2JhbFRhYmxlLnJlcGxpY2FSZWdpb25zKSB7XG4gICAgICAgICAgdGFibGUuYWRkUmVwbGljYSh7XG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbjoge1xuICAgICAgICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0YWJsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2Vjb25kYXJ5IHJlZ2lvbiByZWZlcmVuY2VzIGV4aXN0aW5nIGdsb2JhbCB0YWJsZVxuICAgICAgcmV0dXJuIGR5bmFtb2RiLlRhYmxlLmZyb21UYWJsZUFybihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ1RhYmxlJyxcbiAgICAgICAgYGFybjphd3M6ZHluYW1vZGI6JHt0aGlzLnJlZ2lvbn06JHt0aGlzLmFjY291bnR9OnRhYmxlLyR7dGFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgVlBDIGNvbmZpZ3VyYXRpb24gc3RyaW5nIElEcyB0byBDREsgb2JqZWN0c1xuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlVnBjQ29uZmlnKHZwY0NvbmZpZzogTGFtYmRhVnBjQ29uZmlnKTogUmVzb2x2ZWRWcGNDb25maWcge1xuICAgIGNvbnN0IHsgdnBjSWQsIHNlY3VyaXR5R3JvdXBJZHMsIHN1Ym5ldElkcyB9ID0gdnBjQ29uZmlnO1xuXG4gICAgLy8gUmVzb2x2ZSBWUENcbiAgICBjb25zdCB2cGMgPSBlYzIuVnBjLmZyb21Mb29rdXAodGhpcywgJ1Jlc29sdmVkVnBjJywgeyB2cGNJZCB9KTtcblxuICAgIC8vIFJlc29sdmUgTGFtYmRhIHNlY3VyaXR5IGdyb3Vwc1xuICAgIGNvbnN0IGxhbWJkYVNlY3VyaXR5R3JvdXBzID0gc2VjdXJpdHlHcm91cElkcy5tYXAoKHNnSWQsIGluZGV4KSA9PlxuICAgICAgZWMyLlNlY3VyaXR5R3JvdXAuZnJvbVNlY3VyaXR5R3JvdXBJZChcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYExhbWJkYVNlY3VyaXR5R3JvdXAke2luZGV4fWAsXG4gICAgICAgIHNnSWRcbiAgICAgIClcbiAgICApO1xuXG4gICAgLy8gUmVzb2x2ZSBwcml2YXRlIHN1Ym5ldHNcbiAgICBjb25zdCBwcml2YXRlU3VibmV0cyA9IHN1Ym5ldElkcy5tYXAoKHN1Ym5ldElkLCBpbmRleCkgPT5cbiAgICAgIGVjMi5TdWJuZXQuZnJvbVN1Ym5ldElkKHRoaXMsIGBQcml2YXRlU3VibmV0JHtpbmRleH1gLCBzdWJuZXRJZClcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZwYyxcbiAgICAgIGxhbWJkYVNlY3VyaXR5R3JvdXBzLFxuICAgICAgcHJpdmF0ZVN1Ym5ldHMsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
238
|
+
FlowConfigStack[_a] = { fqn: "@cxbuilder/flow-config.FlowConfigStack", version: "2.1.0" };
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NvbmZpZ1N0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvRmxvd0NvbmZpZ1N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLHlEQU1pQztBQUNqQyxxREFBcUQ7QUFFckQsMkNBQTJDO0FBRTNDLG1DQUFnQztBQUNoQyxpREFBNEM7QUFDNUMsNkVBQXNFO0FBQ3RFLHVFQUFvRTtBQUNwRSx5REFBb0U7QUFDcEUseUVBQWlFO0FBQ2pFLDJDQUF3QztBQThIeEMsTUFBYSxlQUFnQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBWTVDOzs7T0FHRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ0gsS0FBMkI7UUFFbEMsTUFBTSxFQUNKLE1BQU0sRUFDTixPQUFPLEVBQ1AsV0FBVyxFQUNYLElBQUksR0FBRyxLQUFLLEVBQ1osZUFBZSxFQUNmLFdBQVcsR0FDWixHQUFHLEtBQUssQ0FBQztRQUNWLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksTUFBTTtZQUNwQyxXQUFXLEVBQ1QsS0FBSyxDQUFDLFdBQVc7Z0JBQ2pCLDJJQUEySTtZQUM3SSxxQkFBcUIsRUFBRSxJQUFJO1NBQzVCLENBQUMsQ0FBQztRQWpCSSxVQUFLLEdBQUwsS0FBSyxDQUFzQjtRQW1CbEMsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxlQUFlO1lBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO1lBQ3hDLENBQUMs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QUMsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQ3ZELEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsS0FBSyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQ2pFLENBQUM7UUFFRixPQUFPO1lBQ0wsR0FBRztZQUNILG9CQUFvQjtZQUNwQixjQUFjO1NBQ2YsQ0FBQztJQUNKLENBQUM7O0FBclRILDBDQXNUQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge1xuICBJVXNlclBvb2wsXG4gIFVzZXJQb29sLFxuICBVc2VyUG9vbENsaWVudCxcbiAgVXNlclBvb2xDbGllbnRJZGVudGl0eVByb3ZpZGVyLFxuICBDZm5Vc2VyUG9vbEdyb3VwLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29nbml0byc7XG5pbXBvcnQgKiBhcyBkeW5hbW9kYiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgSVZwYywgSVNlY3VyaXR5R3JvdXAsIElTdWJuZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQXBpIH0gZnJvbSAnLi9hcGkvQXBpJztcbmltcG9ydCB7IFRvcGljIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgeyBFbWFpbFN1YnNjcmlwdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMtc3Vic2NyaXB0aW9ucyc7XG5pbXBvcnQgeyBTZWN1cml0eVByb2ZpbGVQcm92aWRlciB9IGZyb20gJy4vU2VjdXJpdHlQcm9maWxlUHJvdmlkZXInO1xuaW1wb3J0IHsgQ2ZuSW50ZWdyYXRpb25Bc3NvY2lhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb25uZWN0JztcbmltcG9ydCB7IENmbkFwcGxpY2F0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwcGludGVncmF0aW9ucyc7XG5pbXBvcnQgeyBHZXRDb25maWcgfSBmcm9tICcuL0dldENvbmZpZyc7XG5cbi8qKlxuICogQ29nbml0byBjb25maWd1cmF0aW9uIGZvciBGbG93Q29uZmlnIHN0YWNrXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b0NvbmZpZyB7XG4gIHJlYWRvbmx5IHVzZXJQb29sSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogRnVsbCBkb21haW4gbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHByb3ZpZGVkLCBjbGllbnQgd2lsbCBhdXRoIHRvIFNTTy4gT3RoZXJ3aXNlIHdpbGwgYXV0aCB0byB1c2VyIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHNzb1Byb3ZpZGVyTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBWUEMgY29uZmlndXJhdGlvbiBmb3IgQVBJIEdhdGV3YXlcbiAqIElmIHByb3ZpZGVkLCB0aGUgQVBJIHdpbGwgYmUgZGVwbG95ZWQgaW4gYSBwcml2YXRlIFZQQy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlWcGNDb25maWcge1xuICAvKipcbiAgICogVGhlIFZQQyBJRCB0byB1c2UgZm9yIHRoZSBBUElcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgVlBDIGVuZHBvaW50IElEIHRvIHVzZSBmb3IgdGhlIEFQSVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjRW5kcG9pbnRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIExhbWJkYSBWUEMgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYVZwY0NvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIElEIHRvIGRlcGxveSByZXNvdXJjZXMgaW50b1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogU2VjdXJpdHkgZ3JvdXAgSURzIGZvciBMYW1iZGEgZnVuY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwSWRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHJpdmF0ZSBzdWJuZXQgSURzIGZvciBMYW1iZGEgZnVuY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRJZHM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEdsb2JhbCB0YWJsZSBjb25maWd1cmF0aW9uIGZvciBtdWx0aS1yZWdpb24gZGVwbG95bWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHbG9iYWxUYWJsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgaXMgdGhlIHByaW1hcnkgcmVnaW9uIHRoYXQgY3JlYXRlcyB0aGUgZ2xvYmFsIHRhYmxlXG4gICAqL1xuICByZWFkb25seSBpc1ByaW1hcnlSZWdpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgYWxsIHJlZ2lvbnMgdGhhdCBzaG91bGQgaGF2ZSByZXBsaWNhc1xuICAgKiBPbmx5IHVzZWQgYnkgdGhlIHByaW1hcnkgcmVnaW9uXG4gICAqL1xuICByZWFkb25seSByZXBsaWNhUmVnaW9ucz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEludGVybmFsIGludGVyZmFjZSBmb3IgcmVzb2x2ZWQgVlBDIHJlc291cmNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkVnBjQ29uZmlnIHtcbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xuICByZWFkb25seSBsYW1iZGFTZWN1cml0eUdyb3VwczogSVNlY3VyaXR5R3JvdXBbXTtcbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldHM6IElTdWJuZXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93Q29uZmlnU3RhY2tQcm9wcyBleHRlbmRzIGNkay5TdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIHJlc291cmNlIG5hbWluZy4gV2lsbCBhbHNvIGJlIHRoZSBuYW1lIG9mIHRoZSBDb25uZWN0IExhbWJkYVxuICAgKiBAZXhhbXBsZSBgY3hidWlsZGVyLWZsb3ctY29uZmlnYFxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvZ25pdG86IENvZ25pdG9Db25maWc7XG4gIHJlYWRvbmx5IGNvbm5lY3RJbnN0YW5jZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaG8gdG8gbm90aWZ5IGZvciB1bmhhbmRsZWQgZXhjZXB0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgYWxlcnRFbWFpbHM6IHN0cmluZ1tdO1xuICByZWFkb25seSBwcm9kPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIHRoZSBBUEkgd2lsbCBiZSBkZXBsb3llZCBpbiBhIFZQQy5cbiAgICovXG4gIHJlYWRvbmx5IGFwaVZwY0NvbmZpZz86IEFwaVZwY0NvbmZpZztcblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIHRoZSBMYW1iZGEgZnVuY3Rpb25zIHdpbGwgYmUgZGVwbG95ZWQgaW4gYSBWUEMuXG4gICAqIE5vdGU6IFZQQyBzaG91bGQgY29udGFpbiBlbmRwb2ludHMgdG86IENsb3VkRm9ybWF0aW9uLCBMYW1iZGEsIER5bmFtb0RCLCBTTlMsIGFuZCBQb2xseS5cbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYVZwY0NvbmZpZz86IExhbWJkYVZwY0NvbmZpZztcblxuICAvKipcbiAgICogR2xvYmFsIHRhYmxlIGNvbmZpZ3VyYXRpb24gZm9yIG11bHRpLXJlZ2lvbiBkZXBsb3ltZW50cy5cbiAgICogSWYgcHJvdmlkZWQsIGVuYWJsZXMgZ2xvYmFsIHRhYmxlIHN1cHBvcnQuXG4gICAqIElmIHVuZGVmaW5lZCwgY3JlYXRlcyBhIHNpbmdsZS1yZWdpb24gdGFibGUuXG4gICAqL1xuICByZWFkb25seSBnbG9iYWxUYWJsZT86IEdsb2JhbFRhYmxlQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gZmFsc2UgdG8gcmVtb3ZlIENYQnVpbGRlciBicmFuZGluZyBmcm9tIHRoZSB3ZWIgYXBwLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBicmFuZGluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYXNzb2NpYXRlIHRoZSBhcHAgd2l0aCB0aGUgQ29ubmVjdCBBZ2VudCBXb3Jrc3BhY2UuXG4gICAqIFNldCB0byBmYWxzZSB0byBkaXNhYmxlIGF1dG9tYXRpYyBhc3NvY2lhdGlvbi5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzb2NpYXRlM3BBcHA/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgRmxvd0NvbmZpZ1N0YWNrIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgdXNlclBvb2w6IElVc2VyUG9vbDtcbiAgcHJpdmF0ZSBhcGk6IEFwaTtcbiAgdXNlclBvb2xDbGllbnQ6IFVzZXJQb29sQ2xpZW50O1xuICBhbGVydFRvcGljOiBUb3BpYztcbiAgdGFibGU6IGNkay5hd3NfZHluYW1vZGIuSVRhYmxlO1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlZCBWUEMgY29uZmlndXJhdGlvbiBpZiBwcml2YXRlIGRlcGxveW1lbnQgaXMgZW5hYmxlZFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzb2x2ZWRWcGNDb25maWc/OiBSZXNvbHZlZFZwY0NvbmZpZztcblxuICAvKipcbiAgICogR2V0IHJlc29sdmVkIFZQQyBjb25maWd1cmF0aW9uIGZvciBjaGlsZCBjb25zdHJ1Y3RzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9nZXRSZXNvbHZlZFZwY0NvbmZpZygpOiBSZXNvbHZlZFZwY0NvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc29sdmVkVnBjQ29uZmlnO1xuICB9XG5cbiAgZ2V0IGFwcFVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmFwaS51cmw7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHVibGljIHByb3BzOiBGbG93Q29uZmlnU3RhY2tQcm9wc1xuICApIHtcbiAgICBjb25zdCB7XG4gICAgICBwcmVmaXgsXG4gICAgICBjb2duaXRvLFxuICAgICAgYWxlcnRFbWFpbHMsXG4gICAgICBwcm9kID0gZmFsc2UsXG4gICAgICBsYW1iZGFWcGNDb25maWcsXG4gICAgICBnbG9iYWxUYWJsZSxcbiAgICB9ID0gcHJvcHM7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHN0YWNrTmFtZTogcHJvcHMuc3RhY2tOYW1lID8/IHByZWZpeCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBwcm9wcy5kZXNjcmlwdGlvbiA/P1xuICAgICAgICAnV2ViLWJhc2VkIGludGVyZmFjZSBmb3IgbWFuYWdpbmcgZmxvdyB2YXJpYWJsZXMgYW5kIHByb21wdHMgdGhhdCBhcmUgZHluYW1pY2FsbHkgcmV0cmlldmVkIGJ5IEFtYXpvbiBDb25uZWN0IGR1cmluZyBjdXN0b21lciBpbnRlcmFjdGlvbnMnLFxuICAgICAgdGVybWluYXRpb25Qcm90ZWN0aW9uOiBwcm9kLFxuICAgIH0pO1xuXG4gICAgLy8gUmVzb2x2ZSBWUEMgY29uZmlndXJhdGlvbiBpZiBwcm92aWRlZFxuICAgIHRoaXMuX3Jlc29sdmVkVnBjQ29uZmlnID0gbGFtYmRhVnBjQ29uZmlnXG4gICAgICA/IHRoaXMucmVzb2x2ZVZwY0NvbmZpZyhsYW1iZGFWcGNDb25maWcpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIER5bmFtb0RCIHRhYmxlIGZvciBzdG9yaW5nIGZsb3cgY29uZmlnc1xuICAgIHRoaXMudGFibGUgPSB0aGlzLmNyZWF0ZVRhYmxlKHByZWZpeCwgcHJvZCwgZ2xvYmFsVGFibGUpO1xuXG4gICAgdGhpcy5hbGVydFRvcGljID0gbmV3IFRvcGljKHRoaXMsICdBbGVydFRvcGljJywge1xuICAgICAgdG9waWNOYW1lOiBgJHtwcmVmaXh9LWVycm9yLWFsZXJ0c2AsXG4gICAgfSk7XG4gICAgYWxlcnRFbWFpbHMuZm9yRWFjaCgoZSkgPT5cbiAgICAgIHRoaXMuYWxlcnRUb3BpYy5hZGRTdWJzY3JpcHRpb24obmV3IEVtYWlsU3Vic2NyaXB0aW9uKGUpKVxuICAgICk7XG5cbiAgICB0aGlzLnVzZXJQb29sID0gVXNlclBvb2wuZnJvbVVzZXJQb29sSWQoXG4gICAgICB0aGlzLFxuICAgICAgJ1VzZXJQb29sJyxcbiAgICAgIGNvZ25pdG8udXNlclBvb2xJZFxuICAgICk7XG5cbiAgICBjb25zdCBnZXRDb25maWcgPSBuZXcgR2V0Q29uZmlnKHRoaXMpO1xuICAgIHRoaXMuYXBpID0gbmV3IEFwaSh0aGlzKTtcblxuICAgIHRoaXMudXNlclBvb2xDbGllbnQgPSB0aGlzLmNyZWF0ZVVzZXJQb29sQ2xpZW50KCk7XG4gICAgdGhpcy5jcmVhdGVVc2VyUG9vbEdyb3VwcygpO1xuXG4gICAgdGhpcy5hc3NvY2lhdGUzcEFwcCgpO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ0FwcFVybCcsIHtcbiAgICAgIHZhbHVlOiB0aGlzLmFwcFVybCxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQmFzZSBVUkwgZm9yIHRoZSBGbG93IENvbmZpZyBhcHBsaWNhdGlvbicsXG4gICAgfSk7XG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ0FwaVVybCcsIHtcbiAgICAgIHZhbHVlOiBgJHt0aGlzLmFwcFVybH0vYXBpYCxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQmFzZSBVUkwgZm9yIHRoZSBGbG93IENvbmZpZyBBUEknLFxuICAgIH0pO1xuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdHZXRDb25maWdMYW1iZGFOYW1lJywge1xuICAgICAgdmFsdWU6IGdldENvbmZpZy5mdW5jdGlvbi5mdW5jdGlvbk5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0xhbWJkYSBmdW5jdGlvbiBuYW1lIGZvciBhY2Nlc3NpbmcgZmxvdyBjb25maWdzIGZyb20gQ29ubmVjdCcsXG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVVc2VyUG9vbENsaWVudCgpOiBVc2VyUG9vbENsaWVudCB7XG4gICAgY29uc3QgeyBwcmVmaXgsIGNvZ25pdG8gfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBkb21haW5zID0gWydodHRwOi8vbG9jYWxob3N0OjMwMDAnLCB0aGlzLmFwcFVybF07XG5cbiAgICBjb25zdCBvQXV0aCA9IHtcbiAgICAgIGNhbGxiYWNrVXJsczogZG9tYWlucy5tYXAoKHgpID0+IGAke3h9L3BvcHVwLmh0bWxgKSxcbiAgICAgIGxvZ291dFVybHM6IGRvbWFpbnMsXG4gICAgfTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgVXNlclBvb2xDbGllbnQodGhpcywgJ1VzZXJQb29sQ2xpZW50Jywge1xuICAgICAgdXNlclBvb2xDbGllbnROYW1lOiBwcmVmaXgsXG4gICAgICB1c2VyUG9vbDogdGhpcy51c2VyUG9vbCxcbiAgICAgIHN1cHBvcnRlZElkZW50aXR5UHJvdmlkZXJzOiBjb2duaXRvLnNzb1Byb3ZpZGVyTmFtZVxuICAgICAgICA/IFtVc2VyUG9vbENsaWVudElkZW50aXR5UHJvdmlkZXIuY3VzdG9tKGNvZ25pdG8uc3NvUHJvdmlkZXJOYW1lKV1cbiAgICAgICAgOiBbVXNlclBvb2xDbGllbnRJZGVudGl0eVByb3ZpZGVyLkNPR05JVE9dLFxuICAgICAgZ2VuZXJhdGVTZWNyZXQ6IGZhbHNlLFxuICAgICAgb0F1dGgsXG4gICAgfSk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnVXNlclBvb2xDbGllbnRJZCcsIHtcbiAgICAgIHZhbHVlOiBjbGllbnQudXNlclBvb2xDbGllbnRJZCxcbiAgICB9KTtcbiAgICByZXR1cm4gY2xpZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBDb2duaXRvIFVzZXIgR3JvdXBzIGZvciByb2xlLWJhc2VkIGFjY2VzcyBjb250cm9sXG4gICAqL1xuICBjcmVhdGVVc2VyUG9vbEdyb3VwcygpOiB2b2lkIHtcbiAgICAvLyBGbG93Q29uZmlnQWRtaW4gLSBGdWxsIENSVUQgYWNjZXNzXG4gICAgbmV3IENmblVzZXJQb29sR3JvdXAodGhpcywgJ0Zsb3dDb25maWdBZG1pbkdyb3VwJywge1xuICAgICAgdXNlclBvb2xJZDogdGhpcy51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgICAgZ3JvdXBOYW1lOiAnRmxvd0NvbmZpZ0FkbWluJyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnRnVsbCBhZG1pbmlzdHJhdGl2ZSBhY2Nlc3MgdG8gYWxsIGZsb3cgY29uZmlncyAtIGNhbiBjcmVhdGUsIHJlYWQsIHVwZGF0ZSwgYW5kIGRlbGV0ZSBmbG93IGNvbmZpZ3MgYW5kIGFsbCB0aGVpciBwcm9wZXJ0aWVzJyxcbiAgICAgIHByZWNlZGVuY2U6IDEsXG4gICAgfSk7XG5cbiAgICAvLyBGbG93Q29uZmlnRWRpdCAtIEVkaXQgdmFyaWFibGUvcHJvbXB0IHZhbHVlcyBvbmx5XG4gICAgbmV3IENmblVzZXJQb29sR3JvdXAodGhpcywgJ0Zsb3dDb25maWdFZGl0R3JvdXAnLCB7XG4gICAgICB1c2VyUG9vbElkOiB0aGlzLnVzZXJQb29sLnVzZXJQb29sSWQsXG4gICAgICBncm91cE5hbWU6ICdGbG93Q29uZmlnRWRpdCcsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0VkaXQgYWNjZXNzIHRvIGZsb3cgY29uZmlncyAtIGNhbiByZWFkIGFuZCBtb2RpZnkgdmFyaWFibGUgdmFsdWVzIGFuZCBwcm9tcHQgY29udGVudCBidXQgY2Fubm90IGFkZC9yZW1vdmUgZmllbGRzIG9yIGRlbGV0ZSBjb25maWdzJyxcbiAgICAgIHByZWNlZGVuY2U6IDIsXG4gICAgfSk7XG5cbiAgICAvLyBGbG93Q29uZmlnUmVhZCAtIFJlYWQtb25seSBhY2Nlc3NcbiAgICBuZXcgQ2ZuVXNlclBvb2xHcm91cCh0aGlzLCAnRmxvd0NvbmZpZ1JlYWRHcm91cCcsIHtcbiAgICAgIHVzZXJQb29sSWQ6IHRoaXMudXNlclBvb2wudXNlclBvb2xJZCxcbiAgICAgIGdyb3VwTmFtZTogJ0Zsb3dDb25maWdSZWFkJyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnUmVhZC1vbmx5IGFjY2VzcyB0byBhbGwgZmxvdyBjb25maWdzIGZvciByZXBvcnRpbmcgYW5kIHJlZmVyZW5jZSBwdXJwb3NlcycsXG4gICAgICBwcmVjZWRlbmNlOiAzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzc29jaWF0ZSBGbG93Q29uZmlnIGFzIEFnZW50IFdvcmtzcGFjZSBhcHBcbiAgICovXG4gIGFzc29jaWF0ZTNwQXBwKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIHByb3BzOiB7IHByZWZpeCwgY29ubmVjdEluc3RhbmNlQXJuIH0sXG4gICAgICBhcHBVcmw6IHVybCxcbiAgICAgIGFzc29jaWF0ZTNwQXBwID0gdHJ1ZSxcbiAgICB9ID0gdGhpcztcblxuICAgIGlmICghYXNzb2NpYXRlM3BBcHApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgbmFtZXNwYWNlID0gYGN4YnVpbGRlci4ke3ByZWZpeH1gO1xuICAgIGlmIChuYW1lc3BhY2UubGVuZ3RoID4gMzIgJiYgIWNkay5Ub2tlbi5pc1VucmVzb2x2ZWQobmFtZXNwYWNlKSkge1xuICAgICAgbmFtZXNwYWNlID0gbmFtZXNwYWNlLnN1YnN0cmluZygwLCAzMik7XG4gICAgfVxuXG4gICAgY29uc3QgYXBwID0gbmV3IENmbkFwcGxpY2F0aW9uKHRoaXMsICczcEFwcCcsIHtcbiAgICAgIG5hbWU6IHRoaXMucHJvcHMucHJlZml4LFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdBZ2VudCBXb3Jrc3BhY2UgYXBwIGZvciBjb25maWd1cmluZyBjb250YWN0IGZsb3cgdmFyaWFibGVzIGFuZCBwcm9tcHRzJyxcbiAgICAgIG5hbWVzcGFjZSxcbiAgICAgIGFwcGxpY2F0aW9uU291cmNlQ29uZmlnOiB7XG4gICAgICAgIGV4dGVybmFsVXJsQ29uZmlnOiB7XG4gICAgICAgICAgYWNjZXNzVXJsOiB1cmwsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgLy8gZG9jczogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nvbm5lY3QvbGF0ZXN0L2FkbWluZ3VpZGUvM3AtYXBwcy1ldmVudHMtcmVxdWVzdHMuaHRtbFxuICAgICAgcGVybWlzc2lvbnM6IFtcbiAgICAgICAgJ1VzZXIuRGV0YWlscy5WaWV3JyxcbiAgICAgICAgJ1VzZXIuQ29uZmlndXJhdGlvbi5WaWV3JyxcbiAgICAgICAgJ1VzZXIuU3RhdHVzLlZpZXcnLFxuICAgICAgICAnQ29udGFjdC5EZXRhaWxzLlZpZXcnLFxuICAgICAgICAnQ29udGFjdC5DdXN0b21lckRldGFpbHMuVmlldycsXG4gICAgICAgICdDb250YWN0LlZhcmlhYmxlcy5WaWV3JyxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBhc3NvY2lhdGlvbiA9IG5ldyBDZm5JbnRlZ3JhdGlvbkFzc29jaWF0aW9uKFxuICAgICAgdGhpcyxcbiAgICAgICczcEFwcEFzc29jaWF0aW9uJyxcbiAgICAgIHtcbiAgICAgICAgaW5zdGFuY2VJZDogY29ubmVjdEluc3RhbmNlQXJuLFxuICAgICAgICBpbnRlZ3JhdGlvblR5cGU6ICdBUFBMSUNBVElPTicsXG4gICAgICAgIGludGVncmF0aW9uQXJuOiBhcHAuYXR0ckFwcGxpY2F0aW9uQXJuLFxuICAgICAgfVxuICAgICk7XG5cbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBTZWN1cml0eVByb2ZpbGVQcm92aWRlcihcbiAgICAgIHRoaXMsXG4gICAgICAnU2VjdXJpdHlQcm9maWxlUHJvdmlkZXInLFxuICAgICAge1xuICAgICAgICBjb25uZWN0SW5zdGFuY2VBcm4sXG4gICAgICB9XG4gICAgKTtcbiAgICBwcm92aWRlci5ub2RlLmFkZERlcGVuZGVuY3koYXNzb2NpYXRpb24pO1xuXG4gICAgLy8gQXV0b21hdGljYWxseSBhc3NvY2lhdGUgd2l0aCBzZWN1cml0eSBwcm9maWxlc1xuICAgIGNvbnN0IHNlY3VyaXR5UHJvZmlsZXMgPSBbJ0FkbWluJ107XG4gICAgZm9yIChjb25zdCBwcm9maWxlIG9mIHNlY3VyaXR5UHJvZmlsZXMpIHtcbiAgICAgIHByb3ZpZGVyLmFsbG93QXBwbGljYXRpb24oYEFsbG93JHtwcm9maWxlfWAsIHByb2ZpbGUsIG5hbWVzcGFjZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBEeW5hbW9EQiB0YWJsZSB3aXRoIG9wdGlvbmFsIGdsb2JhbCB0YWJsZSBzdXBwb3J0XG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVRhYmxlKFxuICAgIHByZWZpeDogc3RyaW5nLFxuICAgIHByb2Q6IGJvb2xlYW4sXG4gICAgZ2xvYmFsVGFibGU/OiBHbG9iYWxUYWJsZUNvbmZpZ1xuICApOiBkeW5hbW9kYi5JVGFibGUge1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IHByZWZpeDtcblxuICAgIGlmICghZ2xvYmFsVGFibGUpIHtcbiAgICAgIC8vIFNpbmdsZS1yZWdpb24gdGFibGVcbiAgICAgIHJldHVybiBuZXcgZHluYW1vZGIuVGFibGVWMih0aGlzLCAnVGFibGUnLCB7XG4gICAgICAgIHRhYmxlTmFtZSxcbiAgICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgICB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgfSxcbiAgICAgICAgYmlsbGluZzogZHluYW1vZGIuQmlsbGluZy5vbkRlbWFuZCgpLFxuICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbjoge1xuICAgICAgICAgIHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IHByb2RcbiAgICAgICAgICA/IGNkay5SZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgICAgICAgIDogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChnbG9iYWxUYWJsZS5pc1ByaW1hcnlSZWdpb24pIHtcbiAgICAgIC8vIFByaW1hcnkgcmVnaW9uIGNyZWF0ZXMgZ2xvYmFsIHRhYmxlIHdpdGggcmVwbGljYXNcbiAgICAgIGNvbnN0IHRhYmxlID0gbmV3IGR5bmFtb2RiLlRhYmxlVjIodGhpcywgJ1RhYmxlJywge1xuICAgICAgICB0YWJsZU5hbWUsXG4gICAgICAgIHBhcnRpdGlvbktleToge1xuICAgICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgICAgdHlwZTogZHluYW1vZGIuQXR0cmlidXRlVHlwZS5TVFJJTkcsXG4gICAgICAgIH0sXG4gICAgICAgIGJpbGxpbmc6IGR5bmFtb2RiLkJpbGxpbmcub25EZW1hbmQoKSxcbiAgICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb246IHtcbiAgICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVsZXRpb25Qcm90ZWN0aW9uOiBwcm9kLFxuICAgICAgICByZW1vdmFsUG9saWN5OiBwcm9kXG4gICAgICAgICAgPyBjZGsuUmVtb3ZhbFBvbGljeS5SRVRBSU5cbiAgICAgICAgICA6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICB9KTtcbiAgICAgIGlmIChnbG9iYWxUYWJsZS5yZXBsaWNhUmVnaW9ucykge1xuICAgICAgICBmb3IgKGNvbnN0IHJlZ2lvbiBvZiBnbG9iYWxUYWJsZS5yZXBsaWNhUmVnaW9ucykge1xuICAgICAgICAgIHRhYmxlLmFkZFJlcGxpY2Eoe1xuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgZGVsZXRpb25Qcm90ZWN0aW9uOiBwcm9kLFxuICAgICAgICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb246IHtcbiAgICAgICAgICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdGFibGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNlY29uZGFyeSByZWdpb24gcmVmZXJlbmNlcyBleGlzdGluZyBnbG9iYWwgdGFibGVcbiAgICAgIHJldHVybiBkeW5hbW9kYi5UYWJsZS5mcm9tVGFibGVBcm4oXG4gICAgICAgIHRoaXMsXG4gICAgICAgICdUYWJsZScsXG4gICAgICAgIGBhcm46YXdzOmR5bmFtb2RiOiR7dGhpcy5yZWdpb259OiR7dGhpcy5hY2NvdW50fTp0YWJsZS8ke3RhYmxlTmFtZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIFZQQyBjb25maWd1cmF0aW9uIHN0cmluZyBJRHMgdG8gQ0RLIG9iamVjdHNcbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZVZwY0NvbmZpZyh2cGNDb25maWc6IExhbWJkYVZwY0NvbmZpZyk6IFJlc29sdmVkVnBjQ29uZmlnIHtcbiAgICBjb25zdCB7IHZwY0lkLCBzZWN1cml0eUdyb3VwSWRzLCBzdWJuZXRJZHMgfSA9IHZwY0NvbmZpZztcblxuICAgIC8vIFJlc29sdmUgVlBDXG4gICAgY29uc3QgdnBjID0gZWMyLlZwYy5mcm9tTG9va3VwKHRoaXMsICdSZXNvbHZlZFZwYycsIHsgdnBjSWQgfSk7XG5cbiAgICAvLyBSZXNvbHZlIExhbWJkYSBzZWN1cml0eSBncm91cHNcbiAgICBjb25zdCBsYW1iZGFTZWN1cml0eUdyb3VwcyA9IHNlY3VyaXR5R3JvdXBJZHMubWFwKChzZ0lkLCBpbmRleCkgPT5cbiAgICAgIGVjMi5TZWN1cml0eUdyb3VwLmZyb21TZWN1cml0eUdyb3VwSWQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGBMYW1iZGFTZWN1cml0eUdyb3VwJHtpbmRleH1gLFxuICAgICAgICBzZ0lkXG4gICAgICApXG4gICAgKTtcblxuICAgIC8vIFJlc29sdmUgcHJpdmF0ZSBzdWJuZXRzXG4gICAgY29uc3QgcHJpdmF0ZVN1Ym5ldHMgPSBzdWJuZXRJZHMubWFwKChzdWJuZXRJZCwgaW5kZXgpID0+XG4gICAgICBlYzIuU3VibmV0LmZyb21TdWJuZXRJZCh0aGlzLCBgUHJpdmF0ZVN1Ym5ldCR7aW5kZXh9YCwgc3VibmV0SWQpXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICB2cGMsXG4gICAgICBsYW1iZGFTZWN1cml0eUdyb3VwcyxcbiAgICAgIHByaXZhdGVTdWJuZXRzLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|