@aws-cdk/cloud-assembly-schema 42.0.0 → 43.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -16,7 +16,7 @@
16
16
  "stability": "stable"
17
17
  },
18
18
  "homepage": "https://github.com/aws/aws-cdk",
19
- "jsiiVersion": "5.6.13 (build 629499a)",
19
+ "jsiiVersion": "5.6.14 (build d974ee4)",
20
20
  "keywords": [
21
21
  "aws",
22
22
  "cdk"
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "name": "@aws-cdk/cloud-assembly-schema",
34
34
  "readme": {
35
- "markdown": "# Cloud Assembly Schema\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\n## Cloud Assembly\n\nThe _Cloud Assembly_ is the output of the synthesis operation. It is produced as part of the\n[`cdk synth`](https://github.com/aws/aws-cdk/tree/main/packages/aws-cdk#cdk-synthesize)\ncommand, or the [`app.synth()`](https://github.com/aws/aws-cdk/blob/main/packages/@aws-cdk/core/lib/app.ts#L135) method invocation.\n\nIts essentially a set of files and directories, one of which is the `manifest.json` file. It defines the set of instructions that are\nneeded in order to deploy the assembly directory.\n\n> For example, when `cdk deploy` is executed, the CLI reads this file and performs its instructions:\n>\n> - Build container images.\n> - Upload assets.\n> - Deploy CloudFormation templates.\n\nTherefore, the assembly is how the CDK class library and CDK CLI (or any other consumer) communicate. To ensure compatibility\nbetween the assembly and its consumers, we treat the manifest file as a well defined, versioned schema.\n\n## Schema\n\nThis module contains the typescript structs that comprise the `manifest.json` file, as well as the\ngenerated [_json-schema_](./schema/cloud-assembly.schema.json).\n\n## Versioning\n\nThe schema version is specified my the major version of the package release. It follows semantic versioning, but with a small twist.\n\nWhen we add instructions to the assembly, they are reflected in the manifest file and the _json-schema_ accordingly.\nEvery such instruction, is crucial for ensuring the correct deployment behavior. This means that to properly deploy a cloud assembly,\nconsumers must be aware of every such instruction modification.\n\nFor this reason, every change to the schema, even though it might not strictly break validation of the _json-schema_ format,\nis considered `major` version bump. All changes that do not impact the schema are considered a `minor` version bump.\n\n## How to consume\n\nIf you'd like to consume the [schema file](./schema/cloud-assembly.schema.json) in order to do validations on `manifest.json` files,\nsimply download it from this repo and run it against standard _json-schema_ validators, such as [jsonschema](https://www.npmjs.com/package/jsonschema).\n\nConsumers must take into account the `major` version of the schema they are consuming. They should reject cloud assemblies\nwith a `major` version that is higher than what they expect. While schema validation might pass on such assemblies, the deployment integrity\ncannot be guaranteed because some instructions will be ignored.\n\n> For example, if your consumer was built when the schema version was 2.0.0, you should reject deploying cloud assemblies with a\n> manifest version of 3.0.0.\n\n## Contributing\n\nSee [Contribution Guide](./CONTRIBUTING.md)\n\n"
35
+ "markdown": "# Cloud Assembly Schema\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\n## Cloud Assembly\n\nThe _Cloud Assembly_ is the output of the synthesis operation. It is produced as part of the\n[`cdk synth`](https://github.com/aws/aws-cdk-cli/tree/main/packages/aws-cdk#cdk-synthesize)\ncommand, or the [`app.synth()`](https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/core/lib/stage.ts#L219) method invocation.\n\nIts essentially a set of files and directories, one of which is the `manifest.json` file. It defines the set of instructions that are\nneeded in order to deploy the assembly directory.\n\n> For example, when `cdk deploy` is executed, the CLI reads this file and performs its instructions:\n>\n> - Build container images.\n> - Upload assets.\n> - Deploy CloudFormation templates.\n\nTherefore, the assembly is how the CDK class library and CDK CLI (or any other consumer) communicate. To ensure compatibility\nbetween the assembly and its consumers, we treat the manifest file as a well defined, versioned schema.\n\n## Schema\n\nThis module contains the typescript structs that comprise the `manifest.json` file, as well as the\ngenerated [_json-schema_](./schema/cloud-assembly.schema.json).\n\n## Versioning\n\nThe schema version is specified my the major version of the package release. It follows semantic versioning, but with a small twist.\n\nWhen we add instructions to the assembly, they are reflected in the manifest file and the _json-schema_ accordingly.\nEvery such instruction, is crucial for ensuring the correct deployment behavior. This means that to properly deploy a cloud assembly,\nconsumers must be aware of every such instruction modification.\n\nFor this reason, every change to the schema, even though it might not strictly break validation of the _json-schema_ format,\nis considered `major` version bump. All changes that do not impact the schema are considered a `minor` version bump.\n\n## How to consume\n\nIf you'd like to consume the [schema file](./schema/cloud-assembly.schema.json) in order to do validations on `manifest.json` files,\nsimply download it from this repo and run it against standard _json-schema_ validators, such as [jsonschema](https://www.npmjs.com/package/jsonschema).\n\nConsumers must take into account the `major` version of the schema they are consuming. They should reject cloud assemblies\nwith a `major` version that is higher than what they expect. While schema validation might pass on such assemblies, the deployment integrity\ncannot be guaranteed because some instructions will be ignored.\n\n> For example, if your consumer was built when the schema version was 2.0.0, you should reject deploying cloud assemblies with a\n> manifest version of 3.0.0.\n\n## Contributing\n\nSee [Contribution Guide](./CONTRIBUTING.md)\n"
36
36
  },
37
37
  "repository": {
38
38
  "directory": "packages/@aws-cdk/cloud-assembly-schema",
@@ -197,14 +197,14 @@
197
197
  "abstract": true,
198
198
  "docs": {
199
199
  "default": "- no display name",
200
- "remarks": "Should only be used in user interfaces.",
200
+ "remarks": "Is used by the CLI to present a list of stacks to the user in a way that\nmakes sense to them. Even though the property name \"display name\" doesn't\nimply it, this field is used to select stacks as well, so all stacks should\nhave a unique display name.",
201
201
  "stability": "stable",
202
- "summary": "A string that represents this artifact."
202
+ "summary": "A string that can be shown to a user to uniquely identify this artifact inside a cloud assembly tree."
203
203
  },
204
204
  "immutable": true,
205
205
  "locationInModule": {
206
206
  "filename": "lib/cloud-assembly/schema.ts",
207
- "line": 107
207
+ "line": 112
208
208
  },
209
209
  "name": "displayName",
210
210
  "optional": true,
@@ -416,7 +416,7 @@
416
416
  "kind": "interface",
417
417
  "locationInModule": {
418
418
  "filename": "lib/cloud-assembly/schema.ts",
419
- "line": 113
419
+ "line": 118
420
420
  },
421
421
  "name": "AssemblyManifest",
422
422
  "properties": [
@@ -429,7 +429,7 @@
429
429
  "immutable": true,
430
430
  "locationInModule": {
431
431
  "filename": "lib/cloud-assembly/schema.ts",
432
- "line": 117
432
+ "line": 122
433
433
  },
434
434
  "name": "version",
435
435
  "type": {
@@ -446,7 +446,7 @@
446
446
  "immutable": true,
447
447
  "locationInModule": {
448
448
  "filename": "lib/cloud-assembly/schema.ts",
449
- "line": 136
449
+ "line": 141
450
450
  },
451
451
  "name": "artifacts",
452
452
  "optional": true,
@@ -470,7 +470,7 @@
470
470
  "immutable": true,
471
471
  "locationInModule": {
472
472
  "filename": "lib/cloud-assembly/schema.ts",
473
- "line": 129
473
+ "line": 134
474
474
  },
475
475
  "name": "minimumCliVersion",
476
476
  "optional": true,
@@ -489,7 +489,7 @@
489
489
  "immutable": true,
490
490
  "locationInModule": {
491
491
  "filename": "lib/cloud-assembly/schema.ts",
492
- "line": 144
492
+ "line": 149
493
493
  },
494
494
  "name": "missing",
495
495
  "optional": true,
@@ -512,7 +512,7 @@
512
512
  "immutable": true,
513
513
  "locationInModule": {
514
514
  "filename": "lib/cloud-assembly/schema.ts",
515
- "line": 151
515
+ "line": 156
516
516
  },
517
517
  "name": "runtime",
518
518
  "optional": true,
@@ -1238,7 +1238,7 @@
1238
1238
  "datatype": true,
1239
1239
  "docs": {
1240
1240
  "stability": "stable",
1241
- "summary": "Query input for lookup up Cloudformation resources using CC API."
1241
+ "summary": "Query input for lookup up CloudFormation resources using CC API."
1242
1242
  },
1243
1243
  "fqn": "@aws-cdk/cloud-assembly-schema.CcApiContextQuery",
1244
1244
  "interfaces": [
@@ -1261,7 +1261,7 @@
1261
1261
  "immutable": true,
1262
1262
  "locationInModule": {
1263
1263
  "filename": "lib/cloud-assembly/context-queries.ts",
1264
- "line": 414
1264
+ "line": 417
1265
1265
  },
1266
1266
  "name": "propertiesToReturn",
1267
1267
  "type": {
@@ -1278,7 +1278,7 @@
1278
1278
  "docs": {
1279
1279
  "remarks": "See https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/supported-resources.html",
1280
1280
  "stability": "stable",
1281
- "summary": "The Cloudformation resource type."
1281
+ "summary": "The CloudFormation resource type."
1282
1282
  },
1283
1283
  "immutable": true,
1284
1284
  "locationInModule": {
@@ -1301,7 +1301,7 @@
1301
1301
  "immutable": true,
1302
1302
  "locationInModule": {
1303
1303
  "filename": "lib/cloud-assembly/context-queries.ts",
1304
- "line": 428
1304
+ "line": 448
1305
1305
  },
1306
1306
  "name": "dummyValue",
1307
1307
  "optional": true,
@@ -1313,7 +1313,7 @@
1313
1313
  "abstract": true,
1314
1314
  "docs": {
1315
1315
  "default": "- Either exactIdentifier or propertyMatch should be specified.",
1316
- "remarks": "Specifying exactIdentifier will return exactly one result, or throw an error.",
1316
+ "remarks": "Specifying exactIdentifier will return exactly one result, or throw an error\nunless `ignoreErrorOnMissingContext` is set.",
1317
1317
  "stability": "stable",
1318
1318
  "summary": "Identifier of the resource to look up using `GetResource`."
1319
1319
  },
@@ -1328,18 +1328,37 @@
1328
1328
  "primitive": "string"
1329
1329
  }
1330
1330
  },
1331
+ {
1332
+ "abstract": true,
1333
+ "docs": {
1334
+ "default": "'any'",
1335
+ "remarks": "If the expected result count does not match the actual count,\nby default an error is produced and the result is not committed to cached\ncontext, and the user can correct the situation and try again without\nhaving to manually clear out the context key using `cdk context --remove`\n\nIf the value of * `ignoreErrorOnMissingContext` is `true`, the value of\n`expectedMatchCount` is `at-least-one | exactly-one` and the number\nof found resources is 0, `dummyValue` is returned and committed to context\ninstead.",
1336
+ "stability": "stable",
1337
+ "summary": "Expected count of results if `propertyMatch` is specified."
1338
+ },
1339
+ "immutable": true,
1340
+ "locationInModule": {
1341
+ "filename": "lib/cloud-assembly/context-queries.ts",
1342
+ "line": 434
1343
+ },
1344
+ "name": "expectedMatchCount",
1345
+ "optional": true,
1346
+ "type": {
1347
+ "primitive": "string"
1348
+ }
1349
+ },
1331
1350
  {
1332
1351
  "abstract": true,
1333
1352
  "docs": {
1334
1353
  "default": "false",
1335
- "remarks": "- In case of an `exactIdentifier` lookup, return the `dummyValue` if the resource with\n that identifier was not found.\n- In case of a `propertyMatch` lookup, this setting currently does not have any effect,\n as `propertyMatch` queries can legally return 0 resources.\n\nif `ignoreErrorOnMissingContext` is set, `dummyValue` should be set and be an array.",
1354
+ "remarks": "- In case of an `exactIdentifier` lookup, return the `dummyValue` if the resource with\n that identifier was not found.\n- In case of a `propertyMatch` lookup, return the `dummyValue` if `expectedMatchCount`\n is `at-least-one | exactly-one` and the number of resources found was 0.\n\nif `ignoreErrorOnMissingContext` is set, `dummyValue` should be set and be an array.",
1336
1355
  "stability": "stable",
1337
1356
  "summary": "Ignore an error and return the `dummyValue` instead if the resource was not found."
1338
1357
  },
1339
1358
  "immutable": true,
1340
1359
  "locationInModule": {
1341
1360
  "filename": "lib/cloud-assembly/context-queries.ts",
1342
- "line": 442
1361
+ "line": 462
1343
1362
  },
1344
1363
  "name": "ignoreErrorOnMissingContext",
1345
1364
  "optional": true,
@@ -1351,14 +1370,14 @@
1351
1370
  "abstract": true,
1352
1371
  "docs": {
1353
1372
  "default": "- Either exactIdentifier or propertyMatch should be specified.",
1354
- "remarks": "Specifying propertyMatch will return 0 or more results.\n\n## Notes on property completeness\n\nCloudControl API's `ListResources` may return fewer properties than\n`GetResource` would, depending on the resource implementation.\n\nThe resources that `propertyMatch` matches against will *only ever* be the\nproperties returned by the `ListResources` call.",
1373
+ "remarks": "By default, specifying propertyMatch will successfully return 0 or more\nresults. To throw an error if the number of results is unexpected (and\nprevent the query results from being committed to context), specify\n`expectedMatchCount`.\n\n## Notes on property completeness\n\nCloudControl API's `ListResources` may return fewer properties than\n`GetResource` would, depending on the resource implementation.\n\nThe resources that `propertyMatch` matches against will *only ever* be the\nproperties returned by the `ListResources` call.",
1355
1374
  "stability": "stable",
1356
1375
  "summary": "Returns any resources matching these properties, using `ListResources`."
1357
1376
  },
1358
1377
  "immutable": true,
1359
1378
  "locationInModule": {
1360
1379
  "filename": "lib/cloud-assembly/context-queries.ts",
1361
- "line": 392
1380
+ "line": 395
1362
1381
  },
1363
1382
  "name": "propertyMatch",
1364
1383
  "optional": true,
@@ -5141,7 +5160,7 @@
5141
5160
  "kind": "interface",
5142
5161
  "locationInModule": {
5143
5162
  "filename": "lib/cloud-assembly/context-queries.ts",
5144
- "line": 451
5163
+ "line": 471
5145
5164
  },
5146
5165
  "name": "PluginContextQuery",
5147
5166
  "properties": [
@@ -5154,7 +5173,7 @@
5154
5173
  "immutable": true,
5155
5174
  "locationInModule": {
5156
5175
  "filename": "lib/cloud-assembly/context-queries.ts",
5157
- "line": 455
5176
+ "line": 475
5158
5177
  },
5159
5178
  "name": "pluginName",
5160
5179
  "type": {
@@ -5758,6 +5777,6 @@
5758
5777
  "symbolId": "lib/cloud-assembly/context-queries:VpcContextQuery"
5759
5778
  }
5760
5779
  },
5761
- "version": "42.0.0",
5762
- "fingerprint": "BL5pRq7R15nJdxKtzs57jDdVk8bMEmotECKuxsZl67s="
5780
+ "version": "43.1.0",
5781
+ "fingerprint": "3mBrdPskCdX2BBoAPeziE/Y+UihvosKskaJWe9UyrV4="
5763
5782
  }
package/README.md CHANGED
@@ -5,8 +5,8 @@ This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aw
5
5
  ## Cloud Assembly
6
6
 
7
7
  The _Cloud Assembly_ is the output of the synthesis operation. It is produced as part of the
8
- [`cdk synth`](https://github.com/aws/aws-cdk/tree/main/packages/aws-cdk#cdk-synthesize)
9
- command, or the [`app.synth()`](https://github.com/aws/aws-cdk/blob/main/packages/@aws-cdk/core/lib/app.ts#L135) method invocation.
8
+ [`cdk synth`](https://github.com/aws/aws-cdk-cli/tree/main/packages/aws-cdk#cdk-synthesize)
9
+ command, or the [`app.synth()`](https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/core/lib/stage.ts#L219) method invocation.
10
10
 
11
11
  Its essentially a set of files and directories, one of which is the `manifest.json` file. It defines the set of instructions that are
12
12
  needed in order to deploy the assembly directory.
@@ -51,4 +51,3 @@ cannot be guaranteed because some instructions will be ignored.
51
51
  ## Contributing
52
52
 
53
53
  See [Contribution Guide](./CONTRIBUTING.md)
54
-
package/cli-version.json CHANGED
@@ -1 +1 @@
1
- {"version":"2.1006.0"}
1
+ {"version":"3.0.0"}
@@ -312,19 +312,19 @@ export interface KeyContextQuery extends ContextLookupRoleOptions {
312
312
  readonly aliasName: string;
313
313
  }
314
314
  /**
315
- * Query input for lookup up Cloudformation resources using CC API
315
+ * Query input for lookup up CloudFormation resources using CC API
316
316
  */
317
317
  export interface CcApiContextQuery extends ContextLookupRoleOptions {
318
318
  /**
319
- * The Cloudformation resource type.
319
+ * The CloudFormation resource type.
320
320
  * See https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/supported-resources.html
321
321
  */
322
322
  readonly typeName: string;
323
323
  /**
324
324
  * Identifier of the resource to look up using `GetResource`.
325
325
  *
326
- * Specifying exactIdentifier will return exactly one result, or throw an error.
327
- *
326
+ * Specifying exactIdentifier will return exactly one result, or throw an error
327
+ * unless `ignoreErrorOnMissingContext` is set.
328
328
  *
329
329
  * @default - Either exactIdentifier or propertyMatch should be specified.
330
330
  */
@@ -332,7 +332,10 @@ export interface CcApiContextQuery extends ContextLookupRoleOptions {
332
332
  /**
333
333
  * Returns any resources matching these properties, using `ListResources`.
334
334
  *
335
- * Specifying propertyMatch will return 0 or more results.
335
+ * By default, specifying propertyMatch will successfully return 0 or more
336
+ * results. To throw an error if the number of results is unexpected (and
337
+ * prevent the query results from being committed to context), specify
338
+ * `expectedMatchCount`.
336
339
  *
337
340
  * ## Notes on property completeness
338
341
  *
@@ -366,6 +369,22 @@ export interface CcApiContextQuery extends ContextLookupRoleOptions {
366
369
  * `GetResource` call for resources matched by `propertyMatch`.
367
370
  */
368
371
  readonly propertiesToReturn: string[];
372
+ /**
373
+ * Expected count of results if `propertyMatch` is specified.
374
+ *
375
+ * If the expected result count does not match the actual count,
376
+ * by default an error is produced and the result is not committed to cached
377
+ * context, and the user can correct the situation and try again without
378
+ * having to manually clear out the context key using `cdk context --remove`
379
+ *
380
+ * If the value of * `ignoreErrorOnMissingContext` is `true`, the value of
381
+ * `expectedMatchCount` is `at-least-one | exactly-one` and the number
382
+ * of found resources is 0, `dummyValue` is returned and committed to context
383
+ * instead.
384
+ *
385
+ * @default 'any'
386
+ */
387
+ readonly expectedMatchCount?: 'any' | 'at-least-one' | 'at-most-one' | 'exactly-one';
369
388
  /**
370
389
  * The value to return if the resource was not found and `ignoreErrorOnMissingContext` is true.
371
390
  *
@@ -384,8 +403,8 @@ export interface CcApiContextQuery extends ContextLookupRoleOptions {
384
403
  *
385
404
  * - In case of an `exactIdentifier` lookup, return the `dummyValue` if the resource with
386
405
  * that identifier was not found.
387
- * - In case of a `propertyMatch` lookup, this setting currently does not have any effect,
388
- * as `propertyMatch` queries can legally return 0 resources.
406
+ * - In case of a `propertyMatch` lookup, return the `dummyValue` if `expectedMatchCount`
407
+ * is `at-least-one | exactly-one` and the number of resources found was 0.
389
408
  *
390
409
  * if `ignoreErrorOnMissingContext` is set, `dummyValue` should be set and be an array.
391
410
  *
@@ -99,4 +99,4 @@ var LoadBalancerListenerProtocol;
99
99
  * */
100
100
  LoadBalancerListenerProtocol["TCP_UDP"] = "TCP_UDP";
101
101
  })(LoadBalancerListenerProtocol || (exports.LoadBalancerListenerProtocol = LoadBalancerListenerProtocol = {}));
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1xdWVyaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29udGV4dC1xdWVyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOztHQUVHO0FBQ0gsSUFBWSxlQTREWDtBQTVERCxXQUFZLGVBQWU7SUFDekI7O09BRUc7SUFDSCx1Q0FBb0IsQ0FBQTtJQUVwQjs7T0FFRztJQUNILG9FQUFpRCxDQUFBO0lBRWpEOztPQUVHO0lBQ0gsdURBQW9DLENBQUE7SUFFcEM7O09BRUc7SUFDSCxpREFBOEIsQ0FBQTtJQUU5Qjs7T0FFRztJQUNILGdEQUE2QixDQUFBO0lBRTdCOztPQUVHO0lBQ0gsc0dBQW1GLENBQUE7SUFFbkY7O09BRUc7SUFDSCwyREFBd0MsQ0FBQTtJQUV4Qzs7T0FFRztJQUNILDZFQUEwRCxDQUFBO0lBRTFEOztPQUVHO0lBQ0gsNkRBQTBDLENBQUE7SUFFMUM7O09BRUc7SUFDSCxnREFBNkIsQ0FBQTtJQUU3Qjs7T0FFRztJQUNILHNEQUFtQyxDQUFBO0lBRW5DOztPQUVHO0lBQ0gsb0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQTVEVyxlQUFlLCtCQUFmLGVBQWUsUUE0RDFCO0FBMEpEOztHQUVHO0FBQ0gsSUFBWSxnQkFVWDtBQVZELFdBQVksZ0JBQWdCO0lBQzFCOztPQUVHO0lBQ0gsdUNBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCwrQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBVlcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFVM0I7QUE4QkQ7O0dBRUc7QUFDSCxJQUFZLDRCQThCWDtBQTlCRCxXQUFZLDRCQUE0QjtJQUN0Qzs7T0FFRztJQUNILDZDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILCtDQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDJDQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJDQUFXLENBQUE7SUFFWDs7U0FFSztJQUNMLDJDQUFXLENBQUE7SUFFWDs7U0FFSztJQUNMLG1EQUFtQixDQUFBO0FBQ3JCLENBQUMsRUE5QlcsNEJBQTRCLDRDQUE1Qiw0QkFBNEIsUUE4QnZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUYWcgfSBmcm9tICcuL21ldGFkYXRhLXNjaGVtYSc7XG5cbi8qKlxuICogSWRlbnRpZmllciBmb3IgdGhlIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGVudW0gQ29udGV4dFByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIEFNSSBwcm92aWRlclxuICAgKi9cbiAgQU1JX1BST1ZJREVSID0gJ2FtaScsXG5cbiAgLyoqXG4gICAqIEFaIHByb3ZpZGVyXG4gICAqL1xuICBBVkFJTEFCSUxJVFlfWk9ORV9QUk9WSURFUiA9ICdhdmFpbGFiaWxpdHktem9uZXMnLFxuXG4gIC8qKlxuICAgKiBSb3V0ZTUzIEhvc3RlZCBab25lIHByb3ZpZGVyXG4gICAqL1xuICBIT1NURURfWk9ORV9QUk9WSURFUiA9ICdob3N0ZWQtem9uZScsXG5cbiAgLyoqXG4gICAqIFNTTSBQYXJhbWV0ZXIgUHJvdmlkZXJcbiAgICovXG4gIFNTTV9QQVJBTUVURVJfUFJPVklERVIgPSAnc3NtJyxcblxuICAvKipcbiAgICogVlBDIFByb3ZpZGVyXG4gICAqL1xuICBWUENfUFJPVklERVIgPSAndnBjLXByb3ZpZGVyJyxcblxuICAvKipcbiAgICogVlBDIEVuZHBvaW50IFNlcnZpY2UgQVogUHJvdmlkZXJcbiAgICovXG4gIEVORFBPSU5UX1NFUlZJQ0VfQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVIgPSAnZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnLFxuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyIHByb3ZpZGVyXG4gICAqL1xuICBMT0FEX0JBTEFOQ0VSX1BST1ZJREVSID0gJ2xvYWQtYmFsYW5jZXInLFxuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyIGxpc3RlbmVyIHByb3ZpZGVyXG4gICAqL1xuICBMT0FEX0JBTEFOQ0VSX0xJU1RFTkVSX1BST1ZJREVSID0gJ2xvYWQtYmFsYW5jZXItbGlzdGVuZXInLFxuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBwcm92aWRlclxuICAgKi9cbiAgU0VDVVJJVFlfR1JPVVBfUFJPVklERVIgPSAnc2VjdXJpdHktZ3JvdXAnLFxuXG4gIC8qKlxuICAgKiBLTVMgS2V5IFByb3ZpZGVyXG4gICAqL1xuICBLRVlfUFJPVklERVIgPSAna2V5LXByb3ZpZGVyJyxcblxuICAvKipcbiAgICogQ0NBUEkgUHJvdmlkZXJcbiAgICovXG4gIENDX0FQSV9QUk9WSURFUiA9ICdjYy1hcGktcHJvdmlkZXInLFxuXG4gIC8qKlxuICAgKiBBIHBsdWdpbiBwcm92aWRlciAodGhlIGFjdHVhbCBwbHVnaW4gbmFtZSB3aWxsIGJlIGluIHRoZSBwcm9wZXJ0aWVzKVxuICAgKi9cbiAgUExVR0lOID0gJ3BsdWdpbicsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29udGV4dCBsb29rdXAgcm9sZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFF1ZXJ5IGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblxuICAvKipcbiAgICogUXVlcnkgcmVnaW9uXG4gICAqL1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgcm9sZSB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGxvb2sgdXAgdGhlIG1pc3NpbmcgdmFsdWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEV4dGVybmFsSWQgdGhhdCBuZWVkcyB0byBiZSBzdXBwbGllZCB3aGlsZSBhc3N1bWluZyB0aGlzIHJvbGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBFeHRlcm5hbElkIHdpbGwgYmUgc3VwcGxpZWRcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFJvbGVFeHRlcm5hbElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG9wdGlvbnMgdG8gcGFzcyB0byBTVFMgd2hlbiBhc3N1bWluZyB0aGUgbG9va3VwIHJvbGUuXG4gICAqXG4gICAqIC0gYFJvbGVBcm5gIHNob3VsZCBub3QgYmUgdXNlZC4gVXNlIHRoZSBkZWRpY2F0ZWQgYGxvb2t1cFJvbGVBcm5gIHByb3BlcnR5IGluc3RlYWQuXG4gICAqIC0gYEV4dGVybmFsSWRgIHNob3VsZCBub3QgYmUgdXNlZC4gVXNlIHRoZSBkZWRpY2F0ZWQgYGxvb2t1cFJvbGVFeHRlcm5hbElkYCBpbnN0ZWFkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvU1RTLmh0bWwjYXNzdW1lUm9sZS1wcm9wZXJ0eVxuICAgKiBAZGVmYXVsdCAtIE5vIGFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG5cbi8qKlxuICogUXVlcnkgdG8gQU1JIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbWlDb250ZXh0UXVlcnkgZXh0ZW5kcyBDb250ZXh0TG9va3VwUm9sZU9wdGlvbnMge1xuICAvKipcbiAgICogT3duZXJzIHRvIERlc2NyaWJlSW1hZ2VzIGNhbGxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgb3duZXJzXG4gICAqL1xuICByZWFkb25seSBvd25lcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRmlsdGVycyB0byBEZXNjcmliZUltYWdlcyBjYWxsXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH07XG59XG5cbi8qKlxuICogUXVlcnkgdG8gYXZhaWxhYmlsaXR5IHpvbmUgY29udGV4dCBwcm92aWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJpbGl0eVpvbmVzQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbn1cblxuLyoqXG4gKiBRdWVyeSB0byBob3N0ZWQgem9uZSBjb250ZXh0IHByb3ZpZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG9zdGVkWm9uZUNvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZG9tYWluIG5hbWUgZS5nLiBleGFtcGxlLmNvbSB0byBsb29rdXBcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVHJ1ZSBpZiB0aGUgem9uZSB5b3Ugd2FudCB0byBmaW5kIGlzIGEgcHJpdmF0ZSBob3N0ZWQgem9uZVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVpvbmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIElEIHRvIHRoYXQgdGhlIHByaXZhdGUgem9uZSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aFxuICAgKlxuICAgKiBJZiB5b3UgcHJvdmlkZSBWUEMgSUQgYW5kIHByaXZhdGVab25lIGlzIGZhbHNlLCB0aGlzIHdpbGwgcmV0dXJuIG5vIHJlc3VsdHNcbiAgICogYW5kIHJhaXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJlcXVpcmVkIGlmIHByaXZhdGVab25lPXRydWVcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IHRvIFNTTSBQYXJhbWV0ZXIgQ29udGV4dCBQcm92aWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNTTVBhcmFtZXRlckNvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQYXJhbWV0ZXIgbmFtZSB0byBxdWVyeVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVyTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgVlBDXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbHRlcnMgdG8gYXBwbHkgdG8gdGhlIFZQQ1xuICAgKlxuICAgKiBGaWx0ZXIgcGFyYW1ldGVycyBhcmUgdGhlIHNhbWUgYXMgcGFzc2VkIHRvIERlc2NyaWJlVnBjcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlVnBjcy5odG1sXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXI6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcG9wdWxhdGUgdGhlIHN1Ym5ldEdyb3VwcyBmaWVsZCBvZiB0aGUgYFZwY0NvbnRleHRSZXNwb25zZWAsXG4gICAqIHdoaWNoIGNvbnRhaW5zIHBvdGVudGlhbGx5IGFzeW1tZXRyaWMgc3VibmV0IGdyb3Vwcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJldHVybkFzeW1tZXRyaWNTdWJuZXRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdGFnIGZvciBzdWJuZXQgZ3JvdXAgbmFtZS5cbiAgICogSWYgbm90IHByb3ZpZGVkLCB3ZSdsbCBsb29rIGF0IHRoZSBhd3MtY2RrOnN1Ym5ldC1uYW1lIHRhZy5cbiAgICogSWYgdGhlIHN1Ym5ldCBkb2VzIG5vdCBoYXZlIHRoZSBzcGVjaWZpZWQgdGFnLFxuICAgKiB3ZSdsbCB1c2UgaXRzIHR5cGUgYXMgdGhlIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhd3MtY2RrOnN1Ym5ldC1uYW1lJ1xuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0R3JvdXBOYW1lVGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHBvcHVsYXRlIHRoZSBgdnBuR2F0ZXdheUlkYCBmaWVsZCBvZiB0aGUgYFZwY0NvbnRleHRSZXNwb25zZWAsXG4gICAqIHdoaWNoIGNvbnRhaW5zIHRoZSBWUE4gR2F0ZXdheSBJRCwgaWYgb25lIGV4aXN0cy4gWW91IGNhbiBleHBsaWNpdGx5XG4gICAqIGRpc2FibGUgdGhpcyBpbiBvcmRlciB0byBhdm9pZCB0aGUgbG9va3VwIGlmIHlvdSBrbm93IHRoZSBWUEMgZG9lcyBub3QgaGF2ZVxuICAgKiBhIFZQTiBHYXR3YXkgYXR0YWNoZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJldHVyblZwbkdhdGV3YXlzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBRdWVyeSB0byBlbmRwb2ludCBzZXJ2aWNlIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBRdWVyeSBzZXJ2aWNlIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHlwZSBvZiBsb2FkIGJhbGFuY2VyXG4gKi9cbmV4cG9ydCBlbnVtIExvYWRCYWxhbmNlclR5cGUge1xuICAvKipcbiAgICogTmV0d29yayBsb2FkIGJhbGFuY2VyXG4gICAqL1xuICBORVRXT1JLID0gJ25ldHdvcmsnLFxuXG4gIC8qKlxuICAgKiBBcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VyXG4gICAqL1xuICBBUFBMSUNBVElPTiA9ICdhcHBsaWNhdGlvbicsXG59XG5cbi8qKlxuICogRmlsdGVycyBmb3Igc2VsZWN0aW5nIGxvYWQgYmFsYW5jZXJzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyRmlsdGVyIGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbHRlciBsb2FkIGJhbGFuY2VycyBieSB0aGVpciB0eXBlXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJUeXBlOiBMb2FkQmFsYW5jZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBGaW5kIGJ5IGxvYWQgYmFsYW5jZXIncyBBUk5cbiAgICogQGRlZmF1bHQgLSBkb2VzIG5vdCBzZWFyY2ggYnkgbG9hZCBiYWxhbmNlciBhcm5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckFybj86IHN0cmluZztcblxuICAvKipcbiAgICogTWF0Y2ggbG9hZCBiYWxhbmNlciB0YWdzXG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgbWF0Y2ggbG9hZCBiYWxhbmNlcnMgYnkgdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyVGFncz86IFRhZ1tdO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgbG9hZCBiYWxhbmNlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlckNvbnRleHRRdWVyeSBleHRlbmRzIExvYWRCYWxhbmNlckZpbHRlciB7XG59XG5cbi8qKlxuICogVGhlIHByb3RvY29sIGZvciBjb25uZWN0aW9ucyBmcm9tIGNsaWVudHMgdG8gdGhlIGxvYWQgYmFsYW5jZXJcbiAqL1xuZXhwb3J0IGVudW0gTG9hZEJhbGFuY2VyTGlzdGVuZXJQcm90b2NvbCB7XG4gIC8qKlxuICAgKiBIVFRQIHByb3RvY29sXG4gICAqL1xuICBIVFRQID0gJ0hUVFAnLFxuXG4gIC8qKlxuICAgKiBIVFRQUyBwcm90b2NvbFxuICAgKi9cbiAgSFRUUFMgPSAnSFRUUFMnLFxuXG4gIC8qKlxuICAgKiBUQ1AgcHJvdG9jb2xcbiAgICovXG4gIFRDUCA9ICdUQ1AnLFxuXG4gIC8qKlxuICAgKiBUTFMgcHJvdG9jb2xcbiAgICovXG4gIFRMUyA9ICdUTFMnLFxuXG4gIC8qKlxuICAgKiBVRFAgcHJvdG9jb2xcbiAgICogKi9cbiAgVURQID0gJ1VEUCcsXG5cbiAgLyoqXG4gICAqIFRDUCBhbmQgVURQIHByb3RvY29sXG4gICAqICovXG4gIFRDUF9VRFAgPSAnVENQX1VEUCcsXG59XG5cbi8qKlxuICogUXVlcnkgaW5wdXQgZm9yIGxvb2tpbmcgdXAgYSBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UXVlcnkgZXh0ZW5kcyBMb2FkQmFsYW5jZXJGaWx0ZXIge1xuICAvKipcbiAgICogRmluZCBieSBsaXN0ZW5lcidzIGFyblxuICAgKiBAZGVmYXVsdCAtIGRvZXMgbm90IGZpbmQgYnkgbGlzdGVuZXIgYXJuXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lckFybj86IHN0cmluZztcblxuICAvKipcbiAgICogRmlsdGVyIGJ5IGxpc3RlbmVyIHByb3RvY29sXG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgZmlsdGVyIGJ5IGxpc3RlbmVyIHByb3RvY29sXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lclByb3RvY29sPzogTG9hZEJhbGFuY2VyTGlzdGVuZXJQcm90b2NvbDtcblxuICAvKipcbiAgICogRmlsdGVyIGxpc3RlbmVycyBieSBsaXN0ZW5lciBwb3J0XG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgZmlsdGVyIGJ5IGEgbGlzdGVuZXIgcG9ydFxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXJQb3J0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgc2VjdXJpdHkgZ3JvdXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eUdyb3VwQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNlY3VyaXR5IGdyb3VwIGlkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBuYW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZQQyBJRFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgS01TIEtleVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleUNvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbGlhcyBuYW1lIHVzZWQgdG8gc2VhcmNoIHRoZSBLZXlcbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29rdXAgdXAgQ2xvdWRmb3JtYXRpb24gcmVzb3VyY2VzIHVzaW5nIENDIEFQSVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENjQXBpQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBDbG91ZGZvcm1hdGlvbiByZXNvdXJjZSB0eXBlLlxuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nsb3VkY29udHJvbGFwaS9sYXRlc3QvdXNlcmd1aWRlL3N1cHBvcnRlZC1yZXNvdXJjZXMuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UgdG8gbG9vayB1cCB1c2luZyBgR2V0UmVzb3VyY2VgLlxuICAgKlxuICAgKiBTcGVjaWZ5aW5nIGV4YWN0SWRlbnRpZmllciB3aWxsIHJldHVybiBleGFjdGx5IG9uZSByZXN1bHQsIG9yIHRocm93IGFuIGVycm9yLlxuICAgKlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEVpdGhlciBleGFjdElkZW50aWZpZXIgb3IgcHJvcGVydHlNYXRjaCBzaG91bGQgYmUgc3BlY2lmaWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhhY3RJZGVudGlmaWVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFueSByZXNvdXJjZXMgbWF0Y2hpbmcgdGhlc2UgcHJvcGVydGllcywgdXNpbmcgYExpc3RSZXNvdXJjZXNgLlxuICAgKlxuICAgKiBTcGVjaWZ5aW5nIHByb3BlcnR5TWF0Y2ggd2lsbCByZXR1cm4gMCBvciBtb3JlIHJlc3VsdHMuXG4gICAqXG4gICAqICMjIE5vdGVzIG9uIHByb3BlcnR5IGNvbXBsZXRlbmVzc1xuICAgKlxuICAgKiBDbG91ZENvbnRyb2wgQVBJJ3MgYExpc3RSZXNvdXJjZXNgIG1heSByZXR1cm4gZmV3ZXIgcHJvcGVydGllcyB0aGFuXG4gICAqIGBHZXRSZXNvdXJjZWAgd291bGQsIGRlcGVuZGluZyBvbiB0aGUgcmVzb3VyY2UgaW1wbGVtZW50YXRpb24uXG4gICAqXG4gICAqIFRoZSByZXNvdXJjZXMgdGhhdCBgcHJvcGVydHlNYXRjaGAgbWF0Y2hlcyBhZ2FpbnN0IHdpbGwgKm9ubHkgZXZlciogYmUgdGhlXG4gICAqIHByb3BlcnRpZXMgcmV0dXJuZWQgYnkgdGhlIGBMaXN0UmVzb3VyY2VzYCBjYWxsLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEVpdGhlciBleGFjdElkZW50aWZpZXIgb3IgcHJvcGVydHlNYXRjaCBzaG91bGQgYmUgc3BlY2lmaWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydHlNYXRjaD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgc2V0IG9mIHByb3BlcnRpZXMgcmV0dXJuZWQgZnJvbSBDQyBBUEkgdGhhdCB3ZSB3YW50IHRvIHJldHVybiBmcm9tIENvbnRleHRRdWVyeS5cbiAgICpcbiAgICogSWYgYW55IHByb3BlcnRpZXMgbGlzdGVkIGhlcmUgYXJlIGFic2VudCBmcm9tIHRoZSB0YXJnZXQgcmVzb3VyY2UsIGFuIGVycm9yIHdpbGwgYmUgdGhyb3duLlxuICAgKlxuICAgKiBUaGUgcmV0dXJuZWQgb2JqZWN0IHdpbGwgYWx3YXlzIGluY2x1ZGUgdGhlIGtleSBgSWRlbnRpZmllcmAgd2l0aCB0aGUgQ0MtQVBJIHJldHVybmVkXG4gICAqIGZpZWxkIGBJZGVudGlmaWVyYC5cbiAgICpcbiAgICogIyMgTm90ZXMgb24gcHJvcGVydHkgY29tcGxldGVuZXNzXG4gICAqXG4gICAqIENsb3VkQ29udHJvbCBBUEkncyBgTGlzdFJlc291cmNlc2AgbWF5IHJldHVybiBmZXdlciBwcm9wZXJ0aWVzIHRoYW5cbiAgICogYEdldFJlc291cmNlYCB3b3VsZCwgZGVwZW5kaW5nIG9uIHRoZSByZXNvdXJjZSBpbXBsZW1lbnRhdGlvbi5cbiAgICpcbiAgICogVGhlIHJldHVybmVkIHByb3BlcnRpZXMgaGVyZSBhcmUgKmN1cnJlbnRseSogc2VsZWN0ZWQgZnJvbSB0aGUgcmVzcG9uc2VcbiAgICogb2JqZWN0IHRoYXQgQ2xvdWRDb250cm9sIEFQSSByZXR1cm5zIHRvIHRoZSBDREsgQ0xJLlxuICAgKlxuICAgKiBIb3dldmVyLCBpZiB3ZSBmaW5kIHRoZXJlIGlzIG5lZWQgdG8gZG8gc28sIHdlIG1heSBkZWNpZGUgdG8gY2hhbmdlIHRoaXNcbiAgICogYmVoYXZpb3IgaW4gdGhlIGZ1dHVyZTogd2UgbWlnaHQgY2hhbmdlIGl0IHRvIHBlcmZvcm0gYW4gYWRkaXRpb25hbFxuICAgKiBgR2V0UmVzb3VyY2VgIGNhbGwgZm9yIHJlc291cmNlcyBtYXRjaGVkIGJ5IGBwcm9wZXJ0eU1hdGNoYC5cbiAgICovXG4gIHJlYWRvbmx5IHByb3BlcnRpZXNUb1JldHVybjogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSB0byByZXR1cm4gaWYgdGhlIHJlc291cmNlIHdhcyBub3QgZm91bmQgYW5kIGBpZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHRgIGlzIHRydWUuXG4gICAqXG4gICAqIElmIHN1cHBsaWVkLCBgZHVtbXlWYWx1ZWAgc2hvdWxkIGJlIGFuIGFycmF5IG9mIG9iamVjdHMuXG4gICAqXG4gICAqIGBkdW1teVZhbHVlYCBkb2VzIG5vdCBoYXZlIHRvIGhhdmUgZWxlbWVudHMsIGFuZCBpdCBtYXkgaGF2ZSBvYmplY3RzIHdpdGhcbiAgICogZGlmZmVyZW50IHByb3BlcnRpZXMgdGhhbiB0aGUgcHJvcGVydGllcyBpbiBgcHJvcGVydGllc1RvUmV0dXJuYCwgYnV0IGl0XG4gICAqIHdpbGwgYmUgZWFzaWVzdCBmb3IgZG93bnN0cmVhbSBjb2RlIGlmIHRoZSBgZHVtbXlWYWx1ZWAgY29uZm9ybXMgdG9cbiAgICogdGhlIGV4cGVjdGVkIHJlc3BvbnNlIHNoYXBlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGR1bW15IHZhbHVlIGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZHVtbXlWYWx1ZT86IGFueTtcblxuICAvKipcbiAgICogSWdub3JlIGFuIGVycm9yIGFuZCByZXR1cm4gdGhlIGBkdW1teVZhbHVlYCBpbnN0ZWFkIGlmIHRoZSByZXNvdXJjZSB3YXMgbm90IGZvdW5kLlxuICAgKlxuICAgKiAtIEluIGNhc2Ugb2YgYW4gYGV4YWN0SWRlbnRpZmllcmAgbG9va3VwLCByZXR1cm4gdGhlIGBkdW1teVZhbHVlYCBpZiB0aGUgcmVzb3VyY2Ugd2l0aFxuICAgKiAgIHRoYXQgaWRlbnRpZmllciB3YXMgbm90IGZvdW5kLlxuICAgKiAtIEluIGNhc2Ugb2YgYSBgcHJvcGVydHlNYXRjaGAgbG9va3VwLCB0aGlzIHNldHRpbmcgY3VycmVudGx5IGRvZXMgbm90IGhhdmUgYW55IGVmZmVjdCxcbiAgICogICBhcyBgcHJvcGVydHlNYXRjaGAgcXVlcmllcyBjYW4gbGVnYWxseSByZXR1cm4gMCByZXNvdXJjZXMuXG4gICAqXG4gICAqIGlmIGBpZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHRgIGlzIHNldCwgYGR1bW15VmFsdWVgIHNob3VsZCBiZSBzZXQgYW5kIGJlIGFuIGFycmF5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlRXJyb3JPbk1pc3NpbmdDb250ZXh0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBRdWVyeSBpbnB1dCBmb3IgcGx1Z2luc1xuICpcbiAqIFRoaXMgYWx0ZXJuYXRlIGJyYW5jaCBpcyBuZWNlc3NhcnkgYmVjYXVzZSBpdCBuZWVkcyB0byBiZSBhYmxlIHRvIGVzY2FwZSBhbGwgdHlwZSBjaGVja2luZ1xuICogd2UgZG8gb24gb24gdGhlIGNsb3VkIGFzc2VtYmx5IC0tIHdlIGNhbm5vdCBrbm93IHRoZSBwcm9wZXJ0aWVzIHRoYXQgd2lsbCBiZSB1c2VkIGEgcHJpb3JpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkNvbnRleHRRdWVyeSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcGx1Z2luXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFyYml0cmFyeSBvdGhlciBhcmd1bWVudHMgZm9yIHRoZSBwbHVnaW4uXG4gICAqXG4gICAqIFRoaXMgaW5kZXggc2lnbmF0dXJlIGlzIG5vdCB1c2FibGUgaW4gbm9uLVR5cGVTY3JpcHQvSmF2YVNjcmlwdCBsYW5ndWFnZXMuXG4gICAqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgdHlwZSBDb250ZXh0UXVlcnlQcm9wZXJ0aWVzID1cbiAgfCBBbWlDb250ZXh0UXVlcnlcbiAgfCBBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeVxuICB8IEhvc3RlZFpvbmVDb250ZXh0UXVlcnlcbiAgfCBTU01QYXJhbWV0ZXJDb250ZXh0UXVlcnlcbiAgfCBWcGNDb250ZXh0UXVlcnlcbiAgfCBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeVxuICB8IExvYWRCYWxhbmNlckNvbnRleHRRdWVyeVxuICB8IExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFF1ZXJ5XG4gIHwgU2VjdXJpdHlHcm91cENvbnRleHRRdWVyeVxuICB8IEtleUNvbnRleHRRdWVyeVxuICB8IENjQXBpQ29udGV4dFF1ZXJ5XG4gIHwgUGx1Z2luQ29udGV4dFF1ZXJ5O1xuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1xdWVyaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29udGV4dC1xdWVyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBOztHQUVHO0FBQ0gsSUFBWSxlQTREWDtBQTVERCxXQUFZLGVBQWU7SUFDekI7O09BRUc7SUFDSCx1Q0FBb0IsQ0FBQTtJQUVwQjs7T0FFRztJQUNILG9FQUFpRCxDQUFBO0lBRWpEOztPQUVHO0lBQ0gsdURBQW9DLENBQUE7SUFFcEM7O09BRUc7SUFDSCxpREFBOEIsQ0FBQTtJQUU5Qjs7T0FFRztJQUNILGdEQUE2QixDQUFBO0lBRTdCOztPQUVHO0lBQ0gsc0dBQW1GLENBQUE7SUFFbkY7O09BRUc7SUFDSCwyREFBd0MsQ0FBQTtJQUV4Qzs7T0FFRztJQUNILDZFQUEwRCxDQUFBO0lBRTFEOztPQUVHO0lBQ0gsNkRBQTBDLENBQUE7SUFFMUM7O09BRUc7SUFDSCxnREFBNkIsQ0FBQTtJQUU3Qjs7T0FFRztJQUNILHNEQUFtQyxDQUFBO0lBRW5DOztPQUVHO0lBQ0gsb0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQTVEVyxlQUFlLCtCQUFmLGVBQWUsUUE0RDFCO0FBMEpEOztHQUVHO0FBQ0gsSUFBWSxnQkFVWDtBQVZELFdBQVksZ0JBQWdCO0lBQzFCOztPQUVHO0lBQ0gsdUNBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCwrQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBVlcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFVM0I7QUE4QkQ7O0dBRUc7QUFDSCxJQUFZLDRCQThCWDtBQTlCRCxXQUFZLDRCQUE0QjtJQUN0Qzs7T0FFRztJQUNILDZDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILCtDQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDJDQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILDJDQUFXLENBQUE7SUFFWDs7U0FFSztJQUNMLDJDQUFXLENBQUE7SUFFWDs7U0FFSztJQUNMLG1EQUFtQixDQUFBO0FBQ3JCLENBQUMsRUE5QlcsNEJBQTRCLDRDQUE1Qiw0QkFBNEIsUUE4QnZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUYWcgfSBmcm9tICcuL21ldGFkYXRhLXNjaGVtYSc7XG5cbi8qKlxuICogSWRlbnRpZmllciBmb3IgdGhlIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGVudW0gQ29udGV4dFByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIEFNSSBwcm92aWRlclxuICAgKi9cbiAgQU1JX1BST1ZJREVSID0gJ2FtaScsXG5cbiAgLyoqXG4gICAqIEFaIHByb3ZpZGVyXG4gICAqL1xuICBBVkFJTEFCSUxJVFlfWk9ORV9QUk9WSURFUiA9ICdhdmFpbGFiaWxpdHktem9uZXMnLFxuXG4gIC8qKlxuICAgKiBSb3V0ZTUzIEhvc3RlZCBab25lIHByb3ZpZGVyXG4gICAqL1xuICBIT1NURURfWk9ORV9QUk9WSURFUiA9ICdob3N0ZWQtem9uZScsXG5cbiAgLyoqXG4gICAqIFNTTSBQYXJhbWV0ZXIgUHJvdmlkZXJcbiAgICovXG4gIFNTTV9QQVJBTUVURVJfUFJPVklERVIgPSAnc3NtJyxcblxuICAvKipcbiAgICogVlBDIFByb3ZpZGVyXG4gICAqL1xuICBWUENfUFJPVklERVIgPSAndnBjLXByb3ZpZGVyJyxcblxuICAvKipcbiAgICogVlBDIEVuZHBvaW50IFNlcnZpY2UgQVogUHJvdmlkZXJcbiAgICovXG4gIEVORFBPSU5UX1NFUlZJQ0VfQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVIgPSAnZW5kcG9pbnQtc2VydmljZS1hdmFpbGFiaWxpdHktem9uZXMnLFxuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyIHByb3ZpZGVyXG4gICAqL1xuICBMT0FEX0JBTEFOQ0VSX1BST1ZJREVSID0gJ2xvYWQtYmFsYW5jZXInLFxuXG4gIC8qKlxuICAgKiBMb2FkIGJhbGFuY2VyIGxpc3RlbmVyIHByb3ZpZGVyXG4gICAqL1xuICBMT0FEX0JBTEFOQ0VSX0xJU1RFTkVSX1BST1ZJREVSID0gJ2xvYWQtYmFsYW5jZXItbGlzdGVuZXInLFxuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBwcm92aWRlclxuICAgKi9cbiAgU0VDVVJJVFlfR1JPVVBfUFJPVklERVIgPSAnc2VjdXJpdHktZ3JvdXAnLFxuXG4gIC8qKlxuICAgKiBLTVMgS2V5IFByb3ZpZGVyXG4gICAqL1xuICBLRVlfUFJPVklERVIgPSAna2V5LXByb3ZpZGVyJyxcblxuICAvKipcbiAgICogQ0NBUEkgUHJvdmlkZXJcbiAgICovXG4gIENDX0FQSV9QUk9WSURFUiA9ICdjYy1hcGktcHJvdmlkZXInLFxuXG4gIC8qKlxuICAgKiBBIHBsdWdpbiBwcm92aWRlciAodGhlIGFjdHVhbCBwbHVnaW4gbmFtZSB3aWxsIGJlIGluIHRoZSBwcm9wZXJ0aWVzKVxuICAgKi9cbiAgUExVR0lOID0gJ3BsdWdpbicsXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29udGV4dCBsb29rdXAgcm9sZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFF1ZXJ5IGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblxuICAvKipcbiAgICogUXVlcnkgcmVnaW9uXG4gICAqL1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgcm9sZSB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGxvb2sgdXAgdGhlIG1pc3NpbmcgdmFsdWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEV4dGVybmFsSWQgdGhhdCBuZWVkcyB0byBiZSBzdXBwbGllZCB3aGlsZSBhc3N1bWluZyB0aGlzIHJvbGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBFeHRlcm5hbElkIHdpbGwgYmUgc3VwcGxpZWRcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFJvbGVFeHRlcm5hbElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG9wdGlvbnMgdG8gcGFzcyB0byBTVFMgd2hlbiBhc3N1bWluZyB0aGUgbG9va3VwIHJvbGUuXG4gICAqXG4gICAqIC0gYFJvbGVBcm5gIHNob3VsZCBub3QgYmUgdXNlZC4gVXNlIHRoZSBkZWRpY2F0ZWQgYGxvb2t1cFJvbGVBcm5gIHByb3BlcnR5IGluc3RlYWQuXG4gICAqIC0gYEV4dGVybmFsSWRgIHNob3VsZCBub3QgYmUgdXNlZC4gVXNlIHRoZSBkZWRpY2F0ZWQgYGxvb2t1cFJvbGVFeHRlcm5hbElkYCBpbnN0ZWFkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NKYXZhU2NyaXB0U0RLL2xhdGVzdC9BV1MvU1RTLmh0bWwjYXNzdW1lUm9sZS1wcm9wZXJ0eVxuICAgKiBAZGVmYXVsdCAtIE5vIGFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG5cbi8qKlxuICogUXVlcnkgdG8gQU1JIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbWlDb250ZXh0UXVlcnkgZXh0ZW5kcyBDb250ZXh0TG9va3VwUm9sZU9wdGlvbnMge1xuICAvKipcbiAgICogT3duZXJzIHRvIERlc2NyaWJlSW1hZ2VzIGNhbGxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgb3duZXJzXG4gICAqL1xuICByZWFkb25seSBvd25lcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRmlsdGVycyB0byBEZXNjcmliZUltYWdlcyBjYWxsXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH07XG59XG5cbi8qKlxuICogUXVlcnkgdG8gYXZhaWxhYmlsaXR5IHpvbmUgY29udGV4dCBwcm92aWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJpbGl0eVpvbmVzQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbn1cblxuLyoqXG4gKiBRdWVyeSB0byBob3N0ZWQgem9uZSBjb250ZXh0IHByb3ZpZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG9zdGVkWm9uZUNvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZG9tYWluIG5hbWUgZS5nLiBleGFtcGxlLmNvbSB0byBsb29rdXBcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVHJ1ZSBpZiB0aGUgem9uZSB5b3Ugd2FudCB0byBmaW5kIGlzIGEgcHJpdmF0ZSBob3N0ZWQgem9uZVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVpvbmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIElEIHRvIHRoYXQgdGhlIHByaXZhdGUgem9uZSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aFxuICAgKlxuICAgKiBJZiB5b3UgcHJvdmlkZSBWUEMgSUQgYW5kIHByaXZhdGVab25lIGlzIGZhbHNlLCB0aGlzIHdpbGwgcmV0dXJuIG5vIHJlc3VsdHNcbiAgICogYW5kIHJhaXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJlcXVpcmVkIGlmIHByaXZhdGVab25lPXRydWVcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IHRvIFNTTSBQYXJhbWV0ZXIgQ29udGV4dCBQcm92aWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNTTVBhcmFtZXRlckNvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQYXJhbWV0ZXIgbmFtZSB0byBxdWVyeVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVyTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgVlBDXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbHRlcnMgdG8gYXBwbHkgdG8gdGhlIFZQQ1xuICAgKlxuICAgKiBGaWx0ZXIgcGFyYW1ldGVycyBhcmUgdGhlIHNhbWUgYXMgcGFzc2VkIHRvIERlc2NyaWJlVnBjcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlVnBjcy5odG1sXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXI6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcG9wdWxhdGUgdGhlIHN1Ym5ldEdyb3VwcyBmaWVsZCBvZiB0aGUgYFZwY0NvbnRleHRSZXNwb25zZWAsXG4gICAqIHdoaWNoIGNvbnRhaW5zIHBvdGVudGlhbGx5IGFzeW1tZXRyaWMgc3VibmV0IGdyb3Vwcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJldHVybkFzeW1tZXRyaWNTdWJuZXRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdGFnIGZvciBzdWJuZXQgZ3JvdXAgbmFtZS5cbiAgICogSWYgbm90IHByb3ZpZGVkLCB3ZSdsbCBsb29rIGF0IHRoZSBhd3MtY2RrOnN1Ym5ldC1uYW1lIHRhZy5cbiAgICogSWYgdGhlIHN1Ym5ldCBkb2VzIG5vdCBoYXZlIHRoZSBzcGVjaWZpZWQgdGFnLFxuICAgKiB3ZSdsbCB1c2UgaXRzIHR5cGUgYXMgdGhlIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhd3MtY2RrOnN1Ym5ldC1uYW1lJ1xuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0R3JvdXBOYW1lVGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHBvcHVsYXRlIHRoZSBgdnBuR2F0ZXdheUlkYCBmaWVsZCBvZiB0aGUgYFZwY0NvbnRleHRSZXNwb25zZWAsXG4gICAqIHdoaWNoIGNvbnRhaW5zIHRoZSBWUE4gR2F0ZXdheSBJRCwgaWYgb25lIGV4aXN0cy4gWW91IGNhbiBleHBsaWNpdGx5XG4gICAqIGRpc2FibGUgdGhpcyBpbiBvcmRlciB0byBhdm9pZCB0aGUgbG9va3VwIGlmIHlvdSBrbm93IHRoZSBWUEMgZG9lcyBub3QgaGF2ZVxuICAgKiBhIFZQTiBHYXR3YXkgYXR0YWNoZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJldHVyblZwbkdhdGV3YXlzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBRdWVyeSB0byBlbmRwb2ludCBzZXJ2aWNlIGNvbnRleHQgcHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludFNlcnZpY2VBdmFpbGFiaWxpdHlab25lc0NvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBRdWVyeSBzZXJ2aWNlIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHlwZSBvZiBsb2FkIGJhbGFuY2VyXG4gKi9cbmV4cG9ydCBlbnVtIExvYWRCYWxhbmNlclR5cGUge1xuICAvKipcbiAgICogTmV0d29yayBsb2FkIGJhbGFuY2VyXG4gICAqL1xuICBORVRXT1JLID0gJ25ldHdvcmsnLFxuXG4gIC8qKlxuICAgKiBBcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VyXG4gICAqL1xuICBBUFBMSUNBVElPTiA9ICdhcHBsaWNhdGlvbicsXG59XG5cbi8qKlxuICogRmlsdGVycyBmb3Igc2VsZWN0aW5nIGxvYWQgYmFsYW5jZXJzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyRmlsdGVyIGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbHRlciBsb2FkIGJhbGFuY2VycyBieSB0aGVpciB0eXBlXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJUeXBlOiBMb2FkQmFsYW5jZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBGaW5kIGJ5IGxvYWQgYmFsYW5jZXIncyBBUk5cbiAgICogQGRlZmF1bHQgLSBkb2VzIG5vdCBzZWFyY2ggYnkgbG9hZCBiYWxhbmNlciBhcm5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckFybj86IHN0cmluZztcblxuICAvKipcbiAgICogTWF0Y2ggbG9hZCBiYWxhbmNlciB0YWdzXG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgbWF0Y2ggbG9hZCBiYWxhbmNlcnMgYnkgdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyVGFncz86IFRhZ1tdO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgbG9hZCBiYWxhbmNlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlckNvbnRleHRRdWVyeSBleHRlbmRzIExvYWRCYWxhbmNlckZpbHRlciB7XG59XG5cbi8qKlxuICogVGhlIHByb3RvY29sIGZvciBjb25uZWN0aW9ucyBmcm9tIGNsaWVudHMgdG8gdGhlIGxvYWQgYmFsYW5jZXJcbiAqL1xuZXhwb3J0IGVudW0gTG9hZEJhbGFuY2VyTGlzdGVuZXJQcm90b2NvbCB7XG4gIC8qKlxuICAgKiBIVFRQIHByb3RvY29sXG4gICAqL1xuICBIVFRQID0gJ0hUVFAnLFxuXG4gIC8qKlxuICAgKiBIVFRQUyBwcm90b2NvbFxuICAgKi9cbiAgSFRUUFMgPSAnSFRUUFMnLFxuXG4gIC8qKlxuICAgKiBUQ1AgcHJvdG9jb2xcbiAgICovXG4gIFRDUCA9ICdUQ1AnLFxuXG4gIC8qKlxuICAgKiBUTFMgcHJvdG9jb2xcbiAgICovXG4gIFRMUyA9ICdUTFMnLFxuXG4gIC8qKlxuICAgKiBVRFAgcHJvdG9jb2xcbiAgICogKi9cbiAgVURQID0gJ1VEUCcsXG5cbiAgLyoqXG4gICAqIFRDUCBhbmQgVURQIHByb3RvY29sXG4gICAqICovXG4gIFRDUF9VRFAgPSAnVENQX1VEUCcsXG59XG5cbi8qKlxuICogUXVlcnkgaW5wdXQgZm9yIGxvb2tpbmcgdXAgYSBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UXVlcnkgZXh0ZW5kcyBMb2FkQmFsYW5jZXJGaWx0ZXIge1xuICAvKipcbiAgICogRmluZCBieSBsaXN0ZW5lcidzIGFyblxuICAgKiBAZGVmYXVsdCAtIGRvZXMgbm90IGZpbmQgYnkgbGlzdGVuZXIgYXJuXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lckFybj86IHN0cmluZztcblxuICAvKipcbiAgICogRmlsdGVyIGJ5IGxpc3RlbmVyIHByb3RvY29sXG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgZmlsdGVyIGJ5IGxpc3RlbmVyIHByb3RvY29sXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lclByb3RvY29sPzogTG9hZEJhbGFuY2VyTGlzdGVuZXJQcm90b2NvbDtcblxuICAvKipcbiAgICogRmlsdGVyIGxpc3RlbmVycyBieSBsaXN0ZW5lciBwb3J0XG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgZmlsdGVyIGJ5IGEgbGlzdGVuZXIgcG9ydFxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXJQb3J0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgc2VjdXJpdHkgZ3JvdXBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eUdyb3VwQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNlY3VyaXR5IGdyb3VwIGlkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBuYW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZQQyBJRFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29raW5nIHVwIGEgS01TIEtleVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleUNvbnRleHRRdWVyeSBleHRlbmRzIENvbnRleHRMb29rdXBSb2xlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbGlhcyBuYW1lIHVzZWQgdG8gc2VhcmNoIHRoZSBLZXlcbiAgICovXG4gIHJlYWRvbmx5IGFsaWFzTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBsb29rdXAgdXAgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2VzIHVzaW5nIENDIEFQSVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENjQXBpQ29udGV4dFF1ZXJ5IGV4dGVuZHMgQ29udGV4dExvb2t1cFJvbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSB0eXBlLlxuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nsb3VkY29udHJvbGFwaS9sYXRlc3QvdXNlcmd1aWRlL3N1cHBvcnRlZC1yZXNvdXJjZXMuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogSWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UgdG8gbG9vayB1cCB1c2luZyBgR2V0UmVzb3VyY2VgLlxuICAgKlxuICAgKiBTcGVjaWZ5aW5nIGV4YWN0SWRlbnRpZmllciB3aWxsIHJldHVybiBleGFjdGx5IG9uZSByZXN1bHQsIG9yIHRocm93IGFuIGVycm9yXG4gICAqIHVubGVzcyBgaWdub3JlRXJyb3JPbk1pc3NpbmdDb250ZXh0YCBpcyBzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRWl0aGVyIGV4YWN0SWRlbnRpZmllciBvciBwcm9wZXJ0eU1hdGNoIHNob3VsZCBiZSBzcGVjaWZpZWQuXG4gICAqL1xuICByZWFkb25seSBleGFjdElkZW50aWZpZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW55IHJlc291cmNlcyBtYXRjaGluZyB0aGVzZSBwcm9wZXJ0aWVzLCB1c2luZyBgTGlzdFJlc291cmNlc2AuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHNwZWNpZnlpbmcgcHJvcGVydHlNYXRjaCB3aWxsIHN1Y2Nlc3NmdWxseSByZXR1cm4gMCBvciBtb3JlXG4gICAqIHJlc3VsdHMuIFRvIHRocm93IGFuIGVycm9yIGlmIHRoZSBudW1iZXIgb2YgcmVzdWx0cyBpcyB1bmV4cGVjdGVkIChhbmRcbiAgICogcHJldmVudCB0aGUgcXVlcnkgcmVzdWx0cyBmcm9tIGJlaW5nIGNvbW1pdHRlZCB0byBjb250ZXh0KSwgc3BlY2lmeVxuICAgKiBgZXhwZWN0ZWRNYXRjaENvdW50YC5cbiAgICpcbiAgICogIyMgTm90ZXMgb24gcHJvcGVydHkgY29tcGxldGVuZXNzXG4gICAqXG4gICAqIENsb3VkQ29udHJvbCBBUEkncyBgTGlzdFJlc291cmNlc2AgbWF5IHJldHVybiBmZXdlciBwcm9wZXJ0aWVzIHRoYW5cbiAgICogYEdldFJlc291cmNlYCB3b3VsZCwgZGVwZW5kaW5nIG9uIHRoZSByZXNvdXJjZSBpbXBsZW1lbnRhdGlvbi5cbiAgICpcbiAgICogVGhlIHJlc291cmNlcyB0aGF0IGBwcm9wZXJ0eU1hdGNoYCBtYXRjaGVzIGFnYWluc3Qgd2lsbCAqb25seSBldmVyKiBiZSB0aGVcbiAgICogcHJvcGVydGllcyByZXR1cm5lZCBieSB0aGUgYExpc3RSZXNvdXJjZXNgIGNhbGwuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRWl0aGVyIGV4YWN0SWRlbnRpZmllciBvciBwcm9wZXJ0eU1hdGNoIHNob3VsZCBiZSBzcGVjaWZpZWQuXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0eU1hdGNoPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgYSBzZXQgb2YgcHJvcGVydGllcyByZXR1cm5lZCBmcm9tIENDIEFQSSB0aGF0IHdlIHdhbnQgdG8gcmV0dXJuIGZyb20gQ29udGV4dFF1ZXJ5LlxuICAgKlxuICAgKiBJZiBhbnkgcHJvcGVydGllcyBsaXN0ZWQgaGVyZSBhcmUgYWJzZW50IGZyb20gdGhlIHRhcmdldCByZXNvdXJjZSwgYW4gZXJyb3Igd2lsbCBiZSB0aHJvd24uXG4gICAqXG4gICAqIFRoZSByZXR1cm5lZCBvYmplY3Qgd2lsbCBhbHdheXMgaW5jbHVkZSB0aGUga2V5IGBJZGVudGlmaWVyYCB3aXRoIHRoZSBDQy1BUEkgcmV0dXJuZWRcbiAgICogZmllbGQgYElkZW50aWZpZXJgLlxuICAgKlxuICAgKiAjIyBOb3RlcyBvbiBwcm9wZXJ0eSBjb21wbGV0ZW5lc3NcbiAgICpcbiAgICogQ2xvdWRDb250cm9sIEFQSSdzIGBMaXN0UmVzb3VyY2VzYCBtYXkgcmV0dXJuIGZld2VyIHByb3BlcnRpZXMgdGhhblxuICAgKiBgR2V0UmVzb3VyY2VgIHdvdWxkLCBkZXBlbmRpbmcgb24gdGhlIHJlc291cmNlIGltcGxlbWVudGF0aW9uLlxuICAgKlxuICAgKiBUaGUgcmV0dXJuZWQgcHJvcGVydGllcyBoZXJlIGFyZSAqY3VycmVudGx5KiBzZWxlY3RlZCBmcm9tIHRoZSByZXNwb25zZVxuICAgKiBvYmplY3QgdGhhdCBDbG91ZENvbnRyb2wgQVBJIHJldHVybnMgdG8gdGhlIENESyBDTEkuXG4gICAqXG4gICAqIEhvd2V2ZXIsIGlmIHdlIGZpbmQgdGhlcmUgaXMgbmVlZCB0byBkbyBzbywgd2UgbWF5IGRlY2lkZSB0byBjaGFuZ2UgdGhpc1xuICAgKiBiZWhhdmlvciBpbiB0aGUgZnV0dXJlOiB3ZSBtaWdodCBjaGFuZ2UgaXQgdG8gcGVyZm9ybSBhbiBhZGRpdGlvbmFsXG4gICAqIGBHZXRSZXNvdXJjZWAgY2FsbCBmb3IgcmVzb3VyY2VzIG1hdGNoZWQgYnkgYHByb3BlcnR5TWF0Y2hgLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydGllc1RvUmV0dXJuOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRXhwZWN0ZWQgY291bnQgb2YgcmVzdWx0cyBpZiBgcHJvcGVydHlNYXRjaGAgaXMgc3BlY2lmaWVkLlxuICAgKlxuICAgKiBJZiB0aGUgZXhwZWN0ZWQgcmVzdWx0IGNvdW50IGRvZXMgbm90IG1hdGNoIHRoZSBhY3R1YWwgY291bnQsXG4gICAqIGJ5IGRlZmF1bHQgYW4gZXJyb3IgaXMgcHJvZHVjZWQgYW5kIHRoZSByZXN1bHQgaXMgbm90IGNvbW1pdHRlZCB0byBjYWNoZWRcbiAgICogY29udGV4dCwgYW5kIHRoZSB1c2VyIGNhbiBjb3JyZWN0IHRoZSBzaXR1YXRpb24gYW5kIHRyeSBhZ2FpbiB3aXRob3V0XG4gICAqIGhhdmluZyB0byBtYW51YWxseSBjbGVhciBvdXQgdGhlIGNvbnRleHQga2V5IHVzaW5nIGBjZGsgY29udGV4dCAtLXJlbW92ZWBcbiAgICpcbiAgICogSWYgdGhlIHZhbHVlIG9mICogYGlnbm9yZUVycm9yT25NaXNzaW5nQ29udGV4dGAgaXMgYHRydWVgLCB0aGUgdmFsdWUgb2ZcbiAgICogYGV4cGVjdGVkTWF0Y2hDb3VudGAgaXMgYGF0LWxlYXN0LW9uZSB8IGV4YWN0bHktb25lYCBhbmQgdGhlIG51bWJlclxuICAgKiBvZiBmb3VuZCByZXNvdXJjZXMgaXMgMCwgYGR1bW15VmFsdWVgIGlzIHJldHVybmVkIGFuZCBjb21taXR0ZWQgdG8gY29udGV4dFxuICAgKiBpbnN0ZWFkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnYW55J1xuICAgKi9cbiAgcmVhZG9ubHkgZXhwZWN0ZWRNYXRjaENvdW50PzogJ2FueScgfCAnYXQtbGVhc3Qtb25lJyB8ICdhdC1tb3N0LW9uZScgfCAnZXhhY3RseS1vbmUnO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSByZXNvdXJjZSB3YXMgbm90IGZvdW5kIGFuZCBgaWdub3JlRXJyb3JPbk1pc3NpbmdDb250ZXh0YCBpcyB0cnVlLlxuICAgKlxuICAgKiBJZiBzdXBwbGllZCwgYGR1bW15VmFsdWVgIHNob3VsZCBiZSBhbiBhcnJheSBvZiBvYmplY3RzLlxuICAgKlxuICAgKiBgZHVtbXlWYWx1ZWAgZG9lcyBub3QgaGF2ZSB0byBoYXZlIGVsZW1lbnRzLCBhbmQgaXQgbWF5IGhhdmUgb2JqZWN0cyB3aXRoXG4gICAqIGRpZmZlcmVudCBwcm9wZXJ0aWVzIHRoYW4gdGhlIHByb3BlcnRpZXMgaW4gYHByb3BlcnRpZXNUb1JldHVybmAsIGJ1dCBpdFxuICAgKiB3aWxsIGJlIGVhc2llc3QgZm9yIGRvd25zdHJlYW0gY29kZSBpZiB0aGUgYGR1bW15VmFsdWVgIGNvbmZvcm1zIHRvXG4gICAqIHRoZSBleHBlY3RlZCByZXNwb25zZSBzaGFwZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBkdW1teSB2YWx1ZSBhdmFpbGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGR1bW15VmFsdWU/OiBhbnk7XG5cbiAgLyoqXG4gICAqIElnbm9yZSBhbiBlcnJvciBhbmQgcmV0dXJuIHRoZSBgZHVtbXlWYWx1ZWAgaW5zdGVhZCBpZiB0aGUgcmVzb3VyY2Ugd2FzIG5vdCBmb3VuZC5cbiAgICpcbiAgICogLSBJbiBjYXNlIG9mIGFuIGBleGFjdElkZW50aWZpZXJgIGxvb2t1cCwgcmV0dXJuIHRoZSBgZHVtbXlWYWx1ZWAgaWYgdGhlIHJlc291cmNlIHdpdGhcbiAgICogICB0aGF0IGlkZW50aWZpZXIgd2FzIG5vdCBmb3VuZC5cbiAgICogLSBJbiBjYXNlIG9mIGEgYHByb3BlcnR5TWF0Y2hgIGxvb2t1cCwgcmV0dXJuIHRoZSBgZHVtbXlWYWx1ZWAgaWYgYGV4cGVjdGVkTWF0Y2hDb3VudGBcbiAgICogICBpcyBgYXQtbGVhc3Qtb25lIHwgZXhhY3RseS1vbmVgIGFuZCB0aGUgbnVtYmVyIG9mIHJlc291cmNlcyBmb3VuZCB3YXMgMC5cbiAgICpcbiAgICogaWYgYGlnbm9yZUVycm9yT25NaXNzaW5nQ29udGV4dGAgaXMgc2V0LCBgZHVtbXlWYWx1ZWAgc2hvdWxkIGJlIHNldCBhbmQgYmUgYW4gYXJyYXkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVFcnJvck9uTWlzc2luZ0NvbnRleHQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFF1ZXJ5IGlucHV0IGZvciBwbHVnaW5zXG4gKlxuICogVGhpcyBhbHRlcm5hdGUgYnJhbmNoIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGl0IG5lZWRzIHRvIGJlIGFibGUgdG8gZXNjYXBlIGFsbCB0eXBlIGNoZWNraW5nXG4gKiB3ZSBkbyBvbiBvbiB0aGUgY2xvdWQgYXNzZW1ibHkgLS0gd2UgY2Fubm90IGtub3cgdGhlIHByb3BlcnRpZXMgdGhhdCB3aWxsIGJlIHVzZWQgYSBwcmlvcmkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luQ29udGV4dFF1ZXJ5IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwbHVnaW5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQXJiaXRyYXJ5IG90aGVyIGFyZ3VtZW50cyBmb3IgdGhlIHBsdWdpbi5cbiAgICpcbiAgICogVGhpcyBpbmRleCBzaWduYXR1cmUgaXMgbm90IHVzYWJsZSBpbiBub24tVHlwZVNjcmlwdC9KYXZhU2NyaXB0IGxhbmd1YWdlcy5cbiAgICpcbiAgICogQGpzaWkgaWdub3JlXG4gICAqL1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIENvbnRleHRRdWVyeVByb3BlcnRpZXMgPVxuICB8IEFtaUNvbnRleHRRdWVyeVxuICB8IEF2YWlsYWJpbGl0eVpvbmVzQ29udGV4dFF1ZXJ5XG4gIHwgSG9zdGVkWm9uZUNvbnRleHRRdWVyeVxuICB8IFNTTVBhcmFtZXRlckNvbnRleHRRdWVyeVxuICB8IFZwY0NvbnRleHRRdWVyeVxuICB8IEVuZHBvaW50U2VydmljZUF2YWlsYWJpbGl0eVpvbmVzQ29udGV4dFF1ZXJ5XG4gIHwgTG9hZEJhbGFuY2VyQ29udGV4dFF1ZXJ5XG4gIHwgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UXVlcnlcbiAgfCBTZWN1cml0eUdyb3VwQ29udGV4dFF1ZXJ5XG4gIHwgS2V5Q29udGV4dFF1ZXJ5XG4gIHwgQ2NBcGlDb250ZXh0UXVlcnlcbiAgfCBQbHVnaW5Db250ZXh0UXVlcnk7XG4iXX0=
@@ -89,7 +89,12 @@ export interface ArtifactManifest {
89
89
  */
90
90
  readonly properties?: ArtifactProperties;
91
91
  /**
92
- * A string that represents this artifact. Should only be used in user interfaces.
92
+ * A string that can be shown to a user to uniquely identify this artifact inside a cloud assembly tree
93
+ *
94
+ * Is used by the CLI to present a list of stacks to the user in a way that
95
+ * makes sense to them. Even though the property name "display name" doesn't
96
+ * imply it, this field is used to select stacks as well, so all stacks should
97
+ * have a unique display name.
93
98
  *
94
99
  * @default - no display name
95
100
  */
@@ -27,4 +27,4 @@ var ArtifactType;
27
27
  */
28
28
  ArtifactType["NESTED_CLOUD_ASSEMBLY"] = "cdk:cloud-assembly";
29
29
  })(ArtifactType || (exports.ArtifactType = ArtifactType = {}));
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBOztHQUVHO0FBQ0gsSUFBWSxZQXlCWDtBQXpCRCxXQUFZLFlBQVk7SUFDdEI7O09BRUc7SUFDSCw2QkFBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxxRUFBcUQsQ0FBQTtJQUVyRDs7T0FFRztJQUNILHFDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gscURBQXFDLENBQUE7SUFFckM7O09BRUc7SUFDSCw0REFBNEMsQ0FBQTtBQUM5QyxDQUFDLEVBekJXLFlBQVksNEJBQVosWUFBWSxRQXlCdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFydGlmYWN0UHJvcGVydGllcyB9IGZyb20gJy4vYXJ0aWZhY3Qtc2NoZW1hJztcbmltcG9ydCB0eXBlIHsgQ29udGV4dFByb3ZpZGVyLCBDb250ZXh0UXVlcnlQcm9wZXJ0aWVzIH0gZnJvbSAnLi9jb250ZXh0LXF1ZXJpZXMnO1xuaW1wb3J0IHR5cGUgeyBNZXRhZGF0YUVudHJ5IH0gZnJvbSAnLi9tZXRhZGF0YS1zY2hlbWEnO1xuXG4vKipcbiAqIFR5cGUgb2YgY2xvdWQgYXJ0aWZhY3QuXG4gKi9cbmV4cG9ydCBlbnVtIEFydGlmYWN0VHlwZSB7XG4gIC8qKlxuICAgKiBTdHViIHJlcXVpcmVkIGJlY2F1c2Ugb2YgSlNJSS5cbiAgICovXG4gIE5PTkUgPSAnbm9uZScsIC8vIHJlcXVpcmVkIGR1ZSB0byBhIGpzaWkgYnVnXG5cbiAgLyoqXG4gICAqIFRoZSBhcnRpZmFjdCBpcyBhbiBBV1MgQ2xvdWRGb3JtYXRpb24gc3RhY2suXG4gICAqL1xuICBBV1NfQ0xPVURGT1JNQVRJT05fU1RBQ0sgPSAnYXdzOmNsb3VkZm9ybWF0aW9uOnN0YWNrJyxcblxuICAvKipcbiAgICogVGhlIGFydGlmYWN0IGNvbnRhaW5zIHRoZSBDREsgYXBwbGljYXRpb24ncyBjb25zdHJ1Y3QgdHJlZS5cbiAgICovXG4gIENES19UUkVFID0gJ2Nkazp0cmVlJyxcblxuICAvKipcbiAgICogTWFuaWZlc3QgZm9yIGFsbCBhc3NldHMgaW4gdGhlIENsb3VkIEFzc2VtYmx5XG4gICAqL1xuICBBU1NFVF9NQU5JRkVTVCA9ICdjZGs6YXNzZXQtbWFuaWZlc3QnLFxuXG4gIC8qKlxuICAgKiBOZXN0ZWQgQ2xvdWQgQXNzZW1ibHlcbiAgICovXG4gIE5FU1RFRF9DTE9VRF9BU1NFTUJMWSA9ICdjZGs6Y2xvdWQtYXNzZW1ibHknLFxufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBhcHBsaWNhdGlvbidzIHJ1bnRpbWUgY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBsaWJyYXJpZXMgbG9hZGVkIGluIHRoZSBhcHBsaWNhdGlvbiwgYXNzb2NpYXRlZCB3aXRoIHRoZWlyIHZlcnNpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgbGlicmFyaWVzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWlzc2luZyBwaWVjZSBvZiBjb250ZXh0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pc3NpbmdDb250ZXh0IHtcbiAgLyoqXG4gICAqIFRoZSBtaXNzaW5nIGNvbnRleHQga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBmcm9tIHdoaWNoIHdlIGV4cGVjdCB0aGlzIGNvbnRleHQga2V5IHRvIGJlIG9idGFpbmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXI6IENvbnRleHRQcm92aWRlcjtcblxuICAvKipcbiAgICogQSBzZXQgb2YgcHJvdmlkZXItc3BlY2lmaWMgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IHByb3BzOiBDb250ZXh0UXVlcnlQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIEEgbWFuaWZlc3QgZm9yIGEgc2luZ2xlIGFydGlmYWN0IHdpdGhpbiB0aGUgY2xvdWQgYXNzZW1ibHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWZhY3RNYW5pZmVzdCB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhcnRpZmFjdC5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IEFydGlmYWN0VHlwZTtcblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IGludG8gd2hpY2ggdGhpcyBhcnRpZmFjdCBpcyBkZXBsb3llZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBlbnZyaW9ubWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50Pzogc3RyaW5nOyAvLyBmb3JtYXQ6IGF3czovL2FjY291bnQvcmVnaW9uXG5cbiAgLyoqXG4gICAqIEFzc29jaWF0ZWQgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWV0YWRhdGEuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IHsgW3BhdGg6IHN0cmluZ106IE1ldGFkYXRhRW50cnlbXSB9O1xuXG4gIC8qKlxuICAgKiBJRHMgb2YgYXJ0aWZhY3RzIHRoYXQgbXVzdCBiZSBkZXBsb3llZCBiZWZvcmUgdGhpcyBhcnRpZmFjdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHNldCBvZiBwcm9wZXJ0aWVzIGZvciB0aGlzIGFydGlmYWN0IChkZXBlbmRzIG9uIHR5cGUpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcHJvcGVydGllcy5cbiAgICovXG4gIHJlYWRvbmx5IHByb3BlcnRpZXM/OiBBcnRpZmFjdFByb3BlcnRpZXM7XG5cbiAgLyoqXG4gICAqIEEgc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGlzIGFydGlmYWN0LiBTaG91bGQgb25seSBiZSB1c2VkIGluIHVzZXIgaW50ZXJmYWNlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkaXNwbGF5IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgbWFuaWZlc3Qgd2hpY2ggZGVzY3JpYmVzIHRoZSBjbG91ZCBhc3NlbWJseS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseU1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFByb3RvY29sIHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogUmVxdWlyZWQgQ0xJIHZlcnNpb24sIGlmIGF2YWlsYWJsZVxuICAgKlxuICAgKiBJZiB0aGUgbWFuaWZlc3QgcHJvZHVjZXIga25vd3MsIGl0IGNhbiBwdXQgdGhlIG1pbmltdW0gdmVyc2lvbiBvZiB0aGUgQ0xJXG4gICAqIGhlcmUgdGhhdCBzdXBwb3J0cyByZWFkaW5nIHRoaXMgYXNzZW1ibHkuXG4gICAqXG4gICAqIElmIHNldCwgaXQgY2FuIGJlIHVzZWQgdG8gc2hvdyBhIG1vcmUgaW5mb3JtYXRpdmUgZXJyb3IgbWVzc2FnZSB0byB1c2Vycy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBNaW5pbXVtIENMSSB2ZXJzaW9uIHVua25vd25cbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1DbGlWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2V0IG9mIGFydGlmYWN0cyBpbiB0aGlzIGFzc2VtYmx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IGFydGlmYWN0cz86IHsgW2lkOiBzdHJpbmddOiBBcnRpZmFjdE1hbmlmZXN0IH07XG5cbiAgLyoqXG4gICAqIE1pc3NpbmcgY29udGV4dCBpbmZvcm1hdGlvbi4gSWYgdGhpcyBmaWVsZCBoYXMgdmFsdWVzLCBpdCBtZWFucyB0aGF0IHRoZVxuICAgKiBjbG91ZCBhc3NlbWJseSBpcyBub3QgY29tcGxldGUgYW5kIHNob3VsZCBub3QgYmUgZGVwbG95ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWlzc2luZyBjb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgbWlzc2luZz86IE1pc3NpbmdDb250ZXh0W107XG5cbiAgLyoqXG4gICAqIFJ1bnRpbWUgaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gaW5mby5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU/OiBSdW50aW1lSW5mbztcbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBOztHQUVHO0FBQ0gsSUFBWSxZQXlCWDtBQXpCRCxXQUFZLFlBQVk7SUFDdEI7O09BRUc7SUFDSCw2QkFBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxxRUFBcUQsQ0FBQTtJQUVyRDs7T0FFRztJQUNILHFDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gscURBQXFDLENBQUE7SUFFckM7O09BRUc7SUFDSCw0REFBNEMsQ0FBQTtBQUM5QyxDQUFDLEVBekJXLFlBQVksNEJBQVosWUFBWSxRQXlCdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFydGlmYWN0UHJvcGVydGllcyB9IGZyb20gJy4vYXJ0aWZhY3Qtc2NoZW1hJztcbmltcG9ydCB0eXBlIHsgQ29udGV4dFByb3ZpZGVyLCBDb250ZXh0UXVlcnlQcm9wZXJ0aWVzIH0gZnJvbSAnLi9jb250ZXh0LXF1ZXJpZXMnO1xuaW1wb3J0IHR5cGUgeyBNZXRhZGF0YUVudHJ5IH0gZnJvbSAnLi9tZXRhZGF0YS1zY2hlbWEnO1xuXG4vKipcbiAqIFR5cGUgb2YgY2xvdWQgYXJ0aWZhY3QuXG4gKi9cbmV4cG9ydCBlbnVtIEFydGlmYWN0VHlwZSB7XG4gIC8qKlxuICAgKiBTdHViIHJlcXVpcmVkIGJlY2F1c2Ugb2YgSlNJSS5cbiAgICovXG4gIE5PTkUgPSAnbm9uZScsIC8vIHJlcXVpcmVkIGR1ZSB0byBhIGpzaWkgYnVnXG5cbiAgLyoqXG4gICAqIFRoZSBhcnRpZmFjdCBpcyBhbiBBV1MgQ2xvdWRGb3JtYXRpb24gc3RhY2suXG4gICAqL1xuICBBV1NfQ0xPVURGT1JNQVRJT05fU1RBQ0sgPSAnYXdzOmNsb3VkZm9ybWF0aW9uOnN0YWNrJyxcblxuICAvKipcbiAgICogVGhlIGFydGlmYWN0IGNvbnRhaW5zIHRoZSBDREsgYXBwbGljYXRpb24ncyBjb25zdHJ1Y3QgdHJlZS5cbiAgICovXG4gIENES19UUkVFID0gJ2Nkazp0cmVlJyxcblxuICAvKipcbiAgICogTWFuaWZlc3QgZm9yIGFsbCBhc3NldHMgaW4gdGhlIENsb3VkIEFzc2VtYmx5XG4gICAqL1xuICBBU1NFVF9NQU5JRkVTVCA9ICdjZGs6YXNzZXQtbWFuaWZlc3QnLFxuXG4gIC8qKlxuICAgKiBOZXN0ZWQgQ2xvdWQgQXNzZW1ibHlcbiAgICovXG4gIE5FU1RFRF9DTE9VRF9BU1NFTUJMWSA9ICdjZGs6Y2xvdWQtYXNzZW1ibHknLFxufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBhcHBsaWNhdGlvbidzIHJ1bnRpbWUgY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBsaWJyYXJpZXMgbG9hZGVkIGluIHRoZSBhcHBsaWNhdGlvbiwgYXNzb2NpYXRlZCB3aXRoIHRoZWlyIHZlcnNpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgbGlicmFyaWVzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWlzc2luZyBwaWVjZSBvZiBjb250ZXh0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pc3NpbmdDb250ZXh0IHtcbiAgLyoqXG4gICAqIFRoZSBtaXNzaW5nIGNvbnRleHQga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBmcm9tIHdoaWNoIHdlIGV4cGVjdCB0aGlzIGNvbnRleHQga2V5IHRvIGJlIG9idGFpbmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXI6IENvbnRleHRQcm92aWRlcjtcblxuICAvKipcbiAgICogQSBzZXQgb2YgcHJvdmlkZXItc3BlY2lmaWMgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IHByb3BzOiBDb250ZXh0UXVlcnlQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIEEgbWFuaWZlc3QgZm9yIGEgc2luZ2xlIGFydGlmYWN0IHdpdGhpbiB0aGUgY2xvdWQgYXNzZW1ibHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWZhY3RNYW5pZmVzdCB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhcnRpZmFjdC5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IEFydGlmYWN0VHlwZTtcblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IGludG8gd2hpY2ggdGhpcyBhcnRpZmFjdCBpcyBkZXBsb3llZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBlbnZyaW9ubWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50Pzogc3RyaW5nOyAvLyBmb3JtYXQ6IGF3czovL2FjY291bnQvcmVnaW9uXG5cbiAgLyoqXG4gICAqIEFzc29jaWF0ZWQgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWV0YWRhdGEuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IHsgW3BhdGg6IHN0cmluZ106IE1ldGFkYXRhRW50cnlbXSB9O1xuXG4gIC8qKlxuICAgKiBJRHMgb2YgYXJ0aWZhY3RzIHRoYXQgbXVzdCBiZSBkZXBsb3llZCBiZWZvcmUgdGhpcyBhcnRpZmFjdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHNldCBvZiBwcm9wZXJ0aWVzIGZvciB0aGlzIGFydGlmYWN0IChkZXBlbmRzIG9uIHR5cGUpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcHJvcGVydGllcy5cbiAgICovXG4gIHJlYWRvbmx5IHByb3BlcnRpZXM/OiBBcnRpZmFjdFByb3BlcnRpZXM7XG5cbiAgLyoqXG4gICAqIEEgc3RyaW5nIHRoYXQgY2FuIGJlIHNob3duIHRvIGEgdXNlciB0byB1bmlxdWVseSBpZGVudGlmeSB0aGlzIGFydGlmYWN0IGluc2lkZSBhIGNsb3VkIGFzc2VtYmx5IHRyZWVcbiAgICpcbiAgICogSXMgdXNlZCBieSB0aGUgQ0xJIHRvIHByZXNlbnQgYSBsaXN0IG9mIHN0YWNrcyB0byB0aGUgdXNlciBpbiBhIHdheSB0aGF0XG4gICAqIG1ha2VzIHNlbnNlIHRvIHRoZW0uIEV2ZW4gdGhvdWdoIHRoZSBwcm9wZXJ0eSBuYW1lIFwiZGlzcGxheSBuYW1lXCIgZG9lc24ndFxuICAgKiBpbXBseSBpdCwgdGhpcyBmaWVsZCBpcyB1c2VkIHRvIHNlbGVjdCBzdGFja3MgYXMgd2VsbCwgc28gYWxsIHN0YWNrcyBzaG91bGRcbiAgICogaGF2ZSBhIHVuaXF1ZSBkaXNwbGF5IG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZGlzcGxheSBuYW1lXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5TmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIG1hbmlmZXN0IHdoaWNoIGRlc2NyaWJlcyB0aGUgY2xvdWQgYXNzZW1ibHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZW1ibHlNYW5pZmVzdCB7XG4gIC8qKlxuICAgKiBQcm90b2NvbCB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlcXVpcmVkIENMSSB2ZXJzaW9uLCBpZiBhdmFpbGFibGVcbiAgICpcbiAgICogSWYgdGhlIG1hbmlmZXN0IHByb2R1Y2VyIGtub3dzLCBpdCBjYW4gcHV0IHRoZSBtaW5pbXVtIHZlcnNpb24gb2YgdGhlIENMSVxuICAgKiBoZXJlIHRoYXQgc3VwcG9ydHMgcmVhZGluZyB0aGlzIGFzc2VtYmx5LlxuICAgKlxuICAgKiBJZiBzZXQsIGl0IGNhbiBiZSB1c2VkIHRvIHNob3cgYSBtb3JlIGluZm9ybWF0aXZlIGVycm9yIG1lc3NhZ2UgdG8gdXNlcnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTWluaW11bSBDTEkgdmVyc2lvbiB1bmtub3duXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtQ2xpVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNldCBvZiBhcnRpZmFjdHMgaW4gdGhpcyBhc3NlbWJseS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhcnRpZmFjdHMuXG4gICAqL1xuICByZWFkb25seSBhcnRpZmFjdHM/OiB7IFtpZDogc3RyaW5nXTogQXJ0aWZhY3RNYW5pZmVzdCB9O1xuXG4gIC8qKlxuICAgKiBNaXNzaW5nIGNvbnRleHQgaW5mb3JtYXRpb24uIElmIHRoaXMgZmllbGQgaGFzIHZhbHVlcywgaXQgbWVhbnMgdGhhdCB0aGVcbiAgICogY2xvdWQgYXNzZW1ibHkgaXMgbm90IGNvbXBsZXRlIGFuZCBzaG91bGQgbm90IGJlIGRlcGxveWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG1pc3NpbmcgY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IG1pc3Npbmc/OiBNaXNzaW5nQ29udGV4dFtdO1xuXG4gIC8qKlxuICAgKiBSdW50aW1lIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGluZm8uXG4gICAqL1xuICByZWFkb25seSBydW50aW1lPzogUnVudGltZUluZm87XG59XG4iXX0=
package/lib/manifest.js CHANGED
@@ -269,7 +269,7 @@ class Manifest {
269
269
  }
270
270
  exports.Manifest = Manifest;
271
271
  _a = JSII_RTTI_SYMBOL_1;
272
- Manifest[_a] = { fqn: "@aws-cdk/cloud-assembly-schema.Manifest", version: "42.0.0" };
272
+ Manifest[_a] = { fqn: "@aws-cdk/cloud-assembly-schema.Manifest", version: "43.1.0" };
273
273
  function mapValues(xs, fn) {
274
274
  if (!xs) {
275
275
  return undefined;
package/package.json CHANGED
@@ -42,29 +42,29 @@
42
42
  "@stylistic/eslint-plugin": "^3",
43
43
  "@types/jest": "^29.5.14",
44
44
  "@types/node": "^16",
45
- "@types/semver": "^7.5.8",
45
+ "@types/semver": "^7.7.0",
46
46
  "@typescript-eslint/eslint-plugin": "^8",
47
47
  "@typescript-eslint/parser": "^8",
48
48
  "commit-and-tag-version": "^12",
49
49
  "constructs": "^10.0.0",
50
50
  "eslint": "^9",
51
51
  "eslint-config-prettier": "^10.1.1",
52
- "eslint-import-resolver-typescript": "^3.9.1",
52
+ "eslint-import-resolver-typescript": "^3.10.0",
53
53
  "eslint-plugin-import": "^2.31.0",
54
54
  "eslint-plugin-jest": "^28.11.0",
55
55
  "eslint-plugin-jsdoc": "^50.6.9",
56
- "eslint-plugin-prettier": "^5.2.3",
56
+ "eslint-plugin-prettier": "^5.2.6",
57
57
  "jest": "^29.7.0",
58
58
  "jest-junit": "^16",
59
59
  "jsii": "5.6",
60
- "jsii-diff": "^1.110.0",
61
- "jsii-pacmak": "^1.110.0",
60
+ "jsii-diff": "^1.111.0",
61
+ "jsii-pacmak": "^1.111.0",
62
62
  "jsii-rosetta": "5.6",
63
63
  "license-checker": "^25.0.1",
64
64
  "mock-fs": "^5.5.0",
65
65
  "prettier": "^2.8",
66
66
  "projen": "^0.91.18",
67
- "ts-jest": "^29.2.6",
67
+ "ts-jest": "^29.3.1",
68
68
  "tsx": "^4.19.3",
69
69
  "typescript": "5.6",
70
70
  "typescript-json-schema": "^0.65.1"
@@ -90,7 +90,7 @@
90
90
  "publishConfig": {
91
91
  "access": "public"
92
92
  },
93
- "version": "42.0.0",
93
+ "version": "43.1.0",
94
94
  "types": "lib/index.d.ts",
95
95
  "stability": "stable",
96
96
  "jsii": {
@@ -83,7 +83,7 @@
83
83
  ]
84
84
  },
85
85
  "displayName": {
86
- "description": "A string that represents this artifact. Should only be used in user interfaces. (Default - no display name)",
86
+ "description": "A string that can be shown to a user to uniquely identify this artifact inside a cloud assembly tree\n\nIs used by the CLI to present a list of stacks to the user in a way that\nmakes sense to them. Even though the property name \"display name\" doesn't\nimply it, this field is used to select stacks as well, so all stacks should\nhave a unique display name. (Default - no display name)",
87
87
  "type": "string"
88
88
  }
89
89
  },
@@ -1024,19 +1024,19 @@
1024
1024
  ]
1025
1025
  },
1026
1026
  "CcApiContextQuery": {
1027
- "description": "Query input for lookup up Cloudformation resources using CC API",
1027
+ "description": "Query input for lookup up CloudFormation resources using CC API",
1028
1028
  "type": "object",
1029
1029
  "properties": {
1030
1030
  "typeName": {
1031
- "description": "The Cloudformation resource type.\nSee https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/supported-resources.html",
1031
+ "description": "The CloudFormation resource type.\nSee https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/supported-resources.html",
1032
1032
  "type": "string"
1033
1033
  },
1034
1034
  "exactIdentifier": {
1035
- "description": "Identifier of the resource to look up using `GetResource`.\n\nSpecifying exactIdentifier will return exactly one result, or throw an error. (Default - Either exactIdentifier or propertyMatch should be specified.)",
1035
+ "description": "Identifier of the resource to look up using `GetResource`.\n\nSpecifying exactIdentifier will return exactly one result, or throw an error\nunless `ignoreErrorOnMissingContext` is set. (Default - Either exactIdentifier or propertyMatch should be specified.)",
1036
1036
  "type": "string"
1037
1037
  },
1038
1038
  "propertyMatch": {
1039
- "description": "Returns any resources matching these properties, using `ListResources`.\n\nSpecifying propertyMatch will return 0 or more results.\n\n## Notes on property completeness\n\nCloudControl API's `ListResources` may return fewer properties than\n`GetResource` would, depending on the resource implementation.\n\nThe resources that `propertyMatch` matches against will *only ever* be the\nproperties returned by the `ListResources` call. (Default - Either exactIdentifier or propertyMatch should be specified.)",
1039
+ "description": "Returns any resources matching these properties, using `ListResources`.\n\nBy default, specifying propertyMatch will successfully return 0 or more\nresults. To throw an error if the number of results is unexpected (and\nprevent the query results from being committed to context), specify\n`expectedMatchCount`.\n\n## Notes on property completeness\n\nCloudControl API's `ListResources` may return fewer properties than\n`GetResource` would, depending on the resource implementation.\n\nThe resources that `propertyMatch` matches against will *only ever* be the\nproperties returned by the `ListResources` call. (Default - Either exactIdentifier or propertyMatch should be specified.)",
1040
1040
  "$ref": "#/definitions/Record<string,unknown>"
1041
1041
  },
1042
1042
  "propertiesToReturn": {
@@ -1046,11 +1046,21 @@
1046
1046
  "type": "string"
1047
1047
  }
1048
1048
  },
1049
+ "expectedMatchCount": {
1050
+ "description": "Expected count of results if `propertyMatch` is specified.\n\nIf the expected result count does not match the actual count,\nby default an error is produced and the result is not committed to cached\ncontext, and the user can correct the situation and try again without\nhaving to manually clear out the context key using `cdk context --remove`\n\nIf the value of * `ignoreErrorOnMissingContext` is `true`, the value of\n`expectedMatchCount` is `at-least-one | exactly-one` and the number\nof found resources is 0, `dummyValue` is returned and committed to context\ninstead. (Default 'any')",
1051
+ "enum": [
1052
+ "any",
1053
+ "at-least-one",
1054
+ "at-most-one",
1055
+ "exactly-one"
1056
+ ],
1057
+ "type": "string"
1058
+ },
1049
1059
  "dummyValue": {
1050
1060
  "description": "The value to return if the resource was not found and `ignoreErrorOnMissingContext` is true.\n\nIf supplied, `dummyValue` should be an array of objects.\n\n`dummyValue` does not have to have elements, and it may have objects with\ndifferent properties than the properties in `propertiesToReturn`, but it\nwill be easiest for downstream code if the `dummyValue` conforms to\nthe expected response shape. (Default - No dummy value available)"
1051
1061
  },
1052
1062
  "ignoreErrorOnMissingContext": {
1053
- "description": "Ignore an error and return the `dummyValue` instead if the resource was not found.\n\n- In case of an `exactIdentifier` lookup, return the `dummyValue` if the resource with\n that identifier was not found.\n- In case of a `propertyMatch` lookup, this setting currently does not have any effect,\n as `propertyMatch` queries can legally return 0 resources.\n\nif `ignoreErrorOnMissingContext` is set, `dummyValue` should be set and be an array.",
1063
+ "description": "Ignore an error and return the `dummyValue` instead if the resource was not found.\n\n- In case of an `exactIdentifier` lookup, return the `dummyValue` if the resource with\n that identifier was not found.\n- In case of a `propertyMatch` lookup, return the `dummyValue` if `expectedMatchCount`\n is `at-least-one | exactly-one` and the number of resources found was 0.\n\nif `ignoreErrorOnMissingContext` is set, `dummyValue` should be set and be an array.",
1054
1064
  "default": false,
1055
1065
  "type": "boolean"
1056
1066
  },
@@ -1,4 +1,4 @@
1
1
  {
2
- "schemaHash": "5683db246fac20b864d94d7bceef24ebda1a38c8c1f8ef0d5978534097dc9504",
3
- "revision": 42
2
+ "schemaHash": "96958a4c40e0a00e850f0c14dd6e9c0fc8db0b075f1f155cea41ab198c0514be",
3
+ "revision": 43
4
4
  }