@aws-cdk/aws-imagebuilder-alpha 2.232.2-alpha.0 → 2.234.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.
@@ -72,7 +72,7 @@ var ContainerType;
72
72
  * Helper class for referencing and uploading dockerfile data for the container recipe
73
73
  */
74
74
  class DockerfileData {
75
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.DockerfileData", version: "2.232.2-alpha.0" };
75
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.DockerfileData", version: "2.234.0-alpha.0" };
76
76
  /**
77
77
  * Uploads dockerfile data from a local file to S3 to use as the dockerfile data
78
78
  *
@@ -108,7 +108,7 @@ exports.DockerfileData = DockerfileData;
108
108
  * Helper class for S3-based dockerfile data references, containing additional permission grant methods on the S3 object
109
109
  */
110
110
  class S3DockerfileData extends DockerfileData {
111
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.S3DockerfileData", version: "2.232.2-alpha.0" };
111
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.S3DockerfileData", version: "2.234.0-alpha.0" };
112
112
  bucket;
113
113
  key;
114
114
  constructor(bucket, key) {
@@ -167,7 +167,7 @@ class S3DockerfileDataFromAsset extends S3DockerfileData {
167
167
  * A new or imported Container Recipe
168
168
  */
169
169
  class ContainerRecipeBase extends cdk.Resource {
170
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ContainerRecipeBase", version: "2.232.2-alpha.0" };
170
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ContainerRecipeBase", version: "2.234.0-alpha.0" };
171
171
  /**
172
172
  * Grant custom actions to the given grantee for the container recipe
173
173
  *
@@ -231,7 +231,7 @@ let ContainerRecipe = (() => {
231
231
  ContainerRecipe = _classThis = _classDescriptor.value;
232
232
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
233
233
  }
234
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ContainerRecipe", version: "2.232.2-alpha.0" };
234
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ContainerRecipe", version: "2.234.0-alpha.0" };
235
235
  /** Uniquely identifies this class. */
236
236
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-imagebuilder-alpha.ContainerRecipe';
237
237
  /**
@@ -86,7 +86,7 @@ var RepositoryService;
86
86
  * A container repository used to distribute container images in EC2 Image Builder
87
87
  */
88
88
  class Repository {
89
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.Repository", version: "2.232.2-alpha.0" };
89
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.Repository", version: "2.234.0-alpha.0" };
90
90
  /**
91
91
  * The ECR repository to use as the target container repository
92
92
  *
@@ -127,7 +127,7 @@ let DistributionConfiguration = (() => {
127
127
  DistributionConfiguration = _classThis = _classDescriptor.value;
128
128
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
129
129
  }
130
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.DistributionConfiguration", version: "2.232.2-alpha.0" };
130
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.DistributionConfiguration", version: "2.234.0-alpha.0" };
131
131
  /** Uniquely identifies this class. */
132
132
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-imagebuilder-alpha.DistributionConfiguration';
133
133
  /**
@@ -282,7 +282,7 @@ let ImagePipeline = (() => {
282
282
  ImagePipeline = _classThis = _classDescriptor.value;
283
283
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
284
284
  }
285
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ImagePipeline", version: "2.232.2-alpha.0" };
285
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ImagePipeline", version: "2.234.0-alpha.0" };
286
286
  /** Uniquely identifies this class. */
287
287
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-imagebuilder-alpha.ImagePipeline';
288
288
  /**
@@ -123,7 +123,7 @@ let ImageRecipe = (() => {
123
123
  ImageRecipe = _classThis = _classDescriptor.value;
124
124
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
125
125
  }
126
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ImageRecipe", version: "2.232.2-alpha.0" };
126
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ImageRecipe", version: "2.234.0-alpha.0" };
127
127
  /** Uniquely identifies this class. */
128
128
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-imagebuilder-alpha.ImageRecipe';
129
129
  /**
package/lib/image.js CHANGED
@@ -152,7 +152,7 @@ let Image = (() => {
152
152
  Image = _classThis = _classDescriptor.value;
153
153
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
154
154
  }
155
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.Image", version: "2.232.2-alpha.0" };
155
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.Image", version: "2.234.0-alpha.0" };
156
156
  /** Uniquely identifies this class. */
157
157
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-imagebuilder-alpha.Image';
158
158
  /**
package/lib/index.d.ts CHANGED
@@ -7,7 +7,9 @@ export * from './image-recipe';
7
7
  export * from './infrastructure-configuration';
8
8
  export * from './lifecycle-policy';
9
9
  export * from './workflow';
10
+ export * from './amazon-managed-component';
10
11
  export * from './amazon-managed-image';
12
+ export * from './amazon-managed-workflow';
11
13
  export * from './base-image';
12
14
  export * from './os-version';
13
15
  export * from './recipe-base';
package/lib/index.js CHANGED
@@ -24,8 +24,10 @@ __exportStar(require("./image-recipe"), exports);
24
24
  __exportStar(require("./infrastructure-configuration"), exports);
25
25
  __exportStar(require("./lifecycle-policy"), exports);
26
26
  __exportStar(require("./workflow"), exports);
27
+ __exportStar(require("./amazon-managed-component"), exports);
27
28
  __exportStar(require("./amazon-managed-image"), exports);
29
+ __exportStar(require("./amazon-managed-workflow"), exports);
28
30
  __exportStar(require("./base-image"), exports);
29
31
  __exportStar(require("./os-version"), exports);
30
32
  __exportStar(require("./recipe-base"), exports);
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsOENBQThDOzs7Ozs7Ozs7Ozs7Ozs7O0FBRTlDLDhDQUE0QjtBQUM1QixxREFBbUM7QUFDbkMsK0RBQTZDO0FBQzdDLDBDQUF3QjtBQUN4QixtREFBaUM7QUFDakMsaURBQStCO0FBQy9CLGlFQUErQztBQUMvQyxxREFBbUM7QUFDbkMsNkNBQTJCO0FBRTNCLHlEQUF1QztBQUN2QywrQ0FBNkI7QUFDN0IsK0NBQTZCO0FBQzdCLGdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFXUzo6SW1hZ2VCdWlsZGVyIENsb3VkRm9ybWF0aW9uIFJlc291cmNlczpcblxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250YWluZXItcmVjaXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlzdHJpYnV0aW9uLWNvbmZpZ3VyYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlLXBpcGVsaW5lJztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UtcmVjaXBlJztcbmV4cG9ydCAqIGZyb20gJy4vaW5mcmFzdHJ1Y3R1cmUtY29uZmlndXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpZmVjeWNsZS1wb2xpY3knO1xuZXhwb3J0ICogZnJvbSAnLi93b3JrZmxvdyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYW1hem9uLW1hbmFnZWQtaW1hZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLWltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vb3MtdmVyc2lvbic7XG5leHBvcnQgKiBmcm9tICcuL3JlY2lwZS1iYXNlJztcbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsOENBQThDOzs7Ozs7Ozs7Ozs7Ozs7O0FBRTlDLDhDQUE0QjtBQUM1QixxREFBbUM7QUFDbkMsK0RBQTZDO0FBQzdDLDBDQUF3QjtBQUN4QixtREFBaUM7QUFDakMsaURBQStCO0FBQy9CLGlFQUErQztBQUMvQyxxREFBbUM7QUFDbkMsNkNBQTJCO0FBRTNCLDZEQUEyQztBQUMzQyx5REFBdUM7QUFDdkMsNERBQTBDO0FBQzFDLCtDQUE2QjtBQUM3QiwrQ0FBNkI7QUFDN0IsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQVdTOjpJbWFnZUJ1aWxkZXIgQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2VzOlxuXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRhaW5lci1yZWNpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXN0cmlidXRpb24tY29uZmlndXJhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UtcGlwZWxpbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS1yZWNpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmZyYXN0cnVjdHVyZS1jb25maWd1cmF0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGlmZWN5Y2xlLXBvbGljeSc7XG5leHBvcnQgKiBmcm9tICcuL3dvcmtmbG93JztcblxuZXhwb3J0ICogZnJvbSAnLi9hbWF6b24tbWFuYWdlZC1jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hbWF6b24tbWFuYWdlZC1pbWFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2FtYXpvbi1tYW5hZ2VkLXdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1pbWFnZSc7XG5leHBvcnQgKiBmcm9tICcuL29zLXZlcnNpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9yZWNpcGUtYmFzZSc7XG4iXX0=
@@ -125,7 +125,7 @@ let InfrastructureConfiguration = (() => {
125
125
  InfrastructureConfiguration = _classThis = _classDescriptor.value;
126
126
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
127
127
  }
128
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.InfrastructureConfiguration", version: "2.232.2-alpha.0" };
128
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.InfrastructureConfiguration", version: "2.234.0-alpha.0" };
129
129
  /** Uniquely identifies this class. */
130
130
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-imagebuilder-alpha.InfrastructureConfiguration';
131
131
  /**
@@ -121,7 +121,7 @@ let LifecyclePolicy = (() => {
121
121
  LifecyclePolicy = _classThis = _classDescriptor.value;
122
122
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
123
123
  }
124
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.LifecyclePolicy", version: "2.232.2-alpha.0" };
124
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.LifecyclePolicy", version: "2.234.0-alpha.0" };
125
125
  /** Uniquely identifies this class. */
126
126
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-imagebuilder-alpha.LifecyclePolicy';
127
127
  /**
package/lib/os-version.js CHANGED
@@ -25,7 +25,7 @@ var Platform;
25
25
  * Represents an OS version for an EC2 Image Builder image
26
26
  */
27
27
  class OSVersion {
28
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.OSVersion", version: "2.232.2-alpha.0" };
28
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.OSVersion", version: "2.234.0-alpha.0" };
29
29
  /**
30
30
  * OS version for all Linux images
31
31
  */
@@ -6,7 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  * The parameter value for a component parameter
7
7
  */
8
8
  class ComponentParameterValue {
9
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ComponentParameterValue", version: "2.232.2-alpha.0" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.ComponentParameterValue", version: "2.234.0-alpha.0" };
10
10
  /**
11
11
  * The value of the parameter as a string
12
12
  *
package/lib/workflow.d.ts CHANGED
@@ -128,19 +128,6 @@ export interface WorkflowAttributes {
128
128
  */
129
129
  readonly workflowVersion?: string;
130
130
  }
131
- /**
132
- * Properties for an EC2 Image Builder AWS-managed workflow
133
- */
134
- export interface AwsManagedWorkflowAttributes {
135
- /**
136
- * The name of the AWS-managed workflow
137
- */
138
- readonly workflowName: string;
139
- /**
140
- * The type of the AWS-managed workflow
141
- */
142
- readonly workflowType: WorkflowType;
143
- }
144
131
  /**
145
132
  * The action for a step within the workflow document
146
133
  */
@@ -428,54 +415,6 @@ export interface WorkflowConfiguration {
428
415
  [name: string]: WorkflowParameterValue;
429
416
  };
430
417
  }
431
- /**
432
- * Helper class for working with AWS-managed workflows
433
- */
434
- export declare class AwsManagedWorkflow {
435
- /**
436
- * Imports the build-container AWS-managed workflow
437
- *
438
- * @param scope The construct scope
439
- * @param id Identifier of the construct
440
- */
441
- static buildContainer(scope: Construct, id: string): IWorkflow;
442
- /**
443
- * Imports the build-image AWS-managed workflow
444
- *
445
- * @param scope The construct scope
446
- * @param id Identifier of the construct
447
- */
448
- static buildImage(scope: Construct, id: string): IWorkflow;
449
- /**
450
- * Imports the distribute-container AWS-managed workflow
451
- *
452
- * @param scope The construct scope
453
- * @param id Identifier of the construct
454
- */
455
- static distributeContainer(scope: Construct, id: string): IWorkflow;
456
- /**
457
- * Imports the test-container AWS-managed workflow
458
- *
459
- * @param scope The construct scope
460
- * @param id Identifier of the construct
461
- */
462
- static testContainer(scope: Construct, id: string): IWorkflow;
463
- /**
464
- * Imports the test-image AWS-managed workflow
465
- *
466
- * @param scope The construct scope
467
- * @param id Identifier of the construct
468
- */
469
- static testImage(scope: Construct, id: string): IWorkflow;
470
- /**
471
- * Imports an AWS-managed workflow from its attributes
472
- *
473
- * @param scope The construct scope
474
- * @param id Identifier of the construct
475
- * @param attrs The attributes of the AWS-managed workflow
476
- */
477
- static fromAwsManagedWorkflowAttributes(scope: Construct, id: string, attrs: AwsManagedWorkflowAttributes): IWorkflow;
478
- }
479
418
  /**
480
419
  * A new or imported Workflow
481
420
  */
package/lib/workflow.js CHANGED
@@ -34,7 +34,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
34
34
  return useValue ? value : void 0;
35
35
  };
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.Workflow = exports.AwsManagedWorkflow = exports.WorkflowParameterValue = exports.S3WorkflowData = exports.WorkflowData = exports.WorkflowType = exports.WorkflowSchemaVersion = exports.WorkflowParameterType = exports.WorkflowOnFailure = exports.WorkflowAction = void 0;
37
+ exports.Workflow = exports.WorkflowParameterValue = exports.S3WorkflowData = exports.WorkflowData = exports.WorkflowType = exports.WorkflowSchemaVersion = exports.WorkflowParameterType = exports.WorkflowOnFailure = exports.WorkflowAction = void 0;
38
38
  const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
39
39
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
40
40
  const cdk = require("aws-cdk-lib");
@@ -201,7 +201,7 @@ var WorkflowType;
201
201
  * Helper class for referencing and uploading workflow data
202
202
  */
203
203
  class WorkflowData {
204
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.WorkflowData", version: "2.232.2-alpha.0" };
204
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.WorkflowData", version: "2.234.0-alpha.0" };
205
205
  /**
206
206
  * Uploads workflow data from a local file to S3 to use as the workflow data
207
207
  *
@@ -246,7 +246,7 @@ exports.WorkflowData = WorkflowData;
246
246
  * Helper class for S3-based workflow data references, containing additional permission grant methods on the S3 object
247
247
  */
248
248
  class S3WorkflowData extends WorkflowData {
249
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.S3WorkflowData", version: "2.232.2-alpha.0" };
249
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.S3WorkflowData", version: "2.234.0-alpha.0" };
250
250
  bucket;
251
251
  key;
252
252
  constructor(bucket, key) {
@@ -305,7 +305,7 @@ class S3WorkflowDataFromAsset extends S3WorkflowData {
305
305
  * The parameter value for a workflow parameter
306
306
  */
307
307
  class WorkflowParameterValue {
308
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.WorkflowParameterValue", version: "2.232.2-alpha.0" };
308
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.WorkflowParameterValue", version: "2.234.0-alpha.0" };
309
309
  /**
310
310
  * The value of the parameter as a boolean
311
311
  *
@@ -346,100 +346,6 @@ class WorkflowParameterValue {
346
346
  }
347
347
  }
348
348
  exports.WorkflowParameterValue = WorkflowParameterValue;
349
- /**
350
- * Helper class for working with AWS-managed workflows
351
- */
352
- class AwsManagedWorkflow {
353
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.AwsManagedWorkflow", version: "2.232.2-alpha.0" };
354
- /**
355
- * Imports the build-container AWS-managed workflow
356
- *
357
- * @param scope The construct scope
358
- * @param id Identifier of the construct
359
- */
360
- static buildContainer(scope, id) {
361
- return this.fromAwsManagedWorkflowAttributes(scope, id, {
362
- workflowName: 'build-container',
363
- workflowType: WorkflowType.BUILD,
364
- });
365
- }
366
- /**
367
- * Imports the build-image AWS-managed workflow
368
- *
369
- * @param scope The construct scope
370
- * @param id Identifier of the construct
371
- */
372
- static buildImage(scope, id) {
373
- return this.fromAwsManagedWorkflowAttributes(scope, id, {
374
- workflowName: 'build-image',
375
- workflowType: WorkflowType.BUILD,
376
- });
377
- }
378
- /**
379
- * Imports the distribute-container AWS-managed workflow
380
- *
381
- * @param scope The construct scope
382
- * @param id Identifier of the construct
383
- */
384
- static distributeContainer(scope, id) {
385
- return this.fromAwsManagedWorkflowAttributes(scope, id, {
386
- workflowName: 'distribute-container',
387
- workflowType: WorkflowType.DISTRIBUTION,
388
- });
389
- }
390
- /**
391
- * Imports the test-container AWS-managed workflow
392
- *
393
- * @param scope The construct scope
394
- * @param id Identifier of the construct
395
- */
396
- static testContainer(scope, id) {
397
- return this.fromAwsManagedWorkflowAttributes(scope, id, {
398
- workflowName: 'test-container',
399
- workflowType: WorkflowType.TEST,
400
- });
401
- }
402
- /**
403
- * Imports the test-image AWS-managed workflow
404
- *
405
- * @param scope The construct scope
406
- * @param id Identifier of the construct
407
- */
408
- static testImage(scope, id) {
409
- return this.fromAwsManagedWorkflowAttributes(scope, id, {
410
- workflowName: 'test-image',
411
- workflowType: WorkflowType.TEST,
412
- });
413
- }
414
- /**
415
- * Imports an AWS-managed workflow from its attributes
416
- *
417
- * @param scope The construct scope
418
- * @param id Identifier of the construct
419
- * @param attrs The attributes of the AWS-managed workflow
420
- */
421
- static fromAwsManagedWorkflowAttributes(scope, id, attrs) {
422
- try {
423
- jsiiDeprecationWarnings._aws_cdk_aws_imagebuilder_alpha_AwsManagedWorkflowAttributes(attrs);
424
- }
425
- catch (error) {
426
- if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
427
- Error.captureStackTrace(error, this.fromAwsManagedWorkflowAttributes);
428
- }
429
- throw error;
430
- }
431
- if (cdk.Token.isUnresolved(attrs.workflowType)) {
432
- throw new cdk.ValidationError('workflowType cannot be a token', scope);
433
- }
434
- return Workflow.fromWorkflowArn(scope, id, cdk.Stack.of(scope).formatArn({
435
- service: 'imagebuilder',
436
- account: 'aws',
437
- resource: 'workflow',
438
- resourceName: `${attrs.workflowType.toLowerCase()}/${attrs.workflowName}/${LATEST_VERSION}`,
439
- }));
440
- }
441
- }
442
- exports.AwsManagedWorkflow = AwsManagedWorkflow;
443
349
  /**
444
350
  * A new or imported Workflow
445
351
  */
@@ -486,7 +392,7 @@ let Workflow = (() => {
486
392
  Workflow = _classThis = _classDescriptor.value;
487
393
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
488
394
  }
489
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.Workflow", version: "2.232.2-alpha.0" };
395
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.Workflow", version: "2.234.0-alpha.0" };
490
396
  /** Uniquely identifies this class. */
491
397
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-imagebuilder-alpha.Workflow';
492
398
  /**
@@ -639,4 +545,4 @@ let Workflow = (() => {
639
545
  return Workflow = _classThis;
640
546
  })();
641
547
  exports.Workflow = Workflow;
642
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQTJDO0FBQzNDLG1FQUEyRDtBQUczRCxzREFBc0Q7QUFDdEQsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUUxRSw2QkFBNkI7QUFFN0IsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBRS9FOzs7OztHQUtHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDO0FBNkovQjs7R0FFRztBQUNILElBQVksY0E0Rlg7QUE1RkQsV0FBWSxjQUFjO0lBQ3hCOzs7T0FHRztJQUNILHlFQUF1RCxDQUFBO0lBRXZEOzs7T0FHRztJQUNILG9GQUFrRSxDQUFBO0lBRWxFOzs7T0FHRztJQUNILGlFQUErQyxDQUFBO0lBRS9DOztPQUVHO0lBQ0gsMEVBQXdELENBQUE7SUFFeEQ7O09BRUc7SUFDSCw4Q0FBNEIsQ0FBQTtJQUU1Qjs7O09BR0c7SUFDSCxzREFBb0MsQ0FBQTtJQUVwQzs7T0FFRztJQUNILDBEQUF3QyxDQUFBO0lBRXhDOzs7T0FHRztJQUNILCtEQUE2QyxDQUFBO0lBRTdDOzs7T0FHRztJQUNILG9EQUFrQyxDQUFBO0lBRWxDOztPQUVHO0lBQ0gsbUVBQWlELENBQUE7SUFFakQ7O09BRUc7SUFDSCw0Q0FBMEIsQ0FBQTtJQUUxQjs7T0FFRztJQUNILGtEQUFnQyxDQUFBO0lBRWhDOztPQUVHO0lBQ0gsNkNBQTJCLENBQUE7SUFFM0I7O09BRUc7SUFDSCx3REFBc0MsQ0FBQTtJQUV0Qzs7T0FFRztJQUNILDBEQUF3QyxDQUFBO0lBRXhDOzs7T0FHRztJQUNILG1EQUFpQyxDQUFBO0lBRWpDOztPQUVHO0lBQ0gsd0RBQXNDLENBQUE7QUFDeEMsQ0FBQyxFQTVGVyxjQUFjLDhC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SUFBSSxDQUFDLENBQUM7WUFDckYsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQzFELE1BQU0sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLG9DQUFvQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVFLENBQUM7U0FDRjs7WUEvS1UsdURBQVE7Ozs7O0FBQVIsNEJBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ2ZuV29ya2Zsb3cgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaW1hZ2VidWlsZGVyJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBzM2Fzc2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgeWFtbCBmcm9tICd5YW1sJztcblxuY29uc3QgV09SS0ZMT1dfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvYXdzLWltYWdlYnVpbGRlci1hbHBoYS5Xb3JrZmxvdycpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGEgd29ya2Zsb3cuIFdoZW4gdXNpbmcgdGhlIHdvcmtmbG93IGluIGEgcGlwZWxpbmUsIHRoZSBwaXBlbGluZSB3aWxsIHVzZSB0aGVcbiAqIGxhdGVzdCB3b3JrZmxvdyBhdCB0aGUgdGltZSBvZiBleGVjdXRpb24uXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW1hZ2VidWlsZGVyL2xhdGVzdC91c2VyZ3VpZGUvaWJob3ctc2VtYW50aWMtdmVyc2lvbmluZy5odG1sXG4gKi9cbmNvbnN0IExBVEVTVF9WRVJTSU9OID0gJ3gueC54JztcblxuLyoqXG4gKiBBbiBFQzIgSW1hZ2UgQnVpbGRlciBXb3JrZmxvdy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV29ya2Zsb3cgZXh0ZW5kcyBjZGsuSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB3b3JrZmxvd1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdyYW50IGN1c3RvbSBhY3Rpb25zIHRvIHRoZSBnaXZlbiBncmFudGVlIGZvciB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgbGlzdCBvZiBhY3Rpb25zXG4gICAqL1xuICBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSB3b3JrZmxvd1xuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBXb3JrZmxvdyByZXNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93UHJvcHMge1xuICAvKipcbiAgICogVGhlIHdvcmtmbG93IGRvY3VtZW50IGNvbnRlbnQgdGhhdCBkZWZpbmVzIHRoZSBpbWFnZSBjcmVhdGlvbiBwcm9jZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YTogV29ya2Zsb3dEYXRhO1xuXG4gIC8qKlxuICAgKiBUaGUgcGhhc2UgaW4gdGhlIGltYWdlIGJ1aWxkIHByb2Nlc3MgZm9yIHdoaWNoIHRoZSB3b3JrZmxvdyByZXNvdXJjZSBpcyByZXNwb25zaWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VHlwZTogV29ya2Zsb3dUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuYW1lIGlzIGdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEuMC4wXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd1ZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hhbmdlIGRlc2NyaXB0aW9uIG9mIHRoZSB3b3JrZmxvdy4gRGVzY3JpYmVzIHdoYXQgY2hhbmdlIGhhcyBiZWVuIG1hZGUgaW4gdGhpcyB2ZXJzaW9uIG9mIHRoZSB3b3JrZmxvdywgb3JcbiAgICogd2hhdCBtYWtlcyB0aGlzIHZlcnNpb24gZGlmZmVyZW50IGZyb20gb3RoZXIgdmVyc2lvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZURlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgS01TIGtleSB1c2VkIHRvIGVuY3J5cHQgdGhpcyB3b3JrZmxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbiBJbWFnZSBCdWlsZGVyIG93bmVkIGtleSB3aWxsIGJlIHVzZWQgdG8gZW5jcnlwdCB0aGUgd29ya2Zsb3cuXG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcblxuICAvKipcbiAgICogVGhlIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFuIEVDMiBJbWFnZSBCdWlsZGVyIFdvcmtmbG93XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIEFSTiBpcyBhdXRvbWF0aWNhbGx5IGNvbnN0cnVjdGVkIGlmIGEgd29ya2Zsb3dOYW1lIGFuZCB3b3JrZmxvd1R5cGUgaXMgcHJvdmlkZWQsIG90aGVyd2lzZSBhXG4gICAqIHdvcmtmbG93QXJuIGlzIHJlcXVpcmVkXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd0Fybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIG5hbWUgaXMgYXV0b21hdGljYWxseSBjb25zdHJ1Y3RlZCBpZiBhIHdvcmtmbG93QXJuIGlzIHByb3ZpZGVkLCBvdGhlcndpc2UgYSB3b3JrZmxvd05hbWUgaXMgcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIHR5cGUgaXMgYXV0b21hdGljYWxseSBjb25zdHJ1Y3RlZCBpZiBhIHdvcmtmbG93QXJuIGlzIHByb3ZpZGVkLCBvdGhlcndpc2UgYSB3b3JrZmxvd1R5cGUgaXMgcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VHlwZT86IFdvcmtmbG93VHlwZTtcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IHgueC54XG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd1ZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYW4gRUMyIEltYWdlIEJ1aWxkZXIgQVdTLW1hbmFnZWQgd29ya2Zsb3dcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NNYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBBV1MtbWFuYWdlZCB3b3JrZmxvd1xuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBBV1MtbWFuYWdlZCB3b3JrZmxvd1xuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dUeXBlOiBXb3JrZmxvd1R5cGU7XG59XG5cbi8qKlxuICogVGhlIGFjdGlvbiBmb3IgYSBzdGVwIHdpdGhpbiB0aGUgd29ya2Zsb3cgZG9jdW1lbnRcbiAqL1xuZXhwb3J0IGVudW0gV29ya2Zsb3dBY3Rpb24ge1xuICAvKipcbiAgICogQXBwbGllcyBjdXN0b21pemF0aW9ucyBhbmQgY29uZmlndXJhdGlvbnMgdG8gdGhlIGlucHV0IEFNSXMsIHN1Y2ggYXMgcHVibGlzaGluZyB0aGUgQU1JIHRvIFNTTSBQYXJhbWV0ZXIgU3RvcmUsXG4gICAqIG9yIGNyZWF0aW5nIGxhdW5jaCB0ZW1wbGF0ZSB2ZXJzaW9ucyB3aXRoIHRoZSBBTUkgSURzIHByb3ZpZGVkIGluIHRoZSBpbnB1dFxuICAgKi9cbiAgQVBQTFlfSU1BR0VfQ09ORklHVVJBVElPTlMgPSAnQXBwbHlJbWFnZUNvbmZpZ3VyYXRpb25zJyxcblxuICAvKipcbiAgICogVGhlIEJvb3RzdHJhcEluc3RhbmNlRm9yQ29udGFpbmVyIGFjdGlvbiBydW5zIGEgc2VydmljZSBzY3JpcHQgdG8gYm9vdHN0cmFwIHRoZSBpbnN0YW5jZSB3aXRoIG1pbmltdW0gcmVxdWlyZW1lbnRzXG4gICAqIHRvIHJ1biBjb250YWluZXIgd29ya2Zsb3dzXG4gICAqL1xuICBCT09UU1RSQVBfSU5TVEFOQ0VfRk9SX0NPTlRBSU5FUiA9ICdCb290c3RyYXBJbnN0YW5jZUZvckNvbnRhaW5lcicsXG5cbiAgLyoqXG4gICAqIFRoZSBDb2xsZWN0SW1hZ2VNZXRhZGF0YSBhY3Rpb24gY29sbGVjdHMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaW5zdGFuY2UsIHN1Y2ggYXMgdGhlIGxpc3Qgb2YgcGFja2FnZXNcbiAgICogYW5kIHRoZWlyIHJlc3BlY3RpdmUgdmVyc2lvbnNcbiAgICovXG4gIENPTExFQ1RfSU1BR0VfTUVUQURBVEEgPSAnQ29sbGVjdEltYWdlTWV0YWRhdGEnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ29sbGVjdEltYWdlU2NhbkZpbmRpbmdzIGFjdGlvbiBjb2xsZWN0cyBmaW5kaW5ncyByZXBvcnRlZCBieSBBbWF6b24gSW5zcGVjdG9yIGZvciB0aGUgcHJvdmlkZWQgaW5zdGFuY2VcbiAgICovXG4gIENPTExFQ1RfSU1BR0VfU0NBTl9GSU5ESU5HUyA9ICdDb2xsZWN0SW1hZ2VTY2FuRmluZGluZ3MnLFxuXG4gIC8qKlxuICAgKiBUaGUgQ3JlYXRlSW1hZ2UgYWN0aW9uIGNyZWF0ZXMgYW4gQU1JIGZyb20gYSBydW5uaW5nIGluc3RhbmNlIHdpdGggdGhlIGVjMjpDcmVhdGVJbWFnZSBBUElcbiAgICovXG4gIENSRUFURV9JTUFHRSA9ICdDcmVhdGVJbWFnZScsXG5cbiAgLyoqXG4gICAqIFRoZSBEaXN0cmlidXRlSW1hZ2UgYWN0aW9uIGNvcGllcyBhbiBBTUkgdXNpbmcgdGhlIGltYWdlJ3MgZGlzdHJpYnV0aW9uIGNvbmZpZ3VyYXRpb24sIG9yIHVzaW5nIHRoZSBkaXN0cmlidXRpb25cbiAgICogc2V0dGluZ3MgaW4gdGhlIHN0ZXAgaW5wdXRcbiAgICovXG4gIERJU1RSSUJVVEVfSU1BR0UgPSAnRGlzdHJpYnV0ZUltYWdlJyxcblxuICAvKipcbiAgICogVGhlIEV4ZWN1dGVDb21wb25lbnRzIGFjdGlvbiBydW5zIGNvbXBvbmVudHMgdGhhdCBhcmUgc3BlY2lmaWVkIGluIHRoZSByZWNpcGUgZm9yIHRoZSBjdXJyZW50IGltYWdlIGJlaW5nIGJ1aWx0XG4gICAqL1xuICBFWEVDVVRFX0NPTVBPTkVOVFMgPSAnRXhlY3V0ZUNvbXBvbmVudHMnLFxuXG4gIC8qKlxuICAgKiBUaGUgRXhlY3V0ZVN0YXRlTWFjaGluZSBhY3Rpb24gZXhlY3V0ZXMgYSB0aGUgc3RhdGUgbWFjaGluZSBwcm92aWRlZCBhbmQgd2FpdHMgZm9yIGNvbXBsZXRpb24gYXMgcGFydCBvZiB0aGVcbiAgICogd29ya2Zsb3dcbiAgICovXG4gIEVYRUNVVEVfU1RBVEVfTUFDSElORSA9ICdFeGVjdXRlU3RhdGVNYWNoaW5lJyxcblxuICAvKipcbiAgICogVGhlIExhdW5jaEluc3RhbmNlIGFjdGlvbiBsYXVuY2hlcyBhbiBpbnN0YW5jZSB1c2luZyB0aGUgc2V0dGluZ3MgZnJvbSB5b3VyIHJlY2lwZSBhbmQgaW5mcmFzdHJ1Y3R1cmUgY29uZmlndXJhdGlvblxuICAgKiByZXNvdXJjZXNcbiAgICovXG4gIExBVU5DSF9JTlNUQU5DRSA9ICdMYXVuY2hJbnN0YW5jZScsXG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgYXR0cmlidXRlIHVwZGF0ZXMgdG8gdGhlIHByb3ZpZGVkIHNldCBvZiBkaXN0cmlidXRlZCBpbWFnZXMsIHN1Y2ggYXMgbGF1bmNoIHBlcm1pc3Npb24gdXBkYXRlc1xuICAgKi9cbiAgTU9ESUZZX0lNQUdFX0FUVFJJQlVURVMgPSAnTW9kaWZ5SW1hZ2VBdHRyaWJ1dGVzJyxcblxuICAvKipcbiAgICogVGhlIFJ1bkNvbW1hbmQgYWN0aW9uIHJ1bnMgYSBjb21tYW5kIGRvY3VtZW50IGFnYWluc3QgdGhlIHByb3ZpZGVkIGluc3RhbmNlXG4gICAqL1xuICBSVU5fQ09NTUFORCA9ICdSdW5Db21tYW5kJyxcblxuICAvKipcbiAgICogVGhlIFJlZ2lzdGVySW1hZ2UgYWN0aW9uIGNyZWF0ZXMgYW4gQU1JIGZyb20gYSBzZXQgb2Ygc25hcHNob3RzIHdpdGggdGhlIGVjMjpSZWdpc3RlckltYWdlIEFQSVxuICAgKi9cbiAgUkVHSVNURVJfSU1BR0UgPSAnUmVnaXN0ZXJJbWFnZScsXG5cbiAgLyoqXG4gICAqIFRoZSBSdW5TeXNwcmVwIGFjdGlvbiBydW5zIHRoZSBTeXNwcmVwIGRvY3VtZW50IG9uIHRoZSBwcm92aWRlZCBXaW5kb3dzIGluc3RhbmNlXG4gICAqL1xuICBSVU5fU1lTX1BSRVAgPSAnUnVuU3lzUHJlcCcsXG5cbiAgLyoqXG4gICAqIFRoZSBTYW5pdGl6ZUluc3RhbmNlIGFjdGlvbiBydW5zIGEgcmVjb21tZW5kZWQgc2FuaXRpemF0aW9uIHNjcmlwdCBvbiBMaW51eCBpbnN0YW5jZXNcbiAgICovXG4gIFNBTklUSVpFX0lOU1RBTkNFID0gJ1Nhbml0aXplSW5zdGFuY2UnLFxuXG4gIC8qKlxuICAgKiBUaGUgVGVybWluYXRlSW5zdGFuY2UgYWN0aW9uIHRlcm1pbmF0ZXMgdGhlIHByb3ZpZGVkIGluc3RhbmNlXG4gICAqL1xuICBURVJNSU5BVEVfSU5TVEFOQ0UgPSAnVGVybWluYXRlSW5zdGFuY2UnLFxuXG4gIC8qKlxuICAgKiBUaGUgV2FpdEZvckFjdGlvbiBhY3Rpb24gcGF1c2VzIHRoZSB3b3JrZmxvdyBhbmQgd2FpdHMgdG8gcmVjZWl2ZSBhbiBleHRlcm5hbCBzaWduYWwgZnJvbSB0aGVcbiAgICogaW1hZ2VidWlsZGVyOlNlbmRXb3JrZmxvd1N0ZXBBY3Rpb24gQVBJXG4gICAqL1xuICBXQUlUX0ZPUl9BQ1RJT04gPSAnV2FpdEZvckFjdGlvbicsXG5cbiAgLyoqXG4gICAqIFRoZSBXYWl0Rm9yU1NNQWdlbnQgYWN0aW9uIHdhaXRzIGZvciB0aGUgZ2l2ZW4gaW5zdGFuY2UgdG8gaGF2ZSBjb25uZWN0aXZpdHkgd2l0aCBTU00gYmVmb3JlIHByb2NlZWRpbmdcbiAgICovXG4gIFdBSVRfRk9SX1NTTV9BR0VOVCA9ICdXYWl0Rm9yU1NNQWdlbnQnLFxufVxuXG4vKipcbiAqIFRoZSBhY3Rpb24gdG8gdGFrZSBpZiB0aGUgd29ya2Zsb3cgZmFpbHNcbiAqL1xuZXhwb3J0IGVudW0gV29ya2Zsb3dPbkZhaWx1cmUge1xuICAvKipcbiAgICogRmFpbHMgdGhlIGltYWdlIGJ1aWxkIGlmIHRoZSB3b3JrZmxvdyBmYWlsc1xuICAgKi9cbiAgQUJPUlQgPSAnQWJvcnQnLFxuXG4gIC8qKlxuICAgKiBDb250aW51ZXMgd2l0aCB0aGUgaW1hZ2UgYnVpbGQgaWYgdGhlIHdvcmtmbG93IGZhaWxzXG4gICAqL1xuICBDT05USU5VRSA9ICdDb250aW51ZScsXG59XG5cbi8qKlxuICogVGhlIHBhcmFtZXRlciB0eXBlIGZvciB0aGUgd29ya2Zsb3cgcGFyYW1ldGVyXG4gKi9cbmV4cG9ydCBlbnVtIFdvcmtmbG93UGFyYW1ldGVyVHlwZSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHdvcmtmbG93IHBhcmFtZXRlciBoYXMgYSBib29sZWFuIHZhbHVlXG4gICAqL1xuICBCT09MRUFOID0gJ2Jvb2xlYW4nLFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHdvcmtmbG93IHBhcmFtZXRlciBoYXMgYW4gaW50ZWdlciB2YWx1ZVxuICAgKi9cbiAgSU5URUdFUiA9ICdpbnRlZ2VyJyxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSB3b3JrZmxvdyBwYXJhbWV0ZXIgaGFzIGEgc3RyaW5nIHZhbHVlXG4gICAqL1xuICBTVFJJTkcgPSAnc3RyaW5nJyxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSB3b3JrZmxvdyBwYXJhbWV0ZXIgaGFzIGEgc3RyaW5nIGxpc3QgdmFsdWVcbiAgICovXG4gIFNUUklOR19MSVNUID0gJ3N0cmluZ0xpc3QnLFxufVxuXG4vKipcbiAqIFRoZSBzY2hlbWEgdmVyc2lvbiBvZiB0aGUgd29ya2Zsb3dcbiAqL1xuZXhwb3J0IGVudW0gV29ya2Zsb3dTY2hlbWFWZXJzaW9uIHtcbiAgLyoqXG4gICAqIFNjaGVtYSB2ZXJzaW9uIDEuMCBmb3IgdGhlIHdvcmtmbG93IGRvY3VtZW50XG4gICAqL1xuICBWMV8wID0gJzEuMCcsXG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gKi9cbmV4cG9ydCBlbnVtIFdvcmtmbG93VHlwZSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHdvcmtmbG93IGlzIGZvciBidWlsZGluZyBpbWFnZXNcbiAgICovXG4gIEJVSUxEID0gJ0JVSUxEJyxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSB3b3JrZmxvdyBpcyBmb3IgdGVzdGluZyBpbWFnZXNcbiAgICovXG4gIFRFU1QgPSAnVEVTVCcsXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgd29ya2Zsb3cgaXMgZm9yIGRpc3RyaWJ1dGluZyBpbWFnZXNcbiAgICovXG4gIERJU1RSSUJVVElPTiA9ICdESVNUUklCVVRJT04nLFxufVxuXG4vKipcbiAqIFRoZSByZW5kZXJlZCB3b3JrZmxvdyBkYXRhIHZhbHVlLCBmb3IgdXNlIGluIENsb3VkRm9ybWF0aW9uLlxuICogLSBGb3IgaW5saW5lIHdvcmtmbG93cywgZGF0YSBpcyB0aGUgd29ya2Zsb3cgdGV4dFxuICogLSBGb3IgUzMtYmFja2VkIHdvcmtmbG93cywgdXJpIGlzIHRoZSBTMyBVUkxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0RhdGFDb25maWcge1xuICAvKipcbiAgICogVGhlIHJlbmRlcmVkIHdvcmtmbG93IGRhdGEsIGZvciB1c2UgaW4gQ2xvdWRGb3JtYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lIGlmIHVyaSBpcyBzZXRcbiAgICovXG4gIHJlYWRvbmx5IGRhdGE/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZW5kZXJlZCB3b3JrZmxvdyBkYXRhIFVSSSwgZm9yIHVzZSBpbiBDbG91ZEZvcm1hdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmUgaWYgZGF0YSBpcyBzZXRcbiAgICovXG4gIHJlYWRvbmx5IHVyaT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIHJlZmVyZW5jaW5nIGFuZCB1cGxvYWRpbmcgd29ya2Zsb3cgZGF0YVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV29ya2Zsb3dEYXRhIHtcbiAgLyoqXG4gICAqIFVwbG9hZHMgd29ya2Zsb3cgZGF0YSBmcm9tIGEgbG9jYWwgZmlsZSB0byBTMyB0byB1c2UgYXMgdGhlIHdvcmtmbG93IGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gcGF0aCBUaGUgbG9jYWwgcGF0aCB0byB0aGUgd29ya2Zsb3cgZGF0YSBmaWxlXG4gICAqIEBwYXJhbSBvcHRpb25zIFMzIGFzc2V0IHVwbG9hZCBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Bc3NldChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHMzYXNzZXRzLkFzc2V0T3B0aW9ucyA9IHt9LFxuICApOiBTM1dvcmtmbG93RGF0YSB7XG4gICAgY29uc3QgYXNzZXQgPSBuZXcgczNhc3NldHMuQXNzZXQoc2NvcGUsIGlkLCB7IC4uLm9wdGlvbnMsIHBhdGggfSk7XG4gICAgcmV0dXJuIG5ldyBTM1dvcmtmbG93RGF0YUZyb21Bc3NldChhc3NldCk7XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlcyB3b3JrZmxvdyBkYXRhIGZyb20gYSBwcmUtZXhpc3RpbmcgUzMgb2JqZWN0XG4gICAqXG4gICAqIEBwYXJhbSBidWNrZXQgVGhlIFMzIGJ1Y2tldCB3aGVyZSB0aGUgd29ya2Zsb3cgZGF0YSBpcyBzdG9yZWRcbiAgICogQHBhcmFtIGtleSBUaGUgUzMga2V5IG9mIHRoZSB3b3JrZmxvdyBkYXRhIGZpbGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVMzKGJ1Y2tldDogczMuSUJ1Y2tldCwga2V5OiBzdHJpbmcpOiBTM1dvcmtmbG93RGF0YSB7XG4gICAgcmV0dXJuIG5ldyBTM1dvcmtmbG93RGF0YUZyb21CdWNrZXRLZXkoYnVja2V0LCBrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZXMgYW4gaW5saW5lIEpTT04gb2JqZWN0IGFzIHRoZSB3b3JrZmxvdyBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIEFuIGlubGluZSBKU09OIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHdvcmtmbG93IGRhdGFcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUpzb25PYmplY3QoZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IFdvcmtmbG93RGF0YSB7XG4gICAgY29uc3QgaW5saW5lRGF0YSA9IHlhbWwuc3RyaW5naWZ5KGRhdGEsIHsgaW5kZW50OiAyIH0pO1xuICAgIHJldHVybiBuZXcgSW5saW5lV29ya2Zsb3dEYXRhKGlubGluZURhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZXMgYW4gaW5saW5lIEpTT04gb3IgWUFNTCBzdHJpbmcgYXMgdGhlIHdvcmtmbG93IGRhdGFcbiAgICpcbiAgICogQHBhcmFtIGRhdGEgQW4gaW5saW5lIEpTT04gb3IgWUFNTCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB3b3JrZmxvdyBkYXRhXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbmxpbmUoZGF0YTogc3RyaW5nKTogV29ya2Zsb3dEYXRhIHtcbiAgICByZXR1cm4gbmV3IElubGluZVdvcmtmbG93RGF0YShkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmVuZGVyZWQgd29ya2Zsb3cgZGF0YSB2YWx1ZSwgZm9yIHVzZSBpbiBDbG91ZEZvcm1hdGlvbi5cbiAgICogLSBGb3IgaW5saW5lIHdvcmtmbG93cywgZGF0YSBpcyB0aGUgd29ya2Zsb3cgdGV4dFxuICAgKiAtIEZvciBTMy1iYWNrZWQgd29ya2Zsb3dzLCB1cmkgaXMgdGhlIFMzIFVSTFxuICAgKi9cbiAgYWJzdHJhY3QgcmVuZGVyKCk6IFdvcmtmbG93RGF0YUNvbmZpZztcbn1cblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIFMzLWJhc2VkIHdvcmtmbG93IGRhdGEgcmVmZXJlbmNlcywgY29udGFpbmluZyBhZGRpdGlvbmFsIHBlcm1pc3Npb24gZ3JhbnQgbWV0aG9kcyBvbiB0aGUgUzMgb2JqZWN0XG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTM1dvcmtmbG93RGF0YSBleHRlbmRzIFdvcmtmbG93RGF0YSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBidWNrZXQ6IHMzLklCdWNrZXQ7XG4gIHByb3RlY3RlZCByZWFkb25seSBrZXk6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYnVja2V0OiBzMy5JQnVja2V0LCBrZXk6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmJ1Y2tldCA9IGJ1Y2tldDtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmVuZGVyZWQgd29ya2Zsb3cgZGF0YSB0ZXh0LCBmb3IgdXNlIGluIENsb3VkRm9ybWF0aW9uXG4gICAqL1xuICBwdWJsaWMgcmVuZGVyKCk6IFdvcmtmbG93RGF0YUNvbmZpZyB7XG4gICAgcmV0dXJuIHsgdXJpOiB0aGlzLmJ1Y2tldC5zM1VybEZvck9iamVjdCh0aGlzLmtleSkgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBwdXQgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSB3b3JrZmxvdyBkYXRhIGluIFMzXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWxcbiAgICovXG4gIHB1YmxpYyBncmFudFB1dChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuYnVja2V0LmdyYW50UHV0KGdyYW50ZWUsIHRoaXMua2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIHRvIHRoZSBnaXZlbiBncmFudGVlIGZvciB0aGUgd29ya2Zsb3cgZGF0YSBpbiBTM1xuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXQuZ3JhbnRSZWFkKGdyYW50ZWUsIHRoaXMua2V5KTtcbiAgfVxufVxuXG5jbGFzcyBJbmxpbmVXb3JrZmxvd0RhdGEgZXh0ZW5kcyBXb3JrZmxvd0RhdGEge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0YTogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmVuZGVyZWQgd29ya2Zsb3cgZGF0YSB0ZXh0LCBmb3IgdXNlIGluIENsb3VkRm9ybWF0aW9uXG4gICAqL1xuICBwdWJsaWMgcmVuZGVyKCk6IFdvcmtmbG93RGF0YUNvbmZpZyB7XG4gICAgcmV0dXJuIHsgZGF0YTogdGhpcy5kYXRhIH07XG4gIH1cbn1cblxuY2xhc3MgUzNXb3JrZmxvd0RhdGFGcm9tQnVja2V0S2V5IGV4dGVuZHMgUzNXb3JrZmxvd0RhdGEge1xuICBwdWJsaWMgY29uc3RydWN0b3IoYnVja2V0OiBzMy5JQnVja2V0LCBrZXk6IHN0cmluZykge1xuICAgIHN1cGVyKGJ1Y2tldCwga2V5KTtcbiAgfVxufVxuXG5jbGFzcyBTM1dvcmtmbG93RGF0YUZyb21Bc3NldCBleHRlbmRzIFMzV29ya2Zsb3dEYXRhIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKGFzc2V0OiBzM2Fzc2V0cy5Bc3NldCkge1xuICAgIHN1cGVyKGFzc2V0LmJ1Y2tldCwgYXNzZXQuczNPYmplY3RLZXkpO1xuICB9XG59XG5cbi8qKlxuICogVGhlIHBhcmFtZXRlciB2YWx1ZSBmb3IgYSB3b3JrZmxvdyBwYXJhbWV0ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFdvcmtmbG93UGFyYW1ldGVyVmFsdWUge1xuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIgYXMgYSBib29sZWFuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgYm9vbGVhbiB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Cb29sZWFuKHZhbHVlOiBib29sZWFuKTogV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZSB7XG4gICAgcmV0dXJuIG5ldyBXb3JrZmxvd1BhcmFtZXRlclZhbHVlKFt2YWx1ZS50b1N0cmluZygpXSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIgYXMgYW4gaW50ZWdlclxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIGludGVnZXIgdmFsdWUgb2YgdGhlIHBhcmFtZXRlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tSW50ZWdlcih2YWx1ZTogbnVtYmVyKTogV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZSB7XG4gICAgcmV0dXJuIG5ldyBXb3JrZmxvd1BhcmFtZXRlclZhbHVlKFt2YWx1ZS50b1N0cmluZygpXSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIgYXMgYSBzdHJpbmdcbiAgICogQHBhcmFtIHZhbHVlIFRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlIHBhcmFtZXRlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBXb3JrZmxvd1BhcmFtZXRlclZhbHVlIHtcbiAgICByZXR1cm4gbmV3IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUoW3ZhbHVlXSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIgYXMgYSBzdHJpbmcgbGlzdFxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVzIFRoZSBzdHJpbmcgbGlzdCB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdHJpbmdMaXN0KHZhbHVlczogc3RyaW5nW10pOiBXb3JrZmxvd1BhcmFtZXRlclZhbHVlIHtcbiAgICByZXR1cm4gbmV3IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUodmFsdWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcmVuZGVyZWQgcGFyYW1ldGVyIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZ1tdO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGRldGFpbHMgZm9yIGEgd29ya2Zsb3dcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0NvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogVGhlIHdvcmtmbG93IHRvIGV4ZWN1dGUgaW4gdGhlIGltYWdlIGJ1aWxkXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvdzogSVdvcmtmbG93O1xuXG4gIC8qKlxuICAgKiBUaGUgYWN0aW9uIHRvIHRha2UgaWYgdGhlIHdvcmtmbG93IGZhaWxzXG4gICAqXG4gICAqIEBkZWZhdWx0IFdvcmtmbG93T25GYWlsdXJlLkFCT1JUXG4gICAqL1xuICByZWFkb25seSBvbkZhaWx1cmU/OiBXb3JrZmxvd09uRmFpbHVyZTtcblxuICAvKipcbiAgICogVGhlIG5hbWVkIHBhcmFsbGVsIGdyb3VwIHRvIGluY2x1ZGUgdGhpcyB3b3JrZmxvdyBpbi4gV29ya2Zsb3dzIGluIHRoZSBzYW1lIHBhcmFsbGVsIGdyb3VwIHJ1biBpbiBwYXJhbGxlbCBvZiBlYWNoXG4gICAqIG90aGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBwYXJhbGxlbEdyb3VwPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVycyB0byBwYXNzIHRvIHRoZSB3b3JrZmxvdyBhdCBleGVjdXRpb24gdGltZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmUgaWYgdGhlIHdvcmtmbG93IGhhcyBubyBwYXJhbWV0ZXJzLCBvdGhlcndpc2UgdGhlIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IHsgW25hbWU6IHN0cmluZ106IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUgfTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgY2xhc3MgZm9yIHdvcmtpbmcgd2l0aCBBV1MtbWFuYWdlZCB3b3JrZmxvd3NcbiAqL1xuZXhwb3J0IGNsYXNzIEF3c01hbmFnZWRXb3JrZmxvdyB7XG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBidWlsZC1jb250YWluZXIgQVdTLW1hbmFnZWQgd29ya2Zsb3dcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBidWlsZENvbnRhaW5lcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKTogSVdvcmtmbG93IHtcbiAgICByZXR1cm4gdGhpcy5mcm9tQXdzTWFuYWdlZFdvcmtmbG93QXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ2J1aWxkLWNvbnRhaW5lcicsXG4gICAgICB3b3JrZmxvd1R5cGU6IFdvcmtmbG93VHlwZS5CVUlMRCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBidWlsZC1pbWFnZSBBV1MtbWFuYWdlZCB3b3JrZmxvd1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGJ1aWxkSW1hZ2Uoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZyk6IElXb3JrZmxvdyB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUF3c01hbmFnZWRXb3JrZmxvd0F0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdidWlsZC1pbWFnZScsXG4gICAgICB3b3JrZmxvd1R5cGU6IFdvcmtmbG93VHlwZS5CVUlMRCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSBkaXN0cmlidXRlLWNvbnRhaW5lciBBV1MtbWFuYWdlZCB3b3JrZmxvd1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGRpc3RyaWJ1dGVDb250YWluZXIoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZyk6IElXb3JrZmxvdyB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUF3c01hbmFnZWRXb3JrZmxvd0F0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdkaXN0cmlidXRlLWNvbnRhaW5lcicsXG4gICAgICB3b3JrZmxvd1R5cGU6IFdvcmtmbG93VHlwZS5ESVNUUklCVVRJT04sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyB0aGUgdGVzdC1jb250YWluZXIgQVdTLW1hbmFnZWQgd29ya2Zsb3dcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIElkZW50aWZpZXIgb2YgdGhlIGNvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0ZXN0Q29udGFpbmVyKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21Bd3NNYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAndGVzdC1jb250YWluZXInLFxuICAgICAgd29ya2Zsb3dUeXBlOiBXb3JrZmxvd1R5cGUuVEVTVCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIHRoZSB0ZXN0LWltYWdlIEFXUy1tYW5hZ2VkIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdGVzdEltYWdlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21Bd3NNYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgd29ya2Zsb3dOYW1lOiAndGVzdC1pbWFnZScsXG4gICAgICB3b3JrZmxvd1R5cGU6IFdvcmtmbG93VHlwZS5URVNULFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgYW4gQVdTLW1hbmFnZWQgd29ya2Zsb3cgZnJvbSBpdHMgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBvZiB0aGUgQVdTLW1hbmFnZWQgd29ya2Zsb3dcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUF3c01hbmFnZWRXb3JrZmxvd0F0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBBd3NNYW5hZ2VkV29ya2Zsb3dBdHRyaWJ1dGVzLFxuICApOiBJV29ya2Zsb3cge1xuICAgIGlmIChjZGsuVG9rZW4uaXNVbnJlc29sdmVkKGF0dHJzLndvcmtmbG93VHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd3b3JrZmxvd1R5cGUgY2Fubm90IGJlIGEgdG9rZW4nLCBzY29wZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFdvcmtmbG93LmZyb21Xb3JrZmxvd0FybihcbiAgICAgIHNjb3BlLFxuICAgICAgaWQsXG4gICAgICBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICAgIHNlcnZpY2U6ICdpbWFnZWJ1aWxkZXInLFxuICAgICAgICBhY2NvdW50OiAnYXdzJyxcbiAgICAgICAgcmVzb3VyY2U6ICd3b3JrZmxvdycsXG4gICAgICAgIHJlc291cmNlTmFtZTogYCR7YXR0cnMud29ya2Zsb3dUeXBlLnRvTG93ZXJDYXNlKCl9LyR7YXR0cnMud29ya2Zsb3dOYW1lfS8ke0xBVEVTVF9WRVJTSU9OfWAsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogQSBuZXcgb3IgaW1wb3J0ZWQgV29ya2Zsb3dcbiAqL1xuYWJzdHJhY3QgY2xhc3MgV29ya2Zsb3dCYXNlIGV4dGVuZHMgY2RrLlJlc291cmNlIGltcGxlbWVudHMgSVdvcmtmbG93IHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSB3b3JrZmxvd0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgd29ya2Zsb3dcbiAgICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IHdvcmtmbG93TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgd29ya2Zsb3dcbiAgICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IHdvcmtmbG93VHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgd29ya2Zsb3dcbiAgICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IHdvcmtmbG93VmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHcmFudCBjdXN0b20gYWN0aW9ucyB0byB0aGUgZ2l2ZW4gZ3JhbnRlZSBmb3IgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWxcbiAgICogQHBhcmFtIGFjdGlvbnMgVGhlIGxpc3Qgb2YgYWN0aW9uc1xuICAgKi9cbiAgcHVibGljIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9ucyxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMud29ya2Zsb3dBcm5dLFxuICAgICAgc2NvcGU6IHRoaXMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gZ3JhbnRlZSBmb3IgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWxcbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmdyYW50KGdyYW50ZWUsICdpbWFnZWJ1aWxkZXI6R2V0V29ya2Zsb3cnKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gRUMyIEltYWdlIEJ1aWxkZXIgV29ya2Zsb3cuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW1hZ2VidWlsZGVyL2xhdGVzdC91c2VyZ3VpZGUvbWFuYWdlLWltYWdlLXdvcmtmbG93cy5odG1sXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBXb3JrZmxvdyBleHRlbmRzIFdvcmtmbG93QmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWltYWdlYnVpbGRlci1hbHBoYS5Xb3JrZmxvdyc7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyB3b3JrZmxvdyBnaXZlbiBpdHMgQVJOLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tV29ya2Zsb3dBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgd29ya2Zsb3dBcm46IHN0cmluZyk6IElXb3JrZmxvdyB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbVdvcmtmbG93QXR0cmlidXRlcyhzY29wZSwgaWQsIHsgd29ya2Zsb3dBcm4gfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIHdvcmtmbG93IGJ5IHByb3ZpZGluZyBpdHMgYXR0cmlidXRlcy4gVGhlIHByb3ZpZGVkIG5hbWUgbXVzdCBiZSBub3JtYWxpemVkIGJ5IGNvbnZlcnRpbmdcbiAgICogYWxsIGFscGhhYmV0aWNhbCBjaGFyYWN0ZXJzIHRvIGxvd2VyY2FzZSwgYW5kIHJlcGxhY2luZyBhbGwgc3BhY2VzIGFuZCB1bmRlcnNjb3JlcyB3aXRoIGh5cGhlbnMuIFlvdSBtYXkgbm90XG4gICAqIHByb3ZpZGUgYSBkeW5hbWljIGV4cHJlc3Npb24gZm9yIHRoZSB3b3JrZmxvd0FybiBvciB3b3JrZmxvd1R5cGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVdvcmtmbG93QXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogV29ya2Zsb3dBdHRyaWJ1dGVzKTogSVdvcmtmbG93IHtcbiAgICBpZiAoXG4gICAgICBhdHRycy53b3JrZmxvd0FybiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAoYXR0cnMud29ya2Zsb3dOYW1lICE9PSB1bmRlZmluZWQgfHwgYXR0cnMud29ya2Zsb3dUeXBlICE9PSB1bmRlZmluZWQgfHwgYXR0cnMud29ya2Zsb3dWZXJzaW9uICE9PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgJ2Egd29ya2Zsb3dOYW1lLCB3b3JrZmxvd1R5cGUsIG9yIHdvcmtmbG93VmVyc2lvbiBjYW5ub3QgYmUgcHJvdmlkZWQgd2hlbiBhIHdvcmtmbG93QXJuIGlzIHByb3ZpZGVkJyxcbiAgICAgICAgc2NvcGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChhdHRycy53b3JrZmxvd0FybiA9PT0gdW5kZWZpbmVkICYmIChhdHRycy53b3JrZmxvd05hbWUgPT09IHVuZGVmaW5lZCB8fCBhdHRycy53b3JrZmxvd1R5cGUgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCdlaXRoZXIgd29ya2Zsb3dBcm4sIG9yIHdvcmtmbG93TmFtZSBhbmQgd29ya2Zsb3dUeXBlIGlzIHJlcXVpcmVkJywgc2NvcGUpO1xuICAgIH1cblxuICAgIGlmIChhdHRycy53b3JrZmxvd1R5cGUgJiYgY2RrLlRva2VuLmlzVW5yZXNvbHZlZChhdHRycy53b3JrZmxvd1R5cGUpKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignd29ya2Zsb3dUeXBlIGNhbm5vdCBiZSBhbiB1bnJlc29sdmVkIHRva2VuJywgc2NvcGUpO1xuICAgIH1cblxuICAgIGNvbnN0IHdvcmtmbG93QXJuID0gKCgpID0+IHtcbiAgICAgIGlmIChhdHRycy53b3JrZmxvd0FybiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBhdHRycy53b3JrZmxvd0FybjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2ltYWdlYnVpbGRlcicsXG4gICAgICAgIHJlc291cmNlOiAnd29ya2Zsb3cnLFxuICAgICAgICByZXNvdXJjZU5hbWU6IGAke2F0dHJzLndvcmtmbG93VHlwZSEudG9Mb3dlckNhc2UoKX0vJHthdHRycy53b3JrZmxvd05hbWUhfS8ke2F0dHJzLndvcmtmbG93VmVyc2lvbiA/PyBMQVRFU1RfVkVSU0lPTn1gLFxuICAgICAgfSk7XG4gICAgfSkoKTtcblxuICAgIGNvbnN0IFt3b3JrZmxvd1R5cGUsIHdvcmtmbG93TmFtZSwgd29ya2Zsb3dWZXJzaW9uXSA9ICgoKSA9PiB7XG4gICAgICBpZiAoYXR0cnMud29ya2Zsb3dOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIFthdHRycy53b3JrZmxvd1R5cGUhLnRvVXBwZXJDYXNlKCksIGF0dHJzLndvcmtmbG93TmFtZSwgYXR0cnMud29ya2Zsb3dWZXJzaW9uID8/IExBVEVTVF9WRVJTSU9OXTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgd29ya2Zsb3dOYW1lVHlwZVZlcnNpb24gPSBjZGsuU3RhY2sub2Yoc2NvcGUpLnNwbGl0QXJuKFxuICAgICAgICB3b3JrZmxvd0FybixcbiAgICAgICAgY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgICAgKS5yZXNvdXJjZU5hbWUhO1xuXG4gICAgICBpZiAoY2RrLlRva2VuLmlzVW5yZXNvbHZlZCh3b3JrZmxvd05hbWVUeXBlVmVyc2lvbikpIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgJ3RoZSB3b3JrZmxvd05hbWUsIHdvcmtmbG93VHlwZSwgYW5kIHdvcmtmbG93VmVyc2lvbiBpbiB0aGUgd29ya2Zsb3dBcm4gY2Fubm90IGJlIGFuIHVucmVzb2x2ZWQgdG9rZW4nLFxuICAgICAgICAgIHNjb3BlLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAod29ya2Zsb3dOYW1lVHlwZVZlcnNpb24uc3BsaXQoJy8nKS5sZW5ndGggPCAzKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgICd0aGUgd29ya2Zsb3cgQVJOIG11c3QgZW5kIHdpdGggPHdvcmtmbG93LXR5cGU+Lzx3b3JrZmxvdy1uYW1lPi88d29ya2Zsb3ctdmVyc2lvbj4nLFxuICAgICAgICAgIHNjb3BlLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB3b3JrZmxvd05hbWVUeXBlVmVyc2lvblNwbGl0ID0gd29ya2Zsb3dOYW1lVHlwZVZlcnNpb24uc3BsaXQoJy8nKTtcbiAgICAgIGNvbnN0IFt3b3JrZmxvd1R5cGVGcm9tQXJuLCB3b3JrZmxvd05hbWVGcm9tQXJuLCB3b3JrZmxvd1ZlcnNpb25Gcm9tQXJuXSA9IHdvcmtmbG93TmFtZVR5cGVWZXJzaW9uU3BsaXQuc2xpY2UoXG4gICAgICAgIDAsXG4gICAgICAgIDMsXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gW3dvcmtmbG93VHlwZUZyb21Bcm4udG9VcHBlckNhc2UoKSwgd29ya2Zsb3dOYW1lRnJvbUFybiwgd29ya2Zsb3dWZXJzaW9uRnJvbUFybl07XG4gICAgfSkoKTtcblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFdvcmtmbG93QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dBcm4gPSB3b3JrZmxvd0FybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSB3b3JrZmxvd05hbWUgPSB3b3JrZmxvd05hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dUeXBlID0gd29ya2Zsb3dUeXBlO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93VmVyc2lvbiA9IHdvcmtmbG93VmVyc2lvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBXb3JrZmxvdy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNXb3JrZmxvdyh4OiBhbnkpOiB4IGlzIFdvcmtmbG93IHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgV09SS0ZMT1dfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgd29ya2Zsb3dcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB3b3JrZmxvd0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgd29ya2Zsb3dcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dUeXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSB3b3JrZmxvd1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93VmVyc2lvbjogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV29ya2Zsb3dQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOlxuICAgICAgICBwcm9wcy53b3JrZmxvd05hbWUgPz9cbiAgICAgICAgY2RrLkxhenkuc3RyaW5nKHtcbiAgICAgICAgICBwcm9kdWNlOiAoKSA9PlxuICAgICAgICAgICAgY2RrLk5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgICAgICAgIG1heExlbmd0aDogMTI4LFxuICAgICAgICAgICAgICBzZXBhcmF0b3I6ICctJyxcbiAgICAgICAgICAgICAgYWxsb3dlZFNwZWNpYWxDaGFyYWN0ZXJzOiAnLScsXG4gICAgICAgICAgICB9KS50b0xvd2VyQ2FzZSgpLCAvLyBFbmZvcmNlIGxvd2VyY2FzZSBmb3IgdGhlIGF1dG8tZ2VuZXJhdGVkIGZhbGxiYWNrXG4gICAgICAgIH0pLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFdPUktGTE9XX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMudmFsaWRhdGVXb3JrZmxvd05hbWUoKTtcblxuICAgIGNvbnN0IHdvcmtmbG93VmVyc2lvbiA9IHByb3BzLndvcmtmbG93VmVyc2lvbiA/PyAnMS4wLjAnO1xuICAgIGNvbnN0IHdvcmtmbG93ID0gbmV3IENmbldvcmtmbG93KHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgdmVyc2lvbjogd29ya2Zsb3dWZXJzaW9uLFxuICAgICAgdHlwZTogcHJvcHMud29ya2Zsb3dUeXBlLFxuICAgICAgY2hhbmdlRGVzY3JpcHRpb246IHByb3BzLmNoYW5nZURlc2NyaXB0aW9uLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAga21zS2V5SWQ6IHByb3BzLmttc0tleT8ua2V5QXJuLFxuICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgIC4uLnByb3BzLmRhdGEucmVuZGVyKCksXG4gICAgfSk7XG5cbiAgICB0aGlzLndvcmtmbG93TmFtZSA9IHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHdvcmtmbG93LmdldEF0dCgnTmFtZScpLnRvU3RyaW5nKCkpO1xuICAgIHRoaXMud29ya2Zsb3dBcm4gPSB3b3JrZmxvdy5hdHRyQXJuO1xuICAgIHRoaXMud29ya2Zsb3dWZXJzaW9uID0gd29ya2Zsb3dWZXJzaW9uO1xuICAgIHRoaXMud29ya2Zsb3dUeXBlID0gcHJvcHMud29ya2Zsb3dUeXBlO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVdvcmtmbG93TmFtZSgpIHtcbiAgICBpZiAoY2RrLlRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLnBoeXNpY2FsTmFtZSkpIHtcbiAgICAgIHJldHVybjsgLy8gQ2Fubm90IHZhbGlkYXRlIHVucmVzb2x2ZWQgdG9rZW5zLCBnaXZlbiB0aGVpciBhY3R1YWwgdmFsdWUgaXMgcmVuZGVyZWQgYXQgZGVwbG95bWVudCB0aW1lXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGh5c2ljYWxOYW1lLmxlbmd0aCA+IDEyOCkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3RoZSB3b3JrZmxvd05hbWUgY2Fubm90IGJlIGxvbmdlciB0aGFuIDEyOCBjaGFyYWN0ZXJzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGh5c2ljYWxOYW1lLmluY2x1ZGVzKCcgJykpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd0aGUgd29ya2Zsb3dOYW1lIGNhbm5vdCBjb250YWluIHNwYWNlcycsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBoeXNpY2FsTmFtZS5pbmNsdWRlcygnXycpKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcigndGhlIHdvcmtmbG93TmFtZSBjYW5ub3QgY29udGFpbiB1bmRlcnNjb3JlcycsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBoeXNpY2FsTmFtZSAhPT0gdGhpcy5waHlzaWNhbE5hbWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3RoZSB3b3JrZmxvd05hbWUgbXVzdCBiZSBsb3dlcmNhc2UnLCB0aGlzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
548
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQTJDO0FBQzNDLG1FQUEyRDtBQUczRCxzREFBc0Q7QUFDdEQsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUUxRSw2QkFBNkI7QUFFN0IsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBRS9FOzs7OztHQUtHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDO0FBOEkvQjs7R0FFRztBQUNILElBQVksY0E0Rlg7QUE1RkQsV0FBWSxjQUFjO0lBQ3hCOzs7T0FHRztJQUNILHlFQUF1RCxDQUFBO0lBRXZEOzs7T0FHRztJQUNILG9GQUFrRSxDQUFBO0lBRWxFOzs7T0FHRztJQUNILGlFQUErQyxDQUFBO0lBRS9DOztPQUVHO0lBQ0gsMEVBQXdELENBQUE7SUFFeEQ7O09BRUc7SUFDSCw4Q0FBNEIsQ0FBQTtJQUU1Qjs7O09BR0c7SUFDSCxzREFBb0MsQ0FBQTtJQUVwQzs7T0FFRztJQUNILDBEQUF3QyxDQUFBO0lBRXhDOzs7T0FHRztJQUNILCtEQUE2QyxDQUFBO0lBRTdDOzs7T0FHRztJQUNILG9EQUFrQyxDQUFBO0lBRWxDOztPQUVHO0lBQ0gsbUVBQWlELENBQUE7SUFFakQ7O09BRUc7SUFDSCw0Q0FBMEIsQ0FBQTtJQUUxQjs7T0FFRztJQUNILGtEQUFnQyxDQUFBO0lBRWhDOztPQUVHO0lBQ0gsNkNBQTJCLENBQUE7SUFFM0I7O09BRUc7SUFDSCx3REFBc0MsQ0FBQTtJQUV0Qzs7T0FFRztJQUNILDBEQUF3QyxDQUFBO0lBRXhDOzs7T0FHRztJQUNILG1EQUFpQyxDQUFBO0lBRWpDOztPQUVHO0lBQ0gsd0RBQXNDLENBQUE7QUFDeEMsQ0FBQyxFQTVGVyxjQUFjLDhC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QUFHLEdBQUcsRUFBRSxDQUFDO2dCQUNuQyxNQUFNLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyx1REFBdUQsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMvRixDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyx3Q0FBd0MsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRixDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyw2Q0FBNkMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNyRixDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztnQkFDMUQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsb0NBQW9DLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUUsQ0FBQztTQUNGOztZQS9LVSx1REFBUTs7Ozs7QUFBUiw0QkFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBDZm5Xb3JrZmxvdyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pbWFnZWJ1aWxkZXInO1xuaW1wb3J0ICogYXMga21zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHMzYXNzZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyB5YW1sIGZyb20gJ3lhbWwnO1xuXG5jb25zdCBXT1JLRkxPV19TWU1CT0wgPSBTeW1ib2wuZm9yKCdAYXdzLWNkay9hd3MtaW1hZ2VidWlsZGVyLWFscGhhLldvcmtmbG93Jyk7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgYSB3b3JrZmxvdy4gV2hlbiB1c2luZyB0aGUgd29ya2Zsb3cgaW4gYSBwaXBlbGluZSwgdGhlIHBpcGVsaW5lIHdpbGwgdXNlIHRoZVxuICogbGF0ZXN0IHdvcmtmbG93IGF0IHRoZSB0aW1lIG9mIGV4ZWN1dGlvbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9pbWFnZWJ1aWxkZXIvbGF0ZXN0L3VzZXJndWlkZS9pYmhvdy1zZW1hbnRpYy12ZXJzaW9uaW5nLmh0bWxcbiAqL1xuY29uc3QgTEFURVNUX1ZFUlNJT04gPSAneC54LngnO1xuXG4vKipcbiAqIEFuIEVDMiBJbWFnZSBCdWlsZGVyIFdvcmtmbG93LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElXb3JrZmxvdyBleHRlbmRzIGNkay5JUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dUeXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSB3b3JrZmxvd1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd1ZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnQgY3VzdG9tIGFjdGlvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSB3b3JrZmxvd1xuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBhY3Rpb25zIFRoZSBsaXN0IG9mIGFjdGlvbnNcbiAgICovXG4gIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gZ3JhbnRlZSBmb3IgdGhlIHdvcmtmbG93XG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWxcbiAgICovXG4gIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIFdvcmtmbG93IHJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgd29ya2Zsb3cgZG9jdW1lbnQgY29udGVudCB0aGF0IGRlZmluZXMgdGhlIGltYWdlIGNyZWF0aW9uIHByb2Nlc3MuXG4gICAqL1xuICByZWFkb25seSBkYXRhOiBXb3JrZmxvd0RhdGE7XG5cbiAgLyoqXG4gICAqIFRoZSBwaGFzZSBpbiB0aGUgaW1hZ2UgYnVpbGQgcHJvY2VzcyBmb3Igd2hpY2ggdGhlIHdvcmtmbG93IHJlc291cmNlIGlzIHJlc3BvbnNpYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dUeXBlOiBXb3JrZmxvd1R5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB3b3JrZmxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5hbWUgaXMgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSB3b3JrZmxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgMS4wLjBcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSB3b3JrZmxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjaGFuZ2UgZGVzY3JpcHRpb24gb2YgdGhlIHdvcmtmbG93LiBEZXNjcmliZXMgd2hhdCBjaGFuZ2UgaGFzIGJlZW4gbWFkZSBpbiB0aGlzIHZlcnNpb24gb2YgdGhlIHdvcmtmbG93LCBvclxuICAgKiB3aGF0IG1ha2VzIHRoaXMgdmVyc2lvbiBkaWZmZXJlbnQgZnJvbSBvdGhlciB2ZXJzaW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlRGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBLTVMga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGlzIHdvcmtmbG93LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFuIEltYWdlIEJ1aWxkZXIgb3duZWQga2V5IHdpbGwgYmUgdXNlZCB0byBlbmNyeXB0IHRoZSB3b3JrZmxvdy5cbiAgICovXG4gIHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFncyB0byBhcHBseSB0byB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYW4gRUMyIEltYWdlIEJ1aWxkZXIgV29ya2Zsb3dcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0F0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgQVJOIGlzIGF1dG9tYXRpY2FsbHkgY29uc3RydWN0ZWQgaWYgYSB3b3JrZmxvd05hbWUgYW5kIHdvcmtmbG93VHlwZSBpcyBwcm92aWRlZCwgb3RoZXJ3aXNlIGFcbiAgICogd29ya2Zsb3dBcm4gaXMgcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93QXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgbmFtZSBpcyBhdXRvbWF0aWNhbGx5IGNvbnN0cnVjdGVkIGlmIGEgd29ya2Zsb3dBcm4gaXMgcHJvdmlkZWQsIG90aGVyd2lzZSBhIHdvcmtmbG93TmFtZSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgdHlwZSBpcyBhdXRvbWF0aWNhbGx5IGNvbnN0cnVjdGVkIGlmIGEgd29ya2Zsb3dBcm4gaXMgcHJvdmlkZWQsIG90aGVyd2lzZSBhIHdvcmtmbG93VHlwZSBpcyByZXF1aXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dUeXBlPzogV29ya2Zsb3dUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgd29ya2Zsb3dcbiAgICpcbiAgICogQGRlZmF1bHQgeC54LnhcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgYWN0aW9uIGZvciBhIHN0ZXAgd2l0aGluIHRoZSB3b3JrZmxvdyBkb2N1bWVudFxuICovXG5leHBvcnQgZW51bSBXb3JrZmxvd0FjdGlvbiB7XG4gIC8qKlxuICAgKiBBcHBsaWVzIGN1c3RvbWl6YXRpb25zIGFuZCBjb25maWd1cmF0aW9ucyB0byB0aGUgaW5wdXQgQU1Jcywgc3VjaCBhcyBwdWJsaXNoaW5nIHRoZSBBTUkgdG8gU1NNIFBhcmFtZXRlciBTdG9yZSxcbiAgICogb3IgY3JlYXRpbmcgbGF1bmNoIHRlbXBsYXRlIHZlcnNpb25zIHdpdGggdGhlIEFNSSBJRHMgcHJvdmlkZWQgaW4gdGhlIGlucHV0XG4gICAqL1xuICBBUFBMWV9JTUFHRV9DT05GSUdVUkFUSU9OUyA9ICdBcHBseUltYWdlQ29uZmlndXJhdGlvbnMnLFxuXG4gIC8qKlxuICAgKiBUaGUgQm9vdHN0cmFwSW5zdGFuY2VGb3JDb250YWluZXIgYWN0aW9uIHJ1bnMgYSBzZXJ2aWNlIHNjcmlwdCB0byBib290c3RyYXAgdGhlIGluc3RhbmNlIHdpdGggbWluaW11bSByZXF1aXJlbWVudHNcbiAgICogdG8gcnVuIGNvbnRhaW5lciB3b3JrZmxvd3NcbiAgICovXG4gIEJPT1RTVFJBUF9JTlNUQU5DRV9GT1JfQ09OVEFJTkVSID0gJ0Jvb3RzdHJhcEluc3RhbmNlRm9yQ29udGFpbmVyJyxcblxuICAvKipcbiAgICogVGhlIENvbGxlY3RJbWFnZU1ldGFkYXRhIGFjdGlvbiBjb2xsZWN0cyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpbnN0YW5jZSwgc3VjaCBhcyB0aGUgbGlzdCBvZiBwYWNrYWdlc1xuICAgKiBhbmQgdGhlaXIgcmVzcGVjdGl2ZSB2ZXJzaW9uc1xuICAgKi9cbiAgQ09MTEVDVF9JTUFHRV9NRVRBREFUQSA9ICdDb2xsZWN0SW1hZ2VNZXRhZGF0YScsXG5cbiAgLyoqXG4gICAqIFRoZSBDb2xsZWN0SW1hZ2VTY2FuRmluZGluZ3MgYWN0aW9uIGNvbGxlY3RzIGZpbmRpbmdzIHJlcG9ydGVkIGJ5IEFtYXpvbiBJbnNwZWN0b3IgZm9yIHRoZSBwcm92aWRlZCBpbnN0YW5jZVxuICAgKi9cbiAgQ09MTEVDVF9JTUFHRV9TQ0FOX0ZJTkRJTkdTID0gJ0NvbGxlY3RJbWFnZVNjYW5GaW5kaW5ncycsXG5cbiAgLyoqXG4gICAqIFRoZSBDcmVhdGVJbWFnZSBhY3Rpb24gY3JlYXRlcyBhbiBBTUkgZnJvbSBhIHJ1bm5pbmcgaW5zdGFuY2Ugd2l0aCB0aGUgZWMyOkNyZWF0ZUltYWdlIEFQSVxuICAgKi9cbiAgQ1JFQVRFX0lNQUdFID0gJ0NyZWF0ZUltYWdlJyxcblxuICAvKipcbiAgICogVGhlIERpc3RyaWJ1dGVJbWFnZSBhY3Rpb24gY29waWVzIGFuIEFNSSB1c2luZyB0aGUgaW1hZ2UncyBkaXN0cmlidXRpb24gY29uZmlndXJhdGlvbiwgb3IgdXNpbmcgdGhlIGRpc3RyaWJ1dGlvblxuICAgKiBzZXR0aW5ncyBpbiB0aGUgc3RlcCBpbnB1dFxuICAgKi9cbiAgRElTVFJJQlVURV9JTUFHRSA9ICdEaXN0cmlidXRlSW1hZ2UnLFxuXG4gIC8qKlxuICAgKiBUaGUgRXhlY3V0ZUNvbXBvbmVudHMgYWN0aW9uIHJ1bnMgY29tcG9uZW50cyB0aGF0IGFyZSBzcGVjaWZpZWQgaW4gdGhlIHJlY2lwZSBmb3IgdGhlIGN1cnJlbnQgaW1hZ2UgYmVpbmcgYnVpbHRcbiAgICovXG4gIEVYRUNVVEVfQ09NUE9ORU5UUyA9ICdFeGVjdXRlQ29tcG9uZW50cycsXG5cbiAgLyoqXG4gICAqIFRoZSBFeGVjdXRlU3RhdGVNYWNoaW5lIGFjdGlvbiBleGVjdXRlcyBhIHRoZSBzdGF0ZSBtYWNoaW5lIHByb3ZpZGVkIGFuZCB3YWl0cyBmb3IgY29tcGxldGlvbiBhcyBwYXJ0IG9mIHRoZVxuICAgKiB3b3JrZmxvd1xuICAgKi9cbiAgRVhFQ1VURV9TVEFURV9NQUNISU5FID0gJ0V4ZWN1dGVTdGF0ZU1hY2hpbmUnLFxuXG4gIC8qKlxuICAgKiBUaGUgTGF1bmNoSW5zdGFuY2UgYWN0aW9uIGxhdW5jaGVzIGFuIGluc3RhbmNlIHVzaW5nIHRoZSBzZXR0aW5ncyBmcm9tIHlvdXIgcmVjaXBlIGFuZCBpbmZyYXN0cnVjdHVyZSBjb25maWd1cmF0aW9uXG4gICAqIHJlc291cmNlc1xuICAgKi9cbiAgTEFVTkNIX0lOU1RBTkNFID0gJ0xhdW5jaEluc3RhbmNlJyxcblxuICAvKipcbiAgICogQXBwbGllcyBhdHRyaWJ1dGUgdXBkYXRlcyB0byB0aGUgcHJvdmlkZWQgc2V0IG9mIGRpc3RyaWJ1dGVkIGltYWdlcywgc3VjaCBhcyBsYXVuY2ggcGVybWlzc2lvbiB1cGRhdGVzXG4gICAqL1xuICBNT0RJRllfSU1BR0VfQVRUUklCVVRFUyA9ICdNb2RpZnlJbWFnZUF0dHJpYnV0ZXMnLFxuXG4gIC8qKlxuICAgKiBUaGUgUnVuQ29tbWFuZCBhY3Rpb24gcnVucyBhIGNvbW1hbmQgZG9jdW1lbnQgYWdhaW5zdCB0aGUgcHJvdmlkZWQgaW5zdGFuY2VcbiAgICovXG4gIFJVTl9DT01NQU5EID0gJ1J1bkNvbW1hbmQnLFxuXG4gIC8qKlxuICAgKiBUaGUgUmVnaXN0ZXJJbWFnZSBhY3Rpb24gY3JlYXRlcyBhbiBBTUkgZnJvbSBhIHNldCBvZiBzbmFwc2hvdHMgd2l0aCB0aGUgZWMyOlJlZ2lzdGVySW1hZ2UgQVBJXG4gICAqL1xuICBSRUdJU1RFUl9JTUFHRSA9ICdSZWdpc3RlckltYWdlJyxcblxuICAvKipcbiAgICogVGhlIFJ1blN5c3ByZXAgYWN0aW9uIHJ1bnMgdGhlIFN5c3ByZXAgZG9jdW1lbnQgb24gdGhlIHByb3ZpZGVkIFdpbmRvd3MgaW5zdGFuY2VcbiAgICovXG4gIFJVTl9TWVNfUFJFUCA9ICdSdW5TeXNQcmVwJyxcblxuICAvKipcbiAgICogVGhlIFNhbml0aXplSW5zdGFuY2UgYWN0aW9uIHJ1bnMgYSByZWNvbW1lbmRlZCBzYW5pdGl6YXRpb24gc2NyaXB0IG9uIExpbnV4IGluc3RhbmNlc1xuICAgKi9cbiAgU0FOSVRJWkVfSU5TVEFOQ0UgPSAnU2FuaXRpemVJbnN0YW5jZScsXG5cbiAgLyoqXG4gICAqIFRoZSBUZXJtaW5hdGVJbnN0YW5jZSBhY3Rpb24gdGVybWluYXRlcyB0aGUgcHJvdmlkZWQgaW5zdGFuY2VcbiAgICovXG4gIFRFUk1JTkFURV9JTlNUQU5DRSA9ICdUZXJtaW5hdGVJbnN0YW5jZScsXG5cbiAgLyoqXG4gICAqIFRoZSBXYWl0Rm9yQWN0aW9uIGFjdGlvbiBwYXVzZXMgdGhlIHdvcmtmbG93IGFuZCB3YWl0cyB0byByZWNlaXZlIGFuIGV4dGVybmFsIHNpZ25hbCBmcm9tIHRoZVxuICAgKiBpbWFnZWJ1aWxkZXI6U2VuZFdvcmtmbG93U3RlcEFjdGlvbiBBUElcbiAgICovXG4gIFdBSVRfRk9SX0FDVElPTiA9ICdXYWl0Rm9yQWN0aW9uJyxcblxuICAvKipcbiAgICogVGhlIFdhaXRGb3JTU01BZ2VudCBhY3Rpb24gd2FpdHMgZm9yIHRoZSBnaXZlbiBpbnN0YW5jZSB0byBoYXZlIGNvbm5lY3Rpdml0eSB3aXRoIFNTTSBiZWZvcmUgcHJvY2VlZGluZ1xuICAgKi9cbiAgV0FJVF9GT1JfU1NNX0FHRU5UID0gJ1dhaXRGb3JTU01BZ2VudCcsXG59XG5cbi8qKlxuICogVGhlIGFjdGlvbiB0byB0YWtlIGlmIHRoZSB3b3JrZmxvdyBmYWlsc1xuICovXG5leHBvcnQgZW51bSBXb3JrZmxvd09uRmFpbHVyZSB7XG4gIC8qKlxuICAgKiBGYWlscyB0aGUgaW1hZ2UgYnVpbGQgaWYgdGhlIHdvcmtmbG93IGZhaWxzXG4gICAqL1xuICBBQk9SVCA9ICdBYm9ydCcsXG5cbiAgLyoqXG4gICAqIENvbnRpbnVlcyB3aXRoIHRoZSBpbWFnZSBidWlsZCBpZiB0aGUgd29ya2Zsb3cgZmFpbHNcbiAgICovXG4gIENPTlRJTlVFID0gJ0NvbnRpbnVlJyxcbn1cblxuLyoqXG4gKiBUaGUgcGFyYW1ldGVyIHR5cGUgZm9yIHRoZSB3b3JrZmxvdyBwYXJhbWV0ZXJcbiAqL1xuZXhwb3J0IGVudW0gV29ya2Zsb3dQYXJhbWV0ZXJUeXBlIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgd29ya2Zsb3cgcGFyYW1ldGVyIGhhcyBhIGJvb2xlYW4gdmFsdWVcbiAgICovXG4gIEJPT0xFQU4gPSAnYm9vbGVhbicsXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgd29ya2Zsb3cgcGFyYW1ldGVyIGhhcyBhbiBpbnRlZ2VyIHZhbHVlXG4gICAqL1xuICBJTlRFR0VSID0gJ2ludGVnZXInLFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHdvcmtmbG93IHBhcmFtZXRlciBoYXMgYSBzdHJpbmcgdmFsdWVcbiAgICovXG4gIFNUUklORyA9ICdzdHJpbmcnLFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHdvcmtmbG93IHBhcmFtZXRlciBoYXMgYSBzdHJpbmcgbGlzdCB2YWx1ZVxuICAgKi9cbiAgU1RSSU5HX0xJU1QgPSAnc3RyaW5nTGlzdCcsXG59XG5cbi8qKlxuICogVGhlIHNjaGVtYSB2ZXJzaW9uIG9mIHRoZSB3b3JrZmxvd1xuICovXG5leHBvcnQgZW51bSBXb3JrZmxvd1NjaGVtYVZlcnNpb24ge1xuICAvKipcbiAgICogU2NoZW1hIHZlcnNpb24gMS4wIGZvciB0aGUgd29ya2Zsb3cgZG9jdW1lbnRcbiAgICovXG4gIFYxXzAgPSAnMS4wJyxcbn1cblxuLyoqXG4gKiBUaGUgdHlwZSBvZiB0aGUgd29ya2Zsb3dcbiAqL1xuZXhwb3J0IGVudW0gV29ya2Zsb3dUeXBlIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgd29ya2Zsb3cgaXMgZm9yIGJ1aWxkaW5nIGltYWdlc1xuICAgKi9cbiAgQlVJTEQgPSAnQlVJTEQnLFxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIHdvcmtmbG93IGlzIGZvciB0ZXN0aW5nIGltYWdlc1xuICAgKi9cbiAgVEVTVCA9ICdURVNUJyxcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSB3b3JrZmxvdyBpcyBmb3IgZGlzdHJpYnV0aW5nIGltYWdlc1xuICAgKi9cbiAgRElTVFJJQlVUSU9OID0gJ0RJU1RSSUJVVElPTicsXG59XG5cbi8qKlxuICogVGhlIHJlbmRlcmVkIHdvcmtmbG93IGRhdGEgdmFsdWUsIGZvciB1c2UgaW4gQ2xvdWRGb3JtYXRpb24uXG4gKiAtIEZvciBpbmxpbmUgd29ya2Zsb3dzLCBkYXRhIGlzIHRoZSB3b3JrZmxvdyB0ZXh0XG4gKiAtIEZvciBTMy1iYWNrZWQgd29ya2Zsb3dzLCB1cmkgaXMgdGhlIFMzIFVSTFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93RGF0YUNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgcmVuZGVyZWQgd29ya2Zsb3cgZGF0YSwgZm9yIHVzZSBpbiBDbG91ZEZvcm1hdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmUgaWYgdXJpIGlzIHNldFxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlbmRlcmVkIHdvcmtmbG93IGRhdGEgVVJJLCBmb3IgdXNlIGluIENsb3VkRm9ybWF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZSBpZiBkYXRhIGlzIHNldFxuICAgKi9cbiAgcmVhZG9ubHkgdXJpPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3IgcmVmZXJlbmNpbmcgYW5kIHVwbG9hZGluZyB3b3JrZmxvdyBkYXRhXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBXb3JrZmxvd0RhdGEge1xuICAvKipcbiAgICogVXBsb2FkcyB3b3JrZmxvdyBkYXRhIGZyb20gYSBsb2NhbCBmaWxlIHRvIFMzIHRvIHVzZSBhcyB0aGUgd29ya2Zsb3cgZGF0YVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBwYXRoIFRoZSBsb2NhbCBwYXRoIHRvIHRoZSB3b3JrZmxvdyBkYXRhIGZpbGVcbiAgICogQHBhcmFtIG9wdGlvbnMgUzMgYXNzZXQgdXBsb2FkIG9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFzc2V0KFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgb3B0aW9uczogczNhc3NldHMuQXNzZXRPcHRpb25zID0ge30sXG4gICk6IFMzV29ya2Zsb3dEYXRhIHtcbiAgICBjb25zdCBhc3NldCA9IG5ldyBzM2Fzc2V0cy5Bc3NldChzY29wZSwgaWQsIHsgLi4ub3B0aW9ucywgcGF0aCB9KTtcbiAgICByZXR1cm4gbmV3IFMzV29ya2Zsb3dEYXRhRnJvbUFzc2V0KGFzc2V0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2VzIHdvcmtmbG93IGRhdGEgZnJvbSBhIHByZS1leGlzdGluZyBTMyBvYmplY3RcbiAgICpcbiAgICogQHBhcmFtIGJ1Y2tldCBUaGUgUzMgYnVja2V0IHdoZXJlIHRoZSB3b3JrZmxvdyBkYXRhIGlzIHN0b3JlZFxuICAgKiBAcGFyYW0ga2V5IFRoZSBTMyBrZXkgb2YgdGhlIHdvcmtmbG93IGRhdGEgZmlsZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUzMoYnVja2V0OiBzMy5JQnVja2V0LCBrZXk6IHN0cmluZyk6IFMzV29ya2Zsb3dEYXRhIHtcbiAgICByZXR1cm4gbmV3IFMzV29ya2Zsb3dEYXRhRnJvbUJ1Y2tldEtleShidWNrZXQsIGtleSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlcyBhbiBpbmxpbmUgSlNPTiBvYmplY3QgYXMgdGhlIHdvcmtmbG93IGRhdGFcbiAgICpcbiAgICogQHBhcmFtIGRhdGEgQW4gaW5saW5lIEpTT04gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgd29ya2Zsb3cgZGF0YVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tSnNvbk9iamVjdChkYXRhOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogV29ya2Zsb3dEYXRhIHtcbiAgICBjb25zdCBpbmxpbmVEYXRhID0geWFtbC5zdHJpbmdpZnkoZGF0YSwgeyBpbmRlbnQ6IDIgfSk7XG4gICAgcmV0dXJuIG5ldyBJbmxpbmVXb3JrZmxvd0RhdGEoaW5saW5lRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlcyBhbiBpbmxpbmUgSlNPTiBvciBZQU1MIHN0cmluZyBhcyB0aGUgd29ya2Zsb3cgZGF0YVxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSBBbiBpbmxpbmUgSlNPTiBvciBZQU1MIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHdvcmtmbG93IGRhdGFcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUlubGluZShkYXRhOiBzdHJpbmcpOiBXb3JrZmxvd0RhdGEge1xuICAgIHJldHVybiBuZXcgSW5saW5lV29ya2Zsb3dEYXRhKGRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZW5kZXJlZCB3b3JrZmxvdyBkYXRhIHZhbHVlLCBmb3IgdXNlIGluIENsb3VkRm9ybWF0aW9uLlxuICAgKiAtIEZvciBpbmxpbmUgd29ya2Zsb3dzLCBkYXRhIGlzIHRoZSB3b3JrZmxvdyB0ZXh0XG4gICAqIC0gRm9yIFMzLWJhY2tlZCB3b3JrZmxvd3MsIHVyaSBpcyB0aGUgUzMgVVJMXG4gICAqL1xuICBhYnN0cmFjdCByZW5kZXIoKTogV29ya2Zsb3dEYXRhQ29uZmlnO1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3IgUzMtYmFzZWQgd29ya2Zsb3cgZGF0YSByZWZlcmVuY2VzLCBjb250YWluaW5nIGFkZGl0aW9uYWwgcGVybWlzc2lvbiBncmFudCBtZXRob2RzIG9uIHRoZSBTMyBvYmplY3RcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFMzV29ya2Zsb3dEYXRhIGV4dGVuZHMgV29ya2Zsb3dEYXRhIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGJ1Y2tldDogczMuSUJ1Y2tldDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGtleTogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihidWNrZXQ6IHMzLklCdWNrZXQsIGtleTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuYnVja2V0ID0gYnVja2V0O1xuICAgIHRoaXMua2V5ID0ga2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZW5kZXJlZCB3b3JrZmxvdyBkYXRhIHRleHQsIGZvciB1c2UgaW4gQ2xvdWRGb3JtYXRpb25cbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKTogV29ya2Zsb3dEYXRhQ29uZmlnIHtcbiAgICByZXR1cm4geyB1cmk6IHRoaXMuYnVja2V0LnMzVXJsRm9yT2JqZWN0KHRoaXMua2V5KSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHB1dCBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gZ3JhbnRlZSBmb3IgdGhlIHdvcmtmbG93IGRhdGEgaW4gUzNcbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbFxuICAgKi9cbiAgcHVibGljIGdyYW50UHV0KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXQuZ3JhbnRQdXQoZ3JhbnRlZSwgdGhpcy5rZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSB3b3JrZmxvdyBkYXRhIGluIFMzXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWxcbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFJlYWQoZ3JhbnRlZSwgdGhpcy5rZXkpO1xuICB9XG59XG5cbmNsYXNzIElubGluZVdvcmtmbG93RGF0YSBleHRlbmRzIFdvcmtmbG93RGF0YSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBkYXRhOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZW5kZXJlZCB3b3JrZmxvdyBkYXRhIHRleHQsIGZvciB1c2UgaW4gQ2xvdWRGb3JtYXRpb25cbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKTogV29ya2Zsb3dEYXRhQ29uZmlnIHtcbiAgICByZXR1cm4geyBkYXRhOiB0aGlzLmRhdGEgfTtcbiAgfVxufVxuXG5jbGFzcyBTM1dvcmtmbG93RGF0YUZyb21CdWNrZXRLZXkgZXh0ZW5kcyBTM1dvcmtmbG93RGF0YSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihidWNrZXQ6IHMzLklCdWNrZXQsIGtleTogc3RyaW5nKSB7XG4gICAgc3VwZXIoYnVja2V0LCBrZXkpO1xuICB9XG59XG5cbmNsYXNzIFMzV29ya2Zsb3dEYXRhRnJvbUFzc2V0IGV4dGVuZHMgUzNXb3JrZmxvd0RhdGEge1xuICBwdWJsaWMgY29uc3RydWN0b3IoYXNzZXQ6IHMzYXNzZXRzLkFzc2V0KSB7XG4gICAgc3VwZXIoYXNzZXQuYnVja2V0LCBhc3NldC5zM09iamVjdEtleSk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgcGFyYW1ldGVyIHZhbHVlIGZvciBhIHdvcmtmbG93IHBhcmFtZXRlclxuICovXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZSB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhIGJvb2xlYW5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSBib29sZWFuIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUJvb2xlYW4odmFsdWU6IGJvb2xlYW4pOiBXb3JrZmxvd1BhcmFtZXRlclZhbHVlIHtcbiAgICByZXR1cm4gbmV3IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUoW3ZhbHVlLnRvU3RyaW5nKCldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhbiBpbnRlZ2VyXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgaW50ZWdlciB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21JbnRlZ2VyKHZhbHVlOiBudW1iZXIpOiBXb3JrZmxvd1BhcmFtZXRlclZhbHVlIHtcbiAgICByZXR1cm4gbmV3IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUoW3ZhbHVlLnRvU3RyaW5nKCldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TdHJpbmcodmFsdWU6IHN0cmluZyk6IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUge1xuICAgIHJldHVybiBuZXcgV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZShbdmFsdWVdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciBhcyBhIHN0cmluZyBsaXN0XG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZXMgVGhlIHN0cmluZyBsaXN0IHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVN0cmluZ0xpc3QodmFsdWVzOiBzdHJpbmdbXSk6IFdvcmtmbG93UGFyYW1ldGVyVmFsdWUge1xuICAgIHJldHVybiBuZXcgV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZSh2YWx1ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZW5kZXJlZCBwYXJhbWV0ZXIgdmFsdWVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nW107XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZGV0YWlscyBmb3IgYSB3b3JrZmxvd1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93Q29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgd29ya2Zsb3cgdG8gZXhlY3V0ZSBpbiB0aGUgaW1hZ2UgYnVpbGRcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93OiBJV29ya2Zsb3c7XG5cbiAgLyoqXG4gICAqIFRoZSBhY3Rpb24gdG8gdGFrZSBpZiB0aGUgd29ya2Zsb3cgZmFpbHNcbiAgICpcbiAgICogQGRlZmF1bHQgV29ya2Zsb3dPbkZhaWx1cmUuQUJPUlRcbiAgICovXG4gIHJlYWRvbmx5IG9uRmFpbHVyZT86IFdvcmtmbG93T25GYWlsdXJlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZWQgcGFyYWxsZWwgZ3JvdXAgdG8gaW5jbHVkZSB0aGlzIHdvcmtmbG93IGluLiBXb3JrZmxvd3MgaW4gdGhlIHNhbWUgcGFyYWxsZWwgZ3JvdXAgcnVuIGluIHBhcmFsbGVsIG9mIGVhY2hcbiAgICogb3RoZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHBhcmFsbGVsR3JvdXA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXJzIHRvIHBhc3MgdG8gdGhlIHdvcmtmbG93IGF0IGV4ZWN1dGlvbiB0aW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZSBpZiB0aGUgd29ya2Zsb3cgaGFzIG5vIHBhcmFtZXRlcnMsIG90aGVyd2lzZSB0aGUgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWVzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZSB9O1xufVxuXG4vKipcbiAqIEEgbmV3IG9yIGltcG9ydGVkIFdvcmtmbG93XG4gKi9cbmFic3RyYWN0IGNsYXNzIFdvcmtmbG93QmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElXb3JrZmxvdyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSB3b3JrZmxvd1xuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgd29ya2Zsb3dBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSB3b3JrZmxvd1R5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSB3b3JrZmxvd1ZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnQgY3VzdG9tIGFjdGlvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSB3b3JrZmxvd1xuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBhY3Rpb25zIFRoZSBsaXN0IG9mIGFjdGlvbnNcbiAgICovXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnMsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLndvcmtmbG93QXJuXSxcbiAgICAgIHNjb3BlOiB0aGlzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSB3b3JrZmxvd1xuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAnaW1hZ2VidWlsZGVyOkdldFdvcmtmbG93Jyk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIEVDMiBJbWFnZSBCdWlsZGVyIFdvcmtmbG93LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2ltYWdlYnVpbGRlci9sYXRlc3QvdXNlcmd1aWRlL21hbmFnZS1pbWFnZS13b3JrZmxvd3MuaHRtbFxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgV29ya2Zsb3cgZXh0ZW5kcyBXb3JrZmxvd0Jhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1pbWFnZWJ1aWxkZXItYWxwaGEuV29ya2Zsb3cnO1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3Rpbmcgd29ya2Zsb3cgZ2l2ZW4gaXRzIEFSTi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVdvcmtmbG93QXJuKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHdvcmtmbG93QXJuOiBzdHJpbmcpOiBJV29ya2Zsb3cge1xuICAgIHJldHVybiB0aGlzLmZyb21Xb3JrZmxvd0F0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IHdvcmtmbG93QXJuIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyB3b3JrZmxvdyBieSBwcm92aWRpbmcgaXRzIGF0dHJpYnV0ZXMuIFRoZSBwcm92aWRlZCBuYW1lIG11c3QgYmUgbm9ybWFsaXplZCBieSBjb252ZXJ0aW5nXG4gICAqIGFsbCBhbHBoYWJldGljYWwgY2hhcmFjdGVycyB0byBsb3dlcmNhc2UsIGFuZCByZXBsYWNpbmcgYWxsIHNwYWNlcyBhbmQgdW5kZXJzY29yZXMgd2l0aCBoeXBoZW5zLiBZb3UgbWF5IG5vdFxuICAgKiBwcm92aWRlIGEgZHluYW1pYyBleHByZXNzaW9uIGZvciB0aGUgd29ya2Zsb3dBcm4gb3Igd29ya2Zsb3dUeXBlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Xb3JrZmxvd0F0dHJpYnV0ZXMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IFdvcmtmbG93QXR0cmlidXRlcyk6IElXb3JrZmxvdyB7XG4gICAgaWYgKFxuICAgICAgYXR0cnMud29ya2Zsb3dBcm4gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKGF0dHJzLndvcmtmbG93TmFtZSAhPT0gdW5kZWZpbmVkIHx8IGF0dHJzLndvcmtmbG93VHlwZSAhPT0gdW5kZWZpbmVkIHx8IGF0dHJzLndvcmtmbG93VmVyc2lvbiAhPT0gdW5kZWZpbmVkKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICdhIHdvcmtmbG93TmFtZSwgd29ya2Zsb3dUeXBlLCBvciB3b3JrZmxvd1ZlcnNpb24gY2Fubm90IGJlIHByb3ZpZGVkIHdoZW4gYSB3b3JrZmxvd0FybiBpcyBwcm92aWRlZCcsXG4gICAgICAgIHNjb3BlLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoYXR0cnMud29ya2Zsb3dBcm4gPT09IHVuZGVmaW5lZCAmJiAoYXR0cnMud29ya2Zsb3dOYW1lID09PSB1bmRlZmluZWQgfHwgYXR0cnMud29ya2Zsb3dUeXBlID09PSB1bmRlZmluZWQpKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcignZWl0aGVyIHdvcmtmbG93QXJuLCBvciB3b3JrZmxvd05hbWUgYW5kIHdvcmtmbG93VHlwZSBpcyByZXF1aXJlZCcsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBpZiAoYXR0cnMud29ya2Zsb3dUeXBlICYmIGNkay5Ub2tlbi5pc1VucmVzb2x2ZWQoYXR0cnMud29ya2Zsb3dUeXBlKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3dvcmtmbG93VHlwZSBjYW5ub3QgYmUgYW4gdW5yZXNvbHZlZCB0b2tlbicsIHNjb3BlKTtcbiAgICB9XG5cbiAgICBjb25zdCB3b3JrZmxvd0FybiA9ICgoKSA9PiB7XG4gICAgICBpZiAoYXR0cnMud29ya2Zsb3dBcm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gYXR0cnMud29ya2Zsb3dBcm47XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICAgIHNlcnZpY2U6ICdpbWFnZWJ1aWxkZXInLFxuICAgICAgICByZXNvdXJjZTogJ3dvcmtmbG93JyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBgJHthdHRycy53b3JrZmxvd1R5cGUhLnRvTG93ZXJDYXNlKCl9LyR7YXR0cnMud29ya2Zsb3dOYW1lIX0vJHthdHRycy53b3JrZmxvd1ZlcnNpb24gPz8gTEFURVNUX1ZFUlNJT059YCxcbiAgICAgIH0pO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBbd29ya2Zsb3dUeXBlLCB3b3JrZmxvd05hbWUsIHdvcmtmbG93VmVyc2lvbl0gPSAoKCkgPT4ge1xuICAgICAgaWYgKGF0dHJzLndvcmtmbG93TmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBbYXR0cnMud29ya2Zsb3dUeXBlIS50b1VwcGVyQ2FzZSgpLCBhdHRycy53b3JrZmxvd05hbWUsIGF0dHJzLndvcmtmbG93VmVyc2lvbiA/PyBMQVRFU1RfVkVSU0lPTl07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdvcmtmbG93TmFtZVR5cGVWZXJzaW9uID0gY2RrLlN0YWNrLm9mKHNjb3BlKS5zcGxpdEFybihcbiAgICAgICAgd29ya2Zsb3dBcm4sXG4gICAgICAgIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICAgICkucmVzb3VyY2VOYW1lITtcblxuICAgICAgaWYgKGNkay5Ub2tlbi5pc1VucmVzb2x2ZWQod29ya2Zsb3dOYW1lVHlwZVZlcnNpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgICd0aGUgd29ya2Zsb3dOYW1lLCB3b3JrZmxvd1R5cGUsIGFuZCB3b3JrZmxvd1ZlcnNpb24gaW4gdGhlIHdvcmtmbG93QXJuIGNhbm5vdCBiZSBhbiB1bnJlc29sdmVkIHRva2VuJyxcbiAgICAgICAgICBzY29wZSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHdvcmtmbG93TmFtZVR5cGVWZXJzaW9uLnNwbGl0KCcvJykubGVuZ3RoIDwgMykge1xuICAgICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICAndGhlIHdvcmtmbG93IEFSTiBtdXN0IGVuZCB3aXRoIDx3b3JrZmxvdy10eXBlPi88d29ya2Zsb3ctbmFtZT4vPHdvcmtmbG93LXZlcnNpb24+JyxcbiAgICAgICAgICBzY29wZSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgd29ya2Zsb3dOYW1lVHlwZVZlcnNpb25TcGxpdCA9IHdvcmtmbG93TmFtZVR5cGVWZXJzaW9uLnNwbGl0KCcvJyk7XG4gICAgICBjb25zdCBbd29ya2Zsb3dUeXBlRnJvbUFybiwgd29ya2Zsb3dOYW1lRnJvbUFybiwgd29ya2Zsb3dWZXJzaW9uRnJvbUFybl0gPSB3b3JrZmxvd05hbWVUeXBlVmVyc2lvblNwbGl0LnNsaWNlKFxuICAgICAgICAwLFxuICAgICAgICAzLFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIFt3b3JrZmxvd1R5cGVGcm9tQXJuLnRvVXBwZXJDYXNlKCksIHdvcmtmbG93TmFtZUZyb21Bcm4sIHdvcmtmbG93VmVyc2lvbkZyb21Bcm5dO1xuICAgIH0pKCk7XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBXb3JrZmxvd0Jhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93QXJuID0gd29ya2Zsb3dBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dOYW1lID0gd29ya2Zsb3dOYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93VHlwZSA9IHdvcmtmbG93VHlwZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSB3b3JrZmxvd1ZlcnNpb24gPSB3b3JrZmxvd1ZlcnNpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgV29ya2Zsb3cuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzV29ya2Zsb3coeDogYW55KTogeCBpcyBXb3JrZmxvdyB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09ICdvYmplY3QnICYmIFdPUktGTE9XX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHdvcmtmbG93XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSB3b3JrZmxvd1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdvcmtmbG93VHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgd29ya2Zsb3dcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB3b3JrZmxvd1ZlcnNpb246IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdvcmtmbG93UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTpcbiAgICAgICAgcHJvcHMud29ya2Zsb3dOYW1lID8/XG4gICAgICAgIGNkay5MYXp5LnN0cmluZyh7XG4gICAgICAgICAgcHJvZHVjZTogKCkgPT5cbiAgICAgICAgICAgIGNkay5OYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywge1xuICAgICAgICAgICAgICBtYXhMZW5ndGg6IDEyOCxcbiAgICAgICAgICAgICAgc2VwYXJhdG9yOiAnLScsXG4gICAgICAgICAgICAgIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogJy0nLFxuICAgICAgICAgICAgfSkudG9Mb3dlckNhc2UoKSwgLy8gRW5mb3JjZSBsb3dlcmNhc2UgZm9yIHRoZSBhdXRvLWdlbmVyYXRlZCBmYWxsYmFja1xuICAgICAgICB9KSxcbiAgICB9KTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBXT1JLRkxPV19TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICB0aGlzLnZhbGlkYXRlV29ya2Zsb3dOYW1lKCk7XG5cbiAgICBjb25zdCB3b3JrZmxvd1ZlcnNpb24gPSBwcm9wcy53b3JrZmxvd1ZlcnNpb24gPz8gJzEuMC4wJztcbiAgICBjb25zdCB3b3JrZmxvdyA9IG5ldyBDZm5Xb3JrZmxvdyh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIHZlcnNpb246IHdvcmtmbG93VmVyc2lvbixcbiAgICAgIHR5cGU6IHByb3BzLndvcmtmbG93VHlwZSxcbiAgICAgIGNoYW5nZURlc2NyaXB0aW9uOiBwcm9wcy5jaGFuZ2VEZXNjcmlwdGlvbixcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGttc0tleUlkOiBwcm9wcy5rbXNLZXk/LmtleUFybixcbiAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgICAuLi5wcm9wcy5kYXRhLnJlbmRlcigpLFxuICAgIH0pO1xuXG4gICAgdGhpcy53b3JrZmxvd05hbWUgPSB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZSh3b3JrZmxvdy5nZXRBdHQoJ05hbWUnKS50b1N0cmluZygpKTtcbiAgICB0aGlzLndvcmtmbG93QXJuID0gd29ya2Zsb3cuYXR0ckFybjtcbiAgICB0aGlzLndvcmtmbG93VmVyc2lvbiA9IHdvcmtmbG93VmVyc2lvbjtcbiAgICB0aGlzLndvcmtmbG93VHlwZSA9IHByb3BzLndvcmtmbG93VHlwZTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVXb3JrZmxvd05hbWUoKSB7XG4gICAgaWYgKGNkay5Ub2tlbi5pc1VucmVzb2x2ZWQodGhpcy5waHlzaWNhbE5hbWUpKSB7XG4gICAgICByZXR1cm47IC8vIENhbm5vdCB2YWxpZGF0ZSB1bnJlc29sdmVkIHRva2VucywgZ2l2ZW4gdGhlaXIgYWN0dWFsIHZhbHVlIGlzIHJlbmRlcmVkIGF0IGRlcGxveW1lbnQgdGltZVxuICAgIH1cblxuICAgIGlmICh0aGlzLnBoeXNpY2FsTmFtZS5sZW5ndGggPiAxMjgpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd0aGUgd29ya2Zsb3dOYW1lIGNhbm5vdCBiZSBsb25nZXIgdGhhbiAxMjggY2hhcmFjdGVycycsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBoeXNpY2FsTmFtZS5pbmNsdWRlcygnICcpKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcigndGhlIHdvcmtmbG93TmFtZSBjYW5ub3QgY29udGFpbiBzcGFjZXMnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5waHlzaWNhbE5hbWUuaW5jbHVkZXMoJ18nKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoJ3RoZSB3b3JrZmxvd05hbWUgY2Fubm90IGNvbnRhaW4gdW5kZXJzY29yZXMnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5waHlzaWNhbE5hbWUgIT09IHRoaXMucGh5c2ljYWxOYW1lLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKCd0aGUgd29ya2Zsb3dOYW1lIG11c3QgYmUgbG93ZXJjYXNlJywgdGhpcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk/aws-imagebuilder-alpha",
3
- "version": "2.232.2-alpha.0",
3
+ "version": "2.234.0-alpha.0",
4
4
  "private": false,
5
5
  "description": "The CDK Construct Library for EC2 Image Builder",
6
6
  "main": "lib/index.js",
@@ -77,11 +77,11 @@
77
77
  },
78
78
  "license": "Apache-2.0",
79
79
  "devDependencies": {
80
- "aws-cdk-lib": "2.232.2",
81
- "@aws-cdk/cdk-build-tools": "2.232.2-alpha.0",
80
+ "aws-cdk-lib": "2.234.0",
81
+ "@aws-cdk/cdk-build-tools": "2.234.0-alpha.0",
82
82
  "@aws-cdk/integ-runner": "^2.192.2",
83
- "@aws-cdk/pkglint": "2.232.2-alpha.0",
84
- "@aws-cdk/integ-tests-alpha": "2.232.2-alpha.0",
83
+ "@aws-cdk/pkglint": "2.234.0-alpha.0",
84
+ "@aws-cdk/integ-tests-alpha": "2.234.0-alpha.0",
85
85
  "@types/jest": "^29.5.14",
86
86
  "constructs": "^10.0.0",
87
87
  "jest": "^29.7.0"
@@ -94,7 +94,7 @@
94
94
  ],
95
95
  "homepage": "https://github.com/aws/aws-cdk",
96
96
  "peerDependencies": {
97
- "aws-cdk-lib": "^2.232.2",
97
+ "aws-cdk-lib": "^2.234.0",
98
98
  "constructs": "^10.0.0"
99
99
  },
100
100
  "engines": {