aws-cdk 2.174.0 → 2.175.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.
@@ -1 +1 @@
1
- {"aws-cdk-lib": "2.174.0", "constructs": "^10.0.0"}
1
+ {"aws-cdk-lib": "2.175.0", "constructs": "^10.0.0"}
@@ -50,6 +50,8 @@
50
50
  "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": true,
51
51
  "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": false,
52
52
  "@aws-cdk/aws-s3:keepNotificationInImportedBucket": false,
53
+ "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": false,
54
+ "@aws-cdk/aws-ecs:disableEcsImdsBlocking": true,
53
55
  "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": true,
54
56
  "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": true,
55
57
  "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": true,
@@ -28,7 +28,7 @@ function yargsNegativeAlias(negativeAlias, optionToNegate) {
28
28
  * @returns true if the current process is running in a CI environment
29
29
  */
30
30
  function isCI() {
31
- return process.env.CI !== undefined;
31
+ return process.env.CI !== undefined && process.env.CI !== 'false' && process.env.CI !== '0';
32
32
  }
33
33
  /**
34
34
  * Returns the current version of the CLI
@@ -51,4 +51,4 @@ function browserForPlatform() {
51
51
  return 'xdg-open %u';
52
52
  }
53
53
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFyZ3MtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInlhcmdzLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxnREFZQztBQU1ELG9CQUVDO0FBTUQsZ0NBRUM7QUFNRCxnREFTQztBQXJERCw2Q0FBNkM7QUFFN0M7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGtCQUFrQixDQUNoQyxhQUFnQixFQUNoQixjQUFpQjtJQUVqQixPQUFPLENBQUMsSUFBTyxFQUFFLEVBQUU7UUFDakIsMEJBQTBCO1FBQzFCLDhCQUE4QjtRQUM5QixJQUFJLGFBQWEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDaEQsSUFBWSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN4QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsSUFBSTtJQUNsQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsVUFBVTtJQUN4QixPQUFPLE9BQU8sQ0FBQyxlQUFlLENBQUM7QUFDakMsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGtCQUFrQjtJQUNoQyxRQUFRLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixLQUFLLFFBQVE7WUFDWCxPQUFPLFNBQVMsQ0FBQztRQUNuQixLQUFLLE9BQU87WUFDVixPQUFPLFVBQVUsQ0FBQztRQUNwQjtZQUNFLE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdmVyc2lvbiBmcm9tICcuLi8uLi9saWIvdmVyc2lvbic7XG5cbi8qKlxuICogeWFyZ3MgbWlkZGxld2FyZSB0byBuZWdhdGUgYW4gb3B0aW9uIGlmIGEgbmVnYXRpdmUgYWxpYXMgaXMgcHJvdmlkZWRcbiAqIEUuZy4gYC1SYCB3aWxsIGltcGx5IGAtLXJvbGxiYWNrPWZhbHNlYFxuICpcbiAqIEBwYXJhbSBvcHRpb25Ub05lZ2F0ZSBUaGUgbmFtZSBvZiB0aGUgb3B0aW9uIHRvIG5lZ2F0ZSwgZS5nLiBgcm9sbGJhY2tgXG4gKiBAcGFyYW0gbmVnYXRpdmVBbGlhcyBUaGUgYWxpYXMgdGhhdCBzaG91bGQgbmVnYXRlIHRoZSBvcHRpb24sIGUuZy4gYFJgXG4gKiBAcmV0dXJucyBhIG1pZGRsZXdhcmUgZnVuY3Rpb24gdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHlhcmdzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB5YXJnc05lZ2F0aXZlQWxpYXM8VCBleHRlbmRzIHsgW3ggaW4gUyB8IExdOiBib29sZWFuIHwgdW5kZWZpbmVkIH0sIFMgZXh0ZW5kcyBzdHJpbmcsIEwgZXh0ZW5kcyBzdHJpbmc+KFxuICBuZWdhdGl2ZUFsaWFzOiBTLFxuICBvcHRpb25Ub05lZ2F0ZTogTCxcbik6IChhcmd2OiBUKSA9PiBUIHtcbiAgcmV0dXJuIChhcmd2OiBUKSA9PiB7XG4gICAgLy8gaWYgUiBpbiBhcmd2ICYmIGFyZ3ZbUl1cbiAgICAvLyB0aGVuIGFyZ3Zbcm9sbGJhY2tdID0gZmFsc2VcbiAgICBpZiAobmVnYXRpdmVBbGlhcyBpbiBhcmd2ICYmIGFyZ3ZbbmVnYXRpdmVBbGlhc10pIHtcbiAgICAgIChhcmd2IGFzIGFueSlbb3B0aW9uVG9OZWdhdGVdID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBhcmd2O1xuICB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBwcm9jZXNzIGlzIHJ1bm5pbmcgaW4gYSBDSSBlbnZpcm9ubWVudFxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBwcm9jZXNzIGlzIHJ1bm5pbmcgaW4gYSBDSSBlbnZpcm9ubWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDSSgpOiBib29sZWFuIHtcbiAgcmV0dXJuIHByb2Nlc3MuZW52LkNJICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBDTElcbiAqIEByZXR1cm5zIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIENMSVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xpVmVyc2lvbigpOiBzdHJpbmcge1xuICByZXR1cm4gdmVyc2lvbi5ESVNQTEFZX1ZFUlNJT047XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZGVmYXVsdCBicm93c2VyIGNvbW1hbmQgZm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtXG4gKiBAcmV0dXJucyB0aGUgZGVmYXVsdCBicm93c2VyIGNvbW1hbmQgZm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBicm93c2VyRm9yUGxhdGZvcm0oKTogc3RyaW5nIHtcbiAgc3dpdGNoIChwcm9jZXNzLnBsYXRmb3JtKSB7XG4gICAgY2FzZSAnZGFyd2luJzpcbiAgICAgIHJldHVybiAnb3BlbiAldSc7XG4gICAgY2FzZSAnd2luMzInOlxuICAgICAgcmV0dXJuICdzdGFydCAldSc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAneGRnLW9wZW4gJXUnO1xuICB9XG59XG5cbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFyZ3MtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInlhcmdzLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxnREFZQztBQU1ELG9CQUVDO0FBTUQsZ0NBRUM7QUFNRCxnREFTQztBQXJERCw2Q0FBNkM7QUFFN0M7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGtCQUFrQixDQUNoQyxhQUFnQixFQUNoQixjQUFpQjtJQUVqQixPQUFPLENBQUMsSUFBTyxFQUFFLEVBQUU7UUFDakIsMEJBQTBCO1FBQzFCLDhCQUE4QjtRQUM5QixJQUFJLGFBQWEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDaEQsSUFBWSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN4QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsSUFBSTtJQUNsQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDO0FBQzlGLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixVQUFVO0lBQ3hCLE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isa0JBQWtCO0lBQ2hDLFFBQVEsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLEtBQUssUUFBUTtZQUNYLE9BQU8sU0FBUyxDQUFDO1FBQ25CLEtBQUssT0FBTztZQUNWLE9BQU8sVUFBVSxDQUFDO1FBQ3BCO1lBQ0UsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB2ZXJzaW9uIGZyb20gJy4uLy4uL2xpYi92ZXJzaW9uJztcblxuLyoqXG4gKiB5YXJncyBtaWRkbGV3YXJlIHRvIG5lZ2F0ZSBhbiBvcHRpb24gaWYgYSBuZWdhdGl2ZSBhbGlhcyBpcyBwcm92aWRlZFxuICogRS5nLiBgLVJgIHdpbGwgaW1wbHkgYC0tcm9sbGJhY2s9ZmFsc2VgXG4gKlxuICogQHBhcmFtIG9wdGlvblRvTmVnYXRlIFRoZSBuYW1lIG9mIHRoZSBvcHRpb24gdG8gbmVnYXRlLCBlLmcuIGByb2xsYmFja2BcbiAqIEBwYXJhbSBuZWdhdGl2ZUFsaWFzIFRoZSBhbGlhcyB0aGF0IHNob3VsZCBuZWdhdGUgdGhlIG9wdGlvbiwgZS5nLiBgUmBcbiAqIEByZXR1cm5zIGEgbWlkZGxld2FyZSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBwYXNzZWQgdG8geWFyZ3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHlhcmdzTmVnYXRpdmVBbGlhczxUIGV4dGVuZHMgeyBbeCBpbiBTIHwgTF06IGJvb2xlYW4gfCB1bmRlZmluZWQgfSwgUyBleHRlbmRzIHN0cmluZywgTCBleHRlbmRzIHN0cmluZz4oXG4gIG5lZ2F0aXZlQWxpYXM6IFMsXG4gIG9wdGlvblRvTmVnYXRlOiBMLFxuKTogKGFyZ3Y6IFQpID0+IFQge1xuICByZXR1cm4gKGFyZ3Y6IFQpID0+IHtcbiAgICAvLyBpZiBSIGluIGFyZ3YgJiYgYXJndltSXVxuICAgIC8vIHRoZW4gYXJndltyb2xsYmFja10gPSBmYWxzZVxuICAgIGlmIChuZWdhdGl2ZUFsaWFzIGluIGFyZ3YgJiYgYXJndltuZWdhdGl2ZUFsaWFzXSkge1xuICAgICAgKGFyZ3YgYXMgYW55KVtvcHRpb25Ub05lZ2F0ZV0gPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGFyZ3Y7XG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IHByb2Nlc3MgaXMgcnVubmluZyBpbiBhIENJIGVudmlyb25tZW50XG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IHByb2Nlc3MgaXMgcnVubmluZyBpbiBhIENJIGVudmlyb25tZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NJKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gcHJvY2Vzcy5lbnYuQ0kgIT09IHVuZGVmaW5lZCAmJiBwcm9jZXNzLmVudi5DSSAhPT0gJ2ZhbHNlJyAmJiBwcm9jZXNzLmVudi5DSSAhPT0gJzAnO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgQ0xJXG4gKiBAcmV0dXJucyB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBDTElcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsaVZlcnNpb24oKTogc3RyaW5nIHtcbiAgcmV0dXJuIHZlcnNpb24uRElTUExBWV9WRVJTSU9OO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGRlZmF1bHQgYnJvd3NlciBjb21tYW5kIGZvciB0aGUgY3VycmVudCBwbGF0Zm9ybVxuICogQHJldHVybnMgdGhlIGRlZmF1bHQgYnJvd3NlciBjb21tYW5kIGZvciB0aGUgY3VycmVudCBwbGF0Zm9ybVxuICovXG5leHBvcnQgZnVuY3Rpb24gYnJvd3NlckZvclBsYXRmb3JtKCk6IHN0cmluZyB7XG4gIHN3aXRjaCAocHJvY2Vzcy5wbGF0Zm9ybSkge1xuICAgIGNhc2UgJ2Rhcndpbic6XG4gICAgICByZXR1cm4gJ29wZW4gJXUnO1xuICAgIGNhc2UgJ3dpbjMyJzpcbiAgICAgIHJldHVybiAnc3RhcnQgJXUnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ3hkZy1vcGVuICV1JztcbiAgfVxufVxuXG4iXX0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "aws-cdk",
3
3
  "description": "CDK Toolkit, the command line tool for CDK apps",
4
- "version": "2.174.0",
4
+ "version": "2.175.0",
5
5
  "bin": {
6
6
  "cdk": "bin/cdk"
7
7
  },
@@ -67,10 +67,10 @@
67
67
  },
68
68
  "license": "Apache-2.0",
69
69
  "devDependencies": {
70
- "@aws-cdk/cdk-build-tools": "2.174.0-alpha.0",
71
- "@aws-cdk/cli-plugin-contract": "2.174.0",
72
- "@aws-cdk/pkglint": "2.174.0-alpha.0",
73
- "@aws-cdk/cli-args-gen": "2.174.0-alpha.0",
70
+ "@aws-cdk/cdk-build-tools": "2.175.0-alpha.0",
71
+ "@aws-cdk/cli-plugin-contract": "2.175.0",
72
+ "@aws-cdk/pkglint": "2.175.0-alpha.0",
73
+ "@aws-cdk/cli-args-gen": "2.175.0-alpha.0",
74
74
  "@octokit/rest": "^18.12.0",
75
75
  "@types/archiver": "^5.3.4",
76
76
  "@types/fs-extra": "^9.0.13",
@@ -85,7 +85,7 @@
85
85
  "@types/uuid": "^8.3.4",
86
86
  "@types/wrap-ansi": "^3.0.0",
87
87
  "@types/yargs": "^15.0.19",
88
- "aws-cdk-lib": "2.174.0",
88
+ "aws-cdk-lib": "2.175.0",
89
89
  "aws-sdk-client-mock": "^4.0.1",
90
90
  "aws-sdk-client-mock-jest": "^4.0.1",
91
91
  "axios": "^1.7.7",
@@ -102,9 +102,9 @@
102
102
  "ts-mock-imports": "^1.3.16",
103
103
  "xml-js": "^1.6.11",
104
104
  "@aws-cdk/cloud-assembly-schema": "^39.0.0",
105
- "@aws-cdk/cloudformation-diff": "2.174.0",
106
- "@aws-cdk/cx-api": "2.174.0",
107
- "@aws-cdk/region-info": "2.174.0",
105
+ "@aws-cdk/cloudformation-diff": "2.175.0",
106
+ "@aws-cdk/cx-api": "2.175.0",
107
+ "@aws-cdk/region-info": "2.175.0",
108
108
  "@aws-sdk/client-appsync": "3.699.0",
109
109
  "@aws-sdk/client-cloudformation": "3.699.0",
110
110
  "@aws-sdk/client-cloudwatch-logs": "3.699.0",
@@ -2,61 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  /* eslint-disable import/order */
4
4
  const cxschema = require("@aws-cdk/cloud-assembly-schema");
5
- const cxapi = require("@aws-cdk/cx-api");
6
5
  const cloud_assembly_1 = require("../../lib/api/cxapp/cloud-assembly");
7
6
  const context_providers_1 = require("../../lib/context-providers");
8
7
  const util_1 = require("../util");
9
- // Apps on this version of the cxschema don't emit their own metadata resources
10
- // yet, so rely on the CLI to add the Metadata resource in.
11
- const SCHEMA_VERSION_THAT_DOESNT_INCLUDE_METADATA_ITSELF = '2.0.0';
12
8
  describe('AWS::CDK::Metadata', () => {
13
- test('is generated for relocatable stacks from old frameworks', async () => {
14
- const cx = await testCloudExecutable({
15
- env: `aws://${cxapi.UNKNOWN_ACCOUNT}/${cxapi.UNKNOWN_REGION}`,
16
- versionReporting: true,
17
- schemaVersion: SCHEMA_VERSION_THAT_DOESNT_INCLUDE_METADATA_ITSELF,
18
- });
19
- const cxasm = await cx.synthesize();
20
- const result = cxasm.stackById('withouterrors').firstStack;
21
- const metadata = result.template.Resources && result.template.Resources.CDKMetadata;
22
- expect(metadata).toEqual({
23
- Type: 'AWS::CDK::Metadata',
24
- Properties: {
25
- // eslint-disable-next-line @typescript-eslint/no-require-imports
26
- Modules: `${require('../../package.json').name}=${require('../../package.json').version}`,
27
- },
28
- Condition: 'CDKMetadataAvailable',
29
- });
30
- expect(result.template.Conditions?.CDKMetadataAvailable).toBeDefined();
31
- });
32
- test('is generated for stacks in supported regions from old frameworks', async () => {
33
- const cx = await testCloudExecutable({
34
- env: 'aws://012345678912/us-east-1',
35
- versionReporting: true,
36
- schemaVersion: SCHEMA_VERSION_THAT_DOESNT_INCLUDE_METADATA_ITSELF,
37
- });
38
- const cxasm = await cx.synthesize();
39
- const result = cxasm.stackById('withouterrors').firstStack;
40
- const metadata = result.template.Resources && result.template.Resources.CDKMetadata;
41
- expect(metadata).toEqual({
42
- Type: 'AWS::CDK::Metadata',
43
- Properties: {
44
- // eslint-disable-next-line @typescript-eslint/no-require-imports
45
- Modules: `${require('../../package.json').name}=${require('../../package.json').version}`,
46
- },
47
- });
48
- });
49
- test('is not generated for stacks in unsupported regions from old frameworks', async () => {
50
- const cx = await testCloudExecutable({
51
- env: 'aws://012345678912/bermuda-triangle-1337',
52
- versionReporting: true,
53
- schemaVersion: SCHEMA_VERSION_THAT_DOESNT_INCLUDE_METADATA_ITSELF,
54
- });
55
- const cxasm = await cx.synthesize();
56
- const result = cxasm.stackById('withouterrors').firstStack;
57
- const metadata = result.template.Resources && result.template.Resources.CDKMetadata;
58
- expect(metadata).toBeUndefined();
59
- });
60
9
  test('is not generated for new frameworks', async () => {
61
10
  const cx = await testCloudExecutable({
62
11
  env: 'aws://012345678912/us-east-1',
@@ -131,4 +80,4 @@ async function testCloudExecutable({ env, versionReporting = true, schemaVersion
131
80
  cloudExec.configuration.settings.set(['versionReporting'], versionReporting);
132
81
  return cloudExec;
133
82
  }
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtZXhlY3V0YWJsZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWQtZXhlY3V0YWJsZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWlDO0FBQ2pDLDJEQUEyRDtBQUMzRCx5Q0FBeUM7QUFDekMsdUVBQXNFO0FBQ3RFLG1FQUFzRTtBQUN0RSxrQ0FBOEM7QUFFOUMsK0VBQStFO0FBQy9FLDJEQUEyRDtBQUMzRCxNQUFNLGtEQUFrRCxHQUFHLE9BQU8sQ0FBQztBQUVuRSxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQ2xDLElBQUksQ0FBQyx5REFBeUQsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN6RSxNQUFNLEVBQUUsR0FBRyxNQUFNLG1CQUFtQixDQUFDO1lBQ25DLEdBQUcsRUFBRSxTQUFTLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRTtZQUM3RCxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLGFBQWEsRUFBRSxrREFBa0Q7U0FDbEUsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFcEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDM0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQ3BGLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDdkIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixVQUFVLEVBQUU7Z0JBQ1YsaUVBQWlFO2dCQUNqRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsT0FBTyxFQUFF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LENBQUMsQ0FBQztJQUNILGVBQWUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRS9ELE9BQU87SUFDUCxNQUFNLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFDbkcsQ0FBQyxDQUFDLENBQUM7QUFFSCxLQUFLLFVBQVUsbUJBQW1CLENBQ2hDLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixHQUFHLElBQUksRUFBRSxhQUFhLEtBQzBCLEVBQUU7SUFFekUsTUFBTSxTQUFTLEdBQUcsSUFBSSwwQkFBbUIsQ0FBQztRQUN4QyxNQUFNLEVBQUUsQ0FBQztnQkFDUCxTQUFTLEVBQUUsZUFBZTtnQkFDMUIsR0FBRztnQkFDSCxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUU7YUFDMUM7WUFDRDtnQkFDRSxTQUFTLEVBQUUsWUFBWTtnQkFDdkIsR0FBRztnQkFDSCxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFO2dCQUN2QyxRQUFRLEVBQUU7b0JBQ1IsV0FBVyxFQUFFO3dCQUNYOzRCQUNFLElBQUksRUFBRSxRQUFRLENBQUMseUJBQXlCLENBQUMsS0FBSzs0QkFDOUMsSUFBSSxFQUFFLGtCQUFrQjt5QkFDekI7cUJBQ0Y7aUJBQ0Y7YUFDRixDQUFDO1FBQ0YsYUFBYTtLQUNkLENBQUMsQ0FBQztJQUNILFNBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUU3RSxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L29yZGVyICovXG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB7IERlZmF1bHRTZWxlY3Rpb24gfSBmcm9tICcuLi8uLi9saWIvYXBpL2N4YXBwL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IHJlZ2lzdGVyQ29udGV4dFByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vbGliL2NvbnRleHQtcHJvdmlkZXJzJztcbmltcG9ydCB7IE1vY2tDbG91ZEV4ZWN1dGFibGUgfSBmcm9tICcuLi91dGlsJztcblxuLy8gQXBwcyBvbiB0aGlzIHZlcnNpb24gb2YgdGhlIGN4c2NoZW1hIGRvbid0IGVtaXQgdGhlaXIgb3duIG1ldGFkYXRhIHJlc291cmNlc1xuLy8geWV0LCBzbyByZWx5IG9uIHRoZSBDTEkgdG8gYWRkIHRoZSBNZXRhZGF0YSByZXNvdXJjZSBpbi5cbmNvbnN0IFNDSEVNQV9WRVJTSU9OX1RIQVRfRE9FU05UX0lOQ0xVREVfTUVUQURBVEFfSVRTRUxGID0gJzIuMC4wJztcblxuZGVzY3JpYmUoJ0FXUzo6Q0RLOjpNZXRhZGF0YScsICgpID0+IHtcbiAgdGVzdCgnaXMgZ2VuZXJhdGVkIGZvciByZWxvY2F0YWJsZSBzdGFja3MgZnJvbSBvbGQgZnJhbWV3b3JrcycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjeCA9IGF3YWl0IHRlc3RDbG91ZEV4ZWN1dGFibGUoe1xuICAgICAgZW52OiBgYXdzOi8vJHtjeGFwaS5VTktOT1dOX0FDQ09VTlR9LyR7Y3hhcGkuVU5LTk9XTl9SRUdJT059YCxcbiAgICAgIHZlcnNpb25SZXBvcnRpbmc6IHRydWUsXG4gICAgICBzY2hlbWFWZXJzaW9uOiBTQ0hFTUFfVkVSU0lPTl9USEFUX0RPRVNOVF9JTkNMVURFX01FVEFEQVRBX0lUU0VMRixcbiAgICB9KTtcbiAgICBjb25zdCBjeGFzbSA9IGF3YWl0IGN4LnN5bnRoZXNpemUoKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGN4YXNtLnN0YWNrQnlJZCgnd2l0aG91dGVycm9ycycpLmZpcnN0U3RhY2s7XG4gICAgY29uc3QgbWV0YWRhdGEgPSByZXN1bHQudGVtcGxhdGUuUmVzb3VyY2VzICYmIHJlc3VsdC50ZW1wbGF0ZS5SZXNvdXJjZXMuQ0RLTWV0YWRhdGE7XG4gICAgZXhwZWN0KG1ldGFkYXRhKS50b0VxdWFsKHtcbiAgICAgIFR5cGU6ICdBV1M6OkNESzo6TWV0YWRhdGEnLFxuICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICAgICAgICBNb2R1bGVzOiBgJHtyZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKS5uYW1lfT0ke3JlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpLnZlcnNpb259YCxcbiAgICAgIH0sXG4gICAgICBDb25kaXRpb246ICdDREtNZXRhZGF0YUF2YWlsYWJsZScsXG4gICAgfSk7XG5cbiAgICBleHBlY3QocmVzdWx0LnRlbXBsYXRlLkNvbmRpdGlvbnM/LkNES01ldGFkYXRhQXZhaWxhYmxlKS50b0JlRGVmaW5lZCgpO1xuICB9KTtcblxuICB0ZXN0KCdpcyBnZW5lcmF0ZWQgZm9yIHN0YWNrcyBpbiBzdXBwb3J0ZWQgcmVnaW9ucyBmcm9tIG9sZCBmcmFtZXdvcmtzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGN4ID0gYXdhaXQgdGVzdENsb3VkRXhlY3V0YWJsZSh7XG4gICAgICBlbnY6ICdhd3M6Ly8wMTIzNDU2Nzg5MTIvdXMtZWFzdC0xJyxcbiAgICAgIHZlcnNpb25SZXBvcnRpbmc6IHRydWUsXG4gICAgICBzY2hlbWFWZXJzaW9uOiBTQ0hFTUFfVkVSU0lPTl9USEFUX0RPRVNOVF9JTkNMVURFX01FVEFEQVRBX0lUU0VMRixcbiAgICB9KTtcbiAgICBjb25zdCBjeGFzbSA9IGF3YWl0IGN4LnN5bnRoZXNpemUoKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGN4YXNtLnN0YWNrQnlJZCgnd2l0aG91dGVycm9ycycpLmZpcnN0U3RhY2s7XG4gICAgY29uc3QgbWV0YWRhdGEgPSByZXN1bHQudGVtcGxhdGUuUmVzb3VyY2VzICYmIHJlc3VsdC50ZW1wbGF0ZS5SZXNvdXJjZXMuQ0RLTWV0YWRhdGE7XG4gICAgZXhwZWN0KG1ldGFkYXRhKS50b0VxdWFsKHtcbiAgICAgIFR5cGU6ICdBV1M6OkNESzo6TWV0YWRhdGEnLFxuICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICAgICAgICBNb2R1bGVzOiBgJHtyZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKS5uYW1lfT0ke3JlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpLnZlcnNpb259YCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xuXG4gIHRlc3QoJ2lzIG5vdCBnZW5lcmF0ZWQgZm9yIHN0YWNrcyBpbiB1bnN1cHBvcnRlZCByZWdpb25zIGZyb20gb2xkIGZyYW1ld29ya3MnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY3ggPSBhd2FpdCB0ZXN0Q2xvdWRFeGVjdXRhYmxlKHtcbiAgICAgIGVudjogJ2F3czovLzAxMjM0NTY3ODkxMi9iZXJtdWRhLXRyaWFuZ2xlLTEzMzcnLFxuICAgICAgdmVyc2lvblJlcG9ydGluZzogdHJ1ZSxcbiAgICAgIHNjaGVtYVZlcnNpb246IFNDSEVNQV9WRVJTSU9OX1RIQVRfRE9FU05UX0lOQ0xVREVfTUVUQURBVEFfSVRTRUxGLFxuICAgIH0pO1xuICAgIGNvbnN0IGN4YXNtID0gYXdhaXQgY3guc3ludGhlc2l6ZSgpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gY3hhc20uc3RhY2tCeUlkKCd3aXRob3V0ZXJyb3JzJykuZmlyc3RTdGFjaztcbiAgICBjb25zdCBtZXRhZGF0YSA9IHJlc3VsdC50ZW1wbGF0ZS5SZXNvdXJjZXMgJiYgcmVzdWx0LnRlbXBsYXRlLlJlc291cmNlcy5DREtNZXRhZGF0YTtcbiAgICBleHBlY3QobWV0YWRhdGEpLnRvQmVVbmRlZmluZWQoKTtcbiAgfSk7XG5cbiAgdGVzdCgnaXMgbm90IGdlbmVyYXRlZCBmb3IgbmV3IGZyYW1ld29ya3MnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY3ggPSBhd2FpdCB0ZXN0Q2xvdWRFeGVjdXRhYmxlKHtcbiAgICAgIGVudjogJ2F3czovLzAxMjM0NTY3ODkxMi91cy1lYXN0LTEnLFxuICAgICAgdmVyc2lvblJlcG9ydGluZzogdHJ1ZSxcbiAgICAgIHNjaGVtYVZlcnNpb246ICc4LjAuMCcsXG4gICAgfSk7XG4gICAgY29uc3QgY3hhc20gPSBhd2FpdCBjeC5zeW50aGVzaXplKCk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBjeGFzbS5zdGFja0J5SWQoJ3dpdGhvdXRlcnJvcnMnKS5maXJzdFN0YWNrO1xuICAgIGNvbnN0IG1ldGFkYXRhID0gcmVzdWx0LnRlbXBsYXRlLlJlc291cmNlcyAmJiByZXN1bHQudGVtcGxhdGUuUmVzb3VyY2VzLkNES01ldGFkYXRhO1xuICAgIGV4cGVjdChtZXRhZGF0YSkudG9CZVVuZGVmaW5lZCgpO1xuICB9KTtcbn0pO1xuXG50ZXN0KCdzdG9wIGV4ZWN1dGluZyBpZiBjb250ZXh0IHByb3ZpZGVycyBhcmUgbm90IG1ha2luZyBwcm9ncmVzcycsIGFzeW5jICgpID0+IHtcbiAgcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIoY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkFWQUlMQUJJTElUWV9aT05FX1BST1ZJREVSLCB7XG4gICAgYXN5bmMgZ2V0VmFsdWUoXzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IFByb21pc2U8YW55PiB7XG4gICAgICByZXR1cm4gJ2Zvbyc7XG4gICAgfSxcbiAgfSk7XG5cbiAgY29uc3QgY2xvdWRFeGVjdXRhYmxlID0gbmV3IE1vY2tDbG91ZEV4ZWN1dGFibGUoe1xuICAgIHN0YWNrczogW3tcbiAgICAgIHN0YWNrTmFtZTogJ3RoZXN0YWNrJyxcbiAgICAgIHRlbXBsYXRlOiB7IHJlc291cmNlOiAnbm9lcnJvcnJlc291cmNlJyB9LFxuICAgIH1dLFxuICAgIC8vIEFsd2F5cyByZXR1cm4gdGhlIHNhbWUgbWlzc2luZyBrZXlzLCBzeW50aGVzaXMgc2hvdWxkIHN0aWxsIGZpbmlzaC5cbiAgICBtaXNzaW5nOiBbXG4gICAgICB7IGtleTogJ2FiY2RlZicsIHByb3BzOiB7IGFjY291bnQ6ICcxMzI0JywgcmVnaW9uOiAndXMtZWFzdC0xJyB9LCBwcm92aWRlcjogY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkFWQUlMQUJJTElUWV9aT05FX1BST1ZJREVSIH0sXG4gICAgXSxcbiAgfSk7XG4gIGNvbnN0IGN4YXNtID0gYXdhaXQgY2xvdWRFeGVjdXRhYmxlLnN5bnRoZXNpemUoKTtcblxuICAvLyBXSEVOXG4gIGF3YWl0IGN4YXNtLnNlbGVjdFN0YWNrcyh7IHBhdHRlcm5zOiBbJ3RoZXN0YWNrJ10gfSwgeyBkZWZhdWx0QmVoYXZpb3I6IERlZmF1bHRTZWxlY3Rpb24uQWxsU3RhY2tzIH0pO1xuXG4gIC8vIFRIRU46IHRoZSB0ZXN0IGZpbmlzaGVzIG5vcm1hbGx5fSk7XG59KTtcblxudGVzdCgnZmFpbHMgaWYgbG9va3VwcyBhcmUgZGlzYWJsZWQgYW5kIG1pc3NpbmcgY29udGV4dCBpcyBzeW50aGVzaXplZCcsIGFzeW5jICgpID0+IHtcbiAgLy8gR0lWRU5cbiAgY29uc3QgY2xvdWRFeGVjdXRhYmxlID0gbmV3IE1vY2tDbG91ZEV4ZWN1dGFibGUoe1xuICAgIHN0YWNrczogW3tcbiAgICAgIHN0YWNrTmFtZTogJ3RoZXN0YWNrJyxcbiAgICAgIHRlbXBsYXRlOiB7IHJlc291cmNlOiAnbm9lcnJvcnJlc291cmNlJyB9LFxuICAgIH1dLFxuICAgIC8vIEFsd2F5cyByZXR1cm4gdGhlIHNhbWUgbWlzc2luZyBrZXlzLCBzeW50aGVzaXMgc2hvdWxkIHN0aWxsIGZpbmlzaC5cbiAgICBtaXNzaW5nOiBbXG4gICAgICB7IGtleTogJ2FiY2RlZicsIHByb3BzOiB7IGFjY291bnQ6ICcxMzI0JywgcmVnaW9uOiAndXMtZWFzdC0xJyB9LCBwcm92aWRlcjogY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkFWQUlMQUJJTElUWV9aT05FX1BST1ZJREVSIH0sXG4gICAgXSxcbiAgfSk7XG4gIGNsb3VkRXhlY3V0YWJsZS5jb25maWd1cmF0aW9uLnNldHRpbmdzLnNldChbJ2xvb2t1cHMnXSwgZmFsc2UpO1xuXG4gIC8vIFdIRU5cbiAgYXdhaXQgZXhwZWN0KGNsb3VkRXhlY3V0YWJsZS5zeW50aGVzaXplKCkpLnJlamVjdHMudG9UaHJvdygvQ29udGV4dCBsb29rdXBzIGhhdmUgYmVlbiBkaXNhYmxlZC8pO1xufSk7XG5cbmFzeW5jIGZ1bmN0aW9uIHRlc3RDbG91ZEV4ZWN1dGFibGUoXG4gIHsgZW52LCB2ZXJzaW9uUmVwb3J0aW5nID0gdHJ1ZSwgc2NoZW1hVmVyc2lvbiB9OlxuICB7IGVudj86IHN0cmluZzsgdmVyc2lvblJlcG9ydGluZz86IGJvb2xlYW47IHNjaGVtYVZlcnNpb24/OiBzdHJpbmcgfSA9IHt9LFxuKSB7XG4gIGNvbnN0IGNsb3VkRXhlYyA9IG5ldyBNb2NrQ2xvdWRFeGVjdXRhYmxlKHtcbiAgICBzdGFja3M6IFt7XG4gICAgICBzdGFja05hbWU6ICd3aXRob3V0ZXJyb3JzJyxcbiAgICAgIGVudixcbiAgICAgIHRlbXBsYXRlOiB7IHJlc291cmNlOiAnbm9lcnJvcnJlc291cmNlJyB9LFxuICAgIH0sXG4gICAge1xuICAgICAgc3RhY2tOYW1lOiAnd2l0aGVycm9ycycsXG4gICAgICBlbnYsXG4gICAgICB0ZW1wbGF0ZTogeyByZXNvdXJjZTogJ2Vycm9ycmVzb3VyY2UnIH0sXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICAnL3Jlc291cmNlJzogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IGN4c2NoZW1hLkFydGlmYWN0TWV0YWRhdGFFbnRyeVR5cGUuRVJST1IsXG4gICAgICAgICAgICBkYXRhOiAndGhpcyBpcyBhbiBlcnJvcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfV0sXG4gICAgc2NoZW1hVmVyc2lvbixcbiAgfSk7XG4gIGNsb3VkRXhlYy5jb25maWd1cmF0aW9uLnNldHRpbmdzLnNldChbJ3ZlcnNpb25SZXBvcnRpbmcnXSwgdmVyc2lvblJlcG9ydGluZyk7XG5cbiAgcmV0dXJuIGNsb3VkRXhlYztcbn1cbiJdfQ==
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtZXhlY3V0YWJsZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWQtZXhlY3V0YWJsZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWlDO0FBQ2pDLDJEQUEyRDtBQUMzRCx1RUFBc0U7QUFDdEUsbUVBQXNFO0FBQ3RFLGtDQUE4QztBQUU5QyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQ2xDLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNyRCxNQUFNLEVBQUUsR0FBRyxNQUFNLG1CQUFtQixDQUFDO1lBQ25DLEdBQUcsRUFBRSw4QkFBOEI7WUFDbkMsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixhQUFhLEVBQUUsT0FBTztTQUN2QixDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVwQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUMzRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDcEYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsNkRBQTZELEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDN0UsSUFBQSwyQ0FBdUIsRUFBQyxRQUFRLENBQUMsZUFBZSxDQUFDLDBCQUEwQixFQUFFO1FBQzNFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBeUI7WUFDdEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxlQUFlLEdBQUcsSUFBSSwwQkFBbUIsQ0FBQztRQUM5QyxNQUFNLEVBQUUsQ0FBQztnQkFDUCxTQUFTLEVBQUUsVUFBVTtnQkFDckIsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO2FBQzFDLENBQUM7UUFDRixzRUFBc0U7UUFDdEUsT0FBTyxFQUFFO1lBQ1AsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLDBCQUEwQixFQUFFO1NBQ2xJO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxLQUFLLEdBQUcsTUFBTSxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFakQsT0FBTztJQUNQLE1BQU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsaUNBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUV0RyxzQ0FBc0M7QUFDeEMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsa0VBQWtFLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDbEYsUUFBUTtJQUNSLE1BQU0sZUFBZSxHQUFHLElBQUksMEJBQW1CLENBQUM7UUFDOUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1AsU0FBUyxFQUFFLFVBQVU7Z0JBQ3JCLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTthQUMxQyxDQUFDO1FBQ0Ysc0VBQXNFO1FBQ3RFLE9BQU8sRUFBRTtZQUNQLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQywwQkFBMEIsRUFBRTtTQUNsSTtLQUNGLENBQUMsQ0FBQztJQUNILGVBQWUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRS9ELE9BQU87SUFDUCxNQUFNLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFDbkcsQ0FBQyxDQUFDLENBQUM7QUFFSCxLQUFLLFVBQVUsbUJBQW1CLENBQ2hDLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixHQUFHLElBQUksRUFBRSxhQUFhLEtBQzBCLEVBQUU7SUFFekUsTUFBTSxTQUFTLEdBQUcsSUFBSSwwQkFBbUIsQ0FBQztRQUN4QyxNQUFNLEVBQUUsQ0FBQztnQkFDUCxTQUFTLEVBQUUsZUFBZTtnQkFDMUIsR0FBRztnQkFDSCxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUU7YUFDMUM7WUFDRDtnQkFDRSxTQUFTLEVBQUUsWUFBWTtnQkFDdkIsR0FBRztnQkFDSCxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFO2dCQUN2QyxRQUFRLEVBQUU7b0JBQ1IsV0FBVyxFQUFFO3dCQUNYOzRCQUNFLElBQUksRUFBRSxRQUFRLENBQUMseUJBQXlCLENBQUMsS0FBSzs0QkFDOUMsSUFBSSxFQUFFLGtCQUFrQjt5QkFDekI7cUJBQ0Y7aUJBQ0Y7YUFDRixDQUFDO1FBQ0YsYUFBYTtLQUNkLENBQUMsQ0FBQztJQUNILFNBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUU3RSxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L29yZGVyICovXG5pbXBvcnQgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuaW1wb3J0IHsgRGVmYXVsdFNlbGVjdGlvbiB9IGZyb20gJy4uLy4uL2xpYi9hcGkvY3hhcHAvY2xvdWQtYXNzZW1ibHknO1xuaW1wb3J0IHsgcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIgfSBmcm9tICcuLi8uLi9saWIvY29udGV4dC1wcm92aWRlcnMnO1xuaW1wb3J0IHsgTW9ja0Nsb3VkRXhlY3V0YWJsZSB9IGZyb20gJy4uL3V0aWwnO1xuXG5kZXNjcmliZSgnQVdTOjpDREs6Ok1ldGFkYXRhJywgKCkgPT4ge1xuICB0ZXN0KCdpcyBub3QgZ2VuZXJhdGVkIGZvciBuZXcgZnJhbWV3b3JrcycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjeCA9IGF3YWl0IHRlc3RDbG91ZEV4ZWN1dGFibGUoe1xuICAgICAgZW52OiAnYXdzOi8vMDEyMzQ1Njc4OTEyL3VzLWVhc3QtMScsXG4gICAgICB2ZXJzaW9uUmVwb3J0aW5nOiB0cnVlLFxuICAgICAgc2NoZW1hVmVyc2lvbjogJzguMC4wJyxcbiAgICB9KTtcbiAgICBjb25zdCBjeGFzbSA9IGF3YWl0IGN4LnN5bnRoZXNpemUoKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGN4YXNtLnN0YWNrQnlJZCgnd2l0aG91dGVycm9ycycpLmZpcnN0U3RhY2s7XG4gICAgY29uc3QgbWV0YWRhdGEgPSByZXN1bHQudGVtcGxhdGUuUmVzb3VyY2VzICYmIHJlc3VsdC50ZW1wbGF0ZS5SZXNvdXJjZXMuQ0RLTWV0YWRhdGE7XG4gICAgZXhwZWN0KG1ldGFkYXRhKS50b0JlVW5kZWZpbmVkKCk7XG4gIH0pO1xufSk7XG5cbnRlc3QoJ3N0b3AgZXhlY3V0aW5nIGlmIGNvbnRleHQgcHJvdmlkZXJzIGFyZSBub3QgbWFraW5nIHByb2dyZXNzJywgYXN5bmMgKCkgPT4ge1xuICByZWdpc3RlckNvbnRleHRQcm92aWRlcihjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVIsIHtcbiAgICBhc3luYyBnZXRWYWx1ZShfOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgIHJldHVybiAnZm9vJztcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBjbG91ZEV4ZWN1dGFibGUgPSBuZXcgTW9ja0Nsb3VkRXhlY3V0YWJsZSh7XG4gICAgc3RhY2tzOiBbe1xuICAgICAgc3RhY2tOYW1lOiAndGhlc3RhY2snLFxuICAgICAgdGVtcGxhdGU6IHsgcmVzb3VyY2U6ICdub2Vycm9ycmVzb3VyY2UnIH0sXG4gICAgfV0sXG4gICAgLy8gQWx3YXlzIHJldHVybiB0aGUgc2FtZSBtaXNzaW5nIGtleXMsIHN5bnRoZXNpcyBzaG91bGQgc3RpbGwgZmluaXNoLlxuICAgIG1pc3Npbmc6IFtcbiAgICAgIHsga2V5OiAnYWJjZGVmJywgcHJvcHM6IHsgYWNjb3VudDogJzEzMjQnLCByZWdpb246ICd1cy1lYXN0LTEnIH0sIHByb3ZpZGVyOiBjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVIgfSxcbiAgICBdLFxuICB9KTtcbiAgY29uc3QgY3hhc20gPSBhd2FpdCBjbG91ZEV4ZWN1dGFibGUuc3ludGhlc2l6ZSgpO1xuXG4gIC8vIFdIRU5cbiAgYXdhaXQgY3hhc20uc2VsZWN0U3RhY2tzKHsgcGF0dGVybnM6IFsndGhlc3RhY2snXSB9LCB7IGRlZmF1bHRCZWhhdmlvcjogRGVmYXVsdFNlbGVjdGlvbi5BbGxTdGFja3MgfSk7XG5cbiAgLy8gVEhFTjogdGhlIHRlc3QgZmluaXNoZXMgbm9ybWFsbHl9KTtcbn0pO1xuXG50ZXN0KCdmYWlscyBpZiBsb29rdXBzIGFyZSBkaXNhYmxlZCBhbmQgbWlzc2luZyBjb250ZXh0IGlzIHN5bnRoZXNpemVkJywgYXN5bmMgKCkgPT4ge1xuICAvLyBHSVZFTlxuICBjb25zdCBjbG91ZEV4ZWN1dGFibGUgPSBuZXcgTW9ja0Nsb3VkRXhlY3V0YWJsZSh7XG4gICAgc3RhY2tzOiBbe1xuICAgICAgc3RhY2tOYW1lOiAndGhlc3RhY2snLFxuICAgICAgdGVtcGxhdGU6IHsgcmVzb3VyY2U6ICdub2Vycm9ycmVzb3VyY2UnIH0sXG4gICAgfV0sXG4gICAgLy8gQWx3YXlzIHJldHVybiB0aGUgc2FtZSBtaXNzaW5nIGtleXMsIHN5bnRoZXNpcyBzaG91bGQgc3RpbGwgZmluaXNoLlxuICAgIG1pc3Npbmc6IFtcbiAgICAgIHsga2V5OiAnYWJjZGVmJywgcHJvcHM6IHsgYWNjb3VudDogJzEzMjQnLCByZWdpb246ICd1cy1lYXN0LTEnIH0sIHByb3ZpZGVyOiBjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVIgfSxcbiAgICBdLFxuICB9KTtcbiAgY2xvdWRFeGVjdXRhYmxlLmNvbmZpZ3VyYXRpb24uc2V0dGluZ3Muc2V0KFsnbG9va3VwcyddLCBmYWxzZSk7XG5cbiAgLy8gV0hFTlxuICBhd2FpdCBleHBlY3QoY2xvdWRFeGVjdXRhYmxlLnN5bnRoZXNpemUoKSkucmVqZWN0cy50b1Rocm93KC9Db250ZXh0IGxvb2t1cHMgaGF2ZSBiZWVuIGRpc2FibGVkLyk7XG59KTtcblxuYXN5bmMgZnVuY3Rpb24gdGVzdENsb3VkRXhlY3V0YWJsZShcbiAgeyBlbnYsIHZlcnNpb25SZXBvcnRpbmcgPSB0cnVlLCBzY2hlbWFWZXJzaW9uIH06XG4gIHsgZW52Pzogc3RyaW5nOyB2ZXJzaW9uUmVwb3J0aW5nPzogYm9vbGVhbjsgc2NoZW1hVmVyc2lvbj86IHN0cmluZyB9ID0ge30sXG4pIHtcbiAgY29uc3QgY2xvdWRFeGVjID0gbmV3IE1vY2tDbG91ZEV4ZWN1dGFibGUoe1xuICAgIHN0YWNrczogW3tcbiAgICAgIHN0YWNrTmFtZTogJ3dpdGhvdXRlcnJvcnMnLFxuICAgICAgZW52LFxuICAgICAgdGVtcGxhdGU6IHsgcmVzb3VyY2U6ICdub2Vycm9ycmVzb3VyY2UnIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBzdGFja05hbWU6ICd3aXRoZXJyb3JzJyxcbiAgICAgIGVudixcbiAgICAgIHRlbXBsYXRlOiB7IHJlc291cmNlOiAnZXJyb3JyZXNvdXJjZScgfSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICcvcmVzb3VyY2UnOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogY3hzY2hlbWEuQXJ0aWZhY3RNZXRhZGF0YUVudHJ5VHlwZS5FUlJPUixcbiAgICAgICAgICAgIGRhdGE6ICd0aGlzIGlzIGFuIGVycm9yJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9XSxcbiAgICBzY2hlbWFWZXJzaW9uLFxuICB9KTtcbiAgY2xvdWRFeGVjLmNvbmZpZ3VyYXRpb24uc2V0dGluZ3Muc2V0KFsndmVyc2lvblJlcG9ydGluZyddLCB2ZXJzaW9uUmVwb3J0aW5nKTtcblxuICByZXR1cm4gY2xvdWRFeGVjO1xufVxuIl19