@aws-cdk/aws-imagebuilder-alpha 2.242.0-alpha.0 → 2.244.0-alpha.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 +31 -31
- package/.jsii.tabl.json.gz +0 -0
- package/lib/amazon-managed-component.js +5 -5
- package/lib/amazon-managed-image.js +5 -5
- package/lib/amazon-managed-workflow.js +3 -3
- package/lib/base-image.js +3 -3
- package/lib/component.js +15 -15
- package/lib/container-recipe.js +10 -10
- package/lib/distribution-configuration.js +13 -13
- package/lib/image-pipeline.js +9 -9
- package/lib/image-recipe.js +7 -7
- package/lib/image.js +7 -7
- package/lib/infrastructure-configuration.js +15 -15
- package/lib/lifecycle-policy.js +25 -25
- package/lib/os-version.js +1 -1
- package/lib/private/image-and-pipeline-props-helper.js +3 -3
- package/lib/recipe-base.js +1 -1
- package/lib/workflow.js +14 -14
- package/package.json +6 -6
package/.jsii
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"yaml": "1.10.2"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"aws-cdk-lib": "^2.
|
|
14
|
+
"aws-cdk-lib": "^2.244.0",
|
|
15
15
|
"constructs": "^10.5.0"
|
|
16
16
|
},
|
|
17
17
|
"dependencyClosure": {
|
|
@@ -11547,7 +11547,7 @@
|
|
|
11547
11547
|
},
|
|
11548
11548
|
"locationInModule": {
|
|
11549
11549
|
"filename": "lib/component.ts",
|
|
11550
|
-
"line":
|
|
11550
|
+
"line": 1020
|
|
11551
11551
|
},
|
|
11552
11552
|
"parameters": [
|
|
11553
11553
|
{
|
|
@@ -11699,7 +11699,7 @@
|
|
|
11699
11699
|
},
|
|
11700
11700
|
"locationInModule": {
|
|
11701
11701
|
"filename": "lib/component.ts",
|
|
11702
|
-
"line":
|
|
11702
|
+
"line": 1003
|
|
11703
11703
|
},
|
|
11704
11704
|
"name": "isComponent",
|
|
11705
11705
|
"parameters": [
|
|
@@ -11813,7 +11813,7 @@
|
|
|
11813
11813
|
"immutable": true,
|
|
11814
11814
|
"locationInModule": {
|
|
11815
11815
|
"filename": "lib/component.ts",
|
|
11816
|
-
"line":
|
|
11816
|
+
"line": 1077
|
|
11817
11817
|
},
|
|
11818
11818
|
"name": "componentArn",
|
|
11819
11819
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
|
|
@@ -11829,7 +11829,7 @@
|
|
|
11829
11829
|
"immutable": true,
|
|
11830
11830
|
"locationInModule": {
|
|
11831
11831
|
"filename": "lib/component.ts",
|
|
11832
|
-
"line":
|
|
11832
|
+
"line": 1072
|
|
11833
11833
|
},
|
|
11834
11834
|
"name": "componentName",
|
|
11835
11835
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
|
|
@@ -11848,7 +11848,7 @@
|
|
|
11848
11848
|
"immutable": true,
|
|
11849
11849
|
"locationInModule": {
|
|
11850
11850
|
"filename": "lib/component.ts",
|
|
11851
|
-
"line":
|
|
11851
|
+
"line": 1091
|
|
11852
11852
|
},
|
|
11853
11853
|
"name": "componentType",
|
|
11854
11854
|
"type": {
|
|
@@ -11863,7 +11863,7 @@
|
|
|
11863
11863
|
"immutable": true,
|
|
11864
11864
|
"locationInModule": {
|
|
11865
11865
|
"filename": "lib/component.ts",
|
|
11866
|
-
"line":
|
|
11866
|
+
"line": 1010
|
|
11867
11867
|
},
|
|
11868
11868
|
"name": "componentVersion",
|
|
11869
11869
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IComponent",
|
|
@@ -11879,7 +11879,7 @@
|
|
|
11879
11879
|
"immutable": true,
|
|
11880
11880
|
"locationInModule": {
|
|
11881
11881
|
"filename": "lib/component.ts",
|
|
11882
|
-
"line":
|
|
11882
|
+
"line": 1015
|
|
11883
11883
|
},
|
|
11884
11884
|
"name": "encrypted",
|
|
11885
11885
|
"type": {
|
|
@@ -11893,7 +11893,7 @@
|
|
|
11893
11893
|
"immutable": true,
|
|
11894
11894
|
"locationInModule": {
|
|
11895
11895
|
"filename": "lib/component.ts",
|
|
11896
|
-
"line":
|
|
11896
|
+
"line": 1017
|
|
11897
11897
|
},
|
|
11898
11898
|
"name": "kmsKey",
|
|
11899
11899
|
"optional": true,
|
|
@@ -14172,7 +14172,7 @@
|
|
|
14172
14172
|
},
|
|
14173
14173
|
"locationInModule": {
|
|
14174
14174
|
"filename": "lib/container-recipe.ts",
|
|
14175
|
-
"line":
|
|
14175
|
+
"line": 483
|
|
14176
14176
|
},
|
|
14177
14177
|
"parameters": [
|
|
14178
14178
|
{
|
|
@@ -14321,7 +14321,7 @@
|
|
|
14321
14321
|
},
|
|
14322
14322
|
"locationInModule": {
|
|
14323
14323
|
"filename": "lib/container-recipe.ts",
|
|
14324
|
-
"line":
|
|
14324
|
+
"line": 476
|
|
14325
14325
|
},
|
|
14326
14326
|
"name": "isContainerRecipe",
|
|
14327
14327
|
"parameters": [
|
|
@@ -14346,7 +14346,7 @@
|
|
|
14346
14346
|
},
|
|
14347
14347
|
"locationInModule": {
|
|
14348
14348
|
"filename": "lib/container-recipe.ts",
|
|
14349
|
-
"line":
|
|
14349
|
+
"line": 571
|
|
14350
14350
|
},
|
|
14351
14351
|
"name": "addInstanceBlockDevice",
|
|
14352
14352
|
"parameters": [
|
|
@@ -14391,7 +14391,7 @@
|
|
|
14391
14391
|
"immutable": true,
|
|
14392
14392
|
"locationInModule": {
|
|
14393
14393
|
"filename": "lib/container-recipe.ts",
|
|
14394
|
-
"line":
|
|
14394
|
+
"line": 552
|
|
14395
14395
|
},
|
|
14396
14396
|
"name": "containerRecipeArn",
|
|
14397
14397
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.ContainerRecipeBase",
|
|
@@ -14407,7 +14407,7 @@
|
|
|
14407
14407
|
"immutable": true,
|
|
14408
14408
|
"locationInModule": {
|
|
14409
14409
|
"filename": "lib/container-recipe.ts",
|
|
14410
|
-
"line":
|
|
14410
|
+
"line": 547
|
|
14411
14411
|
},
|
|
14412
14412
|
"name": "containerRecipeName",
|
|
14413
14413
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.ContainerRecipeBase",
|
|
@@ -14423,7 +14423,7 @@
|
|
|
14423
14423
|
"immutable": true,
|
|
14424
14424
|
"locationInModule": {
|
|
14425
14425
|
"filename": "lib/container-recipe.ts",
|
|
14426
|
-
"line":
|
|
14426
|
+
"line": 561
|
|
14427
14427
|
},
|
|
14428
14428
|
"name": "containerRecipeVersion",
|
|
14429
14429
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.ContainerRecipeBase",
|
|
@@ -15156,7 +15156,7 @@
|
|
|
15156
15156
|
},
|
|
15157
15157
|
"locationInModule": {
|
|
15158
15158
|
"filename": "lib/distribution-configuration.ts",
|
|
15159
|
-
"line":
|
|
15159
|
+
"line": 561
|
|
15160
15160
|
},
|
|
15161
15161
|
"name": "addContainerDistributions",
|
|
15162
15162
|
"parameters": [
|
|
@@ -19416,7 +19416,7 @@
|
|
|
19416
19416
|
},
|
|
19417
19417
|
"locationInModule": {
|
|
19418
19418
|
"filename": "lib/image-recipe.ts",
|
|
19419
|
-
"line":
|
|
19419
|
+
"line": 311
|
|
19420
19420
|
},
|
|
19421
19421
|
"parameters": [
|
|
19422
19422
|
{
|
|
@@ -19568,7 +19568,7 @@
|
|
|
19568
19568
|
},
|
|
19569
19569
|
"locationInModule": {
|
|
19570
19570
|
"filename": "lib/image-recipe.ts",
|
|
19571
|
-
"line":
|
|
19571
|
+
"line": 304
|
|
19572
19572
|
},
|
|
19573
19573
|
"name": "isImageRecipe",
|
|
19574
19574
|
"parameters": [
|
|
@@ -19593,7 +19593,7 @@
|
|
|
19593
19593
|
},
|
|
19594
19594
|
"locationInModule": {
|
|
19595
19595
|
"filename": "lib/image-recipe.ts",
|
|
19596
|
-
"line":
|
|
19596
|
+
"line": 386
|
|
19597
19597
|
},
|
|
19598
19598
|
"name": "addBlockDevice",
|
|
19599
19599
|
"parameters": [
|
|
@@ -19705,7 +19705,7 @@
|
|
|
19705
19705
|
"immutable": true,
|
|
19706
19706
|
"locationInModule": {
|
|
19707
19707
|
"filename": "lib/image-recipe.ts",
|
|
19708
|
-
"line":
|
|
19708
|
+
"line": 367
|
|
19709
19709
|
},
|
|
19710
19710
|
"name": "imageRecipeArn",
|
|
19711
19711
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IImageRecipe",
|
|
@@ -19721,7 +19721,7 @@
|
|
|
19721
19721
|
"immutable": true,
|
|
19722
19722
|
"locationInModule": {
|
|
19723
19723
|
"filename": "lib/image-recipe.ts",
|
|
19724
|
-
"line":
|
|
19724
|
+
"line": 362
|
|
19725
19725
|
},
|
|
19726
19726
|
"name": "imageRecipeName",
|
|
19727
19727
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IImageRecipe",
|
|
@@ -19737,7 +19737,7 @@
|
|
|
19737
19737
|
"immutable": true,
|
|
19738
19738
|
"locationInModule": {
|
|
19739
19739
|
"filename": "lib/image-recipe.ts",
|
|
19740
|
-
"line":
|
|
19740
|
+
"line": 376
|
|
19741
19741
|
},
|
|
19742
19742
|
"name": "imageRecipeVersion",
|
|
19743
19743
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IImageRecipe",
|
|
@@ -20345,7 +20345,7 @@
|
|
|
20345
20345
|
"immutable": true,
|
|
20346
20346
|
"locationInModule": {
|
|
20347
20347
|
"filename": "lib/infrastructure-configuration.ts",
|
|
20348
|
-
"line":
|
|
20348
|
+
"line": 554
|
|
20349
20349
|
},
|
|
20350
20350
|
"name": "infrastructureConfigurationArn",
|
|
20351
20351
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IInfrastructureConfiguration",
|
|
@@ -20361,7 +20361,7 @@
|
|
|
20361
20361
|
"immutable": true,
|
|
20362
20362
|
"locationInModule": {
|
|
20363
20363
|
"filename": "lib/infrastructure-configuration.ts",
|
|
20364
|
-
"line":
|
|
20364
|
+
"line": 549
|
|
20365
20365
|
},
|
|
20366
20366
|
"name": "infrastructureConfigurationName",
|
|
20367
20367
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IInfrastructureConfiguration",
|
|
@@ -23408,7 +23408,7 @@
|
|
|
23408
23408
|
},
|
|
23409
23409
|
"locationInModule": {
|
|
23410
23410
|
"filename": "lib/workflow.ts",
|
|
23411
|
-
"line":
|
|
23411
|
+
"line": 731
|
|
23412
23412
|
},
|
|
23413
23413
|
"parameters": [
|
|
23414
23414
|
{
|
|
@@ -23522,7 +23522,7 @@
|
|
|
23522
23522
|
},
|
|
23523
23523
|
"locationInModule": {
|
|
23524
23524
|
"filename": "lib/workflow.ts",
|
|
23525
|
-
"line":
|
|
23525
|
+
"line": 715
|
|
23526
23526
|
},
|
|
23527
23527
|
"name": "isWorkflow",
|
|
23528
23528
|
"parameters": [
|
|
@@ -23635,7 +23635,7 @@
|
|
|
23635
23635
|
"immutable": true,
|
|
23636
23636
|
"locationInModule": {
|
|
23637
23637
|
"filename": "lib/workflow.ts",
|
|
23638
|
-
"line":
|
|
23638
|
+
"line": 772
|
|
23639
23639
|
},
|
|
23640
23640
|
"name": "workflowArn",
|
|
23641
23641
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23651,7 +23651,7 @@
|
|
|
23651
23651
|
"immutable": true,
|
|
23652
23652
|
"locationInModule": {
|
|
23653
23653
|
"filename": "lib/workflow.ts",
|
|
23654
|
-
"line":
|
|
23654
|
+
"line": 767
|
|
23655
23655
|
},
|
|
23656
23656
|
"name": "workflowName",
|
|
23657
23657
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23667,7 +23667,7 @@
|
|
|
23667
23667
|
"immutable": true,
|
|
23668
23668
|
"locationInModule": {
|
|
23669
23669
|
"filename": "lib/workflow.ts",
|
|
23670
|
-
"line":
|
|
23670
|
+
"line": 722
|
|
23671
23671
|
},
|
|
23672
23672
|
"name": "workflowType",
|
|
23673
23673
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -23683,7 +23683,7 @@
|
|
|
23683
23683
|
"immutable": true,
|
|
23684
23684
|
"locationInModule": {
|
|
23685
23685
|
"filename": "lib/workflow.ts",
|
|
23686
|
-
"line":
|
|
23686
|
+
"line": 727
|
|
23687
23687
|
},
|
|
23688
23688
|
"name": "workflowVersion",
|
|
23689
23689
|
"overrides": "@aws-cdk/aws-imagebuilder-alpha.IWorkflow",
|
|
@@ -24786,6 +24786,6 @@
|
|
|
24786
24786
|
"symbolId": "lib/workflow:WorkflowType"
|
|
24787
24787
|
}
|
|
24788
24788
|
},
|
|
24789
|
-
"version": "2.
|
|
24789
|
+
"version": "2.244.0-alpha.0",
|
|
24790
24790
|
"fingerprint": "**********"
|
|
24791
24791
|
}
|
package/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
|
@@ -11,7 +11,7 @@ const constants_1 = require("./private/constants");
|
|
|
11
11
|
* Helper class for working with Amazon-managed components
|
|
12
12
|
*/
|
|
13
13
|
class AmazonManagedComponent {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponent", version: "2.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedComponent", version: "2.244.0-alpha.0" };
|
|
15
15
|
/**
|
|
16
16
|
* Imports the AWS CLI v2 Amazon-managed component
|
|
17
17
|
*
|
|
@@ -206,17 +206,17 @@ class AmazonManagedComponent {
|
|
|
206
206
|
};
|
|
207
207
|
static validatePredefinedManagedComponentOptions(scope, opts, component) {
|
|
208
208
|
if (opts.platform === undefined) {
|
|
209
|
-
throw new cdk.ValidationError(`a platform is required for ${component}`, scope);
|
|
209
|
+
throw new cdk.ValidationError('PlatformRequired', `a platform is required for ${component}`, scope);
|
|
210
210
|
}
|
|
211
211
|
if (cdk.Token.isUnresolved(opts.platform)) {
|
|
212
|
-
throw new cdk.ValidationError(`platform cannot be a token for ${component}`, scope);
|
|
212
|
+
throw new cdk.ValidationError('PlatformCannotBeToken', `platform cannot be a token for ${component}`, scope);
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
static predefinedManagedComponent(scope, id, opts, config) {
|
|
216
216
|
this.validatePredefinedManagedComponentOptions(scope, opts, config.component);
|
|
217
217
|
const componentName = config.supportedPlatforms[opts.platform];
|
|
218
218
|
if (!componentName) {
|
|
219
|
-
throw new cdk.ValidationError(`${opts.platform} is not a supported platform for ${config.component}`, scope);
|
|
219
|
+
throw new cdk.ValidationError('UnsupportedPlatform', `${opts.platform} is not a supported platform for ${config.component}`, scope);
|
|
220
220
|
}
|
|
221
221
|
return this.fromAmazonManagedComponentAttributes(scope, id, {
|
|
222
222
|
componentName,
|
|
@@ -225,4 +225,4 @@ class AmazonManagedComponent {
|
|
|
225
225
|
}
|
|
226
226
|
}
|
|
227
227
|
exports.AmazonManagedComponent = AmazonManagedComponent;
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hem9uLW1hbmFnZWQtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1hem9uLW1hbmFnZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBR25DLDJDQUF3QztBQUN4Qyw2Q0FBd0M7QUFDeEMsbURBQXFEO0FBeUNyRDs7R0FFRztBQUNILE1BQXNCLHNCQUFzQjs7SUFDMUM7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUFtQzs7Ozs7Ozs7OztRQUN0RixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQUNqRjtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBbUM7Ozs7Ozs7Ozs7UUFDeEYsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDbEY7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQW1DOzs7Ozs7Ozs7O1FBQ3JGLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUMvRTtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBbUM7Ozs7Ozs7Ozs7UUFDcEYsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tB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QztLQUNKOztBQTNMSCx3REE0TEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnLi9vcy12ZXJzaW9uJztcbmltcG9ydCB7IExBVEVTVF9WRVJTSU9OIH0gZnJvbSAnLi9wcml2YXRlL2NvbnN0YW50cyc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYW4gRUMyIEltYWdlIEJ1aWxkZXIgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1hem9uTWFuYWdlZENvbXBvbmVudEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9uZW50TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBjb21wb25lbnQsIHgueC54XG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnRWZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHNlbGVjdGluZyBhIHByZWRlZmluZWQgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGxhdGZvcm0gb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm06IFBsYXRmb3JtO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBjb21wb25lbnQsIHgueC54XG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnRWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQW1hem9uTWFuYWdlZENvbXBvbmVudENvbmZpZyB7XG4gIHJlYWRvbmx5IGNvbXBvbmVudDogc3RyaW5nO1xuICByZWFkb25seSBzdXBwb3J0ZWRQbGF0Zm9ybXM6IHsgW3BsYXRmb3JtIGluIFBsYXRmb3JtXT86IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3Igd29ya2luZyB3aXRoIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFtYXpvbk1hbmFnZWRDb21wb25lbnQge1xuICAvKipcbiAgICogSW1wb3J0cyB0aGUgQVdTIENMSSB2MiBBbWF6b24tbWFuYWdlZCBjb21wb25lbnRcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50IG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXdzQ2xpVjIoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZENvbXBvbmVudE9wdGlvbnMpOiBJQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZENvbXBvbmVudChzY29wZSwgaWQsIG9wdHMsIHRoaXMuQVdTX0NMSV9WMl9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIGhlbGxvIHdvcmxkIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBjb21wb25lbnQgb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBoZWxsb1dvcmxkKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRPcHRpb25zKTogSUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRDb21wb25lbnQoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLkhFTExPX1dPUkxEX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgUHl0aG9uIDMgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHB5dGhvbjMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZENvbXBvbmVudE9wdGlvbnMpOiBJQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZENvbXBvbmVudChzY29wZSwgaWQsIG9wdHMsIHRoaXMuUFlUSE9OXzNfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSByZWJvb3QgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYm9vdChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KHNjb3BlLCBpZCwgb3B0cywgdGhpcy5SRUJPT1RfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBTVElHIGhhcmRlbmluZyBBbWF6b24tbWFuYWdlZCBjb21wb25lbnRcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50IG9wdGlvbnNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW1hZ2VidWlsZGVyL2xhdGVzdC91c2VyZ3VpZGUvaWItc3RpZy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN0aWdCdWlsZChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KHNjb3BlLCBpZCwgb3B0cywgdGhpcy5TVElHX0JVSUxEX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgT1MgdXBkYXRlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBjb21wb25lbnQgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1cGRhdGVPcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KHNjb3BlLCBpZCwgb3B0cywgdGhpcy5VUERBVEVfT1NfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBmcm9tIGl0cyBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGF0dHJzIFRoZSBBbWF6b24tbWFuYWdlZCBjb21wb25lbnQgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQW1hem9uTWFuYWdlZENvbXBvbmVudEF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50QXR0cmlidXRlcyxcbiAgKTogSUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIENvbXBvbmVudC5mcm9tQ29tcG9uZW50QXJuKFxuICAgICAgc2NvcGUsXG4gICAgICBpZCxcbiAgICAgIGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2ltYWdlYnVpbGRlcicsXG4gICAgICAgIGFjY291bnQ6ICdhd3MnLFxuICAgICAgICByZXNvdXJjZTogJ2NvbXBvbmVudCcsXG4gICAgICAgIHJlc291cmNlTmFtZTogYCR7YXR0cnMuY29tcG9uZW50TmFtZX0vJHthdHRycy5jb21wb25lbnRWZXJzaW9uID8/IExBVEVTVF9WRVJTSU9OfWAsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBmcm9tIGl0cyBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGFtYXpvbk1hbmFnZWRDb21wb25lbnROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQW1hem9uTWFuYWdlZENvbXBvbmVudE5hbWUoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGFtYXpvbk1hbmFnZWRDb21wb25lbnROYW1lOiBzdHJpbmcsXG4gICk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkQ29tcG9uZW50QXR0cmlidXRlcyhzY29wZSwgaWQsIHsgY29tcG9uZW50TmFtZTogYW1hem9uTWFuYWdlZENvbXBvbmVudE5hbWUgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBBV1NfQ0xJX1YyX0NPTkZJRzogQW1hem9uTWFuYWdlZENvbXBvbmVudENvbmZpZyA9IHtcbiAgICBjb21wb25lbnQ6ICdhd3NDbGlWMicsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAnYXdzLWNsaS12ZXJzaW9uLTItbGludXgnLFxuICAgICAgW1BsYXRmb3JtLldJTkRPV1NdOiAnYXdzLWNsaS12ZXJzaW9uLTItd2luZG93cycsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBIRUxMT19XT1JMRF9DT05GSUc6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRDb25maWcgPSB7XG4gICAgY29tcG9uZW50OiAnaGVsbG9Xb3JsZCcsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAnaGVsbG8td29ybGQtbGludXgnLFxuICAgICAgW1BsYXRmb3JtLldJTkRPV1NdOiAnaGVsbG8td29ybGQtd2luZG93cycsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBQWVRIT05fM19DT05GSUc6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRDb25maWcgPSB7XG4gICAgY29tcG9uZW50OiAncHl0aG9uMycsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAncHl0aG9uLTMtbGludXgnLFxuICAgICAgW1BsYXRmb3JtLldJTkRPV1NdOiAncHl0aG9uLTMtd2luZG93cycsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBSRUJPT1RfQ09ORklHOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50Q29uZmlnID0ge1xuICAgIGNvbXBvbmVudDogJ3JlYm9vdCcsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAncmVib290LWxpbnV4JyxcbiAgICAgIFtQbGF0Zm9ybS5XSU5ET1dTXTogJ3JlYm9vdC13aW5kb3dzJyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFNUSUdfQlVJTERfQ09ORklHOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50Q29uZmlnID0ge1xuICAgIGNvbXBvbmVudDogJ3N0aWdCdWlsZCcsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAnc3RpZy1idWlsZC1saW51eCcsXG4gICAgICBbUGxhdGZvcm0uV0lORE9XU106ICdzdGlnLWJ1aWxkLXdpbmRvd3MnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVVBEQVRFX09TX0NPTkZJRzogQW1hem9uTWFuYWdlZENvbXBvbmVudENvbmZpZyA9IHtcbiAgICBjb21wb25lbnQ6ICd1cGRhdGVPUycsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAndXBkYXRlLWxpbnV4JyxcbiAgICAgIFtQbGF0Zm9ybS5XSU5ET1dTXTogJ3VwZGF0ZS13aW5kb3dzJyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlUHJlZGVmaW5lZE1hbmFnZWRDb21wb25lbnRPcHRpb25zKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgb3B0czogQW1hem9uTWFuYWdlZENvbXBvbmVudE9wdGlvbnMsXG4gICAgY29tcG9uZW50OiBzdHJpbmcsXG4gICkge1xuICAgIGlmIChvcHRzLnBsYXRmb3JtID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGBhIHBsYXRmb3JtIGlzIHJlcXVpcmVkIGZvciAke2NvbXBvbmVudH1gLCBzY29wZSk7XG4gICAgfVxuXG4gICAgaWYgKGNkay5Ub2tlbi5pc1VucmVzb2x2ZWQob3B0cy5wbGF0Zm9ybSkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGBwbGF0Zm9ybSBjYW5ub3QgYmUgYSB0b2tlbiBmb3IgJHtjb21wb25lbnR9YCwgc2NvcGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyxcbiAgICBjb25maWc6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRDb25maWcsXG4gICk6IElDb21wb25lbnQge1xuICAgIHRoaXMudmFsaWRhdGVQcmVkZWZpbmVkTWFuYWdlZENvbXBvbmVudE9wdGlvbnMoc2NvcGUsIG9wdHMsIGNvbmZpZy5jb21wb25lbnQpO1xuXG4gICAgY29uc3QgY29tcG9uZW50TmFtZSA9IGNvbmZpZy5zdXBwb3J0ZWRQbGF0Zm9ybXNbb3B0cy5wbGF0Zm9ybV07XG5cbiAgICBpZiAoIWNvbXBvbmVudE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGAke29wdHMucGxhdGZvcm19IGlzIG5vdCBhIHN1cHBvcnRlZCBwbGF0Zm9ybSBmb3IgJHtjb25maWcuY29tcG9uZW50fWAsIHNjb3BlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mcm9tQW1hem9uTWFuYWdlZENvbXBvbmVudEF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7XG4gICAgICBjb21wb25lbnROYW1lLFxuICAgICAgY29tcG9uZW50VmVyc2lvbjogb3B0cy5jb21wb25lbnRWZXJzaW9uLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hem9uLW1hbmFnZWQtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYW1hem9uLW1hbmFnZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBR25DLDJDQUF3QztBQUN4Qyw2Q0FBd0M7QUFDeEMsbURBQXFEO0FBeUNyRDs7R0FFRztBQUNILE1BQXNCLHNCQUFzQjs7SUFDMUM7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUFtQzs7Ozs7Ozs7OztRQUN0RixPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQUNqRjtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBbUM7Ozs7Ozs7Ozs7UUFDeEYsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDbEY7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQW1DOzs7Ozs7Ozs7O1FBQ3JGLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUMvRTtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBbUM7Ozs7Ozs7Ozs7UUFDcEYsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tB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RUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQ3hDLENBQUMsQ0FBQztLQUNKOztBQTNMSCx3REE0TEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnLi9vcy12ZXJzaW9uJztcbmltcG9ydCB7IExBVEVTVF9WRVJTSU9OIH0gZnJvbSAnLi9wcml2YXRlL2NvbnN0YW50cyc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYW4gRUMyIEltYWdlIEJ1aWxkZXIgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1hem9uTWFuYWdlZENvbXBvbmVudEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9uZW50TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBjb21wb25lbnQsIHgueC54XG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnRWZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHNlbGVjdGluZyBhIHByZWRlZmluZWQgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGxhdGZvcm0gb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm06IFBsYXRmb3JtO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBjb21wb25lbnQsIHgueC54XG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnRWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQW1hem9uTWFuYWdlZENvbXBvbmVudENvbmZpZyB7XG4gIHJlYWRvbmx5IGNvbXBvbmVudDogc3RyaW5nO1xuICByZWFkb25seSBzdXBwb3J0ZWRQbGF0Zm9ybXM6IHsgW3BsYXRmb3JtIGluIFBsYXRmb3JtXT86IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3Igd29ya2luZyB3aXRoIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFtYXpvbk1hbmFnZWRDb21wb25lbnQge1xuICAvKipcbiAgICogSW1wb3J0cyB0aGUgQVdTIENMSSB2MiBBbWF6b24tbWFuYWdlZCBjb21wb25lbnRcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50IG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXdzQ2xpVjIoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZENvbXBvbmVudE9wdGlvbnMpOiBJQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZENvbXBvbmVudChzY29wZSwgaWQsIG9wdHMsIHRoaXMuQVdTX0NMSV9WMl9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIGhlbGxvIHdvcmxkIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBjb21wb25lbnQgb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBoZWxsb1dvcmxkKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRPcHRpb25zKTogSUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRDb21wb25lbnQoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLkhFTExPX1dPUkxEX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgUHl0aG9uIDMgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHB5dGhvbjMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZENvbXBvbmVudE9wdGlvbnMpOiBJQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZENvbXBvbmVudChzY29wZSwgaWQsIG9wdHMsIHRoaXMuUFlUSE9OXzNfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSByZWJvb3QgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYm9vdChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KHNjb3BlLCBpZCwgb3B0cywgdGhpcy5SRUJPT1RfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBTVElHIGhhcmRlbmluZyBBbWF6b24tbWFuYWdlZCBjb21wb25lbnRcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgY29tcG9uZW50IG9wdGlvbnNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW1hZ2VidWlsZGVyL2xhdGVzdC91c2VyZ3VpZGUvaWItc3RpZy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN0aWdCdWlsZChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KHNjb3BlLCBpZCwgb3B0cywgdGhpcy5TVElHX0JVSUxEX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgT1MgdXBkYXRlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBjb21wb25lbnQgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1cGRhdGVPcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KHNjb3BlLCBpZCwgb3B0cywgdGhpcy5VUERBVEVfT1NfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBmcm9tIGl0cyBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGF0dHJzIFRoZSBBbWF6b24tbWFuYWdlZCBjb21wb25lbnQgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQW1hem9uTWFuYWdlZENvbXBvbmVudEF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50QXR0cmlidXRlcyxcbiAgKTogSUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIENvbXBvbmVudC5mcm9tQ29tcG9uZW50QXJuKFxuICAgICAgc2NvcGUsXG4gICAgICBpZCxcbiAgICAgIGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2ltYWdlYnVpbGRlcicsXG4gICAgICAgIGFjY291bnQ6ICdhd3MnLFxuICAgICAgICByZXNvdXJjZTogJ2NvbXBvbmVudCcsXG4gICAgICAgIHJlc291cmNlTmFtZTogYCR7YXR0cnMuY29tcG9uZW50TmFtZX0vJHthdHRycy5jb21wb25lbnRWZXJzaW9uID8/IExBVEVTVF9WRVJTSU9OfWAsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudCBmcm9tIGl0cyBuYW1lXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGFtYXpvbk1hbmFnZWRDb21wb25lbnROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGNvbXBvbmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQW1hem9uTWFuYWdlZENvbXBvbmVudE5hbWUoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGFtYXpvbk1hbmFnZWRDb21wb25lbnROYW1lOiBzdHJpbmcsXG4gICk6IElDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkQ29tcG9uZW50QXR0cmlidXRlcyhzY29wZSwgaWQsIHsgY29tcG9uZW50TmFtZTogYW1hem9uTWFuYWdlZENvbXBvbmVudE5hbWUgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBBV1NfQ0xJX1YyX0NPTkZJRzogQW1hem9uTWFuYWdlZENvbXBvbmVudENvbmZpZyA9IHtcbiAgICBjb21wb25lbnQ6ICdhd3NDbGlWMicsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAnYXdzLWNsaS12ZXJzaW9uLTItbGludXgnLFxuICAgICAgW1BsYXRmb3JtLldJTkRPV1NdOiAnYXdzLWNsaS12ZXJzaW9uLTItd2luZG93cycsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBIRUxMT19XT1JMRF9DT05GSUc6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRDb25maWcgPSB7XG4gICAgY29tcG9uZW50OiAnaGVsbG9Xb3JsZCcsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAnaGVsbG8td29ybGQtbGludXgnLFxuICAgICAgW1BsYXRmb3JtLldJTkRPV1NdOiAnaGVsbG8td29ybGQtd2luZG93cycsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBQWVRIT05fM19DT05GSUc6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRDb25maWcgPSB7XG4gICAgY29tcG9uZW50OiAncHl0aG9uMycsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAncHl0aG9uLTMtbGludXgnLFxuICAgICAgW1BsYXRmb3JtLldJTkRPV1NdOiAncHl0aG9uLTMtd2luZG93cycsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBSRUJPT1RfQ09ORklHOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50Q29uZmlnID0ge1xuICAgIGNvbXBvbmVudDogJ3JlYm9vdCcsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAncmVib290LWxpbnV4JyxcbiAgICAgIFtQbGF0Zm9ybS5XSU5ET1dTXTogJ3JlYm9vdC13aW5kb3dzJyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFNUSUdfQlVJTERfQ09ORklHOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50Q29uZmlnID0ge1xuICAgIGNvbXBvbmVudDogJ3N0aWdCdWlsZCcsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAnc3RpZy1idWlsZC1saW51eCcsXG4gICAgICBbUGxhdGZvcm0uV0lORE9XU106ICdzdGlnLWJ1aWxkLXdpbmRvd3MnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVVBEQVRFX09TX0NPTkZJRzogQW1hem9uTWFuYWdlZENvbXBvbmVudENvbmZpZyA9IHtcbiAgICBjb21wb25lbnQ6ICd1cGRhdGVPUycsXG4gICAgc3VwcG9ydGVkUGxhdGZvcm1zOiB7XG4gICAgICBbUGxhdGZvcm0uTElOVVhdOiAndXBkYXRlLWxpbnV4JyxcbiAgICAgIFtQbGF0Zm9ybS5XSU5ET1dTXTogJ3VwZGF0ZS13aW5kb3dzJyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlUHJlZGVmaW5lZE1hbmFnZWRDb21wb25lbnRPcHRpb25zKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgb3B0czogQW1hem9uTWFuYWdlZENvbXBvbmVudE9wdGlvbnMsXG4gICAgY29tcG9uZW50OiBzdHJpbmcsXG4gICkge1xuICAgIGlmIChvcHRzLnBsYXRmb3JtID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdQbGF0Zm9ybVJlcXVpcmVkJywgYGEgcGxhdGZvcm0gaXMgcmVxdWlyZWQgZm9yICR7Y29tcG9uZW50fWAsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBpZiAoY2RrLlRva2VuLmlzVW5yZXNvbHZlZChvcHRzLnBsYXRmb3JtKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ1BsYXRmb3JtQ2Fubm90QmVUb2tlbicsIGBwbGF0Zm9ybSBjYW5ub3QgYmUgYSB0b2tlbiBmb3IgJHtjb21wb25lbnR9YCwgc2NvcGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHByZWRlZmluZWRNYW5hZ2VkQ29tcG9uZW50KFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvcHRzOiBBbWF6b25NYW5hZ2VkQ29tcG9uZW50T3B0aW9ucyxcbiAgICBjb25maWc6IEFtYXpvbk1hbmFnZWRDb21wb25lbnRDb25maWcsXG4gICk6IElDb21wb25lbnQge1xuICAgIHRoaXMudmFsaWRhdGVQcmVkZWZpbmVkTWFuYWdlZENvbXBvbmVudE9wdGlvbnMoc2NvcGUsIG9wdHMsIGNvbmZpZy5jb21wb25lbnQpO1xuXG4gICAgY29uc3QgY29tcG9uZW50TmFtZSA9IGNvbmZpZy5zdXBwb3J0ZWRQbGF0Zm9ybXNbb3B0cy5wbGF0Zm9ybV07XG5cbiAgICBpZiAoIWNvbXBvbmVudE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdVbnN1cHBvcnRlZFBsYXRmb3JtJywgYCR7b3B0cy5wbGF0Zm9ybX0gaXMgbm90IGEgc3VwcG9ydGVkIHBsYXRmb3JtIGZvciAke2NvbmZpZy5jb21wb25lbnR9YCwgc2NvcGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkQ29tcG9uZW50QXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIGNvbXBvbmVudE5hbWUsXG4gICAgICBjb21wb25lbnRWZXJzaW9uOiBvcHRzLmNvbXBvbmVudFZlcnNpb24sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -10,7 +10,7 @@ const constants_1 = require("./private/constants");
|
|
|
10
10
|
* Helper class for working with Amazon-managed images
|
|
11
11
|
*/
|
|
12
12
|
class AmazonManagedImage {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImage", version: "2.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedImage", version: "2.244.0-alpha.0" };
|
|
14
14
|
/**
|
|
15
15
|
* Imports the Amazon Linux 2 Amazon-managed image
|
|
16
16
|
*
|
|
@@ -499,10 +499,10 @@ class AmazonManagedImage {
|
|
|
499
499
|
};
|
|
500
500
|
static validatePredefinedManagedImageOptions(scope, opts, image) {
|
|
501
501
|
if (cdk.Token.isUnresolved(opts.imageArchitecture)) {
|
|
502
|
-
throw new cdk.ValidationError(`architecture cannot be a token for ${image}`, scope);
|
|
502
|
+
throw new cdk.ValidationError('ArchitectureCannotBeToken', `architecture cannot be a token for ${image}`, scope);
|
|
503
503
|
}
|
|
504
504
|
if (cdk.Token.isUnresolved(opts.imageType)) {
|
|
505
|
-
throw new cdk.ValidationError(`type cannot be a token for ${image}`, scope);
|
|
505
|
+
throw new cdk.ValidationError('TypeCannotBeToken', `type cannot be a token for ${image}`, scope);
|
|
506
506
|
}
|
|
507
507
|
}
|
|
508
508
|
static predefinedManagedImage(scope, id, opts, config) {
|
|
@@ -510,7 +510,7 @@ class AmazonManagedImage {
|
|
|
510
510
|
const key = `${opts.imageType}-${opts.imageArchitecture}`;
|
|
511
511
|
const imageName = config.supportedCombinations[key];
|
|
512
512
|
if (!imageName) {
|
|
513
|
-
throw new cdk.ValidationError(`architecture ${opts.imageArchitecture} with type ${opts.imageType} is not a supported architecture and type for ${config.image}`, scope);
|
|
513
|
+
throw new cdk.ValidationError('UnsupportedArchitectureAndType', `architecture ${opts.imageArchitecture} with type ${opts.imageType} is not a supported architecture and type for ${config.image}`, scope);
|
|
514
514
|
}
|
|
515
515
|
return this.fromAmazonManagedImageAttributes(scope, id, {
|
|
516
516
|
imageName,
|
|
@@ -519,4 +519,4 @@ class AmazonManagedImage {
|
|
|
519
519
|
}
|
|
520
520
|
}
|
|
521
521
|
exports.AmazonManagedImage = AmazonManagedImage;
|
|
522
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hem9uLW1hbmFnZWQtaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbWF6b24tbWFuYWdlZC1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUduQyxtQ0FBOEQ7QUFDOUQsbURBQXFEO0FBK0NyRDs7R0FFRztBQUNILE1BQWEsa0JBQWtCOztJQUM3Qjs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQ3RGLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQ2pGO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUErQjs7Ozs7Ozs7OztRQUN6RixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQUNwRjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQ2pHLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0tBQzlGO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsMkJBQTJCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDckcsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7S0FDbEc7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b250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBJSW1hZ2UgfSBmcm9tICcuL2ltYWdlJztcbmltcG9ydCB7IEltYWdlLCBJbWFnZUFyY2hpdGVjdHVyZSwgSW1hZ2VUeXBlIH0gZnJvbSAnLi9pbWFnZSc7XG5pbXBvcnQgeyBMQVRFU1RfVkVSU0lPTiB9IGZyb20gJy4vcHJpdmF0ZS9jb25zdGFudHMnO1xuXG4vKipcbiAqIEF0dHJpYnV0ZXMgZm9yIGltcG9ydGluZyBhbiBBbWF6b24tbWFuYWdlZCBpbWFnZSBieSBuYW1lIChhbmQgb3B0aW9uYWxseSBhIHZlcnNpb24pXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1hem9uTWFuYWdlZEltYWdlQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UuIFRoZSBwcm92aWRlZCBuYW1lIG11c3QgYmUgbm9ybWFsaXplZCBieSBjb252ZXJ0aW5nIGFsbCBhbHBoYWJldGljYWxcbiAgICogY2hhcmFjdGVycyB0byBsb3dlcmNhc2UsIGFuZCByZXBsYWNpbmcgYWxsIHNwYWNlcyBhbmQgdW5kZXJzY29yZXMgd2l0aCBoeXBoZW5zLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAZGVmYXVsdCB4LngueFxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VWZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHNlbGVjdGluZyBhIHByZWRlZmluZWQgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhcmNoaXRlY3R1cmUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqL1xuICByZWFkb25seSBpbWFnZUFyY2hpdGVjdHVyZTogSW1hZ2VBcmNoaXRlY3R1cmU7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VUeXBlOiBJbWFnZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAZGVmYXVsdCB4LngueFxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnIHtcbiAgcmVhZG9ubHkgaW1hZ2U6IHN0cmluZztcbiAgcmVhZG9ubHkgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7IFtjb21ibzogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogSGVscGVyIGNsYXNzIGZvciB3b3JraW5nIHdpdGggQW1hem9uLW1hbmFnZWQgaW1hZ2VzXG4gKi9cbmV4cG9ydCBjbGFzcyBBbWF6b25NYW5hZ2VkSW1hZ2Uge1xuICAvKipcbiAgICogSW1wb3J0cyB0aGUgQW1hem9uIExpbnV4IDIgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9saW51eC9hbDIvdWcvaW5kZXguaHRtbFxuICAgKiBAc2VlIGh0dHBzOi8vZ2FsbGVyeS5lY3IuYXdzL2FtYXpvbmxpbnV4L2FtYXpvbmxpbnV4XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFtYXpvbkxpbnV4MihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5BTUFaT05fTElOVVhfMl9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIEFtYXpvbiBMaW51eCAyMDIzIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGludXgvYWwyMDIzL3VnL3doYXQtaXMtYW1hem9uLWxpbnV4Lmh0bWxcbiAgICogQHNlZSBodHRwczovL2dhbGxlcnkuZWNyLmF3cy9hbWF6b25saW51eC9hbWF6b25saW51eFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbWF6b25MaW51eDIwMjMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuQU1BWk9OX0xJTlVYXzIwMjNfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBSZWQgSGF0IEVudGVycHJpc2UgTGludXggMTAgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vcGFydG5lcnMvcmVkaGF0L2ZhcXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVkSGF0RW50ZXJwcmlzZUxpbnV4MTAoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuUkVEX0hBVF9FTlRFUlBSSVNFX0xJTlVYXzEwX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgU1VTRSBMaW51eCBFbnRlcnByaXNlIFNlcnZlciAxNSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9saW51eC9jb21tZXJjaWFsLWxpbnV4L2ZhcXMvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN1c2VMaW51eEVudGVycHJpc2VTZXJ2ZXIxNShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5TVVNFX0xJTlVYX0VOVEVSUFJJU0VfU0VSVkVSXzE1X0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgVWJ1bnR1IDIyLjA0IEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3VtZW50YXRpb24udWJ1bnR1LmNvbS9hd3NcbiAgICogQHNlZSBodHRwczovL2h1Yi5kb2NrZXIuY29tL18vdWJ1bnR1XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVidW50dVNlcnZlcjIyMDQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuVUJVTlRVX1NFUlZFUl8yMl8wNF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFVidW50dSAyNC4wNCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2N1bWVudGF0aW9uLnVidW50dS5jb20vYXdzXG4gICAqIEBzZWUgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9fL3VidW50dVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1YnVudHVTZXJ2ZXIyNDA0KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLlVCVU5UVV9TRVJWRVJfMjRfMDRfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBXaW5kb3dzIFNlcnZlciAyMDE2IENvcmUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L3dpbmRvd3MtYW1pLXJlZmVyZW5jZS9pbmRleC5odG1sXG4gICAqIEBzZWUgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL21pY3Jvc29mdC93aW5kb3dzLXNlcnZlcmNvcmVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMTZDb3JlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMTZfQ09SRV9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMTYgRnVsbCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMTZGdWxsKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMTZfRlVMTF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMTkgQ29yZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICogQHNlZSBodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvbWljcm9zb2Z0L3dpbmRvd3Mtc2VydmVyY29yZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAxOUNvcmUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAxOV9DT1JFX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAxOSBGdWxsIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAxOUZ1bGwoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAxOV9GVUxMX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAyMiBDb3JlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAyMkNvcmUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAyMl9DT1JFX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAyMiBGdWxsIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAyMkZ1bGwoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAyMl9GVUxMX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAyNSBDb3JlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAyNUNvcmUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAyNV9DT1JFX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAyNSBGdWxsIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aW5kb3dzU2VydmVyMjAyNUZ1bGwoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuV0lORE9XU19TRVJWRVJfMjAyNV9GVUxMX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgbWFjT1MgMTQgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9lYzItbWFjLWluc3RhbmNlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1hY09TMTQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuTUFDT1NfMTRfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBtYWNPUyAxNSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1tYWMtaW5zdGFuY2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFjT1MxNShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5NQUNPU18xNV9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgYW4gQW1hem9uLW1hbmFnZWQgaW1hZ2UgZnJvbSBpdHMgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBhdHRycyAtIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21BbWF6b25NYW5hZ2VkSW1hZ2VBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogQW1hem9uTWFuYWdlZEltYWdlQXR0cmlidXRlcyxcbiAgKTogSUltYWdlIHtcbiAgICByZXR1cm4gSW1hZ2UuZnJvbUltYWdlQXJuKFxuICAgICAgc2NvcGUsXG4gICAgICBpZCxcbiAgICAgIGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2ltYWdlYnVpbGRlcicsXG4gICAgICAgIGFjY291bnQ6ICdhd3MnLFxuICAgICAgICByZXNvdXJjZTogJ2ltYWdlJyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBgJHthdHRycy5pbWFnZU5hbWV9LyR7YXR0cnMuaW1hZ2VWZXJzaW9uID8/IExBVEVTVF9WRVJTSU9OfWAsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgYW4gQW1hem9uLW1hbmFnZWQgaW1hZ2UgZnJvbSBpdHMgbmFtZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBhbWF6b25NYW5hZ2VkSW1hZ2VOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21BbWF6b25NYW5hZ2VkSW1hZ2VOYW1lKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGFtYXpvbk1hbmFnZWRJbWFnZU5hbWU6IHN0cmluZyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUFtYXpvbk1hbmFnZWRJbWFnZUF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IGltYWdlTmFtZTogYW1hem9uTWFuYWdlZEltYWdlTmFtZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEFNQVpPTl9MSU5VWF8yX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnQW1hem9uIExpbnV4IDInLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnYW1hem9uLWxpbnV4LTIteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAnYW1hem9uLWxpbnV4LTItYXJtNjQnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5ET0NLRVJ9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnYW1hem9uLWxpbnV4LXg4Ni0yJyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEFNQVpPTl9MSU5VWF8yMDIzX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnQW1hem9uIExpbnV4IDIwMjMnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnYW1hem9uLWxpbnV4LTIwMjMteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAnYW1hem9uLWxpbnV4LTIwMjMtYXJtNjQnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5ET0NLRVJ9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnYW1hem9uLWxpbnV4LTIwMjMteDg2LTIwMjMnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUkVEX0hBVF9FTlRFUlBSSVNFX0xJTlVYXzEwX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnUmVkIEhhdCBFbnRlcnByaXNlIExpbnV4IDEwJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3JlZC1oYXQtZW50ZXJwcmlzZS1saW51eC0xMC14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuQVJNNjR9YF06ICdyZWQtaGF0LWVudGVycHJpc2UtbGludXgtMTAtYXJtNjQnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgU1VTRV9MSU5VWF9FTlRFUlBSSVNFX1NFUlZFUl8xNV9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1NVU0UgTGludXggRW50ZXJwcmlzZSBTZXJ2ZXIgMTUnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnc3VzZS1saW51eC1lbnRlcnByaXNlLXNlcnZlci0xNS14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuQVJNNjR9YF06ICdzdXNlLWxpbnV4LWVudGVycHJpc2Utc2VydmVyLTE1LWFybTY0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFVCVU5UVV9TRVJWRVJfMjJfMDRfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdVYnVudHUgMjIuMDQnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAndWJ1bnR1LXNlcnZlci0yMi1sdHMteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAndWJ1bnR1LXNlcnZlci0yMi1sdHMtYXJtNjQnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5ET0NLRVJ9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAndWJ1bnR1LTIyLXg4Ni0yMi0wNCcsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBVQlVOVFVfU0VSVkVSXzI0XzA0X0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnVWJ1bnR1IDI0LjA0JyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3VidW50dS1zZXJ2ZXItMjQtbHRzLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5BUk02NH1gXTogJ3VidW50dS1zZXJ2ZXItMjQtbHRzLWFybTY0JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuRE9DS0VSfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3VidW50dS0yNC14ODYtMjQtMDQnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0lORE9XU19TRVJWRVJfMjAxNl9DT1JFX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnV2luZG93cyBTZXJ2ZXIgMjAxNiBDb3JlJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMTYtZW5nbGlzaC1jb3JlLWJhc2UteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuRE9DS0VSfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMTYteDg2LWNvcmUtbHRzYzIwMTYtYW1kNjQnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0lORE9XU19TRVJWRVJfMjAxNl9GVUxMX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnV2luZG93cyBTZXJ2ZXIgMjAxNiBGdWxsJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMTYtZW5nbGlzaC1mdWxsLWJhc2UteDg2JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMTlfQ09SRV9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMTkgQ29yZScsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDE5LWVuZ2xpc2gtY29yZS1iYXNlLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkRPQ0tFUn0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDE5LXg4Ni1jb3JlLWx0c2MyMDE5LWFtZDY0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMTlfRlVMTF9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMTkgRnVsbCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDE5LWVuZ2xpc2gtZnVsbC1iYXNlLXg4NicsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXSU5ET1dTX1NFUlZFUl8yMDIyX0NPUkVfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdXaW5kb3dzIFNlcnZlciAyMDIyIENvcmUnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAyMi1lbmdsaXNoLWNvcmUtYmFzZS14ODYnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0lORE9XU19TRVJWRVJfMjAyMl9GVUxMX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnV2luZG93cyBTZXJ2ZXIgMjAyMiBGdWxsJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMjItZW5nbGlzaC1mdWxsLWJhc2UteDg2JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMjVfQ09SRV9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMjUgQ29yZScsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDI1LWVuZ2xpc2gtY29yZS1iYXNlLXg4NicsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXSU5ET1dTX1NFUlZFUl8yMDI1X0ZVTExfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdXaW5kb3dzIFNlcnZlciAyMDI1IEZ1bGwnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAyNS1lbmdsaXNoLWZ1bGwtYmFzZS14ODYnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTUFDT1NfMTRfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdtYWNPUyAxNCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICdtYWNvcy1zb25vbWEteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAnbWFjb3Mtc29ub21hLWFybTY0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE1BQ09TXzE1X0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnbWFjT1MgMTUnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnbWFjb3Mtc2VxdW9pYS14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuQVJNNjR9YF06ICdtYWNvcy1zZXF1b2lhLWFybTY0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlUHJlZGVmaW5lZE1hbmFnZWRJbWFnZU9wdGlvbnMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zLFxuICAgIGltYWdlOiBzdHJpbmcsXG4gICkge1xuICAgIGlmIChjZGsuVG9rZW4uaXNVbnJlc29sdmVkKG9wdHMuaW1hZ2VBcmNoaXRlY3R1cmUpKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihgYXJjaGl0ZWN0dXJlIGNhbm5vdCBiZSBhIHRva2VuIGZvciAke2ltYWdlfWAsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBpZiAoY2RrLlRva2VuLmlzVW5yZXNvbHZlZChvcHRzLmltYWdlVHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGB0eXBlIGNhbm5vdCBiZSBhIHRva2VuIGZvciAke2ltYWdlfWAsIHNjb3BlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBwcmVkZWZpbmVkTWFuYWdlZEltYWdlKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zLFxuICAgIGNvbmZpZzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnLFxuICApOiBJSW1hZ2Uge1xuICAgIHRoaXMudmFsaWRhdGVQcmVkZWZpbmVkTWFuYWdlZEltYWdlT3B0aW9ucyhzY29wZSwgb3B0cywgY29uZmlnLmltYWdlKTtcblxuICAgIGNvbnN0IGtleSA9IGAke29wdHMuaW1hZ2VUeXBlfS0ke29wdHMuaW1hZ2VBcmNoaXRlY3R1cmV9YDtcbiAgICBjb25zdCBpbWFnZU5hbWUgPSBjb25maWcuc3VwcG9ydGVkQ29tYmluYXRpb25zW2tleV07XG5cbiAgICBpZiAoIWltYWdlTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGBhcmNoaXRlY3R1cmUgJHtvcHRzLmltYWdlQXJjaGl0ZWN0dXJlfSB3aXRoIHR5cGUgJHtvcHRzLmltYWdlVHlwZX0gaXMgbm90IGEgc3VwcG9ydGVkIGFyY2hpdGVjdHVyZSBhbmQgdHlwZSBmb3IgJHtjb25maWcuaW1hZ2V9YCxcbiAgICAgICAgc2NvcGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkSW1hZ2VBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgaW1hZ2VOYW1lLFxuICAgICAgaW1hZ2VWZXJzaW9uOiBvcHRzLmltYWdlVmVyc2lvbixcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
522
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hem9uLW1hbmFnZWQtaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbWF6b24tbWFuYWdlZC1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUduQyxtQ0FBOEQ7QUFDOUQsbURBQXFEO0FBK0NyRDs7R0FFRztBQUNILE1BQWEsa0JBQWtCOztJQUM3Qjs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQ3RGLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQ2pGO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUErQjs7Ozs7Ozs7OztRQUN6RixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQUNwRjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQStCOzs7Ozs7Ozs7O1FBQ2pHLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0tBQzlGO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsMkJBQTJCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBK0I7Ozs7Ozs7Ozs7UUFDckcsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7S0FDbEc7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QUMsQ0FBQztLQUNKOztBQTdaSCxnREE4WkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSUltYWdlIH0gZnJvbSAnLi9pbWFnZSc7XG5pbXBvcnQgeyBJbWFnZSwgSW1hZ2VBcmNoaXRlY3R1cmUsIEltYWdlVHlwZSB9IGZyb20gJy4vaW1hZ2UnO1xuaW1wb3J0IHsgTEFURVNUX1ZFUlNJT04gfSBmcm9tICcuL3ByaXZhdGUvY29uc3RhbnRzJztcblxuLyoqXG4gKiBBdHRyaWJ1dGVzIGZvciBpbXBvcnRpbmcgYW4gQW1hem9uLW1hbmFnZWQgaW1hZ2UgYnkgbmFtZSAoYW5kIG9wdGlvbmFsbHkgYSB2ZXJzaW9uKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFtYXpvbk1hbmFnZWRJbWFnZUF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlLiBUaGUgcHJvdmlkZWQgbmFtZSBtdXN0IGJlIG5vcm1hbGl6ZWQgYnkgY29udmVydGluZyBhbGwgYWxwaGFiZXRpY2FsXG4gICAqIGNoYXJhY3RlcnMgdG8gbG93ZXJjYXNlLCBhbmQgcmVwbGFjaW5nIGFsbCBzcGFjZXMgYW5kIHVuZGVyc2NvcmVzIHdpdGggaHlwaGVucy5cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgeC54LnhcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlVmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBzZWxlY3RpbmcgYSBwcmVkZWZpbmVkIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYXJjaGl0ZWN0dXJlIG9mIHRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VBcmNoaXRlY3R1cmU6IEltYWdlQXJjaGl0ZWN0dXJlO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlVHlwZTogSW1hZ2VUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQGRlZmF1bHQgeC54LnhcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlVmVyc2lvbj86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyB7XG4gIHJlYWRvbmx5IGltYWdlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN1cHBvcnRlZENvbWJpbmF0aW9uczogeyBbY29tYm86IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3Igd29ya2luZyB3aXRoIEFtYXpvbi1tYW5hZ2VkIGltYWdlc1xuICovXG5leHBvcnQgY2xhc3MgQW1hem9uTWFuYWdlZEltYWdlIHtcbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIEFtYXpvbiBMaW51eCAyIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGludXgvYWwyL3VnL2luZGV4Lmh0bWxcbiAgICogQHNlZSBodHRwczovL2dhbGxlcnkuZWNyLmF3cy9hbWF6b25saW51eC9hbWF6b25saW51eFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbWF6b25MaW51eDIoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuQU1BWk9OX0xJTlVYXzJfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBBbWF6b24gTGludXggMjAyMyBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xpbnV4L2FsMjAyMy91Zy93aGF0LWlzLWFtYXpvbi1saW51eC5odG1sXG4gICAqIEBzZWUgaHR0cHM6Ly9nYWxsZXJ5LmVjci5hd3MvYW1hem9ubGludXgvYW1hem9ubGludXhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYW1hem9uTGludXgyMDIzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLkFNQVpPTl9MSU5VWF8yMDIzX0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgUmVkIEhhdCBFbnRlcnByaXNlIExpbnV4IDEwIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2F3cy5hbWF6b24uY29tL3BhcnRuZXJzL3JlZGhhdC9mYXFzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlZEhhdEVudGVycHJpc2VMaW51eDEwKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLlJFRF9IQVRfRU5URVJQUklTRV9MSU5VWF8xMF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFNVU0UgTGludXggRW50ZXJwcmlzZSBTZXJ2ZXIgMTUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vbGludXgvY29tbWVyY2lhbC1saW51eC9mYXFzL1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzdXNlTGludXhFbnRlcnByaXNlU2VydmVyMTUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuU1VTRV9MSU5VWF9FTlRFUlBSSVNFX1NFUlZFUl8xNV9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFVidW50dSAyMi4wNCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2N1bWVudGF0aW9uLnVidW50dS5jb20vYXdzXG4gICAqIEBzZWUgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9fL3VidW50dVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1YnVudHVTZXJ2ZXIyMjA0KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLlVCVU5UVV9TRVJWRVJfMjJfMDRfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBVYnVudHUgMjQuMDQgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jdW1lbnRhdGlvbi51YnVudHUuY29tL2F3c1xuICAgKiBAc2VlIGh0dHBzOi8vaHViLmRvY2tlci5jb20vXy91YnVudHVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdWJ1bnR1U2VydmVyMjQwNChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5VQlVOVFVfU0VSVkVSXzI0XzA0X0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAxNiBDb3JlIEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC93aW5kb3dzLWFtaS1yZWZlcmVuY2UvaW5kZXguaHRtbFxuICAgKiBAc2VlIGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9taWNyb3NvZnQvd2luZG93cy1zZXJ2ZXJjb3JlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpbmRvd3NTZXJ2ZXIyMDE2Q29yZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5XSU5ET1dTX1NFUlZFUl8yMDE2X0NPUkVfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBXaW5kb3dzIFNlcnZlciAyMDE2IEZ1bGwgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L3dpbmRvd3MtYW1pLXJlZmVyZW5jZS9pbmRleC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpbmRvd3NTZXJ2ZXIyMDE2RnVsbChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zKTogSUltYWdlIHtcbiAgICByZXR1cm4gdGhpcy5wcmVkZWZpbmVkTWFuYWdlZEltYWdlKHNjb3BlLCBpZCwgb3B0cywgdGhpcy5XSU5ET1dTX1NFUlZFUl8yMDE2X0ZVTExfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBXaW5kb3dzIFNlcnZlciAyMDE5IENvcmUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L3dpbmRvd3MtYW1pLXJlZmVyZW5jZS9pbmRleC5odG1sXG4gICAqIEBzZWUgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL21pY3Jvc29mdC93aW5kb3dzLXNlcnZlcmNvcmVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMTlDb3JlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMTlfQ09SRV9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMTkgRnVsbCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMTlGdWxsKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMTlfRlVMTF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMjIgQ29yZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMjJDb3JlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMjJfQ09SRV9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMjIgRnVsbCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMjJGdWxsKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMjJfRlVMTF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMjUgQ29yZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMjVDb3JlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMjVfQ09SRV9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIFdpbmRvd3MgU2VydmVyIDIwMjUgRnVsbCBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRzIFRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZSBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3Qvd2luZG93cy1hbWktcmVmZXJlbmNlL2luZGV4Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luZG93c1NlcnZlcjIwMjVGdWxsKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLldJTkRPV1NfU0VSVkVSXzIwMjVfRlVMTF9DT05GSUcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIG1hY09TIDE0IEFtYXpvbi1tYW5hZ2VkIGltYWdlXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdHMgVGhlIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLW1hYy1pbnN0YW5jZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYWNPUzE0KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdHM6IEFtYXpvbk1hbmFnZWRJbWFnZU9wdGlvbnMpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLnByZWRlZmluZWRNYW5hZ2VkSW1hZ2Uoc2NvcGUsIGlkLCBvcHRzLCB0aGlzLk1BQ09TXzE0X0NPTkZJRyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgbWFjT1MgMTUgQW1hem9uLW1hbmFnZWQgaW1hZ2VcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0cyBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9lYzItbWFjLWluc3RhbmNlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1hY09TMTUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyk6IElJbWFnZSB7XG4gICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE1hbmFnZWRJbWFnZShzY29wZSwgaWQsIG9wdHMsIHRoaXMuTUFDT1NfMTVfQ09ORklHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGZyb20gaXRzIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gYXR0cnMgLSBUaGUgQW1hem9uLW1hbmFnZWQgaW1hZ2UgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQW1hem9uTWFuYWdlZEltYWdlQXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IEFtYXpvbk1hbmFnZWRJbWFnZUF0dHJpYnV0ZXMsXG4gICk6IElJbWFnZSB7XG4gICAgcmV0dXJuIEltYWdlLmZyb21JbWFnZUFybihcbiAgICAgIHNjb3BlLFxuICAgICAgaWQsXG4gICAgICBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICAgIHNlcnZpY2U6ICdpbWFnZWJ1aWxkZXInLFxuICAgICAgICBhY2NvdW50OiAnYXdzJyxcbiAgICAgICAgcmVzb3VyY2U6ICdpbWFnZScsXG4gICAgICAgIHJlc291cmNlTmFtZTogYCR7YXR0cnMuaW1hZ2VOYW1lfS8ke2F0dHJzLmltYWdlVmVyc2lvbiA/PyBMQVRFU1RfVkVSU0lPTn1gLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIEFtYXpvbi1tYW5hZ2VkIGltYWdlIGZyb20gaXRzIG5hbWVcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gYW1hem9uTWFuYWdlZEltYWdlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBBbWF6b24tbWFuYWdlZCBpbWFnZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQW1hem9uTWFuYWdlZEltYWdlTmFtZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhbWF6b25NYW5hZ2VkSW1hZ2VOYW1lOiBzdHJpbmcpOiBJSW1hZ2Uge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkSW1hZ2VBdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyBpbWFnZU5hbWU6IGFtYXpvbk1hbmFnZWRJbWFnZU5hbWUgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBBTUFaT05fTElOVVhfMl9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ0FtYXpvbiBMaW51eCAyJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ2FtYXpvbi1saW51eC0yLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5BUk02NH1gXTogJ2FtYXpvbi1saW51eC0yLWFybTY0JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuRE9DS0VSfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ2FtYXpvbi1saW51eC14ODYtMicsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBBTUFaT05fTElOVVhfMjAyM19DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ0FtYXpvbiBMaW51eCAyMDIzJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ2FtYXpvbi1saW51eC0yMDIzLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5BUk02NH1gXTogJ2FtYXpvbi1saW51eC0yMDIzLWFybTY0JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuRE9DS0VSfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ2FtYXpvbi1saW51eC0yMDIzLXg4Ni0yMDIzJyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFJFRF9IQVRfRU5URVJQUklTRV9MSU5VWF8xMF9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1JlZCBIYXQgRW50ZXJwcmlzZSBMaW51eCAxMCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICdyZWQtaGF0LWVudGVycHJpc2UtbGludXgtMTAteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAncmVkLWhhdC1lbnRlcnByaXNlLWxpbnV4LTEwLWFybTY0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFNVU0VfTElOVVhfRU5URVJQUklTRV9TRVJWRVJfMTVfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdTVVNFIExpbnV4IEVudGVycHJpc2UgU2VydmVyIDE1JyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3N1c2UtbGludXgtZW50ZXJwcmlzZS1zZXJ2ZXItMTUteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAnc3VzZS1saW51eC1lbnRlcnByaXNlLXNlcnZlci0xNS1hcm02NCcsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBVQlVOVFVfU0VSVkVSXzIyXzA0X0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnVWJ1bnR1IDIyLjA0JyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3VidW50dS1zZXJ2ZXItMjItbHRzLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5BUk02NH1gXTogJ3VidW50dS1zZXJ2ZXItMjItbHRzLWFybTY0JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuRE9DS0VSfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3VidW50dS0yMi14ODYtMjItMDQnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVUJVTlRVX1NFUlZFUl8yNF8wNF9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1VidW50dSAyNC4wNCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd1YnVudHUtc2VydmVyLTI0LWx0cy14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuQVJNNjR9YF06ICd1YnVudHUtc2VydmVyLTI0LWx0cy1hcm02NCcsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkRPQ0tFUn0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd1YnVudHUtMjQteDg2LTI0LTA0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMTZfQ09SRV9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMTYgQ29yZScsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDE2LWVuZ2xpc2gtY29yZS1iYXNlLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkRPQ0tFUn0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDE2LXg4Ni1jb3JlLWx0c2MyMDE2LWFtZDY0JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMTZfRlVMTF9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMTYgRnVsbCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDE2LWVuZ2xpc2gtZnVsbC1iYXNlLXg4NicsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXSU5ET1dTX1NFUlZFUl8yMDE5X0NPUkVfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdXaW5kb3dzIFNlcnZlciAyMDE5IENvcmUnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAxOS1lbmdsaXNoLWNvcmUtYmFzZS14ODYnLFxuICAgICAgW2Ake0ltYWdlVHlwZS5ET0NLRVJ9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAxOS14ODYtY29yZS1sdHNjMjAxOS1hbWQ2NCcsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXSU5ET1dTX1NFUlZFUl8yMDE5X0ZVTExfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdXaW5kb3dzIFNlcnZlciAyMDE5IEZ1bGwnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAxOS1lbmdsaXNoLWZ1bGwtYmFzZS14ODYnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0lORE9XU19TRVJWRVJfMjAyMl9DT1JFX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnV2luZG93cyBTZXJ2ZXIgMjAyMiBDb3JlJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMjItZW5nbGlzaC1jb3JlLWJhc2UteDg2JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFdJTkRPV1NfU0VSVkVSXzIwMjJfRlVMTF9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ1dpbmRvd3MgU2VydmVyIDIwMjIgRnVsbCcsXG4gICAgc3VwcG9ydGVkQ29tYmluYXRpb25zOiB7XG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5YODZfNjR9YF06ICd3aW5kb3dzLXNlcnZlci0yMDIyLWVuZ2xpc2gtZnVsbC1iYXNlLXg4NicsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBXSU5ET1dTX1NFUlZFUl8yMDI1X0NPUkVfQ09ORklHOiBBbWF6b25NYW5hZ2VkSW1hZ2VDb25maWcgPSB7XG4gICAgaW1hZ2U6ICdXaW5kb3dzIFNlcnZlciAyMDI1IENvcmUnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnd2luZG93cy1zZXJ2ZXItMjAyNS1lbmdsaXNoLWNvcmUtYmFzZS14ODYnLFxuICAgIH0sXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgV0lORE9XU19TRVJWRVJfMjAyNV9GVUxMX0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnV2luZG93cyBTZXJ2ZXIgMjAyNSBGdWxsJyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ3dpbmRvd3Mtc2VydmVyLTIwMjUtZW5nbGlzaC1mdWxsLWJhc2UteDg2JyxcbiAgICB9LFxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE1BQ09TXzE0X0NPTkZJRzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnID0ge1xuICAgIGltYWdlOiAnbWFjT1MgMTQnLFxuICAgIHN1cHBvcnRlZENvbWJpbmF0aW9uczoge1xuICAgICAgW2Ake0ltYWdlVHlwZS5BTUl9LSR7SW1hZ2VBcmNoaXRlY3R1cmUuWDg2XzY0fWBdOiAnbWFjb3Mtc29ub21hLXg4NicsXG4gICAgICBbYCR7SW1hZ2VUeXBlLkFNSX0tJHtJbWFnZUFyY2hpdGVjdHVyZS5BUk02NH1gXTogJ21hY29zLXNvbm9tYS1hcm02NCcsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBNQUNPU18xNV9DT05GSUc6IEFtYXpvbk1hbmFnZWRJbWFnZUNvbmZpZyA9IHtcbiAgICBpbWFnZTogJ21hY09TIDE1JyxcbiAgICBzdXBwb3J0ZWRDb21iaW5hdGlvbnM6IHtcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLlg4Nl82NH1gXTogJ21hY29zLXNlcXVvaWEteDg2JyxcbiAgICAgIFtgJHtJbWFnZVR5cGUuQU1JfS0ke0ltYWdlQXJjaGl0ZWN0dXJlLkFSTTY0fWBdOiAnbWFjb3Mtc2VxdW9pYS1hcm02NCcsXG4gICAgfSxcbiAgfTtcblxuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZVByZWRlZmluZWRNYW5hZ2VkSW1hZ2VPcHRpb25zKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgb3B0czogQW1hem9uTWFuYWdlZEltYWdlT3B0aW9ucyxcbiAgICBpbWFnZTogc3RyaW5nLFxuICApIHtcbiAgICBpZiAoY2RrLlRva2VuLmlzVW5yZXNvbHZlZChvcHRzLmltYWdlQXJjaGl0ZWN0dXJlKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ0FyY2hpdGVjdHVyZUNhbm5vdEJlVG9rZW4nLCBgYXJjaGl0ZWN0dXJlIGNhbm5vdCBiZSBhIHRva2VuIGZvciAke2ltYWdlfWAsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBpZiAoY2RrLlRva2VuLmlzVW5yZXNvbHZlZChvcHRzLmltYWdlVHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdUeXBlQ2Fubm90QmVUb2tlbicsIGB0eXBlIGNhbm5vdCBiZSBhIHRva2VuIGZvciAke2ltYWdlfWAsIHNjb3BlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBwcmVkZWZpbmVkTWFuYWdlZEltYWdlKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvcHRzOiBBbWF6b25NYW5hZ2VkSW1hZ2VPcHRpb25zLFxuICAgIGNvbmZpZzogQW1hem9uTWFuYWdlZEltYWdlQ29uZmlnLFxuICApOiBJSW1hZ2Uge1xuICAgIHRoaXMudmFsaWRhdGVQcmVkZWZpbmVkTWFuYWdlZEltYWdlT3B0aW9ucyhzY29wZSwgb3B0cywgY29uZmlnLmltYWdlKTtcblxuICAgIGNvbnN0IGtleSA9IGAke29wdHMuaW1hZ2VUeXBlfS0ke29wdHMuaW1hZ2VBcmNoaXRlY3R1cmV9YDtcbiAgICBjb25zdCBpbWFnZU5hbWUgPSBjb25maWcuc3VwcG9ydGVkQ29tYmluYXRpb25zW2tleV07XG5cbiAgICBpZiAoIWltYWdlTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICdVbnN1cHBvcnRlZEFyY2hpdGVjdHVyZUFuZFR5cGUnLFxuICAgICAgICBgYXJjaGl0ZWN0dXJlICR7b3B0cy5pbWFnZUFyY2hpdGVjdHVyZX0gd2l0aCB0eXBlICR7b3B0cy5pbWFnZVR5cGV9IGlzIG5vdCBhIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmUgYW5kIHR5cGUgZm9yICR7Y29uZmlnLmltYWdlfWAsXG4gICAgICAgIHNjb3BlLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mcm9tQW1hem9uTWFuYWdlZEltYWdlQXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIGltYWdlTmFtZSxcbiAgICAgIGltYWdlVmVyc2lvbjogb3B0cy5pbWFnZVZlcnNpb24sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -10,7 +10,7 @@ const workflow_1 = require("./workflow");
|
|
|
10
10
|
* Helper class for working with Amazon-managed workflows
|
|
11
11
|
*/
|
|
12
12
|
class AmazonManagedWorkflow {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflow", version: "2.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AmazonManagedWorkflow", version: "2.244.0-alpha.0" };
|
|
14
14
|
/**
|
|
15
15
|
* Imports the build-container Amazon-managed workflow
|
|
16
16
|
*
|
|
@@ -101,7 +101,7 @@ class AmazonManagedWorkflow {
|
|
|
101
101
|
throw error;
|
|
102
102
|
}
|
|
103
103
|
if (cdk.Token.isUnresolved(attrs.workflowType)) {
|
|
104
|
-
throw new cdk.ValidationError('workflowType cannot be a token', scope);
|
|
104
|
+
throw new cdk.ValidationError('WorkflowTypeCannotBeToken', 'workflowType cannot be a token', scope);
|
|
105
105
|
}
|
|
106
106
|
return workflow_1.Workflow.fromWorkflowArn(scope, id, cdk.Stack.of(scope).formatArn({
|
|
107
107
|
service: 'imagebuilder',
|
|
@@ -112,4 +112,4 @@ class AmazonManagedWorkflow {
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
exports.AmazonManagedWorkflow = AmazonManagedWorkflow;
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hem9uLW1hbmFnZWQtd29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbWF6b24tbWFuYWdlZC13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUVuQyxtREFBcUQ7QUFFckQseUNBQW9EO0FBaUJwRDs7R0FFRztBQUNILE1BQWEscUJBQXFCOztJQUNoQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxFQUFVO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDekQsWUFBWSxFQUFFLGlCQUFpQjtZQUMvQixZQUFZLEVBQUUsdUJBQVksQ0FBQyxLQUFLO1NBQ2pDLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQWdCLEVBQUUsRUFBVTtRQUNuRCxPQUFPLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3pELFlBQVksRUFBRSxhQUFhO1lBQzNCLFlBQVksRUFBRSx1QkFBWSxDQUFDLEtBQUs7U0FDakMsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFnQixFQUFFLEVBQVU7UUFDNUQsT0FBTyxJQUFJLENBQUMsbUNBQW1DLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUN6RCxZQUFZLEVBQUUsc0JBQXNCO1lBQ3BDLFlBQVksRUFBRSx1QkFBWSxDQUFDLFlBQVk7U0FDeEMsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBZ0IsRUFBRSxFQUFVO1FBQ3hELE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDekQsWUFBWSxFQUFFLGtCQUFrQjtZQUNoQyxZQUFZLEVBQUUsdUJBQVksQ0FBQyxZQUFZO1NBQ3hDLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWdCLEVBQUUsRUFBVTtRQUN0RCxPQUFPLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3pELFlBQVksRUFBRSxnQkFBZ0I7WUFDOUIsWUFBWSxFQUFFLHVCQUFZLENBQUMsSUFBSTtTQUNoQyxDQUFDLENBQUM7S0FDSjtJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFnQixFQUFFLEVBQVU7UUFDbEQsT0FBTyxJQUFJLENBQUMsbUNBQW1DLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUN6RCxZQUFZLEVBQUUsWUFBWTtZQUMxQixZQUFZLEVBQUUsdUJBQVksQ0FBQyxJQUFJO1NBQ2hDLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLG1DQUFtQyxDQUMvQyxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBc0M7Ozs7Ozs7Ozs7UUFFdEMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUMvQyxNQUFNLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsRUFBRSxnQ0FBZ0MsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RyxDQUFDO1FBRUQsT0FBTyxtQkFBUSxDQUFDLGVBQWUsQ0FDN0IsS0FBSyxFQUNMLEVBQUUsRUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDNUIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsVUFBVTtZQUNwQixZQUFZLEVBQUUsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksMEJBQWMsRUFBRTtTQUM1RixDQUFDLENBQ0gsQ0FBQztLQUNIOztBQXpHSCxzREEwR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IExBVEVTVF9WRVJTSU9OIH0gZnJvbSAnLi9wcml2YXRlL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7IElXb3JrZmxvdyB9IGZyb20gJy4vd29ya2Zsb3cnO1xuaW1wb3J0IHsgV29ya2Zsb3csIFdvcmtmbG93VHlwZSB9IGZyb20gJy4vd29ya2Zsb3cnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFuIEVDMiBJbWFnZSBCdWlsZGVyIEFtYXpvbi1tYW5hZ2VkIHdvcmtmbG93XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW1hem9uTWFuYWdlZFdvcmtmbG93QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQW1hem9uLW1hbmFnZWQgd29ya2Zsb3dcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgQW1hem9uLW1hbmFnZWQgd29ya2Zsb3dcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlO1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3Igd29ya2luZyB3aXRoIEFtYXpvbi1tYW5hZ2VkIHdvcmtmbG93c1xuICovXG5leHBvcnQgY2xhc3MgQW1hem9uTWFuYWdlZFdvcmtmbG93IHtcbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIGJ1aWxkLWNvbnRhaW5lciBBbWF6b24tbWFuYWdlZCB3b3JrZmxvd1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJ1aWxkQ29udGFpbmVyKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnYnVpbGQtY29udGFpbmVyJyxcbiAgICAgIHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlLkJVSUxELFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIGJ1aWxkLWltYWdlIEFXUy1tYW5hZ2VkIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYnVpbGRJbWFnZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKTogSVdvcmtmbG93IHtcbiAgICByZXR1cm4gdGhpcy5mcm9tQW1hem9uTWFuYWdlZFdvcmtmbG93QXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ2J1aWxkLWltYWdlJyxcbiAgICAgIHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlLkJVSUxELFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgdGhlIGRpc3RyaWJ1dGUtY29udGFpbmVyIEFXUy1tYW5hZ2VkIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGlzdHJpYnV0ZUNvbnRhaW5lcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKTogSVdvcmtmbG93IHtcbiAgICByZXR1cm4gdGhpcy5mcm9tQW1hem9uTWFuYWdlZFdvcmtmbG93QXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ2Rpc3RyaWJ1dGUtY29udGFpbmVyJyxcbiAgICAgIHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlLkRJU1RSSUJVVElPTixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBkaXN0cmlidXRlLWltYWdlIEFXUy1tYW5hZ2VkIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGlzdHJpYnV0ZUltYWdlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnZGlzdHJpYnV0ZS1pbWFnZScsXG4gICAgICB3b3JrZmxvd1R5cGU6IFdvcmtmbG93VHlwZS5ESVNUUklCVVRJT04sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgdGVzdC1jb250YWluZXIgQVdTLW1hbmFnZWQgd29ya2Zsb3dcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0ZXN0Q29udGFpbmVyKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAndGVzdC1jb250YWluZXInLFxuICAgICAgd29ya2Zsb3dUeXBlOiBXb3JrZmxvd1R5cGUuVEVTVCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSB0ZXN0LWltYWdlIEFXUy1tYW5hZ2VkIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdGVzdEltYWdlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21BbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAndGVzdC1pbWFnZScsXG4gICAgICB3b3JrZmxvd1R5cGU6IFdvcmtmbG93VHlwZS5URVNULFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgYW4gQVdTLW1hbmFnZWQgd29ya2Zsb3cgZnJvbSBpdHMgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBvZiB0aGUgQVdTLW1hbmFnZWQgd29ya2Zsb3dcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFtYXpvbk1hbmFnZWRXb3JrZmxvd0F0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBBbWF6b25NYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzLFxuICApOiBJV29ya2Zsb3cge1xuICAgIGlmIChjZGsuVG9rZW4uaXNVbnJlc29sdmVkKGF0dHJzLndvcmtmbG93VHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdXb3JrZmxvd1R5cGVDYW5ub3RCZVRva2VuJywgJ3dvcmtmbG93VHlwZSBjYW5ub3QgYmUgYSB0b2tlbicsIHNjb3BlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gV29ya2Zsb3cuZnJvbVdvcmtmbG93QXJuKFxuICAgICAgc2NvcGUsXG4gICAgICBpZCxcbiAgICAgIGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2ltYWdlYnVpbGRlcicsXG4gICAgICAgIGFjY291bnQ6ICdhd3MnLFxuICAgICAgICByZXNvdXJjZTogJ3dvcmtmbG93JyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBgJHthdHRycy53b3JrZmxvd1R5cGUudG9Mb3dlckNhc2UoKX0vJHthdHRycy53b3JrZmxvd05hbWV9LyR7TEFURVNUX1ZFUlNJT059YCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|