@aws-cdk/aws-s3tables-alpha 2.256.1-alpha.0 → 2.258.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +32 -3
- package/.jsii.tabl.json.gz +0 -0
- package/lib/namespace.js +1 -1
- package/lib/table-bucket-policy.js +36 -3
- package/lib/table-bucket.js +39 -6
- package/lib/table-policy.js +36 -3
- package/lib/table.js +38 -5
- package/lib/util.js +35 -2
- package/package.json +6 -6
package/.jsii
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"aws-cdk-lib": "^2.258.0",
|
|
12
12
|
"constructs": "^10.5.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -525,6 +525,19 @@
|
|
|
525
525
|
}
|
|
526
526
|
}
|
|
527
527
|
},
|
|
528
|
+
"aws-cdk-lib.aws_awsexternalanthropic": {
|
|
529
|
+
"targets": {
|
|
530
|
+
"dotnet": {
|
|
531
|
+
"namespace": "Amazon.CDK.AWS.AWSExternalAnthropic"
|
|
532
|
+
},
|
|
533
|
+
"java": {
|
|
534
|
+
"package": "software.amazon.awscdk.services.awsexternalanthropic"
|
|
535
|
+
},
|
|
536
|
+
"python": {
|
|
537
|
+
"module": "aws_cdk.aws_awsexternalanthropic"
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
},
|
|
528
541
|
"aws-cdk-lib.aws_b2bi": {
|
|
529
542
|
"targets": {
|
|
530
543
|
"dotnet": {
|
|
@@ -4702,6 +4715,22 @@
|
|
|
4702
4715
|
}
|
|
4703
4716
|
}
|
|
4704
4717
|
},
|
|
4718
|
+
"aws-cdk-lib.interfaces.aws_awsexternalanthropic": {
|
|
4719
|
+
"targets": {
|
|
4720
|
+
"dotnet": {
|
|
4721
|
+
"namespace": "Amazon.CDK.Interfaces.AWSExternalAnthropic"
|
|
4722
|
+
},
|
|
4723
|
+
"go": {
|
|
4724
|
+
"packageName": "interfacesawsawsexternalanthropic"
|
|
4725
|
+
},
|
|
4726
|
+
"java": {
|
|
4727
|
+
"package": "software.amazon.awscdk.interfaces.awsexternalanthropic"
|
|
4728
|
+
},
|
|
4729
|
+
"python": {
|
|
4730
|
+
"module": "aws_cdk.interfaces.aws_awsexternalanthropic"
|
|
4731
|
+
}
|
|
4732
|
+
}
|
|
4733
|
+
},
|
|
4705
4734
|
"aws-cdk-lib.interfaces.aws_b2bi": {
|
|
4706
4735
|
"targets": {
|
|
4707
4736
|
"dotnet": {
|
|
@@ -8937,7 +8966,7 @@
|
|
|
8937
8966
|
"stability": "experimental"
|
|
8938
8967
|
},
|
|
8939
8968
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
8940
|
-
"jsiiVersion": "5.9.
|
|
8969
|
+
"jsiiVersion": "5.9.44 (build 150b837)",
|
|
8941
8970
|
"keywords": [
|
|
8942
8971
|
"aws",
|
|
8943
8972
|
"cdk",
|
|
@@ -12684,6 +12713,6 @@
|
|
|
12684
12713
|
"symbolId": "lib/table-bucket:UnreferencedFileRemovalStatus"
|
|
12685
12714
|
}
|
|
12686
12715
|
},
|
|
12687
|
-
"version": "2.
|
|
12716
|
+
"version": "2.258.0-alpha.0",
|
|
12688
12717
|
"fingerprint": "**********"
|
|
12689
12718
|
}
|
package/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
package/lib/namespace.js
CHANGED
|
@@ -62,7 +62,7 @@ let Namespace = (() => {
|
|
|
62
62
|
Namespace = _classThis = _classDescriptor.value;
|
|
63
63
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
64
64
|
}
|
|
65
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.Namespace", version: "2.
|
|
65
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.Namespace", version: "2.258.0-alpha.0" };
|
|
66
66
|
/** Uniquely identifies this class. */
|
|
67
67
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.Namespace';
|
|
68
68
|
/**
|
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
2
18
|
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
3
19
|
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
4
20
|
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
@@ -33,11 +49,28 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
|
|
|
33
49
|
}
|
|
34
50
|
return useValue ? value : void 0;
|
|
35
51
|
};
|
|
52
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
53
|
+
var ownKeys = function(o) {
|
|
54
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
55
|
+
var ar = [];
|
|
56
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
57
|
+
return ar;
|
|
58
|
+
};
|
|
59
|
+
return ownKeys(o);
|
|
60
|
+
};
|
|
61
|
+
return function (mod) {
|
|
62
|
+
if (mod && mod.__esModule) return mod;
|
|
63
|
+
var result = {};
|
|
64
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
65
|
+
__setModuleDefault(result, mod);
|
|
66
|
+
return result;
|
|
67
|
+
};
|
|
68
|
+
})();
|
|
36
69
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
70
|
exports.TableBucketPolicy = void 0;
|
|
38
71
|
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
39
72
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
40
|
-
const iam = require("aws-cdk-lib/aws-iam");
|
|
73
|
+
const iam = __importStar(require("aws-cdk-lib/aws-iam"));
|
|
41
74
|
const aws_s3tables_1 = require("aws-cdk-lib/aws-s3tables");
|
|
42
75
|
const core_1 = require("aws-cdk-lib/core");
|
|
43
76
|
const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
|
|
@@ -62,7 +95,7 @@ let TableBucketPolicy = (() => {
|
|
|
62
95
|
TableBucketPolicy = _classThis = _classDescriptor.value;
|
|
63
96
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
64
97
|
}
|
|
65
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucketPolicy", version: "2.
|
|
98
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucketPolicy", version: "2.258.0-alpha.0" };
|
|
66
99
|
/** Uniquely identifies this class. */
|
|
67
100
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.TableBucketPolicy';
|
|
68
101
|
/**
|
|
@@ -103,4 +136,4 @@ let TableBucketPolicy = (() => {
|
|
|
103
136
|
return TableBucketPolicy = _classThis;
|
|
104
137
|
})();
|
|
105
138
|
exports.TableBucketPolicy = TableBucketPolicy;
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVja2V0LXBvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRhYmxlLWJ1Y2tldC1wb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseURBQTJDO0FBQzNDLDJEQUFnRTtBQUVoRSwyQ0FBNEM7QUFDNUMsOEVBQThFO0FBQzlFLDBFQUEwRTtBQXlCMUU7Ozs7O0dBS0c7SUFFVSxpQkFBaUI7NEJBRDdCLG9DQUFrQjs7OztzQkFDb0IsZUFBUTtpQ0FBaEIsU0FBUSxXQUFROzs7O1lBQS9DLDZLQTZCQzs7Ozs7UUE1QkMsc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVywrQ0FBK0MsQ0FBQztRQUN2Rzs7V0FFRztRQUNhLFFBQVEsQ0FBcUI7UUFDN0M7O1dBRUc7UUFDYyxTQUFTLENBQXVCO1FBRWpELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7WUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7Ozs7O21EQWJSLGlCQUFpQjs7OztZQWMxQixtQ0FBbUM7WUFDbkMsSUFBQSx3Q0FBb0IsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFbEMsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLGNBQWMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFbkUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLG1DQUFvQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7Z0JBQ2xELGNBQWMsRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLGNBQWM7Z0JBQ2hELGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUTthQUM5QixDQUFDLENBQUM7WUFFSCxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsQ0FBQztTQUNGOztZQTVCVSx1REFBaUI7Ozs7O0FBQWpCLDhDQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENmblRhYmxlQnVja2V0UG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzdGFibGVzJztcbmltcG9ydCB0eXBlIHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElUYWJsZUJ1Y2tldCB9IGZyb20gJy4vdGFibGUtYnVja2V0JztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBjb25zdHJ1Y3RpbmcgYSBUYWJsZUJ1Y2tldFBvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQnVja2V0UG9saWN5UHJvcHMge1xuICAvKipcbiAgICogVGhlIGFzc29jaWF0ZWQgdGFibGUgYnVja2V0XG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldDogSVRhYmxlQnVja2V0O1xuICAvKipcbiAgICogVGhlIHBvbGljeSBkb2N1bWVudCBmb3IgdGhlIGJ1Y2tldCdzIHJlc291cmNlIHBvbGljeVxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWQgQW4gZW1wdHkgaWFtLlBvbGljeURvY3VtZW50IHdpbGwgYmUgaW5pdGlhbGl6ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlUG9saWN5PzogaWFtLlBvbGljeURvY3VtZW50O1xuICAvKipcbiAgICogUG9saWN5IHRvIGFwcGx5IHdoZW4gdGhlIHBvbGljeSBpcyByZW1vdmVkIGZyb20gdGhpcyBzdGFjay5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBSZW1vdmFsUG9saWN5LkRFU1RST1kuXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcbn1cblxuLyoqXG4gKiBBIEJ1Y2tldCBQb2xpY3kgZm9yIFMzIFRhYmxlQnVja2V0cy5cbiAqXG4gKiBZb3Ugd2lsbCBhbG1vc3QgbmV2ZXIgbmVlZCB0byB1c2UgdGhpcyBjb25zdHJ1Y3QgZGlyZWN0bHkuXG4gKiBJbnN0ZWFkLCBUYWJsZUJ1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5IGNhbiBiZSB1c2VkIHRvIGFkZCBtb3JlIHBvbGljaWVzIHRvIHlvdXIgYnVja2V0IGRpcmVjdGx5XG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBUYWJsZUJ1Y2tldFBvbGljeSBleHRlbmRzIFJlc291cmNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtczN0YWJsZXMtYWxwaGEuVGFibGVCdWNrZXRQb2xpY3knO1xuICAvKipcbiAgICogVGhlIElBTSBQb2xpY3lEb2N1bWVudCBjb250YWluaW5nIHBlcm1pc3Npb25zIHJlcHJlc2VudGVkIGJ5IHRoaXMgcG9saWN5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50OiBpYW0uUG9saWN5RG9jdW1lbnQ7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgVGhlIHVuZGVybHlpbmcgcG9saWN5IHJlc291cmNlLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzb3VyY2U6IENmblRhYmxlQnVja2V0UG9saWN5O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUYWJsZUJ1Y2tldFBvbGljeVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIC8vIFVzZSBkZWZhdWx0IHBvbGljeSBpZiBub3QgcHJvdmlkZWQgd2l0aCBwcm9wc1xuICAgIHRoaXMuZG9jdW1lbnQgPSBwcm9wcy5yZXNvdXJjZVBvbGljeSB8fCBuZXcgaWFtLlBvbGljeURvY3VtZW50KHt9KTtcblxuICAgIHRoaXMuX3Jlc291cmNlID0gbmV3IENmblRhYmxlQnVja2V0UG9saWN5KHRoaXMsIGlkLCB7XG4gICAgICB0YWJsZUJ1Y2tldEFybjogcHJvcHMudGFibGVCdWNrZXQudGFibGVCdWNrZXRBcm4sXG4gICAgICByZXNvdXJjZVBvbGljeTogdGhpcy5kb2N1bWVudCxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5yZW1vdmFsUG9saWN5KSB7XG4gICAgICB0aGlzLl9yZXNvdXJjZS5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/lib/table-bucket.js
CHANGED
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
2
18
|
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
3
19
|
var useValue = arguments.length > 2;
|
|
4
20
|
for (var i = 0; i < initializers.length; i++) {
|
|
@@ -33,19 +49,36 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
|
|
|
33
49
|
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
34
50
|
done = true;
|
|
35
51
|
};
|
|
52
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
53
|
+
var ownKeys = function(o) {
|
|
54
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
55
|
+
var ar = [];
|
|
56
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
57
|
+
return ar;
|
|
58
|
+
};
|
|
59
|
+
return ownKeys(o);
|
|
60
|
+
};
|
|
61
|
+
return function (mod) {
|
|
62
|
+
if (mod && mod.__esModule) return mod;
|
|
63
|
+
var result = {};
|
|
64
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
65
|
+
__setModuleDefault(result, mod);
|
|
66
|
+
return result;
|
|
67
|
+
};
|
|
68
|
+
})();
|
|
36
69
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
70
|
exports.TableBucket = exports.TableBucketEncryption = exports.RequestMetricsStatus = exports.UnreferencedFileRemovalStatus = void 0;
|
|
38
71
|
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
39
72
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
40
73
|
const os_1 = require("os");
|
|
41
|
-
const iam = require("aws-cdk-lib/aws-iam");
|
|
42
|
-
const kms = require("aws-cdk-lib/aws-kms");
|
|
43
|
-
const s3tables = require("aws-cdk-lib/aws-s3tables");
|
|
74
|
+
const iam = __importStar(require("aws-cdk-lib/aws-iam"));
|
|
75
|
+
const kms = __importStar(require("aws-cdk-lib/aws-kms"));
|
|
76
|
+
const s3tables = __importStar(require("aws-cdk-lib/aws-s3tables"));
|
|
44
77
|
const core_1 = require("aws-cdk-lib/core");
|
|
45
78
|
const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
|
|
46
79
|
const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
|
|
47
80
|
const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
|
|
48
|
-
const perms = require("./permissions");
|
|
81
|
+
const perms = __importStar(require("./permissions"));
|
|
49
82
|
const table_bucket_policy_1 = require("./table-bucket-policy");
|
|
50
83
|
const util_1 = require("./util");
|
|
51
84
|
/**
|
|
@@ -201,7 +234,7 @@ let TableBucket = (() => {
|
|
|
201
234
|
TableBucket = _classThis = _classDescriptor.value;
|
|
202
235
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
203
236
|
}
|
|
204
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucket", version: "2.
|
|
237
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucket", version: "2.258.0-alpha.0" };
|
|
205
238
|
/** Uniquely identifies this class. */
|
|
206
239
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.TableBucket';
|
|
207
240
|
/**
|
|
@@ -486,4 +519,4 @@ let TableBucket = (() => {
|
|
|
486
519
|
return TableBucket = _classThis;
|
|
487
520
|
})();
|
|
488
521
|
exports.TableBucket = TableBucket;
|
|
489
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFibGUtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJCQUF5QjtBQUN6QiwyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLHFEQUFxRDtBQUVyRCwyQ0FBNEU7QUFDNUUsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFFMUUsdUNBQXVDO0FBQ3ZDLCtEQUEwRDtBQUMxRCxpQ0FBdUQ7QUEwSHZEOztHQUVHO0FBQ0gsSUFBWSw2QkFVWDtBQVZELFdBQVksNkJBQTZCO0lBQ3ZDOztPQUVHO0lBQ0gsb0RBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxzREFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVlcsNkJBQTZCLDZDQUE3Qiw2QkFBNkIsUUFVeEM7QUFFRDs7R0FFRztBQUNILElBQVksb0JBVVg7QUFWRCxXQUFZLG9CQUFvQjtJQUM5Qjs7T0FFRztJQUNILDJDQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsNkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVZXLG9CQUFvQixvQ0FBcEIsb0JBQW9CLFFBVS9CO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLHFCQVdYO0FBWEQsV0FBWSxxQkFBcUI7SUFDL0I7OztPQUdHO0lBQ0gsd0NBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsOENBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVhXLHFCQUFxQixxQ0FBckIscUJBQXFCLFFBV2hDO0FBRUQsTUFBZSxlQUFnQixTQUFRLGVBQVE7SUFvQjdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BbUJHO0lBQ0ksbUJBQW1CLENBQ3hCLFNBQThCO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElB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QUFNLElBQUksOEJBQXVCLENBQUMsSUFBQSxzQkFBRyxFQUFBLGdDQUFnQyxFQUFFLDhDQUE4QyxLQUFLLENBQUMsVUFBVSxhQUFhLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1NBQzFLO1FBRUQ7Ozs7O1dBS0c7UUFDSyxpQ0FBaUMsQ0FBQyxhQUF1QixFQUFFLGVBQXVCO1lBQ3hGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ25DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBRXZDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7Z0JBQ3hELEdBQUcsRUFBRSxnQ0FBZ0M7Z0JBQ3JDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7Z0JBQ3hCLFVBQVUsRUFBRTtvQkFDVixJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDL0Q7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHFCQUFxQjtvQkFDckIsYUFBYTtpQkFDZDtnQkFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7Z0JBQ2hCLFVBQVUsRUFBRTtvQkFDVixVQUFVLEVBQUU7d0JBQ1Ysa0NBQWtDLEVBQUUsT0FBTyxTQUFTLGFBQWEsTUFBTSxJQUFJLE9BQU8sV0FBVyxlQUFlLElBQUk7cUJBQ2pIO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDLENBQUM7U0FDTDs7WUEzVFUsdURBQVc7Ozs7O0FBQVgsa0NBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFT0wgfSBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgKiBhcyBzM3RhYmxlcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczN0YWJsZXMnO1xuaW1wb3J0IHR5cGUgeyBJUmVzb3VyY2UsIElUYWdnYWJsZVYyLCBSZW1vdmFsUG9saWN5LCBUYWdNYW5hZ2VyIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBSZXNvdXJjZSwgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IsIFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBtZW1vaXplZEdldHRlciwgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgcGVybXMgZnJvbSAnLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBUYWJsZUJ1Y2tldFBvbGljeSB9IGZyb20gJy4vdGFibGUtYnVja2V0LXBvbGljeSc7XG5pbXBvcnQgeyB2YWxpZGF0ZVRhYmxlQnVja2V0QXR0cmlidXRlcyB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGRlZmluaXRpb24gZm9yIFMzIFRhYmxlIEJ1Y2tldHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVGFibGVCdWNrZXQgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFjY291bnRJZCBjb250YWluaW5nIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb24gY29udGFpbmluZyB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIEtNUyBlbmNyeXB0aW9uIGtleSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWJsZSBidWNrZXQuXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIHJlc291cmNlIHBvbGljeSBmb3IgYSBwcmluY2lwYWwgKGkuZS5cbiAgICogYWNjb3VudC9yb2xlL3NlcnZpY2UpIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQvb3IgaXRzXG4gICAqIHRhYmxlcy5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZSBwb2xpY3kgc3RhdGVtZW50IG1heSBvciBtYXkgbm90IGJlIGFkZGVkIHRvIHRoZSBwb2xpY3kuXG4gICAqIEZvciBleGFtcGxlLCB3aGVuIGFuIGBJVGFibGVCdWNrZXRgIGlzIGNyZWF0ZWQgZnJvbSBhbiBleGlzdGluZyB0YWJsZSBidWNrZXQsXG4gICAqIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHRlbGwgd2hldGhlciB0aGUgYnVja2V0IGFscmVhZHkgaGFzIGEgcG9saWN5XG4gICAqIGF0dGFjaGVkLCBsZXQgYWxvbmUgdG8gcmUtdXNlIHRoYXQgcG9saWN5IHRvIGFkZCBtb3JlIHN0YXRlbWVudHMgdG8gaXQuXG4gICAqIFNvIGl0J3Mgc2FmZXN0IHRvIGRvIG5vdGhpbmcgaW4gdGhlc2UgY2FzZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0ZW1lbnQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgdG8gYmUgYWRkZWQgdG8gdGhlIGJ1Y2tldCdzXG4gICAqIHBvbGljeS5cbiAgICogQHJldHVybnMgbWV0YWRhdGEgYWJvdXQgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIG1ldGhvZC4gSWYgdGhlIHBvbGljeVxuICAgKiB3YXMgbm90IGFkZGVkLCB0aGUgdmFsdWUgb2YgYHN0YXRlbWVudEFkZGVkYCB3aWxsIGJlIGBmYWxzZWAuIFlvdVxuICAgKiBzaG91bGQgYWx3YXlzIGNoZWNrIHRoaXMgdmFsdWUgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG9wZXJhdGlvbiB3YXNcbiAgICogYWN0dWFsbHkgY2FycmllZCBvdXQuIE90aGVyd2lzZSwgc3ludGhlc2lzIGFuZCBkZXBsb3kgd2lsbCB0ZXJtaW5hdGVcbiAgICogc2lsZW50bHksIHdoaWNoIG1heSBiZSBjb25mdXNpbmcuXG4gICAqL1xuICBhZGRUb1Jlc291cmNlUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0O1xuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIGZvciB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQgaXRzIHRhYmxlc1xuICAgKiB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiBlbmNyeXB0aW9uIGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgdG8gZGVjcnlwdCB0aGUgY29udGVudHNcbiAgICogb2YgdGhlIGJ1Y2tldCB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIHRhYmxlSWQgQWxsb3cgdGhlIHBlcm1pc3Npb25zIHRvIGFsbCB0YWJsZXMgdXNpbmcgJyonIG9yIHRvIHNpbmdsZSB0YWJsZSBieSBpdHMgdW5pcXVlIElELlxuICAgKi9cbiAgZ3JhbnRSZWFkKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSBidWNrZXQgYW5kIGl0cyB0YWJsZXNcbiAgICogdG8gYW4gSUFNIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgZW5jcnlwdGlvbiBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IHRvIGVuY3J5cHQgdGhlIGNvbnRlbnRzXG4gICAqIG9mIHRoZSBidWNrZXQgd2lsbCBhbHNvIGJlIGdyYW50ZWQgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyB3cml0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcGFyYW0gdGFibGVJZCBBbGxvdyB0aGUgcGVybWlzc2lvbnMgdG8gYWxsIHRhYmxlcyB1c2luZyAnKicgb3IgdG8gc2luZ2xlIHRhYmxlIGJ5IGl0cyB1bmlxdWUgSUQuXG4gICAqL1xuICBncmFudFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIGFuZCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSBidWNrZXQgYW5kIGl0cyB0YWJsZXNcbiAgICogdG8gYW4gSUFNIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgZW5jcnlwdGlvbiBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IHRvIGVuY3J5cHQvZGVjcnlwdCB0aGUgY29udGVudHNcbiAgICogb2YgdGhlIGJ1Y2tldCB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIHRvXG4gICAqIEBwYXJhbSB0YWJsZUlkIEFsbG93IHRoZSBwZXJtaXNzaW9ucyB0byBhbGwgdGFibGVzIHVzaW5nICcqJyBvciB0byBzaW5nbGUgdGFibGUgYnkgaXRzIHVuaXF1ZSBJRC5cbiAgICovXG4gIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xufVxuXG4vKipcbiAqIFVucmVmZXJlbmNlZCBmaWxlIHJlbW92YWwgc2V0dGluZ3MgZm9yIHRoZSB0aGlzIHRhYmxlIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCB7XG4gIC8qKlxuICAgKiBEdXJhdGlvbiBhZnRlciB3aGljaCBub25jdXJyZW50IGZpbGVzIHNob3VsZCBiZSByZW1vdmVkLiBTaG91bGQgYmUgYXQgbGVhc3Qgb25lIGRheS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZS1idWNrZXRzLW1haW50ZW5hbmNlLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTZWUgUzMgVGFibGVzIFVzZXIgR3VpZGVcbiAgICovXG4gIHJlYWRvbmx5IG5vbmN1cnJlbnREYXlzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTdGF0dXMgb2YgdW5yZWZlcmVuY2VkIGZpbGUgcmVtb3ZhbC4gQ2FuIGJlIEVuYWJsZWQgb3IgRGlzYWJsZWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGUtYnVja2V0cy1tYWludGVuYW5jZS5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gU2VlIFMzIFRhYmxlcyBVc2VyIEd1aWRlXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbFN0YXR1cztcblxuICAvKipcbiAgICogRHVyYXRpb24gYWZ0ZXIgd2hpY2ggdW5yZWZlcmVuY2VkIGZpbGVzIHNob3VsZCBiZSByZW1vdmVkLiBTaG91bGQgYmUgYXQgbGVhc3Qgb25lIGRheS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZS1idWNrZXRzLW1haW50ZW5hbmNlLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTZWUgUzMgVGFibGVzIFVzZXIgR3VpZGVcbiAgICovXG4gIHJlYWRvbmx5IHVucmVmZXJlbmNlZERheXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29udHJvbHMgd2hldGhlciB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsIGlzIGVuYWJsZWQgb3IgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBlbnVtIFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsU3RhdHVzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsLlxuICAgKi9cbiAgRU5BQkxFRCA9ICdFbmFibGVkJyxcblxuICAvKipcbiAgICogRGlzYWJsZSB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsLlxuICAgKi9cbiAgRElTQUJMRUQgPSAnRGlzYWJsZWQnLFxufVxuXG4vKipcbiAqIENvbnRyb2xzIHdoZXRoZXIgQ2xvdWRXYXRjaCByZXF1ZXN0IG1ldHJpY3MgYXJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgZm9yIHRoZSB0YWJsZSBidWNrZXQuXG4gKi9cbmV4cG9ydCBlbnVtIFJlcXVlc3RNZXRyaWNzU3RhdHVzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBDbG91ZFdhdGNoIHJlcXVlc3QgbWV0cmljcyBmb3IgdGhlIHRhYmxlIGJ1Y2tldC5cbiAgICovXG4gIEVOQUJMRUQgPSAnRW5hYmxlZCcsXG5cbiAgLyoqXG4gICAqIERpc2FibGUgQ2xvdWRXYXRjaCByZXF1ZXN0IG1ldHJpY3MgZm9yIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqL1xuICBESVNBQkxFRCA9ICdEaXNhYmxlZCcsXG59XG5cbi8qKlxuICogQ29udHJvbHMgU2VydmVyIFNpZGUgRW5jcnlwdGlvbiAoU1NFKSBmb3IgdGhpcyBUYWJsZUJ1Y2tldC5cbiAqL1xuZXhwb3J0IGVudW0gVGFibGVCdWNrZXRFbmNyeXB0aW9uIHtcbiAgLyoqXG4gICAqIFVzZSBhIGN1c3RvbWVyIGRlZmluZWQgS01TIGtleSBmb3IgZW5jcnlwdGlvblxuICAgKiBJZiBgZW5jcnlwdGlvbktleWAgaXMgc3BlY2lmaWVkLCB0aGlzIGtleSB3aWxsIGJlIHVzZWQsIG90aGVyd2lzZSwgb25lIHdpbGwgYmUgZGVmaW5lZC5cbiAgICovXG4gIEtNUyA9ICdhd3M6a21zJyxcblxuICAvKipcbiAgICogVXNlIFMzIG1hbmFnZWQgZW5jcnlwdGlvbiBrZXlzIHdpdGggQUVTMjU2IGVuY3J5cHRpb25cbiAgICovXG4gIFMzX01BTkFHRUQgPSAnQUVTMjU2Jyxcbn1cblxuYWJzdHJhY3QgY2xhc3MgVGFibGVCdWNrZXRCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJVGFibGVCdWNrZXQge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVCdWNrZXRBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgcG9saWN5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhYmxlIGJ1Y2tldC5cbiAgICpcbiAgICogSWYgYGF1dG9DcmVhdGVQb2xpY3lgIGlzIHRydWUsIGEgYFRhYmxlQnVja2V0UG9saWN5YCB3aWxsIGJlIGNyZWF0ZWQgdXBvbiB0aGVcbiAgICogZmlyc3QgY2FsbCB0byBhZGRUb1Jlc291cmNlUG9saWN5KHMpLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHRhYmxlQnVja2V0UG9saWN5PzogVGFibGVCdWNrZXRQb2xpY3k7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBhIHRhYmxlIGJ1Y2tldCByZXNvdXJjZSBwb2xpY3kgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB1cG9uXG4gICAqIHRoZSBmaXJzdCBjYWxsIHRvIGBhZGRUb1Jlc291cmNlUG9saWN5YC5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXkgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIHJlc291cmNlIHBvbGljeSBmb3IgYSBwcmluY2lwYWwgKGkuZS5cbiAgICogYWNjb3VudC9yb2xlL3NlcnZpY2UpIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQvb3IgaXRzXG4gICAqIGNvbnRlbnRzLiBVc2UgYHRhYmxlQnVja2V0QXJuYCBhbmQgYGFybkZvck9iamVjdHMoa2V5cylgIHRvIG9idGFpbiBBUk5zIGZvclxuICAgKiB0aGlzIGJ1Y2tldCBvciBvYmplY3RzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgbWF5IG9yIG1heSBub3QgYmUgYWRkZWQgdG8gdGhlIHBvbGljeS5cbiAgICogRm9yIGV4YW1wbGUsIHdoZW4gYW4gYElUYWJsZUJ1Y2tldGAgaXMgY3JlYXRlZCBmcm9tIGFuIGV4aXN0aW5nIHRhYmxlIGJ1Y2tldCxcbiAgICogaXQncyBub3QgcG9zc2libGUgdG8gdGVsbCB3aGV0aGVyIHRoZSBidWNrZXQgYWxyZWFkeSBoYXMgYSBwb2xpY3lcbiAgICogYXR0YWNoZWQsIGxldCBhbG9uZSB0byByZS11c2UgdGhhdCBwb2xpY3kgdG8gYWRkIG1vcmUgc3RhdGVtZW50cyB0byBpdC5cbiAgICogU28gaXQncyBzYWZlc3QgdG8gZG8gbm90aGluZyBpbiB0aGVzZSBjYXNlcy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudCB0aGUgcG9saWN5IHN0YXRlbWVudCB0byBiZSBhZGRlZCB0byB0aGUgYnVja2V0J3NcbiAgICogcG9saWN5LlxuICAgKiBAcmV0dXJucyBtZXRhZGF0YSBhYm91dCB0aGUgZXhlY3V0aW9uIG9mIHRoaXMgbWV0aG9kLiBJZiB0aGUgcG9saWN5XG4gICAqIHdhcyBub3QgYWRkZWQsIHRoZSB2YWx1ZSBvZiBgc3RhdGVtZW50QWRkZWRgIHdpbGwgYmUgYGZhbHNlYC4gWW91XG4gICAqIHNob3VsZCBhbHdheXMgY2hlY2sgdGhpcyB2YWx1ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgb3BlcmF0aW9uIHdhc1xuICAgKiBhY3R1YWxseSBjYXJyaWVkIG91dC4gT3RoZXJ3aXNlLCBzeW50aGVzaXMgYW5kIGRlcGxveSB3aWxsIHRlcm1pbmF0ZVxuICAgKiBzaWxlbnRseSwgd2hpY2ggbWF5IGJlIGNvbmZ1c2luZy5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIGlmICghdGhpcy50YWJsZUJ1Y2tldFBvbGljeSAmJiB0aGlzLmF1dG9DcmVhdGVQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVCdWNrZXRQb2xpY3kgPSBuZXcgVGFibGVCdWNrZXRQb2xpY3kodGhpcywgJ0RlZmF1bHRQb2xpY3knLCB7XG4gICAgICAgIHRhYmxlQnVja2V0OiB0aGlzLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGFibGVCdWNrZXRQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVCdWNrZXRQb2xpY3kuZG9jdW1lbnQuYWRkU3RhdGVtZW50cyhzdGF0ZW1lbnQpO1xuICAgICAgcmV0dXJuIHsgc3RhdGVtZW50QWRkZWQ6IHRydWUsIHBvbGljeURlcGVuZGFibGU6IHRoaXMudGFibGVCdWNrZXRQb2xpY3kgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogZmFsc2UgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlLCB0YWJsZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfQlVDS0VUX1JFQURfQUNDRVNTLFxuICAgICAgcGVybXMuS0VZX1JFQURfQUNDRVNTLFxuICAgICAgdGhpcy50YWJsZUJ1Y2tldEFybixcbiAgICAgIHRoaXMuZ2V0VGFibGVBcm4odGFibGVJZCksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX0JVQ0tFVF9XUklURV9BQ0NFU1MsXG4gICAgICBwZXJtcy5LRVlfUkVBRF9XUklURV9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQnVja2V0QXJuLFxuICAgICAgdGhpcy5nZXRUYWJsZUFybih0YWJsZUlkKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX0JVQ0tFVF9SRUFEX1dSSVRFX0FDQ0VTUyxcbiAgICAgIHBlcm1zLktFWV9XUklURV9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQnVja2V0QXJuLFxuICAgICAgdGhpcy5nZXRUYWJsZUFybih0YWJsZUlkKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyB0aGUgZ2l2ZW4gczN0YWJsZXMgcGVybWlzc2lvbnMgdG8gdGhlIHByb3ZpZGVkIHByaW5jaXBhbFxuICAgKiBAcmV0dXJucyBHcmFudCBvYmplY3RcbiAgICovXG4gIHByaXZhdGUgZ3JhbnQoXG4gICAgZ3JhbnRlZTogaWFtLklHcmFudGFibGUsXG4gICAgdGFibGVCdWNrZXRBY3Rpb25zOiBzdHJpbmdbXSxcbiAgICBrZXlBY3Rpb25zOiBzdHJpbmdbXSxcbiAgICByZXNvdXJjZUFybjogc3RyaW5nLFxuICAgIC4uLm90aGVyUmVzb3VyY2VBcm5zOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdKSB7XG4gICAgY29uc3QgcmVzb3VyY2VzID0gW3Jlc291cmNlQXJuLCAuLi5vdGhlclJlc291cmNlQXJuc10uZmlsdGVyKGFybiA9PiBhcm4gIT0gdW5kZWZpbmVkKTtcblxuICAgIGNvbnN0IGdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsT3JSZXNvdXJjZSh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogdGFibGVCdWNrZXRBY3Rpb25zLFxuICAgICAgcmVzb3VyY2VBcm5zOiByZXNvdXJjZXMsXG4gICAgICByZXNvdXJjZTogdGhpcyxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmVuY3J5cHRpb25LZXkgJiYga2V5QWN0aW9ucyAmJiBrZXlBY3Rpb25zLmxlbmd0aCAhPT0gMCkge1xuICAgICAgdGhpcy5lbmNyeXB0aW9uS2V5LmdyYW50KGdyYW50ZWUsIC4uLmtleUFjdGlvbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBncmFudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGFibGVBcm4odGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHRhYmxlSWQgPyBgJHt0aGlzLnRhYmxlQnVja2V0QXJufS90YWJsZS8ke3RhYmxlSWR9YCA6IHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGNvbnN0cnVjdGluZyBhIFRhYmxlQnVja2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVCdWNrZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBTMyBUYWJsZUJ1Y2tldC5cbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGVzLWJ1Y2tldHMtbmFtaW5nLmh0bWwjdGFibGUtYnVja2V0cy1uYW1pbmctcnVsZXNcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVbnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsIHNldHRpbmdzIGZvciB0aGUgUzMgVGFibGVCdWNrZXQuXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXMzdGFibGVzLXRhYmxlYnVja2V0LXVucmVmZXJlbmNlZGZpbGVyZW1vdmFsLmh0bWxcbiAgICogQGRlZmF1bHQgRW5hYmxlZCB3aXRoIGRlZmF1bHQgdmFsdWVzXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGUtYnVja2V0cy1tYWludGVuYW5jZS5odG1sXG4gICAqL1xuICByZWFkb25seSB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbD86IFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsO1xuXG4gIC8qKlxuICAgKiBBV1MgcmVnaW9uIHRoYXQgdGhlIHRhYmxlIGJ1Y2tldCBleGlzdHMgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gaXQncyBhc3N1bWVkIHRoZSBidWNrZXQgaXMgaW4gdGhlIHNhbWUgcmVnaW9uIGFzIHRoZSBzY29wZSBpdCdzIGJlaW5nIGltcG9ydGVkIGludG9cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQVdTIEFjY291bnQgSUQgb2YgdGhlIHRhYmxlIGJ1Y2tldCBvd25lci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBpdCdzIGFzc3VtZWQgdGhlIGJ1Y2tldCBiZWxvbmdzIHRvIHRoZSBzYW1lIGFjY291bnQgYXMgdGhlIHNjb3BlIGl0J3MgYmVpbmcgaW1wb3J0ZWQgaW50b1xuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGtpbmQgb2Ygc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0byBhcHBseSB0byB0aGlzIGJ1Y2tldC5cbiAgICpcbiAgICogSWYgeW91IGNob29zZSBLTVMsIHlvdSBjYW4gc3BlY2lmeSBhIEtNUyBrZXkgdmlhIGBlbmNyeXB0aW9uS2V5YC4gSWZcbiAgICogZW5jcnlwdGlvbiBrZXkgaXMgbm90IHNwZWNpZmllZCwgYSBrZXkgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYEtNU2AgaWYgYGVuY3J5cHRpb25LZXlgIGlzIHNwZWNpZmllZCwgb3IgYFMzX01BTkFHRURgIG90aGVyd2lzZS5cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBUYWJsZUJ1Y2tldEVuY3J5cHRpb247XG5cbiAgLyoqXG4gICAqIEV4dGVybmFsIEtNUyBrZXkgdG8gdXNlIGZvciBidWNrZXQgZW5jcnlwdGlvbi5cbiAgICpcbiAgICogVGhlIGBlbmNyeXB0aW9uYCBwcm9wZXJ0eSBtdXN0IGJlIGVpdGhlciBub3Qgc3BlY2lmaWVkIG9yIHNldCB0byBgS01TYC5cbiAgICogQW4gZXJyb3Igd2lsbCBiZSBlbWl0dGVkIGlmIGBlbmNyeXB0aW9uYCBpcyBzZXQgdG8gYFMzX01BTkFHRURgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIElmIGBlbmNyeXB0aW9uYCBpcyBzZXQgdG8gYEtNU2AgYW5kIHRoaXMgcHJvcGVydHkgaXMgdW5kZWZpbmVkLFxuICAgKiBhIG5ldyBLTVMga2V5IHdpbGwgYmUgY3JlYXRlZCBhbmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYnVja2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGF0IGhhcHBlbnMgdG8gdGhpcyB0YWJsZSBidWNrZXQgaXQgaXQgc3RvcGVkIGJlaW5nIG1hbmFnZWQgYnkgY2xvdWRmb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IFJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG5cbiAgLyoqXG4gICAqIENsb3VkV2F0Y2ggcmVxdWVzdCBtZXRyaWNzIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqXG4gICAqIFdoZW4gZW5hYmxlZCwgUzMgVGFibGVzIHB1Ymxpc2hlcyBDbG91ZFdhdGNoIHJlcXVlc3QgbWV0cmljcyBmb3IgdGhlIHRhYmxlIGJ1Y2tldC5cbiAgICogUmVxdWVzdCBtZXRyaWNzIHByb3ZpZGUgaW5zaWdodCBpbnRvIEFtYXpvbiBTMyBUYWJsZXMgcmVxdWVzdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUmVxdWVzdCBtZXRyaWNzIGFyZSBkaXNhYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdE1ldHJpY3NTdGF0dXM/OiBSZXF1ZXN0TWV0cmljc1N0YXR1cztcbn1cblxuLyoqXG4gKiBBIHJlZmVyZW5jZSB0byBhIHRhYmxlIGJ1Y2tldCBvdXRzaWRlIHRoaXMgc3RhY2tcbiAqXG4gKiBUaGUgdGFibGVCdWNrZXROYW1lLCByZWdpb24sIGFuZCBhY2NvdW50IGNhbiBiZSBwcm92aWRlZCBleHBsaWNpdGx5XG4gKiBvciB3aWxsIGJlIGluZmVycmVkIGZyb20gdGhlIHRhYmxlQnVja2V0QXJuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVCdWNrZXRBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIEFXUyByZWdpb24gdGhpcyB0YWJsZSBidWNrZXQgZXhpc3RzIGluXG4gICAqIEBkZWZhdWx0IHJlZ2lvbiBpbmZlcnJlZCBmcm9tIHNjb3BlXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50SWQgY29udGFpbmluZyB0aGlzIHRhYmxlIGJ1Y2tldFxuICAgKiBAZGVmYXVsdCBhY2NvdW50IGluZmVycmVkIGZyb20gc2NvcGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQgbmFtZSwgdW5pcXVlIHBlciByZWdpb25cbiAgICogQGRlZmF1bHQgdGFibGVCdWNrZXROYW1lIGluZmVycmVkIGZyb20gYXJuXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQncyBBUk4uXG4gICAqIEBkZWZhdWx0IHRhYmxlQnVja2V0QXJuIGNvbnN0cnVjdGVkIGZyb20gcmVnaW9uLCBhY2NvdW50IGFuZCB0YWJsZUJ1Y2tldE5hbWUgYXJlIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldEFybj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgS01TIGVuY3J5cHRpb24ga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGJ1Y2tldC5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleTtcbn1cblxuLyoqXG4gKiBBbiBTMyB0YWJsZSBidWNrZXQgd2l0aCBoZWxwZXJzIGZvciBhc3NvY2lhdGVkIHJlc291cmNlIHBvbGljaWVzXG4gKlxuICogVGhpcyBidWNrZXQgbWF5IG5vdCB5ZXQgaGF2ZSBhbGwgZmVhdHVyZXMgdGhhdCBleHBvc2VkIGJ5IHRoZSB1bmRlcmx5aW5nIENmblRhYmxlQnVja2V0LlxuICpcbiAqIEBzdGF0ZWZ1bFxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHNhbXBsZVRhYmxlQnVja2V0ID0gbmV3IFRhYmxlQnVja2V0KHNjb3BlLCAnRXhhbXBsZVRhYmxlQnVja2V0Jywge1xuICogICB0YWJsZUJ1Y2tldE5hbWU6ICdleGFtcGxlLWJ1Y2tldCcsXG4gKiAgIC8vIE9wdGlvbmFsIGZpZWxkczpcbiAqICAgdW5yZWZlcmVuY2VkRmlsZVJlbW92YWw6IHtcbiAqICAgICBub25jdXJyZW50RGF5czogMTIzLFxuICogICAgIHN0YXR1czogVW5yZWZlcmVuY2VkRmlsZVJlbW92YWxTdGF0dXMuRU5BQkxFRCxcbiAqICAgICB1bnJlZmVyZW5jZWREYXlzOiAxMjMsXG4gKiAgIH0sXG4gKiB9KTtcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFRhYmxlQnVja2V0IGV4dGVuZHMgVGFibGVCdWNrZXRCYXNlIGltcGxlbWVudHMgSVRhZ2dhYmxlVjIge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1zM3RhYmxlcy1hbHBoYS5UYWJsZUJ1Y2tldCc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBUYWJsZUJ1Y2tldCBjb25zdHJ1Y3QgZnJvbSBhbiBleHRlcm5hbCB0YWJsZSBidWNrZXQgQVJOLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lLlxuICAgKiBAcGFyYW0gdGFibGVCdWNrZXRBcm4gQW1hem9uIFJlc291cmNlIE5hbWUgKGFybikgb2YgdGhlIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVGFibGVCdWNrZXRBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgdGFibGVCdWNrZXRBcm46IHN0cmluZyk6IElUYWJsZUJ1Y2tldCB7XG4gICAgcmV0dXJuIFRhYmxlQnVja2V0LmZyb21UYWJsZUJ1Y2tldEF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IHRhYmxlQnVja2V0QXJuIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBUYWJsZUJ1Y2tldCBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIHRhYmxlIGJ1Y2tldC5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZS5cbiAgICogQHBhcmFtIGF0dHJzIEEgYFRhYmxlQnVja2V0QXR0cmlidXRlc2Agb2JqZWN0LiBDYW4gYmUgbWFudWFsbHkgY3JlYXRlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlQnVja2V0QXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IFRhYmxlQnVja2V0QXR0cmlidXRlcyxcbiAgKTogSVRhYmxlQnVja2V0IHtcbiAgICBjb25zdCB7IHRhYmxlQnVja2V0TmFtZSwgcmVnaW9uLCBhY2NvdW50LCB0YWJsZUJ1Y2tldEFybiB9ID0gdmFsaWRhdGVUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMoc2NvcGUsIGF0dHJzKTtcbiAgICBUYWJsZUJ1Y2tldC52YWxpZGF0ZVRhYmxlQnVja2V0TmFtZSh0YWJsZUJ1Y2tldE5hbWUpO1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFRhYmxlQnVja2V0QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVCdWNrZXROYW1lID0gdGFibGVCdWNrZXROYW1lITtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldEFybiA9IHRhYmxlQnVja2V0QXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlQnVja2V0UG9saWN5PzogVGFibGVCdWNrZXRQb2xpY3k7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcmVnaW9uID0gcmVnaW9uO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGFjY291bnQgPSBhY2NvdW50O1xuICAgICAgcHVibGljIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleSA9IGF0dHJzLmVuY3J5cHRpb25LZXk7XG4gICAgICBwcm90ZWN0ZWQgYXV0b0NyZWF0ZVBvbGljeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAvKipcbiAgICAgICAqIEV4cG9ydHMgdGhpcyBidWNrZXQgZnJvbSB0aGUgc3RhY2suXG4gICAgICAgKi9cbiAgICAgIHB1YmxpYyBleHBvcnQoKSB7XG4gICAgICAgIHJldHVybiBhdHRycztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHtcbiAgICAgIGFjY291bnQsXG4gICAgICByZWdpb24sXG4gICAgICBwaHlzaWNhbE5hbWU6IHRhYmxlQnVja2V0TmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZSBnaXZlbiB0YWJsZSBidWNrZXQgbmFtZSBpcyBub3QgdmFsaWQuXG4gICAqXG4gICAqIEBwYXJhbSBidWNrZXROYW1lIG5hbWUgb2YgdGhlIGJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGVUYWJsZUJ1Y2tldE5hbWUoXG4gICAgYnVja2V0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICBpZiAoYnVja2V0TmFtZSA9PSB1bmRlZmluZWQgfHwgVG9rZW4uaXNVbnJlc29sdmVkKGJ1Y2tldE5hbWUpKSB7XG4gICAgICAvLyB0aGUgbmFtZSBpcyBhIGxhdGUtYm91bmQgdmFsdWUsIG5vdCBhIGRlZmluZWQgc3RyaW5nLCBzbyBza2lwIHZhbGlkYXRpb25cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBMZW5ndGggdmFsaWRhdGlvblxuICAgIGlmIChidWNrZXROYW1lLmxlbmd0aCA8IDMgfHwgYnVja2V0TmFtZS5sZW5ndGggPiA2Mykge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdCdWNrZXQgbmFtZSBtdXN0IGJlIGF0IGxlYXN0IDMgYW5kIG5vIG1vcmUgdGhhbiA2MyBjaGFyYWN0ZXJzJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ2hhcmFjdGVyIHNldCB2YWxpZGF0aW9uXG4gICAgY29uc3QgaWxsZWdhbENoYXJzZXRSZWdFeCA9IC9bXmEtejAtOS1dLztcbiAgICBjb25zdCBhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeCA9IC9bYS16MC05XS87XG5cbiAgICBjb25zdCBpbGxlZ2FsQ2hhck1hdGNoID0gYnVja2V0TmFtZS5tYXRjaChpbGxlZ2FsQ2hhcnNldFJlZ0V4KTtcbiAgICBpZiAoaWxsZWdhbENoYXJNYXRjaCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdCdWNrZXQgbmFtZSBtdXN0IG9ubHkgY29udGFpbiBsb3dlcmNhc2UgY2hhcmFjdGVycywgbnVtYmVycywgYW5kIGh5cGhlbnMgKC0pJyArXG4gICAgICAgICAgYCAob2Zmc2V0OiAke2lsbGVnYWxDaGFyTWF0Y2guaW5kZXh9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEVkZ2UgY2hhcmFjdGVyIHZhbGlkYXRpb25cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QoYnVja2V0TmFtZS5jaGFyQXQoMCkpKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ0J1Y2tldCBuYW1lIG11c3Qgc3RhcnQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6IDApJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgICFhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeC50ZXN0KGJ1Y2tldE5hbWUuY2hhckF0KGJ1Y2tldE5hbWUubGVuZ3RoIC0gMSkpXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYEJ1Y2tldCBuYW1lIG11c3QgZW5kIHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAke1xuICAgICAgICAgIGJ1Y2tldE5hbWUubGVuZ3RoIC0gMVxuICAgICAgICB9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZFRhYmxlQnVja2V0TmFtZWAsXG4gICAgICAgIGBJbnZhbGlkIFMzIHRhYmxlIGJ1Y2tldCBuYW1lICh2YWx1ZTogJHtidWNrZXROYW1lfSkke0VPTH0ke2Vycm9ycy5qb2luKEVPTCl9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRocm93cyBhbiBleGNlcHRpb24gaWYgdGhlIGdpdmVuIHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsUHJvcGVydHkgaXMgbm90IHZhbGlkLlxuICAgKiBAcGFyYW0gdW5yZWZlcmVuY2VkRmlsZVJlbW92YWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZVVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKFxuICAgIHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsPzogVW5yZWZlcmVuY2VkRmlsZVJlbW92YWwsXG4gICk6IHZvaWQge1xuICAgIC8vIFNraXAgdmFsaWRhdGlvbiBpZiBwcm9wZXJ0eSBpcyBub3QgZGVmaW5lZFxuICAgIGlmICghdW5yZWZlcmVuY2VkRmlsZVJlbW92YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IG5vbmN1cnJlbnREYXlzLCBzdGF0dXMsIHVucmVmZXJlbmNlZERheXMgfSA9IHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsO1xuXG4gICAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKG5vbmN1cnJlbnREYXlzICE9IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKG5vbmN1cnJlbnREYXlzIDwgMSkge1xuICAgICAgICBlcnJvcnMucHVzaCgnbm9uY3VycmVudERheXMgbXVzdCBiZSBhdCBsZWFzdCAxIGRheScpO1xuICAgICAgfVxuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKG5vbmN1cnJlbnREYXlzKSkge1xuICAgICAgICBlcnJvcnMucHVzaCgnbm9uY3VycmVudERheXMgbXVzdCBiZSBhIHdob2xlIG51bWJlcicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1bnJlZmVyZW5jZWREYXlzICE9IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHVucmVmZXJlbmNlZERheXMgPCAxKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKCd1bnJlZmVyZW5jZWREYXlzIG11c3QgYmUgYXQgbGVhc3QgMSBkYXknKTtcbiAgICAgIH1cbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihub25jdXJyZW50RGF5cykpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goJ3VucmVmZXJlbmNlZERheXMgbXVzdCBiZSBhIHdob2xlIG51bWJlcicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFsbG93ZWRTdGF0dXMgPSBbJ0VuYWJsZWQnLCAnRGlzYWJsZWQnXTtcbiAgICBpZiAoc3RhdHVzICE9IHVuZGVmaW5lZCAmJiAhYWxsb3dlZFN0YXR1cy5pbmNsdWRlcyhzdGF0dXMpKSB7XG4gICAgICBlcnJvcnMucHVzaCgnc3RhdHVzIG11c3QgYmUgb25lIG9mIFxcJ0VuYWJsZWRcXCcgb3IgXFwnRGlzYWJsZWRcXCcnKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YEludmFsaWRVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbFByb3BlcnR5YCxcbiAgICAgICAgYEludmFsaWQgVW5yZWZlcmVuY2VkRmlsZVJlbW92YWxQcm9wZXJ0eX0pJHtFT0x9JHtlcnJvcnMuam9pbihFT0wpfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdW5kZXJseWluZyBDZm5UYWJsZUJ1Y2tldCBMMSByZXNvdXJjZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IHMzdGFibGVzLkNmblRhYmxlQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFnIG1hbmFnZXIgZm9yIHRoaXMgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrVGFnTWFuYWdlcjogVGFnTWFuYWdlcjtcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIHBvbGljeSBmb3IgdGhpcyB0YWJsZUJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldFBvbGljeT86IFRhYmxlQnVja2V0UG9saWN5O1xuXG4gIHB1YmxpYyByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXkgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUYWJsZUJ1Y2tldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLnRhYmxlQnVja2V0TmFtZSxcbiAgICB9KTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgVGFibGVCdWNrZXQudmFsaWRhdGVUYWJsZUJ1Y2tldE5hbWUocHJvcHMudGFibGVCdWNrZXROYW1lKTtcbiAgICBUYWJsZUJ1Y2tldC52YWxpZGF0ZVVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKHByb3BzLnVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKTtcbiAgICBjb25zdCB7IGJ1Y2tldEVuY3J5cHRpb24sIGVuY3J5cHRpb25LZXkgfSA9IHRoaXMucGFyc2VFbmNyeXB0aW9uKHByb3BzKTtcbiAgICB0aGlzLmVuY3J5cHRpb25LZXkgPSBlbmNyeXB0aW9uS2V5O1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBzM3RhYmxlcy5DZm5UYWJsZUJ1Y2tldCh0aGlzLCBpZCwge1xuICAgICAgdGFibGVCdWNrZXROYW1lOiBwcm9wcy50YWJsZUJ1Y2tldE5hbWUsXG4gICAgICB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbDoge1xuICAgICAgICAuLi5wcm9wcy51bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCxcbiAgICAgICAgbm9uY3VycmVudERheXM6IHByb3BzLnVucmVmZXJlbmNlZEZpbGVSZW1vdmFsPy5ub25jdXJyZW50RGF5cyxcbiAgICAgICAgdW5yZWZlcmVuY2VkRGF5czogcHJvcHMudW5yZWZlcmVuY2VkRmlsZVJlbW92YWw/LnVucmVmZXJlbmNlZERheXMsXG4gICAgICB9LFxuICAgICAgZW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IGJ1Y2tldEVuY3J5cHRpb24sXG4gICAgICBtZXRyaWNzQ29uZmlndXJhdGlvbjogcHJvcHMucmVxdWVzdE1ldHJpY3NTdGF0dXMgPyB7IHN0YXR1czogcHJvcHMucmVxdWVzdE1ldHJpY3NTdGF0dXMgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHRoaXMuY2RrVGFnTWFuYWdlciA9IHRoaXMucmVzb3VyY2UuY2RrVGFnTWFuYWdlcjtcbiAgICB0aGlzLnJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgdGFibGVCdWNrZXROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHRoaXMucmVzb3VyY2UucmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChhcm4pIG9mIHRoaXMgdGFibGUgYnVja2V0XG4gICAqL1xuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCB0YWJsZUJ1Y2tldEFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmF0dHJUYWJsZUJ1Y2tldEFybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdXAga2V5IHByb3BlcnRpZXMgYW5kIHJldHVybiB0aGUgQnVja2V0IGVuY3J5cHRpb24gcHJvcGVydHkgZnJvbSB0aGVcbiAgICogdXNlcidzIGNvbmZpZ3VyYXRpb24sIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHRhYmxlOlxuICAgKlxuICAgKiB8IHByb3BzLmVuY3J5cHRpb24gfCBwcm9wcy5lbmNyeXB0aW9uS2V5IHwgYnVja2V0RW5jcnlwdGlvbiAocmV0dXJuIHZhbHVlKSB8IGVuY3J5cHRpb25LZXkgKHJldHVybiB2YWx1ZSkgIHxcbiAgICogfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gICAqIHwgdW5kZWZpbmVkICAgICAgICB8IHVuZGVmaW5lZCAgICAgICAgICAgfCB1bmRlZmluZWQgICAgICAgICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8IHVuZGVmaW5lZCAgICAgICAgfCBrICAgICAgICAgICAgICAgICAgIHwgYXdzOmttcyAgICAgICAgICAgICAgICAgICAgICAgICB8IGsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCBLTVMgICAgICAgICAgICAgIHwgdW5kZWZpbmVkICAgICAgICAgICB8IGF3czprbXMgICAgICAgICAgICAgICAgICAgICAgICAgfCBuZXcga2V5IChhbGxvdyBtYWludGVuYW5jZSBTUCl8XG4gICAqIHwgS01TICAgICAgICAgICAgICB8IGsgICAgICAgICAgICAgICAgICAgfCBhd3M6a21zICAgICAgICAgICAgICAgICAgICAgICAgIHwgayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8IFMzX01BTkFHRUQgICAgICAgfCB1bmRlZmluZWQgICAgICAgICAgIHwgQUVTMjU2ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHVuZGVmaW5lZCAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCBTM19NQU5BR0VEICAgICAgIHwgayAgICAgICAgICAgICAgICAgICB8IEVSUk9SISAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFUlJPUiEgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAqL1xuICBwcml2YXRlIHBhcnNlRW5jcnlwdGlvbihwcm9wczogVGFibGVCdWNrZXRQcm9wcyk6IHtcbiAgICBidWNrZXRFbmNyeXB0aW9uPzogczN0YWJsZXMuQ2ZuVGFibGVCdWNrZXQuRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0eTtcbiAgICBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG4gIH0ge1xuICAgIGNvbnN0IGVuY3J5cHRpb25UeXBlID0gcHJvcHMuZW5jcnlwdGlvbjtcbiAgICBsZXQga2V5ID0gcHJvcHMuZW5jcnlwdGlvbktleTtcblxuICAgIGlmIChlbmNyeXB0aW9uVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICByZXR1cm4geyBidWNrZXRFbmNyeXB0aW9uOiB1bmRlZmluZWQsIGVuY3J5cHRpb25LZXk6IHVuZGVmaW5lZCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBidWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICAgICAgICBrbXNLZXlBcm46IGtleS5rZXlBcm4sXG4gICAgICAgICAgICBzc2VBbGdvcml0aG06IFRhYmxlQnVja2V0RW5jcnlwdGlvbi5LTVMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbmNyeXB0aW9uS2V5OiBrZXksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVuY3J5cHRpb25UeXBlID09PSBUYWJsZUJ1Y2tldEVuY3J5cHRpb24uS01TKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICBrZXkgPSBuZXcga21zLktleSh0aGlzLCAnS2V5Jywge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgQ3JlYXRlZCBieSAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICAgICAgZW5hYmxlS2V5Um90YXRpb246IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFsbG93VGFibGVzTWFpbnRlbmFuY2VBY2Nlc3NUb0tleShrZXksIHByb3BzLnRhYmxlQnVja2V0TmFtZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBidWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICAgICAga21zS2V5QXJuOiBrZXkua2V5QXJuLFxuICAgICAgICAgIHNzZUFsZ29yaXRobTogVGFibGVCdWNrZXRFbmNyeXB0aW9uLktNUyxcbiAgICAgICAgfSxcbiAgICAgICAgZW5jcnlwdGlvbktleToga2V5LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoZW5jcnlwdGlvblR5cGUgPT09IFRhYmxlQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VEKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJ1Y2tldEVuY3J5cHRpb246IHtcbiAgICAgICAgICAgIHNzZUFsZ29yaXRobTogVGFibGVCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihsaXRgSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uYCwgJ0V4cGVjdGVkIGVuY3J5cHRpb24gPSBgS01TYCB3aXRoIHVzZXIgcHJvdmlkZWQgZW5jcnlwdGlvbiBrZXknKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGxpdGBVbmtub3duRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25gLCBgVW5rbm93biBlbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24gZGV0ZWN0ZWQ6ICR7cHJvcHMuZW5jcnlwdGlvbn0gd2l0aCBrZXkgJHtwcm9wcy5lbmNyeXB0aW9uS2V5fWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93bGlzdCBTMyBUYWJsZXMgTWFpbnRlbmFuY2UgdG8gYWNjZXNzIHRoaXMgdGFibGUgYnVja2V0J3MgZW5jcnlwdGlvbiBrZXlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZXMta21zLXBlcm1pc3Npb25zLmh0bWxcbiAgICogQHBhcmFtIGVuY3J5cHRpb25LZXkgVGhlIGtleSB0byBwcm92aWRlIGFjY2VzcyB0b1xuICAgKi9cbiAgcHJpdmF0ZSBhbGxvd1RhYmxlc01haW50ZW5hbmNlQWNjZXNzVG9LZXkoZW5jcnlwdGlvbktleToga21zLklLZXksIHRhYmxlQnVja2V0TmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVnaW9uID0gdGhpcy5zdGFjay5yZWdpb247XG4gICAgY29uc3QgYWNjb3VudCA9IHRoaXMuc3RhY2suYWNjb3VudDtcbiAgICBjb25zdCBwYXJ0aXRpb24gPSB0aGlzLnN0YWNrLnBhcnRpdGlvbjtcblxuICAgIGVuY3J5cHRpb25LZXkuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBzaWQ6ICdBbGxvd1MzVGFibGVzTWFpbnRlbmFuY2VBY2Nlc3MnLFxuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgcHJpbmNpcGFsczogW1xuICAgICAgICBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ21haW50ZW5hbmNlLnMzdGFibGVzLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIF0sXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdrbXM6R2VuZXJhdGVEYXRhS2V5JyxcbiAgICAgICAgJ2ttczpEZWNyeXB0JyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdMaWtlOiB7XG4gICAgICAgICAgJ2ttczpFbmNyeXB0aW9uQ29udGV4dDphd3M6czM6YXJuJzogYGFybjoke3BhcnRpdGlvbn06czN0YWJsZXM6JHtyZWdpb259OiR7YWNjb3VudH06YnVja2V0LyR7dGFibGVCdWNrZXROYW1lfS8qYCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSkpO1xuICB9XG59XG5cbiJdfQ==
|
|
522
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFibGUtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJCQUF5QjtBQUN6Qix5REFBMkM7QUFDM0MseURBQTJDO0FBQzNDLG1FQUFxRDtBQUVyRCwyQ0FBNEU7QUFDNUUsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFFMUUscURBQXVDO0FBQ3ZDLCtEQUEwRDtBQUMxRCxpQ0FBdUQ7QUEwSHZEOztHQUVHO0FBQ0gsSUFBWSw2QkFVWDtBQVZELFdBQVksNkJBQTZCO0lBQ3ZDOztPQUVHO0lBQ0gsb0RBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxzREFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVlcsNkJBQTZCLDZDQUE3Qiw2QkFBNkIsUUFVeEM7QUFFRDs7R0FFRztBQUNILElBQVksb0JBVVg7QUFWRCxXQUFZLG9CQUFvQjtJQUM5Qjs7T0FFRztJQUNILDJDQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsNkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVZXLG9CQUFvQixvQ0FBcEIsb0JBQW9CLFFBVS9CO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLHFCQVdYO0FBWEQsV0FBWSxxQkFBcUI7SUFDL0I7OztPQUdHO0lBQ0gsd0NBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsOENBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVhXLHFCQUFxQixxQ0FBckIscUJBQXFCLFFBV2hDO0FBRUQsTUFBZSxlQUFnQixTQUFRLGVBQVE7SUFvQjdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BbUJHO0lBQ0ksbUJBQW1CLENBQ3hCLFNBQThCO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENB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Q0FBQztnQkFDMUksQ0FBQztZQUNILENBQUM7WUFDRCxNQUFNLElBQUksOEJBQXVCLENBQUMsSUFBQSxzQkFBRyxFQUFBLGdDQUFnQyxFQUFFLDhDQUE4QyxLQUFLLENBQUMsVUFBVSxhQUFhLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1NBQzFLO1FBRUQ7Ozs7O1dBS0c7UUFDSyxpQ0FBaUMsQ0FBQyxhQUF1QixFQUFFLGVBQXVCO1lBQ3hGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ25DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBRXZDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7Z0JBQ3hELEdBQUcsRUFBRSxnQ0FBZ0M7Z0JBQ3JDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7Z0JBQ3hCLFVBQVUsRUFBRTtvQkFDVixJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDL0Q7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHFCQUFxQjtvQkFDckIsYUFBYTtpQkFDZDtnQkFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7Z0JBQ2hCLFVBQVUsRUFBRTtvQkFDVixVQUFVLEVBQUU7d0JBQ1Ysa0NBQWtDLEVBQUUsT0FBTyxTQUFTLGFBQWEsTUFBTSxJQUFJLE9BQU8sV0FBVyxlQUFlLElBQUk7cUJBQ2pIO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDLENBQUM7U0FDTDs7WUEzVFUsdURBQVc7Ozs7O0FBQVgsa0NBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFT0wgfSBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgKiBhcyBzM3RhYmxlcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczN0YWJsZXMnO1xuaW1wb3J0IHR5cGUgeyBJUmVzb3VyY2UsIElUYWdnYWJsZVYyLCBSZW1vdmFsUG9saWN5LCBUYWdNYW5hZ2VyIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBSZXNvdXJjZSwgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IsIFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBtZW1vaXplZEdldHRlciwgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgcGVybXMgZnJvbSAnLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBUYWJsZUJ1Y2tldFBvbGljeSB9IGZyb20gJy4vdGFibGUtYnVja2V0LXBvbGljeSc7XG5pbXBvcnQgeyB2YWxpZGF0ZVRhYmxlQnVja2V0QXR0cmlidXRlcyB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGRlZmluaXRpb24gZm9yIFMzIFRhYmxlIEJ1Y2tldHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVGFibGVCdWNrZXQgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFjY291bnRJZCBjb250YWluaW5nIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb24gY29udGFpbmluZyB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIEtNUyBlbmNyeXB0aW9uIGtleSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWJsZSBidWNrZXQuXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIHJlc291cmNlIHBvbGljeSBmb3IgYSBwcmluY2lwYWwgKGkuZS5cbiAgICogYWNjb3VudC9yb2xlL3NlcnZpY2UpIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQvb3IgaXRzXG4gICAqIHRhYmxlcy5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZSBwb2xpY3kgc3RhdGVtZW50IG1heSBvciBtYXkgbm90IGJlIGFkZGVkIHRvIHRoZSBwb2xpY3kuXG4gICAqIEZvciBleGFtcGxlLCB3aGVuIGFuIGBJVGFibGVCdWNrZXRgIGlzIGNyZWF0ZWQgZnJvbSBhbiBleGlzdGluZyB0YWJsZSBidWNrZXQsXG4gICAqIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHRlbGwgd2hldGhlciB0aGUgYnVja2V0IGFscmVhZHkgaGFzIGEgcG9saWN5XG4gICAqIGF0dGFjaGVkLCBsZXQgYWxvbmUgdG8gcmUtdXNlIHRoYXQgcG9saWN5IHRvIGFkZCBtb3JlIHN0YXRlbWVudHMgdG8gaXQuXG4gICAqIFNvIGl0J3Mgc2FmZXN0IHRvIGRvIG5vdGhpbmcgaW4gdGhlc2UgY2FzZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0ZW1lbnQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgdG8gYmUgYWRkZWQgdG8gdGhlIGJ1Y2tldCdzXG4gICAqIHBvbGljeS5cbiAgICogQHJldHVybnMgbWV0YWRhdGEgYWJvdXQgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIG1ldGhvZC4gSWYgdGhlIHBvbGljeVxuICAgKiB3YXMgbm90IGFkZGVkLCB0aGUgdmFsdWUgb2YgYHN0YXRlbWVudEFkZGVkYCB3aWxsIGJlIGBmYWxzZWAuIFlvdVxuICAgKiBzaG91bGQgYWx3YXlzIGNoZWNrIHRoaXMgdmFsdWUgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG9wZXJhdGlvbiB3YXNcbiAgICogYWN0dWFsbHkgY2FycmllZCBvdXQuIE90aGVyd2lzZSwgc3ludGhlc2lzIGFuZCBkZXBsb3kgd2lsbCB0ZXJtaW5hdGVcbiAgICogc2lsZW50bHksIHdoaWNoIG1heSBiZSBjb25mdXNpbmcuXG4gICAqL1xuICBhZGRUb1Jlc291cmNlUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0O1xuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIGZvciB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQgaXRzIHRhYmxlc1xuICAgKiB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiBlbmNyeXB0aW9uIGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgdG8gZGVjcnlwdCB0aGUgY29udGVudHNcbiAgICogb2YgdGhlIGJ1Y2tldCB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIHRhYmxlSWQgQWxsb3cgdGhlIHBlcm1pc3Npb25zIHRvIGFsbCB0YWJsZXMgdXNpbmcgJyonIG9yIHRvIHNpbmdsZSB0YWJsZSBieSBpdHMgdW5pcXVlIElELlxuICAgKi9cbiAgZ3JhbnRSZWFkKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSBidWNrZXQgYW5kIGl0cyB0YWJsZXNcbiAgICogdG8gYW4gSUFNIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgZW5jcnlwdGlvbiBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IHRvIGVuY3J5cHQgdGhlIGNvbnRlbnRzXG4gICAqIG9mIHRoZSBidWNrZXQgd2lsbCBhbHNvIGJlIGdyYW50ZWQgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyB3cml0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcGFyYW0gdGFibGVJZCBBbGxvdyB0aGUgcGVybWlzc2lvbnMgdG8gYWxsIHRhYmxlcyB1c2luZyAnKicgb3IgdG8gc2luZ2xlIHRhYmxlIGJ5IGl0cyB1bmlxdWUgSUQuXG4gICAqL1xuICBncmFudFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIGFuZCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSBidWNrZXQgYW5kIGl0cyB0YWJsZXNcbiAgICogdG8gYW4gSUFNIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgZW5jcnlwdGlvbiBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IHRvIGVuY3J5cHQvZGVjcnlwdCB0aGUgY29udGVudHNcbiAgICogb2YgdGhlIGJ1Y2tldCB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIHRvXG4gICAqIEBwYXJhbSB0YWJsZUlkIEFsbG93IHRoZSBwZXJtaXNzaW9ucyB0byBhbGwgdGFibGVzIHVzaW5nICcqJyBvciB0byBzaW5nbGUgdGFibGUgYnkgaXRzIHVuaXF1ZSBJRC5cbiAgICovXG4gIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xufVxuXG4vKipcbiAqIFVucmVmZXJlbmNlZCBmaWxlIHJlbW92YWwgc2V0dGluZ3MgZm9yIHRoZSB0aGlzIHRhYmxlIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCB7XG4gIC8qKlxuICAgKiBEdXJhdGlvbiBhZnRlciB3aGljaCBub25jdXJyZW50IGZpbGVzIHNob3VsZCBiZSByZW1vdmVkLiBTaG91bGQgYmUgYXQgbGVhc3Qgb25lIGRheS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZS1idWNrZXRzLW1haW50ZW5hbmNlLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTZWUgUzMgVGFibGVzIFVzZXIgR3VpZGVcbiAgICovXG4gIHJlYWRvbmx5IG5vbmN1cnJlbnREYXlzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTdGF0dXMgb2YgdW5yZWZlcmVuY2VkIGZpbGUgcmVtb3ZhbC4gQ2FuIGJlIEVuYWJsZWQgb3IgRGlzYWJsZWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGUtYnVja2V0cy1tYWludGVuYW5jZS5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gU2VlIFMzIFRhYmxlcyBVc2VyIEd1aWRlXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbFN0YXR1cztcblxuICAvKipcbiAgICogRHVyYXRpb24gYWZ0ZXIgd2hpY2ggdW5yZWZlcmVuY2VkIGZpbGVzIHNob3VsZCBiZSByZW1vdmVkLiBTaG91bGQgYmUgYXQgbGVhc3Qgb25lIGRheS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZS1idWNrZXRzLW1haW50ZW5hbmNlLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTZWUgUzMgVGFibGVzIFVzZXIgR3VpZGVcbiAgICovXG4gIHJlYWRvbmx5IHVucmVmZXJlbmNlZERheXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29udHJvbHMgd2hldGhlciB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsIGlzIGVuYWJsZWQgb3IgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBlbnVtIFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsU3RhdHVzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsLlxuICAgKi9cbiAgRU5BQkxFRCA9ICdFbmFibGVkJyxcblxuICAvKipcbiAgICogRGlzYWJsZSB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsLlxuICAgKi9cbiAgRElTQUJMRUQgPSAnRGlzYWJsZWQnLFxufVxuXG4vKipcbiAqIENvbnRyb2xzIHdoZXRoZXIgQ2xvdWRXYXRjaCByZXF1ZXN0IG1ldHJpY3MgYXJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgZm9yIHRoZSB0YWJsZSBidWNrZXQuXG4gKi9cbmV4cG9ydCBlbnVtIFJlcXVlc3RNZXRyaWNzU3RhdHVzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBDbG91ZFdhdGNoIHJlcXVlc3QgbWV0cmljcyBmb3IgdGhlIHRhYmxlIGJ1Y2tldC5cbiAgICovXG4gIEVOQUJMRUQgPSAnRW5hYmxlZCcsXG5cbiAgLyoqXG4gICAqIERpc2FibGUgQ2xvdWRXYXRjaCByZXF1ZXN0IG1ldHJpY3MgZm9yIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqL1xuICBESVNBQkxFRCA9ICdEaXNhYmxlZCcsXG59XG5cbi8qKlxuICogQ29udHJvbHMgU2VydmVyIFNpZGUgRW5jcnlwdGlvbiAoU1NFKSBmb3IgdGhpcyBUYWJsZUJ1Y2tldC5cbiAqL1xuZXhwb3J0IGVudW0gVGFibGVCdWNrZXRFbmNyeXB0aW9uIHtcbiAgLyoqXG4gICAqIFVzZSBhIGN1c3RvbWVyIGRlZmluZWQgS01TIGtleSBmb3IgZW5jcnlwdGlvblxuICAgKiBJZiBgZW5jcnlwdGlvbktleWAgaXMgc3BlY2lmaWVkLCB0aGlzIGtleSB3aWxsIGJlIHVzZWQsIG90aGVyd2lzZSwgb25lIHdpbGwgYmUgZGVmaW5lZC5cbiAgICovXG4gIEtNUyA9ICdhd3M6a21zJyxcblxuICAvKipcbiAgICogVXNlIFMzIG1hbmFnZWQgZW5jcnlwdGlvbiBrZXlzIHdpdGggQUVTMjU2IGVuY3J5cHRpb25cbiAgICovXG4gIFMzX01BTkFHRUQgPSAnQUVTMjU2Jyxcbn1cblxuYWJzdHJhY3QgY2xhc3MgVGFibGVCdWNrZXRCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJVGFibGVCdWNrZXQge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVCdWNrZXRBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgcG9saWN5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhYmxlIGJ1Y2tldC5cbiAgICpcbiAgICogSWYgYGF1dG9DcmVhdGVQb2xpY3lgIGlzIHRydWUsIGEgYFRhYmxlQnVja2V0UG9saWN5YCB3aWxsIGJlIGNyZWF0ZWQgdXBvbiB0aGVcbiAgICogZmlyc3QgY2FsbCB0byBhZGRUb1Jlc291cmNlUG9saWN5KHMpLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHRhYmxlQnVja2V0UG9saWN5PzogVGFibGVCdWNrZXRQb2xpY3k7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBhIHRhYmxlIGJ1Y2tldCByZXNvdXJjZSBwb2xpY3kgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB1cG9uXG4gICAqIHRoZSBmaXJzdCBjYWxsIHRvIGBhZGRUb1Jlc291cmNlUG9saWN5YC5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXkgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIHJlc291cmNlIHBvbGljeSBmb3IgYSBwcmluY2lwYWwgKGkuZS5cbiAgICogYWNjb3VudC9yb2xlL3NlcnZpY2UpIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQvb3IgaXRzXG4gICAqIGNvbnRlbnRzLiBVc2UgYHRhYmxlQnVja2V0QXJuYCBhbmQgYGFybkZvck9iamVjdHMoa2V5cylgIHRvIG9idGFpbiBBUk5zIGZvclxuICAgKiB0aGlzIGJ1Y2tldCBvciBvYmplY3RzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgbWF5IG9yIG1heSBub3QgYmUgYWRkZWQgdG8gdGhlIHBvbGljeS5cbiAgICogRm9yIGV4YW1wbGUsIHdoZW4gYW4gYElUYWJsZUJ1Y2tldGAgaXMgY3JlYXRlZCBmcm9tIGFuIGV4aXN0aW5nIHRhYmxlIGJ1Y2tldCxcbiAgICogaXQncyBub3QgcG9zc2libGUgdG8gdGVsbCB3aGV0aGVyIHRoZSBidWNrZXQgYWxyZWFkeSBoYXMgYSBwb2xpY3lcbiAgICogYXR0YWNoZWQsIGxldCBhbG9uZSB0byByZS11c2UgdGhhdCBwb2xpY3kgdG8gYWRkIG1vcmUgc3RhdGVtZW50cyB0byBpdC5cbiAgICogU28gaXQncyBzYWZlc3QgdG8gZG8gbm90aGluZyBpbiB0aGVzZSBjYXNlcy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudCB0aGUgcG9saWN5IHN0YXRlbWVudCB0byBiZSBhZGRlZCB0byB0aGUgYnVja2V0J3NcbiAgICogcG9saWN5LlxuICAgKiBAcmV0dXJucyBtZXRhZGF0YSBhYm91dCB0aGUgZXhlY3V0aW9uIG9mIHRoaXMgbWV0aG9kLiBJZiB0aGUgcG9saWN5XG4gICAqIHdhcyBub3QgYWRkZWQsIHRoZSB2YWx1ZSBvZiBgc3RhdGVtZW50QWRkZWRgIHdpbGwgYmUgYGZhbHNlYC4gWW91XG4gICAqIHNob3VsZCBhbHdheXMgY2hlY2sgdGhpcyB2YWx1ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgb3BlcmF0aW9uIHdhc1xuICAgKiBhY3R1YWxseSBjYXJyaWVkIG91dC4gT3RoZXJ3aXNlLCBzeW50aGVzaXMgYW5kIGRlcGxveSB3aWxsIHRlcm1pbmF0ZVxuICAgKiBzaWxlbnRseSwgd2hpY2ggbWF5IGJlIGNvbmZ1c2luZy5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIGlmICghdGhpcy50YWJsZUJ1Y2tldFBvbGljeSAmJiB0aGlzLmF1dG9DcmVhdGVQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVCdWNrZXRQb2xpY3kgPSBuZXcgVGFibGVCdWNrZXRQb2xpY3kodGhpcywgJ0RlZmF1bHRQb2xpY3knLCB7XG4gICAgICAgIHRhYmxlQnVja2V0OiB0aGlzLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGFibGVCdWNrZXRQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVCdWNrZXRQb2xpY3kuZG9jdW1lbnQuYWRkU3RhdGVtZW50cyhzdGF0ZW1lbnQpO1xuICAgICAgcmV0dXJuIHsgc3RhdGVtZW50QWRkZWQ6IHRydWUsIHBvbGljeURlcGVuZGFibGU6IHRoaXMudGFibGVCdWNrZXRQb2xpY3kgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogZmFsc2UgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlLCB0YWJsZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfQlVDS0VUX1JFQURfQUNDRVNTLFxuICAgICAgcGVybXMuS0VZX1JFQURfQUNDRVNTLFxuICAgICAgdGhpcy50YWJsZUJ1Y2tldEFybixcbiAgICAgIHRoaXMuZ2V0VGFibGVBcm4odGFibGVJZCksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX0JVQ0tFVF9XUklURV9BQ0NFU1MsXG4gICAgICBwZXJtcy5LRVlfUkVBRF9XUklURV9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQnVja2V0QXJuLFxuICAgICAgdGhpcy5nZXRUYWJsZUFybih0YWJsZUlkKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX0JVQ0tFVF9SRUFEX1dSSVRFX0FDQ0VTUyxcbiAgICAgIHBlcm1zLktFWV9XUklURV9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQnVja2V0QXJuLFxuICAgICAgdGhpcy5nZXRUYWJsZUFybih0YWJsZUlkKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyB0aGUgZ2l2ZW4gczN0YWJsZXMgcGVybWlzc2lvbnMgdG8gdGhlIHByb3ZpZGVkIHByaW5jaXBhbFxuICAgKiBAcmV0dXJucyBHcmFudCBvYmplY3RcbiAgICovXG4gIHByaXZhdGUgZ3JhbnQoXG4gICAgZ3JhbnRlZTogaWFtLklHcmFudGFibGUsXG4gICAgdGFibGVCdWNrZXRBY3Rpb25zOiBzdHJpbmdbXSxcbiAgICBrZXlBY3Rpb25zOiBzdHJpbmdbXSxcbiAgICByZXNvdXJjZUFybjogc3RyaW5nLFxuICAgIC4uLm90aGVyUmVzb3VyY2VBcm5zOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdKSB7XG4gICAgY29uc3QgcmVzb3VyY2VzID0gW3Jlc291cmNlQXJuLCAuLi5vdGhlclJlc291cmNlQXJuc10uZmlsdGVyKGFybiA9PiBhcm4gIT0gdW5kZWZpbmVkKTtcblxuICAgIGNvbnN0IGdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsT3JSZXNvdXJjZSh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogdGFibGVCdWNrZXRBY3Rpb25zLFxuICAgICAgcmVzb3VyY2VBcm5zOiByZXNvdXJjZXMsXG4gICAgICByZXNvdXJjZTogdGhpcyxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmVuY3J5cHRpb25LZXkgJiYga2V5QWN0aW9ucyAmJiBrZXlBY3Rpb25zLmxlbmd0aCAhPT0gMCkge1xuICAgICAgdGhpcy5lbmNyeXB0aW9uS2V5LmdyYW50KGdyYW50ZWUsIC4uLmtleUFjdGlvbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBncmFudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGFibGVBcm4odGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHRhYmxlSWQgPyBgJHt0aGlzLnRhYmxlQnVja2V0QXJufS90YWJsZS8ke3RhYmxlSWR9YCA6IHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGNvbnN0cnVjdGluZyBhIFRhYmxlQnVja2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVCdWNrZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBTMyBUYWJsZUJ1Y2tldC5cbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGVzLWJ1Y2tldHMtbmFtaW5nLmh0bWwjdGFibGUtYnVja2V0cy1uYW1pbmctcnVsZXNcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVbnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsIHNldHRpbmdzIGZvciB0aGUgUzMgVGFibGVCdWNrZXQuXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXMzdGFibGVzLXRhYmxlYnVja2V0LXVucmVmZXJlbmNlZGZpbGVyZW1vdmFsLmh0bWxcbiAgICogQGRlZmF1bHQgRW5hYmxlZCB3aXRoIGRlZmF1bHQgdmFsdWVzXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGUtYnVja2V0cy1tYWludGVuYW5jZS5odG1sXG4gICAqL1xuICByZWFkb25seSB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbD86IFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsO1xuXG4gIC8qKlxuICAgKiBBV1MgcmVnaW9uIHRoYXQgdGhlIHRhYmxlIGJ1Y2tldCBleGlzdHMgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gaXQncyBhc3N1bWVkIHRoZSBidWNrZXQgaXMgaW4gdGhlIHNhbWUgcmVnaW9uIGFzIHRoZSBzY29wZSBpdCdzIGJlaW5nIGltcG9ydGVkIGludG9cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQVdTIEFjY291bnQgSUQgb2YgdGhlIHRhYmxlIGJ1Y2tldCBvd25lci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBpdCdzIGFzc3VtZWQgdGhlIGJ1Y2tldCBiZWxvbmdzIHRvIHRoZSBzYW1lIGFjY291bnQgYXMgdGhlIHNjb3BlIGl0J3MgYmVpbmcgaW1wb3J0ZWQgaW50b1xuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGtpbmQgb2Ygc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0byBhcHBseSB0byB0aGlzIGJ1Y2tldC5cbiAgICpcbiAgICogSWYgeW91IGNob29zZSBLTVMsIHlvdSBjYW4gc3BlY2lmeSBhIEtNUyBrZXkgdmlhIGBlbmNyeXB0aW9uS2V5YC4gSWZcbiAgICogZW5jcnlwdGlvbiBrZXkgaXMgbm90IHNwZWNpZmllZCwgYSBrZXkgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYEtNU2AgaWYgYGVuY3J5cHRpb25LZXlgIGlzIHNwZWNpZmllZCwgb3IgYFMzX01BTkFHRURgIG90aGVyd2lzZS5cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBUYWJsZUJ1Y2tldEVuY3J5cHRpb247XG5cbiAgLyoqXG4gICAqIEV4dGVybmFsIEtNUyBrZXkgdG8gdXNlIGZvciBidWNrZXQgZW5jcnlwdGlvbi5cbiAgICpcbiAgICogVGhlIGBlbmNyeXB0aW9uYCBwcm9wZXJ0eSBtdXN0IGJlIGVpdGhlciBub3Qgc3BlY2lmaWVkIG9yIHNldCB0byBgS01TYC5cbiAgICogQW4gZXJyb3Igd2lsbCBiZSBlbWl0dGVkIGlmIGBlbmNyeXB0aW9uYCBpcyBzZXQgdG8gYFMzX01BTkFHRURgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIElmIGBlbmNyeXB0aW9uYCBpcyBzZXQgdG8gYEtNU2AgYW5kIHRoaXMgcHJvcGVydHkgaXMgdW5kZWZpbmVkLFxuICAgKiBhIG5ldyBLTVMga2V5IHdpbGwgYmUgY3JlYXRlZCBhbmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYnVja2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGF0IGhhcHBlbnMgdG8gdGhpcyB0YWJsZSBidWNrZXQgaXQgaXQgc3RvcGVkIGJlaW5nIG1hbmFnZWQgYnkgY2xvdWRmb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IFJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG5cbiAgLyoqXG4gICAqIENsb3VkV2F0Y2ggcmVxdWVzdCBtZXRyaWNzIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqXG4gICAqIFdoZW4gZW5hYmxlZCwgUzMgVGFibGVzIHB1Ymxpc2hlcyBDbG91ZFdhdGNoIHJlcXVlc3QgbWV0cmljcyBmb3IgdGhlIHRhYmxlIGJ1Y2tldC5cbiAgICogUmVxdWVzdCBtZXRyaWNzIHByb3ZpZGUgaW5zaWdodCBpbnRvIEFtYXpvbiBTMyBUYWJsZXMgcmVxdWVzdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUmVxdWVzdCBtZXRyaWNzIGFyZSBkaXNhYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdE1ldHJpY3NTdGF0dXM/OiBSZXF1ZXN0TWV0cmljc1N0YXR1cztcbn1cblxuLyoqXG4gKiBBIHJlZmVyZW5jZSB0byBhIHRhYmxlIGJ1Y2tldCBvdXRzaWRlIHRoaXMgc3RhY2tcbiAqXG4gKiBUaGUgdGFibGVCdWNrZXROYW1lLCByZWdpb24sIGFuZCBhY2NvdW50IGNhbiBiZSBwcm92aWRlZCBleHBsaWNpdGx5XG4gKiBvciB3aWxsIGJlIGluZmVycmVkIGZyb20gdGhlIHRhYmxlQnVja2V0QXJuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVCdWNrZXRBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIEFXUyByZWdpb24gdGhpcyB0YWJsZSBidWNrZXQgZXhpc3RzIGluXG4gICAqIEBkZWZhdWx0IHJlZ2lvbiBpbmZlcnJlZCBmcm9tIHNjb3BlXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50SWQgY29udGFpbmluZyB0aGlzIHRhYmxlIGJ1Y2tldFxuICAgKiBAZGVmYXVsdCBhY2NvdW50IGluZmVycmVkIGZyb20gc2NvcGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQgbmFtZSwgdW5pcXVlIHBlciByZWdpb25cbiAgICogQGRlZmF1bHQgdGFibGVCdWNrZXROYW1lIGluZmVycmVkIGZyb20gYXJuXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQncyBBUk4uXG4gICAqIEBkZWZhdWx0IHRhYmxlQnVja2V0QXJuIGNvbnN0cnVjdGVkIGZyb20gcmVnaW9uLCBhY2NvdW50IGFuZCB0YWJsZUJ1Y2tldE5hbWUgYXJlIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldEFybj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgS01TIGVuY3J5cHRpb24ga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGJ1Y2tldC5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleTtcbn1cblxuLyoqXG4gKiBBbiBTMyB0YWJsZSBidWNrZXQgd2l0aCBoZWxwZXJzIGZvciBhc3NvY2lhdGVkIHJlc291cmNlIHBvbGljaWVzXG4gKlxuICogVGhpcyBidWNrZXQgbWF5IG5vdCB5ZXQgaGF2ZSBhbGwgZmVhdHVyZXMgdGhhdCBleHBvc2VkIGJ5IHRoZSB1bmRlcmx5aW5nIENmblRhYmxlQnVja2V0LlxuICpcbiAqIEBzdGF0ZWZ1bFxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHNhbXBsZVRhYmxlQnVja2V0ID0gbmV3IFRhYmxlQnVja2V0KHNjb3BlLCAnRXhhbXBsZVRhYmxlQnVja2V0Jywge1xuICogICB0YWJsZUJ1Y2tldE5hbWU6ICdleGFtcGxlLWJ1Y2tldCcsXG4gKiAgIC8vIE9wdGlvbmFsIGZpZWxkczpcbiAqICAgdW5yZWZlcmVuY2VkRmlsZVJlbW92YWw6IHtcbiAqICAgICBub25jdXJyZW50RGF5czogMTIzLFxuICogICAgIHN0YXR1czogVW5yZWZlcmVuY2VkRmlsZVJlbW92YWxTdGF0dXMuRU5BQkxFRCxcbiAqICAgICB1bnJlZmVyZW5jZWREYXlzOiAxMjMsXG4gKiAgIH0sXG4gKiB9KTtcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFRhYmxlQnVja2V0IGV4dGVuZHMgVGFibGVCdWNrZXRCYXNlIGltcGxlbWVudHMgSVRhZ2dhYmxlVjIge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1zM3RhYmxlcy1hbHBoYS5UYWJsZUJ1Y2tldCc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBUYWJsZUJ1Y2tldCBjb25zdHJ1Y3QgZnJvbSBhbiBleHRlcm5hbCB0YWJsZSBidWNrZXQgQVJOLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lLlxuICAgKiBAcGFyYW0gdGFibGVCdWNrZXRBcm4gQW1hem9uIFJlc291cmNlIE5hbWUgKGFybikgb2YgdGhlIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVGFibGVCdWNrZXRBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgdGFibGVCdWNrZXRBcm46IHN0cmluZyk6IElUYWJsZUJ1Y2tldCB7XG4gICAgcmV0dXJuIFRhYmxlQnVja2V0LmZyb21UYWJsZUJ1Y2tldEF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IHRhYmxlQnVja2V0QXJuIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBUYWJsZUJ1Y2tldCBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIHRhYmxlIGJ1Y2tldC5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZS5cbiAgICogQHBhcmFtIGF0dHJzIEEgYFRhYmxlQnVja2V0QXR0cmlidXRlc2Agb2JqZWN0LiBDYW4gYmUgbWFudWFsbHkgY3JlYXRlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlQnVja2V0QXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IFRhYmxlQnVja2V0QXR0cmlidXRlcyxcbiAgKTogSVRhYmxlQnVja2V0IHtcbiAgICBjb25zdCB7IHRhYmxlQnVja2V0TmFtZSwgcmVnaW9uLCBhY2NvdW50LCB0YWJsZUJ1Y2tldEFybiB9ID0gdmFsaWRhdGVUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMoc2NvcGUsIGF0dHJzKTtcbiAgICBUYWJsZUJ1Y2tldC52YWxpZGF0ZVRhYmxlQnVja2V0TmFtZSh0YWJsZUJ1Y2tldE5hbWUpO1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFRhYmxlQnVja2V0QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVCdWNrZXROYW1lID0gdGFibGVCdWNrZXROYW1lITtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldEFybiA9IHRhYmxlQnVja2V0QXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlQnVja2V0UG9saWN5PzogVGFibGVCdWNrZXRQb2xpY3k7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcmVnaW9uID0gcmVnaW9uO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGFjY291bnQgPSBhY2NvdW50O1xuICAgICAgcHVibGljIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleSA9IGF0dHJzLmVuY3J5cHRpb25LZXk7XG4gICAgICBwcm90ZWN0ZWQgYXV0b0NyZWF0ZVBvbGljeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAvKipcbiAgICAgICAqIEV4cG9ydHMgdGhpcyBidWNrZXQgZnJvbSB0aGUgc3RhY2suXG4gICAgICAgKi9cbiAgICAgIHB1YmxpYyBleHBvcnQoKSB7XG4gICAgICAgIHJldHVybiBhdHRycztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHtcbiAgICAgIGFjY291bnQsXG4gICAgICByZWdpb24sXG4gICAgICBwaHlzaWNhbE5hbWU6IHRhYmxlQnVja2V0TmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZSBnaXZlbiB0YWJsZSBidWNrZXQgbmFtZSBpcyBub3QgdmFsaWQuXG4gICAqXG4gICAqIEBwYXJhbSBidWNrZXROYW1lIG5hbWUgb2YgdGhlIGJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGVUYWJsZUJ1Y2tldE5hbWUoXG4gICAgYnVja2V0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICBpZiAoYnVja2V0TmFtZSA9PSB1bmRlZmluZWQgfHwgVG9rZW4uaXNVbnJlc29sdmVkKGJ1Y2tldE5hbWUpKSB7XG4gICAgICAvLyB0aGUgbmFtZSBpcyBhIGxhdGUtYm91bmQgdmFsdWUsIG5vdCBhIGRlZmluZWQgc3RyaW5nLCBzbyBza2lwIHZhbGlkYXRpb25cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBMZW5ndGggdmFsaWRhdGlvblxuICAgIGlmIChidWNrZXROYW1lLmxlbmd0aCA8IDMgfHwgYnVja2V0TmFtZS5sZW5ndGggPiA2Mykge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdCdWNrZXQgbmFtZSBtdXN0IGJlIGF0IGxlYXN0IDMgYW5kIG5vIG1vcmUgdGhhbiA2MyBjaGFyYWN0ZXJzJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ2hhcmFjdGVyIHNldCB2YWxpZGF0aW9uXG4gICAgY29uc3QgaWxsZWdhbENoYXJzZXRSZWdFeCA9IC9bXmEtejAtOS1dLztcbiAgICBjb25zdCBhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeCA9IC9bYS16MC05XS87XG5cbiAgICBjb25zdCBpbGxlZ2FsQ2hhck1hdGNoID0gYnVja2V0TmFtZS5tYXRjaChpbGxlZ2FsQ2hhcnNldFJlZ0V4KTtcbiAgICBpZiAoaWxsZWdhbENoYXJNYXRjaCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdCdWNrZXQgbmFtZSBtdXN0IG9ubHkgY29udGFpbiBsb3dlcmNhc2UgY2hhcmFjdGVycywgbnVtYmVycywgYW5kIGh5cGhlbnMgKC0pJyArXG4gICAgICAgICAgYCAob2Zmc2V0OiAke2lsbGVnYWxDaGFyTWF0Y2guaW5kZXh9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEVkZ2UgY2hhcmFjdGVyIHZhbGlkYXRpb25cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QoYnVja2V0TmFtZS5jaGFyQXQoMCkpKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ0J1Y2tldCBuYW1lIG11c3Qgc3RhcnQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6IDApJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgICFhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeC50ZXN0KGJ1Y2tldE5hbWUuY2hhckF0KGJ1Y2tldE5hbWUubGVuZ3RoIC0gMSkpXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYEJ1Y2tldCBuYW1lIG11c3QgZW5kIHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAke1xuICAgICAgICAgIGJ1Y2tldE5hbWUubGVuZ3RoIC0gMVxuICAgICAgICB9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZFRhYmxlQnVja2V0TmFtZWAsXG4gICAgICAgIGBJbnZhbGlkIFMzIHRhYmxlIGJ1Y2tldCBuYW1lICh2YWx1ZTogJHtidWNrZXROYW1lfSkke0VPTH0ke2Vycm9ycy5qb2luKEVPTCl9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRocm93cyBhbiBleGNlcHRpb24gaWYgdGhlIGdpdmVuIHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsUHJvcGVydHkgaXMgbm90IHZhbGlkLlxuICAgKiBAcGFyYW0gdW5yZWZlcmVuY2VkRmlsZVJlbW92YWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZVVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKFxuICAgIHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsPzogVW5yZWZlcmVuY2VkRmlsZVJlbW92YWwsXG4gICk6IHZvaWQge1xuICAgIC8vIFNraXAgdmFsaWRhdGlvbiBpZiBwcm9wZXJ0eSBpcyBub3QgZGVmaW5lZFxuICAgIGlmICghdW5yZWZlcmVuY2VkRmlsZVJlbW92YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IG5vbmN1cnJlbnREYXlzLCBzdGF0dXMsIHVucmVmZXJlbmNlZERheXMgfSA9IHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsO1xuXG4gICAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKG5vbmN1cnJlbnREYXlzICE9IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKG5vbmN1cnJlbnREYXlzIDwgMSkge1xuICAgICAgICBlcnJvcnMucHVzaCgnbm9uY3VycmVudERheXMgbXVzdCBiZSBhdCBsZWFzdCAxIGRheScpO1xuICAgICAgfVxuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKG5vbmN1cnJlbnREYXlzKSkge1xuICAgICAgICBlcnJvcnMucHVzaCgnbm9uY3VycmVudERheXMgbXVzdCBiZSBhIHdob2xlIG51bWJlcicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1bnJlZmVyZW5jZWREYXlzICE9IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHVucmVmZXJlbmNlZERheXMgPCAxKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKCd1bnJlZmVyZW5jZWREYXlzIG11c3QgYmUgYXQgbGVhc3QgMSBkYXknKTtcbiAgICAgIH1cbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihub25jdXJyZW50RGF5cykpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goJ3VucmVmZXJlbmNlZERheXMgbXVzdCBiZSBhIHdob2xlIG51bWJlcicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFsbG93ZWRTdGF0dXMgPSBbJ0VuYWJsZWQnLCAnRGlzYWJsZWQnXTtcbiAgICBpZiAoc3RhdHVzICE9IHVuZGVmaW5lZCAmJiAhYWxsb3dlZFN0YXR1cy5pbmNsdWRlcyhzdGF0dXMpKSB7XG4gICAgICBlcnJvcnMucHVzaCgnc3RhdHVzIG11c3QgYmUgb25lIG9mIFxcJ0VuYWJsZWRcXCcgb3IgXFwnRGlzYWJsZWRcXCcnKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YEludmFsaWRVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbFByb3BlcnR5YCxcbiAgICAgICAgYEludmFsaWQgVW5yZWZlcmVuY2VkRmlsZVJlbW92YWxQcm9wZXJ0eX0pJHtFT0x9JHtlcnJvcnMuam9pbihFT0wpfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdW5kZXJseWluZyBDZm5UYWJsZUJ1Y2tldCBMMSByZXNvdXJjZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IHMzdGFibGVzLkNmblRhYmxlQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFnIG1hbmFnZXIgZm9yIHRoaXMgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrVGFnTWFuYWdlcjogVGFnTWFuYWdlcjtcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIHBvbGljeSBmb3IgdGhpcyB0YWJsZUJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldFBvbGljeT86IFRhYmxlQnVja2V0UG9saWN5O1xuXG4gIHB1YmxpYyByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXkgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUYWJsZUJ1Y2tldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLnRhYmxlQnVja2V0TmFtZSxcbiAgICB9KTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgVGFibGVCdWNrZXQudmFsaWRhdGVUYWJsZUJ1Y2tldE5hbWUocHJvcHMudGFibGVCdWNrZXROYW1lKTtcbiAgICBUYWJsZUJ1Y2tldC52YWxpZGF0ZVVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKHByb3BzLnVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKTtcbiAgICBjb25zdCB7IGJ1Y2tldEVuY3J5cHRpb24sIGVuY3J5cHRpb25LZXkgfSA9IHRoaXMucGFyc2VFbmNyeXB0aW9uKHByb3BzKTtcbiAgICB0aGlzLmVuY3J5cHRpb25LZXkgPSBlbmNyeXB0aW9uS2V5O1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBzM3RhYmxlcy5DZm5UYWJsZUJ1Y2tldCh0aGlzLCBpZCwge1xuICAgICAgdGFibGVCdWNrZXROYW1lOiBwcm9wcy50YWJsZUJ1Y2tldE5hbWUsXG4gICAgICB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbDoge1xuICAgICAgICAuLi5wcm9wcy51bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCxcbiAgICAgICAgbm9uY3VycmVudERheXM6IHByb3BzLnVucmVmZXJlbmNlZEZpbGVSZW1vdmFsPy5ub25jdXJyZW50RGF5cyxcbiAgICAgICAgdW5yZWZlcmVuY2VkRGF5czogcHJvcHMudW5yZWZlcmVuY2VkRmlsZVJlbW92YWw/LnVucmVmZXJlbmNlZERheXMsXG4gICAgICB9LFxuICAgICAgZW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IGJ1Y2tldEVuY3J5cHRpb24sXG4gICAgICBtZXRyaWNzQ29uZmlndXJhdGlvbjogcHJvcHMucmVxdWVzdE1ldHJpY3NTdGF0dXMgPyB7IHN0YXR1czogcHJvcHMucmVxdWVzdE1ldHJpY3NTdGF0dXMgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHRoaXMuY2RrVGFnTWFuYWdlciA9IHRoaXMucmVzb3VyY2UuY2RrVGFnTWFuYWdlcjtcbiAgICB0aGlzLnJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgdGFibGVCdWNrZXROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHRoaXMucmVzb3VyY2UucmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChhcm4pIG9mIHRoaXMgdGFibGUgYnVja2V0XG4gICAqL1xuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCB0YWJsZUJ1Y2tldEFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmF0dHJUYWJsZUJ1Y2tldEFybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdXAga2V5IHByb3BlcnRpZXMgYW5kIHJldHVybiB0aGUgQnVja2V0IGVuY3J5cHRpb24gcHJvcGVydHkgZnJvbSB0aGVcbiAgICogdXNlcidzIGNvbmZpZ3VyYXRpb24sIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHRhYmxlOlxuICAgKlxuICAgKiB8IHByb3BzLmVuY3J5cHRpb24gfCBwcm9wcy5lbmNyeXB0aW9uS2V5IHwgYnVja2V0RW5jcnlwdGlvbiAocmV0dXJuIHZhbHVlKSB8IGVuY3J5cHRpb25LZXkgKHJldHVybiB2YWx1ZSkgIHxcbiAgICogfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gICAqIHwgdW5kZWZpbmVkICAgICAgICB8IHVuZGVmaW5lZCAgICAgICAgICAgfCB1bmRlZmluZWQgICAgICAgICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8IHVuZGVmaW5lZCAgICAgICAgfCBrICAgICAgICAgICAgICAgICAgIHwgYXdzOmttcyAgICAgICAgICAgICAgICAgICAgICAgICB8IGsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCBLTVMgICAgICAgICAgICAgIHwgdW5kZWZpbmVkICAgICAgICAgICB8IGF3czprbXMgICAgICAgICAgICAgICAgICAgICAgICAgfCBuZXcga2V5IChhbGxvdyBtYWludGVuYW5jZSBTUCl8XG4gICAqIHwgS01TICAgICAgICAgICAgICB8IGsgICAgICAgICAgICAgICAgICAgfCBhd3M6a21zICAgICAgICAgICAgICAgICAgICAgICAgIHwgayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8IFMzX01BTkFHRUQgICAgICAgfCB1bmRlZmluZWQgICAgICAgICAgIHwgQUVTMjU2ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHVuZGVmaW5lZCAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCBTM19NQU5BR0VEICAgICAgIHwgayAgICAgICAgICAgICAgICAgICB8IEVSUk9SISAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFUlJPUiEgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAqL1xuICBwcml2YXRlIHBhcnNlRW5jcnlwdGlvbihwcm9wczogVGFibGVCdWNrZXRQcm9wcyk6IHtcbiAgICBidWNrZXRFbmNyeXB0aW9uPzogczN0YWJsZXMuQ2ZuVGFibGVCdWNrZXQuRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0eTtcbiAgICBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG4gIH0ge1xuICAgIGNvbnN0IGVuY3J5cHRpb25UeXBlID0gcHJvcHMuZW5jcnlwdGlvbjtcbiAgICBsZXQga2V5ID0gcHJvcHMuZW5jcnlwdGlvbktleTtcblxuICAgIGlmIChlbmNyeXB0aW9uVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICByZXR1cm4geyBidWNrZXRFbmNyeXB0aW9uOiB1bmRlZmluZWQsIGVuY3J5cHRpb25LZXk6IHVuZGVmaW5lZCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBidWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICAgICAgICBrbXNLZXlBcm46IGtleS5rZXlBcm4sXG4gICAgICAgICAgICBzc2VBbGdvcml0aG06IFRhYmxlQnVja2V0RW5jcnlwdGlvbi5LTVMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbmNyeXB0aW9uS2V5OiBrZXksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVuY3J5cHRpb25UeXBlID09PSBUYWJsZUJ1Y2tldEVuY3J5cHRpb24uS01TKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICBrZXkgPSBuZXcga21zLktleSh0aGlzLCAnS2V5Jywge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgQ3JlYXRlZCBieSAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICAgICAgZW5hYmxlS2V5Um90YXRpb246IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFsbG93VGFibGVzTWFpbnRlbmFuY2VBY2Nlc3NUb0tleShrZXksIHByb3BzLnRhYmxlQnVja2V0TmFtZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBidWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICAgICAga21zS2V5QXJuOiBrZXkua2V5QXJuLFxuICAgICAgICAgIHNzZUFsZ29yaXRobTogVGFibGVCdWNrZXRFbmNyeXB0aW9uLktNUyxcbiAgICAgICAgfSxcbiAgICAgICAgZW5jcnlwdGlvbktleToga2V5LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoZW5jcnlwdGlvblR5cGUgPT09IFRhYmxlQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VEKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJ1Y2tldEVuY3J5cHRpb246IHtcbiAgICAgICAgICAgIHNzZUFsZ29yaXRobTogVGFibGVCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihsaXRgSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uYCwgJ0V4cGVjdGVkIGVuY3J5cHRpb24gPSBgS01TYCB3aXRoIHVzZXIgcHJvdmlkZWQgZW5jcnlwdGlvbiBrZXknKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGxpdGBVbmtub3duRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25gLCBgVW5rbm93biBlbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24gZGV0ZWN0ZWQ6ICR7cHJvcHMuZW5jcnlwdGlvbn0gd2l0aCBrZXkgJHtwcm9wcy5lbmNyeXB0aW9uS2V5fWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93bGlzdCBTMyBUYWJsZXMgTWFpbnRlbmFuY2UgdG8gYWNjZXNzIHRoaXMgdGFibGUgYnVja2V0J3MgZW5jcnlwdGlvbiBrZXlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZXMta21zLXBlcm1pc3Npb25zLmh0bWxcbiAgICogQHBhcmFtIGVuY3J5cHRpb25LZXkgVGhlIGtleSB0byBwcm92aWRlIGFjY2VzcyB0b1xuICAgKi9cbiAgcHJpdmF0ZSBhbGxvd1RhYmxlc01haW50ZW5hbmNlQWNjZXNzVG9LZXkoZW5jcnlwdGlvbktleToga21zLklLZXksIHRhYmxlQnVja2V0TmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVnaW9uID0gdGhpcy5zdGFjay5yZWdpb247XG4gICAgY29uc3QgYWNjb3VudCA9IHRoaXMuc3RhY2suYWNjb3VudDtcbiAgICBjb25zdCBwYXJ0aXRpb24gPSB0aGlzLnN0YWNrLnBhcnRpdGlvbjtcblxuICAgIGVuY3J5cHRpb25LZXkuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBzaWQ6ICdBbGxvd1MzVGFibGVzTWFpbnRlbmFuY2VBY2Nlc3MnLFxuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgcHJpbmNpcGFsczogW1xuICAgICAgICBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ21haW50ZW5hbmNlLnMzdGFibGVzLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIF0sXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdrbXM6R2VuZXJhdGVEYXRhS2V5JyxcbiAgICAgICAgJ2ttczpEZWNyeXB0JyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdMaWtlOiB7XG4gICAgICAgICAgJ2ttczpFbmNyeXB0aW9uQ29udGV4dDphd3M6czM6YXJuJzogYGFybjoke3BhcnRpdGlvbn06czN0YWJsZXM6JHtyZWdpb259OiR7YWNjb3VudH06YnVja2V0LyR7dGFibGVCdWNrZXROYW1lfS8qYCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSkpO1xuICB9XG59XG5cbiJdfQ==
|
package/lib/table-policy.js
CHANGED
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
2
18
|
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
3
19
|
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
4
20
|
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
@@ -33,11 +49,28 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
|
|
|
33
49
|
}
|
|
34
50
|
return useValue ? value : void 0;
|
|
35
51
|
};
|
|
52
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
53
|
+
var ownKeys = function(o) {
|
|
54
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
55
|
+
var ar = [];
|
|
56
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
57
|
+
return ar;
|
|
58
|
+
};
|
|
59
|
+
return ownKeys(o);
|
|
60
|
+
};
|
|
61
|
+
return function (mod) {
|
|
62
|
+
if (mod && mod.__esModule) return mod;
|
|
63
|
+
var result = {};
|
|
64
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
65
|
+
__setModuleDefault(result, mod);
|
|
66
|
+
return result;
|
|
67
|
+
};
|
|
68
|
+
})();
|
|
36
69
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
70
|
exports.TablePolicy = void 0;
|
|
38
71
|
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
39
72
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
40
|
-
const iam = require("aws-cdk-lib/aws-iam");
|
|
73
|
+
const iam = __importStar(require("aws-cdk-lib/aws-iam"));
|
|
41
74
|
const aws_s3tables_1 = require("aws-cdk-lib/aws-s3tables");
|
|
42
75
|
const core_1 = require("aws-cdk-lib/core");
|
|
43
76
|
const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
|
|
@@ -62,7 +95,7 @@ let TablePolicy = (() => {
|
|
|
62
95
|
TablePolicy = _classThis = _classDescriptor.value;
|
|
63
96
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
64
97
|
}
|
|
65
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TablePolicy", version: "2.
|
|
98
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TablePolicy", version: "2.258.0-alpha.0" };
|
|
66
99
|
/** Uniquely identifies this class. */
|
|
67
100
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.TablePolicy';
|
|
68
101
|
/**
|
|
@@ -103,4 +136,4 @@ let TablePolicy = (() => {
|
|
|
103
136
|
return TablePolicy = _classThis;
|
|
104
137
|
})();
|
|
105
138
|
exports.TablePolicy = TablePolicy;
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFibGUtcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUEyQztBQUMzQywyREFBMEQ7QUFFMUQsMkNBQTRDO0FBQzVDLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUF5QjFFOzs7OztHQUtHO0lBRVUsV0FBVzs0QkFEdkIsb0NBQWtCOzs7O3NCQUNjLGVBQVE7MkJBQWhCLFNBQVEsV0FBUTs7OztZQUF6Qyw2S0E2QkM7Ozs7O1FBNUJDLHNDQUFzQztRQUMvQixNQUFNLENBQVUscUJBQXFCLEdBQVcseUNBQXlDLENBQUM7UUFDakc7O1dBRUc7UUFDYSxRQUFRLENBQXFCO1FBQzdDOztXQUVHO1FBQ2MsU0FBUyxDQUFpQjtRQUUzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1lBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7OzttREFiUixXQUFXOzs7O1lBY3BCLG1DQUFtQztZQUNuQyxJQUFBLHdDQUFvQixFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVsQyxnREFBZ0Q7WUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsY0FBYyxJQUFJLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVuRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksNkJBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO2dCQUM1QyxRQUFRLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRO2dCQUM5QixjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDOUIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pELENBQUM7U0FDRjs7WUE1QlUsdURBQVc7Ozs7O0FBQVgsa0NBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBDZm5UYWJsZVBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zM3RhYmxlcyc7XG5pbXBvcnQgdHlwZSB7IFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IFJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBJVGFibGUgfSBmcm9tICcuL3RhYmxlJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBjb25zdHJ1Y3RpbmcgYSBUYWJsZVBvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlUG9saWN5UHJvcHMge1xuICAvKipcbiAgICogVGhlIGFzc29jaWF0ZWQgdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlOiBJVGFibGU7XG4gIC8qKlxuICAgKiBUaGUgcG9saWN5IGRvY3VtZW50IGZvciB0aGUgdGFibGUncyByZXNvdXJjZSBwb2xpY3lcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIEFuIGVtcHR5IGlhbS5Qb2xpY3lEb2N1bWVudCB3aWxsIGJlIGluaXRpYWxpemVkXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZVBvbGljeT86IGlhbS5Qb2xpY3lEb2N1bWVudDtcbiAgLyoqXG4gICAqIFBvbGljeSB0byBhcHBseSB3aGVuIHRoZSBwb2xpY3kgaXMgcmVtb3ZlZCBmcm9tIHRoaXMgc3RhY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG59XG5cbi8qKlxuICogQSAgUG9saWN5IGZvciBTMyBUYWJsZXMuXG4gKlxuICogWW91IHdpbGwgYWxtb3N0IG5ldmVyIG5lZWQgdG8gdXNlIHRoaXMgY29uc3RydWN0IGRpcmVjdGx5LlxuICogSW5zdGVhZCwgVGFibGUuYWRkVG9SZXNvdXJjZVBvbGljeSBjYW4gYmUgdXNlZCB0byBhZGQgbW9yZSBwb2xpY2llcyB0byB5b3VyIHRhYmxlIGRpcmVjdGx5XG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBUYWJsZVBvbGljeSBleHRlbmRzIFJlc291cmNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtczN0YWJsZXMtYWxwaGEuVGFibGVQb2xpY3knO1xuICAvKipcbiAgICogVGhlIElBTSBQb2xpY3lEb2N1bWVudCBjb250YWluaW5nIHBlcm1pc3Npb25zIHJlcHJlc2VudGVkIGJ5IHRoaXMgcG9saWN5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50OiBpYW0uUG9saWN5RG9jdW1lbnQ7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgVGhlIHVuZGVybHlpbmcgcG9saWN5IHJlc291cmNlLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzb3VyY2U6IENmblRhYmxlUG9saWN5O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUYWJsZVBvbGljeVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIC8vIFVzZSBkZWZhdWx0IHBvbGljeSBpZiBub3QgcHJvdmlkZWQgd2l0aCBwcm9wc1xuICAgIHRoaXMuZG9jdW1lbnQgPSBwcm9wcy5yZXNvdXJjZVBvbGljeSB8fCBuZXcgaWFtLlBvbGljeURvY3VtZW50KHt9KTtcblxuICAgIHRoaXMuX3Jlc291cmNlID0gbmV3IENmblRhYmxlUG9saWN5KHRoaXMsIGlkLCB7XG4gICAgICB0YWJsZUFybjogcHJvcHMudGFibGUudGFibGVBcm4sXG4gICAgICByZXNvdXJjZVBvbGljeTogdGhpcy5kb2N1bWVudCxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5yZW1vdmFsUG9saWN5KSB7XG4gICAgICB0aGlzLl9yZXNvdXJjZS5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/lib/table.js
CHANGED
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
2
18
|
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
3
19
|
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
4
20
|
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
@@ -33,18 +49,35 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
|
|
|
33
49
|
}
|
|
34
50
|
return useValue ? value : void 0;
|
|
35
51
|
};
|
|
52
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
53
|
+
var ownKeys = function(o) {
|
|
54
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
55
|
+
var ar = [];
|
|
56
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
57
|
+
return ar;
|
|
58
|
+
};
|
|
59
|
+
return ownKeys(o);
|
|
60
|
+
};
|
|
61
|
+
return function (mod) {
|
|
62
|
+
if (mod && mod.__esModule) return mod;
|
|
63
|
+
var result = {};
|
|
64
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
65
|
+
__setModuleDefault(result, mod);
|
|
66
|
+
return result;
|
|
67
|
+
};
|
|
68
|
+
})();
|
|
36
69
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
70
|
exports.Table = exports.NullOrder = exports.SortDirection = exports.IcebergTransform = exports.Status = exports.OpenTableFormat = void 0;
|
|
38
71
|
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
39
72
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
40
73
|
const os_1 = require("os");
|
|
41
|
-
const iam = require("aws-cdk-lib/aws-iam");
|
|
74
|
+
const iam = __importStar(require("aws-cdk-lib/aws-iam"));
|
|
42
75
|
const aws_s3tables_1 = require("aws-cdk-lib/aws-s3tables");
|
|
43
76
|
const core_1 = require("aws-cdk-lib/core");
|
|
44
77
|
const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
|
|
45
78
|
const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
|
|
46
79
|
const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
|
|
47
|
-
const perms = require("./permissions");
|
|
80
|
+
const perms = __importStar(require("./permissions"));
|
|
48
81
|
/**
|
|
49
82
|
* Base class for Table implementations.
|
|
50
83
|
*/
|
|
@@ -123,7 +156,7 @@ var Status;
|
|
|
123
156
|
* Iceberg transform values for partition and sort fields.
|
|
124
157
|
*/
|
|
125
158
|
class IcebergTransform {
|
|
126
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.IcebergTransform", version: "2.
|
|
159
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.IcebergTransform", version: "2.258.0-alpha.0" };
|
|
127
160
|
/**
|
|
128
161
|
* Use the column value as the transform value without transformation.
|
|
129
162
|
*/
|
|
@@ -234,7 +267,7 @@ let Table = (() => {
|
|
|
234
267
|
Table = _classThis = _classDescriptor.value;
|
|
235
268
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
236
269
|
}
|
|
237
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.Table", version: "2.
|
|
270
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.Table", version: "2.258.0-alpha.0" };
|
|
238
271
|
/** Uniquely identifies this class. */
|
|
239
272
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.Table';
|
|
240
273
|
/**
|
|
@@ -449,4 +482,4 @@ let Table = (() => {
|
|
|
449
482
|
return Table = _classThis;
|
|
450
483
|
})();
|
|
451
484
|
exports.Table = Table;
|
|
452
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQkFBeUI7QUFDekIsMkNBQTJDO0FBQzNDLDJEQUFvRTtBQU9wRSwyQ0FJMEI7QUFDMUIsNEVBQTREO0FBQzVELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFHMUUsdUNBQXVDO0FBbUZ2Qzs7R0FFRztBQUNILE1BQWUsU0FBVSxTQUFRLGVBQVE7SUFrQmhDLG1CQUFtQixDQUN4QixTQUE4QjtRQUU5QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksNkJBQWMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO2dCQUMzRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLGNBQWMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2FBQzNDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RFLENBQUM7UUFFRCxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO0tBQ2xDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsUUFBd0I7UUFDdkMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUNmLFFBQVEsRUFDUixLQUFLLENBQUMsaUJBQWlCLEVBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztLQUNIO0lBRUQ7O09BRUc7SUFD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QUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDL0UsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM3QixNQUFNLElBQUksOEJBQXVCLENBQy9CLElBQUEsc0JBQUcsRUFBQSwyQkFBMkIsRUFDOUIsa0RBQWtELENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUMzRixDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FDM0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNmLEdBQUcsR0FBRztnQkFDTixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSzthQUN6QixDQUFDLEVBQ0YsRUFBNEIsQ0FDN0IsQ0FBQztTQUNIOztZQXRQVSx1REFBSzs7Ozs7QUFBTCxzQkFBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVPTCB9IGZyb20gJ29zJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENmblRhYmxlLCBDZm5UYWJsZVBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zM3RhYmxlcyc7XG5pbXBvcnQgdHlwZSB7XG4gIElSZXNvdXJjZSxcbiAgSVRhZ2dhYmxlVjIsXG4gIFJlbW92YWxQb2xpY3ksXG4gIFRhZ01hbmFnZXIsXG59IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHtcbiAgUmVzb3VyY2UsXG4gIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yLFxuICBUb2tlbixcbn0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElOYW1lc3BhY2UgfSBmcm9tICcuL25hbWVzcGFjZSc7XG5pbXBvcnQgKiBhcyBwZXJtcyBmcm9tICcuL3Blcm1pc3Npb25zJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIFMzIFRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZSBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgdGFibGUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgdGFibGUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudElkIGNvbnRhaW5pbmcgdGhpcyB0YWJsZS5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBjb250YWluaW5nIHRoaXMgdGFibGUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgcmVzb3VyY2UgcG9saWN5IGZvciBhIHByaW5jaXBhbCAoaS5lLlxuICAgKiBhY2NvdW50L3JvbGUvc2VydmljZSkgdG8gcGVyZm9ybSBhY3Rpb25zIG9uIHRoaXMgdGFibGUuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgcG9saWN5IHN0YXRlbWVudCBtYXkgb3IgbWF5IG5vdCBiZSBhZGRlZCB0byB0aGUgcG9saWN5LlxuICAgKiBGb3IgZXhhbXBsZSwgd2hlbiBhbiBgSVRhYmxlYCBpcyBjcmVhdGVkIGZyb20gYW4gZXhpc3RpbmcgdGFibGUsXG4gICAqIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHRlbGwgd2hldGhlciB0aGUgdGFibGUgYWxyZWFkeSBoYXMgYSBwb2xpY3lcbiAgICogYXR0YWNoZWQsIGxldCBhbG9uZSB0byByZS11c2UgdGhhdCBwb2xpY3kgdG8gYWRkIG1vcmUgc3RhdGVtZW50cyB0byBpdC5cbiAgICogU28gaXQncyBzYWZlc3QgdG8gZG8gbm90aGluZyBpbiB0aGVzZSBjYXNlcy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudCB0aGUgcG9saWN5IHN0YXRlbWVudCB0byBiZSBhZGRlZCB0byB0aGUgdGFibGUnc1xuICAgKiBwb2xpY3kuXG4gICAqIEByZXR1cm5zIG1ldGFkYXRhIGFib3V0IHRoZSBleGVjdXRpb24gb2YgdGhpcyBtZXRob2QuIElmIHRoZSBwb2xpY3lcbiAgICogd2FzIG5vdCBhZGRlZCwgdGhlIHZhbHVlIG9mIGBzdGF0ZW1lbnRBZGRlZGAgd2lsbCBiZSBgZmFsc2VgLiBZb3VcbiAgICogc2hvdWxkIGFsd2F5cyBjaGVjayB0aGlzIHZhbHVlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBvcGVyYXRpb24gd2FzXG4gICAqIGFjdHVhbGx5IGNhcnJpZWQgb3V0LiBPdGhlcndpc2UsIHN5bnRoZXNpcyBhbmQgZGVwbG95IHdpbGwgdGVybWluYXRlXG4gICAqIHNpbGVudGx5LCB3aGljaCBtYXkgYmUgY29uZnVzaW5nLlxuICAgKi9cbiAgYWRkVG9SZXNvdXJjZVBvbGljeShzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQpOiBpYW0uQWRkVG9SZXNvdXJjZVBvbGljeVJlc3VsdDtcblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiB0aGUgcGFyZW50IFRhYmxlQnVja2V0IG9mIHRoaXMgdGFibGUgaGFzIGVuY3J5cHRpb24sXG4gICAqIHlvdSBzaG91bGQgZ3JhbnQga21zOkRlY3J5cHQgcGVybWlzc2lvbiB0byB1c2UgdGhpcyBrZXkgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyByZWFkIHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBncmFudFJlYWQoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiB0aGUgcGFyZW50IFRhYmxlQnVja2V0IG9mIHRoaXMgdGFibGUgaGFzIGVuY3J5cHRpb24sXG4gICAqIHlvdSBzaG91bGQgZ3JhbnQga21zOkdlbmVyYXRlRGF0YUtleSBhbmQga21zOkRlY3J5cHQgcGVybWlzc2lvblxuICAgKiB0byB1c2UgdGhpcyBrZXkgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyB3cml0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgZ3JhbnRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIGZvciB0aGlzIHRhYmxlIHRvIGFuIElBTSBwcmluY2lwYWwgKFJvbGUvR3JvdXAvVXNlcikuXG4gICAqXG4gICAqIElmIHRoZSBwYXJlbnQgVGFibGVCdWNrZXQgb2YgdGhpcyB0YWJsZSBoYXMgZW5jcnlwdGlvbixcbiAgICogeW91IHNob3VsZCBncmFudCBrbXM6R2VuZXJhdGVEYXRhS2V5IGFuZCBrbXM6RGVjcnlwdCBwZXJtaXNzaW9uXG4gICAqIHRvIHVzZSB0aGlzIGtleSB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBncmFudFJlYWRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgVGFibGUgaW1wbGVtZW50YXRpb25zLlxuICovXG5hYnN0cmFjdCBjbGFzcyBUYWJsZUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElUYWJsZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBwb2xpY3kgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFibGUuXG4gICAqXG4gICAqIElmIGBhdXRvQ3JlYXRlUG9saWN5YCBpcyB0cnVlLCBhIGBUYWJsZVBvbGljeWAgd2lsbCBiZSBjcmVhdGVkIHVwb24gdGhlXG4gICAqIGZpcnN0IGNhbGwgdG8gYWRkVG9SZXNvdXJjZVBvbGljeShzKS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCB0YWJsZVBvbGljeT86IENmblRhYmxlUG9saWN5O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgYSB0YWJsZSByZXNvdXJjZSBwb2xpY3kgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB1cG9uXG4gICAqIHRoZSBmaXJzdCBjYWxsIHRvIGBhZGRUb1Jlc291cmNlUG9saWN5YC5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuO1xuXG4gIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIGlmICghdGhpcy50YWJsZVBvbGljeSAmJiB0aGlzLmF1dG9DcmVhdGVQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVQb2xpY3kgPSBuZXcgQ2ZuVGFibGVQb2xpY3kodGhpcywgJ0RlZmF1bHRQb2xpY3knLCB7XG4gICAgICAgIHRhYmxlQXJuOiB0aGlzLnRhYmxlQXJuLFxuICAgICAgICByZXNvdXJjZVBvbGljeTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7fSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50YWJsZVBvbGljeSkge1xuICAgICAgdGhpcy50YWJsZVBvbGljeS5yZXNvdXJjZVBvbGljeS5hZGRTdGF0ZW1lbnRzKHN0YXRlbWVudCk7XG4gICAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogdHJ1ZSwgcG9saWN5RGVwZW5kYWJsZTogdGhpcy50YWJsZVBvbGljeSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiBmYWxzZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZChpZGVudGl0eTogaWFtLklHcmFudGFibGUpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfUkVBRF9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQXJuLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfV1JJVEVfQUNDRVNTLFxuICAgICAgdGhpcy50YWJsZUFybixcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSkge1xuICAgIHJldHVybiB0aGlzLmdyYW50KFxuICAgICAgaWRlbnRpdHksXG4gICAgICBwZXJtcy5UQUJMRV9SRUFEX1dSSVRFX0FDQ0VTUyxcbiAgICAgIHRoaXMudGFibGVBcm4sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgdGhlIGdpdmVuIHMzdGFibGVzIHBlcm1pc3Npb25zIHRvIHRoZSBwcm92aWRlZCBwcmluY2lwYWxcbiAgICogQHJldHVybnMgR3JhbnQgb2JqZWN0XG4gICAqL1xuICBwcml2YXRlIGdyYW50KFxuICAgIGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLFxuICAgIHRhYmxlQWN0aW9uczogc3RyaW5nW10sXG4gICAgcmVzb3VyY2VBcm46IHN0cmluZyxcbiAgICAuLi5vdGhlclJlc291cmNlQXJuczogKHN0cmluZyB8IHVuZGVmaW5lZClbXSkge1xuICAgIGNvbnN0IHJlc291cmNlcyA9IFtyZXNvdXJjZUFybiwgLi4ub3RoZXJSZXNvdXJjZUFybnNdLmZpbHRlcihhcm4gPT4gYXJuICE9IHVuZGVmaW5lZCk7XG5cbiAgICBjb25zdCBncmFudCA9IGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbE9yUmVzb3VyY2Uoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IHRhYmxlQWN0aW9ucyxcbiAgICAgIHJlc291cmNlQXJuczogcmVzb3VyY2VzLFxuICAgICAgcmVzb3VyY2U6IHRoaXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ3JhbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIG5ldyBTMyBUYWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhpcyB0YWJsZSwgdW5pcXVlIHdpdGhpbiB0aGUgbmFtZXNwYWNlXG4gICAqL1xuICByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2UgdW5kZXIgd2hpY2ggdGhpcyB0YWJsZSBpcyBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2U6IElOYW1lc3BhY2U7XG4gIC8qKlxuICAgKiBGb3JtYXQgb2YgdGhpcyB0YWJsZS4gQ3VycmVudGx5LCB0aGUgb25seSBzdXBwb3J0ZWQgdmFsdWUgaXMgT3BlblRhYmxlRm9ybWF0LklDRUJFUkcuXG4gICAqL1xuICByZWFkb25seSBvcGVuVGFibGVGb3JtYXQ6IE9wZW5UYWJsZUZvcm1hdDtcbiAgLyoqXG4gICAqIFNldHRpbmdzIGdvdmVybmluZyB0aGUgQ29tcGFjdGlvbiBtYWludGVuYW5jZSBhY3Rpb24uXG4gICAqIEBkZWZhdWx0IEFtYXpvbiBTMyBzZWxlY3RzIHRoZSBiZXN0IGNvbXBhY3Rpb24gc3RyYXRlZ3kgYmFzZWQgb24geW91ciB0YWJsZSBzb3J0IG9yZGVyLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvdXNlcmd1aWRlL3MzLXRhYmxlcy1tYWludGVuYW5jZS5odG1sXG4gICAqL1xuICByZWFkb25seSBjb21wYWN0aW9uPzogQ29tcGFjdGlvblByb3BlcnR5O1xuICAvKipcbiAgICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgbWV0YWRhdGEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gICAqIEBkZWZhdWx0IHRhYmxlIGlzIGNyZWF0ZWQgd2l0aG91dCBhbnkgbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IGljZWJlcmdNZXRhZGF0YT86IEljZWJlcmdNZXRhZGF0YVByb3BlcnR5O1xuICAvKipcbiAgICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgc25hcHNob3QgbWFuYWdlbWVudCBzZXR0aW5ncyBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAgICogQGRlZmF1bHQgZW5hYmxlZDogTWluaW11bVNuYXBzaG90cyBpcyAxIGJ5IGRlZmF1bHQgYW5kIE1heGltdW1TbmFwc2hvdEFnZSBpcyAxMjAgaG91cnMgYnkgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IHNuYXBzaG90TWFuYWdlbWVudD86IFNuYXBzaG90TWFuYWdlbWVudFByb3BlcnR5O1xuICAvKipcbiAgICogQ29udHJvbHMgd2hhdCBoYXBwZW5zIHRvIHRoaXMgdGFibGUgaXQgaXQgc3RvcGVkIGJlaW5nIG1hbmFnZWQgYnkgY2xvdWRmb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IFJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG4gIC8qKlxuICAgKiBJZiB0cnVlLCBpbmRpY2F0ZXMgdGhhdCB5b3UgZG9uJ3Qgd2FudCB0byBzcGVjaWZ5IGEgc2NoZW1hIGZvciB0aGUgdGFibGUuXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgbXV0dWFsbHkgZXhjbHVzaXZlIHRvICdJY2ViZXJnTWV0YWRhdGEnLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgd2l0aG91dE1ldGFkYXRhPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTdXBwb3J0ZWQgb3BlbiB0YWJsZSBmb3JtYXRzLlxuICovXG5leHBvcnQgZW51bSBPcGVuVGFibGVGb3JtYXQge1xuICAvKipcbiAgICogQXBhY2hlIEljZWJlcmcgdGFibGUgZm9ybWF0LlxuICAgKi9cbiAgSUNFQkVSRyA9ICdJQ0VCRVJHJyxcbn1cblxuLyoqXG4gKiBTZXR0aW5ncyBnb3Zlcm5pbmcgdGhlIENvbXBhY3Rpb24gbWFpbnRlbmFuY2UgYWN0aW9uLlxuICpcbiAqIEBkZWZhdWx0IC0gTm8gY29tcGFjdGlvbiBzZXR0aW5nc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBhY3Rpb25Qcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBTdGF0dXMgb2YgdGhlIGNvbXBhY3Rpb24gbWFpbnRlbmFuY2UgYWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzOiBTdGF0dXM7XG4gIC8qKlxuICAgKiBUYXJnZXQgZmlsZSBzaXplIGluIG1lZ2FieXRlcyBmb3IgY29tcGFjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEZpbGVTaXplTWI6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTdGF0dXMgdmFsdWVzIGZvciBtYWludGVuYW5jZSBhY3Rpb25zLlxuICovXG5leHBvcnQgZW51bSBTdGF0dXMge1xuICAvKipcbiAgICogRW5hYmxlIHRoZSBtYWludGVuYW5jZSBhY3Rpb24uXG4gICAqL1xuICBFTkFCTEVEID0gJ2VuYWJsZWQnLFxuICAvKipcbiAgICogRGlzYWJsZSB0aGUgbWFpbnRlbmFuY2UgYWN0aW9uLlxuICAgKi9cbiAgRElTQUJMRUQgPSAnZGlzYWJsZWQnLFxufVxuXG4vKipcbiAqIEljZWJlcmcgdHJhbnNmb3JtIHZhbHVlcyBmb3IgcGFydGl0aW9uIGFuZCBzb3J0IGZpZWxkcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEljZWJlcmdUcmFuc2Zvcm0ge1xuICAvKipcbiAgICogVXNlIHRoZSBjb2x1bW4gdmFsdWUgYXMgdGhlIHRyYW5zZm9ybSB2YWx1ZSB3aXRob3V0IHRyYW5zZm9ybWF0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJREVOVElUWSA9IG5ldyBJY2ViZXJnVHJhbnNmb3JtKCdpZGVudGl0eScpO1xuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gYSB0aW1lc3RhbXAvZGF0ZSBmaWVsZCB0byB5ZWFyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBZRUFSID0gbmV3IEljZWJlcmdUcmFuc2Zvcm0oJ3llYXInKTtcblxuICAvKipcbiAgICogVHJhbnNmb3JtIGEgdGltZXN0YW1wL2RhdGUgZmllbGQgdG8gbW9udGguXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1PTlRIID0gbmV3IEljZWJlcmdUcmFuc2Zvcm0oJ21vbnRoJyk7XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBhIHRpbWVzdGFtcC9kYXRlIGZpZWxkIHRvIGRheS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREFZID0gbmV3IEljZWJlcmdUcmFuc2Zvcm0oJ2RheScpO1xuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gYSB0aW1lc3RhbXAgZmllbGQgdG8gaG91ci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSE9VUiA9IG5ldyBJY2ViZXJnVHJhbnNmb3JtKCdob3VyJyk7XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB2YWx1ZXMgaW50byBhIGZpeGVkIG51bWJlciBvZiBidWNrZXRzLlxuICAgKlxuICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9mIGJ1Y2tldHMgKG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBidWNrZXQobjogbnVtYmVyKTogSWNlYmVyZ1RyYW5zZm9ybSB7XG4gICAgaWYgKG4gPD0gMCB8fCAhTnVtYmVyLmlzSW50ZWdlcihuKSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZEJ1Y2tldENvdW50YCxcbiAgICAgICAgJ0J1Y2tldCBjb3VudCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlci4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJY2ViZXJnVHJhbnNmb3JtKGBidWNrZXRbJHtufV1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcnVuY2F0ZSB2YWx1ZXMgdG8gYSBmaXhlZCB3aWR0aC5cbiAgICpcbiAgICogQHBhcmFtIHdpZHRoIFRoZSB0cnVuY2F0aW9uIHdpZHRoIChtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlcilcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGUod2lkdGg6IG51bWJlcik6IEljZWJlcmdUcmFuc2Zvcm0ge1xuICAgIGlmICh3aWR0aCA8PSAwIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKHdpZHRoKSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZFRydW5jYXRlV2lkdGhgLFxuICAgICAgICAnVHJ1bmNhdGUgd2lkdGggbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSWNlYmVyZ1RyYW5zZm9ybShgdHJ1bmNhdGVbJHt3aWR0aH1dYCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY3VzdG9tIHRyYW5zZm9ybSBmcm9tIGEgc3RyaW5nIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHRyYW5zZm9ybSBzdHJpbmcgdmFsdWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEljZWJlcmdUcmFuc2Zvcm0ge1xuICAgIHJldHVybiBuZXcgSWNlYmVyZ1RyYW5zZm9ybSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUgdHJhbnNmb3JtLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHJhbnNmb3JtLlxuICAgKi9cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBTb3J0IGRpcmVjdGlvbiB2YWx1ZXMgZm9yIEljZWJlcmcgc29ydCBmaWVsZHMuXG4gKi9cbmV4cG9ydCBlbnVtIFNvcnREaXJlY3Rpb24ge1xuICAvKipcbiAgICogU29ydCB2YWx1ZXMgaW4gYXNjZW5kaW5nIG9yZGVyLlxuICAgKi9cbiAgQVNDID0gJ2FzYycsXG4gIC8qKlxuICAgKiBTb3J0IHZhbHVlcyBpbiBkZXNjZW5kaW5nIG9yZGVyLlxuICAgKi9cbiAgREVTQyA9ICdkZXNjJyxcbn1cblxuLyoqXG4gKiBOdWxsIG9yZGVyaW5nIHZhbHVlcyBmb3IgSWNlYmVyZyBzb3J0IGZpZWxkcy5cbiAqL1xuZXhwb3J0IGVudW0gTnVsbE9yZGVyIHtcbiAgLyoqXG4gICAqIFBsYWNlIG51bGwgdmFsdWVzIGJlZm9yZSBub24tbnVsbCB2YWx1ZXMuXG4gICAqL1xuICBOVUxMU19GSVJTVCA9ICdudWxscy1maXJzdCcsXG4gIC8qKlxuICAgKiBQbGFjZSBudWxsIHZhbHVlcyBhZnRlciBub24tbnVsbCB2YWx1ZXMuXG4gICAqL1xuICBOVUxMU19MQVNUID0gJ251bGxzLWxhc3QnLFxufVxuXG4vKipcbiAqIFBhcnRpdGlvbiBmaWVsZCBkZWZpbml0aW9uIGZvciBJY2ViZXJnIHRhYmxlLlxuICpcbiAqIERlZmluZXMgYSBzaW5nbGUgcGFydGl0aW9uIGNvbHVtbi4gTXVsdGlwbGUgcGFydGl0aW9uIGZpZWxkcyBjYW4gYmUgY29tYmluZWRcbiAqIGluIGFuIEljZWJlcmdQYXJ0aXRpb25TcGVjIHRvIGNyZWF0ZSBtdWx0aS1sZXZlbCBwYXJ0aXRpb25pbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1BhcnRpdGlvbkZpZWxkIHtcbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgZmllbGQgSUQgZnJvbSB0aGUgc2NoZW1hLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlSWQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHBhcnRpdGlvbiB0cmFuc2Zvcm0gZnVuY3Rpb24uXG4gICAqXG4gICAqIFVzZSBgSWNlYmVyZ1RyYW5zZm9ybWAgc3RhdGljIHByb3BlcnRpZXMgZm9yIGNvbW1vbiB0cmFuc2Zvcm1zIChlLmcuLCBgSWNlYmVyZ1RyYW5zZm9ybS5JREVOVElUWWApXG4gICAqIG9yIG1ldGhvZHMgZm9yIHBhcmFtZXRlcml6ZWQgdHJhbnNmb3JtcyAoZS5nLiwgYEljZWJlcmdUcmFuc2Zvcm0uYnVja2V0KDE2KWApLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNmb3JtOiBJY2ViZXJnVHJhbnNmb3JtO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBhcnRpdGlvbiBmaWVsZC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcGFydGl0aW9uIGZpZWxkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEF1dG8tYXNzaWduZWQgc3RhcnRpbmcgZnJvbSAxMDAwXG4gICAqL1xuICByZWFkb25seSBmaWVsZElkPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcnRpdGlvbiBzcGVjaWZpY2F0aW9uIGZvciBJY2ViZXJnIHRhYmxlLlxuICpcbiAqIENvbnRhaW5zIHRoZSBjb21wbGV0ZSBwYXJ0aXRpb25pbmcgY29uZmlndXJhdGlvbiBmb3IgYSB0YWJsZSwgaW5jbHVkaW5nIGFsbCBwYXJ0aXRpb24gZmllbGRzLlxuICogVXNlIHRoaXMgdG8gZGVmaW5lIG11bHRpLWxldmVsIHBhcnRpdGlvbmluZyAoZS5nLiwgcGFydGl0aW9uIGJ5IGRhdGUsIHRoZW4gYnkgcmVnaW9uKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJY2ViZXJnUGFydGl0aW9uU3BlYyB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBwYXJ0aXRpb24gZmllbGRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZmllbGRzOiBJY2ViZXJnUGFydGl0aW9uRmllbGRbXTtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcGFydGl0aW9uIHNwZWNpZmljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IHNwZWNJZD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTb3J0IGZpZWxkIGRlZmluaXRpb24gZm9yIEljZWJlcmcgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1NvcnRGaWVsZCB7XG4gIC8qKlxuICAgKiBUaGUgc291cmNlIGZpZWxkIElEIGZyb20gdGhlIHNjaGVtYS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUlkOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3J0IHRyYW5zZm9ybSBmdW5jdGlvbi5cbiAgICpcbiAgICogVXNlIGBJY2ViZXJnVHJhbnNmb3JtYCBzdGF0aWMgcHJvcGVydGllcyBmb3IgY29tbW9uIHRyYW5zZm9ybXMgKGUuZy4sIGBJY2ViZXJnVHJhbnNmb3JtLklERU5USVRZYClcbiAgICogb3IgbWV0aG9kcyBmb3IgcGFyYW1ldGVyaXplZCB0cmFuc2Zvcm1zIChlLmcuLCBgSWNlYmVyZ1RyYW5zZm9ybS5idWNrZXQoMTYpYCkuXG4gICAqL1xuICByZWFkb25seSB0cmFuc2Zvcm06IEljZWJlcmdUcmFuc2Zvcm07XG5cbiAgLyoqXG4gICAqIFRoZSBzb3J0IGRpcmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bGwgb3JkZXJpbmcuXG4gICAqL1xuICByZWFkb25seSBudWxsT3JkZXI6IE51bGxPcmRlcjtcbn1cblxuLyoqXG4gKiBTb3J0IG9yZGVyIHNwZWNpZmljYXRpb24gZm9yIEljZWJlcmcgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1NvcnRPcmRlciB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBzb3J0IGZpZWxkcy5cbiAgICovXG4gIHJlYWRvbmx5IGZpZWxkczogSWNlYmVyZ1NvcnRGaWVsZFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzb3J0IG9yZGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBvcmRlcklkPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgc2luZ2xlIHRhYmxlIHByb3BlcnR5IGtleS12YWx1ZSBwYWlyIGZvciBJY2ViZXJnIHRhYmxlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVQcm9wZXJ0eUVudHJ5IHtcbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0eSBrZXkuXG4gICAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb3BlcnR5IHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBtZXRhZGF0YSBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtczN0YWJsZXMtdGFibGUtaWNlYmVyZ21ldGFkYXRhLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJY2ViZXJnTWV0YWRhdGFQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBzY2hlbWEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtczN0YWJsZXMtdGFibGUtaWNlYmVyZ21ldGFkYXRhLmh0bWwjY2ZuLXMzdGFibGVzLXRhYmxlLWljZWJlcmdtZXRhZGF0YS1pY2ViZXJnc2NoZW1hXG4gICAqL1xuICByZWFkb25seSBpY2ViZXJnU2NoZW1hOiBJY2ViZXJnU2NoZW1hUHJvcGVydHk7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0aXRpb24gc3BlY2lmaWNhdGlvbiBmb3IgdGhlIEljZWJlcmcgdGFibGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcGFydGl0aW9uIHNwZWNpZmljYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGljZWJlcmdQYXJ0aXRpb25TcGVjPzogSWNlYmVyZ1BhcnRpdGlvblNwZWM7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3J0IG9yZGVyIGZvciB0aGUgSWNlYmVyZyB0YWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBzb3J0IG9yZGVyXG4gICAqL1xuICByZWFkb25seSBpY2ViZXJnU29ydE9yZGVyPzogSWNlYmVyZ1NvcnRPcmRlcjtcblxuICAvKipcbiAgICogQ3VzdG9tIHByb3BlcnRpZXMgZm9yIHRoZSBJY2ViZXJnIHRhYmxlLlxuICAgKiBFYWNoIGVudHJ5IHJlcHJlc2VudHMgYSBrZXktdmFsdWUgcGFpciBmb3IgSWNlYmVyZyB0YWJsZSBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGN1c3RvbSBwcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSB0YWJsZVByb3BlcnRpZXM/OiBUYWJsZVByb3BlcnR5RW50cnlbXTtcbn1cblxuLyoqXG4gKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBzY2hlbWEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1NjaGVtYVByb3BlcnR5IHtcbiAgLyoqXG4gICAqIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIHNjaGVtYSBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVtYUZpZWxkTGlzdDogU2NoZW1hRmllbGRQcm9wZXJ0eVtdO1xufVxuXG4vKipcbiAqIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgYSBzY2hlbWEgZmllbGQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hRmllbGRQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBdXRvLWFzc2lnbmVkIGJ5IFMzIFRhYmxlc1xuICAgKi9cbiAgcmVhZG9ubHkgaWQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmaWVsZC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQSBCb29sZWFuIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHdoZXRoZXIgdmFsdWVzIGFyZSByZXF1aXJlZCBmb3IgZWFjaCByb3cgaW4gdGhpcyBmaWVsZC5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhpcyBpcyBgZmFsc2VgIGFuZCBudWxsIHZhbHVlcyBhcmUgYWxsb3dlZCBpbiB0aGUgZmllbGQuIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgZmllbGQgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0eXBlLlxuICAgKlxuICAgKiBTMyBUYWJsZXMgc3VwcG9ydHMgYWxsIEFwYWNoZSBJY2ViZXJnIHByaW1pdGl2ZSB0eXBlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgW0FwYWNoZSBJY2ViZXJnIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vaWNlYmVyZy5hcGFjaGUub3JnL3NwZWMvI3ByaW1pdGl2ZS10eXBlcykuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgc25hcHNob3QgbWFuYWdlbWVudCBzZXR0aW5ncyBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAqXG4gKiBBIHNuYXBzaG90IGlzIGV4cGlyZWQgd2hlbiBpdCBleGNlZWRzIE1pblNuYXBzaG90c1RvS2VlcCBhbmQgTWF4U25hcHNob3RBZ2VIb3Vycy5cbiAqXG4gKiBAZGVmYXVsdCAtIE5vIHNuYXBzaG90IG1hbmFnZW1lbnQgc2V0dGluZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTbmFwc2hvdE1hbmFnZW1lbnRQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhZ2Ugb2YgYSBzbmFwc2hvdCBiZWZvcmUgaXQgY2FuIGJlIGV4cGlyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbWF4aW11bSBhZ2VcbiAgICovXG4gIHJlYWRvbmx5IG1heFNuYXBzaG90QWdlSG91cnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBzbmFwc2hvdHMgdG8ga2VlcC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBtaW5pbXVtIG51bWJlclxuICAgKi9cbiAgcmVhZG9ubHkgbWluU25hcHNob3RzVG9LZWVwPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgU25hcHNob3RNYW5hZ2VtZW50IG1haW50ZW5hbmNlIGFjdGlvbiBpcyBlbmFibGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdCBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1cz86IFN0YXR1cztcbn1cblxuLyoqXG4gKiBBIHJlZmVyZW5jZSB0byBhIHRhYmxlIG91dHNpZGUgdGhpcyBzdGFja1xuICpcbiAqIFRoZSB0YWJsZU5hbWUsIHJlZ2lvbiwgYW5kIGFjY291bnQgY2FuIGJlIHByb3ZpZGVkIGV4cGxpY2l0bHlcbiAqIG9yIHdpbGwgYmUgaW5mZXJyZWQgZnJvbSB0aGUgdGFibGVBcm5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZUF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGlzIHRhYmxlXG4gICAqL1xuICByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhYmxlJ3MgQVJOLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBBbiBTMyBUYWJsZSB3aXRoIGhlbHBlcnMuXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBUYWJsZSBleHRlbmRzIFRhYmxlQmFzZSBpbXBsZW1lbnRzIElUYWdnYWJsZVYyIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtczN0YWJsZXMtYWxwaGEuVGFibGUnO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgVGFibGUgY29uc3RydWN0IHRoYXQgcmVwcmVzZW50cyBhbiBleHRlcm5hbCB0YWJsZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZS5cbiAgICogQHBhcmFtIGF0dHJzIEEgYFRhYmxlQXR0cmlidXRlc2Agb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHRhYmxlIG5hbWUgYW5kIEFSTi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlQXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IFRhYmxlQXR0cmlidXRlcyxcbiAgKTogSVRhYmxlIHtcbiAgICBjb25zdCB0YWJsZUFybiA9IGF0dHJzLnRhYmxlQXJuO1xuICAgIFRhYmxlLnZhbGlkYXRlVGFibGVOYW1lKGF0dHJzLnRhYmxlTmFtZSk7XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBUYWJsZUJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlTmFtZSA9IGF0dHJzLnRhYmxlTmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZUFybiA9IHRhYmxlQXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlUG9saWN5PzogQ2ZuVGFibGVQb2xpY3k7XG4gICAgICBwcm90ZWN0ZWQgYXV0b0NyZWF0ZVBvbGljeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAvKipcbiAgICAgICAqIEV4cG9ydHMgdGhpcyAgZnJvbSB0aGUgc3RhY2suXG4gICAgICAgKi9cbiAgICAgIHB1YmxpYyBleHBvcnQoKSB7XG4gICAgICAgIHJldHVybiBhdHRycztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHtcbiAgICAgIGVudmlyb25tZW50RnJvbUFybjogdGFibGVBcm4sXG4gICAgICBwaHlzaWNhbE5hbWU6IHRhYmxlQXJuLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZXMtYnVja2V0cy1uYW1pbmcuaHRtbFxuICAgKiBAcGFyYW0gdGFibGVOYW1lIE5hbWUgb2YgdGhlIHRhYmxlXG4gICAqIEB0aHJvd3MgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgaWYgYW55IG5hbWluZyBlcnJvcnMgYXJlIGRldGVjdGVkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZhbGlkYXRlVGFibGVOYW1lKHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRhYmxlTmFtZSA9PSB1bmRlZmluZWQgfHwgVG9rZW4uaXNVbnJlc29sdmVkKHRhYmxlTmFtZSkpIHtcbiAgICAgIC8vIHRoZSBuYW1lIGlzIGEgbGF0ZS1ib3VuZCB2YWx1ZSwgbm90IGEgZGVmaW5lZCBzdHJpbmcsIHNvIHNraXAgdmFsaWRhdGlvblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIExlbmd0aCB2YWxpZGF0aW9uXG4gICAgaWYgKHRhYmxlTmFtZS5sZW5ndGggPCAxIHx8IHRhYmxlTmFtZS5sZW5ndGggPiAyNTUpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnVGFibGUgbmFtZSBtdXN0IGJlIGF0IGxlYXN0IDEgYW5kIG5vIG1vcmUgdGhhbiAyNTUgY2hhcmFjdGVycycsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIENoYXJhY3RlciBzZXQgdmFsaWRhdGlvblxuICAgIGNvbnN0IGlsbGVnYWxDaGFyc2V0UmVnRXggPSAvW15hLXowLTlfXS87XG4gICAgY29uc3QgYWxsb3dlZEVkZ2VDaGFyc2V0UmVnRXggPSAvW2EtejAtOV0vO1xuXG4gICAgY29uc3QgaWxsZWdhbENoYXJNYXRjaCA9IHRhYmxlTmFtZS5tYXRjaChpbGxlZ2FsQ2hhcnNldFJlZ0V4KTtcbiAgICBpZiAoaWxsZWdhbENoYXJNYXRjaCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdUYWJsZSBuYW1lIG11c3Qgb25seSBjb250YWluIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLCBudW1iZXJzLCBhbmQgdW5kZXJzY29yZXMgKF8pJyArXG4gICAgICAgICAgYCAob2Zmc2V0OiAke2lsbGVnYWxDaGFyTWF0Y2guaW5kZXh9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEVkZ2UgY2hhcmFjdGVyIHZhbGlkYXRpb25cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QodGFibGVOYW1lLmNoYXJBdCgwKSkpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnVGFibGUgbmFtZSBtdXN0IHN0YXJ0IHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAwKScsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QodGFibGVOYW1lLmNoYXJBdCh0YWJsZU5hbWUubGVuZ3RoIC0gMSkpKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYFRhYmxlIG5hbWUgbXVzdCBlbmQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6ICR7XG4gICAgICAgICAgdGFibGVOYW1lLmxlbmd0aCAtIDFcbiAgICAgICAgfSlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YEludmFsaWRUYWJsZU5hbWVgLFxuICAgICAgICBgSW52YWxpZCBTMyB0YWJsZSBuYW1lICh2YWx1ZTogJHt0YWJsZU5hbWV9KSR7RU9MfSR7ZXJyb3JzLmpvaW4oRU9MKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoYXJuKSBvZiB0aGlzIHRhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuZGVybHlpbmcgQ2ZuVGFibGUgTDEgcmVzb3VyY2VcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNvdXJjZTogQ2ZuVGFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWcgbWFuYWdlciBmb3IgdGhpcyByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZGtUYWdNYW5hZ2VyOiBUYWdNYW5hZ2VyO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIHRhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2UgY29udGFpbmluZyB0aGlzIHRhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlOiBJTmFtZXNwYWNlO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgcG9saWN5IGZvciB0aGlzIHRhYmxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlUG9saWN5PzogQ2ZuVGFibGVQb2xpY3k7XG5cbiAgcHJvdGVjdGVkIGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUYWJsZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7fSk7XG5cbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIGlmIChwcm9wcy53aXRob3V0TWV0YWRhdGEgJiYgcHJvcHMuaWNlYmVyZ01ldGFkYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGxpdGBNdXR1YWxseUV4Y2x1c2l2ZVByb3BzYCxcbiAgICAgICAgXCJUYWJsZVByb3BzOiAnd2l0aG91dE1ldGFkYXRhJyBhbmQgJ2ljZWJlcmdNZXRhZGF0YScgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gU3BlY2lmeSBvbmx5IG9uZS5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgVGFibGUudmFsaWRhdGVUYWJsZU5hbWUocHJvcHMudGFibGVOYW1lKTtcblxuICAgIHRoaXMuX3Jlc291cmNlID0gbmV3IENmblRhYmxlKHRoaXMsIGlkLCB7XG4gICAgICB0YWJsZU5hbWU6IHByb3BzLnRhYmxlTmFtZSxcbiAgICAgIG9wZW5UYWJsZUZvcm1hdDogcHJvcHMub3BlblRhYmxlRm9ybWF0LFxuICAgICAgdGFibGVCdWNrZXRBcm46IHByb3BzLm5hbWVzcGFjZS50YWJsZUJ1Y2tldC50YWJsZUJ1Y2tldEFybixcbiAgICAgIG5hbWVzcGFjZTogcHJvcHMubmFtZXNwYWNlLm5hbWVzcGFjZU5hbWUsXG4gICAgICBjb21wYWN0aW9uOiBwcm9wcy5jb21wYWN0aW9uLFxuICAgICAgaWNlYmVyZ01ldGFkYXRhOiB0aGlzLmJ1aWxkSWNlYmVyZ01ldGFkYXRhKHByb3BzLmljZWJlcmdNZXRhZGF0YSksXG4gICAgICBzbmFwc2hvdE1hbmFnZW1lbnQ6IHByb3BzLnNuYXBzaG90TWFuYWdlbWVudCxcbiAgICAgIHdpdGhvdXRNZXRhZGF0YTogcHJvcHMud2l0aG91dE1ldGFkYXRhID8gJ1llcycgOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVzcGFjZSA9IHByb3BzLm5hbWVzcGFjZTtcbiAgICB0aGlzLnRhYmxlTmFtZSA9IHByb3BzLnRhYmxlTmFtZTtcbiAgICB0aGlzLnRhYmxlQXJuID0gdGhpcy5fcmVzb3VyY2UuYXR0clRhYmxlQXJuO1xuICAgIHRoaXMuY2RrVGFnTWFuYWdlciA9IHRoaXMuX3Jlc291cmNlLmNka1RhZ01hbmFnZXI7XG4gICAgdGhpcy5fcmVzb3VyY2UuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLnJlbW92YWxQb2xpY3kpO1xuICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMubmFtZXNwYWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIENsb3VkRm9ybWF0aW9uIEljZWJlcmcgbWV0YWRhdGEgcHJvcGVydHkgZnJvbSB0aGUgQ0RLIG1ldGFkYXRhIG1vZGVsLlxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEljZWJlcmdNZXRhZGF0YShtZXRhZGF0YT86IEljZWJlcmdNZXRhZGF0YVByb3BlcnR5KTogQ2ZuVGFibGUuSWNlYmVyZ01ldGFkYXRhUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGljZWJlcmdTY2hlbWE6IHRoaXMuYnVpbGRJY2ViZXJnU2NoZW1hKG1ldGFkYXRhLmljZWJlcmdTY2hlbWEpLFxuICAgICAgaWNlYmVyZ1BhcnRpdGlvblNwZWM6IG1ldGFkYXRhLmljZWJlcmdQYXJ0aXRpb25TcGVjXG4gICAgICAgID8gdGhpcy5idWlsZEljZWJlcmdQYXJ0aXRpb25TcGVjKG1ldGFkYXRhLmljZWJlcmdQYXJ0aXRpb25TcGVjKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGljZWJlcmdTb3J0T3JkZXI6IG1ldGFkYXRhLmljZWJlcmdTb3J0T3JkZXJcbiAgICAgICAgPyB0aGlzLmJ1aWxkSWNlYmVyZ1NvcnRPcmRlcihtZXRhZGF0YS5pY2ViZXJnU29ydE9yZGVyKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHRhYmxlUHJvcGVydGllczogbWV0YWRhdGEudGFibGVQcm9wZXJ0aWVzXG4gICAgICAgID8gdGhpcy5idWlsZFRhYmxlUHJvcGVydGllcyhtZXRhZGF0YS50YWJsZVByb3BlcnRpZXMpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBDbG91ZEZvcm1hdGlvbiBJY2ViZXJnIHNjaGVtYSBwcm9wZXJ0eS5cbiAgICovXG4gIHByaXZhdGUgYnVpbGRJY2ViZXJnU2NoZW1hKHNjaGVtYTogSWNlYmVyZ1NjaGVtYVByb3BlcnR5KTogQ2ZuVGFibGUuSWNlYmVyZ1NjaGVtYVByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hRmllbGRMaXN0OiBzY2hlbWEuc2NoZW1hRmllbGRMaXN0Lm1hcChmaWVsZCA9PiAoe1xuICAgICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgICB0eXBlOiBmaWVsZC50eXBlLFxuICAgICAgICAuLi4oZmllbGQucmVxdWlyZWQgIT09IHVuZGVmaW5lZCAmJiB7IHJlcXVpcmVkOiBmaWVsZC5yZXF1aXJlZCB9KSxcbiAgICAgICAgLi4uKGZpZWxkLmlkICE9PSB1bmRlZmluZWQgJiYgeyBpZDogZmllbGQuaWQgfSksXG4gICAgICB9KSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIENsb3VkRm9ybWF0aW9uIEljZWJlcmcgcGFydGl0aW9uIHNwZWNpZmljYXRpb24gcHJvcGVydHkuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkSWNlYmVyZ1BhcnRpdGlvblNwZWMoc3BlYzogSWNlYmVyZ1BhcnRpdGlvblNwZWMpOiBDZm5UYWJsZS5JY2ViZXJnUGFydGl0aW9uU3BlY1Byb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uKHNwZWMuc3BlY0lkICE9PSB1bmRlZmluZWQgJiYgeyBzcGVjSWQ6IHNwZWMuc3BlY0lkIH0pLFxuICAgICAgZmllbGRzOiBzcGVjLmZpZWxkcy5tYXAoZmllbGQgPT4gKHtcbiAgICAgICAgc291cmNlSWQ6IGZpZWxkLnNvdXJjZUlkLFxuICAgICAgICB0cmFuc2Zvcm06IGZpZWxkLnRyYW5zZm9ybS52YWx1ZSxcbiAgICAgICAgbmFtZTogZmllbGQubmFtZSxcbiAgICAgICAgLi4uKGZpZWxkLmZpZWxkSWQgIT09IHVuZGVmaW5lZCAmJiB7IGZpZWxkSWQ6IGZpZWxkLmZpZWxkSWQgfSksXG4gICAgICB9KSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIENsb3VkRm9ybWF0aW9uIEljZWJlcmcgc29ydCBvcmRlciBwcm9wZXJ0eS5cbiAgICovXG4gIHByaXZhdGUgYnVpbGRJY2ViZXJnU29ydE9yZGVyKHNvcnRPcmRlcjogSWNlYmVyZ1NvcnRPcmRlcik6IENmblRhYmxlLkljZWJlcmdTb3J0T3JkZXJQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihzb3J0T3JkZXIub3JkZXJJZCAhPT0gdW5kZWZpbmVkICYmIHsgb3JkZXJJZDogc29ydE9yZGVyLm9yZGVySWQgfSksXG4gICAgICBmaWVsZHM6IHNvcnRPcmRlci5maWVsZHMubWFwKGZpZWxkID0+ICh7XG4gICAgICAgIHNvdXJjZUlkOiBmaWVsZC5zb3VyY2VJZCxcbiAgICAgICAgdHJhbnNmb3JtOiBmaWVsZC50cmFuc2Zvcm0udmFsdWUsXG4gICAgICAgIGRpcmVjdGlvbjogZmllbGQuZGlyZWN0aW9uLFxuICAgICAgICBudWxsT3JkZXI6IGZpZWxkLm51bGxPcmRlcixcbiAgICAgIH0pKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgQ2xvdWRGb3JtYXRpb24gdGFibGUgcHJvcGVydGllcyBtYXAgZnJvbSBrZXktdmFsdWUgZW50cmllcy5cbiAgICovXG4gIHByaXZhdGUgYnVpbGRUYWJsZVByb3BlcnRpZXModGFibGVQcm9wZXJ0aWVzOiBUYWJsZVByb3BlcnR5RW50cnlbXSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGNvbnN0IGtleXMgPSB0YWJsZVByb3BlcnRpZXMubWFwKGVudHJ5ID0+IGVudHJ5LmtleSk7XG4gICAgY29uc3QgZHVwbGljYXRlS2V5cyA9IGtleXMuZmlsdGVyKChrZXksIGluZGV4KSA9PiBrZXlzLmluZGV4T2Yoa2V5KSAhPT0gaW5kZXgpO1xuICAgIGlmIChkdXBsaWNhdGVLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YER1cGxpY2F0ZVRhYmxlUHJvcGVydHlLZXlgLFxuICAgICAgICBgRHVwbGljYXRlIHRhYmxlIHByb3BlcnR5IGtleXMgYXJlIG5vdCBhbGxvd2VkOiAke1suLi5uZXcgU2V0KGR1cGxpY2F0ZUtleXMpXS5qb2luKCcsICcpfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0YWJsZVByb3BlcnRpZXMucmVkdWNlKFxuICAgICAgKGFjYywgZW50cnkpID0+ICh7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW2VudHJ5LmtleV06IGVudHJ5LnZhbHVlLFxuICAgICAgfSksXG4gICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
485
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQkFBeUI7QUFDekIseURBQTJDO0FBQzNDLDJEQUFvRTtBQU9wRSwyQ0FJMEI7QUFDMUIsNEVBQTREO0FBQzVELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFHMUUscURBQXVDO0FBbUZ2Qzs7R0FFRztBQUNILE1BQWUsU0FBVSxTQUFRLGVBQVE7SUFrQmhDLG1CQUFtQixDQUN4QixTQUE4QjtRQUU5QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksNkJBQWMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO2dCQUMzRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLGNBQWMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO2FBQzNDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RFLENBQUM7UUFFRCxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO0tBQ2xDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsUUFBd0I7UUFDdkMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUNmLFFBQVEsRUFDUixLQUFLLENBQUMsaUJBQWlCLEVBQ3ZCLElBQUksQ0FBQyxR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TSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDL0UsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM3QixNQUFNLElBQUksOEJBQXVCLENBQy9CLElBQUEsc0JBQUcsRUFBQSwyQkFBMkIsRUFDOUIsa0RBQWtELENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUMzRixDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FDM0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNmLEdBQUcsR0FBRztnQkFDTixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSzthQUN6QixDQUFDLEVBQ0YsRUFBNEIsQ0FDN0IsQ0FBQztTQUNIOztZQXRQVSx1REFBSzs7Ozs7QUFBTCxzQkFBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVPTCB9IGZyb20gJ29zJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENmblRhYmxlLCBDZm5UYWJsZVBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zM3RhYmxlcyc7XG5pbXBvcnQgdHlwZSB7XG4gIElSZXNvdXJjZSxcbiAgSVRhZ2dhYmxlVjIsXG4gIFJlbW92YWxQb2xpY3ksXG4gIFRhZ01hbmFnZXIsXG59IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHtcbiAgUmVzb3VyY2UsXG4gIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yLFxuICBUb2tlbixcbn0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElOYW1lc3BhY2UgfSBmcm9tICcuL25hbWVzcGFjZSc7XG5pbXBvcnQgKiBhcyBwZXJtcyBmcm9tICcuL3Blcm1pc3Npb25zJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIFMzIFRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZSBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgdGFibGUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgdGFibGUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudElkIGNvbnRhaW5pbmcgdGhpcyB0YWJsZS5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBjb250YWluaW5nIHRoaXMgdGFibGUuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgcmVzb3VyY2UgcG9saWN5IGZvciBhIHByaW5jaXBhbCAoaS5lLlxuICAgKiBhY2NvdW50L3JvbGUvc2VydmljZSkgdG8gcGVyZm9ybSBhY3Rpb25zIG9uIHRoaXMgdGFibGUuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgcG9saWN5IHN0YXRlbWVudCBtYXkgb3IgbWF5IG5vdCBiZSBhZGRlZCB0byB0aGUgcG9saWN5LlxuICAgKiBGb3IgZXhhbXBsZSwgd2hlbiBhbiBgSVRhYmxlYCBpcyBjcmVhdGVkIGZyb20gYW4gZXhpc3RpbmcgdGFibGUsXG4gICAqIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHRlbGwgd2hldGhlciB0aGUgdGFibGUgYWxyZWFkeSBoYXMgYSBwb2xpY3lcbiAgICogYXR0YWNoZWQsIGxldCBhbG9uZSB0byByZS11c2UgdGhhdCBwb2xpY3kgdG8gYWRkIG1vcmUgc3RhdGVtZW50cyB0byBpdC5cbiAgICogU28gaXQncyBzYWZlc3QgdG8gZG8gbm90aGluZyBpbiB0aGVzZSBjYXNlcy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudCB0aGUgcG9saWN5IHN0YXRlbWVudCB0byBiZSBhZGRlZCB0byB0aGUgdGFibGUnc1xuICAgKiBwb2xpY3kuXG4gICAqIEByZXR1cm5zIG1ldGFkYXRhIGFib3V0IHRoZSBleGVjdXRpb24gb2YgdGhpcyBtZXRob2QuIElmIHRoZSBwb2xpY3lcbiAgICogd2FzIG5vdCBhZGRlZCwgdGhlIHZhbHVlIG9mIGBzdGF0ZW1lbnRBZGRlZGAgd2lsbCBiZSBgZmFsc2VgLiBZb3VcbiAgICogc2hvdWxkIGFsd2F5cyBjaGVjayB0aGlzIHZhbHVlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBvcGVyYXRpb24gd2FzXG4gICAqIGFjdHVhbGx5IGNhcnJpZWQgb3V0LiBPdGhlcndpc2UsIHN5bnRoZXNpcyBhbmQgZGVwbG95IHdpbGwgdGVybWluYXRlXG4gICAqIHNpbGVudGx5LCB3aGljaCBtYXkgYmUgY29uZnVzaW5nLlxuICAgKi9cbiAgYWRkVG9SZXNvdXJjZVBvbGljeShzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQpOiBpYW0uQWRkVG9SZXNvdXJjZVBvbGljeVJlc3VsdDtcblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiB0aGUgcGFyZW50IFRhYmxlQnVja2V0IG9mIHRoaXMgdGFibGUgaGFzIGVuY3J5cHRpb24sXG4gICAqIHlvdSBzaG91bGQgZ3JhbnQga21zOkRlY3J5cHQgcGVybWlzc2lvbiB0byB1c2UgdGhpcyBrZXkgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyByZWFkIHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBncmFudFJlYWQoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiB0aGUgcGFyZW50IFRhYmxlQnVja2V0IG9mIHRoaXMgdGFibGUgaGFzIGVuY3J5cHRpb24sXG4gICAqIHlvdSBzaG91bGQgZ3JhbnQga21zOkdlbmVyYXRlRGF0YUtleSBhbmQga21zOkRlY3J5cHQgcGVybWlzc2lvblxuICAgKiB0byB1c2UgdGhpcyBrZXkgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyB3cml0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgZ3JhbnRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIGZvciB0aGlzIHRhYmxlIHRvIGFuIElBTSBwcmluY2lwYWwgKFJvbGUvR3JvdXAvVXNlcikuXG4gICAqXG4gICAqIElmIHRoZSBwYXJlbnQgVGFibGVCdWNrZXQgb2YgdGhpcyB0YWJsZSBoYXMgZW5jcnlwdGlvbixcbiAgICogeW91IHNob3VsZCBncmFudCBrbXM6R2VuZXJhdGVEYXRhS2V5IGFuZCBrbXM6RGVjcnlwdCBwZXJtaXNzaW9uXG4gICAqIHRvIHVzZSB0aGlzIGtleSB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBncmFudFJlYWRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgVGFibGUgaW1wbGVtZW50YXRpb25zLlxuICovXG5hYnN0cmFjdCBjbGFzcyBUYWJsZUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElUYWJsZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBwb2xpY3kgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFibGUuXG4gICAqXG4gICAqIElmIGBhdXRvQ3JlYXRlUG9saWN5YCBpcyB0cnVlLCBhIGBUYWJsZVBvbGljeWAgd2lsbCBiZSBjcmVhdGVkIHVwb24gdGhlXG4gICAqIGZpcnN0IGNhbGwgdG8gYWRkVG9SZXNvdXJjZVBvbGljeShzKS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCB0YWJsZVBvbGljeT86IENmblRhYmxlUG9saWN5O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgYSB0YWJsZSByZXNvdXJjZSBwb2xpY3kgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB1cG9uXG4gICAqIHRoZSBmaXJzdCBjYWxsIHRvIGBhZGRUb1Jlc291cmNlUG9saWN5YC5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuO1xuXG4gIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIGlmICghdGhpcy50YWJsZVBvbGljeSAmJiB0aGlzLmF1dG9DcmVhdGVQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVQb2xpY3kgPSBuZXcgQ2ZuVGFibGVQb2xpY3kodGhpcywgJ0RlZmF1bHRQb2xpY3knLCB7XG4gICAgICAgIHRhYmxlQXJuOiB0aGlzLnRhYmxlQXJuLFxuICAgICAgICByZXNvdXJjZVBvbGljeTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7fSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50YWJsZVBvbGljeSkge1xuICAgICAgdGhpcy50YWJsZVBvbGljeS5yZXNvdXJjZVBvbGljeS5hZGRTdGF0ZW1lbnRzKHN0YXRlbWVudCk7XG4gICAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogdHJ1ZSwgcG9saWN5RGVwZW5kYWJsZTogdGhpcy50YWJsZVBvbGljeSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiBmYWxzZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZChpZGVudGl0eTogaWFtLklHcmFudGFibGUpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfUkVBRF9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQXJuLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRXcml0ZShpZGVudGl0eTogaWFtLklHcmFudGFibGUpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfV1JJVEVfQUNDRVNTLFxuICAgICAgdGhpcy50YWJsZUFybixcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSkge1xuICAgIHJldHVybiB0aGlzLmdyYW50KFxuICAgICAgaWRlbnRpdHksXG4gICAgICBwZXJtcy5UQUJMRV9SRUFEX1dSSVRFX0FDQ0VTUyxcbiAgICAgIHRoaXMudGFibGVBcm4sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgdGhlIGdpdmVuIHMzdGFibGVzIHBlcm1pc3Npb25zIHRvIHRoZSBwcm92aWRlZCBwcmluY2lwYWxcbiAgICogQHJldHVybnMgR3JhbnQgb2JqZWN0XG4gICAqL1xuICBwcml2YXRlIGdyYW50KFxuICAgIGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLFxuICAgIHRhYmxlQWN0aW9uczogc3RyaW5nW10sXG4gICAgcmVzb3VyY2VBcm46IHN0cmluZyxcbiAgICAuLi5vdGhlclJlc291cmNlQXJuczogKHN0cmluZyB8IHVuZGVmaW5lZClbXSkge1xuICAgIGNvbnN0IHJlc291cmNlcyA9IFtyZXNvdXJjZUFybiwgLi4ub3RoZXJSZXNvdXJjZUFybnNdLmZpbHRlcihhcm4gPT4gYXJuICE9IHVuZGVmaW5lZCk7XG5cbiAgICBjb25zdCBncmFudCA9IGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbE9yUmVzb3VyY2Uoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IHRhYmxlQWN0aW9ucyxcbiAgICAgIHJlc291cmNlQXJuczogcmVzb3VyY2VzLFxuICAgICAgcmVzb3VyY2U6IHRoaXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ3JhbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIG5ldyBTMyBUYWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZVByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhpcyB0YWJsZSwgdW5pcXVlIHdpdGhpbiB0aGUgbmFtZXNwYWNlXG4gICAqL1xuICByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2UgdW5kZXIgd2hpY2ggdGhpcyB0YWJsZSBpcyBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2U6IElOYW1lc3BhY2U7XG4gIC8qKlxuICAgKiBGb3JtYXQgb2YgdGhpcyB0YWJsZS4gQ3VycmVudGx5LCB0aGUgb25seSBzdXBwb3J0ZWQgdmFsdWUgaXMgT3BlblRhYmxlRm9ybWF0LklDRUJFUkcuXG4gICAqL1xuICByZWFkb25seSBvcGVuVGFibGVGb3JtYXQ6IE9wZW5UYWJsZUZvcm1hdDtcbiAgLyoqXG4gICAqIFNldHRpbmdzIGdvdmVybmluZyB0aGUgQ29tcGFjdGlvbiBtYWludGVuYW5jZSBhY3Rpb24uXG4gICAqIEBkZWZhdWx0IEFtYXpvbiBTMyBzZWxlY3RzIHRoZSBiZXN0IGNvbXBhY3Rpb24gc3RyYXRlZ3kgYmFzZWQgb24geW91ciB0YWJsZSBzb3J0IG9yZGVyLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvdXNlcmd1aWRlL3MzLXRhYmxlcy1tYWludGVuYW5jZS5odG1sXG4gICAqL1xuICByZWFkb25seSBjb21wYWN0aW9uPzogQ29tcGFjdGlvblByb3BlcnR5O1xuICAvKipcbiAgICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgbWV0YWRhdGEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gICAqIEBkZWZhdWx0IHRhYmxlIGlzIGNyZWF0ZWQgd2l0aG91dCBhbnkgbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IGljZWJlcmdNZXRhZGF0YT86IEljZWJlcmdNZXRhZGF0YVByb3BlcnR5O1xuICAvKipcbiAgICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgc25hcHNob3QgbWFuYWdlbWVudCBzZXR0aW5ncyBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAgICogQGRlZmF1bHQgZW5hYmxlZDogTWluaW11bVNuYXBzaG90cyBpcyAxIGJ5IGRlZmF1bHQgYW5kIE1heGltdW1TbmFwc2hvdEFnZSBpcyAxMjAgaG91cnMgYnkgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IHNuYXBzaG90TWFuYWdlbWVudD86IFNuYXBzaG90TWFuYWdlbWVudFByb3BlcnR5O1xuICAvKipcbiAgICogQ29udHJvbHMgd2hhdCBoYXBwZW5zIHRvIHRoaXMgdGFibGUgaXQgaXQgc3RvcGVkIGJlaW5nIG1hbmFnZWQgYnkgY2xvdWRmb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IFJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG4gIC8qKlxuICAgKiBJZiB0cnVlLCBpbmRpY2F0ZXMgdGhhdCB5b3UgZG9uJ3Qgd2FudCB0byBzcGVjaWZ5IGEgc2NoZW1hIGZvciB0aGUgdGFibGUuXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgbXV0dWFsbHkgZXhjbHVzaXZlIHRvICdJY2ViZXJnTWV0YWRhdGEnLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgd2l0aG91dE1ldGFkYXRhPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTdXBwb3J0ZWQgb3BlbiB0YWJsZSBmb3JtYXRzLlxuICovXG5leHBvcnQgZW51bSBPcGVuVGFibGVGb3JtYXQge1xuICAvKipcbiAgICogQXBhY2hlIEljZWJlcmcgdGFibGUgZm9ybWF0LlxuICAgKi9cbiAgSUNFQkVSRyA9ICdJQ0VCRVJHJyxcbn1cblxuLyoqXG4gKiBTZXR0aW5ncyBnb3Zlcm5pbmcgdGhlIENvbXBhY3Rpb24gbWFpbnRlbmFuY2UgYWN0aW9uLlxuICpcbiAqIEBkZWZhdWx0IC0gTm8gY29tcGFjdGlvbiBzZXR0aW5nc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBhY3Rpb25Qcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBTdGF0dXMgb2YgdGhlIGNvbXBhY3Rpb24gbWFpbnRlbmFuY2UgYWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzOiBTdGF0dXM7XG4gIC8qKlxuICAgKiBUYXJnZXQgZmlsZSBzaXplIGluIG1lZ2FieXRlcyBmb3IgY29tcGFjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEZpbGVTaXplTWI6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTdGF0dXMgdmFsdWVzIGZvciBtYWludGVuYW5jZSBhY3Rpb25zLlxuICovXG5leHBvcnQgZW51bSBTdGF0dXMge1xuICAvKipcbiAgICogRW5hYmxlIHRoZSBtYWludGVuYW5jZSBhY3Rpb24uXG4gICAqL1xuICBFTkFCTEVEID0gJ2VuYWJsZWQnLFxuICAvKipcbiAgICogRGlzYWJsZSB0aGUgbWFpbnRlbmFuY2UgYWN0aW9uLlxuICAgKi9cbiAgRElTQUJMRUQgPSAnZGlzYWJsZWQnLFxufVxuXG4vKipcbiAqIEljZWJlcmcgdHJhbnNmb3JtIHZhbHVlcyBmb3IgcGFydGl0aW9uIGFuZCBzb3J0IGZpZWxkcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEljZWJlcmdUcmFuc2Zvcm0ge1xuICAvKipcbiAgICogVXNlIHRoZSBjb2x1bW4gdmFsdWUgYXMgdGhlIHRyYW5zZm9ybSB2YWx1ZSB3aXRob3V0IHRyYW5zZm9ybWF0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJREVOVElUWSA9IG5ldyBJY2ViZXJnVHJhbnNmb3JtKCdpZGVudGl0eScpO1xuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gYSB0aW1lc3RhbXAvZGF0ZSBmaWVsZCB0byB5ZWFyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBZRUFSID0gbmV3IEljZWJlcmdUcmFuc2Zvcm0oJ3llYXInKTtcblxuICAvKipcbiAgICogVHJhbnNmb3JtIGEgdGltZXN0YW1wL2RhdGUgZmllbGQgdG8gbW9udGguXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1PTlRIID0gbmV3IEljZWJlcmdUcmFuc2Zvcm0oJ21vbnRoJyk7XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBhIHRpbWVzdGFtcC9kYXRlIGZpZWxkIHRvIGRheS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREFZID0gbmV3IEljZWJlcmdUcmFuc2Zvcm0oJ2RheScpO1xuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gYSB0aW1lc3RhbXAgZmllbGQgdG8gaG91ci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSE9VUiA9IG5ldyBJY2ViZXJnVHJhbnNmb3JtKCdob3VyJyk7XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB2YWx1ZXMgaW50byBhIGZpeGVkIG51bWJlciBvZiBidWNrZXRzLlxuICAgKlxuICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9mIGJ1Y2tldHMgKG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBidWNrZXQobjogbnVtYmVyKTogSWNlYmVyZ1RyYW5zZm9ybSB7XG4gICAgaWYgKG4gPD0gMCB8fCAhTnVtYmVyLmlzSW50ZWdlcihuKSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZEJ1Y2tldENvdW50YCxcbiAgICAgICAgJ0J1Y2tldCBjb3VudCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlci4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJY2ViZXJnVHJhbnNmb3JtKGBidWNrZXRbJHtufV1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcnVuY2F0ZSB2YWx1ZXMgdG8gYSBmaXhlZCB3aWR0aC5cbiAgICpcbiAgICogQHBhcmFtIHdpZHRoIFRoZSB0cnVuY2F0aW9uIHdpZHRoIChtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlcilcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGUod2lkdGg6IG51bWJlcik6IEljZWJlcmdUcmFuc2Zvcm0ge1xuICAgIGlmICh3aWR0aCA8PSAwIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKHdpZHRoKSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZFRydW5jYXRlV2lkdGhgLFxuICAgICAgICAnVHJ1bmNhdGUgd2lkdGggbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSWNlYmVyZ1RyYW5zZm9ybShgdHJ1bmNhdGVbJHt3aWR0aH1dYCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY3VzdG9tIHRyYW5zZm9ybSBmcm9tIGEgc3RyaW5nIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHRyYW5zZm9ybSBzdHJpbmcgdmFsdWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEljZWJlcmdUcmFuc2Zvcm0ge1xuICAgIHJldHVybiBuZXcgSWNlYmVyZ1RyYW5zZm9ybSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUgdHJhbnNmb3JtLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHJhbnNmb3JtLlxuICAgKi9cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBTb3J0IGRpcmVjdGlvbiB2YWx1ZXMgZm9yIEljZWJlcmcgc29ydCBmaWVsZHMuXG4gKi9cbmV4cG9ydCBlbnVtIFNvcnREaXJlY3Rpb24ge1xuICAvKipcbiAgICogU29ydCB2YWx1ZXMgaW4gYXNjZW5kaW5nIG9yZGVyLlxuICAgKi9cbiAgQVNDID0gJ2FzYycsXG4gIC8qKlxuICAgKiBTb3J0IHZhbHVlcyBpbiBkZXNjZW5kaW5nIG9yZGVyLlxuICAgKi9cbiAgREVTQyA9ICdkZXNjJyxcbn1cblxuLyoqXG4gKiBOdWxsIG9yZGVyaW5nIHZhbHVlcyBmb3IgSWNlYmVyZyBzb3J0IGZpZWxkcy5cbiAqL1xuZXhwb3J0IGVudW0gTnVsbE9yZGVyIHtcbiAgLyoqXG4gICAqIFBsYWNlIG51bGwgdmFsdWVzIGJlZm9yZSBub24tbnVsbCB2YWx1ZXMuXG4gICAqL1xuICBOVUxMU19GSVJTVCA9ICdudWxscy1maXJzdCcsXG4gIC8qKlxuICAgKiBQbGFjZSBudWxsIHZhbHVlcyBhZnRlciBub24tbnVsbCB2YWx1ZXMuXG4gICAqL1xuICBOVUxMU19MQVNUID0gJ251bGxzLWxhc3QnLFxufVxuXG4vKipcbiAqIFBhcnRpdGlvbiBmaWVsZCBkZWZpbml0aW9uIGZvciBJY2ViZXJnIHRhYmxlLlxuICpcbiAqIERlZmluZXMgYSBzaW5nbGUgcGFydGl0aW9uIGNvbHVtbi4gTXVsdGlwbGUgcGFydGl0aW9uIGZpZWxkcyBjYW4gYmUgY29tYmluZWRcbiAqIGluIGFuIEljZWJlcmdQYXJ0aXRpb25TcGVjIHRvIGNyZWF0ZSBtdWx0aS1sZXZlbCBwYXJ0aXRpb25pbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1BhcnRpdGlvbkZpZWxkIHtcbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgZmllbGQgSUQgZnJvbSB0aGUgc2NoZW1hLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlSWQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHBhcnRpdGlvbiB0cmFuc2Zvcm0gZnVuY3Rpb24uXG4gICAqXG4gICAqIFVzZSBgSWNlYmVyZ1RyYW5zZm9ybWAgc3RhdGljIHByb3BlcnRpZXMgZm9yIGNvbW1vbiB0cmFuc2Zvcm1zIChlLmcuLCBgSWNlYmVyZ1RyYW5zZm9ybS5JREVOVElUWWApXG4gICAqIG9yIG1ldGhvZHMgZm9yIHBhcmFtZXRlcml6ZWQgdHJhbnNmb3JtcyAoZS5nLiwgYEljZWJlcmdUcmFuc2Zvcm0uYnVja2V0KDE2KWApLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNmb3JtOiBJY2ViZXJnVHJhbnNmb3JtO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBhcnRpdGlvbiBmaWVsZC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcGFydGl0aW9uIGZpZWxkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEF1dG8tYXNzaWduZWQgc3RhcnRpbmcgZnJvbSAxMDAwXG4gICAqL1xuICByZWFkb25seSBmaWVsZElkPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcnRpdGlvbiBzcGVjaWZpY2F0aW9uIGZvciBJY2ViZXJnIHRhYmxlLlxuICpcbiAqIENvbnRhaW5zIHRoZSBjb21wbGV0ZSBwYXJ0aXRpb25pbmcgY29uZmlndXJhdGlvbiBmb3IgYSB0YWJsZSwgaW5jbHVkaW5nIGFsbCBwYXJ0aXRpb24gZmllbGRzLlxuICogVXNlIHRoaXMgdG8gZGVmaW5lIG11bHRpLWxldmVsIHBhcnRpdGlvbmluZyAoZS5nLiwgcGFydGl0aW9uIGJ5IGRhdGUsIHRoZW4gYnkgcmVnaW9uKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJY2ViZXJnUGFydGl0aW9uU3BlYyB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBwYXJ0aXRpb24gZmllbGRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZmllbGRzOiBJY2ViZXJnUGFydGl0aW9uRmllbGRbXTtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcGFydGl0aW9uIHNwZWNpZmljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IHNwZWNJZD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTb3J0IGZpZWxkIGRlZmluaXRpb24gZm9yIEljZWJlcmcgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1NvcnRGaWVsZCB7XG4gIC8qKlxuICAgKiBUaGUgc291cmNlIGZpZWxkIElEIGZyb20gdGhlIHNjaGVtYS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUlkOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3J0IHRyYW5zZm9ybSBmdW5jdGlvbi5cbiAgICpcbiAgICogVXNlIGBJY2ViZXJnVHJhbnNmb3JtYCBzdGF0aWMgcHJvcGVydGllcyBmb3IgY29tbW9uIHRyYW5zZm9ybXMgKGUuZy4sIGBJY2ViZXJnVHJhbnNmb3JtLklERU5USVRZYClcbiAgICogb3IgbWV0aG9kcyBmb3IgcGFyYW1ldGVyaXplZCB0cmFuc2Zvcm1zIChlLmcuLCBgSWNlYmVyZ1RyYW5zZm9ybS5idWNrZXQoMTYpYCkuXG4gICAqL1xuICByZWFkb25seSB0cmFuc2Zvcm06IEljZWJlcmdUcmFuc2Zvcm07XG5cbiAgLyoqXG4gICAqIFRoZSBzb3J0IGRpcmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcblxuICAvKipcbiAgICogVGhlIG51bGwgb3JkZXJpbmcuXG4gICAqL1xuICByZWFkb25seSBudWxsT3JkZXI6IE51bGxPcmRlcjtcbn1cblxuLyoqXG4gKiBTb3J0IG9yZGVyIHNwZWNpZmljYXRpb24gZm9yIEljZWJlcmcgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1NvcnRPcmRlciB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBzb3J0IGZpZWxkcy5cbiAgICovXG4gIHJlYWRvbmx5IGZpZWxkczogSWNlYmVyZ1NvcnRGaWVsZFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzb3J0IG9yZGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBvcmRlcklkPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgc2luZ2xlIHRhYmxlIHByb3BlcnR5IGtleS12YWx1ZSBwYWlyIGZvciBJY2ViZXJnIHRhYmxlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVQcm9wZXJ0eUVudHJ5IHtcbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0eSBrZXkuXG4gICAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb3BlcnR5IHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBtZXRhZGF0YSBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtczN0YWJsZXMtdGFibGUtaWNlYmVyZ21ldGFkYXRhLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJY2ViZXJnTWV0YWRhdGFQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBzY2hlbWEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtczN0YWJsZXMtdGFibGUtaWNlYmVyZ21ldGFkYXRhLmh0bWwjY2ZuLXMzdGFibGVzLXRhYmxlLWljZWJlcmdtZXRhZGF0YS1pY2ViZXJnc2NoZW1hXG4gICAqL1xuICByZWFkb25seSBpY2ViZXJnU2NoZW1hOiBJY2ViZXJnU2NoZW1hUHJvcGVydHk7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0aXRpb24gc3BlY2lmaWNhdGlvbiBmb3IgdGhlIEljZWJlcmcgdGFibGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcGFydGl0aW9uIHNwZWNpZmljYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGljZWJlcmdQYXJ0aXRpb25TcGVjPzogSWNlYmVyZ1BhcnRpdGlvblNwZWM7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3J0IG9yZGVyIGZvciB0aGUgSWNlYmVyZyB0YWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBzb3J0IG9yZGVyXG4gICAqL1xuICByZWFkb25seSBpY2ViZXJnU29ydE9yZGVyPzogSWNlYmVyZ1NvcnRPcmRlcjtcblxuICAvKipcbiAgICogQ3VzdG9tIHByb3BlcnRpZXMgZm9yIHRoZSBJY2ViZXJnIHRhYmxlLlxuICAgKiBFYWNoIGVudHJ5IHJlcHJlc2VudHMgYSBrZXktdmFsdWUgcGFpciBmb3IgSWNlYmVyZyB0YWJsZSBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGN1c3RvbSBwcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSB0YWJsZVByb3BlcnRpZXM/OiBUYWJsZVByb3BlcnR5RW50cnlbXTtcbn1cblxuLyoqXG4gKiBDb250YWlucyBkZXRhaWxzIGFib3V0IHRoZSBzY2hlbWEgZm9yIGFuIEljZWJlcmcgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWNlYmVyZ1NjaGVtYVByb3BlcnR5IHtcbiAgLyoqXG4gICAqIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgdGhlIHNjaGVtYSBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVtYUZpZWxkTGlzdDogU2NoZW1hRmllbGRQcm9wZXJ0eVtdO1xufVxuXG4vKipcbiAqIENvbnRhaW5zIGRldGFpbHMgYWJvdXQgYSBzY2hlbWEgZmllbGQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hRmllbGRQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBdXRvLWFzc2lnbmVkIGJ5IFMzIFRhYmxlc1xuICAgKi9cbiAgcmVhZG9ubHkgaWQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmaWVsZC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQSBCb29sZWFuIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHdoZXRoZXIgdmFsdWVzIGFyZSByZXF1aXJlZCBmb3IgZWFjaCByb3cgaW4gdGhpcyBmaWVsZC5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhpcyBpcyBgZmFsc2VgIGFuZCBudWxsIHZhbHVlcyBhcmUgYWxsb3dlZCBpbiB0aGUgZmllbGQuIElmIHRoaXMgaXMgYHRydWVgLCB0aGUgZmllbGQgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0eXBlLlxuICAgKlxuICAgKiBTMyBUYWJsZXMgc3VwcG9ydHMgYWxsIEFwYWNoZSBJY2ViZXJnIHByaW1pdGl2ZSB0eXBlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgW0FwYWNoZSBJY2ViZXJnIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vaWNlYmVyZy5hcGFjaGUub3JnL3NwZWMvI3ByaW1pdGl2ZS10eXBlcykuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29udGFpbnMgZGV0YWlscyBhYm91dCB0aGUgc25hcHNob3QgbWFuYWdlbWVudCBzZXR0aW5ncyBmb3IgYW4gSWNlYmVyZyB0YWJsZS5cbiAqXG4gKiBBIHNuYXBzaG90IGlzIGV4cGlyZWQgd2hlbiBpdCBleGNlZWRzIE1pblNuYXBzaG90c1RvS2VlcCBhbmQgTWF4U25hcHNob3RBZ2VIb3Vycy5cbiAqXG4gKiBAZGVmYXVsdCAtIE5vIHNuYXBzaG90IG1hbmFnZW1lbnQgc2V0dGluZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTbmFwc2hvdE1hbmFnZW1lbnRQcm9wZXJ0eSB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhZ2Ugb2YgYSBzbmFwc2hvdCBiZWZvcmUgaXQgY2FuIGJlIGV4cGlyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gbWF4aW11bSBhZ2VcbiAgICovXG4gIHJlYWRvbmx5IG1heFNuYXBzaG90QWdlSG91cnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBzbmFwc2hvdHMgdG8ga2VlcC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBtaW5pbXVtIG51bWJlclxuICAgKi9cbiAgcmVhZG9ubHkgbWluU25hcHNob3RzVG9LZWVwPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgU25hcHNob3RNYW5hZ2VtZW50IG1haW50ZW5hbmNlIGFjdGlvbiBpcyBlbmFibGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vdCBzcGVjaWZpZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1cz86IFN0YXR1cztcbn1cblxuLyoqXG4gKiBBIHJlZmVyZW5jZSB0byBhIHRhYmxlIG91dHNpZGUgdGhpcyBzdGFja1xuICpcbiAqIFRoZSB0YWJsZU5hbWUsIHJlZ2lvbiwgYW5kIGFjY291bnQgY2FuIGJlIHByb3ZpZGVkIGV4cGxpY2l0bHlcbiAqIG9yIHdpbGwgYmUgaW5mZXJyZWQgZnJvbSB0aGUgdGFibGVBcm5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZUF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGlzIHRhYmxlXG4gICAqL1xuICByZWFkb25seSB0YWJsZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhYmxlJ3MgQVJOLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBBbiBTMyBUYWJsZSB3aXRoIGhlbHBlcnMuXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBUYWJsZSBleHRlbmRzIFRhYmxlQmFzZSBpbXBsZW1lbnRzIElUYWdnYWJsZVYyIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtczN0YWJsZXMtYWxwaGEuVGFibGUnO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgVGFibGUgY29uc3RydWN0IHRoYXQgcmVwcmVzZW50cyBhbiBleHRlcm5hbCB0YWJsZS5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZS5cbiAgICogQHBhcmFtIGF0dHJzIEEgYFRhYmxlQXR0cmlidXRlc2Agb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHRhYmxlIG5hbWUgYW5kIEFSTi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlQXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IFRhYmxlQXR0cmlidXRlcyxcbiAgKTogSVRhYmxlIHtcbiAgICBjb25zdCB0YWJsZUFybiA9IGF0dHJzLnRhYmxlQXJuO1xuICAgIFRhYmxlLnZhbGlkYXRlVGFibGVOYW1lKGF0dHJzLnRhYmxlTmFtZSk7XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBUYWJsZUJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlTmFtZSA9IGF0dHJzLnRhYmxlTmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZUFybiA9IHRhYmxlQXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlUG9saWN5PzogQ2ZuVGFibGVQb2xpY3k7XG4gICAgICBwcm90ZWN0ZWQgYXV0b0NyZWF0ZVBvbGljeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAvKipcbiAgICAgICAqIEV4cG9ydHMgdGhpcyAgZnJvbSB0aGUgc3RhY2suXG4gICAgICAgKi9cbiAgICAgIHB1YmxpYyBleHBvcnQoKSB7XG4gICAgICAgIHJldHVybiBhdHRycztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHtcbiAgICAgIGVudmlyb25tZW50RnJvbUFybjogdGFibGVBcm4sXG4gICAgICBwaHlzaWNhbE5hbWU6IHRhYmxlQXJuLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZXMtYnVja2V0cy1uYW1pbmcuaHRtbFxuICAgKiBAcGFyYW0gdGFibGVOYW1lIE5hbWUgb2YgdGhlIHRhYmxlXG4gICAqIEB0aHJvd3MgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgaWYgYW55IG5hbWluZyBlcnJvcnMgYXJlIGRldGVjdGVkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZhbGlkYXRlVGFibGVOYW1lKHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRhYmxlTmFtZSA9PSB1bmRlZmluZWQgfHwgVG9rZW4uaXNVbnJlc29sdmVkKHRhYmxlTmFtZSkpIHtcbiAgICAgIC8vIHRoZSBuYW1lIGlzIGEgbGF0ZS1ib3VuZCB2YWx1ZSwgbm90IGEgZGVmaW5lZCBzdHJpbmcsIHNvIHNraXAgdmFsaWRhdGlvblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIExlbmd0aCB2YWxpZGF0aW9uXG4gICAgaWYgKHRhYmxlTmFtZS5sZW5ndGggPCAxIHx8IHRhYmxlTmFtZS5sZW5ndGggPiAyNTUpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnVGFibGUgbmFtZSBtdXN0IGJlIGF0IGxlYXN0IDEgYW5kIG5vIG1vcmUgdGhhbiAyNTUgY2hhcmFjdGVycycsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIENoYXJhY3RlciBzZXQgdmFsaWRhdGlvblxuICAgIGNvbnN0IGlsbGVnYWxDaGFyc2V0UmVnRXggPSAvW15hLXowLTlfXS87XG4gICAgY29uc3QgYWxsb3dlZEVkZ2VDaGFyc2V0UmVnRXggPSAvW2EtejAtOV0vO1xuXG4gICAgY29uc3QgaWxsZWdhbENoYXJNYXRjaCA9IHRhYmxlTmFtZS5tYXRjaChpbGxlZ2FsQ2hhcnNldFJlZ0V4KTtcbiAgICBpZiAoaWxsZWdhbENoYXJNYXRjaCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdUYWJsZSBuYW1lIG11c3Qgb25seSBjb250YWluIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLCBudW1iZXJzLCBhbmQgdW5kZXJzY29yZXMgKF8pJyArXG4gICAgICAgICAgYCAob2Zmc2V0OiAke2lsbGVnYWxDaGFyTWF0Y2guaW5kZXh9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEVkZ2UgY2hhcmFjdGVyIHZhbGlkYXRpb25cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QodGFibGVOYW1lLmNoYXJBdCgwKSkpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnVGFibGUgbmFtZSBtdXN0IHN0YXJ0IHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAwKScsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QodGFibGVOYW1lLmNoYXJBdCh0YWJsZU5hbWUubGVuZ3RoIC0gMSkpKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYFRhYmxlIG5hbWUgbXVzdCBlbmQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6ICR7XG4gICAgICAgICAgdGFibGVOYW1lLmxlbmd0aCAtIDFcbiAgICAgICAgfSlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YEludmFsaWRUYWJsZU5hbWVgLFxuICAgICAgICBgSW52YWxpZCBTMyB0YWJsZSBuYW1lICh2YWx1ZTogJHt0YWJsZU5hbWV9KSR7RU9MfSR7ZXJyb3JzLmpvaW4oRU9MKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoYXJuKSBvZiB0aGlzIHRhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuZGVybHlpbmcgQ2ZuVGFibGUgTDEgcmVzb3VyY2VcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNvdXJjZTogQ2ZuVGFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWcgbWFuYWdlciBmb3IgdGhpcyByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZGtUYWdNYW5hZ2VyOiBUYWdNYW5hZ2VyO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIHRhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2UgY29udGFpbmluZyB0aGlzIHRhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlOiBJTmFtZXNwYWNlO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgcG9saWN5IGZvciB0aGlzIHRhYmxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlUG9saWN5PzogQ2ZuVGFibGVQb2xpY3k7XG5cbiAgcHJvdGVjdGVkIGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUYWJsZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7fSk7XG5cbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIGlmIChwcm9wcy53aXRob3V0TWV0YWRhdGEgJiYgcHJvcHMuaWNlYmVyZ01ldGFkYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGxpdGBNdXR1YWxseUV4Y2x1c2l2ZVByb3BzYCxcbiAgICAgICAgXCJUYWJsZVByb3BzOiAnd2l0aG91dE1ldGFkYXRhJyBhbmQgJ2ljZWJlcmdNZXRhZGF0YScgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gU3BlY2lmeSBvbmx5IG9uZS5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgVGFibGUudmFsaWRhdGVUYWJsZU5hbWUocHJvcHMudGFibGVOYW1lKTtcblxuICAgIHRoaXMuX3Jlc291cmNlID0gbmV3IENmblRhYmxlKHRoaXMsIGlkLCB7XG4gICAgICB0YWJsZU5hbWU6IHByb3BzLnRhYmxlTmFtZSxcbiAgICAgIG9wZW5UYWJsZUZvcm1hdDogcHJvcHMub3BlblRhYmxlRm9ybWF0LFxuICAgICAgdGFibGVCdWNrZXRBcm46IHByb3BzLm5hbWVzcGFjZS50YWJsZUJ1Y2tldC50YWJsZUJ1Y2tldEFybixcbiAgICAgIG5hbWVzcGFjZTogcHJvcHMubmFtZXNwYWNlLm5hbWVzcGFjZU5hbWUsXG4gICAgICBjb21wYWN0aW9uOiBwcm9wcy5jb21wYWN0aW9uLFxuICAgICAgaWNlYmVyZ01ldGFkYXRhOiB0aGlzLmJ1aWxkSWNlYmVyZ01ldGFkYXRhKHByb3BzLmljZWJlcmdNZXRhZGF0YSksXG4gICAgICBzbmFwc2hvdE1hbmFnZW1lbnQ6IHByb3BzLnNuYXBzaG90TWFuYWdlbWVudCxcbiAgICAgIHdpdGhvdXRNZXRhZGF0YTogcHJvcHMud2l0aG91dE1ldGFkYXRhID8gJ1llcycgOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVzcGFjZSA9IHByb3BzLm5hbWVzcGFjZTtcbiAgICB0aGlzLnRhYmxlTmFtZSA9IHByb3BzLnRhYmxlTmFtZTtcbiAgICB0aGlzLnRhYmxlQXJuID0gdGhpcy5fcmVzb3VyY2UuYXR0clRhYmxlQXJuO1xuICAgIHRoaXMuY2RrVGFnTWFuYWdlciA9IHRoaXMuX3Jlc291cmNlLmNka1RhZ01hbmFnZXI7XG4gICAgdGhpcy5fcmVzb3VyY2UuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLnJlbW92YWxQb2xpY3kpO1xuICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMubmFtZXNwYWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIENsb3VkRm9ybWF0aW9uIEljZWJlcmcgbWV0YWRhdGEgcHJvcGVydHkgZnJvbSB0aGUgQ0RLIG1ldGFkYXRhIG1vZGVsLlxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEljZWJlcmdNZXRhZGF0YShtZXRhZGF0YT86IEljZWJlcmdNZXRhZGF0YVByb3BlcnR5KTogQ2ZuVGFibGUuSWNlYmVyZ01ldGFkYXRhUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGljZWJlcmdTY2hlbWE6IHRoaXMuYnVpbGRJY2ViZXJnU2NoZW1hKG1ldGFkYXRhLmljZWJlcmdTY2hlbWEpLFxuICAgICAgaWNlYmVyZ1BhcnRpdGlvblNwZWM6IG1ldGFkYXRhLmljZWJlcmdQYXJ0aXRpb25TcGVjXG4gICAgICAgID8gdGhpcy5idWlsZEljZWJlcmdQYXJ0aXRpb25TcGVjKG1ldGFkYXRhLmljZWJlcmdQYXJ0aXRpb25TcGVjKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGljZWJlcmdTb3J0T3JkZXI6IG1ldGFkYXRhLmljZWJlcmdTb3J0T3JkZXJcbiAgICAgICAgPyB0aGlzLmJ1aWxkSWNlYmVyZ1NvcnRPcmRlcihtZXRhZGF0YS5pY2ViZXJnU29ydE9yZGVyKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHRhYmxlUHJvcGVydGllczogbWV0YWRhdGEudGFibGVQcm9wZXJ0aWVzXG4gICAgICAgID8gdGhpcy5idWlsZFRhYmxlUHJvcGVydGllcyhtZXRhZGF0YS50YWJsZVByb3BlcnRpZXMpXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIHRoZSBDbG91ZEZvcm1hdGlvbiBJY2ViZXJnIHNjaGVtYSBwcm9wZXJ0eS5cbiAgICovXG4gIHByaXZhdGUgYnVpbGRJY2ViZXJnU2NoZW1hKHNjaGVtYTogSWNlYmVyZ1NjaGVtYVByb3BlcnR5KTogQ2ZuVGFibGUuSWNlYmVyZ1NjaGVtYVByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hRmllbGRMaXN0OiBzY2hlbWEuc2NoZW1hRmllbGRMaXN0Lm1hcChmaWVsZCA9PiAoe1xuICAgICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgICB0eXBlOiBmaWVsZC50eXBlLFxuICAgICAgICAuLi4oZmllbGQucmVxdWlyZWQgIT09IHVuZGVmaW5lZCAmJiB7IHJlcXVpcmVkOiBmaWVsZC5yZXF1aXJlZCB9KSxcbiAgICAgICAgLi4uKGZpZWxkLmlkICE9PSB1bmRlZmluZWQgJiYgeyBpZDogZmllbGQuaWQgfSksXG4gICAgICB9KSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIENsb3VkRm9ybWF0aW9uIEljZWJlcmcgcGFydGl0aW9uIHNwZWNpZmljYXRpb24gcHJvcGVydHkuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkSWNlYmVyZ1BhcnRpdGlvblNwZWMoc3BlYzogSWNlYmVyZ1BhcnRpdGlvblNwZWMpOiBDZm5UYWJsZS5JY2ViZXJnUGFydGl0aW9uU3BlY1Byb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uKHNwZWMuc3BlY0lkICE9PSB1bmRlZmluZWQgJiYgeyBzcGVjSWQ6IHNwZWMuc3BlY0lkIH0pLFxuICAgICAgZmllbGRzOiBzcGVjLmZpZWxkcy5tYXAoZmllbGQgPT4gKHtcbiAgICAgICAgc291cmNlSWQ6IGZpZWxkLnNvdXJjZUlkLFxuICAgICAgICB0cmFuc2Zvcm06IGZpZWxkLnRyYW5zZm9ybS52YWx1ZSxcbiAgICAgICAgbmFtZTogZmllbGQubmFtZSxcbiAgICAgICAgLi4uKGZpZWxkLmZpZWxkSWQgIT09IHVuZGVmaW5lZCAmJiB7IGZpZWxkSWQ6IGZpZWxkLmZpZWxkSWQgfSksXG4gICAgICB9KSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIENsb3VkRm9ybWF0aW9uIEljZWJlcmcgc29ydCBvcmRlciBwcm9wZXJ0eS5cbiAgICovXG4gIHByaXZhdGUgYnVpbGRJY2ViZXJnU29ydE9yZGVyKHNvcnRPcmRlcjogSWNlYmVyZ1NvcnRPcmRlcik6IENmblRhYmxlLkljZWJlcmdTb3J0T3JkZXJQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLihzb3J0T3JkZXIub3JkZXJJZCAhPT0gdW5kZWZpbmVkICYmIHsgb3JkZXJJZDogc29ydE9yZGVyLm9yZGVySWQgfSksXG4gICAgICBmaWVsZHM6IHNvcnRPcmRlci5maWVsZHMubWFwKGZpZWxkID0+ICh7XG4gICAgICAgIHNvdXJjZUlkOiBmaWVsZC5zb3VyY2VJZCxcbiAgICAgICAgdHJhbnNmb3JtOiBmaWVsZC50cmFuc2Zvcm0udmFsdWUsXG4gICAgICAgIGRpcmVjdGlvbjogZmllbGQuZGlyZWN0aW9uLFxuICAgICAgICBudWxsT3JkZXI6IGZpZWxkLm51bGxPcmRlcixcbiAgICAgIH0pKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgQ2xvdWRGb3JtYXRpb24gdGFibGUgcHJvcGVydGllcyBtYXAgZnJvbSBrZXktdmFsdWUgZW50cmllcy5cbiAgICovXG4gIHByaXZhdGUgYnVpbGRUYWJsZVByb3BlcnRpZXModGFibGVQcm9wZXJ0aWVzOiBUYWJsZVByb3BlcnR5RW50cnlbXSk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGNvbnN0IGtleXMgPSB0YWJsZVByb3BlcnRpZXMubWFwKGVudHJ5ID0+IGVudHJ5LmtleSk7XG4gICAgY29uc3QgZHVwbGljYXRlS2V5cyA9IGtleXMuZmlsdGVyKChrZXksIGluZGV4KSA9PiBrZXlzLmluZGV4T2Yoa2V5KSAhPT0gaW5kZXgpO1xuICAgIGlmIChkdXBsaWNhdGVLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YER1cGxpY2F0ZVRhYmxlUHJvcGVydHlLZXlgLFxuICAgICAgICBgRHVwbGljYXRlIHRhYmxlIHByb3BlcnR5IGtleXMgYXJlIG5vdCBhbGxvd2VkOiAke1suLi5uZXcgU2V0KGR1cGxpY2F0ZUtleXMpXS5qb2luKCcsICcpfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0YWJsZVByb3BlcnRpZXMucmVkdWNlKFxuICAgICAgKGFjYywgZW50cnkpID0+ICh7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW2VudHJ5LmtleV06IGVudHJ5LnZhbHVlLFxuICAgICAgfSksXG4gICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/util.js
CHANGED
|
@@ -1,4 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.S3_TABLES_SERVICE = void 0;
|
|
4
37
|
exports.parseTableBucketArn = parseTableBucketArn;
|
|
@@ -6,7 +39,7 @@ exports.parseTableBucketName = parseTableBucketName;
|
|
|
6
39
|
exports.parseTableBucketRegion = parseTableBucketRegion;
|
|
7
40
|
exports.parseTableBucketAccount = parseTableBucketAccount;
|
|
8
41
|
exports.validateTableBucketAttributes = validateTableBucketAttributes;
|
|
9
|
-
const cdk = require("aws-cdk-lib/core");
|
|
42
|
+
const cdk = __importStar(require("aws-cdk-lib/core"));
|
|
10
43
|
const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
|
|
11
44
|
exports.S3_TABLES_SERVICE = 's3tables';
|
|
12
45
|
function parseTableBucketArn(construct, props) {
|
|
@@ -82,4 +115,4 @@ function validateTableBucketAttributes(construct, props) {
|
|
|
82
115
|
tableBucketArn: parseTableBucketArn(construct, props),
|
|
83
116
|
};
|
|
84
117
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0Esa0RBa0JDO0FBRUQsb0RBZUM7QUFFRCx3REFnQkM7QUFFRCwwREFnQkM7QUFNRCxzRUFPQztBQTNGRCxzREFBd0M7QUFDeEMsNEVBQTREO0FBSS9DLFFBQUEsaUJBQWlCLEdBQUcsVUFBVSxDQUFDO0FBRTVDLFNBQWdCLG1CQUFtQixDQUFDLFNBQXFCLEVBQUUsS0FBNEI7SUFDckYsbURBQW1EO0lBQ25ELElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUIsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixPQUFPLEVBQUUseUJBQWlCO1lBQzFCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFlBQVksRUFBRSxLQUFLLENBQUMsZUFBZTtZQUNuQyxTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUI7U0FDN0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSwwQkFBMEIsRUFBRSxrRUFBa0UsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUM5SSxDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsU0FBcUIsRUFBRSxLQUE0QjtJQUN0Riw4Q0FBOEM7SUFDOUMsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQy9CLENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsWUFBWSxDQUFDO1FBQ2pJLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixPQUFPLGlCQUFpQixDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBQSxzQkFBRyxFQUFBLHlCQUF5QixFQUFFLG9FQUFvRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQy9JLENBQUM7QUFFRCxTQUFnQixzQkFBc0IsQ0FBQyxTQUFxQixFQUFFLEtBQTRCO0lBQ3hGLGdEQUFnRDtJQUNoRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqQixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDdEIsQ0FBQztJQUVELDhDQUE4QztJQUM5QyxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3ZILElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLFNBQXFCLEVBQUUsS0FBNEI7SUFDekYsaURBQWlEO0lBQ2pELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBRUQsK0NBQStDO0lBQy9DLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDekgsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixPQUFPLGNBQWMsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELDZDQUE2QztJQUM3QyxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQUMsU0FBcUIsRUFBRSxLQUE0QjtJQUMvRixPQUFPO1FBQ0wsZUFBZSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDdkQsT0FBTyxFQUFFLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDbEQsTUFBTSxFQUFFLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFDaEQsY0FBYyxFQUFFLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7S0FDdEQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB0eXBlIHsgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMgfSBmcm9tICcuL3RhYmxlLWJ1Y2tldCc7XG5cbmV4cG9ydCBjb25zdCBTM19UQUJMRVNfU0VSVklDRSA9ICdzM3RhYmxlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRhYmxlQnVja2V0QXJuKGNvbnN0cnVjdDogSUNvbnN0cnVjdCwgcHJvcHM6IFRhYmxlQnVja2V0QXR0cmlidXRlcyk6IHN0cmluZyB7XG4gIC8vIGlmIHdlIGhhdmUgYW4gZXhwbGljaXQgdGFibGUgYnVja2V0IEFSTiwgdXNlIGl0LlxuICBpZiAocHJvcHMudGFibGVCdWNrZXRBcm4pIHtcbiAgICByZXR1cm4gcHJvcHMudGFibGVCdWNrZXRBcm47XG4gIH1cblxuICBpZiAocHJvcHMudGFibGVCdWNrZXROYW1lKSB7XG4gICAgcmV0dXJuIGNkay5TdGFjay5vZihjb25zdHJ1Y3QpLmZvcm1hdEFybih7XG4gICAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICAgIGFjY291bnQ6IHByb3BzLmFjY291bnQsXG4gICAgICBzZXJ2aWNlOiBTM19UQUJMRVNfU0VSVklDRSxcbiAgICAgIHJlc291cmNlOiAnYnVja2V0JyxcbiAgICAgIHJlc291cmNlTmFtZTogcHJvcHMudGFibGVCdWNrZXROYW1lLFxuICAgICAgYXJuRm9ybWF0OiBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gIH1cblxuICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgQ2Fubm90RGV0ZXJtaW5lQnVja2V0QXJuYCwgJ0Nhbm5vdCBkZXRlcm1pbmUgYnVja2V0IEFSTi4gQXQgbGVhc3QgYHRhYmxlQnVja2V0QXJuYCBpcyBuZWVkZWQnLCBjb25zdHJ1Y3QpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUYWJsZUJ1Y2tldE5hbWUoY29uc3RydWN0OiBJQ29uc3RydWN0LCBwcm9wczogVGFibGVCdWNrZXRBdHRyaWJ1dGVzKTogc3RyaW5nIHtcbiAgLy8gaWYgd2UgaGF2ZSBhbiBleHBsaWNpdCBidWNrZXQgbmFtZSwgdXNlIGl0LlxuICBpZiAocHJvcHMudGFibGVCdWNrZXROYW1lKSB7XG4gICAgcmV0dXJuIHByb3BzLnRhYmxlQnVja2V0TmFtZTtcbiAgfVxuXG4gIC8vIGV4dHJhY3QgdGFibGUgYnVja2V0IG5hbWUgZnJvbSBidWNrZXQgYXJuXG4gIGlmIChwcm9wcy50YWJsZUJ1Y2tldEFybikge1xuICAgIGNvbnN0IGJ1Y2tldE5hbWVGcm9tQXJuID0gY2RrLlN0YWNrLm9mKGNvbnN0cnVjdCkuc3BsaXRBcm4ocHJvcHMudGFibGVCdWNrZXRBcm4sIGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lO1xuICAgIGlmIChidWNrZXROYW1lRnJvbUFybikge1xuICAgICAgcmV0dXJuIGJ1Y2tldE5hbWVGcm9tQXJuO1xuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBUYWJsZUJ1Y2tldE5hbWVSZXF1aXJlZGAsICd0YWJsZUJ1Y2tldE5hbWUgaXMgcmVxdWlyZWQgYW5kIGNvdWxkIG5vdCBiZSBpbmZlcnJlZCBmcm9tIGNvbnRleHQnLCBjb25zdHJ1Y3QpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUYWJsZUJ1Y2tldFJlZ2lvbihjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QsIHByb3BzOiBUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAvLyBpZiB3ZSBoYXZlIGFuIGV4cGxpY2l0IGJ1Y2tldCByZWdpb24sIHVzZSBpdC5cbiAgaWYgKHByb3BzLnJlZ2lvbikge1xuICAgIHJldHVybiBwcm9wcy5yZWdpb247XG4gIH1cblxuICAvLyBleHRyYWN0IHRhYmxlIGJ1Y2tldCByZWdpb24gZnJvbSBidWNrZXQgYXJuXG4gIGlmIChwcm9wcy50YWJsZUJ1Y2tldEFybikge1xuICAgIGNvbnN0IHJlZ2lvbkZyb21Bcm4gPSBjZGsuU3RhY2sub2YoY29uc3RydWN0KS5zcGxpdEFybihwcm9wcy50YWJsZUJ1Y2tldEFybiwgY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKS5yZWdpb247XG4gICAgaWYgKHJlZ2lvbkZyb21Bcm4pIHtcbiAgICAgIHJldHVybiByZWdpb25Gcm9tQXJuO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlZ2lvbiBpcyBvcHRpb25hbCwgY2FuIGJlIGluZmVycmVkIGxhdGVyXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRhYmxlQnVja2V0QWNjb3VudChjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QsIHByb3BzOiBUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAvLyBpZiB3ZSBoYXZlIGFuIGV4cGxpY2l0IGJ1Y2tldCBhY2NvdW50LCB1c2UgaXQuXG4gIGlmIChwcm9wcy5hY2NvdW50KSB7XG4gICAgcmV0dXJuIHByb3BzLmFjY291bnQ7XG4gIH1cblxuICAvLyBleHRyYWN0IHRhYmxlIGJ1Y2tldCBhY2NvdW50IGZyb20gYnVja2V0IGFyblxuICBpZiAocHJvcHMudGFibGVCdWNrZXRBcm4pIHtcbiAgICBjb25zdCBhY2NvdW50RnJvbUFybiA9IGNkay5TdGFjay5vZihjb25zdHJ1Y3QpLnNwbGl0QXJuKHByb3BzLnRhYmxlQnVja2V0QXJuLCBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLmFjY291bnQ7XG4gICAgaWYgKGFjY291bnRGcm9tQXJuKSB7XG4gICAgICByZXR1cm4gYWNjb3VudEZyb21Bcm47XG4gICAgfVxuICB9XG5cbiAgLy8gQWNjb3VudCBpcyBvcHRpb25hbCwgY2FuIGJlIGluZmVycmVkIGxhdGVyXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQHJldHVybnMgcG9wdWxhdGVkIGF0dHJpYnV0ZXMgZnJvbSBnaXZlbiBzY29wZSBhbmQgYXR0cmlidXRlc1xuICogQHRocm93cyBWYWxpZGF0aW9uRXJyb3IgaWYgYW55IG9mIHRoZSByZXF1aXJlZCBhdHRyaWJ1cmVzIGFyZSBtaXNzaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRhYmxlQnVja2V0QXR0cmlidXRlcyhjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QsIHByb3BzOiBUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMpIHtcbiAgcmV0dXJuIHtcbiAgICB0YWJsZUJ1Y2tldE5hbWU6IHBhcnNlVGFibGVCdWNrZXROYW1lKGNvbnN0cnVjdCwgcHJvcHMpLFxuICAgIGFjY291bnQ6IHBhcnNlVGFibGVCdWNrZXRBY2NvdW50KGNvbnN0cnVjdCwgcHJvcHMpLFxuICAgIHJlZ2lvbjogcGFyc2VUYWJsZUJ1Y2tldFJlZ2lvbihjb25zdHJ1Y3QsIHByb3BzKSxcbiAgICB0YWJsZUJ1Y2tldEFybjogcGFyc2VUYWJsZUJ1Y2tldEFybihjb25zdHJ1Y3QsIHByb3BzKSxcbiAgfTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/aws-s3tables-alpha",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.258.0-alpha.0",
|
|
5
5
|
"description": "CDK Constructs for S3 Tables",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -77,17 +77,17 @@
|
|
|
77
77
|
},
|
|
78
78
|
"license": "Apache-2.0",
|
|
79
79
|
"devDependencies": {
|
|
80
|
-
"aws-cdk-lib": "2.
|
|
81
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
82
|
-
"@aws-cdk/pkglint": "2.
|
|
80
|
+
"aws-cdk-lib": "2.258.0",
|
|
81
|
+
"@aws-cdk/cdk-build-tools": "2.258.0-alpha.0",
|
|
82
|
+
"@aws-cdk/pkglint": "2.258.0-alpha.0",
|
|
83
83
|
"@types/jest": "^29.5.14",
|
|
84
84
|
"constructs": "^10.5.0",
|
|
85
85
|
"jest": "^29.7.0",
|
|
86
|
-
"@aws-cdk/integ-tests-alpha": "2.
|
|
86
|
+
"@aws-cdk/integ-tests-alpha": "2.258.0-alpha.0"
|
|
87
87
|
},
|
|
88
88
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
89
89
|
"peerDependencies": {
|
|
90
|
-
"aws-cdk-lib": "^2.
|
|
90
|
+
"aws-cdk-lib": "^2.258.0",
|
|
91
91
|
"constructs": "^10.5.0"
|
|
92
92
|
},
|
|
93
93
|
"separate-module": false,
|