@aws-cdk/aws-glue-alpha 2.71.0-alpha.0 → 2.72.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/job.js CHANGED
@@ -18,9 +18,6 @@ const aws_glue_1 = require("aws-cdk-lib/aws-glue");
18
18
  * can instantiate a `WorkerType` object, e.g: `WorkerType.of('other type')`.
19
19
  */
20
20
  class WorkerType {
21
- constructor(name) {
22
- this.name = name;
23
- }
24
21
  /**
25
22
  * Custom worker type
26
23
  * @param workerType custom worker type
@@ -28,10 +25,12 @@ class WorkerType {
28
25
  static of(workerType) {
29
26
  return new WorkerType(workerType);
30
27
  }
28
+ constructor(name) {
29
+ this.name = name;
30
+ }
31
31
  }
32
- exports.WorkerType = WorkerType;
33
32
  _a = JSII_RTTI_SYMBOL_1;
34
- WorkerType[_a] = { fqn: "@aws-cdk/aws-glue-alpha.WorkerType", version: "2.71.0-alpha.0" };
33
+ WorkerType[_a] = { fqn: "@aws-cdk/aws-glue-alpha.WorkerType", version: "2.72.0-alpha.0" };
35
34
  /**
36
35
  * Each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
37
36
  */
@@ -52,6 +51,7 @@ WorkerType.G_025X = new WorkerType('G.025X');
52
51
  * Each worker maps to 2 high-memory DPU [M-DPU] (8 vCPU, 64 GB of memory, 128 GB disk). Supported in Ray jobs.
53
52
  */
54
53
  WorkerType.Z_2X = new WorkerType('Z.2X');
54
+ exports.WorkerType = WorkerType;
55
55
  /**
56
56
  * Job states emitted by Glue to CloudWatch Events.
57
57
  *
@@ -234,6 +234,33 @@ class JobBase extends cdk.Resource {
234
234
  * A Glue Job.
235
235
  */
236
236
  class Job extends JobBase {
237
+ /**
238
+ * Creates a Glue Job
239
+ *
240
+ * @param scope The scope creating construct (usually `this`).
241
+ * @param id The construct's id.
242
+ * @param attrs Import attributes
243
+ */
244
+ static fromJobAttributes(scope, id, attrs) {
245
+ try {
246
+ jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_JobAttributes(attrs);
247
+ }
248
+ catch (error) {
249
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
250
+ Error.captureStackTrace(error, this.fromJobAttributes);
251
+ }
252
+ throw error;
253
+ }
254
+ class Import extends JobBase {
255
+ constructor() {
256
+ super(...arguments);
257
+ this.jobName = attrs.jobName;
258
+ this.jobArn = jobArn(scope, attrs.jobName);
259
+ this.grantPrincipal = attrs.role ?? new iam.UnknownPrincipal({ resource: this });
260
+ }
261
+ }
262
+ return new Import(scope, id);
263
+ }
237
264
  constructor(scope, id, props) {
238
265
  super(scope, id, {
239
266
  physicalName: props.jobName,
@@ -290,33 +317,6 @@ class Job extends JobBase {
290
317
  this.jobArn = jobArn(this, resourceName);
291
318
  this.jobName = resourceName;
292
319
  }
293
- /**
294
- * Creates a Glue Job
295
- *
296
- * @param scope The scope creating construct (usually `this`).
297
- * @param id The construct's id.
298
- * @param attrs Import attributes
299
- */
300
- static fromJobAttributes(scope, id, attrs) {
301
- try {
302
- jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_JobAttributes(attrs);
303
- }
304
- catch (error) {
305
- if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
306
- Error.captureStackTrace(error, this.fromJobAttributes);
307
- }
308
- throw error;
309
- }
310
- class Import extends JobBase {
311
- constructor() {
312
- super(...arguments);
313
- this.jobName = attrs.jobName;
314
- this.jobArn = jobArn(scope, attrs.jobName);
315
- this.grantPrincipal = attrs.role ?? new iam.UnknownPrincipal({ resource: this });
316
- }
317
- }
318
- return new Import(scope, id);
319
- }
320
320
  /**
321
321
  * Check no usage of reserved arguments.
322
322
  *
@@ -396,9 +396,9 @@ class Job extends JobBase {
396
396
  return `s3://${s3Location.bucketName}/${s3Location.objectKey}`;
397
397
  }
398
398
  }
399
- exports.Job = Job;
400
399
  _b = JSII_RTTI_SYMBOL_1;
401
- Job[_b] = { fqn: "@aws-cdk/aws-glue-alpha.Job", version: "2.71.0-alpha.0" };
400
+ Job[_b] = { fqn: "@aws-cdk/aws-glue-alpha.Job", version: "2.72.0-alpha.0" };
401
+ exports.Job = Job;
402
402
  /**
403
403
  * Create a CloudWatch Metric that's based on Glue Job events
404
404
  * {@see https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html#glue-event-types}
@@ -428,4 +428,4 @@ function jobArn(scope, jobName) {
428
428
  resourceName: jobName,
429
429
  });
430
430
  }
431
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiam9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlEQUF5RDtBQUN6RCxpREFBaUQ7QUFDakQsMkNBQTJDO0FBRTNDLHlDQUF5QztBQUN6QyxtQ0FBbUM7QUFFbkMsd0JBQXNFO0FBRXRFLG1EQUE4QztBQUc5Qzs7Ozs7R0FLRztBQUNILE1BQWEsVUFBVTtJQXVDckIsWUFBb0IsSUFBWTtRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztLQUNsQjtJQWZEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBa0I7UUFDakMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUNuQzs7QUFoQ0gsZ0NBMENDOzs7QUF6Q0M7O0dBRUc7QUFDb0IsbUJBQVEsR0FBRyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUU3RDs7R0FFRztBQUNvQixlQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFckQ7O0dBRUc7QUFDb0IsZUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXJEOztHQUVHO0FBQ29CLGlCQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFekQ7O0dBRUc7QUFDb0IsZUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBb0J2RDs7OztHQUlHO0FBQ0gsSUFBWSxRQW1DWDtBQW5DRCxXQUFZLFFBQVE7SUFDbEI7O09BRUc7SUFDSCxtQ0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILDZCQUFpQixDQUFBO0lBRWpCOztPQUVHO0lBQ0gsK0JBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxpQ0FBcUIsQ0FBQTtJQUVyQjs7T0FFRztJQUNILCtCQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsaUNBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCwrQkFBbUIsQ0FBQTtBQUNyQixDQUFDLEVBbkNXLFFBQVEsR0FBUixnQkFBUSxLQUFSLGdCQUFRLFFBbUNuQjtBQUVEOzs7O0dBSUc7QUFDSCxJQUFZLFVBVVg7QUFWRCxXQUFZLFVBQVU7SUFDcEI7O09BRUc7SUFDSCw2QkFBZSxDQUFBO0lBRWY7O09BRUc7SUFDSCw2QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFWVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQVVyQjtBQWdGRCxNQUFlLE9BQVEsU0FBUSxHQUFHLENBQUMsUUFBUTtJQU16Qzs7Ozs7Ozs7OztPQVVHO0lBQ0ksT0FBTyxDQUFDLEVBQVUsRUFBRSxVQUFpQyxFQUFFO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDbkIsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDO1lBQ3BCLFVBQVUsRUFBRSxDQUFDLHVCQUF1QixFQUFFLHFCQUFxQixDQUFDO1lBQzVELE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVEOzs7Ozs7T0FNRztJQUNJLGFBQWEsQ0FBQyxFQUFVLEVBQUUsUUFBa0IsRUFBRSxVQUFpQyxFQUFFO1FBQ3RGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQzVCLFdBQVcsRUFBRSxnQ0FBZ0MsSUFBSSxDQUFDLE9BQU8sVUFBVSxRQUFRLFFBQVE7WUFDbkYsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNuQixNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDO2FBQ2xCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVEOzs7OztPQUtHO0lBQ0ksU0FBUyxDQUFDLEVBQVUsRUFBRSxVQUFpQyxFQUFFO1FBQzlELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztLQUM1RDtJQUVEOzs7OztPQUtHO0lBQ0ksU0FBUyxDQUFDLEVBQVUsRUFBRSxVQUFpQyxFQUFFO1FBQzlELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztLQUN6RDtJQUVEOzs7OztPQUtHO0lBQ0ksU0FBUyxDQUFDLEVBQVUsRUFBRSxVQUFpQyxFQUFFO1FBQzlELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztLQUMxRDtJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLFVBQWtCLEVBQUUsSUFBZ0IsRUFBRSxLQUFnQztRQUNsRixPQUFPLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUMzQixVQUFVO1lBQ1YsU0FBUyxFQUFFLE1BQU07WUFDakIsYUFBYSxFQUFFO2dCQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDckIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsSUFBSSxFQUFFLElBQUk7YUFDWDtZQUNELEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDbkI7SUFFRDs7OztPQUlHO0lBQ0ksYUFBYSxDQUFDLEtBQWdDO1FBQ25ELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDNUY7SUFFRDs7OztPQUlHO0lBQ0ksYUFBYSxDQUFDLEtBQWdDO1FBQ25ELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDekY7SUFFRDs7OztPQUlHO0lBQ0ksYUFBYSxDQUFDLEtBQWdDO1FBQ25ELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDMUY7SUFFRDs7Ozs7O09BTUc7SUFDSyxrQkFBa0IsQ0FBQyxFQUFVLEVBQUUsUUFBa0I7UUFDdkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQWdCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FDdEY7Q0FDRjtBQWdRRDs7R0FFRztBQUNILE1BQWEsR0FBSSxTQUFRLE9BQU87SUE4QzlCLFlBQVksS0FBMkIsRUFBRSxFQUFVLEVBQUUsS0FBZTtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsT0FBTztTQUM1QixDQUFDLENBQUM7Ozs7OzsrQ0FqRE0sR0FBRzs7OztRQW1EWixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTNDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUMxRCxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUM7WUFDekQsZUFBZSxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ2pHLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUVoQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUM3RyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsT0FBTyxFQUFFLFFBQVEsQ0FBQztRQUNoRCxNQUFNLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEksTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUU1RixNQUFNLGdCQUFnQixHQUFHO1lBQ3ZCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQztZQUN2QyxHQUFHLHFCQUFxQjtZQUN4QixHQUFHLG9CQUFvQjtZQUN2QixHQUFHLE9BQU8sRUFBRSxJQUFJO1lBQ2hCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztTQUNwRCxDQUFDO1FBRUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQkFBTSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDL0MsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ25CLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQ3ZCLE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUMxQixjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUN2RCxhQUFhLEVBQUUsVUFBVSxDQUFDLGFBQWE7YUFDeEM7WUFDRCxXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJO1lBQ3hDLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUk7WUFDbEMsZUFBZSxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQ2xDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ3ZHLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNuSCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUU7WUFDbkMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUM5SCxxQkFBcUIsRUFBRSxLQUFLLENBQUMscUJBQXFCLEVBQUUseUJBQXlCO1lBQzdFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixnQkFBZ0I7U0FDakIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUM7S0FDN0I7SUFqR0Q7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQW9COzs7Ozs7Ozs7O1FBQzNGLE1BQU0sTUFBTyxTQUFRLE9BQU87WUFBNUI7O2dCQUNrQixZQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQkFDeEIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN0QyxtQkFBYyxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5RixDQUFDO1NBQUE7UUFFRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5QjtJQW9GRDs7OztPQUlHO0lBQ0ssbUJBQW1CLENBQUMsZ0JBQTRDO1FBQ3RFLElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDbEUsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM1QyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxHQUFHLDZDQUE2QyxDQUFDLENBQUM7aUJBQzFFO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sZ0JBQWdCLENBQUM7S0FDekI7SUFFTyxtQkFBbUIsQ0FBQyxNQUEyQjtRQUNyRCxNQUFNLElBQUksR0FBOEIsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDekMsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNGO1FBQ0QsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDakUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdEc7UUFDRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0Y7UUFDRCxJQUFJLE1BQU0sQ0FBQyxjQUFjLEVBQUU7WUFDekIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsTUFBTSxDQUFDO1NBQ3BDO1FBQ0QsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVPLFlBQVksQ0FBQyxVQUErQixFQUFFLElBQWUsRUFBRSxLQUFtQjtRQUN4RixJQUFJLFVBQU8sQ0FBQyxZQUFZLEtBQUssVUFBVSxDQUFDLElBQUksRUFBRTtZQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7U0FDNUU7YUFBTSxJQUFJLFVBQU8sQ0FBQyxHQUFHLEtBQUssVUFBVSxDQUFDLElBQUksRUFBRTtZQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7U0FDbkU7UUFFRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixNQUFNLElBQUksR0FBRztZQUNYLG1CQUFtQixFQUFFLE1BQU07WUFDM0IseUJBQXlCLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1NBQy9ELENBQUM7UUFFRixPQUFPO1lBQ0wsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDcEIsTUFBTTthQUNQO1lBQ0QsSUFBSTtTQUNMLENBQUM7S0FDSDtJQUVPLHNCQUFzQixDQUFDLElBQWUsRUFBRSxLQUE2QjtRQUMzRSxNQUFNLElBQUksR0FBNEI7WUFDcEMsb0NBQW9DLEVBQUUsTUFBTTtZQUM1QyxnQ0FBZ0MsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO1NBQ25FLENBQUM7UUFFRixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDaEUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakM7UUFFRCxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUU7WUFDekIsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztTQUNsRTtRQUNELElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFO1lBQzNCLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztTQUN0RTtRQUNELE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFTyxlQUFlLENBQUMsSUFBVTtRQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ3pELE9BQU8sUUFBUSxVQUFVLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztLQUNoRTs7QUF4TEgsa0JBeUxDOzs7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxVQUFVLENBQUMsSUFBa0IsRUFBRSxLQUFnQztJQUN0RSxPQUFPLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUMzQixTQUFTLEVBQUUsWUFBWTtRQUN2QixVQUFVLEVBQUUsZ0JBQWdCO1FBQzVCLGFBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQzFDLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUc7UUFDbkMsR0FBRyxLQUFLO0tBQ1QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBR0Q7Ozs7R0FJRztBQUNILFNBQVMsTUFBTSxDQUFDLEtBQTJCLEVBQUUsT0FBZTtJQUMxRCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNuQyxPQUFPLEVBQUUsTUFBTTtRQUNmLFFBQVEsRUFBRSxLQUFLO1FBQ2YsWUFBWSxFQUFFLE9BQU87S0FDdEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDb2RlLCBKb2JFeGVjdXRhYmxlLCBKb2JFeGVjdXRhYmxlQ29uZmlnLCBKb2JUeXBlIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBJQ29ubmVjdGlvbiB9IGZyb20gJy4vY29ubmVjdGlvbic7XG5pbXBvcnQgeyBDZm5Kb2IgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2x1ZSc7XG5pbXBvcnQgeyBJU2VjdXJpdHlDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9zZWN1cml0eS1jb25maWd1cmF0aW9uJztcblxuLyoqXG4gKiBUaGUgdHlwZSBvZiBwcmVkZWZpbmVkIHdvcmtlciB0aGF0IGlzIGFsbG9jYXRlZCB3aGVuIGEgam9iIHJ1bnMuXG4gKlxuICogSWYgeW91IG5lZWQgdG8gdXNlIGEgV29ya2VyVHlwZSB0aGF0IGRvZXNuJ3QgZXhpc3QgYXMgYSBzdGF0aWMgbWVtYmVyLCB5b3VcbiAqIGNhbiBpbnN0YW50aWF0ZSBhIGBXb3JrZXJUeXBlYCBvYmplY3QsIGUuZzogYFdvcmtlclR5cGUub2YoJ290aGVyIHR5cGUnKWAuXG4gKi9cbmV4cG9ydCBjbGFzcyBXb3JrZXJUeXBlIHtcbiAgLyoqXG4gICAqIEVhY2ggd29ya2VyIHByb3ZpZGVzIDQgdkNQVSwgMTYgR0Igb2YgbWVtb3J5IGFuZCBhIDUwR0IgZGlzaywgYW5kIDIgZXhlY3V0b3JzIHBlciB3b3JrZXIuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNUQU5EQVJEID0gbmV3IFdvcmtlclR5cGUoJ1N0YW5kYXJkJyk7XG5cbiAgLyoqXG4gICAqIEVhY2ggd29ya2VyIG1hcHMgdG8gMSBEUFUgKDQgdkNQVSwgMTYgR0Igb2YgbWVtb3J5LCA2NCBHQiBkaXNrKSwgYW5kIHByb3ZpZGVzIDEgZXhlY3V0b3IgcGVyIHdvcmtlci4gU3VpdGFibGUgZm9yIG1lbW9yeS1pbnRlbnNpdmUgam9icy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR18xWCA9IG5ldyBXb3JrZXJUeXBlKCdHLjFYJyk7XG5cbiAgLyoqXG4gICAqIEVhY2ggd29ya2VyIG1hcHMgdG8gMiBEUFUgKDggdkNQVSwgMzIgR0Igb2YgbWVtb3J5LCAxMjggR0IgZGlzayksIGFuZCBwcm92aWRlcyAxIGV4ZWN1dG9yIHBlciB3b3JrZXIuIFN1aXRhYmxlIGZvciBtZW1vcnktaW50ZW5zaXZlIGpvYnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdfMlggPSBuZXcgV29ya2VyVHlwZSgnRy4yWCcpO1xuXG4gIC8qKlxuICAgKiBFYWNoIHdvcmtlciBtYXBzIHRvIDAuMjUgRFBVICgyIHZDUFUsIDQgR0Igb2YgbWVtb3J5LCA2NCBHQiBkaXNrKSwgYW5kIHByb3ZpZGVzIDEgZXhlY3V0b3IgcGVyIHdvcmtlci4gU3VpdGFibGUgZm9yIGxvdyB2b2x1bWUgc3RyZWFtaW5nIGpvYnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdfMDI1WCA9IG5ldyBXb3JrZXJUeXBlKCdHLjAyNVgnKTtcblxuICAvKipcbiAgICogRWFjaCB3b3JrZXIgbWFwcyB0byAyIGhpZ2gtbWVtb3J5IERQVSBbTS1EUFVdICg4IHZDUFUsIDY0IEdCIG9mIG1lbW9yeSwgMTI4IEdCIGRpc2spLiBTdXBwb3J0ZWQgaW4gUmF5IGpvYnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFpfMlggPSBuZXcgV29ya2VyVHlwZSgnWi4yWCcpO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gd29ya2VyIHR5cGVcbiAgICogQHBhcmFtIHdvcmtlclR5cGUgY3VzdG9tIHdvcmtlciB0eXBlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHdvcmtlclR5cGU6IHN0cmluZyk6IFdvcmtlclR5cGUge1xuICAgIHJldHVybiBuZXcgV29ya2VyVHlwZSh3b3JrZXJUeXBlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIFdvcmtlclR5cGUsIGFzIGV4cGVjdGVkIGJ5IEpvYiByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG59XG5cbi8qKlxuICogSm9iIHN0YXRlcyBlbWl0dGVkIGJ5IEdsdWUgdG8gQ2xvdWRXYXRjaCBFdmVudHMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL0V2ZW50VHlwZXMuaHRtbCNnbHVlLWV2ZW50LXR5cGVzIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgZW51bSBKb2JTdGF0ZSB7XG4gIC8qKlxuICAgKiBTdGF0ZSBpbmRpY2F0aW5nIGpvYiBydW4gc3VjY2VlZGVkXG4gICAqL1xuICBTVUNDRUVERUQgPSAnU1VDQ0VFREVEJyxcblxuICAvKipcbiAgICogU3RhdGUgaW5kaWNhdGluZyBqb2IgcnVuIGZhaWxlZFxuICAgKi9cbiAgRkFJTEVEID0gJ0ZBSUxFRCcsXG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRpbmcgam9iIHJ1biB0aW1lZCBvdXRcbiAgICovXG4gIFRJTUVPVVQgPSAnVElNRU9VVCcsXG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRpbmcgam9iIGlzIHN0YXJ0aW5nXG4gICAqL1xuICBTVEFSVElORyA9ICdTVEFSVElORycsXG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRpbmcgam9iIGlzIHJ1bm5pbmdcbiAgICovXG4gIFJVTk5JTkcgPSAnUlVOTklORycsXG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRpbmcgam9iIGlzIHN0b3BwaW5nXG4gICAqL1xuICBTVE9QUElORyA9ICdTVE9QUElORycsXG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRpbmcgam9iIHN0b3BwZWRcbiAgICovXG4gIFNUT1BQRUQgPSAnU1RPUFBFRCcsXG59XG5cbi8qKlxuICogVGhlIEdsdWUgQ2xvdWRXYXRjaCBtZXRyaWMgdHlwZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9tb25pdG9yaW5nLWF3c2dsdWUtd2l0aC1jbG91ZHdhdGNoLW1ldHJpY3MuaHRtbFxuICovXG5leHBvcnQgZW51bSBNZXRyaWNUeXBlIHtcbiAgLyoqXG4gICAqIEEgdmFsdWUgYXQgYSBwb2ludCBpbiB0aW1lLlxuICAgKi9cbiAgR0FVR0UgPSAnZ2F1Z2UnLFxuXG4gIC8qKlxuICAgKiBBbiBhZ2dyZWdhdGUgbnVtYmVyLlxuICAgKi9cbiAgQ09VTlQgPSAnY291bnQnLFxufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgYSBjcmVhdGVkIG9yIGFuIGltcG9ydGVkIGBKb2JgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElKb2IgZXh0ZW5kcyBjZGsuSVJlc291cmNlLCBpYW0uSUdyYW50YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgam9iLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBqb2JOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGpvYi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgam9iQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBDbG91ZFdhdGNoIGV2ZW50IHJ1bGUgdHJpZ2dlcmVkIHdoZW4gc29tZXRoaW5nIGhhcHBlbnMgd2l0aCB0aGlzIGpvYi5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL0V2ZW50VHlwZXMuaHRtbCNnbHVlLWV2ZW50LXR5cGVzXG4gICAqL1xuICBvbkV2ZW50KGlkOiBzdHJpbmcsIG9wdGlvbnM/OiBldmVudHMuT25FdmVudE9wdGlvbnMpOiBldmVudHMuUnVsZTtcblxuICAvKipcbiAgICogRGVmaW5lcyBhIENsb3VkV2F0Y2ggZXZlbnQgcnVsZSB0cmlnZ2VyZWQgd2hlbiB0aGlzIGpvYiBtb3ZlcyB0byB0aGUgaW5wdXQgam9iU3RhdGUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9FdmVudFR5cGVzLmh0bWwjZ2x1ZS1ldmVudC10eXBlc1xuICAgKi9cbiAgb25TdGF0ZUNoYW5nZShpZDogc3RyaW5nLCBqb2JTdGF0ZTogSm9iU3RhdGUsIG9wdGlvbnM/OiBldmVudHMuT25FdmVudE9wdGlvbnMpOiBldmVudHMuUnVsZTtcblxuICAvKipcbiAgICogRGVmaW5lcyBhIENsb3VkV2F0Y2ggZXZlbnQgcnVsZSB0cmlnZ2VyZWQgd2hlbiB0aGlzIGpvYiBtb3ZlcyB0byB0aGUgU1VDQ0VFREVEIHN0YXRlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvRXZlbnRUeXBlcy5odG1sI2dsdWUtZXZlbnQtdHlwZXNcbiAgICovXG4gIG9uU3VjY2VzcyhpZDogc3RyaW5nLCBvcHRpb25zPzogZXZlbnRzLk9uRXZlbnRPcHRpb25zKTogZXZlbnRzLlJ1bGU7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBDbG91ZFdhdGNoIGV2ZW50IHJ1bGUgdHJpZ2dlcmVkIHdoZW4gdGhpcyBqb2IgbW92ZXMgdG8gdGhlIEZBSUxFRCBzdGF0ZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL0V2ZW50VHlwZXMuaHRtbCNnbHVlLWV2ZW50LXR5cGVzXG4gICAqL1xuICBvbkZhaWx1cmUoaWQ6IHN0cmluZywgb3B0aW9ucz86IGV2ZW50cy5PbkV2ZW50T3B0aW9ucyk6IGV2ZW50cy5SdWxlO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgQ2xvdWRXYXRjaCBldmVudCBydWxlIHRyaWdnZXJlZCB3aGVuIHRoaXMgam9iIG1vdmVzIHRvIHRoZSBUSU1FT1VUIHN0YXRlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvRXZlbnRUeXBlcy5odG1sI2dsdWUtZXZlbnQtdHlwZXNcbiAgICovXG4gIG9uVGltZW91dChpZDogc3RyaW5nLCBvcHRpb25zPzogZXZlbnRzLk9uRXZlbnRPcHRpb25zKTogZXZlbnRzLlJ1bGU7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggbWV0cmljLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBuYW1lIG9mIHRoZSBtZXRyaWMgdHlwaWNhbGx5IHByZWZpeGVkIHdpdGggYGdsdWUuZHJpdmVyLmAsIGBnbHVlLjxleGVjdXRvcklkPi5gIG9yIGBnbHVlLkFMTC5gLlxuICAgKiBAcGFyYW0gdHlwZSB0aGUgbWV0cmljIHR5cGUuXG4gICAqIEBwYXJhbSBwcm9wcyBtZXRyaWMgb3B0aW9ucy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvbW9uaXRvcmluZy1hd3NnbHVlLXdpdGgtY2xvdWR3YXRjaC1tZXRyaWNzLmh0bWxcbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHR5cGU6IE1ldHJpY1R5cGUsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggTWV0cmljIGluZGljYXRpbmcgam9iIHN1Y2Nlc3MuXG4gICAqL1xuICBtZXRyaWNTdWNjZXNzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggTWV0cmljIGluZGljYXRpbmcgam9iIGZhaWx1cmUuXG4gICAqL1xuICBtZXRyaWNGYWlsdXJlKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggTWV0cmljIGluZGljYXRpbmcgam9iIHRpbWVvdXQuXG4gICAqL1xuICBtZXRyaWNUaW1lb3V0KHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG59XG5cbmFic3RyYWN0IGNsYXNzIEpvYkJhc2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJSm9iIHtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgam9iQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBqb2JOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggRXZlbnQgUnVsZSBmb3IgdGhpcyBHbHVlIEpvYiB3aGVuIGl0J3MgaW4gYSBnaXZlbiBzdGF0ZVxuICAgKlxuICAgKiBAcGFyYW0gaWQgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBvcHRpb25zIGV2ZW50IG9wdGlvbnMuIE5vdGUgdGhhdCBzb21lIHZhbHVlcyBhcmUgb3ZlcnJpZGRlbiBpZiBwcm92aWRlZCwgdGhlc2UgYXJlXG4gICAqICAtIGV2ZW50UGF0dGVybi5zb3VyY2UgPSBbJ2F3cy5nbHVlJ11cbiAgICogIC0gZXZlbnRQYXR0ZXJuLmRldGFpbFR5cGUgPSBbJ0dsdWUgSm9iIFN0YXRlIENoYW5nZScsICdHbHVlIEpvYiBSdW4gU3RhdHVzJ11cbiAgICogIC0gZXZlbnRQYXR0ZXJuLmRldGFpbC5qb2JOYW1lID0gW3RoaXMuam9iTmFtZV1cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL0V2ZW50VHlwZXMuaHRtbCNnbHVlLWV2ZW50LXR5cGVzXG4gICAqL1xuICBwdWJsaWMgb25FdmVudChpZDogc3RyaW5nLCBvcHRpb25zOiBldmVudHMuT25FdmVudE9wdGlvbnMgPSB7fSk6IGV2ZW50cy5SdWxlIHtcbiAgICBjb25zdCBydWxlID0gbmV3IGV2ZW50cy5SdWxlKHRoaXMsIGlkLCBvcHRpb25zKTtcbiAgICBydWxlLmFkZFRhcmdldChvcHRpb25zLnRhcmdldCk7XG4gICAgcnVsZS5hZGRFdmVudFBhdHRlcm4oe1xuICAgICAgc291cmNlOiBbJ2F3cy5nbHVlJ10sXG4gICAgICBkZXRhaWxUeXBlOiBbJ0dsdWUgSm9iIFN0YXRlIENoYW5nZScsICdHbHVlIEpvYiBSdW4gU3RhdHVzJ10sXG4gICAgICBkZXRhaWw6IHtcbiAgICAgICAgam9iTmFtZTogW3RoaXMuam9iTmFtZV0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiBydWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggRXZlbnQgUnVsZSBmb3IgdGhlIHRyYW5zaXRpb24gaW50byB0aGUgaW5wdXQgam9iU3RhdGUuXG4gICAqXG4gICAqIEBwYXJhbSBpZCBjb25zdHJ1Y3QgaWQuXG4gICAqIEBwYXJhbSBqb2JTdGF0ZSB0aGUgam9iIHN0YXRlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBvcHRpb25hbCBldmVudCBvcHRpb25zLlxuICAgKi9cbiAgcHVibGljIG9uU3RhdGVDaGFuZ2UoaWQ6IHN0cmluZywgam9iU3RhdGU6IEpvYlN0YXRlLCBvcHRpb25zOiBldmVudHMuT25FdmVudE9wdGlvbnMgPSB7fSk6IGV2ZW50cy5SdWxlIHtcbiAgICBjb25zdCBydWxlID0gdGhpcy5vbkV2ZW50KGlkLCB7XG4gICAgICBkZXNjcmlwdGlvbjogYFJ1bGUgdHJpZ2dlcmVkIHdoZW4gR2x1ZSBqb2IgJHt0aGlzLmpvYk5hbWV9IGlzIGluICR7am9iU3RhdGV9IHN0YXRlYCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gICAgcnVsZS5hZGRFdmVudFBhdHRlcm4oe1xuICAgICAgZGV0YWlsOiB7XG4gICAgICAgIHN0YXRlOiBbam9iU3RhdGVdLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4gcnVsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBDbG91ZFdhdGNoIEV2ZW50IFJ1bGUgbWF0Y2hpbmcgSm9iU3RhdGUuU1VDQ0VFREVELlxuICAgKlxuICAgKiBAcGFyYW0gaWQgY29uc3RydWN0IGlkLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBvcHRpb25hbCBldmVudCBvcHRpb25zLiBkZWZhdWx0IGlzIHt9LlxuICAgKi9cbiAgcHVibGljIG9uU3VjY2VzcyhpZDogc3RyaW5nLCBvcHRpb25zOiBldmVudHMuT25FdmVudE9wdGlvbnMgPSB7fSk6IGV2ZW50cy5SdWxlIHtcbiAgICByZXR1cm4gdGhpcy5vblN0YXRlQ2hhbmdlKGlkLCBKb2JTdGF0ZS5TVUNDRUVERUQsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIENsb3VkV2F0Y2ggRXZlbnQgUnVsZSBtYXRjaGluZyBGQUlMRUQgc3RhdGUuXG4gICAqXG4gICAqIEBwYXJhbSBpZCBjb25zdHJ1Y3QgaWQuXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbmFsIGV2ZW50IG9wdGlvbnMuIGRlZmF1bHQgaXMge30uXG4gICAqL1xuICBwdWJsaWMgb25GYWlsdXJlKGlkOiBzdHJpbmcsIG9wdGlvbnM6IGV2ZW50cy5PbkV2ZW50T3B0aW9ucyA9IHt9KTogZXZlbnRzLlJ1bGUge1xuICAgIHJldHVybiB0aGlzLm9uU3RhdGVDaGFuZ2UoaWQsIEpvYlN0YXRlLkZBSUxFRCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgQ2xvdWRXYXRjaCBFdmVudCBSdWxlIG1hdGNoaW5nIFRJTUVPVVQgc3RhdGUuXG4gICAqXG4gICAqIEBwYXJhbSBpZCBjb25zdHJ1Y3QgaWQuXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbmFsIGV2ZW50IG9wdGlvbnMuIGRlZmF1bHQgaXMge30uXG4gICAqL1xuICBwdWJsaWMgb25UaW1lb3V0KGlkOiBzdHJpbmcsIG9wdGlvbnM6IGV2ZW50cy5PbkV2ZW50T3B0aW9ucyA9IHt9KTogZXZlbnRzLlJ1bGUge1xuICAgIHJldHVybiB0aGlzLm9uU3RhdGVDaGFuZ2UoaWQsIEpvYlN0YXRlLlRJTUVPVVQsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggbWV0cmljLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBuYW1lIG9mIHRoZSBtZXRyaWMgdHlwaWNhbGx5IHByZWZpeGVkIHdpdGggYGdsdWUuZHJpdmVyLmAsIGBnbHVlLjxleGVjdXRvcklkPi5gIG9yIGBnbHVlLkFMTC5gLlxuICAgKiBAcGFyYW0gdHlwZSB0aGUgbWV0cmljIHR5cGUuXG4gICAqIEBwYXJhbSBwcm9wcyBtZXRyaWMgb3B0aW9ucy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvbW9uaXRvcmluZy1hd3NnbHVlLXdpdGgtY2xvdWR3YXRjaC1tZXRyaWNzLmh0bWxcbiAgICovXG4gIHB1YmxpYyBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCB0eXBlOiBNZXRyaWNUeXBlLCBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICBuYW1lc3BhY2U6ICdHbHVlJyxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgSm9iTmFtZTogdGhpcy5qb2JOYW1lLFxuICAgICAgICBKb2JSdW5JZDogJ0FMTCcsXG4gICAgICAgIFR5cGU6IHR5cGUsXG4gICAgICB9LFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSkuYXR0YWNoVG8odGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgQ2xvdWRXYXRjaCBNZXRyaWMgaW5kaWNhdGluZyBqb2Igc3VjY2Vzcy5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgaXMgYmFzZWQgb24gdGhlIFJ1bGUgcmV0dXJuZWQgYnkgbm8tYXJncyBvblN1Y2Nlc3MoKSBjYWxsLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY1N1Y2Nlc3MocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIG1ldHJpY1J1bGUodGhpcy5tZXRyaWNKb2JTdGF0ZVJ1bGUoJ1N1Y2Nlc3NNZXRyaWNSdWxlJywgSm9iU3RhdGUuU1VDQ0VFREVEKSwgcHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIENsb3VkV2F0Y2ggTWV0cmljIGluZGljYXRpbmcgam9iIGZhaWx1cmUuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIGlzIGJhc2VkIG9uIHRoZSBSdWxlIHJldHVybmVkIGJ5IG5vLWFyZ3Mgb25GYWlsdXJlKCkgY2FsbC5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNGYWlsdXJlKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiBtZXRyaWNSdWxlKHRoaXMubWV0cmljSm9iU3RhdGVSdWxlKCdGYWlsdXJlTWV0cmljUnVsZScsIEpvYlN0YXRlLkZBSUxFRCksIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBDbG91ZFdhdGNoIE1ldHJpYyBpbmRpY2F0aW5nIGpvYiB0aW1lb3V0LlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyBpcyBiYXNlZCBvbiB0aGUgUnVsZSByZXR1cm5lZCBieSBuby1hcmdzIG9uVGltZW91dCgpIGNhbGwuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljVGltZW91dChwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gbWV0cmljUnVsZSh0aGlzLm1ldHJpY0pvYlN0YXRlUnVsZSgnVGltZW91dE1ldHJpY1J1bGUnLCBKb2JTdGF0ZS5USU1FT1VUKSwgcHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgb3IgcmV0cmlldmVzIGEgc2luZ2xldG9uIGV2ZW50IHJ1bGUgZm9yIHRoZSBpbnB1dCBqb2Igc3RhdGUgZm9yIHVzZSB3aXRoIHRoZSBtZXRyaWMgSm9iU3RhdGUgbWV0aG9kcy5cbiAgICpcbiAgICogQHBhcmFtIGlkIGNvbnN0cnVjdCBpZC5cbiAgICogQHBhcmFtIGpvYlN0YXRlIHRoZSBqb2Igc3RhdGUuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIG1ldHJpY0pvYlN0YXRlUnVsZShpZDogc3RyaW5nLCBqb2JTdGF0ZTogSm9iU3RhdGUpOiBldmVudHMuUnVsZSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZS50cnlGaW5kQ2hpbGQoaWQpIGFzIGV2ZW50cy5SdWxlID8/IHRoaXMub25TdGF0ZUNoYW5nZShpZCwgam9iU3RhdGUpO1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZW5hYmxpbmcgU3BhcmsgVUkgbW9uaXRvcmluZyBmZWF0dXJlIGZvciBTcGFyay1iYXNlZCBHbHVlIGpvYnMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvbW9uaXRvci1zcGFyay11aS1qb2JzLmh0bWxcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1nbHVlLWFyZ3VtZW50cy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhcmtVSVByb3BzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBTcGFyayBVSS5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW5cblxuICAvKipcbiAgICogVGhlIGJ1Y2tldCB3aGVyZSB0aGUgR2x1ZSBqb2Igc3RvcmVzIHRoZSBsb2dzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBhIG5ldyBidWNrZXQgd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0PzogczMuSUJ1Y2tldDtcblxuICAvKipcbiAgICogVGhlIHBhdGggaW5zaWRlIHRoZSBidWNrZXQgKG9iamVjdHMgcHJlZml4KSB3aGVyZSB0aGUgR2x1ZSBqb2Igc3RvcmVzIHRoZSBsb2dzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnLycgLSB0aGUgbG9ncyB3aWxsIGJlIHdyaXR0ZW4gYXQgdGhlIHJvb3Qgb2YgdGhlIGJ1Y2tldFxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBTcGFyayBVSSBsb2dnaW5nIGxvY2F0aW9uLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL21vbml0b3Itc3BhcmstdWktam9icy5odG1sXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZ2x1ZS1hcmd1bWVudHMuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXJrVUlMb2dnaW5nTG9jYXRpb24ge1xuICAvKipcbiAgICogVGhlIGJ1Y2tldCB3aGVyZSB0aGUgR2x1ZSBqb2Igc3RvcmVzIHRoZSBsb2dzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0OiBzMy5JQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBpbnNpZGUgdGhlIGJ1Y2tldCAob2JqZWN0cyBwcmVmaXgpIHdoZXJlIHRoZSBHbHVlIGpvYiBzdG9yZXMgdGhlIGxvZ3MuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcvJyAtIHRoZSBsb2dzIHdpbGwgYmUgd3JpdHRlbiBhdCB0aGUgcm9vdCBvZiB0aGUgYnVja2V0XG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZW5hYmxpbmcgQ29udGludW91cyBMb2dnaW5nIGZvciBHbHVlIEpvYnMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvbW9uaXRvci1jb250aW51b3VzLWxvZ2dpbmctZW5hYmxlLmh0bWxcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1nbHVlLWFyZ3VtZW50cy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGludW91c0xvZ2dpbmdQcm9wcyB7XG4gIC8qKlxuICAgKiBFbmFibGUgY29udGlub3VvdXMgbG9nZ2luZy5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBjdXN0b20gQ2xvdWRXYXRjaCBsb2cgZ3JvdXAgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIGxvZyBncm91cCBpcyBjcmVhdGVkIHdpdGggbmFtZSBgL2F3cy1nbHVlL2pvYnMvbG9ncy12Mi9gLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXA/OiBsb2dzLklMb2dHcm91cDtcblxuICAvKipcbiAgICogU3BlY2lmeSBhIGN1c3RvbSBDbG91ZFdhdGNoIGxvZyBzdHJlYW0gcHJlZml4LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBqb2IgcnVuIElELlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nU3RyZWFtUHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGaWx0ZXIgb3V0IG5vbi11c2VmdWwgQXBhY2hlIFNwYXJrIGRyaXZlci9leGVjdXRvciBhbmQgQXBhY2hlIEhhZG9vcCBZQVJOIGhlYXJ0YmVhdCBsb2cgbWVzc2FnZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXBwbHkgdGhlIHByb3ZpZGVkIGNvbnZlcnNpb24gcGF0dGVybi5cbiAgICpcbiAgICogVGhpcyBpcyBhIExvZzRqIENvbnZlcnNpb24gUGF0dGVybiB0byBjdXN0b21pemUgZHJpdmVyIGFuZCBleGVjdXRvciBsb2dzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJWR7eXkvTU0vZGQgSEg6bW06c3N9ICVwICVjezF9OiAlbSVuYFxuICAgKi9cbiAgcmVhZG9ubHkgY29udmVyc2lvblBhdHRlcm4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgaW1wb3J0aW5nIGBKb2JgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpvYkF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGpvYi5cbiAgICovXG4gIHJlYWRvbmx5IGpvYk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIGFzc3VtZWQgYnkgR2x1ZSB0byBydW4gdGhpcyBqb2IuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xufVxuXG4vKipcbiAqIENvbnN0cnVjdGlvbiBwcm9wZXJ0aWVzIGZvciBgSm9iYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2JQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgam9iJ3MgZXhlY3V0YWJsZSBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0YWJsZTogSm9iRXhlY3V0YWJsZTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGpvYi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5hbWUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGpvYk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgam9iLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHZhbHVlXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBBV1MgR2x1ZSBkYXRhIHByb2Nlc3NpbmcgdW5pdHMgKERQVXMpIHRoYXQgY2FuIGJlIGFsbG9jYXRlZCB3aGVuIHRoaXMgam9iIHJ1bnMuXG4gICAqIENhbm5vdCBiZSB1c2VkIGZvciBHbHVlIHZlcnNpb24gMi4wIGFuZCBsYXRlciAtIHdvcmtlclR5cGUgYW5kIHdvcmtlckNvdW50IHNob3VsZCBiZSB1c2VkIGluc3RlYWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMTAgd2hlbiBqb2IgdHlwZSBpcyBBcGFjaGUgU3BhcmsgRVRMIG9yIHN0cmVhbWluZywgMC4wNjI1IHdoZW4gam9iIHR5cGUgaXMgUHl0aG9uIHNoZWxsXG4gICAqL1xuICByZWFkb25seSBtYXhDYXBhY2l0eT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzIHRvIHJldHJ5IHRoaXMgam9iIGFmdGVyIGEgam9iIHJ1biBmYWlscy5cbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4UmV0cmllcz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgcnVucyBhbGxvd2VkIGZvciB0aGUgam9iLlxuICAgKlxuICAgKiBBbiBlcnJvciBpcyByZXR1cm5lZCB3aGVuIHRoaXMgdGhyZXNob2xkIGlzIHJlYWNoZWQuIFRoZSBtYXhpbXVtIHZhbHVlIHlvdSBjYW4gc3BlY2lmeSBpcyBjb250cm9sbGVkIGJ5IGEgc2VydmljZSBsaW1pdC5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29uY3VycmVudFJ1bnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgbWludXRlcyB0byB3YWl0IGFmdGVyIGEgam9iIHJ1biBzdGFydHMsIGJlZm9yZSBzZW5kaW5nIGEgam9iIHJ1biBkZWxheSBub3RpZmljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVsYXkgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZ5RGVsYXlBZnRlcj86IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSB0aGF0IGEgam9iIHJ1biBjYW4gY29uc3VtZSByZXNvdXJjZXMgYmVmb3JlIGl0IGlzIHRlcm1pbmF0ZWQgYW5kIGVudGVycyBUSU1FT1VUIHN0YXR1cy5cbiAgICpcbiAgICogQGRlZmF1bHQgY2RrLkR1cmF0aW9uLmhvdXJzKDQ4KVxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcHJlZGVmaW5lZCB3b3JrZXIgdGhhdCBpcyBhbGxvY2F0ZWQgd2hlbiBhIGpvYiBydW5zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRpZmZlcnMgYmFzZWQgb24gc3BlY2lmaWMgR2x1ZSB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSB3b3JrZXJUeXBlPzogV29ya2VyVHlwZTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB3b3JrZXJzIG9mIGEgZGVmaW5lZCBgV29ya2VyVHlwZWAgdGhhdCBhcmUgYWxsb2NhdGVkIHdoZW4gYSBqb2IgcnVucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkaWZmZXJzIGJhc2VkIG9uIHNwZWNpZmljIEdsdWUgdmVyc2lvbi93b3JrZXIgdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2VyQ291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBgQ29ubmVjdGlvbmBzIHVzZWQgZm9yIHRoaXMgam9iLlxuICAgKlxuICAgKiBDb25uZWN0aW9ucyBhcmUgdXNlZCB0byBjb25uZWN0IHRvIG90aGVyIEFXUyBTZXJ2aWNlIG9yIHJlc291cmNlcyB3aXRoaW4gYSBWUEMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdIC0gbm8gY29ubmVjdGlvbnMgYXJlIGFkZGVkIHRvIHRoZSBqb2JcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25zPzogSUNvbm5lY3Rpb25bXTtcblxuICAvKipcbiAgICogVGhlIGBTZWN1cml0eUNvbmZpZ3VyYXRpb25gIHRvIHVzZSBmb3IgdGhpcyBqb2IuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc2VjdXJpdHkgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5Q29uZmlndXJhdGlvbj86IElTZWN1cml0eUNvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGFyZ3VtZW50cyBmb3IgdGhpcyBqb2IsIHNwZWNpZmllZCBhcyBuYW1lLXZhbHVlIHBhaXJzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZ2x1ZS1hcmd1bWVudHMuaHRtbCBmb3IgYSBsaXN0IG9mIHJlc2VydmVkIHBhcmFtZXRlcnNcbiAgICogQGRlZmF1bHQgLSBubyBhcmd1bWVudHNcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRBcmd1bWVudHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFncyB0byBhZGQgdG8gdGhlIHJlc291cmNlcyBvbiB3aGljaCB0aGUgam9iIHJ1bnNcbiAgICpcbiAgICogQGRlZmF1bHQge30gLSBubyB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIGFzc3VtZWQgYnkgR2x1ZSB0byBydW4gdGhpcyBqb2IuXG4gICAqXG4gICAqIElmIHByb3ZpZGluZyBhIGN1c3RvbSByb2xlLCBpdCBuZWVkcyB0byB0cnVzdCB0aGUgR2x1ZSBzZXJ2aWNlIHByaW5jaXBhbCAoZ2x1ZS5hbWF6b25hd3MuY29tKSBhbmQgYmUgZ3JhbnRlZCBzdWZmaWNpZW50IHBlcm1pc3Npb25zLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9nZXR0aW5nLXN0YXJ0ZWQtYWNjZXNzLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIHJvbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3Igam9iIHByb2ZpbGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwcm9maWxpbmcgbWV0cmljcyBlbWl0dGVkLlxuICAgKlxuICAgKiBAc2VlIGAtLWVuYWJsZS1tZXRyaWNzYCBhdCBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWdsdWUtYXJndW1lbnRzLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVByb2ZpbGluZ01ldHJpY3M/IDpib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSBTcGFyayBVSSBkZWJ1Z2dpbmcgYW5kIG1vbml0b3Jpbmcgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFNwYXJrIFVJIGRlYnVnZ2luZyBhbmQgbW9uaXRvcmluZyBpcyBkaXNhYmxlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvbW9uaXRvci1zcGFyay11aS1qb2JzLmh0bWxcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWdsdWUtYXJndW1lbnRzLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IHNwYXJrVUk/OiBTcGFya1VJUHJvcHMsXG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgY29udGludW91cyBsb2dnaW5nIHdpdGggdGhlIHNwZWNpZmllZCBwcm9wcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjb250aW51b3VzIGxvZ2dpbmcgaXMgZGlzYWJsZWQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL21vbml0b3ItY29udGludW91cy1sb2dnaW5nLWVuYWJsZS5odG1sXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1nbHVlLWFyZ3VtZW50cy5odG1sXG4gICAqL1xuICByZWFkb25seSBjb250aW51b3VzTG9nZ2luZz86IENvbnRpbnVvdXNMb2dnaW5nUHJvcHMsXG59XG5cbi8qKlxuICogQSBHbHVlIEpvYi5cbiAqL1xuZXhwb3J0IGNsYXNzIEpvYiBleHRlbmRzIEpvYkJhc2Uge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIEdsdWUgSm9iXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgaWQuXG4gICAqIEBwYXJhbSBhdHRycyBJbXBvcnQgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tSm9iQXR0cmlidXRlcyhzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBKb2JBdHRyaWJ1dGVzKTogSUpvYiB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgSm9iQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgam9iTmFtZSA9IGF0dHJzLmpvYk5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgam9iQXJuID0gam9iQXJuKHNjb3BlLCBhdHRycy5qb2JOYW1lKTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbCA9IGF0dHJzLnJvbGUgPz8gbmV3IGlhbS5Vbmtub3duUHJpbmNpcGFsKHsgcmVzb3VyY2U6IHRoaXMgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBqb2IuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgam9iQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBqb2IuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgam9iTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgR2x1ZSBhc3N1bWVzIHRvIHJ1biB0aGlzIGpvYi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmluY2lwYWwgdGhpcyBHbHVlIEpvYiBpcyBydW5uaW5nIGFzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICAvKipcbiAgICogVGhlIFNwYXJrIFVJIGxvZ3MgbG9jYXRpb24gaWYgU3BhcmsgVUkgbW9uaXRvcmluZyBhbmQgZGVidWdnaW5nIGlzIGVuYWJsZWQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL21vbml0b3Itc3BhcmstdWktam9icy5odG1sXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1nbHVlLWFyZ3VtZW50cy5odG1sXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3BhcmtVSUxvZ2dpbmdMb2NhdGlvbj86IFNwYXJrVUlMb2dnaW5nTG9jYXRpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSm9iUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuam9iTmFtZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGV4ZWN1dGFibGUgPSBwcm9wcy5leGVjdXRhYmxlLmJpbmQoKTtcblxuICAgIHRoaXMucm9sZSA9IHByb3BzLnJvbGUgPz8gbmV3IGlhbS5Sb2xlKHRoaXMsICdTZXJ2aWNlUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdnbHVlLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW2lhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0FXU0dsdWVTZXJ2aWNlUm9sZScpXSxcbiAgICB9KTtcbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gdGhpcy5yb2xlO1xuXG4gICAgY29uc3Qgc3BhcmtVSSA9IHByb3BzLnNwYXJrVUk/LmVuYWJsZWQgPyB0aGlzLnNldHVwU3BhcmtVSShleGVjdXRhYmxlLCB0aGlzLnJvbGUsIHByb3BzLnNwYXJrVUkpIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuc3BhcmtVSUxvZ2dpbmdMb2NhdGlvbiA9IHNwYXJrVUk/LmxvY2F0aW9uO1xuICAgIGNvbnN0IGNvbnRpbnVvdXNMb2dnaW5nQXJncyA9IHByb3BzLmNvbnRpbnVvdXNMb2dnaW5nPy5lbmFibGVkID8gdGhpcy5zZXR1cENvbnRpbnVvdXNMb2dnaW5nKHRoaXMucm9sZSwgcHJvcHMuY29udGludW91c0xvZ2dpbmcpIDoge307XG4gICAgY29uc3QgcHJvZmlsaW5nTWV0cmljc0FyZ3MgPSBwcm9wcy5lbmFibGVQcm9maWxpbmdNZXRyaWNzID8geyAnLS1lbmFibGUtbWV0cmljcyc6ICcnIH0gOiB7fTtcblxuICAgIGNvbnN0IGRlZmF1bHRBcmd1bWVudHMgPSB7XG4gICAgICAuLi50aGlzLmV4ZWN1dGFibGVBcmd1bWVudHMoZXhlY3V0YWJsZSksXG4gICAgICAuLi5jb250aW51b3VzTG9nZ2luZ0FyZ3MsXG4gICAgICAuLi5wcm9maWxpbmdNZXRyaWNzQXJncyxcbiAgICAgIC4uLnNwYXJrVUk/LmFyZ3MsXG4gICAgICAuLi50aGlzLmNoZWNrTm9SZXNlcnZlZEFyZ3MocHJvcHMuZGVmYXVsdEFyZ3VtZW50cyksXG4gICAgfTtcblxuICAgIGNvbnN0IGpvYlJlc291cmNlID0gbmV3IENmbkpvYih0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiBwcm9wcy5qb2JOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgcm9sZTogdGhpcy5yb2xlLnJvbGVBcm4sXG4gICAgICBjb21tYW5kOiB7XG4gICAgICAgIG5hbWU6IGV4ZWN1dGFibGUudHlwZS5uYW1lLFxuICAgICAgICBzY3JpcHRMb2NhdGlvbjogdGhpcy5jb2RlUzNPYmplY3RVcmwoZXhlY3V0YWJsZS5zY3JpcHQpLFxuICAgICAgICBweXRob25WZXJzaW9uOiBleGVjdXRhYmxlLnB5dGhvblZlcnNpb24sXG4gICAgICB9LFxuICAgICAgZ2x1ZVZlcnNpb246IGV4ZWN1dGFibGUuZ2x1ZVZlcnNpb24ubmFtZSxcbiAgICAgIHdvcmtlclR5cGU6IHByb3BzLndvcmtlclR5cGU/Lm5hbWUsXG4gICAgICBudW1iZXJPZldvcmtlcnM6IHByb3BzLndvcmtlckNvdW50LFxuICAgICAgbWF4Q2FwYWNpdHk6IHByb3BzLm1heENhcGFjaXR5LFxuICAgICAgbWF4UmV0cmllczogcHJvcHMubWF4UmV0cmllcyxcbiAgICAgIGV4ZWN1dGlvblByb3BlcnR5OiBwcm9wcy5tYXhDb25jdXJyZW50UnVucyA/IHsgbWF4Q29uY3VycmVudFJ1bnM6IHByb3BzLm1heENvbmN1cnJlbnRSdW5zIH0gOiB1bmRlZmluZWQsXG4gICAgICBub3RpZmljYXRpb25Qcm9wZXJ0eTogcHJvcHMubm90aWZ5RGVsYXlBZnRlciA/IHsgbm90aWZ5RGVsYXlBZnRlcjogcHJvcHMubm90aWZ5RGVsYXlBZnRlci50b01pbnV0ZXMoKSB9IDogdW5kZWZpbmVkLFxuICAgICAgdGltZW91dDogcHJvcHMudGltZW91dD8udG9NaW51dGVzKCksXG4gICAgICBjb25uZWN0aW9uczogcHJvcHMuY29ubmVjdGlvbnMgPyB7IGNvbm5lY3Rpb25zOiBwcm9wcy5jb25uZWN0aW9ucy5tYXAoKGNvbm5lY3Rpb24pID0+IGNvbm5lY3Rpb24uY29ubmVjdGlvbk5hbWUpIH0gOiB1bmRlZmluZWQsXG4gICAgICBzZWN1cml0eUNvbmZpZ3VyYXRpb246IHByb3BzLnNlY3VyaXR5Q29uZmlndXJhdGlvbj8uc2VjdXJpdHlDb25maWd1cmF0aW9uTmFtZSxcbiAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgICBkZWZhdWx0QXJndW1lbnRzLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb3VyY2VOYW1lID0gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUoam9iUmVzb3VyY2UucmVmKTtcbiAgICB0aGlzLmpvYkFybiA9IGpvYkFybih0aGlzLCByZXNvdXJjZU5hbWUpO1xuICAgIHRoaXMuam9iTmFtZSA9IHJlc291cmNlTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBubyB1c2FnZSBvZiByZXNlcnZlZCBhcmd1bWVudHMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1nbHVlLWFyZ3VtZW50cy5odG1sXG4gICAqL1xuICBwcml2YXRlIGNoZWNrTm9SZXNlcnZlZEFyZ3MoZGVmYXVsdEFyZ3VtZW50cz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pIHtcbiAgICBpZiAoZGVmYXVsdEFyZ3VtZW50cykge1xuICAgICAgY29uc3QgcmVzZXJ2ZWRBcmdzID0gbmV3IFNldChbJy0tZGVidWcnLCAnLS1tb2RlJywgJy0tSk9CX05BTUUnXSk7XG4gICAgICBPYmplY3Qua2V5cyhkZWZhdWx0QXJndW1lbnRzKS5mb3JFYWNoKChhcmcpID0+IHtcbiAgICAgICAgaWYgKHJlc2VydmVkQXJncy5oYXMoYXJnKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlICR7YXJnfSBhcmd1bWVudCBpcyByZXNlcnZlZCBieSBHbHVlLiBEb24ndCBzZXQgaXRgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBkZWZhdWx0QXJndW1lbnRzO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRhYmxlQXJndW1lbnRzKGNvbmZpZzogSm9iRXhlY3V0YWJsZUNvbmZpZykge1xuICAgIGNvbnN0IGFyZ3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBhcmdzWyctLWpvYi1sYW5ndWFnZSddID0gY29uZmlnLmxhbmd1YWdlO1xuICAgIGlmIChjb25maWcuY2xhc3NOYW1lKSB7XG4gICAgICBhcmdzWyctLWNsYXNzJ10gPSBjb25maWcuY2xhc3NOYW1lO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmV4dHJhSmFycyAmJiBjb25maWcuZXh0cmFKYXJzPy5sZW5ndGggPiAwKSB7XG4gICAgICBhcmdzWyctLWV4dHJhLWphcnMnXSA9IGNvbmZpZy5leHRyYUphcnMubWFwKGNvZGUgPT4gdGhpcy5jb2RlUzNPYmplY3RVcmwoY29kZSkpLmpvaW4oJywnKTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5leHRyYVB5dGhvbkZpbGVzICYmIGNvbmZpZy5leHRyYVB5dGhvbkZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGFyZ3NbJy0tZXh0cmEtcHktZmlsZXMnXSA9IGNvbmZpZy5leHRyYVB5dGhvbkZpbGVzLm1hcChjb2RlID0+IHRoaXMuY29kZVMzT2JqZWN0VXJsKGNvZGUpKS5qb2luKCcsJyk7XG4gICAgfVxuICAgIGlmIChjb25maWcuZXh0cmFGaWxlcyAmJiBjb25maWcuZXh0cmFGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBhcmdzWyctLWV4dHJhLWZpbGVzJ10gPSBjb25maWcuZXh0cmFGaWxlcy5tYXAoY29kZSA9PiB0aGlzLmNvZGVTM09iamVjdFVybChjb2RlKSkuam9pbignLCcpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmV4dHJhSmFyc0ZpcnN0KSB7XG4gICAgICBhcmdzWyctLXVzZXItamFycy1maXJzdCddID0gJ3RydWUnO1xuICAgIH1cbiAgICByZXR1cm4gYXJncztcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBTcGFya1VJKGV4ZWN1dGFibGU6IEpvYkV4ZWN1dGFibGVDb25maWcsIHJvbGU6IGlhbS5JUm9sZSwgcHJvcHM6IFNwYXJrVUlQcm9wcykge1xuICAgIGlmIChKb2JUeXBlLlBZVEhPTl9TSEVMTCA9PT0gZXhlY3V0YWJsZS50eXBlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NwYXJrIFVJIGlzIG5vdCBhdmFpbGFibGUgZm9yIEpvYlR5cGUuUFlUSE9OX1NIRUxMIGpvYnMnKTtcbiAgICB9IGVsc2UgaWYgKEpvYlR5cGUuUkFZID09PSBleGVjdXRhYmxlLnR5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU3BhcmsgVUkgaXMgbm90IGF2YWlsYWJsZSBmb3IgSm9iVHlwZS5SQVkgam9icycpO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1Y2tldCA9IHByb3BzLmJ1Y2tldCA/PyBuZXcgczMuQnVja2V0KHRoaXMsICdTcGFya1VJQnVja2V0Jyk7XG4gICAgYnVja2V0LmdyYW50UmVhZFdyaXRlKHJvbGUpO1xuICAgIGNvbnN0IGFyZ3MgPSB7XG4gICAgICAnLS1lbmFibGUtc3BhcmstdWknOiAndHJ1ZScsXG4gICAgICAnLS1zcGFyay1ldmVudC1sb2dzLXBhdGgnOiBidWNrZXQuczNVcmxGb3JPYmplY3QocHJvcHMucHJlZml4KSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvY2F0aW9uOiB7XG4gICAgICAgIHByZWZpeDogcHJvcHMucHJlZml4LFxuICAgICAgICBidWNrZXQsXG4gICAgICB9LFxuICAgICAgYXJncyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cENvbnRpbnVvdXNMb2dnaW5nKHJvbGU6IGlhbS5JUm9sZSwgcHJvcHM6IENvbnRpbnVvdXNMb2dnaW5nUHJvcHMpIHtcbiAgICBjb25zdCBhcmdzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHtcbiAgICAgICctLWVuYWJsZS1jb250aW51b3VzLWNsb3Vkd2F0Y2gtbG9nJzogJ3RydWUnLFxuICAgICAgJy0tZW5hYmxlLWNvbnRpbnVvdXMtbG9nLWZpbHRlcic6IChwcm9wcy5xdWlldCA/PyB0cnVlKS50b1N0cmluZygpLFxuICAgIH07XG5cbiAgICBpZiAocHJvcHMubG9nR3JvdXApIHtcbiAgICAgIGFyZ3NbJy0tY29udGludW91cy1sb2ctbG9nR3JvdXAnXSA9IHByb3BzLmxvZ0dyb3VwLmxvZ0dyb3VwTmFtZTtcbiAgICAgIHByb3BzLmxvZ0dyb3VwLmdyYW50V3JpdGUocm9sZSk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmxvZ1N0cmVhbVByZWZpeCkge1xuICAgICAgYXJnc1snLS1jb250aW51b3VzLWxvZy1sb2dTdHJlYW1QcmVmaXgnXSA9IHByb3BzLmxvZ1N0cmVhbVByZWZpeDtcbiAgICB9XG4gICAgaWYgKHByb3BzLmNvbnZlcnNpb25QYXR0ZXJuKSB7XG4gICAgICBhcmdzWyctLWNvbnRpbnVvdXMtbG9nLWNvbnZlcnNpb25QYXR0ZXJuJ10gPSBwcm9wcy5jb252ZXJzaW9uUGF0dGVybjtcbiAgICB9XG4gICAgcmV0dXJuIGFyZ3M7XG4gIH1cblxuICBwcml2YXRlIGNvZGVTM09iamVjdFVybChjb2RlOiBDb2RlKSB7XG4gICAgY29uc3QgczNMb2NhdGlvbiA9IGNvZGUuYmluZCh0aGlzLCB0aGlzLnJvbGUpLnMzTG9jYXRpb247XG4gICAgcmV0dXJuIGBzMzovLyR7czNMb2NhdGlvbi5idWNrZXROYW1lfS8ke3MzTG9jYXRpb24ub2JqZWN0S2V5fWA7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBDbG91ZFdhdGNoIE1ldHJpYyB0aGF0J3MgYmFzZWQgb24gR2x1ZSBKb2IgZXZlbnRzXG4gKiB7QHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL0V2ZW50VHlwZXMuaHRtbCNnbHVlLWV2ZW50LXR5cGVzfVxuICogVGhlIG1ldHJpYyBoYXMgbmFtZXNwYWNlID0gJ0FXUy9FdmVudHMnLCBtZXRyaWNOYW1lID0gJ1RyaWdnZXJlZFJ1bGVzJyBhbmQgUnVsZU5hbWUgPSBydWxlLnJ1bGVOYW1lIGRpbWVuc2lvbi5cbiAqXG4gKiBAcGFyYW0gcnVsZSBmb3IgdXNlIGluIHNldHRpbmcgUnVsZU5hbWUgZGltZW5zaW9uIHZhbHVlXG4gKiBAcGFyYW0gcHJvcHMgbWV0cmljIHByb3BlcnRpZXNcbiAqL1xuZnVuY3Rpb24gbWV0cmljUnVsZShydWxlOiBldmVudHMuSVJ1bGUsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICByZXR1cm4gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICBuYW1lc3BhY2U6ICdBV1MvRXZlbnRzJyxcbiAgICBtZXRyaWNOYW1lOiAnVHJpZ2dlcmVkUnVsZXMnLFxuICAgIGRpbWVuc2lvbnNNYXA6IHsgUnVsZU5hbWU6IHJ1bGUucnVsZU5hbWUgfSxcbiAgICBzdGF0aXN0aWM6IGNsb3Vkd2F0Y2guU3RhdGlzdGljLlNVTSxcbiAgICAuLi5wcm9wcyxcbiAgfSkuYXR0YWNoVG8ocnVsZSk7XG59XG5cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBqb2IgYXJuXG4gKiBAcGFyYW0gc2NvcGVcbiAqIEBwYXJhbSBqb2JOYW1lXG4gKi9cbmZ1bmN0aW9uIGpvYkFybihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGpvYk5hbWU6IHN0cmluZykgOiBzdHJpbmcge1xuICByZXR1cm4gY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgIHNlcnZpY2U6ICdnbHVlJyxcbiAgICByZXNvdXJjZTogJ2pvYicsXG4gICAgcmVzb3VyY2VOYW1lOiBqb2JOYW1lLFxuICB9KTtcbn1cbiJdfQ==
431
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiam9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlEQUF5RDtBQUN6RCxpREFBaUQ7QUFDakQsMkNBQTJDO0FBRTNDLHlDQUF5QztBQUN6QyxtQ0FBbUM7QUFFbkMsd0JBQXNFO0FBRXRFLG1EQUE4QztBQUc5Qzs7Ozs7R0FLRztBQUNILE1BQWEsVUFBVTtJQTBCckI7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFrQjtRQUNqQyxPQUFPLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ25DO0lBT0QsWUFBb0IsSUFBWTtRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztLQUNsQjs7OztBQXhDRDs7R0FFRztBQUNvQixtQkFBUSxHQUFHLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRTdEOztHQUVHO0FBQ29CLGVBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUVyRDs7R0FFRztBQUNvQixlQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFckQ7O0dBRUc7QUFDb0IsaUJBQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUV6RDs7R0FFRztBQUNvQixlQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7QUF4QjFDLGdDQUFVO0FBNEN2Qjs7OztHQUlHO0FBQ0gsSUFBWSxRQW1DWDtBQW5DRCxXQUFZLFFBQVE7SUFDbEI7O09BRUc7SUFDSCxtQ0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILDZCQUFpQixDQUFBO0lBRWpCOztPQUVHO0lBQ0gsK0JBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxpQ0FBcUIsQ0FBQTtJQUVyQjs7T0FFRztJQUNILCtCQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsaUNBQXFCLENBQUE7SUFFckI7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c0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBldmVudHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENvZGUsIEpvYkV4ZWN1dGFibGUsIEpvYkV4ZWN1dGFibGVDb25maWcsIEpvYlR5cGUgfSBmcm9tICcuJztcbmltcG9ydCB7IElDb25uZWN0aW9uIH0gZnJvbSAnLi9jb25uZWN0aW9uJztcbmltcG9ydCB7IENmbkpvYiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCB7IElTZWN1cml0eUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL3NlY3VyaXR5LWNvbmZpZ3VyYXRpb24nO1xuXG4vKipcbiAqIFRoZSB0eXBlIG9mIHByZWRlZmluZWQgd29ya2VyIHRoYXQgaXMgYWxsb2NhdGVkIHdoZW4gYSBqb2IgcnVucy5cbiAqXG4gKiBJZiB5b3UgbmVlZCB0byB1c2UgYSBXb3JrZXJUeXBlIHRoYXQgZG9lc24ndCBleGlzdCBhcyBhIHN0YXRpYyBtZW1iZXIsIHlvdVxuICogY2FuIGluc3RhbnRpYXRlIGEgYFdvcmtlclR5cGVgIG9iamVjdCwgZS5nOiBgV29ya2VyVHlwZS5vZignb3RoZXIgdHlwZScpYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFdvcmtlclR5cGUge1xuICAvKipcbiAgICogRWFjaCB3b3JrZXIgcHJvdmlkZXMgNCB2Q1BVLCAxNiBHQiBvZiBtZW1vcnkgYW5kIGEgNTBHQiBkaXNrLCBhbmQgMiBleGVjdXRvcnMgcGVyIHdvcmtlci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1RBTkRBUkQgPSBuZXcgV29ya2VyVHlwZSgnU3RhbmRhcmQnKTtcblxuICAvKipcbiAgICogRWFjaCB3b3JrZXIgbWFwcyB0byAxIERQVSAoNCB2Q1BVLCAxNiBHQiBvZiBtZW1vcnksIDY0IEdCIGRpc2spLCBhbmQgcHJvdmlkZXMgMSBleGVjdXRvciBwZXIgd29ya2VyLiBTdWl0YWJsZSBmb3IgbWVtb3J5LWludGVuc2l2ZSBqb2JzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHXzFYID0gbmV3IFdvcmtlclR5cGUoJ0cuMVgnKTtcblxuICAvKipcbiAgICogRWFjaCB3b3JrZXIgbWFwcyB0byAyIERQVSAoOCB2Q1BVLCAzMiBHQiBvZiBtZW1vcnksIDEyOCBHQiBkaXNrKSwgYW5kIHByb3ZpZGVzIDEgZXhlY3V0b3IgcGVyIHdvcmtlci4gU3VpdGFibGUgZm9yIG1lbW9yeS1pbnRlbnNpdmUgam9icy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR18yWCA9IG5ldyBXb3JrZXJUeXBlKCdHLjJYJyk7XG5cbiAgLyoqXG4gICAqIEVhY2ggd29ya2VyIG1hcHMgdG8gMC4yNSBEUFUgKDIgdkNQVSwgNCBHQiBvZiBtZW1vcnksIDY0IEdCIGRpc2spLCBhbmQgcHJvdmlkZXMgMSBleGVjdXRvciBwZXIgd29ya2VyLiBTdWl0YWJsZSBmb3IgbG93IHZvbHVtZSBzdHJlYW1pbmcgam9icy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR18wMjVYID0gbmV3IFdvcmtlclR5cGUoJ0cuMDI1WCcpO1xuXG4gIC8qKlxuICAgKiBFYWNoIHdvcmtlciBtYXBzIHRvIDIgaGlnaC1tZW1vcnkgRFBVIFtNLURQVV0gKDggdkNQVSwgNjQgR0Igb2YgbWVtb3J5LCAxMjggR0IgZGlzaykuIFN1cHBvcnRlZCBpbiBSYXkgam9icy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWl8yWCA9IG5ldyBXb3JrZXJUeXBlKCdaLjJYJyk7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSB3b3JrZXIgdHlwZVxuICAgKiBAcGFyYW0gd29ya2VyVHlwZSBjdXN0b20gd29ya2VyIHR5cGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2Yod29ya2VyVHlwZTogc3RyaW5nKTogV29ya2VyVHlwZSB7XG4gICAgcmV0dXJuIG5ldyBXb3JrZXJUeXBlKHdvcmtlclR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgV29ya2VyVHlwZSwgYXMgZXhwZWN0ZWQgYnkgSm9iIHJlc291cmNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZykge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cbn1cblxuLyoqXG4gKiBKb2Igc3RhdGVzIGVtaXR0ZWQgYnkgR2x1ZSB0byBDbG91ZFdhdGNoIEV2ZW50cy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvRXZlbnRUeXBlcy5odG1sI2dsdWUtZXZlbnQtdHlwZXMgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBlbnVtIEpvYlN0YXRlIHtcbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRpbmcgam9iIHJ1biBzdWNjZWVkZWRcbiAgICovXG4gIFNVQ0NFRURFRCA9ICdTVUNDRUVERUQnLFxuXG4gIC8qKlxuICAgKiBTdGF0ZSBpbmRpY2F0aW5nIGpvYiBydW4gZmFpbGVkXG4gICAqL1xuICBGQUlMRUQgPSAnRkFJTEVEJyxcblxuICAvKipcbiAgICogU3RhdGUgaW5kaWNhdGluZyBqb2IgcnVuIHRpbWVkIG91dFxuICAgKi9cbiAgVElNRU9VVCA9ICdUSU1FT1VUJyxcblxuICAvKipcbiAgICogU3RhdGUgaW5kaWNhdGluZyBqb2IgaXMgc3RhcnRpbmdcbiAgICovXG4gIFNUQVJUSU5HID0gJ1NUQVJUSU5HJyxcblxuICAvKipcbiAgICogU3RhdGUgaW5kaWNhdGluZyBqb2IgaXMgcnVubmluZ1xuICAgKi9cbiAgUlVOTklORyA9ICdSVU5OSU5HJyxcblxuICAvKipcbiAgICogU3RhdGUgaW5kaWNhdGluZyBqb2IgaXMgc3RvcHBpbmdcbiAgICovXG4gIFNUT1BQSU5HID0gJ1NUT1BQSU5HJyxcblxuICAvKipcbiAgICogU3RhdGUgaW5kaWNhdGluZyBqb2Igc3RvcHBlZFxuICAgKi9cbiAgU1RPUFBFRCA9ICdTVE9QUEVEJyxcbn1cblxuLyoqXG4gKiBUaGUgR2x1ZSBDbG91ZFdhdGNoIG1ldHJpYyB0eXBlLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL21vbml0b3JpbmctYXdzZ2x1ZS13aXRoLWNsb3Vkd2F0Y2gtbWV0cmljcy5odG1sXG4gKi9cbmV4cG9ydCBlbnVtIE1ldHJpY1R5cGUge1xuICAvKipcbiAgICogQSB2YWx1ZSBhdCBhIHBvaW50IGluIHRpbWUuXG4gICAqL1xuICBHQVVHRSA9ICdnYXVnZScsXG5cbiAgLyoqXG4gICAqIEFuIGFnZ3JlZ2F0ZSBudW1iZXIuXG4gICAqL1xuICBDT1VOVCA9ICdjb3VudCcsXG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIGNyZWF0ZWQgb3IgYW4gaW1wb3J0ZWQgYEpvYmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUpvYiBleHRlbmRzIGNkay5JUmVzb3VyY2UsIGlhbS5JR3JhbnRhYmxlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBqb2IuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGpvYk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgam9iLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBqb2JBcm46IHN0cmluZztcblxuICAvKipcbiAgICogRGVmaW5lcyBhIENsb3VkV2F0Y2ggZXZlbnQgcnVsZSB0cmlnZ2VyZWQgd2hlbiBzb21ldGhpbmcgaGFwcGVucyB3aXRoIHRoaXMgam9iLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvRXZlbnRUeXBlcy5odG1sI2dsdWUtZXZlbnQtdHlwZXNcbiAgICovXG4gIG9uRXZlbnQoaWQ6IHN0cmluZywgb3B0aW9ucz86IGV2ZW50cy5PbkV2ZW50T3B0aW9ucyk6IGV2ZW50cy5SdWxlO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgQ2xvdWRXYXRjaCBldmVudCBydWxlIHRyaWdnZXJlZCB3aGVuIHRoaXMgam9iIG1vdmVzIHRvIHRoZSBpbnB1dCBqb2JTdGF0ZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL0V2ZW50VHlwZXMuaHRtbCNnbHVlLWV2ZW50LXR5cGVzXG4gICAqL1xuICBvblN0YXRlQ2hhbmdlKGlkOiBzdHJpbmcsIGpvYlN0YXRlOiBKb2JTdGF0ZSwgb3B0aW9ucz86IGV2ZW50cy5PbkV2ZW50T3B0aW9ucyk6IGV2ZW50cy5SdWxlO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgQ2xvdWRXYXRjaCBldmVudCBydWxlIHRyaWdnZXJlZCB3aGVuIHRoaXMgam9iIG1vdmVzIHRvIHRoZSBTVUNDRUVERUQgc3RhdGUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9FdmVudFR5cGVzLmh0bWwjZ2x1ZS1ldmVudC10eXBlc1xuICAgKi9cbiAgb25TdWNjZXNzKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiBldmVudHMuT25FdmVudE9wdGlvbnMpOiBldmVudHMuUnVsZTtcblxuICAvKipcbiAgICogRGVmaW5lcyBhIENsb3VkV2F0Y2ggZXZlbnQgcnVsZSB0cmlnZ2VyZWQgd2hlbiB0aGlzIGpvYiBtb3ZlcyB0byB0aGUgRkFJTEVEIHN0YXRlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvRXZlbnRUeXBlcy5odG1sI2dsdWUtZXZlbnQtdHlwZXNcbiAgICovXG4gIG9uRmFpbHVyZShpZDogc3RyaW5nLCBvcHRpb25zPzogZXZlbnRzLk9uRXZlbnRPcHRpb25zKTogZXZlbnRzLlJ1bGU7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBDbG91ZFdhdGNoIGV2ZW50IHJ1bGUgdHJpZ2dlcmVkIHdoZW4gdGhpcyBqb2IgbW92ZXMgdG8gdGhlIFRJTUVPVVQgc3RhdGUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9FdmVudFR5cGVzLmh0bWwjZ2x1ZS1ldmVudC10eXBlc1xuICAgKi9cbiAgb25UaW1lb3V0KGlkOiBzdHJpbmcsIG9wdGlvbnM/OiBldmVudHMuT25FdmVudE9wdGlvbnMpOiBldmVudHMuUnVsZTtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBtZXRyaWMuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRyaWNOYW1lIG5hbWUgb2YgdGhlIG1ldHJpYyB0eXBpY2FsbHkgcHJlZml4ZWQgd2l0aCBgZ2x1ZS5kcml2ZXIuYCwgYGdsdWUuPGV4ZWN1dG9ySWQ+LmAgb3IgYGdsdWUuQUxMLmAuXG4gICAqIEBwYXJhbSB0eXBlIHRoZSBtZXRyaWMgdHlwZS5cbiAgICogQHBhcmFtIHByb3BzIG1ldHJpYyBvcHRpb25zLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9tb25pdG9yaW5nLWF3c2dsdWUtd2l0aC1jbG91ZHdhdGNoLW1ldHJpY3MuaHRtbFxuICAgKi9cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgdHlwZTogTWV0cmljVHlwZSwgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBNZXRyaWMgaW5kaWNhdGluZyBqb2Igc3VjY2Vzcy5cbiAgICovXG4gIG1ldHJpY1N1Y2Nlc3MocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBNZXRyaWMgaW5kaWNhdGluZyBqb2IgZmFpbHVyZS5cbiAgICovXG4gIG1ldHJpY0ZhaWx1cmUocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBNZXRyaWMgaW5kaWNhdGluZyBqb2IgdGltZW91dC5cbiAgICovXG4gIG1ldHJpY1RpbWVvdXQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcbn1cblxuYWJzdHJhY3QgY2xhc3MgSm9iQmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElKb2Ige1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBqb2JBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGpvYk5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBFdmVudCBSdWxlIGZvciB0aGlzIEdsdWUgSm9iIHdoZW4gaXQncyBpbiBhIGdpdmVuIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSBpZCBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIG9wdGlvbnMgZXZlbnQgb3B0aW9ucy4gTm90ZSB0aGF0IHNvbWUgdmFsdWVzIGFyZSBvdmVycmlkZGVuIGlmIHByb3ZpZGVkLCB0aGVzZSBhcmVcbiAgICogIC0gZXZlbnRQYXR0ZXJuLnNvdXJjZSA9IFsnYXdzLmdsdWUnXVxuICAgKiAgLSBldmVudFBhdHRlcm4uZGV0YWlsVHlwZSA9IFsnR2x1ZSBKb2IgU3RhdGUgQ2hhbmdlJywgJ0dsdWUgSm9iIFJ1biBTdGF0dXMnXVxuICAgKiAgLSBldmVudFBhdHRlcm4uZGV0YWlsLmpvYk5hbWUgPSBbdGhpcy5qb2JOYW1lXVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvRXZlbnRUeXBlcy5odG1sI2dsdWUtZXZlbnQtdHlwZXNcbiAgICovXG4gIHB1YmxpYyBvbkV2ZW50KGlkOiBzdHJpbmcsIG9wdGlvbnM6IGV2ZW50cy5PbkV2ZW50T3B0aW9ucyA9IHt9KTogZXZlbnRzLlJ1bGUge1xuICAgIGNvbnN0IHJ1bGUgPSBuZXcgZXZlbnRzLlJ1bGUodGhpcywgaWQsIG9wdGlvbnMpO1xuICAgIHJ1bGUuYWRkVGFyZ2V0KG9wdGlvbnMudGFyZ2V0KTtcbiAgICBydWxlLmFkZEV2ZW50UGF0dGVybih7XG4gICAgICBzb3VyY2U6IFsnYXdzLmdsdWUnXSxcbiAgICAgIGRldGFpbFR5cGU6IFsnR2x1ZSBKb2IgU3RhdGUgQ2hhbmdlJywgJ0dsdWUgSm9iIFJ1biBTdGF0dXMnXSxcbiAgICAgIGRldGFpbDoge1xuICAgICAgICBqb2JOYW1lOiBbdGhpcy5qb2JOYW1lXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBFdmVudCBSdWxlIGZvciB0aGUgdHJhbnNpdGlvbiBpbnRvIHRoZSBpbnB1dCBqb2JTdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIGlkIGNvbnN0cnVjdCBpZC5cbiAgICogQHBhcmFtIGpvYlN0YXRlIHRoZSBqb2Igc3RhdGUuXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbmFsIGV2ZW50IG9wdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgb25TdGF0ZUNoYW5nZShpZDogc3RyaW5nLCBqb2JTdGF0ZTogSm9iU3RhdGUsIG9wdGlvbnM6IGV2ZW50cy5PbkV2ZW50T3B0aW9ucyA9IHt9KTogZXZlbnRzLlJ1bGUge1xuICAgIGNvbnN0IHJ1bGUgPSB0aGlzLm9uRXZlbnQoaWQsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgUnVsZSB0cmlnZ2VyZWQgd2hlbiBHbHVlIGpvYiAke3RoaXMuam9iTmFtZX0gaXMgaW4gJHtqb2JTdGF0ZX0gc3RhdGVgLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgICBydWxlLmFkZEV2ZW50UGF0dGVybih7XG4gICAgICBkZXRhaWw6IHtcbiAgICAgICAgc3RhdGU6IFtqb2JTdGF0ZV0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiBydWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggRXZlbnQgUnVsZSBtYXRjaGluZyBKb2JTdGF0ZS5TVUNDRUVERUQuXG4gICAqXG4gICAqIEBwYXJhbSBpZCBjb25zdHJ1Y3QgaWQuXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbmFsIGV2ZW50IG9wdGlvbnMuIGRlZmF1bHQgaXMge30uXG4gICAqL1xuICBwdWJsaWMgb25TdWNjZXNzKGlkOiBzdHJpbmcsIG9wdGlvbnM6IGV2ZW50cy5PbkV2ZW50T3B0aW9ucyA9IHt9KTogZXZlbnRzLlJ1bGUge1xuICAgIHJldHVybiB0aGlzLm9uU3RhdGVDaGFuZ2UoaWQsIEpvYlN0YXRlLlNVQ0NFRURFRCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgQ2xvdWRXYXRjaCBFdmVudCBSdWxlIG1hdGNoaW5nIEZBSUxFRCBzdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIGlkIGNvbnN0cnVjdCBpZC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9uYWwgZXZlbnQgb3B0aW9ucy4gZGVmYXVsdCBpcyB7fS5cbiAgICovXG4gIHB1YmxpYyBvbkZhaWx1cmUoaWQ6IHN0cmluZywgb3B0aW9uczogZXZlbnRzLk9uRXZlbnRPcHRpb25zID0ge30pOiBldmVudHMuUnVsZSB7XG4gICAgcmV0dXJuIHRoaXMub25TdGF0ZUNoYW5nZShpZCwgSm9iU3RhdGUuRkFJTEVELCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBDbG91ZFdhdGNoIEV2ZW50IFJ1bGUgbWF0Y2hpbmcgVElNRU9VVCBzdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIGlkIGNvbnN0cnVjdCBpZC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9uYWwgZXZlbnQgb3B0aW9ucy4gZGVmYXVsdCBpcyB7fS5cbiAgICovXG4gIHB1YmxpYyBvblRpbWVvdXQoaWQ6IHN0cmluZywgb3B0aW9uczogZXZlbnRzLk9uRXZlbnRPcHRpb25zID0ge30pOiBldmVudHMuUnVsZSB7XG4gICAgcmV0dXJuIHRoaXMub25TdGF0ZUNoYW5nZShpZCwgSm9iU3RhdGUuVElNRU9VVCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBtZXRyaWMuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRyaWNOYW1lIG5hbWUgb2YgdGhlIG1ldHJpYyB0eXBpY2FsbHkgcHJlZml4ZWQgd2l0aCBgZ2x1ZS5kcml2ZXIuYCwgYGdsdWUuPGV4ZWN1dG9ySWQ+LmAgb3IgYGdsdWUuQUxMLmAuXG4gICAqIEBwYXJhbSB0eXBlIHRoZSBtZXRyaWMgdHlwZS5cbiAgICogQHBhcmFtIHByb3BzIG1ldHJpYyBvcHRpb25zLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9tb25pdG9yaW5nLWF3c2dsdWUtd2l0aC1jbG91ZHdhdGNoLW1ldHJpY3MuaHRtbFxuICAgKi9cbiAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHR5cGU6IE1ldHJpY1R5cGUsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZSxcbiAgICAgIG5hbWVzcGFjZTogJ0dsdWUnLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBKb2JOYW1lOiB0aGlzLmpvYk5hbWUsXG4gICAgICAgIEpvYlJ1bklkOiAnQUxMJyxcbiAgICAgICAgVHlwZTogdHlwZSxcbiAgICAgIH0sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KS5hdHRhY2hUbyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBDbG91ZFdhdGNoIE1ldHJpYyBpbmRpY2F0aW5nIGpvYiBzdWNjZXNzLlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyBpcyBiYXNlZCBvbiB0aGUgUnVsZSByZXR1cm5lZCBieSBuby1hcmdzIG9uU3VjY2VzcygpIGNhbGwuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljU3VjY2Vzcyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gbWV0cmljUnVsZSh0aGlzLm1ldHJpY0pvYlN0YXRlUnVsZSgnU3VjY2Vzc01ldHJpY1J1bGUnLCBKb2JTdGF0ZS5TVUNDRUVERUQpLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgQ2xvdWRXYXRjaCBNZXRyaWMgaW5kaWNhdGluZyBqb2IgZmFpbHVyZS5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgaXMgYmFzZWQgb24gdGhlIFJ1bGUgcmV0dXJuZWQgYnkgbm8tYXJncyBvbkZhaWx1cmUoKSBjYWxsLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0ZhaWx1cmUocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIG1ldHJpY1J1bGUodGhpcy5tZXRyaWNKb2JTdGF0ZVJ1bGUoJ0ZhaWx1cmVNZXRyaWNSdWxlJywgSm9iU3RhdGUuRkFJTEVEKSwgcHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIENsb3VkV2F0Y2ggTWV0cmljIGluZGljYXRpbmcgam9iIHRpbWVvdXQuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIGlzIGJhc2VkIG9uIHRoZSBSdWxlIHJldHVybmVkIGJ5IG5vLWFyZ3Mgb25UaW1lb3V0KCkgY2FsbC5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNUaW1lb3V0KHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiBtZXRyaWNSdWxlKHRoaXMubWV0cmljSm9iU3RhdGVSdWxlKCdUaW1lb3V0TWV0cmljUnVsZScsIEpvYlN0YXRlLlRJTUVPVVQpLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBvciByZXRyaWV2ZXMgYSBzaW5nbGV0b24gZXZlbnQgcnVsZSBmb3IgdGhlIGlucHV0IGpvYiBzdGF0ZSBmb3IgdXNlIHdpdGggdGhlIG1ldHJpYyBKb2JTdGF0ZSBtZXRob2RzLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgY29uc3RydWN0IGlkLlxuICAgKiBAcGFyYW0gam9iU3RhdGUgdGhlIGpvYiBzdGF0ZS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgbWV0cmljSm9iU3RhdGVSdWxlKGlkOiBzdHJpbmcsIGpvYlN0YXRlOiBKb2JTdGF0ZSk6IGV2ZW50cy5SdWxlIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlLnRyeUZpbmRDaGlsZChpZCkgYXMgZXZlbnRzLlJ1bGUgPz8gdGhpcy5vblN0YXRlQ2hhbmdlKGlkLCBqb2JTdGF0ZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBlbmFibGluZyBTcGFyayBVSSBtb25pdG9yaW5nIGZlYXR1cmUgZm9yIFNwYXJrLWJhc2VkIEdsdWUgam9icy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9tb25pdG9yLXNwYXJrLXVpLWpvYnMuaHRtbFxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWdsdWUtYXJndW1lbnRzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGFya1VJUHJvcHMge1xuICAvKipcbiAgICogRW5hYmxlIFNwYXJrIFVJLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBUaGUgYnVja2V0IHdoZXJlIHRoZSBHbHVlIGpvYiBzdG9yZXMgdGhlIGxvZ3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IGEgbmV3IGJ1Y2tldCB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ/OiBzMy5JQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBpbnNpZGUgdGhlIGJ1Y2tldCAob2JqZWN0cyBwcmVmaXgpIHdoZXJlIHRoZSBHbHVlIGpvYiBzdG9yZXMgdGhlIGxvZ3MuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcvJyAtIHRoZSBsb2dzIHdpbGwgYmUgd3JpdHRlbiBhdCB0aGUgcm9vdCBvZiB0aGUgYnVja2V0XG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIFNwYXJrIFVJIGxvZ2dpbmcgbG9jYXRpb24uXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvbW9uaXRvci1zcGFyay11aS1qb2JzLmh0bWxcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1nbHVlLWFyZ3VtZW50cy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhcmtVSUxvZ2dpbmdMb2NhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgYnVja2V0IHdoZXJlIHRoZSBHbHVlIGpvYiBzdG9yZXMgdGhlIGxvZ3MuXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ6IHMzLklCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIGluc2lkZSB0aGUgYnVja2V0IChvYmplY3RzIHByZWZpeCkgd2hlcmUgdGhlIEdsdWUgam9iIHN0b3JlcyB0aGUgbG9ncy5cbiAgICpcbiAgICogQGRlZmF1bHQgJy8nIC0gdGhlIGxvZ3Mgd2lsbCBiZSB3cml0dGVuIGF0IHRoZSByb290IG9mIHRoZSBidWNrZXRcbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBlbmFibGluZyBDb250aW51b3VzIExvZ2dpbmcgZm9yIEdsdWUgSm9icy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9tb25pdG9yLWNvbnRpbnVvdXMtbG9nZ2luZy1lbmFibGUuaHRtbFxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWdsdWUtYXJndW1lbnRzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250aW51b3VzTG9nZ2luZ1Byb3BzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBjb250aW5vdW91cyBsb2dnaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmeSBhIGN1c3RvbSBDbG91ZFdhdGNoIGxvZyBncm91cCBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbG9nIGdyb3VwIGlzIGNyZWF0ZWQgd2l0aCBuYW1lIGAvYXdzLWdsdWUvam9icy9sb2dzLXYyL2AuXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cD86IGxvZ3MuSUxvZ0dyb3VwO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGEgY3VzdG9tIENsb3VkV2F0Y2ggbG9nIHN0cmVhbSBwcmVmaXguXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGpvYiBydW4gSUQuXG4gICAqL1xuICByZWFkb25seSBsb2dTdHJlYW1QcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbHRlciBvdXQgbm9uLXVzZWZ1bCBBcGFjaGUgU3BhcmsgZHJpdmVyL2V4ZWN1dG9yIGFuZCBBcGFjaGUgSGFkb29wIFlBUk4gaGVhcnRiZWF0IGxvZyBtZXNzYWdlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBcHBseSB0aGUgcHJvdmlkZWQgY29udmVyc2lvbiBwYXR0ZXJuLlxuICAgKlxuICAgKiBUaGlzIGlzIGEgTG9nNGogQ29udmVyc2lvbiBQYXR0ZXJuIHRvIGN1c3RvbWl6ZSBkcml2ZXIgYW5kIGV4ZWN1dG9yIGxvZ3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAlZHt5eS9NTS9kZCBISDptbTpzc30gJXAgJWN7MX06ICVtJW5gXG4gICAqL1xuICByZWFkb25seSBjb252ZXJzaW9uUGF0dGVybj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBdHRyaWJ1dGVzIGZvciBpbXBvcnRpbmcgYEpvYmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSm9iQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgam9iLlxuICAgKi9cbiAgcmVhZG9ubHkgam9iTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgYXNzdW1lZCBieSBHbHVlIHRvIHJ1biB0aGlzIGpvYi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG59XG5cbi8qKlxuICogQ29uc3RydWN0aW9uIHByb3BlcnRpZXMgZm9yIGBKb2JgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpvYlByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBqb2IncyBleGVjdXRhYmxlIHByb3BlcnRpZXMuXG4gICAqL1xuICByZWFkb25seSBleGVjdXRhYmxlOiBKb2JFeGVjdXRhYmxlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgam9iLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmFtZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgam9iTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBqb2IuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gdmFsdWVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIEFXUyBHbHVlIGRhdGEgcHJvY2Vzc2luZyB1bml0cyAoRFBVcykgdGhhdCBjYW4gYmUgYWxsb2NhdGVkIHdoZW4gdGhpcyBqb2IgcnVucy5cbiAgICogQ2Fubm90IGJlIHVzZWQgZm9yIEdsdWUgdmVyc2lvbiAyLjAgYW5kIGxhdGVyIC0gd29ya2VyVHlwZSBhbmQgd29ya2VyQ291bnQgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAxMCB3aGVuIGpvYiB0eXBlIGlzIEFwYWNoZSBTcGFyayBFVEwgb3Igc3RyZWFtaW5nLCAwLjA2MjUgd2hlbiBqb2IgdHlwZSBpcyBQeXRob24gc2hlbGxcbiAgICovXG4gIHJlYWRvbmx5IG1heENhcGFjaXR5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgdG8gcmV0cnkgdGhpcyBqb2IgYWZ0ZXIgYSBqb2IgcnVuIGZhaWxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBtYXhSZXRyaWVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCBydW5zIGFsbG93ZWQgZm9yIHRoZSBqb2IuXG4gICAqXG4gICAqIEFuIGVycm9yIGlzIHJldHVybmVkIHdoZW4gdGhpcyB0aHJlc2hvbGQgaXMgcmVhY2hlZC4gVGhlIG1heGltdW0gdmFsdWUgeW91IGNhbiBzcGVjaWZ5IGlzIGNvbnRyb2xsZWQgYnkgYSBzZXJ2aWNlIGxpbWl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBtYXhDb25jdXJyZW50UnVucz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBtaW51dGVzIHRvIHdhaXQgYWZ0ZXIgYSBqb2IgcnVuIHN0YXJ0cywgYmVmb3JlIHNlbmRpbmcgYSBqb2IgcnVuIGRlbGF5IG5vdGlmaWNhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZWxheSBub3RpZmljYXRpb25zXG4gICAqL1xuICByZWFkb25seSBub3RpZnlEZWxheUFmdGVyPzogY2RrLkR1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIHRoYXQgYSBqb2IgcnVuIGNhbiBjb25zdW1lIHJlc291cmNlcyBiZWZvcmUgaXQgaXMgdGVybWluYXRlZCBhbmQgZW50ZXJzIFRJTUVPVVQgc3RhdHVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBjZGsuRHVyYXRpb24uaG91cnMoNDgpXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0PzogY2RrLkR1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBwcmVkZWZpbmVkIHdvcmtlciB0aGF0IGlzIGFsbG9jYXRlZCB3aGVuIGEgam9iIHJ1bnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGlmZmVycyBiYXNlZCBvbiBzcGVjaWZpYyBHbHVlIHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtlclR5cGU/OiBXb3JrZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHdvcmtlcnMgb2YgYSBkZWZpbmVkIGBXb3JrZXJUeXBlYCB0aGF0IGFyZSBhbGxvY2F0ZWQgd2hlbiBhIGpvYiBydW5zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRpZmZlcnMgYmFzZWQgb24gc3BlY2lmaWMgR2x1ZSB2ZXJzaW9uL3dvcmtlciB0eXBlXG4gICAqL1xuICByZWFkb25seSB3b3JrZXJDb3VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGBDb25uZWN0aW9uYHMgdXNlZCBmb3IgdGhpcyBqb2IuXG4gICAqXG4gICAqIENvbm5lY3Rpb25zIGFyZSB1c2VkIHRvIGNvbm5lY3QgdG8gb3RoZXIgQVdTIFNlcnZpY2Ugb3IgcmVzb3VyY2VzIHdpdGhpbiBhIFZQQy5cbiAgICpcbiAgICogQGRlZmF1bHQgW10gLSBubyBjb25uZWN0aW9ucyBhcmUgYWRkZWQgdG8gdGhlIGpvYlxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbnM/OiBJQ29ubmVjdGlvbltdO1xuXG4gIC8qKlxuICAgKiBUaGUgYFNlY3VyaXR5Q29uZmlndXJhdGlvbmAgdG8gdXNlIGZvciB0aGlzIGpvYi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBzZWN1cml0eSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlDb25maWd1cmF0aW9uPzogSVNlY3VyaXR5Q29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgYXJndW1lbnRzIGZvciB0aGlzIGpvYiwgc3BlY2lmaWVkIGFzIG5hbWUtdmFsdWUgcGFpcnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1nbHVlLWFyZ3VtZW50cy5odG1sIGZvciBhIGxpc3Qgb2YgcmVzZXJ2ZWQgcGFyYW1ldGVyc1xuICAgKiBAZGVmYXVsdCAtIG5vIGFyZ3VtZW50c1xuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdEFyZ3VtZW50cz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSB0YWdzIHRvIGFkZCB0byB0aGUgcmVzb3VyY2VzIG9uIHdoaWNoIHRoZSBqb2IgcnVuc1xuICAgKlxuICAgKiBAZGVmYXVsdCB7fSAtIG5vIHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgYXNzdW1lZCBieSBHbHVlIHRvIHJ1biB0aGlzIGpvYi5cbiAgICpcbiAgICogSWYgcHJvdmlkaW5nIGEgY3VzdG9tIHJvbGUsIGl0IG5lZWRzIHRvIHRydXN0IHRoZSBHbHVlIHNlcnZpY2UgcHJpbmNpcGFsIChnbHVlLmFtYXpvbmF3cy5jb20pIGFuZCBiZSBncmFudGVkIHN1ZmZpY2llbnQgcGVybWlzc2lvbnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2dldHRpbmctc3RhcnRlZC1hY2Nlc3MuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgcm9sZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBqb2IgcHJvZmlsaW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHByb2ZpbGluZyBtZXRyaWNzIGVtaXR0ZWQuXG4gICAqXG4gICAqIEBzZWUgYC0tZW5hYmxlLW1ldHJpY3NgIGF0IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZ2x1ZS1hcmd1bWVudHMuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlUHJvZmlsaW5nTWV0cmljcz8gOmJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIFNwYXJrIFVJIGRlYnVnZ2luZyBhbmQgbW9uaXRvcmluZyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvcHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gU3BhcmsgVUkgZGVidWdnaW5nIGFuZCBtb25pdG9yaW5nIGlzIGRpc2FibGVkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9tb25pdG9yLXNwYXJrLXVpLWpvYnMuaHRtbFxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZ2x1ZS1hcmd1bWVudHMuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgc3BhcmtVST86IFNwYXJrVUlQcm9wcyxcblxuICAvKipcbiAgICogRW5hYmxlcyBjb250aW51b3VzIGxvZ2dpbmcgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGNvbnRpbnVvdXMgbG9nZ2luZyBpcyBkaXNhYmxlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvbW9uaXRvci1jb250aW51b3VzLWxvZ2dpbmctZW5hYmxlLmh0bWxcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWdsdWUtYXJndW1lbnRzLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRpbnVvdXNMb2dnaW5nPzogQ29udGludW91c0xvZ2dpbmdQcm9wcyxcbn1cblxuLyoqXG4gKiBBIEdsdWUgSm9iLlxuICovXG5leHBvcnQgY2xhc3MgSm9iIGV4dGVuZHMgSm9iQmFzZSB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgR2x1ZSBKb2JcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBpZC5cbiAgICogQHBhcmFtIGF0dHJzIEltcG9ydCBhdHRyaWJ1dGVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Kb2JBdHRyaWJ1dGVzKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IEpvYkF0dHJpYnV0ZXMpOiBJSm9iIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBKb2JCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBqb2JOYW1lID0gYXR0cnMuam9iTmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBqb2JBcm4gPSBqb2JBcm4oc2NvcGUsIGF0dHJzLmpvYk5hbWUpO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsID0gYXR0cnMucm9sZSA/PyBuZXcgaWFtLlVua25vd25QcmluY2lwYWwoeyByZXNvdXJjZTogdGhpcyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGpvYi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBqb2JBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGpvYi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBqb2JOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBHbHVlIGFzc3VtZXMgdG8gcnVuIHRoaXMgam9iLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCB0aGlzIEdsdWUgSm9iIGlzIHJ1bm5pbmcgYXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBUaGUgU3BhcmsgVUkgbG9ncyBsb2NhdGlvbiBpZiBTcGFyayBVSSBtb25pdG9yaW5nIGFuZCBkZWJ1Z2dpbmcgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvbW9uaXRvci1zcGFyay11aS1qb2JzLmh0bWxcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWdsdWUtYXJndW1lbnRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzcGFya1VJTG9nZ2luZ0xvY2F0aW9uPzogU3BhcmtVSUxvZ2dpbmdMb2NhdGlvbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBKb2JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5qb2JOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZXhlY3V0YWJsZSA9IHByb3BzLmV4ZWN1dGFibGUuYmluZCgpO1xuXG4gICAgdGhpcy5yb2xlID0gcHJvcHMucm9sZSA/PyBuZXcgaWFtLlJvbGUodGhpcywgJ1NlcnZpY2VSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2dsdWUuYW1hem9uYXdzLmNvbScpLFxuICAgICAgbWFuYWdlZFBvbGljaWVzOiBbaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdzZXJ2aWNlLXJvbGUvQVdTR2x1ZVNlcnZpY2VSb2xlJyldLFxuICAgIH0pO1xuICAgIHRoaXMuZ3JhbnRQcmluY2lwYWwgPSB0aGlzLnJvbGU7XG5cbiAgICBjb25zdCBzcGFya1VJID0gcHJvcHMuc3BhcmtVST8uZW5hYmxlZCA/IHRoaXMuc2V0dXBTcGFya1VJKGV4ZWN1dGFibGUsIHRoaXMucm9sZSwgcHJvcHMuc3BhcmtVSSkgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5zcGFya1VJTG9nZ2luZ0xvY2F0aW9uID0gc3BhcmtVST8ubG9jYXRpb247XG4gICAgY29uc3QgY29udGludW91c0xvZ2dpbmdBcmdzID0gcHJvcHMuY29udGludW91c0xvZ2dpbmc/LmVuYWJsZWQgPyB0aGlzLnNldHVwQ29udGludW91c0xvZ2dpbmcodGhpcy5yb2xlLCBwcm9wcy5jb250aW51b3VzTG9nZ2luZykgOiB7fTtcbiAgICBjb25zdCBwcm9maWxpbmdNZXRyaWNzQXJncyA9IHByb3BzLmVuYWJsZVByb2ZpbGluZ01ldHJpY3MgPyB7ICctLWVuYWJsZS1tZXRyaWNzJzogJycgfSA6IHt9O1xuXG4gICAgY29uc3QgZGVmYXVsdEFyZ3VtZW50cyA9IHtcbiAgICAgIC4uLnRoaXMuZXhlY3V0YWJsZUFyZ3VtZW50cyhleGVjdXRhYmxlKSxcbiAgICAgIC4uLmNvbnRpbnVvdXNMb2dnaW5nQXJncyxcbiAgICAgIC4uLnByb2ZpbGluZ01ldHJpY3NBcmdzLFxuICAgICAgLi4uc3BhcmtVST8uYXJncyxcbiAgICAgIC4uLnRoaXMuY2hlY2tOb1Jlc2VydmVkQXJncyhwcm9wcy5kZWZhdWx0QXJndW1lbnRzKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgam9iUmVzb3VyY2UgPSBuZXcgQ2ZuSm9iKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG5hbWU6IHByb3BzLmpvYk5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICByb2xlOiB0aGlzLnJvbGUucm9sZUFybixcbiAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgbmFtZTogZXhlY3V0YWJsZS50eXBlLm5hbWUsXG4gICAgICAgIHNjcmlwdExvY2F0aW9uOiB0aGlzLmNvZGVTM09iamVjdFVybChleGVjdXRhYmxlLnNjcmlwdCksXG4gICAgICAgIHB5dGhvblZlcnNpb246IGV4ZWN1dGFibGUucHl0aG9uVmVyc2lvbixcbiAgICAgIH0sXG4gICAgICBnbHVlVmVyc2lvbjogZXhlY3V0YWJsZS5nbHVlVmVyc2lvbi5uYW1lLFxuICAgICAgd29ya2VyVHlwZTogcHJvcHMud29ya2VyVHlwZT8ubmFtZSxcbiAgICAgIG51bWJlck9mV29ya2VyczogcHJvcHMud29ya2VyQ291bnQsXG4gICAgICBtYXhDYXBhY2l0eTogcHJvcHMubWF4Q2FwYWNpdHksXG4gICAgICBtYXhSZXRyaWVzOiBwcm9wcy5tYXhSZXRyaWVzLFxuICAgICAgZXhlY3V0aW9uUHJvcGVydHk6IHByb3BzLm1heENvbmN1cnJlbnRSdW5zID8geyBtYXhDb25jdXJyZW50UnVuczogcHJvcHMubWF4Q29uY3VycmVudFJ1bnMgfSA6IHVuZGVmaW5lZCxcbiAgICAgIG5vdGlmaWNhdGlvblByb3BlcnR5OiBwcm9wcy5ub3RpZnlEZWxheUFmdGVyID8geyBub3RpZnlEZWxheUFmdGVyOiBwcm9wcy5ub3RpZnlEZWxheUFmdGVyLnRvTWludXRlcygpIH0gOiB1bmRlZmluZWQsXG4gICAgICB0aW1lb3V0OiBwcm9wcy50aW1lb3V0Py50b01pbnV0ZXMoKSxcbiAgICAgIGNvbm5lY3Rpb25zOiBwcm9wcy5jb25uZWN0aW9ucyA/IHsgY29ubmVjdGlvbnM6IHByb3BzLmNvbm5lY3Rpb25zLm1hcCgoY29ubmVjdGlvbikgPT4gY29ubmVjdGlvbi5jb25uZWN0aW9uTmFtZSkgfSA6IHVuZGVmaW5lZCxcbiAgICAgIHNlY3VyaXR5Q29uZmlndXJhdGlvbjogcHJvcHMuc2VjdXJpdHlDb25maWd1cmF0aW9uPy5zZWN1cml0eUNvbmZpZ3VyYXRpb25OYW1lLFxuICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgIGRlZmF1bHRBcmd1bWVudHMsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNvdXJjZU5hbWUgPSB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZShqb2JSZXNvdXJjZS5yZWYpO1xuICAgIHRoaXMuam9iQXJuID0gam9iQXJuKHRoaXMsIHJlc291cmNlTmFtZSk7XG4gICAgdGhpcy5qb2JOYW1lID0gcmVzb3VyY2VOYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIG5vIHVzYWdlIG9mIHJlc2VydmVkIGFyZ3VtZW50cy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWdsdWUtYXJndW1lbnRzLmh0bWxcbiAgICovXG4gIHByaXZhdGUgY2hlY2tOb1Jlc2VydmVkQXJncyhkZWZhdWx0QXJndW1lbnRzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSkge1xuICAgIGlmIChkZWZhdWx0QXJndW1lbnRzKSB7XG4gICAgICBjb25zdCByZXNlcnZlZEFyZ3MgPSBuZXcgU2V0KFsnLS1kZWJ1ZycsICctLW1vZGUnLCAnLS1KT0JfTkFNRSddKTtcbiAgICAgIE9iamVjdC5rZXlzKGRlZmF1bHRBcmd1bWVudHMpLmZvckVhY2goKGFyZykgPT4ge1xuICAgICAgICBpZiAocmVzZXJ2ZWRBcmdzLmhhcyhhcmcpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgJHthcmd9IGFyZ3VtZW50IGlzIHJlc2VydmVkIGJ5IEdsdWUuIERvbid0IHNldCBpdGApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmF1bHRBcmd1bWVudHM7XG4gIH1cblxuICBwcml2YXRlIGV4ZWN1dGFibGVBcmd1bWVudHMoY29uZmlnOiBKb2JFeGVjdXRhYmxlQ29uZmlnKSB7XG4gICAgY29uc3QgYXJnczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGFyZ3NbJy0tam9iLWxhbmd1YWdlJ10gPSBjb25maWcubGFuZ3VhZ2U7XG4gICAgaWYgKGNvbmZpZy5jbGFzc05hbWUpIHtcbiAgICAgIGFyZ3NbJy0tY2xhc3MnXSA9IGNvbmZpZy5jbGFzc05hbWU7XG4gICAgfVxuICAgIGlmIChjb25maWcuZXh0cmFKYXJzICYmIGNvbmZpZy5leHRyYUphcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGFyZ3NbJy0tZXh0cmEtamFycyddID0gY29uZmlnLmV4dHJhSmFycy5tYXAoY29kZSA9PiB0aGlzLmNvZGVTM09iamVjdFVybChjb2RlKSkuam9pbignLCcpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmV4dHJhUHl0aG9uRmlsZXMgJiYgY29uZmlnLmV4dHJhUHl0aG9uRmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgYXJnc1snLS1leHRyYS1weS1maWxlcyddID0gY29uZmlnLmV4dHJhUHl0aG9uRmlsZXMubWFwKGNvZGUgPT4gdGhpcy5jb2RlUzNPYmplY3RVcmwoY29kZSkpLmpvaW4oJywnKTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5leHRyYUZpbGVzICYmIGNvbmZpZy5leHRyYUZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGFyZ3NbJy0tZXh0cmEtZmlsZXMnXSA9IGNvbmZpZy5leHRyYUZpbGVzLm1hcChjb2RlID0+IHRoaXMuY29kZVMzT2JqZWN0VXJsKGNvZGUpKS5qb2luKCcsJyk7XG4gICAgfVxuICAgIGlmIChjb25maWcuZXh0cmFKYXJzRmlyc3QpIHtcbiAgICAgIGFyZ3NbJy0tdXNlci1qYXJzLWZpcnN0J10gPSAndHJ1ZSc7XG4gICAgfVxuICAgIHJldHVybiBhcmdzO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFNwYXJrVUkoZXhlY3V0YWJsZTogSm9iRXhlY3V0YWJsZUNvbmZpZywgcm9sZTogaWFtLklSb2xlLCBwcm9wczogU3BhcmtVSVByb3BzKSB7XG4gICAgaWYgKEpvYlR5cGUuUFlUSE9OX1NIRUxMID09PSBleGVjdXRhYmxlLnR5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU3BhcmsgVUkgaXMgbm90IGF2YWlsYWJsZSBmb3IgSm9iVHlwZS5QWVRIT05fU0hFTEwgam9icycpO1xuICAgIH0gZWxzZSBpZiAoSm9iVHlwZS5SQVkgPT09IGV4ZWN1dGFibGUudHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTcGFyayBVSSBpcyBub3QgYXZhaWxhYmxlIGZvciBKb2JUeXBlLlJBWSBqb2JzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgYnVja2V0ID0gcHJvcHMuYnVja2V0ID8/IG5ldyBzMy5CdWNrZXQodGhpcywgJ1NwYXJrVUlCdWNrZXQnKTtcbiAgICBidWNrZXQuZ3JhbnRSZWFkV3JpdGUocm9sZSk7XG4gICAgY29uc3QgYXJncyA9IHtcbiAgICAgICctLWVuYWJsZS1zcGFyay11aSc6ICd0cnVlJyxcbiAgICAgICctLXNwYXJrLWV2ZW50LWxvZ3MtcGF0aCc6IGJ1Y2tldC5zM1VybEZvck9iamVjdChwcm9wcy5wcmVmaXgpLFxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgbG9jYXRpb246IHtcbiAgICAgICAgcHJlZml4OiBwcm9wcy5wcmVmaXgsXG4gICAgICAgIGJ1Y2tldCxcbiAgICAgIH0sXG4gICAgICBhcmdzLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNldHVwQ29udGludW91c0xvZ2dpbmcocm9sZTogaWFtLklSb2xlLCBwcm9wczogQ29udGludW91c0xvZ2dpbmdQcm9wcykge1xuICAgIGNvbnN0IGFyZ3M6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuICAgICAgJy0tZW5hYmxlLWNvbnRpbnVvdXMtY2xvdWR3YXRjaC1sb2cnOiAndHJ1ZScsXG4gICAgICAnLS1lbmFibGUtY29udGludW91cy1sb2ctZmlsdGVyJzogKHByb3BzLnF1aWV0ID8/IHRydWUpLnRvU3RyaW5nKCksXG4gICAgfTtcblxuICAgIGlmIChwcm9wcy5sb2dHcm91cCkge1xuICAgICAgYXJnc1snLS1jb250aW51b3VzLWxvZy1sb2dHcm91cCddID0gcHJvcHMubG9nR3JvdXAubG9nR3JvdXBOYW1lO1xuICAgICAgcHJvcHMubG9nR3JvdXAuZ3JhbnRXcml0ZShyb2xlKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMubG9nU3RyZWFtUHJlZml4KSB7XG4gICAgICBhcmdzWyctLWNvbnRpbnVvdXMtbG9nLWxvZ1N0cmVhbVByZWZpeCddID0gcHJvcHMubG9nU3RyZWFtUHJlZml4O1xuICAgIH1cbiAgICBpZiAocHJvcHMuY29udmVyc2lvblBhdHRlcm4pIHtcbiAgICAgIGFyZ3NbJy0tY29udGludW91cy1sb2ctY29udmVyc2lvblBhdHRlcm4nXSA9IHByb3BzLmNvbnZlcnNpb25QYXR0ZXJuO1xuICAgIH1cbiAgICByZXR1cm4gYXJncztcbiAgfVxuXG4gIHByaXZhdGUgY29kZVMzT2JqZWN0VXJsKGNvZGU6IENvZGUpIHtcbiAgICBjb25zdCBzM0xvY2F0aW9uID0gY29kZS5iaW5kKHRoaXMsIHRoaXMucm9sZSkuczNMb2NhdGlvbjtcbiAgICByZXR1cm4gYHMzOi8vJHtzM0xvY2F0aW9uLmJ1Y2tldE5hbWV9LyR7czNMb2NhdGlvbi5vYmplY3RLZXl9YDtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggTWV0cmljIHRoYXQncyBiYXNlZCBvbiBHbHVlIEpvYiBldmVudHNcbiAqIHtAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvRXZlbnRUeXBlcy5odG1sI2dsdWUtZXZlbnQtdHlwZXN9XG4gKiBUaGUgbWV0cmljIGhhcyBuYW1lc3BhY2UgPSAnQVdTL0V2ZW50cycsIG1ldHJpY05hbWUgPSAnVHJpZ2dlcmVkUnVsZXMnIGFuZCBSdWxlTmFtZSA9IHJ1bGUucnVsZU5hbWUgZGltZW5zaW9uLlxuICpcbiAqIEBwYXJhbSBydWxlIGZvciB1c2UgaW4gc2V0dGluZyBSdWxlTmFtZSBkaW1lbnNpb24gdmFsdWVcbiAqIEBwYXJhbSBwcm9wcyBtZXRyaWMgcHJvcGVydGllc1xuICovXG5mdW5jdGlvbiBtZXRyaWNSdWxlKHJ1bGU6IGV2ZW50cy5JUnVsZSwgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gIHJldHVybiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgIG5hbWVzcGFjZTogJ0FXUy9FdmVudHMnLFxuICAgIG1ldHJpY05hbWU6ICdUcmlnZ2VyZWRSdWxlcycsXG4gICAgZGltZW5zaW9uc01hcDogeyBSdWxlTmFtZTogcnVsZS5ydWxlTmFtZSB9LFxuICAgIHN0YXRpc3RpYzogY2xvdWR3YXRjaC5TdGF0aXN0aWMuU1VNLFxuICAgIC4uLnByb3BzLFxuICB9KS5hdHRhY2hUbyhydWxlKTtcbn1cblxuXG4vKipcbiAqIFJldHVybnMgdGhlIGpvYiBhcm5cbiAqIEBwYXJhbSBzY29wZVxuICogQHBhcmFtIGpvYk5hbWVcbiAqL1xuZnVuY3Rpb24gam9iQXJuKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgam9iTmFtZTogc3RyaW5nKSA6IHN0cmluZyB7XG4gIHJldHVybiBjZGsuU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgc2VydmljZTogJ2dsdWUnLFxuICAgIHJlc291cmNlOiAnam9iJyxcbiAgICByZXNvdXJjZU5hbWU6IGpvYk5hbWUsXG4gIH0pO1xufVxuIl19
package/lib/schema.js CHANGED
@@ -120,9 +120,8 @@ class Schema {
120
120
  };
121
121
  }
122
122
  }
123
- exports.Schema = Schema;
124
123
  _a = JSII_RTTI_SYMBOL_1;
125
- Schema[_a] = { fqn: "@aws-cdk/aws-glue-alpha.Schema", version: "2.71.0-alpha.0" };
124
+ Schema[_a] = { fqn: "@aws-cdk/aws-glue-alpha.Schema", version: "2.72.0-alpha.0" };
126
125
  Schema.BOOLEAN = {
127
126
  isPrimitive: true,
128
127
  inputString: 'boolean',
@@ -188,4 +187,5 @@ Schema.STRING = {
188
187
  isPrimitive: true,
189
188
  inputString: 'string',
190
189
  };
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXFDQTs7R0FFRztBQUNILE1BQWEsTUFBTTtJQTZFakI7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBaUIsRUFBRSxLQUFjO1FBQ3JELE9BQU87WUFDTCxXQUFXLEVBQUUsSUFBSTtZQUNqQixXQUFXLEVBQUUsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxTQUFTLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsU0FBUyxHQUFHO1NBQzlGLENBQUM7S0FDSDtJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQWM7UUFDL0IsSUFBSSxNQUFNLElBQUksQ0FBQyxJQUFJLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUMzRjtRQUNELElBQUksTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUMxRTtRQUNELE9BQU87WUFDTCxXQUFXLEVBQUUsSUFBSTtZQUNqQixXQUFXLEVBQUUsUUFBUSxNQUFNLEdBQUc7U0FDL0IsQ0FBQztLQUNIO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBYztRQUNsQyxJQUFJLE1BQU0sSUFBSSxDQUFDLElBQUksTUFBTSxHQUFHLEtBQUssRUFBRTtZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ2hHO1FBQ0QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxNQUFNLEVBQUUs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Ii8qKlxuICogQSBjb2x1bW4gb2YgYSB0YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2x1bW4ge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgY29sdW1uLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUeXBlIG9mIHRoZSBjb2x1bW4uXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBUeXBlO1xuXG4gIC8qKlxuICAgKiBDb21lbnQgZGVzY3JpYmluZyB0aGUgY29sdW1uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICByZWFkb25seSBjb21tZW50Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0eXBlIG9mIGEgY29sdW1uIGluIGEgdGFibGUgc2NoZW1hLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGUge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhpcyB0eXBlIGlzIGEgcHJpbWl0aXZlIGRhdGEgdHlwZS5cbiAgICovXG4gIHJlYWRvbmx5IGlzUHJpbWl0aXZlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHbHVlIElucHV0U3RyaW5nIGZvciB0aGlzIHR5cGUuXG4gICAqL1xuICByZWFkb25seSBpbnB1dFN0cmluZzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvZGF0YS10eXBlcy5odG1sXG4gKi9cbmV4cG9ydCBjbGFzcyBTY2hlbWEge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJPT0xFQU46IFR5cGUgPSB7XG4gICAgaXNQcmltaXRpdmU6IHRydWUsXG4gICAgaW5wdXRTdHJpbmc6ICdib29sZWFuJyxcbiAgfTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJJTkFSWTogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ2JpbmFyeScsXG4gIH07XG5cbiAgLyoqXG4gICAqIEEgNjQtYml0IHNpZ25lZCBJTlRFR0VSIGluIHR3b+KAmXMgY29tcGxlbWVudCBmb3JtYXQsIHdpdGggYSBtaW5pbXVtIHZhbHVlIG9mIC0yXjYzIGFuZCBhIG1heGltdW0gdmFsdWUgb2YgMl42My0xLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCSUdfSU5UOiBUeXBlID0ge1xuICAgIGlzUHJpbWl0aXZlOiB0cnVlLFxuICAgIGlucHV0U3RyaW5nOiAnYmlnaW50JyxcbiAgfTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERPVUJMRTogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ2RvdWJsZScsXG4gIH07XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBGTE9BVDogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ2Zsb2F0JyxcbiAgfTtcblxuICAvKipcbiAgICogQSAzMi1iaXQgc2lnbmVkIElOVEVHRVIgaW4gdHdv4oCZcyBjb21wbGVtZW50IGZvcm1hdCwgd2l0aCBhIG1pbmltdW0gdmFsdWUgb2YgLTJeMzEgYW5kIGEgbWF4aW11bSB2YWx1ZSBvZiAyXjMxLTEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOVEVHRVI6IFR5cGUgPSB7XG4gICAgaXNQcmltaXRpdmU6IHRydWUsXG4gICAgaW5wdXRTdHJpbmc6ICdpbnQnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBBIDE2LWJpdCBzaWduZWQgSU5URUdFUiBpbiB0d2/igJlzIGNvbXBsZW1lbnQgZm9ybWF0LCB3aXRoIGEgbWluaW11bSB2YWx1ZSBvZiAtMl4xNSBhbmQgYSBtYXhpbXVtIHZhbHVlIG9mIDJeMTUtMS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU01BTExfSU5UOiBUeXBlID0ge1xuICAgIGlzUHJpbWl0aXZlOiB0cnVlLFxuICAgIGlucHV0U3RyaW5nOiAnc21hbGxpbnQnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBBIDgtYml0IHNpZ25lZCBJTlRFR0VSIGluIHR3b+KAmXMgY29tcGxlbWVudCBmb3JtYXQsIHdpdGggYSBtaW5pbXVtIHZhbHVlIG9mIC0yXjcgYW5kIGEgbWF4aW11bSB2YWx1ZSBvZiAyXjctMVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUSU5ZX0lOVDogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ3RpbnlpbnQnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBEYXRlIHR5cGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERBVEU6IFR5cGUgPSB7XG4gICAgaXNQcmltaXRpdmU6IHRydWUsXG4gICAgaW5wdXRTdHJpbmc6ICdkYXRlJyxcbiAgfTtcblxuICAvKipcbiAgICogVGltZXN0YW1wIHR5cGUgKGRhdGUgYW5kIHRpbWUpLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUSU1FU1RBTVA6IFR5cGUgPSB7XG4gICAgaXNQcmltaXRpdmU6IHRydWUsXG4gICAgaW5wdXRTdHJpbmc6ICd0aW1lc3RhbXAnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBBcmJpdHJhcnktbGVuZ3RoIHN0cmluZyB0eXBlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTVFJJTkc6IFR5cGUgPSB7XG4gICAgaXNQcmltaXRpdmU6IHRydWUsXG4gICAgaW5wdXRTdHJpbmc6ICdzdHJpbmcnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZGVjaW1hbCB0eXBlLlxuICAgKlxuICAgKiBUT0RPOiBCb3VuZHNcbiAgICpcbiAgICogQHBhcmFtIHByZWNpc2lvbiB0aGUgdG90YWwgbnVtYmVyIG9mIGRpZ2l0c1xuICAgKiBAcGFyYW0gc2NhbGUgdGhlIG51bWJlciBvZiBkaWdpdHMgaW4gZnJhY3Rpb25hbCBwYXJ0LCB0aGUgZGVmYXVsdCBpcyAwXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGRlY2ltYWwocHJlY2lzaW9uOiBudW1iZXIsIHNjYWxlPzogbnVtYmVyKTogVHlwZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzUHJpbWl0aXZlOiB0cnVlLFxuICAgICAgaW5wdXRTdHJpbmc6IHNjYWxlICE9PSB1bmRlZmluZWQgPyBgZGVjaW1hbCgke3ByZWNpc2lvbn0sJHtzY2FsZX0pYCA6IGBkZWNpbWFsKCR7cHJlY2lzaW9ufSlgLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRml4ZWQgbGVuZ3RoIGNoYXJhY3RlciBkYXRhLCB3aXRoIGEgc3BlY2lmaWVkIGxlbmd0aCBiZXR3ZWVuIDEgYW5kIDI1NS5cbiAgICpcbiAgICogQHBhcmFtIGxlbmd0aCBsZW5ndGggYmV0d2VlbiAxIGFuZCAyNTVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY2hhcihsZW5ndGg6IG51bWJlcik6IFR5cGUge1xuICAgIGlmIChsZW5ndGggPD0gMCB8fCBsZW5ndGggPiAyNTUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgY2hhciBsZW5ndGggbXVzdCBiZSAoaW5jbHVzaXZlbHkpIGJldHdlZW4gMSBhbmQgMjU1LCBidXQgd2FzICR7bGVuZ3RofWApO1xuICAgIH1cbiAgICBpZiAobGVuZ3RoICUgMSAhPT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjaGFyIGxlbmd0aCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgd2FzICR7bGVuZ3RofWApO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgaXNQcmltaXRpdmU6IHRydWUsXG4gICAgICBpbnB1dFN0cmluZzogYGNoYXIoJHtsZW5ndGh9KWAsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYXJpYWJsZSBsZW5ndGggY2hhcmFjdGVyIGRhdGEsIHdpdGggYSBzcGVjaWZpZWQgbGVuZ3RoIGJldHdlZW4gMSBhbmQgNjU1MzUuXG4gICAqXG4gICAqIEBwYXJhbSBsZW5ndGggbGVuZ3RoIGJldHdlZW4gMSBhbmQgNjU1MzUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZhcmNoYXIobGVuZ3RoOiBudW1iZXIpOiBUeXBlIHtcbiAgICBpZiAobGVuZ3RoIDw9IDAgfHwgbGVuZ3RoID4gNjU1MzUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdmFyY2hhciBsZW5ndGggbXVzdCBiZSAoaW5jbHVzaXZlbHkpIGJldHdlZW4gMSBhbmQgNjU1MzUsIGJ1dCB3YXMgJHtsZW5ndGh9YCk7XG4gICAgfVxuICAgIGlmIChsZW5ndGggJSAxICE9PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhcmNoYXIgbGVuZ3RoIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCB3YXMgJHtsZW5ndGh9YCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICAgIGlucHV0U3RyaW5nOiBgdmFyY2hhcigke2xlbmd0aH0pYCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYXJyYXkgb2Ygc29tZSBvdGhlciB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbVR5cGUgdHlwZSBjb250YWluZWQgYnkgdGhlIGFycmF5LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhcnJheShpdGVtVHlwZTogVHlwZSk6IFR5cGUge1xuICAgIHJldHVybiB7XG4gICAgICBpc1ByaW1pdGl2ZTogZmFsc2UsXG4gICAgICBpbnB1dFN0cmluZzogYGFycmF5PCR7aXRlbVR5cGUuaW5wdXRTdHJpbmd9PmAsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbWFwIG9mIHNvbWUgcHJpbWl0aXZlIGtleSB0eXBlIHRvIHNvbWUgdmFsdWUgdHlwZS5cbiAgICpcbiAgICogQHBhcmFtIGtleVR5cGUgdHlwZSBvZiBrZXksIG11c3QgYmUgYSBwcmltaXRpdmUuXG4gICAqIEBwYXJhbSB2YWx1ZVR5cGUgdHlwZSBmbyB0aGUgdmFsdWUgaW5kZXhlZCBieSB0aGUga2V5LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtYXAoa2V5VHlwZTogVHlwZSwgdmFsdWVUeXBlOiBUeXBlKTogVHlwZSB7XG4gICAgaWYgKCFrZXlUeXBlLmlzUHJpbWl0aXZlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHRoZSBrZXkgdHlwZSBvZiBhICdtYXAnIG11c3QgYmUgYSBwcmltaXRpdmUsIGJ1dCB3YXMgJHtrZXlUeXBlLmlucHV0U3RyaW5nfWApO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgaXNQcmltaXRpdmU6IGZhbHNlLFxuICAgICAgaW5wdXRTdHJpbmc6IGBtYXA8JHtrZXlUeXBlLmlucHV0U3RyaW5nfSwke3ZhbHVlVHlwZS5pbnB1dFN0cmluZ30+YCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXN0ZWQgc3RydWN0dXJlIGNvbnRhaW5pbmcgaW5kaXZpZHVhbGx5IG5hbWVkIGFuZCB0eXBlZCBjb2x1bW5zLlxuICAgKlxuICAgKiBAcGFyYW0gY29sdW1ucyB0aGUgY29sdW1ucyBvZiB0aGUgc3RydWN0dXJlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzdHJ1Y3QoY29sdW1uczogQ29sdW1uW10pOiBUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNQcmltaXRpdmU6IGZhbHNlLFxuICAgICAgaW5wdXRTdHJpbmc6IGBzdHJ1Y3Q8JHtjb2x1bW5zLm1hcChjb2x1bW4gPT4ge1xuICAgICAgICBpZiAoY29sdW1uLmNvbW1lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldHVybiBgJHtjb2x1bW4ubmFtZX06JHtjb2x1bW4udHlwZS5pbnB1dFN0cmluZ31gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBgJHtjb2x1bW4ubmFtZX06JHtjb2x1bW4udHlwZS5pbnB1dFN0cmluZ30gQ09NTUVOVCAnJHtjb2x1bW4uY29tbWVudH0nYDtcbiAgICAgICAgfVxuICAgICAgfSkuam9pbignLCcpfT5gLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
190
+ exports.Schema = Schema;
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXFDQTs7R0FFRztBQUNILE1BQWEsTUFBTTtJQTZFakI7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBaUIsRUFBRSxLQUFjO1FBQ3JELE9BQU87WUFDTCxXQUFXLEVBQUUsSUFBSTtZQUNqQixXQUFXLEVBQUUsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxTQUFTLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsU0FBUyxHQUFHO1NBQzlGLENBQUM7S0FDSDtJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQWM7UUFDL0IsSUFBSSxNQUFNLElBQUksQ0FBQyxJQUFJLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUMzRjtRQUNELElBQUksTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUMxRTtRQUNELE9BQU87WUFDTCxXQUFXLEVBQUUsSUFBSTtZQUNqQixXQUFXLEVBQUUsUUFBUSxNQUFNLEdBQUc7U0FDL0IsQ0FBQztLQUNIO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBYztRQUNsQyxJQUFJLE1BQU0sSUFBSSxDQUFDLElBQUksTUFBTSxHQUFHLEtBQUssRUFBRTtZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHFFQUFxRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ2hHO1FBQ0QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxNQUFNLEVBQUUs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LyoqXG4gKiBBIGNvbHVtbiBvZiBhIHRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbiB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBjb2x1bW4uXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFR5cGUgb2YgdGhlIGNvbHVtbi5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IFR5cGU7XG5cbiAgLyoqXG4gICAqIENvbWVudCBkZXNjcmliaW5nIHRoZSBjb2x1bW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGNvbW1lbnQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHR5cGUgb2YgYSBjb2x1bW4gaW4gYSB0YWJsZSBzY2hlbWEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZSB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGlzIHR5cGUgaXMgYSBwcmltaXRpdmUgZGF0YSB0eXBlLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNQcmltaXRpdmU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdsdWUgSW5wdXRTdHJpbmcgZm9yIHRoaXMgdHlwZS5cbiAgICovXG4gIHJlYWRvbmx5IGlucHV0U3RyaW5nOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXRoZW5hL2xhdGVzdC91Zy9kYXRhLXR5cGVzLmh0bWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNjaGVtYSB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQk9PTEVBTjogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ2Jvb2xlYW4nLFxuICB9O1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQklOQVJZOiBUeXBlID0ge1xuICAgIGlzUHJpbWl0aXZlOiB0cnVlLFxuICAgIGlucHV0U3RyaW5nOiAnYmluYXJ5JyxcbiAgfTtcblxuICAvKipcbiAgICogQSA2NC1iaXQgc2lnbmVkIElOVEVHRVIgaW4gdHdv4oCZcyBjb21wbGVtZW50IGZvcm1hdCwgd2l0aCBhIG1pbmltdW0gdmFsdWUgb2YgLTJeNjMgYW5kIGEgbWF4aW11bSB2YWx1ZSBvZiAyXjYzLTEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJJR19JTlQ6IFR5cGUgPSB7XG4gICAgaXNQcmltaXRpdmU6IHRydWUsXG4gICAgaW5wdXRTdHJpbmc6ICdiaWdpbnQnLFxuICB9O1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRE9VQkxFOiBUeXBlID0ge1xuICAgIGlzUHJpbWl0aXZlOiB0cnVlLFxuICAgIGlucHV0U3RyaW5nOiAnZG91YmxlJyxcbiAgfTtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZMT0FUOiBUeXBlID0ge1xuICAgIGlzUHJpbWl0aXZlOiB0cnVlLFxuICAgIGlucHV0U3RyaW5nOiAnZmxvYXQnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBBIDMyLWJpdCBzaWduZWQgSU5URUdFUiBpbiB0d2/igJlzIGNvbXBsZW1lbnQgZm9ybWF0LCB3aXRoIGEgbWluaW11bSB2YWx1ZSBvZiAtMl4zMSBhbmQgYSBtYXhpbXVtIHZhbHVlIG9mIDJeMzEtMS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5URUdFUjogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ2ludCcsXG4gIH07XG5cbiAgLyoqXG4gICAqIEEgMTYtYml0IHNpZ25lZCBJTlRFR0VSIGluIHR3b+KAmXMgY29tcGxlbWVudCBmb3JtYXQsIHdpdGggYSBtaW5pbXVtIHZhbHVlIG9mIC0yXjE1IGFuZCBhIG1heGltdW0gdmFsdWUgb2YgMl4xNS0xLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTTUFMTF9JTlQ6IFR5cGUgPSB7XG4gICAgaXNQcmltaXRpdmU6IHRydWUsXG4gICAgaW5wdXRTdHJpbmc6ICdzbWFsbGludCcsXG4gIH07XG5cbiAgLyoqXG4gICAqIEEgOC1iaXQgc2lnbmVkIElOVEVHRVIgaW4gdHdv4oCZcyBjb21wbGVtZW50IGZvcm1hdCwgd2l0aCBhIG1pbmltdW0gdmFsdWUgb2YgLTJeNyBhbmQgYSBtYXhpbXVtIHZhbHVlIG9mIDJeNy0xXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRJTllfSU5UOiBUeXBlID0ge1xuICAgIGlzUHJpbWl0aXZlOiB0cnVlLFxuICAgIGlucHV0U3RyaW5nOiAndGlueWludCcsXG4gIH07XG5cbiAgLyoqXG4gICAqIERhdGUgdHlwZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREFURTogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ2RhdGUnLFxuICB9O1xuXG4gIC8qKlxuICAgKiBUaW1lc3RhbXAgdHlwZSAoZGF0ZSBhbmQgdGltZSkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRJTUVTVEFNUDogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ3RpbWVzdGFtcCcsXG4gIH07XG5cbiAgLyoqXG4gICAqIEFyYml0cmFyeS1sZW5ndGggc3RyaW5nIHR5cGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNUUklORzogVHlwZSA9IHtcbiAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICBpbnB1dFN0cmluZzogJ3N0cmluZycsXG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBkZWNpbWFsIHR5cGUuXG4gICAqXG4gICAqIFRPRE86IEJvdW5kc1xuICAgKlxuICAgKiBAcGFyYW0gcHJlY2lzaW9uIHRoZSB0b3RhbCBudW1iZXIgb2YgZGlnaXRzXG4gICAqIEBwYXJhbSBzY2FsZSB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBpbiBmcmFjdGlvbmFsIHBhcnQsIHRoZSBkZWZhdWx0IGlzIDBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGVjaW1hbChwcmVjaXNpb246IG51bWJlciwgc2NhbGU/OiBudW1iZXIpOiBUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNQcmltaXRpdmU6IHRydWUsXG4gICAgICBpbnB1dFN0cmluZzogc2NhbGUgIT09IHVuZGVmaW5lZCA/IGBkZWNpbWFsKCR7cHJlY2lzaW9ufSwke3NjYWxlfSlgIDogYGRlY2ltYWwoJHtwcmVjaXNpb259KWAsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXhlZCBsZW5ndGggY2hhcmFjdGVyIGRhdGEsIHdpdGggYSBzcGVjaWZpZWQgbGVuZ3RoIGJldHdlZW4gMSBhbmQgMjU1LlxuICAgKlxuICAgKiBAcGFyYW0gbGVuZ3RoIGxlbmd0aCBiZXR3ZWVuIDEgYW5kIDI1NVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjaGFyKGxlbmd0aDogbnVtYmVyKTogVHlwZSB7XG4gICAgaWYgKGxlbmd0aCA8PSAwIHx8IGxlbmd0aCA+IDI1NSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjaGFyIGxlbmd0aCBtdXN0IGJlIChpbmNsdXNpdmVseSkgYmV0d2VlbiAxIGFuZCAyNTUsIGJ1dCB3YXMgJHtsZW5ndGh9YCk7XG4gICAgfVxuICAgIGlmIChsZW5ndGggJSAxICE9PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNoYXIgbGVuZ3RoIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCB3YXMgJHtsZW5ndGh9YCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpc1ByaW1pdGl2ZTogdHJ1ZSxcbiAgICAgIGlucHV0U3RyaW5nOiBgY2hhcigke2xlbmd0aH0pYCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFZhcmlhYmxlIGxlbmd0aCBjaGFyYWN0ZXIgZGF0YSwgd2l0aCBhIHNwZWNpZmllZCBsZW5ndGggYmV0d2VlbiAxIGFuZCA2NTUzNS5cbiAgICpcbiAgICogQHBhcmFtIGxlbmd0aCBsZW5ndGggYmV0d2VlbiAxIGFuZCA2NTUzNS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmFyY2hhcihsZW5ndGg6IG51bWJlcik6IFR5cGUge1xuICAgIGlmIChsZW5ndGggPD0gMCB8fCBsZW5ndGggPiA2NTUzNSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YXJjaGFyIGxlbmd0aCBtdXN0IGJlIChpbmNsdXNpdmVseSkgYmV0d2VlbiAxIGFuZCA2NTUzNSwgYnV0IHdhcyAke2xlbmd0aH1gKTtcbiAgICB9XG4gICAgaWYgKGxlbmd0aCAlIDEgIT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdmFyY2hhciBsZW5ndGggbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIsIHdhcyAke2xlbmd0aH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzUHJpbWl0aXZlOiB0cnVlLFxuICAgICAgaW5wdXRTdHJpbmc6IGB2YXJjaGFyKCR7bGVuZ3RofSlgLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBhcnJheSBvZiBzb21lIG90aGVyIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtVHlwZSB0eXBlIGNvbnRhaW5lZCBieSB0aGUgYXJyYXkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFycmF5KGl0ZW1UeXBlOiBUeXBlKTogVHlwZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzUHJpbWl0aXZlOiBmYWxzZSxcbiAgICAgIGlucHV0U3RyaW5nOiBgYXJyYXk8JHtpdGVtVHlwZS5pbnB1dFN0cmluZ30+YCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBtYXAgb2Ygc29tZSBwcmltaXRpdmUga2V5IHR5cGUgdG8gc29tZSB2YWx1ZSB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5VHlwZSB0eXBlIG9mIGtleSwgbXVzdCBiZSBhIHByaW1pdGl2ZS5cbiAgICogQHBhcmFtIHZhbHVlVHlwZSB0eXBlIGZvIHRoZSB2YWx1ZSBpbmRleGVkIGJ5IHRoZSBrZXkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1hcChrZXlUeXBlOiBUeXBlLCB2YWx1ZVR5cGU6IFR5cGUpOiBUeXBlIHtcbiAgICBpZiAoIWtleVR5cGUuaXNQcmltaXRpdmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdGhlIGtleSB0eXBlIG9mIGEgJ21hcCcgbXVzdCBiZSBhIHByaW1pdGl2ZSwgYnV0IHdhcyAke2tleVR5cGUuaW5wdXRTdHJpbmd9YCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpc1ByaW1pdGl2ZTogZmFsc2UsXG4gICAgICBpbnB1dFN0cmluZzogYG1hcDwke2tleVR5cGUuaW5wdXRTdHJpbmd9LCR7dmFsdWVUeXBlLmlucHV0U3RyaW5nfT5gLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5lc3RlZCBzdHJ1Y3R1cmUgY29udGFpbmluZyBpbmRpdmlkdWFsbHkgbmFtZWQgYW5kIHR5cGVkIGNvbHVtbnMuXG4gICAqXG4gICAqIEBwYXJhbSBjb2x1bW5zIHRoZSBjb2x1bW5zIG9mIHRoZSBzdHJ1Y3R1cmUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN0cnVjdChjb2x1bW5zOiBDb2x1bW5bXSk6IFR5cGUge1xuICAgIHJldHVybiB7XG4gICAgICBpc1ByaW1pdGl2ZTogZmFsc2UsXG4gICAgICBpbnB1dFN0cmluZzogYHN0cnVjdDwke2NvbHVtbnMubWFwKGNvbHVtbiA9PiB7XG4gICAgICAgIGlmIChjb2x1bW4uY29tbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIGAke2NvbHVtbi5uYW1lfToke2NvbHVtbi50eXBlLmlucHV0U3RyaW5nfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGAke2NvbHVtbi5uYW1lfToke2NvbHVtbi50eXBlLmlucHV0U3RyaW5nfSBDT01NRU5UICcke2NvbHVtbi5jb21tZW50fSdgO1xuICAgICAgICB9XG4gICAgICB9KS5qb2luKCcsJyl9PmAsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -63,6 +63,22 @@ var JobBookmarksEncryptionMode;
63
63
  * - Attach a security configuration to a development endpoint to write encrypted Amazon S3 targets.
64
64
  */
65
65
  class SecurityConfiguration extends cdk.Resource {
66
+ /**
67
+ * Creates a Connection construct that represents an external security configuration.
68
+ *
69
+ * @param scope The scope creating construct (usually `this`).
70
+ * @param id The construct's id.
71
+ * @param securityConfigurationName name of external security configuration.
72
+ */
73
+ static fromSecurityConfigurationName(scope, id, securityConfigurationName) {
74
+ class Import extends cdk.Resource {
75
+ constructor() {
76
+ super(...arguments);
77
+ this.securityConfigurationName = securityConfigurationName;
78
+ }
79
+ }
80
+ return new Import(scope, id);
81
+ }
66
82
  constructor(scope, id, props = {}) {
67
83
  super(scope, id, {
68
84
  physicalName: props.securityConfigurationName ??
@@ -123,24 +139,8 @@ class SecurityConfiguration extends cdk.Resource {
123
139
  });
124
140
  this.securityConfigurationName = this.getResourceNameAttribute(resource.ref);
125
141
  }
126
- /**
127
- * Creates a Connection construct that represents an external security configuration.
128
- *
129
- * @param scope The scope creating construct (usually `this`).
130
- * @param id The construct's id.
131
- * @param securityConfigurationName name of external security configuration.
132
- */
133
- static fromSecurityConfigurationName(scope, id, securityConfigurationName) {
134
- class Import extends cdk.Resource {
135
- constructor() {
136
- super(...arguments);
137
- this.securityConfigurationName = securityConfigurationName;
138
- }
139
- }
140
- return new Import(scope, id);
141
- }
142
142
  }
143
- exports.SecurityConfiguration = SecurityConfiguration;
144
143
  _a = JSII_RTTI_SYMBOL_1;
145
- SecurityConfiguration[_a] = { fqn: "@aws-cdk/aws-glue-alpha.SecurityConfiguration", version: "2.71.0-alpha.0" };
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNlY3VyaXR5LWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkNBQTJDO0FBQzNDLG1DQUFtQztBQUNuQyw2Q0FBMEM7QUFFMUMsbURBQWdFO0FBYWhFOzs7R0FHRztBQUNILElBQVksZ0JBY1g7QUFkRCxXQUFZLGdCQUFnQjtJQUMxQjs7OztPQUlHO0lBQ0gseUNBQXFCLENBQUE7SUFFckI7Ozs7T0FJRztJQUNILG1DQUFlLENBQUE7QUFDakIsQ0FBQyxFQWRXLGdCQUFnQixHQUFoQix3QkFBZ0IsS0FBaEIsd0JBQWdCLFFBYzNCO0FBRUQ7OztHQUdHO0FBQ0gsSUFBWSx3QkFPWDtBQVBELFdBQVksd0JBQXdCO0lBQ2xDOzs7O09BSUc7SUFDSCwyQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFQVyx3QkFBd0IsR0FBeEIsZ0NBQXdCLEtBQXhCLGdDQUF3QixRQU9uQztBQUVEOzs7R0FHRztBQUNILElBQVksMEJBT1g7QUFQRCxXQUFZLDBCQUEwQjtJQUNwQzs7OztPQUlHO0lBQ0gseURBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVBXLDBCQUEwQixHQUExQixrQ0FBMEIsS0FBMUIsa0NBQTBCLFFBT3JDO0FBZ0ZEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxHQUFHLENBQUMsUUFBUTtJQXVDckQsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxRQUFvQyxFQUFFO1FBQ3pGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEtBQUssQ0FBQyx5QkFBeUI7Z0JBQzNDLGtCQUFJLENBQUMsTUFBTSxDQUFDO29CQUNWLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxtQkFBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7aUJBQ2xELENBQUM7U0FDTCxDQUFDLENB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UUFDRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5Qjs7QUFoQkgsc0RBa0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMga21zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IExhenksIE5hbWVzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENmblNlY3VyaXR5Q29uZmlndXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgY3JlYXRlZCBvciBhbiBpbXBvcnRlZCBgU2VjdXJpdHlDb25maWd1cmF0aW9uYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2VjdXJpdHlDb25maWd1cmF0aW9uIGV4dGVuZHMgY2RrLklSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VjdXJpdHkgY29uZmlndXJhdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlDb25maWd1cmF0aW9uTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEVuY3J5cHRpb24gbW9kZSBmb3IgUzMuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC93ZWJhcGkvQVBJX1MzRW5jcnlwdGlvbi5odG1sI0dsdWUtVHlwZS1TM0VuY3J5cHRpb24tUzNFbmNyeXB0aW9uTW9kZVxuICovXG5leHBvcnQgZW51bSBTM0VuY3J5cHRpb25Nb2RlIHtcbiAgLyoqXG4gICAqIFNlcnZlciBzaWRlIGVuY3J5cHRpb24gKFNTRSkgd2l0aCBhbiBBbWF6b24gUzMtbWFuYWdlZCBrZXkuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC9kZXYvVXNpbmdTZXJ2ZXJTaWRlRW5jcnlwdGlvbi5odG1sXG4gICAqL1xuICBTM19NQU5BR0VEID0gJ1NTRS1TMycsXG5cbiAgLyoqXG4gICAqIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gKFNTRSkgd2l0aCBhbiBBV1MgS01TIGtleSBtYW5hZ2VkIGJ5IHRoZSBhY2NvdW50IG93bmVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvZGV2L1VzaW5nS01TRW5jcnlwdGlvbi5odG1sXG4gICAqL1xuICBLTVMgPSAnU1NFLUtNUycsXG59XG5cbi8qKlxuICogRW5jcnlwdGlvbiBtb2RlIGZvciBDbG91ZFdhdGNoIExvZ3MuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC93ZWJhcGkvQVBJX0Nsb3VkV2F0Y2hFbmNyeXB0aW9uLmh0bWwjR2x1ZS1UeXBlLUNsb3VkV2F0Y2hFbmNyeXB0aW9uLUNsb3VkV2F0Y2hFbmNyeXB0aW9uTW9kZVxuICovXG5leHBvcnQgZW51bSBDbG91ZFdhdGNoRW5jcnlwdGlvbk1vZGUge1xuICAvKipcbiAgICogU2VydmVyLXNpZGUgZW5jcnlwdGlvbiAoU1NFKSB3aXRoIGFuIEFXUyBLTVMga2V5IG1hbmFnZWQgYnkgdGhlIGFjY291bnQgb3duZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC9kZXYvVXNpbmdLTVNFbmNyeXB0aW9uLmh0bWxcbiAgICovXG4gIEtNUyA9ICdTU0UtS01TJyxcbn1cblxuLyoqXG4gKiBFbmNyeXB0aW9uIG1vZGUgZm9yIEpvYiBCb29rbWFya3MuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC93ZWJhcGkvQVBJX0pvYkJvb2ttYXJrc0VuY3J5cHRpb24uaHRtbCNHbHVlLVR5cGUtSm9iQm9va21hcmtzRW5jcnlwdGlvbi1Kb2JCb29rbWFya3NFbmNyeXB0aW9uTW9kZVxuICovXG5leHBvcnQgZW51bSBKb2JCb29rbWFya3NFbmNyeXB0aW9uTW9kZSB7XG4gIC8qKlxuICAgKiBDbGllbnQtc2lkZSBlbmNyeXB0aW9uIChDU0UpIHdpdGggYW4gQVdTIEtNUyBrZXkgbWFuYWdlZCBieSB0aGUgYWNjb3VudCBvd25lci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L2Rldi9Vc2luZ0NsaWVudFNpZGVFbmNyeXB0aW9uLmh0bWxcbiAgICovXG4gIENMSUVOVF9TSURFX0tNUyA9ICdDU0UtS01TJyxcbn1cblxuLyoqXG4gKiBTMyBlbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNFbmNyeXB0aW9uIHtcbiAgLyoqXG4gICAqIEVuY3J5cHRpb24gbW9kZS5cbiAgICovXG4gIHJlYWRvbmx5IG1vZGU6IFMzRW5jcnlwdGlvbk1vZGUsXG5cbiAgLyoqXG4gICAqIFRoZSBLTVMga2V5IHRvIGJlIHVzZWQgdG8gZW5jcnlwdCB0aGUgZGF0YS5cbiAgICogQGRlZmF1bHQgbm8ga21zIGtleSBpZiBtb2RlID0gUzNfTUFOQUdFRC4gQSBrZXkgd2lsbCBiZSBjcmVhdGVkIGlmIG9uZSBpcyBub3QgcHJvdmlkZWQgYW5kIG1vZGUgPSBLTVMuXG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleSxcbn1cblxuLyoqXG4gKiBDbG91ZFdhdGNoIExvZ3MgZW5jcnlwdGlvbiBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkV2F0Y2hFbmNyeXB0aW9uIHtcbiAgLyoqXG4gICAqIEVuY3J5cHRpb24gbW9kZVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZTogQ2xvdWRXYXRjaEVuY3J5cHRpb25Nb2RlO1xuXG4gIC8qKlxuICAgKiBUaGUgS01TIGtleSB0byBiZSB1c2VkIHRvIGVuY3J5cHQgdGhlIGRhdGEuXG4gICAqIEBkZWZhdWx0IEEga2V5IHdpbGwgYmUgY3JlYXRlZCBpZiBvbmUgaXMgbm90IHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkga21zS2V5Pzoga21zLklLZXksXG59XG5cbi8qKlxuICogSm9iIGJvb2ttYXJrcyBlbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSm9iQm9va21hcmtzRW5jcnlwdGlvbiB7XG4gIC8qKlxuICAgKiBFbmNyeXB0aW9uIG1vZGUuXG4gICAqL1xuICByZWFkb25seSBtb2RlOiBKb2JCb29rbWFya3NFbmNyeXB0aW9uTW9kZTtcblxuICAvKipcbiAgICogVGhlIEtNUyBrZXkgdG8gYmUgdXNlZCB0byBlbmNyeXB0IHRoZSBkYXRhLlxuICAgKiBAZGVmYXVsdCBBIGtleSB3aWxsIGJlIGNyZWF0ZWQgaWYgb25lIGlzIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5LFxufVxuXG4vKipcbiAqIENvbnN0cnVjdGlvbnMgcHJvcGVydGllcyBvZiBgU2VjdXJpdHlDb25maWd1cmF0aW9uYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eUNvbmZpZ3VyYXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VjdXJpdHkgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBnZW5lcmF0ZWQgYnkgQ0RLLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlDb25maWd1cmF0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGVuY3J5cHRpb24gY29uZmlndXJhdGlvbiBmb3IgQW1hem9uIENsb3VkV2F0Y2ggTG9ncy5cbiAgICogQGRlZmF1bHQgbm8gY2xvdWR3YXRjaCBsb2dzIGVuY3J5cHRpb24uXG4gICAqL1xuICByZWFkb25seSBjbG91ZFdhdGNoRW5jcnlwdGlvbj86IENsb3VkV2F0Y2hFbmNyeXB0aW9uLFxuXG4gIC8qKlxuICAgKiBUaGUgZW5jcnlwdGlvbiBjb25maWd1cmF0aW9uIGZvciBHbHVlIEpvYiBCb29rbWFya3MuXG4gICAqIEBkZWZhdWx0IG5vIGpvYiBib29rbWFya3MgZW5jcnlwdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGpvYkJvb2ttYXJrc0VuY3J5cHRpb24/OiBKb2JCb29rbWFya3NFbmNyeXB0aW9uLFxuXG4gIC8qKlxuICAgKiBUaGUgZW5jcnlwdGlvbiBjb25maWd1cmF0aW9uIGZvciBBbWF6b24gU2ltcGxlIFN0b3JhZ2UgU2VydmljZSAoQW1hem9uIFMzKSBkYXRhLlxuICAgKiBAZGVmYXVsdCBubyBzMyBlbmNyeXB0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgczNFbmNyeXB0aW9uPzogUzNFbmNyeXB0aW9uLFxufVxuXG4vKipcbiAqIEEgc2VjdXJpdHkgY29uZmlndXJhdGlvbiBpcyBhIHNldCBvZiBzZWN1cml0eSBwcm9wZXJ0aWVzIHRoYXQgY2FuIGJlIHVzZWQgYnkgQVdTIEdsdWUgdG8gZW5jcnlwdCBkYXRhIGF0IHJlc3QuXG4gKlxuICogVGhlIGZvbGxvd2luZyBzY2VuYXJpb3Mgc2hvdyBzb21lIG9mIHRoZSB3YXlzIHRoYXQgeW91IGNhbiB1c2UgYSBzZWN1cml0eSBjb25maWd1cmF0aW9uLlxuICogLSBBdHRhY2ggYSBzZWN1cml0eSBjb25maWd1cmF0aW9uIHRvIGFuIEFXUyBHbHVlIGNyYXdsZXIgdG8gd3JpdGUgZW5jcnlwdGVkIEFtYXpvbiBDbG91ZFdhdGNoIExvZ3MuXG4gKiAtIEF0dGFjaCBhIHNlY3VyaXR5IGNvbmZpZ3VyYXRpb24gdG8gYW4gZXh0cmFjdCwgdHJhbnNmb3JtLCBhbmQgbG9hZCAoRVRMKSBqb2IgdG8gd3JpdGUgZW5jcnlwdGVkIEFtYXpvbiBTaW1wbGUgU3RvcmFnZSBTZXJ2aWNlIChBbWF6b24gUzMpIHRhcmdldHMgYW5kIGVuY3J5cHRlZCBDbG91ZFdhdGNoIExvZ3MuXG4gKiAtIEF0dGFjaCBhIHNlY3VyaXR5IGNvbmZpZ3VyYXRpb24gdG8gYW4gRVRMIGpvYiB0byB3cml0ZSBpdHMgam9icyBib29rbWFya3MgYXMgZW5jcnlwdGVkIEFtYXpvbiBTMyBkYXRhLlxuICogLSBBdHRhY2ggYSBzZWN1cml0eSBjb25maWd1cmF0aW9uIHRvIGEgZGV2ZWxvcG1lbnQgZW5kcG9pbnQgdG8gd3JpdGUgZW5jcnlwdGVkIEFtYXpvbiBTMyB0YXJnZXRzLlxuICovXG5leHBvcnQgY2xhc3MgU2VjdXJpdHlDb25maWd1cmF0aW9uIGV4dGVuZHMgY2RrLlJlc291cmNlIGltcGxlbWVudHMgSVNlY3VyaXR5Q29uZmlndXJhdGlvbiB7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDb25uZWN0aW9uIGNvbnN0cnVjdCB0aGF0IHJlcHJlc2VudHMgYW4gZXh0ZXJuYWwgc2VjdXJpdHkgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBpZC5cbiAgICogQHBhcmFtIHNlY3VyaXR5Q29uZmlndXJhdGlvbk5hbWUgbmFtZSBvZiBleHRlcm5hbCBzZWN1cml0eSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU2VjdXJpdHlDb25maWd1cmF0aW9uTmFtZShzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsXG4gICAgc2VjdXJpdHlDb25maWd1cmF0aW9uTmFtZTogc3RyaW5nKTogSVNlY3VyaXR5Q29uZmlndXJhdGlvbiB7XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJU2VjdXJpdHlDb25maWd1cmF0aW9uIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBzZWN1cml0eUNvbmZpZ3VyYXRpb25OYW1lID0gc2VjdXJpdHlDb25maWd1cmF0aW9uTmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VjdXJpdHkgY29uZmlndXJhdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlY3VyaXR5Q29uZmlndXJhdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEtNUyBrZXkgdXNlZCBpbiBDbG91ZFdhdGNoIGVuY3J5cHRpb24gaWYgaXQgcmVxdWlyZXMgYSBrbXMga2V5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNsb3VkV2F0Y2hFbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIFRoZSBLTVMga2V5IHVzZWQgaW4gam9iIGJvb2ttYXJrcyBlbmNyeXB0aW9uIGlmIGl0IHJlcXVpcmVzIGEga21zIGtleS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBqb2JCb29rbWFya3NFbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIFRoZSBLTVMga2V5IHVzZWQgaW4gUzMgZW5jcnlwdGlvbiBpZiBpdCByZXF1aXJlcyBhIGttcyBrZXkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNFbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VjdXJpdHlDb25maWd1cmF0aW9uUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5zZWN1cml0eUNvbmZpZ3VyYXRpb25OYW1lID8/XG4gICAgICAgIExhenkuc3RyaW5nKHtcbiAgICAgICAgICBwcm9kdWNlOiAoKSA9PiBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywge30pLFxuICAgICAgICB9KSxcbiAgICB9KTtcblxuICAgIGlmICghcHJvcHMuczNFbmNyeXB0aW9uICYmICFwcm9wcy5jbG91ZFdhdGNoRW5jcnlwdGlvbiAmJiAhcHJvcHMuam9iQm9va21hcmtzRW5jcnlwdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmUgb2YgY2xvdWRXYXRjaEVuY3J5cHRpb24sIGpvYkJvb2ttYXJrc0VuY3J5cHRpb24gb3IgczNFbmNyeXB0aW9uIG11c3QgYmUgZGVmaW5lZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGttc0tleUNyZWF0aW9uUmVxdWlyZWQgPVxuICAgICAgKHByb3BzLnMzRW5jcnlwdGlvbiAmJiBwcm9wcy5zM0VuY3J5cHRpb24ubW9kZSA9PT0gUzNFbmNyeXB0aW9uTW9kZS5LTVMgJiYgIXByb3BzLnMzRW5jcnlwdGlvbi5rbXNLZXkpIHx8XG4gICAgICAocHJvcHMuY2xvdWRXYXRjaEVuY3J5cHRpb24gJiYgIXByb3BzLmNsb3VkV2F0Y2hFbmNyeXB0aW9uLmttc0tleSkgfHxcbiAgICAgIChwcm9wcy5qb2JCb29rbWFya3NFbmNyeXB0aW9uICYmICFwcm9wcy5qb2JCb29rbWFya3NFbmNyeXB0aW9uLmttc0tleSk7XG4gICAgY29uc3QgYXV0b0NyZWF0ZWRLbXNLZXkgPSBrbXNLZXlDcmVhdGlvblJlcXVpcmVkID8gbmV3IGttcy5LZXkodGhpcywgJ0tleScpIDogdW5kZWZpbmVkO1xuXG4gICAgbGV0IGNsb3VkV2F0Y2hFbmNyeXB0aW9uO1xuICAgIGlmIChwcm9wcy5jbG91ZFdhdGNoRW5jcnlwdGlvbikge1xuICAgICAgdGhpcy5jbG91ZFdhdGNoRW5jcnlwdGlvbktleSA9IHByb3BzLmNsb3VkV2F0Y2hFbmNyeXB0aW9uLmttc0tleSB8fCBhdXRvQ3JlYXRlZEttc0tleTtcbiAgICAgIGNsb3VkV2F0Y2hFbmNyeXB0aW9uID0ge1xuICAgICAgICBjbG91ZFdhdGNoRW5jcnlwdGlvbk1vZGU6IHByb3BzLmNsb3VkV2F0Y2hFbmNyeXB0aW9uLm1vZGUsXG4gICAgICAgIGttc0tleUFybjogdGhpcy5jbG91ZFdhdGNoRW5jcnlwdGlvbktleT8ua2V5QXJuLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBsZXQgam9iQm9va21hcmtzRW5jcnlwdGlvbjtcbiAgICBpZiAocHJvcHMuam9iQm9va21hcmtzRW5jcnlwdGlvbikge1xuICAgICAgdGhpcy5qb2JCb29rbWFya3NFbmNyeXB0aW9uS2V5ID0gcHJvcHMuam9iQm9va21hcmtzRW5jcnlwdGlvbi5rbXNLZXkgfHwgYXV0b0NyZWF0ZWRLbXNLZXk7XG4gICAgICBqb2JCb29rbWFya3NFbmNyeXB0aW9uID0ge1xuICAgICAgICBqb2JCb29rbWFya3NFbmNyeXB0aW9uTW9kZTogcHJvcHMuam9iQm9va21hcmtzRW5jcnlwdGlvbi5tb2RlLFxuICAgICAgICBrbXNLZXlBcm46IHRoaXMuam9iQm9va21hcmtzRW5jcnlwdGlvbktleT8ua2V5QXJuLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBsZXQgczNFbmNyeXB0aW9ucztcbiAgICBpZiAocHJvcHMuczNFbmNyeXB0aW9uKSB7XG4gICAgICBpZiAocHJvcHMuczNFbmNyeXB0aW9uLm1vZGUgPT09IFMzRW5jcnlwdGlvbk1vZGUuS01TKSB7XG4gICAgICAgIHRoaXMuczNFbmNyeXB0aW9uS2V5ID0gcHJvcHMuczNFbmNyeXB0aW9uLmttc0tleSB8fCBhdXRvQ3JlYXRlZEttc0tleTtcbiAgICAgIH1cbiAgICAgIC8vIE5PVEU6IENsb3VkRm9ybWF0aW9ucyBlcnJvcnMgb3V0IGlmIGFycmF5IGlzIG9mIGxlbmd0aCA+IDEuIFRoYXQncyB3aHkgdGhlIHByb3BzIGRvbid0IGV4cG9zZSBhbiBhcnJheVxuICAgICAgczNFbmNyeXB0aW9ucyA9IFt7XG4gICAgICAgIHMzRW5jcnlwdGlvbk1vZGU6IHByb3BzLnMzRW5jcnlwdGlvbi5tb2RlLFxuICAgICAgICBrbXNLZXlBcm46IHRoaXMuczNFbmNyeXB0aW9uS2V5Py5rZXlBcm4sXG4gICAgICB9XTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5TZWN1cml0eUNvbmZpZ3VyYXRpb24odGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICBlbmNyeXB0aW9uQ29uZmlndXJhdGlvbjoge1xuICAgICAgICBjbG91ZFdhdGNoRW5jcnlwdGlvbixcbiAgICAgICAgam9iQm9va21hcmtzRW5jcnlwdGlvbixcbiAgICAgICAgczNFbmNyeXB0aW9ucyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnNlY3VyaXR5Q29uZmlndXJhdGlvbk5hbWUgPSB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZShyZXNvdXJjZS5yZWYpO1xuICB9XG59XG4iXX0=
144
+ SecurityConfiguration[_a] = { fqn: "@aws-cdk/aws-glue-alpha.SecurityConfiguration", version: "2.72.0-alpha.0" };
145
+ exports.SecurityConfiguration = SecurityConfiguration;
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNlY3VyaXR5LWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkNBQTJDO0FBQzNDLG1DQUFtQztBQUNuQyw2Q0FBMEM7QUFFMUMsbURBQWdFO0FBYWhFOzs7R0FHRztBQUNILElBQVksZ0JBY1g7QUFkRCxXQUFZLGdCQUFnQjtJQUMxQjs7OztPQUlHO0lBQ0gseUNBQXFCLENBQUE7SUFFckI7Ozs7T0FJRztJQUNILG1DQUFlLENBQUE7QUFDakIsQ0FBQyxFQWRXLGdCQUFnQixHQUFoQix3QkFBZ0IsS0FBaEIsd0JBQWdCLFFBYzNCO0FBRUQ7OztHQUdHO0FBQ0gsSUFBWSx3QkFPWDtBQVBELFdBQVksd0JBQXdCO0lBQ2xDOzs7O09BSUc7SUFDSCwyQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFQVyx3QkFBd0IsR0FBeEIsZ0NBQXdCLEtBQXhCLGdDQUF3QixRQU9uQztBQUVEOzs7R0FHRztBQUNILElBQVksMEJBT1g7QUFQRCxXQUFZLDBCQUEwQjtJQUNwQzs7OztPQUlHO0lBQ0gseURBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVBXLDBCQUEwQixHQUExQixrQ0FBMEIsS0FBMUIsa0NBQTBCLFFBT3JDO0FBZ0ZEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxHQUFHLENBQUMsUUFBUTtJQUVyRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsNkJBQTZCLENBQUMsS0FBMkIsRUFBRSxFQUFVLEVBQ2pGLHlCQUFpQztRQUVqQyxNQUFNLE1BQU8sU0FBUSxHQUFHLENBQUMsUUFBUTtZQUFqQzs7Z0JBQ2tCLDhCQUF5QixHQUFHLHlCQUF5QixDQUFDO1lBQ3hFLENBQUM7U0FBQTtRQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQzlCO0lBdUJELFlBQVksS0FBMkIsRUFB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RyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzlFOzs7O0FBakdVLHNEQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBMYXp5LCBOYW1lcyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDZm5TZWN1cml0eUNvbmZpZ3VyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2x1ZSc7XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIGNyZWF0ZWQgb3IgYW4gaW1wb3J0ZWQgYFNlY3VyaXR5Q29uZmlndXJhdGlvbmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNlY3VyaXR5Q29uZmlndXJhdGlvbiBleHRlbmRzIGNkay5JUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlY3VyaXR5IGNvbmZpZ3VyYXRpb24uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5Q29uZmlndXJhdGlvbk5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBFbmNyeXB0aW9uIG1vZGUgZm9yIFMzLlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3Qvd2ViYXBpL0FQSV9TM0VuY3J5cHRpb24uaHRtbCNHbHVlLVR5cGUtUzNFbmNyeXB0aW9uLVMzRW5jcnlwdGlvbk1vZGVcbiAqL1xuZXhwb3J0IGVudW0gUzNFbmNyeXB0aW9uTW9kZSB7XG4gIC8qKlxuICAgKiBTZXJ2ZXIgc2lkZSBlbmNyeXB0aW9uIChTU0UpIHdpdGggYW4gQW1hem9uIFMzLW1hbmFnZWQga2V5LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvZGV2L1VzaW5nU2VydmVyU2lkZUVuY3J5cHRpb24uaHRtbFxuICAgKi9cbiAgUzNfTUFOQUdFRCA9ICdTU0UtUzMnLFxuXG4gIC8qKlxuICAgKiBTZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIChTU0UpIHdpdGggYW4gQVdTIEtNUyBrZXkgbWFuYWdlZCBieSB0aGUgYWNjb3VudCBvd25lci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L2Rldi9Vc2luZ0tNU0VuY3J5cHRpb24uaHRtbFxuICAgKi9cbiAgS01TID0gJ1NTRS1LTVMnLFxufVxuXG4vKipcbiAqIEVuY3J5cHRpb24gbW9kZSBmb3IgQ2xvdWRXYXRjaCBMb2dzLlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3Qvd2ViYXBpL0FQSV9DbG91ZFdhdGNoRW5jcnlwdGlvbi5odG1sI0dsdWUtVHlwZS1DbG91ZFdhdGNoRW5jcnlwdGlvbi1DbG91ZFdhdGNoRW5jcnlwdGlvbk1vZGVcbiAqL1xuZXhwb3J0IGVudW0gQ2xvdWRXYXRjaEVuY3J5cHRpb25Nb2RlIHtcbiAgLyoqXG4gICAqIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gKFNTRSkgd2l0aCBhbiBBV1MgS01TIGtleSBtYW5hZ2VkIGJ5IHRoZSBhY2NvdW50IG93bmVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvZGV2L1VzaW5nS01TRW5jcnlwdGlvbi5odG1sXG4gICAqL1xuICBLTVMgPSAnU1NFLUtNUycsXG59XG5cbi8qKlxuICogRW5jcnlwdGlvbiBtb2RlIGZvciBKb2IgQm9va21hcmtzLlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3Qvd2ViYXBpL0FQSV9Kb2JCb29rbWFya3NFbmNyeXB0aW9uLmh0bWwjR2x1ZS1UeXBlLUpvYkJvb2ttYXJrc0VuY3J5cHRpb24tSm9iQm9va21hcmtzRW5jcnlwdGlvbk1vZGVcbiAqL1xuZXhwb3J0IGVudW0gSm9iQm9va21hcmtzRW5jcnlwdGlvbk1vZGUge1xuICAvKipcbiAgICogQ2xpZW50LXNpZGUgZW5jcnlwdGlvbiAoQ1NFKSB3aXRoIGFuIEFXUyBLTVMga2V5IG1hbmFnZWQgYnkgdGhlIGFjY291bnQgb3duZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC9kZXYvVXNpbmdDbGllbnRTaWRlRW5jcnlwdGlvbi5odG1sXG4gICAqL1xuICBDTElFTlRfU0lERV9LTVMgPSAnQ1NFLUtNUycsXG59XG5cbi8qKlxuICogUzMgZW5jcnlwdGlvbiBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFMzRW5jcnlwdGlvbiB7XG4gIC8qKlxuICAgKiBFbmNyeXB0aW9uIG1vZGUuXG4gICAqL1xuICByZWFkb25seSBtb2RlOiBTM0VuY3J5cHRpb25Nb2RlLFxuXG4gIC8qKlxuICAgKiBUaGUgS01TIGtleSB0byBiZSB1c2VkIHRvIGVuY3J5cHQgdGhlIGRhdGEuXG4gICAqIEBkZWZhdWx0IG5vIGttcyBrZXkgaWYgbW9kZSA9IFMzX01BTkFHRUQuIEEga2V5IHdpbGwgYmUgY3JlYXRlZCBpZiBvbmUgaXMgbm90IHByb3ZpZGVkIGFuZCBtb2RlID0gS01TLlxuICAgKi9cbiAgcmVhZG9ubHkga21zS2V5Pzoga21zLklLZXksXG59XG5cbi8qKlxuICogQ2xvdWRXYXRjaCBMb2dzIGVuY3J5cHRpb24gY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbG91ZFdhdGNoRW5jcnlwdGlvbiB7XG4gIC8qKlxuICAgKiBFbmNyeXB0aW9uIG1vZGVcbiAgICovXG4gIHJlYWRvbmx5IG1vZGU6IENsb3VkV2F0Y2hFbmNyeXB0aW9uTW9kZTtcblxuICAvKipcbiAgICogVGhlIEtNUyBrZXkgdG8gYmUgdXNlZCB0byBlbmNyeXB0IHRoZSBkYXRhLlxuICAgKiBAZGVmYXVsdCBBIGtleSB3aWxsIGJlIGNyZWF0ZWQgaWYgb25lIGlzIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5LFxufVxuXG4vKipcbiAqIEpvYiBib29rbWFya3MgZW5jcnlwdGlvbiBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEpvYkJvb2ttYXJrc0VuY3J5cHRpb24ge1xuICAvKipcbiAgICogRW5jcnlwdGlvbiBtb2RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZTogSm9iQm9va21hcmtzRW5jcnlwdGlvbk1vZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBLTVMga2V5IHRvIGJlIHVzZWQgdG8gZW5jcnlwdCB0aGUgZGF0YS5cbiAgICogQGRlZmF1bHQgQSBrZXkgd2lsbCBiZSBjcmVhdGVkIGlmIG9uZSBpcyBub3QgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleSxcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3Rpb25zIHByb3BlcnRpZXMgb2YgYFNlY3VyaXR5Q29uZmlndXJhdGlvbmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlDb25maWd1cmF0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlY3VyaXR5IGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZ2VuZXJhdGVkIGJ5IENESy5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5Q29uZmlndXJhdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIEFtYXpvbiBDbG91ZFdhdGNoIExvZ3MuXG4gICAqIEBkZWZhdWx0IG5vIGNsb3Vkd2F0Y2ggbG9ncyBlbmNyeXB0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRXYXRjaEVuY3J5cHRpb24/OiBDbG91ZFdhdGNoRW5jcnlwdGlvbixcblxuICAvKipcbiAgICogVGhlIGVuY3J5cHRpb24gY29uZmlndXJhdGlvbiBmb3IgR2x1ZSBKb2IgQm9va21hcmtzLlxuICAgKiBAZGVmYXVsdCBubyBqb2IgYm9va21hcmtzIGVuY3J5cHRpb24uXG4gICAqL1xuICByZWFkb25seSBqb2JCb29rbWFya3NFbmNyeXB0aW9uPzogSm9iQm9va21hcmtzRW5jcnlwdGlvbixcblxuICAvKipcbiAgICogVGhlIGVuY3J5cHRpb24gY29uZmlndXJhdGlvbiBmb3IgQW1hem9uIFNpbXBsZSBTdG9yYWdlIFNlcnZpY2UgKEFtYXpvbiBTMykgZGF0YS5cbiAgICogQGRlZmF1bHQgbm8gczMgZW5jcnlwdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHMzRW5jcnlwdGlvbj86IFMzRW5jcnlwdGlvbixcbn1cblxuLyoqXG4gKiBBIHNlY3VyaXR5IGNvbmZpZ3VyYXRpb24gaXMgYSBzZXQgb2Ygc2VjdXJpdHkgcHJvcGVydGllcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IEFXUyBHbHVlIHRvIGVuY3J5cHQgZGF0YSBhdCByZXN0LlxuICpcbiAqIFRoZSBmb2xsb3dpbmcgc2NlbmFyaW9zIHNob3cgc29tZSBvZiB0aGUgd2F5cyB0aGF0IHlvdSBjYW4gdXNlIGEgc2VjdXJpdHkgY29uZmlndXJhdGlvbi5cbiAqIC0gQXR0YWNoIGEgc2VjdXJpdHkgY29uZmlndXJhdGlvbiB0byBhbiBBV1MgR2x1ZSBjcmF3bGVyIHRvIHdyaXRlIGVuY3J5cHRlZCBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzLlxuICogLSBBdHRhY2ggYSBzZWN1cml0eSBjb25maWd1cmF0aW9uIHRvIGFuIGV4dHJhY3QsIHRyYW5zZm9ybSwgYW5kIGxvYWQgKEVUTCkgam9iIHRvIHdyaXRlIGVuY3J5cHRlZCBBbWF6b24gU2ltcGxlIFN0b3JhZ2UgU2VydmljZSAoQW1hem9uIFMzKSB0YXJnZXRzIGFuZCBlbmNyeXB0ZWQgQ2xvdWRXYXRjaCBMb2dzLlxuICogLSBBdHRhY2ggYSBzZWN1cml0eSBjb25maWd1cmF0aW9uIHRvIGFuIEVUTCBqb2IgdG8gd3JpdGUgaXRzIGpvYnMgYm9va21hcmtzIGFzIGVuY3J5cHRlZCBBbWF6b24gUzMgZGF0YS5cbiAqIC0gQXR0YWNoIGEgc2VjdXJpdHkgY29uZmlndXJhdGlvbiB0byBhIGRldmVsb3BtZW50IGVuZHBvaW50IHRvIHdyaXRlIGVuY3J5cHRlZCBBbWF6b24gUzMgdGFyZ2V0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNlY3VyaXR5Q29uZmlndXJhdGlvbiBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElTZWN1cml0eUNvbmZpZ3VyYXRpb24ge1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ29ubmVjdGlvbiBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIHNlY3VyaXR5IGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgaWQuXG4gICAqIEBwYXJhbSBzZWN1cml0eUNvbmZpZ3VyYXRpb25OYW1lIG5hbWUgb2YgZXh0ZXJuYWwgc2VjdXJpdHkgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVNlY3VyaXR5Q29uZmlndXJhdGlvbk5hbWUoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLFxuICAgIHNlY3VyaXR5Q29uZmlndXJhdGlvbk5hbWU6IHN0cmluZyk6IElTZWN1cml0eUNvbmZpZ3VyYXRpb24ge1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgY2RrLlJlc291cmNlIGltcGxlbWVudHMgSVNlY3VyaXR5Q29uZmlndXJhdGlvbiB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgc2VjdXJpdHlDb25maWd1cmF0aW9uTmFtZSA9IHNlY3VyaXR5Q29uZmlndXJhdGlvbk5hbWU7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlY3VyaXR5IGNvbmZpZ3VyYXRpb24uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZWN1cml0eUNvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBLTVMga2V5IHVzZWQgaW4gQ2xvdWRXYXRjaCBlbmNyeXB0aW9uIGlmIGl0IHJlcXVpcmVzIGEga21zIGtleS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjbG91ZFdhdGNoRW5jcnlwdGlvbktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBUaGUgS01TIGtleSB1c2VkIGluIGpvYiBib29rbWFya3MgZW5jcnlwdGlvbiBpZiBpdCByZXF1aXJlcyBhIGttcyBrZXkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgam9iQm9va21hcmtzRW5jcnlwdGlvbktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBUaGUgS01TIGtleSB1c2VkIGluIFMzIGVuY3J5cHRpb24gaWYgaXQgcmVxdWlyZXMgYSBrbXMga2V5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHMzRW5jcnlwdGlvbktleT86IGttcy5JS2V5O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNlY3VyaXR5Q29uZmlndXJhdGlvblByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuc2VjdXJpdHlDb25maWd1cmF0aW9uTmFtZSA/P1xuICAgICAgICBMYXp5LnN0cmluZyh7XG4gICAgICAgICAgcHJvZHVjZTogKCkgPT4gTmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHt9KSxcbiAgICAgICAgfSksXG4gICAgfSk7XG5cbiAgICBpZiAoIXByb3BzLnMzRW5jcnlwdGlvbiAmJiAhcHJvcHMuY2xvdWRXYXRjaEVuY3J5cHRpb24gJiYgIXByb3BzLmpvYkJvb2ttYXJrc0VuY3J5cHRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignT25lIG9mIGNsb3VkV2F0Y2hFbmNyeXB0aW9uLCBqb2JCb29rbWFya3NFbmNyeXB0aW9uIG9yIHMzRW5jcnlwdGlvbiBtdXN0IGJlIGRlZmluZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBrbXNLZXlDcmVhdGlvblJlcXVpcmVkID1cbiAgICAgIChwcm9wcy5zM0VuY3J5cHRpb24gJiYgcHJvcHMuczNFbmNyeXB0aW9uLm1vZGUgPT09IFMzRW5jcnlwdGlvbk1vZGUuS01TICYmICFwcm9wcy5zM0VuY3J5cHRpb24ua21zS2V5KSB8fFxuICAgICAgKHByb3BzLmNsb3VkV2F0Y2hFbmNyeXB0aW9uICYmICFwcm9wcy5jbG91ZFdhdGNoRW5jcnlwdGlvbi5rbXNLZXkpIHx8XG4gICAgICAocHJvcHMuam9iQm9va21hcmtzRW5jcnlwdGlvbiAmJiAhcHJvcHMuam9iQm9va21hcmtzRW5jcnlwdGlvbi5rbXNLZXkpO1xuICAgIGNvbnN0IGF1dG9DcmVhdGVkS21zS2V5ID0ga21zS2V5Q3JlYXRpb25SZXF1aXJlZCA/IG5ldyBrbXMuS2V5KHRoaXMsICdLZXknKSA6IHVuZGVmaW5lZDtcblxuICAgIGxldCBjbG91ZFdhdGNoRW5jcnlwdGlvbjtcbiAgICBpZiAocHJvcHMuY2xvdWRXYXRjaEVuY3J5cHRpb24pIHtcbiAgICAgIHRoaXMuY2xvdWRXYXRjaEVuY3J5cHRpb25LZXkgPSBwcm9wcy5jbG91ZFdhdGNoRW5jcnlwdGlvbi5rbXNLZXkgfHwgYXV0b0NyZWF0ZWRLbXNLZXk7XG4gICAgICBjbG91ZFdhdGNoRW5jcnlwdGlvbiA9IHtcbiAgICAgICAgY2xvdWRXYXRjaEVuY3J5cHRpb25Nb2RlOiBwcm9wcy5jbG91ZFdhdGNoRW5jcnlwdGlvbi5tb2RlLFxuICAgICAgICBrbXNLZXlBcm46IHRoaXMuY2xvdWRXYXRjaEVuY3J5cHRpb25LZXk/LmtleUFybixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IGpvYkJvb2ttYXJrc0VuY3J5cHRpb247XG4gICAgaWYgKHByb3BzLmpvYkJvb2ttYXJrc0VuY3J5cHRpb24pIHtcbiAgICAgIHRoaXMuam9iQm9va21hcmtzRW5jcnlwdGlvbktleSA9IHByb3BzLmpvYkJvb2ttYXJrc0VuY3J5cHRpb24ua21zS2V5IHx8IGF1dG9DcmVhdGVkS21zS2V5O1xuICAgICAgam9iQm9va21hcmtzRW5jcnlwdGlvbiA9IHtcbiAgICAgICAgam9iQm9va21hcmtzRW5jcnlwdGlvbk1vZGU6IHByb3BzLmpvYkJvb2ttYXJrc0VuY3J5cHRpb24ubW9kZSxcbiAgICAgICAga21zS2V5QXJuOiB0aGlzLmpvYkJvb2ttYXJrc0VuY3J5cHRpb25LZXk/LmtleUFybixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IHMzRW5jcnlwdGlvbnM7XG4gICAgaWYgKHByb3BzLnMzRW5jcnlwdGlvbikge1xuICAgICAgaWYgKHByb3BzLnMzRW5jcnlwdGlvbi5tb2RlID09PSBTM0VuY3J5cHRpb25Nb2RlLktNUykge1xuICAgICAgICB0aGlzLnMzRW5jcnlwdGlvbktleSA9IHByb3BzLnMzRW5jcnlwdGlvbi5rbXNLZXkgfHwgYXV0b0NyZWF0ZWRLbXNLZXk7XG4gICAgICB9XG4gICAgICAvLyBOT1RFOiBDbG91ZEZvcm1hdGlvbnMgZXJyb3JzIG91dCBpZiBhcnJheSBpcyBvZiBsZW5ndGggPiAxLiBUaGF0J3Mgd2h5IHRoZSBwcm9wcyBkb24ndCBleHBvc2UgYW4gYXJyYXlcbiAgICAgIHMzRW5jcnlwdGlvbnMgPSBbe1xuICAgICAgICBzM0VuY3J5cHRpb25Nb2RlOiBwcm9wcy5zM0VuY3J5cHRpb24ubW9kZSxcbiAgICAgICAga21zS2V5QXJuOiB0aGlzLnMzRW5jcnlwdGlvbktleT8ua2V5QXJuLFxuICAgICAgfV07XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ2ZuU2VjdXJpdHlDb25maWd1cmF0aW9uKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgZW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgY2xvdWRXYXRjaEVuY3J5cHRpb24sXG4gICAgICAgIGpvYkJvb2ttYXJrc0VuY3J5cHRpb24sXG4gICAgICAgIHMzRW5jcnlwdGlvbnMsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5zZWN1cml0eUNvbmZpZ3VyYXRpb25OYW1lID0gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUocmVzb3VyY2UucmVmKTtcbiAgfVxufVxuIl19