cdktn 0.26.0-pre.20 → 0.26.0-pre.21
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 +1200 -1116
- package/eslint.config.mjs +18 -7
- package/jest.config.js +0 -1
- package/lib/_tokens.d.ts +7 -0
- package/lib/_tokens.js +8 -2
- package/lib/annotations.js +1 -1
- package/lib/app.js +8 -4
- package/lib/aspect.js +1 -1
- package/lib/asset-hash.js +1 -1
- package/lib/asset-staging.js +1 -1
- package/lib/assets.js +4 -4
- package/lib/backends/azurerm-backend.d.ts +6 -0
- package/lib/backends/azurerm-backend.js +9 -5
- package/lib/backends/cloud-backend.js +4 -4
- package/lib/backends/consul-backend.d.ts +6 -0
- package/lib/backends/consul-backend.js +9 -5
- package/lib/backends/cos-backend.d.ts +6 -0
- package/lib/backends/cos-backend.js +9 -5
- package/lib/backends/gcs-backend.d.ts +6 -0
- package/lib/backends/gcs-backend.js +9 -5
- package/lib/backends/http-backend.d.ts +6 -0
- package/lib/backends/http-backend.js +9 -5
- package/lib/backends/local-backend.d.ts +6 -0
- package/lib/backends/local-backend.js +9 -5
- package/lib/backends/oss-backend.d.ts +6 -0
- package/lib/backends/oss-backend.js +9 -5
- package/lib/backends/pg-backend.d.ts +6 -0
- package/lib/backends/pg-backend.js +9 -5
- package/lib/backends/remote-backend.d.ts +12 -0
- package/lib/backends/remote-backend.js +17 -9
- package/lib/backends/s3-backend.d.ts +6 -0
- package/lib/backends/s3-backend.js +9 -5
- package/lib/backends/swift-backend.js +2 -2
- package/lib/complex-computed-list.d.ts +85 -0
- package/lib/complex-computed-list.js +112 -54
- package/lib/functions/helpers.d.ts +72 -0
- package/lib/functions/helpers.js +73 -14
- package/lib/functions/provider-function.js +1 -1
- package/lib/functions/terraform-functions.generated.d.ts +3 -0
- package/lib/functions/terraform-functions.generated.js +5 -3
- package/lib/hcl/render.js +30 -6
- package/lib/ignore-strategy.js +1 -1
- package/lib/importable-resource.js +1 -1
- package/lib/manifest.d.ts +4 -0
- package/lib/manifest.js +6 -3
- package/lib/private/unique.js +11 -3
- package/lib/resource.js +1 -1
- package/lib/runtime.d.ts +6 -0
- package/lib/runtime.js +12 -3
- package/lib/synthesize/required-version.d.ts +32 -0
- package/lib/synthesize/required-version.js +205 -0
- package/lib/synthesize/synthesizer.d.ts +13 -0
- package/lib/synthesize/synthesizer.js +42 -8
- package/lib/terraform-asset.d.ts +4 -0
- package/lib/terraform-asset.js +6 -3
- package/lib/terraform-backend.d.ts +3 -0
- package/lib/terraform-backend.js +5 -3
- package/lib/terraform-conditions.js +1 -2
- package/lib/terraform-count.js +1 -1
- package/lib/terraform-data-resource.js +1 -1
- package/lib/terraform-data-source.d.ts +4 -0
- package/lib/terraform-data-source.js +8 -6
- package/lib/terraform-dependable.js +1 -1
- package/lib/terraform-dynamic-block.d.ts +4 -0
- package/lib/terraform-dynamic-block.js +5 -2
- package/lib/terraform-element.d.ts +4 -0
- package/lib/terraform-element.js +6 -3
- package/lib/terraform-ephemeral-resource.d.ts +4 -0
- package/lib/terraform-ephemeral-resource.js +8 -6
- package/lib/terraform-functions.d.ts +4 -0
- package/lib/terraform-functions.js +6 -3
- package/lib/terraform-hcl-module.d.ts +4 -0
- package/lib/terraform-hcl-module.js +6 -3
- package/lib/terraform-iterator.d.ts +19 -0
- package/lib/terraform-iterator.js +25 -11
- package/lib/terraform-local.d.ts +4 -0
- package/lib/terraform-local.js +6 -3
- package/lib/terraform-module.js +1 -1
- package/lib/terraform-operators.js +1 -1
- package/lib/terraform-output.d.ts +4 -0
- package/lib/terraform-output.js +6 -3
- package/lib/terraform-provider.d.ts +4 -0
- package/lib/terraform-provider.js +6 -3
- package/lib/terraform-provisioner.js +1 -1
- package/lib/terraform-remote-state.d.ts +3 -0
- package/lib/terraform-remote-state.js +5 -3
- package/lib/terraform-resource-targets.js +1 -1
- package/lib/terraform-resource.d.ts +5 -1
- package/lib/terraform-resource.js +16 -9
- package/lib/terraform-stack.d.ts +4 -0
- package/lib/terraform-stack.js +28 -9
- package/lib/terraform-variable.d.ts +7 -0
- package/lib/terraform-variable.js +16 -7
- package/lib/testing/adapters/jest.d.ts +3 -0
- package/lib/testing/adapters/jest.js +10 -1
- package/lib/testing/index.js +14 -4
- package/lib/testing/matchers.js +61 -19
- package/lib/tfExpression.d.ts +48 -0
- package/lib/tfExpression.js +53 -15
- package/lib/tokens/lazy.d.ts +4 -0
- package/lib/tokens/lazy.js +21 -8
- package/lib/tokens/private/dependency.js +2 -6
- package/lib/tokens/private/resolve.js +3 -3
- package/lib/tokens/private/stack-trace.d.ts +1 -1
- package/lib/tokens/private/stack-trace.js +1 -2
- package/lib/tokens/resolvable.js +2 -2
- package/lib/tokens/string-fragments.js +4 -4
- package/lib/tokens/token.js +2 -2
- package/lib/upgrade-id-aspect.js +1 -1
- package/lib/util.d.ts +0 -1
- package/lib/util.js +4 -4
- package/lib/validations/target-versions.d.ts +12 -0
- package/lib/validations/target-versions.js +40 -1
- package/package.json +112 -109
|
@@ -6,10 +6,12 @@ const terraform_backend_1 = require("../terraform-backend");
|
|
|
6
6
|
const terraform_remote_state_1 = require("../terraform-remote-state");
|
|
7
7
|
const util_1 = require("../util");
|
|
8
8
|
const validations_1 = require("../validations");
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Configures the stack to store its Terraform state in the `s3` backend.
|
|
11
|
+
*/
|
|
10
12
|
class S3Backend extends terraform_backend_1.TerraformBackend {
|
|
11
13
|
props;
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.S3Backend", version: "0.26.0-pre.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.S3Backend", version: "0.26.0-pre.21" };
|
|
13
15
|
constructor(scope, props) {
|
|
14
16
|
super(scope, "backend", "s3");
|
|
15
17
|
this.props = props;
|
|
@@ -34,12 +36,14 @@ class S3Backend extends terraform_backend_1.TerraformBackend {
|
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
38
|
exports.S3Backend = S3Backend;
|
|
37
|
-
|
|
39
|
+
/**
|
|
40
|
+
* A `terraform_remote_state` data source that reads the outputs of a state stored in the `s3` backend.
|
|
41
|
+
*/
|
|
38
42
|
class DataTerraformRemoteStateS3 extends terraform_remote_state_1.TerraformRemoteState {
|
|
39
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateS3", version: "0.26.0-pre.
|
|
43
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateS3", version: "0.26.0-pre.21" };
|
|
40
44
|
constructor(scope, id, config) {
|
|
41
45
|
super(scope, id, "s3", config);
|
|
42
46
|
}
|
|
43
47
|
}
|
|
44
48
|
exports.DataTerraformRemoteStateS3 = DataTerraformRemoteStateS3;
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYWNrZW5kcy9zMy1iYWNrZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSw0REFBd0Q7QUFDeEQsc0VBR21DO0FBQ25DLGtDQUEwQztBQUMxQyxnREFBOEQ7QUFFOUQsK0NBQStDO0FBQy9DLE1BQWEsU0FBVSxTQUFRLG9DQUFnQjtJQUcxQjs7SUFGbkIsWUFDRSxLQUFnQixFQUNDLEtBQXNCO1FBRXZDLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRmIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFJdkMsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQ3JCLElBQUksMENBQTRCLENBQUMsSUFBSSxFQUFFLHlCQUF5QixFQUFFO2dCQUNoRSxTQUFTLEVBQUUsVUFBVTtnQkFDckIsUUFBUSxFQUFFLFVBQVU7YUFDckIsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVTLG9CQUFvQjtRQUM1QixPQUFPLElBQUEsc0JBQWUsRUFBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVTLHVCQUF1QjtRQUMvQixPQUFPLElBQUEsc0JBQWUsRUFBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLHdCQUF3QixDQUM3QixLQUFnQixFQUNoQixJQUFZLEVBQ1osVUFBa0I7UUFFbEIsT0FBTyxJQUFJLDBCQUEwQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakQsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLFNBQVMsRUFBRSx3QkFBd0I7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFsQ0gsOEJBbUNDO0FBRUQsK0NBQStDO0FBQy9DLE1BQWEsMEJBQTJCLFNBQVEsNkNBQW9COztJQUNsRSxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixNQUF3QztRQUV4QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQzs7QUFQSCxnRUFRQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVGVycmFmb3JtQmFja2VuZCB9IGZyb20gXCIuLi90ZXJyYWZvcm0tYmFja2VuZFwiO1xuaW1wb3J0IHtcbiAgRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlQ29uZmlnLFxuICBUZXJyYWZvcm1SZW1vdGVTdGF0ZSxcbn0gZnJvbSBcIi4uL3RlcnJhZm9ybS1yZW1vdGUtc3RhdGVcIjtcbmltcG9ydCB7IGtleXNUb1NuYWtlQ2FzZSB9IGZyb20gXCIuLi91dGlsXCI7XG5pbXBvcnQgeyBWYWxpZGF0ZUZlYXR1cmVUYXJnZXRTdXBwb3J0IH0gZnJvbSBcIi4uL3ZhbGlkYXRpb25zXCI7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgY2xhc3MgUzNCYWNrZW5kIGV4dGVuZHMgVGVycmFmb3JtQmFja2VuZCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogUzNCYWNrZW5kQ29uZmlnLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgXCJiYWNrZW5kXCIsIFwiczNcIik7XG5cbiAgICBpZiAocHJvcHMudXNlTG9ja2ZpbGUpIHtcbiAgICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKFxuICAgICAgICBuZXcgVmFsaWRhdGVGZWF0dXJlVGFyZ2V0U3VwcG9ydCh0aGlzLCBcIlMzIG5hdGl2ZSBzdGF0ZSBsb2NraW5nXCIsIHtcbiAgICAgICAgICB0ZXJyYWZvcm06IFwiPj0xLjEwLjBcIixcbiAgICAgICAgICBvcGVudG9mdTogXCI+PTEuMTAuMFwiLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ga2V5c1RvU25ha2VDYXNlKHsgLi4udGhpcy5wcm9wcyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgcmV0dXJuIGtleXNUb1NuYWtlQ2FzZSh7IC4uLnRoaXMucHJvcHMgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVtb3RlU3RhdGVEYXRhU291cmNlKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIF9mcm9tU3RhY2s6IHN0cmluZyxcbiAgKTogVGVycmFmb3JtUmVtb3RlU3RhdGUge1xuICAgIHJldHVybiBuZXcgRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlUzMoc2NvcGUsIG5hbWUsIHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICB3b3Jrc3BhY2U6IFwiJHt0ZXJyYWZvcm0ud29ya3NwYWNlfVwiLFxuICAgIH0pO1xuICB9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5leHBvcnQgY2xhc3MgRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlUzMgZXh0ZW5kcyBUZXJyYWZvcm1SZW1vdGVTdGF0ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBjb25maWc6IERhdGFUZXJyYWZvcm1SZW1vdGVTdGF0ZVMzQ29uZmlnLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIFwiczNcIiwgY29uZmlnKTtcbiAgfVxufVxuXG4vKipcbiAqIFN0b3JlcyB0aGUgc3RhdGUgYXMgYSBnaXZlbiBrZXkgaW4gYSBnaXZlbiBidWNrZXQgb24gQW1hem9uIFMzLiBUaGlzIGJhY2tlbmRcbiAqIGFsc28gc3VwcG9ydHMgc3RhdGUgbG9ja2luZyBhbmQgY29uc2lzdGVuY3kgY2hlY2tpbmcgdmlhIER5bmFtbyBEQiwgd2hpY2hcbiAqIGNhbiBiZSBlbmFibGVkIGJ5IHNldHRpbmcgdGhlIGR5bmFtb2RiX3RhYmxlIGZpZWxkIHRvIGFuIGV4aXN0aW5nIER5bmFtb0RCXG4gKiB0YWJsZSBuYW1lLiBBIHNpbmdsZSBEeW5hbW9EQiB0YWJsZSBjYW4gYmUgdXNlZCB0byBsb2NrIG11bHRpcGxlIHJlbW90ZVxuICogc3RhdGUgZmlsZXMuIFRlcnJhZm9ybSBnZW5lcmF0ZXMga2V5IG5hbWVzIHRoYXQgaW5jbHVkZSB0aGUgdmFsdWVzIG9mIHRoZVxuICogYnVja2V0IGFuZCBrZXkgdmFyaWFibGVzLlxuICpcbiAqIFdhcm5pbmchIEl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHlvdSBlbmFibGUgQnVja2V0IFZlcnNpb25pbmcgb24gdGhlXG4gKiBTMyBidWNrZXQgdG8gYWxsb3cgZm9yIHN0YXRlIHJlY292ZXJ5IGluIHRoZSBjYXNlIG9mIGFjY2lkZW50YWwgZGVsZXRpb25zXG4gKiBhbmQgaHVtYW4gZXJyb3IuXG4gKlxuICogUmVhZCBtb3JlIGFib3V0IHRoaXMgYmFja2VuZCBpbiB0aGUgVGVycmFmb3JtIGRvY3M6XG4gKiBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9sYW5ndWFnZS9zZXR0aW5ncy9iYWNrZW5kcy9zM1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFMzQmFja2VuZENvbmZpZyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBTMyBCdWNrZXQuXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ6IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgTGlzdCBvZiBhbGxvd2VkIEFXUyBhY2NvdW50IElEcyB0byBwcmV2ZW50IHBvdGVudGlhbCBkZXN0cnVjdGlvbiBvZiBhIGxpdmUgZW52aXJvbm1lbnQuXG4gICAqIENvbmZsaWN0cyB3aXRoIGZvcmJpZGRlbl9hY2NvdW50X2lkcy5cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRBY2NvdW50SWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEZpbGUgY29udGFpbmluZyBjdXN0b20gcm9vdCBhbmQgaW50ZXJtZWRpYXRlIGNlcnRpZmljYXRlcy5cbiAgICogQ2FuIGFsc28gYmUgc2V0IHVzaW5nIHRoZSBBV1NfQ0FfQlVORExFIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKiBTZXR0aW5nIGNhX2J1bmRsZSBpbiB0aGUgc2hhcmVkIGNvbmZpZyBmaWxlIGlzIG5vdCBzdXBwb3J0ZWQuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21DYUJ1bmRsZT86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsKSBDdXN0b20gZW5kcG9pbnQgVVJMIGZvciB0aGUgRUMyIEluc3RhbmNlIE1ldGFkYXRhIFNlcnZpY2UgKElNRFMpIEFQSS5cbiAgICogQ2FuIGFsc28gYmUgc2V0IHdpdGggdGhlIEFXU19FQzJfTUVUQURBVEFfU0VSVklDRV9FTkRQT0lOVCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGVjMk1ldGFkYXRhU2VydmljZUVuZHBvaW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBNb2RlIHRvIHVzZSBpbiBjb21tdW5pY2F0aW5nIHdpdGggdGhlIG1ldGFkYXRhIHNlcnZpY2UuXG4gICAqIFZhbGlkIHZhbHVlcyBhcmUgSVB2NCBhbmQgSVB2Ni5cbiAgICogQ2FuIGFsc28gYmUgc2V0IHdpdGggdGhlIEFXU19FQzJfTUVUQURBVEFfU0VSVklDRV9FTkRQT0lOVF9NT0RFIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZWMyTWV0YWRhdGFTZXJ2aWNlRW5kcG9pbnRNb2RlPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBMaXN0IG9mIGZvcmJpZGRlbiBBV1MgYWNjb3VudCBJRHMgdG8gcHJldmVudCBwb3RlbnRpYWwgZGVzdHJ1Y3Rpb24gb2YgYSBsaXZlIGVudmlyb25tZW50LlxuICAgKiBDb25mbGljdHMgd2l0aCBhbGxvd2VkX2FjY291bnRfaWRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9yYmlkZGVuQWNjb3VudElkcz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBVUkwgb2YgYSBwcm94eSB0byB1c2UgZm9yIEhUVFAgcmVxdWVzdHMgd2hlbiBhY2Nlc3NpbmcgdGhlIEFXUyBBUEkuXG4gICAqIENhbiBhbHNvIGJlIHNldCB1c2luZyB0aGUgSFRUUF9QUk9YWSBvciBodHRwX3Byb3h5IGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IGh0dHBQcm94eT86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVVJMIG9mIGEgcHJveHkgdG8gdXNlIGZvciBIVFRQUyByZXF1ZXN0cyB3aGVuIGFjY2Vzc2luZyB0aGUgQVdTIEFQSS5cbiAgICogQ2FuIGFsc28gYmUgc2V0IHVzaW5nIHRoZSBIVFRQU19QUk9YWSBvciBodHRwc19wcm94eSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSBodHRwc1Byb3h5Pzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwpIFdoZXRoZXIgdG8gZXhwbGljaXRseSBhbGxvdyB0aGUgYmFja2VuZCB0byBwZXJmb3JtIFwiaW5zZWN1cmVcIiBTU0wgcmVxdWVzdHMuXG4gICAqIElmIG9taXR0ZWQsIHRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zZWN1cmU/OiBib29sZWFuO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBob3N0cyB0aGF0IHNob3VsZCBub3QgdXNlIEhUVFAgb3IgSFRUUFMgcHJveGllcy5cbiAgICogRWFjaCB2YWx1ZSBjYW4gYmUgb25lIG9mOlxuICAgKiAtIEEgZG9tYWluIG5hbWVcbiAgICogLSBBbiBJUCBhZGRyZXNzXG4gICAqIC0gQSBDSURSIGFkZHJlc3NcbiAgICogLSBBbiBhc3RlcmlzayAoKiksIHRvIGluZGljYXRlIHRoYXQgbm8gcHJveHlpbmcgc2hvdWxkIGJlIHBlcmZvcm1lZCBEb21haW4gbmFtZSBhbmQgSVAgYWRkcmVzcyB2YWx1ZXMgY2FuIGFsc28gaW5jbHVkZSBhIHBvcnQgbnVtYmVyLlxuICAgKiBDYW4gYWxzbyBiZSBzZXQgdXNpbmcgdGhlIE5PX1BST1hZIG9yIG5vX3Byb3h5IGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IG5vUHJveHk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFNwZWNpZmllcyBob3cgcmV0cmllcyBhcmUgYXR0ZW1wdGVkLlxuICAgKiBWYWxpZCB2YWx1ZXMgYXJlIHN0YW5kYXJkIGFuZCBhZGFwdGl2ZS5cbiAgICogQ2FuIGFsc28gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgQVdTX1JFVFJZX01PREUgZW52aXJvbm1lbnQgdmFyaWFibGUgb3IgdGhlIHNoYXJlZCBjb25maWcgZmlsZSBwYXJhbWV0ZXIgcmV0cnlfbW9kZS5cbiAgICovXG4gIHJlYWRvbmx5IHJldHJ5TW9kZT86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgTGlzdCBvZiBwYXRocyB0byBBV1Mgc2hhcmVkIGNvbmZpZ3VyYXRpb24gZmlsZXMuXG4gICAqIERlZmF1bHRzIHRvIH4vLmF3cy9jb25maWcuXG4gICAqL1xuICByZWFkb25seSBzaGFyZWRDb25maWdGaWxlcz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBMaXN0IG9mIHBhdGhzIHRvIEFXUyBzaGFyZWQgY3JlZGVudGlhbHMgZmlsZXMuXG4gICAqIERlZmF1bHRzIHRvIH4vLmF3cy9jcmVkZW50aWFscy5cbiAgICovXG4gIHJlYWRvbmx5IHNoYXJlZENyZWRlbnRpYWxzRmlsZXM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIHN0YXRlIGZpbGUgaW5zaWRlIHRoZSBTMyBCdWNrZXQuXG4gICAqIFdoZW4gdXNpbmcgYSBub24tZGVmYXVsdCB3b3Jrc3BhY2UsIHRoZSBzdGF0ZSBwYXRoIHdpbGwgYmUgL3dvcmtzcGFjZV9rZXlfcHJlZml4L3dvcmtzcGFjZV9uYW1lL2tleVxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBV1MgUmVnaW9uIG9mIHRoZSBTMyBCdWNrZXQgYW5kIER5bmFtb0RCIFRhYmxlIChpZiB1c2VkKS4gVGhpcyBjYW4gYWxzb1xuICAgKiBiZSBzb3VyY2VkIGZyb20gdGhlIEFXU19ERUZBVUxUX1JFR0lPTiBhbmQgQVdTX1JFR0lPTiBlbnZpcm9ubWVudFxuICAgKiB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEN1c3RvbSBlbmRwb2ludCBmb3IgdGhlIEFXUyBTMyBBUEkuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBV1NfUzNfRU5EUE9JTlQgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBlbmRwb2ludHMuczMgaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEVuYWJsZSBzZXJ2ZXIgc2lkZSBlbmNyeXB0aW9uIG9mIHRoZSBzdGF0ZSBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIENhbm5lZCBBQ0wgdG8gYmUgYXBwbGllZCB0byB0aGUgc3RhdGUgZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGFjbD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQVdTIGFjY2VzcyBrZXkuIElmIGNvbmZpZ3VyZWQsIG11c3QgYWxzbyBjb25maWd1cmUgc2VjcmV0X2tleS5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb21cbiAgICogdGhlIEFXU19BQ0NFU1NfS0VZX0lEIGVudmlyb25tZW50IHZhcmlhYmxlLFxuICAgKiBBV1Mgc2hhcmVkIGNyZWRlbnRpYWxzIGZpbGUgKGUuZy4gfi8uYXdzL2NyZWRlbnRpYWxzKSxcbiAgICogb3IgQVdTIHNoYXJlZCBjb25maWd1cmF0aW9uIGZpbGUgKGUuZy4gfi8uYXdzL2NvbmZpZykuXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3NLZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEFXUyBzZWNyZXQgYWNjZXNzIGtleS4gSWYgY29uZmlndXJlZCwgbXVzdCBhbHNvIGNvbmZpZ3VyZSBhY2Nlc3Nfa2V5LlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbVxuICAgKiB0aGUgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZIGVudmlyb25tZW50IHZhcmlhYmxlLFxuICAgKiBBV1Mgc2hhcmVkIGNyZWRlbnRpYWxzIGZpbGUgKGUuZy4gfi8uYXdzL2NyZWRlbnRpYWxzKSxcbiAgICogb3IgQVdTIHNoYXJlZCBjb25maWd1cmF0aW9uIGZpbGUgKGUuZy4gfi8uYXdzL2NvbmZpZylcbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldEtleT86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgYSBLZXkgTWFuYWdlbWVudCBTZXJ2aWNlIChLTVMpIEtleVxuICAgKiB0byB1c2UgZm9yIGVuY3J5cHRpbmcgdGhlIHN0YXRlLiBOb3RlIHRoYXQgaWYgdGhpcyB2YWx1ZSBpcyBzcGVjaWZpZWQsXG4gICAqIFRlcnJhZm9ybSB3aWxsIG5lZWQga21zOkVuY3J5cHQsIGttczpEZWNyeXB0IGFuZCBrbXM6R2VuZXJhdGVEYXRhS2V5IHBlcm1pc3Npb25zIG9uIHRoaXMgS01TIGtleS5cbiAgICovXG4gIHJlYWRvbmx5IGttc0tleUlkPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBXaGV0aGVyIHRvIHVzZSBhIGxvY2tmaWxlIGZvciBsb2NraW5nIHRoZSBzdGF0ZSBmaWxlLiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICogU3RhdGUgbG9ja2luZyBpcyBhbiBvcHQtaW4gZmVhdHVyZSBvZiB0aGUgUzMgYmFja2VuZC5cbiAgICogTG9ja2luZyBjYW4gYmUgZW5hYmxlZCB2aWEgUzMgb3IgRHluYW1vREIgKHNlZSBkeW5hbW9kYlRhYmxlKS4gSG93ZXZlciwgRHluYW1vREItYmFzZWQgbG9ja2luZ1xuICAgKiAgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtaW5vciB2ZXJzaW9uLiBUbyBzdXBwb3J0IG1pZ3JhdGlvbiBmcm9tIG9sZGVyXG4gICAqICAgdmVyc2lvbnMgb2YgVGVycmFmb3JtIHRoYXQgb25seSBzdXBwb3J0IER5bmFtb0RCLWJhc2VkIGxvY2tpbmcsIHRoZSBTMyAodXNlTG9ja2ZpbGUpIGFuZCBEeW5hbW9EQlxuICAgKiAgIChkeW5hbW9kYlRhYmxlKSBhcmd1bWVudHMgY2FuIGJlIGNvbmZpZ3VyZWQgc2ltdWx0YW5lb3VzbHkuXG4gICAqL1xuICByZWFkb25seSB1c2VMb2NrZmlsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIE5hbWUgb2YgRHluYW1vREIgVGFibGUgdG8gdXNlIGZvciBzdGF0ZSBsb2NraW5nIGFuZCBjb25zaXN0ZW5jeS5cbiAgICogVGhlIHRhYmxlIG11c3QgaGF2ZSBhIHBhcnRpdGlvbiBrZXkgbmFtZWQgTG9ja0lEIHdpdGggdHlwZSBvZiBTdHJpbmcuXG4gICAqIElmIG5vdCBjb25maWd1cmVkLCBzdGF0ZSBsb2NraW5nIHdpbGwgYmUgZGlzYWJsZWQuXG4gICAqIEBkZXByZWNhdGVkIFVzZSB1c2VMb2NrZmlsZSBpbnN0ZWFkLCB3aGljaCB1c2VzIFMzIGZvciBsb2NraW5nXG4gICAqL1xuICByZWFkb25seSBkeW5hbW9kYlRhYmxlPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBOYW1lIG9mIEFXUyBwcm9maWxlIGluIEFXUyBzaGFyZWQgY3JlZGVudGlhbHMgZmlsZSAoZS5nLiB+Ly5hd3MvY3JlZGVudGlhbHMpXG4gICAqIG9yIEFXUyBzaGFyZWQgY29uZmlndXJhdGlvbiBmaWxlIChlLmcuIH4vLmF3cy9jb25maWcpIHRvIHVzZSBmb3IgY3JlZGVudGlhbHNcbiAgICogYW5kL29yIGNvbmZpZ3VyYXRpb24uIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBV1NfUFJPRklMRSBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHByb2ZpbGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFBhdGggdG8gdGhlIEFXUyBzaGFyZWQgY3JlZGVudGlhbHMgZmlsZS4gRGVmYXVsdHMgdG8gfi8uYXdzL2NyZWRlbnRpYWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmVkQ3JlZGVudGlhbHNGaWxlPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBNdWx0aS1GYWN0b3IgQXV0aGVudGljYXRpb24gKE1GQSkgdG9rZW4uXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBV1NfU0VTU0lPTl9UT0tFTiBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHRva2VuPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgSUFNIFJvbGUgdG8gYXNzdW1lLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYXNzdW1lUm9sZS5yb2xlQXJuIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBJQU0gUG9saWN5IEpTT04gZGVzY3JpYmluZyBmdXJ0aGVyIHJlc3RyaWN0aW5nIHBlcm1pc3Npb25zIGZvciB0aGUgSUFNIFJvbGUgYmVpbmcgYXNzdW1lZC5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGFzc3VtZVJvbGUucG9saWN5IGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlUG9saWN5Pzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBTZXQgb2YgQW1hem9uIFJlc291cmNlIE5hbWVzIChBUk5zKSBvZiBJQU0gUG9saWNpZXMgZGVzY3JpYmluZyBmdXJ0aGVyIHJlc3RyaWN0aW5nIHBlcm1pc3Npb25zIGZvciB0aGUgSUFNIFJvbGUgYmVpbmcgYXNzdW1lZC5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGFzc3VtZVJvbGUucG9saWN5QXJucyBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZVBvbGljeUFybnM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgTWFwIG9mIGFzc3VtZSByb2xlIHNlc3Npb24gdGFncy5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGFzc3VtZVJvbGUudGFncyBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZVRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBTZXQgb2YgYXNzdW1lIHJvbGUgc2Vzc2lvbiB0YWcga2V5cyB0byBwYXNzIHRvIGFueSBzdWJzZXF1ZW50IHNlc3Npb25zLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYXNzdW1lUm9sZS50cmFuc2l0aXZlVGFnS2V5cyBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZVRyYW5zaXRpdmVUYWdLZXlzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEV4dGVybmFsIGlkZW50aWZpZXIgdG8gdXNlIHdoZW4gYXNzdW1pbmcgdGhlIHJvbGUuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBhc3N1bWVfcm9sZS5leHRlcm5hbF9pZCBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZXJuYWxJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgU2Vzc2lvbiBuYW1lIHRvIHVzZSB3aGVuIGFzc3VtaW5nIHRoZSByb2xlLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYXNzdW1lUm9sZS5zZXNzaW9uTmFtZSBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2Vzc2lvbk5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFByZWZpeCBhcHBsaWVkIHRvIHRoZSBzdGF0ZSBwYXRoIGluc2lkZSB0aGUgYnVja2V0LlxuICAgKiBUaGlzIGlzIG9ubHkgcmVsZXZhbnQgd2hlbiB1c2luZyBhIG5vbi1kZWZhdWx0IHdvcmtzcGFjZS4gRGVmYXVsdHMgdG8gZW52OlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya3NwYWNlS2V5UHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBDdXN0b20gZW5kcG9pbnQgZm9yIHRoZSBBV1MgRHluYW1vREIgQVBJLlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgQVdTX0RZTkFNT0RCX0VORFBPSU5UIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgZW5kcG9pbnRzLmR5bmFtb2RiIGluc3RlYWRcbiAgICovXG4gIHJlYWRvbmx5IGR5bmFtb2RiRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEN1c3RvbSBlbmRwb2ludCBmb3IgdGhlIEFXUyBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnQgKElBTSkgQVBJLlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgQVdTX0lBTV9FTkRQT0lOVCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGVuZHBvaW50cy5pYW0gaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgaWFtRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEN1c3RvbSBlbmRwb2ludCBmb3IgdGhlIEFXUyBTZWN1cml0eSBUb2tlbiBTZXJ2aWNlIChTVFMpIEFQSS5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFXU19TVFNfRU5EUE9JTlQgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBlbmRwb2ludHMuc3RzIGluc3RlYWRcbiAgICovXG4gIHJlYWRvbmx5IHN0c0VuZHBvaW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBBV1MgcmVnaW9uIGZvciBTVFMuXG4gICAqIElmIHVuc2V0LCBBV1Mgd2lsbCB1c2UgdGhlIHNhbWUgcmVnaW9uIGZvciBTVFMgYXMgb3RoZXIgbm9uLVNUUyBvcGVyYXRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RzUmVnaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBFbmFibGUgcGF0aC1zdHlsZSBTMyBVUkxzXG4gICAqIChodHRwczovLzxIT1NUPi88QlVDS0VUPiBpbnN0ZWFkIG9mIGh0dHBzOi8vPEJVQ0tFVD4uPEhPU1Q+KS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIHVzZVBhdGhTdHlsZSBpbnN0ZWFkXG4gICAqL1xuICByZWFkb25seSBmb3JjZVBhdGhTdHlsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEVuYWJsZSBwYXRoLXN0eWxlIFMzIFVSTHNcbiAgICogKGh0dHBzOi8vPEhPU1Q+LzxCVUNLRVQ+IGluc3RlYWQgb2YgaHR0cHM6Ly88QlVDS0VUPi48SE9TVD4pLlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlUGF0aFN0eWxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgU2tpcCBjcmVkZW50aWFscyB2YWxpZGF0aW9uIHZpYSB0aGUgU1RTIEFQSS5cbiAgICovXG4gIHJlYWRvbmx5IHNraXBDcmVkZW50aWFsc1ZhbGlkYXRpb24/OiBib29sZWFuO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBTa2lwIHZhbGlkYXRpb24gb2YgcHJvdmlkZWQgcmVnaW9uIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBza2lwUmVnaW9uVmFsaWRhdGlvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFdoZXRoZXIgdG8gc2tpcCByZXF1ZXN0aW5nIHRoZSBhY2NvdW50IElELlxuICAgKiBVc2VmdWwgZm9yIEFXUyBBUEkgaW1wbGVtZW50YXRpb25zIHRoYXQgZG8gbm90IGhhdmUgdGhlIElBTSwgU1RTIEFQSSwgb3IgbWV0YWRhdGEgQVBJLlxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcFJlcXVlc3RpbmdBY2NvdW50SWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBTa2lwIHVzYWdlIG9mIEVDMiBNZXRhZGF0YSBBUEkuXG4gICAqL1xuICByZWFkb25seSBza2lwTWV0YWRhdGFBcGlDaGVjaz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIERvIG5vdCBpbmNsdWRlIGNoZWNrc3VtIHdoZW4gdXBsb2FkaW5nIFMzIE9iamVjdHMuXG4gICAqIFVzZWZ1bCBmb3Igc29tZSBTMy1Db21wYXRpYmxlIEFQSXMuXG4gICAqL1xuICByZWFkb25seSBza2lwUzNDaGVja3N1bT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBrZXkgdG8gdXNlIGZvciBlbmNyeXB0aW5nIHN0YXRlIHdpdGggU2VydmVyLVNpZGUgRW5jcnlwdGlvbiB3aXRoIEN1c3RvbWVyLVByb3ZpZGVkIEtleXMgKFNTRS1DKS5cbiAgICogVGhpcyBpcyB0aGUgYmFzZTY0LWVuY29kZWQgdmFsdWUgb2YgdGhlIGtleSwgd2hpY2ggbXVzdCBkZWNvZGUgdG8gMjU2IGJpdHMuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBV1NfU1NFX0NVU1RPTUVSX0tFWSBlbnZpcm9ubWVudCB2YXJpYWJsZSxcbiAgICogd2hpY2ggaXMgcmVjb21tZW5kZWQgZHVlIHRvIHRoZSBzZW5zaXRpdml0eSBvZiB0aGUgdmFsdWUuXG4gICAqIFNldHRpbmcgaXQgaW5zaWRlIGEgdGVycmFmb3JtIGZpbGUgd2lsbCBjYXVzZSBpdCB0byBiZSBwZXJzaXN0ZWQgdG8gZGlzayBpbiB0ZXJyYWZvcm0udGZzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IHNzZUN1c3RvbWVyS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgYW4gQVdTIEFQSSByZXF1ZXN0IGlzIHJldHJpZWQgb24gcmV0cnlhYmxlIGZhaWx1cmUuXG4gICAqIERlZmF1bHRzIHRvIDUuXG4gICAqL1xuICByZWFkb25seSBtYXhSZXRyaWVzPzogbnVtYmVyO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBVc2UgdGhlIGxlZ2FjeSBhdXRoZW50aWNhdGlvbiB3b3JrZmxvdywgcHJlZmVycmluZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgb3ZlciBiYWNrZW5kIGNvbmZpZ3VyYXRpb24uXG4gICAqIERlZmF1bHRzIHRvIHRydWUuXG4gICAqIFRoaXMgYmVoYXZpb3IgZG9lcyBub3QgYWxpZ24gd2l0aCB0aGUgYXV0aGVudGljYXRpb24gZmxvdyBvZiB0aGUgQVdTIENMSSBvciBTREsncywgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlTGVnYWN5V29ya2Zsb3c/OiBib29sZWFuO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgZW5kcG9pbnQgY29uZmlndXJhdGlvbiBibG9jay5cbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50cz86IFMzQmFja2VuZEVuZHBvaW50Q29uZmlnO1xuICAvKipcbiAgICogQXNzdW1pbmcgYW4gSUFNIFJvbGUgY2FuIGJlIGNvbmZpZ3VyZWQgaW4gdHdvIHdheXMuXG4gICAqIFRoZSBwcmVmZXJyZWQgd2F5IGlzIHRvIHVzZSB0aGUgYXJndW1lbnQgYXNzdW1lX3JvbGUsIHRoZSBvdGhlciwgd2hpY2ggaXMgZGVwcmVjYXRlZCwgaXMgd2l0aCBhcmd1bWVudHMgYXQgdGhlIHRvcCBsZXZlbC5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGU/OiBTM0JhY2tlbmRBc3N1bWVSb2xlQ29uZmlnO1xuICAvKipcbiAgICogQXNzdW1lIFJvbGUgV2l0aCBXZWIgSWRlbnRpdHkgQ29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eT86IFMzQmFja2VuZEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb25maWc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUzNCYWNrZW5kRW5kcG9pbnRDb25maWcge1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBDdXN0b20gZW5kcG9pbnQgVVJMIGZvciB0aGUgQVdTIER5bmFtb0RCIEFQSS5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIEFXU19FTkRQT0lOVF9VUkxfRFlOQU1PREIgb3IgdGhlIGRlcHJlY2F0ZWQgZW52aXJvbm1lbnQgdmFyaWFibGUgQVdTX0RZTkFNT0RCX0VORFBPSU5ULlxuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1vZGI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEN1c3RvbSBlbmRwb2ludCBVUkwgZm9yIHRoZSBBV1MgSUFNIEFQSS5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIEFXU19FTkRQT0lOVF9VUkxfSUFNIG9yIHRoZSBkZXByZWNhdGVkIGVudmlyb25tZW50IHZhcmlhYmxlIEFXU19JQU1fRU5EUE9JTlQuXG4gICAqL1xuICByZWFkb25seSBpYW0/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEN1c3RvbSBlbmRwb2ludCBVUkwgZm9yIHRoZSBBV1MgUzMgQVBJLlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgQVdTX0VORFBPSU5UX1VSTF9TMyBvciB0aGUgZGVwcmVjYXRlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSBBV1NfUzNfRU5EUE9JTlQuXG4gICAqL1xuICByZWFkb25seSBzMz86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQ3VzdG9tIGVuZHBvaW50IFVSTCBmb3IgdGhlIEFXUyBJQU0gSWRlbnRpdHkgQ2VudGVyIChmb3JtZXJseSBrbm93biBhcyBBV1MgU1NPKSBBUEkuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBBV1NfRU5EUE9JTlRfVVJMX1NTTy5cbiAgICovXG4gIHJlYWRvbmx5IHNzbz86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQ3VzdG9tIGVuZHBvaW50IFVSTCBmb3IgdGhlIEFXUyBTVFMgQVBJLlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgQVdTX0VORFBPSU5UX1VSTF9TVFMgb3IgdGhlIGRlcHJlY2F0ZWQgZW52aXJvbm1lbnQgdmFyaWFibGUgQVdTX1NUU19FTkRQT0lOVC5cbiAgICovXG4gIHJlYWRvbmx5IHN0cz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTM0JhY2tlbmRBc3N1bWVSb2xlQ29uZmlnIHtcbiAgLyoqXG4gICAqIChSZXF1aXJlZCkgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIElBTSBSb2xlIHRvIGFzc3VtZS5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIGR1cmF0aW9uIGluZGl2aWR1YWwgY3JlZGVudGlhbHMgd2lsbCBiZSB2YWxpZC5cbiAgICogQ3JlZGVudGlhbHMgYXJlIGF1dG9tYXRpY2FsbHkgcmVuZXdlZCB1cCB0byB0aGUgbWF4aW11bSBkZWZpbmVkIGJ5IHRoZSBBV1MgYWNjb3VudC5cbiAgICogU3BlY2lmaWVkIHVzaW5nIHRoZSBmb3JtYXQgPGhvdXJzPmg8bWludXRlcz5tPHNlY29uZHM+cyB3aXRoIGFueSB1bml0IGJlaW5nIG9wdGlvbmFsLlxuICAgKiBGb3IgZXhhbXBsZSwgYW4gaG91ciBhbmQgYSBoYWxmIGNhbiBiZSBzcGVjaWZpZWQgYXMgMWgzMG0gb3IgOTBtLlxuICAgKiBNdXN0IGJlIGJldHdlZW4gMTUgbWludXRlcyAoMTVtKSBhbmQgMTIgaG91cnMgKDEyaCkuXG4gICAqL1xuICByZWFkb25seSBkdXJhdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgRXh0ZXJuYWwgaWRlbnRpZmllciB0byB1c2Ugd2hlbiBhc3N1bWluZyB0aGUgcm9sZS5cbiAgICovXG4gIHJlYWRvbmx5IGV4dGVybmFsSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIElBTSBQb2xpY3kgSlNPTiBkZXNjcmliaW5nIGZ1cnRoZXIgcmVzdHJpY3RpbmcgcGVybWlzc2lvbnMgZm9yIHRoZSBJQU0gUm9sZSBiZWluZyBhc3N1bWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5Pzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBTZXQgb2YgQW1hem9uIFJlc291cmNlIE5hbWVzIChBUk5zKSBvZiBJQU0gUG9saWNpZXMgZGVzY3JpYmluZyBmdXJ0aGVyIHJlc3RyaWN0aW5nIHBlcm1pc3Npb25zIGZvciB0aGUgSUFNIFJvbGUgYmVpbmcgYXNzdW1lZC5cbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeUFybnM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgU2Vzc2lvbiBuYW1lIHRvIHVzZSB3aGVuIGFzc3VtaW5nIHRoZSByb2xlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2Vzc2lvbk5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFNvdXJjZSBpZGVudGl0eSBzcGVjaWZpZWQgYnkgdGhlIHByaW5jaXBhbCBhc3N1bWluZyB0aGVcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUlkZW50aXR5Pzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBNYXAgb2YgYXNzdW1lIHJvbGUgc2Vzc2lvbiB0YWdzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFNldCBvZiBhc3N1bWUgcm9sZSBzZXNzaW9uIHRhZyBrZXlzIHRvIHBhc3MgdG8gYW55IHN1YnNlcXVlbnQgc2Vzc2lvbnMuXG4gICAqL1xuICByZWFkb25seSB0cmFuc2l0aXZlVGFnS2V5cz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFMzQmFja2VuZEFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHlDb25maWcge1xuICAvKipcbiAgICogKFJlcXVpcmVkKSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgSUFNIFJvbGUgdG8gYXNzdW1lLlxuICAgKiBDYW4gYWxzbyBiZSBzZXQgd2l0aCB0aGUgQVdTX1JPTEVfQVJOIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIGR1cmF0aW9uIGluZGl2aWR1YWwgY3JlZGVudGlhbHMgd2lsbCBiZSB2YWxpZC5cbiAgICogQ3JlZGVudGlhbHMgYXJlIGF1dG9tYXRpY2FsbHkgcmVuZXdlZCB1cCB0byB0aGUgbWF4aW11bSBkZWZpbmVkIGJ5IHRoZSBBV1MgYWNjb3VudC5cbiAgICogU3BlY2lmaWVkIHVzaW5nIHRoZSBmb3JtYXQgPGhvdXJzPmg8bWludXRlcz5tPHNlY29uZHM+cyB3aXRoIGFueSB1bml0IGJlaW5nIG9wdGlvbmFsLlxuICAgKiBGb3IgZXhhbXBsZSwgYW4gaG91ciBhbmQgYSBoYWxmIGNhbiBiZSBzcGVjaWZpZWQgYXMgMWgzMG0gb3IgOTBtLlxuICAgKiBNdXN0IGJlIGJldHdlZW4gMTUgbWludXRlcyAoMTVtKSBhbmQgMTIgaG91cnMgKDEyaCkuXG4gICAqL1xuICByZWFkb25seSBkdXJhdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgSUFNIFBvbGljeSBKU09OIGRlc2NyaWJpbmcgZnVydGhlciByZXN0cmljdGluZyBwZXJtaXNzaW9ucyBmb3IgdGhlIElBTSBSb2xlIGJlaW5nIGFzc3VtZWQuXG4gICAqL1xuICByZWFkb25seSBwb2xpY3k/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFNldCBvZiBBbWF6b24gUmVzb3VyY2UgTmFtZXMgKEFSTnMpIG9mIElBTSBQb2xpY2llcyBkZXNjcmliaW5nIGZ1cnRoZXIgcmVzdHJpY3RpbmcgcGVybWlzc2lvbnMgZm9yIHRoZSBJQU0gUm9sZSBiZWluZyBhc3N1bWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5QXJucz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBTZXNzaW9uIG5hbWUgdG8gdXNlIHdoZW4gYXNzdW1pbmcgdGhlIHJvbGUuXG4gICAqIENhbiBhbHNvIGJlIHNldCB3aXRoIHRoZSBBV1NfUk9MRV9TRVNTSU9OX05BTUUgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSBzZXNzaW9uTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIHZhbHVlIG9mIGEgd2ViIGlkZW50aXR5IHRva2VuIGZyb20gYW4gT3BlbklEIENvbm5lY3QgKE9JREMpIG9yIE9BdXRoIHByb3ZpZGVyLlxuICAgKiBPbmUgb2Ygd2ViX2lkZW50aXR5X3Rva2VuIG9yIHdlYl9pZGVudGl0eV90b2tlbl9maWxlIGlzIHJlcXVpcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgd2ViSWRlbnRpdHlUb2tlbj86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgRmlsZSBjb250YWluaW5nIGEgd2ViIGlkZW50aXR5IHRva2VuIGZyb20gYW4gT3BlbklEIENvbm5lY3QgKE9JREMpIG9yIE9BdXRoIHByb3ZpZGVyLlxuICAgKiBPbmUgb2Ygd2ViX2lkZW50aXR5X3Rva2VuX2ZpbGUgb3Igd2ViX2lkZW50aXR5X3Rva2VuIGlzIHJlcXVpcmVkLlxuICAgKiBDYW4gYWxzbyBiZSBzZXQgd2l0aCB0aGUgQVdTX1dFQl9JREVOVElUWV9UT0tFTl9GSUxFIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgd2ViSWRlbnRpdHlUb2tlbkZpbGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlUzNDb25maWdcbiAgZXh0ZW5kcyBEYXRhVGVycmFmb3JtUmVtb3RlU3RhdGVDb25maWcsIFMzQmFja2VuZENvbmZpZyB7fVxuIl19
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYmFja2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYWNrZW5kcy9zMy1iYWNrZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSw0REFBd0Q7QUFDeEQsc0VBR21DO0FBQ25DLGtDQUEwQztBQUMxQyxnREFBOEQ7QUFFOUQ7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxvQ0FBZ0I7SUFHMUI7O0lBRm5CLFlBQ0UsS0FBZ0IsRUFDQyxLQUFzQjtRQUV2QyxLQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUZiLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBSXZDLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUNyQixJQUFJLDBDQUE0QixDQUFDLElBQUksRUFBRSx5QkFBeUIsRUFBRTtnQkFDaEUsU0FBUyxFQUFFLFVBQVU7Z0JBQ3JCLFFBQVEsRUFBRSxVQUFVO2FBQ3JCLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFUyxvQkFBb0I7UUFDNUIsT0FBTyxJQUFBLHNCQUFlLEVBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFUyx1QkFBdUI7UUFDL0IsT0FBTyxJQUFBLHNCQUFlLEVBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSx3QkFBd0IsQ0FDN0IsS0FBZ0IsRUFDaEIsSUFBWSxFQUNaLFVBQWtCO1FBRWxCLE9BQU8sSUFBSSwwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pELEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixTQUFTLEVBQUUsd0JBQXdCO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBbENILDhCQW1DQztBQUVEOztHQUVHO0FBQ0gsTUFBYSwwQkFBMkIsU0FBUSw2Q0FBb0I7O0lBQ2xFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLE1BQXdDO1FBRXhDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDOztBQVBILGdFQVFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1CYWNrZW5kIH0gZnJvbSBcIi4uL3RlcnJhZm9ybS1iYWNrZW5kXCI7XG5pbXBvcnQge1xuICBEYXRhVGVycmFmb3JtUmVtb3RlU3RhdGVDb25maWcsXG4gIFRlcnJhZm9ybVJlbW90ZVN0YXRlLFxufSBmcm9tIFwiLi4vdGVycmFmb3JtLXJlbW90ZS1zdGF0ZVwiO1xuaW1wb3J0IHsga2V5c1RvU25ha2VDYXNlIH0gZnJvbSBcIi4uL3V0aWxcIjtcbmltcG9ydCB7IFZhbGlkYXRlRmVhdHVyZVRhcmdldFN1cHBvcnQgfSBmcm9tIFwiLi4vdmFsaWRhdGlvbnNcIjtcblxuLyoqXG4gKiBDb25maWd1cmVzIHRoZSBzdGFjayB0byBzdG9yZSBpdHMgVGVycmFmb3JtIHN0YXRlIGluIHRoZSBgczNgIGJhY2tlbmQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTM0JhY2tlbmQgZXh0ZW5kcyBUZXJyYWZvcm1CYWNrZW5kIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBTM0JhY2tlbmRDb25maWcsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBcImJhY2tlbmRcIiwgXCJzM1wiKTtcblxuICAgIGlmIChwcm9wcy51c2VMb2NrZmlsZSkge1xuICAgICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24oXG4gICAgICAgIG5ldyBWYWxpZGF0ZUZlYXR1cmVUYXJnZXRTdXBwb3J0KHRoaXMsIFwiUzMgbmF0aXZlIHN0YXRlIGxvY2tpbmdcIiwge1xuICAgICAgICAgIHRlcnJhZm9ybTogXCI+PTEuMTAuMFwiLFxuICAgICAgICAgIG9wZW50b2Z1OiBcIj49MS4xMC4wXCIsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiBrZXlzVG9TbmFrZUNhc2UoeyAuLi50aGlzLnByb3BzIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ga2V5c1RvU25ha2VDYXNlKHsgLi4udGhpcy5wcm9wcyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZW1vdGVTdGF0ZURhdGFTb3VyY2UoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgX2Zyb21TdGFjazogc3RyaW5nLFxuICApOiBUZXJyYWZvcm1SZW1vdGVTdGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRhVGVycmFmb3JtUmVtb3RlU3RhdGVTMyhzY29wZSwgbmFtZSwge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIHdvcmtzcGFjZTogXCIke3RlcnJhZm9ybS53b3Jrc3BhY2V9XCIsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGB0ZXJyYWZvcm1fcmVtb3RlX3N0YXRlYCBkYXRhIHNvdXJjZSB0aGF0IHJlYWRzIHRoZSBvdXRwdXRzIG9mIGEgc3RhdGUgc3RvcmVkIGluIHRoZSBgczNgIGJhY2tlbmQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhVGVycmFmb3JtUmVtb3RlU3RhdGVTMyBleHRlbmRzIFRlcnJhZm9ybVJlbW90ZVN0YXRlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGNvbmZpZzogRGF0YVRlcnJhZm9ybVJlbW90ZVN0YXRlUzNDb25maWcsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgXCJzM1wiLCBjb25maWcpO1xuICB9XG59XG5cbi8qKlxuICogU3RvcmVzIHRoZSBzdGF0ZSBhcyBhIGdpdmVuIGtleSBpbiBhIGdpdmVuIGJ1Y2tldCBvbiBBbWF6b24gUzMuIFRoaXMgYmFja2VuZFxuICogYWxzbyBzdXBwb3J0cyBzdGF0ZSBsb2NraW5nIGFuZCBjb25zaXN0ZW5jeSBjaGVja2luZyB2aWEgRHluYW1vIERCLCB3aGljaFxuICogY2FuIGJlIGVuYWJsZWQgYnkgc2V0dGluZyB0aGUgZHluYW1vZGJfdGFibGUgZmllbGQgdG8gYW4gZXhpc3RpbmcgRHluYW1vREJcbiAqIHRhYmxlIG5hbWUuIEEgc2luZ2xlIER5bmFtb0RCIHRhYmxlIGNhbiBiZSB1c2VkIHRvIGxvY2sgbXVsdGlwbGUgcmVtb3RlXG4gKiBzdGF0ZSBmaWxlcy4gVGVycmFmb3JtIGdlbmVyYXRlcyBrZXkgbmFtZXMgdGhhdCBpbmNsdWRlIHRoZSB2YWx1ZXMgb2YgdGhlXG4gKiBidWNrZXQgYW5kIGtleSB2YXJpYWJsZXMuXG4gKlxuICogV2FybmluZyEgSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgeW91IGVuYWJsZSBCdWNrZXQgVmVyc2lvbmluZyBvbiB0aGVcbiAqIFMzIGJ1Y2tldCB0byBhbGxvdyBmb3Igc3RhdGUgcmVjb3ZlcnkgaW4gdGhlIGNhc2Ugb2YgYWNjaWRlbnRhbCBkZWxldGlvbnNcbiAqIGFuZCBodW1hbiBlcnJvci5cbiAqXG4gKiBSZWFkIG1vcmUgYWJvdXQgdGhpcyBiYWNrZW5kIGluIHRoZSBUZXJyYWZvcm0gZG9jczpcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLmhhc2hpY29ycC5jb20vdGVycmFmb3JtL2xhbmd1YWdlL3NldHRpbmdzL2JhY2tlbmRzL3MzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNCYWNrZW5kQ29uZmlnIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIFMzIEJ1Y2tldC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldDogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBMaXN0IG9mIGFsbG93ZWQgQVdTIGFjY291bnQgSURzIHRvIHByZXZlbnQgcG90ZW50aWFsIGRlc3RydWN0aW9uIG9mIGEgbGl2ZSBlbnZpcm9ubWVudC5cbiAgICogQ29uZmxpY3RzIHdpdGggZm9yYmlkZGVuX2FjY291bnRfaWRzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZEFjY291bnRJZHM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgRmlsZSBjb250YWluaW5nIGN1c3RvbSByb290IGFuZCBpbnRlcm1lZGlhdGUgY2VydGlmaWNhdGVzLlxuICAgKiBDYW4gYWxzbyBiZSBzZXQgdXNpbmcgdGhlIEFXU19DQV9CVU5ETEUgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqIFNldHRpbmcgY2FfYnVuZGxlIGluIHRoZSBzaGFyZWQgY29uZmlnIGZpbGUgaXMgbm90IHN1cHBvcnRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbUNhQnVuZGxlPzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwpIEN1c3RvbSBlbmRwb2ludCBVUkwgZm9yIHRoZSBFQzIgSW5zdGFuY2UgTWV0YWRhdGEgU2VydmljZSAoSU1EUykgQVBJLlxuICAgKiBDYW4gYWxzbyBiZSBzZXQgd2l0aCB0aGUgQVdTX0VDMl9NRVRBREFUQV9TRVJWSUNFX0VORFBPSU5UIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZWMyTWV0YWRhdGFTZXJ2aWNlRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIE1vZGUgdG8gdXNlIGluIGNvbW11bmljYXRpbmcgd2l0aCB0aGUgbWV0YWRhdGEgc2VydmljZS5cbiAgICogVmFsaWQgdmFsdWVzIGFyZSBJUHY0IGFuZCBJUHY2LlxuICAgKiBDYW4gYWxzbyBiZSBzZXQgd2l0aCB0aGUgQVdTX0VDMl9NRVRBREFUQV9TRVJWSUNFX0VORFBPSU5UX01PREUgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSBlYzJNZXRhZGF0YVNlcnZpY2VFbmRwb2ludE1vZGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIExpc3Qgb2YgZm9yYmlkZGVuIEFXUyBhY2NvdW50IElEcyB0byBwcmV2ZW50IHBvdGVudGlhbCBkZXN0cnVjdGlvbiBvZiBhIGxpdmUgZW52aXJvbm1lbnQuXG4gICAqIENvbmZsaWN0cyB3aXRoIGFsbG93ZWRfYWNjb3VudF9pZHMuXG4gICAqL1xuICByZWFkb25seSBmb3JiaWRkZW5BY2NvdW50SWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFVSTCBvZiBhIHByb3h5IHRvIHVzZSBmb3IgSFRUUCByZXF1ZXN0cyB3aGVuIGFjY2Vzc2luZyB0aGUgQVdTIEFQSS5cbiAgICogQ2FuIGFsc28gYmUgc2V0IHVzaW5nIHRoZSBIVFRQX1BST1hZIG9yIGh0dHBfcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgaHR0cFByb3h5Pzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBVUkwgb2YgYSBwcm94eSB0byB1c2UgZm9yIEhUVFBTIHJlcXVlc3RzIHdoZW4gYWNjZXNzaW5nIHRoZSBBV1MgQVBJLlxuICAgKiBDYW4gYWxzbyBiZSBzZXQgdXNpbmcgdGhlIEhUVFBTX1BST1hZIG9yIGh0dHBzX3Byb3h5IGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IGh0dHBzUHJveHk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25hbCkgV2hldGhlciB0byBleHBsaWNpdGx5IGFsbG93IHRoZSBiYWNrZW5kIHRvIHBlcmZvcm0gXCJpbnNlY3VyZVwiIFNTTCByZXF1ZXN0cy5cbiAgICogSWYgb21pdHRlZCwgdGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuXG4gICAqL1xuICByZWFkb25seSBpbnNlY3VyZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIENvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGhvc3RzIHRoYXQgc2hvdWxkIG5vdCB1c2UgSFRUUCBvciBIVFRQUyBwcm94aWVzLlxuICAgKiBFYWNoIHZhbHVlIGNhbiBiZSBvbmUgb2Y6XG4gICAqIC0gQSBkb21haW4gbmFtZVxuICAgKiAtIEFuIElQIGFkZHJlc3NcbiAgICogLSBBIENJRFIgYWRkcmVzc1xuICAgKiAtIEFuIGFzdGVyaXNrICgqKSwgdG8gaW5kaWNhdGUgdGhhdCBubyBwcm94eWluZyBzaG91bGQgYmUgcGVyZm9ybWVkIERvbWFpbiBuYW1lIGFuZCBJUCBhZGRyZXNzIHZhbHVlcyBjYW4gYWxzbyBpbmNsdWRlIGEgcG9ydCBudW1iZXIuXG4gICAqIENhbiBhbHNvIGJlIHNldCB1c2luZyB0aGUgTk9fUFJPWFkgb3Igbm9fcHJveHkgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgbm9Qcm94eT86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgU3BlY2lmaWVzIGhvdyByZXRyaWVzIGFyZSBhdHRlbXB0ZWQuXG4gICAqIFZhbGlkIHZhbHVlcyBhcmUgc3RhbmRhcmQgYW5kIGFkYXB0aXZlLlxuICAgKiBDYW4gYWxzbyBiZSBjb25maWd1cmVkIHVzaW5nIHRoZSBBV1NfUkVUUllfTU9ERSBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciB0aGUgc2hhcmVkIGNvbmZpZyBmaWxlIHBhcmFtZXRlciByZXRyeV9tb2RlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmV0cnlNb2RlPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBMaXN0IG9mIHBhdGhzIHRvIEFXUyBzaGFyZWQgY29uZmlndXJhdGlvbiBmaWxlcy5cbiAgICogRGVmYXVsdHMgdG8gfi8uYXdzL2NvbmZpZy5cbiAgICovXG4gIHJlYWRvbmx5IHNoYXJlZENvbmZpZ0ZpbGVzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIExpc3Qgb2YgcGF0aHMgdG8gQVdTIHNoYXJlZCBjcmVkZW50aWFscyBmaWxlcy5cbiAgICogRGVmYXVsdHMgdG8gfi8uYXdzL2NyZWRlbnRpYWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmVkQ3JlZGVudGlhbHNGaWxlcz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogUGF0aCB0byB0aGUgc3RhdGUgZmlsZSBpbnNpZGUgdGhlIFMzIEJ1Y2tldC5cbiAgICogV2hlbiB1c2luZyBhIG5vbi1kZWZhdWx0IHdvcmtzcGFjZSwgdGhlIHN0YXRlIHBhdGggd2lsbCBiZSAvd29ya3NwYWNlX2tleV9wcmVmaXgvd29ya3NwYWNlX25hbWUva2V5XG4gICAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcbiAgLyoqXG4gICAqIEFXUyBSZWdpb24gb2YgdGhlIFMzIEJ1Y2tldCBhbmQgRHluYW1vREIgVGFibGUgKGlmIHVzZWQpLiBUaGlzIGNhbiBhbHNvXG4gICAqIGJlIHNvdXJjZWQgZnJvbSB0aGUgQVdTX0RFRkFVTFRfUkVHSU9OIGFuZCBBV1NfUkVHSU9OIGVudmlyb25tZW50XG4gICAqIHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQ3VzdG9tIGVuZHBvaW50IGZvciB0aGUgQVdTIFMzIEFQSS5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFXU19TM19FTkRQT0lOVCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGVuZHBvaW50cy5zMyBpbnN0ZWFkXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgRW5hYmxlIHNlcnZlciBzaWRlIGVuY3J5cHRpb24gb2YgdGhlIHN0YXRlIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQ2FubmVkIEFDTCB0byBiZSBhcHBsaWVkIHRvIHRoZSBzdGF0ZSBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNsPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBBV1MgYWNjZXNzIGtleS4gSWYgY29uZmlndXJlZCwgbXVzdCBhbHNvIGNvbmZpZ3VyZSBzZWNyZXRfa2V5LlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbVxuICAgKiB0aGUgQVdTX0FDQ0VTU19LRVlfSUQgZW52aXJvbm1lbnQgdmFyaWFibGUsXG4gICAqIEFXUyBzaGFyZWQgY3JlZGVudGlhbHMgZmlsZSAoZS5nLiB+Ly5hd3MvY3JlZGVudGlhbHMpLFxuICAgKiBvciBBV1Mgc2hhcmVkIGNvbmZpZ3VyYXRpb24gZmlsZSAoZS5nLiB+Ly5hd3MvY29uZmlnKS5cbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc0tleT86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQVdTIHNlY3JldCBhY2Nlc3Mga2V5LiBJZiBjb25maWd1cmVkLCBtdXN0IGFsc28gY29uZmlndXJlIGFjY2Vzc19rZXkuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tXG4gICAqIHRoZSBBV1NfU0VDUkVUX0FDQ0VTU19LRVkgZW52aXJvbm1lbnQgdmFyaWFibGUsXG4gICAqIEFXUyBzaGFyZWQgY3JlZGVudGlhbHMgZmlsZSAoZS5nLiB+Ly5hd3MvY3JlZGVudGlhbHMpLFxuICAgKiBvciBBV1Mgc2hhcmVkIGNvbmZpZ3VyYXRpb24gZmlsZSAoZS5nLiB+Ly5hd3MvY29uZmlnKVxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0S2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiBhIEtleSBNYW5hZ2VtZW50IFNlcnZpY2UgKEtNUykgS2V5XG4gICAqIHRvIHVzZSBmb3IgZW5jcnlwdGluZyB0aGUgc3RhdGUuIE5vdGUgdGhhdCBpZiB0aGlzIHZhbHVlIGlzIHNwZWNpZmllZCxcbiAgICogVGVycmFmb3JtIHdpbGwgbmVlZCBrbXM6RW5jcnlwdCwga21zOkRlY3J5cHQgYW5kIGttczpHZW5lcmF0ZURhdGFLZXkgcGVybWlzc2lvbnMgb24gdGhpcyBLTVMga2V5LlxuICAgKi9cbiAgcmVhZG9ubHkga21zS2V5SWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFdoZXRoZXIgdG8gdXNlIGEgbG9ja2ZpbGUgZm9yIGxvY2tpbmcgdGhlIHN0YXRlIGZpbGUuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKiBTdGF0ZSBsb2NraW5nIGlzIGFuIG9wdC1pbiBmZWF0dXJlIG9mIHRoZSBTMyBiYWNrZW5kLlxuICAgKiBMb2NraW5nIGNhbiBiZSBlbmFibGVkIHZpYSBTMyBvciBEeW5hbW9EQiAoc2VlIGR5bmFtb2RiVGFibGUpLiBIb3dldmVyLCBEeW5hbW9EQi1iYXNlZCBsb2NraW5nXG4gICAqICAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIG1pbm9yIHZlcnNpb24uIFRvIHN1cHBvcnQgbWlncmF0aW9uIGZyb20gb2xkZXJcbiAgICogICB2ZXJzaW9ucyBvZiBUZXJyYWZvcm0gdGhhdCBvbmx5IHN1cHBvcnQgRHluYW1vREItYmFzZWQgbG9ja2luZywgdGhlIFMzICh1c2VMb2NrZmlsZSkgYW5kIER5bmFtb0RCXG4gICAqICAgKGR5bmFtb2RiVGFibGUpIGFyZ3VtZW50cyBjYW4gYmUgY29uZmlndXJlZCBzaW11bHRhbmVvdXNseS5cbiAgICovXG4gIHJlYWRvbmx5IHVzZUxvY2tmaWxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgTmFtZSBvZiBEeW5hbW9EQiBUYWJsZSB0byB1c2UgZm9yIHN0YXRlIGxvY2tpbmcgYW5kIGNvbnNpc3RlbmN5LlxuICAgKiBUaGUgdGFibGUgbXVzdCBoYXZlIGEgcGFydGl0aW9uIGtleSBuYW1lZCBMb2NrSUQgd2l0aCB0eXBlIG9mIFN0cmluZy5cbiAgICogSWYgbm90IGNvbmZpZ3VyZWQsIHN0YXRlIGxvY2tpbmcgd2lsbCBiZSBkaXNhYmxlZC5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIHVzZUxvY2tmaWxlIGluc3RlYWQsIHdoaWNoIHVzZXMgUzMgZm9yIGxvY2tpbmdcbiAgICovXG4gIHJlYWRvbmx5IGR5bmFtb2RiVGFibGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIE5hbWUgb2YgQVdTIHByb2ZpbGUgaW4gQVdTIHNoYXJlZCBjcmVkZW50aWFscyBmaWxlIChlLmcuIH4vLmF3cy9jcmVkZW50aWFscylcbiAgICogb3IgQVdTIHNoYXJlZCBjb25maWd1cmF0aW9uIGZpbGUgKGUuZy4gfi8uYXdzL2NvbmZpZykgdG8gdXNlIGZvciBjcmVkZW50aWFsc1xuICAgKiBhbmQvb3IgY29uZmlndXJhdGlvbi4gVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFXU19QUk9GSUxFIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgUGF0aCB0byB0aGUgQVdTIHNoYXJlZCBjcmVkZW50aWFscyBmaWxlLiBEZWZhdWx0cyB0byB+Ly5hd3MvY3JlZGVudGlhbHMuXG4gICAqL1xuICByZWFkb25seSBzaGFyZWRDcmVkZW50aWFsc0ZpbGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIE11bHRpLUZhY3RvciBBdXRoZW50aWNhdGlvbiAoTUZBKSB0b2tlbi5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFXU19TRVNTSU9OX1RPS0VOIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBJQU0gUm9sZSB0byBhc3N1bWUuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBhc3N1bWVSb2xlLnJvbGVBcm4gaW5zdGVhZC5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIElBTSBQb2xpY3kgSlNPTiBkZXNjcmliaW5nIGZ1cnRoZXIgcmVzdHJpY3RpbmcgcGVybWlzc2lvbnMgZm9yIHRoZSBJQU0gUm9sZSBiZWluZyBhc3N1bWVkLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYXNzdW1lUm9sZS5wb2xpY3kgaW5zdGVhZC5cbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVQb2xpY3k/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFNldCBvZiBBbWF6b24gUmVzb3VyY2UgTmFtZXMgKEFSTnMpIG9mIElBTSBQb2xpY2llcyBkZXNjcmliaW5nIGZ1cnRoZXIgcmVzdHJpY3RpbmcgcGVybWlzc2lvbnMgZm9yIHRoZSBJQU0gUm9sZSBiZWluZyBhc3N1bWVkLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYXNzdW1lUm9sZS5wb2xpY3lBcm5zIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlUG9saWN5QXJucz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBNYXAgb2YgYXNzdW1lIHJvbGUgc2Vzc2lvbiB0YWdzLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYXNzdW1lUm9sZS50YWdzIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlVGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFNldCBvZiBhc3N1bWUgcm9sZSBzZXNzaW9uIHRhZyBrZXlzIHRvIHBhc3MgdG8gYW55IHN1YnNlcXVlbnQgc2Vzc2lvbnMuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBhc3N1bWVSb2xlLnRyYW5zaXRpdmVUYWdLZXlzIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlVHJhbnNpdGl2ZVRhZ0tleXM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgRXh0ZXJuYWwgaWRlbnRpZmllciB0byB1c2Ugd2hlbiBhc3N1bWluZyB0aGUgcm9sZS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGFzc3VtZV9yb2xlLmV4dGVybmFsX2lkIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBleHRlcm5hbElkPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBTZXNzaW9uIG5hbWUgdG8gdXNlIHdoZW4gYXNzdW1pbmcgdGhlIHJvbGUuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBhc3N1bWVSb2xlLnNlc3Npb25OYW1lIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSBzZXNzaW9uTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgUHJlZml4IGFwcGxpZWQgdG8gdGhlIHN0YXRlIHBhdGggaW5zaWRlIHRoZSBidWNrZXQuXG4gICAqIFRoaXMgaXMgb25seSByZWxldmFudCB3aGVuIHVzaW5nIGEgbm9uLWRlZmF1bHQgd29ya3NwYWNlLiBEZWZhdWx0cyB0byBlbnY6XG4gICAqL1xuICByZWFkb25seSB3b3Jrc3BhY2VLZXlQcmVmaXg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEN1c3RvbSBlbmRwb2ludCBmb3IgdGhlIEFXUyBEeW5hbW9EQiBBUEkuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBV1NfRFlOQU1PREJfRU5EUE9JTlQgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqIEBkZXByZWNhdGVkIFVzZSBlbmRwb2ludHMuZHluYW1vZGIgaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1vZGJFbmRwb2ludD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQ3VzdG9tIGVuZHBvaW50IGZvciB0aGUgQVdTIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSBBUEkuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBBV1NfSUFNX0VORFBPSU5UIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgZW5kcG9pbnRzLmlhbSBpbnN0ZWFkXG4gICAqL1xuICByZWFkb25seSBpYW1FbmRwb2ludD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQ3VzdG9tIGVuZHBvaW50IGZvciB0aGUgQVdTIFNlY3VyaXR5IFRva2VuIFNlcnZpY2UgKFNUUykgQVBJLlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgQVdTX1NUU19FTkRQT0lOVCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICogQGRlcHJlY2F0ZWQgVXNlIGVuZHBvaW50cy5zdHMgaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RzRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEFXUyByZWdpb24gZm9yIFNUUy5cbiAgICogSWYgdW5zZXQsIEFXUyB3aWxsIHVzZSB0aGUgc2FtZSByZWdpb24gZm9yIFNUUyBhcyBvdGhlciBub24tU1RTIG9wZXJhdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBzdHNSZWdpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEVuYWJsZSBwYXRoLXN0eWxlIFMzIFVSTHNcbiAgICogKGh0dHBzOi8vPEhPU1Q+LzxCVUNLRVQ+IGluc3RlYWQgb2YgaHR0cHM6Ly88QlVDS0VUPi48SE9TVD4pLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgdXNlUGF0aFN0eWxlIGluc3RlYWRcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlUGF0aFN0eWxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgRW5hYmxlIHBhdGgtc3R5bGUgUzMgVVJMc1xuICAgKiAoaHR0cHM6Ly88SE9TVD4vPEJVQ0tFVD4gaW5zdGVhZCBvZiBodHRwczovLzxCVUNLRVQ+LjxIT1NUPikuXG4gICAqL1xuICByZWFkb25seSB1c2VQYXRoU3R5bGU/OiBib29sZWFuO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBTa2lwIGNyZWRlbnRpYWxzIHZhbGlkYXRpb24gdmlhIHRoZSBTVFMgQVBJLlxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcENyZWRlbnRpYWxzVmFsaWRhdGlvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFNraXAgdmFsaWRhdGlvbiBvZiBwcm92aWRlZCByZWdpb24gbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHNraXBSZWdpb25WYWxpZGF0aW9uPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgV2hldGhlciB0byBza2lwIHJlcXVlc3RpbmcgdGhlIGFjY291bnQgSUQuXG4gICAqIFVzZWZ1bCBmb3IgQVdTIEFQSSBpbXBsZW1lbnRhdGlvbnMgdGhhdCBkbyBub3QgaGF2ZSB0aGUgSUFNLCBTVFMgQVBJLCBvciBtZXRhZGF0YSBBUEkuXG4gICAqL1xuICByZWFkb25seSBza2lwUmVxdWVzdGluZ0FjY291bnRJZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFNraXAgdXNhZ2Ugb2YgRUMyIE1ldGFkYXRhIEFQSS5cbiAgICovXG4gIHJlYWRvbmx5IHNraXBNZXRhZGF0YUFwaUNoZWNrPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgRG8gbm90IGluY2x1ZGUgY2hlY2tzdW0gd2hlbiB1cGxvYWRpbmcgUzMgT2JqZWN0cy5cbiAgICogVXNlZnVsIGZvciBzb21lIFMzLUNvbXBhdGlibGUgQVBJcy5cbiAgICovXG4gIHJlYWRvbmx5IHNraXBTM0NoZWNrc3VtPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVGhlIGtleSB0byB1c2UgZm9yIGVuY3J5cHRpbmcgc3RhdGUgd2l0aCBTZXJ2ZXItU2lkZSBFbmNyeXB0aW9uIHdpdGggQ3VzdG9tZXItUHJvdmlkZWQgS2V5cyAoU1NFLUMpLlxuICAgKiBUaGlzIGlzIHRoZSBiYXNlNjQtZW5jb2RlZCB2YWx1ZSBvZiB0aGUga2V5LCB3aGljaCBtdXN0IGRlY29kZSB0byAyNTYgYml0cy5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIEFXU19TU0VfQ1VTVE9NRVJfS0VZIGVudmlyb25tZW50IHZhcmlhYmxlLFxuICAgKiB3aGljaCBpcyByZWNvbW1lbmRlZCBkdWUgdG8gdGhlIHNlbnNpdGl2aXR5IG9mIHRoZSB2YWx1ZS5cbiAgICogU2V0dGluZyBpdCBpbnNpZGUgYSB0ZXJyYWZvcm0gZmlsZSB3aWxsIGNhdXNlIGl0IHRvIGJlIHBlcnNpc3RlZCB0byBkaXNrIGluIHRlcnJhZm9ybS50ZnN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3NlQ3VzdG9tZXJLZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBtYXhpbXVtIG51bWJlciBvZiB0aW1lcyBhbiBBV1MgQVBJIHJlcXVlc3QgaXMgcmV0cmllZCBvbiByZXRyeWFibGUgZmFpbHVyZS5cbiAgICogRGVmYXVsdHMgdG8gNS5cbiAgICovXG4gIHJlYWRvbmx5IG1heFJldHJpZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFVzZSB0aGUgbGVnYWN5IGF1dGhlbnRpY2F0aW9uIHdvcmtmbG93LCBwcmVmZXJyaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyBvdmVyIGJhY2tlbmQgY29uZmlndXJhdGlvbi5cbiAgICogRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICogVGhpcyBiZWhhdmlvciBkb2VzIG5vdCBhbGlnbiB3aXRoIHRoZSBhdXRoZW50aWNhdGlvbiBmbG93IG9mIHRoZSBBV1MgQ0xJIG9yIFNESydzLCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuXG4gICAqL1xuICByZWFkb25seSB1c2VMZWdhY3lXb3JrZmxvdz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFRoZSBlbmRwb2ludCBjb25maWd1cmF0aW9uIGJsb2NrLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRzPzogUzNCYWNrZW5kRW5kcG9pbnRDb25maWc7XG4gIC8qKlxuICAgKiBBc3N1bWluZyBhbiBJQU0gUm9sZSBjYW4gYmUgY29uZmlndXJlZCBpbiB0d28gd2F5cy5cbiAgICogVGhlIHByZWZlcnJlZCB3YXkgaXMgdG8gdXNlIHRoZSBhcmd1bWVudCBhc3N1bWVfcm9sZSwgdGhlIG90aGVyLCB3aGljaCBpcyBkZXByZWNhdGVkLCBpcyB3aXRoIGFyZ3VtZW50cyBhdCB0aGUgdG9wIGxldmVsLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNzdW1lUm9sZT86IFMzQmFja2VuZEFzc3VtZVJvbGVDb25maWc7XG4gIC8qKlxuICAgKiBBc3N1bWUgUm9sZSBXaXRoIFdlYiBJZGVudGl0eSBDb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlV2l0aFdlYklkZW50aXR5PzogUzNCYWNrZW5kQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbmZpZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTM0JhY2tlbmRFbmRwb2ludENvbmZpZyB7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIEN1c3RvbSBlbmRwb2ludCBVUkwgZm9yIHRoZSBBV1MgRHluYW1vREIgQVBJLlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgQVdTX0VORFBPSU5UX1VSTF9EWU5BTU9EQiBvciB0aGUgZGVwcmVjYXRlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSBBV1NfRFlOQU1PREJfRU5EUE9JTlQuXG4gICAqL1xuICByZWFkb25seSBkeW5hbW9kYj86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQ3VzdG9tIGVuZHBvaW50IFVSTCBmb3IgdGhlIEFXUyBJQU0gQVBJLlxuICAgKiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgQVdTX0VORFBPSU5UX1VSTF9JQU0gb3IgdGhlIGRlcHJlY2F0ZWQgZW52aXJvbm1lbnQgdmFyaWFibGUgQVdTX0lBTV9FTkRQT0lOVC5cbiAgICovXG4gIHJlYWRvbmx5IGlhbT86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgQ3VzdG9tIGVuZHBvaW50IFVSTCBmb3IgdGhlIEFXUyBTMyBBUEkuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBBV1NfRU5EUE9JTlRfVVJMX1MzIG9yIHRoZSBkZXByZWNhdGVkIGVudmlyb25tZW50IHZhcmlhYmxlIEFXU19TM19FTkRQT0lOVC5cbiAgICovXG4gIHJlYWRvbmx5IHMzPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBDdXN0b20gZW5kcG9pbnQgVVJMIGZvciB0aGUgQVdTIElBTSBJZGVudGl0eSBDZW50ZXIgKGZvcm1lcmx5IGtub3duIGFzIEFXUyBTU08pIEFQSS5cbiAgICogVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIEFXU19FTkRQT0lOVF9VUkxfU1NPLlxuICAgKi9cbiAgcmVhZG9ubHkgc3NvPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBDdXN0b20gZW5kcG9pbnQgVVJMIGZvciB0aGUgQVdTIFNUUyBBUEkuXG4gICAqIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBBV1NfRU5EUE9JTlRfVVJMX1NUUyBvciB0aGUgZGVwcmVjYXRlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSBBV1NfU1RTX0VORFBPSU5ULlxuICAgKi9cbiAgcmVhZG9ubHkgc3RzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFMzQmFja2VuZEFzc3VtZVJvbGVDb25maWcge1xuICAvKipcbiAgICogKFJlcXVpcmVkKSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgSUFNIFJvbGUgdG8gYXNzdW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybjogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgZHVyYXRpb24gaW5kaXZpZHVhbCBjcmVkZW50aWFscyB3aWxsIGJlIHZhbGlkLlxuICAgKiBDcmVkZW50aWFscyBhcmUgYXV0b21hdGljYWxseSByZW5ld2VkIHVwIHRvIHRoZSBtYXhpbXVtIGRlZmluZWQgYnkgdGhlIEFXUyBhY2NvdW50LlxuICAgKiBTcGVjaWZpZWQgdXNpbmcgdGhlIGZvcm1hdCA8aG91cnM+aDxtaW51dGVzPm08c2Vjb25kcz5zIHdpdGggYW55IHVuaXQgYmVpbmcgb3B0aW9uYWwuXG4gICAqIEZvciBleGFtcGxlLCBhbiBob3VyIGFuZCBhIGhhbGYgY2FuIGJlIHNwZWNpZmllZCBhcyAxaDMwbSBvciA5MG0uXG4gICAqIE11c3QgYmUgYmV0d2VlbiAxNSBtaW51dGVzICgxNW0pIGFuZCAxMiBob3VycyAoMTJoKS5cbiAgICovXG4gIHJlYWRvbmx5IGR1cmF0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBFeHRlcm5hbCBpZGVudGlmaWVyIHRvIHVzZSB3aGVuIGFzc3VtaW5nIHRoZSByb2xlLlxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZXJuYWxJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgSUFNIFBvbGljeSBKU09OIGRlc2NyaWJpbmcgZnVydGhlciByZXN0cmljdGluZyBwZXJtaXNzaW9ucyBmb3IgdGhlIElBTSBSb2xlIGJlaW5nIGFzc3VtZWQuXG4gICAqL1xuICByZWFkb25seSBwb2xpY3k/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFNldCBvZiBBbWF6b24gUmVzb3VyY2UgTmFtZXMgKEFSTnMpIG9mIElBTSBQb2xpY2llcyBkZXNjcmliaW5nIGZ1cnRoZXIgcmVzdHJpY3RpbmcgcGVybWlzc2lvbnMgZm9yIHRoZSBJQU0gUm9sZSBiZWluZyBhc3N1bWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5QXJucz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBTZXNzaW9uIG5hbWUgdG8gdXNlIHdoZW4gYXNzdW1pbmcgdGhlIHJvbGUuXG4gICAqL1xuICByZWFkb25seSBzZXNzaW9uTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgU291cmNlIGlkZW50aXR5IHNwZWNpZmllZCBieSB0aGUgcHJpbmNpcGFsIGFzc3VtaW5nIHRoZVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlSWRlbnRpdHk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIE1hcCBvZiBhc3N1bWUgcm9sZSBzZXNzaW9uIHRhZ3MuXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgU2V0IG9mIGFzc3VtZSByb2xlIHNlc3Npb24gdGFnIGtleXMgdG8gcGFzcyB0byBhbnkgc3Vic2VxdWVudCBzZXNzaW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zaXRpdmVUYWdLZXlzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUzNCYWNrZW5kQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eUNvbmZpZyB7XG4gIC8qKlxuICAgKiAoUmVxdWlyZWQpIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBJQU0gUm9sZSB0byBhc3N1bWUuXG4gICAqIENhbiBhbHNvIGJlIHNldCB3aXRoIHRoZSBBV1NfUk9MRV9BUk4gZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgZHVyYXRpb24gaW5kaXZpZHVhbCBjcmVkZW50aWFscyB3aWxsIGJlIHZhbGlkLlxuICAgKiBDcmVkZW50aWFscyBhcmUgYXV0b21hdGljYWxseSByZW5ld2VkIHVwIHRvIHRoZSBtYXhpbXVtIGRlZmluZWQgYnkgdGhlIEFXUyBhY2NvdW50LlxuICAgKiBTcGVjaWZpZWQgdXNpbmcgdGhlIGZvcm1hdCA8aG91cnM+aDxtaW51dGVzPm08c2Vjb25kcz5zIHdpdGggYW55IHVuaXQgYmVpbmcgb3B0aW9uYWwuXG4gICAqIEZvciBleGFtcGxlLCBhbiBob3VyIGFuZCBhIGhhbGYgY2FuIGJlIHNwZWNpZmllZCBhcyAxaDMwbSBvciA5MG0uXG4gICAqIE11c3QgYmUgYmV0d2VlbiAxNSBtaW51dGVzICgxNW0pIGFuZCAxMiBob3VycyAoMTJoKS5cbiAgICovXG4gIHJlYWRvbmx5IGR1cmF0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBJQU0gUG9saWN5IEpTT04gZGVzY3JpYmluZyBmdXJ0aGVyIHJlc3RyaWN0aW5nIHBlcm1pc3Npb25zIGZvciB0aGUgSUFNIFJvbGUgYmVpbmcgYXNzdW1lZC5cbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeT86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgU2V0IG9mIEFtYXpvbiBSZXNvdXJjZSBOYW1lcyAoQVJOcykgb2YgSUFNIFBvbGljaWVzIGRlc2NyaWJpbmcgZnVydGhlciByZXN0cmljdGluZyBwZXJtaXNzaW9ucyBmb3IgdGhlIElBTSBSb2xlIGJlaW5nIGFzc3VtZWQuXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lBcm5zPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFNlc3Npb24gbmFtZSB0byB1c2Ugd2hlbiBhc3N1bWluZyB0aGUgcm9sZS5cbiAgICogQ2FuIGFsc28gYmUgc2V0IHdpdGggdGhlIEFXU19ST0xFX1NFU1NJT05fTkFNRSBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlc3Npb25OYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBUaGUgdmFsdWUgb2YgYSB3ZWIgaWRlbnRpdHkgdG9rZW4gZnJvbSBhbiBPcGVuSUQgQ29ubmVjdCAoT0lEQykgb3IgT0F1dGggcHJvdmlkZXIuXG4gICAqIE9uZSBvZiB3ZWJfaWRlbnRpdHlfdG9rZW4gb3Igd2ViX2lkZW50aXR5X3Rva2VuX2ZpbGUgaXMgcmVxdWlyZWQuXG4gICAqL1xuICByZWFkb25seSB3ZWJJZGVudGl0eVRva2VuPzogc3RyaW5nO1xuICAvKipcbiAgICogKE9wdGlvbmFsKSBGaWxlIGNvbnRhaW5pbmcgYSB3ZWIgaWRlbnRpdHkgdG9rZW4gZnJvbSBhbiBPcGVuSUQgQ29ubmVjdCAoT0lEQykgb3IgT0F1dGggcHJvdmlkZXIuXG4gICAqIE9uZSBvZiB3ZWJfaWRlbnRpdHlfdG9rZW5fZmlsZSBvciB3ZWJfaWRlbnRpdHlfdG9rZW4gaXMgcmVxdWlyZWQuXG4gICAqIENhbiBhbHNvIGJlIHNldCB3aXRoIHRoZSBBV1NfV0VCX0lERU5USVRZX1RPS0VOX0ZJTEUgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICByZWFkb25seSB3ZWJJZGVudGl0eVRva2VuRmlsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhVGVycmFmb3JtUmVtb3RlU3RhdGVTM0NvbmZpZ1xuICBleHRlbmRzIERhdGFUZXJyYWZvcm1SZW1vdGVTdGF0ZUNvbmZpZywgUzNCYWNrZW5kQ29uZmlnIHt9XG4iXX0=
|
|
@@ -10,7 +10,7 @@ const terraform_remote_state_1 = require("../terraform-remote-state");
|
|
|
10
10
|
*/
|
|
11
11
|
class SwiftBackend extends terraform_backend_1.TerraformBackend {
|
|
12
12
|
props;
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.SwiftBackend", version: "0.26.0-pre.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.SwiftBackend", version: "0.26.0-pre.21" };
|
|
14
14
|
constructor(scope, props) {
|
|
15
15
|
super(scope, "backend", "swift");
|
|
16
16
|
this.props = props;
|
|
@@ -30,7 +30,7 @@ exports.SwiftBackend = SwiftBackend;
|
|
|
30
30
|
* @deprecated CDK for Terraform no longer supports the swift backend. Terraform deprecated swift in v1.2.3 and removed it in v1.3.
|
|
31
31
|
*/
|
|
32
32
|
class DataTerraformRemoteStateSwift extends terraform_remote_state_1.TerraformRemoteState {
|
|
33
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateSwift", version: "0.26.0-pre.
|
|
33
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdktn.DataTerraformRemoteStateSwift", version: "0.26.0-pre.21" };
|
|
34
34
|
constructor(scope, id, config) {
|
|
35
35
|
super(scope, id, "swift", config);
|
|
36
36
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { IResolvable, IResolveContext } from "./tokens";
|
|
2
2
|
import { IInterpolatingParent, ITerraformAddressable } from "./terraform-addressable";
|
|
3
3
|
import { DynamicListTerraformIterator } from ".";
|
|
4
|
+
/**
|
|
5
|
+
* Base class for a token that references a complex Terraform attribute and resolves to its interpolated address.
|
|
6
|
+
*/
|
|
4
7
|
declare abstract class ComplexResolvable implements IResolvable, ITerraformAddressable {
|
|
5
8
|
protected terraformResource: IInterpolatingParent;
|
|
6
9
|
protected terraformAttribute: string;
|
|
@@ -15,6 +18,9 @@ declare abstract class ComplexResolvable implements IResolvable, ITerraformAddre
|
|
|
15
18
|
resolve(_context: IResolveContext): any;
|
|
16
19
|
toString(): string;
|
|
17
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Base class for a reference to a complex Terraform attribute whose nested attributes are read as typed tokens.
|
|
23
|
+
*/
|
|
18
24
|
declare abstract class ComplexComputedAttribute extends ComplexResolvable implements IInterpolatingParent {
|
|
19
25
|
protected terraformResource: IInterpolatingParent;
|
|
20
26
|
protected terraformAttribute: string;
|
|
@@ -38,6 +44,9 @@ declare abstract class ComplexComputedAttribute extends ComplexResolvable implem
|
|
|
38
44
|
};
|
|
39
45
|
abstract interpolationForAttribute(terraformAttribute: string): any;
|
|
40
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Reference to a Terraform `map(string)` attribute, with each value read by key as a string token.
|
|
49
|
+
*/
|
|
41
50
|
export declare class StringMap extends ComplexResolvable implements ITerraformAddressable {
|
|
42
51
|
protected terraformResource: IInterpolatingParent;
|
|
43
52
|
protected terraformAttribute: string;
|
|
@@ -45,6 +54,9 @@ export declare class StringMap extends ComplexResolvable implements ITerraformAd
|
|
|
45
54
|
lookup(key: string): string;
|
|
46
55
|
computeFqn(): string;
|
|
47
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Reference to a Terraform `map(number)` attribute, with each value read by key as a number token.
|
|
59
|
+
*/
|
|
48
60
|
export declare class NumberMap extends ComplexResolvable implements ITerraformAddressable {
|
|
49
61
|
protected terraformResource: IInterpolatingParent;
|
|
50
62
|
protected terraformAttribute: string;
|
|
@@ -52,6 +64,9 @@ export declare class NumberMap extends ComplexResolvable implements ITerraformAd
|
|
|
52
64
|
lookup(key: string): number;
|
|
53
65
|
computeFqn(): string;
|
|
54
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Reference to a Terraform `map(bool)` attribute, with each value read by key as a resolvable token.
|
|
69
|
+
*/
|
|
55
70
|
export declare class BooleanMap extends ComplexResolvable implements ITerraformAddressable {
|
|
56
71
|
protected terraformResource: IInterpolatingParent;
|
|
57
72
|
protected terraformAttribute: string;
|
|
@@ -59,6 +74,9 @@ export declare class BooleanMap extends ComplexResolvable implements ITerraformA
|
|
|
59
74
|
lookup(key: string): IResolvable;
|
|
60
75
|
computeFqn(): string;
|
|
61
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Reference to a Terraform `map(any)` attribute, with each value read by key as an any-typed token.
|
|
79
|
+
*/
|
|
62
80
|
export declare class AnyMap extends ComplexResolvable implements ITerraformAddressable {
|
|
63
81
|
protected terraformResource: IInterpolatingParent;
|
|
64
82
|
protected terraformAttribute: string;
|
|
@@ -66,6 +84,9 @@ export declare class AnyMap extends ComplexResolvable implements ITerraformAddre
|
|
|
66
84
|
lookup(key: string): any;
|
|
67
85
|
computeFqn(): string;
|
|
68
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Reference to a Terraform `map(map(string))` attribute, with each inner map read by key as a StringMap.
|
|
89
|
+
*/
|
|
69
90
|
export declare class StringMapMap extends ComplexResolvable implements ITerraformAddressable {
|
|
70
91
|
protected terraformResource: IInterpolatingParent;
|
|
71
92
|
protected terraformAttribute: string;
|
|
@@ -73,6 +94,9 @@ export declare class StringMapMap extends ComplexResolvable implements ITerrafor
|
|
|
73
94
|
lookup(key: string): StringMap;
|
|
74
95
|
computeFqn(): string;
|
|
75
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Reference to a Terraform `map(map(number))` attribute, with each inner map read by key as a NumberMap.
|
|
99
|
+
*/
|
|
76
100
|
export declare class NumberMapMap extends ComplexResolvable implements ITerraformAddressable {
|
|
77
101
|
protected terraformResource: IInterpolatingParent;
|
|
78
102
|
protected terraformAttribute: string;
|
|
@@ -80,6 +104,9 @@ export declare class NumberMapMap extends ComplexResolvable implements ITerrafor
|
|
|
80
104
|
lookup(key: string): NumberMap;
|
|
81
105
|
computeFqn(): string;
|
|
82
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Reference to a Terraform `map(map(bool))` attribute, with each inner map read by key as a BooleanMap.
|
|
109
|
+
*/
|
|
83
110
|
export declare class BooleanMapMap extends ComplexResolvable implements ITerraformAddressable {
|
|
84
111
|
protected terraformResource: IInterpolatingParent;
|
|
85
112
|
protected terraformAttribute: string;
|
|
@@ -87,6 +114,9 @@ export declare class BooleanMapMap extends ComplexResolvable implements ITerrafo
|
|
|
87
114
|
lookup(key: string): BooleanMap;
|
|
88
115
|
computeFqn(): string;
|
|
89
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Reference to a Terraform `map(map(any))` attribute, with each inner map read by key as an AnyMap.
|
|
119
|
+
*/
|
|
90
120
|
export declare class AnyMapMap extends ComplexResolvable implements ITerraformAddressable {
|
|
91
121
|
protected terraformResource: IInterpolatingParent;
|
|
92
122
|
protected terraformAttribute: string;
|
|
@@ -107,6 +137,10 @@ export declare class ComplexComputedList extends ComplexComputedAttribute {
|
|
|
107
137
|
interpolationForAttribute(property: string): IResolvable;
|
|
108
138
|
computeFqn(): string;
|
|
109
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Base class for a reference to a Terraform list or set attribute, converting sets with `tolist()` for index access.
|
|
142
|
+
* Generated provider bindings extend it for lists and sets of nested blocks.
|
|
143
|
+
*/
|
|
110
144
|
export declare abstract class ComplexList extends ComplexResolvable implements ITerraformAddressable {
|
|
111
145
|
protected terraformResource: IInterpolatingParent;
|
|
112
146
|
protected terraformAttribute: string;
|
|
@@ -121,6 +155,9 @@ export declare abstract class ComplexList extends ComplexResolvable implements I
|
|
|
121
155
|
*/
|
|
122
156
|
allWithMapKey(mapKeyAttributeName: string): DynamicListTerraformIterator;
|
|
123
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* Reference to a Terraform `list(bool)` attribute, with each element read by index as a resolvable token.
|
|
160
|
+
*/
|
|
124
161
|
export declare class BooleanList extends ComplexList {
|
|
125
162
|
protected terraformResource: IInterpolatingParent;
|
|
126
163
|
protected terraformAttribute: string;
|
|
@@ -128,6 +165,9 @@ export declare class BooleanList extends ComplexList {
|
|
|
128
165
|
constructor(terraformResource: IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
|
|
129
166
|
get(index: number): IResolvable;
|
|
130
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Reference to a Terraform `list(list(string))` attribute, with each inner list read by index as a string list.
|
|
170
|
+
*/
|
|
131
171
|
export declare class StringListList extends ComplexList {
|
|
132
172
|
protected terraformResource: IInterpolatingParent;
|
|
133
173
|
protected terraformAttribute: string;
|
|
@@ -135,6 +175,9 @@ export declare class StringListList extends ComplexList {
|
|
|
135
175
|
constructor(terraformResource: IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
|
|
136
176
|
get(index: number): string[];
|
|
137
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Reference to a Terraform `list(list(number))` attribute, with each inner list read by index as a number list.
|
|
180
|
+
*/
|
|
138
181
|
export declare class NumberListList extends ComplexList {
|
|
139
182
|
protected terraformResource: IInterpolatingParent;
|
|
140
183
|
protected terraformAttribute: string;
|
|
@@ -142,6 +185,9 @@ export declare class NumberListList extends ComplexList {
|
|
|
142
185
|
constructor(terraformResource: IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
|
|
143
186
|
get(index: number): number[];
|
|
144
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Reference to a Terraform `list(list(bool))` attribute, with each inner list read by index as a resolvable token.
|
|
190
|
+
*/
|
|
145
191
|
export declare class BooleanListList extends ComplexList {
|
|
146
192
|
protected terraformResource: IInterpolatingParent;
|
|
147
193
|
protected terraformAttribute: string;
|
|
@@ -149,6 +195,9 @@ export declare class BooleanListList extends ComplexList {
|
|
|
149
195
|
constructor(terraformResource: IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
|
|
150
196
|
get(index: number): IResolvable;
|
|
151
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Reference to a Terraform `list(list(any))` attribute, with each inner list read by index as a resolvable token.
|
|
200
|
+
*/
|
|
152
201
|
export declare class AnyListList extends ComplexList {
|
|
153
202
|
protected terraformResource: IInterpolatingParent;
|
|
154
203
|
protected terraformAttribute: string;
|
|
@@ -156,6 +205,10 @@ export declare class AnyListList extends ComplexList {
|
|
|
156
205
|
constructor(terraformResource: IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
|
|
157
206
|
get(index: number): IResolvable;
|
|
158
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Base class for a reference to a Terraform map attribute.
|
|
210
|
+
* Generated provider bindings extend it for maps of nested objects and maps of lists of nested objects.
|
|
211
|
+
*/
|
|
159
212
|
export declare abstract class ComplexMap extends ComplexResolvable implements ITerraformAddressable {
|
|
160
213
|
protected terraformResource: IInterpolatingParent;
|
|
161
214
|
protected terraformAttribute: string;
|
|
@@ -163,6 +216,10 @@ export declare abstract class ComplexMap extends ComplexResolvable implements IT
|
|
|
163
216
|
computeFqn(): string;
|
|
164
217
|
interpolationForAttribute(property: string): IResolvable;
|
|
165
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Reference to a single Terraform object attribute, optionally addressed by index within a list or set.
|
|
221
|
+
* Generated provider bindings extend it for the output reference of each nested block.
|
|
222
|
+
*/
|
|
166
223
|
export declare class ComplexObject extends ComplexComputedAttribute {
|
|
167
224
|
protected terraformResource: IInterpolatingParent;
|
|
168
225
|
protected terraformAttribute: string;
|
|
@@ -180,6 +237,10 @@ export declare class ComplexObject extends ComplexComputedAttribute {
|
|
|
180
237
|
protected interpolationAsList(): IResolvable;
|
|
181
238
|
computeFqn(): string;
|
|
182
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* Base class for a reference to a Terraform list or set of maps, converting sets with `tolist()` for index access.
|
|
242
|
+
* Generated provider bindings extend it for lists of maps and lists of lists of nested objects.
|
|
243
|
+
*/
|
|
183
244
|
export declare abstract class MapList extends ComplexResolvable implements ITerraformAddressable, IInterpolatingParent {
|
|
184
245
|
protected terraformResource: IInterpolatingParent;
|
|
185
246
|
protected terraformAttribute: string;
|
|
@@ -188,6 +249,9 @@ export declare abstract class MapList extends ComplexResolvable implements ITerr
|
|
|
188
249
|
computeFqn(): string;
|
|
189
250
|
interpolationForAttribute(property: string): IResolvable;
|
|
190
251
|
}
|
|
252
|
+
/**
|
|
253
|
+
* Reference to a Terraform `list(map(string))` attribute, with each map read by index as a StringMap.
|
|
254
|
+
*/
|
|
191
255
|
export declare class StringMapList extends MapList {
|
|
192
256
|
protected terraformResource: IInterpolatingParent;
|
|
193
257
|
protected terraformAttribute: string;
|
|
@@ -195,6 +259,9 @@ export declare class StringMapList extends MapList {
|
|
|
195
259
|
constructor(terraformResource: IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
|
|
196
260
|
get(index: number): StringMap;
|
|
197
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* Reference to a Terraform `list(map(number))` attribute, with each map read by index as a NumberMap.
|
|
264
|
+
*/
|
|
198
265
|
export declare class NumberMapList extends MapList {
|
|
199
266
|
protected terraformResource: IInterpolatingParent;
|
|
200
267
|
protected terraformAttribute: string;
|
|
@@ -202,6 +269,9 @@ export declare class NumberMapList extends MapList {
|
|
|
202
269
|
constructor(terraformResource: IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
|
|
203
270
|
get(index: number): NumberMap;
|
|
204
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* Reference to a Terraform `list(map(bool))` attribute, with each map read by index as a BooleanMap.
|
|
274
|
+
*/
|
|
205
275
|
export declare class BooleanMapList extends MapList {
|
|
206
276
|
protected terraformResource: IInterpolatingParent;
|
|
207
277
|
protected terraformAttribute: string;
|
|
@@ -209,6 +279,9 @@ export declare class BooleanMapList extends MapList {
|
|
|
209
279
|
constructor(terraformResource: IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
|
|
210
280
|
get(index: number): BooleanMap;
|
|
211
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* Reference to a Terraform `list(map(any))` attribute, with each map read by index as an AnyMap.
|
|
284
|
+
*/
|
|
212
285
|
export declare class AnyMapList extends MapList {
|
|
213
286
|
protected terraformResource: IInterpolatingParent;
|
|
214
287
|
protected terraformAttribute: string;
|
|
@@ -216,24 +289,36 @@ export declare class AnyMapList extends MapList {
|
|
|
216
289
|
constructor(terraformResource: IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
|
|
217
290
|
get(index: number): AnyMap;
|
|
218
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* Reference to a Terraform `map(list(string))` attribute, with each list read by key as a string list.
|
|
294
|
+
*/
|
|
219
295
|
export declare class StringListMap extends ComplexMap {
|
|
220
296
|
protected terraformResource: IInterpolatingParent;
|
|
221
297
|
protected terraformAttribute: string;
|
|
222
298
|
constructor(terraformResource: IInterpolatingParent, terraformAttribute: string);
|
|
223
299
|
get(key: string): string[];
|
|
224
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Reference to a Terraform `map(list(number))` attribute, with each list read by key as a number list.
|
|
303
|
+
*/
|
|
225
304
|
export declare class NumberListMap extends ComplexMap {
|
|
226
305
|
protected terraformResource: IInterpolatingParent;
|
|
227
306
|
protected terraformAttribute: string;
|
|
228
307
|
constructor(terraformResource: IInterpolatingParent, terraformAttribute: string);
|
|
229
308
|
get(key: string): number[];
|
|
230
309
|
}
|
|
310
|
+
/**
|
|
311
|
+
* Reference to a Terraform `map(list(bool))` attribute, with each list read by key as a resolvable token.
|
|
312
|
+
*/
|
|
231
313
|
export declare class BooleanListMap extends ComplexMap {
|
|
232
314
|
protected terraformResource: IInterpolatingParent;
|
|
233
315
|
protected terraformAttribute: string;
|
|
234
316
|
constructor(terraformResource: IInterpolatingParent, terraformAttribute: string);
|
|
235
317
|
get(key: string): IResolvable;
|
|
236
318
|
}
|
|
319
|
+
/**
|
|
320
|
+
* Reference to a Terraform `map(list(any))` attribute, with each list read by key as a resolvable token.
|
|
321
|
+
*/
|
|
237
322
|
export declare class AnyListMap extends ComplexMap {
|
|
238
323
|
protected terraformResource: IInterpolatingParent;
|
|
239
324
|
protected terraformAttribute: string;
|