cdk-dms-replication 0.0.16 → 0.1.1

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.
@@ -42,5 +42,5 @@ class DmsReplicationTask extends constructs_1.Construct {
42
42
  }
43
43
  exports.DmsReplicationTask = DmsReplicationTask;
44
44
  _a = JSII_RTTI_SYMBOL_1;
45
- DmsReplicationTask[_a] = { fqn: "cdk-dms-replication.DmsReplicationTask", version: "0.0.16" };
45
+ DmsReplicationTask[_a] = { fqn: "cdk-dms-replication.DmsReplicationTask", version: "0.1.1" };
46
46
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGljYXRpb24tdGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXBsaWNhdGlvbi10YXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQywyQ0FBdUM7QUFJdkMsbURBQStDO0FBc0UvQzs7O0dBR0c7QUFDSCxNQUFhLGtCQUFtQixTQUFRLHNCQUFTO0lBTy9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGNBQWMsR0FDbEIsS0FBSyxDQUFDLHlCQUF5QjtZQUMvQixHQUFHLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXRFLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSw0QkFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFdkUsd0VBQXdFO1FBQ3hFLElBQUksWUFBZ0MsQ0FBQztRQUNyQyxJQUFJLEtBQUssQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDOUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDeEYsQ0FBQztRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3JFLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxzQkFBc0I7WUFDcEQsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXO1lBQ25ELGlCQUFpQixFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVztZQUNuRCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDbEMsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ2xDLHVCQUF1QixFQUFFLFlBQVk7WUFDckMseUJBQXlCLEVBQUUsY0FBYztZQUN6QyxZQUFZO1lBQ1osZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QyxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FDeEMsS0FBSyxDQUFDLGFBQWEsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FDakQsQ0FBQztRQUVGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDO0lBQ3hELENBQUM7O0FBMUNILGdEQTJDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBkbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWRtcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElEbXNFbmRwb2ludCB9IGZyb20gJy4vZW5kcG9pbnQnO1xuaW1wb3J0IHsgTWlncmF0aW9uVHlwZSB9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHsgVGFibGVNYXBwaW5ncyB9IGZyb20gJy4vdGFibGUtbWFwcGluZ3MnO1xuaW1wb3J0IHsgVGFza1NldHRpbmdzIH0gZnJvbSAnLi90YXNrLXNldHRpbmdzJztcblxuLyoqIFByb3BzIGZvciB7QGxpbmsgRG1zUmVwbGljYXRpb25UYXNrfS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG1zUmVwbGljYXRpb25UYXNrUHJvcHMge1xuICAvKiogQVJOIG9mIHRoZSByZXBsaWNhdGlvbiBpbnN0YW5jZSB0byB1c2UuICovXG4gIHJlYWRvbmx5IHJlcGxpY2F0aW9uSW5zdGFuY2VBcm46IHN0cmluZztcblxuICAvKiogU291cmNlIGVuZHBvaW50LiAqL1xuICByZWFkb25seSBzb3VyY2VFbmRwb2ludDogSURtc0VuZHBvaW50O1xuXG4gIC8qKiBUYXJnZXQgZW5kcG9pbnQuICovXG4gIHJlYWRvbmx5IHRhcmdldEVuZHBvaW50OiBJRG1zRW5kcG9pbnQ7XG5cbiAgLyoqIFRoZSBtaWdyYXRpb24gdHlwZS4gKi9cbiAgcmVhZG9ubHkgbWlncmF0aW9uVHlwZTogTWlncmF0aW9uVHlwZTtcblxuICAvKipcbiAgICogVGFibGUgbWFwcGluZ3MgSlNPTiBzdHJpbmcuXG4gICAqIFVzZSB7QGxpbmsgVGFibGVNYXBwaW5nc30gdG8gYnVpbGQgdGhpcywgb3IgcHJvdmlkZSBhIHJhdyBKU09OIHN0cmluZy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogdGFibGVNYXBwaW5nczogbmV3IFRhYmxlTWFwcGluZ3MoKS5pbmNsdWRlU2NoZW1hKCdwdWJsaWMnKS50b0pzb24oKVxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVNYXBwaW5nczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYXNrIHNldHRpbmdzIEpTT04gc3RyaW5nLlxuICAgKiBVc2Uge0BsaW5rIFRhc2tTZXR0aW5nc30gdG8gYnVpbGQgdGhpcywgb3IgcHJvdmlkZSBhIHJhdyBKU09OIHN0cmluZy5cbiAgICogQSBzZW5zaWJsZSBkZWZhdWx0IGlzIGFwcGxpZWQgaWYgbm90IHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFza1NldHRpbmdzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMb2dpY2FsIG5hbWUgZm9yIHRoZSByZXBsaWNhdGlvbiB0YXNrLlxuICAgKiBBdXRvLWdlbmVyYXRlZCBmcm9tIHRoZSBjb25zdHJ1Y3QgSUQgaWYgbm90IHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwbGljYXRpb25UYXNrSWRlbnRpZmllcj86IHN0cmluZztcblxuICAvKipcbiAgICogQ0RDIHN0YXJ0IHRpbWUgYXMgYW4gSVNPLTg2MDEgc3RyaW5nIG9yIFVuaXggZXBvY2ggbnVtYmVyLlxuICAgKiBPbmx5IHZhbGlkIHdoZW4gbWlncmF0aW9uVHlwZSBpcyBDREMgb3IgRlVMTF9MT0FEX0FORF9DREMuXG4gICAqIE11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGNkY1N0YXJ0UG9zaXRpb24uXG4gICAqL1xuICByZWFkb25seSBjZGNTdGFydFRpbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENEQyBzdGFydCBwb3NpdGlvbiAobG9nIHNlcXVlbmNlIG51bWJlciBvciBzaW1pbGFyKS5cbiAgICogT25seSB2YWxpZCB3aGVuIG1pZ3JhdGlvblR5cGUgaXMgQ0RDIG9yIEZVTExfTE9BRF9BTkRfQ0RDLlxuICAgKiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBjZGNTdGFydFRpbWUuXG4gICAqL1xuICByZWFkb25seSBjZGNTdGFydFBvc2l0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDREMgc3RvcCBwb3NpdGlvbi4gIFRoZSB0YXNrIHN0b3BzIG9uY2UgdGhpcyBwb3NpdGlvbiBpcyByZWFjaGVkLlxuICAgKiBPbmx5IHZhbGlkIHdoZW4gbWlncmF0aW9uVHlwZSBpcyBDREMgb3IgRlVMTF9MT0FEX0FORF9DREMuXG4gICAqL1xuICByZWFkb25seSBjZGNTdG9wUG9zaXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlbW92YWwgcG9saWN5IGZvciB0aGlzIHJlc291cmNlLlxuICAgKiBAZGVmYXVsdCBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogY2RrLlJlbW92YWxQb2xpY3k7XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gYXBwbHkgdG8gdGhlIHRhc2sgcmVzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogY2RrLkNmblRhZ1tdO1xufVxuXG4vKipcbiAqIEEgRE1TIHJlcGxpY2F0aW9uIHRhc2sgdGhhdCB0aWVzIGEgcmVwbGljYXRpb24gaW5zdGFuY2UgdG8gYSBzb3VyY2UgYW5kXG4gKiB0YXJnZXQgZW5kcG9pbnQgYW5kIGRlZmluZXMgd2hhdCBkYXRhIHRvIG1pZ3JhdGUgYW5kIGhvdy5cbiAqL1xuZXhwb3J0IGNsYXNzIERtc1JlcGxpY2F0aW9uVGFzayBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKiBUaGUgdW5kZXJseWluZyBDbG91ZEZvcm1hdGlvbiByZXBsaWNhdGlvbiB0YXNrIHJlc291cmNlLiAqL1xuICByZWFkb25seSBjZm5SZXBsaWNhdGlvblRhc2s6IGRtcy5DZm5SZXBsaWNhdGlvblRhc2s7XG5cbiAgLyoqIEFSTiBvZiB0aGUgcmVwbGljYXRpb24gdGFzay4gKi9cbiAgcmVhZG9ubHkgcmVwbGljYXRpb25UYXNrQXJuOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERtc1JlcGxpY2F0aW9uVGFza1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHRhc2tJZGVudGlmaWVyID1cbiAgICAgIHByb3BzLnJlcGxpY2F0aW9uVGFza0lkZW50aWZpZXIgPz9cbiAgICAgIGNkay5OYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDYzIH0pLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBjb25zdCB0YXNrU2V0dGluZ3MgPSBwcm9wcy50YXNrU2V0dGluZ3MgPz8gbmV3IFRhc2tTZXR0aW5ncygpLnRvSnNvbigpO1xuXG4gICAgLy8gRE1TIGV4cGVjdHMgY2RjU3RhcnRUaW1lIGFzIGEgVW5peCBlcG9jaCBudW1iZXIgKHNlY29uZHMgc2luY2UgZXBvY2gpXG4gICAgbGV0IGNkY1N0YXJ0VGltZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGlmIChwcm9wcy5jZGNTdGFydFRpbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgcGFyc2VkID0gRGF0ZS5wYXJzZShwcm9wcy5jZGNTdGFydFRpbWUpO1xuICAgICAgY2RjU3RhcnRUaW1lID0gaXNOYU4ocGFyc2VkKSA/IE51bWJlcihwcm9wcy5jZGNTdGFydFRpbWUpIDogTWF0aC5mbG9vcihwYXJzZWQgLyAxMDAwKTtcbiAgICB9XG5cbiAgICB0aGlzLmNmblJlcGxpY2F0aW9uVGFzayA9IG5ldyBkbXMuQ2ZuUmVwbGljYXRpb25UYXNrKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIHJlcGxpY2F0aW9uSW5zdGFuY2VBcm46IHByb3BzLnJlcGxpY2F0aW9uSW5zdGFuY2VBcm4sXG4gICAgICBzb3VyY2VFbmRwb2ludEFybjogcHJvcHMuc291cmNlRW5kcG9pbnQuZW5kcG9pbnRBcm4sXG4gICAgICB0YXJnZXRFbmRwb2ludEFybjogcHJvcHMudGFyZ2V0RW5kcG9pbnQuZW5kcG9pbnRBcm4sXG4gICAgICBtaWdyYXRpb25UeXBlOiBwcm9wcy5taWdyYXRpb25UeXBlLFxuICAgICAgdGFibGVNYXBwaW5nczogcHJvcHMudGFibGVNYXBwaW5ncyxcbiAgICAgIHJlcGxpY2F0aW9uVGFza1NldHRpbmdzOiB0YXNrU2V0dGluZ3MsXG4gICAgICByZXBsaWNhdGlvblRhc2tJZGVudGlmaWVyOiB0YXNrSWRlbnRpZmllcixcbiAgICAgIGNkY1N0YXJ0VGltZSxcbiAgICAgIGNkY1N0YXJ0UG9zaXRpb246IHByb3BzLmNkY1N0YXJ0UG9zaXRpb24sXG4gICAgICBjZGNTdG9wUG9zaXRpb246IHByb3BzLmNkY1N0b3BQb3NpdGlvbixcbiAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNmblJlcGxpY2F0aW9uVGFzay5hcHBseVJlbW92YWxQb2xpY3koXG4gICAgICBwcm9wcy5yZW1vdmFsUG9saWN5ID8/IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgKTtcblxuICAgIHRoaXMucmVwbGljYXRpb25UYXNrQXJuID0gdGhpcy5jZm5SZXBsaWNhdGlvblRhc2sucmVmO1xuICB9XG59XG4iXX0=
@@ -1,7 +1,6 @@
1
1
  import * as cdk from 'aws-cdk-lib';
2
2
  import * as dms from 'aws-cdk-lib/aws-dms';
3
3
  import * as ec2 from 'aws-cdk-lib/aws-ec2';
4
- import * as iam from 'aws-cdk-lib/aws-iam';
5
4
  import * as kms from 'aws-cdk-lib/aws-kms';
6
5
  import * as logs from 'aws-cdk-lib/aws-logs';
7
6
  import { Construct } from 'constructs';
@@ -105,10 +104,18 @@ export interface DmsServerlessPipelineProps {
105
104
  * Whether to create the two account-level DMS service roles (`dms-vpc-role`
106
105
  * and `dms-cloudwatch-logs-role`) required by DMS.
107
106
  *
108
- * Set to `false` if the roles already exist for example, because a
109
- * `DmsMigrationPipeline` or a prior manual deployment already created them.
110
- * Attempting to create roles with the same name twice causes a CloudFormation
111
- * `EntityAlreadyExists` error.
107
+ * When `true`, the roles are created idempotently via a custom resource: if
108
+ * either role already exists in the account (created by another stack or
109
+ * manually), the existing role is silently reused and its trust policy is
110
+ * corrected if necessary. The roles are created with `RemovalPolicy.RETAIN`
111
+ * and are **not** lifecycle-managed by this stack — they will not be deleted
112
+ * when the stack is destroyed. If you require the roles to be
113
+ * lifecycle-managed, create them in a dedicated stack and set this to
114
+ * `false`, then pass cross-stack references as needed.
115
+ *
116
+ * When `false`, the construct expects the roles to already be present and
117
+ * skips creating them. The `dmsVpcRole` and `dmsCloudWatchRole` properties
118
+ * will be `undefined`.
112
119
  *
113
120
  * @default true
114
121
  */
@@ -182,15 +189,15 @@ export declare class DmsServerlessPipeline extends Construct {
182
189
  /** CloudWatch log group for the replication config (if enableCloudWatchLogs is true). */
183
190
  readonly logGroup?: logs.LogGroup;
184
191
  /**
185
- * IAM role that allows DMS to write to CloudWatch Logs.
192
+ * Construct wrapping the custom resources that created the `dms-cloudwatch-logs-role`.
186
193
  * `undefined` when `createDmsServiceRoles` is `false`.
187
194
  */
188
- readonly dmsCloudWatchRole?: iam.Role;
195
+ readonly dmsCloudWatchRole?: Construct;
189
196
  /**
190
- * IAM role that allows DMS to manage VPC resources (dms-vpc-role).
197
+ * Construct wrapping the custom resources that created the `dms-vpc-role`.
191
198
  * `undefined` when `createDmsServiceRoles` is `false`.
192
199
  */
193
- readonly dmsVpcRole?: iam.Role;
200
+ readonly dmsVpcRole?: Construct;
194
201
  constructor(scope: Construct, id: string, props: DmsServerlessPipelineProps);
195
202
  private validateProps;
196
203
  }
@@ -226,9 +226,11 @@ class DmsServerlessPipeline extends constructs_1.Construct {
226
226
  },
227
227
  });
228
228
  this.cfnReplicationConfig.applyRemovalPolicy(removalPolicy);
229
- // The replication config cannot be placed in a VPC until dms-vpc-role exists.
229
+ // dms-vpc-role must exist before DMS can describe VPC subnets (subnet group)
230
+ // or place the replication config inside a VPC.
230
231
  if (this.dmsVpcRole) {
231
- this.cfnReplicationConfig.addDependency(this.dmsVpcRole.node.defaultChild);
232
+ this.subnetGroup.node.addDependency(this.dmsVpcRole);
233
+ this.cfnReplicationConfig.node.addDependency(this.dmsVpcRole);
232
234
  }
233
235
  this.replicationConfigArn = this.cfnReplicationConfig.ref;
234
236
  }
@@ -267,5 +269,5 @@ class DmsServerlessPipeline extends constructs_1.Construct {
267
269
  }
268
270
  exports.DmsServerlessPipeline = DmsServerlessPipeline;
269
271
  _a = JSII_RTTI_SYMBOL_1;
270
- DmsServerlessPipeline[_a] = { fqn: "cdk-dms-replication.DmsServerlessPipeline", version: "0.0.16" };
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVybGVzcy1waXBlbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zZXJ2ZXJsZXNzLXBpcGVsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFFM0MsMkNBQTJDO0FBQzNDLDZDQUE2QztBQUM3QywyQ0FBdUM7QUFDdkMsMkNBQXdFO0FBQ3hFLHlDQUF1RDtBQUN2RCxtQ0FBc0Q7QUFFdEQscURBQWlEO0FBRWpELDhFQUE4RTtBQUM5RSxtRUFBbUU7QUFDbkUsOEVBQThFO0FBQzlFLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQThLbkYsOEVBQThFO0FBQzlFLFlBQVk7QUFDWiw4RUFBOEU7QUFFOUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVDRztBQUNILE1BQWEscUJBQXNCLFNBQVEsc0JBQVM7SUFxQ2xELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFDdkUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQztRQUV4RCwwRUFBMEU7UUFDMUUsbUVBQW1FO1FBQ25FLDBFQUEwRTtRQUMxRSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLElBQUks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QUM7UUFDNUYsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztRQUN0RixDQUFDO0lBQ0gsQ0FBQzs7QUFuUkgsc0RBb1JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGRtcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZG1zJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBlbnN1cmVEbXNDbG91ZFdhdGNoUm9sZSwgZW5zdXJlRG1zVnBjUm9sZSB9IGZyb20gJy4vZG1zLXJvbGVzJztcbmltcG9ydCB7IERtc0VuZHBvaW50LCBJRG1zRW5kcG9pbnQgfSBmcm9tICcuL2VuZHBvaW50JztcbmltcG9ydCB7IEVuZHBvaW50VHlwZSwgTWlncmF0aW9uVHlwZSB9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHsgU291cmNlRW5kcG9pbnRPcHRpb25zLCBUYXJnZXRFbmRwb2ludE9wdGlvbnMgfSBmcm9tICcuL21pZ3JhdGlvbi1waXBlbGluZSc7XG5pbXBvcnQgeyBUYWJsZU1hcHBpbmdzIH0gZnJvbSAnLi90YWJsZS1tYXBwaW5ncyc7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVmFsaWQgY2FwYWNpdHkgdW5pdCB2YWx1ZXMg4oCUIGRvY3VtZW50ZWQgaW4gdGhlIERNUyBBUEkgcmVmZXJlbmNlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFZBTElEX0NBUEFDSVRZX1VOSVRTID0gbmV3IFNldChbMSwgMiwgNCwgOCwgMTYsIDMyLCA2NCwgMTI4LCAxOTIsIDI1NiwgMzg0XSk7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUHJvcHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogUHJvcHMgZm9yIHtAbGluayBEbXNTZXJ2ZXJsZXNzUGlwZWxpbmV9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBEbXNTZXJ2ZXJsZXNzUGlwZWxpbmVQcm9wcyB7XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTmV0d29ya2luZ1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFZQQyBpbiB3aGljaCB0byBwbGFjZSB0aGUgc2VydmVybGVzcyByZXBsaWNhdGlvbiBjb25maWcuXG4gICAqIFRoZSBjb25maWcgaXMgcGxhY2VkIGluIHByaXZhdGUgc3VibmV0cy5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIFN1Ym5ldCBzZWxlY3Rpb24gZm9yIHRoZSByZXBsaWNhdGlvbiBzdWJuZXQgZ3JvdXAuXG4gICAqIEBkZWZhdWx0IHByaXZhdGUgc3VibmV0cyB3aXRoIGVncmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIFNlY3VyaXR5IGdyb3VwcyB0byBhdHRhY2ggdG8gdGhlIHNlcnZlcmxlc3MgcmVwbGljYXRpb24gY29uZmlnLlxuICAgKiBBIG5ldyBzZWN1cml0eSBncm91cCBpcyBjcmVhdGVkIGlmIG5vbmUgYXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIENvbXB1dGUgY29uZmlnXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgRE1TIENhcGFjaXR5IFVuaXRzIChEQ1VzKSB0aGUgc2VydmVybGVzcyByZXBsaWNhdGlvbiBtYXlcbiAgICogc2NhbGUgdXAgdG8uXG4gICAqXG4gICAqIFZhbGlkIHZhbHVlczogMSwgMiwgNCwgOCwgMTYsIDMyLCA2NCwgMTI4LCAxOTIsIDI1NiwgMzg0LlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q2FwYWNpdHlVbml0czogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNaW5pbXVtIG51bWJlciBvZiBEQ1VzIERNUyB3aWxsIHByb3Zpc2lvbiBhdCBzdGFydC11cC5cbiAgICogQGRlZmF1bHQgRE1TIGF1dG8tZGV0ZXJtaW5lcyBiYXNlZCBvbiB3b3JrbG9hZFxuICAgKi9cbiAgcmVhZG9ubHkgbWluQ2FwYWNpdHlVbml0cz86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgc2VydmVybGVzcyByZXBsaWNhdGlvbiBpcyBNdWx0aS1BWi5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG11bHRpQXo/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcmVmZXJyZWQgbWFpbnRlbmFuY2Ugd2luZG93LCBlLmcuIFwic3VuOjA0OjAwLXN1bjowNDozMFwiLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c/OiBzdHJpbmc7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBFbmNyeXB0aW9uXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogS01TIGtleSB1c2VkIHRvIGVuY3J5cHQgcmVwbGljYXRpb24gc3RvcmFnZSBhdCByZXN0LlxuICAgKiBBIG5ldyBrZXkgaXMgY3JlYXRlZCBpZiBub3QgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEVuZHBvaW50c1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFNvdXJjZSBlbmRwb2ludCBjb25maWd1cmF0aW9uLlxuICAgKiBQcm92aWRlIHRoaXMgT1IgYGV4aXN0aW5nU291cmNlRW5kcG9pbnRgIOKAlCBub3QgYm90aC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUVuZHBvaW50PzogU291cmNlRW5kcG9pbnRPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBBbiBleGlzdGluZyB7QGxpbmsgSURtc0VuZHBvaW50fSB0byB1c2UgYXMgdGhlIHNvdXJjZS5cbiAgICogUHJvdmlkZSB0aGlzIE9SIGBzb3VyY2VFbmRwb2ludGAg4oCUIG5vdCBib3RoLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdTb3VyY2VFbmRwb2ludD86IElEbXNFbmRwb2ludDtcblxuICAvKipcbiAgICogVGFyZ2V0IGVuZHBvaW50IGNvbmZpZ3VyYXRpb24uXG4gICAqIFByb3ZpZGUgdGhpcyBPUiBgZXhpc3RpbmdUYXJnZXRFbmRwb2ludGAg4oCUIG5vdCBib3RoLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0RW5kcG9pbnQ/OiBUYXJnZXRFbmRwb2ludE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEFuIGV4aXN0aW5nIHtAbGluayBJRG1zRW5kcG9pbnR9IHRvIHVzZSBhcyB0aGUgdGFyZ2V0LlxuICAgKiBQcm92aWRlIHRoaXMgT1IgYHRhcmdldEVuZHBvaW50YCDigJQgbm90IGJvdGguXG4gICAqL1xuICByZWFkb25seSBleGlzdGluZ1RhcmdldEVuZHBvaW50PzogSURtc0VuZHBvaW50O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTWlncmF0aW9uIGNvbmZpZ1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqIFRoZSB0eXBlIG9mIG1pZ3JhdGlvbiB0byBwZXJmb3JtLiAqL1xuICByZWFkb25seSBtaWdyYXRpb25UeXBlOiBNaWdyYXRpb25UeXBlO1xuXG4gIC8qKlxuICAgKiBUYWJsZSBtYXBwaW5ncyBKU09OIHN0cmluZy5cbiAgICogVXNlIHtAbGluayBUYWJsZU1hcHBpbmdzfSB0byBidWlsZCB0aGlzLlxuICAgKiBEZWZhdWx0cyB0byBcImluY2x1ZGUgYWxsIHRhYmxlcyBpbiBhbGwgc2NoZW1hc1wiIGlmIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlTWFwcGluZ3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlcGxpY2F0aW9uIHNldHRpbmdzIEpTT04gc3RyaW5nIChlcXVpdmFsZW50IHRvIHRhc2sgc2V0dGluZ3MgZm9yIGNsYXNzaWMgRE1TKS5cbiAgICogVXNlIHtAbGluayBUYXNrU2V0dGluZ3N9IHRvIGJ1aWxkIHRoaXMuXG4gICAqIFNlbnNpYmxlIGRlZmF1bHRzIGFyZSBhcHBsaWVkIGJ5IERNUyBpZiBub3QgcHJvdmlkZWQuXG4gICAqXG4gICAqIEByZW1hcmtzIERNUyBTZXJ2ZXJsZXNzIGRvZXMgbm90IHN1cHBvcnQgc2V0dGluZyBDREMgc3RhcnQvc3RvcCBwb3NpdGlvbnNcbiAgICogdmlhIENsb3VkRm9ybWF0aW9uLiBUbyBzdGFydCByZXBsaWNhdGlvbiBmcm9tIGEgc3BlY2lmaWMgTFNOIG9yIHRpbWVzdGFtcFxuICAgKiBhZnRlciB0aGUgcmVwbGljYXRpb24gY29uZmlnIGhhcyBiZWVuIGNyZWF0ZWQsIGNhbGwgdGhlXG4gICAqIGBTdGFydFJlcGxpY2F0aW9uYCBBUEkgd2l0aCBgU3RhcnRSZXBsaWNhdGlvblRhc2tUeXBlYCBzZXQgdG9cbiAgICogYHN0YXJ0LXJlcGxpY2F0aW9uYCBhbmQgc3VwcGx5IGBDZGNTdGFydFBvc2l0aW9uYCBvciBgQ2RjU3RhcnRUaW1lYC5cbiAgICovXG4gIHJlYWRvbmx5IHRhc2tTZXR0aW5ncz86IHN0cmluZztcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE9ic2VydmFiaWxpdHlcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNyZWF0ZSBhIENsb3VkV2F0Y2ggbG9nIGdyb3VwIGZvciB0aGUgcmVwbGljYXRpb24gY29uZmlnLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVDbG91ZFdhdGNoTG9ncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJldGVudGlvbiBwZXJpb2QgZm9yIHRoZSBDbG91ZFdhdGNoIGxvZyBncm91cC5cbiAgICogQGRlZmF1bHQgbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9NT05USFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUmV0ZW50aW9uPzogbG9ncy5SZXRlbnRpb25EYXlzO1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSUFNIC8gc2VydmljZSByb2xlc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY3JlYXRlIHRoZSB0d28gYWNjb3VudC1sZXZlbCBETVMgc2VydmljZSByb2xlcyAoYGRtcy12cGMtcm9sZWBcbiAgICogYW5kIGBkbXMtY2xvdWR3YXRjaC1sb2dzLXJvbGVgKSByZXF1aXJlZCBieSBETVMuXG4gICAqXG4gICAqIFNldCB0byBgZmFsc2VgIGlmIHRoZSByb2xlcyBhbHJlYWR5IGV4aXN0IOKAlCBmb3IgZXhhbXBsZSwgYmVjYXVzZSBhXG4gICAqIGBEbXNNaWdyYXRpb25QaXBlbGluZWAgb3IgYSBwcmlvciBtYW51YWwgZGVwbG95bWVudCBhbHJlYWR5IGNyZWF0ZWQgdGhlbS5cbiAgICogQXR0ZW1wdGluZyB0byBjcmVhdGUgcm9sZXMgd2l0aCB0aGUgc2FtZSBuYW1lIHR3aWNlIGNhdXNlcyBhIENsb3VkRm9ybWF0aW9uXG4gICAqIGBFbnRpdHlBbHJlYWR5RXhpc3RzYCBlcnJvci5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlRG1zU2VydmljZVJvbGVzPzogYm9vbGVhbjtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE5hbWluZyAvIGxpZmVjeWNsZVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIExvZ2ljYWwgaWRlbnRpZmllciBmb3IgdGhlIHJlcGxpY2F0aW9uIGNvbmZpZyByZXNvdXJjZS5cbiAgICogQGRlZmF1bHQgdW5pcXVlIG5hbWUgZGVyaXZlZCBmcm9tIHRoZSBjb25zdHJ1Y3QgaWRcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2F0aW9uQ29uZmlnSWRlbnRpZmllcj86IHN0cmluZztcblxuICAvKipcbiAgICogUmVtb3ZhbCBwb2xpY3kgYXBwbGllZCB0byBhbGwgcmVzb3VyY2VzIGluIHRoZSBwaXBlbGluZS5cbiAgICogQGRlZmF1bHQgY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IGNkay5SZW1vdmFsUG9saWN5O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbnN0cnVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogQW4gTDMgQ0RLIHBhdHRlcm4gY29uc3RydWN0IHRoYXQgcHJvdmlzaW9ucyBhIERNUyBTZXJ2ZXJsZXNzIHJlcGxpY2F0aW9uXG4gKiBwaXBlbGluZTpcbiAqXG4gKiAtICoqUmVwbGljYXRpb24gY29uZmlnKiog4oCUIGJhY2tlZCBieSBgQ2ZuUmVwbGljYXRpb25Db25maWdgOyBETVMgYXV0by1zY2FsZXNcbiAqICAgY2FwYWNpdHkgYmV0d2VlbiBgbWluQ2FwYWNpdHlVbml0c2AgYW5kIGBtYXhDYXBhY2l0eVVuaXRzYC5cbiAqIC0gKipTb3VyY2UgZW5kcG9pbnQqKiDigJQgc3VwcG9ydHMgZXZlcnkgZW5naW5lIERNUyBzdXBwb3J0cy5cbiAqIC0gKipUYXJnZXQgZW5kcG9pbnQqKiDigJQgc3VwcG9ydHMgZXZlcnkgZW5naW5lIERNUyBzdXBwb3J0cy5cbiAqIC0gKipTdWJuZXQgZ3JvdXAqKiDigJQgcHJpdmF0ZSBzdWJuZXQgcGxhY2VtZW50LlxuICogLSAqKktNUyBrZXkqKiDigJQgc3RvcmFnZSBlbmNyeXB0aW9uIGF0IHJlc3QgKGNyZWF0ZWQgaWYgbm90IHByb3ZpZGVkKS5cbiAqIC0gKipTZWN1cml0eSBncm91cCoqIOKAlCBkZWRpY2F0ZWQgZ3JvdXAgKGNyZWF0ZWQgaWYgbm90IHByb3ZpZGVkKS5cbiAqIC0gKipJQU0gcm9sZXMqKiDigJQgYGRtcy12cGMtcm9sZWAgYW5kIGBkbXMtY2xvdWR3YXRjaC1sb2dzLXJvbGVgLlxuICogLSAqKkNsb3VkV2F0Y2ggbG9nIGdyb3VwKiog4oCUIChvcHRpb25hbCkgcmV0YWlucyByZXBsaWNhdGlvbiBsb2dzLlxuICpcbiAqID4gKipDREMgc3RhcnQvc3RvcCBwb3NpdGlvbiBsaW1pdGF0aW9uKio6IGBDZm5SZXBsaWNhdGlvbkNvbmZpZ2AgZG9lcyBub3RcbiAqID4gZXhwb3NlIGBjZGNTdGFydFRpbWVgIC8gYGNkY1N0YXJ0UG9zaXRpb25gIC8gYGNkY1N0b3BQb3NpdGlvbmAuIFRvIHN0YXJ0XG4gKiA+IGZyb20gYSBzcGVjaWZpYyBwb3NpdGlvbiwgY2FsbCB0aGUgYFN0YXJ0UmVwbGljYXRpb25gIEFQSSBkaXJlY3RseSBhZnRlclxuICogPiB0aGUgY29uZmlnIGlzIGNyZWF0ZWQgKGUuZy4gZnJvbSBhIExhbWJkYSBjdXN0b20gcmVzb3VyY2Ugb3IgQ0xJKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcGlwZWxpbmUgPSBuZXcgRG1zU2VydmVybGVzc1BpcGVsaW5lKHRoaXMsICdTZXJ2ZXJsZXNzUGlwZWxpbmUnLCB7XG4gKiAgIHZwYyxcbiAqICAgbWF4Q2FwYWNpdHlVbml0czogOCxcbiAqICAgbWlncmF0aW9uVHlwZTogTWlncmF0aW9uVHlwZS5GVUxMX0xPQURfQU5EX0NEQyxcbiAqICAgc291cmNlRW5kcG9pbnQ6IHtcbiAqICAgICBlbmdpbmU6IEVuZHBvaW50RW5naW5lLk1ZU1FMLFxuICogICAgIHNlcnZlck5hbWU6ICdteXNxbC5leGFtcGxlLmNvbScsXG4gKiAgICAgcG9ydDogMzMwNixcbiAqICAgICB1c2VybmFtZTogJ2Rtc191c2VyJyxcbiAqICAgICBwYXNzd29yZDogY2RrLlNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKCdteXNxbC1kbXMtc2VjcmV0JyksXG4gKiAgIH0sXG4gKiAgIHRhcmdldEVuZHBvaW50OiB7XG4gKiAgICAgZW5naW5lOiBFbmRwb2ludEVuZ2luZS5BVVJPUkFfUE9TVEdSRVNRTCxcbiAqICAgICBzZXJ2ZXJOYW1lOiBjbHVzdGVyLmNsdXN0ZXJFbmRwb2ludC5ob3N0bmFtZSxcbiAqICAgICBwb3J0OiA1NDMyLFxuICogICAgIHVzZXJuYW1lOiAnZG1zX3VzZXInLFxuICogICAgIHBhc3N3b3JkOiBjZGsuU2VjcmV0VmFsdWUuc2VjcmV0c01hbmFnZXIoJ2F1cm9yYS1kbXMtc2VjcmV0JyksXG4gKiAgIH0sXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIERtc1NlcnZlcmxlc3NQaXBlbGluZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKiBUaGUgdW5kZXJseWluZyBgQ2ZuUmVwbGljYXRpb25Db25maWdgIHJlc291cmNlLiAqL1xuICByZWFkb25seSBjZm5SZXBsaWNhdGlvbkNvbmZpZzogZG1zLkNmblJlcGxpY2F0aW9uQ29uZmlnO1xuXG4gIC8qKiBUaGUgQVJOIG9mIHRoZSByZXBsaWNhdGlvbiBjb25maWcuICovXG4gIHJlYWRvbmx5IHJlcGxpY2F0aW9uQ29uZmlnQXJuOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBzb3VyY2UgZW5kcG9pbnQgdXNlZCBieSB0aGlzIHBpcGVsaW5lLiAqL1xuICByZWFkb25seSBzb3VyY2U6IElEbXNFbmRwb2ludDtcblxuICAvKiogVGhlIHRhcmdldCBlbmRwb2ludCB1c2VkIGJ5IHRoaXMgcGlwZWxpbmUuICovXG4gIHJlYWRvbmx5IHRhcmdldDogSURtc0VuZHBvaW50O1xuXG4gIC8qKiBUaGUgcmVwbGljYXRpb24gc3VibmV0IGdyb3VwIGNyZWF0ZWQgZm9yIHRoaXMgcGlwZWxpbmUuICovXG4gIHJlYWRvbmx5IHN1Ym5ldEdyb3VwOiBkbXMuQ2ZuUmVwbGljYXRpb25TdWJuZXRHcm91cDtcblxuICAvKiogVGhlIEtNUyBrZXkgdXNlZCBmb3Igc3RvcmFnZSBlbmNyeXB0aW9uLiAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5OiBrbXMuSUtleTtcblxuICAvKiogVGhlIHNlY3VyaXR5IGdyb3VwIGF0dGFjaGVkIHRvIHRoaXMgcGlwZWxpbmUuICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA6IGVjMi5JU2VjdXJpdHlHcm91cDtcblxuICAvKiogQ2xvdWRXYXRjaCBsb2cgZ3JvdXAgZm9yIHRoZSByZXBsaWNhdGlvbiBjb25maWcgKGlmIGVuYWJsZUNsb3VkV2F0Y2hMb2dzIGlzIHRydWUpLiAqL1xuICByZWFkb25seSBsb2dHcm91cD86IGxvZ3MuTG9nR3JvdXA7XG5cbiAgLyoqXG4gICAqIElBTSByb2xlIHRoYXQgYWxsb3dzIERNUyB0byB3cml0ZSB0byBDbG91ZFdhdGNoIExvZ3MuXG4gICAqIGB1bmRlZmluZWRgIHdoZW4gYGNyZWF0ZURtc1NlcnZpY2VSb2xlc2AgaXMgYGZhbHNlYC5cbiAgICovXG4gIHJlYWRvbmx5IGRtc0Nsb3VkV2F0Y2hSb2xlPzogaWFtLlJvbGU7XG5cbiAgLyoqXG4gICAqIElBTSByb2xlIHRoYXQgYWxsb3dzIERNUyB0byBtYW5hZ2UgVlBDIHJlc291cmNlcyAoZG1zLXZwYy1yb2xlKS5cbiAgICogYHVuZGVmaW5lZGAgd2hlbiBgY3JlYXRlRG1zU2VydmljZVJvbGVzYCBpcyBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgZG1zVnBjUm9sZT86IGlhbS5Sb2xlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEbXNTZXJ2ZXJsZXNzUGlwZWxpbmVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnZhbGlkYXRlUHJvcHMocHJvcHMpO1xuXG4gICAgY29uc3QgcmVtb3ZhbFBvbGljeSA9IHByb3BzLnJlbW92YWxQb2xpY3kgPz8gY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWTtcbiAgICBjb25zdCBjcmVhdGVSb2xlcyA9IHByb3BzLmNyZWF0ZURtc1NlcnZpY2VSb2xlcyA/PyB0cnVlO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBkbXMtdnBjLXJvbGUg4oCUIHJlcXVpcmVkIGJ5IERNUyB0byBwbGFjZSB0aGUgY29uZmlnIGluc2lkZSBhIFZQQy5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGlmIChjcmVhdGVSb2xlcykge1xuICAgICAgdGhpcy5kbXNWcGNSb2xlID0gZW5zdXJlRG1zVnBjUm9sZShjZGsuU3RhY2sub2YodGhpcykpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQ2xvdWRXYXRjaCBsb2cgZ3JvdXAgJiBJQU0gcm9sZVxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgZW5hYmxlTG9ncyA9IHByb3BzLmVuYWJsZUNsb3VkV2F0Y2hMb2dzID8/IHRydWU7XG5cbiAgICBpZiAoZW5hYmxlTG9ncykge1xuICAgICAgdGhpcy5sb2dHcm91cCA9IG5ldyBsb2dzLkxvZ0dyb3VwKHRoaXMsICdMb2dHcm91cCcsIHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiBgL2F3cy9kbXMvc2VydmVybGVzcy8ke2lkfWAsXG4gICAgICAgIHJldGVudGlvbjogcHJvcHMubG9nUmV0ZW50aW9uID8/IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfTU9OVEgsXG4gICAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICB9KTtcblxuICAgICAgaWYgKGNyZWF0ZVJvbGVzKSB7XG4gICAgICAgIHRoaXMuZG1zQ2xvdWRXYXRjaFJvbGUgPSBlbnN1cmVEbXNDbG91ZFdhdGNoUm9sZShjZGsuU3RhY2sub2YodGhpcykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gS01TIGtleVxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgdGhpcy5lbmNyeXB0aW9uS2V5ID1cbiAgICAgIHByb3BzLmttc0tleSA/P1xuICAgICAgbmV3IGttcy5LZXkodGhpcywgJ0VuY3J5cHRpb25LZXknLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBgRE1TIHNlcnZlcmxlc3MgcmVwbGljYXRpb24gZW5jcnlwdGlvbiBrZXkgZm9yICR7aWR9YCxcbiAgICAgICAgZW5hYmxlS2V5Um90YXRpb246IHRydWUsXG4gICAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICB9KTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gU2VjdXJpdHkgZ3JvdXBcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IHByb3ZpZGVkU2dzID0gcHJvcHMuc2VjdXJpdHlHcm91cHMgPz8gW107XG4gICAgaWYgKHByb3ZpZGVkU2dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRoaXMsICdTZWN1cml0eUdyb3VwJywge1xuICAgICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgICAgZGVzY3JpcHRpb246IGBETVMgc2VydmVybGVzcyByZXBsaWNhdGlvbiBzZWN1cml0eSBncm91cCBmb3IgJHtpZH1gLFxuICAgICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VjdXJpdHlHcm91cCA9IHByb3ZpZGVkU2dzWzBdO1xuICAgIH1cblxuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXBJZHMgPVxuICAgICAgcHJvdmlkZWRTZ3MubGVuZ3RoID4gMFxuICAgICAgICA/IHByb3ZpZGVkU2dzLm1hcCgoc2cpID0+IHNnLnNlY3VyaXR5R3JvdXBJZClcbiAgICAgICAgOiBbdGhpcy5zZWN1cml0eUdyb3VwLnNlY3VyaXR5R3JvdXBJZF07XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFN1Ym5ldCBncm91cFxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3Qgc3VibmV0U2VsZWN0aW9uID0gcHJvcHMudnBjU3VibmV0cyA/PyB7XG4gICAgICBzdWJuZXRUeXBlOiBlYzIuU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfRUdSRVNTLFxuICAgIH07XG4gICAgY29uc3Qgc3VibmV0cyA9IHByb3BzLnZwYy5zZWxlY3RTdWJuZXRzKHN1Ym5ldFNlbGVjdGlvbik7XG5cbiAgICB0aGlzLnN1Ym5ldEdyb3VwID0gbmV3IGRtcy5DZm5SZXBsaWNhdGlvblN1Ym5ldEdyb3VwKHRoaXMsICdTdWJuZXRHcm91cCcsIHtcbiAgICAgIHJlcGxpY2F0aW9uU3VibmV0R3JvdXBEZXNjcmlwdGlvbjogYERNUyBzZXJ2ZXJsZXNzIHN1Ym5ldCBncm91cCBmb3IgJHtpZH1gLFxuICAgICAgc3VibmV0SWRzOiBzdWJuZXRzLnN1Ym5ldElkcyxcbiAgICB9KTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gU291cmNlIGVuZHBvaW50XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBpZiAocHJvcHMuZXhpc3RpbmdTb3VyY2VFbmRwb2ludCkge1xuICAgICAgdGhpcy5zb3VyY2UgPSBwcm9wcy5leGlzdGluZ1NvdXJjZUVuZHBvaW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzb3VyY2VPcHRzID0gcHJvcHMuc291cmNlRW5kcG9pbnQhO1xuICAgICAgdGhpcy5zb3VyY2UgPSBuZXcgRG1zRW5kcG9pbnQodGhpcywgJ1NvdXJjZUVuZHBvaW50Jywge1xuICAgICAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZS5TT1VSQ0UsXG4gICAgICAgIGVuZ2luZTogc291cmNlT3B0cy5lbmdpbmUsXG4gICAgICAgIGVuZHBvaW50SWRlbnRpZmllcjogc291cmNlT3B0cy5lbmRwb2ludElkZW50aWZpZXIsXG4gICAgICAgIHNlcnZlck5hbWU6IHNvdXJjZU9wdHMuc2VydmVyTmFtZSxcbiAgICAgICAgcG9ydDogc291cmNlT3B0cy5wb3J0LFxuICAgICAgICB1c2VybmFtZTogc291cmNlT3B0cy51c2VybmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IHNvdXJjZU9wdHMucGFzc3dvcmQsXG4gICAgICAgIGRhdGFiYXNlTmFtZTogc291cmNlT3B0cy5kYXRhYmFzZU5hbWUsXG4gICAgICAgIGV4dHJhQ29ubmVjdGlvbkF0dHJpYnV0ZXM6IHNvdXJjZU9wdHMuZXh0cmFDb25uZWN0aW9uQXR0cmlidXRlcyxcbiAgICAgICAgY2VydGlmaWNhdGVBcm46IHNvdXJjZU9wdHMuY2VydGlmaWNhdGVBcm4sXG4gICAgICAgIHNzbE1vZGU6IHNvdXJjZU9wdHMuc3NsTW9kZSxcbiAgICAgICAgbXlTcWxTZXR0aW5nczogc291cmNlT3B0cy5teVNxbFNldHRpbmdzLFxuICAgICAgICBwb3N0Z3JlU3FsU2V0dGluZ3M6IHNvdXJjZU9wdHMucG9zdGdyZVNxbFNldHRpbmdzLFxuICAgICAgICBvcmFjbGVTZXR0aW5nczogc291cmNlT3B0cy5vcmFjbGVTZXR0aW5ncyxcbiAgICAgICAgc3FsU2VydmVyU2V0dGluZ3M6IHNvdXJjZU9wdHMuc3FsU2VydmVyU2V0dGluZ3MsXG4gICAgICAgIHNhcEFzZVNldHRpbmdzOiBzb3VyY2VPcHRzLnNhcEFzZVNldHRpbmdzLFxuICAgICAgICBkYjJTZXR0aW5nczogc291cmNlT3B0cy5kYjJTZXR0aW5ncyxcbiAgICAgICAgbW9uZ29EYlNldHRpbmdzOiBzb3VyY2VPcHRzLm1vbmdvRGJTZXR0aW5ncyxcbiAgICAgICAgczNTZXR0aW5nczogc291cmNlT3B0cy5zM1NldHRpbmdzLFxuICAgICAgICByZW1vdmFsUG9saWN5LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBUYXJnZXQgZW5kcG9pbnRcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGlmIChwcm9wcy5leGlzdGluZ1RhcmdldEVuZHBvaW50KSB7XG4gICAgICB0aGlzLnRhcmdldCA9IHByb3BzLmV4aXN0aW5nVGFyZ2V0RW5kcG9pbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRhcmdldE9wdHMgPSBwcm9wcy50YXJnZXRFbmRwb2ludCE7XG4gICAgICB0aGlzLnRhcmdldCA9IG5ldyBEbXNFbmRwb2ludCh0aGlzLCAnVGFyZ2V0RW5kcG9pbnQnLCB7XG4gICAgICAgIGVuZHBvaW50VHlwZTogRW5kcG9pbnRUeXBlLlRBUkdFVCxcbiAgICAgICAgZW5naW5lOiB0YXJnZXRPcHRzLmVuZ2luZSxcbiAgICAgICAgZW5kcG9pbnRJZGVudGlmaWVyOiB0YXJnZXRPcHRzLmVuZHBvaW50SWRlbnRpZmllcixcbiAgICAgICAgc2VydmVyTmFtZTogdGFyZ2V0T3B0cy5zZXJ2ZXJOYW1lLFxuICAgICAgICBwb3J0OiB0YXJnZXRPcHRzLnBvcnQsXG4gICAgICAgIHVzZXJuYW1lOiB0YXJnZXRPcHRzLnVzZXJuYW1lLFxuICAgICAgICBwYXNzd29yZDogdGFyZ2V0T3B0cy5wYXNzd29yZCxcbiAgICAgICAgZGF0YWJhc2VOYW1lOiB0YXJnZXRPcHRzLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgZXh0cmFDb25uZWN0aW9uQXR0cmlidXRlczogdGFyZ2V0T3B0cy5leHRyYUNvbm5lY3Rpb25BdHRyaWJ1dGVzLFxuICAgICAgICBjZXJ0aWZpY2F0ZUFybjogdGFyZ2V0T3B0cy5jZXJ0aWZpY2F0ZUFybixcbiAgICAgICAgc3NsTW9kZTogdGFyZ2V0T3B0cy5zc2xNb2RlLFxuICAgICAgICBteVNxbFNldHRpbmdzOiB0YXJnZXRPcHRzLm15U3FsU2V0dGluZ3MsXG4gICAgICAgIHBvc3RncmVTcWxTZXR0aW5nczogdGFyZ2V0T3B0cy5wb3N0Z3JlU3FsU2V0dGluZ3MsXG4gICAgICAgIG9yYWNsZVNldHRpbmdzOiB0YXJnZXRPcHRzLm9yYWNsZVNldHRpbmdzLFxuICAgICAgICBzcWxTZXJ2ZXJTZXR0aW5nczogdGFyZ2V0T3B0cy5zcWxTZXJ2ZXJTZXR0aW5ncyxcbiAgICAgICAgc2FwQXNlU2V0dGluZ3M6IHRhcmdldE9wdHMuc2FwQXNlU2V0dGluZ3MsXG4gICAgICAgIGRiMlNldHRpbmdzOiB0YXJnZXRPcHRzLmRiMlNldHRpbmdzLFxuICAgICAgICBtb25nb0RiU2V0dGluZ3M6IHRhcmdldE9wdHMubW9uZ29EYlNldHRpbmdzLFxuICAgICAgICBzM1NldHRpbmdzOiB0YXJnZXRPcHRzLnMzU2V0dGluZ3MsXG4gICAgICAgIGR5bmFtb0RiU2V0dGluZ3M6IHRhcmdldE9wdHMuZHluYW1vRGJTZXR0aW5ncyxcbiAgICAgICAgcmVkc2hpZnRTZXR0aW5nczogdGFyZ2V0T3B0cy5yZWRzaGlmdFNldHRpbmdzLFxuICAgICAgICBraW5lc2lzU2V0dGluZ3M6IHRhcmdldE9wdHMua2luZXNpc1NldHRpbmdzLFxuICAgICAgICBrYWZrYVNldHRpbmdzOiB0YXJnZXRPcHRzLmthZmthU2V0dGluZ3MsXG4gICAgICAgIG9wZW5TZWFyY2hTZXR0aW5nczogdGFyZ2V0T3B0cy5vcGVuU2VhcmNoU2V0dGluZ3MsXG4gICAgICAgIG5lcHR1bmVTZXR0aW5nczogdGFyZ2V0T3B0cy5uZXB0dW5lU2V0dGluZ3MsXG4gICAgICAgIHJlZGlzU2V0dGluZ3M6IHRhcmdldE9wdHMucmVkaXNTZXR0aW5ncyxcbiAgICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gVGFibGUgbWFwcGluZ3Mg4oCUIGRlZmF1bHQgdG8gXCJpbmNsdWRlIGV2ZXJ5dGhpbmdcIlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgdGFibGVNYXBwaW5nc0pzb24gPVxuICAgICAgcHJvcHMudGFibGVNYXBwaW5ncyA/PyBuZXcgVGFibGVNYXBwaW5ncygpLmluY2x1ZGVTY2hlbWEoJyUnKS50b0pzb24oKTtcbiAgICAvLyBDZm5SZXBsaWNhdGlvbkNvbmZpZy50YWJsZU1hcHBpbmdzIGV4cGVjdHMgYSBKU09OIG9iamVjdCwgbm90IGEgc3RyaW5nLlxuICAgIGNvbnN0IHRhYmxlTWFwcGluZ3NPYmogPSBKU09OLnBhcnNlKHRhYmxlTWFwcGluZ3NKc29uKTtcblxuICAgIGNvbnN0IHJlcGxpY2F0aW9uU2V0dGluZ3NPYmogPVxuICAgICAgcHJvcHMudGFza1NldHRpbmdzICE9PSB1bmRlZmluZWQgPyBKU09OLnBhcnNlKHByb3BzLnRhc2tTZXR0aW5ncykgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFJlcGxpY2F0aW9uIGNvbmZpZyBpZGVudGlmaWVyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCBjb25maWdJZGVudGlmaWVyID1cbiAgICAgIHByb3BzLnJlcGxpY2F0aW9uQ29uZmlnSWRlbnRpZmllciA/P1xuICAgICAgY2RrLk5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogNjMgfSkudG9Mb3dlckNhc2UoKTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQ2ZuUmVwbGljYXRpb25Db25maWdcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIHRoaXMuY2ZuUmVwbGljYXRpb25Db25maWcgPSBuZXcgZG1zLkNmblJlcGxpY2F0aW9uQ29uZmlnKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIHJlcGxpY2F0aW9uQ29uZmlnSWRlbnRpZmllcjogY29uZmlnSWRlbnRpZmllcixcbiAgICAgIHJlcGxpY2F0aW9uVHlwZTogcHJvcHMubWlncmF0aW9uVHlwZSxcbiAgICAgIHNvdXJjZUVuZHBvaW50QXJuOiB0aGlzLnNvdXJjZS5lbmRwb2ludEFybixcbiAgICAgIHRhcmdldEVuZHBvaW50QXJuOiB0aGlzLnRhcmdldC5lbmRwb2ludEFybixcbiAgICAgIHRhYmxlTWFwcGluZ3M6IHRhYmxlTWFwcGluZ3NPYmosXG4gICAgICByZXBsaWNhdGlvblNldHRpbmdzOiByZXBsaWNhdGlvblNldHRpbmdzT2JqLFxuICAgICAgY29tcHV0ZUNvbmZpZzoge1xuICAgICAgICBtYXhDYXBhY2l0eVVuaXRzOiBwcm9wcy5tYXhDYXBhY2l0eVVuaXRzLFxuICAgICAgICBtaW5DYXBhY2l0eVVuaXRzOiBwcm9wcy5taW5DYXBhY2l0eVVuaXRzLFxuICAgICAgICBtdWx0aUF6OiBwcm9wcy5tdWx0aUF6ID8/IGZhbHNlLFxuICAgICAgICBrbXNLZXlJZDogdGhpcy5lbmNyeXB0aW9uS2V5LmtleUFybixcbiAgICAgICAgcmVwbGljYXRpb25TdWJuZXRHcm91cElkOiB0aGlzLnN1Ym5ldEdyb3VwLnJlZixcbiAgICAgICAgdnBjU2VjdXJpdHlHcm91cElkczogc2VjdXJpdHlHcm91cElkcyxcbiAgICAgICAgcHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c6IHByb3BzLnByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmNmblJlcGxpY2F0aW9uQ29uZmlnLmFwcGx5UmVtb3ZhbFBvbGljeShyZW1vdmFsUG9saWN5KTtcblxuICAgIC8vIFRoZSByZXBsaWNhdGlvbiBjb25maWcgY2Fubm90IGJlIHBsYWNlZCBpbiBhIFZQQyB1bnRpbCBkbXMtdnBjLXJvbGUgZXhpc3RzLlxuICAgIGlmICh0aGlzLmRtc1ZwY1JvbGUpIHtcbiAgICAgIHRoaXMuY2ZuUmVwbGljYXRpb25Db25maWcuYWRkRGVwZW5kZW5jeShcbiAgICAgICAgdGhpcy5kbXNWcGNSb2xlLm5vZGUuZGVmYXVsdENoaWxkIGFzIGNkay5DZm5SZXNvdXJjZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXBsaWNhdGlvbkNvbmZpZ0FybiA9IHRoaXMuY2ZuUmVwbGljYXRpb25Db25maWcucmVmO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFByaXZhdGUgaGVscGVyc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBwcml2YXRlIHZhbGlkYXRlUHJvcHMocHJvcHM6IERtc1NlcnZlcmxlc3NQaXBlbGluZVByb3BzKTogdm9pZCB7XG4gICAgaWYgKCFWQUxJRF9DQVBBQ0lUWV9VTklUUy5oYXMocHJvcHMubWF4Q2FwYWNpdHlVbml0cykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYG1heENhcGFjaXR5VW5pdHMgbXVzdCBiZSBvbmUgb2YgJHtbLi4uVkFMSURfQ0FQQUNJVFlfVU5JVFNdLmpvaW4oJywgJyl9LiBHb3Q6ICR7cHJvcHMubWF4Q2FwYWNpdHlVbml0c31gLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgcHJvcHMubWluQ2FwYWNpdHlVbml0cyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAhVkFMSURfQ0FQQUNJVFlfVU5JVFMuaGFzKHByb3BzLm1pbkNhcGFjaXR5VW5pdHMpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBtaW5DYXBhY2l0eVVuaXRzIG11c3QgYmUgb25lIG9mICR7Wy4uLlZBTElEX0NBUEFDSVRZX1VOSVRTXS5qb2luKCcsICcpfS4gR290OiAke3Byb3BzLm1pbkNhcGFjaXR5VW5pdHN9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHByb3BzLm1pbkNhcGFjaXR5VW5pdHMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgcHJvcHMubWluQ2FwYWNpdHlVbml0cyA+IHByb3BzLm1heENhcGFjaXR5VW5pdHNcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYG1pbkNhcGFjaXR5VW5pdHMgKCR7cHJvcHMubWluQ2FwYWNpdHlVbml0c30pIG11c3QgYmUgPD0gbWF4Q2FwYWNpdHlVbml0cyAoJHtwcm9wcy5tYXhDYXBhY2l0eVVuaXRzfSkuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzU291cmNlID0gISFwcm9wcy5zb3VyY2VFbmRwb2ludDtcbiAgICBjb25zdCBoYXNFeGlzdGluZ1NvdXJjZSA9ICEhcHJvcHMuZXhpc3RpbmdTb3VyY2VFbmRwb2ludDtcbiAgICBpZiAoaGFzU291cmNlICYmIGhhc0V4aXN0aW5nU291cmNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Byb3ZpZGUgZWl0aGVyIGBzb3VyY2VFbmRwb2ludGAgb3IgYGV4aXN0aW5nU291cmNlRW5kcG9pbnRgLCBub3QgYm90aC4nKTtcbiAgICB9XG4gICAgaWYgKCFoYXNTb3VyY2UgJiYgIWhhc0V4aXN0aW5nU291cmNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ09uZSBvZiBgc291cmNlRW5kcG9pbnRgIG9yIGBleGlzdGluZ1NvdXJjZUVuZHBvaW50YCBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNUYXJnZXQgPSAhIXByb3BzLnRhcmdldEVuZHBvaW50O1xuICAgIGNvbnN0IGhhc0V4aXN0aW5nVGFyZ2V0ID0gISFwcm9wcy5leGlzdGluZ1RhcmdldEVuZHBvaW50O1xuICAgIGlmIChoYXNUYXJnZXQgJiYgaGFzRXhpc3RpbmdUYXJnZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUHJvdmlkZSBlaXRoZXIgYHRhcmdldEVuZHBvaW50YCBvciBgZXhpc3RpbmdUYXJnZXRFbmRwb2ludGAsIG5vdCBib3RoLicpO1xuICAgIH1cbiAgICBpZiAoIWhhc1RhcmdldCAmJiAhaGFzRXhpc3RpbmdUYXJnZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignT25lIG9mIGB0YXJnZXRFbmRwb2ludGAgb3IgYGV4aXN0aW5nVGFyZ2V0RW5kcG9pbnRgIGlzIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgfVxufVxuIl19
272
+ DmsServerlessPipeline[_a] = { fqn: "cdk-dms-replication.DmsServerlessPipeline", version: "0.1.1" };
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVybGVzcy1waXBlbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zZXJ2ZXJsZXNzLXBpcGVsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLDZDQUE2QztBQUM3QywyQ0FBdUM7QUFDdkMsMkNBQXdFO0FBQ3hFLHlDQUF1RDtBQUN2RCxtQ0FBc0Q7QUFFdEQscURBQWlEO0FBRWpELDhFQUE4RTtBQUM5RSxtRUFBbUU7QUFDbkUsOEVBQThFO0FBQzlFLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQXNMbkYsOEVBQThFO0FBQzlFLFlBQVk7QUFDWiw4RUFBOEU7QUFFOUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVDRztBQUNILE1BQWEscUJBQXNCLFNBQVEsc0JBQVM7SUFxQ2xELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFDdkUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQztRQUV4RCwwRUFBMEU7UUFDMUUsbUVBQW1FO1FBQ25FLDBFQUEwRTtRQUMxRSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLElBQUks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SUFBSSxTQUFTLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7UUFDNUYsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztRQUN0RixDQUFDO0lBQ0gsQ0FBQzs7QUFuUkgsc0RBb1JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGRtcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZG1zJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBlbnN1cmVEbXNDbG91ZFdhdGNoUm9sZSwgZW5zdXJlRG1zVnBjUm9sZSB9IGZyb20gJy4vZG1zLXJvbGVzJztcbmltcG9ydCB7IERtc0VuZHBvaW50LCBJRG1zRW5kcG9pbnQgfSBmcm9tICcuL2VuZHBvaW50JztcbmltcG9ydCB7IEVuZHBvaW50VHlwZSwgTWlncmF0aW9uVHlwZSB9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHsgU291cmNlRW5kcG9pbnRPcHRpb25zLCBUYXJnZXRFbmRwb2ludE9wdGlvbnMgfSBmcm9tICcuL21pZ3JhdGlvbi1waXBlbGluZSc7XG5pbXBvcnQgeyBUYWJsZU1hcHBpbmdzIH0gZnJvbSAnLi90YWJsZS1tYXBwaW5ncyc7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVmFsaWQgY2FwYWNpdHkgdW5pdCB2YWx1ZXMg4oCUIGRvY3VtZW50ZWQgaW4gdGhlIERNUyBBUEkgcmVmZXJlbmNlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmNvbnN0IFZBTElEX0NBUEFDSVRZX1VOSVRTID0gbmV3IFNldChbMSwgMiwgNCwgOCwgMTYsIDMyLCA2NCwgMTI4LCAxOTIsIDI1NiwgMzg0XSk7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUHJvcHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogUHJvcHMgZm9yIHtAbGluayBEbXNTZXJ2ZXJsZXNzUGlwZWxpbmV9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBEbXNTZXJ2ZXJsZXNzUGlwZWxpbmVQcm9wcyB7XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTmV0d29ya2luZ1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFZQQyBpbiB3aGljaCB0byBwbGFjZSB0aGUgc2VydmVybGVzcyByZXBsaWNhdGlvbiBjb25maWcuXG4gICAqIFRoZSBjb25maWcgaXMgcGxhY2VkIGluIHByaXZhdGUgc3VibmV0cy5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIFN1Ym5ldCBzZWxlY3Rpb24gZm9yIHRoZSByZXBsaWNhdGlvbiBzdWJuZXQgZ3JvdXAuXG4gICAqIEBkZWZhdWx0IHByaXZhdGUgc3VibmV0cyB3aXRoIGVncmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIFNlY3VyaXR5IGdyb3VwcyB0byBhdHRhY2ggdG8gdGhlIHNlcnZlcmxlc3MgcmVwbGljYXRpb24gY29uZmlnLlxuICAgKiBBIG5ldyBzZWN1cml0eSBncm91cCBpcyBjcmVhdGVkIGlmIG5vbmUgYXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIENvbXB1dGUgY29uZmlnXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgRE1TIENhcGFjaXR5IFVuaXRzIChEQ1VzKSB0aGUgc2VydmVybGVzcyByZXBsaWNhdGlvbiBtYXlcbiAgICogc2NhbGUgdXAgdG8uXG4gICAqXG4gICAqIFZhbGlkIHZhbHVlczogMSwgMiwgNCwgOCwgMTYsIDMyLCA2NCwgMTI4LCAxOTIsIDI1NiwgMzg0LlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q2FwYWNpdHlVbml0czogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNaW5pbXVtIG51bWJlciBvZiBEQ1VzIERNUyB3aWxsIHByb3Zpc2lvbiBhdCBzdGFydC11cC5cbiAgICogQGRlZmF1bHQgRE1TIGF1dG8tZGV0ZXJtaW5lcyBiYXNlZCBvbiB3b3JrbG9hZFxuICAgKi9cbiAgcmVhZG9ubHkgbWluQ2FwYWNpdHlVbml0cz86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgc2VydmVybGVzcyByZXBsaWNhdGlvbiBpcyBNdWx0aS1BWi5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG11bHRpQXo/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcmVmZXJyZWQgbWFpbnRlbmFuY2Ugd2luZG93LCBlLmcuIFwic3VuOjA0OjAwLXN1bjowNDozMFwiLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c/OiBzdHJpbmc7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBFbmNyeXB0aW9uXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogS01TIGtleSB1c2VkIHRvIGVuY3J5cHQgcmVwbGljYXRpb24gc3RvcmFnZSBhdCByZXN0LlxuICAgKiBBIG5ldyBrZXkgaXMgY3JlYXRlZCBpZiBub3QgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEVuZHBvaW50c1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFNvdXJjZSBlbmRwb2ludCBjb25maWd1cmF0aW9uLlxuICAgKiBQcm92aWRlIHRoaXMgT1IgYGV4aXN0aW5nU291cmNlRW5kcG9pbnRgIOKAlCBub3QgYm90aC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUVuZHBvaW50PzogU291cmNlRW5kcG9pbnRPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBBbiBleGlzdGluZyB7QGxpbmsgSURtc0VuZHBvaW50fSB0byB1c2UgYXMgdGhlIHNvdXJjZS5cbiAgICogUHJvdmlkZSB0aGlzIE9SIGBzb3VyY2VFbmRwb2ludGAg4oCUIG5vdCBib3RoLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdTb3VyY2VFbmRwb2ludD86IElEbXNFbmRwb2ludDtcblxuICAvKipcbiAgICogVGFyZ2V0IGVuZHBvaW50IGNvbmZpZ3VyYXRpb24uXG4gICAqIFByb3ZpZGUgdGhpcyBPUiBgZXhpc3RpbmdUYXJnZXRFbmRwb2ludGAg4oCUIG5vdCBib3RoLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0RW5kcG9pbnQ/OiBUYXJnZXRFbmRwb2ludE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEFuIGV4aXN0aW5nIHtAbGluayBJRG1zRW5kcG9pbnR9IHRvIHVzZSBhcyB0aGUgdGFyZ2V0LlxuICAgKiBQcm92aWRlIHRoaXMgT1IgYHRhcmdldEVuZHBvaW50YCDigJQgbm90IGJvdGguXG4gICAqL1xuICByZWFkb25seSBleGlzdGluZ1RhcmdldEVuZHBvaW50PzogSURtc0VuZHBvaW50O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTWlncmF0aW9uIGNvbmZpZ1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqIFRoZSB0eXBlIG9mIG1pZ3JhdGlvbiB0byBwZXJmb3JtLiAqL1xuICByZWFkb25seSBtaWdyYXRpb25UeXBlOiBNaWdyYXRpb25UeXBlO1xuXG4gIC8qKlxuICAgKiBUYWJsZSBtYXBwaW5ncyBKU09OIHN0cmluZy5cbiAgICogVXNlIHtAbGluayBUYWJsZU1hcHBpbmdzfSB0byBidWlsZCB0aGlzLlxuICAgKiBEZWZhdWx0cyB0byBcImluY2x1ZGUgYWxsIHRhYmxlcyBpbiBhbGwgc2NoZW1hc1wiIGlmIG5vdCBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlTWFwcGluZ3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlcGxpY2F0aW9uIHNldHRpbmdzIEpTT04gc3RyaW5nIChlcXVpdmFsZW50IHRvIHRhc2sgc2V0dGluZ3MgZm9yIGNsYXNzaWMgRE1TKS5cbiAgICogVXNlIHtAbGluayBUYXNrU2V0dGluZ3N9IHRvIGJ1aWxkIHRoaXMuXG4gICAqIFNlbnNpYmxlIGRlZmF1bHRzIGFyZSBhcHBsaWVkIGJ5IERNUyBpZiBub3QgcHJvdmlkZWQuXG4gICAqXG4gICAqIEByZW1hcmtzIERNUyBTZXJ2ZXJsZXNzIGRvZXMgbm90IHN1cHBvcnQgc2V0dGluZyBDREMgc3RhcnQvc3RvcCBwb3NpdGlvbnNcbiAgICogdmlhIENsb3VkRm9ybWF0aW9uLiBUbyBzdGFydCByZXBsaWNhdGlvbiBmcm9tIGEgc3BlY2lmaWMgTFNOIG9yIHRpbWVzdGFtcFxuICAgKiBhZnRlciB0aGUgcmVwbGljYXRpb24gY29uZmlnIGhhcyBiZWVuIGNyZWF0ZWQsIGNhbGwgdGhlXG4gICAqIGBTdGFydFJlcGxpY2F0aW9uYCBBUEkgd2l0aCBgU3RhcnRSZXBsaWNhdGlvblRhc2tUeXBlYCBzZXQgdG9cbiAgICogYHN0YXJ0LXJlcGxpY2F0aW9uYCBhbmQgc3VwcGx5IGBDZGNTdGFydFBvc2l0aW9uYCBvciBgQ2RjU3RhcnRUaW1lYC5cbiAgICovXG4gIHJlYWRvbmx5IHRhc2tTZXR0aW5ncz86IHN0cmluZztcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE9ic2VydmFiaWxpdHlcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNyZWF0ZSBhIENsb3VkV2F0Y2ggbG9nIGdyb3VwIGZvciB0aGUgcmVwbGljYXRpb24gY29uZmlnLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVDbG91ZFdhdGNoTG9ncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJldGVudGlvbiBwZXJpb2QgZm9yIHRoZSBDbG91ZFdhdGNoIGxvZyBncm91cC5cbiAgICogQGRlZmF1bHQgbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9NT05USFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUmV0ZW50aW9uPzogbG9ncy5SZXRlbnRpb25EYXlzO1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSUFNIC8gc2VydmljZSByb2xlc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY3JlYXRlIHRoZSB0d28gYWNjb3VudC1sZXZlbCBETVMgc2VydmljZSByb2xlcyAoYGRtcy12cGMtcm9sZWBcbiAgICogYW5kIGBkbXMtY2xvdWR3YXRjaC1sb2dzLXJvbGVgKSByZXF1aXJlZCBieSBETVMuXG4gICAqXG4gICAqIFdoZW4gYHRydWVgLCB0aGUgcm9sZXMgYXJlIGNyZWF0ZWQgaWRlbXBvdGVudGx5IHZpYSBhIGN1c3RvbSByZXNvdXJjZTogaWZcbiAgICogZWl0aGVyIHJvbGUgYWxyZWFkeSBleGlzdHMgaW4gdGhlIGFjY291bnQgKGNyZWF0ZWQgYnkgYW5vdGhlciBzdGFjayBvclxuICAgKiBtYW51YWxseSksIHRoZSBleGlzdGluZyByb2xlIGlzIHNpbGVudGx5IHJldXNlZCBhbmQgaXRzIHRydXN0IHBvbGljeSBpc1xuICAgKiBjb3JyZWN0ZWQgaWYgbmVjZXNzYXJ5LiBUaGUgcm9sZXMgYXJlIGNyZWF0ZWQgd2l0aCBgUmVtb3ZhbFBvbGljeS5SRVRBSU5gXG4gICAqIGFuZCBhcmUgKipub3QqKiBsaWZlY3ljbGUtbWFuYWdlZCBieSB0aGlzIHN0YWNrIOKAlCB0aGV5IHdpbGwgbm90IGJlIGRlbGV0ZWRcbiAgICogd2hlbiB0aGUgc3RhY2sgaXMgZGVzdHJveWVkLiBJZiB5b3UgcmVxdWlyZSB0aGUgcm9sZXMgdG8gYmVcbiAgICogbGlmZWN5Y2xlLW1hbmFnZWQsIGNyZWF0ZSB0aGVtIGluIGEgZGVkaWNhdGVkIHN0YWNrIGFuZCBzZXQgdGhpcyB0b1xuICAgKiBgZmFsc2VgLCB0aGVuIHBhc3MgY3Jvc3Mtc3RhY2sgcmVmZXJlbmNlcyBhcyBuZWVkZWQuXG4gICAqXG4gICAqIFdoZW4gYGZhbHNlYCwgdGhlIGNvbnN0cnVjdCBleHBlY3RzIHRoZSByb2xlcyB0byBhbHJlYWR5IGJlIHByZXNlbnQgYW5kXG4gICAqIHNraXBzIGNyZWF0aW5nIHRoZW0uIFRoZSBgZG1zVnBjUm9sZWAgYW5kIGBkbXNDbG91ZFdhdGNoUm9sZWAgcHJvcGVydGllc1xuICAgKiB3aWxsIGJlIGB1bmRlZmluZWRgLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVEbXNTZXJ2aWNlUm9sZXM/OiBib29sZWFuO1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTmFtaW5nIC8gbGlmZWN5Y2xlXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogTG9naWNhbCBpZGVudGlmaWVyIGZvciB0aGUgcmVwbGljYXRpb24gY29uZmlnIHJlc291cmNlLlxuICAgKiBAZGVmYXVsdCB1bmlxdWUgbmFtZSBkZXJpdmVkIGZyb20gdGhlIGNvbnN0cnVjdCBpZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVwbGljYXRpb25Db25maWdJZGVudGlmaWVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZW1vdmFsIHBvbGljeSBhcHBsaWVkIHRvIGFsbCByZXNvdXJjZXMgaW4gdGhlIHBpcGVsaW5lLlxuICAgKiBAZGVmYXVsdCBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogY2RrLlJlbW92YWxQb2xpY3k7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ29uc3RydWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBBbiBMMyBDREsgcGF0dGVybiBjb25zdHJ1Y3QgdGhhdCBwcm92aXNpb25zIGEgRE1TIFNlcnZlcmxlc3MgcmVwbGljYXRpb25cbiAqIHBpcGVsaW5lOlxuICpcbiAqIC0gKipSZXBsaWNhdGlvbiBjb25maWcqKiDigJQgYmFja2VkIGJ5IGBDZm5SZXBsaWNhdGlvbkNvbmZpZ2A7IERNUyBhdXRvLXNjYWxlc1xuICogICBjYXBhY2l0eSBiZXR3ZWVuIGBtaW5DYXBhY2l0eVVuaXRzYCBhbmQgYG1heENhcGFjaXR5VW5pdHNgLlxuICogLSAqKlNvdXJjZSBlbmRwb2ludCoqIOKAlCBzdXBwb3J0cyBldmVyeSBlbmdpbmUgRE1TIHN1cHBvcnRzLlxuICogLSAqKlRhcmdldCBlbmRwb2ludCoqIOKAlCBzdXBwb3J0cyBldmVyeSBlbmdpbmUgRE1TIHN1cHBvcnRzLlxuICogLSAqKlN1Ym5ldCBncm91cCoqIOKAlCBwcml2YXRlIHN1Ym5ldCBwbGFjZW1lbnQuXG4gKiAtICoqS01TIGtleSoqIOKAlCBzdG9yYWdlIGVuY3J5cHRpb24gYXQgcmVzdCAoY3JlYXRlZCBpZiBub3QgcHJvdmlkZWQpLlxuICogLSAqKlNlY3VyaXR5IGdyb3VwKiog4oCUIGRlZGljYXRlZCBncm91cCAoY3JlYXRlZCBpZiBub3QgcHJvdmlkZWQpLlxuICogLSAqKklBTSByb2xlcyoqIOKAlCBgZG1zLXZwYy1yb2xlYCBhbmQgYGRtcy1jbG91ZHdhdGNoLWxvZ3Mtcm9sZWAuXG4gKiAtICoqQ2xvdWRXYXRjaCBsb2cgZ3JvdXAqKiDigJQgKG9wdGlvbmFsKSByZXRhaW5zIHJlcGxpY2F0aW9uIGxvZ3MuXG4gKlxuICogPiAqKkNEQyBzdGFydC9zdG9wIHBvc2l0aW9uIGxpbWl0YXRpb24qKjogYENmblJlcGxpY2F0aW9uQ29uZmlnYCBkb2VzIG5vdFxuICogPiBleHBvc2UgYGNkY1N0YXJ0VGltZWAgLyBgY2RjU3RhcnRQb3NpdGlvbmAgLyBgY2RjU3RvcFBvc2l0aW9uYC4gVG8gc3RhcnRcbiAqID4gZnJvbSBhIHNwZWNpZmljIHBvc2l0aW9uLCBjYWxsIHRoZSBgU3RhcnRSZXBsaWNhdGlvbmAgQVBJIGRpcmVjdGx5IGFmdGVyXG4gKiA+IHRoZSBjb25maWcgaXMgY3JlYXRlZCAoZS5nLiBmcm9tIGEgTGFtYmRhIGN1c3RvbSByZXNvdXJjZSBvciBDTEkpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBwaXBlbGluZSA9IG5ldyBEbXNTZXJ2ZXJsZXNzUGlwZWxpbmUodGhpcywgJ1NlcnZlcmxlc3NQaXBlbGluZScsIHtcbiAqICAgdnBjLFxuICogICBtYXhDYXBhY2l0eVVuaXRzOiA4LFxuICogICBtaWdyYXRpb25UeXBlOiBNaWdyYXRpb25UeXBlLkZVTExfTE9BRF9BTkRfQ0RDLFxuICogICBzb3VyY2VFbmRwb2ludDoge1xuICogICAgIGVuZ2luZTogRW5kcG9pbnRFbmdpbmUuTVlTUUwsXG4gKiAgICAgc2VydmVyTmFtZTogJ215c3FsLmV4YW1wbGUuY29tJyxcbiAqICAgICBwb3J0OiAzMzA2LFxuICogICAgIHVzZXJuYW1lOiAnZG1zX3VzZXInLFxuICogICAgIHBhc3N3b3JkOiBjZGsuU2VjcmV0VmFsdWUuc2VjcmV0c01hbmFnZXIoJ215c3FsLWRtcy1zZWNyZXQnKSxcbiAqICAgfSxcbiAqICAgdGFyZ2V0RW5kcG9pbnQ6IHtcbiAqICAgICBlbmdpbmU6IEVuZHBvaW50RW5naW5lLkFVUk9SQV9QT1NUR1JFU1FMLFxuICogICAgIHNlcnZlck5hbWU6IGNsdXN0ZXIuY2x1c3RlckVuZHBvaW50Lmhvc3RuYW1lLFxuICogICAgIHBvcnQ6IDU0MzIsXG4gKiAgICAgdXNlcm5hbWU6ICdkbXNfdXNlcicsXG4gKiAgICAgcGFzc3dvcmQ6IGNkay5TZWNyZXRWYWx1ZS5zZWNyZXRzTWFuYWdlcignYXVyb3JhLWRtcy1zZWNyZXQnKSxcbiAqICAgfSxcbiAqIH0pO1xuICovXG5leHBvcnQgY2xhc3MgRG1zU2VydmVybGVzc1BpcGVsaW5lIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqIFRoZSB1bmRlcmx5aW5nIGBDZm5SZXBsaWNhdGlvbkNvbmZpZ2AgcmVzb3VyY2UuICovXG4gIHJlYWRvbmx5IGNmblJlcGxpY2F0aW9uQ29uZmlnOiBkbXMuQ2ZuUmVwbGljYXRpb25Db25maWc7XG5cbiAgLyoqIFRoZSBBUk4gb2YgdGhlIHJlcGxpY2F0aW9uIGNvbmZpZy4gKi9cbiAgcmVhZG9ubHkgcmVwbGljYXRpb25Db25maWdBcm46IHN0cmluZztcblxuICAvKiogVGhlIHNvdXJjZSBlbmRwb2ludCB1c2VkIGJ5IHRoaXMgcGlwZWxpbmUuICovXG4gIHJlYWRvbmx5IHNvdXJjZTogSURtc0VuZHBvaW50O1xuXG4gIC8qKiBUaGUgdGFyZ2V0IGVuZHBvaW50IHVzZWQgYnkgdGhpcyBwaXBlbGluZS4gKi9cbiAgcmVhZG9ubHkgdGFyZ2V0OiBJRG1zRW5kcG9pbnQ7XG5cbiAgLyoqIFRoZSByZXBsaWNhdGlvbiBzdWJuZXQgZ3JvdXAgY3JlYXRlZCBmb3IgdGhpcyBwaXBlbGluZS4gKi9cbiAgcmVhZG9ubHkgc3VibmV0R3JvdXA6IGRtcy5DZm5SZXBsaWNhdGlvblN1Ym5ldEdyb3VwO1xuXG4gIC8qKiBUaGUgS01TIGtleSB1c2VkIGZvciBzdG9yYWdlIGVuY3J5cHRpb24uICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk6IGttcy5JS2V5O1xuXG4gIC8qKiBUaGUgc2VjdXJpdHkgZ3JvdXAgYXR0YWNoZWQgdG8gdGhpcyBwaXBlbGluZS4gKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cDogZWMyLklTZWN1cml0eUdyb3VwO1xuXG4gIC8qKiBDbG91ZFdhdGNoIGxvZyBncm91cCBmb3IgdGhlIHJlcGxpY2F0aW9uIGNvbmZpZyAoaWYgZW5hYmxlQ2xvdWRXYXRjaExvZ3MgaXMgdHJ1ZSkuICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwPzogbG9ncy5Mb2dHcm91cDtcblxuICAvKipcbiAgICogQ29uc3RydWN0IHdyYXBwaW5nIHRoZSBjdXN0b20gcmVzb3VyY2VzIHRoYXQgY3JlYXRlZCB0aGUgYGRtcy1jbG91ZHdhdGNoLWxvZ3Mtcm9sZWAuXG4gICAqIGB1bmRlZmluZWRgIHdoZW4gYGNyZWF0ZURtc1NlcnZpY2VSb2xlc2AgaXMgYGZhbHNlYC5cbiAgICovXG4gIHJlYWRvbmx5IGRtc0Nsb3VkV2F0Y2hSb2xlPzogQ29uc3RydWN0O1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Qgd3JhcHBpbmcgdGhlIGN1c3RvbSByZXNvdXJjZXMgdGhhdCBjcmVhdGVkIHRoZSBgZG1zLXZwYy1yb2xlYC5cbiAgICogYHVuZGVmaW5lZGAgd2hlbiBgY3JlYXRlRG1zU2VydmljZVJvbGVzYCBpcyBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgZG1zVnBjUm9sZT86IENvbnN0cnVjdDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRG1zU2VydmVybGVzc1BpcGVsaW5lUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy52YWxpZGF0ZVByb3BzKHByb3BzKTtcblxuICAgIGNvbnN0IHJlbW92YWxQb2xpY3kgPSBwcm9wcy5yZW1vdmFsUG9saWN5ID8/IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1k7XG4gICAgY29uc3QgY3JlYXRlUm9sZXMgPSBwcm9wcy5jcmVhdGVEbXNTZXJ2aWNlUm9sZXMgPz8gdHJ1ZTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gZG1zLXZwYy1yb2xlIOKAlCByZXF1aXJlZCBieSBETVMgdG8gcGxhY2UgdGhlIGNvbmZpZyBpbnNpZGUgYSBWUEMuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBpZiAoY3JlYXRlUm9sZXMpIHtcbiAgICAgIHRoaXMuZG1zVnBjUm9sZSA9IGVuc3VyZURtc1ZwY1JvbGUoY2RrLlN0YWNrLm9mKHRoaXMpKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIENsb3VkV2F0Y2ggbG9nIGdyb3VwICYgSUFNIHJvbGVcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IGVuYWJsZUxvZ3MgPSBwcm9wcy5lbmFibGVDbG91ZFdhdGNoTG9ncyA/PyB0cnVlO1xuXG4gICAgaWYgKGVuYWJsZUxvZ3MpIHtcbiAgICAgIHRoaXMubG9nR3JvdXAgPSBuZXcgbG9ncy5Mb2dHcm91cCh0aGlzLCAnTG9nR3JvdXAnLCB7XG4gICAgICAgIGxvZ0dyb3VwTmFtZTogYC9hd3MvZG1zL3NlcnZlcmxlc3MvJHtpZH1gLFxuICAgICAgICByZXRlbnRpb246IHByb3BzLmxvZ1JldGVudGlvbiA/PyBsb2dzLlJldGVudGlvbkRheXMuT05FX01PTlRILFxuICAgICAgICByZW1vdmFsUG9saWN5LFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChjcmVhdGVSb2xlcykge1xuICAgICAgICB0aGlzLmRtc0Nsb3VkV2F0Y2hSb2xlID0gZW5zdXJlRG1zQ2xvdWRXYXRjaFJvbGUoY2RrLlN0YWNrLm9mKHRoaXMpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEtNUyBrZXlcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIHRoaXMuZW5jcnlwdGlvbktleSA9XG4gICAgICBwcm9wcy5rbXNLZXkgPz9cbiAgICAgIG5ldyBrbXMuS2V5KHRoaXMsICdFbmNyeXB0aW9uS2V5Jywge1xuICAgICAgICBkZXNjcmlwdGlvbjogYERNUyBzZXJ2ZXJsZXNzIHJlcGxpY2F0aW9uIGVuY3J5cHRpb24ga2V5IGZvciAke2lkfWAsXG4gICAgICAgIGVuYWJsZUtleVJvdGF0aW9uOiB0cnVlLFxuICAgICAgICByZW1vdmFsUG9saWN5LFxuICAgICAgfSk7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFNlY3VyaXR5IGdyb3VwXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCBwcm92aWRlZFNncyA9IHByb3BzLnNlY3VyaXR5R3JvdXBzID8/IFtdO1xuICAgIGlmIChwcm92aWRlZFNncy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc2VjdXJpdHlHcm91cCA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCAnU2VjdXJpdHlHcm91cCcsIHtcbiAgICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgRE1TIHNlcnZlcmxlc3MgcmVwbGljYXRpb24gc2VjdXJpdHkgZ3JvdXAgZm9yICR7aWR9YCxcbiAgICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlY3VyaXR5R3JvdXAgPSBwcm92aWRlZFNnc1swXTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWN1cml0eUdyb3VwSWRzID1cbiAgICAgIHByb3ZpZGVkU2dzLmxlbmd0aCA+IDBcbiAgICAgICAgPyBwcm92aWRlZFNncy5tYXAoKHNnKSA9PiBzZy5zZWN1cml0eUdyb3VwSWQpXG4gICAgICAgIDogW3RoaXMuc2VjdXJpdHlHcm91cC5zZWN1cml0eUdyb3VwSWRdO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBTdWJuZXQgZ3JvdXBcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IHN1Ym5ldFNlbGVjdGlvbiA9IHByb3BzLnZwY1N1Ym5ldHMgPz8ge1xuICAgICAgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTUyxcbiAgICB9O1xuICAgIGNvbnN0IHN1Ym5ldHMgPSBwcm9wcy52cGMuc2VsZWN0U3VibmV0cyhzdWJuZXRTZWxlY3Rpb24pO1xuXG4gICAgdGhpcy5zdWJuZXRHcm91cCA9IG5ldyBkbXMuQ2ZuUmVwbGljYXRpb25TdWJuZXRHcm91cCh0aGlzLCAnU3VibmV0R3JvdXAnLCB7XG4gICAgICByZXBsaWNhdGlvblN1Ym5ldEdyb3VwRGVzY3JpcHRpb246IGBETVMgc2VydmVybGVzcyBzdWJuZXQgZ3JvdXAgZm9yICR7aWR9YCxcbiAgICAgIHN1Ym5ldElkczogc3VibmV0cy5zdWJuZXRJZHMsXG4gICAgfSk7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFNvdXJjZSBlbmRwb2ludFxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgaWYgKHByb3BzLmV4aXN0aW5nU291cmNlRW5kcG9pbnQpIHtcbiAgICAgIHRoaXMuc291cmNlID0gcHJvcHMuZXhpc3RpbmdTb3VyY2VFbmRwb2ludDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc291cmNlT3B0cyA9IHByb3BzLnNvdXJjZUVuZHBvaW50ITtcbiAgICAgIHRoaXMuc291cmNlID0gbmV3IERtc0VuZHBvaW50KHRoaXMsICdTb3VyY2VFbmRwb2ludCcsIHtcbiAgICAgICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGUuU09VUkNFLFxuICAgICAgICBlbmdpbmU6IHNvdXJjZU9wdHMuZW5naW5lLFxuICAgICAgICBlbmRwb2ludElkZW50aWZpZXI6IHNvdXJjZU9wdHMuZW5kcG9pbnRJZGVudGlmaWVyLFxuICAgICAgICBzZXJ2ZXJOYW1lOiBzb3VyY2VPcHRzLnNlcnZlck5hbWUsXG4gICAgICAgIHBvcnQ6IHNvdXJjZU9wdHMucG9ydCxcbiAgICAgICAgdXNlcm5hbWU6IHNvdXJjZU9wdHMudXNlcm5hbWUsXG4gICAgICAgIHBhc3N3b3JkOiBzb3VyY2VPcHRzLnBhc3N3b3JkLFxuICAgICAgICBkYXRhYmFzZU5hbWU6IHNvdXJjZU9wdHMuZGF0YWJhc2VOYW1lLFxuICAgICAgICBleHRyYUNvbm5lY3Rpb25BdHRyaWJ1dGVzOiBzb3VyY2VPcHRzLmV4dHJhQ29ubmVjdGlvbkF0dHJpYnV0ZXMsXG4gICAgICAgIGNlcnRpZmljYXRlQXJuOiBzb3VyY2VPcHRzLmNlcnRpZmljYXRlQXJuLFxuICAgICAgICBzc2xNb2RlOiBzb3VyY2VPcHRzLnNzbE1vZGUsXG4gICAgICAgIG15U3FsU2V0dGluZ3M6IHNvdXJjZU9wdHMubXlTcWxTZXR0aW5ncyxcbiAgICAgICAgcG9zdGdyZVNxbFNldHRpbmdzOiBzb3VyY2VPcHRzLnBvc3RncmVTcWxTZXR0aW5ncyxcbiAgICAgICAgb3JhY2xlU2V0dGluZ3M6IHNvdXJjZU9wdHMub3JhY2xlU2V0dGluZ3MsXG4gICAgICAgIHNxbFNlcnZlclNldHRpbmdzOiBzb3VyY2VPcHRzLnNxbFNlcnZlclNldHRpbmdzLFxuICAgICAgICBzYXBBc2VTZXR0aW5nczogc291cmNlT3B0cy5zYXBBc2VTZXR0aW5ncyxcbiAgICAgICAgZGIyU2V0dGluZ3M6IHNvdXJjZU9wdHMuZGIyU2V0dGluZ3MsXG4gICAgICAgIG1vbmdvRGJTZXR0aW5nczogc291cmNlT3B0cy5tb25nb0RiU2V0dGluZ3MsXG4gICAgICAgIHMzU2V0dGluZ3M6IHNvdXJjZU9wdHMuczNTZXR0aW5ncyxcbiAgICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gVGFyZ2V0IGVuZHBvaW50XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBpZiAocHJvcHMuZXhpc3RpbmdUYXJnZXRFbmRwb2ludCkge1xuICAgICAgdGhpcy50YXJnZXQgPSBwcm9wcy5leGlzdGluZ1RhcmdldEVuZHBvaW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0YXJnZXRPcHRzID0gcHJvcHMudGFyZ2V0RW5kcG9pbnQhO1xuICAgICAgdGhpcy50YXJnZXQgPSBuZXcgRG1zRW5kcG9pbnQodGhpcywgJ1RhcmdldEVuZHBvaW50Jywge1xuICAgICAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZS5UQVJHRVQsXG4gICAgICAgIGVuZ2luZTogdGFyZ2V0T3B0cy5lbmdpbmUsXG4gICAgICAgIGVuZHBvaW50SWRlbnRpZmllcjogdGFyZ2V0T3B0cy5lbmRwb2ludElkZW50aWZpZXIsXG4gICAgICAgIHNlcnZlck5hbWU6IHRhcmdldE9wdHMuc2VydmVyTmFtZSxcbiAgICAgICAgcG9ydDogdGFyZ2V0T3B0cy5wb3J0LFxuICAgICAgICB1c2VybmFtZTogdGFyZ2V0T3B0cy51c2VybmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IHRhcmdldE9wdHMucGFzc3dvcmQsXG4gICAgICAgIGRhdGFiYXNlTmFtZTogdGFyZ2V0T3B0cy5kYXRhYmFzZU5hbWUsXG4gICAgICAgIGV4dHJhQ29ubmVjdGlvbkF0dHJpYnV0ZXM6IHRhcmdldE9wdHMuZXh0cmFDb25uZWN0aW9uQXR0cmlidXRlcyxcbiAgICAgICAgY2VydGlmaWNhdGVBcm46IHRhcmdldE9wdHMuY2VydGlmaWNhdGVBcm4sXG4gICAgICAgIHNzbE1vZGU6IHRhcmdldE9wdHMuc3NsTW9kZSxcbiAgICAgICAgbXlTcWxTZXR0aW5nczogdGFyZ2V0T3B0cy5teVNxbFNldHRpbmdzLFxuICAgICAgICBwb3N0Z3JlU3FsU2V0dGluZ3M6IHRhcmdldE9wdHMucG9zdGdyZVNxbFNldHRpbmdzLFxuICAgICAgICBvcmFjbGVTZXR0aW5nczogdGFyZ2V0T3B0cy5vcmFjbGVTZXR0aW5ncyxcbiAgICAgICAgc3FsU2VydmVyU2V0dGluZ3M6IHRhcmdldE9wdHMuc3FsU2VydmVyU2V0dGluZ3MsXG4gICAgICAgIHNhcEFzZVNldHRpbmdzOiB0YXJnZXRPcHRzLnNhcEFzZVNldHRpbmdzLFxuICAgICAgICBkYjJTZXR0aW5nczogdGFyZ2V0T3B0cy5kYjJTZXR0aW5ncyxcbiAgICAgICAgbW9uZ29EYlNldHRpbmdzOiB0YXJnZXRPcHRzLm1vbmdvRGJTZXR0aW5ncyxcbiAgICAgICAgczNTZXR0aW5nczogdGFyZ2V0T3B0cy5zM1NldHRpbmdzLFxuICAgICAgICBkeW5hbW9EYlNldHRpbmdzOiB0YXJnZXRPcHRzLmR5bmFtb0RiU2V0dGluZ3MsXG4gICAgICAgIHJlZHNoaWZ0U2V0dGluZ3M6IHRhcmdldE9wdHMucmVkc2hpZnRTZXR0aW5ncyxcbiAgICAgICAga2luZXNpc1NldHRpbmdzOiB0YXJnZXRPcHRzLmtpbmVzaXNTZXR0aW5ncyxcbiAgICAgICAga2Fma2FTZXR0aW5nczogdGFyZ2V0T3B0cy5rYWZrYVNldHRpbmdzLFxuICAgICAgICBvcGVuU2VhcmNoU2V0dGluZ3M6IHRhcmdldE9wdHMub3BlblNlYXJjaFNldHRpbmdzLFxuICAgICAgICBuZXB0dW5lU2V0dGluZ3M6IHRhcmdldE9wdHMubmVwdHVuZVNldHRpbmdzLFxuICAgICAgICByZWRpc1NldHRpbmdzOiB0YXJnZXRPcHRzLnJlZGlzU2V0dGluZ3MsXG4gICAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFRhYmxlIG1hcHBpbmdzIOKAlCBkZWZhdWx0IHRvIFwiaW5jbHVkZSBldmVyeXRoaW5nXCJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IHRhYmxlTWFwcGluZ3NKc29uID1cbiAgICAgIHByb3BzLnRhYmxlTWFwcGluZ3MgPz8gbmV3IFRhYmxlTWFwcGluZ3MoKS5pbmNsdWRlU2NoZW1hKCclJykudG9Kc29uKCk7XG4gICAgLy8gQ2ZuUmVwbGljYXRpb25Db25maWcudGFibGVNYXBwaW5ncyBleHBlY3RzIGEgSlNPTiBvYmplY3QsIG5vdCBhIHN0cmluZy5cbiAgICBjb25zdCB0YWJsZU1hcHBpbmdzT2JqID0gSlNPTi5wYXJzZSh0YWJsZU1hcHBpbmdzSnNvbik7XG5cbiAgICBjb25zdCByZXBsaWNhdGlvblNldHRpbmdzT2JqID1cbiAgICAgIHByb3BzLnRhc2tTZXR0aW5ncyAhPT0gdW5kZWZpbmVkID8gSlNPTi5wYXJzZShwcm9wcy50YXNrU2V0dGluZ3MpIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBSZXBsaWNhdGlvbiBjb25maWcgaWRlbnRpZmllclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgY29uZmlnSWRlbnRpZmllciA9XG4gICAgICBwcm9wcy5yZXBsaWNhdGlvbkNvbmZpZ0lkZW50aWZpZXIgPz9cbiAgICAgIGNkay5OYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDYzIH0pLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIENmblJlcGxpY2F0aW9uQ29uZmlnXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICB0aGlzLmNmblJlcGxpY2F0aW9uQ29uZmlnID0gbmV3IGRtcy5DZm5SZXBsaWNhdGlvbkNvbmZpZyh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICByZXBsaWNhdGlvbkNvbmZpZ0lkZW50aWZpZXI6IGNvbmZpZ0lkZW50aWZpZXIsXG4gICAgICByZXBsaWNhdGlvblR5cGU6IHByb3BzLm1pZ3JhdGlvblR5cGUsXG4gICAgICBzb3VyY2VFbmRwb2ludEFybjogdGhpcy5zb3VyY2UuZW5kcG9pbnRBcm4sXG4gICAgICB0YXJnZXRFbmRwb2ludEFybjogdGhpcy50YXJnZXQuZW5kcG9pbnRBcm4sXG4gICAgICB0YWJsZU1hcHBpbmdzOiB0YWJsZU1hcHBpbmdzT2JqLFxuICAgICAgcmVwbGljYXRpb25TZXR0aW5nczogcmVwbGljYXRpb25TZXR0aW5nc09iaixcbiAgICAgIGNvbXB1dGVDb25maWc6IHtcbiAgICAgICAgbWF4Q2FwYWNpdHlVbml0czogcHJvcHMubWF4Q2FwYWNpdHlVbml0cyxcbiAgICAgICAgbWluQ2FwYWNpdHlVbml0czogcHJvcHMubWluQ2FwYWNpdHlVbml0cyxcbiAgICAgICAgbXVsdGlBejogcHJvcHMubXVsdGlBeiA/PyBmYWxzZSxcbiAgICAgICAga21zS2V5SWQ6IHRoaXMuZW5jcnlwdGlvbktleS5rZXlBcm4sXG4gICAgICAgIHJlcGxpY2F0aW9uU3VibmV0R3JvdXBJZDogdGhpcy5zdWJuZXRHcm91cC5yZWYsXG4gICAgICAgIHZwY1NlY3VyaXR5R3JvdXBJZHM6IHNlY3VyaXR5R3JvdXBJZHMsXG4gICAgICAgIHByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93OiBwcm9wcy5wcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5jZm5SZXBsaWNhdGlvbkNvbmZpZy5hcHBseVJlbW92YWxQb2xpY3kocmVtb3ZhbFBvbGljeSk7XG5cbiAgICAvLyBkbXMtdnBjLXJvbGUgbXVzdCBleGlzdCBiZWZvcmUgRE1TIGNhbiBkZXNjcmliZSBWUEMgc3VibmV0cyAoc3VibmV0IGdyb3VwKVxuICAgIC8vIG9yIHBsYWNlIHRoZSByZXBsaWNhdGlvbiBjb25maWcgaW5zaWRlIGEgVlBDLlxuICAgIGlmICh0aGlzLmRtc1ZwY1JvbGUpIHtcbiAgICAgIHRoaXMuc3VibmV0R3JvdXAubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMuZG1zVnBjUm9sZSk7XG4gICAgICB0aGlzLmNmblJlcGxpY2F0aW9uQ29uZmlnLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLmRtc1ZwY1JvbGUpO1xuICAgIH1cblxuICAgIHRoaXMucmVwbGljYXRpb25Db25maWdBcm4gPSB0aGlzLmNmblJlcGxpY2F0aW9uQ29uZmlnLnJlZjtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBQcml2YXRlIGhlbHBlcnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVByb3BzKHByb3BzOiBEbXNTZXJ2ZXJsZXNzUGlwZWxpbmVQcm9wcyk6IHZvaWQge1xuICAgIGlmICghVkFMSURfQ0FQQUNJVFlfVU5JVFMuaGFzKHByb3BzLm1heENhcGFjaXR5VW5pdHMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBtYXhDYXBhY2l0eVVuaXRzIG11c3QgYmUgb25lIG9mICR7Wy4uLlZBTElEX0NBUEFDSVRZX1VOSVRTXS5qb2luKCcsICcpfS4gR290OiAke3Byb3BzLm1heENhcGFjaXR5VW5pdHN9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHByb3BzLm1pbkNhcGFjaXR5VW5pdHMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgIVZBTElEX0NBUEFDSVRZX1VOSVRTLmhhcyhwcm9wcy5taW5DYXBhY2l0eVVuaXRzKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgbWluQ2FwYWNpdHlVbml0cyBtdXN0IGJlIG9uZSBvZiAke1suLi5WQUxJRF9DQVBBQ0lUWV9VTklUU10uam9pbignLCAnKX0uIEdvdDogJHtwcm9wcy5taW5DYXBhY2l0eVVuaXRzfWAsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBwcm9wcy5taW5DYXBhY2l0eVVuaXRzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHByb3BzLm1pbkNhcGFjaXR5VW5pdHMgPiBwcm9wcy5tYXhDYXBhY2l0eVVuaXRzXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBtaW5DYXBhY2l0eVVuaXRzICgke3Byb3BzLm1pbkNhcGFjaXR5VW5pdHN9KSBtdXN0IGJlIDw9IG1heENhcGFjaXR5VW5pdHMgKCR7cHJvcHMubWF4Q2FwYWNpdHlVbml0c30pLmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc1NvdXJjZSA9ICEhcHJvcHMuc291cmNlRW5kcG9pbnQ7XG4gICAgY29uc3QgaGFzRXhpc3RpbmdTb3VyY2UgPSAhIXByb3BzLmV4aXN0aW5nU291cmNlRW5kcG9pbnQ7XG4gICAgaWYgKGhhc1NvdXJjZSAmJiBoYXNFeGlzdGluZ1NvdXJjZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm92aWRlIGVpdGhlciBgc291cmNlRW5kcG9pbnRgIG9yIGBleGlzdGluZ1NvdXJjZUVuZHBvaW50YCwgbm90IGJvdGguJyk7XG4gICAgfVxuICAgIGlmICghaGFzU291cmNlICYmICFoYXNFeGlzdGluZ1NvdXJjZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmUgb2YgYHNvdXJjZUVuZHBvaW50YCBvciBgZXhpc3RpbmdTb3VyY2VFbmRwb2ludGAgaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzVGFyZ2V0ID0gISFwcm9wcy50YXJnZXRFbmRwb2ludDtcbiAgICBjb25zdCBoYXNFeGlzdGluZ1RhcmdldCA9ICEhcHJvcHMuZXhpc3RpbmdUYXJnZXRFbmRwb2ludDtcbiAgICBpZiAoaGFzVGFyZ2V0ICYmIGhhc0V4aXN0aW5nVGFyZ2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Byb3ZpZGUgZWl0aGVyIGB0YXJnZXRFbmRwb2ludGAgb3IgYGV4aXN0aW5nVGFyZ2V0RW5kcG9pbnRgLCBub3QgYm90aC4nKTtcbiAgICB9XG4gICAgaWYgKCFoYXNUYXJnZXQgJiYgIWhhc0V4aXN0aW5nVGFyZ2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ09uZSBvZiBgdGFyZ2V0RW5kcG9pbnRgIG9yIGBleGlzdGluZ1RhcmdldEVuZHBvaW50YCBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -280,5 +280,5 @@ class TableMappings {
280
280
  }
281
281
  exports.TableMappings = TableMappings;
282
282
  _a = JSII_RTTI_SYMBOL_1;
283
- TableMappings[_a] = { fqn: "cdk-dms-replication.TableMappings", version: "0.0.16" };
283
+ TableMappings[_a] = { fqn: "cdk-dms-replication.TableMappings", version: "0.1.1" };
284
284
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbWFwcGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGFibGUtbWFwcGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7O0dBTUc7QUFFSCw4RUFBOEU7QUFDOUUsUUFBUTtBQUNSLDhFQUE4RTtBQUU5RSxvREFBb0Q7QUFDcEQsSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3pCLHNDQUFtQixDQUFBO0lBQ25CLHNDQUFtQixDQUFBO0lBQ25CLHdDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxlQUFlLCtCQUFmLGVBQWUsUUFJMUI7QUFFRCwwQ0FBMEM7QUFDMUMsSUFBWSxvQkFxQlg7QUFyQkQsV0FBWSxvQkFBb0I7SUFDOUIscUNBQXFDO0lBQ3JDLCtEQUF1QyxDQUFBO0lBQ3ZDLHFDQUFxQztJQUNyQywrREFBdUMsQ0FBQTtJQUN2QyxnQ0FBZ0M7SUFDaEMsaURBQXlCLENBQUE7SUFDekIscUNBQXFDO0lBQ3JDLHVEQUErQixDQUFBO0lBQy9CLGdDQUFnQztJQUNoQyxpREFBeUIsQ0FBQTtJQUN6QixxQ0FBcUM7SUFDckMsdURBQStCLENBQUE7SUFDL0IseUJBQXlCO0lBQ3pCLHlDQUFpQixDQUFBO0lBQ2pCLHlCQUF5QjtJQUN6Qix1REFBK0IsQ0FBQTtJQUMvQixvQkFBb0I7SUFDcEIsaURBQXlCLENBQUE7SUFDekIsMEJBQTBCO0lBQzFCLHlEQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFyQlcsb0JBQW9CLG9DQUFwQixvQkFBb0IsUUFxQi9CO0FBRUQsc0NBQXNDO0FBQ3RDLElBQVksaUJBTVg7QUFORCxXQUFZLGlCQUFpQjtJQUMzQixzQ0FBaUIsQ0FBQTtJQUNqQixvQ0FBZSxDQUFBO0lBQ2Ysc0NBQWlCLENBQUE7SUFDakIsMERBQXFDLENBQUE7SUFDckMsMERBQXFDLENBQUE7QUFDdkMsQ0FBQyxFQU5XLGlCQUFpQixpQ0FBakIsaUJBQWlCLFFBTTVCO0FBRUQsbUNBQW1D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LFNBQVM7U0FDeEIsQ0FBQztRQUNGLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdCLGFBQWEsQ0FBQyxhQUFhLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDNUMsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUE0QjtZQUNwQyxXQUFXLEVBQUUsZ0JBQWdCO1lBQzdCLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JCLFdBQVcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNwQixhQUFhLEVBQUUsVUFBVTtZQUN6QixnQkFBZ0IsRUFBRSxhQUFhO1lBQy9CLGFBQWEsRUFBRSxNQUFNO1NBQ3RCLENBQUM7UUFDRixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsNEVBQTRFO0lBQzVFLFNBQVM7SUFDVCw0RUFBNEU7SUFFNUU7Ozs7T0FJRztJQUNILE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDOztBQTFWSCxzQ0EyVkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRhYmxlIG1hcHBpbmdzIGRlZmluZSB3aGljaCBzY2hlbWFzL3RhYmxlcyBETVMgbWlncmF0ZXMgYW5kIGhvdyB0aGV5IGFyZVxuICogdHJhbnNmb3JtZWQuIFRoaXMgYnVpbGRlciBwcm9kdWNlcyB0aGUgSlNPTiBzdHJpbmcgdGhhdCBETVMgZXhwZWN0cyBmb3JcbiAqIHRoZSBgdGFibGVNYXBwaW5nc2AgcHJvcGVydHkgb2YgYSByZXBsaWNhdGlvbiB0YXNrLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Rtcy9sYXRlc3QvdXNlcmd1aWRlL0NIQVBfVGFza3MuQ3VzdG9taXppbmdUYXNrcy5UYWJsZU1hcHBpbmcuaHRtbFxuICovXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRW51bXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogV2hldGhlciB0aGUgcnVsZSBzZWxlY3RzIG9yIGV4Y2x1ZGVzIG9iamVjdHMuICovXG5leHBvcnQgZW51bSBTZWxlY3Rpb25BY3Rpb24ge1xuICBJTkNMVURFID0gJ2luY2x1ZGUnLFxuICBFWENMVURFID0gJ2V4Y2x1ZGUnLFxuICBFWFBMSUNJVCA9ICdleHBsaWNpdCcsXG59XG5cbi8qKiBUYWJsZS1sZXZlbCB0cmFuc2Zvcm1hdGlvbiBhY3Rpb25zLiAqL1xuZXhwb3J0IGVudW0gVHJhbnNmb3JtYXRpb25BY3Rpb24ge1xuICAvKiogQ29udmVydCB0aGUgbmFtZSB0byBsb3dlcmNhc2UuICovXG4gIENPTlZFUlRfTE9XRVJDQVNFID0gJ2NvbnZlcnQtbG93ZXJjYXNlJyxcbiAgLyoqIENvbnZlcnQgdGhlIG5hbWUgdG8gdXBwZXJjYXNlLiAqL1xuICBDT05WRVJUX1VQUEVSQ0FTRSA9ICdjb252ZXJ0LXVwcGVyY2FzZScsXG4gIC8qKiBBZGQgYSBwcmVmaXggdG8gdGhlIG5hbWUuICovXG4gIEFERF9QUkVGSVggPSAnYWRkLXByZWZpeCcsXG4gIC8qKiBSZW1vdmUgYSBwcmVmaXggZnJvbSB0aGUgbmFtZS4gKi9cbiAgUkVNT1ZFX1BSRUZJWCA9ICdyZW1vdmUtcHJlZml4JyxcbiAgLyoqIEFkZCBhIHN1ZmZpeCB0byB0aGUgbmFtZS4gKi9cbiAgQUREX1NVRkZJWCA9ICdhZGQtc3VmZml4JyxcbiAgLyoqIFJlbW92ZSBhIHN1ZmZpeCBmcm9tIHRoZSBuYW1lLiAqL1xuICBSRU1PVkVfU1VGRklYID0gJ3JlbW92ZS1zdWZmaXgnLFxuICAvKiogUmVuYW1lIHRoZSBvYmplY3QuICovXG4gIFJFTkFNRSA9ICdyZW5hbWUnLFxuICAvKiogUmVtb3ZlIHRoZSBjb2x1bW4uICovXG4gIFJFTU9WRV9DT0xVTU4gPSAncmVtb3ZlLWNvbHVtbicsXG4gIC8qKiBBZGQgYSBjb2x1bW4uICovXG4gIEFERF9DT0xVTU4gPSAnYWRkLWNvbHVtbicsXG4gIC8qKiBJbmNsdWRlIHRoZSBjb2x1bW4uICovXG4gIElOQ0xVREVfQ09MVU1OID0gJ2luY2x1ZGUtY29sdW1uJyxcbn1cblxuLyoqIFRoZSBvYmplY3QgdHlwZSBhIHJ1bGUgdGFyZ2V0cy4gKi9cbmV4cG9ydCBlbnVtIFJ1bGVPYmplY3RMb2NhdG9yIHtcbiAgU0NIRU1BID0gJ3NjaGVtYScsXG4gIFRBQkxFID0gJ3RhYmxlJyxcbiAgQ09MVU1OID0gJ2NvbHVtbicsXG4gIFRBQkxFX1RBQkxFU1BBQ0UgPSAndGFibGUtdGFibGVzcGFjZScsXG4gIElOREVYX1RBQkxFU1BBQ0UgPSAnaW5kZXgtdGFibGVzcGFjZScsXG59XG5cbi8qKiBEYXRhIHR5cGUgZm9yIGFkZGVkIGNvbHVtbnMuICovXG5leHBvcnQgZW51bSBDb2x1bW5EYXRhVHlwZSB7XG4gIFNUUklORyA9ICdzdHJpbmcnLFxuICBJTlQ0ID0gJ2ludDQnLFxuICBJTlQ4ID0gJ2ludDgnLFxuICBGTE9BVDQgPSAnZmxvYXQ0JyxcbiAgRkxPQVQ4ID0gJ2Zsb2F0OCcsXG4gIE5VTUVSSUMgPSAnbnVtZXJpYycsXG4gIERBVEVUSU1FID0gJ2RhdGV0aW1lJyxcbiAgQllURVMgPSAnYnl0ZXMnLFxuICBCTE9CID0gJ2Jsb2InLFxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEludGVyZmFjZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogQSBjb2x1bW4gYWRkZWQgdmlhIGFuIEFERF9DT0xVTU4gdHJhbnNmb3JtYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIEFkZENvbHVtbkRlZmluaXRpb24ge1xuICAvKiogTmFtZSBvZiB0aGUgbmV3IGNvbHVtbi4gKi9cbiAgcmVhZG9ubHkgY29sdW1uTmFtZTogc3RyaW5nO1xuICAvKiogRGF0YSB0eXBlIG9mIHRoZSBuZXcgY29sdW1uLiAqL1xuICByZWFkb25seSBjb2x1bW5UeXBlOiBDb2x1bW5EYXRhVHlwZTtcbiAgLyoqIENoYXJhY3RlciBsZW5ndGggZm9yIHN0cmluZyBjb2x1bW5zLiAqL1xuICByZWFkb25seSBjb2x1bW5MZW5ndGg/OiBudW1iZXI7XG4gIC8qKiBQcmVjaXNpb24gZm9yIG51bWVyaWMgY29sdW1ucy4gKi9cbiAgcmVhZG9ubHkgY29sdW1uUHJlY2lzaW9uPzogbnVtYmVyO1xuICAvKiogU2NhbGUgZm9yIG51bWVyaWMgY29sdW1ucy4gKi9cbiAgcmVhZG9ubHkgY29sdW1uU2NhbGU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBDb25zdGFudCBzdHJpbmcgdmFsdWUgdG8gcG9wdWxhdGUgdGhlIGNvbHVtbiB3aXRoLiBFbWl0dGVkIGFzIGFcbiAgICogc2luZ2xlLXF1b3RlZCBETVMgZXhwcmVzc2lvbiBsaXRlcmFsIOKAlCB1c2Ugb25seSBmb3Igc3RyaW5nIGNvbHVtbiB0eXBlcy5cbiAgICogRm9yIG51bWVyaWMgb3IgZGF0ZXRpbWUgdHlwZXMsIHVzZSBgZXhwcmVzc2lvbmAgd2l0aCBhbiB1bnF1b3RlZCBsaXRlcmFsXG4gICAqIChlLmcuIGBleHByZXNzaW9uOiAnNDInYCkuXG4gICAqIEV4YWN0bHkgb25lIG9mIGBjb2x1bW5WYWx1ZWAgb3IgYGV4cHJlc3Npb25gIG11c3QgYmUgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29sdW1uVmFsdWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBETVMgZXhwcmVzc2lvbiB0byBwb3B1bGF0ZSB0aGUgY29sdW1uIChlLmcuIGAkdGltZXN0YW1wYCxcbiAgICogYCdFTlRJVFkjJyB8fCAkaWRgLCBvciBhbiB1bnF1b3RlZCBudW1lcmljIGxpdGVyYWwgbGlrZSBgNDJgKS5cbiAgICogRXhhY3RseSBvbmUgb2YgYGNvbHVtblZhbHVlYCBvciBgZXhwcmVzc2lvbmAgbXVzdCBiZSBzZXQuXG4gICAqL1xuICByZWFkb25seSBleHByZXNzaW9uPzogc3RyaW5nO1xufVxuXG4vKiogT2JqZWN0IGxvY2F0b3IgaWRlbnRpZnlpbmcgdGhlIHNjaGVtYSwgdGFibGUsIGFuZCBvcHRpb25hbCBjb2x1bW4gYSBydWxlIHRhcmdldHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVPYmplY3RMb2NhdG9yVmFsdWUge1xuICByZWFkb25seSBzY2hlbWFOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhYmxlTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgY29sdW1uTmFtZT86IHN0cmluZztcbn1cblxuLyoqIFJlcHJlc2VudHMgYSBzaW5nbGUsIGZ1bGx5IGJ1aWx0IHJ1bGUgaW4gdGhlIHRhYmxlLW1hcHBpbmdzIEpTT04uICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlTWFwcGluZ1J1bGUge1xuICByZWFkb25seSBydWxlVHlwZTogc3RyaW5nO1xuICByZWFkb25seSBydWxlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcnVsZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgb2JqZWN0TG9jYXRvcjogUnVsZU9iamVjdExvY2F0b3JWYWx1ZTtcbiAgcmVhZG9ubHkgcnVsZUFjdGlvbjogc3RyaW5nO1xuICByZWFkb25seSB2YWx1ZT86IHN0cmluZztcbiAgcmVhZG9ubHkgb2xkVmFsdWU/OiBzdHJpbmc7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQnVpbGRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogRmx1ZW50IGJ1aWxkZXIgZm9yIERNUyB0YWJsZSBtYXBwaW5ncy5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgbWFwcGluZ3MgPSBuZXcgVGFibGVNYXBwaW5ncygpXG4gKiAgIC5pbmNsdWRlU2NoZW1hKCdwdWJsaWMnKVxuICogICAuaW5jbHVkZVRhYmxlKCdwdWJsaWMnLCAnb3JkZXJzJylcbiAqICAgLmV4Y2x1ZGVUYWJsZSgncHVibGljJywgJ2F1ZGl0X2xvZycpXG4gKiAgIC5yZW5hbWVTY2hlbWEoJ3B1YmxpYycsICdwcm9kJylcbiAqICAgLnRvTG93ZXJDYXNlVGFibGUoJ3B1YmxpYycsICclJylcbiAqICAgLnRvSnNvbigpO1xuICovXG5leHBvcnQgY2xhc3MgVGFibGVNYXBwaW5ncyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcnVsZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gPSBbXTtcbiAgcHJpdmF0ZSBuZXh0SWQ6IG51bWJlciA9IDE7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBTZWxlY3Rpb24gcnVsZXNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIGFsbCB0YWJsZXMgaW4gYSBzY2hlbWEuXG4gICAqIFVzZSBgJWAgYXMgYSB3aWxkY2FyZCBmb3IgYHNjaGVtYU5hbWVgIHRvIGluY2x1ZGUgYWxsIHNjaGVtYXMuXG4gICAqL1xuICBpbmNsdWRlU2NoZW1hKHNjaGVtYU5hbWU6IHN0cmluZyk6IFRhYmxlTWFwcGluZ3Mge1xuICAgIHJldHVybiB0aGlzLmFkZFNlbGVjdGlvblJ1bGUoc2NoZW1hTmFtZSwgJyUnLCBTZWxlY3Rpb25BY3Rpb24uSU5DTFVERSk7XG4gIH1cblxuICAvKiogRXhjbHVkZSBhbGwgdGFibGVzIGluIGEgc2NoZW1hLiAqL1xuICBleGNsdWRlU2NoZW1hKHNjaGVtYU5hbWU6IHN0cmluZyk6IFRhYmxlTWFwcGluZ3Mge1xuICAgIHJldHVybiB0aGlzLmFkZFNlbGVjdGlvblJ1bGUoc2NoZW1hTmFtZSwgJyUnLCBTZWxlY3Rpb25BY3Rpb24uRVhDTFVERSk7XG4gIH1cblxuICAvKipcbiAgICogSW5jbHVkZSBhIHNwZWNpZmljIHRhYmxlIChvciBhIHdpbGRjYXJkIHBhdHRlcm4pIHdpdGhpbiBhIHNjaGVtYS5cbiAgICogVXNlIGAlYCBmb3IgYHRhYmxlTmFtZWAgdG8gbWF0Y2ggYWxsIHRhYmxlcyBpbiB0aGUgc2NoZW1hLlxuICAgKi9cbiAgaW5jbHVkZVRhYmxlKHNjaGVtYU5hbWU6IHN0cmluZywgdGFibGVOYW1lOiBzdHJpbmcpOiBUYWJsZU1hcHBpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRTZWxlY3Rpb25SdWxlKHNjaGVtYU5hbWUsIHRhYmxlTmFtZSwgU2VsZWN0aW9uQWN0aW9uLklOQ0xVREUpO1xuICB9XG5cbiAgLyoqIEV4Y2x1ZGUgYSBzcGVjaWZpYyB0YWJsZSAob3Igd2lsZGNhcmQpIHdpdGhpbiBhIHNjaGVtYS4gKi9cbiAgZXhjbHVkZVRhYmxlKHNjaGVtYU5hbWU6IHN0cmluZywgdGFibGVOYW1lOiBzdHJpbmcpOiBUYWJsZU1hcHBpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRTZWxlY3Rpb25SdWxlKHNjaGVtYU5hbWUsIHRhYmxlTmFtZSwgU2VsZWN0aW9uQWN0aW9uLkVYQ0xVREUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cGxpY2l0bHkgaW5jbHVkZSBhIHNpbmdsZSB0YWJsZS4gVW5saWtlIGBpbmNsdWRlYCwgYGV4cGxpY2l0YCBtZWFucyBETVNcbiAgICogb25seSBtaWdyYXRlcyB0aGlzIG9uZSB0YWJsZSByZWdhcmRsZXNzIG9mIG90aGVyIGBpbmNsdWRlYCBydWxlcy5cbiAgICovXG4gIGV4cGxpY2l0VGFibGUoc2NoZW1hTmFtZTogc3RyaW5nLCB0YWJsZU5hbWU6IHN0cmluZyk6IFRhYmxlTWFwcGluZ3Mge1xuICAgIHJldHVybiB0aGlzLmFkZFNlbGVjdGlvblJ1bGUoc2NoZW1hTmFtZSwgdGFibGVOYW1lLCBTZWxlY3Rpb25BY3Rpb24uRVhQTElDSVQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRTZWxlY3Rpb25SdWxlKFxuICAgIHNjaGVtYU5hbWU6IHN0cmluZyxcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBhY3Rpb246IFNlbGVjdGlvbkFjdGlvbixcbiAgKTogVGFibGVNYXBwaW5ncyB7XG4gICAgY29uc3QgaWQgPSB0aGlzLm5leHRJZCsrO1xuICAgIHRoaXMucnVsZXMucHVzaCh7XG4gICAgICAncnVsZS10eXBlJzogJ3NlbGVjdGlvbicsXG4gICAgICAncnVsZS1pZCc6IFN0cmluZyhpZCksXG4gICAgICAncnVsZS1uYW1lJzogYCR7aWR9YCxcbiAgICAgICdvYmplY3QtbG9jYXRvcic6IHtcbiAgICAgICAgJ3NjaGVtYS1uYW1lJzogc2NoZW1hTmFtZSxcbiAgICAgICAgJ3RhYmxlLW5hbWUnOiB0YWJsZU5hbWUsXG4gICAgICB9LFxuICAgICAgJ3J1bGUtYWN0aW9uJzogYWN0aW9uLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBUcmFuc2Zvcm1hdGlvbiBydWxlcyDigJQgc2NoZW1hXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKiogUmVuYW1lIGEgc2NoZW1hLiAqL1xuICByZW5hbWVTY2hlbWEoc2NoZW1hTmFtZTogc3RyaW5nLCBuZXdOYW1lOiBzdHJpbmcpOiBUYWJsZU1hcHBpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRUcmFuc2Zvcm1hdGlvblJ1bGUoXG4gICAgICBzY2hlbWFOYW1lLFxuICAgICAgJyUnLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgUnVsZU9iamVjdExvY2F0b3IuU0NIRU1BLFxuICAgICAgVHJhbnNmb3JtYXRpb25BY3Rpb24uUkVOQU1FLFxuICAgICAgbmV3TmFtZSxcbiAgICApO1xuICB9XG5cbiAgLyoqIENvbnZlcnQgYWxsIHNjaGVtYSBuYW1lcyB0byBsb3dlcmNhc2UuICovXG4gIHRvTG93ZXJDYXNlU2NoZW1hKHNjaGVtYU5hbWU6IHN0cmluZyk6IFRhYmxlTWFwcGluZ3Mge1xuICAgIHJldHVybiB0aGlzLmFkZFRyYW5zZm9ybWF0aW9uUnVsZShcbiAgICAgIHNjaGVtYU5hbWUsXG4gICAgICAnJScsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBSdWxlT2JqZWN0TG9jYXRvci5TQ0hFTUEsXG4gICAgICBUcmFuc2Zvcm1hdGlvbkFjdGlvbi5DT05WRVJUX0xPV0VSQ0FTRSxcbiAgICApO1xuICB9XG5cbiAgLyoqIENvbnZlcnQgYWxsIHNjaGVtYSBuYW1lcyB0byB1cHBlcmNhc2UuICovXG4gIHRvVXBwZXJDYXNlU2NoZW1hKHNjaGVtYU5hbWU6IHN0cmluZyk6IFRhYmxlTWFwcGluZ3Mge1xuICAgIHJldHVybiB0aGlzLmFkZFRyYW5zZm9ybWF0aW9uUnVsZShcbiAgICAgIHNjaGVtYU5hbWUsXG4gICAgICAnJScsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBSdWxlT2JqZWN0TG9jYXRvci5TQ0hFTUEsXG4gICAgICBUcmFuc2Zvcm1hdGlvbkFjdGlvbi5DT05WRVJUX1VQUEVSQ0FTRSxcbiAgICApO1xuICB9XG5cbiAgLyoqIEFkZCBhIHByZWZpeCB0byBzY2hlbWEgbmFtZXMuICovXG4gIGFkZFByZWZpeFRvU2NoZW1hKHNjaGVtYU5hbWU6IHN0cmluZywgcHJlZml4OiBzdHJpbmcpOiBUYWJsZU1hcHBpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRUcmFuc2Zvcm1hdGlvblJ1bGUoXG4gICAgICBzY2hlbWFOYW1lLFxuICAgICAgJyUnLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgUnVsZU9iamVjdExvY2F0b3IuU0NIRU1BLFxuICAgICAgVHJhbnNmb3JtYXRpb25BY3Rpb24uQUREX1BSRUZJWCxcbiAgICAgIHByZWZpeCxcbiAgICApO1xuICB9XG5cbiAgLyoqIEFkZCBhIHN1ZmZpeCB0byBzY2hlbWEgbmFtZXMuICovXG4gIGFkZFN1ZmZpeFRvU2NoZW1hKHNjaGVtYU5hbWU6IHN0cmluZywgc3VmZml4OiBzdHJpbmcpOiBUYWJsZU1hcHBpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRUcmFuc2Zvcm1hdGlvblJ1bGUoXG4gICAgICBzY2hlbWFOYW1lLFxuICAgICAgJyUnLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgUnVsZU9iamVjdExvY2F0b3IuU0NIRU1BLFxuICAgICAgVHJhbnNmb3JtYXRpb25BY3Rpb24uQUREX1NVRkZJWCxcbiAgICAgIHN1ZmZpeCxcbiAgICApO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBUcmFuc2Zvcm1hdGlvbiBydWxlcyDigJQgdGFibGVcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKiBSZW5hbWUgYSB0YWJsZS4gKi9cbiAgcmVuYW1lVGFibGUoc2NoZW1hTmFtZTogc3RyaW5nLCB0YWJsZU5hbWU6IHN0cmluZywgbmV3TmFtZTogc3RyaW5nKTogVGFibGVNYXBwaW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkVHJhbnNmb3JtYXRpb25SdWxlKFxuICAgICAgc2NoZW1hTmFtZSxcbiAgICAgIHRhYmxlTmFtZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIFJ1bGVPYmplY3RMb2NhdG9yLlRBQkxFLFxuICAgICAgVHJhbnNmb3JtYXRpb25BY3Rpb24uUkVOQU1FLFxuICAgICAgbmV3TmFtZSxcbiAgICApO1xuICB9XG5cbiAgLyoqIENvbnZlcnQgbWF0Y2hpbmcgdGFibGUgbmFtZXMgdG8gbG93ZXJjYXNlLiBVc2UgYCVgIHRvIG1hdGNoIGFsbCB0YWJsZXMuICovXG4gIHRvTG93ZXJDYXNlVGFibGUoc2NoZW1hTmFtZTogc3RyaW5nLCB0YWJsZU5hbWU6IHN0cmluZyk6IFRhYmxlTWFwcGluZ3Mge1xuICAgIHJldHVybiB0aGlzLmFkZFRyYW5zZm9ybWF0aW9uUnVsZShcbiAgICAgIHNjaGVtYU5hbWUsXG4gICAgICB0YWJsZU5hbWUsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBSdWxlT2JqZWN0TG9jYXRvci5UQUJMRSxcbiAgICAgIFRyYW5zZm9ybWF0aW9uQWN0aW9uLkNPTlZFUlRfTE9XRVJDQVNFLFxuICAgICk7XG4gIH1cblxuICAvKiogQ29udmVydCBtYXRjaGluZyB0YWJsZSBuYW1lcyB0byB1cHBlcmNhc2UuICovXG4gIHRvVXBwZXJDYXNlVGFibGUoc2NoZW1hTmFtZTogc3RyaW5nLCB0YWJsZU5hbWU6IHN0cmluZyk6IFRhYmxlTWFwcGluZ3Mge1xuICAgIHJldHVybiB0aGlzLmFkZFRyYW5zZm9ybWF0aW9uUnVsZShcbiAgICAgIHNjaGVtYU5hbWUsXG4gICAgICB0YWJsZU5hbWUsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBSdWxlT2JqZWN0TG9jYXRvci5UQUJMRSxcbiAgICAgIFRyYW5zZm9ybWF0aW9uQWN0aW9uLkNPTlZFUlRfVVBQRVJDQVNFLFxuICAgICk7XG4gIH1cblxuICAvKiogQWRkIGEgcHJlZml4IHRvIHRhYmxlIG5hbWVzLiAqL1xuICBhZGRQcmVmaXhUb1RhYmxlKHNjaGVtYU5hbWU6IHN0cmluZywgdGFibGVOYW1lOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKTogVGFibGVNYXBwaW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkVHJhbnNmb3JtYXRpb25SdWxlKFxuICAgICAgc2NoZW1hTmFtZSxcbiAgICAgIHRhYmxlTmFtZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIFJ1bGVPYmplY3RMb2NhdG9yLlRBQkxFLFxuICAgICAgVHJhbnNmb3JtYXRpb25BY3Rpb24uQUREX1BSRUZJWCxcbiAgICAgIHByZWZpeCxcbiAgICApO1xuICB9XG5cbiAgLyoqIEFkZCBhIHN1ZmZpeCB0byB0YWJsZSBuYW1lcy4gKi9cbiAgYWRkU3VmZml4VG9UYWJsZShzY2hlbWFOYW1lOiBzdHJpbmcsIHRhYmxlTmFtZTogc3RyaW5nLCBzdWZmaXg6IHN0cmluZyk6IFRhYmxlTWFwcGluZ3Mge1xuICAgIHJldHVybiB0aGlzLmFkZFRyYW5zZm9ybWF0aW9uUnVsZShcbiAgICAgIHNjaGVtYU5hbWUsXG4gICAgICB0YWJsZU5hbWUsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBSdWxlT2JqZWN0TG9jYXRvci5UQUJMRSxcbiAgICAgIFRyYW5zZm9ybWF0aW9uQWN0aW9uLkFERF9TVUZGSVgsXG4gICAgICBzdWZmaXgsXG4gICAgKTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gVHJhbnNmb3JtYXRpb24gcnVsZXMg4oCUIGNvbHVtblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqIFJlbmFtZSBhIGNvbHVtbiBpbiBhIHRhYmxlLiAqL1xuICByZW5hbWVDb2x1bW4oXG4gICAgc2NoZW1hTmFtZTogc3RyaW5nLFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGNvbHVtbk5hbWU6IHN0cmluZyxcbiAgICBuZXdOYW1lOiBzdHJpbmcsXG4gICk6IFRhYmxlTWFwcGluZ3Mge1xuICAgIHJldHVybiB0aGlzLmFkZFRyYW5zZm9ybWF0aW9uUnVsZShcbiAgICAgIHNjaGVtYU5hbWUsXG4gICAgICB0YWJsZU5hbWUsXG4gICAgICBjb2x1bW5OYW1lLFxuICAgICAgUnVsZU9iamVjdExvY2F0b3IuQ09MVU1OLFxuICAgICAgVHJhbnNmb3JtYXRpb25BY3Rpb24uUkVOQU1FLFxuICAgICAgbmV3TmFtZSxcbiAgICApO1xuICB9XG5cbiAgLyoqIENvbnZlcnQgbWF0Y2hpbmcgY29sdW1uIG5hbWVzIHRvIGxvd2VyY2FzZS4gKi9cbiAgdG9Mb3dlckNhc2VDb2x1bW4oXG4gICAgc2NoZW1hTmFtZTogc3RyaW5nLFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGNvbHVtbk5hbWU6IHN0cmluZyxcbiAgKTogVGFibGVNYXBwaW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkVHJhbnNmb3JtYXRpb25SdWxlKFxuICAgICAgc2NoZW1hTmFtZSxcbiAgICAgIHRhYmxlTmFtZSxcbiAgICAgIGNvbHVtbk5hbWUsXG4gICAgICBSdWxlT2JqZWN0TG9jYXRvci5DT0xVTU4sXG4gICAgICBUcmFuc2Zvcm1hdGlvbkFjdGlvbi5DT05WRVJUX0xPV0VSQ0FTRSxcbiAgICApO1xuICB9XG5cbiAgLyoqIENvbnZlcnQgbWF0Y2hpbmcgY29sdW1uIG5hbWVzIHRvIHVwcGVyY2FzZS4gKi9cbiAgdG9VcHBlckNhc2VDb2x1bW4oXG4gICAgc2NoZW1hTmFtZTogc3RyaW5nLFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGNvbHVtbk5hbWU6IHN0cmluZyxcbiAgKTogVGFibGVNYXBwaW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkVHJhbnNmb3JtYXRpb25SdWxlKFxuICAgICAgc2NoZW1hTmFtZSxcbiAgICAgIHRhYmxlTmFtZSxcbiAgICAgIGNvbHVtbk5hbWUsXG4gICAgICBSdWxlT2JqZWN0TG9jYXRvci5DT0xVTU4sXG4gICAgICBUcmFuc2Zvcm1hdGlvbkFjdGlvbi5DT05WRVJUX1VQUEVSQ0FTRSxcbiAgICApO1xuICB9XG5cbiAgLyoqIFJlbW92ZSBhIGNvbHVtbiBmcm9tIGEgdGFibGUuICovXG4gIHJlbW92ZUNvbHVtbihcbiAgICBzY2hlbWFOYW1lOiBzdHJpbmcsXG4gICAgdGFibGVOYW1lOiBzdHJpbmcsXG4gICAgY29sdW1uTmFtZTogc3RyaW5nLFxuICApOiBUYWJsZU1hcHBpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5hZGRUcmFuc2Zvcm1hdGlvblJ1bGUoXG4gICAgICBzY2hlbWFOYW1lLFxuICAgICAgdGFibGVOYW1lLFxuICAgICAgY29sdW1uTmFtZSxcbiAgICAgIFJ1bGVPYmplY3RMb2NhdG9yLkNPTFVNTixcbiAgICAgIFRyYW5zZm9ybWF0aW9uQWN0aW9uLlJFTU9WRV9DT0xVTU4sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgY29sdW1uIHRvIGEgdGFibGUuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIG1hcHBpbmdzLmFkZENvbHVtbigncHVibGljJywgJ29yZGVycycsIHtcbiAgICogICBjb2x1bW5OYW1lOiAnbWlncmF0aW9uX3RzJyxcbiAgICogICBjb2x1bW5UeXBlOiBDb2x1bW5EYXRhVHlwZS5EQVRFVElNRSxcbiAgICogICBleHByZXNzaW9uOiAnJHRpbWVzdGFtcCcsXG4gICAqIH0pO1xuICAgKi9cbiAgYWRkQ29sdW1uKFxuICAgIHNjaGVtYU5hbWU6IHN0cmluZyxcbiAgICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgICBjb2x1bW46IEFkZENvbHVtbkRlZmluaXRpb24sXG4gICk6IFRhYmxlTWFwcGluZ3Mge1xuICAgIGNvbnN0IGlkID0gdGhpcy5uZXh0SWQrKztcbiAgICBjb25zdCBvYmplY3RMb2NhdG9yOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgJ3NjaGVtYS1uYW1lJzogc2NoZW1hTmFtZSxcbiAgICAgICd0YWJsZS1uYW1lJzogdGFibGVOYW1lLFxuICAgIH07XG5cbiAgICBjb25zdCBydWxlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgICdydWxlLXR5cGUnOiAndHJhbnNmb3JtYXRpb24nLFxuICAgICAgJ3J1bGUtaWQnOiBTdHJpbmcoaWQpLFxuICAgICAgJ3J1bGUtbmFtZSc6IGAke2lkfWAsXG4gICAgICAnb2JqZWN0LWxvY2F0b3InOiBvYmplY3RMb2NhdG9yLFxuICAgICAgJ3J1bGUtYWN0aW9uJzogVHJhbnNmb3JtYXRpb25BY3Rpb24uQUREX0NPTFVNTixcbiAgICAgICdydWxlLXRhcmdldCc6ICdjb2x1bW4nLFxuICAgICAgJ3ZhbHVlJzogY29sdW1uLmNvbHVtbk5hbWUsXG4gICAgICAnZGF0YS10eXBlJzogdGhpcy5idWlsZERhdGFUeXBlKGNvbHVtbiksXG4gICAgfTtcblxuICAgIGlmIChjb2x1bW4uZXhwcmVzc2lvbikge1xuICAgICAgcnVsZS5leHByZXNzaW9uID0gY29sdW1uLmV4cHJlc3Npb247XG4gICAgfSBlbHNlIGlmIChjb2x1bW4uY29sdW1uVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gRE1TIGV4cHJlc3Npb24gc3ludGF4OiBzdHJpbmcgbGl0ZXJhbHMgdXNlIHNpbmdsZSBxdW90ZXMgKGVzY2FwZSAnIGFzICcnKVxuICAgICAgcnVsZS5leHByZXNzaW9uID0gYCcke2NvbHVtbi5jb2x1bW5WYWx1ZS5yZXBsYWNlKC8nL2csIFwiJydcIil9J2A7XG4gICAgfVxuXG4gICAgdGhpcy5ydWxlcy5wdXNoKHJ1bGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZERhdGFUeXBlKGNvbHVtbjogQWRkQ29sdW1uRGVmaW5pdGlvbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICBjb25zdCBkdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IHR5cGU6IGNvbHVtbi5jb2x1bW5UeXBlIH07XG4gICAgaWYgKGNvbHVtbi5jb2x1bW5MZW5ndGggIT09IHVuZGVmaW5lZCkgZHQubGVuZ3RoID0gY29sdW1uLmNvbHVtbkxlbmd0aDtcbiAgICBpZiAoY29sdW1uLmNvbHVtblByZWNpc2lvbiAhPT0gdW5kZWZpbmVkKSBkdC5wcmVjaXNpb24gPSBjb2x1bW4uY29sdW1uUHJlY2lzaW9uO1xuICAgIGlmIChjb2x1bW4uY29sdW1uU2NhbGUgIT09IHVuZGVmaW5lZCkgZHQuc2NhbGUgPSBjb2x1bW4uY29sdW1uU2NhbGU7XG4gICAgcmV0dXJuIGR0O1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRUcmFuc2Zvcm1hdGlvblJ1bGUoXG4gICAgc2NoZW1hTmFtZTogc3RyaW5nLFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIGNvbHVtbk5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBydWxlVGFyZ2V0OiBSdWxlT2JqZWN0TG9jYXRvcixcbiAgICBhY3Rpb246IFRyYW5zZm9ybWF0aW9uQWN0aW9uLFxuICAgIHZhbHVlPzogc3RyaW5nLFxuICApOiBUYWJsZU1hcHBpbmdzIHtcbiAgICBjb25zdCBpZCA9IHRoaXMubmV4dElkKys7XG4gICAgY29uc3Qgb2JqZWN0TG9jYXRvcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdzY2hlbWEtbmFtZSc6IHNjaGVtYU5hbWUsXG4gICAgICAndGFibGUtbmFtZSc6IHRhYmxlTmFtZSxcbiAgICB9O1xuICAgIGlmIChjb2x1bW5OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9iamVjdExvY2F0b3JbJ2NvbHVtbi1uYW1lJ10gPSBjb2x1bW5OYW1lO1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgJ3J1bGUtdHlwZSc6ICd0cmFuc2Zvcm1hdGlvbicsXG4gICAgICAncnVsZS1pZCc6IFN0cmluZyhpZCksXG4gICAgICAncnVsZS1uYW1lJzogYCR7aWR9YCxcbiAgICAgICdydWxlLXRhcmdldCc6IHJ1bGVUYXJnZXQsXG4gICAgICAnb2JqZWN0LWxvY2F0b3InOiBvYmplY3RMb2NhdG9yLFxuICAgICAgJ3J1bGUtYWN0aW9uJzogYWN0aW9uLFxuICAgIH07XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJ1bGUudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnJ1bGVzLnB1c2gocnVsZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE91dHB1dFxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFNlcmlhbGlzZSB0aGUgYWNjdW11bGF0ZWQgcnVsZXMgdG8gdGhlIEpTT04gc3RyaW5nIGV4cGVjdGVkIGJ5IERNUy5cbiAgICogUGFzc2VzIHRoZSByZXN1bHQgZGlyZWN0bHkgdG8gYHJlcGxpY2F0aW9uVGFza1NldHRpbmdzYCBvclxuICAgKiBgRG1zUmVwbGljYXRpb25UYXNrLnRhYmxlTWFwcGluZ3NgLlxuICAgKi9cbiAgdG9Kc29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgcnVsZXM6IHRoaXMucnVsZXMgfSwgbnVsbCwgMik7XG4gIH1cbn1cbiJdfQ==
@@ -287,5 +287,5 @@ class TaskSettings {
287
287
  }
288
288
  exports.TaskSettings = TaskSettings;
289
289
  _a = JSII_RTTI_SYMBOL_1;
290
- TaskSettings[_a] = { fqn: "cdk-dms-replication.TaskSettings", version: "0.0.16" };
290
+ TaskSettings[_a] = { fqn: "cdk-dms-replication.TaskSettings", version: "0.1.1" };
291
291
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90YXNrLXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7O0dBUUc7QUFFSCw4RUFBOEU7QUFDOUUsUUFBUTtBQUNSLDhFQUE4RTtBQUU5RSx3Q0FBd0M7QUFDeEMsSUFBWSxPQU9YO0FBUEQsV0FBWSxPQUFPO0lBQ2pCLHNCQUFzQjtJQUN0Qix3QkFBYSxDQUFBO0lBQ2IsNERBQTREO0lBQzVELGdDQUFxQixDQUFBO0lBQ3JCLGlEQUFpRDtJQUNqRCxzQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBUFcsT0FBTyx1QkFBUCxPQUFPLFFBT2xCO0FBRUQscURBQXFEO0FBQ3JELElBQVksWUFNWDtBQU5ELFdBQVksWUFBWTtJQUN0QixtRUFBbUQsQ0FBQTtJQUNuRCwrREFBK0MsQ0FBQTtJQUMvQyxpRkFBaUUsQ0FBQTtJQUNqRSwrREFBK0MsQ0FBQTtJQUMvQyxtRUFBbUQsQ0FBQTtBQUNyRCxDQUFDLEVBTlcsWUFBWSw0QkFBWixZQUFZLFFBTXZCO0FBRUQsNkNBQTZDO0FBQzdDLElBQVksV0FPWDtBQVBELFdBQVksV0FBVztJQUNyQixxQ0FBcUM7SUFDckMsZ0NBQWlCLENBQUE7SUFDakIsOENBQThDO0lBQzlDLDhDQUErQixDQUFBO0lBQy9CLHFCQUFxQjtJQUNyQixzQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBUFcsV0FBVywyQkFBWCxXQUFXLFFBT3RCO0FBMEhELDhFQUE4RTtBQUM5RSxVQUFVO0FBQ1YsOEVBQThFO0FBRTlFOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBYSxZQUFZO0lBQXpCO1FBQ1UsWUFBTyxHQUFZLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDdkMsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBQ3hDLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztRQUM5QiwwQkFBcUIs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QUEwQixFQUFFLFdBQVcsQ0FBQyxTQUFTO2dCQUNqRCx5QkFBeUIsRUFBRSxDQUFDO2dCQUM1Qiw2QkFBNkIsRUFBRSxLQUFLO2dCQUNwQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixJQUFJLElBQUk7Z0JBQ3ZFLG9DQUFvQyxFQUFFLEtBQUs7Z0JBQzNDLHVCQUF1QixFQUFFLElBQUk7YUFDOUI7WUFDRCxzQkFBc0IsRUFBRTtnQkFDdEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsSUFBSSxLQUFLO2dCQUM5RCw2QkFBNkIsRUFBRSxJQUFJO2dCQUNuQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixJQUFJLENBQUM7Z0JBQ2hFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLElBQUksRUFBRTtnQkFDakUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsSUFBSSxHQUFHO2dCQUNwRSxjQUFjLEVBQUUsQ0FBQztnQkFDakIsa0JBQWtCLEVBQUUsSUFBSTtnQkFDeEIsYUFBYSxFQUFFLENBQUM7Z0JBQ2hCLGdCQUFnQixFQUFFLElBQUk7Z0JBQ3RCLGNBQWMsRUFBRSxFQUFFO2dCQUNsQixrQkFBa0IsRUFBRSxFQUFFO2FBQ3ZCO1NBQ0YsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7O0FBMVBILG9DQTJQQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnVpbGRlciBmb3IgRE1TIHJlcGxpY2F0aW9uIHRhc2sgc2V0dGluZ3MuXG4gKlxuICogVGhlIERNUyB0YXNrIHNldHRpbmdzIEpTT04gY29udHJvbHMgbG9nZ2luZywgTE9CIGhhbmRsaW5nLCBlcnJvciBoYW5kbGluZyxcbiAqIGZ1bGwtbG9hZCB0dW5pbmcsIGFuZCBDREMgdHVuaW5nLiBUaGlzIGJ1aWxkZXIgZXhwb3NlcyB0aGUgbW9zdCBjb21tb25seVxuICogdHVuZWQga25vYnMgYW5kIHByb2R1Y2VzIHRoZSBKU09OIHN0cmluZyBleHBlY3RlZCBieSBhIHJlcGxpY2F0aW9uIHRhc2suXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZG1zL2xhdGVzdC91c2VyZ3VpZGUvQ0hBUF9UYXNrcy5DdXN0b21pemluZ1Rhc2tzLlRhc2tTZXR0aW5ncy5odG1sXG4gKi9cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFbnVtc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBMT0IgKExhcmdlIE9iamVjdCkgaGFuZGxpbmcgbW9kZS4gKi9cbmV4cG9ydCBlbnVtIExvYk1vZGUge1xuICAvKiogTm8gTE9CIHN1cHBvcnQuICovXG4gIE5PTkUgPSAnbm9uZScsXG4gIC8qKiBBbGwgTE9CcyBhcmUgbWlncmF0ZWQgYXMgaW5saW5lIGRhdGEgKGZ1bGwgTE9CIG1vZGUpLiAqL1xuICBGVUxMX0xPQiA9ICdmdWxsLWxvYicsXG4gIC8qKiBMT0JzIGFyZSB0cnVuY2F0ZWQgYXQgYSBjb25maWd1cmFibGUgc2l6ZS4gKi9cbiAgTElNSVRFRF9MT0IgPSAnbGltaXRlZC1sb2InLFxufVxuXG4vKiogTG9nZ2luZyB2ZXJib3NpdHkgZm9yIERNUyB0YXNrIGxvZyBjb21wb25lbnRzLiAqL1xuZXhwb3J0IGVudW0gTG9nZ2luZ0xldmVsIHtcbiAgTE9HR0VSX1NFVkVSSVRZX0RFRkFVTFQgPSAnTE9HR0VSX1NFVkVSSVRZX0RFRkFVTFQnLFxuICBMT0dHRVJfU0VWRVJJVFlfREVCVUcgPSAnTE9HR0VSX1NFVkVSSVRZX0RFQlVHJyxcbiAgTE9HR0VSX1NFVkVSSVRZX0RFVEFJTEVEX0RFQlVHID0gJ0xPR0dFUl9TRVZFUklUWV9ERVRBSUxFRF9ERUJVRycsXG4gIExPR0dFUl9TRVZFUklUWV9FUlJPUiA9ICdMT0dHRVJfU0VWRVJJVFlfRVJST1InLFxuICBMT0dHRVJfU0VWRVJJVFlfV0FSTklORyA9ICdMT0dHRVJfU0VWRVJJVFlfV0FSTklORycsXG59XG5cbi8qKiBBY3Rpb24gdG8gdGFrZSBvbiBhIHJlY292ZXJhYmxlIGVycm9yLiAqL1xuZXhwb3J0IGVudW0gRXJyb3JBY3Rpb24ge1xuICAvKiogSWdub3JlIHRoZSBlcnJvciBhbmQgY29udGludWUuICovXG4gIElHTk9SRSA9ICdJR05PUkUnLFxuICAvKiogSWdub3JlIHRoZSByb3csIGNvbnRpbnVlIHdpdGggdGhlIG5leHQuICovXG4gIElHTk9SRV9SRUNPUkQgPSAnSUdOT1JFX1JFQ09SRCcsXG4gIC8qKiBTdG9wIHRoZSB0YXNrLiAqL1xuICBTVE9QX1RBU0sgPSAnU1RPUF9UQVNLJyxcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQcm9wcyBpbnRlcmZhY2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIExvZ2dpbmcgY29uZmlndXJhdGlvbiBmb3IgYSBzaW5nbGUgRE1TIGxvZyBjb21wb25lbnQuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0NvbXBvbmVudFNldHRpbmdzIHtcbiAgLyoqIExvZ2dpbmcgbGV2ZWwgZm9yIHRoaXMgY29tcG9uZW50LiAqL1xuICByZWFkb25seSBsb2dnaW5nTGV2ZWw/OiBMb2dnaW5nTGV2ZWw7XG59XG5cbi8qKiBDb250cm9scyBob3cgdGhlIHRhc2sgaGFuZGxlcyBmdWxsLWxvYWQgZGF0YS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbExvYWRTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiB0YWJsZXMgdG8gbG9hZCBpbiBwYXJhbGxlbC5cbiAgICogQGRlZmF1bHQgOFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4RnVsbExvYWRTdWJUYXNrcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIE51bWJlciBvZiByb3dzIHRvIGxvYWQgYmVmb3JlIGEgY29tbWl0LlxuICAgKiBAZGVmYXVsdCAxMDAwMFxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNhY3Rpb25Db25zaXN0ZW5jeVRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNyZWF0ZSB0YXJnZXQgdGFibGVzIGlmIHRoZXkgZG9uJ3QgZXhpc3QuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFRhYmxlUHJlcE1vZGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHN0b3AgdGhlIHRhc2sgYWZ0ZXIgdGhlIGZ1bGwgbG9hZCBjb21wbGV0ZXMgKG9ubHkgcmVsZXZhbnQgZm9yXG4gICAqIGZ1bGwtbG9hZCB0YXNrcyB3aXRob3V0IENEQykuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdG9wVGFza0NhY2hlZENoYW5nZXNBcHBsaWVkPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgRE1TIGNvbW1pdHMgdGhlIGZ1bGwgbG9hZCBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvbi4gKi9cbiAgcmVhZG9ubHkgY29tbWl0UmF0ZT86IG51bWJlcjtcbn1cblxuLyoqIENvbnRyb2xzIENEQyBiZWhhdmlvdXIuICovXG5leHBvcnQgaW50ZXJmYWNlIENkY1NldHRpbmdzIHtcbiAgLyoqXG4gICAqIE9mZnNldCBpbiBzZWNvbmRzIGZyb20gY3VycmVudCB0aW1lIHRvIHVzZSBhcyB0aGUgQ0RDIHN0YXJ0IHBvc2l0aW9uLlxuICAgKiBJZ25vcmVkIHdoZW4gYGNkY1N0YXJ0UG9zaXRpb25gIGlzIHNldCBvbiB0aGUgdGFzay5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVRlc3RNb2RlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgRE1TIGFwcGxpZXMgY2hhbmdlcyBpbW1lZGlhdGVseSAoZmFsc2UpIG9yIGJhdGNoZXMgdGhlbSAodHJ1ZSkuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBiYXRjaEFwcGx5RW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBOdW1iZXIgb2Ygc2Vjb25kcyBETVMgd2FpdHMgYmVmb3JlIGFwcGx5aW5nIGJhdGNoZWQgY2hhbmdlcy5cbiAgICogT25seSByZWxldmFudCB3aGVuIGBiYXRjaEFwcGx5RW5hYmxlZGAgaXMgdHJ1ZS5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgYmF0Y2hBcHBseVRpbWVvdXRNaW4/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBzZWNvbmRzIERNUyB3YWl0cyBiZWZvcmUgYXBwbHlpbmcgYmF0Y2hlZCBjaGFuZ2VzLlxuICAgKiBAZGVmYXVsdCAzMFxuICAgKi9cbiAgcmVhZG9ubHkgYmF0Y2hBcHBseVRpbWVvdXRNYXg/OiBudW1iZXI7XG4gIC8qKiBNZW1vcnkgbGltaXQgKGluIE1CKSBmb3IgdGhlIGFwcGx5IHRhc2suIEBkZWZhdWx0IDUwMCAqL1xuICByZWFkb25seSBiYXRjaEFwcGx5TWVtb3J5TGltaXQ/OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIHRvIHByZXNlcnZlIHRyYW5zYWN0aW9ucyBkdXJpbmcgQ0RDLiBAZGVmYXVsdCB0cnVlICovXG4gIHJlYWRvbmx5IGZhaWxPbk5vVGFibGVzQ2FwdHVyZWQ/OiBib29sZWFuO1xufVxuXG4vKiogQ29udHJvbHMgZXJyb3IgaGFuZGxpbmcgYmVoYXZpb3VyLiAqL1xuZXhwb3J0IGludGVyZmFjZSBFcnJvckhhbmRsaW5nU2V0dGluZ3Mge1xuICAvKipcbiAgICogQWN0aW9uIHRvIHRha2Ugd2hlbiBETVMgZW5jb3VudGVycyBhIGRhdGEgZXJyb3IgKGUuZy4gZHVwbGljYXRlIGtleSkuXG4gICAqIEBkZWZhdWx0IEVycm9yQWN0aW9uLlNUT1BfVEFTS1xuICAgKi9cbiAgcmVhZG9ubHkgZGF0YUVycm9yUG9saWN5PzogRXJyb3JBY3Rpb247XG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBkYXRhIGVycm9ycyBiZWZvcmUgc3RvcHBpbmcuXG4gICAqIEBkZWZhdWx0IDAgKHVubGltaXRlZClcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFFcnJvckVzY2FsYXRpb25Db3VudD86IG51bWJlcjtcbiAgLyoqXG4gICAqIEFjdGlvbiB0byB0YWtlIGFmdGVyIGBkYXRhRXJyb3JFc2NhbGF0aW9uQ291bnRgIGVycm9ycyBhcmUgaGl0LlxuICAgKiBAZGVmYXVsdCBFcnJvckFjdGlvbi5TVE9QX1RBU0tcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFFcnJvckVzY2FsYXRpb25Qb2xpY3k/OiBFcnJvckFjdGlvbjtcbiAgLyoqXG4gICAqIEFjdGlvbiB3aGVuIERNUyBlbmNvdW50ZXJzIGEgdGFibGUgZXJyb3IuXG4gICAqIEBkZWZhdWx0IEVycm9yQWN0aW9uLlNUT1BfVEFTS1xuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVFcnJvclBvbGljeT86IEVycm9yQWN0aW9uO1xuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgdGFibGUgZXJyb3JzIGJlZm9yZSBlc2NhbGF0aW9uLlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSB0YWJsZUVycm9yRXNjYWxhdGlvbkNvdW50PzogbnVtYmVyO1xuICAvKipcbiAgICogQWN0aW9uIGFmdGVyIGB0YWJsZUVycm9yRXNjYWxhdGlvbkNvdW50YCB0YWJsZSBlcnJvcnMuXG4gICAqIEBkZWZhdWx0IEVycm9yQWN0aW9uLlNUT1BfVEFTS1xuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVFcnJvckVzY2FsYXRpb25Qb2xpY3k/OiBFcnJvckFjdGlvbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVjb3ZlciBmcm9tIHJlY292ZXJhYmxlIGVycm9ycy5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVjb3ZlcmFibGVFcnJvckNvdW50PzogbnVtYmVyO1xuICAvKipcbiAgICogSW50ZXJ2YWwgaW4gc2Vjb25kcyBiZXR3ZWVuIHJlY292ZXJ5IGF0dGVtcHRzLlxuICAgKiBAZGVmYXVsdCA1XG4gICAqL1xuICByZWFkb25seSByZWNvdmVyYWJsZUVycm9ySW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaHJvdHRsZSBmYWN0b3IgYXBwbGllZCB0byByZWNvdmVyeSBpbnRlcnZhbHMuXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IHJlY292ZXJhYmxlRXJyb3JUaHJvdHRsaW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE1heGltdW0gaW50ZXJ2YWwgKHNlY29uZHMpIGJldHdlZW4gcmVjb3ZlcnkgYXR0ZW1wdHMuXG4gICAqIEBkZWZhdWx0IDM2MFxuICAgKi9cbiAgcmVhZG9ubHkgcmVjb3ZlcmFibGVFcnJvclRocm90dGxpbmdNYXg/OiBudW1iZXI7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQnVpbGRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogRmx1ZW50IGJ1aWxkZXIgZm9yIERNUyB0YXNrIHNldHRpbmdzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzZXR0aW5ncyA9IG5ldyBUYXNrU2V0dGluZ3MoKVxuICogICAud2l0aExvYk1vZGUoTG9iTW9kZS5MSU1JVEVEX0xPQiwgMzIpXG4gKiAgIC53aXRoRnVsbExvYWRTdWJUYXNrcygxNilcbiAqICAgLndpdGhCYXRjaEFwcGx5KHRydWUsIDUsIDYwKVxuICogICAud2l0aERhdGFFcnJvclBvbGljeShFcnJvckFjdGlvbi5JR05PUkVfUkVDT1JELCAxMDApXG4gKiAgIC53aXRoTG9nZ2luZygnU09VUkNFX1VOTE9BRCcsIExvZ2dpbmdMZXZlbC5MT0dHRVJfU0VWRVJJVFlfREVGQVVMVClcbiAqICAgLnRvSnNvbigpO1xuICovXG5leHBvcnQgY2xhc3MgVGFza1NldHRpbmdzIHtcbiAgcHJpdmF0ZSBsb2JNb2RlOiBMb2JNb2RlID0gTG9iTW9kZS5MSU1JVEVEX0xPQjtcbiAgcHJpdmF0ZSBsb2JNYXhTaXplOiBudW1iZXIgPSAzMjtcbiAgcHJpdmF0ZSBmdWxsTG9hZFNldHRpbmdzOiBGdWxsTG9hZFNldHRpbmdzID0ge307XG4gIHByaXZhdGUgY2RjU2V0dGluZ3M6IENkY1NldHRpbmdzID0ge307XG4gIHByaXZhdGUgZXJyb3JIYW5kbGluZ1NldHRpbmdzOiBFcnJvckhhbmRsaW5nU2V0dGluZ3MgPSB7fTtcbiAgcHJpdmF0ZSBsb2dnaW5nRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgbG9nQ29tcG9uZW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTE9CIGhhbmRsaW5nXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogQ29uZmlndXJlIExPQiBoYW5kbGluZy5cbiAgICpcbiAgICogQHBhcmFtIG1vZGUgICAgICAgSG93IExPQnMgYXJlIGhhbmRsZWQuXG4gICAqIEBwYXJhbSBtYXhTaXplS2IgIE1heGltdW0gTE9CIHNpemUgaW4gS0Igd2hlbiBtb2RlIGlzIExJTUlURURfTE9CLiBJZ25vcmVkIG90aGVyd2lzZS5cbiAgICovXG4gIHdpdGhMb2JNb2RlKG1vZGU6IExvYk1vZGUsIG1heFNpemVLYj86IG51bWJlcik6IFRhc2tTZXR0aW5ncyB7XG4gICAgdGhpcy5sb2JNb2RlID0gbW9kZTtcbiAgICBpZiAobWF4U2l6ZUtiICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubG9iTWF4U2l6ZSA9IG1heFNpemVLYjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEZ1bGwgbG9hZFxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdGFibGVzIGxvYWRlZCBpbiBwYXJhbGxlbC5cbiAgICogQHBhcmFtIGNvdW50IERlZmF1bHQgOC5cbiAgICovXG4gIHdpdGhGdWxsTG9hZFN1YlRhc2tzKGNvdW50OiBudW1iZXIpOiBUYXNrU2V0dGluZ3Mge1xuICAgIHRoaXMuZnVsbExvYWRTZXR0aW5ncyA9IHsgLi4udGhpcy5mdWxsTG9hZFNldHRpbmdzLCBtYXhGdWxsTG9hZFN1YlRhc2tzOiBjb3VudCB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZnVsbC1sb2FkIHRhcmdldCB0YWJsZSBwcmVwYXJlIG1vZGUuXG4gICAqIENvbW1vbiB2YWx1ZXM6IFwiRFJPUF9BTkRfQ1JFQVRFXCIsIFwiVFJVTkNBVEVfQkVGT1JFX0xPQURcIiwgXCJET19OT1RISU5HXCIuXG4gICAqL1xuICB3aXRoVGFyZ2V0VGFibGVQcmVwTW9kZShtb2RlOiBzdHJpbmcpOiBUYXNrU2V0dGluZ3Mge1xuICAgIHRoaXMuZnVsbExvYWRTZXR0aW5ncyA9IHsgLi4udGhpcy5mdWxsTG9hZFNldHRpbmdzLCB0YXJnZXRUYWJsZVByZXBNb2RlOiBtb2RlIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjb21taXQgcmF0ZSAobnVtYmVyIG9mIHJvd3MgcGVyIGNvbW1pdCkgZHVyaW5nIGZ1bGwgbG9hZC5cbiAgICovXG4gIHdpdGhDb21taXRSYXRlKHJvd3M6IG51bWJlcik6IFRhc2tTZXR0aW5ncyB7XG4gICAgdGhpcy5mdWxsTG9hZFNldHRpbmdzID0geyAuLi50aGlzLmZ1bGxMb2FkU2V0dGluZ3MsIGNvbW1pdFJhdGU6IHJvd3MgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gQ0RDIC8gYmF0Y2ggYXBwbHlcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBDREMgYmF0Y2ggYXBwbHkgbW9kZSBhbmQgY29uZmlndXJlIGl0cyB0aW1lb3V0cy5cbiAgICpcbiAgICogQHBhcmFtIGVuYWJsZWQgICAgV2hldGhlciBiYXRjaCBhcHBseSBpcyBvbi5cbiAgICogQHBhcmFtIG1pblNlY29uZHMgTWluaW11bSBzZWNvbmRzIGJlZm9yZSBhcHBseWluZyBhIGJhdGNoIChkZWZhdWx0IDEpLlxuICAgKiBAcGFyYW0gbWF4U2Vjb25kcyBNYXhpbXVtIHNlY29uZHMgYmVmb3JlIGFwcGx5aW5nIGEgYmF0Y2ggKGRlZmF1bHQgMzApLlxuICAgKi9cbiAgd2l0aEJhdGNoQXBwbHkoZW5hYmxlZDogYm9vbGVhbiwgbWluU2Vjb25kcz86IG51bWJlciwgbWF4U2Vjb25kcz86IG51bWJlcik6IFRhc2tTZXR0aW5ncyB7XG4gICAgdGhpcy5jZGNTZXR0aW5ncyA9IHtcbiAgICAgIC4uLnRoaXMuY2RjU2V0dGluZ3MsXG4gICAgICBiYXRjaEFwcGx5RW5hYmxlZDogZW5hYmxlZCxcbiAgICAgIGJhdGNoQXBwbHlUaW1lb3V0TWluOiBtaW5TZWNvbmRzID8/IDEsXG4gICAgICBiYXRjaEFwcGx5VGltZW91dE1heDogbWF4U2Vjb25kcyA/PyAzMCxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBFcnJvciBoYW5kbGluZ1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSB0aGUgYWN0aW9uIHRha2VuIG9uIGRhdGEgZXJyb3JzLlxuICAgKlxuICAgKiBAcGFyYW0gcG9saWN5ICAgICAgICAgQWN0aW9uIHdoZW4gYSBkYXRhIGVycm9yIGlzIGVuY291bnRlcmVkLlxuICAgKiBAcGFyYW0gZXNjYWxhdGlvbkNvdW50IEFmdGVyIHRoaXMgbWFueSBlcnJvcnMsIGFwcGx5IHRoZSBlc2NhbGF0aW9uIHBvbGljeSAoMCA9IGltbWVkaWF0ZSkuXG4gICAqIEBwYXJhbSBlc2NhbGF0aW9uUG9saWN5IEFjdGlvbiBhZnRlciBgZXNjYWxhdGlvbkNvdW50YCBlcnJvcnMuXG4gICAqL1xuICB3aXRoRGF0YUVycm9yUG9saWN5KFxuICAgIHBvbGljeTogRXJyb3JBY3Rpb24sXG4gICAgZXNjYWxhdGlvbkNvdW50PzogbnVtYmVyLFxuICAgIGVzY2FsYXRpb25Qb2xpY3k/OiBFcnJvckFjdGlvbixcbiAgKTogVGFza1NldHRpbmdzIHtcbiAgICB0aGlzLmVycm9ySGFuZGxpbmdTZXR0aW5ncyA9IHtcbiAgICAgIC4uLnRoaXMuZXJyb3JIYW5kbGluZ1NldHRpbmdzLFxuICAgICAgZGF0YUVycm9yUG9saWN5OiBwb2xpY3ksXG4gICAgICBkYXRhRXJyb3JFc2NhbGF0aW9uQ291bnQ6IGVzY2FsYXRpb25Db3VudCA/PyAwLFxuICAgICAgZGF0YUVycm9yRXNjYWxhdGlvblBvbGljeTogZXNjYWxhdGlvblBvbGljeSA/PyBwb2xpY3ksXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgcmVjb3ZlcnkgZnJvbSB0cmFuc2llbnQgZXJyb3JzLlxuICAgKlxuICAgKiBAcGFyYW0gY291bnQgICAgTWF4aW11bSByZWNvdmVyeSBhdHRlbXB0cyAoLTEgPSB1bmxpbWl0ZWQpLlxuICAgKiBAcGFyYW0gaW50ZXJ2YWwgU2Vjb25kcyBiZXR3ZWVuIGF0dGVtcHRzLlxuICAgKi9cbiAgd2l0aFJlY292ZXJ5KGNvdW50OiBudW1iZXIsIGludGVydmFsPzogbnVtYmVyKTogVGFza1NldHRpbmdzIHtcbiAgICB0aGlzLmVycm9ySGFuZGxpbmdTZXR0aW5ncyA9IHtcbiAgICAgIC4uLnRoaXMuZXJyb3JIYW5kbGluZ1NldHRpbmdzLFxuICAgICAgcmVjb3ZlcmFibGVFcnJvckNvdW50OiBjb3VudCxcbiAgICAgIHJlY292ZXJhYmxlRXJyb3JJbnRlcnZhbDogaW50ZXJ2YWwgPz8gNSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBMb2dnaW5nXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgQ2xvdWRXYXRjaCBsb2dnaW5nIGZvciB0aGUgdGFzay5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgd2l0aExvZ2dpbmdFbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pOiBUYXNrU2V0dGluZ3Mge1xuICAgIHRoaXMubG9nZ2luZ0VuYWJsZWQgPSBlbmFibGVkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbG9nZ2luZyBsZXZlbCBmb3IgYSBuYW1lZCBETVMgbG9nIGNvbXBvbmVudC5cbiAgICpcbiAgICogQ29tbW9uIGNvbXBvbmVudCBuYW1lczogU09VUkNFX1VOTE9BRCwgVEFSR0VUX0xPQUQsIFRBU0tfTUFOQUdFUixcbiAgICogU09VUkNFX0NBUFRVUkUsIFRBUkdFVF9BUFBMWSwgUkVTVF9TRVJWRVIsIFRSQU5TRk9STUFUSU9OLlxuICAgKi9cbiAgd2l0aExvZ2dpbmcoY29tcG9uZW50OiBzdHJpbmcsIGxldmVsOiBMb2dnaW5nTGV2ZWwpOiBUYXNrU2V0dGluZ3Mge1xuICAgIHRoaXMubG9nQ29tcG9uZW50c1tjb21wb25lbnRdID0gbGV2ZWw7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE91dHB1dFxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFByb2R1Y2UgdGhlIEpTT04gc3RyaW5nIHRoYXQgRE1TIGV4cGVjdHMgZm9yIGByZXBsaWNhdGlvblRhc2tTZXR0aW5nc2AuXG4gICAqL1xuICB0b0pzb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBsb2JTZXR0aW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPVxuICAgICAgdGhpcy5sb2JNb2RlID09PSBMb2JNb2RlLk5PTkVcbiAgICAgICAgPyB7IFN1cHBvcnRMb2JzOiBmYWxzZSB9XG4gICAgICAgIDoge1xuICAgICAgICAgIFN1cHBvcnRMb2JzOiB0cnVlLFxuICAgICAgICAgIExvYk1vZGU6IHRoaXMubG9iTW9kZSA9PT0gTG9iTW9kZS5GVUxMX0xPQiA/IDIgOiAxLFxuICAgICAgICAgIExvYk1heFNpemU6IHRoaXMubG9iTW9kZSA9PT0gTG9iTW9kZS5MSU1JVEVEX0xPQiA/IHRoaXMubG9iTWF4U2l6ZSA6IDAsXG4gICAgICAgIH07XG5cbiAgICBjb25zdCBsb2dDb21wb25lbnRMaXN0ID0gT2JqZWN0LmVudHJpZXModGhpcy5sb2dDb21wb25lbnRzKS5tYXAoKFtpZCwgbGV2ZWxdKSA9PiAoe1xuICAgICAgSWQ6IGlkLFxuICAgICAgU2V2ZXJpdHk6IGxldmVsLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHNldHRpbmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIFRhcmdldE1ldGFkYXRhOiB7XG4gICAgICAgIFN1cHBvcnRMb2JzOiBsb2JTZXR0aW5ncy5TdXBwb3J0TG9icyxcbiAgICAgICAgRnVsbExvYk1vZGU6IHRoaXMubG9iTW9kZSA9PT0gTG9iTW9kZS5GVUxMX0xPQixcbiAgICAgICAgTG9iQ2h1bmtTaXplOiAwLFxuICAgICAgICBMaW1pdGVkU2l6ZUxvYk1vZGU6IHRoaXMubG9iTW9kZSA9PT0gTG9iTW9kZS5MSU1JVEVEX0xPQixcbiAgICAgICAgTG9iTWF4U2l6ZTogbG9iU2V0dGluZ3MuTG9iTWF4U2l6ZSA/PyAwLFxuICAgICAgfSxcbiAgICAgIEZ1bGxMb2FkU2V0dGluZ3M6IHtcbiAgICAgICAgVGFyZ2V0VGFibGVQcmVwTW9kZTogdGhpcy5mdWxsTG9hZFNldHRpbmdzLnRhcmdldFRhYmxlUHJlcE1vZGUgPz8gJ0RST1BfQU5EX0NSRUFURScsXG4gICAgICAgIENyZWF0ZVBrQWZ0ZXJGdWxsTG9hZDogZmFsc2UsXG4gICAgICAgIFN0b3BUYXNrQ2FjaGVkQ2hhbmdlc0FwcGxpZWQ6IHRoaXMuZnVsbExvYWRTZXR0aW5ncy5zdG9wVGFza0NhY2hlZENoYW5nZXNBcHBsaWVkID8/IGZhbHNlLFxuICAgICAgICBTdG9wVGFza0NhY2hlZENoYW5nZXNOb3RBcHBsaWVkOiBmYWxzZSxcbiAgICAgICAgTWF4RnVsbExvYWRTdWJUYXNrczogdGhpcy5mdWxsTG9hZFNldHRpbmdzLm1heEZ1bGxMb2FkU3ViVGFza3MgPz8gOCxcbiAgICAgICAgVHJhbnNhY3Rpb25Db25zaXN0ZW5jeVRpbWVvdXQ6IHRoaXMuZnVsbExvYWRTZXR0aW5ncy50cmFuc2FjdGlvbkNvbnNpc3RlbmN5VGltZW91dCA/PyA2MDAsXG4gICAgICAgIENvbW1pdFJhdGU6IHRoaXMuZnVsbExvYWRTZXR0aW5ncy5jb21taXRSYXRlID8/IDEwMDAwLFxuICAgICAgfSxcbiAgICAgIExvZ2dpbmc6IHtcbiAgICAgICAgRW5hYmxlTG9nZ2luZzogdGhpcy5sb2dnaW5nRW5hYmxlZCxcbiAgICAgICAgTG9nQ29tcG9uZW50czogbG9nQ29tcG9uZW50TGlzdC5sZW5ndGggPiAwID8gbG9nQ29tcG9uZW50TGlzdCA6IFtcbiAgICAgICAgICB7IElkOiAnU09VUkNFX1VOTE9BRCcsIFNldmVyaXR5OiBMb2dnaW5nTGV2ZWwuTE9HR0VSX1NFVkVSSVRZX0RFRkFVTFQgfSxcbiAgICAgICAgICB7IElkOiAnVEFSR0VUX0xPQUQnLCBTZXZlcml0eTogTG9nZ2luZ0xldmVsLkxPR0dFUl9TRVZFUklUWV9ERUZBVUxUIH0sXG4gICAgICAgICAgeyBJZDogJ1RBU0tfTUFOQUdFUicsIFNldmVyaXR5OiBMb2dnaW5nTGV2ZWwuTE9HR0VSX1NFVkVSSVRZX0RFRkFVTFQgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBDb250cm9sVGFibGVzU2V0dGluZ3M6IHtcbiAgICAgICAgaGlzdG9yeVRpbWVzbG90SW5NaW51dGVzOiA1LFxuICAgICAgICBTdGF0dXNUYWJsZUVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICBTdXNwZW5kZWRUYWJsZXNUYWJsZUVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICBoaXN0b3J5VGFibGVFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgcmVwbGljYXRpb25UYXNrVGFibGVFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgc3RhdHVzVGFibGVFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgc3VzcGVuZGVkVGFibGVzVGFibGVFbmFibGVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBTdHJlYW1CdWZmZXJTZXR0aW5nczoge1xuICAgICAgICBTdHJlYW1CdWZmZXJDb3VudDogMyxcbiAgICAgICAgU3RyZWFtQnVmZmVyU2l6ZUluTUI6IDgsXG4gICAgICAgIEN0cmxTdHJlYW1CdWZmZXJTaXplSW5NQjogNSxcbiAgICAgIH0sXG4gICAgICBDaGFuZ2VQcm9jZXNzaW5nRGRsSGFuZGxpbmdQb2xpY3k6IHtcbiAgICAgICAgSGFuZGxlU291cmNlVGFibGVEcm9wcGVkOiB0cnVlLFxuICAgICAgICBIYW5kbGVTb3VyY2VUYWJsZVRydW5jYXRlZDogdHJ1ZSxcbiAgICAgICAgSGFuZGxlU291cmNlVGFibGVBbHRlcmVkOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIEVycm9yQmVoYXZpb3I6IHtcbiAgICAgICAgRGF0YUVycm9yUG9saWN5OiB0aGlzLmVycm9ySGFuZGxpbmdTZXR0aW5ncy5kYXRhRXJyb3JQb2xpY3kgPz8gRXJyb3JBY3Rpb24uU1RPUF9UQVNLLFxuICAgICAgICBEYXRhRXJyb3JFc2NhbGF0aW9uUG9saWN5OlxuICAgICAgICAgIHRoaXMuZXJyb3JIYW5kbGluZ1NldHRpbmdzLmRhdGFFcnJvckVzY2FsYXRpb25Qb2xpY3kgPz8gRXJyb3JBY3Rpb24uU1RPUF9UQVNLLFxuICAgICAgICBEYXRhRXJyb3JFc2NhbGF0aW9uQ291bnQ6IHRoaXMuZXJyb3JIYW5kbGluZ1NldHRpbmdzLmRhdGFFcnJvckVzY2FsYXRpb25Db3VudCA/PyAwLFxuICAgICAgICBUYWJsZUVycm9yUG9saWN5OiB0aGlzLmVycm9ySGFuZGxpbmdTZXR0aW5ncy50YWJsZUVycm9yUG9saWN5ID8/IEVycm9yQWN0aW9uLlNUT1BfVEFTSyxcbiAgICAgICAgVGFibGVFcnJvckVzY2FsYXRpb25Qb2xpY3k6XG4gICAgICAgICAgdGhpcy5lcnJvckhhbmRsaW5nU2V0dGluZ3MudGFibGVFcnJvckVzY2FsYXRpb25Qb2xpY3kgPz8gRXJyb3JBY3Rpb24uU1RPUF9UQVNLLFxuICAgICAgICBUYWJsZUVycm9yRXNjYWxhdGlvbkNvdW50OiB0aGlzLmVycm9ySGFuZGxpbmdTZXR0aW5ncy50YWJsZUVycm9yRXNjYWxhdGlvbkNvdW50ID8/IDAsXG4gICAgICAgIFJlY292ZXJhYmxlRXJyb3JDb3VudDogdGhpcy5lcnJvckhhbmRsaW5nU2V0dGluZ3MucmVjb3ZlcmFibGVFcnJvckNvdW50ID8/IC0xLFxuICAgICAgICBSZWNvdmVyYWJsZUVycm9ySW50ZXJ2YWw6IHRoaXMuZXJyb3JIYW5kbGluZ1NldHRpbmdzLnJlY292ZXJhYmxlRXJyb3JJbnRlcnZhbCA/PyA1LFxuICAgICAgICBSZWNvdmVyYWJsZUVycm9yVGhyb3R0bGluZzpcbiAgICAgICAgICB0aGlzLmVycm9ySGFuZGxpbmdTZXR0aW5ncy5yZWNvdmVyYWJsZUVycm9yVGhyb3R0bGluZyA/PyB0cnVlLFxuICAgICAgICBSZWNvdmVyYWJsZUVycm9yVGhyb3R0bGluZ01heDpcbiAgICAgICAgICB0aGlzLmVycm9ySGFuZGxpbmdTZXR0aW5ncy5yZWNvdmVyYWJsZUVycm9yVGhyb3R0bGluZ01heCA/PyAxODAwLFxuICAgICAgICBSZWNvdmVyYWJsZUVycm9yU3RvcFJldHJ5QWZ0ZXJUaHJvdHRsaW5nTWF4OiB0cnVlLFxuICAgICAgICBBcHBseUVycm9yRGVsZXRlUG9saWN5OiBFcnJvckFjdGlvbi5JR05PUkVfUkVDT1JELFxuICAgICAgICBBcHBseUVycm9ySW5zZXJ0UG9saWN5OiBFcnJvckFjdGlvbi5JR05PUkVfUkVDT1JELFxuICAgICAgICBBcHBseUVycm9yVXBkYXRlUG9saWN5OiBFcnJvckFjdGlvbi5JR05PUkVfUkVDT1JELFxuICAgICAgICBBcHBseUVycm9yRXNjYWxhdGlvblBvbGljeTogRXJyb3JBY3Rpb24uU1RPUF9UQVNLLFxuICAgICAgICBBcHBseUVycm9yRXNjYWxhdGlvbkNvdW50OiAwLFxuICAgICAgICBBcHBseUVycm9yRmFpbE9uVHJ1bmNhdGlvbkRkbDogZmFsc2UsXG4gICAgICAgIEZhaWxPbk5vVGFibGVzQ2FwdHVyZWQ6IHRoaXMuY2RjU2V0dGluZ3MuZmFpbE9uTm9UYWJsZXNDYXB0dXJlZCA/PyB0cnVlLFxuICAgICAgICBGYWlsT25UcmFuc2FjdGlvbkNvbnNpc3RlbmN5QnJlYWNoZWQ6IGZhbHNlLFxuICAgICAgICBGdWxsTG9hZElnbm9yZUNvbmZsaWN0czogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBDaGFuZ2VQcm9jZXNzaW5nVHVuaW5nOiB7XG4gICAgICAgIEJhdGNoQXBwbHlFbmFibGVkOiB0aGlzLmNkY1NldHRpbmdzLmJhdGNoQXBwbHlFbmFibGVkID8/IGZhbHNlLFxuICAgICAgICBCYXRjaEFwcGx5UHJlc2VydmVUcmFuc2FjdGlvbjogdHJ1ZSxcbiAgICAgICAgQmF0Y2hBcHBseVRpbWVvdXRNaW46IHRoaXMuY2RjU2V0dGluZ3MuYmF0Y2hBcHBseVRpbWVvdXRNaW4gPz8gMSxcbiAgICAgICAgQmF0Y2hBcHBseVRpbWVvdXRNYXg6IHRoaXMuY2RjU2V0dGluZ3MuYmF0Y2hBcHBseVRpbWVvdXRNYXggPz8gMzAsXG4gICAgICAgIEJhdGNoQXBwbHlNZW1vcnlMaW1pdDogdGhpcy5jZGNTZXR0aW5ncy5iYXRjaEFwcGx5TWVtb3J5TGltaXQgPz8gNTAwLFxuICAgICAgICBCYXRjaFNwbGl0U2l6ZTogMCxcbiAgICAgICAgTWluVHJhbnNhY3Rpb25TaXplOiAxMDAwLFxuICAgICAgICBDb21taXRUaW1lb3V0OiAxLFxuICAgICAgICBNZW1vcnlMaW1pdFRvdGFsOiAxMDI0LFxuICAgICAgICBNZW1vcnlLZWVwVGltZTogNjAsXG4gICAgICAgIFN0YXRlbWVudENhY2hlU2l6ZTogNTAsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoc2V0dGluZ3MsIG51bGwsIDIpO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -54,12 +54,12 @@
54
54
  "jest": "^30.4.2",
55
55
  "jest-junit": "^17",
56
56
  "jsii": "~5.9.0",
57
- "jsii-diff": "^1.131.0",
57
+ "jsii-diff": "^1.132.0",
58
58
  "jsii-docgen": "^10.5.0",
59
- "jsii-pacmak": "^1.131.0",
59
+ "jsii-pacmak": "^1.132.0",
60
60
  "jsii-rosetta": "~5.9.0",
61
61
  "projen": "^0.99.63",
62
- "ts-jest": "^29.4.10",
62
+ "ts-jest": "^29.4.11",
63
63
  "ts-node": "^10.9.2",
64
64
  "typescript": "^6.0.3"
65
65
  },
@@ -91,7 +91,7 @@
91
91
  "publishConfig": {
92
92
  "access": "public"
93
93
  },
94
- "version": "0.0.16",
94
+ "version": "0.1.1",
95
95
  "jest": {
96
96
  "coverageProvider": "v8",
97
97
  "testMatch": [