cdk-comprehend-s3olap 2.0.371 → 2.0.373

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -7,7 +7,7 @@
7
7
  "url": "https://fantasticsie.medium.com/"
8
8
  },
9
9
  "bundled": {
10
- "aws-sdk": "^2.1525.0",
10
+ "aws-sdk": "^2.1526.0",
11
11
  "esbuild": "^0.19.10"
12
12
  },
13
13
  "dependencies": {
@@ -2347,6 +2347,19 @@
2347
2347
  }
2348
2348
  }
2349
2349
  },
2350
+ "aws-cdk-lib.aws_neptunegraph": {
2351
+ "targets": {
2352
+ "dotnet": {
2353
+ "package": "Amazon.CDK.AWS.NeptuneGraph"
2354
+ },
2355
+ "java": {
2356
+ "package": "software.amazon.awscdk.services.neptunegraph"
2357
+ },
2358
+ "python": {
2359
+ "module": "aws_cdk.aws_neptunegraph"
2360
+ }
2361
+ }
2362
+ },
2350
2363
  "aws-cdk-lib.aws_networkfirewall": {
2351
2364
  "targets": {
2352
2365
  "dotnet": {
@@ -5728,6 +5741,6 @@
5728
5741
  "symbolId": "src/cdk-comprehend-s3olap:S3AccessPointNames"
5729
5742
  }
5730
5743
  },
5731
- "version": "2.0.371",
5732
- "fingerprint": "Cmwk9Cool7cH59GthM57Pi1XrVEJliqx8ubiOxgH/q0="
5744
+ "version": "2.0.373",
5745
+ "fingerprint": "7yJhwhefeCdYqI2xzYZR4TuC4KfBCUSRPR0Ejo6E7eA="
5733
5746
  }
@@ -417,7 +417,7 @@ class ComprehendS3olab extends constructs_1.Construct {
417
417
  }
418
418
  exports.ComprehendS3olab = ComprehendS3olab;
419
419
  _a = JSII_RTTI_SYMBOL_1;
420
- ComprehendS3olab[_a] = { fqn: "cdk-comprehend-s3olap.ComprehendS3olab", version: "2.0.371" };
420
+ ComprehendS3olab[_a] = { fqn: "cdk-comprehend-s3olap.ComprehendS3olab", version: "2.0.373" };
421
421
  class LambdaArnCaptorCustomResource extends constructs_1.Construct {
422
422
  constructor(scope, id, props) {
423
423
  super(scope, id);
@@ -478,5 +478,5 @@ class LambdaArnCaptorCustomResource extends constructs_1.Construct {
478
478
  }
479
479
  exports.LambdaArnCaptorCustomResource = LambdaArnCaptorCustomResource;
480
480
  _b = JSII_RTTI_SYMBOL_1;
481
- LambdaArnCaptorCustomResource[_b] = { fqn: "cdk-comprehend-s3olap.LambdaArnCaptorCustomResource", version: "2.0.371" };
481
+ LambdaArnCaptorCustomResource[_b] = { fqn: "cdk-comprehend-s3olap.LambdaArnCaptorCustomResource", version: "2.0.373" };
482
482
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbXByZWhlbmQtczNvbGFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nkay1jb21wcmVoZW5kLXMzb2xhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQyx1REFBaUQ7QUFDakQsd0RBQXdEO0FBQ3hELDZDQUE2QztBQUM3Qyx5Q0FBeUM7QUFDekMsMERBQTBEO0FBQzFELGlFQUFpRTtBQUNqRSxtREFBbUQ7QUFDbkQsMkNBQXVDO0FBQ3ZDLDZEQUE0SDtBQUM1SCwyQ0FLcUI7QUFFckIsSUFBWSxXQUtYO0FBTEQsV0FBWSxXQUFXO0lBQ3JCLGtDQUFtQixDQUFBO0lBQ25CLDhCQUFlLENBQUE7SUFDZixrQ0FBbUIsQ0FBQTtJQUNuQiwyQ0FBNEIsQ0FBQTtBQUM5QixDQUFDLEVBTFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFLdEI7QUErRkQ7O0dBRUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBaUM3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUEwU25COzs7OztXQUtHO1FBQ0ssMkJBQXNCLEdBQUcsQ0FBQyxRQUFnQixFQUFFLHNCQUE2QyxFQUFtQixFQUFFO1lBQ3BILE1BQU0sZUFBZSxHQUFHLHNCQUFzQixFQUFFLGVBQWUsSUFBSSxPQUFPLENBQUM7WUFDM0UsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQztZQUM1RCxNQUFNLHVCQUF1QixHQUFHLHNCQUFzQixFQUFFLHVCQUF1QixJQUFJLE1BQU0sQ0FBQztZQUMxRixNQUFNLHdCQUF3QixHQUFHLHNCQUFzQixFQUFFLHdCQUF3QixJQUFJLE9BQU8sQ0FBQztZQUM3RixNQUFNLGtDQUFrQyxHQUFHLHNCQUFzQixFQUFFLGtDQUFrQyxJQUFJLE9BQU8sQ0FBQztZQUNqSCxNQUFNLGdDQUFnQyxHQUFHLHNCQUFzQixFQUFFLGdDQUFnQyxJQUFJLE1BQU0sQ0FBQztZQUM1RyxNQUFNLGNBQWMsR0FBRyxzQkFBc0IsRUFBRSxjQUFjLElBQUksS0FBSyxDQUFDO1lBQ3ZFLE1BQU0sYUFBYSxHQUFHLHNCQUFzQixFQUFFLGFBQWEsSUFBSSxHQUFHLENBQUM7WUFDbkUsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQztZQUM1RCxNQUFNLDJCQUEyQixHQUFHLHNCQUFzQixFQUFFLDJCQUEyQixJQUFJLElBQUksQ0FBQztZQUNoRyxNQUFNLGVBQWUsR0FBRyxzQkFBc0IsRUFBRSxlQUFlLElBQUksUUFBUSxDQUFDO1lBQzVFLE1BQU0sbUJBQW1CLEdBQUcsc0JBQXNCLEVBQUUsbUJBQW1CLElBQUksS0FBSyxDQUFDO1lBQ2pGLE1BQU0sZUFBZSxHQUFHLHNCQUFzQixFQUFFLGVBQWUsSUFBSSxLQUFLLENBQUM7WUFDekUsTUFBTSxtQkFBbUIsR0FBRyxzQkFBc0IsRUFBRSxtQkFBbUIsSUFBSSxJQUFJLENBQUM7WUFDaEYsTUFBTSw0QkFBNEIsR0FBRyxzQkFBc0IsRUFBRSw0QkFBNEIsSUFBSSxHQUFHLENBQUM7WUFDakcsTUFBTSw4QkFBOEIsR0FBRyxzQkFBc0IsRUFBRSw4QkFBOEIsSUFBSSxJQUFJLENBQUM7WUFDdEcsTUFBTSx3QkFBd0IsR0FBRyxzQkFBc0IsRUFBRSx3QkFBd0IsSUFBSSxNQUFNLENBQUM7WUFFNUYsT0FBTyxJQUFJLG9DQUFlLENBQUMsSUFBSSxFQUFFLDBCQUEwQixRQUFRLEVBQUUsRUFBRTtnQkFDckUsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLFFBQVEsRUFBRSxRQUFRO2dCQUNsQix1QkFBdUIsRUFBRSx1QkFBdUI7Z0JBQ2hELHdCQUF3QixFQUFFLHdCQUF3QjtnQkFDbEQsa0NBQWtDLEVBQUUsa0NBQWtDO2dCQUN0RSxnQ0FBZ0MsRUFBRSxnQ0FBZ0M7Z0JBQ2xFLGNBQWMsRUFBRSxjQUFjO2dCQUM5QixhQUFhLEVBQUUsYUFBYTtnQkFDNUIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLDJCQUEyQixFQUFFLDJCQUEyQjtnQkFDeEQsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLG1CQUFtQixFQUFFLG1CQUFtQjtnQkFDeEMsZUFBZSxFQUFFLGVBQWU7Z0JBQ2hDLG1CQUFtQixFQUFFLG1CQUFtQjtnQkFDeEMsNEJBQTRCLEVBQUUsNEJBQTRCO2dCQUMxRCw4QkFBOEIsRUFBRSw4QkFBOEI7Z0JBQzlELHdCQUF3QixFQUFFLHdCQUF3QjthQUNuRCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRjs7Ozs7O1dBTUc7UUFDSyxxQkFBZ0IsR0FBRyxDQUFDLFFBQWdCLEVBQUUsVUFBd0YsRUFBRSxFQUFFO1lBQ3hJLE9BQU87Z0JBQ0wsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztnQkFDMUUsMkJBQTJCLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixJQUFJLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxRQUFRLENBQUM7Z0JBQ3RILFdBQVcsRUFBRSxVQUFVLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO2FBQ25FLENBQUM7UUFDSixDQUFDLENBQUM7UUFwV0EsTUFBTSxjQUFjLEdBQUcsS0FBSyxFQUFFLGNBQWMsSUFBSSxTQUFTLENBQUM7UUFDMUQsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLEVBQUUsd0JBQXdCLElBQUksSUFBSSxDQUFDO1FBQ3pFLDhCQUE4QjtRQUM5QixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9GLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN6RixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9GLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDNUcsa0NBQWtDO1FBQ2xDLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRixNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUYsTUFBTSxrQkFBa0IsR0FBdUI7WUFDN0MsT0FBTyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLDhDQUE4QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsNENBQTRDLENBQUM7WUFDck0sS0FBSyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLG9EQUFvRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0RBQWtELENBQUM7WUFDN00sT0FBTyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLG1EQUFtRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaURBQWlELENBQUM7WUFDL00sZUFBZSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxlQUFlLElBQUksQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLGlEQUFpRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsK0NBQStDLENBQUM7U0FDNU4sQ0FBQztRQUNGLGdCQUFnQjtRQUNoQixNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxlQUFlLElBQUksT0FBTyxDQUFDO1FBQ3ZGLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxFQUFFLHlCQUF5QixFQUFFLG1CQUFtQixJQUFJLEtBQUssQ0FBQztRQUM3RixNQUFNLGdDQUFnQyxHQUFHLEtBQUssRUFBRSx5QkFBeUIsRUFBRSw4QkFBOEIsSUFBSSxJQUFJLENBQUM7UUFDbEgsTUFBTSxxQkFBcUIsR0FBRyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsbUJBQW1CLElBQUksSUFBSSxDQUFDO1FBQzVGLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUFFLHlCQUF5QixFQUFFLGVBQWUsSUFBSSxRQUFRLENBQUM7UUFDeEYsTUFBTSxvQ0FBb0MsR0FBRyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsa0NBQWtDLElBQUksT0FBTyxDQUFDO1FBQzdILE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixJQUFJLE9BQU8sQ0FBQztRQUN6RyxNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQztRQUN4RSxNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxlQUFlLElBQUksS0FBSyxDQUFDO1FBQ3JGLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLHlCQUF5QixFQUFFLGNBQWMsSUFBSSxLQUFLLENBQUM7UUFDbkYsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsd0JBQXdCLElBQUksTUFBTSxDQUFDO1FBQ3hHLE1BQU0sNkJBQTZCLEdBQUcsS0FBSyxFQUFFLHlCQUF5QixFQUFFLDJCQUEyQixJQUFJLElBQUksQ0FBQztRQUM1RyxNQUFNLHlCQUF5QixHQUFHLEtBQUssRUFBRSx5QkFBeUIsRUFBRSx1QkFBdUIsSUFBSSxNQUFNLENBQUM7UUFDdEcsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLHdDQUFtQixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUM1RSxlQUFlLEVBQUUsaUJBQWlCO1lBQ2xDLG1CQUFtQixFQUFFLHFCQUFxQjtZQUMxQyw4QkFBOEIsRUFBRSxnQ0FBZ0M7WUFDaEUsbUJBQW1CLEVBQUUscUJBQXFCO1lBQzFDLGVBQWUsRUFBRSxpQkFBaUI7WUFDbEMsa0NBQWtDLEVBQUUsb0NBQW9DO1lBQ3hFLHdCQUF3QixFQUFFLDBCQUEwQjtZQUNwRCxRQUFRLEVBQUUsVUFBVTtZQUNwQixlQUFlLEVBQUUsaUJBQWlCO1lBQ2xDLGNBQWMsRUFBRSxnQkFBZ0I7WUFDaEMsd0JBQXdCLEVBQUUsMEJBQTBCO1lBQ3BELDJCQUEyQixFQUFFLDZCQUE2QjtZQUMxRCx1QkFBdUIsRUFBRSx5QkFBeUI7U0FDbkQsQ0FBQyxDQUFDO1FBQ0gsdUNBQXVDO1FBQ3ZDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFDNUcsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztRQUNsSCxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ2hJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMxRCx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFaEUsWUFBWTtRQUNaLE1BQU0sV0FBVyxHQUFHLElBQUksdUJBQVcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ25ELDJCQUEyQixFQUFFLGlCQUFpQixDQUFDLDJCQUEyQjtZQUMxRSxVQUFVLEVBQUUsaUJBQWlCLENBQUMsVUFBVTtZQUN4QyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsV0FBVztTQUMzQyxDQUFDLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBRyxJQUFJLHFCQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUM3QywyQkFBMkIsRUFBRSxlQUFlLENBQUMsMkJBQTJCO1lBQ3hFLFVBQVUsRUFBRSxlQUFlLENBQUMsVUFBVTtZQUN0QyxXQUFXLEVBQUUsZUFBZSxDQUFDLFdBQVc7U0FDekMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxXQUFXLEdBQUcsSUFBSSx1QkFBVyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDbkQsMkJBQTJCLEVBQUUsaUJBQWlCLENBQUMsMkJBQTJCO1lBQzFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxVQUFVO1lBQ3hDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxXQUFXO1NBQzNDLENBQUMsQ0FBQztRQUNILE1BQU0sZUFBZSxHQUFHLElBQUksMkJBQWUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQy9ELDJCQUEyQixFQUFFLHFCQUFxQixDQUFDLDJCQUEyQjtZQUM5RSxVQUFVLEVBQUUscUJBQXFCLENBQUMsVUFBVTtZQUM1QyxXQUFXLEVBQUUscUJBQXFCLENBQUMsV0FBVztTQUMvQyxDQUFDLENBQUM7UUFFSCxhQUFhO1FBQ2IsTUFBTSxZQUFZLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRTtZQUM3RCxVQUFVLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyw4QkFBOEIsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO1lBQ2pJLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU87WUFDeEMsaUJBQWlCLEVBQUUsSUFBSTtTQUN4QixDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsbUJBQW1CLENBQUMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUN0RDtZQUNFLEdBQUcsRUFBRSxvQkFBb0I7WUFDekIsVUFBVSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM1QyxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7WUFDekIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixTQUFTLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxTQUFTLElBQUksQ0FBQztZQUMxQyxVQUFVLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsRUFBRTtTQUN0RixDQUNGLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQ3REO1lBQ0UsR0FBRyxFQUFFLG9CQUFvQjtZQUN6QixVQUFVLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzVDLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztZQUN6QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLFNBQVMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLFNBQVMsSUFBSSxDQUFDO1NBQzNDLENBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQy9ELFVBQVUsRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLDhCQUE4Qix1QkFBdUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQ0FBb0M7WUFDdkksYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTztZQUN4QyxpQkFBaUIsRUFBRSxJQUFJO1NBQ3hCLENBQUMsQ0FBQztRQUNILGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FDMUQ7WUFDRSxHQUFHLEVBQUUsb0JBQW9CO1lBQ3pCLFVBQVUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUMsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO1lBQ3pCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsU0FBUyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLElBQUksQ0FBQztZQUM5QyxVQUFVLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsRUFBRTtTQUN0RixDQUNGLENBQUMsQ0FBQztRQUNILGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FDMUQ7WUFDRSxHQUFHLEVBQUUsb0JBQW9CO1lBQ3pCLFVBQVUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUMsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO1lBQ3pCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsU0FBUyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLElBQUksQ0FBQztTQUMvQyxDQUNGLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDckQsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3ZELGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN6RCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDN0QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFckQsbUJBQW1CO1FBQ25CLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ3RGLFFBQVEsRUFBRSxXQUFXLENBQUMsT0FBTztZQUM3QixpQkFBaUIsRUFBRSwwQkFBMEI7U0FDOUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLDZCQUE2QixDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUN4RixRQUFRLEVBQUUsV0FBVyxDQUFDLEtBQUs7WUFDM0IsaUJBQWlCLEVBQUUsc0JBQXNCO1NBQzFDLENBQUMsQ0FBQztRQUNILE1BQU0sc0JBQXNCLEdBQUcsSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ3RGLFFBQVEsRUFBRSxXQUFXLENBQUMsT0FBTztZQUM3QixpQkFBaUIsRUFBRSxzQkFBc0I7U0FDMUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLDZCQUE2QixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRTtZQUNsRyxRQUFRLEVBQUUsV0FBVyxDQUFDLFlBQVk7WUFDbEMsaUJBQWlCLEVBQUUsc0JBQXNCO1NBQzFDLENBQUMsQ0FBQztRQUNILHNCQUFzQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMvRCxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDM0Qsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQy9ELDRCQUE0QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMseUJBQXlCLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBQ3JELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQyxTQUFTLENBQUM7UUFDekQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLDRCQUE0QixDQUFDLFNBQVMsQ0FBQztRQUV2RSxtQkFBbUI7UUFDbkIsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDRCQUE0QixFQUFFO1lBQ25GLE1BQU0sRUFBRSxZQUFZLENBQUMsVUFBVTtTQUVoQyxDQUFDLENBQUM7UUFDSCxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RixrQkFBa0IsQ0FBQyxXQUFXLENBQUM7UUFDL0IsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ3pFLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxVQUFVO1NBRXBDLENBQUMsQ0FBQztRQUNILGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRTtZQUM3RSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsVUFBVTtTQUVwQyxDQUFDLENBQUM7UUFDSCxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRixNQUFNLDBCQUEwQixHQUFHLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsOEJBQThCLEVBQUU7WUFDN0YsTUFBTSxFQUFFLGdCQUFnQixDQUFDLFVBQVU7U0FFcEMsQ0FBQyxDQUFDO1FBQ0gsMEJBQTBCLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFNUcsMkJBQTJCO1FBQzNCLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSwwQkFBMEIsRUFBRTtZQUNwRyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsMkJBQTJCO1lBQ25ELHlCQUF5QixFQUFFO2dCQUN6QixxQkFBcUIsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxnQkFBZ0Isa0JBQWtCLENBQUMsUUFBUSxFQUFFO2dCQUN2SSw0QkFBNEIsRUFBRTtvQkFDNUI7d0JBQ0UsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO3dCQUN0QixxQkFBcUIsRUFBRSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLDJCQUEyQixFQUFFOzRCQUN4RSxLQUFLLEVBQUU7Z0NBQ0wsU0FBUyxFQUFFO29DQUNULFdBQVcsRUFBRSxJQUFJLENBQUMseUJBQXlCO2lDQUM1Qzs2QkFDRjt5QkFDRixDQUFDO3FCQUNIO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUU7WUFDMUYsSUFBSSxFQUFFLGVBQWUsQ0FBQywyQkFBMkI7WUFDakQseUJBQXlCLEVBQUU7Z0JBQ3pCLHFCQUFxQixFQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLGdCQUFnQixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JJLDRCQUE0QixFQUFFO29CQUM1Qjt3QkFDRSxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUM7d0JBQ3RCLHFCQUFxQixFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUseUJBQXlCLEVBQUU7NEJBQ3RFLEtBQUssRUFBRTtnQ0FDTCxTQUFTLEVBQUU7b0NBQ1QsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjO2lDQUNqQzs2QkFDRjt5QkFDRixDQUFDO3FCQUNIO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsMEJBQTBCLEVBQUU7WUFDOUYsSUFBSSxFQUFFLGlCQUFpQixDQUFDLDJCQUEyQjtZQUNuRCx5QkFBeUIsRUFBRTtnQkFDekIscUJBQXFCLEVBQUUsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsZ0JBQWdCLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtnQkFDdkksNEJBQTRCLEVBQUU7b0JBQzVCO3dCQUNFLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQzt3QkFDdEIscUJBQXFCLEVBQUUsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSwyQkFBMkIsRUFBRTs0QkFDeEUsS0FBSyxFQUFFO2dDQUNMLFNBQVMsRUFBRTtvQ0FDVCxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtpQ0FDbkM7NkJBQ0Y7eUJBQ0YsQ0FBQztxQkFDSDtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGtDQUFrQyxFQUFFO1lBQzlHLElBQUksRUFBRSxxQkFBcUIsQ0FBQywyQkFBMkI7WUFDdkQseUJBQXlCLEVBQUU7Z0JBQ3pCLHFCQUFxQixFQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLGdCQUFnQiwwQkFBMEIsQ0FBQyxRQUFRLEVBQUU7Z0JBQy9JLDRCQUE0QixFQUFFO29CQUM1Qjt3QkFDRSxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUM7d0JBQ3RCLHFCQUFxQixFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsbUNBQW1DLEVBQUU7NEJBQ2hGLEtBQUssRUFBRTtnQ0FDTCxTQUFTLEVBQUU7b0NBQ1QsV0FBVyxFQUFFLElBQUksQ0FBQyx3QkFBd0I7aUNBQzNDOzZCQUNGO3lCQUNGLENBQUM7cUJBQ0g7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILHNCQUFzQjtRQUN0QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUN2RSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLGlCQUFpQixFQUFFLENBQUMsQ0FBQztRQUN2RCxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDakMsTUFBTSxXQUFXLEdBQUcsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLHlCQUF5QixFQUFFO2dCQUNqRixPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDaEQsaUJBQWlCLEVBQUUsWUFBWTthQUNoQyxDQUFDLENBQUM7WUFDSCxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzNEO1FBQUEsQ0FBQztRQUNGLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQ3BDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO2dCQUN6RixPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUNuRCxpQkFBaUIsRUFBRSxnQkFBZ0I7YUFDcEMsQ0FBQyxDQUFDO1lBQ0gscUJBQXFCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzVELHFCQUFxQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUM5RCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDdkU7UUFBQSxDQUFDO1FBRUYsSUFBSSxDQUFDLDhCQUE4QixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BILElBQUksQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDeEcsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLDJCQUEyQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hILHlCQUF5QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNyRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDM0QsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQy9ELDJCQUEyQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsTUFBYztRQUNwQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxVQUFVLEdBQUcsc0NBQXNDLENBQUM7UUFDMUQsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQzNDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1NBQzNFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQStERDs7OztPQUlHO0lBQ0sscUJBQXFCLENBQUMsUUFBZ0I7UUFDNUMsUUFBUSxRQUFRLEVBQUU7WUFDaEIsS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyw0QkFBNEIsQ0FBQztZQUM5RCxLQUFLLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLDBCQUEwQixDQUFDO1lBQzFELEtBQUssV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sNEJBQTRCLENBQUM7WUFDOUQsS0FBSyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxvQ0FBb0MsQ0FBQztZQUMzRTtnQkFDRSxPQUFPLENBQUMsR0FBRyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7Z0JBQ3RGLE9BQU8sV0FBVyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSywrQkFBK0IsQ0FBQyxRQUFnQjtRQUN0RCxRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLDZDQUE2QyxDQUFDO1lBQy9FLEtBQUssV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8seUNBQXlDLENBQUM7WUFDekUsS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTywyQ0FBMkMsQ0FBQztZQUM3RSxLQUFLLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLCtDQUErQyxDQUFDO1lBQ3RGO2dCQUNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0VBQXdFLENBQUMsQ0FBQztnQkFDdEYsT0FBTyxXQUFXLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFlBQVksQ0FBQyxRQUFnQjtRQUNuQyxRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLGFBQWEsQ0FBQztZQUMvQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLG9CQUFvQixDQUFDO1lBQ3BELEtBQUssV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sc0JBQXNCLENBQUM7WUFDeEQsS0FBSyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTywwQkFBMEIsQ0FBQztZQUNqRTtnQkFDRSxPQUFPLENBQUMsR0FBRyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7Z0JBQ3RGLE9BQU8sV0FBVyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQzs7QUExYkgsNENBMmJDOzs7QUFjRCxNQUFhLDZCQUE4QixTQUFRLHNCQUFTO0lBTzFELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUM7UUFDM0UsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ3RELFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQztZQUMzRCxXQUFXLEVBQUUscUVBQXFFO1lBQ2xGLGVBQWUsRUFBRTtnQkFDZixHQUFHLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUN4QywwQ0FBMEMsQ0FDM0M7Z0JBQ0QsR0FBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQywwQkFBMEIsQ0FBQzthQUN2RTtZQUNELGNBQWMsRUFBRTtnQkFDZCw0Q0FBNEMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUM7b0JBQ25FLFVBQVUsRUFBRSxJQUFJO29CQUNoQixVQUFVLEVBQUU7d0JBQ1YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDOzRCQUN0QixHQUFHLEVBQUUsdUJBQXVCOzRCQUM1QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLOzRCQUN4QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzs0QkFDakMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO3lCQUNqQixDQUFDO3dCQUNGLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQzs0QkFDdEIsR0FBRyxFQUFFLCtCQUErQjs0QkFDcEMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSzs0QkFDeEIsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3hELFNBQVMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLFdBQVcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLGFBQWEsQ0FBQzt5QkFDbEcsQ0FBQztxQkFDSDtpQkFDRixDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUMzRCxXQUFXLEVBQUUsNENBQTRDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSTtZQUNwRixLQUFLLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGdDQUFnQyxDQUFDO1lBQzlMLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLE9BQU8sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDaEMsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztZQUM1QixRQUFRLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUFDO2FBQzdCO1lBQ0QsSUFBSSxFQUFFLGtCQUFrQjtTQUN6QixDQUFDLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNqRCxjQUFjLEVBQUUsT0FBTztZQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTO1lBQzFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRTtTQUNoRCxDQUFDLENBQUM7UUFDSCxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxtQkFBbUIsRUFBRTtZQUM3RixZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDbkMsVUFBVSxFQUFFO2dCQUNWLGVBQWUsRUFBRSxLQUFLLENBQUMsaUJBQWlCO2dCQUN4QyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVE7YUFDdEI7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7O0FBaEVILHNFQWlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgUnVudGltZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHMzZGVscG95IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50JztcbmltcG9ydCAqIGFzIHMzb2JqZWN0bGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zM29iamVjdGxhbWJkYSc7XG5pbXBvcnQgKiBhcyBjciBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQWNjZXNzQ29ucnRvbExhbWJkYSwgQWNjZXNzQ29ucnRvbExhbWJkYVByb3BzLCBSZWRhY3Rpb25MYW1iZGEsIFJlZGFjdGlvbkxhbWJkYVByb3BzIH0gZnJvbSAnLi9jb21wcmVoZW5kLWxhbWJkYXMnO1xuaW1wb3J0IHtcbiAgR2VuZXJhbFJvbGUsIEdlbmVyYWxSb2xlUHJvcHMsXG4gIEFkbWluUm9sZSwgQWRtaW5Sb2xlUHJvcHMsXG4gIEJpbGxpbmdSb2xlLCBCaWxsaW5nUm9sZVByb3BzLFxuICBDdXN0U3VwcG9ydFJvbGUsIEN1c3RTdXBwb3J0Um9sZVByb3BzLFxufSBmcm9tICcuL2lhbS1yb2xlcyc7XG5cbmV4cG9ydCBlbnVtIElhbVJvbGVOYW1lIHtcbiAgR0VORVJBTCA9ICdHZW5lcmFsJyxcbiAgQURNSU4gPSAnQWRtaW4nLFxuICBCSUxMSU5HID0gJ0JpbGxpbmcnLFxuICBDVVNUX1NVUFBPUlQgPSAnQ3VzdFN1cHBvcnQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUzNBY2Nlc3NQb2ludE5hbWVzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBTMyBhY2Vlc3MgcG9pbnQgZm9yIHRoZSBnZW5lcmFsIHJvbGUgaW4gdGhlIGFjY2VzcyBjb250cm9sIGNhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhY2Nlc3NjdGwtczMtYXAtc3VydmV5LXJlc3VsdHMtdW5rbm93bi1waWknXG4gICAqL1xuICByZWFkb25seSBnZW5lcmFsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgUzMgYWNlZXNzIHBvaW50IGZvciB0aGUgYWRtaW4gcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhZG1pbi1zMy1hY2Nlc3MtcG9pbnQtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWknXG4gICAqL1xuICByZWFkb25seSBhZG1pbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIFMzIGFjZWVzcyBwb2ludCBmb3IgdGhlIGJpbGxpbmcgcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdiaWxsLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaSdcbiAgICovXG4gIHJlYWRvbmx5IGJpbGxpbmc6IHN0cmluZztcbiAgLyoqXG4gICogVGhlIG5hbWUgb2YgdGhlIFMzIGFjZWVzcyBwb2ludCBmb3IgdGhlIGN1c3RvbWVyIHN1cHBvcnQgcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICpcbiAgKiBAZGVmYXVsdCAnY3MtczMtYWNjZXNzLXBvaW50LWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJ1xuICAqL1xuICByZWFkb25seSBjdXN0b21lclN1cHBvcnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wcmVoZW5kUzNvbGFiUHJvcHMge1xuICAvKipcbiAgICogVGhlIHByZWZpeCBhdHRhY2hlZCB0byB0aGUgbmFtZSBvZiB0aGUgUzMgYnVja2V0IHdoZXJlIHlvdSBhcmUgZ29pbmcgdG8gZXhwbG9yZSB0aGUgUzMgT2JqZWN0IExhbWJkYSBwZXJ0YWluaW5nIHRvIHRoZSBhY2Nlc3MgY29udHJvbCBjYXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCA2IHJhbmRvbSB3b3Jkc1xuICAgKi9cbiAgcmVhZG9ubHkgc3VydmV5QnVja2V0UHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHByZWZpeCBhdHRhY2hlZCB0byB0aGUgbmFtZSBvZiB0aGUgUzMgYnVja2V0IHdoZXJlIHlvdSBhcmUgZ29pbmcgdG8gZXhwbG9yZSB0aGUgUzMgT2JqZWN0IExhbWJkYSBwZXJ0YWluaW5nIHRvIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgNiByYW5kb20gd29yZHNcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zY3JpcHRzQnVja2V0UHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIHRoZSBTMyBhY2Nlc3MgcG9pbnRzIGZvciB0aGUgYWNjZXNzIGNvbnRyb2wgY2FzZSBhbmQgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICByZWFkb25seSBzM0FjY2Vzc1BvaW50TmFtZXM/OiBTM0FjY2Vzc1BvaW50TmFtZXM7XG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVycyBuZWVkZWQgZm9yIHRoZSBgQ29tcHJlaGVuZFBpaUFjY2Vzc0NvbnRyb2xTM09iamVjdExhbWJkYWAgZnVuY3Rpb24uXG4gICAqXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPzogQWNjZXNzQ29ucnRvbExhbWJkYVByb3BzO1xuICAvKipcbiAgICogVGhlIHBhcmFtZXRlcnMgb2YgdGhlIGBDb21wcmVoZW5kUGlpUmVkYWN0aW9uUzNPYmplY3RMYW1iZGFgIGZ1bmN0aW9uIGZvciB0aGUgYEFkbWluUm9sZWAuXG4gICAqL1xuICByZWFkb25seSBhZG1pblJlZGFjdGlvbkxhbWJkYUNvbmZpZz86IFJlZGFjdGlvbkxhbWJkYVByb3BzO1xuICAvKipcbiAgICogVGhlIHBhcmFtZXRlcnMgb2YgdGhlIGBDb21wcmVoZW5kUGlpUmVkYWN0aW9uUzNPYmplY3RMYW1iZGFgIGZ1bmN0aW9uIGZvciB0aGUgYEJpbGxpbmdSb2xlYC5cbiAgICovXG4gIHJlYWRvbmx5IGJpbGxpbmdSZWRhY3Rpb25MYW1iZGFDb25maWc/OiBSZWRhY3Rpb25MYW1iZGFQcm9wcztcbiAgLyoqXG4gICogVGhlIHBhcmFtZXRlcnMgb2YgdGhlIGBDb21wcmVoZW5kUGlpUmVkYWN0aW9uUzNPYmplY3RMYW1iZGFgIGZ1bmN0aW9uIGZvciB0aGUgYEN1c3RTdXBwb3J0Um9sZWAuXG4gICovXG4gIHJlYWRvbmx5IGN1c3J0U3VwcG9ydFJlZGFjdGlvbkxhbWJkYUNvbmZpZz86IFJlZGFjdGlvbkxhbWJkYVByb3BzO1xuICAvKipcbiAgICogVGhlIG1hbmFnZWFibGUgcHJvcGVydGllcyBmb3IgdGhlIElBTSByb2xlIHVzZWQgdG8gYWNjZXNzIHRoZSBgc3VydmV5LXJlc3VsdHMudHh0YCBkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJhbFJvbGVDb25maWc/OiBHZW5lcmFsUm9sZVByb3BzO1xuICAvKipcbiAgICogVGhlIG1hbmFnZWFibGUgcHJvcGVydGllcyBmb3IgdGhlIGFkbWluaXN0cmF0b3IgSUFNIHJvbGUgaW4gdGhlIHJlZGFjdGlvbiBjYXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRtaW5Sb2xlQ29uZmlnPzogQWRtaW5Sb2xlUHJvcHM7XG4gIC8qKlxuICAgKiBUaGUgbWFuYWdlYWJsZSBwcm9wZXJ0aWVzIGZvciB0aGUgYmlsbGluZyBJQU0gcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICByZWFkb25seSBiaWxsaW5nUm9sZUNvbmZpZz86IEJpbGxpbmdSb2xlUHJvcHM7XG4gIC8qKlxuICAgKiBUaGUgbWFuYWdlYWJsZSBwcm9wZXJ0aWVzIGZvciB0aGUgY3VzdG9tZXIgc3VwcG9ydCBJQU0gcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICByZWFkb25seSBjdXN0U3VwcG9ydFJvbGVDb25maWc/OiBDdXN0U3VwcG9ydFJvbGVQcm9wcztcbiAgLyoqXG4gICAqIEZvciBkaXN0aW5ndWlzaCB0ZXN0IGFuZCBub3JtYWwgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJhdGVSYW5kb21DaGFyYWN0ZXJzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgcGF0aCB3aGVyZSBgZmlsZXMvYWNjZXNzX2NvbnRyb2wvKi50eHRgIGFuZCBgZmlsZXMvcmVkYWN0aW9uLyoudHh0YCB3aWxsIGJlIHB1dC5cbiAgICpcbiAgICogRE8gTk9UIElOQ0xVREUgYC9gIGluIHRoZSBlbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IF9fZGlybmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhhbXBsZUZpbGVEaXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgZm91bmRhdGlvbiBuZWNlc3NhcnkgdG8gZGVwbG95IHRoZSBTMyBPYmplY3QgTGFtYmRhIEFjY2Vlc3MgQ29udHJvbCBVc2UgQ2FzZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbXByZWhlbmRTM29sYWIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgUzMgT2JqZWN0IExhbWJkYSBmb3IgYWNjZXNzIGNvbnRyb2wuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNvYmplY3RMYW1iZGFBY2Nlc3NDb250cm9sQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTMyBPYmplY3QgTGFtYmRhIGZvciB0aGUgYWRtaW4gcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNvYmplY3RMYW1iZGFBZG1pbkFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgUzMgT2JqZWN0IExhbWJkYSBmb3IgdGhlIGJpbGxpbmcgcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNvYmplY3RMYW1iZGFCaWxsaW5nQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTMyBPYmplY3QgTGFtYmRhIGZvciB0aGUgY3VzdG9tZXIgc3VwcG9ydCByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzM29iamVjdExhbWJkYUN1c3RvbWVyU3VwcG9ydEFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uIGNvbWJpbmVkIHdpdGggQW1hem9uIENvbXByZWhlbmQgZm9yIHRoZSBnZW5lcmFsIGNhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGlpQWNjZXNzQ29ucnRvbExhbWJkYUFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uIGNvbWJpbmVkIHdpdGggQW1hem9uIENvbXByZWhlbmQgZm9yIHRoaWUgYWRtaW5pc3RyYXRvciByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhZG1pbkxhbWJkYUFybjogc3RyaW5nO1xuICAvKipcbiAgKiBUaGUgQVJOIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24gY29tYmluZWQgd2l0aCBBbWF6b24gQ29tcHJlaGVuZCBmb3IgdGhpZSBiaWxsaW5nIHJvbGUgaW4gdGhlIHJlZGFjdGlvbiBjYXNlLlxuICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYmlsbGluZ0xhbWJkYUFybjogc3RyaW5nO1xuICAvKipcbiAqIFRoZSBBUk4gb2YgdGhlIExhbWJkYSBmdW5jdGlvbiBjb21iaW5lZCB3aXRoIEFtYXpvbiBDb21wcmVoZW5kIGZvciB0aGllIGN1c3RvbWVyIHN1cHBvcnQgcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGN1c3RvbWVyU3VwcG9ydExhbWJkYUFybjogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29tcHJlaGVuZFMzb2xhYlByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBleGFtcGxlRmlsZURpciA9IHByb3BzPy5leGFtcGxlRmlsZURpciA/PyBfX2Rpcm5hbWU7XG4gICAgY29uc3QgZ2VuZXJhdGVSYW5kb21DaGFyYWN0ZXJzID0gcHJvcHM/LmdlbmVyYXRlUmFuZG9tQ2hhcmFjdGVycyA/PyB0cnVlO1xuICAgIC8vIHByZXJlcXVpc2l0ZXMgZm9yIElBTSByb2xlc1xuICAgIGNvbnN0IGdlbmVyYWxSb2xlQ29uZmlnID0gdGhpcy5nZXRJYW1Sb2xlQ29uZmlnKElhbVJvbGVOYW1lLkdFTkVSQUwsIHByb3BzPy5nZW5lcmFsUm9sZUNvbmZpZyk7XG4gICAgY29uc3QgYWRtaW5Sb2xlQ29uZmlnID0gdGhpcy5nZXRJYW1Sb2xlQ29uZmlnKElhbVJvbGVOYW1lLkFETUlOLCBwcm9wcz8uYWRtaW5Sb2xlQ29uZmlnKTtcbiAgICBjb25zdCBiaWxsaW5nUm9sZUNvbmZpZyA9IHRoaXMuZ2V0SWFtUm9sZUNvbmZpZyhJYW1Sb2xlTmFtZS5CSUxMSU5HLCBwcm9wcz8uYmlsbGluZ1JvbGVDb25maWcpO1xuICAgIGNvbnN0IGN1c3RTdXBwb3J0Um9sZUNvbmZpZyA9IHRoaXMuZ2V0SWFtUm9sZUNvbmZpZyhJYW1Sb2xlTmFtZS5DVVNUX1NVUFBPUlQsIHByb3BzPy5jdXN0U3VwcG9ydFJvbGVDb25maWcpO1xuICAgIC8vIHMzIGJ1Y2VrdCBhbmQgaXRzIGFjY2VzcyBwb2ludHNcbiAgICBjb25zdCBzdXJ2ZXlCdWNrZXRQcmVmaXggPSBwcm9wcy5zdXJ2ZXlCdWNrZXRQcmVmaXggPz8gdGhpcy5nZW5lcmF0ZVMzUHJlZml4KDYpO1xuICAgIGNvbnN0IHRyYW5zY3JpcHRzQnVja2V0UHJlZml4ID0gcHJvcHMudHJhbnNjcmlwdHNCdWNrZXRQcmVmaXggPz8gdGhpcy5nZW5lcmF0ZVMzUHJlZml4KDYpO1xuICAgIGNvbnN0IHMzQWNjZXNzUG9pbnROYW1lczogUzNBY2Nlc3NQb2ludE5hbWVzID0ge1xuICAgICAgZ2VuZXJhbDogcHJvcHM/LnMzQWNjZXNzUG9pbnROYW1lcz8uZ2VuZXJhbCA/PyAoKGdlbmVyYXRlUmFuZG9tQ2hhcmFjdGVycykgPyBgYWNjZXNzY3RsLXMzLWFwLXN1cnZleS1yZXN1bHRzLXVua25vd24tcGlpLSR7dGhpcy5nZW5lcmF0ZVMzUHJlZml4KDYpfWAgOiAnYWNjZXNzY3RsLXMzLWFwLXN1cnZleS1yZXN1bHRzLXVua25vd24tcGlpJyksXG4gICAgICBhZG1pbjogcHJvcHM/LnMzQWNjZXNzUG9pbnROYW1lcz8uYWRtaW4gPz8gKChnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnMpID8gYGFkbWluLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaS0ke3RoaXMuZ2VuZXJhdGVTM1ByZWZpeCg2KX1gIDogJ2FkbWluLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaScpLFxuICAgICAgYmlsbGluZzogcHJvcHM/LnMzQWNjZXNzUG9pbnROYW1lcz8uYmlsbGluZyA/PyAoKGdlbmVyYXRlUmFuZG9tQ2hhcmFjdGVycykgPyBgYmlsbC1zMy1hY2Nlc3MtcG9pbnQtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWktJHt0aGlzLmdlbmVyYXRlUzNQcmVmaXgoNil9YCA6ICdiaWxsLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaScpLFxuICAgICAgY3VzdG9tZXJTdXBwb3J0OiBwcm9wcz8uczNBY2Nlc3NQb2ludE5hbWVzPy5jdXN0b21lclN1cHBvcnQgPz8gKChnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnMpID8gYGNzLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaS0ke3RoaXMuZ2VuZXJhdGVTM1ByZWZpeCg2KX1gIDogJ2NzLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaScpLFxuICAgIH07XG4gICAgLy8gb2JqZWN0IExhbWJkYVxuICAgIGNvbnN0IGFjc2VtYW50aWNWZXJzaW9uID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LnNlbWFudGljVmVyc2lvbiA/PyAnMS4wLjInO1xuICAgIGNvbnN0IGFjY29uZmlkZW5jZVRocmVzaG9sZCA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5jb25maWRlbmNlVGhyZXNob2xkID8/ICcwLjUnO1xuICAgIGNvbnN0IGFjY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50ID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LmNvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCA/PyAnMjAnO1xuICAgIGNvbnN0IGFjZGVmYXVsdExhbmd1YWdlQ29kZSA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5kZWZhdWx0TGFuZ3VhZ2VDb2RlID8/ICdlbic7XG4gICAgY29uc3QgYWNkb2N1bWVudE1heFNpemUgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8uZG9jdW1lbnRNYXhTaXplID8/ICcxMDI0MDAnO1xuICAgIGNvbnN0IGFjZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5kb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzID8/ICc1MDAwMCc7XG4gICAgY29uc3QgYWNpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8uaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkID8/ICdmYWxzZSc7XG4gICAgY29uc3QgYWNsb2dMZXZlbCA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5sb2dMZXZlbCA/PyAnSU5GTyc7XG4gICAgY29uc3QgYWNtYXhDaGFyc092ZXJsYXAgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8ubWF4Q2hhcnNPdmVybGFwID8/ICcyMDAnO1xuICAgIGNvbnN0IGFjcGlpRW50aXR5VHlwZXMgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8ucGlpRW50aXR5VHlwZXMgPz8gJ0FMTCc7XG4gICAgY29uc3QgYWNwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8ucHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzID8/ICd0cnVlJztcbiAgICBjb25zdCBhY3N1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2VucyA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5zdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMgPz8gJzIwJztcbiAgICBjb25zdCBhY3Vuc3VwcG9ydGVkRmlsZUhhbmRsaW5nID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LnVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nID8/ICdGQUlMJztcbiAgICBjb25zdCBhY2Nlc3NDb250cm9sTGFtYmRhID0gbmV3IEFjY2Vzc0NvbnJ0b2xMYW1iZGEodGhpcywgJ1NlcnZlcmxlc3NMYW1iZGEnLCB7XG4gICAgICBzZW1hbnRpY1ZlcnNpb246IGFjc2VtYW50aWNWZXJzaW9uLFxuICAgICAgY29uZmlkZW5jZVRocmVzaG9sZDogYWNjb25maWRlbmNlVGhyZXNob2xkLFxuICAgICAgY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50OiBhY2NvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCxcbiAgICAgIGRlZmF1bHRMYW5ndWFnZUNvZGU6IGFjZGVmYXVsdExhbmd1YWdlQ29kZSxcbiAgICAgIGRvY3VtZW50TWF4U2l6ZTogYWNkb2N1bWVudE1heFNpemUsXG4gICAgICBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzOiBhY2RvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMsXG4gICAgICBpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQ6IGFjaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkLFxuICAgICAgbG9nTGV2ZWw6IGFjbG9nTGV2ZWwsXG4gICAgICBtYXhDaGFyc092ZXJsYXA6IGFjbWF4Q2hhcnNPdmVybGFwLFxuICAgICAgcGlpRW50aXR5VHlwZXM6IGFjcGlpRW50aXR5VHlwZXMsXG4gICAgICBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3M6IGFjcHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzLFxuICAgICAgc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zOiBhY3N1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2VucyxcbiAgICAgIHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nOiBhY3Vuc3VwcG9ydGVkRmlsZUhhbmRsaW5nLFxuICAgIH0pO1xuICAgIC8vIENvbXByZWhlbmRQaWlSZWRhY3Rpb25TM09iamVjdExhbWJkYVxuICAgIGNvbnN0IGFkbWluUmVkYWN0TGFtYmRhID0gdGhpcy5pbml0aWFsaXplUmVkYWN0TGFtYmRhKElhbVJvbGVOYW1lLkFETUlOLCBwcm9wcz8uYWRtaW5SZWRhY3Rpb25MYW1iZGFDb25maWcpO1xuICAgIGNvbnN0IGJpbGxpbmdSZWRhY3RMYW1iZGEgPSB0aGlzLmluaXRpYWxpemVSZWRhY3RMYW1iZGEoSWFtUm9sZU5hbWUuQklMTElORywgcHJvcHM/LmJpbGxpbmdSZWRhY3Rpb25MYW1iZGFDb25maWcpO1xuICAgIGNvbnN0IGN1c3RTdXBwb3J0UmVkYWN0TGFtYmRhID0gdGhpcy5pbml0aWFsaXplUmVkYWN0TGFtYmRhKElhbVJvbGVOYW1lLkNVU1RfU1VQUE9SVCwgcHJvcHM/LmN1c3J0U3VwcG9ydFJlZGFjdGlvbkxhbWJkYUNvbmZpZyk7XG4gICAgYmlsbGluZ1JlZGFjdExhbWJkYS5ub2RlLmFkZERlcGVuZGVuY3koYWRtaW5SZWRhY3RMYW1iZGEpO1xuICAgIGN1c3RTdXBwb3J0UmVkYWN0TGFtYmRhLm5vZGUuYWRkRGVwZW5kZW5jeShiaWxsaW5nUmVkYWN0TGFtYmRhKTtcblxuICAgIC8vIElBTSByb2xlc1xuICAgIGNvbnN0IGdlbmVyYWxSb2xlID0gbmV3IEdlbmVyYWxSb2xlKHRoaXMsICdHZW5lcmFsJywge1xuICAgICAgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lOiBnZW5lcmFsUm9sZUNvbmZpZy5vYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUsXG4gICAgICBwb2xpY3lOYW1lOiBnZW5lcmFsUm9sZUNvbmZpZy5wb2xpY3lOYW1lLFxuICAgICAgaWFtUm9sZU5hbWU6IGdlbmVyYWxSb2xlQ29uZmlnLmlhbVJvbGVOYW1lLFxuICAgIH0pO1xuICAgIGNvbnN0IGFkbWluUm9sZSA9IG5ldyBBZG1pblJvbGUodGhpcywgJ0FkbWluJywge1xuICAgICAgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lOiBhZG1pblJvbGVDb25maWcub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lLFxuICAgICAgcG9saWN5TmFtZTogYWRtaW5Sb2xlQ29uZmlnLnBvbGljeU5hbWUsXG4gICAgICBpYW1Sb2xlTmFtZTogYWRtaW5Sb2xlQ29uZmlnLmlhbVJvbGVOYW1lLFxuICAgIH0pO1xuICAgIGNvbnN0IGJpbGxpbmdSb2xlID0gbmV3IEJpbGxpbmdSb2xlKHRoaXMsICdCaWxsaW5nJywge1xuICAgICAgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lOiBiaWxsaW5nUm9sZUNvbmZpZy5vYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUsXG4gICAgICBwb2xpY3lOYW1lOiBiaWxsaW5nUm9sZUNvbmZpZy5wb2xpY3lOYW1lLFxuICAgICAgaWFtUm9sZU5hbWU6IGJpbGxpbmdSb2xlQ29uZmlnLmlhbVJvbGVOYW1lLFxuICAgIH0pO1xuICAgIGNvbnN0IGN1c3RTdXBwb3J0Um9sZSA9IG5ldyBDdXN0U3VwcG9ydFJvbGUodGhpcywgJ0N1c3RTdXBwb3J0Jywge1xuICAgICAgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lOiBjdXN0U3VwcG9ydFJvbGVDb25maWcub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lLFxuICAgICAgcG9saWN5TmFtZTogY3VzdFN1cHBvcnRSb2xlQ29uZmlnLnBvbGljeU5hbWUsXG4gICAgICBpYW1Sb2xlTmFtZTogY3VzdFN1cHBvcnRSb2xlQ29uZmlnLmlhbVJvbGVOYW1lLFxuICAgIH0pO1xuXG4gICAgLy8gUzMgYnVja2V0c1xuICAgIGNvbnN0IHN1cnZleUJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ1N1cnZleVJlc3VsdEJ1Y2tldCcsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IChnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnMpID8gYHN1cnZleS1yZXN1bHRzLXVua25vd24tcGlpLSR7c3VydmV5QnVja2V0UHJlZml4fWAgOiAnc3VydmV5LXJlc3VsdHMtdW5rbm93bi1waWktMTIzNDU2JyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICB9KTtcbiAgICBzdXJ2ZXlCdWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudChcbiAgICAgIHtcbiAgICAgICAgc2lkOiAnQVdTQnVja2V0R2V0UG9saWN5JyxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQWNjb3VudFJvb3RQcmluY2lwYWwoKV0sXG4gICAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0J10sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbYCR7c3VydmV5QnVja2V0LmJ1Y2tldEFybn0vKmBdLFxuICAgICAgICBjb25kaXRpb25zOiB7IFsnU3RyaW5nRXF1YWxzJ106IHsgJ3MzOkRhdGFBY2Nlc3NQb2ludEFjY291bnQnOiBjZGsuQXdzLkFDQ09VTlRfSUQgfSB9LFxuICAgICAgfSxcbiAgICApKTtcbiAgICBzdXJ2ZXlCdWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudChcbiAgICAgIHtcbiAgICAgICAgc2lkOiAnQVdTQnVja2V0UHV0UG9saWN5JyxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQWNjb3VudFJvb3RQcmluY2lwYWwoKV0sXG4gICAgICAgIGFjdGlvbnM6IFsnczM6UHV0T2JqZWN0J10sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbYCR7c3VydmV5QnVja2V0LmJ1Y2tldEFybn0vKmBdLFxuICAgICAgfSxcbiAgICApKTtcbiAgICBjb25zdCB0cmFuc2NyaXB0QnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnVHJhbnNjcmlwdEJ1Y2tldCcsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IChnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnMpID8gYGNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpLSR7dHJhbnNjcmlwdHNCdWNrZXRQcmVmaXh9YCA6ICdjYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaS0xMjM0NDU2JyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICB9KTtcbiAgICB0cmFuc2NyaXB0QnVja2V0LmFkZFRvUmVzb3VyY2VQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoXG4gICAgICB7XG4gICAgICAgIHNpZDogJ0FXU0J1Y2tldEdldFBvbGljeScsXG4gICAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLkFjY291bnRSb290UHJpbmNpcGFsKCldLFxuICAgICAgICBhY3Rpb25zOiBbJ3MzOkdldE9iamVjdCddLFxuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIHJlc291cmNlczogW2Ake3RyYW5zY3JpcHRCdWNrZXQuYnVja2V0QXJufS8qYF0sXG4gICAgICAgIGNvbmRpdGlvbnM6IHsgWydTdHJpbmdFcXVhbHMnXTogeyAnczM6RGF0YUFjY2Vzc1BvaW50QWNjb3VudCc6IGNkay5Bd3MuQUNDT1VOVF9JRCB9IH0sXG4gICAgICB9LFxuICAgICkpO1xuICAgIHRyYW5zY3JpcHRCdWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudChcbiAgICAgIHtcbiAgICAgICAgc2lkOiAnQVdTQnVja2V0UHV0UG9saWN5JyxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQWNjb3VudFJvb3RQcmluY2lwYWwoKV0sXG4gICAgICAgIGFjdGlvbnM6IFsnczM6UHV0T2JqZWN0J10sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbYCR7dHJhbnNjcmlwdEJ1Y2tldC5idWNrZXRBcm59LypgXSxcbiAgICAgIH0sXG4gICAgKSk7XG4gICAgc3VydmV5QnVja2V0Lm5vZGUuYWRkRGVwZW5kZW5jeShhY2Nlc3NDb250cm9sTGFtYmRhKTtcbiAgICBzdXJ2ZXlCdWNrZXQubm9kZS5hZGREZXBlbmRlbmN5KGdlbmVyYWxSb2xlKTtcbiAgICB0cmFuc2NyaXB0QnVja2V0Lm5vZGUuYWRkRGVwZW5kZW5jeShhZG1pblJlZGFjdExhbWJkYSk7XG4gICAgdHJhbnNjcmlwdEJ1Y2tldC5ub2RlLmFkZERlcGVuZGVuY3koYmlsbGluZ1JlZGFjdExhbWJkYSk7XG4gICAgdHJhbnNjcmlwdEJ1Y2tldC5ub2RlLmFkZERlcGVuZGVuY3koY3VzdFN1cHBvcnRSZWRhY3RMYW1iZGEpO1xuICAgIHRyYW5zY3JpcHRCdWNrZXQubm9kZS5hZGREZXBlbmRlbmN5KGFkbWluUm9sZSk7XG4gICAgdHJhbnNjcmlwdEJ1Y2tldC5ub2RlLmFkZERlcGVuZGVuY3koYmlsbGluZ1JvbGUpO1xuICAgIHRyYW5zY3JpcHRCdWNrZXQubm9kZS5hZGREZXBlbmRlbmN5KGN1c3RTdXBwb3J0Um9sZSk7XG5cbiAgICAvLyBjdXN0b20gcmVzb3VyY2VzXG4gICAgY29uc3QgZ2VuZXJhbExhbWJkYUFybkNhcHRvciA9IG5ldyBMYW1iZGFBcm5DYXB0b3JDdXN0b21SZXNvdXJjZSh0aGlzLCAnR2VuZXJhbENhcHRvcicsIHtcbiAgICAgIHJvbGVOYW1lOiBJYW1Sb2xlTmFtZS5HRU5FUkFMLFxuICAgICAgcGFydGlhbExhbWJkYU5hbWU6ICdQaWlBY2Nlc3NDb250cm9sRnVuY3Rpb24nLFxuICAgIH0pO1xuICAgIGNvbnN0IGFkbWluTGFtYmRhQXJuQ2FwdG9yID0gbmV3IExhbWJkYUFybkNhcHRvckN1c3RvbVJlc291cmNlKHRoaXMsICdBZG1pbkxhbWJkYUNhcHRvcicsIHtcbiAgICAgIHJvbGVOYW1lOiBJYW1Sb2xlTmFtZS5BRE1JTixcbiAgICAgIHBhcnRpYWxMYW1iZGFOYW1lOiAnUGlpUmVkYWN0aW9uRnVuY3Rpb24nLFxuICAgIH0pO1xuICAgIGNvbnN0IGJpbGxpbmdMYW1iZGFBcm5DYXB0b3IgPSBuZXcgTGFtYmRhQXJuQ2FwdG9yQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0JpbGxpbmdDYXB0b3InLCB7XG4gICAgICByb2xlTmFtZTogSWFtUm9sZU5hbWUuQklMTElORyxcbiAgICAgIHBhcnRpYWxMYW1iZGFOYW1lOiAnUGlpUmVkYWN0aW9uRnVuY3Rpb24nLFxuICAgIH0pO1xuICAgIGNvbnN0IGN1c3RvbVN1cHBvcnRMYW1iZGFBcm5DYXB0b3IgPSBuZXcgTGFtYmRhQXJuQ2FwdG9yQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0N1c3RvbVN1cHBvcnRDYXB0b3InLCB7XG4gICAgICByb2xlTmFtZTogSWFtUm9sZU5hbWUuQ1VTVF9TVVBQT1JULFxuICAgICAgcGFydGlhbExhbWJkYU5hbWU6ICdQaWlSZWRhY3Rpb25GdW5jdGlvbicsXG4gICAgfSk7XG4gICAgZ2VuZXJhbExhbWJkYUFybkNhcHRvci5ub2RlLmFkZERlcGVuZGVuY3koYWNjZXNzQ29udHJvbExhbWJkYSk7XG4gICAgYWRtaW5MYW1iZGFBcm5DYXB0b3Iubm9kZS5hZGREZXBlbmRlbmN5KGFkbWluUmVkYWN0TGFtYmRhKTtcbiAgICBiaWxsaW5nTGFtYmRhQXJuQ2FwdG9yLm5vZGUuYWRkRGVwZW5kZW5jeShiaWxsaW5nUmVkYWN0TGFtYmRhKTtcbiAgICBjdXN0b21TdXBwb3J0TGFtYmRhQXJuQ2FwdG9yLm5vZGUuYWRkRGVwZW5kZW5jeShjdXN0U3VwcG9ydFJlZGFjdExhbWJkYSk7XG4gICAgdGhpcy5waWlBY2Nlc3NDb25ydG9sTGFtYmRhQXJuID0gZ2VuZXJhbExhbWJkYUFybkNhcHRvci5sYW1iZGFBcm47XG4gICAgdGhpcy5hZG1pbkxhbWJkYUFybiA9IGFkbWluTGFtYmRhQXJuQ2FwdG9yLmxhbWJkYUFybjtcbiAgICB0aGlzLmJpbGxpbmdMYW1iZGFBcm4gPSBiaWxsaW5nTGFtYmRhQXJuQ2FwdG9yLmxhbWJkYUFybjtcbiAgICB0aGlzLmN1c3RvbWVyU3VwcG9ydExhbWJkYUFybiA9IGN1c3RvbVN1cHBvcnRMYW1iZGFBcm5DYXB0b3IubGFtYmRhQXJuO1xuXG4gICAgLy8gUzMgYWNjZXNzIHBvaW50c1xuICAgIGNvbnN0IGdlbmVyYWxBY2Nlc3NQb2ludCA9IG5ldyBzMy5DZm5BY2Nlc3NQb2ludCh0aGlzLCAnQWNjZXNzQ29udHJvbFMzQWNjZXNzUG9pbnQnLCB7XG4gICAgICBidWNrZXQ6IHN1cnZleUJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgLy8gbmFtZTogczNBY2Nlc3NQb2ludE5hbWVzLmdlbmVyYWwuc3Vic3RyaW5nKDAsIDUwKSxcbiAgICB9KTtcbiAgICBnZW5lcmFsQWNjZXNzUG9pbnQuYWRkUHJvcGVydHlPdmVycmlkZSgnTmFtZScsIHMzQWNjZXNzUG9pbnROYW1lcy5nZW5lcmFsLnN1YnN0cmluZygwLCA1MCkpO1xuICAgIGdlbmVyYWxBY2Nlc3NQb2ludC5hZGRPdmVycmlkZTtcbiAgICBjb25zdCBhZG1pbkFjY2Vzc1BvaW50ID0gbmV3IHMzLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdBZG1pblMzQWNjZXNzUG9pbnQnLCB7XG4gICAgICBidWNrZXQ6IHRyYW5zY3JpcHRCdWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIC8vIG5hbWU6IHMzQWNjZXNzUG9pbnROYW1lcy5hZG1pbi5zdWJzdHJpbmcoMCwgNTApLFxuICAgIH0pO1xuICAgIGFkbWluQWNjZXNzUG9pbnQuYWRkUHJvcGVydHlPdmVycmlkZSgnTmFtZScsIHMzQWNjZXNzUG9pbnROYW1lcy5hZG1pbi5zdWJzdHJpbmcoMCwgNTApKTtcbiAgICBjb25zdCBiaWxsaW5nQWNjZXNzUG9pbnQgPSBuZXcgczMuQ2ZuQWNjZXNzUG9pbnQodGhpcywgJ0JpbGxpbmdTM0FjY2Vzc1BvaW50Jywge1xuICAgICAgYnVja2V0OiB0cmFuc2NyaXB0QnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAvLyBuYW1lOiBzM0FjY2Vzc1BvaW50TmFtZXMuYmlsbGluZy5zdWJzdHJpbmcoMCwgNTApLFxuICAgIH0pO1xuICAgIGFkbWluQWNjZXNzUG9pbnQuYWRkUHJvcGVydHlPdmVycmlkZSgnTmFtZScsIHMzQWNjZXNzUG9pbnROYW1lcy5iaWxsaW5nLnN1YnN0cmluZygwLCA1MCkpO1xuICAgIGNvbnN0IGN1c3RvbWVyU3VwcG9ydEFjY2Vzc1BvaW50ID0gbmV3IHMzLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdDdXN0b21lclN1cHBvcnRTM0FjY2Vzc1BvaW50Jywge1xuICAgICAgYnVja2V0OiB0cmFuc2NyaXB0QnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAvLyBuYW1lOiBzM0FjY2Vzc1BvaW50TmFtZXMuY3VzdG9tZXJTdXBwb3J0LnN1YnN0cmluZygwLCA1MCksXG4gICAgfSk7XG4gICAgY3VzdG9tZXJTdXBwb3J0QWNjZXNzUG9pbnQuYWRkUHJvcGVydHlPdmVycmlkZSgnTmFtZScsIHMzQWNjZXNzUG9pbnROYW1lcy5jdXN0b21lclN1cHBvcnQuc3Vic3RyaW5nKDAsIDUwKSk7XG5cbiAgICAvLyBTM09iamVjdExhbWJkYSByZXNvdXJjZXNcbiAgICBjb25zdCBhY2Nlc3NDb250cm9sT2JqZWN0TGFtYmRhID0gbmV3IHMzb2JqZWN0bGFtYmRhLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdHZW5lcmFsTGFtYmRhQWNjZXNzUG9pbnQnLCB7XG4gICAgICBuYW1lOiBnZW5lcmFsUm9sZUNvbmZpZy5vYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUsXG4gICAgICBvYmplY3RMYW1iZGFDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIHN1cHBvcnRpbmdBY2Nlc3NQb2ludDogYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpzMzoke2Nkay5Bd3MuUkVHSU9OfToke2Nkay5Bd3MuQUNDT1VOVF9JRH06YWNjZXNzcG9pbnQvJHtnZW5lcmFsQWNjZXNzUG9pbnQuYXR0ck5hbWV9YCxcbiAgICAgICAgdHJhbnNmb3JtYXRpb25Db25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnR2V0T2JqZWN0J10sXG4gICAgICAgICAgICBjb250ZW50VHJhbnNmb3JtYXRpb246IG5ldyBjZGsuQ2ZuSnNvbih0aGlzLCAnR2VuZXJhbE9iamVjdExhbWJkYUNvbmZpZycsIHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBBd3NMYW1iZGE6IHtcbiAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uQXJuOiB0aGlzLnBpaUFjY2Vzc0NvbnJ0b2xMYW1iZGFBcm4sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IGFkbWluT2JqZWN0TGFtYmRhID0gbmV3IHMzb2JqZWN0bGFtYmRhLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdBZG1pbkxhbWJkYUFjY2Vzc1BvaW50Jywge1xuICAgICAgbmFtZTogYWRtaW5Sb2xlQ29uZmlnLm9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSxcbiAgICAgIG9iamVjdExhbWJkYUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgc3VwcG9ydGluZ0FjY2Vzc1BvaW50OiBgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OnMzOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTphY2Nlc3Nwb2ludC8ke2FkbWluQWNjZXNzUG9pbnQuYXR0ck5hbWV9YCxcbiAgICAgICAgdHJhbnNmb3JtYXRpb25Db25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnR2V0T2JqZWN0J10sXG4gICAgICAgICAgICBjb250ZW50VHJhbnNmb3JtYXRpb246IG5ldyBjZGsuQ2ZuSnNvbih0aGlzLCAnQWRtaW5PYmplY3RMYW1iZGFDb25maWcnLCB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgQXdzTGFtYmRhOiB7XG4gICAgICAgICAgICAgICAgICBGdW5jdGlvbkFybjogdGhpcy5hZG1pbkxhbWJkYUFybixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3QgYmlsbGluZ09iamVjdExhbWJkYSA9IG5ldyBzM29iamVjdGxhbWJkYS5DZm5BY2Nlc3NQb2ludCh0aGlzLCAnQmlsbGluZ0xhbWJkYUFjY2Vzc1BvaW50Jywge1xuICAgICAgbmFtZTogYmlsbGluZ1JvbGVDb25maWcub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lLFxuICAgICAgb2JqZWN0TGFtYmRhQ29uZmlndXJhdGlvbjoge1xuICAgICAgICBzdXBwb3J0aW5nQWNjZXNzUG9pbnQ6IGBhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06czM6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmFjY2Vzc3BvaW50LyR7YmlsbGluZ0FjY2Vzc1BvaW50LmF0dHJOYW1lfWAsXG4gICAgICAgIHRyYW5zZm9ybWF0aW9uQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhY3Rpb25zOiBbJ0dldE9iamVjdCddLFxuICAgICAgICAgICAgY29udGVudFRyYW5zZm9ybWF0aW9uOiBuZXcgY2RrLkNmbkpzb24odGhpcywgJ0JpbGxpbmdPYmplY3RMYW1iZGFDb25maWcnLCB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgQXdzTGFtYmRhOiB7XG4gICAgICAgICAgICAgICAgICBGdW5jdGlvbkFybjogdGhpcy5iaWxsaW5nTGFtYmRhQXJuLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBjdXN0b21lclN1cHBvcnRPYmplY3RMYW1iZGEgPSBuZXcgczNvYmplY3RsYW1iZGEuQ2ZuQWNjZXNzUG9pbnQodGhpcywgJ0N1c3RvbWVyU3VwcG9ydExhbWJkYUFjY2Vzc1BvaW50Jywge1xuICAgICAgbmFtZTogY3VzdFN1cHBvcnRSb2xlQ29uZmlnLm9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSxcbiAgICAgIG9iamVjdExhbWJkYUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgc3VwcG9ydGluZ0FjY2Vzc1BvaW50OiBgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OnMzOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTphY2Nlc3Nwb2ludC8ke2N1c3RvbWVyU3VwcG9ydEFjY2Vzc1BvaW50LmF0dHJOYW1lfWAsXG4gICAgICAgIHRyYW5zZm9ybWF0aW9uQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhY3Rpb25zOiBbJ0dldE9iamVjdCddLFxuICAgICAgICAgICAgY29udGVudFRyYW5zZm9ybWF0aW9uOiBuZXcgY2RrLkNmbkpzb24odGhpcywgJ0N1c3RvbWVyU3VwcG9ydE9iamVjdExhbWJkYUNvbmZpZycsIHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBBd3NMYW1iZGE6IHtcbiAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uQXJuOiB0aGlzLmN1c3RvbWVyU3VwcG9ydExhbWJkYUFybixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBBdXRvbWF0aWMgdXBsb2FkaW5nXG4gICAgY29uc3Qgc3VydmV5RmlsZVBhdGggPSBwYXRoLmpvaW4oZXhhbXBsZUZpbGVEaXIsICdmaWxlcy9hY2Nlc3NfY29udHJvbCcpO1xuICAgIGNvbnN0IHJlZGFjdGlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGV4YW1wbGVGaWxlRGlyLCAnZmlsZXMvcmVkYWN0aW9uJyk7XG4gICAgY29uc29sZS5sb2coYHN1cnZleUZpbGVQYXRoOiAke3N1cnZleUZpbGVQYXRofWApO1xuICAgIGNvbnNvbGUubG9nKGByZWRhY3Rpb25GaWxlUGF0aDogJHtyZWRhY3Rpb25GaWxlUGF0aH1gKTtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhzdXJ2ZXlGaWxlUGF0aCkpIHtcbiAgICAgIGNvbnN0IGRlcGxveUZpbGVzID0gbmV3IHMzZGVscG95LkJ1Y2tldERlcGxveW1lbnQodGhpcywgJ0RlcGxveVN1cnZleVJlc3VsdEZpbGVzJywge1xuICAgICAgICBzb3VyY2VzOiBbczNkZWxwb3kuU291cmNlLmFzc2V0KHN1cnZleUZpbGVQYXRoKV0sXG4gICAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiBzdXJ2ZXlCdWNrZXQsXG4gICAgICB9KTtcbiAgICAgIGRlcGxveUZpbGVzLm5vZGUuYWRkRGVwZW5kZW5jeShhY2Nlc3NDb250cm9sT2JqZWN0TGFtYmRhKTtcbiAgICB9O1xuICAgIGlmIChmcy5leGlzdHNTeW5jKHJlZGFjdGlvbkZpbGVQYXRoKSkge1xuICAgICAgY29uc3QgZGVwbG95VHJhbnNjcmlwdEZpbGVzID0gbmV3IHMzZGVscG95LkJ1Y2tldERlcGxveW1lbnQodGhpcywgJ0RlcGxveVRyYW5zY3JpcHRGaWxlcycsIHtcbiAgICAgICAgc291cmNlczogW3MzZGVscG95LlNvdXJjZS5hc3NldChyZWRhY3Rpb25GaWxlUGF0aCldLFxuICAgICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdHJhbnNjcmlwdEJ1Y2tldCxcbiAgICAgIH0pO1xuICAgICAgZGVwbG95VHJhbnNjcmlwdEZpbGVzLm5vZGUuYWRkRGVwZW5kZW5jeShhZG1pbk9iamVjdExhbWJkYSk7XG4gICAgICBkZXBsb3lUcmFuc2NyaXB0RmlsZXMubm9kZS5hZGREZXBlbmRlbmN5KGJpbGxpbmdPYmplY3RMYW1iZGEpO1xuICAgICAgZGVwbG95VHJhbnNjcmlwdEZpbGVzLm5vZGUuYWRkRGVwZW5kZW5jeShjdXN0b21lclN1cHBvcnRPYmplY3RMYW1iZGEpO1xuICAgIH07XG5cbiAgICB0aGlzLnMzb2JqZWN0TGFtYmRhQWNjZXNzQ29udHJvbEFybiA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KGFjY2Vzc0NvbnRyb2xPYmplY3RMYW1iZGEubG9naWNhbElkLCAnQXJuJykpO1xuICAgIHRoaXMuczNvYmplY3RMYW1iZGFBZG1pbkFybiA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KGFkbWluT2JqZWN0TGFtYmRhLmxvZ2ljYWxJZCwgJ0FybicpKTtcbiAgICB0aGlzLnMzb2JqZWN0TGFtYmRhQmlsbGluZ0FybiA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KGJpbGxpbmdPYmplY3RMYW1iZGEubG9naWNhbElkLCAnQXJuJykpO1xuICAgIHRoaXMuczNvYmplY3RMYW1iZGFDdXN0b21lclN1cHBvcnRBcm4gPSBjZGsuVG9rZW4uYXNTdHJpbmcoY2RrLkZuLmdldEF0dChjdXN0b21lclN1cHBvcnRPYmplY3RMYW1iZGEubG9naWNhbElkLCAnQXJuJykpO1xuICAgIGFjY2Vzc0NvbnRyb2xPYmplY3RMYW1iZGEubm9kZS5hZGREZXBlbmRlbmN5KGdlbmVyYWxMYW1iZGFBcm5DYXB0b3IpO1xuICAgIGFkbWluT2JqZWN0TGFtYmRhLm5vZGUuYWRkRGVwZW5kZW5jeShhZG1pbkxhbWJkYUFybkNhcHRvcik7XG4gICAgYmlsbGluZ09iamVjdExhbWJkYS5ub2RlLmFkZERlcGVuZGVuY3koYmlsbGluZ0xhbWJkYUFybkNhcHRvcik7XG4gICAgY3VzdG9tZXJTdXBwb3J0T2JqZWN0TGFtYmRhLm5vZGUuYWRkRGVwZW5kZW5jeShjdXN0b21TdXBwb3J0TGFtYmRhQXJuQ2FwdG9yKTtcbiAgfVxuXG4gIHB1YmxpYyBnZW5lcmF0ZVMzUHJlZml4KGxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICB2YXIgcmVzdWx0ID0gJyc7XG4gICAgY29uc3QgY2hhcmFjdGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xuICAgIGNvbnN0IGNoYXJhY3RlcnNMZW5ndGggPSBjaGFyYWN0ZXJzLmxlbmd0aDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICByZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVyc0xlbmd0aCkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSByZWRhY3Rpb24gTGFtYmRhIGZ1bmN0aW9uIGZvciBhIHNwZWljZmljIElBTSByb2xlLlxuICAgKlxuICAgKiBAcGFyYW0gcm9sZU5hbWUgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgSUFNIHJvbGVcbiAgICogQHBhcmFtIHNlcnZlcmxlc3NMYW1iZGFDb25maWcgdGhlIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVyIHNldHRpbmcgZm9yIHRoZSBBbWF6b24gQ29tcHJlaGVuZC5cbiAgICovXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVJlZGFjdExhbWJkYSA9IChyb2xlTmFtZTogc3RyaW5nLCBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPzogUmVkYWN0aW9uTGFtYmRhUHJvcHMpOiBSZWRhY3Rpb25MYW1iZGEgPT4ge1xuICAgIGNvbnN0IHNlbWFudGljVmVyc2lvbiA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/LnNlbWFudGljVmVyc2lvbiA/PyAnMS4wLjInO1xuICAgIGNvbnN0IGxvZ0xldmVsID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8ubG9nTGV2ZWwgPz8gJ0lORk8nO1xuICAgIGNvbnN0IHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8udW5zdXBwb3J0ZWRGaWxlSGFuZGxpbmcgPz8gJ0ZBSUwnO1xuICAgIGNvbnN0IGlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/LmlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA/PyAnZmFsc2UnO1xuICAgIGNvbnN0IGRvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5kb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzID8/ICc1MDAwMCc7XG4gICAgY29uc3QgZG9jdW1lbnRNYXhTaXplRGV0ZWN0UGlpRW50aXRpZXMgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5kb2N1bWVudE1heFNpemVEZXRlY3RQaWlFbnRpdGllcyA/PyAnNTAwMCc7XG4gICAgY29uc3QgcGlpRW50aXR5VHlwZXMgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5waWlFbnRpdHlUeXBlcyA/PyAnQUxMJztcbiAgICBjb25zdCBtYXNrQ2hhcmFjdGVyID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8ubWFza0NoYXJhY3RlciA/PyAnKic7XG4gICAgY29uc3QgbWFza01vZGUgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5tYXNrTW9kZSA/PyAnTUFTSyc7XG4gICAgY29uc3Qgc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8uc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID8/ICcyMCc7XG4gICAgY29uc3QgZG9jdW1lbnRNYXhTaXplID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8uZG9jdW1lbnRNYXhTaXplID8/ICcxMDI0MDAnO1xuICAgIGNvbnN0IGNvbmZpZGVuY2VUaHJlc2hvbGQgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5jb25maWRlbmNlVGhyZXNob2xkID8/ICcwLjUnO1xuICAgIGNvbnN0IG1heENoYXJzT3ZlcmxhcCA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/Lm1heENoYXJzT3ZlcmxhcCA/PyAnMjAwJztcbiAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2VDb2RlID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8uZGVmYXVsdExhbmd1YWdlQ29kZSA/PyAnZW4nO1xuICAgIGNvbnN0IGRldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5kZXRlY3RQaWlFbnRpdGllc1RocmVhZENvdW50ID8/ICc4JztcbiAgICBjb25zdCBjb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5jb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPz8gJzIwJztcbiAgICBjb25zdCBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5wdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MgPz8gJ3RydWUnO1xuXG4gICAgcmV0dXJuIG5ldyBSZWRhY3Rpb25MYW1iZGEodGhpcywgYFNlcnZlcmxlc3NSZWRhY3RMYW1iZGEtJHtyb2xlTmFtZX1gLCB7XG4gICAgICBzZW1hbnRpY1ZlcnNpb246IHNlbWFudGljVmVyc2lvbixcbiAgICAgIGxvZ0xldmVsOiBsb2dMZXZlbCxcbiAgICAgIHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nOiB1bnN1cHBvcnRlZEZpbGVIYW5kbGluZyxcbiAgICAgIGlzUGFydGlhbE9iamVjdFN1cHBvcnRlZDogaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkLFxuICAgICAgZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllczogZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyxcbiAgICAgIGRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzOiBkb2N1bWVudE1heFNpemVEZXRlY3RQaWlFbnRpdGllcyxcbiAgICAgIHBpaUVudGl0eVR5cGVzOiBwaWlFbnRpdHlUeXBlcyxcbiAgICAgIG1hc2tDaGFyYWN0ZXI6IG1hc2tDaGFyYWN0ZXIsXG4gICAgICBtYXNrTW9kZTogbWFza01vZGUsXG4gICAgICBzdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnM6IHN1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2VucyxcbiAgICAgIGRvY3VtZW50TWF4U2l6ZTogZG9jdW1lbnRNYXhTaXplLFxuICAgICAgY29uZmlkZW5jZVRocmVzaG9sZDogY29uZmlkZW5jZVRocmVzaG9sZCxcbiAgICAgIG1heENoYXJzT3ZlcmxhcDogbWF4Q2hhcnNPdmVybGFwLFxuICAgICAgZGVmYXVsdExhbmd1YWdlQ29kZTogZGVmYXVsdExhbmd1YWdlQ29kZSxcbiAgICAgIGRldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQ6IGRldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQsXG4gICAgICBjb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQ6IGNvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCxcbiAgICAgIHB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljczogcHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzLFxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXRzIHByb3BlcnRpZXMgcmVsYXRlZCB0byB0aGUgSUFNIHJvbGVzLlxuICAgKlxuICAgKiBAcGFyYW0gcm9sZU5hbWUgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgSUFNIHJvbGUuXG4gICAqIEBwYXJhbSByb2xlQ29uZmlnIHRoZSBjb3JyZXNwb25kaW5nIHBhcmFtZXRlciBzZXR0aW5nIGZvciBvbmUgb2YgdGhlIElBTSByb2xlLlxuICAgKiBAcmV0dXJucyB0aGUgcHJvcGVydHkgZ3JvdXAuXG4gICAqL1xuICBwcml2YXRlIGdldElhbVJvbGVDb25maWcgPSAocm9sZU5hbWU6IHN0cmluZywgcm9sZUNvbmZpZz86IEdlbmVyYWxSb2xlUHJvcHMgfCBBZG1pblJvbGVQcm9wcyB8IEJpbGxpbmdSb2xlUHJvcHMgfCBDdXN0U3VwcG9ydFJvbGVQcm9wcykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBwb2xpY3lOYW1lOiByb2xlQ29uZmlnPy5wb2xpY3lOYW1lID8/IHRoaXMuX2dldERlZmF1bHRQb2xpY3lOYW1lKHJvbGVOYW1lKSxcbiAgICAgIG9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZTogcm9sZUNvbmZpZz8ub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lID8/IHRoaXMuX2dldE9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZShyb2xlTmFtZSksXG4gICAgICBpYW1Sb2xlTmFtZTogcm9sZUNvbmZpZz8ucG9saWN5TmFtZSA/PyB0aGlzLl9nZXRSb2xlTmFtZShyb2xlTmFtZSksXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcG9saWN5IG5hbWUgYWNjb3JkaW5nIHRvIHRoZSBJQU0gcm9sZS5cbiAgICpcbiAgICogQHBhcmFtIHJvbGVOYW1lIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIElBTSByb2xlLlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0RGVmYXVsdFBvbGljeU5hbWUocm9sZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChyb2xlTmFtZSkge1xuICAgICAgY2FzZSBJYW1Sb2xlTmFtZS5HRU5FUkFMOiByZXR1cm4gJ2dlbmVyYWwtcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuQURNSU46IHJldHVybiAnYWRtaW4tcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuQklMTElORzogcmV0dXJuICdiaWxsaW5nLXJvbGUtczNvbGFwLXBvbGljeSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkNVU1RfU1VQUE9SVDogcmV0dXJuICdjdXN0b21lcnN1cHBvcnQtcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUubG9nKCdDaGVjayB0aGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUsIHRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbWF0Y2kgc3BlbGxpbmcuJyk7XG4gICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBuYW1lIGZvciB0aGUgYWNjZXNzIHBvaW50IG9mIHRoZSBTMyBPYmplY3QgTGFtYmRhIGFjY29yZGluZyB0byB0aGUgSUFNIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSByb2xlTmFtZSB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBJQU0gcm9sZS5cbiAgICovXG4gIHByaXZhdGUgX2dldE9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZShyb2xlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHJvbGVOYW1lKSB7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkdFTkVSQUw6IHJldHVybiAnYWNjZXNzY3RsLXMzb2xhcC1zdXJ2ZXktcmVzdWx0cy11bmtub3duLXBpaSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkFETUlOOiByZXR1cm4gJ2FkbWluLXMzb2xhcC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkJJTExJTkc6IHJldHVybiAnYmlsbGluZy1zM29sYXAtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWknO1xuICAgICAgY2FzZSBJYW1Sb2xlTmFtZS5DVVNUX1NVUFBPUlQ6IHJldHVybiAnY3VzdHN1cHBvcnQtczNvbGFwLWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUubG9nKCdDaGVjayB0aGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUsIHRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbWF0Y2kgc3BlbGxpbmcuJyk7XG4gICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBuYW1lIGZvciB0aGUgSUFNIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSByb2xlTmFtZSB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBJQU0gcm9sZS5cbiAgICovXG4gIHByaXZhdGUgX2dldFJvbGVOYW1lKHJvbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAocm9sZU5hbWUpIHtcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuR0VORVJBTDogcmV0dXJuICdHZW5lcmFsUm9sZSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkFETUlOOiByZXR1cm4gJ1JlZGFjdGlvbkFkbWluUm9sZSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkJJTExJTkc6IHJldHVybiAnUmVkYWN0aW9uQmlsbGluZ1JvbGUnO1xuICAgICAgY2FzZSBJYW1Sb2xlTmFtZS5DVVNUX1NVUFBPUlQ6IHJldHVybiAnUmVkYWN0aW9uQ3VzdFN1cHBvcnRSb2xlJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUubG9nKCdDaGVjayB0aGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUsIHRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbWF0Y2kgc3BlbGxpbmcuJyk7XG4gICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICB9XG4gIH1cbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUFybkNhcHRvclJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgSUFNIHJvbGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGFydGlhbCBmaXhlZCBuYW1lIG9mIHRoZSBnZW1lcmFsIExhbWJkYSBmdW5jdGlvbiBjcmVhdGVkIGZyb20gdGhlIHNlcnZlcmxlc3MgYXBwbGljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBwYXJ0aWFsTGFtYmRhTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTGFtYmRhQXJuQ2FwdG9yQ3VzdG9tUmVzb3VyY2UgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZ2VuZXJhbCBMYW1iZGEgZnVuY3Rpb24gY3JlYXRlZCBmcm9tIHRoZSBzZXJ2ZXJsZXNzIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvODc2MFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxhbWJkYUFybjogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTGFtYmRhQXJuQ2FwdG9yUmVzb3VyY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgY3VzdG9tUmVzb3VyY2VSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdDUlJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQW4gZXhlY3V0aW9uIHJvbGUgdG8gZmluZCBvdXQgdGhlIEFSTiBvZiB0aGUgYWNjZXNzIGNvbnRyb2wgTGFtYmRhLicsXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFxuICAgICAgICAgICdzZXJ2aWNlLXJvbGUvQVdTTGFtYmRhQmFzaWNFeGVjdXRpb25Sb2xlJyxcbiAgICAgICAgKSxcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdBV1NYUmF5RGFlbW9uV3JpdGVBY2Nlc3MnKSxcbiAgICAgIF0sXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBDb21wcmVoZW5kUzNPYmplY3RMYW1iZGFDdXN0b21SZXNvdXJjZVBvbGljeTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICAgICAgYXNzaWduU2lkczogdHJ1ZSxcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0xpc3RMYW1iZGFQZXJtaXNzaW9ucycsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogWydsYW1iZGE6TGlzdEZ1bmN0aW9ucyddLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0dldExhbWJkYUZ1bmN0aW9uc1Blcm1pc3Npb25zJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbJ2xhbWJkYTpHZXRGdW5jdGlvbicsICdsYW1iZGE6SW52b2tlRnVuY3Rpb24nXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpsYW1iZGE6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmZ1bmN0aW9uOipgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBvbkV2ZW50ID0gbmV3IGxhbWJkYS5Ob2RlanNGdW5jdGlvbih0aGlzLCAnQXJuRXhwZXJ0Jywge1xuICAgICAgZGVzY3JpcHRpb246IGBBIExhbWJkYSBmdW5jdGlvbiB0aGF0IGdldHMgdGhlIEFSTiBvZiBcXGAke3Byb3BzLnBhcnRpYWxMYW1iZGFOYW1lfVxcYGAsXG4gICAgICBlbnRyeTogZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAncmVzb3VyY2VzL2xhbWJkYS1hcm4taGVscGVyLnRzJykpID8gcGF0aC5qb2luKF9fZGlybmFtZSwgJ3Jlc291cmNlcy9sYW1iZGEtYXJuLWhlbHBlci50cycpIDogcGF0aC5qb2luKF9fZGlybmFtZSwgJ3Jlc291cmNlcy9sYW1iZGEtYXJuLWhlbHBlci5qcycpLFxuICAgICAgaGFuZGxlcjogJ2xhbWJkYUhhbmRsZXInLFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMiksXG4gICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18xNF9YLFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgbWluaWZ5OiBmYWxzZSxcbiAgICAgICAgc291cmNlTWFwOiB0cnVlLFxuICAgICAgICBleHRlcm5hbE1vZHVsZXM6IFsnYXdzLXNkayddLFxuICAgICAgfSxcbiAgICAgIHJvbGU6IGN1c3RvbVJlc291cmNlUm9sZSxcbiAgICB9KTtcbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBjci5Qcm92aWRlcih0aGlzLCAnUHJvdmlkZXInLCB7XG4gICAgICBvbkV2ZW50SGFuZGxlcjogb25FdmVudCxcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9NT05USCxcbiAgICAgIHJvbGU6IGN1c3RvbVJlc291cmNlUm9sZS53aXRob3V0UG9saWN5VXBkYXRlcygpLFxuICAgIH0pO1xuICAgIGNvbnN0IGxhbWJkYUFyblNlYXJjaFVuaXQgPSBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsIGAke3Byb3BzLnJvbGVOYW1lfUdlbmVyYWxTZWFyY2hVbml0YCwge1xuICAgICAgc2VydmljZVRva2VuOiBwcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIExhbWJkYUZpeGVkTmFtZTogcHJvcHMucGFydGlhbExhbWJkYU5hbWUsXG4gICAgICAgIEdlbnJlOiBwcm9wcy5yb2xlTmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5sYW1iZGFBcm4gPSBjZGsuVG9rZW4uYXNTdHJpbmcobGFtYmRhQXJuU2VhcmNoVW5pdC5nZXRBdHQoJ0xhbWJkYUFybicpKTtcbiAgfVxufSJdfQ==
@@ -47,7 +47,7 @@ class AccessConrtolLambda extends constructs_1.Construct {
47
47
  }
48
48
  exports.AccessConrtolLambda = AccessConrtolLambda;
49
49
  _a = JSII_RTTI_SYMBOL_1;
50
- AccessConrtolLambda[_a] = { fqn: "cdk-comprehend-s3olap.AccessConrtolLambda", version: "2.0.371" };
50
+ AccessConrtolLambda[_a] = { fqn: "cdk-comprehend-s3olap.AccessConrtolLambda", version: "2.0.373" };
51
51
  class RedactionLambda extends constructs_1.Construct {
52
52
  constructor(scope, id, props) {
53
53
  super(scope, id);
@@ -97,5 +97,5 @@ class RedactionLambda extends constructs_1.Construct {
97
97
  }
98
98
  exports.RedactionLambda = RedactionLambda;
99
99
  _b = JSII_RTTI_SYMBOL_1;
100
- RedactionLambda[_b] = { fqn: "cdk-comprehend-s3olap.RedactionLambda", version: "2.0.371" };
100
+ RedactionLambda[_b] = { fqn: "cdk-comprehend-s3olap.RedactionLambda", version: "2.0.373" };
101
101
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHJlaGVuZC1sYW1iZGFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbXByZWhlbmQtbGFtYmRhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUEyQztBQUMzQyx3Q0FBd0M7QUFDeEMsMkNBQXVDO0FBbUZ2QyxNQUFhLG1CQUFvQixTQUFRLHNCQUFTO0lBV2hELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBK0I7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQztRQUN6RCxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxLQUFLLENBQUM7UUFDL0QsTUFBTSw4QkFBOEIsR0FBRyxLQUFLLENBQUMsOEJBQThCLElBQUksSUFBSSxDQUFDO1FBQ3BGLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQztRQUM5RCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxJQUFJLFFBQVEsQ0FBQztRQUMxRCxNQUFNLGtDQUFrQyxHQUFHLEtBQUssQ0FBQyxrQ0FBa0MsSUFBSSxPQUFPLENBQUM7UUFDL0YsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLENBQUMsd0JBQXdCLElBQUksT0FBTyxDQUFDO1FBQzNFLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDO1FBQzFDLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDO1FBQ3ZELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksS0FBSyxDQUFDO1FBQ3JELE1BQU0sd0JBQXdCLEdBQUcsS0FBSyxDQUFDLHdCQUF3QixJQUFJLE1BQU0sQ0FBQztRQUMxRSxNQUFNLDJCQUEyQixHQUFHLEtBQUssQ0FBQywyQkFB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aWIvYXdzLXNhbSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NDb25ydG9sTGFtYmRhUHJvcHMge1xuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHNlcnZlcmxlc3MgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0ICcxLjAuMidcbiAgICovXG4gIHJlYWRvbmx5IHNlbWFudGljVmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHByZWRpY3Rpb24gY29uZmlkZW5jZSBzY29yZSBhYm92ZSB3aGljaCBQSUkgY2xhc3NpZmljYXRpb24gYW5kIGRldGVjdGlvbiB3b3VsZCBiZSBjb25zaWRlcmVkIGFzIGZpbmFsIGFuc3dlci4gVmFsaWQgcmFuZ2UgKDAuNSB0byAxLjApLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnMC41J1xuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlkZW5jZVRocmVzaG9sZD86IHN0cmluZztcbiAgLyoqXG4gICAqIE51bWJlciBvZiB0aHJlYWRzIHRvIHVzZSBmb3IgY2FsbGluZyBDb21wcmVoZW5kJ3MgQ29udGFpbnNQaWlFbnRpdGllcyBBUEkuIFRoaXMgY29udHJvbHMgdGhlIG51bWJlciBvZiBzaW11bHRhbmVvdXMgY2FsbHMgdGhhdCB3aWxsIGJlIG1hZGUgZnJvbSB0aGlzIExhbWJkYS5cbiAgICpcbiAgICogQGRlZmF1bHQgJzIwJ1xuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogRGVmYXVsdCBsYW5ndWFnZSBvZiB0aGUgdGV4dCB0byBiZSBwcm9jZXNzZWQuIFRoaXMgY29kZSB3aWxsIGJlIHVzZWQgZm9yIGludGVyYWN0aW5nIHdpdGggQ29tcHJlaGVuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2VuJ1xuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdExhbmd1YWdlQ29kZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERlZmF1bHQgbWF4aW11bSBkb2N1bWVudCBzaXplIChpbiBieXRlcykgdGhhdCB0aGlzIGZ1bmN0aW9uIGNhbiBwcm9jZXNzIG90aGVyd2lzZSB3aWxsIHRocm93IGV4Y2VwdGlvbiBmb3IgdG9vIGxhcmdlIGRvY3VtZW50IHNpemUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcxMDI0MDAnXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudE1heFNpemU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGRvY3VtZW50IHNpemUgKGluIGJ5dGVzKSB0byBiZSB1c2VkIGZvciBtYWtpbmcgY2FsbHMgdG8gQ29tcHJlaGVuZCdzIENvbnRhaW5zUGlpRW50aXRpZXMgQVBJLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnNTAwMDAnXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciB0byBzdXBwb3J0IHBhcnRpYWwgb2JqZWN0cyBvciBub3QuIEFjY2Vzc2luZyBwYXJ0aWFsIG9iamVjdCB0aHJvdWdoIGh0dHAgaGVhZGVycyBzdWNoIGJ5dGUtcmFuZ2UgY2FuIGNvcnJ1cHQgdGhlIG9iamVjdCBhbmQvb3IgYWZmZWN0IFBJSSBkZXRlY3Rpb24gYWNjdXJhY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdmYWxzZSdcbiAgICovXG4gIHJlYWRvbmx5IGlzUGFydGlhbE9iamVjdFN1cHBvcnRlZD86IHN0cmluZztcbiAgLyoqXG4gICAqIExvZyBsZXZlbCBmb3IgTGFtYmRhIGZ1bmN0aW9uIGxvZ2dpbmcsIGUuZy4sIEVSUk9SLCBJTkZPLCBERUJVRywgZXRjLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnSU5GTydcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0xldmVsPzogc3RyaW5nO1xuICAvKipcbiAgICogTWF4aW11bSBjaGFyYWN0ZXJzIHRvIG92ZXJsYXAgYW1vbmcgc2VnbWVudHMgb2YgYSBkb2N1bWVudCBpbiBjYXNlIGNodW5raW5nIGlzIG5lZWRlZCBiZWNhdXNlIG9mIG1heGltdW0gZG9jdW1lbnQgc2l6ZSBsaW1pdC5cbiAgICpcbiAgICogQGRlZmF1bHQgJzIwMCdcbiAgICovXG4gIHJlYWRvbmx5IG1heENoYXJzT3ZlcmxhcD86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY29tbWEgc2VwYXJhdGVkIFBJSSBlbnRpdHkgdHlwZXMgdG8gYmUgY29uc2lkZXJlZCBmb3IgYWNjZXNzIGNvbnRyb2wuIFJlZmVyIENvbXByZWhlbmQncyBkb2N1bWVudGF0aW9uIHBhZ2UgZm9yIGxpc3Qgb2Ygc3VwcG9ydGVkIFBJSSBlbnRpdHkgdHlwZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdBTEwnXG4gICAqL1xuICByZWFkb25seSBwaWlFbnRpdHlUeXBlcz86IHN0cmluZztcbiAgLyoqXG4gICAqIFRydWUgaWYgcHVibGlzaCBtZXRyaWNzIHRvIENsb3Vkd2F0Y2gsIGZhbHNlIG90aGVyd2lzZS4gU2VlIFJFQURNRS5tZCBmb3IgZGV0YWlscyBvbiBDbG91ZFdhdGNoIG1ldHJpY3MuXG4gICAqXG4gICAqIEBkZWZhdWx0ICd0cnVlJ1xuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzPzogc3RyaW5nO1xuICAvKipcbiAgICogTnVtYmVyIG9mIHRva2Vucy93b3JkcyB0byBvdmVybGFwIGFtb25nIHNlZ21lbnRzIG9mIGEgZG9jdW1lbnQgaW4gY2FzZSBjaHVua2luZyBpcyBuZWVkZWQgYmVjYXVzZSBvZiBtYXhpbXVtIGRvY3VtZW50IHNpemUgbGltaXQuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcyMCdcbiAgICovXG4gIHJlYWRvbmx5IHN1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2Vucz86IHN0cmluZztcbiAgLyoqXG4gICAqIEhhbmRsaW5nIGxvZ2ljIGZvciBVbnN1cHBvcnRlZCBmaWxlcy4gVmFsaWQgdmFsdWVzIGFyZSBQQVNTIGFuZCBGQUlMLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnRkFJTCdcbiAgICovXG4gIHJlYWRvbmx5IHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29ucnRvbExhbWJkYSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdW5kZXJseWluZyByZXNvdXJlIGluIHRoZSBzZXJ2ZXJsZXNzIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZW50aXR5IG9mIHRoZSBzZXJ2ZXJsZXNzIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzYW1BcHBsaWNhdGlvbjogc2FtLkNmbkFwcGxpY2F0aW9uO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQWNjZXNzQ29ucnRvbExhbWJkYVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBzZW1hbnRpY1ZlcnNpb24gPSBwcm9wcy5zZW1hbnRpY1ZlcnNpb24gPz8gJzEuMC4yJztcbiAgICBjb25zdCBjb25maWRlbmNlVGhyZXNob2xkID0gcHJvcHMuY29uZmlkZW5jZVRocmVzaG9sZCA/PyAnMC41JztcbiAgICBjb25zdCBjb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPSBwcm9wcy5jb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPz8gJzIwJztcbiAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2VDb2RlID0gcHJvcHMuZGVmYXVsdExhbmd1YWdlQ29kZSA/PyAnZW4nO1xuICAgIGNvbnN0IGRvY3VtZW50TWF4U2l6ZSA9IHByb3BzLmRvY3VtZW50TWF4U2l6ZSA/PyAnMTAyNDAwJztcbiAgICBjb25zdCBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzID0gcHJvcHMuZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyA/PyAnNTAwMDAnO1xuICAgIGNvbnN0IGlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA9IHByb3BzLmlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA/PyAnZmFsc2UnO1xuICAgIGNvbnN0IGxvZ0xldmVsID0gcHJvcHMubG9nTGV2ZWwgPz8gJ0lORk8nO1xuICAgIGNvbnN0IG1heENoYXJzT3ZlcmxhcCA9IHByb3BzLm1heENoYXJzT3ZlcmxhcCA/PyAnMjAwJztcbiAgICBjb25zdCBwaWlFbnRpdHlUeXBlcyA9IHByb3BzLnBpaUVudGl0eVR5cGVzID8/ICdBTEwnO1xuICAgIGNvbnN0IHB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyA9IHByb3BzLnB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyA/PyAndHJ1ZSc7XG4gICAgY29uc3Qgc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID0gcHJvcHMuc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID8/ICcyMCc7XG4gICAgY29uc3QgdW5zdXBwb3J0ZWRGaWxlSGFuZGxpbmcgPSBwcm9wcy51bnN1cHBvcnRlZEZpbGVIYW5kbGluZyA/PyAnRkFJTCc7XG4gICAgdGhpcy5zYW1BcHBsaWNhdGlvbiA9IG5ldyBzYW0uQ2ZuQXBwbGljYXRpb24odGhpcywgJ0NvbXByZWhlbmRQaWlBY2Nlc3NDb250cm9sUzNPYmplY3RMYW1iZGEnLCB7XG4gICAgICBsb2NhdGlvbjoge1xuICAgICAgICBhcHBsaWNhdGlvbklkOiAnYXJuOmF3czpzZXJ2ZXJsZXNzcmVwbzp1cy1lYXN0LTE6ODM5NzgyODU1MjIzOmFwcGxpY2F0aW9ucy9Db21wcmVoZW5kUGlpQWNjZXNzQ29udHJvbFMzT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgc2VtYW50aWNWZXJzaW9uOiBzZW1hbnRpY1ZlcnNpb24sXG4gICAgICB9LFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBbJ0NvbmZpZGVuY2VUaHJlc2hvbGQnXTogY29uZmlkZW5jZVRocmVzaG9sZCxcbiAgICAgICAgWydDb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQnXTogY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50LFxuICAgICAgICBbJ0RlZmF1bHRMYW5ndWFnZUNvZGUnXTogZGVmYXVsdExhbmd1YWdlQ29kZSxcbiAgICAgICAgWydEb2N1bWVudE1heFNpemUnXTogZG9jdW1lbnRNYXhTaXplLFxuICAgICAgICBbJ0RvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMnXTogZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyxcbiAgICAgICAgWydJc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQnXTogaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkLFxuICAgICAgICBbJ0xvZ0xldmVsJ106IGxvZ0xldmVsLFxuICAgICAgICBbJ01heENoYXJzT3ZlcmxhcCddOiBtYXhDaGFyc092ZXJsYXAsXG4gICAgICAgIFsnUGlpRW50aXR5VHlwZXMnXTogcGlpRW50aXR5VHlwZXMsXG4gICAgICAgIFsnUHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzJ106IHB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyxcbiAgICAgICAgWydTdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMnXTogc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zLFxuICAgICAgICBbJ1Vuc3VwcG9ydGVkRmlsZUhhbmRsaW5nJ106IHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnN0YWNrTmFtZSA9IGNkay5Ub2tlbi5hc1N0cmluZyh0aGlzLnNhbUFwcGxpY2F0aW9uLnJlZik7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWRhY3Rpb25MYW1iZGFQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgc2VydmVybGVzcyBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJzEuMC4yJ1xuICAgKi9cbiAgcmVhZG9ubHkgc2VtYW50aWNWZXJzaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogTG9nIGxldmVsIGZvciBMYW1iZGEgZnVuY3Rpb24gbG9nZ2luZywgZS5nLiwgRVJST1IsIElORk8sIERFQlVHLCBldGMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdJTkZPJ1xuICAgKi9cbiAgcmVhZG9ubHkgbG9nTGV2ZWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBIYW5kbGluZyBsb2dpYyBmb3IgVW5zdXBwb3J0ZWQgZmlsZXMuIFZhbGlkIHZhbHVlcyBhcmUgUEFTUyBhbmQgRkFJTC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ0ZBSUwnXG4gICAqL1xuICByZWFkb25seSB1bnN1cHBvcnRlZEZpbGVIYW5kbGluZz86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc3VwcG9ydCBwYXJ0aWFsIG9iamVjdHMgb3Igbm90LiBBY2Nlc3NpbmcgcGFydGlhbCBvYmplY3QgdGhyb3VnaCBodHRwIGhlYWRlcnMgc3VjaCBieXRlLXJhbmdlIGNhbiBjb3JydXB0IHRoZSBvYmplY3QgYW5kL29yIGFmZmVjdCBQSUkgZGV0ZWN0aW9uIGFjY3VyYWN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnZmFsc2UnXG4gICAqL1xuICByZWFkb25seSBpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGRvY3VtZW50IHNpemUgKGluIGJ5dGVzKSB0byBiZSB1c2VkIGZvciBtYWtpbmcgY2FsbHMgdG8gQ29tcHJlaGVuZCdzIENvbnRhaW5zUGlpRW50aXRpZXMgQVBJLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnNTAwMDAnXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzPzogc3RyaW5nO1xuICAvKipcbiAgICogTWF4aW11bSBkb2N1bWVudCBzaXplIChpbiBieXRlcykgdG8gYmUgdXNlZCBmb3IgbWFraW5nIGNhbGxzIHRvIENvbXByZWhlbmQncyBEZXRlY3RQaWlFbnRpdGllcyBBUEkuXG4gICAqXG4gICAqIEBkZWZhdWx0ICc1MDAwJ1xuICAgKi9cbiAgcmVhZG9ubHkgZG9jdW1lbnRNYXhTaXplRGV0ZWN0UGlpRW50aXRpZXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGNvbW1hIHNlcGFyYXRlZCBQSUkgZW50aXR5IHR5cGVzIHRvIGJlIGNvbnNpZGVyZWQgZm9yIHJlZGFjdGlvbi4gUmVmZXIgQ29tcHJlaGVuZCdzIGRvY3VtZW50YXRpb24gcGFnZSBmb3IgbGlzdCBvZiBzdXBwb3J0ZWQgUElJIGVudGl0eSB0eXBlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgJ0FMTCdcbiAgICovXG4gIHJlYWRvbmx5IHBpaUVudGl0eVR5cGVzPzogc3RyaW5nO1xuICAvKipcbiAgICogQSBjaGFyYWN0ZXIgdGhhdCByZXBsYWNlcyBlYWNoIGNoYXJhY3RlciBpbiB0aGUgcmVkYWN0ZWQgUElJIGVudGl0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgJyonXG4gICAqL1xuICByZWFkb25seSBtYXNrQ2hhcmFjdGVyPzogc3RyaW5nO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIFBJSSBlbnRpdHkgaXMgcmVkYWN0ZWQgd2l0aCB0aGUgbWFzayBjaGFyYWN0ZXIgb3IgdGhlIGVudGl0eSB0eXBlLiBWYWxpZCB2YWx1ZXMgLSBSRVBMQUNFX1dJVEhfUElJX0VOVElUWV9UWVBFIGFuZCBNQVNLLlxuICAgKlxuICAgKiBAZmVmYXVsdCAnTUFTSydcbiAgICovXG4gIHJlYWRvbmx5IG1hc2tNb2RlPzogc3RyaW5nO1xuICAvKipcbiAgICogTnVtYmVyIG9mIHRva2Vucy93b3JkcyB0byBvdmVybGFwIGFtb25nIHNlZ21lbnRzIG9mIGEgZG9jdW1lbnQgaW4gY2FzZSBjaHVua2luZyBpcyBuZWVkZWQgYmVjYXVzZSBvZiBtYXhpbXVtIGRvY3VtZW50IHNpemUgbGltaXQuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcyMCdcbiAgICovXG4gIHJlYWRvbmx5IHN1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2Vucz86IHN0cmluZztcbiAgLyoqXG4gICAqIERlZmF1bHQgbWF4aW11bSBkb2N1bWVudCBzaXplIChpbiBieXRlcykgdGhhdCB0aGlzIGZ1bmN0aW9uIGNhbiBwcm9jZXNzIG90aGVyd2lzZSB3aWxsIHRocm93IGV4Y2VwdGlvbiBmb3IgdG9vIGxhcmdlIGRvY3VtZW50IHNpemUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcxMDI0MDAnXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudE1heFNpemU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBwcmVkaWN0aW9uIGNvbmZpZGVuY2Ugc2NvcmUgYWJvdmUgd2hpY2ggUElJIGNsYXNzaWZpY2F0aW9uIGFuZCBkZXRlY3Rpb24gd291bGQgYmUgY29uc2lkZXJlZCBhcyBmaW5hbCBhbnN3ZXIuIFZhbGlkIHJhbmdlICgwLjUgdG8gMS4wKS5cbiAgICpcbiAgICogQGRlZmF1bHQgJzAuNSdcbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZGVuY2VUaHJlc2hvbGQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGNoYXJhY3RlcnMgdG8gb3ZlcmxhcCBhbW9uZyBzZWdtZW50cyBvZiBhIGRvY3VtZW50IGluIGNhc2UgY2h1bmtpbmcgaXMgbmVlZGVkIGJlY2F1c2Ugb2YgbWF4aW11bSBkb2N1bWVudCBzaXplIGxpbWl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnMjAwJ1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q2hhcnNPdmVybGFwPzogc3RyaW5nO1xuICAvKipcbiAgICogRGVmYXVsdCBsYW5ndWFnZSBvZiB0aGUgdGV4dCB0byBiZSBwcm9jZXNzZWQuIFRoaXMgY29kZSB3aWxsIGJlIHVzZWQgZm9yIGludGVyYWN0aW5nIHdpdGggQ29tcHJlaGVuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2VuJ1xuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdExhbmd1YWdlQ29kZT86IHN0cmluZztcbiAgLyoqXG4gICAqIE51bWJlciBvZiB0aHJlYWRzIHRvIHVzZSBmb3IgY2FsbGluZyBDb21wcmVoZW5kJ3MgRGV0ZWN0UGlpRW50aXRpZXMgQVBJLiBUaGlzIGNvbnRyb2xzIHRoZSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGNhbGxzIHRoYXQgd2lsbCBiZSBtYWRlIGZyb20gdGhpcyBMYW1iZGEuXG4gICAqXG4gICAqIEBkZWZhdWx0ICc4J1xuICAgKi9cbiAgcmVhZG9ubHkgZGV0ZWN0UGlpRW50aXRpZXNUaHJlYWRDb3VudD86IHN0cmluZztcbiAgLyoqXG4gICAqIE51bWJlciBvZiB0aHJlYWRzIHRvIHVzZSBmb3IgY2FsbGluZyBDb21wcmVoZW5kJ3MgQ29udGFpbnNQaWlFbnRpdGllcyBBUEkuIFRoaXMgY29udHJvbHMgdGhlIG51bWJlciBvZiBzaW11bHRhbmVvdXMgY2FsbHMgdGhhdCB3aWxsIGJlIG1hZGUgZnJvbSB0aGlzIExhbWJkYS5cbiAgICpcbiAgICogQGRlZmF1bHQgJzIwJ1xuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogVHJ1ZSBpZiBwdWJsaXNoIG1ldHJpY3MgdG8gQ2xvdWR3YXRjaCwgZmFsc2Ugb3RoZXJ3aXNlLiBTZWUgUkVBRE1FLm1kIGZvciBkZXRhaWxzIG9uIENsb3VkV2F0Y2ggbWV0cmljcy5cbiAgICpcbiAgICogQGRlZmF1bHQgJ3RydWUnXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWRhY3Rpb25MYW1iZGEgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHVuZGVybHlpbmcgcmVzb3VyZSBpbiB0aGUgc2VydmVybGVzcyBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGVudGl0eSBvZiB0aGUgc2VydmVybGVzcyBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgc2FtQXBwbGljYXRpb246IHNhbS5DZm5BcHBsaWNhdGlvbjtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBSZWRhY3Rpb25MYW1iZGFQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3Qgc2VtYW50aWNWZXJzaW9uID0gcHJvcHM/LnNlbWFudGljVmVyc2lvbiA/PyAnMS4wLjInO1xuICAgIGNvbnN0IGxvZ0xldmVsID0gcHJvcHM/LmxvZ0xldmVsID8/ICdJTkZPJztcbiAgICBjb25zdCB1bnN1cHBvcnRlZEZpbGVIYW5kbGluZyA9IHByb3BzPy51bnN1cHBvcnRlZEZpbGVIYW5kbGluZyA/PyAnRkFJTCc7XG4gICAgY29uc3QgaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkID0gcHJvcHM/LmlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA/PyAnZmFsc2UnO1xuICAgIGNvbnN0IGRvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMgPSBwcm9wcz8uZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyA/PyAnNTAwMDAnO1xuICAgIGNvbnN0IGRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzID0gcHJvcHM/LmRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzID8/ICc1MDAwJztcbiAgICBjb25zdCBwaWlFbnRpdHlUeXBlcyA9IHByb3BzPy5waWlFbnRpdHlUeXBlcyA/PyAnQUxMJztcbiAgICBjb25zdCBtYXNrQ2hhcmFjdGVyID0gcHJvcHM/Lm1hc2tDaGFyYWN0ZXIgPz8gJyonO1xuICAgIGNvbnN0IG1hc2tNb2RlID0gcHJvcHM/Lm1hc2tNb2RlID8/ICdNQVNLJztcbiAgICBjb25zdCBzdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMgPSBwcm9wcz8uc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID8/ICcyMCc7XG4gICAgY29uc3QgZG9jdW1lbnRNYXhTaXplID0gcHJvcHM/LmRvY3VtZW50TWF4U2l6ZSA/PyAnMTAyNDAwJztcbiAgICBjb25zdCBjb25maWRlbmNlVGhyZXNob2xkID0gcHJvcHM/LmNvbmZpZGVuY2VUaHJlc2hvbGQgPz8gJzAuNSc7XG4gICAgY29uc3QgbWF4Q2hhcnNPdmVybGFwID0gcHJvcHM/Lm1heENoYXJzT3ZlcmxhcCA/PyAnMjAwJztcbiAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2VDb2RlID0gcHJvcHM/LmRlZmF1bHRMYW5ndWFnZUNvZGUgPz8gJ2VuJztcbiAgICBjb25zdCBkZXRlY3RQaWlFbnRpdGllc1RocmVhZENvdW50ID0gcHJvcHM/LmRldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQgPz8gJzgnO1xuICAgIGNvbnN0IGNvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCA9IHByb3BzPy5jb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPz8gJzIwJztcbiAgICBjb25zdCBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MgPSBwcm9wcz8ucHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzID8/ICd0cnVlJztcblxuICAgIHRoaXMuc2FtQXBwbGljYXRpb24gPSBuZXcgc2FtLkNmbkFwcGxpY2F0aW9uKHRoaXMsICdDb21wcmVoZW5kUGlpQWNjZXNzQ29udHJvbFMzT2JqZWN0TGFtYmRhJywge1xuICAgICAgbG9jYXRpb246IHtcbiAgICAgICAgYXBwbGljYXRpb25JZDogJ2Fybjphd3M6c2VydmVybGVzc3JlcG86dXMtZWFzdC0xOjgzOTc4Mjg1NTIyMzphcHBsaWNhdGlvbnMvQ29tcHJlaGVuZFBpaVJlZGFjdGlvblMzT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgc2VtYW50aWNWZXJzaW9uOiBzZW1hbnRpY1ZlcnNpb24sXG4gICAgICB9LFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBbJ0xvZ0xldmVsJ106IGxvZ0xldmVsLFxuICAgICAgICBbJ1Vuc3VwcG9ydGVkRmlsZUhhbmRsaW5nJ106IHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nLFxuICAgICAgICBbJ0lzUGFydGlhbE9iamVjdFN1cHBvcnRlZCddOiBpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQsXG4gICAgICAgIFsnRG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyddOiBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzLFxuICAgICAgICBbJ0RvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzJ106IGRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzLFxuICAgICAgICBbJ1BpaUVudGl0eVR5cGVzJ106IHBpaUVudGl0eVR5cGVzLFxuICAgICAgICBbJ01hc2tDaGFyYWN0ZXInXTogbWFza0NoYXJhY3RlcixcbiAgICAgICAgWydNYXNrTW9kZSddOiBtYXNrTW9kZSxcbiAgICAgICAgWydTdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMnXTogc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zLFxuICAgICAgICBbJ0RvY3VtZW50TWF4U2l6ZSddOiBkb2N1bWVudE1heFNpemUsXG4gICAgICAgIFsnQ29uZmlkZW5jZVRocmVzaG9sZCddOiBjb25maWRlbmNlVGhyZXNob2xkLFxuICAgICAgICBbJ01heENoYXJzT3ZlcmxhcCddOiBtYXhDaGFyc092ZXJsYXAsXG4gICAgICAgIFsnRGVmYXVsdExhbmd1YWdlQ29kZSddOiBkZWZhdWx0TGFuZ3VhZ2VDb2RlLFxuICAgICAgICBbJ0RldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQnXTogZGV0ZWN0UGlpRW50aXRpZXNUaHJlYWRDb3VudCxcbiAgICAgICAgWydDb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQnXTogY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50LFxuICAgICAgICBbJ1B1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyddOiBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuc3RhY2tOYW1lID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuc2FtQXBwbGljYXRpb24ucmVmKTtcbiAgfVxufSJdfQ==
package/lib/iam-roles.js CHANGED
@@ -95,7 +95,7 @@ class GeneralRole extends constructs_1.Construct {
95
95
  }
96
96
  exports.GeneralRole = GeneralRole;
97
97
  _a = JSII_RTTI_SYMBOL_1;
98
- GeneralRole[_a] = { fqn: "cdk-comprehend-s3olap.GeneralRole", version: "2.0.371" };
98
+ GeneralRole[_a] = { fqn: "cdk-comprehend-s3olap.GeneralRole", version: "2.0.373" };
99
99
  class AdminRole extends constructs_1.Construct {
100
100
  constructor(scope, id, props) {
101
101
  super(scope, id);
@@ -180,7 +180,7 @@ class AdminRole extends constructs_1.Construct {
180
180
  }
181
181
  exports.AdminRole = AdminRole;
182
182
  _b = JSII_RTTI_SYMBOL_1;
183
- AdminRole[_b] = { fqn: "cdk-comprehend-s3olap.AdminRole", version: "2.0.371" };
183
+ AdminRole[_b] = { fqn: "cdk-comprehend-s3olap.AdminRole", version: "2.0.373" };
184
184
  class BillingRole extends constructs_1.Construct {
185
185
  constructor(scope, id, props) {
186
186
  super(scope, id);
@@ -265,7 +265,7 @@ class BillingRole extends constructs_1.Construct {
265
265
  }
266
266
  exports.BillingRole = BillingRole;
267
267
  _c = JSII_RTTI_SYMBOL_1;
268
- BillingRole[_c] = { fqn: "cdk-comprehend-s3olap.BillingRole", version: "2.0.371" };
268
+ BillingRole[_c] = { fqn: "cdk-comprehend-s3olap.BillingRole", version: "2.0.373" };
269
269
  class CustSupportRole extends constructs_1.Construct {
270
270
  constructor(scope, id, props) {
271
271
  super(scope, id);
@@ -350,5 +350,5 @@ class CustSupportRole extends constructs_1.Construct {
350
350
  }
351
351
  exports.CustSupportRole = CustSupportRole;
352
352
  _d = JSII_RTTI_SYMBOL_1;
353
- CustSupportRole[_d] = { fqn: "cdk-comprehend-s3olap.CustSupportRole", version: "2.0.371" };
353
+ CustSupportRole[_d] = { fqn: "cdk-comprehend-s3olap.CustSupportRole", version: "2.0.373" };
354
354
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLXJvbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2lhbS1yb2xlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUNuQywyQ0FBMkM7QUFDM0MsMkNBQXVDO0FBdUJ2Qzs7OztHQUlHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsc0JBQVM7SUFnQnhDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxJQUFJLDRCQUE0QixDQUFDO1FBQ3BFLE1BQU0sMkJBQTJCLEdBQUcsS0FBSyxDQUFDLDJCQUEyQixJQUFJLDZDQUE2QyxDQUFDO1FBQ3ZILE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksYUFBYSxDQUFDO1FBQ3ZELE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ2hELFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRTtZQUN6QyxjQUFjLEVBQUU7Z0JBQ2QsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUM7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixVQUFVLEVBQUU7d0JBQ1YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDOzRCQUN0QixHQUFHLEVBQUUscUJBQXFCOzRCQUMxQixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLOzRCQUN4QixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7NEJBQzFCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQzt5QkFDakIsQ0FBQzt3QkFDRixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7NEJBQ3RCLEdBQUcsRUFBRSxvQ0FBb0M7NEJB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OzZCQUNGO3lCQUNGLENBQUM7cUJBQ0g7aUJBQ0YsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUM7SUFDdkMsQ0FBQzs7QUE1RkgsMENBNkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYWxSb2xlUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIElBTSBwb2xpY3kgZm9yIHRoZSBJQU0gcm9sZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2dlbmVyYWwtcm9sZS1zM29sYXAtcG9saWN5J1xuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5TmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIG9iamVjdCBMYW1iZGEgYWNjZXNzIHBvaW50LCB3aGljaCB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSBTMyBhY2NlZXNzIHBvaW50IGZvciB0aGUgUzMgYnVja2V0IGluIHRoZSBkZW1vc3RyYXRpb24uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnYWNjZXNzY3RsLXMzb2xhcC1zdXJ2ZXktcmVzdWx0cy11bmtub3duLXBpaSdcbiAgICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnR2VuZXJhbFJvbGUnXG4gICAgICovXG4gIHJlYWRvbmx5IGlhbVJvbGVOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSByb2xlIHRoYXQgeW91IGFyZSBnb2luZyB0byBhc3N1bWUgKHN3aXRjaCByb2xlKVxuICpcbiAqIEV4cGxvcmVzIGhvdyB0aGUgUzMgT2JqZWN0IExhbWJkYSB3b3Jrcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdlbmVyYWxSb2xlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAgICogVGhlIEFSTiBvZiB0aGUgSUFNIHJvbGUuXG4gICAgICpcbiAgICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZztcbiAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIElBTSByb2xlLlxuICAgICAqXG4gICAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICAgKiBUaGUgdW5pcXVlIHN0cmluZyBpZGVudGlmeWluZyB0aGUgcm9sZS5cbiAgICAgKlxuICAgICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZUlkOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBHZW5lcmFsUm9sZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBwb2xpY3lOYW1lID0gcHJvcHMucG9saWN5TmFtZSA/PyAnZ2VuZXJhbC1yb2xlLXMzb2xhcC1wb2xpY3knO1xuICAgIGNvbnN0IG9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSA9IHByb3BzLm9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSA/PyAnYWNjZXNzY3RsLXMzb2xhcC1zdXJ2ZXktcmVzdWx0cy11bmtub3duLXBpaSc7XG4gICAgY29uc3QgaWFtUm9sZU5hbWUgPSBwcm9wcy5pYW1Sb2xlTmFtZSA/PyAnR2VuZXJhbFJvbGUnO1xuICAgIGNvbnN0IGdlbmVyYWxSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdJYW1Sb2xlJywge1xuICAgICAgcm9sZU5hbWU6IGlhbVJvbGVOYW1lLFxuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLkFjY291bnRSb290UHJpbmNpcGFsKCksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBbcG9saWN5TmFtZV06IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIGFzc2lnblNpZHM6IHRydWUsXG4gICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd0xpc3RpbmdPYmplY3RzJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbJ3MzOkxpc3RCdWNrZXQnXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd0xpc3RpbmdCdWNrZXRzQW5kQWNjZXNzUG9pbnRzJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY2Vzc1BvaW50Rm9yT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjZXNzUG9pbnRDb25maWd1cmF0aW9uRm9yT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgICAgICAgICAnczM6TGlzdEFjY2Vzc1BvaW50c0Zvck9iamVjdExhbWJkYScsXG4gICAgICAgICAgICAgICAgJ3MzOkxpc3RBbGxNeUJ1Y2tldHMnLFxuICAgICAgICAgICAgICAgICdzMzpMaXN0QWNjZXNzUG9pbnRzJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjZXNzUG9pbnQnLFxuICAgICAgICAgICAgICAgICdzMzpHZXRBY2NvdW50UHVibGljQWNjZXNzQmxvY2snLFxuICAgICAgICAgICAgICAgICdzMzpHZXRCdWNrZXRQdWJsaWNBY2Nlc3NCbG9jaycsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEJ1Y2tldFBvbGljeVN0YXR1cycsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEJ1Y2tldEFjbCcsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY2Vzc1BvaW50UG9saWN5U3RhdHVzJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd09iamVjdExhbWJkYUFjY2VzcycsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdzMy1vYmplY3QtbGFtYmRhOkdldConLFxuICAgICAgICAgICAgICAgICdzMy1vYmplY3QtbGFtYmRhOkxpc3QqJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpzMy1vYmplY3QtbGFtYmRhOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTphY2Nlc3Nwb2ludC8ke29iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZX1gXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd1N0YW5kYXJkQWNjZXNzUG9pbnRBY2Nlc3MnLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnczM6R2V0KicsXG4gICAgICAgICAgICAgICAgJ3MzOkxpc3QqJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICAgIFsnRm9yQW55VmFsdWU6U3RyaW5nRXF1YWxzJ106IHtcbiAgICAgICAgICAgICAgICAgICdhd3M6Q2FsbGVkVmlhJzogWydzMy1vYmplY3QtbGFtYmRhLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0FsbG93TGFtYmRhSW52b2NhdGlvbicsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdsYW1iZGE6SW52b2tlRnVuY3Rpb24nLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgWydGb3JBbnlWYWx1ZTpTdHJpbmdFcXVhbHMnXToge1xuICAgICAgICAgICAgICAgICAgJ2F3czpDYWxsZWRWaWEnOiBbJ3MzLW9iamVjdC1sYW1iZGEuYW1hem9uYXdzLmNvbSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5yb2xlQXJuID0gZ2VuZXJhbFJvbGUucm9sZUFybjtcbiAgICB0aGlzLnJvbGVOYW1lID0gZ2VuZXJhbFJvbGUucm9sZU5hbWU7XG4gICAgdGhpcy5yb2xlSWQgPSBnZW5lcmFsUm9sZS5yb2xlSWQ7XG4gIH1cbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIEFkbWluUm9sZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBJQU0gcG9saWN5IGZvciB0aGUgSUFNIHJvbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhZG1pbi1yb2xlLXMzb2xhcC1wb2xpY3knXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG9iamVjdCBMYW1iZGEgYWNjZXNzIHBvaW50LCB3aGljaCB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSBTMyBhY2NlZXNzIHBvaW50IGZvciB0aGUgUzMgYnVja2V0IGluIHRoZSBkZW1vc3RyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhZG1pbi1zM29sYXAtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWknXG4gICAqL1xuICByZWFkb25seSBvYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdSZWRhY3Rpb25BZG1pblJvbGUnXG4gICAqL1xuICByZWFkb25seSBpYW1Sb2xlTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEFkbWluUm9sZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBJQU0gcm9sZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgc3RyaW5nIGlkZW50aWZ5aW5nIHRoZSByb2xlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGVJZDogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEFkbWluUm9sZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBwb2xpY3lOYW1lID0gcHJvcHM/LnBvbGljeU5hbWUgPz8gJ2FkbWluLXJvbGUtczNvbGFwLXBvbGljeSc7XG4gICAgY29uc3Qgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lID0gcHJvcHM/Lm9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSA/PyAnYWRtaW4tczNvbGFwLWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJztcbiAgICBjb25zdCBpYW1Sb2xlTmFtZSA9IHByb3BzPy5pYW1Sb2xlTmFtZSA/PyAnUmVkYWN0aW9uQWRtaW5Sb2xlJztcbiAgICBjb25zdCBhZG1pblJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ1JlZGFjdGlvbkFkbWluUm9sZScsIHtcbiAgICAgIHJvbGVOYW1lOiBpYW1Sb2xlTmFtZSxcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5BY2NvdW50Um9vdFByaW5jaXBhbCgpLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgW3BvbGljeU5hbWVdOiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBhc3NpZ25TaWRzOiB0cnVlLFxuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnQWxsb3dMaXN0aW5nT2JqZWN0cycsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogWydzMzpMaXN0QnVja2V0J10sXG4gICAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnQWxsb3dMaXN0aW5nQnVja2V0c0FuZEFjY2Vzc1BvaW50cycsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdzMzpHZXRBY2Nlc3NQb2ludEZvck9iamVjdExhbWJkYScsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY2Vzc1BvaW50Q29uZmlndXJhdGlvbkZvck9iamVjdExhbWJkYScsXG4gICAgICAgICAgICAgICAgJ3MzOkxpc3RBY2Nlc3NQb2ludHNGb3JPYmplY3RMYW1iZGEnLFxuICAgICAgICAgICAgICAgICdzMzpMaXN0QWxsTXlCdWNrZXRzJyxcbiAgICAgICAgICAgICAgICAnczM6TGlzdEFjY2Vzc1BvaW50cycsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY2Vzc1BvaW50JyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjb3VudFB1YmxpY0FjY2Vzc0Jsb2NrJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QnVja2V0UHVibGljQWNjZXNzQmxvY2snLFxuICAgICAgICAgICAgICAgICdzMzpHZXRCdWNrZXRQb2xpY3lTdGF0dXMnLFxuICAgICAgICAgICAgICAgICdzMzpHZXRCdWNrZXRBY2wnLFxuICAgICAgICAgICAgICAgICdzMzpHZXRBY2Nlc3NQb2ludFBvbGljeVN0YXR1cycsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnQWxsb3dPYmplY3RMYW1iZGFBY2Nlc3MnLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnczMtb2JqZWN0LWxhbWJkYTpHZXQqJyxcbiAgICAgICAgICAgICAgICAnczMtb2JqZWN0LWxhbWJkYTpMaXN0KicsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW2Bhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06czMtb2JqZWN0LWxhbWJkYToke2Nkay5Bd3MuUkVHSU9OfToke2Nkay5Bd3MuQUNDT1VOVF9JRH06YWNjZXNzcG9pbnQvJHtvYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWV9YF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnQWxsb3dTdGFuZGFyZEFjY2Vzc1BvaW50QWNjZXNzJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ3MzOkdldConLFxuICAgICAgICAgICAgICAgICdzMzpMaXN0KicsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBbJ0ZvckFueVZhbHVlOlN0cmluZ0VxdWFscyddOiB7XG4gICAgICAgICAgICAgICAgICAnYXdzOkNhbGxlZFZpYSc6IFsnczMtb2JqZWN0LWxhbWJkYS5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd0xhbWJkYUludm9jYXRpb24nLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnbGFtYmRhOkludm9rZUZ1bmN0aW9uJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICAgIFsnRm9yQW55VmFsdWU6U3RyaW5nRXF1YWxzJ106IHtcbiAgICAgICAgICAgICAgICAgICdhd3M6Q2FsbGVkVmlhJzogWydzMy1vYmplY3QtbGFtYmRhLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMucm9sZUFybiA9IGFkbWluUm9sZS5yb2xlQXJuO1xuICAgIHRoaXMucm9sZU5hbWUgPSBhZG1pblJvbGUucm9sZU5hbWU7XG4gICAgdGhpcy5yb2xlSWQgPSBhZG1pblJvbGUucm9sZUlkO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmlsbGluZ1JvbGVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgSUFNIHBvbGljeSBmb3IgdGhlIElBTSByb2xlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnYmlsbGluZy1yb2xlLXMzb2xhcC1wb2xpY3knXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG9iamVjdCBMYW1iZGEgYWNjZXNzIHBvaW50LCB3aGljaCB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSBTMyBhY2NlZXNzIHBvaW50IGZvciB0aGUgUzMgYnVja2V0IGluIHRoZSBkZW1vc3RyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdiaWxsaW5nLXMzb2xhcC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaSdcbiAgICovXG4gIHJlYWRvbmx5IG9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBJQU0gcm9sZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ1JlZGFjdGlvbkJpbGxpbmdSb2xlJ1xuICAgKi9cbiAgcmVhZG9ubHkgaWFtUm9sZU5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBCaWxsaW5nUm9sZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBJQU0gcm9sZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgc3RyaW5nIGlkZW50aWZ5aW5nIHRoZSByb2xlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGVJZDogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEFkbWluUm9sZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBwb2xpY3lOYW1lID0gcHJvcHM/LnBvbGljeU5hbWUgPz8gJ2JpbGxpbmctcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICBjb25zdCBvYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUgPSBwcm9wcz8ub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lID8/ICdiaWxsaW5nLXMzb2xhcC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaSc7XG4gICAgY29uc3QgaWFtUm9sZU5hbWUgPSBwcm9wcz8uaWFtUm9sZU5hbWUgPz8gJ1JlZGFjdGlvbkJpbGxpbmdSb2xlJztcbiAgICBjb25zdCBiaWxsaW5nUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnUmVkYWN0aW9uQmlsbGluZ1JvbGUnLCB7XG4gICAgICByb2xlTmFtZTogaWFtUm9sZU5hbWUsXG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uQWNjb3VudFJvb3RQcmluY2lwYWwoKSxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgIFtwb2xpY3lOYW1lXTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICAgICAgYXNzaWduU2lkczogdHJ1ZSxcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0FsbG93TGlzdGluZ09iamVjdHMnLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFsnczM6TGlzdEJ1Y2tldCddLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0FsbG93TGlzdGluZ0J1Y2tldHNBbmRBY2Nlc3NQb2ludHMnLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjZXNzUG9pbnRGb3JPYmplY3RMYW1iZGEnLFxuICAgICAgICAgICAgICAgICdzMzpHZXRBY2Nlc3NQb2ludENvbmZpZ3VyYXRpb25Gb3JPYmplY3RMYW1iZGEnLFxuICAgICAgICAgICAgICAgICdzMzpMaXN0QWNjZXNzUG9pbnRzRm9yT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgICAgICAgICAnczM6TGlzdEFsbE15QnVja2V0cycsXG4gICAgICAgICAgICAgICAgJ3MzOkxpc3RBY2Nlc3NQb2ludHMnLFxuICAgICAgICAgICAgICAgICdzMzpHZXRBY2Nlc3NQb2ludCcsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY291bnRQdWJsaWNBY2Nlc3NCbG9jaycsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEJ1Y2tldFB1YmxpY0FjY2Vzc0Jsb2NrJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QnVja2V0UG9saWN5U3RhdHVzJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QnVja2V0QWNsJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjZXNzUG9pbnRQb2xpY3lTdGF0dXMnLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0FsbG93T2JqZWN0TGFtYmRhQWNjZXNzJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ3MzLW9iamVjdC1sYW1iZGE6R2V0KicsXG4gICAgICAgICAgICAgICAgJ3MzLW9iamVjdC1sYW1iZGE6TGlzdConLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OnMzLW9iamVjdC1sYW1iZGE6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmFjY2Vzc3BvaW50LyR7b2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lfWBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0FsbG93U3RhbmRhcmRBY2Nlc3NQb2ludEFjY2VzcycsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdzMzpHZXQqJyxcbiAgICAgICAgICAgICAgICAnczM6TGlzdConLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgWydGb3JBbnlWYWx1ZTpTdHJpbmdFcXVhbHMnXToge1xuICAgICAgICAgICAgICAgICAgJ2F3czpDYWxsZWRWaWEnOiBbJ3MzLW9iamVjdC1sYW1iZGEuYW1hem9uYXdzLmNvbSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnQWxsb3dMYW1iZGFJbnZvY2F0aW9uJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ2xhbWJkYTpJbnZva2VGdW5jdGlvbicsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBbJ0ZvckFueVZhbHVlOlN0cmluZ0VxdWFscyddOiB7XG4gICAgICAgICAgICAgICAgICAnYXdzOkNhbGxlZFZpYSc6IFsnczMtb2JqZWN0LWxhbWJkYS5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnJvbGVBcm4gPSBiaWxsaW5nUm9sZS5yb2xlQXJuO1xuICAgIHRoaXMucm9sZU5hbWUgPSBiaWxsaW5nUm9sZS5yb2xlTmFtZTtcbiAgICB0aGlzLnJvbGVJZCA9IGJpbGxpbmdSb2xlLnJvbGVJZDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RTdXBwb3J0Um9sZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBJQU0gcG9saWN5IGZvciB0aGUgSUFNIHJvbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdjdXN0b21lcnN1cHBvcnQtcm9sZS1zM29sYXAtcG9saWN5J1xuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5TmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBvYmplY3QgTGFtYmRhIGFjY2VzcyBwb2ludCwgd2hpY2ggd2lsbCBiZSB0aGUgc2FtZSBhcyB0aGUgUzMgYWNjZWVzcyBwb2ludCBmb3IgdGhlIFMzIGJ1Y2tldCBpbiB0aGUgZGVtb3N0cmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnY3VzdHN1cHBvcnQtczNvbGFwLWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJ1xuICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIElBTSByb2xlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnUmVkYWN0aW9uQ3VzdFN1cHBvcnRSb2xlJ1xuICAgKi9cbiAgcmVhZG9ubHkgaWFtUm9sZU5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDdXN0U3VwcG9ydFJvbGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgSUFNIHJvbGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZUFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIElBTSByb2xlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIHN0cmluZyBpZGVudGlmeWluZyB0aGUgcm9sZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlSWQ6IHN0cmluZztcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBBZG1pblJvbGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgcG9saWN5TmFtZSA9IHByb3BzPy5wb2xpY3lOYW1lID8/ICdjdXN0b21lcnN1cHBvcnQtcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICBjb25zdCBvYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUgPSBwcm9wcz8ub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lID8/ICdjdXN0c3VwcG9ydC1zM29sYXAtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWknO1xuICAgIGNvbnN0IGlhbVJvbGVOYW1lID0gcHJvcHM/LmlhbVJvbGVOYW1lID8/ICdSZWRhY3Rpb25DdXN0U3VwcG9ydFJvbGUnO1xuICAgIGNvbnN0IGN1c3RTdXBwb3J0Um9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnUmVkYWN0aW9uQ3VzdFN1cHBvcnRSb2xlJywge1xuICAgICAgcm9sZU5hbWU6IGlhbVJvbGVOYW1lLFxuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLkFjY291bnRSb290UHJpbmNpcGFsKCksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBbcG9saWN5TmFtZV06IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIGFzc2lnblNpZHM6IHRydWUsXG4gICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd0xpc3RpbmdPYmplY3RzJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbJ3MzOkxpc3RCdWNrZXQnXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd0xpc3RpbmdCdWNrZXRzQW5kQWNjZXNzUG9pbnRzJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY2Vzc1BvaW50Rm9yT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjZXNzUG9pbnRDb25maWd1cmF0aW9uRm9yT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgICAgICAgICAnczM6TGlzdEFjY2Vzc1BvaW50c0Zvck9iamVjdExhbWJkYScsXG4gICAgICAgICAgICAgICAgJ3MzOkxpc3RBbGxNeUJ1Y2tldHMnLFxuICAgICAgICAgICAgICAgICdzMzpMaXN0QWNjZXNzUG9pbnRzJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjZXNzUG9pbnQnLFxuICAgICAgICAgICAgICAgICdzMzpHZXRBY2NvdW50UHVibGljQWNjZXNzQmxvY2snLFxuICAgICAgICAgICAgICAgICdzMzpHZXRCdWNrZXRQdWJsaWNBY2Nlc3NCbG9jaycsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEJ1Y2tldFBvbGljeVN0YXR1cycsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEJ1Y2tldEFjbCcsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY2Vzc1BvaW50UG9saWN5U3RhdHVzJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd09iamVjdExhbWJkYUFjY2VzcycsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdzMy1vYmplY3QtbGFtYmRhOkdldConLFxuICAgICAgICAgICAgICAgICdzMy1vYmplY3QtbGFtYmRhOkxpc3QqJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpzMy1vYmplY3QtbGFtYmRhOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTphY2Nlc3Nwb2ludC8ke29iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZX1gXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd1N0YW5kYXJkQWNjZXNzUG9pbnRBY2Nlc3MnLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnczM6R2V0KicsXG4gICAgICAgICAgICAgICAgJ3MzOkxpc3QqJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICAgIFsnRm9yQW55VmFsdWU6U3RyaW5nRXF1YWxzJ106IHtcbiAgICAgICAgICAgICAgICAgICdhd3M6Q2FsbGVkVmlhJzogWydzMy1vYmplY3QtbGFtYmRhLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0FsbG93TGFtYmRhSW52b2NhdGlvbicsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdsYW1iZGE6SW52b2tlRnVuY3Rpb24nLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgWydGb3JBbnlWYWx1ZTpTdHJpbmdFcXVhbHMnXToge1xuICAgICAgICAgICAgICAgICAgJ2F3czpDYWxsZWRWaWEnOiBbJ3MzLW9iamVjdC1sYW1iZGEuYW1hem9uYXdzLmNvbSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5yb2xlQXJuID0gY3VzdFN1cHBvcnRSb2xlLnJvbGVBcm47XG4gICAgdGhpcy5yb2xlTmFtZSA9IGN1c3RTdXBwb3J0Um9sZS5yb2xlTmFtZTtcbiAgICB0aGlzLnJvbGVJZCA9IGN1c3RTdXBwb3J0Um9sZS5yb2xlSWQ7XG4gIH1cbn0iXX0=
@@ -69,7 +69,7 @@ require('aws-sdk/lib/maintenance_mode_message').suppress = true;
69
69
  To use the SDK in the browser, simply add the following script tag to your
70
70
  HTML pages:
71
71
 
72
- <script src="https://sdk.amazonaws.com/js/aws-sdk-2.1525.0.min.js"></script>
72
+ <script src="https://sdk.amazonaws.com/js/aws-sdk-2.1526.0.min.js"></script>
73
73
 
74
74
  You can also build a custom browser SDK with your specified set of AWS services.
75
75
  This can allow you to reduce the SDK's size, specify different API versions of
@@ -1882,6 +1882,23 @@
1882
1882
  }
1883
1883
  }
1884
1884
  },
1885
+ "SetKeepJobFlowAliveWhenNoSteps": {
1886
+ "input": {
1887
+ "type": "structure",
1888
+ "required": [
1889
+ "JobFlowIds",
1890
+ "KeepJobFlowAliveWhenNoSteps"
1891
+ ],
1892
+ "members": {
1893
+ "JobFlowIds": {
1894
+ "shape": "S1t"
1895
+ },
1896
+ "KeepJobFlowAliveWhenNoSteps": {
1897
+ "type": "boolean"
1898
+ }
1899
+ }
1900
+ }
1901
+ },
1885
1902
  "SetTerminationProtection": {
1886
1903
  "input": {
1887
1904
  "type": "structure",
@@ -388,6 +388,14 @@ declare class EMR extends Service {
388
388
  * RunJobFlow creates and starts running a new cluster (job flow). The cluster runs the steps specified. After the steps complete, the cluster stops and the HDFS partition is lost. To prevent loss of data, configure the last step of the job flow to store results in Amazon S3. If the JobFlowInstancesConfig KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, the cluster transitions to the WAITING state rather than shutting down after the steps have completed. For additional protection, you can set the JobFlowInstancesConfig TerminationProtected parameter to TRUE to lock the cluster and prevent it from being terminated by API call, user intervention, or in the event of a job flow error. A maximum of 256 steps are allowed in each job flow. If your cluster is long-running (such as a Hive data warehouse) or complex, you may require more than 256 steps to process your data. You can bypass the 256-step limitation in various ways, including using the SSH shell to connect to the master node and submitting queries directly to the software running on the master node, such as Hive and Hadoop. For long-running clusters, we recommend that you periodically store your results. The instance fleets configuration is available only in Amazon EMR releases 4.8.0 and later, excluding 5.0.x versions. The RunJobFlow request can contain InstanceFleets parameters or InstanceGroups parameters, but not both.
389
389
  */
390
390
  runJobFlow(callback?: (err: AWSError, data: EMR.Types.RunJobFlowOutput) => void): Request<EMR.Types.RunJobFlowOutput, AWSError>;
391
+ /**
392
+ * You can use the SetKeepJobFlowAliveWhenNoSteps to configure a cluster (job flow) to terminate after the step execution, i.e., all your steps are executed. If you want a transient cluster that shuts down after the last of the current executing steps are completed, you can configure SetKeepJobFlowAliveWhenNoSteps to false. If you want a long running cluster, configure SetKeepJobFlowAliveWhenNoSteps to true. For more information, see Managing Cluster Termination in the Amazon EMR Management Guide.
393
+ */
394
+ setKeepJobFlowAliveWhenNoSteps(params: EMR.Types.SetKeepJobFlowAliveWhenNoStepsInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
395
+ /**
396
+ * You can use the SetKeepJobFlowAliveWhenNoSteps to configure a cluster (job flow) to terminate after the step execution, i.e., all your steps are executed. If you want a transient cluster that shuts down after the last of the current executing steps are completed, you can configure SetKeepJobFlowAliveWhenNoSteps to false. If you want a long running cluster, configure SetKeepJobFlowAliveWhenNoSteps to true. For more information, see Managing Cluster Termination in the Amazon EMR Management Guide.
397
+ */
398
+ setKeepJobFlowAliveWhenNoSteps(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
391
399
  /**
392
400
  * SetTerminationProtection locks a cluster (job flow) so the Amazon EC2 instances in the cluster cannot be terminated by user intervention, an API call, or in the event of a job-flow error. The cluster still terminates upon successful completion of the job flow. Calling SetTerminationProtection on a cluster is similar to calling the Amazon EC2 DisableAPITermination API on all Amazon EC2 instances in a cluster. SetTerminationProtection is used to prevent accidental termination of a cluster and to ensure that in the event of an error, the instances persist so that you can recover any data stored in their ephemeral instance storage. To terminate a cluster that has been locked by setting SetTerminationProtection to true, you must first unlock the job flow by a subsequent call to SetTerminationProtection in which you set the value to false. For more information, seeManaging Cluster Termination in the Amazon EMR Management Guide.
393
401
  */
@@ -3333,6 +3341,16 @@ declare namespace EMR {
3333
3341
  CreationTime?: _Date;
3334
3342
  }
3335
3343
  export type SessionMappingSummaryList = SessionMappingSummary[];
3344
+ export interface SetKeepJobFlowAliveWhenNoStepsInput {
3345
+ /**
3346
+ * A list of strings that uniquely identify the clusters to protect. This identifier is returned by RunJobFlow and can also be obtained from DescribeJobFlows.
3347
+ */
3348
+ JobFlowIds: XmlStringList;
3349
+ /**
3350
+ * A Boolean that indicates whether to terminate the cluster after all steps are executed.
3351
+ */
3352
+ KeepJobFlowAliveWhenNoSteps: Boolean;
3353
+ }
3336
3354
  export interface SetTerminationProtectionInput {
3337
3355
  /**
3338
3356
  * A list of strings that uniquely identify the clusters to protect. This identifier is returned by RunJobFlow and can also be obtained from DescribeJobFlows .
@@ -109,11 +109,11 @@ declare class IAM extends Service {
109
109
  */
110
110
  createLoginProfile(callback?: (err: AWSError, data: IAM.Types.CreateLoginProfileResponse) => void): Request<IAM.Types.CreateLoginProfileResponse, AWSError>;
111
111
  /**
112
- * Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC). The OIDC provider that you create with this operation can be used as a principal in a role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and the OIDC provider. If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't need to create a separate IAM identity provider. These OIDC identity providers are already built-in to Amazon Web Services and are available for your use. Instead, you can move directly to creating new roles using your identity provider. To learn more, see Creating a role for web identity or OpenID connect federation in the IAM User Guide. When you create the IAM OIDC provider, you specify the following: The URL of the OIDC identity provider (IdP) to trust A list of client IDs (also known as audiences) that identify the application or applications allowed to authenticate using the OIDC provider A list of tags that are attached to the specified IAM OIDC provider A list of thumbprints of one or more server certificates that the IdP uses You get all of this information from the OIDC IdP you want to use to access Amazon Web Services. Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to verify your IdP server certificate. These OIDC IdPs include Auth0, GitHub, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. In these cases, your legacy thumbprint remains in your configuration, but is no longer used for validation. The trust for the OIDC provider is derived from the IAM provider that this operation creates. Therefore, it is best to limit access to the CreateOpenIDConnectProvider operation to highly privileged users.
112
+ * Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC). The OIDC provider that you create with this operation can be used as a principal in a role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and the OIDC provider. If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't need to create a separate IAM identity provider. These OIDC identity providers are already built-in to Amazon Web Services and are available for your use. Instead, you can move directly to creating new roles using your identity provider. To learn more, see Creating a role for web identity or OpenID connect federation in the IAM User Guide. When you create the IAM OIDC provider, you specify the following: The URL of the OIDC identity provider (IdP) to trust A list of client IDs (also known as audiences) that identify the application or applications allowed to authenticate using the OIDC provider A list of tags that are attached to the specified IAM OIDC provider A list of thumbprints of one or more server certificates that the IdP uses You get all of this information from the OIDC IdP you want to use to access Amazon Web Services. Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to verify your IdP server certificate. In these cases, your legacy thumbprint remains in your configuration, but is no longer used for validation. These OIDC IdPs include Auth0, GitHub, GitLab, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. The trust for the OIDC provider is derived from the IAM provider that this operation creates. Therefore, it is best to limit access to the CreateOpenIDConnectProvider operation to highly privileged users.
113
113
  */
114
114
  createOpenIDConnectProvider(params: IAM.Types.CreateOpenIDConnectProviderRequest, callback?: (err: AWSError, data: IAM.Types.CreateOpenIDConnectProviderResponse) => void): Request<IAM.Types.CreateOpenIDConnectProviderResponse, AWSError>;
115
115
  /**
116
- * Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC). The OIDC provider that you create with this operation can be used as a principal in a role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and the OIDC provider. If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't need to create a separate IAM identity provider. These OIDC identity providers are already built-in to Amazon Web Services and are available for your use. Instead, you can move directly to creating new roles using your identity provider. To learn more, see Creating a role for web identity or OpenID connect federation in the IAM User Guide. When you create the IAM OIDC provider, you specify the following: The URL of the OIDC identity provider (IdP) to trust A list of client IDs (also known as audiences) that identify the application or applications allowed to authenticate using the OIDC provider A list of tags that are attached to the specified IAM OIDC provider A list of thumbprints of one or more server certificates that the IdP uses You get all of this information from the OIDC IdP you want to use to access Amazon Web Services. Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to verify your IdP server certificate. These OIDC IdPs include Auth0, GitHub, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. In these cases, your legacy thumbprint remains in your configuration, but is no longer used for validation. The trust for the OIDC provider is derived from the IAM provider that this operation creates. Therefore, it is best to limit access to the CreateOpenIDConnectProvider operation to highly privileged users.
116
+ * Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC). The OIDC provider that you create with this operation can be used as a principal in a role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and the OIDC provider. If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't need to create a separate IAM identity provider. These OIDC identity providers are already built-in to Amazon Web Services and are available for your use. Instead, you can move directly to creating new roles using your identity provider. To learn more, see Creating a role for web identity or OpenID connect federation in the IAM User Guide. When you create the IAM OIDC provider, you specify the following: The URL of the OIDC identity provider (IdP) to trust A list of client IDs (also known as audiences) that identify the application or applications allowed to authenticate using the OIDC provider A list of tags that are attached to the specified IAM OIDC provider A list of thumbprints of one or more server certificates that the IdP uses You get all of this information from the OIDC IdP you want to use to access Amazon Web Services. Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to verify your IdP server certificate. In these cases, your legacy thumbprint remains in your configuration, but is no longer used for validation. These OIDC IdPs include Auth0, GitHub, GitLab, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. The trust for the OIDC provider is derived from the IAM provider that this operation creates. Therefore, it is best to limit access to the CreateOpenIDConnectProvider operation to highly privileged users.
117
117
  */
118
118
  createOpenIDConnectProvider(callback?: (err: AWSError, data: IAM.Types.CreateOpenIDConnectProviderResponse) => void): Request<IAM.Types.CreateOpenIDConnectProviderResponse, AWSError>;
119
119
  /**
@@ -1169,11 +1169,11 @@ declare class IAM extends Service {
1169
1169
  */
1170
1170
  updateLoginProfile(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
1171
1171
  /**
1172
- * Replaces the existing list of server certificate thumbprints associated with an OpenID Connect (OIDC) provider resource object with a new list of thumbprints. The list that you pass with this operation completely replaces the existing list of thumbprints. (The lists are not merged.) Typically, you need to update a thumbprint only when the identity provider certificate changes, which occurs rarely. However, if the provider's certificate does change, any attempt to assume an IAM role that specifies the OIDC provider as a principal fails until the certificate thumbprint is updated. Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to verify your IdP server certificate. These OIDC IdPs include Auth0, GitHub, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. In these cases, your legacy thumbprint remains in your configuration, but is no longer used for validation. Trust for the OIDC provider is derived from the provider certificate and is validated by the thumbprint. Therefore, it is best to limit access to the UpdateOpenIDConnectProviderThumbprint operation to highly privileged users.
1172
+ * Replaces the existing list of server certificate thumbprints associated with an OpenID Connect (OIDC) provider resource object with a new list of thumbprints. The list that you pass with this operation completely replaces the existing list of thumbprints. (The lists are not merged.) Typically, you need to update a thumbprint only when the identity provider certificate changes, which occurs rarely. However, if the provider's certificate does change, any attempt to assume an IAM role that specifies the OIDC provider as a principal fails until the certificate thumbprint is updated. Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to verify your IdP server certificate. In these cases, your legacy thumbprint remains in your configuration, but is no longer used for validation. These OIDC IdPs include Auth0, GitHub, GitLab, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. Trust for the OIDC provider is derived from the provider certificate and is validated by the thumbprint. Therefore, it is best to limit access to the UpdateOpenIDConnectProviderThumbprint operation to highly privileged users.
1173
1173
  */
1174
1174
  updateOpenIDConnectProviderThumbprint(params: IAM.Types.UpdateOpenIDConnectProviderThumbprintRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
1175
1175
  /**
1176
- * Replaces the existing list of server certificate thumbprints associated with an OpenID Connect (OIDC) provider resource object with a new list of thumbprints. The list that you pass with this operation completely replaces the existing list of thumbprints. (The lists are not merged.) Typically, you need to update a thumbprint only when the identity provider certificate changes, which occurs rarely. However, if the provider's certificate does change, any attempt to assume an IAM role that specifies the OIDC provider as a principal fails until the certificate thumbprint is updated. Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to verify your IdP server certificate. These OIDC IdPs include Auth0, GitHub, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. In these cases, your legacy thumbprint remains in your configuration, but is no longer used for validation. Trust for the OIDC provider is derived from the provider certificate and is validated by the thumbprint. Therefore, it is best to limit access to the UpdateOpenIDConnectProviderThumbprint operation to highly privileged users.
1176
+ * Replaces the existing list of server certificate thumbprints associated with an OpenID Connect (OIDC) provider resource object with a new list of thumbprints. The list that you pass with this operation completely replaces the existing list of thumbprints. (The lists are not merged.) Typically, you need to update a thumbprint only when the identity provider certificate changes, which occurs rarely. However, if the provider's certificate does change, any attempt to assume an IAM role that specifies the OIDC provider as a principal fails until the certificate thumbprint is updated. Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library of trusted root certificate authorities (CAs) instead of using a certificate thumbprint to verify your IdP server certificate. In these cases, your legacy thumbprint remains in your configuration, but is no longer used for validation. These OIDC IdPs include Auth0, GitHub, GitLab, Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. Trust for the OIDC provider is derived from the provider certificate and is validated by the thumbprint. Therefore, it is best to limit access to the UpdateOpenIDConnectProviderThumbprint operation to highly privileged users.
1177
1177
  */
1178
1178
  updateOpenIDConnectProviderThumbprint(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
1179
1179
  /**
@@ -83,7 +83,7 @@ return /******/ (function(modules) { // webpackBootstrap
83
83
  /**
84
84
  * @constant
85
85
  */
86
- VERSION: '2.1525.0',
86
+ VERSION: '2.1526.0',
87
87
 
88
88
  /**
89
89
  * @api private