@rio-cloud/cdk-v2-constructs 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -36,7 +36,7 @@ var DataDogLoggingMode;
36
36
  })(DataDogLoggingMode = exports.DataDogLoggingMode || (exports.DataDogLoggingMode = {}));
37
37
  class RioFargateService extends constructs_1.Construct {
38
38
  constructor(scope, id, props) {
39
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
39
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
40
40
  super(scope, id);
41
41
  this.DEFAULT_APM_GET_ENDPOINTS_TO_IGNORE = [];
42
42
  this.DEFAULT_DATADOG_SIDECAR_CPU = 64;
@@ -56,17 +56,21 @@ class RioFargateService extends constructs_1.Construct {
56
56
  this.taskDefinition = new ecs.FargateTaskDefinition(this, 'TaskDefinition', {
57
57
  cpu: fargateOptions.cpu,
58
58
  memoryLimitMiB: fargateOptions.memoryLimitMiB,
59
+ runtimePlatform: {
60
+ cpuArchitecture: (_c = (_b = fargateOptions.runtimePlatform) === null || _b === void 0 ? void 0 : _b.cpuArchitecture) !== null && _c !== void 0 ? _c : ecs.CpuArchitecture.X86_64,
61
+ operatingSystemFamily: (_e = (_d = fargateOptions.runtimePlatform) === null || _d === void 0 ? void 0 : _d.operatingSystemFamily) !== null && _e !== void 0 ? _e : ecs.OperatingSystemFamily.LINUX,
62
+ },
59
63
  });
60
64
  const accountName = ssm.StringParameter.fromStringParameterName(this, 'AccountName', '/config/account/name').stringValue;
61
65
  const teamName = ssm.StringParameter.fromStringParameterName(this, 'TeamName', '/config/team/name').stringValue;
62
66
  const teamIdentifier = ssm.StringParameter.fromStringParameterName(this, 'TeamIdentifier', '/config/team/identifier').stringValue;
63
67
  const datadogSite = ssm.StringParameter.fromStringParameterName(this, 'DatadogSite', '/rio/config/datadog-integration/site').stringValue;
64
68
  const datadogApiKeyParameter = ssm.StringParameter.fromStringParameterName(this, 'DatadogApiKey', '/rio/config/datadog-integration/api-key');
65
- const datadogSidecarCpu = (_b = datadogOptions === null || datadogOptions === void 0 ? void 0 : datadogOptions.cpu) !== null && _b !== void 0 ? _b : this.DEFAULT_DATADOG_SIDECAR_CPU;
66
- const datadogSidecarMemoryMiB = (_c = datadogOptions === null || datadogOptions === void 0 ? void 0 : datadogOptions.memoryLimitMiB) !== null && _c !== void 0 ? _c : this.DEFAULT_DATADOG_SIDECAR_MEMORY_LIMIT_MIB;
67
- const datadogSidecarEssential = (_d = datadogOptions === null || datadogOptions === void 0 ? void 0 : datadogOptions.datadogSidecarEssential) !== null && _d !== void 0 ? _d : this.DEFAULT_DATADOG_SIDECAR_ESSENTIAL;
68
- const loggingModeForService = (_e = datadogOptions === null || datadogOptions === void 0 ? void 0 : datadogOptions.loggingModeForService) !== null && _e !== void 0 ? _e : this.DEFAULT_LOGGING_MODE_FOR_SERVICE;
69
- const loggingModeForDatadogAgent = (_f = datadogOptions === null || datadogOptions === void 0 ? void 0 : datadogOptions.loggingModeForDatadogAgent) !== null && _f !== void 0 ? _f : this.DEFAULT_LOGGING_MODE_FOR_DATADOG_SIDECAR;
69
+ const datadogSidecarCpu = (_f = datadogOptions === null || datadogOptions === void 0 ? void 0 : datadogOptions.cpu) !== null && _f !== void 0 ? _f : this.DEFAULT_DATADOG_SIDECAR_CPU;
70
+ const datadogSidecarMemoryMiB = (_g = datadogOptions === null || datadogOptions === void 0 ? void 0 : datadogOptions.memoryLimitMiB) !== null && _g !== void 0 ? _g : this.DEFAULT_DATADOG_SIDECAR_MEMORY_LIMIT_MIB;
71
+ const datadogSidecarEssential = (_h = datadogOptions === null || datadogOptions === void 0 ? void 0 : datadogOptions.datadogSidecarEssential) !== null && _h !== void 0 ? _h : this.DEFAULT_DATADOG_SIDECAR_ESSENTIAL;
72
+ const loggingModeForService = (_j = datadogOptions === null || datadogOptions === void 0 ? void 0 : datadogOptions.loggingModeForService) !== null && _j !== void 0 ? _j : this.DEFAULT_LOGGING_MODE_FOR_SERVICE;
73
+ const loggingModeForDatadogAgent = (_k = datadogOptions === null || datadogOptions === void 0 ? void 0 : datadogOptions.loggingModeForDatadogAgent) !== null && _k !== void 0 ? _k : this.DEFAULT_LOGGING_MODE_FOR_DATADOG_SIDECAR;
70
74
  const fireLensLogRouterRequired = loggingModeForService === DataDogLoggingMode.AWS_FIRE_LENS ||
71
75
  loggingModeForDatadogAgent === DataDogLoggingMode.AWS_FIRE_LENS;
72
76
  let serviceContainerCpuUnits;
@@ -139,11 +143,11 @@ class RioFargateService extends constructs_1.Construct {
139
143
  datadogApiKeyParameter,
140
144
  datadogSite,
141
145
  datadogLoggingMode: loggingModeForDatadogAgent,
142
- apmGetResourcesToIgnore: (_g = datadogOptions === null || datadogOptions === void 0 ? void 0 : datadogOptions.apmGetEndpointsToIgnore) !== null && _g !== void 0 ? _g : this.DEFAULT_APM_GET_ENDPOINTS_TO_IGNORE,
146
+ apmGetResourcesToIgnore: (_l = datadogOptions === null || datadogOptions === void 0 ? void 0 : datadogOptions.apmGetEndpointsToIgnore) !== null && _l !== void 0 ? _l : this.DEFAULT_APM_GET_ENDPOINTS_TO_IGNORE,
143
147
  cpu: datadogSidecarCpu,
144
148
  memoryLimitMiB: datadogSidecarMemoryMiB,
145
149
  essential: datadogSidecarEssential,
146
- containerTag: (_j = (_h = props.datadogOptions) === null || _h === void 0 ? void 0 : _h.datadogSidecarTag) !== null && _j !== void 0 ? _j : this.DEFAULT_DATADOG_SIDECAR_TAG,
150
+ containerTag: (_o = (_m = props.datadogOptions) === null || _m === void 0 ? void 0 : _m.datadogSidecarTag) !== null && _o !== void 0 ? _o : this.DEFAULT_DATADOG_SIDECAR_TAG,
147
151
  additionalTags: datadogOptions === null || datadogOptions === void 0 ? void 0 : datadogOptions.additionalTags,
148
152
  });
149
153
  datadog.ensureLoggingAndMonitoringAreReadyBeforeServiceStarts(this);
@@ -173,8 +177,8 @@ class RioFargateService extends constructs_1.Construct {
173
177
  targetType: elbv2.TargetType.IP,
174
178
  targets: [this.service],
175
179
  healthCheck: loadBalancerOptions.healthCheck,
176
- slowStart: (_l = (_k = props.loadBalancerOptions) === null || _k === void 0 ? void 0 : _k.slowStart) !== null && _l !== void 0 ? _l : this.DEFAULT_SLOW_START,
177
- deregistrationDelay: (_o = (_m = props.loadBalancerOptions) === null || _m === void 0 ? void 0 : _m.deregistrationDelay) !== null && _o !== void 0 ? _o : this.DEFAULT_DEREGISTRATION_DELAY,
180
+ slowStart: (_q = (_p = props.loadBalancerOptions) === null || _p === void 0 ? void 0 : _p.slowStart) !== null && _q !== void 0 ? _q : this.DEFAULT_SLOW_START,
181
+ deregistrationDelay: (_s = (_r = props.loadBalancerOptions) === null || _r === void 0 ? void 0 : _r.deregistrationDelay) !== null && _s !== void 0 ? _s : this.DEFAULT_DEREGISTRATION_DELAY,
178
182
  });
179
183
  loadBalancerOptions.listenerRules.forEach(({ priority, conditions }) => {
180
184
  loadBalancerOptions.listener.addTargetGroups(`Priority${priority}ListenerRule`, {
@@ -185,7 +189,7 @@ class RioFargateService extends constructs_1.Construct {
185
189
  });
186
190
  }
187
191
  this.node.addValidation(new BlacklistedKeyValidator(RioFargateService.DD_ENV_BLACKLIST, props.containerDefinitionOption.environment, it => `Environment ${it} is not allowed to be set. This value will be infered from the account or other properties.`));
188
- this.node.addValidation(new BlacklistedKeyValidator(RioFargateService.DD_TAG_BLACKLIST, (_p = props.datadogOptions) === null || _p === void 0 ? void 0 : _p.additionalTags, it => `Tag ${it} is not allowed to be set. This value will be infered from the account or other properties.`));
192
+ this.node.addValidation(new BlacklistedKeyValidator(RioFargateService.DD_TAG_BLACKLIST, (_t = props.datadogOptions) === null || _t === void 0 ? void 0 : _t.additionalTags, it => `Tag ${it} is not allowed to be set. This value will be infered from the account or other properties.`));
189
193
  }
190
194
  }
191
195
  exports.RioFargateService = RioFargateService;
@@ -227,4 +231,4 @@ class BlacklistedKeyValidator {
227
231
  return result;
228
232
  }
229
233
  }
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWZhcmdhdGUtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYXJnYXRlL3Jpby1mYXJnYXRlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSw2Q0FBdUM7QUFFdkMsMkNBQTJDO0FBQzNDLGdFQUFnRTtBQUNoRSwyQ0FBMkM7QUFDM0MsMkNBQW9EO0FBQ3BELHFDQUFxQztBQUNyQyxxQ0FBa0M7QUFzRGxDLElBQVksU0FLWDtBQUxELFdBQVksU0FBUztJQUNuQjs7T0FFRztJQUNILDZDQUFNLENBQUE7QUFDUixDQUFDLEVBTFcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFLcEI7QUE2TkQsSUFBWSxrQkFpQlg7QUFqQkQsV0FBWSxrQkFBa0I7SUFDNUI7OztPQUdHO0lBQ0gsNkVBQWEsQ0FBQTtJQUViOzs7T0FHRztJQUNILG1GQUFnQixDQUFBO0lBRWhCOztPQUVHO0lBQ0gsMkRBQUksQ0FBQTtBQUNOLENBQUMsRUFqQlcsa0JBQWtCLEdBQWxCLDBCQUFrQixLQUFsQiwwQkFBa0IsUUFpQjdCO0FBRUQsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQTJDOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2Qjs7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQXZCRix3Q0FBbUMsR0FBYSxFQUFFLENBQUM7UUFDbkQsZ0NBQTJCLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLDZDQUF3QyxHQUFHLEdBQUcsQ0FBQztRQUMvQyxzQ0FBaUMsR0FBRyxJQUFJLENBQUM7UUFDekMscUNBQWdDLEdBQUcsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUM7UUFDdkUsNkNBQXdDLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1FBQ25FLGlDQUE0QixHQUFHLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELHVCQUFrQixHQUFHLFNBQVMs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O0lBQ1QsWUFBWTtJQUNaLGNBQWM7SUFDZCxRQUFRO0lBQ1IsTUFBTTtJQUNOLGlCQUFpQjtDQUNsQixDQUFDO0FBd01KLE1BQU0sdUJBQXVCO0lBQzNCLFlBQ21CLFNBQW1CLEVBQ25CLElBQXdDLEVBQ3hDLGdCQUE2QztRQUY3QyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQW9DO1FBQ3hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBNkI7SUFDN0QsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzdDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3MnO1xuaW1wb3J0ICogYXMgZWxidjIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0ICogYXMgc3NtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJVmFsaWRhdGlvbiB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgZGF0YWRvZyBmcm9tICcuL2RhdGFkb2cnO1xuaW1wb3J0IHsgU3ByaW5nIH0gZnJvbSAnLi9zcHJpbmcnO1xuXG4vKipcbiAqIEZhcmdhdGUgVGFzayBEZWZpbml0aW9uIFByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmlvRmFyZ2F0ZVNlcnZpY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc3RhZ2Ugb2YgdGhlIHNlcnZpY2UsIGUuZy4gJ3Byb2QnLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE5hbWUgb2YgdGhlIHNlcnZpY2UuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgc2VydmljZSwgZS5nLiB0aGUgZ2l0IGhhc2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgY29tbWl0LlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZnJhbWV3b3JrcyBpbiB1c2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZyYW1ld29ya3MuXG4gICAqL1xuICByZWFkb25seSBmcmFtZXdvcmtzPzogRnJhbWV3b3JrW107XG5cbiAgLyoqXG4gICAqIFRoZSBWUEMgb2YgdGhlIHNlcnZpY2UuXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBDb250YWluZXIgZGVmaW5pdGlvbiBvcHRpb25zIGxpa2UgaW1hZ2UsIGNwdSwgbWVtb3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbjogQ29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEZhcmdhdGUgVGFzayBEZWZpbml0aW9uIFByb3BlcnRpZXMuXG4gICAqL1xuICByZWFkb25seSBmYXJnYXRlT3B0aW9uczogRmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHM7XG5cbiAgLyoqXG4gICAqIExvYWRiYWxhbmNlciBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyT3B0aW9ucz86IExvYWRCYWxhbmNlck9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIERhdGFkb2cgaW50ZWdyYXRpb24gcHJvcGVydGllc1xuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWRvZ09wdGlvbnM/OiBEYXRhZG9nSW50ZWdyYXRpb25Qcm9wcztcbn1cblxuZXhwb3J0IGVudW0gRnJhbWV3b3JrIHtcbiAgLyoqXG4gICAqIFNwcmluZyBGcmFtZXdvcmssIFNwcmluZyBCb290LCBhbmQgU3ByaW5nIENsb3VkIEFXUy5cbiAgICovXG4gIFNQUklORyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250YWluZXJEZWZpbml0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgaW1hZ2UgdXNlZCB0byBzdGFydCBhIGNvbnRhaW5lci5cbiAgICpcbiAgICogVGhpcyBzdHJpbmcgaXMgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZSBEb2NrZXIgZGFlbW9uLlxuICAgKiBJbWFnZXMgaW4gdGhlIERvY2tlciBIdWIgcmVnaXN0cnkgYXJlIGF2YWlsYWJsZSBieSBkZWZhdWx0LlxuICAgKiBPdGhlciByZXBvc2l0b3JpZXMgYXJlIHNwZWNpZmllZCB3aXRoIGVpdGhlciByZXBvc2l0b3J5LXVybC9pbWFnZTp0YWcgb3IgcmVwb3NpdG9yeS11cmwvaW1hZ2VAZGlnZXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U6IGVjcy5Db250YWluZXJJbWFnZTtcblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBwYXNzIHRvIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIFNvbWUgRGF0YWRvZyBzcGVjaWZpYyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkIHRvIGJlIHNldCxcbiAgICogYmVjYXVzZSB0aGV5IGFyZSBzZXQgYXV0b21hdGljYWxseSBvciBjb21wdXRlZCBmcm9tIG90aGVyIGF0dHJpYnV0ZXMuXG4gICAqIFRoZXNlIGFyZTpcbiAgICogKiBERF9FTlY6IFNldCBzYW1lIGFzIHByb3Agc3RhZ2VcbiAgICogKiBERF9TRVJWSUNFOiBTZXQgc2FtZSBhcyBwcm9wIHNlcnZpY2VOYW1lXG4gICAqICogRERfVkVSU0lPTjogU2V0IHNhbWUgYXMgcHJvcCB2ZXJzaW9uXG4gICAqICogRERfVEFHUzogU2V0IHNhbWUgYXMgRGF0YWRvZ0ludGVncmF0aW9uUHJvcHMjYWRkaXRpb25hbFRhZ3NcbiAgICogKiBERF9MT0dTX0lOSkVDVElPTjogdHJ1ZVxuICAgKiBPdGhlciBERF8tcHJlZml4ZWQgdmFpYWJsZSBtYXkgYmUgYWRkZWQgdG8gdGhpcyBsaXN0LlxuICAgKlxuICAgKiBPdGhlciBFbnZpcm9ubWVudCB2YXJpYWJsZXMgc2V0IGJ5IGRlZmF1bHQgYXJlIG92ZXJ3cml0dGVuIGlmIHBhc3NlZC5cbiAgICogVGhlc2UgYXJlOlxuICAgKiAqIEREX1NFUlZJQ0VfTUFQUElORzogZGF0YWJhc2U6ZmFyZ2F0ZS13ZWItYXBwLWF1cm9yYSxqYXZhLWF3cy1zZGs6ZmFyZ2F0ZS13ZWItYXBwLWF3cy1zZGssa2Fma2E6ZmFyZ2F0ZS13ZWItYXBwLWthZmthLG15c3FsOmZhcmdhdGUtd2ViLWFwcC1hdXJvcmFcbiAgICogKiBERF9UUkFDRV9TQU1QTEVfUkFURTogMS4wXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBwYXNzIHRvIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gc2VjcmV0IGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHM/OiB7IFtrZXk6IHN0cmluZ106IGVjcy5TZWNyZXQgfTtcblxuICAvKipcbiAgICogVGhlIGhlYWx0aCBjaGVjayBjb21tYW5kIGFuZCBhc3NvY2lhdGVkIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBmb3IgdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBIZWFsdGggY2hlY2sgY29uZmlndXJhdGlvbiBmcm9tIGNvbnRhaW5lci5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrPzogZWNzLkhlYWx0aENoZWNrO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgY3B1IHVuaXRzIHVzZWQgYnkgdGhlIHRhc2suIEZvciB0YXNrcyB1c2luZyB0aGUgRmFyZ2F0ZSBsYXVuY2ggdHlwZSxcbiAgICogdGhpcyBmaWVsZCBpcyByZXF1aXJlZCBhbmQgeW91IG11c3QgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlcyxcbiAgICogd2hpY2ggZGV0ZXJtaW5lcyB5b3VyIHJhbmdlIG9mIHZhbGlkIHZhbHVlcyBmb3IgdGhlIG1lbW9yeSBwYXJhbWV0ZXI6XG4gICAqXG4gICAqIDI1NiAoLjI1IHZDUFUpIC0gQXZhaWxhYmxlIG1lbW9yeSB2YWx1ZXM6IDUxMiAoMC41IEdCKSwgMTAyNCAoMSBHQiksIDIwNDggKDIgR0IpXG4gICAqXG4gICAqIDUxMiAoLjUgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogMTAyNCAoMSBHQiksIDIwNDggKDIgR0IpLCAzMDcyICgzIEdCKSwgNDA5NiAoNCBHQilcbiAgICpcbiAgICogMTAyNCAoMSB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiAyMDQ4ICgyIEdCKSwgMzA3MiAoMyBHQiksIDQwOTYgKDQgR0IpLCA1MTIwICg1IEdCKSwgNjE0NCAoNiBHQiksIDcxNjggKDcgR0IpLCA4MTkyICg4IEdCKVxuICAgKlxuICAgKiAyMDQ4ICgyIHZDUFUpIC0gQXZhaWxhYmxlIG1lbW9yeSB2YWx1ZXM6IEJldHdlZW4gNDA5NiAoNCBHQikgYW5kIDE2Mzg0ICgxNiBHQikgaW4gaW5jcmVtZW50cyBvZiAxMDI0ICgxIEdCKVxuICAgKlxuICAgKiA0MDk2ICg0IHZDUFUpIC0gQXZhaWxhYmxlIG1lbW9yeSB2YWx1ZXM6IEJldHdlZW4gODE5MiAoOCBHQikgYW5kIDMwNzIwICgzMCBHQikgaW4gaW5jcmVtZW50cyBvZiAxMDI0ICgxIEdCKVxuICAgKlxuICAgKiBAZGVmYXVsdCA1MTJcbiAgICovXG4gIHJlYWRvbmx5IGNwdTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IChpbiBNaUIpIG9mIG1lbW9yeSB1c2VkIGJ5IHRoZSB0YXNrLiBGb3IgdGFza3MgdXNpbmcgdGhlIEZhcmdhdGUgbGF1bmNoIHR5cGUsXG4gICAqIHRoaXMgZmllbGQgaXMgcmVxdWlyZWQgYW5kIHlvdSBtdXN0IHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXMsIHdoaWNoIGRldGVybWluZXMgeW91ciByYW5nZSBvZiB2YWxpZCB2YWx1ZXMgZm9yIHRoZSBjcHUgcGFyYW1ldGVyOlxuICAgKlxuICAgKiA1MTIgKDAuNSBHQiksIDEwMjQgKDEgR0IpLCAyMDQ4ICgyIEdCKSAtIEF2YWlsYWJsZSBjcHUgdmFsdWVzOiAyNTYgKC4yNSB2Q1BVKVxuICAgKlxuICAgKiAxMDI0ICgxIEdCKSwgMjA0OCAoMiBHQiksIDMwNzIgKDMgR0IpLCA0MDk2ICg0IEdCKSAtIEF2YWlsYWJsZSBjcHUgdmFsdWVzOiA1MTIgKC41IHZDUFUpXG4gICAqXG4gICAqIDIwNDggKDIgR0IpLCAzMDcyICgzIEdCKSwgNDA5NiAoNCBHQiksIDUxMjAgKDUgR0IpLCA2MTQ0ICg2IEdCKSwgNzE2OCAoNyBHQiksIDgxOTIgKDggR0IpIC0gQXZhaWxhYmxlIGNwdSB2YWx1ZXM6IDEwMjQgKDEgdkNQVSlcbiAgICpcbiAgICogQmV0d2VlbiA0MDk2ICg0IEdCKSBhbmQgMTYzODQgKDE2IEdCKSBpbiBpbmNyZW1lbnRzIG9mIDEwMjQgKDEgR0IpIC0gQXZhaWxhYmxlIGNwdSB2YWx1ZXM6IDIwNDggKDIgdkNQVSlcbiAgICpcbiAgICogQmV0d2VlbiA4MTkyICg4IEdCKSBhbmQgMzA3MjAgKDMwIEdCKSBpbiBpbmNyZW1lbnRzIG9mIDEwMjQgKDEgR0IpIC0gQXZhaWxhYmxlIGNwdSB2YWx1ZXM6IDQwOTYgKDQgdkNQVSlcbiAgICpcbiAgICogQGRlZmF1bHQgMTAyNFxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5TGltaXRNaUI6IG51bWJlcjtcblxuICAvKipcbiAgICogRGVzaXJlZCBjb3VudCBvZiBydW5uaW5nIHRhc2tzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gV2hlbiBjcmVhdGluZyB0aGUgc2VydmljZSwgZGVmYXVsdCBpcyAxOyB3aGVuIHVwZGF0aW5nIHRoZSBzZXJ2aWNlLCBkZWZhdWx0IHVzZXNcbiAgICogdGhlIGN1cnJlbnQgdGFzayBudW1iZXIuXG4gICAqL1xuICByZWFkb25seSBkZXNpcmVkQ291bnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdGVuZXJSdWxlIHtcbiAgcmVhZG9ubHkgcHJpb3JpdHk6IG51bWJlcjtcblxuICByZWFkb25seSBjb25kaXRpb25zOiBlbGJ2Mi5MaXN0ZW5lckNvbmRpdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlck9wdGlvbnMge1xuICAvKipcbiAgICogTGlzdGVuZXIgZm9yIGFuIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJcbiAgICovXG4gIHJlYWRvbmx5IGxpc3RlbmVyOiBlbGJ2Mi5JQXBwbGljYXRpb25MaXN0ZW5lcjtcblxuICAvKipcbiAgICogT25lIG9yIG1vcmUgcGF0aCBwYXR0ZXJucyB0byBjb21wYXJlIGFnYWluc3QgdGhlIHJlcXVlc3QgVVJMLlxuICAgKiBUaGUgbWF4aW11bSBzaXplIG9mIGVhY2ggc3RyaW5nIGlzIDEyOCBjaGFyYWN0ZXJzLlxuICAgKiBUaGUgY29tcGFyaXNvbiBpcyBjYXNlIHNlbnNpdGl2ZS5cbiAgICogVGhlIGZvbGxvd2luZyB3aWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBzdXBwb3J0ZWQ6ICogKG1hdGNoZXMgMCBvciBtb3JlIGNoYXJhY3RlcnMpIGFuZCA/IChtYXRjaGVzIGV4YWN0bHkgMSBjaGFyYWN0ZXIpLlxuICAgKlxuICAgKiBVcGRhdGUgcmVxdWlyZXM6IE5vIGludGVycnVwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXJSdWxlczogTGlzdGVuZXJSdWxlW107XG5cbiAgLyoqXG4gICAqICBIZWFsdGggY2hlY2sgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrOiBlbGJ2Mi5IZWFsdGhDaGVjaztcblxuICAvKipcbiAgICogIEhlYWx0aCBjaGVjayBncmFjZSBwZXJpb2QuXG4gICAqL1xuICByZWFkb25seSBoZWFsdGhDaGVja0dyYWNlUGVyaW9kOiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHRpbWUgcGVyaW9kIGR1cmluZyB3aGljaCB0aGUgbG9hZCBiYWxhbmNlciBzZW5kcyBhIG5ld2x5IHJlZ2lzdGVyZWQgdGFyZ2V0IGEgbGluZWFybHkgaW5jcmVhc2luZyBzaGFyZSBvZiB0aGUgdHJhZmZpYyB0byB0aGUgdGFyZ2V0IGdyb3VwLlxuXG4gICAqVGhlIHJhbmdlIGlzIDMwLTkwMCBzZWNvbmRzICgxNSBtaW51dGVzKS5cblxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgKi9cbiAgcmVhZG9ubHkgc2xvd1N0YXJ0PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgdGltZSBmb3IgRWxhc3RpYyBMb2FkIEJhbGFuY2luZyB0byB3YWl0IGJlZm9yZSBkZXJlZ2lzdGVyaW5nIGEgdGFyZ2V0LlxuXG4gICAqIFRoZSByYW5nZSBpcyAwLTM2MDAgc2Vjb25kcy5cblxuICAgKiBAZGVmYXVsdCA1XG4gICovXG4gIHJlYWRvbmx5IGRlcmVnaXN0cmF0aW9uRGVsYXk/OiBEdXJhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nSW50ZWdyYXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgQ1BVIHVuaXRzIHRvIHJlc2VydmUgZm9yIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gNjRcbiAgICovXG4gIHJlYWRvbmx5IGNwdT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGFtb3VudCAoaW4gTWlCKSBvZiBtZW1vcnkgdG8gcHJlc2VudCB0byB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBJZiB5b3VyIGNvbnRhaW5lciBhdHRlbXB0cyB0byBleGNlZWQgdGhlIGFsbG9jYXRlZCBtZW1vcnksIHRoZSBjb250YWluZXJcbiAgICogaXMgdGVybWluYXRlZC5cbiAgICpcbiAgICogQXQgbGVhc3Qgb25lIG9mIG1lbW9yeUxpbWl0TWlCIGFuZCBtZW1vcnlSZXNlcnZhdGlvbk1pQiBpcyByZXF1aXJlZCBmb3Igbm9uLUZhcmdhdGUgc2VydmljZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMTI4XG4gICAqL1xuICByZWFkb25seSBtZW1vcnlMaW1pdE1pQj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGxvZ2dpbmcgbW9kZSBmb3IgdGhlIHNlcnZpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNpbmcgdGhlIERhdGFkb2cgbG9nIGZvcndhcmRlciBsYW1iZGEgcHJvdmlkZWQgYnkgdGhlIGRhdGFkb2ctaW50ZWdyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nTW9kZUZvclNlcnZpY2U/OiBEYXRhRG9nTG9nZ2luZ01vZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2dnaW5nIG1vZGUgZm9yIHRoZSBEYXRhZG9nIGFnZW50IHNpZGVjYXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbG9ncyBpbiBEYXRhZG9nLCBDbG91ZHdhdGNoIG9ubHkuXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nTW9kZUZvckRhdGFkb2dBZ2VudD86IERhdGFEb2dMb2dnaW5nTW9kZTtcblxuICAvKipcbiAgICogR0VUIGVuZHBvaW50cyB0byBpZ25vcmUgaW4gRGF0YWRvZydzIEFQTSBvdmVydmlldy4gVGhpcyBpcyB1c2VmdWwgdG8gZmlsdGVyIG91dCBhbGwgaGVhbHRoIGNoZWNrIGNhbGxzLlxuXG4gICAgKiBAZGVmYXVsdCAtIE5vIGVuZHBvaW50cyBhcmUgaWdub3JlZC5cbiAgICAqL1xuICByZWFkb25seSBhcG1HZXRFbmRwb2ludHNUb0lnbm9yZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgaWYgdGhlIERhdGFkb2cgYWdlbnQgc2lkZWNhciBpcyBtYXJrZWQgYXMgZXNzZW50aWFsLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWUuXG4gICAqL1xuICByZWFkb25seSBkYXRhZG9nU2lkZWNhckVzc2VudGlhbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgdGhlIGRvY2tlciBpbWFnZSB0YWcgZm9yIGRhdGFkb2cgc2lkZWNhclxuICAgKiBAZGVmYXVsdCAtICdsYXRlc3QnXG4gICAqL1xuICByZWFkb25seSBkYXRhZG9nU2lkZWNhclRhZz86IHN0cmluZztcblxuICAvKipcbiAgICogQ29uZmlndXJlIGFkZGl0aW9uYWwgdGFncywgd2hpY2ggYXJlIGFwcGVuZGVkIHRvIHRoZSBkZWZhdWx0cyxcbiAgICogV2hlbiB5b3UgZGVmaW5lIGN1c3RvbSB0YWdzIHdlIHdvdWxkIGJlIGdsYWQgaWYgeW91IGNvbnRhY3QgdXMuXG4gICAqIFdlIHdvdWxkIGxpa2UgdG8gbGVhcm4gYWJvdXQgeW91ciB1c2UgY2FzZXMuXG4gICAqXG4gICAqIERlZmF1bHQgdGFncyBhcmUgbm90IGFsbG93ZWQgdG8gYmUgb3ZlcnJpZGRlbiFcbiAgICpcbiAgICogRGVmYXVsdHMgYXJlOlxuICAgKiAqIGVudjogU2V0IHRvIFJpb0ZhcmdhdGVTZXJ2aWNlUHJvcHMjc3RhZ2UgcHJvcFxuICAgKiAqIHNlcnZpY2U6IFNldCB0byBSaW9GYXJnYXRlU2VydmljZVByb3BzI3NlcnZpY2VOYW1lIHByb3BcbiAgICogKiB2ZXJzaW9uOiBTZXQgdG8gUmlvRmFyZ2F0ZVNlcnZpY2VQcm9wcyN2ZXJzaW9uIHByb3BcbiAgICogKiBhY2NvdW50X2lkOiR7YWNjb3VudElEfVxuICAgKiAqIGFjY291bnRfbmFtZToke2FjY291bnROYW1lfVxuICAgKiAqIHJlZ2lvbjoke0FXU1JlZ2lvbn1cbiAgICogKiB0ZWFtOiR7dGVhbU5hbWUgZnJvbSBzc20gcGFyYW0gL2NvbmZpZy90ZWFtL25hbWV9XG4gICAqICogdGVhbV9pZGVudGlmaWVyOiR7dGVhbUlkZW50aWZpZXIgZnJvbSBzc20gcGFyYW0gL2NvbmZpZy90ZWFtL2lkZW50aWZpZXJ9XG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsVGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBlbnVtIERhdGFEb2dMb2dnaW5nTW9kZSB7XG4gIC8qKlxuICAgKiBGb3J3YXJkIGxvZ3MgZGlyZWN0bHkgdG8gRGF0YWRvZyB1c2luZyBBV1MgRmlyZUxlbnMgYXMgbG9nIHJvdXRlcixcbiAgICogc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL2ludGVncmF0aW9ucy9lY3NfZmFyZ2F0ZS8/dGFiPWZsdWVudGJpdGFuZGZpcmVsZW5zI2xvZy1jb2xsZWN0aW9uLlxuICAgKi9cbiAgQVdTX0ZJUkVfTEVOUyxcblxuICAvKipcbiAgICogU3RvcmUgbG9ncyBpbiBBV1MgQ2xvdWR3YXRjaCBhbmQgdXNlIHRoZSBEYXRhZG9nIGxvZyBmb3J3YXJkZXIgbGFtYmRhIHRvIGZvcndhcmQgdGhlIGxvZ3MgdG8gRGF0YWRvZyxcbiAgICogc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL2ludGVncmF0aW9ucy9lY3NfZmFyZ2F0ZS8/dGFiPWxvZ2RyaXZlciNsb2ctY29sbGVjdGlvbi5cbiAgICovXG4gIEZPUldBUkRFUl9MQU1CREEsXG5cbiAgLyoqXG4gICAqIE9ubHkgbG9nIHRvIEFXUyBDbG91ZHdhdGNoIHdpdGhvdXQgZm9yd2FyZGluZyB0aGUgbG9ncyB0byBEYXRhZG9nLlxuICAgKi9cbiAgTk9ORSxcbn1cblxuZXhwb3J0IGNsYXNzIFJpb0ZhcmdhdGVTZXJ2aWNlIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgZWMyLklDb25uZWN0YWJsZSB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRERfRU5WX0JMQUNLTElTVCA9IFtcbiAgICAnRERfRU5WJyxcbiAgICAnRERfVEFHUycsXG4gICAgJ0REX1NFUlZJQ0UnLFxuICAgICdERF9WRVJTSU9OJyxcbiAgICAnRERfTE9HU19JTkpFQ1RJT04nLFxuICBdO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEREX1RBR19CTEFDS0xJU1QgPSBbXG4gICAgJ2VudicsXG4gICAgJ3NlcnZpY2UnLFxuICAgICd2ZXJzaW9uJyxcbiAgICAnYWNjb3VudF9pZCcsXG4gICAgJ2FjY291bnRfbmFtZScsXG4gICAgJ3JlZ2lvbicsXG4gICAgJ3RlYW0nLFxuICAgICd0ZWFtX2lkZW50aWZpZXInLFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9BUE1fR0VUX0VORFBPSU5UU19UT19JR05PUkU6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfQ1BVID0gNjQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfTUVNT1JZX0xJTUlUX01JQiA9IDEyODtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RBVEFET0dfU0lERUNBUl9FU1NFTlRJQUwgPSB0cnVlO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfTE9HR0lOR19NT0RFX0ZPUl9TRVJWSUNFID0gRGF0YURvZ0xvZ2dpbmdNb2RlLkZPUldBUkRFUl9MQU1CREE7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9MT0dHSU5HX01PREVfRk9SX0RBVEFET0dfU0lERUNBUiA9IERhdGFEb2dMb2dnaW5nTW9kZS5OT05FO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREVSRUdJU1RSQVRJT05fREVMQVkgPSBEdXJhdGlvbi5zZWNvbmRzKDUpO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfU0xPV19TVEFSVCA9IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RBVEFET0dfU0lERUNBUl9UQUcgPSAnbGF0ZXN0JztcblxuICBwcml2YXRlIHJlYWRvbmx5IExPR19ST1VURVJfQ1BVID0gNjQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgTE9HX1JPVVRFUl9NRU1PUllfTElNSVRfTUlCID0gNjQ7XG5cbiAgcmVhZG9ubHkgc2VydmljZUNvbnRhaW5lckRlZmluaXRpb246IGVjcy5Db250YWluZXJEZWZpbml0aW9uO1xuICByZWFkb25seSBkYXRhZG9nU2lkZUNhckNvbnRhaW5lckRlZmluaXRpb246IGVjcy5Db250YWluZXJEZWZpbml0aW9uO1xuICByZWFkb25seSBsb2dSb3V0ZXJDb250YWluZXJEZWZpbml0aW9uPzogZWNzLkNvbnRhaW5lckRlZmluaXRpb247XG4gIHJlYWRvbmx5IHRhc2tEZWZpbml0aW9uOiBlY3MuRmFyZ2F0ZVRhc2tEZWZpbml0aW9uO1xuXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25zOiBlYzIuQ29ubmVjdGlvbnM7XG4gIHJlYWRvbmx5IHNlcnZpY2U6IGVjcy5GYXJnYXRlU2VydmljZTtcbiAgcmVhZG9ubHkgdGFyZ2V0R3JvdXA6IGVsYnYyLkFwcGxpY2F0aW9uVGFyZ2V0R3JvdXB8dW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSaW9GYXJnYXRlU2VydmljZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIGxvYWRCYWxhbmNlck9wdGlvbnMsXG4gICAgICB2cGMsXG4gICAgICBmYXJnYXRlT3B0aW9ucyxcbiAgICAgIGRhdGFkb2dPcHRpb25zLFxuICAgICAgc2VydmljZU5hbWUsXG4gICAgICBjb250YWluZXJEZWZpbml0aW9uT3B0aW9uLFxuICAgICAgc3RhZ2UsXG4gICAgICB2ZXJzaW9uLFxuICAgICAgZnJhbWV3b3JrcyxcbiAgICB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCBjbHVzdGVyID0gbmV3IGVjcy5DbHVzdGVyKHRoaXMsICdDbHVzdGVyJywge1xuICAgICAgdnBjOiB2cGMsXG4gICAgfSk7XG4gICAgdGhpcy50YXNrRGVmaW5pdGlvbiA9IG5ldyBlY3MuRmFyZ2F0ZVRhc2tEZWZpbml0aW9uKHRoaXMsICdUYXNrRGVmaW5pdGlvbicsIHtcbiAgICAgIGNwdTogZmFyZ2F0ZU9wdGlvbnMuY3B1LFxuICAgICAgbWVtb3J5TGltaXRNaUI6IGZhcmdhdGVPcHRpb25zLm1lbW9yeUxpbWl0TWlCLFxuICAgIH0pO1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZSh0aGlzLCAnQWNjb3VudE5hbWUnLCAnL2NvbmZpZy9hY2NvdW50L25hbWUnKS5zdHJpbmdWYWx1ZTtcbiAgICBjb25zdCB0ZWFtTmFtZSA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUodGhpcywgJ1RlYW1OYW1lJywgJy9jb25maWcvdGVhbS9uYW1lJykuc3RyaW5nVmFsdWU7XG4gICAgY29uc3QgdGVhbUlkZW50aWZpZXIgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKHRoaXMsICdUZWFtSWRlbnRpZmllcicsICcvY29uZmlnL3RlYW0vaWRlbnRpZmllcicpLnN0cmluZ1ZhbHVlO1xuXG4gICAgY29uc3QgZGF0YWRvZ1NpdGUgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKHRoaXMsICdEYXRhZG9nU2l0ZScsICcvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL3NpdGUnKS5zdHJpbmdWYWx1ZTtcbiAgICBjb25zdCBkYXRhZG9nQXBpS2V5UGFyYW1ldGVyID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZSh0aGlzLCAnRGF0YWRvZ0FwaUtleScsICcvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL2FwaS1rZXknKTtcblxuICAgIGNvbnN0IGRhdGFkb2dTaWRlY2FyQ3B1ID0gZGF0YWRvZ09wdGlvbnM/LmNwdSA/PyB0aGlzLkRFRkFVTFRfREFUQURPR19TSURFQ0FSX0NQVTtcbiAgICBjb25zdCBkYXRhZG9nU2lkZWNhck1lbW9yeU1pQiA9IGRhdGFkb2dPcHRpb25zPy5tZW1vcnlMaW1pdE1pQiA/PyB0aGlzLkRFRkFVTFRfREFUQURPR19TSURFQ0FSX01FTU9SWV9MSU1JVF9NSUI7XG4gICAgY29uc3QgZGF0YWRvZ1NpZGVjYXJFc3NlbnRpYWwgPSBkYXRhZG9nT3B0aW9ucz8uZGF0YWRvZ1NpZGVjYXJFc3NlbnRpYWwgPz8gdGhpcy5ERUZBVUxUX0RBVEFET0dfU0lERUNBUl9FU1NFTlRJQUw7XG5cbiAgICBjb25zdCBsb2dnaW5nTW9kZUZvclNlcnZpY2UgPSBkYXRhZG9nT3B0aW9ucz8ubG9nZ2luZ01vZGVGb3JTZXJ2aWNlID8/IHRoaXMuREVGQVVMVF9MT0dHSU5HX01PREVfRk9SX1NFUlZJQ0U7XG4gICAgY29uc3QgbG9nZ2luZ01vZGVGb3JEYXRhZG9nQWdlbnQgPSBkYXRhZG9nT3B0aW9ucz8ubG9nZ2luZ01vZGVGb3JEYXRhZG9nQWdlbnQgPz8gdGhpcy5ERUZBVUxUX0xPR0dJTkdfTU9ERV9GT1JfREFUQURPR19TSURFQ0FSO1xuICAgIGNvbnN0IGZpcmVMZW5zTG9nUm91dGVyUmVxdWlyZWQgPVxuICAgICAgbG9nZ2luZ01vZGVGb3JTZXJ2aWNlID09PSBEYXRhRG9nTG9nZ2luZ01vZGUuQVdTX0ZJUkVfTEVOUyB8fFxuICAgICAgbG9nZ2luZ01vZGVGb3JEYXRhZG9nQWdlbnQgPT09IERhdGFEb2dMb2dnaW5nTW9kZS5BV1NfRklSRV9MRU5TO1xuXG4gICAgbGV0IHNlcnZpY2VDb250YWluZXJDcHVVbml0cztcbiAgICBsZXQgc2VydmljZUNvbnRhaW5lck1lbW9yeUxpbWl0TWlCO1xuXG4gICAgaWYgKGZpcmVMZW5zTG9nUm91dGVyUmVxdWlyZWQpIHtcbiAgICAgIHNlcnZpY2VDb250YWluZXJDcHVVbml0cyA9IGZhcmdhdGVPcHRpb25zLmNwdSAtIGRhdGFkb2dTaWRlY2FyQ3B1IC0gdGhpcy5MT0dfUk9VVEVSX0NQVTtcbiAgICAgIHNlcnZpY2VDb250YWluZXJNZW1vcnlMaW1pdE1pQiA9IGZhcmdhdGVPcHRpb25zLm1lbW9yeUxpbWl0TWlCIC0gZGF0YWRvZ1NpZGVjYXJNZW1vcnlNaUIgLSB0aGlzLkxPR19ST1VURVJfTUVNT1JZX0xJTUlUX01JQjtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VydmljZUNvbnRhaW5lckNwdVVuaXRzID0gZmFyZ2F0ZU9wdGlvbnMuY3B1IC0gZGF0YWRvZ1NpZGVjYXJDcHU7XG4gICAgICBzZXJ2aWNlQ29udGFpbmVyTWVtb3J5TGltaXRNaUIgPSBmYXJnYXRlT3B0aW9ucy5tZW1vcnlMaW1pdE1pQiAtIGRhdGFkb2dTaWRlY2FyTWVtb3J5TWlCO1xuICAgIH1cbiAgICB0aGlzLnNlcnZpY2VDb250YWluZXJEZWZpbml0aW9uID0gdGhpcy50YXNrRGVmaW5pdGlvbi5hZGRDb250YWluZXIoc2VydmljZU5hbWUsIHtcbiAgICAgIGltYWdlOiBjb250YWluZXJEZWZpbml0aW9uT3B0aW9uLmltYWdlLFxuICAgICAgY3B1OiBzZXJ2aWNlQ29udGFpbmVyQ3B1VW5pdHMsXG4gICAgICBtZW1vcnlMaW1pdE1pQjogc2VydmljZUNvbnRhaW5lck1lbW9yeUxpbWl0TWlCLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgLi4uZGF0YWRvZy5nZXRGYXJnYXRlQ29udGFpbmVyRW52aXJvbm1lbnRWYXJpYWJsZXMoe1xuICAgICAgICAgIHNjb3BlOiB0aGlzLFxuICAgICAgICAgIHN0YWdlLFxuICAgICAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgICAgIHZlcnNpb24sXG4gICAgICAgICAgYWNjb3VudE5hbWUsXG4gICAgICAgICAgdGVhbU5hbWUsXG4gICAgICAgICAgdGVhbUlkZW50aWZpZXIsXG4gICAgICAgICAgYWRkaXRpb25hbFRhZ3M6IGRhdGFkb2dPcHRpb25zPy5hZGRpdGlvbmFsVGFncyxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLmNvbnRhaW5lckRlZmluaXRpb25PcHRpb24uZW52aXJvbm1lbnQsXG4gICAgICB9LFxuICAgICAgZG9ja2VyTGFiZWxzOiB7XG4gICAgICAgIC4uLmRhdGFkb2cuZ2V0RmFyZ2F0ZURvY2tlckxhYmVscyh7IHN0YWdlLCBzZXJ2aWNlTmFtZSwgdmVyc2lvbiB9KSxcbiAgICAgIH0sXG4gICAgICBoZWFsdGhDaGVjazogY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbi5oZWFsdGhDaGVjayxcbiAgICAgIGxvZ2dpbmc6IGRhdGFkb2cuc2V0dXBMb2dnaW5nKHtcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIGFjY291bnROYW1lLFxuICAgICAgICB0ZWFtTmFtZSxcbiAgICAgICAgdGVhbUlkZW50aWZpZXIsXG4gICAgICAgIHN0YWdlLFxuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgdmVyc2lvbixcbiAgICAgICAgZGF0YWRvZ0FwaUtleVBhcmFtZXRlcixcbiAgICAgICAgZGF0YWRvZ0xvZ2dpbmdNb2RlOiBsb2dnaW5nTW9kZUZvclNlcnZpY2UsXG4gICAgICAgIGRhdGFkb2dTaXRlLFxuICAgICAgICBjb250YWluZXJUeXBlOiAnc2VydmljZScsXG4gICAgICAgIGFkZGl0aW9uYWxUYWdzOiBkYXRhZG9nT3B0aW9ucz8uYWRkaXRpb25hbFRhZ3MsXG4gICAgICB9KSxcbiAgICAgIHNlY3JldHM6IGNvbnRhaW5lckRlZmluaXRpb25PcHRpb24uc2VjcmV0cyxcbiAgICB9KTtcblxuICAgIGlmIChmcmFtZXdvcmtzPy5pbmNsdWRlcyhGcmFtZXdvcmsuU1BSSU5HKSkge1xuICAgICAgU3ByaW5nLmFsbG93UGFyYW1ldGVyU3RvcmVBY2Nlc3NGb3JTcHJpbmdDbG91ZEF3cyh0aGlzLCBzZXJ2aWNlTmFtZSwgdGhpcy50YXNrRGVmaW5pdGlvbi50YXNrUm9sZSk7XG4gICAgICBTcHJpbmcuYWxsb3dTZWNyZXRzTWFuYWdlckFjY2Vzc0ZvclNwcmluZ0Nsb3VkQXdzKHRoaXMsIHNlcnZpY2VOYW1lLCB0aGlzLnRhc2tEZWZpbml0aW9uLnRhc2tSb2xlKTtcbiAgICB9XG5cbiAgICBpZiAoZmlyZUxlbnNMb2dSb3V0ZXJSZXF1aXJlZCkge1xuICAgICAgdGhpcy5sb2dSb3V0ZXJDb250YWluZXJEZWZpbml0aW9uID0gZGF0YWRvZy5hZGRGaXJlTGVuc0xvZ1JvdXRlcih7XG4gICAgICAgIHRhc2tEZWZpbml0aW9uOiB0aGlzLnRhc2tEZWZpbml0aW9uLFxuICAgICAgICBjcHU6IHRoaXMuTE9HX1JPVVRFUl9DUFUsXG4gICAgICAgIG1lbW9yeUxpbWl0TWlCOiB0aGlzLkxPR19ST1VURVJfTUVNT1JZX0xJTUlUX01JQixcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmRhdGFkb2dTaWRlQ2FyQ29udGFpbmVyRGVmaW5pdGlvbiA9IGRhdGFkb2cuYWRkRGF0YWRvZ1NpZGVjYXIoe1xuICAgICAgc2NvcGUsXG4gICAgICB0YXNrRGVmaW5pdGlvbjogdGhpcy50YXNrRGVmaW5pdGlvbixcbiAgICAgIGFjY291bnROYW1lLFxuICAgICAgdGVhbU5hbWUsXG4gICAgICB0ZWFtSWRlbnRpZmllcixcbiAgICAgIHN0YWdlLFxuICAgICAgc2VydmljZU5hbWUsXG4gICAgICB2ZXJzaW9uLFxuICAgICAgZGF0YWRvZ0FwaUtleVBhcmFtZXRlcixcbiAgICAgIGRhdGFkb2dTaXRlLFxuICAgICAgZGF0YWRvZ0xvZ2dpbmdNb2RlOiBsb2dnaW5nTW9kZUZvckRhdGFkb2dBZ2VudCxcbiAgICAgIGFwbUdldFJlc291cmNlc1RvSWdub3JlOiBkYXRhZG9nT3B0aW9ucz8uYXBtR2V0RW5kcG9pbnRzVG9JZ25vcmUgPz8gdGhpcy5ERUZBVUxUX0FQTV9HRVRfRU5EUE9JTlRTX1RPX0lHTk9SRSxcbiAgICAgIGNwdTogZGF0YWRvZ1NpZGVjYXJDcHUsXG4gICAgICBtZW1vcnlMaW1pdE1pQjogZGF0YWRvZ1NpZGVjYXJNZW1vcnlNaUIsXG4gICAgICBlc3NlbnRpYWw6IGRhdGFkb2dTaWRlY2FyRXNzZW50aWFsLFxuICAgICAgY29udGFpbmVyVGFnOiBwcm9wcy5kYXRhZG9nT3B0aW9ucz8uZGF0YWRvZ1NpZGVjYXJUYWcgPz8gdGhpcy5ERUZBVUxUX0RBVEFET0dfU0lERUNBUl9UQUcsIC8vIFRoZXNlIGFyZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsXG4gICAgICBhZGRpdGlvbmFsVGFnczogZGF0YWRvZ09wdGlvbnM/LmFkZGl0aW9uYWxUYWdzLFxuICAgIH0pO1xuXG4gICAgZGF0YWRvZy5lbnN1cmVMb2dnaW5nQW5kTW9uaXRvcmluZ0FyZVJlYWR5QmVmb3JlU2VydmljZVN0YXJ0cyh0aGlzKTtcblxuICAgIGNvbnN0IGxvYWRCYWxhbmNlck9wdGlvbnNGb3JGYXJnYXRlU2VydmljZSA9IGxvYWRCYWxhbmNlck9wdGlvbnNcbiAgICAgID8geyBoZWFsdGhDaGVja0dyYWNlUGVyaW9kOiBsb2FkQmFsYW5jZXJPcHRpb25zLmhlYWx0aENoZWNrR3JhY2VQZXJpb2QgfVxuICAgICAgOiB7fTtcblxuICAgIHRoaXMuc2VydmljZSA9IG5ldyBlY3MuRmFyZ2F0ZVNlcnZpY2UodGhpcywgJ1NlcnZpY2UnLCB7XG4gICAgICBjbHVzdGVyLFxuICAgICAgdGFza0RlZmluaXRpb246IHRoaXMudGFza0RlZmluaXRpb24sXG4gICAgICBjaXJjdWl0QnJlYWtlcjogeyByb2xsYmFjazogdHJ1ZSB9LFxuICAgICAgbWF4SGVhbHRoeVBlcmNlbnQ6IDIwMCxcbiAgICAgIG1pbkhlYWx0aHlQZXJjZW50OiAxMDAsXG4gICAgICBkZXNpcmVkQ291bnQ6IGZhcmdhdGVPcHRpb25zPy5kZXNpcmVkQ291bnQsXG4gICAgICAuLi5sb2FkQmFsYW5jZXJPcHRpb25zRm9yRmFyZ2F0ZVNlcnZpY2UsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5zZXJ2aWNlLmNvbm5lY3Rpb25zO1xuXG4gICAgaWYgKGxvYWRCYWxhbmNlck9wdGlvbnMgIT0gbnVsbCkge1xuICAgICAgY29uc3QgY29udGFpbmVyUG9ydCA9IDQ0MztcbiAgICAgIHRoaXMuc2VydmljZUNvbnRhaW5lckRlZmluaXRpb24uYWRkUG9ydE1hcHBpbmdzKHtcbiAgICAgICAgY29udGFpbmVyUG9ydDogY29udGFpbmVyUG9ydCxcbiAgICAgICAgcHJvdG9jb2w6IGVjcy5Qcm90b2NvbC5UQ1AsXG4gICAgICB9KTtcbiAgICAgIHRoaXMudGFyZ2V0R3JvdXAgPSBuZXcgZWxidjIuQXBwbGljYXRpb25UYXJnZXRHcm91cCh0aGlzLCAnVGFyZ2V0R3JvdXAnLCB7XG4gICAgICAgIHZwYzogdnBjLFxuICAgICAgICBwb3J0OiBjb250YWluZXJQb3J0LFxuICAgICAgICBwcm90b2NvbDogZWxidjIuQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQUyxcbiAgICAgICAgdGFyZ2V0VHlwZTogZWxidjIuVGFyZ2V0VHlwZS5JUCxcbiAgICAgICAgdGFyZ2V0czogW3RoaXMuc2VydmljZV0sXG4gICAgICAgIGhlYWx0aENoZWNrOiBsb2FkQmFsYW5jZXJPcHRpb25zLmhlYWx0aENoZWNrLFxuICAgICAgICBzbG93U3RhcnQ6IHByb3BzLmxvYWRCYWxhbmNlck9wdGlvbnM/LnNsb3dTdGFydCA/PyB0aGlzLkRFRkFVTFRfU0xPV19TVEFSVCxcbiAgICAgICAgZGVyZWdpc3RyYXRpb25EZWxheTogcHJvcHMubG9hZEJhbGFuY2VyT3B0aW9ucz8uZGVyZWdpc3RyYXRpb25EZWxheSA/PyB0aGlzLkRFRkFVTFRfREVSRUdJU1RSQVRJT05fREVMQVksXG4gICAgICB9KTtcblxuICAgICAgbG9hZEJhbGFuY2VyT3B0aW9ucy5saXN0ZW5lclJ1bGVzLmZvckVhY2goKHsgcHJpb3JpdHksIGNvbmRpdGlvbnMgfSkgPT4ge1xuICAgICAgICBsb2FkQmFsYW5jZXJPcHRpb25zLmxpc3RlbmVyLmFkZFRhcmdldEdyb3VwcyhgUHJpb3JpdHkke3ByaW9yaXR5fUxpc3RlbmVyUnVsZWAsIHtcbiAgICAgICAgICB0YXJnZXRHcm91cHM6IFt0aGlzLnRhcmdldEdyb3VwIGFzIGVsYnYyLkFwcGxpY2F0aW9uVGFyZ2V0R3JvdXBdLFxuICAgICAgICAgIHByaW9yaXR5OiBwcmlvcml0eSxcbiAgICAgICAgICBjb25kaXRpb25zOiBjb25kaXRpb25zLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKG5ldyBCbGFja2xpc3RlZEtleVZhbGlkYXRvcihcbiAgICAgIFJpb0ZhcmdhdGVTZXJ2aWNlLkREX0VOVl9CTEFDS0xJU1QsXG4gICAgICBwcm9wcy5jb250YWluZXJEZWZpbml0aW9uT3B0aW9uLmVudmlyb25tZW50LFxuICAgICAgaXQgPT4gYEVudmlyb25tZW50ICR7aXR9IGlzIG5vdCBhbGxvd2VkIHRvIGJlIHNldC4gVGhpcyB2YWx1ZSB3aWxsIGJlIGluZmVyZWQgZnJvbSB0aGUgYWNjb3VudCBvciBvdGhlciBwcm9wZXJ0aWVzLmAsXG4gICAgKSk7XG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24obmV3IEJsYWNrbGlzdGVkS2V5VmFsaWRhdG9yKFxuICAgICAgUmlvRmFyZ2F0ZVNlcnZpY2UuRERfVEFHX0JMQUNLTElTVCxcbiAgICAgIHByb3BzLmRhdGFkb2dPcHRpb25zPy5hZGRpdGlvbmFsVGFncyxcbiAgICAgIGl0ID0+IGBUYWcgJHtpdH0gaXMgbm90IGFsbG93ZWQgdG8gYmUgc2V0LiBUaGlzIHZhbHVlIHdpbGwgYmUgaW5mZXJlZCBmcm9tIHRoZSBhY2NvdW50IG9yIG90aGVyIHByb3BlcnRpZXMuYCxcbiAgICApKTtcbiAgfVxufVxuXG5jbGFzcyBCbGFja2xpc3RlZEtleVZhbGlkYXRvciBpbXBsZW1lbnRzIElWYWxpZGF0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBibGFja0xpc3Q6IHN0cmluZ1tdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGljdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VHZW5lcmF0b3I6IChrZXlOYW1lOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgKSB7fVxuXG4gIHZhbGlkYXRlKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMuZGljdCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLmJsYWNrTGlzdC5mb3JFYWNoKGtleU5hbWUgPT4ge1xuICAgICAgaWYgKHRoaXMuZGljdCAmJiBrZXlOYW1lIGluIHRoaXMuZGljdCkge1xuICAgICAgICByZXN1bHQucHVzaCh0aGlzLm1lc3NhZ2VHZW5lcmF0b3Ioa2V5TmFtZSkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWZhcmdhdGUtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYXJnYXRlL3Jpby1mYXJnYXRlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBdUM7QUFFdkMsMkNBQTJDO0FBQzNDLGdFQUFnRTtBQUNoRSwyQ0FBMkM7QUFDM0MsMkNBQW9EO0FBQ3BELHFDQUFxQztBQUNyQyxxQ0FBa0M7QUFzRGxDLElBQVksU0FLWDtBQUxELFdBQVksU0FBUztJQUNuQjs7T0FFRztJQUNILDZDQUFNLENBQUE7QUFDUixDQUFDLEVBTFcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFLcEI7QUFvT0QsSUFBWSxrQkFpQlg7QUFqQkQsV0FBWSxrQkFBa0I7SUFDNUI7OztPQUdHO0lBQ0gsNkVBQWEsQ0FBQTtJQUViOzs7T0FHRztJQUNILG1GQUFnQixDQUFBO0lBRWhCOztPQUVHO0lBQ0gsMkRBQUksQ0FBQTtBQUNOLENBQUMsRUFqQlcsa0JBQWtCLEdBQWxCLDBCQUFrQixLQUFsQiwwQkFBa0IsUUFpQjdCO0FBRUQsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQTJDOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2Qjs7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQXZCRix3Q0FBbUMsR0FBYSxFQUFFLENBQUM7UUFDbkQsZ0NBQTJCLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLDZDQUF3QyxHQUFHLEdBQUcsQ0FBQztRQUMvQyxzQ0FBaUMsR0FBRyxJQUFJLENBQUM7UUFDekMscUNBQWdDLEdBQUcsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUM7UUFDdkUsNkNBQXdDLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1FBQ25FLGlDQUE0QixHQUFHLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELHVCQUFrQixHQUFHLFNBQVMs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LENBQzdHLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBNU5ILDhDQTZOQzs7O0FBM055QixrQ0FBZ0IsR0FBRztJQUN6QyxRQUFRO0lBQ1IsU0FBUztJQUNULFlBQVk7SUFDWixZQUFZO0lBQ1osbUJBQW1CO0NBQ3BCLENBQUM7QUFFc0Isa0NBQWdCLEdBQUc7SUFDekMsS0FBSztJQUNMLFNBQVM7SUFDVCxTQUFTO0lBQ1QsWUFBWTtJQUNaLGNBQWM7SUFDZCxRQUFRO0lBQ1IsTUFBTTtJQUNOLGlCQUFpQjtDQUNsQixDQUFDO0FBNE1KLE1BQU0sdUJBQXVCO0lBQzNCLFlBQ21CLFNBQW1CLEVBQ25CLElBQXdDLEVBQ3hDLGdCQUE2QztRQUY3QyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQW9DO1FBQ3hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBNkI7SUFDN0QsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzdDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGVjcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWNzJztcbmltcG9ydCAqIGFzIGVsYnYyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJztcbmltcG9ydCAqIGFzIHNzbSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3NtJztcbmltcG9ydCB7IENvbnN0cnVjdCwgSVZhbGlkYXRpb24gfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGRhdGFkb2cgZnJvbSAnLi9kYXRhZG9nJztcbmltcG9ydCB7IFNwcmluZyB9IGZyb20gJy4vc3ByaW5nJztcblxuLyoqXG4gKiBGYXJnYXRlIFRhc2sgRGVmaW5pdGlvbiBQcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJpb0ZhcmdhdGVTZXJ2aWNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIHN0YWdlIG9mIHRoZSBzZXJ2aWNlLCBlLmcuICdwcm9kJy5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBOYW1lIG9mIHRoZSBzZXJ2aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHNlcnZpY2UsIGUuZy4gdGhlIGdpdCBoYXNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGNvbW1pdC5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZyYW1ld29ya3MgaW4gdXNlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmcmFtZXdvcmtzLlxuICAgKi9cbiAgcmVhZG9ubHkgZnJhbWV3b3Jrcz86IEZyYW1ld29ya1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIG9mIHRoZSBzZXJ2aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBlYzIuSVZwYztcblxuICAvKipcbiAgICogQ29udGFpbmVyIGRlZmluaXRpb24gb3B0aW9ucyBsaWtlIGltYWdlLCBjcHUsIG1lbW9yeS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhaW5lckRlZmluaXRpb25PcHRpb246IENvbnRhaW5lckRlZmluaXRpb25PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBGYXJnYXRlIFRhc2sgRGVmaW5pdGlvbiBQcm9wZXJ0aWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZmFyZ2F0ZU9wdGlvbnM6IEZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzO1xuXG4gIC8qKlxuICAgKiBMb2FkYmFsYW5jZXIgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlck9wdGlvbnM/OiBMb2FkQmFsYW5jZXJPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBEYXRhZG9nIGludGVncmF0aW9uIHByb3BlcnRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFkb2dPcHRpb25zPzogRGF0YWRvZ0ludGVncmF0aW9uUHJvcHM7XG59XG5cbmV4cG9ydCBlbnVtIEZyYW1ld29yayB7XG4gIC8qKlxuICAgKiBTcHJpbmcgRnJhbWV3b3JrLCBTcHJpbmcgQm9vdCwgYW5kIFNwcmluZyBDbG91ZCBBV1MuXG4gICAqL1xuICBTUFJJTkcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGltYWdlIHVzZWQgdG8gc3RhcnQgYSBjb250YWluZXIuXG4gICAqXG4gICAqIFRoaXMgc3RyaW5nIGlzIHBhc3NlZCBkaXJlY3RseSB0byB0aGUgRG9ja2VyIGRhZW1vbi5cbiAgICogSW1hZ2VzIGluIHRoZSBEb2NrZXIgSHViIHJlZ2lzdHJ5IGFyZSBhdmFpbGFibGUgYnkgZGVmYXVsdC5cbiAgICogT3RoZXIgcmVwb3NpdG9yaWVzIGFyZSBzcGVjaWZpZWQgd2l0aCBlaXRoZXIgcmVwb3NpdG9yeS11cmwvaW1hZ2U6dGFnIG9yIHJlcG9zaXRvcnktdXJsL2ltYWdlQGRpZ2VzdC5cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlOiBlY3MuQ29udGFpbmVySW1hZ2U7XG5cbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gcGFzcyB0byB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBTb21lIERhdGFkb2cgc3BlY2lmaWMgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBub3QgYWxsb3dlZCB0byBiZSBzZXQsXG4gICAqIGJlY2F1c2UgdGhleSBhcmUgc2V0IGF1dG9tYXRpY2FsbHkgb3IgY29tcHV0ZWQgZnJvbSBvdGhlciBhdHRyaWJ1dGVzLlxuICAgKiBUaGVzZSBhcmU6XG4gICAqICogRERfRU5WOiBTZXQgc2FtZSBhcyBwcm9wIHN0YWdlXG4gICAqICogRERfU0VSVklDRTogU2V0IHNhbWUgYXMgcHJvcCBzZXJ2aWNlTmFtZVxuICAgKiAqIEREX1ZFUlNJT046IFNldCBzYW1lIGFzIHByb3AgdmVyc2lvblxuICAgKiAqIEREX1RBR1M6IFNldCBzYW1lIGFzIERhdGFkb2dJbnRlZ3JhdGlvblByb3BzI2FkZGl0aW9uYWxUYWdzXG4gICAqICogRERfTE9HU19JTkpFQ1RJT046IHRydWVcbiAgICogT3RoZXIgRERfLXByZWZpeGVkIHZhaWFibGUgbWF5IGJlIGFkZGVkIHRvIHRoaXMgbGlzdC5cbiAgICpcbiAgICogT3RoZXIgRW52aXJvbm1lbnQgdmFyaWFibGVzIHNldCBieSBkZWZhdWx0IGFyZSBvdmVyd3JpdHRlbiBpZiBwYXNzZWQuXG4gICAqIFRoZXNlIGFyZTpcbiAgICogKiBERF9TRVJWSUNFX01BUFBJTkc6IGRhdGFiYXNlOmZhcmdhdGUtd2ViLWFwcC1hdXJvcmEsamF2YS1hd3Mtc2RrOmZhcmdhdGUtd2ViLWFwcC1hd3Mtc2RrLGthZmthOmZhcmdhdGUtd2ViLWFwcC1rYWZrYSxteXNxbDpmYXJnYXRlLXdlYi1hcHAtYXVyb3JhXG4gICAqICogRERfVFJBQ0VfU0FNUExFX1JBVEU6IDEuMFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIHNlY3JldCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gcGFzcyB0byB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHNlY3JldCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzPzogeyBba2V5OiBzdHJpbmddOiBlY3MuU2VjcmV0IH07XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFsdGggY2hlY2sgY29tbWFuZCBhbmQgYXNzb2NpYXRlZCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgZm9yIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gSGVhbHRoIGNoZWNrIGNvbmZpZ3VyYXRpb24gZnJvbSBjb250YWluZXIuXG4gICAqL1xuICByZWFkb25seSBoZWFsdGhDaGVjaz86IGVjcy5IZWFsdGhDaGVjaztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGYXJnYXRlVGFza0RlZmluaXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGNwdSB1bml0cyB1c2VkIGJ5IHRoZSB0YXNrLiBGb3IgdGFza3MgdXNpbmcgdGhlIEZhcmdhdGUgbGF1bmNoIHR5cGUsXG4gICAqIHRoaXMgZmllbGQgaXMgcmVxdWlyZWQgYW5kIHlvdSBtdXN0IHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXMsXG4gICAqIHdoaWNoIGRldGVybWluZXMgeW91ciByYW5nZSBvZiB2YWxpZCB2YWx1ZXMgZm9yIHRoZSBtZW1vcnkgcGFyYW1ldGVyOlxuICAgKlxuICAgKiAyNTYgKC4yNSB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiA1MTIgKDAuNSBHQiksIDEwMjQgKDEgR0IpLCAyMDQ4ICgyIEdCKVxuICAgKlxuICAgKiA1MTIgKC41IHZDUFUpIC0gQXZhaWxhYmxlIG1lbW9yeSB2YWx1ZXM6IDEwMjQgKDEgR0IpLCAyMDQ4ICgyIEdCKSwgMzA3MiAoMyBHQiksIDQwOTYgKDQgR0IpXG4gICAqXG4gICAqIDEwMjQgKDEgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogMjA0OCAoMiBHQiksIDMwNzIgKDMgR0IpLCA0MDk2ICg0IEdCKSwgNTEyMCAoNSBHQiksIDYxNDQgKDYgR0IpLCA3MTY4ICg3IEdCKSwgODE5MiAoOCBHQilcbiAgICpcbiAgICogMjA0OCAoMiB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiBCZXR3ZWVuIDQwOTYgKDQgR0IpIGFuZCAxNjM4NCAoMTYgR0IpIGluIGluY3JlbWVudHMgb2YgMTAyNCAoMSBHQilcbiAgICpcbiAgICogNDA5NiAoNCB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiBCZXR3ZWVuIDgxOTIgKDggR0IpIGFuZCAzMDcyMCAoMzAgR0IpIGluIGluY3JlbWVudHMgb2YgMTAyNCAoMSBHQilcbiAgICpcbiAgICogQGRlZmF1bHQgNTEyXG4gICAqL1xuICByZWFkb25seSBjcHU6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGFtb3VudCAoaW4gTWlCKSBvZiBtZW1vcnkgdXNlZCBieSB0aGUgdGFzay4gRm9yIHRhc2tzIHVzaW5nIHRoZSBGYXJnYXRlIGxhdW5jaCB0eXBlLFxuICAgKiB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkIGFuZCB5b3UgbXVzdCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzLCB3aGljaCBkZXRlcm1pbmVzIHlvdXIgcmFuZ2Ugb2YgdmFsaWQgdmFsdWVzIGZvciB0aGUgY3B1IHBhcmFtZXRlcjpcbiAgICpcbiAgICogNTEyICgwLjUgR0IpLCAxMDI0ICgxIEdCKSwgMjA0OCAoMiBHQikgLSBBdmFpbGFibGUgY3B1IHZhbHVlczogMjU2ICguMjUgdkNQVSlcbiAgICpcbiAgICogMTAyNCAoMSBHQiksIDIwNDggKDIgR0IpLCAzMDcyICgzIEdCKSwgNDA5NiAoNCBHQikgLSBBdmFpbGFibGUgY3B1IHZhbHVlczogNTEyICguNSB2Q1BVKVxuICAgKlxuICAgKiAyMDQ4ICgyIEdCKSwgMzA3MiAoMyBHQiksIDQwOTYgKDQgR0IpLCA1MTIwICg1IEdCKSwgNjE0NCAoNiBHQiksIDcxNjggKDcgR0IpLCA4MTkyICg4IEdCKSAtIEF2YWlsYWJsZSBjcHUgdmFsdWVzOiAxMDI0ICgxIHZDUFUpXG4gICAqXG4gICAqIEJldHdlZW4gNDA5NiAoNCBHQikgYW5kIDE2Mzg0ICgxNiBHQikgaW4gaW5jcmVtZW50cyBvZiAxMDI0ICgxIEdCKSAtIEF2YWlsYWJsZSBjcHUgdmFsdWVzOiAyMDQ4ICgyIHZDUFUpXG4gICAqXG4gICAqIEJldHdlZW4gODE5MiAoOCBHQikgYW5kIDMwNzIwICgzMCBHQikgaW4gaW5jcmVtZW50cyBvZiAxMDI0ICgxIEdCKSAtIEF2YWlsYWJsZSBjcHUgdmFsdWVzOiA0MDk2ICg0IHZDUFUpXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwMjRcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeUxpbWl0TWlCOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERlc2lyZWQgY291bnQgb2YgcnVubmluZyB0YXNrc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIFdoZW4gY3JlYXRpbmcgdGhlIHNlcnZpY2UsIGRlZmF1bHQgaXMgMTsgd2hlbiB1cGRhdGluZyB0aGUgc2VydmljZSwgZGVmYXVsdCB1c2VzXG4gICAqIHRoZSBjdXJyZW50IHRhc2sgbnVtYmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzaXJlZENvdW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW5nIHN5c3RlbSB0aGF0IHlvdXIgdGFzayBkZWZpbml0aW9ucyBhcmUgcnVubmluZyBvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBVc2luZyBlY3MuT3BlcmF0aW5nU3lzdGVtRmFtaWx5LkxJTlVYIGFuZCBlY3MuQ3B1QXJjaGl0ZWN0dXJlLlg4Nl82NFxuICAgKi9cbiAgcmVhZG9ubHkgcnVudGltZVBsYXRmb3JtPzogZWNzLlJ1bnRpbWVQbGF0Zm9ybTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0ZW5lclJ1bGUge1xuICByZWFkb25seSBwcmlvcml0eTogbnVtYmVyO1xuXG4gIHJlYWRvbmx5IGNvbmRpdGlvbnM6IGVsYnYyLkxpc3RlbmVyQ29uZGl0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBMaXN0ZW5lciBmb3IgYW4gQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlclxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXI6IGVsYnYyLklBcHBsaWNhdGlvbkxpc3RlbmVyO1xuXG4gIC8qKlxuICAgKiBPbmUgb3IgbW9yZSBwYXRoIHBhdHRlcm5zIHRvIGNvbXBhcmUgYWdhaW5zdCB0aGUgcmVxdWVzdCBVUkwuXG4gICAqIFRoZSBtYXhpbXVtIHNpemUgb2YgZWFjaCBzdHJpbmcgaXMgMTI4IGNoYXJhY3RlcnMuXG4gICAqIFRoZSBjb21wYXJpc29uIGlzIGNhc2Ugc2Vuc2l0aXZlLlxuICAgKiBUaGUgZm9sbG93aW5nIHdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZDogKiAobWF0Y2hlcyAwIG9yIG1vcmUgY2hhcmFjdGVycykgYW5kID8gKG1hdGNoZXMgZXhhY3RseSAxIGNoYXJhY3RlcikuXG4gICAqXG4gICAqIFVwZGF0ZSByZXF1aXJlczogTm8gaW50ZXJydXB0aW9uXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lclJ1bGVzOiBMaXN0ZW5lclJ1bGVbXTtcblxuICAvKipcbiAgICogIEhlYWx0aCBjaGVjayBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhbHRoQ2hlY2s6IGVsYnYyLkhlYWx0aENoZWNrO1xuXG4gIC8qKlxuICAgKiAgSGVhbHRoIGNoZWNrIGdyYWNlIHBlcmlvZC5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrR3JhY2VQZXJpb2Q6IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBwZXJpb2QgZHVyaW5nIHdoaWNoIHRoZSBsb2FkIGJhbGFuY2VyIHNlbmRzIGEgbmV3bHkgcmVnaXN0ZXJlZCB0YXJnZXQgYSBsaW5lYXJseSBpbmNyZWFzaW5nIHNoYXJlIG9mIHRoZSB0cmFmZmljIHRvIHRoZSB0YXJnZXQgZ3JvdXAuXG5cbiAgICpUaGUgcmFuZ2UgaXMgMzAtOTAwIHNlY29uZHMgKDE1IG1pbnV0ZXMpLlxuXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAqL1xuICByZWFkb25seSBzbG93U3RhcnQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIGZvciBFbGFzdGljIExvYWQgQmFsYW5jaW5nIHRvIHdhaXQgYmVmb3JlIGRlcmVnaXN0ZXJpbmcgYSB0YXJnZXQuXG5cbiAgICogVGhlIHJhbmdlIGlzIDAtMzYwMCBzZWNvbmRzLlxuXG4gICAqIEBkZWZhdWx0IDVcbiAgKi9cbiAgcmVhZG9ubHkgZGVyZWdpc3RyYXRpb25EZWxheT86IER1cmF0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFkb2dJbnRlZ3JhdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBDUFUgdW5pdHMgdG8gcmVzZXJ2ZSBmb3IgdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSA2NFxuICAgKi9cbiAgcmVhZG9ubHkgY3B1PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IChpbiBNaUIpIG9mIG1lbW9yeSB0byBwcmVzZW50IHRvIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIElmIHlvdXIgY29udGFpbmVyIGF0dGVtcHRzIHRvIGV4Y2VlZCB0aGUgYWxsb2NhdGVkIG1lbW9yeSwgdGhlIGNvbnRhaW5lclxuICAgKiBpcyB0ZXJtaW5hdGVkLlxuICAgKlxuICAgKiBBdCBsZWFzdCBvbmUgb2YgbWVtb3J5TGltaXRNaUIgYW5kIG1lbW9yeVJlc2VydmF0aW9uTWlCIGlzIHJlcXVpcmVkIGZvciBub24tRmFyZ2F0ZSBzZXJ2aWNlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAxMjhcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeUxpbWl0TWlCPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9nZ2luZyBtb2RlIGZvciB0aGUgc2VydmljZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBVc2luZyB0aGUgRGF0YWRvZyBsb2cgZm9yd2FyZGVyIGxhbWJkYSBwcm92aWRlZCBieSB0aGUgZGF0YWRvZy1pbnRlZ3JhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ2dpbmdNb2RlRm9yU2VydmljZT86IERhdGFEb2dMb2dnaW5nTW9kZTtcblxuICAvKipcbiAgICogVGhlIGxvZ2dpbmcgbW9kZSBmb3IgdGhlIERhdGFkb2cgYWdlbnQgc2lkZWNhci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBsb2dzIGluIERhdGFkb2csIENsb3Vkd2F0Y2ggb25seS5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ2dpbmdNb2RlRm9yRGF0YWRvZ0FnZW50PzogRGF0YURvZ0xvZ2dpbmdNb2RlO1xuXG4gIC8qKlxuICAgKiBHRVQgZW5kcG9pbnRzIHRvIGlnbm9yZSBpbiBEYXRhZG9nJ3MgQVBNIG92ZXJ2aWV3LiBUaGlzIGlzIHVzZWZ1bCB0byBmaWx0ZXIgb3V0IGFsbCBoZWFsdGggY2hlY2sgY2FsbHMuXG5cbiAgICAqIEBkZWZhdWx0IC0gTm8gZW5kcG9pbnRzIGFyZSBpZ25vcmVkLlxuICAgICovXG4gIHJlYWRvbmx5IGFwbUdldEVuZHBvaW50c1RvSWdub3JlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBpZiB0aGUgRGF0YWRvZyBhZ2VudCBzaWRlY2FyIGlzIG1hcmtlZCBhcyBlc3NlbnRpYWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFkb2dTaWRlY2FyRXNzZW50aWFsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZmlndXJlcyB0aGUgZG9ja2VyIGltYWdlIHRhZyBmb3IgZGF0YWRvZyBzaWRlY2FyXG4gICAqIEBkZWZhdWx0IC0gJ2xhdGVzdCdcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFkb2dTaWRlY2FyVGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgYWRkaXRpb25hbCB0YWdzLCB3aGljaCBhcmUgYXBwZW5kZWQgdG8gdGhlIGRlZmF1bHRzLFxuICAgKiBXaGVuIHlvdSBkZWZpbmUgY3VzdG9tIHRhZ3Mgd2Ugd291bGQgYmUgZ2xhZCBpZiB5b3UgY29udGFjdCB1cy5cbiAgICogV2Ugd291bGQgbGlrZSB0byBsZWFybiBhYm91dCB5b3VyIHVzZSBjYXNlcy5cbiAgICpcbiAgICogRGVmYXVsdCB0YWdzIGFyZSBub3QgYWxsb3dlZCB0byBiZSBvdmVycmlkZGVuIVxuICAgKlxuICAgKiBEZWZhdWx0cyBhcmU6XG4gICAqICogZW52OiBTZXQgdG8gUmlvRmFyZ2F0ZVNlcnZpY2VQcm9wcyNzdGFnZSBwcm9wXG4gICAqICogc2VydmljZTogU2V0IHRvIFJpb0ZhcmdhdGVTZXJ2aWNlUHJvcHMjc2VydmljZU5hbWUgcHJvcFxuICAgKiAqIHZlcnNpb246IFNldCB0byBSaW9GYXJnYXRlU2VydmljZVByb3BzI3ZlcnNpb24gcHJvcFxuICAgKiAqIGFjY291bnRfaWQ6JHthY2NvdW50SUR9XG4gICAqICogYWNjb3VudF9uYW1lOiR7YWNjb3VudE5hbWV9XG4gICAqICogcmVnaW9uOiR7QVdTUmVnaW9ufVxuICAgKiAqIHRlYW06JHt0ZWFtTmFtZSBmcm9tIHNzbSBwYXJhbSAvY29uZmlnL3RlYW0vbmFtZX1cbiAgICogKiB0ZWFtX2lkZW50aWZpZXI6JHt0ZWFtSWRlbnRpZmllciBmcm9tIHNzbSBwYXJhbSAvY29uZmlnL3RlYW0vaWRlbnRpZmllcn1cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxUYWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGVudW0gRGF0YURvZ0xvZ2dpbmdNb2RlIHtcbiAgLyoqXG4gICAqIEZvcndhcmQgbG9ncyBkaXJlY3RseSB0byBEYXRhZG9nIHVzaW5nIEFXUyBGaXJlTGVucyBhcyBsb2cgcm91dGVyLFxuICAgKiBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2Vjc19mYXJnYXRlLz90YWI9Zmx1ZW50Yml0YW5kZmlyZWxlbnMjbG9nLWNvbGxlY3Rpb24uXG4gICAqL1xuICBBV1NfRklSRV9MRU5TLFxuXG4gIC8qKlxuICAgKiBTdG9yZSBsb2dzIGluIEFXUyBDbG91ZHdhdGNoIGFuZCB1c2UgdGhlIERhdGFkb2cgbG9nIGZvcndhcmRlciBsYW1iZGEgdG8gZm9yd2FyZCB0aGUgbG9ncyB0byBEYXRhZG9nLFxuICAgKiBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2Vjc19mYXJnYXRlLz90YWI9bG9nZHJpdmVyI2xvZy1jb2xsZWN0aW9uLlxuICAgKi9cbiAgRk9SV0FSREVSX0xBTUJEQSxcblxuICAvKipcbiAgICogT25seSBsb2cgdG8gQVdTIENsb3Vkd2F0Y2ggd2l0aG91dCBmb3J3YXJkaW5nIHRoZSBsb2dzIHRvIERhdGFkb2cuXG4gICAqL1xuICBOT05FLFxufVxuXG5leHBvcnQgY2xhc3MgUmlvRmFyZ2F0ZVNlcnZpY2UgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBlYzIuSUNvbm5lY3RhYmxlIHtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERF9FTlZfQkxBQ0tMSVNUID0gW1xuICAgICdERF9FTlYnLFxuICAgICdERF9UQUdTJyxcbiAgICAnRERfU0VSVklDRScsXG4gICAgJ0REX1ZFUlNJT04nLFxuICAgICdERF9MT0dTX0lOSkVDVElPTicsXG4gIF07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRERfVEFHX0JMQUNLTElTVCA9IFtcbiAgICAnZW52JyxcbiAgICAnc2VydmljZScsXG4gICAgJ3ZlcnNpb24nLFxuICAgICdhY2NvdW50X2lkJyxcbiAgICAnYWNjb3VudF9uYW1lJyxcbiAgICAncmVnaW9uJyxcbiAgICAndGVhbScsXG4gICAgJ3RlYW1faWRlbnRpZmllcicsXG4gIF07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0FQTV9HRVRfRU5EUE9JTlRTX1RPX0lHTk9SRTogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RBVEFET0dfU0lERUNBUl9DUFUgPSA2NDtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RBVEFET0dfU0lERUNBUl9NRU1PUllfTElNSVRfTUlCID0gMTI4O1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREFUQURPR19TSURFQ0FSX0VTU0VOVElBTCA9IHRydWU7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9MT0dHSU5HX01PREVfRk9SX1NFUlZJQ0UgPSBEYXRhRG9nTG9nZ2luZ01vZGUuRk9SV0FSREVSX0xBTUJEQTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0xPR0dJTkdfTU9ERV9GT1JfREFUQURPR19TSURFQ0FSID0gRGF0YURvZ0xvZ2dpbmdNb2RlLk5PTkU7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9ERVJFR0lTVFJBVElPTl9ERUxBWSA9IER1cmF0aW9uLnNlY29uZHMoNSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9TTE9XX1NUQVJUID0gdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREFUQURPR19TSURFQ0FSX1RBRyA9ICdsYXRlc3QnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgTE9HX1JPVVRFUl9DUFUgPSA2NDtcbiAgcHJpdmF0ZSByZWFkb25seSBMT0dfUk9VVEVSX01FTU9SWV9MSU1JVF9NSUIgPSA2NDtcblxuICByZWFkb25seSBzZXJ2aWNlQ29udGFpbmVyRGVmaW5pdGlvbjogZWNzLkNvbnRhaW5lckRlZmluaXRpb247XG4gIHJlYWRvbmx5IGRhdGFkb2dTaWRlQ2FyQ29udGFpbmVyRGVmaW5pdGlvbjogZWNzLkNvbnRhaW5lckRlZmluaXRpb247XG4gIHJlYWRvbmx5IGxvZ1JvdXRlckNvbnRhaW5lckRlZmluaXRpb24/OiBlY3MuQ29udGFpbmVyRGVmaW5pdGlvbjtcbiAgcmVhZG9ubHkgdGFza0RlZmluaXRpb246IGVjcy5GYXJnYXRlVGFza0RlZmluaXRpb247XG5cbiAgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucztcbiAgcmVhZG9ubHkgc2VydmljZTogZWNzLkZhcmdhdGVTZXJ2aWNlO1xuICByZWFkb25seSB0YXJnZXRHcm91cDogZWxidjIuQXBwbGljYXRpb25UYXJnZXRHcm91cHx1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJpb0ZhcmdhdGVTZXJ2aWNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3Qge1xuICAgICAgbG9hZEJhbGFuY2VyT3B0aW9ucyxcbiAgICAgIHZwYyxcbiAgICAgIGZhcmdhdGVPcHRpb25zLFxuICAgICAgZGF0YWRvZ09wdGlvbnMsXG4gICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgIGNvbnRhaW5lckRlZmluaXRpb25PcHRpb24sXG4gICAgICBzdGFnZSxcbiAgICAgIHZlcnNpb24sXG4gICAgICBmcmFtZXdvcmtzLFxuICAgIH0gPSBwcm9wcztcblxuICAgIGNvbnN0IGNsdXN0ZXIgPSBuZXcgZWNzLkNsdXN0ZXIodGhpcywgJ0NsdXN0ZXInLCB7XG4gICAgICB2cGM6IHZwYyxcbiAgICB9KTtcbiAgICB0aGlzLnRhc2tEZWZpbml0aW9uID0gbmV3IGVjcy5GYXJnYXRlVGFza0RlZmluaXRpb24odGhpcywgJ1Rhc2tEZWZpbml0aW9uJywge1xuICAgICAgY3B1OiBmYXJnYXRlT3B0aW9ucy5jcHUsXG4gICAgICBtZW1vcnlMaW1pdE1pQjogZmFyZ2F0ZU9wdGlvbnMubWVtb3J5TGltaXRNaUIsXG4gICAgICBydW50aW1lUGxhdGZvcm06IHtcbiAgICAgICAgY3B1QXJjaGl0ZWN0dXJlOiBmYXJnYXRlT3B0aW9ucy5ydW50aW1lUGxhdGZvcm0/LmNwdUFyY2hpdGVjdHVyZSA/PyBlY3MuQ3B1QXJjaGl0ZWN0dXJlLlg4Nl82NCxcbiAgICAgICAgb3BlcmF0aW5nU3lzdGVtRmFtaWx5OiBmYXJnYXRlT3B0aW9ucy5ydW50aW1lUGxhdGZvcm0/Lm9wZXJhdGluZ1N5c3RlbUZhbWlseSA/PyBlY3MuT3BlcmF0aW5nU3lzdGVtRmFtaWx5LkxJTlVYLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBhY2NvdW50TmFtZSA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUodGhpcywgJ0FjY291bnROYW1lJywgJy9jb25maWcvYWNjb3VudC9uYW1lJykuc3RyaW5nVmFsdWU7XG4gICAgY29uc3QgdGVhbU5hbWUgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKHRoaXMsICdUZWFtTmFtZScsICcvY29uZmlnL3RlYW0vbmFtZScpLnN0cmluZ1ZhbHVlO1xuICAgIGNvbnN0IHRlYW1JZGVudGlmaWVyID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZSh0aGlzLCAnVGVhbUlkZW50aWZpZXInLCAnL2NvbmZpZy90ZWFtL2lkZW50aWZpZXInKS5zdHJpbmdWYWx1ZTtcblxuICAgIGNvbnN0IGRhdGFkb2dTaXRlID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZSh0aGlzLCAnRGF0YWRvZ1NpdGUnLCAnL3Jpby9jb25maWcvZGF0YWRvZy1pbnRlZ3JhdGlvbi9zaXRlJykuc3RyaW5nVmFsdWU7XG4gICAgY29uc3QgZGF0YWRvZ0FwaUtleVBhcmFtZXRlciA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUodGhpcywgJ0RhdGFkb2dBcGlLZXknLCAnL3Jpby9jb25maWcvZGF0YWRvZy1pbnRlZ3JhdGlvbi9hcGkta2V5Jyk7XG5cbiAgICBjb25zdCBkYXRhZG9nU2lkZWNhckNwdSA9IGRhdGFkb2dPcHRpb25zPy5jcHUgPz8gdGhpcy5ERUZBVUxUX0RBVEFET0dfU0lERUNBUl9DUFU7XG4gICAgY29uc3QgZGF0YWRvZ1NpZGVjYXJNZW1vcnlNaUIgPSBkYXRhZG9nT3B0aW9ucz8ubWVtb3J5TGltaXRNaUIgPz8gdGhpcy5ERUZBVUxUX0RBVEFET0dfU0lERUNBUl9NRU1PUllfTElNSVRfTUlCO1xuICAgIGNvbnN0IGRhdGFkb2dTaWRlY2FyRXNzZW50aWFsID0gZGF0YWRvZ09wdGlvbnM/LmRhdGFkb2dTaWRlY2FyRXNzZW50aWFsID8/IHRoaXMuREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfRVNTRU5USUFMO1xuXG4gICAgY29uc3QgbG9nZ2luZ01vZGVGb3JTZXJ2aWNlID0gZGF0YWRvZ09wdGlvbnM/LmxvZ2dpbmdNb2RlRm9yU2VydmljZSA/PyB0aGlzLkRFRkFVTFRfTE9HR0lOR19NT0RFX0ZPUl9TRVJWSUNFO1xuICAgIGNvbnN0IGxvZ2dpbmdNb2RlRm9yRGF0YWRvZ0FnZW50ID0gZGF0YWRvZ09wdGlvbnM/LmxvZ2dpbmdNb2RlRm9yRGF0YWRvZ0FnZW50ID8/IHRoaXMuREVGQVVMVF9MT0dHSU5HX01PREVfRk9SX0RBVEFET0dfU0lERUNBUjtcbiAgICBjb25zdCBmaXJlTGVuc0xvZ1JvdXRlclJlcXVpcmVkID1cbiAgICAgIGxvZ2dpbmdNb2RlRm9yU2VydmljZSA9PT0gRGF0YURvZ0xvZ2dpbmdNb2RlLkFXU19GSVJFX0xFTlMgfHxcbiAgICAgIGxvZ2dpbmdNb2RlRm9yRGF0YWRvZ0FnZW50ID09PSBEYXRhRG9nTG9nZ2luZ01vZGUuQVdTX0ZJUkVfTEVOUztcblxuICAgIGxldCBzZXJ2aWNlQ29udGFpbmVyQ3B1VW5pdHM7XG4gICAgbGV0IHNlcnZpY2VDb250YWluZXJNZW1vcnlMaW1pdE1pQjtcblxuICAgIGlmIChmaXJlTGVuc0xvZ1JvdXRlclJlcXVpcmVkKSB7XG4gICAgICBzZXJ2aWNlQ29udGFpbmVyQ3B1VW5pdHMgPSBmYXJnYXRlT3B0aW9ucy5jcHUgLSBkYXRhZG9nU2lkZWNhckNwdSAtIHRoaXMuTE9HX1JPVVRFUl9DUFU7XG4gICAgICBzZXJ2aWNlQ29udGFpbmVyTWVtb3J5TGltaXRNaUIgPSBmYXJnYXRlT3B0aW9ucy5tZW1vcnlMaW1pdE1pQiAtIGRhdGFkb2dTaWRlY2FyTWVtb3J5TWlCIC0gdGhpcy5MT0dfUk9VVEVSX01FTU9SWV9MSU1JVF9NSUI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlcnZpY2VDb250YWluZXJDcHVVbml0cyA9IGZhcmdhdGVPcHRpb25zLmNwdSAtIGRhdGFkb2dTaWRlY2FyQ3B1O1xuICAgICAgc2VydmljZUNvbnRhaW5lck1lbW9yeUxpbWl0TWlCID0gZmFyZ2F0ZU9wdGlvbnMubWVtb3J5TGltaXRNaUIgLSBkYXRhZG9nU2lkZWNhck1lbW9yeU1pQjtcbiAgICB9XG4gICAgdGhpcy5zZXJ2aWNlQ29udGFpbmVyRGVmaW5pdGlvbiA9IHRoaXMudGFza0RlZmluaXRpb24uYWRkQ29udGFpbmVyKHNlcnZpY2VOYW1lLCB7XG4gICAgICBpbWFnZTogY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbi5pbWFnZSxcbiAgICAgIGNwdTogc2VydmljZUNvbnRhaW5lckNwdVVuaXRzLFxuICAgICAgbWVtb3J5TGltaXRNaUI6IHNlcnZpY2VDb250YWluZXJNZW1vcnlMaW1pdE1pQixcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIC4uLmRhdGFkb2cuZ2V0RmFyZ2F0ZUNvbnRhaW5lckVudmlyb25tZW50VmFyaWFibGVzKHtcbiAgICAgICAgICBzY29wZTogdGhpcyxcbiAgICAgICAgICBzdGFnZSxcbiAgICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAgIGFjY291bnROYW1lLFxuICAgICAgICAgIHRlYW1OYW1lLFxuICAgICAgICAgIHRlYW1JZGVudGlmaWVyLFxuICAgICAgICAgIGFkZGl0aW9uYWxUYWdzOiBkYXRhZG9nT3B0aW9ucz8uYWRkaXRpb25hbFRhZ3MsXG4gICAgICAgIH0pLFxuICAgICAgICAuLi5jb250YWluZXJEZWZpbml0aW9uT3B0aW9uLmVudmlyb25tZW50LFxuICAgICAgfSxcbiAgICAgIGRvY2tlckxhYmVsczoge1xuICAgICAgICAuLi5kYXRhZG9nLmdldEZhcmdhdGVEb2NrZXJMYWJlbHMoeyBzdGFnZSwgc2VydmljZU5hbWUsIHZlcnNpb24gfSksXG4gICAgICB9LFxuICAgICAgaGVhbHRoQ2hlY2s6IGNvbnRhaW5lckRlZmluaXRpb25PcHRpb24uaGVhbHRoQ2hlY2ssXG4gICAgICBsb2dnaW5nOiBkYXRhZG9nLnNldHVwTG9nZ2luZyh7XG4gICAgICAgIHNjb3BlLFxuICAgICAgICBhY2NvdW50TmFtZSxcbiAgICAgICAgdGVhbU5hbWUsXG4gICAgICAgIHRlYW1JZGVudGlmaWVyLFxuICAgICAgICBzdGFnZSxcbiAgICAgICAgc2VydmljZU5hbWUsXG4gICAgICAgIHZlcnNpb24sXG4gICAgICAgIGRhdGFkb2dBcGlLZXlQYXJhbWV0ZXIsXG4gICAgICAgIGRhdGFkb2dMb2dnaW5nTW9kZTogbG9nZ2luZ01vZGVGb3JTZXJ2aWNlLFxuICAgICAgICBkYXRhZG9nU2l0ZSxcbiAgICAgICAgY29udGFpbmVyVHlwZTogJ3NlcnZpY2UnLFxuICAgICAgICBhZGRpdGlvbmFsVGFnczogZGF0YWRvZ09wdGlvbnM/LmFkZGl0aW9uYWxUYWdzLFxuICAgICAgfSksXG4gICAgICBzZWNyZXRzOiBjb250YWluZXJEZWZpbml0aW9uT3B0aW9uLnNlY3JldHMsXG4gICAgfSk7XG5cbiAgICBpZiAoZnJhbWV3b3Jrcz8uaW5jbHVkZXMoRnJhbWV3b3JrLlNQUklORykpIHtcbiAgICAgIFNwcmluZy5hbGxvd1BhcmFtZXRlclN0b3JlQWNjZXNzRm9yU3ByaW5nQ2xvdWRBd3ModGhpcywgc2VydmljZU5hbWUsIHRoaXMudGFza0RlZmluaXRpb24udGFza1JvbGUpO1xuICAgICAgU3ByaW5nLmFsbG93U2VjcmV0c01hbmFnZXJBY2Nlc3NGb3JTcHJpbmdDbG91ZEF3cyh0aGlzLCBzZXJ2aWNlTmFtZSwgdGhpcy50YXNrRGVmaW5pdGlvbi50YXNrUm9sZSk7XG4gICAgfVxuXG4gICAgaWYgKGZpcmVMZW5zTG9nUm91dGVyUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMubG9nUm91dGVyQ29udGFpbmVyRGVmaW5pdGlvbiA9IGRhdGFkb2cuYWRkRmlyZUxlbnNMb2dSb3V0ZXIoe1xuICAgICAgICB0YXNrRGVmaW5pdGlvbjogdGhpcy50YXNrRGVmaW5pdGlvbixcbiAgICAgICAgY3B1OiB0aGlzLkxPR19ST1VURVJfQ1BVLFxuICAgICAgICBtZW1vcnlMaW1pdE1pQjogdGhpcy5MT0dfUk9VVEVSX01FTU9SWV9MSU1JVF9NSUIsXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5kYXRhZG9nU2lkZUNhckNvbnRhaW5lckRlZmluaXRpb24gPSBkYXRhZG9nLmFkZERhdGFkb2dTaWRlY2FyKHtcbiAgICAgIHNjb3BlLFxuICAgICAgdGFza0RlZmluaXRpb246IHRoaXMudGFza0RlZmluaXRpb24sXG4gICAgICBhY2NvdW50TmFtZSxcbiAgICAgIHRlYW1OYW1lLFxuICAgICAgdGVhbUlkZW50aWZpZXIsXG4gICAgICBzdGFnZSxcbiAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgdmVyc2lvbixcbiAgICAgIGRhdGFkb2dBcGlLZXlQYXJhbWV0ZXIsXG4gICAgICBkYXRhZG9nU2l0ZSxcbiAgICAgIGRhdGFkb2dMb2dnaW5nTW9kZTogbG9nZ2luZ01vZGVGb3JEYXRhZG9nQWdlbnQsXG4gICAgICBhcG1HZXRSZXNvdXJjZXNUb0lnbm9yZTogZGF0YWRvZ09wdGlvbnM/LmFwbUdldEVuZHBvaW50c1RvSWdub3JlID8/IHRoaXMuREVGQVVMVF9BUE1fR0VUX0VORFBPSU5UU19UT19JR05PUkUsXG4gICAgICBjcHU6IGRhdGFkb2dTaWRlY2FyQ3B1LFxuICAgICAgbWVtb3J5TGltaXRNaUI6IGRhdGFkb2dTaWRlY2FyTWVtb3J5TWlCLFxuICAgICAgZXNzZW50aWFsOiBkYXRhZG9nU2lkZWNhckVzc2VudGlhbCxcbiAgICAgIGNvbnRhaW5lclRhZzogcHJvcHMuZGF0YWRvZ09wdGlvbnM/LmRhdGFkb2dTaWRlY2FyVGFnID8/IHRoaXMuREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfVEFHLCAvLyBUaGVzZSBhcmUgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLFxuICAgICAgYWRkaXRpb25hbFRhZ3M6IGRhdGFkb2dPcHRpb25zPy5hZGRpdGlvbmFsVGFncyxcbiAgICB9KTtcblxuICAgIGRhdGFkb2cuZW5zdXJlTG9nZ2luZ0FuZE1vbml0b3JpbmdBcmVSZWFkeUJlZm9yZVNlcnZpY2VTdGFydHModGhpcyk7XG5cbiAgICBjb25zdCBsb2FkQmFsYW5jZXJPcHRpb25zRm9yRmFyZ2F0ZVNlcnZpY2UgPSBsb2FkQmFsYW5jZXJPcHRpb25zXG4gICAgICA/IHsgaGVhbHRoQ2hlY2tHcmFjZVBlcmlvZDogbG9hZEJhbGFuY2VyT3B0aW9ucy5oZWFsdGhDaGVja0dyYWNlUGVyaW9kIH1cbiAgICAgIDoge307XG5cbiAgICB0aGlzLnNlcnZpY2UgPSBuZXcgZWNzLkZhcmdhdGVTZXJ2aWNlKHRoaXMsICdTZXJ2aWNlJywge1xuICAgICAgY2x1c3RlcixcbiAgICAgIHRhc2tEZWZpbml0aW9uOiB0aGlzLnRhc2tEZWZpbml0aW9uLFxuICAgICAgY2lyY3VpdEJyZWFrZXI6IHsgcm9sbGJhY2s6IHRydWUgfSxcbiAgICAgIG1heEhlYWx0aHlQZXJjZW50OiAyMDAsXG4gICAgICBtaW5IZWFsdGh5UGVyY2VudDogMTAwLFxuICAgICAgZGVzaXJlZENvdW50OiBmYXJnYXRlT3B0aW9ucz8uZGVzaXJlZENvdW50LFxuICAgICAgLi4ubG9hZEJhbGFuY2VyT3B0aW9uc0ZvckZhcmdhdGVTZXJ2aWNlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuc2VydmljZS5jb25uZWN0aW9ucztcblxuICAgIGlmIChsb2FkQmFsYW5jZXJPcHRpb25zICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lclBvcnQgPSA0NDM7XG4gICAgICB0aGlzLnNlcnZpY2VDb250YWluZXJEZWZpbml0aW9uLmFkZFBvcnRNYXBwaW5ncyh7XG4gICAgICAgIGNvbnRhaW5lclBvcnQ6IGNvbnRhaW5lclBvcnQsXG4gICAgICAgIHByb3RvY29sOiBlY3MuUHJvdG9jb2wuVENQLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnRhcmdldEdyb3VwID0gbmV3IGVsYnYyLkFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAodGhpcywgJ1RhcmdldEdyb3VwJywge1xuICAgICAgICB2cGM6IHZwYyxcbiAgICAgICAgcG9ydDogY29udGFpbmVyUG9ydCxcbiAgICAgICAgcHJvdG9jb2w6IGVsYnYyLkFwcGxpY2F0aW9uUHJvdG9jb2wuSFRUUFMsXG4gICAgICAgIHRhcmdldFR5cGU6IGVsYnYyLlRhcmdldFR5cGUuSVAsXG4gICAgICAgIHRhcmdldHM6IFt0aGlzLnNlcnZpY2VdLFxuICAgICAgICBoZWFsdGhDaGVjazogbG9hZEJhbGFuY2VyT3B0aW9ucy5oZWFsdGhDaGVjayxcbiAgICAgICAgc2xvd1N0YXJ0OiBwcm9wcy5sb2FkQmFsYW5jZXJPcHRpb25zPy5zbG93U3RhcnQgPz8gdGhpcy5ERUZBVUxUX1NMT1dfU1RBUlQsXG4gICAgICAgIGRlcmVnaXN0cmF0aW9uRGVsYXk6IHByb3BzLmxvYWRCYWxhbmNlck9wdGlvbnM/LmRlcmVnaXN0cmF0aW9uRGVsYXkgPz8gdGhpcy5ERUZBVUxUX0RFUkVHSVNUUkFUSU9OX0RFTEFZLFxuICAgICAgfSk7XG5cbiAgICAgIGxvYWRCYWxhbmNlck9wdGlvbnMubGlzdGVuZXJSdWxlcy5mb3JFYWNoKCh7IHByaW9yaXR5LCBjb25kaXRpb25zIH0pID0+IHtcbiAgICAgICAgbG9hZEJhbGFuY2VyT3B0aW9ucy5saXN0ZW5lci5hZGRUYXJnZXRHcm91cHMoYFByaW9yaXR5JHtwcmlvcml0eX1MaXN0ZW5lclJ1bGVgLCB7XG4gICAgICAgICAgdGFyZ2V0R3JvdXBzOiBbdGhpcy50YXJnZXRHcm91cCBhcyBlbGJ2Mi5BcHBsaWNhdGlvblRhcmdldEdyb3VwXSxcbiAgICAgICAgICBwcmlvcml0eTogcHJpb3JpdHksXG4gICAgICAgICAgY29uZGl0aW9uczogY29uZGl0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbihuZXcgQmxhY2tsaXN0ZWRLZXlWYWxpZGF0b3IoXG4gICAgICBSaW9GYXJnYXRlU2VydmljZS5ERF9FTlZfQkxBQ0tMSVNULFxuICAgICAgcHJvcHMuY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbi5lbnZpcm9ubWVudCxcbiAgICAgIGl0ID0+IGBFbnZpcm9ubWVudCAke2l0fSBpcyBub3QgYWxsb3dlZCB0byBiZSBzZXQuIFRoaXMgdmFsdWUgd2lsbCBiZSBpbmZlcmVkIGZyb20gdGhlIGFjY291bnQgb3Igb3RoZXIgcHJvcGVydGllcy5gLFxuICAgICkpO1xuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKG5ldyBCbGFja2xpc3RlZEtleVZhbGlkYXRvcihcbiAgICAgIFJpb0ZhcmdhdGVTZXJ2aWNlLkREX1RBR19CTEFDS0xJU1QsXG4gICAgICBwcm9wcy5kYXRhZG9nT3B0aW9ucz8uYWRkaXRpb25hbFRhZ3MsXG4gICAgICBpdCA9PiBgVGFnICR7aXR9IGlzIG5vdCBhbGxvd2VkIHRvIGJlIHNldC4gVGhpcyB2YWx1ZSB3aWxsIGJlIGluZmVyZWQgZnJvbSB0aGUgYWNjb3VudCBvciBvdGhlciBwcm9wZXJ0aWVzLmAsXG4gICAgKSk7XG4gIH1cbn1cblxuY2xhc3MgQmxhY2tsaXN0ZWRLZXlWYWxpZGF0b3IgaW1wbGVtZW50cyBJVmFsaWRhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmxhY2tMaXN0OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlR2VuZXJhdG9yOiAoa2V5TmFtZTogc3RyaW5nKSA9PiBzdHJpbmcsXG4gICkge31cblxuICB2YWxpZGF0ZSgpOiBzdHJpbmdbXSB7XG4gICAgaWYgKCF0aGlzLmRpY3QpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy5ibGFja0xpc3QuZm9yRWFjaChrZXlOYW1lID0+IHtcbiAgICAgIGlmICh0aGlzLmRpY3QgJiYga2V5TmFtZSBpbiB0aGlzLmRpY3QpIHtcbiAgICAgICAgcmVzdWx0LnB1c2godGhpcy5tZXNzYWdlR2VuZXJhdG9yKGtleU5hbWUpKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
@@ -5,7 +5,10 @@ export declare enum ClaidometerTemplate {
5
5
  }
6
6
  export declare enum ClaidometerProduct {
7
7
  LANDING_ZONE = "LandingZone",
8
- TEMPLATE = "Template"
8
+ TEMPLATE = "Template",
9
+ TEST = "Test",
10
+ DATA_LAKE = "DataLake",
11
+ CDK_CONTRIBUTION = "CDK Contribution"
9
12
  }
10
13
  export interface ClaidometerProps {
11
14
  readonly product: ClaidometerProduct;
@@ -14,6 +14,9 @@ var ClaidometerProduct;
14
14
  (function (ClaidometerProduct) {
15
15
  ClaidometerProduct["LANDING_ZONE"] = "LandingZone";
16
16
  ClaidometerProduct["TEMPLATE"] = "Template";
17
+ ClaidometerProduct["TEST"] = "Test";
18
+ ClaidometerProduct["DATA_LAKE"] = "DataLake";
19
+ ClaidometerProduct["CDK_CONTRIBUTION"] = "CDK Contribution";
17
20
  })(ClaidometerProduct = exports.ClaidometerProduct || (exports.ClaidometerProduct = {}));
18
21
  /**
19
22
  * Creates a custom resource to track usage of CLAID prodcuts.
@@ -36,4 +39,4 @@ class Claidometer extends constructs_1.Construct {
36
39
  exports.Claidometer = Claidometer;
37
40
  _a = JSII_RTTI_SYMBOL_1;
38
41
  Claidometer[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.Claidometer", version: "0.0.0" };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWNsYWlkb21ldGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Jpby1jbGFpZG9tZXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE2QztBQUM3QywyQ0FBdUM7QUFFdkMsSUFBWSxtQkFHWDtBQUhELFdBQVksbUJBQW1CO0lBQzdCLDhEQUF1QyxDQUFBO0lBQ3ZDLDREQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUFIVyxtQkFBbUIsR0FBbkIsMkJBQW1CLEtBQW5CLDJCQUFtQixRQUc5QjtBQUVELElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUM1QixrREFBNEIsQ0FBQTtJQUM1QiwyQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsa0JBQWtCLEdBQWxCLDBCQUFrQixLQUFsQiwwQkFBa0IsUUFHN0I7QUFRRDs7R0FFRztBQUNILE1BQWEsV0FBWSxTQUFRLHNCQUFTO0lBRXhDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUN0QyxZQUFZLEVBQUUscUJBQXFCO1lBQ25DLFVBQVUsRUFBRTtnQkFDVixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLE9BQU8sRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDMUIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxhQUFhO2FBQ3hDO1lBQ0QsWUFBWSxFQUNWLGlGQUFpRjtTQUNwRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQWhCSCxrQ0FpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21SZXNvdXJjZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgZW51bSBDbGFpZG9tZXRlclRlbXBsYXRlIHtcbiAgRkFSR0FURV9XRUJfQVBQID0gJ3Jpby1mYXJnYXRlLXdlYi1hcHAnLFxuICBTRVJWRVJMRVNTX0FQUCA9ICdyaW8tc2VydmVybGVzcy1hcHAnXG59XG5cbmV4cG9ydCBlbnVtIENsYWlkb21ldGVyUHJvZHVjdCB7XG4gIExBTkRJTkdfWk9ORSA9ICdMYW5kaW5nWm9uZScsXG4gIFRFTVBMQVRFID0gJ1RlbXBsYXRlJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2xhaWRvbWV0ZXJQcm9wcyB7XG4gIHJlYWRvbmx5IHByb2R1Y3Q6IENsYWlkb21ldGVyUHJvZHVjdDtcbiAgcmVhZG9ubHkgcGFja2FnZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZmVhdHVyZTogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBjdXN0b20gcmVzb3VyY2UgdG8gdHJhY2sgdXNhZ2Ugb2YgQ0xBSUQgcHJvZGN1dHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDbGFpZG9tZXRlciBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENsYWlkb21ldGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsICdDbGFpZG9tZXRlcicsIHtcbiAgICAgIHJlc291cmNlVHlwZTogJ0N1c3RvbTo6Q2xhaWRvbWV0ZXInLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBQcm9kdWN0OiBwcm9wcy5wcm9kdWN0LFxuICAgICAgICBQYWNrYWdlOiBwcm9wcy5wYWNrYWdlTmFtZSxcbiAgICAgICAgRmVhdHVyZTogcHJvcHMuZmVhdHVyZSxcbiAgICAgICAgVmVyc2lvbjogcHJvcHMudmVyc2lvbiB8fCAndW52ZXJzaW9uZWQnLFxuICAgICAgfSxcbiAgICAgIHNlcnZpY2VUb2tlbjpcbiAgICAgICAgJ2Fybjphd3M6c25zOmV1LXdlc3QtMToyMjcxMDE0Mjk5NDc6Y2xhaWQtby1tZXRlci1zbnN0b3BpYzFCRDIxRjhCLTE3QURSQzNDQjRPTEsnLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWNsYWlkb21ldGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Jpby1jbGFpZG9tZXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE2QztBQUM3QywyQ0FBdUM7QUFFdkMsSUFBWSxtQkFHWDtBQUhELFdBQVksbUJBQW1CO0lBQzdCLDhEQUF1QyxDQUFBO0lBQ3ZDLDREQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUFIVyxtQkFBbUIsR0FBbkIsMkJBQW1CLEtBQW5CLDJCQUFtQixRQUc5QjtBQUVELElBQVksa0JBTVg7QUFORCxXQUFZLGtCQUFrQjtJQUM1QixrREFBNEIsQ0FBQTtJQUM1QiwyQ0FBcUIsQ0FBQTtJQUNyQixtQ0FBYSxDQUFBO0lBQ2IsNENBQXNCLENBQUE7SUFDdEIsMkRBQXFDLENBQUE7QUFDdkMsQ0FBQyxFQU5XLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBTTdCO0FBUUQ7O0dBRUc7QUFDSCxNQUFhLFdBQVksU0FBUSxzQkFBUztJQUV4QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSw0QkFBYyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDdEMsWUFBWSxFQUFFLHFCQUFxQjtZQUNuQyxVQUFVLEVBQUU7Z0JBQ1YsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixPQUFPLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQzFCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDdEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksYUFBYTthQUN4QztZQUNELFlBQVksRUFDVixpRkFBaUY7U0FDcEYsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFoQkgsa0NBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGVudW0gQ2xhaWRvbWV0ZXJUZW1wbGF0ZSB7XG4gIEZBUkdBVEVfV0VCX0FQUCA9ICdyaW8tZmFyZ2F0ZS13ZWItYXBwJyxcbiAgU0VSVkVSTEVTU19BUFAgPSAncmlvLXNlcnZlcmxlc3MtYXBwJ1xufVxuXG5leHBvcnQgZW51bSBDbGFpZG9tZXRlclByb2R1Y3Qge1xuICBMQU5ESU5HX1pPTkUgPSAnTGFuZGluZ1pvbmUnLFxuICBURU1QTEFURSA9ICdUZW1wbGF0ZScsXG4gIFRFU1QgPSAnVGVzdCcsXG4gIERBVEFfTEFLRSA9ICdEYXRhTGFrZScsXG4gIENES19DT05UUklCVVRJT04gPSAnQ0RLIENvbnRyaWJ1dGlvbicsXG59XG5leHBvcnQgaW50ZXJmYWNlIENsYWlkb21ldGVyUHJvcHMge1xuICByZWFkb25seSBwcm9kdWN0OiBDbGFpZG9tZXRlclByb2R1Y3Q7XG4gIHJlYWRvbmx5IHBhY2thZ2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZlYXR1cmU6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgY3VzdG9tIHJlc291cmNlIHRvIHRyYWNrIHVzYWdlIG9mIENMQUlEIHByb2RjdXRzLlxuICovXG5leHBvcnQgY2xhc3MgQ2xhaWRvbWV0ZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDbGFpZG9tZXRlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBDdXN0b21SZXNvdXJjZSh0aGlzLCAnQ2xhaWRvbWV0ZXInLCB7XG4gICAgICByZXNvdXJjZVR5cGU6ICdDdXN0b206OkNsYWlkb21ldGVyJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgUHJvZHVjdDogcHJvcHMucHJvZHVjdCxcbiAgICAgICAgUGFja2FnZTogcHJvcHMucGFja2FnZU5hbWUsXG4gICAgICAgIEZlYXR1cmU6IHByb3BzLmZlYXR1cmUsXG4gICAgICAgIFZlcnNpb246IHByb3BzLnZlcnNpb24gfHwgJ3VudmVyc2lvbmVkJyxcbiAgICAgIH0sXG4gICAgICBzZXJ2aWNlVG9rZW46XG4gICAgICAgICdhcm46YXdzOnNuczpldS13ZXN0LTE6MjI3MTAxNDI5OTQ3OmNsYWlkLW8tbWV0ZXItc25zdG9waWMxQkQyMUY4Qi0xN0FEUkMzQ0I0T0xLJyxcbiAgICB9KTtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "main": "lib/index.js",
17
17
  "license": "Apache-2.0",
18
- "version": "2.2.0",
18
+ "version": "2.3.0",
19
19
  "types": "lib/index.d.ts",
20
20
  "stability": "stable",
21
21
  "jsii": {
@@ -36,7 +36,8 @@
36
36
  },
37
37
  "scripts": {
38
38
  "compile": "jsii",
39
- "build": "npm run compile && npm run eslint && npm test",
39
+ "build": "npm run compile && npm run copy-assets && npm run eslint && npm test",
40
+ "copy-assets": "copyfiles --error --up 1 src/contributions/team-transport-two/pipeline/buildspec*.yaml lib",
40
41
  "watch": "jsii -w",
41
42
  "bump": "standard-version",
42
43
  "test": "jest --coverage",
@@ -57,6 +58,7 @@
57
58
  "aws-cdk": "2.20.0",
58
59
  "aws-cdk-lib": "2.20.0",
59
60
  "constructs": "10.0.107",
61
+ "copyfiles": "2.4.1",
60
62
  "esbuild": "0.14.32",
61
63
  "eslint": "8.12.0",
62
64
  "eslint-import-resolver-node": "0.3.6",
package/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "2.2.0"
2
+ "version": "2.3.0"
3
3
  }