@alicloud/ros-cdk-kms 1.0.21 → 1.0.23
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/lib/alias.d.ts +10 -9
- package/lib/alias.js +8 -8
- package/lib/datasource/instances.d.ts +9 -8
- package/lib/datasource/instances.js +8 -4
- package/lib/datasource/kms.generated.d.ts +10 -16
- package/lib/datasource/kms.generated.js +7 -7
- package/lib/datasource/secrets.d.ts +9 -8
- package/lib/datasource/secrets.js +8 -4
- package/lib/key.d.ts +14 -13
- package/lib/key.js +8 -4
- package/lib/kms.generated.d.ts +27 -36
- package/lib/kms.generated.js +10 -10
- package/lib/secret.d.ts +9 -8
- package/lib/secret.js +8 -4
- package/package.json +1 -1
package/lib/alias.d.ts
CHANGED
|
@@ -2,11 +2,12 @@ import * as ros from '@alicloud/ros-cdk-core';
|
|
|
2
2
|
import { RosAlias } from './kms.generated';
|
|
3
3
|
export { RosAlias as AliasProperty };
|
|
4
4
|
/**
|
|
5
|
-
* Properties for defining a `
|
|
5
|
+
* Properties for defining a `Alias`.
|
|
6
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-alias
|
|
6
7
|
*/
|
|
7
8
|
export interface AliasProps {
|
|
8
9
|
/**
|
|
9
|
-
* Property aliasName: - The display name of the key. You can use the alias to call APIs such as Encrypt, GenerateDataKey, and DescribeKey. - Not including the prefix, the minimum length of an alias is 1 and the maximum length is 255. - The prefix alias
|
|
10
|
+
* Property aliasName: - The display name of the key. You can use the alias to call APIs such as Encrypt, GenerateDataKey, and DescribeKey. - Not including the prefix, the minimum length of an alias is 1 and the maximum length is 255. - The prefix alias\/ must be included.
|
|
10
11
|
*/
|
|
11
12
|
readonly aliasName: string | ros.IResolvable;
|
|
12
13
|
/**
|
|
@@ -15,16 +16,16 @@ export interface AliasProps {
|
|
|
15
16
|
readonly keyId: string | ros.IResolvable;
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
|
-
*
|
|
19
|
+
* This class encapsulates and extends the ROS resource type `ALIYUN::KMS::Alias`, which is used to create an alias for a Customer Master Key (CMK).
|
|
20
|
+
* @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosAlias`for a more convenient development experience.
|
|
21
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-alias
|
|
19
22
|
*/
|
|
20
23
|
export declare class Alias extends ros.Resource {
|
|
24
|
+
protected scope: ros.Construct;
|
|
25
|
+
protected id: string;
|
|
26
|
+
protected props: AliasProps;
|
|
27
|
+
protected enableResourcePropertyConstraint: boolean;
|
|
21
28
|
/**
|
|
22
|
-
* A factory method that creates a new instance of this class from an object
|
|
23
|
-
* containing the properties of this ROS resource, which will be assigned to ROS resource.
|
|
24
|
-
*/
|
|
25
|
-
/**
|
|
26
|
-
* Create a new `ALIYUN::KMS::Alias`.
|
|
27
|
-
*
|
|
28
29
|
* Param scope - scope in which this resource is defined
|
|
29
30
|
* Param id - scoped id of the resource
|
|
30
31
|
* Param props - resource properties
|
package/lib/alias.js
CHANGED
|
@@ -5,22 +5,22 @@ const ros = require("@alicloud/ros-cdk-core");
|
|
|
5
5
|
const kms_generated_1 = require("./kms.generated");
|
|
6
6
|
Object.defineProperty(exports, "AliasProperty", { enumerable: true, get: function () { return kms_generated_1.RosAlias; } });
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* This class encapsulates and extends the ROS resource type `ALIYUN::KMS::Alias`, which is used to create an alias for a Customer Master Key (CMK).
|
|
9
|
+
* @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosAlias`for a more convenient development experience.
|
|
10
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-alias
|
|
9
11
|
*/
|
|
10
12
|
class Alias extends ros.Resource {
|
|
11
13
|
/**
|
|
12
|
-
* A factory method that creates a new instance of this class from an object
|
|
13
|
-
* containing the properties of this ROS resource, which will be assigned to ROS resource.
|
|
14
|
-
*/
|
|
15
|
-
/**
|
|
16
|
-
* Create a new `ALIYUN::KMS::Alias`.
|
|
17
|
-
*
|
|
18
14
|
* Param scope - scope in which this resource is defined
|
|
19
15
|
* Param id - scoped id of the resource
|
|
20
16
|
* Param props - resource properties
|
|
21
17
|
*/
|
|
22
18
|
constructor(scope, id, props, enableResourcePropertyConstraint = true) {
|
|
23
19
|
super(scope, id);
|
|
20
|
+
this.scope = scope;
|
|
21
|
+
this.id = id;
|
|
22
|
+
this.props = props;
|
|
23
|
+
this.enableResourcePropertyConstraint = enableResourcePropertyConstraint;
|
|
24
24
|
const rosAlias = new kms_generated_1.RosAlias(this, id, {
|
|
25
25
|
aliasName: props.aliasName,
|
|
26
26
|
keyId: props.keyId,
|
|
@@ -29,4 +29,4 @@ class Alias extends ros.Resource {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
exports.Alias = Alias;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhbGlhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBOEM7QUFDOUMsbURBQTJDO0FBRXRCLDhGQUZaLHdCQUFRLE9BRWlCO0FBbUJsQzs7OztHQUlHO0FBQ0gsTUFBYSxLQUFNLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUFNbkM7Ozs7T0FJRztJQUNILFlBQVksS0FBb0IsRUFBRSxFQUFVLEVBQUUsS0FBaUIsRUFBRSxtQ0FBMkMsSUFBSTtRQUM1RyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLGdDQUFnQyxDQUFDO1FBRXpFLE1BQU0sUUFBUSxHQUFHLElBQUksd0JBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFHO1lBQ3JDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7U0FDckIsRUFBRSxnQ0FBZ0MsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDN0IsQ0FBQztDQUNKO0FBeEJELHNCQXdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJvcyBmcm9tICdAYWxpY2xvdWQvcm9zLWNkay1jb3JlJztcbmltcG9ydCB7IFJvc0FsaWFzIH0gZnJvbSAnLi9rbXMuZ2VuZXJhdGVkJztcbi8vIEdlbmVyYXRlZCBmcm9tIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgU3BlY2lmaWNhdGlvblxuZXhwb3J0IHsgUm9zQWxpYXMgYXMgQWxpYXNQcm9wZXJ0eSB9O1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgYEFsaWFzYC5cbiAqIFNlZSBodHRwczovL3d3dy5hbGliYWJhY2xvdWQuY29tL2hlbHAvcm9zL2RldmVsb3Blci1yZWZlcmVuY2UvYWxpeXVuLWttcy1hbGlhc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFsaWFzUHJvcHMge1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgYWxpYXNOYW1lOiAtIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIGtleS4gWW91IGNhbiB1c2UgdGhlIGFsaWFzIHRvIGNhbGwgQVBJcyBzdWNoIGFzIEVuY3J5cHQsIEdlbmVyYXRlRGF0YUtleSwgYW5kIERlc2NyaWJlS2V5LiAtIE5vdCBpbmNsdWRpbmcgdGhlIHByZWZpeCwgdGhlIG1pbmltdW0gbGVuZ3RoIG9mIGFuIGFsaWFzIGlzIDEgYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBpcyAyNTUuIC0gVGhlIHByZWZpeCBhbGlhc1xcLyBtdXN0IGJlIGluY2x1ZGVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFsaWFzTmFtZTogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkga2V5SWQ6IEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBDTUsuXG4gICAgICovXG4gICAgcmVhZG9ubHkga2V5SWQ6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIGVuY2Fwc3VsYXRlcyBhbmQgZXh0ZW5kcyB0aGUgUk9TIHJlc291cmNlIHR5cGUgYEFMSVlVTjo6S01TOjpBbGlhc2AsIHdoaWNoIGlzIHVzZWQgdG8gY3JlYXRlIGFuIGFsaWFzIGZvciBhIEN1c3RvbWVyIE1hc3RlciBLZXkgKENNSykuXG4gKiBATm90ZSBUaGlzIGNsYXNzIG1heSBoYXZlIHNvbWUgbmV3IGZ1bmN0aW9ucyB0byBmYWNpbGl0YXRlIGRldmVsb3BtZW50LCBzbyBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhpcyBjbGFzcyBpbnN0ZWFkIG9mIGBSb3NBbGlhc2Bmb3IgYSBtb3JlIGNvbnZlbmllbnQgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZS5cbiAqIFNlZSBodHRwczovL3d3dy5hbGliYWJhY2xvdWQuY29tL2hlbHAvcm9zL2RldmVsb3Blci1yZWZlcmVuY2UvYWxpeXVuLWttcy1hbGlhc1xuICovXG5leHBvcnQgY2xhc3MgQWxpYXMgZXh0ZW5kcyByb3MuUmVzb3VyY2Uge1xuICAgIHByb3RlY3RlZCBzY29wZTogcm9zLkNvbnN0cnVjdDtcbiAgICBwcm90ZWN0ZWQgaWQ6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgcHJvcHM6IEFsaWFzUHJvcHM7XG4gICAgcHJvdGVjdGVkIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW0gc2NvcGUgLSBzY29wZSBpbiB3aGljaCB0aGlzIHJlc291cmNlIGlzIGRlZmluZWRcbiAgICAgKiBQYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2VcbiAgICAgKiBQYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogcm9zLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFsaWFzUHJvcHMsIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OmJvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgICAgIHRoaXMuc2NvcGUgPSBzY29wZTtcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgICAgIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgPSBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDtcblxuICAgICAgICBjb25zdCByb3NBbGlhcyA9IG5ldyBSb3NBbGlhcyh0aGlzLCBpZCwgIHtcbiAgICAgICAgICAgIGFsaWFzTmFtZTogcHJvcHMuYWxpYXNOYW1lLFxuICAgICAgICAgICAga2V5SWQ6IHByb3BzLmtleUlkLFxuICAgICAgICB9LCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCAmJiB0aGlzLnN0YWNrLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJvc0FsaWFzO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -2,18 +2,21 @@ import * as ros from '@alicloud/ros-cdk-core';
|
|
|
2
2
|
import { RosInstances } from './kms.generated';
|
|
3
3
|
export { RosInstances as InstancesProperty };
|
|
4
4
|
/**
|
|
5
|
-
* Properties for defining a `
|
|
5
|
+
* Properties for defining a `Instances`.
|
|
6
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/datasource-kms-instances
|
|
6
7
|
*/
|
|
7
8
|
export interface InstancesProps {
|
|
8
9
|
}
|
|
9
10
|
/**
|
|
10
|
-
*
|
|
11
|
+
* This class encapsulates and extends the ROS resource type `DATASOURCE::KMS::Instances`.
|
|
12
|
+
* @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosInstances`for a more convenient development experience.
|
|
13
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/datasource-kms-instances
|
|
11
14
|
*/
|
|
12
15
|
export declare class Instances extends ros.Resource {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
protected scope: ros.Construct;
|
|
17
|
+
protected id: string;
|
|
18
|
+
protected props: InstancesProps;
|
|
19
|
+
protected enableResourcePropertyConstraint: boolean;
|
|
17
20
|
/**
|
|
18
21
|
* Attribute InstanceIds: The list of instance IDs.
|
|
19
22
|
*/
|
|
@@ -23,8 +26,6 @@ export declare class Instances extends ros.Resource {
|
|
|
23
26
|
*/
|
|
24
27
|
readonly attrInstances: ros.IResolvable;
|
|
25
28
|
/**
|
|
26
|
-
* Create a new `DATASOURCE::KMS::Instances`.
|
|
27
|
-
*
|
|
28
29
|
* Param scope - scope in which this resource is defined
|
|
29
30
|
* Param id - scoped id of the resource
|
|
30
31
|
* Param props - resource properties
|
|
@@ -5,18 +5,22 @@ const ros = require("@alicloud/ros-cdk-core");
|
|
|
5
5
|
const kms_generated_1 = require("./kms.generated");
|
|
6
6
|
Object.defineProperty(exports, "InstancesProperty", { enumerable: true, get: function () { return kms_generated_1.RosInstances; } });
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* This class encapsulates and extends the ROS resource type `DATASOURCE::KMS::Instances`.
|
|
9
|
+
* @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosInstances`for a more convenient development experience.
|
|
10
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/datasource-kms-instances
|
|
9
11
|
*/
|
|
10
12
|
class Instances extends ros.Resource {
|
|
11
13
|
/**
|
|
12
|
-
* Create a new `DATASOURCE::KMS::Instances`.
|
|
13
|
-
*
|
|
14
14
|
* Param scope - scope in which this resource is defined
|
|
15
15
|
* Param id - scoped id of the resource
|
|
16
16
|
* Param props - resource properties
|
|
17
17
|
*/
|
|
18
18
|
constructor(scope, id, props = {}, enableResourcePropertyConstraint = true) {
|
|
19
19
|
super(scope, id);
|
|
20
|
+
this.scope = scope;
|
|
21
|
+
this.id = id;
|
|
22
|
+
this.props = props;
|
|
23
|
+
this.enableResourcePropertyConstraint = enableResourcePropertyConstraint;
|
|
20
24
|
const rosInstances = new kms_generated_1.RosInstances(this, id, {}, enableResourcePropertyConstraint && this.stack.enableResourcePropertyConstraint);
|
|
21
25
|
props;
|
|
22
26
|
this.resource = rosInstances;
|
|
@@ -25,4 +29,4 @@ class Instances extends ros.Resource {
|
|
|
25
29
|
}
|
|
26
30
|
}
|
|
27
31
|
exports.Instances = Instances;
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW5zdGFuY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUE4QztBQUM5QyxtREFBK0M7QUFFdEIsa0dBRmhCLDRCQUFZLE9BRXFCO0FBUzFDOzs7O0dBSUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxHQUFHLENBQUMsUUFBUTtJQWdCdkM7Ozs7T0FJRztJQUNILFlBQVksS0FBb0IsRUFBRSxFQUFVLEVBQUUsUUFBd0IsRUFBRSxFQUFFLG1DQUEyQyxJQUFJO1FBQ3JILEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsZ0NBQWdDLEdBQUcsZ0NBQWdDLENBQUM7UUFFekUsTUFBTSxZQUFZLEdBQUcsSUFBSSw0QkFBWSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUcsRUFDaEQsRUFBRSxnQ0FBZ0MsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEYsS0FBSyxDQUFDO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQ3BELElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQztJQUNwRCxDQUFDO0NBQ0o7QUFuQ0QsOEJBbUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuaW1wb3J0IHsgUm9zSW5zdGFuY2VzIH0gZnJvbSAnLi9rbXMuZ2VuZXJhdGVkJztcbi8vIEdlbmVyYXRlZCBmcm9tIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgU3BlY2lmaWNhdGlvblxuZXhwb3J0IHsgUm9zSW5zdGFuY2VzIGFzIEluc3RhbmNlc1Byb3BlcnR5IH07XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBgSW5zdGFuY2VzYC5cbiAqIFNlZSBodHRwczovL3d3dy5hbGliYWJhY2xvdWQuY29tL2hlbHAvcm9zL2RldmVsb3Blci1yZWZlcmVuY2UvZGF0YXNvdXJjZS1rbXMtaW5zdGFuY2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VzUHJvcHMge1xufVxuXG4vKipcbiAqIFRoaXMgY2xhc3MgZW5jYXBzdWxhdGVzIGFuZCBleHRlbmRzIHRoZSBST1MgcmVzb3VyY2UgdHlwZSBgREFUQVNPVVJDRTo6S01TOjpJbnN0YW5jZXNgLlxuICogQE5vdGUgVGhpcyBjbGFzcyBtYXkgaGF2ZSBzb21lIG5ldyBmdW5jdGlvbnMgdG8gZmFjaWxpdGF0ZSBkZXZlbG9wbWVudCwgc28gaXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHRoaXMgY2xhc3MgaW5zdGVhZCBvZiBgUm9zSW5zdGFuY2VzYGZvciBhIG1vcmUgY29udmVuaWVudCBkZXZlbG9wbWVudCBleHBlcmllbmNlLlxuICogU2VlIGh0dHBzOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20vaGVscC9yb3MvZGV2ZWxvcGVyLXJlZmVyZW5jZS9kYXRhc291cmNlLWttcy1pbnN0YW5jZXNcbiAqL1xuZXhwb3J0IGNsYXNzIEluc3RhbmNlcyBleHRlbmRzIHJvcy5SZXNvdXJjZSB7XG4gICAgcHJvdGVjdGVkIHNjb3BlOiByb3MuQ29uc3RydWN0O1xuICAgIHByb3RlY3RlZCBpZDogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBwcm9wczogSW5zdGFuY2VzUHJvcHM7XG4gICAgcHJvdGVjdGVkIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIEluc3RhbmNlSWRzOiBUaGUgbGlzdCBvZiBpbnN0YW5jZSBJRHMuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJJbnN0YW5jZUlkczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIEluc3RhbmNlczogVGhlIGxpc3Qgb2YgaW5zdGFuY2VzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRySW5zdGFuY2VzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgICAqIFBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIFBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiByb3MuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSW5zdGFuY2VzUHJvcHMgPSB7fSwgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6Ym9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAgICAgdGhpcy5zY29wZSA9IHNjb3BlO1xuICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICAgICAgdGhpcy5lbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCA9IGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50O1xuXG4gICAgICAgIGNvbnN0IHJvc0luc3RhbmNlcyA9IG5ldyBSb3NJbnN0YW5jZXModGhpcywgaWQsICB7XG4gICAgICAgIH0sIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50ICYmIHRoaXMuc3RhY2suZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQpO1xuICAgICAgICBwcm9wcztcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJvc0luc3RhbmNlcztcbiAgICAgICAgdGhpcy5hdHRySW5zdGFuY2VJZHMgPSByb3NJbnN0YW5jZXMuYXR0ckluc3RhbmNlSWRzO1xuICAgICAgICB0aGlzLmF0dHJJbnN0YW5jZXMgPSByb3NJbnN0YW5jZXMuYXR0ckluc3RhbmNlcztcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import * as ros from '@alicloud/ros-cdk-core';
|
|
2
2
|
/**
|
|
3
|
-
* Properties for defining a `
|
|
3
|
+
* Properties for defining a `RosInstances`.
|
|
4
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/datasource-kms-instances
|
|
4
5
|
*/
|
|
5
6
|
export interface RosInstancesProps {
|
|
6
7
|
}
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
+
* This class is a base encapsulation around the ROS resource type `DATASOURCE::KMS::Instances`.
|
|
10
|
+
* @Note This class does not contain additional functions, so it is recommended to use the `Instances` class instead of this class for a more convenient development experience.
|
|
11
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/datasource-kms-instances
|
|
9
12
|
*/
|
|
10
13
|
export declare class RosInstances extends ros.RosResource {
|
|
11
14
|
/**
|
|
12
15
|
* The resource type name for this resource class.
|
|
13
16
|
*/
|
|
14
17
|
static readonly ROS_RESOURCE_TYPE_NAME = "DATASOURCE::KMS::Instances";
|
|
15
|
-
/**
|
|
16
|
-
* A factory method that creates a new instance of this class from an object
|
|
17
|
-
* containing the properties of this ROS resource.
|
|
18
|
-
*/
|
|
19
18
|
/**
|
|
20
19
|
* @Attribute InstanceIds: The list of instance IDs.
|
|
21
20
|
*/
|
|
@@ -26,8 +25,6 @@ export declare class RosInstances extends ros.RosResource {
|
|
|
26
25
|
readonly attrInstances: ros.IResolvable;
|
|
27
26
|
enableResourcePropertyConstraint: boolean;
|
|
28
27
|
/**
|
|
29
|
-
* Create a new `DATASOURCE::KMS::Instances`.
|
|
30
|
-
*
|
|
31
28
|
* @param scope - scope in which this resource is defined
|
|
32
29
|
* @param id - scoped id of the resource
|
|
33
30
|
* @param props - resource properties
|
|
@@ -43,22 +40,21 @@ export declare class RosInstances extends ros.RosResource {
|
|
|
43
40
|
};
|
|
44
41
|
}
|
|
45
42
|
/**
|
|
46
|
-
* Properties for defining a `
|
|
43
|
+
* Properties for defining a `RosSecrets`.
|
|
44
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/datasource-kms-secrets
|
|
47
45
|
*/
|
|
48
46
|
export interface RosSecretsProps {
|
|
49
47
|
}
|
|
50
48
|
/**
|
|
51
|
-
*
|
|
49
|
+
* This class is a base encapsulation around the ROS resource type `DATASOURCE::KMS::Secrets`.
|
|
50
|
+
* @Note This class does not contain additional functions, so it is recommended to use the `Secrets` class instead of this class for a more convenient development experience.
|
|
51
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/datasource-kms-secrets
|
|
52
52
|
*/
|
|
53
53
|
export declare class RosSecrets extends ros.RosResource {
|
|
54
54
|
/**
|
|
55
55
|
* The resource type name for this resource class.
|
|
56
56
|
*/
|
|
57
57
|
static readonly ROS_RESOURCE_TYPE_NAME = "DATASOURCE::KMS::Secrets";
|
|
58
|
-
/**
|
|
59
|
-
* A factory method that creates a new instance of this class from an object
|
|
60
|
-
* containing the properties of this ROS resource.
|
|
61
|
-
*/
|
|
62
58
|
/**
|
|
63
59
|
* @Attribute SecretNames: The list of secret names.
|
|
64
60
|
*/
|
|
@@ -69,8 +65,6 @@ export declare class RosSecrets extends ros.RosResource {
|
|
|
69
65
|
readonly attrSecrets: ros.IResolvable;
|
|
70
66
|
enableResourcePropertyConstraint: boolean;
|
|
71
67
|
/**
|
|
72
|
-
* Create a new `DATASOURCE::KMS::Secrets`.
|
|
73
|
-
*
|
|
74
68
|
* @param scope - scope in which this resource is defined
|
|
75
69
|
* @param id - scoped id of the resource
|
|
76
70
|
* @param props - resource properties
|
|
@@ -35,12 +35,12 @@ function rosInstancesPropsToRosTemplate(properties, enableResourcePropertyConstr
|
|
|
35
35
|
return {};
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
38
|
+
* This class is a base encapsulation around the ROS resource type `DATASOURCE::KMS::Instances`.
|
|
39
|
+
* @Note This class does not contain additional functions, so it is recommended to use the `Instances` class instead of this class for a more convenient development experience.
|
|
40
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/datasource-kms-instances
|
|
39
41
|
*/
|
|
40
42
|
class RosInstances extends ros.RosResource {
|
|
41
43
|
/**
|
|
42
|
-
* Create a new `DATASOURCE::KMS::Instances`.
|
|
43
|
-
*
|
|
44
44
|
* @param scope - scope in which this resource is defined
|
|
45
45
|
* @param id - scoped id of the resource
|
|
46
46
|
* @param props - resource properties
|
|
@@ -95,12 +95,12 @@ function rosSecretsPropsToRosTemplate(properties, enableResourcePropertyConstrai
|
|
|
95
95
|
return {};
|
|
96
96
|
}
|
|
97
97
|
/**
|
|
98
|
-
*
|
|
98
|
+
* This class is a base encapsulation around the ROS resource type `DATASOURCE::KMS::Secrets`.
|
|
99
|
+
* @Note This class does not contain additional functions, so it is recommended to use the `Secrets` class instead of this class for a more convenient development experience.
|
|
100
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/datasource-kms-secrets
|
|
99
101
|
*/
|
|
100
102
|
class RosSecrets extends ros.RosResource {
|
|
101
103
|
/**
|
|
102
|
-
* Create a new `DATASOURCE::KMS::Secrets`.
|
|
103
|
-
*
|
|
104
104
|
* @param scope - scope in which this resource is defined
|
|
105
105
|
* @param id - scoped id of the resource
|
|
106
106
|
* @param props - resource properties
|
|
@@ -123,4 +123,4 @@ exports.RosSecrets = RosSecrets;
|
|
|
123
123
|
* The resource type name for this resource class.
|
|
124
124
|
*/
|
|
125
125
|
RosSecrets.ROS_RESOURCE_TYPE_NAME = "DATASOURCE::KMS::Secrets";
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImttcy5nZW5lcmF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlEQUF5RDs7O0FBRXpELDhDQUE4QztBQVE5Qzs7Ozs7O0dBTUc7QUFDSCxTQUFTLDBCQUEwQixDQUFDLFVBQWU7SUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFBRSxPQUFPLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztLQUFFO0lBQ25FLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0MsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLHlEQUF5RCxDQUFDLENBQUM7QUFDbEYsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILG9CQUFvQjtBQUNwQixTQUFTLDhCQUE4QixDQUFDLFVBQWUsRUFBRSxnQ0FBeUM7SUFDOUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFBRSxPQUFPLFVBQVUsQ0FBQztLQUFFO0lBQ3ZELElBQUcsZ0NBQWdDLEVBQUU7UUFDakMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7S0FDMUQ7SUFDRCxPQUFPLEVBQ04sQ0FBQztBQUNOLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLEdBQUcsQ0FBQyxXQUFXO0lBd0I3Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQXdCLEVBQUUsZ0NBQXlDO1FBQzdHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxnQ0FBZ0MsQ0FBQztJQUM3RSxDQUFDO0lBR0QsSUFBYyxhQUFhO1FBQ3ZCLE9BQU8sRUFDTixDQUFDO0lBQ04sQ0FBQztJQUNTLGdCQUFnQixDQUFDLEtBQTJCO1FBQ2xELE9BQU8sOEJBQThCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7O0FBOUNMLG9DQStDQztBQTlDRzs7R0FFRztBQUNvQixtQ0FBc0IsR0FBRyw0QkFBNEIsQ0FBQztBQW1EakY7Ozs7OztHQU1HO0FBQ0gsU0FBUyx3QkFBd0IsQ0FBQyxVQUFlO0lBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxHQUFHLENBQUMsa0JBQWtCLENBQUM7S0FBRTtJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxvQkFBb0I7QUFDcEIsU0FBUyw0QkFBNEIsQ0FBQyxVQUFlLEVBQUUsZ0NBQXlDO0lBQzVGLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxVQUFVLENBQUM7S0FBRTtJQUN2RCxJQUFHLGdDQUFnQyxFQUFFO1FBQ2pDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO0tBQ3hEO0lBQ0QsT0FBTyxFQUNOLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFVBQVcsU0FBUSxHQUFHLENBQUMsV0FBVztJQXdCM0M7Ozs7OztPQU1HO0lBQ0gsWUFBWSxLQUFvQixFQUFFLEVBQVUsRUFBRSxLQUFzQixFQUFFLGdDQUF5QztRQUMzRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsZ0NBQWdDLENBQUM7SUFDN0UsQ0FBQztJQUdELElBQWMsYUFBYTtRQUN2QixPQUFPLEVBQ04sQ0FBQztJQUNOLENBQUM7SUFDUyxnQkFBZ0IsQ0FBQyxLQUEyQjtRQUNsRCxPQUFPLDRCQUE0QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUN0RixDQUFDOztBQTlDTCxnQ0ErQ0M7QUE5Q0c7O0dBRUc7QUFDb0IsaUNBQXNCLEdBQUcsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgZnJvbSB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIFNwZWNpZmljYXRpb25cblxuaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgYERBVEFTT1VSQ0U6OktNUzo6SW5zdGFuY2VzYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvc0luc3RhbmNlc1Byb3BzIHtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaCB0aG9zZSBvZiBhIGBSb3NJbnN0YW5jZXNQcm9wc2BcbiAqXG4gKiBAcGFyYW0gcHJvcGVydGllcyAtIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgUm9zSW5zdGFuY2VzUHJvcHNgXG4gKlxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAqL1xuZnVuY3Rpb24gUm9zSW5zdGFuY2VzUHJvcHNWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogcm9zLlZhbGlkYXRpb25SZXN1bHQge1xuICAgIGlmICghcm9zLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHJvcy5WQUxJREFUSU9OX1NVQ0NFU1M7IH1cbiAgICBjb25zdCBlcnJvcnMgPSBuZXcgcm9zLlZhbGlkYXRpb25SZXN1bHRzKCk7XG4gICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlJvc0luc3RhbmNlc1Byb3BzXCInKTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgcHJvcGVydGllcyBvZiBhbiBgREFUQVNPVVJDRTo6S01TOjpJbnN0YW5jZXNgIHJlc291cmNlXG4gKlxuICogQHBhcmFtIHByb3BlcnRpZXMgLSB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYFJvc0luc3RhbmNlc1Byb3BzYFxuICpcbiAqIEByZXR1cm5zIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgcHJvcGVydGllcyBvZiBhbiBgREFUQVNPVVJDRTo6S01TOjpJbnN0YW5jZXNgIHJlc291cmNlLlxuICovXG4vLyBAdHMtaWdub3JlIFRTNjEzM1xuZnVuY3Rpb24gcm9zSW5zdGFuY2VzUHJvcHNUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXM6IGFueSwgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW4pOiBhbnkge1xuICAgIGlmICghcm9zLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHByb3BlcnRpZXM7IH1cbiAgICBpZihlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCkge1xuICAgICAgICBSb3NJbnN0YW5jZXNQcm9wc1ZhbGlkYXRvcihwcm9wZXJ0aWVzKS5hc3NlcnRTdWNjZXNzKCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgfTtcbn1cblxuLyoqXG4gKiBBIFJPUyB0ZW1wbGF0ZSB0eXBlOiAgYERBVEFTT1VSQ0U6OktNUzo6SW5zdGFuY2VzYFxuICovXG5leHBvcnQgY2xhc3MgUm9zSW5zdGFuY2VzIGV4dGVuZHMgcm9zLlJvc1Jlc291cmNlIHtcbiAgICAvKipcbiAgICAgKiBUaGUgcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUk9TX1JFU09VUkNFX1RZUEVfTkFNRSA9IFwiREFUQVNPVVJDRTo6S01TOjpJbnN0YW5jZXNcIjtcblxuICAgIC8qKlxuICAgICAqIEEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgZnJvbSBhbiBvYmplY3RcbiAgICAgKiBjb250YWluaW5nIHRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgUk9TIHJlc291cmNlLlxuICAgICAqL1xuXG4gICAgLyoqXG4gICAgICogQEF0dHJpYnV0ZSBJbnN0YW5jZUlkczogVGhlIGxpc3Qgb2YgaW5zdGFuY2UgSURzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRySW5zdGFuY2VJZHM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBBdHRyaWJ1dGUgSW5zdGFuY2VzOiBUaGUgbGlzdCBvZiBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJJbnN0YW5jZXM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIHB1YmxpYyBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbjtcblxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGBEQVRBU09VUkNFOjpLTVM6Okluc3RhbmNlc2AuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2NvcGUgLSBzY29wZSBpbiB3aGljaCB0aGlzIHJlc291cmNlIGlzIGRlZmluZWRcbiAgICAgKiBAcGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlXG4gICAgICogQHBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiByb3MuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUm9zSW5zdGFuY2VzUHJvcHMsIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OiBib29sZWFuKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCwgeyB0eXBlOiBSb3NJbnN0YW5jZXMuUk9TX1JFU09VUkNFX1RZUEVfTkFNRSwgcHJvcGVydGllczogcHJvcHMgfSk7XG4gICAgICAgIHRoaXMuYXR0ckluc3RhbmNlSWRzID0gdGhpcy5nZXRBdHQoJ0luc3RhbmNlSWRzJyk7XG4gICAgICAgIHRoaXMuYXR0ckluc3RhbmNlcyA9IHRoaXMuZ2V0QXR0KCdJbnN0YW5jZXMnKTtcblxuICAgICAgICB0aGlzLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50ID0gZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ7XG4gICAgfVxuXG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHJvc1Byb3BlcnRpZXMoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSAge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICB9O1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgcmVuZGVyUHJvcGVydGllcyhwcm9wczoge1trZXk6IHN0cmluZ106IGFueX0pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ICB7XG4gICAgICAgIHJldHVybiByb3NJbnN0YW5jZXNQcm9wc1RvUm9zVGVtcGxhdGUocHJvcHMsIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIGBEQVRBU09VUkNFOjpLTVM6OlNlY3JldHNgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9zU2VjcmV0c1Byb3BzIHtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaCB0aG9zZSBvZiBhIGBSb3NTZWNyZXRzUHJvcHNgXG4gKlxuICogQHBhcmFtIHByb3BlcnRpZXMgLSB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYFJvc1NlY3JldHNQcm9wc2BcbiAqXG4gKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSB2YWxpZGF0aW9uLlxuICovXG5mdW5jdGlvbiBSb3NTZWNyZXRzUHJvcHNWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogcm9zLlZhbGlkYXRpb25SZXN1bHQge1xuICAgIGlmICghcm9zLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHJvcy5WQUxJREFUSU9OX1NVQ0NFU1M7IH1cbiAgICBjb25zdCBlcnJvcnMgPSBuZXcgcm9zLlZhbGlkYXRpb25SZXN1bHRzKCk7XG4gICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlJvc1NlY3JldHNQcm9wc1wiJyk7XG59XG5cbi8qKlxuICogUmVuZGVycyB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIHByb3BlcnRpZXMgb2YgYW4gYERBVEFTT1VSQ0U6OktNUzo6U2VjcmV0c2AgcmVzb3VyY2VcbiAqXG4gKiBAcGFyYW0gcHJvcGVydGllcyAtIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgUm9zU2VjcmV0c1Byb3BzYFxuICpcbiAqIEByZXR1cm5zIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgcHJvcGVydGllcyBvZiBhbiBgREFUQVNPVVJDRTo6S01TOjpTZWNyZXRzYCByZXNvdXJjZS5cbiAqL1xuLy8gQHRzLWlnbm9yZSBUUzYxMzNcbmZ1bmN0aW9uIHJvc1NlY3JldHNQcm9wc1RvUm9zVGVtcGxhdGUocHJvcGVydGllczogYW55LCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbik6IGFueSB7XG4gICAgaWYgKCFyb3MuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgIGlmKGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KSB7XG4gICAgICAgIFJvc1NlY3JldHNQcm9wc1ZhbGlkYXRvcihwcm9wZXJ0aWVzKS5hc3NlcnRTdWNjZXNzKCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgfTtcbn1cblxuLyoqXG4gKiBBIFJPUyB0ZW1wbGF0ZSB0eXBlOiAgYERBVEFTT1VSQ0U6OktNUzo6U2VjcmV0c2BcbiAqL1xuZXhwb3J0IGNsYXNzIFJvc1NlY3JldHMgZXh0ZW5kcyByb3MuUm9zUmVzb3VyY2Uge1xuICAgIC8qKlxuICAgICAqIFRoZSByZXNvdXJjZSB0eXBlIG5hbWUgZm9yIHRoaXMgcmVzb3VyY2UgY2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBST1NfUkVTT1VSQ0VfVFlQRV9OQU1FID0gXCJEQVRBU09VUkNFOjpLTVM6OlNlY3JldHNcIjtcblxuICAgIC8qKlxuICAgICAqIEEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgZnJvbSBhbiBvYmplY3RcbiAgICAgKiBjb250YWluaW5nIHRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgUk9TIHJlc291cmNlLlxuICAgICAqL1xuXG4gICAgLyoqXG4gICAgICogQEF0dHJpYnV0ZSBTZWNyZXROYW1lczogVGhlIGxpc3Qgb2Ygc2VjcmV0IG5hbWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyU2VjcmV0TmFtZXM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBBdHRyaWJ1dGUgU2VjcmV0czogVGhlIGxpc3Qgb2Ygc2VjcmV0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clNlY3JldHM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIHB1YmxpYyBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbjtcblxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGBEQVRBU09VUkNFOjpLTVM6OlNlY3JldHNgLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAgICogQHBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogcm9zLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJvc1NlY3JldHNQcm9wcywgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW4pIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkLCB7IHR5cGU6IFJvc1NlY3JldHMuUk9TX1JFU09VUkNFX1RZUEVfTkFNRSwgcHJvcGVydGllczogcHJvcHMgfSk7XG4gICAgICAgIHRoaXMuYXR0clNlY3JldE5hbWVzID0gdGhpcy5nZXRBdHQoJ1NlY3JldE5hbWVzJyk7XG4gICAgICAgIHRoaXMuYXR0clNlY3JldHMgPSB0aGlzLmdldEF0dCgnU2VjcmV0cycpO1xuXG4gICAgICAgIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgPSBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDtcbiAgICB9XG5cblxuICAgIHByb3RlY3RlZCBnZXQgcm9zUHJvcGVydGllcygpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ICB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHByb3RlY3RlZCByZW5kZXJQcm9wZXJ0aWVzKHByb3BzOiB7W2tleTogc3RyaW5nXTogYW55fSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gIHtcbiAgICAgICAgcmV0dXJuIHJvc1NlY3JldHNQcm9wc1RvUm9zVGVtcGxhdGUocHJvcHMsIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQpO1xuICAgIH1cbn1cbiJdfQ==
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImttcy5nZW5lcmF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlEQUF5RDs7O0FBRXpELDhDQUE4QztBQVM5Qzs7Ozs7O0dBTUc7QUFDSCxTQUFTLDBCQUEwQixDQUFDLFVBQWU7SUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFBRSxPQUFPLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztLQUFFO0lBQ25FLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0MsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLHlEQUF5RCxDQUFDLENBQUM7QUFDbEYsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILG9CQUFvQjtBQUNwQixTQUFTLDhCQUE4QixDQUFDLFVBQWUsRUFBRSxnQ0FBeUM7SUFDOUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFBRSxPQUFPLFVBQVUsQ0FBQztLQUFFO0lBQ3ZELElBQUcsZ0NBQWdDLEVBQUU7UUFDakMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7S0FDMUQ7SUFDRCxPQUFPLEVBQ04sQ0FBQztBQUNOLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsR0FBRyxDQUFDLFdBQVc7SUFtQjdDOzs7O09BSUc7SUFDSCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQXdCLEVBQUUsZ0NBQXlDO1FBQzdHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxnQ0FBZ0MsQ0FBQztJQUM3RSxDQUFDO0lBR0QsSUFBYyxhQUFhO1FBQ3ZCLE9BQU8sRUFDTixDQUFDO0lBQ04sQ0FBQztJQUNTLGdCQUFnQixDQUFDLEtBQTJCO1FBQ2xELE9BQU8sOEJBQThCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7O0FBdkNMLG9DQXdDQztBQXZDRzs7R0FFRztBQUNvQixtQ0FBc0IsR0FBRyw0QkFBNEIsQ0FBQztBQTZDakY7Ozs7OztHQU1HO0FBQ0gsU0FBUyx3QkFBd0IsQ0FBQyxVQUFlO0lBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxHQUFHLENBQUMsa0JBQWtCLENBQUM7S0FBRTtJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxvQkFBb0I7QUFDcEIsU0FBUyw0QkFBNEIsQ0FBQyxVQUFlLEVBQUUsZ0NBQXlDO0lBQzVGLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxVQUFVLENBQUM7S0FBRTtJQUN2RCxJQUFHLGdDQUFnQyxFQUFFO1FBQ2pDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO0tBQ3hEO0lBQ0QsT0FBTyxFQUNOLENBQUM7QUFDTixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsVUFBVyxTQUFRLEdBQUcsQ0FBQyxXQUFXO0lBbUIzQzs7OztPQUlHO0lBQ0gsWUFBWSxLQUFvQixFQUFFLEVBQVUsRUFBRSxLQUFzQixFQUFFLGdDQUF5QztRQUMzRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsZ0NBQWdDLENBQUM7SUFDN0UsQ0FBQztJQUdELElBQWMsYUFBYTtRQUN2QixPQUFPLEVBQ04sQ0FBQztJQUNOLENBQUM7SUFDUyxnQkFBZ0IsQ0FBQyxLQUEyQjtRQUNsRCxPQUFPLDRCQUE0QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUN0RixDQUFDOztBQXZDTCxnQ0F3Q0M7QUF2Q0c7O0dBRUc7QUFDb0IsaUNBQXNCLEdBQUcsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgZnJvbSB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIFNwZWNpZmljYXRpb25cblxuaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgYFJvc0luc3RhbmNlc2AuXG4gKiBTZWUgaHR0cHM6Ly93d3cuYWxpYmFiYWNsb3VkLmNvbS9oZWxwL3Jvcy9kZXZlbG9wZXItcmVmZXJlbmNlL2RhdGFzb3VyY2Uta21zLWluc3RhbmNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvc0luc3RhbmNlc1Byb3BzIHtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaCB0aG9zZSBvZiBhIGBSb3NJbnN0YW5jZXNQcm9wc2BcbiAqXG4gKiBAcGFyYW0gcHJvcGVydGllcyAtIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgUm9zSW5zdGFuY2VzUHJvcHNgXG4gKlxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAqL1xuZnVuY3Rpb24gUm9zSW5zdGFuY2VzUHJvcHNWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogcm9zLlZhbGlkYXRpb25SZXN1bHQge1xuICAgIGlmICghcm9zLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHJvcy5WQUxJREFUSU9OX1NVQ0NFU1M7IH1cbiAgICBjb25zdCBlcnJvcnMgPSBuZXcgcm9zLlZhbGlkYXRpb25SZXN1bHRzKCk7XG4gICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlJvc0luc3RhbmNlc1Byb3BzXCInKTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgcHJvcGVydGllcyBvZiBhbiBgREFUQVNPVVJDRTo6S01TOjpJbnN0YW5jZXNgIHJlc291cmNlXG4gKlxuICogQHBhcmFtIHByb3BlcnRpZXMgLSB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYFJvc0luc3RhbmNlc1Byb3BzYFxuICpcbiAqIEByZXR1cm5zIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgcHJvcGVydGllcyBvZiBhbiBgREFUQVNPVVJDRTo6S01TOjpJbnN0YW5jZXNgIHJlc291cmNlLlxuICovXG4vLyBAdHMtaWdub3JlIFRTNjEzM1xuZnVuY3Rpb24gcm9zSW5zdGFuY2VzUHJvcHNUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXM6IGFueSwgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW4pOiBhbnkge1xuICAgIGlmICghcm9zLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHByb3BlcnRpZXM7IH1cbiAgICBpZihlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCkge1xuICAgICAgICBSb3NJbnN0YW5jZXNQcm9wc1ZhbGlkYXRvcihwcm9wZXJ0aWVzKS5hc3NlcnRTdWNjZXNzKCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgfTtcbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIGEgYmFzZSBlbmNhcHN1bGF0aW9uIGFyb3VuZCB0aGUgUk9TIHJlc291cmNlIHR5cGUgYERBVEFTT1VSQ0U6OktNUzo6SW5zdGFuY2VzYC5cbiAqIEBOb3RlIFRoaXMgY2xhc3MgZG9lcyBub3QgY29udGFpbiBhZGRpdGlvbmFsIGZ1bmN0aW9ucywgc28gaXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHRoZSBgSW5zdGFuY2VzYCBjbGFzcyBpbnN0ZWFkIG9mIHRoaXMgY2xhc3MgZm9yIGEgbW9yZSBjb252ZW5pZW50IGRldmVsb3BtZW50IGV4cGVyaWVuY2UuXG4gKiBTZWUgaHR0cHM6Ly93d3cuYWxpYmFiYWNsb3VkLmNvbS9oZWxwL3Jvcy9kZXZlbG9wZXItcmVmZXJlbmNlL2RhdGFzb3VyY2Uta21zLWluc3RhbmNlc1xuICovXG5leHBvcnQgY2xhc3MgUm9zSW5zdGFuY2VzIGV4dGVuZHMgcm9zLlJvc1Jlc291cmNlIHtcbiAgICAvKipcbiAgICAgKiBUaGUgcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUk9TX1JFU09VUkNFX1RZUEVfTkFNRSA9IFwiREFUQVNPVVJDRTo6S01TOjpJbnN0YW5jZXNcIjtcblxuICAgIC8qKlxuICAgICAqIEBBdHRyaWJ1dGUgSW5zdGFuY2VJZHM6IFRoZSBsaXN0IG9mIGluc3RhbmNlIElEcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0ckluc3RhbmNlSWRzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAQXR0cmlidXRlIEluc3RhbmNlczogVGhlIGxpc3Qgb2YgaW5zdGFuY2VzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRySW5zdGFuY2VzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICBwdWJsaWMgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW47XG5cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgICAqIEBwYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2VcbiAgICAgKiBAcGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAgICovXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IHJvcy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSb3NJbnN0YW5jZXNQcm9wcywgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW4pIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkLCB7IHR5cGU6IFJvc0luc3RhbmNlcy5ST1NfUkVTT1VSQ0VfVFlQRV9OQU1FLCBwcm9wZXJ0aWVzOiBwcm9wcyB9KTtcbiAgICAgICAgdGhpcy5hdHRySW5zdGFuY2VJZHMgPSB0aGlzLmdldEF0dCgnSW5zdGFuY2VJZHMnKTtcbiAgICAgICAgdGhpcy5hdHRySW5zdGFuY2VzID0gdGhpcy5nZXRBdHQoJ0luc3RhbmNlcycpO1xuXG4gICAgICAgIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgPSBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDtcbiAgICB9XG5cblxuICAgIHByb3RlY3RlZCBnZXQgcm9zUHJvcGVydGllcygpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ICB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHByb3RlY3RlZCByZW5kZXJQcm9wZXJ0aWVzKHByb3BzOiB7W2tleTogc3RyaW5nXTogYW55fSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gIHtcbiAgICAgICAgcmV0dXJuIHJvc0luc3RhbmNlc1Byb3BzVG9Sb3NUZW1wbGF0ZShwcm9wcywgdGhpcy5lbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCk7XG4gICAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgYFJvc1NlY3JldHNgLlxuICogU2VlIGh0dHBzOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20vaGVscC9yb3MvZGV2ZWxvcGVyLXJlZmVyZW5jZS9kYXRhc291cmNlLWttcy1zZWNyZXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9zU2VjcmV0c1Byb3BzIHtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaCB0aG9zZSBvZiBhIGBSb3NTZWNyZXRzUHJvcHNgXG4gKlxuICogQHBhcmFtIHByb3BlcnRpZXMgLSB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYFJvc1NlY3JldHNQcm9wc2BcbiAqXG4gKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSB2YWxpZGF0aW9uLlxuICovXG5mdW5jdGlvbiBSb3NTZWNyZXRzUHJvcHNWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogcm9zLlZhbGlkYXRpb25SZXN1bHQge1xuICAgIGlmICghcm9zLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHJvcy5WQUxJREFUSU9OX1NVQ0NFU1M7IH1cbiAgICBjb25zdCBlcnJvcnMgPSBuZXcgcm9zLlZhbGlkYXRpb25SZXN1bHRzKCk7XG4gICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlJvc1NlY3JldHNQcm9wc1wiJyk7XG59XG5cbi8qKlxuICogUmVuZGVycyB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIHByb3BlcnRpZXMgb2YgYW4gYERBVEFTT1VSQ0U6OktNUzo6U2VjcmV0c2AgcmVzb3VyY2VcbiAqXG4gKiBAcGFyYW0gcHJvcGVydGllcyAtIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgUm9zU2VjcmV0c1Byb3BzYFxuICpcbiAqIEByZXR1cm5zIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgcHJvcGVydGllcyBvZiBhbiBgREFUQVNPVVJDRTo6S01TOjpTZWNyZXRzYCByZXNvdXJjZS5cbiAqL1xuLy8gQHRzLWlnbm9yZSBUUzYxMzNcbmZ1bmN0aW9uIHJvc1NlY3JldHNQcm9wc1RvUm9zVGVtcGxhdGUocHJvcGVydGllczogYW55LCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbik6IGFueSB7XG4gICAgaWYgKCFyb3MuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgIGlmKGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KSB7XG4gICAgICAgIFJvc1NlY3JldHNQcm9wc1ZhbGlkYXRvcihwcm9wZXJ0aWVzKS5hc3NlcnRTdWNjZXNzKCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgfTtcbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIGEgYmFzZSBlbmNhcHN1bGF0aW9uIGFyb3VuZCB0aGUgUk9TIHJlc291cmNlIHR5cGUgYERBVEFTT1VSQ0U6OktNUzo6U2VjcmV0c2AuXG4gKiBATm90ZSBUaGlzIGNsYXNzIGRvZXMgbm90IGNvbnRhaW4gYWRkaXRpb25hbCBmdW5jdGlvbnMsIHNvIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUgYFNlY3JldHNgIGNsYXNzIGluc3RlYWQgb2YgdGhpcyBjbGFzcyBmb3IgYSBtb3JlIGNvbnZlbmllbnQgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZS5cbiAqIFNlZSBodHRwczovL3d3dy5hbGliYWJhY2xvdWQuY29tL2hlbHAvcm9zL2RldmVsb3Blci1yZWZlcmVuY2UvZGF0YXNvdXJjZS1rbXMtc2VjcmV0c1xuICovXG5leHBvcnQgY2xhc3MgUm9zU2VjcmV0cyBleHRlbmRzIHJvcy5Sb3NSZXNvdXJjZSB7XG4gICAgLyoqXG4gICAgICogVGhlIHJlc291cmNlIHR5cGUgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBjbGFzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJPU19SRVNPVVJDRV9UWVBFX05BTUUgPSBcIkRBVEFTT1VSQ0U6OktNUzo6U2VjcmV0c1wiO1xuXG4gICAgLyoqXG4gICAgICogQEF0dHJpYnV0ZSBTZWNyZXROYW1lczogVGhlIGxpc3Qgb2Ygc2VjcmV0IG5hbWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyU2VjcmV0TmFtZXM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBBdHRyaWJ1dGUgU2VjcmV0czogVGhlIGxpc3Qgb2Ygc2VjcmV0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clNlY3JldHM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIHB1YmxpYyBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbjtcblxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAgICogQHBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogcm9zLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJvc1NlY3JldHNQcm9wcywgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW4pIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkLCB7IHR5cGU6IFJvc1NlY3JldHMuUk9TX1JFU09VUkNFX1RZUEVfTkFNRSwgcHJvcGVydGllczogcHJvcHMgfSk7XG4gICAgICAgIHRoaXMuYXR0clNlY3JldE5hbWVzID0gdGhpcy5nZXRBdHQoJ1NlY3JldE5hbWVzJyk7XG4gICAgICAgIHRoaXMuYXR0clNlY3JldHMgPSB0aGlzLmdldEF0dCgnU2VjcmV0cycpO1xuXG4gICAgICAgIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgPSBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDtcbiAgICB9XG5cblxuICAgIHByb3RlY3RlZCBnZXQgcm9zUHJvcGVydGllcygpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ICB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHByb3RlY3RlZCByZW5kZXJQcm9wZXJ0aWVzKHByb3BzOiB7W2tleTogc3RyaW5nXTogYW55fSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gIHtcbiAgICAgICAgcmV0dXJuIHJvc1NlY3JldHNQcm9wc1RvUm9zVGVtcGxhdGUocHJvcHMsIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -2,18 +2,21 @@ import * as ros from '@alicloud/ros-cdk-core';
|
|
|
2
2
|
import { RosSecrets } from './kms.generated';
|
|
3
3
|
export { RosSecrets as SecretsProperty };
|
|
4
4
|
/**
|
|
5
|
-
* Properties for defining a `
|
|
5
|
+
* Properties for defining a `Secrets`.
|
|
6
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/datasource-kms-secrets
|
|
6
7
|
*/
|
|
7
8
|
export interface SecretsProps {
|
|
8
9
|
}
|
|
9
10
|
/**
|
|
10
|
-
*
|
|
11
|
+
* This class encapsulates and extends the ROS resource type `DATASOURCE::KMS::Secrets`.
|
|
12
|
+
* @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosSecrets`for a more convenient development experience.
|
|
13
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/datasource-kms-secrets
|
|
11
14
|
*/
|
|
12
15
|
export declare class Secrets extends ros.Resource {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
protected scope: ros.Construct;
|
|
17
|
+
protected id: string;
|
|
18
|
+
protected props: SecretsProps;
|
|
19
|
+
protected enableResourcePropertyConstraint: boolean;
|
|
17
20
|
/**
|
|
18
21
|
* Attribute SecretNames: The list of secret names.
|
|
19
22
|
*/
|
|
@@ -23,8 +26,6 @@ export declare class Secrets extends ros.Resource {
|
|
|
23
26
|
*/
|
|
24
27
|
readonly attrSecrets: ros.IResolvable;
|
|
25
28
|
/**
|
|
26
|
-
* Create a new `DATASOURCE::KMS::Secrets`.
|
|
27
|
-
*
|
|
28
29
|
* Param scope - scope in which this resource is defined
|
|
29
30
|
* Param id - scoped id of the resource
|
|
30
31
|
* Param props - resource properties
|
|
@@ -5,18 +5,22 @@ const ros = require("@alicloud/ros-cdk-core");
|
|
|
5
5
|
const kms_generated_1 = require("./kms.generated");
|
|
6
6
|
Object.defineProperty(exports, "SecretsProperty", { enumerable: true, get: function () { return kms_generated_1.RosSecrets; } });
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* This class encapsulates and extends the ROS resource type `DATASOURCE::KMS::Secrets`.
|
|
9
|
+
* @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosSecrets`for a more convenient development experience.
|
|
10
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/datasource-kms-secrets
|
|
9
11
|
*/
|
|
10
12
|
class Secrets extends ros.Resource {
|
|
11
13
|
/**
|
|
12
|
-
* Create a new `DATASOURCE::KMS::Secrets`.
|
|
13
|
-
*
|
|
14
14
|
* Param scope - scope in which this resource is defined
|
|
15
15
|
* Param id - scoped id of the resource
|
|
16
16
|
* Param props - resource properties
|
|
17
17
|
*/
|
|
18
18
|
constructor(scope, id, props = {}, enableResourcePropertyConstraint = true) {
|
|
19
19
|
super(scope, id);
|
|
20
|
+
this.scope = scope;
|
|
21
|
+
this.id = id;
|
|
22
|
+
this.props = props;
|
|
23
|
+
this.enableResourcePropertyConstraint = enableResourcePropertyConstraint;
|
|
20
24
|
const rosSecrets = new kms_generated_1.RosSecrets(this, id, {}, enableResourcePropertyConstraint && this.stack.enableResourcePropertyConstraint);
|
|
21
25
|
props;
|
|
22
26
|
this.resource = rosSecrets;
|
|
@@ -25,4 +29,4 @@ class Secrets extends ros.Resource {
|
|
|
25
29
|
}
|
|
26
30
|
}
|
|
27
31
|
exports.Secrets = Secrets;
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNlY3JldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQThDO0FBQzlDLG1EQUE2QztBQUV0QixnR0FGZCwwQkFBVSxPQUVtQjtBQVN0Qzs7OztHQUlHO0FBQ0gsTUFBYSxPQUFRLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUFnQnJDOzs7O09BSUc7SUFDSCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLFFBQXNCLEVBQUUsRUFBRSxtQ0FBMkMsSUFBSTtRQUNuSCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLGdDQUFnQyxDQUFDO1FBRXpFLE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFHLEVBQzVDLEVBQUUsZ0NBQWdDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BGLEtBQUssQ0FBQztRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQzNCLElBQUksQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQztRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7SUFDOUMsQ0FBQztDQUNKO0FBbkNELDBCQW1DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJvcyBmcm9tICdAYWxpY2xvdWQvcm9zLWNkay1jb3JlJztcbmltcG9ydCB7IFJvc1NlY3JldHMgfSBmcm9tICcuL2ttcy5nZW5lcmF0ZWQnO1xuLy8gR2VuZXJhdGVkIGZyb20gdGhlIEFsaUNsb3VkIFJPUyBSZXNvdXJjZSBTcGVjaWZpY2F0aW9uXG5leHBvcnQgeyBSb3NTZWNyZXRzIGFzIFNlY3JldHNQcm9wZXJ0eSB9O1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgYFNlY3JldHNgLlxuICogU2VlIGh0dHBzOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20vaGVscC9yb3MvZGV2ZWxvcGVyLXJlZmVyZW5jZS9kYXRhc291cmNlLWttcy1zZWNyZXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjcmV0c1Byb3BzIHtcbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIGVuY2Fwc3VsYXRlcyBhbmQgZXh0ZW5kcyB0aGUgUk9TIHJlc291cmNlIHR5cGUgYERBVEFTT1VSQ0U6OktNUzo6U2VjcmV0c2AuXG4gKiBATm90ZSBUaGlzIGNsYXNzIG1heSBoYXZlIHNvbWUgbmV3IGZ1bmN0aW9ucyB0byBmYWNpbGl0YXRlIGRldmVsb3BtZW50LCBzbyBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhpcyBjbGFzcyBpbnN0ZWFkIG9mIGBSb3NTZWNyZXRzYGZvciBhIG1vcmUgY29udmVuaWVudCBkZXZlbG9wbWVudCBleHBlcmllbmNlLlxuICogU2VlIGh0dHBzOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20vaGVscC9yb3MvZGV2ZWxvcGVyLXJlZmVyZW5jZS9kYXRhc291cmNlLWttcy1zZWNyZXRzXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWNyZXRzIGV4dGVuZHMgcm9zLlJlc291cmNlIHtcbiAgICBwcm90ZWN0ZWQgc2NvcGU6IHJvcy5Db25zdHJ1Y3Q7XG4gICAgcHJvdGVjdGVkIGlkOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIHByb3BzOiBTZWNyZXRzUHJvcHM7XG4gICAgcHJvdGVjdGVkIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIFNlY3JldE5hbWVzOiBUaGUgbGlzdCBvZiBzZWNyZXQgbmFtZXMuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJTZWNyZXROYW1lczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIFNlY3JldHM6IFRoZSBsaXN0IG9mIHNlY3JldHMuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJTZWNyZXRzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgICAqIFBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIFBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiByb3MuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VjcmV0c1Byb3BzID0ge30sIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OmJvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgICAgIHRoaXMuc2NvcGUgPSBzY29wZTtcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgICAgIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgPSBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDtcblxuICAgICAgICBjb25zdCByb3NTZWNyZXRzID0gbmV3IFJvc1NlY3JldHModGhpcywgaWQsICB7XG4gICAgICAgIH0sIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50ICYmIHRoaXMuc3RhY2suZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQpO1xuICAgICAgICBwcm9wcztcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJvc1NlY3JldHM7XG4gICAgICAgIHRoaXMuYXR0clNlY3JldE5hbWVzID0gcm9zU2VjcmV0cy5hdHRyU2VjcmV0TmFtZXM7XG4gICAgICAgIHRoaXMuYXR0clNlY3JldHMgPSByb3NTZWNyZXRzLmF0dHJTZWNyZXRzO1xuICAgIH1cbn1cbiJdfQ==
|
package/lib/key.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ import * as ros from '@alicloud/ros-cdk-core';
|
|
|
2
2
|
import { RosKey } from './kms.generated';
|
|
3
3
|
export { RosKey as KeyProperty };
|
|
4
4
|
/**
|
|
5
|
-
* Properties for defining a `
|
|
5
|
+
* Properties for defining a `Key`.
|
|
6
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-key
|
|
6
7
|
*/
|
|
7
8
|
export interface KeyProps {
|
|
8
9
|
/**
|
|
@@ -18,18 +19,18 @@ export interface KeyProps {
|
|
|
18
19
|
*/
|
|
19
20
|
readonly enable?: boolean | ros.IResolvable;
|
|
20
21
|
/**
|
|
21
|
-
* Property enableAutomaticRotation: Whether to enable automatic key rotation. Valid value: true
|
|
22
|
+
* Property enableAutomaticRotation: Whether to enable automatic key rotation. Valid value: true\/false (default)
|
|
22
23
|
*/
|
|
23
24
|
readonly enableAutomaticRotation?: boolean | ros.IResolvable;
|
|
24
25
|
/**
|
|
25
|
-
* Property keySpec: Key type. Valid value: Aliyun_AES_256
|
|
26
|
+
* Property keySpec: Key type. Valid value: Aliyun_AES_256\/Aliyun_SM4\/RSA_2048\/EC_P256\/EC_P256K\/EC_SM2
|
|
26
27
|
*/
|
|
27
28
|
readonly keySpec?: string | ros.IResolvable;
|
|
28
29
|
/**
|
|
29
30
|
* Property keyUsage: The usage of the CMK. Valid values:
|
|
30
|
-
* ENCRYPT
|
|
31
|
-
* SIGN
|
|
32
|
-
* If the CMK supports signature verification, the default value is SIGN
|
|
31
|
+
* ENCRYPT\/DECRYPT: encrypts or decrypts data.
|
|
32
|
+
* SIGN\/VERIFY: generates or verifies a digital signature.
|
|
33
|
+
* If the CMK supports signature verification, the default value is SIGN\/VERIFY. If the CMK does not support signature verification, the default value is ENCRYPT\/DECRYPT.
|
|
33
34
|
*/
|
|
34
35
|
readonly keyUsage?: string | ros.IResolvable;
|
|
35
36
|
/**
|
|
@@ -48,20 +49,20 @@ export interface KeyProps {
|
|
|
48
49
|
readonly rotationInterval?: string | ros.IResolvable;
|
|
49
50
|
}
|
|
50
51
|
/**
|
|
51
|
-
*
|
|
52
|
+
* This class encapsulates and extends the ROS resource type `ALIYUN::KMS::Key`, which is used to create a customer master key (CMK).
|
|
53
|
+
* @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosKey`for a more convenient development experience.
|
|
54
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-key
|
|
52
55
|
*/
|
|
53
56
|
export declare class Key extends ros.Resource {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
protected scope: ros.Construct;
|
|
58
|
+
protected id: string;
|
|
59
|
+
protected props: KeyProps;
|
|
60
|
+
protected enableResourcePropertyConstraint: boolean;
|
|
58
61
|
/**
|
|
59
62
|
* Attribute KeyId: The globally unique identifier for the CMK.
|
|
60
63
|
*/
|
|
61
64
|
readonly attrKeyId: ros.IResolvable;
|
|
62
65
|
/**
|
|
63
|
-
* Create a new `ALIYUN::KMS::Key`.
|
|
64
|
-
*
|
|
65
66
|
* Param scope - scope in which this resource is defined
|
|
66
67
|
* Param id - scoped id of the resource
|
|
67
68
|
* Param props - resource properties
|
package/lib/key.js
CHANGED
|
@@ -5,18 +5,22 @@ const ros = require("@alicloud/ros-cdk-core");
|
|
|
5
5
|
const kms_generated_1 = require("./kms.generated");
|
|
6
6
|
Object.defineProperty(exports, "KeyProperty", { enumerable: true, get: function () { return kms_generated_1.RosKey; } });
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* This class encapsulates and extends the ROS resource type `ALIYUN::KMS::Key`, which is used to create a customer master key (CMK).
|
|
9
|
+
* @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosKey`for a more convenient development experience.
|
|
10
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-key
|
|
9
11
|
*/
|
|
10
12
|
class Key extends ros.Resource {
|
|
11
13
|
/**
|
|
12
|
-
* Create a new `ALIYUN::KMS::Key`.
|
|
13
|
-
*
|
|
14
14
|
* Param scope - scope in which this resource is defined
|
|
15
15
|
* Param id - scoped id of the resource
|
|
16
16
|
* Param props - resource properties
|
|
17
17
|
*/
|
|
18
18
|
constructor(scope, id, props = {}, enableResourcePropertyConstraint = true) {
|
|
19
19
|
super(scope, id);
|
|
20
|
+
this.scope = scope;
|
|
21
|
+
this.id = id;
|
|
22
|
+
this.props = props;
|
|
23
|
+
this.enableResourcePropertyConstraint = enableResourcePropertyConstraint;
|
|
20
24
|
const rosKey = new kms_generated_1.RosKey(this, id, {
|
|
21
25
|
protectionLevel: props.protectionLevel,
|
|
22
26
|
description: props.description,
|
|
@@ -33,4 +37,4 @@ class Key extends ros.Resource {
|
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
exports.Key = Key;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsia2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUE4QztBQUM5QyxtREFBeUM7QUFFdEIsNEZBRlYsc0JBQU0sT0FFZTtBQTJEOUI7Ozs7R0FJRztBQUNILE1BQWEsR0FBSSxTQUFRLEdBQUcsQ0FBQyxRQUFRO0lBV2pDOzs7O09BSUc7SUFDSCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLFFBQWtCLEVBQUUsRUFBRSxtQ0FBMkMsSUFBSTtRQUMvRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLGdDQUFnQyxDQUFDO1FBRXpFLE1BQU0sTUFBTSxHQUFHLElBQUksc0JBQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFHO1lBQ2pDLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsbUJBQW1CLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLG1CQUFtQjtZQUNuSSx1QkFBdUIsRUFBRSxLQUFLLENBQUMsdUJBQXVCO1lBQ3RELE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDakYsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztTQUN2QyxFQUFFLGdDQUFnQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDdEMsQ0FBQztDQUNKO0FBckNELGtCQXFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJvcyBmcm9tICdAYWxpY2xvdWQvcm9zLWNkay1jb3JlJztcbmltcG9ydCB7IFJvc0tleSB9IGZyb20gJy4va21zLmdlbmVyYXRlZCc7XG4vLyBHZW5lcmF0ZWQgZnJvbSB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIFNwZWNpZmljYXRpb25cbmV4cG9ydCB7IFJvc0tleSBhcyBLZXlQcm9wZXJ0eSB9O1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgYEtleWAuXG4gKiBTZWUgaHR0cHM6Ly93d3cuYWxpYmFiYWNsb3VkLmNvbS9oZWxwL3Jvcy9kZXZlbG9wZXItcmVmZXJlbmNlL2FsaXl1bi1rbXMta2V5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5UHJvcHMge1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGVzY3JpcHRpb246IFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgQ01LLiBMZW5ndGggY29uc3RyYWludHM6IE1pbmltdW0gbGVuZ3RoIG9mIDAgY2hhcmFjdGVycy4gTWF4aW11bSBsZW5ndGggb2YgODE5MiBjaGFyYWN0ZXJzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGttc0luc3RhbmNlSWQ6IFRoZSBJRCBvZiB0aGUgZGVkaWNhdGVkIEtNUyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBka21zSW5zdGFuY2VJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGVuYWJsZTogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGtleSBpcyBlbmFibGVkLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuYWJsZT86IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBlbmFibGVBdXRvbWF0aWNSb3RhdGlvbjogV2hldGhlciB0byBlbmFibGUgYXV0b21hdGljIGtleSByb3RhdGlvbi4gVmFsaWQgdmFsdWU6IHRydWVcXC9mYWxzZSAoZGVmYXVsdClcbiAgICAgKi9cbiAgICByZWFkb25seSBlbmFibGVBdXRvbWF0aWNSb3RhdGlvbj86IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBrZXlTcGVjOiBLZXkgdHlwZS4gVmFsaWQgdmFsdWU6IEFsaXl1bl9BRVNfMjU2XFwvQWxpeXVuX1NNNFxcL1JTQV8yMDQ4XFwvRUNfUDI1NlxcL0VDX1AyNTZLXFwvRUNfU00yXG4gICAgICovXG4gICAgcmVhZG9ubHkga2V5U3BlYz86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGtleVVzYWdlOiBUaGUgdXNhZ2Ugb2YgdGhlIENNSy4gVmFsaWQgdmFsdWVzOlxuICAgICAqIEVOQ1JZUFRcXC9ERUNSWVBUOiBlbmNyeXB0cyBvciBkZWNyeXB0cyBkYXRhLlxuICAgICAqIFNJR05cXC9WRVJJRlk6IGdlbmVyYXRlcyBvciB2ZXJpZmllcyBhIGRpZ2l0YWwgc2lnbmF0dXJlLlxuICAgICAqIElmIHRoZSBDTUsgc3VwcG9ydHMgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiwgdGhlIGRlZmF1bHQgdmFsdWUgaXMgU0lHTlxcL1ZFUklGWS4gSWYgdGhlIENNSyBkb2VzIG5vdCBzdXBwb3J0IHNpZ25hdHVyZSB2ZXJpZmljYXRpb24sIHRoZSBkZWZhdWx0IHZhbHVlIGlzIEVOQ1JZUFRcXC9ERUNSWVBULlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGtleVVzYWdlPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGVuZGluZ1dpbmRvd0luRGF5czogVGhlIHdhaXRpbmcgcGVyaW9kLCBzcGVjaWZpZWQgaW4gbnVtYmVyIG9mIGRheXMuIER1cmluZyB0aGlzIHBlcmlvZCwgeW91IGNhbiBjYW5jZWwgdGhlIENNSyBpbiBQZW5kaW5nRGVsZXRpb24gc3RhdHVzLiBBZnRlciB0aGUgd2FpdGluZyBwZXJpb2QgZXhwaXJlcywgeW91IGNhbm5vdCBjYW5jZWwgdGhlIGRlbGV0aW9uLiBUaGUgdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDcgYW5kIDM2Ni4gRGVmYXVsdCB2YWx1ZSBpcyAzMC5cbiAgICAgKi9cbiAgICByZWFkb25seSBwZW5kaW5nV2luZG93SW5EYXlzPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcHJvdGVjdGlvbkxldmVsOiBUaGUgcHJvdGVjdGlvbiBsZXZlbCBvZiB0aGUgQ01LIHRvIGNyZWF0ZS4gVmFsaWQgdmFsdWU6IFNPRlRXQVJFIGFuZCBIU00uIFdoZW4gdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIEhTTTpcbiAgICAgKiBJZiB0aGUgT3JpZ2luIHBhcmFtZXRlciBpcyBzZXQgdG8gQWxpeXVuX0tNUywgdGhlIENNSyBpcyBjcmVhdGVkIGluIE1hbmFnZWQgSFNNLlxuICAgICAqIElmIHRoZSBPcmlnaW4gcGFyYW1ldGVyIGlzIHNldCB0byBFWFRFUk5BTCwgeW91IGNhbiBpbXBvcnQgZXh0ZXJuYWwga2V5cyB0byBNYW5hZ2VkIEhTTS5cbiAgICAgKi9cbiAgICByZWFkb25seSBwcm90ZWN0aW9uTGV2ZWw/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSByb3RhdGlvbkludGVydmFsOiBUaGUgdGltZSBwZXJpb2QgZm9yIGF1dG9tYXRpYyByb3RhdGlvbi4gVGhlIGZvcm1hdCBpcyBpbnRlZ2VyW3VuaXRdLCB3aGVyZSBpbnRlZ2VyIHJlcHJlc2VudHMgdGhlIGxlbmd0aCBvZiB0aW1lIGFuZCB1bml0IHJlcHJlc2VudHMgdGhlIHRpbWUgdW5pdC4gVGhlIGxlZ2FsIHVuaXQgdW5pdHMgYXJlOiBkIChkYXkpLCBoIChob3VyKSwgbSAobWludXRlKSwgcyAoc2Vjb25kKS4gN2Qgb3IgNjA0ODAwcyBib3RoIHJlcHJlc2VudCBhIDctZGF5IGN5Y2xlLiBWYWx1ZTogN343MzAgZGF5cy5cbiAgICAgKi9cbiAgICByZWFkb25seSByb3RhdGlvbkludGVydmFsPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xufVxuXG4vKipcbiAqIFRoaXMgY2xhc3MgZW5jYXBzdWxhdGVzIGFuZCBleHRlbmRzIHRoZSBST1MgcmVzb3VyY2UgdHlwZSBgQUxJWVVOOjpLTVM6OktleWAsIHdoaWNoIGlzIHVzZWQgdG8gY3JlYXRlIGEgY3VzdG9tZXIgbWFzdGVyIGtleSAoQ01LKS5cbiAqIEBOb3RlIFRoaXMgY2xhc3MgbWF5IGhhdmUgc29tZSBuZXcgZnVuY3Rpb25zIHRvIGZhY2lsaXRhdGUgZGV2ZWxvcG1lbnQsIHNvIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGlzIGNsYXNzIGluc3RlYWQgb2YgYFJvc0tleWBmb3IgYSBtb3JlIGNvbnZlbmllbnQgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZS5cbiAqIFNlZSBodHRwczovL3d3dy5hbGliYWJhY2xvdWQuY29tL2hlbHAvcm9zL2RldmVsb3Blci1yZWZlcmVuY2UvYWxpeXVuLWttcy1rZXlcbiAqL1xuZXhwb3J0IGNsYXNzIEtleSBleHRlbmRzIHJvcy5SZXNvdXJjZSB7XG4gICAgcHJvdGVjdGVkIHNjb3BlOiByb3MuQ29uc3RydWN0O1xuICAgIHByb3RlY3RlZCBpZDogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBwcm9wczogS2V5UHJvcHM7XG4gICAgcHJvdGVjdGVkIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIEtleUlkOiBUaGUgZ2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBDTUsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJLZXlJZDogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW0gc2NvcGUgLSBzY29wZSBpbiB3aGljaCB0aGlzIHJlc291cmNlIGlzIGRlZmluZWRcbiAgICAgKiBQYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2VcbiAgICAgKiBQYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogcm9zLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEtleVByb3BzID0ge30sIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OmJvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgICAgIHRoaXMuc2NvcGUgPSBzY29wZTtcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgICAgIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgPSBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDtcblxuICAgICAgICBjb25zdCByb3NLZXkgPSBuZXcgUm9zS2V5KHRoaXMsIGlkLCAge1xuICAgICAgICAgICAgcHJvdGVjdGlvbkxldmVsOiBwcm9wcy5wcm90ZWN0aW9uTGV2ZWwsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICByb3RhdGlvbkludGVydmFsOiBwcm9wcy5yb3RhdGlvbkludGVydmFsLFxuICAgICAgICAgICAgcGVuZGluZ1dpbmRvd0luRGF5czogcHJvcHMucGVuZGluZ1dpbmRvd0luRGF5cyA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnBlbmRpbmdXaW5kb3dJbkRheXMgPT09IG51bGwgPyAzMCA6IHByb3BzLnBlbmRpbmdXaW5kb3dJbkRheXMsXG4gICAgICAgICAgICBlbmFibGVBdXRvbWF0aWNSb3RhdGlvbjogcHJvcHMuZW5hYmxlQXV0b21hdGljUm90YXRpb24sXG4gICAgICAgICAgICBrZXlTcGVjOiBwcm9wcy5rZXlTcGVjLFxuICAgICAgICAgICAgZW5hYmxlOiBwcm9wcy5lbmFibGUgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5lbmFibGUgPT09IG51bGwgPyB0cnVlIDogcHJvcHMuZW5hYmxlLFxuICAgICAgICAgICAga2V5VXNhZ2U6IHByb3BzLmtleVVzYWdlLFxuICAgICAgICAgICAgZGttc0luc3RhbmNlSWQ6IHByb3BzLmRrbXNJbnN0YW5jZUlkLFxuICAgICAgICB9LCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCAmJiB0aGlzLnN0YWNrLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJvc0tleTtcbiAgICAgICAgdGhpcy5hdHRyS2V5SWQgPSByb3NLZXkuYXR0cktleUlkO1xuICAgIH1cbn1cbiJdfQ==
|
package/lib/kms.generated.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as ros from '@alicloud/ros-cdk-core';
|
|
2
2
|
/**
|
|
3
|
-
* Properties for defining a `
|
|
3
|
+
* Properties for defining a `RosAlias`.
|
|
4
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-alias
|
|
4
5
|
*/
|
|
5
6
|
export interface RosAliasProps {
|
|
6
7
|
/**
|
|
7
|
-
* @Property aliasName: - The display name of the key. You can use the alias to call APIs such as Encrypt, GenerateDataKey, and DescribeKey. - Not including the prefix, the minimum length of an alias is 1 and the maximum length is 255. - The prefix alias
|
|
8
|
+
* @Property aliasName: - The display name of the key. You can use the alias to call APIs such as Encrypt, GenerateDataKey, and DescribeKey. - Not including the prefix, the minimum length of an alias is 1 and the maximum length is 255. - The prefix alias\/ must be included.
|
|
8
9
|
*/
|
|
9
10
|
readonly aliasName: string | ros.IResolvable;
|
|
10
11
|
/**
|
|
@@ -13,20 +14,18 @@ export interface RosAliasProps {
|
|
|
13
14
|
readonly keyId: string | ros.IResolvable;
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
16
|
-
*
|
|
17
|
+
* This class is a base encapsulation around the ROS resource type `ALIYUN::KMS::Alias`, which is used to create an alias for a Customer Master Key (CMK).
|
|
18
|
+
* @Note This class does not contain additional functions, so it is recommended to use the `Alias` class instead of this class for a more convenient development experience.
|
|
19
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-alias
|
|
17
20
|
*/
|
|
18
21
|
export declare class RosAlias extends ros.RosResource {
|
|
19
22
|
/**
|
|
20
23
|
* The resource type name for this resource class.
|
|
21
24
|
*/
|
|
22
25
|
static readonly ROS_RESOURCE_TYPE_NAME = "ALIYUN::KMS::Alias";
|
|
23
|
-
/**
|
|
24
|
-
* A factory method that creates a new instance of this class from an object
|
|
25
|
-
* containing the properties of this ROS resource.
|
|
26
|
-
*/
|
|
27
26
|
enableResourcePropertyConstraint: boolean;
|
|
28
27
|
/**
|
|
29
|
-
* @Property aliasName: - The display name of the key. You can use the alias to call APIs such as Encrypt, GenerateDataKey, and DescribeKey. - Not including the prefix, the minimum length of an alias is 1 and the maximum length is 255. - The prefix alias
|
|
28
|
+
* @Property aliasName: - The display name of the key. You can use the alias to call APIs such as Encrypt, GenerateDataKey, and DescribeKey. - Not including the prefix, the minimum length of an alias is 1 and the maximum length is 255. - The prefix alias\/ must be included.
|
|
30
29
|
*/
|
|
31
30
|
aliasName: string | ros.IResolvable;
|
|
32
31
|
/**
|
|
@@ -34,8 +33,6 @@ export declare class RosAlias extends ros.RosResource {
|
|
|
34
33
|
*/
|
|
35
34
|
keyId: string | ros.IResolvable;
|
|
36
35
|
/**
|
|
37
|
-
* Create a new `ALIYUN::KMS::Alias`.
|
|
38
|
-
*
|
|
39
36
|
* @param scope - scope in which this resource is defined
|
|
40
37
|
* @param id - scoped id of the resource
|
|
41
38
|
* @param props - resource properties
|
|
@@ -51,7 +48,8 @@ export declare class RosAlias extends ros.RosResource {
|
|
|
51
48
|
};
|
|
52
49
|
}
|
|
53
50
|
/**
|
|
54
|
-
* Properties for defining a `
|
|
51
|
+
* Properties for defining a `RosKey`.
|
|
52
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-key
|
|
55
53
|
*/
|
|
56
54
|
export interface RosKeyProps {
|
|
57
55
|
/**
|
|
@@ -67,18 +65,18 @@ export interface RosKeyProps {
|
|
|
67
65
|
*/
|
|
68
66
|
readonly enable?: boolean | ros.IResolvable;
|
|
69
67
|
/**
|
|
70
|
-
* @Property enableAutomaticRotation: Whether to enable automatic key rotation. Valid value: true
|
|
68
|
+
* @Property enableAutomaticRotation: Whether to enable automatic key rotation. Valid value: true\/false (default)
|
|
71
69
|
*/
|
|
72
70
|
readonly enableAutomaticRotation?: boolean | ros.IResolvable;
|
|
73
71
|
/**
|
|
74
|
-
* @Property keySpec: Key type. Valid value: Aliyun_AES_256
|
|
72
|
+
* @Property keySpec: Key type. Valid value: Aliyun_AES_256\/Aliyun_SM4\/RSA_2048\/EC_P256\/EC_P256K\/EC_SM2
|
|
75
73
|
*/
|
|
76
74
|
readonly keySpec?: string | ros.IResolvable;
|
|
77
75
|
/**
|
|
78
76
|
* @Property keyUsage: The usage of the CMK. Valid values:
|
|
79
|
-
* ENCRYPT
|
|
80
|
-
* SIGN
|
|
81
|
-
* If the CMK supports signature verification, the default value is SIGN
|
|
77
|
+
* ENCRYPT\/DECRYPT: encrypts or decrypts data.
|
|
78
|
+
* SIGN\/VERIFY: generates or verifies a digital signature.
|
|
79
|
+
* If the CMK supports signature verification, the default value is SIGN\/VERIFY. If the CMK does not support signature verification, the default value is ENCRYPT\/DECRYPT.
|
|
82
80
|
*/
|
|
83
81
|
readonly keyUsage?: string | ros.IResolvable;
|
|
84
82
|
/**
|
|
@@ -97,17 +95,15 @@ export interface RosKeyProps {
|
|
|
97
95
|
readonly rotationInterval?: string | ros.IResolvable;
|
|
98
96
|
}
|
|
99
97
|
/**
|
|
100
|
-
*
|
|
98
|
+
* This class is a base encapsulation around the ROS resource type `ALIYUN::KMS::Key`, which is used to create a customer master key (CMK).
|
|
99
|
+
* @Note This class does not contain additional functions, so it is recommended to use the `Key` class instead of this class for a more convenient development experience.
|
|
100
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-key
|
|
101
101
|
*/
|
|
102
102
|
export declare class RosKey extends ros.RosResource {
|
|
103
103
|
/**
|
|
104
104
|
* The resource type name for this resource class.
|
|
105
105
|
*/
|
|
106
106
|
static readonly ROS_RESOURCE_TYPE_NAME = "ALIYUN::KMS::Key";
|
|
107
|
-
/**
|
|
108
|
-
* A factory method that creates a new instance of this class from an object
|
|
109
|
-
* containing the properties of this ROS resource.
|
|
110
|
-
*/
|
|
111
107
|
/**
|
|
112
108
|
* @Attribute KeyId: The globally unique identifier for the CMK.
|
|
113
109
|
*/
|
|
@@ -126,18 +122,18 @@ export declare class RosKey extends ros.RosResource {
|
|
|
126
122
|
*/
|
|
127
123
|
enable: boolean | ros.IResolvable | undefined;
|
|
128
124
|
/**
|
|
129
|
-
* @Property enableAutomaticRotation: Whether to enable automatic key rotation. Valid value: true
|
|
125
|
+
* @Property enableAutomaticRotation: Whether to enable automatic key rotation. Valid value: true\/false (default)
|
|
130
126
|
*/
|
|
131
127
|
enableAutomaticRotation: boolean | ros.IResolvable | undefined;
|
|
132
128
|
/**
|
|
133
|
-
* @Property keySpec: Key type. Valid value: Aliyun_AES_256
|
|
129
|
+
* @Property keySpec: Key type. Valid value: Aliyun_AES_256\/Aliyun_SM4\/RSA_2048\/EC_P256\/EC_P256K\/EC_SM2
|
|
134
130
|
*/
|
|
135
131
|
keySpec: string | ros.IResolvable | undefined;
|
|
136
132
|
/**
|
|
137
133
|
* @Property keyUsage: The usage of the CMK. Valid values:
|
|
138
|
-
* ENCRYPT
|
|
139
|
-
* SIGN
|
|
140
|
-
* If the CMK supports signature verification, the default value is SIGN
|
|
134
|
+
* ENCRYPT\/DECRYPT: encrypts or decrypts data.
|
|
135
|
+
* SIGN\/VERIFY: generates or verifies a digital signature.
|
|
136
|
+
* If the CMK supports signature verification, the default value is SIGN\/VERIFY. If the CMK does not support signature verification, the default value is ENCRYPT\/DECRYPT.
|
|
141
137
|
*/
|
|
142
138
|
keyUsage: string | ros.IResolvable | undefined;
|
|
143
139
|
/**
|
|
@@ -155,8 +151,6 @@ export declare class RosKey extends ros.RosResource {
|
|
|
155
151
|
*/
|
|
156
152
|
rotationInterval: string | ros.IResolvable | undefined;
|
|
157
153
|
/**
|
|
158
|
-
* Create a new `ALIYUN::KMS::Key`.
|
|
159
|
-
*
|
|
160
154
|
* @param scope - scope in which this resource is defined
|
|
161
155
|
* @param id - scoped id of the resource
|
|
162
156
|
* @param props - resource properties
|
|
@@ -172,7 +166,8 @@ export declare class RosKey extends ros.RosResource {
|
|
|
172
166
|
};
|
|
173
167
|
}
|
|
174
168
|
/**
|
|
175
|
-
* Properties for defining a `
|
|
169
|
+
* Properties for defining a `RosSecret`.
|
|
170
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-secret
|
|
176
171
|
*/
|
|
177
172
|
export interface RosSecretProps {
|
|
178
173
|
/**
|
|
@@ -252,17 +247,15 @@ export interface RosSecretProps {
|
|
|
252
247
|
readonly versionStages?: Array<string | ros.IResolvable> | ros.IResolvable;
|
|
253
248
|
}
|
|
254
249
|
/**
|
|
255
|
-
*
|
|
250
|
+
* This class is a base encapsulation around the ROS resource type `ALIYUN::KMS::Secret`, which is used to create a secret and store the initial version of the secret.
|
|
251
|
+
* @Note This class does not contain additional functions, so it is recommended to use the `Secret` class instead of this class for a more convenient development experience.
|
|
252
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-secret
|
|
256
253
|
*/
|
|
257
254
|
export declare class RosSecret extends ros.RosResource {
|
|
258
255
|
/**
|
|
259
256
|
* The resource type name for this resource class.
|
|
260
257
|
*/
|
|
261
258
|
static readonly ROS_RESOURCE_TYPE_NAME = "ALIYUN::KMS::Secret";
|
|
262
|
-
/**
|
|
263
|
-
* A factory method that creates a new instance of this class from an object
|
|
264
|
-
* containing the properties of this ROS resource.
|
|
265
|
-
*/
|
|
266
259
|
/**
|
|
267
260
|
* @Attribute Arn: The Alibaba Cloud Resource Name (ARN).
|
|
268
261
|
*/
|
|
@@ -348,8 +341,6 @@ export declare class RosSecret extends ros.RosResource {
|
|
|
348
341
|
*/
|
|
349
342
|
versionStages: Array<string | ros.IResolvable> | ros.IResolvable | undefined;
|
|
350
343
|
/**
|
|
351
|
-
* Create a new `ALIYUN::KMS::Secret`.
|
|
352
|
-
*
|
|
353
344
|
* @param scope - scope in which this resource is defined
|
|
354
345
|
* @param id - scoped id of the resource
|
|
355
346
|
* @param props - resource properties
|
package/lib/kms.generated.js
CHANGED
|
@@ -49,12 +49,12 @@ function rosAliasPropsToRosTemplate(properties, enableResourcePropertyConstraint
|
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
|
-
*
|
|
52
|
+
* This class is a base encapsulation around the ROS resource type `ALIYUN::KMS::Alias`, which is used to create an alias for a Customer Master Key (CMK).
|
|
53
|
+
* @Note This class does not contain additional functions, so it is recommended to use the `Alias` class instead of this class for a more convenient development experience.
|
|
54
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-alias
|
|
53
55
|
*/
|
|
54
56
|
class RosAlias extends ros.RosResource {
|
|
55
57
|
/**
|
|
56
|
-
* Create a new `ALIYUN::KMS::Alias`.
|
|
57
|
-
*
|
|
58
58
|
* @param scope - scope in which this resource is defined
|
|
59
59
|
* @param id - scoped id of the resource
|
|
60
60
|
* @param props - resource properties
|
|
@@ -145,12 +145,12 @@ function rosKeyPropsToRosTemplate(properties, enableResourcePropertyConstraint)
|
|
|
145
145
|
};
|
|
146
146
|
}
|
|
147
147
|
/**
|
|
148
|
-
*
|
|
148
|
+
* This class is a base encapsulation around the ROS resource type `ALIYUN::KMS::Key`, which is used to create a customer master key (CMK).
|
|
149
|
+
* @Note This class does not contain additional functions, so it is recommended to use the `Key` class instead of this class for a more convenient development experience.
|
|
150
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-key
|
|
149
151
|
*/
|
|
150
152
|
class RosKey extends ros.RosResource {
|
|
151
153
|
/**
|
|
152
|
-
* Create a new `ALIYUN::KMS::Key`.
|
|
153
|
-
*
|
|
154
154
|
* @param scope - scope in which this resource is defined
|
|
155
155
|
* @param id - scoped id of the resource
|
|
156
156
|
* @param props - resource properties
|
|
@@ -268,12 +268,12 @@ function rosSecretPropsToRosTemplate(properties, enableResourcePropertyConstrain
|
|
|
268
268
|
};
|
|
269
269
|
}
|
|
270
270
|
/**
|
|
271
|
-
*
|
|
271
|
+
* This class is a base encapsulation around the ROS resource type `ALIYUN::KMS::Secret`, which is used to create a secret and store the initial version of the secret.
|
|
272
|
+
* @Note This class does not contain additional functions, so it is recommended to use the `Secret` class instead of this class for a more convenient development experience.
|
|
273
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-secret
|
|
272
274
|
*/
|
|
273
275
|
class RosSecret extends ros.RosResource {
|
|
274
276
|
/**
|
|
275
|
-
* Create a new `ALIYUN::KMS::Secret`.
|
|
276
|
-
*
|
|
277
277
|
* @param scope - scope in which this resource is defined
|
|
278
278
|
* @param id - scoped id of the resource
|
|
279
279
|
* @param props - resource properties
|
|
@@ -325,4 +325,4 @@ exports.RosSecret = RosSecret;
|
|
|
325
325
|
* The resource type name for this resource class.
|
|
326
326
|
*/
|
|
327
327
|
RosSecret.ROS_RESOURCE_TYPE_NAME = "ALIYUN::KMS::Secret";
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImttcy5nZW5lcmF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlEQUF5RDs7O0FBRXpELDhDQUE4QztBQWtCOUM7Ozs7OztHQU1HO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxVQUFlO0lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxHQUFHLENBQUMsa0JBQWtCLENBQUM7S0FBRTtJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRyxJQUFHLFVBQVUsQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxFQUFFO1FBQzVHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbEUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTTtZQUNqQyxHQUFHLEVBQUUsQ0FBQztZQUNOLEdBQUcsRUFBRSxHQUFHO1NBQ1QsQ0FBQyxDQUFDLENBQUM7S0FDVDtJQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDN0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFH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ZWQgZnJvbSB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIFNwZWNpZmljYXRpb25cblxuaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgYEFMSVlVTjo6S01TOjpBbGlhc2BcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3NBbGlhc1Byb3BzIHtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBhbGlhc05hbWU6IC0gVGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUga2V5LiBZb3UgY2FuIHVzZSB0aGUgYWxpYXMgdG8gY2FsbCBBUElzIHN1Y2ggYXMgRW5jcnlwdCwgR2VuZXJhdGVEYXRhS2V5LCBhbmQgRGVzY3JpYmVLZXkuIC0gTm90IGluY2x1ZGluZyB0aGUgcHJlZml4LCB0aGUgbWluaW11bSBsZW5ndGggb2YgYW4gYWxpYXMgaXMgMSBhbmQgdGhlIG1heGltdW0gbGVuZ3RoIGlzIDI1NS4gLSBUaGUgcHJlZml4IGFsaWFzLyBtdXN0IGJlIGluY2x1ZGVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFsaWFzTmFtZTogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGtleUlkOiBHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQ01LLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGtleUlkOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGdpdmVuIHByb3BlcnRpZXMgbWF0Y2ggdGhvc2Ugb2YgYSBgUm9zQWxpYXNQcm9wc2BcbiAqXG4gKiBAcGFyYW0gcHJvcGVydGllcyAtIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgUm9zQWxpYXNQcm9wc2BcbiAqXG4gKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSB2YWxpZGF0aW9uLlxuICovXG5mdW5jdGlvbiBSb3NBbGlhc1Byb3BzVmFsaWRhdG9yKHByb3BlcnRpZXM6IGFueSk6IHJvcy5WYWxpZGF0aW9uUmVzdWx0IHtcbiAgICBpZiAoIXJvcy5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiByb3MuVkFMSURBVElPTl9TVUNDRVNTOyB9XG4gICAgY29uc3QgZXJyb3JzID0gbmV3IHJvcy5WYWxpZGF0aW9uUmVzdWx0cygpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignYWxpYXNOYW1lJywgcm9zLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLmFsaWFzTmFtZSkpO1xuICAgIGlmKHByb3BlcnRpZXMuYWxpYXNOYW1lICYmIChBcnJheS5pc0FycmF5KHByb3BlcnRpZXMuYWxpYXNOYW1lKSB8fCAodHlwZW9mIHByb3BlcnRpZXMuYWxpYXNOYW1lKSA9PT0gJ3N0cmluZycpKSB7XG4gICAgICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignYWxpYXNOYW1lJywgcm9zLnZhbGlkYXRlTGVuZ3RoKSh7XG4gICAgICAgICAgICBkYXRhOiBwcm9wZXJ0aWVzLmFsaWFzTmFtZS5sZW5ndGgsXG4gICAgICAgICAgICBtaW46IDEsXG4gICAgICAgICAgICBtYXg6IDI1NSxcbiAgICAgICAgICB9KSk7XG4gICAgfVxuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignYWxpYXNOYW1lJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmFsaWFzTmFtZSkpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcigna2V5SWQnLCByb3MucmVxdWlyZWRWYWxpZGF0b3IpKHByb3BlcnRpZXMua2V5SWQpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2tleUlkJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmtleUlkKSk7XG4gICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlJvc0FsaWFzUHJvcHNcIicpO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgdGhlIEFsaUNsb3VkIFJPUyBSZXNvdXJjZSBwcm9wZXJ0aWVzIG9mIGFuIGBBTElZVU46OktNUzo6QWxpYXNgIHJlc291cmNlXG4gKlxuICogQHBhcmFtIHByb3BlcnRpZXMgLSB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYFJvc0FsaWFzUHJvcHNgXG4gKlxuICogQHJldHVybnMgdGhlIEFsaUNsb3VkIFJPUyBSZXNvdXJjZSBwcm9wZXJ0aWVzIG9mIGFuIGBBTElZVU46OktNUzo6QWxpYXNgIHJlc291cmNlLlxuICovXG4vLyBAdHMtaWdub3JlIFRTNjEzM1xuZnVuY3Rpb24gcm9zQWxpYXNQcm9wc1RvUm9zVGVtcGxhdGUocHJvcGVydGllczogYW55LCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbik6IGFueSB7XG4gICAgaWYgKCFyb3MuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcHJvcGVydGllczsgfVxuICAgIGlmKGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KSB7XG4gICAgICAgIFJvc0FsaWFzUHJvcHNWYWxpZGF0b3IocHJvcGVydGllcykuYXNzZXJ0U3VjY2VzcygpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgQWxpYXNOYW1lOiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLmFsaWFzTmFtZSksXG4gICAgICBLZXlJZDogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5rZXlJZCksXG4gICAgfTtcbn1cblxuLyoqXG4gKiBBIFJPUyB0ZW1wbGF0ZSB0eXBlOiAgYEFMSVlVTjo6S01TOjpBbGlhc2BcbiAqL1xuZXhwb3J0IGNsYXNzIFJvc0FsaWFzIGV4dGVuZHMgcm9zLlJvc1Jlc291cmNlIHtcbiAgICAvKipcbiAgICAgKiBUaGUgcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUk9TX1JFU09VUkNFX1RZUEVfTkFNRSA9IFwiQUxJWVVOOjpLTVM6OkFsaWFzXCI7XG5cbiAgICAvKipcbiAgICAgKiBBIGZhY3RvcnkgbWV0aG9kIHRoYXQgY3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGZyb20gYW4gb2JqZWN0XG4gICAgICogY29udGFpbmluZyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIFJPUyByZXNvdXJjZS5cbiAgICAgKi9cblxuICAgIHB1YmxpYyBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbjtcblxuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGFsaWFzTmFtZTogLSBUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBrZXkuIFlvdSBjYW4gdXNlIHRoZSBhbGlhcyB0byBjYWxsIEFQSXMgc3VjaCBhcyBFbmNyeXB0LCBHZW5lcmF0ZURhdGFLZXksIGFuZCBEZXNjcmliZUtleS4gLSBOb3QgaW5jbHVkaW5nIHRoZSBwcmVmaXgsIHRoZSBtaW5pbXVtIGxlbmd0aCBvZiBhbiBhbGlhcyBpcyAxIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggaXMgMjU1LiAtIFRoZSBwcmVmaXggYWxpYXMvIG11c3QgYmUgaW5jbHVkZWQuXG4gICAgICovXG4gICAgcHVibGljIGFsaWFzTmFtZTogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGtleUlkOiBHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgQ01LLlxuICAgICAqL1xuICAgIHB1YmxpYyBrZXlJZDogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGBBTElZVU46OktNUzo6QWxpYXNgLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAgICogQHBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogcm9zLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJvc0FsaWFzUHJvcHMsIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OiBib29sZWFuKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCwgeyB0eXBlOiBSb3NBbGlhcy5ST1NfUkVTT1VSQ0VfVFlQRV9OQU1FLCBwcm9wZXJ0aWVzOiBwcm9wcyB9KTtcblxuICAgICAgICB0aGlzLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50ID0gZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ7XG4gICAgICAgIHRoaXMuYWxpYXNOYW1lID0gcHJvcHMuYWxpYXNOYW1lO1xuICAgICAgICB0aGlzLmtleUlkID0gcHJvcHMua2V5SWQ7XG4gICAgfVxuXG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHJvc1Byb3BlcnRpZXMoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSAge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWxpYXNOYW1lOiB0aGlzLmFsaWFzTmFtZSxcbiAgICAgICAgICAgIGtleUlkOiB0aGlzLmtleUlkLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgcmVuZGVyUHJvcGVydGllcyhwcm9wczoge1trZXk6IHN0cmluZ106IGFueX0pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ICB7XG4gICAgICAgIHJldHVybiByb3NBbGlhc1Byb3BzVG9Sb3NUZW1wbGF0ZShwcm9wcywgdGhpcy5lbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCk7XG4gICAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgYEFMSVlVTjo6S01TOjpLZXlgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9zS2V5UHJvcHMge1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGRlc2NyaXB0aW9uOiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIENNSy4gTGVuZ3RoIGNvbnN0cmFpbnRzOiBNaW5pbXVtIGxlbmd0aCBvZiAwIGNoYXJhY3RlcnMuIE1heGltdW0gbGVuZ3RoIG9mIDgxOTIgY2hhcmFjdGVycy5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBka21zSW5zdGFuY2VJZDogVGhlIElEIG9mIHRoZSBkZWRpY2F0ZWQgS01TIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRrbXNJbnN0YW5jZUlkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGVuYWJsZTogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGtleSBpcyBlbmFibGVkLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuYWJsZT86IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgZW5hYmxlQXV0b21hdGljUm90YXRpb246IFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyBrZXkgcm90YXRpb24uIFZhbGlkIHZhbHVlOiB0cnVlL2ZhbHNlIChkZWZhdWx0KVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uPzogYm9vbGVhbiB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBrZXlTcGVjOiBLZXkgdHlwZS4gVmFsaWQgdmFsdWU6IEFsaXl1bl9BRVNfMjU2L0FsaXl1bl9TTTQvUlNBXzIwNDgvRUNfUDI1Ni9FQ19QMjU2Sy9FQ19TTTJcbiAgICAgKi9cbiAgICByZWFkb25seSBrZXlTcGVjPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGtleVVzYWdlOiBUaGUgdXNhZ2Ugb2YgdGhlIENNSy4gVmFsaWQgdmFsdWVzOlxuICAgICAqIEVOQ1JZUFQvREVDUllQVDogZW5jcnlwdHMgb3IgZGVjcnlwdHMgZGF0YS5cbiAgICAgKiBTSUdOL1ZFUklGWTogZ2VuZXJhdGVzIG9yIHZlcmlmaWVzIGEgZGlnaXRhbCBzaWduYXR1cmUuXG4gICAgICogSWYgdGhlIENNSyBzdXBwb3J0cyBzaWduYXR1cmUgdmVyaWZpY2F0aW9uLCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBTSUdOL1ZFUklGWS4gSWYgdGhlIENNSyBkb2VzIG5vdCBzdXBwb3J0IHNpZ25hdHVyZSB2ZXJpZmljYXRpb24sIHRoZSBkZWZhdWx0IHZhbHVlIGlzIEVOQ1JZUFQvREVDUllQVC5cbiAgICAgKi9cbiAgICByZWFkb25seSBrZXlVc2FnZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBwZW5kaW5nV2luZG93SW5EYXlzOiBUaGUgd2FpdGluZyBwZXJpb2QsIHNwZWNpZmllZCBpbiBudW1iZXIgb2YgZGF5cy4gRHVyaW5nIHRoaXMgcGVyaW9kLCB5b3UgY2FuIGNhbmNlbCB0aGUgQ01LIGluIFBlbmRpbmdEZWxldGlvbiBzdGF0dXMuIEFmdGVyIHRoZSB3YWl0aW5nIHBlcmlvZCBleHBpcmVzLCB5b3UgY2Fubm90IGNhbmNlbCB0aGUgZGVsZXRpb24uIFRoZSB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gNyBhbmQgMzY2LiBEZWZhdWx0IHZhbHVlIGlzIDMwLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBlbmRpbmdXaW5kb3dJbkRheXM/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgcHJvdGVjdGlvbkxldmVsOiBUaGUgcHJvdGVjdGlvbiBsZXZlbCBvZiB0aGUgQ01LIHRvIGNyZWF0ZS4gVmFsaWQgdmFsdWU6IFNPRlRXQVJFIGFuZCBIU00uIFdoZW4gdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIEhTTTpcbiAgICAgKiBJZiB0aGUgT3JpZ2luIHBhcmFtZXRlciBpcyBzZXQgdG8gQWxpeXVuX0tNUywgdGhlIENNSyBpcyBjcmVhdGVkIGluIE1hbmFnZWQgSFNNLlxuICAgICAqIElmIHRoZSBPcmlnaW4gcGFyYW1ldGVyIGlzIHNldCB0byBFWFRFUk5BTCwgeW91IGNhbiBpbXBvcnQgZXh0ZXJuYWwga2V5cyB0byBNYW5hZ2VkIEhTTS5cbiAgICAgKi9cbiAgICByZWFkb25seSBwcm90ZWN0aW9uTGV2ZWw/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgcm90YXRpb25JbnRlcnZhbDogVGhlIHRpbWUgcGVyaW9kIGZvciBhdXRvbWF0aWMgcm90YXRpb24uIFRoZSBmb3JtYXQgaXMgaW50ZWdlclt1bml0XSwgd2hlcmUgaW50ZWdlciByZXByZXNlbnRzIHRoZSBsZW5ndGggb2YgdGltZSBhbmQgdW5pdCByZXByZXNlbnRzIHRoZSB0aW1lIHVuaXQuIFRoZSBsZWdhbCB1bml0IHVuaXRzIGFyZTogZCAoZGF5KSwgaCAoaG91ciksIG0gKG1pbnV0ZSksIHMgKHNlY29uZCkuIDdkIG9yIDYwNDgwMHMgYm90aCByZXByZXNlbnQgYSA3LWRheSBjeWNsZS4gVmFsdWU6IDd+NzMwIGRheXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcm90YXRpb25JbnRlcnZhbD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaCB0aG9zZSBvZiBhIGBSb3NLZXlQcm9wc2BcbiAqXG4gKiBAcGFyYW0gcHJvcGVydGllcyAtIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgUm9zS2V5UHJvcHNgXG4gKlxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAqL1xuZnVuY3Rpb24gUm9zS2V5UHJvcHNWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogcm9zLlZhbGlkYXRpb25SZXN1bHQge1xuICAgIGlmICghcm9zLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHJvcy5WQUxJREFUSU9OX1NVQ0NFU1M7IH1cbiAgICBjb25zdCBlcnJvcnMgPSBuZXcgcm9zLlZhbGlkYXRpb25SZXN1bHRzKCk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdwcm90ZWN0aW9uTGV2ZWwnLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMucHJvdGVjdGlvbkxldmVsKSk7XG4gICAgaWYocHJvcGVydGllcy5kZXNjcmlwdGlvbiAmJiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzLmRlc2NyaXB0aW9uKSB8fCAodHlwZW9mIHByb3BlcnRpZXMuZGVzY3JpcHRpb24pID09PSAnc3RyaW5nJykpIHtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdkZXNjcmlwdGlvbicsIHJvcy52YWxpZGF0ZUxlbmd0aCkoe1xuICAgICAgICAgICAgZGF0YTogcHJvcGVydGllcy5kZXNjcmlwdGlvbi5sZW5ndGgsXG4gICAgICAgICAgICBtaW46IDAsXG4gICAgICAgICAgICBtYXg6IDgxOTIsXG4gICAgICAgICAgfSkpO1xuICAgIH1cbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2Rlc2NyaXB0aW9uJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmRlc2NyaXB0aW9uKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdyb3RhdGlvbkludGVydmFsJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLnJvdGF0aW9uSW50ZXJ2YWwpKTtcbiAgICBpZihwcm9wZXJ0aWVzLnBlbmRpbmdXaW5kb3dJbkRheXMgJiYgKHR5cGVvZiBwcm9wZXJ0aWVzLnBlbmRpbmdXaW5kb3dJbkRheXMpICE9PSAnb2JqZWN0Jykge1xuICAgICAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3BlbmRpbmdXaW5kb3dJbkRheXMnLCByb3MudmFsaWRhdGVSYW5nZSkoe1xuICAgICAgICAgICAgZGF0YTogcHJvcGVydGllcy5wZW5kaW5nV2luZG93SW5EYXlzLFxuICAgICAgICAgICAgbWluOiA3LFxuICAgICAgICAgICAgbWF4OiAzNjYsXG4gICAgICAgICAgfSkpO1xuICAgIH1cbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3BlbmRpbmdXaW5kb3dJbkRheXMnLCByb3MudmFsaWRhdGVOdW1iZXIpKHByb3BlcnRpZXMucGVuZGluZ1dpbmRvd0luRGF5cykpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignZW5hYmxlQXV0b21hdGljUm90YXRpb24nLCByb3MudmFsaWRhdGVCb29sZWFuKShwcm9wZXJ0aWVzLmVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdrZXlTcGVjJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmtleVNwZWMpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2VuYWJsZScsIHJvcy52YWxpZGF0ZUJvb2xlYW4pKHByb3BlcnRpZXMuZW5hYmxlKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdrZXlVc2FnZScsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5rZXlVc2FnZSkpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignZGttc0luc3RhbmNlSWQnLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuZGttc0luc3RhbmNlSWQpKTtcbiAgICByZXR1cm4gZXJyb3JzLndyYXAoJ3N1cHBsaWVkIHByb3BlcnRpZXMgbm90IGNvcnJlY3QgZm9yIFwiUm9zS2V5UHJvcHNcIicpO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgdGhlIEFsaUNsb3VkIFJPUyBSZXNvdXJjZSBwcm9wZXJ0aWVzIG9mIGFuIGBBTElZVU46OktNUzo6S2V5YCByZXNvdXJjZVxuICpcbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIC0gdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBSb3NLZXlQcm9wc2BcbiAqXG4gKiBAcmV0dXJucyB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIHByb3BlcnRpZXMgb2YgYW4gYEFMSVlVTjo6S01TOjpLZXlgIHJlc291cmNlLlxuICovXG4vLyBAdHMtaWdub3JlIFRTNjEzM1xuZnVuY3Rpb24gcm9zS2V5UHJvcHNUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXM6IGFueSwgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW4pOiBhbnkge1xuICAgIGlmICghcm9zLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHByb3BlcnRpZXM7IH1cbiAgICBpZihlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCkge1xuICAgICAgICBSb3NLZXlQcm9wc1ZhbGlkYXRvcihwcm9wZXJ0aWVzKS5hc3NlcnRTdWNjZXNzKCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBEZXNjcmlwdGlvbjogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5kZXNjcmlwdGlvbiksXG4gICAgICBES01TSW5zdGFuY2VJZDogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5ka21zSW5zdGFuY2VJZCksXG4gICAgICBFbmFibGU6IHJvcy5ib29sZWFuVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLmVuYWJsZSksXG4gICAgICBFbmFibGVBdXRvbWF0aWNSb3RhdGlvbjogcm9zLmJvb2xlYW5Ub1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMuZW5hYmxlQXV0b21hdGljUm90YXRpb24pLFxuICAgICAgS2V5U3BlYzogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5rZXlTcGVjKSxcbiAgICAgIEtleVVzYWdlOiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLmtleVVzYWdlKSxcbiAgICAgIFBlbmRpbmdXaW5kb3dJbkRheXM6IHJvcy5udW1iZXJUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMucGVuZGluZ1dpbmRvd0luRGF5cyksXG4gICAgICBQcm90ZWN0aW9uTGV2ZWw6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMucHJvdGVjdGlvbkxldmVsKSxcbiAgICAgIFJvdGF0aW9uSW50ZXJ2YWw6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMucm90YXRpb25JbnRlcnZhbCksXG4gICAgfTtcbn1cblxuLyoqXG4gKiBBIFJPUyB0ZW1wbGF0ZSB0eXBlOiAgYEFMSVlVTjo6S01TOjpLZXlgXG4gKi9cbmV4cG9ydCBjbGFzcyBSb3NLZXkgZXh0ZW5kcyByb3MuUm9zUmVzb3VyY2Uge1xuICAgIC8qKlxuICAgICAqIFRoZSByZXNvdXJjZSB0eXBlIG5hbWUgZm9yIHRoaXMgcmVzb3VyY2UgY2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBST1NfUkVTT1VSQ0VfVFlQRV9OQU1FID0gXCJBTElZVU46OktNUzo6S2V5XCI7XG5cbiAgICAvKipcbiAgICAgKiBBIGZhY3RvcnkgbWV0aG9kIHRoYXQgY3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGZyb20gYW4gb2JqZWN0XG4gICAgICogY29udGFpbmluZyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIFJPUyByZXNvdXJjZS5cbiAgICAgKi9cblxuICAgIC8qKlxuICAgICAqIEBBdHRyaWJ1dGUgS2V5SWQ6IFRoZSBnbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIENNSy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0cktleUlkOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICBwdWJsaWMgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW47XG5cblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBkZXNjcmlwdGlvbjogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBDTUsuIExlbmd0aCBjb25zdHJhaW50czogTWluaW11bSBsZW5ndGggb2YgMCBjaGFyYWN0ZXJzLiBNYXhpbXVtIGxlbmd0aCBvZiA4MTkyIGNoYXJhY3RlcnMuXG4gICAgICovXG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgZGttc0luc3RhbmNlSWQ6IFRoZSBJRCBvZiB0aGUgZGVkaWNhdGVkIEtNUyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGttc0luc3RhbmNlSWQ6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBlbmFibGU6IFNwZWNpZmllcyB3aGV0aGVyIHRoZSBrZXkgaXMgZW5hYmxlZC4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZW5hYmxlOiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uOiBXaGV0aGVyIHRvIGVuYWJsZSBhdXRvbWF0aWMga2V5IHJvdGF0aW9uLiBWYWxpZCB2YWx1ZTogdHJ1ZS9mYWxzZSAoZGVmYXVsdClcbiAgICAgKi9cbiAgICBwdWJsaWMgZW5hYmxlQXV0b21hdGljUm90YXRpb246IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkga2V5U3BlYzogS2V5IHR5cGUuIFZhbGlkIHZhbHVlOiBBbGl5dW5fQUVTXzI1Ni9BbGl5dW5fU000L1JTQV8yMDQ4L0VDX1AyNTYvRUNfUDI1NksvRUNfU00yXG4gICAgICovXG4gICAgcHVibGljIGtleVNwZWM6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBrZXlVc2FnZTogVGhlIHVzYWdlIG9mIHRoZSBDTUsuIFZhbGlkIHZhbHVlczpcbiAgICAgKiBFTkNSWVBUL0RFQ1JZUFQ6IGVuY3J5cHRzIG9yIGRlY3J5cHRzIGRhdGEuXG4gICAgICogU0lHTi9WRVJJRlk6IGdlbmVyYXRlcyBvciB2ZXJpZmllcyBhIGRpZ2l0YWwgc2lnbmF0dXJlLlxuICAgICAqIElmIHRoZSBDTUsgc3VwcG9ydHMgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiwgdGhlIGRlZmF1bHQgdmFsdWUgaXMgU0lHTi9WRVJJRlkuIElmIHRoZSBDTUsgZG9lcyBub3Qgc3VwcG9ydCBzaWduYXR1cmUgdmVyaWZpY2F0aW9uLCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBFTkNSWVBUL0RFQ1JZUFQuXG4gICAgICovXG4gICAgcHVibGljIGtleVVzYWdlOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgcGVuZGluZ1dpbmRvd0luRGF5czogVGhlIHdhaXRpbmcgcGVyaW9kLCBzcGVjaWZpZWQgaW4gbnVtYmVyIG9mIGRheXMuIER1cmluZyB0aGlzIHBlcmlvZCwgeW91IGNhbiBjYW5jZWwgdGhlIENNSyBpbiBQZW5kaW5nRGVsZXRpb24gc3RhdHVzLiBBZnRlciB0aGUgd2FpdGluZyBwZXJpb2QgZXhwaXJlcywgeW91IGNhbm5vdCBjYW5jZWwgdGhlIGRlbGV0aW9uLiBUaGUgdmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDcgYW5kIDM2Ni4gRGVmYXVsdCB2YWx1ZSBpcyAzMC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGVuZGluZ1dpbmRvd0luRGF5czogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHByb3RlY3Rpb25MZXZlbDogVGhlIHByb3RlY3Rpb24gbGV2ZWwgb2YgdGhlIENNSyB0byBjcmVhdGUuIFZhbGlkIHZhbHVlOiBTT0ZUV0FSRSBhbmQgSFNNLiBXaGVuIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBIU006XG4gICAgICogSWYgdGhlIE9yaWdpbiBwYXJhbWV0ZXIgaXMgc2V0IHRvIEFsaXl1bl9LTVMsIHRoZSBDTUsgaXMgY3JlYXRlZCBpbiBNYW5hZ2VkIEhTTS5cbiAgICAgKiBJZiB0aGUgT3JpZ2luIHBhcmFtZXRlciBpcyBzZXQgdG8gRVhURVJOQUwsIHlvdSBjYW4gaW1wb3J0IGV4dGVybmFsIGtleXMgdG8gTWFuYWdlZCBIU00uXG4gICAgICovXG4gICAgcHVibGljIHByb3RlY3Rpb25MZXZlbDogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHJvdGF0aW9uSW50ZXJ2YWw6IFRoZSB0aW1lIHBlcmlvZCBmb3IgYXV0b21hdGljIHJvdGF0aW9uLiBUaGUgZm9ybWF0IGlzIGludGVnZXJbdW5pdF0sIHdoZXJlIGludGVnZXIgcmVwcmVzZW50cyB0aGUgbGVuZ3RoIG9mIHRpbWUgYW5kIHVuaXQgcmVwcmVzZW50cyB0aGUgdGltZSB1bml0LiBUaGUgbGVnYWwgdW5pdCB1bml0cyBhcmU6IGQgKGRheSksIGggKGhvdXIpLCBtIChtaW51dGUpLCBzIChzZWNvbmQpLiA3ZCBvciA2MDQ4MDBzIGJvdGggcmVwcmVzZW50IGEgNy1kYXkgY3ljbGUuIFZhbHVlOiA3fjczMCBkYXlzLlxuICAgICAqL1xuICAgIHB1YmxpYyByb3RhdGlvbkludGVydmFsOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgYEFMSVlVTjo6S01TOjpLZXlgLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAgICogQHBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogcm9zLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJvc0tleVByb3BzLCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbikge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQsIHsgdHlwZTogUm9zS2V5LlJPU19SRVNPVVJDRV9UWVBFX05BTUUsIHByb3BlcnRpZXM6IHByb3BzIH0pO1xuICAgICAgICB0aGlzLmF0dHJLZXlJZCA9IHRoaXMuZ2V0QXR0KCdLZXlJZCcpO1xuXG4gICAgICAgIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgPSBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDtcbiAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgICAgICB0aGlzLmRrbXNJbnN0YW5jZUlkID0gcHJvcHMuZGttc0luc3RhbmNlSWQ7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gcHJvcHMuZW5hYmxlO1xuICAgICAgICB0aGlzLmVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uID0gcHJvcHMuZW5hYmxlQXV0b21hdGljUm90YXRpb247XG4gICAgICAgIHRoaXMua2V5U3BlYyA9IHByb3BzLmtleVNwZWM7XG4gICAgICAgIHRoaXMua2V5VXNhZ2UgPSBwcm9wcy5rZXlVc2FnZTtcbiAgICAgICAgdGhpcy5wZW5kaW5nV2luZG93SW5EYXlzID0gcHJvcHMucGVuZGluZ1dpbmRvd0luRGF5cztcbiAgICAgICAgdGhpcy5wcm90ZWN0aW9uTGV2ZWwgPSBwcm9wcy5wcm90ZWN0aW9uTGV2ZWw7XG4gICAgICAgIHRoaXMucm90YXRpb25JbnRlcnZhbCA9IHByb3BzLnJvdGF0aW9uSW50ZXJ2YWw7XG4gICAgfVxuXG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHJvc1Byb3BlcnRpZXMoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSAge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBka21zSW5zdGFuY2VJZDogdGhpcy5ka21zSW5zdGFuY2VJZCxcbiAgICAgICAgICAgIGVuYWJsZTogdGhpcy5lbmFibGUsXG4gICAgICAgICAgICBlbmFibGVBdXRvbWF0aWNSb3RhdGlvbjogdGhpcy5lbmFibGVBdXRvbWF0aWNSb3RhdGlvbixcbiAgICAgICAgICAgIGtleVNwZWM6IHRoaXMua2V5U3BlYyxcbiAgICAgICAgICAgIGtleVVzYWdlOiB0aGlzLmtleVVzYWdlLFxuICAgICAgICAgICAgcGVuZGluZ1dpbmRvd0luRGF5czogdGhpcy5wZW5kaW5nV2luZG93SW5EYXlzLFxuICAgICAgICAgICAgcHJvdGVjdGlvbkxldmVsOiB0aGlzLnByb3RlY3Rpb25MZXZlbCxcbiAgICAgICAgICAgIHJvdGF0aW9uSW50ZXJ2YWw6IHRoaXMucm90YXRpb25JbnRlcnZhbCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIHJlbmRlclByb3BlcnRpZXMocHJvcHM6IHtba2V5OiBzdHJpbmddOiBhbnl9KTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSAge1xuICAgICAgICByZXR1cm4gcm9zS2V5UHJvcHNUb1Jvc1RlbXBsYXRlKHByb3BzLCB0aGlzLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KTtcbiAgICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBgQUxJWVVOOjpLTVM6OlNlY3JldGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3NTZWNyZXRQcm9wcyB7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgc2VjcmV0RGF0YTogVGhlIHZhbHVlIG9mIHRoZSBzZWNyZXQgdGhhdCB5b3Ugd2FudCB0byBjcmVhdGUuIFNlY3JldHMgTWFuYWdlciBlbmNyeXB0cyB0aGUgc2VjcmV0XG4gICAgICogdmFsdWUgYW5kIHN0b3JlcyBpdCBpbiB0aGUgaW5pdGlhbCB2ZXJzaW9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNlY3JldERhdGE6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBzZWNyZXROYW1lOiBUaGUgbmFtZSBvZiB0aGUgc2VjcmV0LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNlY3JldE5hbWU6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSB2ZXJzaW9uSWQ6IFRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGUgaW5pdGlhbCB2ZXJzaW9uLiBWZXJzaW9uIG51bWJlcnMgYXJlIHVuaXF1ZSBpbiBlYWNoIHNlY3JldFxuICAgICAqIG9iamVjdC5cbiAgICAgKi9cbiAgICByZWFkb25seSB2ZXJzaW9uSWQ6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBkZXNjcmlwdGlvbjogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBzZWNyZXQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgZGttc0luc3RhbmNlSWQ6IFRoZSBJRCBvZiB0aGUgZGVkaWNhdGVkIEtNUyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBka21zSW5zdGFuY2VJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBlbmFibGVBdXRvbWF0aWNSb3RhdGlvbjogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyByb3RhdGlvbi4gVmFsaWQgdmFsdWVzOlxuICAgICAqIHRydWU6IHNwZWNpZmllcyB0byBlbmFibGUgYXV0b21hdGljIHJvdGF0aW9uLlxuICAgICAqIGZhbHNlOiBzcGVjaWZpZXMgdG8gZGlzYWJsZSBhdXRvbWF0aWMgcm90YXRpb24uIFRoaXMgaXMgdGhlIGRlZmF1bHQgdmFsdWUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5hYmxlQXV0b21hdGljUm90YXRpb24/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGVuY3J5cHRpb25LZXlJZDogVGhlIElEIG9mIHRoZSBLTVMgQ01LIHRoYXQgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSBzZWNyZXQgdmFsdWUuXG4gICAgICogSWYgeW91IGRvIG5vdCBzcGVjaWZ5IHRoaXMgcGFyYW1ldGVyLCBTZWNyZXRzIE1hbmFnZXIgYXV0b21hdGljYWxseSBjcmVhdGVzIGFuIGVuY3J5cHRpb25cbiAgICAgKiBrZXkgdG8gZW5jcnlwdCB0aGUgc2VjcmV0LlxuICAgICAqIE5vdGUgVGhlIEtNUyBDTUsgbXVzdCBiZSBhIHN5bW1ldHJpYyBrZXkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5jcnlwdGlvbktleUlkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGV4dGVuZGVkQ29uZmlnOiBUaGUgZXh0ZW5kZWQgY29uZmlndXJhdGlvbiBvZiB0aGUgc2VjcmV0LiBUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlY3JldCBvZiB0aGUgc3BlY2lmaWMgdHlwZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBleHRlbmRlZENvbmZpZz86IHsgW2tleTogc3RyaW5nXTogKGFueSB8IHJvcy5JUmVzb2x2YWJsZSkgfSB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBmb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeTogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZm9yY2libHkgZGVsZXRlIHRoZSBzZWNyZXQuIElmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byB0cnVlLCB0aGUgc2VjcmV0IGNhbm5vdCBiZSByZWNvdmVyZWQuIFZhbGlkIHZhbHVlczpcbiAgICAgKiB0cnVlXG4gICAgICogZmFsc2UgKGRlZmF1bHQgdmFsdWUpXG4gICAgICovXG4gICAgcmVhZG9ubHkgZm9yY2VEZWxldGVXaXRob3V0UmVjb3Zlcnk/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHJlY292ZXJ5V2luZG93SW5EYXlzOiBTcGVjaWZpZXMgdGhlIHJlY292ZXJ5IHBlcmlvZCBvZiB0aGUgc2VjcmV0IGlmIHlvdSBkbyBub3QgZm9yY2libHkgZGVsZXRlIGl0LiBEZWZhdWx0IHZhbHVlOiAzMFxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlY292ZXJ5V2luZG93SW5EYXlzPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHJvdGF0aW9uSW50ZXJ2YWw6IFRoZSBpbnRlcnZhbCBmb3IgYXV0b21hdGljIHJvdGF0aW9uLiBWYWxpZCB2YWx1ZXM6IDYgaG91cnMgdG8gOCw3NjAgaG91cnMgKDM2NSBkYXlzKS5cbiAgICAgKiBUaGUgdmFsdWUgaXMgaW4gdGhlIGludGVnZXJbdW5pdF0gZm9ybWF0LlxuICAgICAqIFRoZSB1bml0IGNhbiBiZSBkIChkYXkpLCBoIChob3VyKSwgbSAobWludXRlKSwgb3IgcyAoc2Vjb25kKS4gRm9yIGV4YW1wbGUsIGJvdGggN2QgYW5kIDYwNDgwMHMgaW5kaWNhdGUgYSBzZXZlbi1kYXkgaW50ZXJ2YWwuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcm90YXRpb25JbnRlcnZhbD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBzZWNyZXREYXRhVHlwZTogVGhlIHR5cGUgb2YgdGhlIHNlY3JldCB2YWx1ZS4gVmFsaWQgdmFsdWVzOlxuICAgICAqIHRleHQgKGRlZmF1bHQgdmFsdWUpXG4gICAgICogYmluYXJ5XG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VjcmV0RGF0YVR5cGU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgc2VjcmV0VHlwZTogVGhlIHR5cGUgb2YgdGhlIHNlY3JldC4gVmFsaWQgdmFsdWVzOlxuICAgICAqIEdlbmVyaWM6IHNwZWNpZmllcyBhIGdlbmVyaWMgc2VjcmV0LlxuICAgICAqIFJkczogc3BlY2lmaWVzIGEgbWFuYWdlZCBBcHNhcmFEQiBSRFMgc2VjcmV0LlxuICAgICAqIFJBTUNyZWRlbnRpYWxzOiBzcGVjaWZpZXMgYSBtYW5hZ2VkIFJBTSBzZWNyZXQuXG4gICAgICogRUNTOiBzcGVjaWZpZXMgYSBtYW5hZ2VkIEVDUyBzZWNyZXQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VjcmV0VHlwZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSB2ZXJzaW9uU3RhZ2VzOiBUaGUgc3RhZ2UgbGFiZWxzIHRoYXQgbWFyayB0aGUgc2VjcmV0IHZlcnNpb24uIEFDU0N1cnJlbnQgd2lsbCBiZSBtYXJrZWQgYXMgRGVmYXVsdElmIHlvdSBkbyBub3Qgc3BlY2lmeSBpdCwgU2VjcmV0cyBNYW5hZ2VyIG1hcmtzIGl0IHdpdGggXCJBQ1NDdXJyZW50XCIuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdmVyc2lvblN0YWdlcz86IEFycmF5PHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZT4gfCByb3MuSVJlc29sdmFibGU7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGdpdmVuIHByb3BlcnRpZXMgbWF0Y2ggdGhvc2Ugb2YgYSBgUm9zU2VjcmV0UHJvcHNgXG4gKlxuICogQHBhcmFtIHByb3BlcnRpZXMgLSB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYFJvc1NlY3JldFByb3BzYFxuICpcbiAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHZhbGlkYXRpb24uXG4gKi9cbmZ1bmN0aW9uIFJvc1NlY3JldFByb3BzVmFsaWRhdG9yKHByb3BlcnRpZXM6IGFueSk6IHJvcy5WYWxpZGF0aW9uUmVzdWx0IHtcbiAgICBpZiAoIXJvcy5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiByb3MuVkFMSURBVElPTl9TVUNDRVNTOyB9XG4gICAgY29uc3QgZXJyb3JzID0gbmV3IHJvcy5WYWxpZGF0aW9uUmVzdWx0cygpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcigndmVyc2lvbklkJywgcm9zLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLnZlcnNpb25JZCkpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcigndmVyc2lvbklkJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLnZlcnNpb25JZCkpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignZGVzY3JpcHRpb24nLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuZGVzY3JpcHRpb24pKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3JvdGF0aW9uSW50ZXJ2YWwnLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMucm90YXRpb25JbnRlcnZhbCkpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignc2VjcmV0VHlwZScsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5zZWNyZXRUeXBlKSk7XG4gICAgaWYocHJvcGVydGllcy5zZWNyZXREYXRhVHlwZSAmJiAodHlwZW9mIHByb3BlcnRpZXMuc2VjcmV0RGF0YVR5cGUpICE9PSAnb2JqZWN0Jykge1xuICAgICAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3NlY3JldERhdGFUeXBlJywgcm9zLnZhbGlkYXRlQWxsb3dlZFZhbHVlcykoe1xuICAgICAgICAgIGRhdGE6IHByb3BlcnRpZXMuc2VjcmV0RGF0YVR5cGUsXG4gICAgICAgICAgYWxsb3dlZFZhbHVlczogW1widGV4dFwiLFwiYmluYXJ5XCJdLFxuICAgICAgICB9KSk7XG4gICAgfVxuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignc2VjcmV0RGF0YVR5cGUnLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuc2VjcmV0RGF0YVR5cGUpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2RrbXNJbnN0YW5jZUlkJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmRrbXNJbnN0YW5jZUlkKSk7XG4gICAgaWYocHJvcGVydGllcy52ZXJzaW9uU3RhZ2VzICYmIChBcnJheS5pc0FycmF5KHByb3BlcnRpZXMudmVyc2lvblN0YWdlcykgfHwgKHR5cGVvZiBwcm9wZXJ0aWVzLnZlcnNpb25TdGFnZXMpID09PSAnc3RyaW5nJykpIHtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCd2ZXJzaW9uU3RhZ2VzJywgcm9zLnZhbGlkYXRlTGVuZ3RoKSh7XG4gICAgICAgICAgICBkYXRhOiBwcm9wZXJ0aWVzLnZlcnNpb25TdGFnZXMubGVuZ3RoLFxuICAgICAgICAgICAgbWluOiAxLFxuICAgICAgICAgICAgbWF4OiA3LFxuICAgICAgICAgIH0pKTtcbiAgICB9XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCd2ZXJzaW9uU3RhZ2VzJywgcm9zLmxpc3RWYWxpZGF0b3Iocm9zLnZhbGlkYXRlU3RyaW5nKSkocHJvcGVydGllcy52ZXJzaW9uU3RhZ2VzKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdzZWNyZXROYW1lJywgcm9zLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLnNlY3JldE5hbWUpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3NlY3JldE5hbWUnLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuc2VjcmV0TmFtZSkpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignZW5hYmxlQXV0b21hdGljUm90YXRpb24nLCByb3MudmFsaWRhdGVCb29sZWFuKShwcm9wZXJ0aWVzLmVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdleHRlbmRlZENvbmZpZycsIHJvcy5oYXNoVmFsaWRhdG9yKHJvcy52YWxpZGF0ZUFueSkpKHByb3BlcnRpZXMuZXh0ZW5kZWRDb25maWcpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3NlY3JldERhdGEnLCByb3MucmVxdWlyZWRWYWxpZGF0b3IpKHByb3BlcnRpZXMuc2VjcmV0RGF0YSkpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignc2VjcmV0RGF0YScsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5zZWNyZXREYXRhKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdlbmNyeXB0aW9uS2V5SWQnLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuZW5jcnlwdGlvbktleUlkKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdyZWNvdmVyeVdpbmRvd0luRGF5cycsIHJvcy52YWxpZGF0ZU51bWJlcikocHJvcGVydGllcy5yZWNvdmVyeVdpbmRvd0luRGF5cykpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignZm9yY2VEZWxldGVXaXRob3V0UmVjb3ZlcnknLCByb3MudmFsaWRhdGVCb29sZWFuKShwcm9wZXJ0aWVzLmZvcmNlRGVsZXRlV2l0aG91dFJlY292ZXJ5KSk7XG4gICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlJvc1NlY3JldFByb3BzXCInKTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgcHJvcGVydGllcyBvZiBhbiBgQUxJWVVOOjpLTVM6OlNlY3JldGAgcmVzb3VyY2VcbiAqXG4gKiBAcGFyYW0gcHJvcGVydGllcyAtIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgUm9zU2VjcmV0UHJvcHNgXG4gKlxuICogQHJldHVybnMgdGhlIEFsaUNsb3VkIFJPUyBSZXNvdXJjZSBwcm9wZXJ0aWVzIG9mIGFuIGBBTElZVU46OktNUzo6U2VjcmV0YCByZXNvdXJjZS5cbiAqL1xuLy8gQHRzLWlnbm9yZSBUUzYxMzNcbmZ1bmN0aW9uIHJvc1NlY3JldFByb3BzVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzOiBhbnksIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OiBib29sZWFuKTogYW55IHtcbiAgICBpZiAoIXJvcy5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBwcm9wZXJ0aWVzOyB9XG4gICAgaWYoZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQpIHtcbiAgICAgICAgUm9zU2VjcmV0UHJvcHNWYWxpZGF0b3IocHJvcGVydGllcykuYXNzZXJ0U3VjY2VzcygpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgU2VjcmV0RGF0YTogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5zZWNyZXREYXRhKSxcbiAgICAgIFNlY3JldE5hbWU6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMuc2VjcmV0TmFtZSksXG4gICAgICBWZXJzaW9uSWQ6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMudmVyc2lvbklkKSxcbiAgICAgIERlc2NyaXB0aW9uOiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLmRlc2NyaXB0aW9uKSxcbiAgICAgIERLTVNJbnN0YW5jZUlkOiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLmRrbXNJbnN0YW5jZUlkKSxcbiAgICAgIEVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uOiByb3MuYm9vbGVhblRvUm9zVGVtcGxhdGUocHJvcGVydGllcy5lbmFibGVBdXRvbWF0aWNSb3RhdGlvbiksXG4gICAgICBFbmNyeXB0aW9uS2V5SWQ6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMuZW5jcnlwdGlvbktleUlkKSxcbiAgICAgIEV4dGVuZGVkQ29uZmlnOiByb3MuaGFzaE1hcHBlcihyb3Mub2JqZWN0VG9Sb3NUZW1wbGF0ZSkocHJvcGVydGllcy5leHRlbmRlZENvbmZpZyksXG4gICAgICBGb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeTogcm9zLmJvb2xlYW5Ub1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMuZm9yY2VEZWxldGVXaXRob3V0UmVjb3ZlcnkpLFxuICAgICAgUmVjb3ZlcnlXaW5kb3dJbkRheXM6IHJvcy5udW1iZXJUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMucmVjb3ZlcnlXaW5kb3dJbkRheXMpLFxuICAgICAgUm90YXRpb25JbnRlcnZhbDogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5yb3RhdGlvbkludGVydmFsKSxcbiAgICAgIFNlY3JldERhdGFUeXBlOiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLnNlY3JldERhdGFUeXBlKSxcbiAgICAgIFNlY3JldFR5cGU6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMuc2VjcmV0VHlwZSksXG4gICAgICBWZXJzaW9uU3RhZ2VzOiByb3MubGlzdE1hcHBlcihyb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZSkocHJvcGVydGllcy52ZXJzaW9uU3RhZ2VzKSxcbiAgICB9O1xufVxuXG4vKipcbiAqIEEgUk9TIHRlbXBsYXRlIHR5cGU6ICBgQUxJWVVOOjpLTVM6OlNlY3JldGBcbiAqL1xuZXhwb3J0IGNsYXNzIFJvc1NlY3JldCBleHRlbmRzIHJvcy5Sb3NSZXNvdXJjZSB7XG4gICAgLyoqXG4gICAgICogVGhlIHJlc291cmNlIHR5cGUgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBjbGFzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJPU19SRVNPVVJDRV9UWVBFX05BTUUgPSBcIkFMSVlVTjo6S01TOjpTZWNyZXRcIjtcblxuICAgIC8qKlxuICAgICAqIEEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgZnJvbSBhbiBvYmplY3RcbiAgICAgKiBjb250YWluaW5nIHRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgUk9TIHJlc291cmNlLlxuICAgICAqL1xuXG4gICAgLyoqXG4gICAgICogQEF0dHJpYnV0ZSBBcm46IFRoZSBBbGliYWJhIENsb3VkIFJlc291cmNlIE5hbWUgKEFSTikuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJBcm46IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBBdHRyaWJ1dGUgU2VjcmV0TmFtZTogVGhlIG5hbWUgb2YgdGhlIHNlY3JldC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clNlY3JldE5hbWU6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIHB1YmxpYyBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbjtcblxuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHNlY3JldERhdGE6IFRoZSB2YWx1ZSBvZiB0aGUgc2VjcmV0IHRoYXQgeW91IHdhbnQgdG8gY3JlYXRlLiBTZWNyZXRzIE1hbmFnZXIgZW5jcnlwdHMgdGhlIHNlY3JldFxuICAgICAqIHZhbHVlIGFuZCBzdG9yZXMgaXQgaW4gdGhlIGluaXRpYWwgdmVyc2lvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VjcmV0RGF0YTogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHNlY3JldE5hbWU6IFRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuXG4gICAgICovXG4gICAgcHVibGljIHNlY3JldE5hbWU6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSB2ZXJzaW9uSWQ6IFRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGUgaW5pdGlhbCB2ZXJzaW9uLiBWZXJzaW9uIG51bWJlcnMgYXJlIHVuaXF1ZSBpbiBlYWNoIHNlY3JldFxuICAgICAqIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdmVyc2lvbklkOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgZGVzY3JpcHRpb246IFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgc2VjcmV0LlxuICAgICAqL1xuICAgIHB1YmxpYyBkZXNjcmlwdGlvbjogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGRrbXNJbnN0YW5jZUlkOiBUaGUgSUQgb2YgdGhlIGRlZGljYXRlZCBLTVMgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIGRrbXNJbnN0YW5jZUlkOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgZW5hYmxlQXV0b21hdGljUm90YXRpb246IFNwZWNpZmllcyB3aGV0aGVyIHRvIGVuYWJsZSBhdXRvbWF0aWMgcm90YXRpb24uIFZhbGlkIHZhbHVlczpcbiAgICAgKiB0cnVlOiBzcGVjaWZpZXMgdG8gZW5hYmxlIGF1dG9tYXRpYyByb3RhdGlvbi5cbiAgICAgKiBmYWxzZTogc3BlY2lmaWVzIHRvIGRpc2FibGUgYXV0b21hdGljIHJvdGF0aW9uLiBUaGlzIGlzIHRoZSBkZWZhdWx0IHZhbHVlLlxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVBdXRvbWF0aWNSb3RhdGlvbjogYm9vbGVhbiB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBlbmNyeXB0aW9uS2V5SWQ6IFRoZSBJRCBvZiB0aGUgS01TIENNSyB0aGF0IGlzIHVzZWQgdG8gZW5jcnlwdCB0aGUgc2VjcmV0IHZhbHVlLlxuICAgICAqIElmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGlzIHBhcmFtZXRlciwgU2VjcmV0cyBNYW5hZ2VyIGF1dG9tYXRpY2FsbHkgY3JlYXRlcyBhbiBlbmNyeXB0aW9uXG4gICAgICoga2V5IHRvIGVuY3J5cHQgdGhlIHNlY3JldC5cbiAgICAgKiBOb3RlIFRoZSBLTVMgQ01LIG11c3QgYmUgYSBzeW1tZXRyaWMga2V5LlxuICAgICAqL1xuICAgIHB1YmxpYyBlbmNyeXB0aW9uS2V5SWQ6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBleHRlbmRlZENvbmZpZzogVGhlIGV4dGVuZGVkIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNlY3JldC4gVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBzZWNyZXQgb2YgdGhlIHNwZWNpZmljIHR5cGUuXG4gICAgICovXG4gICAgcHVibGljIGV4dGVuZGVkQ29uZmlnOiB7IFtrZXk6IHN0cmluZ106IChhbnkgfCByb3MuSVJlc29sdmFibGUpIH0gfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgZm9yY2VEZWxldGVXaXRob3V0UmVjb3Zlcnk6IFNwZWNpZmllcyB3aGV0aGVyIHRvIGZvcmNpYmx5IGRlbGV0ZSB0aGUgc2VjcmV0LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gdHJ1ZSwgdGhlIHNlY3JldCBjYW5ub3QgYmUgcmVjb3ZlcmVkLiBWYWxpZCB2YWx1ZXM6XG4gICAgICogdHJ1ZVxuICAgICAqIGZhbHNlIChkZWZhdWx0IHZhbHVlKVxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeTogYm9vbGVhbiB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSByZWNvdmVyeVdpbmRvd0luRGF5czogU3BlY2lmaWVzIHRoZSByZWNvdmVyeSBwZXJpb2Qgb2YgdGhlIHNlY3JldCBpZiB5b3UgZG8gbm90IGZvcmNpYmx5IGRlbGV0ZSBpdC4gRGVmYXVsdCB2YWx1ZTogMzBcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVjb3ZlcnlXaW5kb3dJbkRheXM6IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSByb3RhdGlvbkludGVydmFsOiBUaGUgaW50ZXJ2YWwgZm9yIGF1dG9tYXRpYyByb3RhdGlvbi4gVmFsaWQgdmFsdWVzOiA2IGhvdXJzIHRvIDgsNzYwIGhvdXJzICgzNjUgZGF5cykuXG4gICAgICogVGhlIHZhbHVlIGlzIGluIHRoZSBpbnRlZ2VyW3VuaXRdIGZvcm1hdC5cbiAgICAgKiBUaGUgdW5pdCBjYW4gYmUgZCAoZGF5KSwgaCAoaG91ciksIG0gKG1pbnV0ZSksIG9yIHMgKHNlY29uZCkuIEZvciBleGFtcGxlLCBib3RoIDdkIGFuZCA2MDQ4MDBzIGluZGljYXRlIGEgc2V2ZW4tZGF5IGludGVydmFsLlxuICAgICAqL1xuICAgIHB1YmxpYyByb3RhdGlvbkludGVydmFsOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgc2VjcmV0RGF0YVR5cGU6IFRoZSB0eXBlIG9mIHRoZSBzZWNyZXQgdmFsdWUuIFZhbGlkIHZhbHVlczpcbiAgICAgKiB0ZXh0IChkZWZhdWx0IHZhbHVlKVxuICAgICAqIGJpbmFyeVxuICAgICAqL1xuICAgIHB1YmxpYyBzZWNyZXREYXRhVHlwZTogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHNlY3JldFR5cGU6IFRoZSB0eXBlIG9mIHRoZSBzZWNyZXQuIFZhbGlkIHZhbHVlczpcbiAgICAgKiBHZW5lcmljOiBzcGVjaWZpZXMgYSBnZW5lcmljIHNlY3JldC5cbiAgICAgKiBSZHM6IHNwZWNpZmllcyBhIG1hbmFnZWQgQXBzYXJhREIgUkRTIHNlY3JldC5cbiAgICAgKiBSQU1DcmVkZW50aWFsczogc3BlY2lmaWVzIGEgbWFuYWdlZCBSQU0gc2VjcmV0LlxuICAgICAqIEVDUzogc3BlY2lmaWVzIGEgbWFuYWdlZCBFQ1Mgc2VjcmV0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZWNyZXRUeXBlOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgdmVyc2lvblN0YWdlczogVGhlIHN0YWdlIGxhYmVscyB0aGF0IG1hcmsgdGhlIHNlY3JldCB2ZXJzaW9uLiBBQ1NDdXJyZW50IHdpbGwgYmUgbWFya2VkIGFzIERlZmF1bHRJZiB5b3UgZG8gbm90IHNwZWNpZnkgaXQsIFNlY3JldHMgTWFuYWdlciBtYXJrcyBpdCB3aXRoIFwiQUNTQ3VycmVudFwiLlxuICAgICAqL1xuICAgIHB1YmxpYyB2ZXJzaW9uU3RhZ2VzOiBBcnJheTxzdHJpbmcgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGBBTElZVU46OktNUzo6U2VjcmV0YC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgICAqIEBwYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2VcbiAgICAgKiBAcGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAgICovXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IHJvcy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSb3NTZWNyZXRQcm9wcywgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW4pIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkLCB7IHR5cGU6IFJvc1NlY3JldC5ST1NfUkVTT1VSQ0VfVFlQRV9OQU1FLCBwcm9wZXJ0aWVzOiBwcm9wcyB9KTtcbiAgICAgICAgdGhpcy5hdHRyQXJuID0gdGhpcy5nZXRBdHQoJ0FybicpO1xuICAgICAgICB0aGlzLmF0dHJTZWNyZXROYW1lID0gdGhpcy5nZXRBdHQoJ1NlY3JldE5hbWUnKTtcblxuICAgICAgICB0aGlzLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50ID0gZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ7XG4gICAgICAgIHRoaXMuc2VjcmV0RGF0YSA9IHByb3BzLnNlY3JldERhdGE7XG4gICAgICAgIHRoaXMuc2VjcmV0TmFtZSA9IHByb3BzLnNlY3JldE5hbWU7XG4gICAgICAgIHRoaXMudmVyc2lvbklkID0gcHJvcHMudmVyc2lvbklkO1xuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gcHJvcHMuZGVzY3JpcHRpb247XG4gICAgICAgIHRoaXMuZGttc0luc3RhbmNlSWQgPSBwcm9wcy5ka21zSW5zdGFuY2VJZDtcbiAgICAgICAgdGhpcy5lbmFibGVBdXRvbWF0aWNSb3RhdGlvbiA9IHByb3BzLmVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uO1xuICAgICAgICB0aGlzLmVuY3J5cHRpb25LZXlJZCA9IHByb3BzLmVuY3J5cHRpb25LZXlJZDtcbiAgICAgICAgdGhpcy5leHRlbmRlZENvbmZpZyA9IHByb3BzLmV4dGVuZGVkQ29uZmlnO1xuICAgICAgICB0aGlzLmZvcmNlRGVsZXRlV2l0aG91dFJlY292ZXJ5ID0gcHJvcHMuZm9yY2VEZWxldGVXaXRob3V0UmVjb3Zlcnk7XG4gICAgICAgIHRoaXMucmVjb3ZlcnlXaW5kb3dJbkRheXMgPSBwcm9wcy5yZWNvdmVyeVdpbmRvd0luRGF5cztcbiAgICAgICAgdGhpcy5yb3RhdGlvbkludGVydmFsID0gcHJvcHMucm90YXRpb25JbnRlcnZhbDtcbiAgICAgICAgdGhpcy5zZWNyZXREYXRhVHlwZSA9IHByb3BzLnNlY3JldERhdGFUeXBlO1xuICAgICAgICB0aGlzLnNlY3JldFR5cGUgPSBwcm9wcy5zZWNyZXRUeXBlO1xuICAgICAgICB0aGlzLnZlcnNpb25TdGFnZXMgPSBwcm9wcy52ZXJzaW9uU3RhZ2VzO1xuICAgIH1cblxuXG4gICAgcHJvdGVjdGVkIGdldCByb3NQcm9wZXJ0aWVzKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNlY3JldERhdGE6IHRoaXMuc2VjcmV0RGF0YSxcbiAgICAgICAgICAgIHNlY3JldE5hbWU6IHRoaXMuc2VjcmV0TmFtZSxcbiAgICAgICAgICAgIHZlcnNpb25JZDogdGhpcy52ZXJzaW9uSWQsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGRrbXNJbnN0YW5jZUlkOiB0aGlzLmRrbXNJbnN0YW5jZUlkLFxuICAgICAgICAgICAgZW5hYmxlQXV0b21hdGljUm90YXRpb246IHRoaXMuZW5hYmxlQXV0b21hdGljUm90YXRpb24sXG4gICAgICAgICAgICBlbmNyeXB0aW9uS2V5SWQ6IHRoaXMuZW5jcnlwdGlvbktleUlkLFxuICAgICAgICAgICAgZXh0ZW5kZWRDb25maWc6IHRoaXMuZXh0ZW5kZWRDb25maWcsXG4gICAgICAgICAgICBmb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeTogdGhpcy5mb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeSxcbiAgICAgICAgICAgIHJlY292ZXJ5V2luZG93SW5EYXlzOiB0aGlzLnJlY292ZXJ5V2luZG93SW5EYXlzLFxuICAgICAgICAgICAgcm90YXRpb25JbnRlcnZhbDogdGhpcy5yb3RhdGlvbkludGVydmFsLFxuICAgICAgICAgICAgc2VjcmV0RGF0YVR5cGU6IHRoaXMuc2VjcmV0RGF0YVR5cGUsXG4gICAgICAgICAgICBzZWNyZXRUeXBlOiB0aGlzLnNlY3JldFR5cGUsXG4gICAgICAgICAgICB2ZXJzaW9uU3RhZ2VzOiB0aGlzLnZlcnNpb25TdGFnZXMsXG4gICAgICAgIH07XG4gICAgfVxuICAgIHByb3RlY3RlZCByZW5kZXJQcm9wZXJ0aWVzKHByb3BzOiB7W2tleTogc3RyaW5nXTogYW55fSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gIHtcbiAgICAgICAgcmV0dXJuIHJvc1NlY3JldFByb3BzVG9Sb3NUZW1wbGF0ZShwcm9wcywgdGhpcy5lbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCk7XG4gICAgfVxufVxuIl19
|
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia21zLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImttcy5nZW5lcmF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHlEQUF5RDs7O0FBRXpELDhDQUE4QztBQW1COUM7Ozs7OztHQU1HO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxVQUFlO0lBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxHQUFHLENBQUMsa0JBQWtCLENBQUM7S0FBRTtJQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNoRyxJQUFHLFVBQVUsQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxFQUFFO1FBQzVHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbEUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTTtZQUNqQyxHQUFHLEVBQUUsQ0FBQztZQUNOLEdBQUcsRUFBRSxHQUFHO1NBQ1QsQ0FBQyxDQUFDLENBQUM7S0FDVDtJQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDN0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFH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ZWQgZnJvbSB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIFNwZWNpZmljYXRpb25cblxuaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgYFJvc0FsaWFzYC5cbiAqIFNlZSBodHRwczovL3d3dy5hbGliYWJhY2xvdWQuY29tL2hlbHAvcm9zL2RldmVsb3Blci1yZWZlcmVuY2UvYWxpeXVuLWttcy1hbGlhc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvc0FsaWFzUHJvcHMge1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGFsaWFzTmFtZTogLSBUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBrZXkuIFlvdSBjYW4gdXNlIHRoZSBhbGlhcyB0byBjYWxsIEFQSXMgc3VjaCBhcyBFbmNyeXB0LCBHZW5lcmF0ZURhdGFLZXksIGFuZCBEZXNjcmliZUtleS4gLSBOb3QgaW5jbHVkaW5nIHRoZSBwcmVmaXgsIHRoZSBtaW5pbXVtIGxlbmd0aCBvZiBhbiBhbGlhcyBpcyAxIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggaXMgMjU1LiAtIFRoZSBwcmVmaXggYWxpYXNcXC8gbXVzdCBiZSBpbmNsdWRlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBhbGlhc05hbWU6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBrZXlJZDogR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIENNSy5cbiAgICAgKi9cbiAgICByZWFkb25seSBrZXlJZDogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xufVxuXG4vKipcbiAqIERldGVybWluZSB3aGV0aGVyIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIG1hdGNoIHRob3NlIG9mIGEgYFJvc0FsaWFzUHJvcHNgXG4gKlxuICogQHBhcmFtIHByb3BlcnRpZXMgLSB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYFJvc0FsaWFzUHJvcHNgXG4gKlxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAqL1xuZnVuY3Rpb24gUm9zQWxpYXNQcm9wc1ZhbGlkYXRvcihwcm9wZXJ0aWVzOiBhbnkpOiByb3MuVmFsaWRhdGlvblJlc3VsdCB7XG4gICAgaWYgKCFyb3MuY2FuSW5zcGVjdChwcm9wZXJ0aWVzKSkgeyByZXR1cm4gcm9zLlZBTElEQVRJT05fU1VDQ0VTUzsgfVxuICAgIGNvbnN0IGVycm9ycyA9IG5ldyByb3MuVmFsaWRhdGlvblJlc3VsdHMoKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2FsaWFzTmFtZScsIHJvcy5yZXF1aXJlZFZhbGlkYXRvcikocHJvcGVydGllcy5hbGlhc05hbWUpKTtcbiAgICBpZihwcm9wZXJ0aWVzLmFsaWFzTmFtZSAmJiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzLmFsaWFzTmFtZSkgfHwgKHR5cGVvZiBwcm9wZXJ0aWVzLmFsaWFzTmFtZSkgPT09ICdzdHJpbmcnKSkge1xuICAgICAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2FsaWFzTmFtZScsIHJvcy52YWxpZGF0ZUxlbmd0aCkoe1xuICAgICAgICAgICAgZGF0YTogcHJvcGVydGllcy5hbGlhc05hbWUubGVuZ3RoLFxuICAgICAgICAgICAgbWluOiAxLFxuICAgICAgICAgICAgbWF4OiAyNTUsXG4gICAgICAgICAgfSkpO1xuICAgIH1cbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2FsaWFzTmFtZScsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5hbGlhc05hbWUpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2tleUlkJywgcm9zLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLmtleUlkKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdrZXlJZCcsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5rZXlJZCkpO1xuICAgIHJldHVybiBlcnJvcnMud3JhcCgnc3VwcGxpZWQgcHJvcGVydGllcyBub3QgY29ycmVjdCBmb3IgXCJSb3NBbGlhc1Byb3BzXCInKTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgcHJvcGVydGllcyBvZiBhbiBgQUxJWVVOOjpLTVM6OkFsaWFzYCByZXNvdXJjZVxuICpcbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIC0gdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBSb3NBbGlhc1Byb3BzYFxuICpcbiAqIEByZXR1cm5zIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgcHJvcGVydGllcyBvZiBhbiBgQUxJWVVOOjpLTVM6OkFsaWFzYCByZXNvdXJjZS5cbiAqL1xuLy8gQHRzLWlnbm9yZSBUUzYxMzNcbmZ1bmN0aW9uIHJvc0FsaWFzUHJvcHNUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXM6IGFueSwgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW4pOiBhbnkge1xuICAgIGlmICghcm9zLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHByb3BlcnRpZXM7IH1cbiAgICBpZihlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCkge1xuICAgICAgICBSb3NBbGlhc1Byb3BzVmFsaWRhdG9yKHByb3BlcnRpZXMpLmFzc2VydFN1Y2Nlc3MoKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIEFsaWFzTmFtZTogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5hbGlhc05hbWUpLFxuICAgICAgS2V5SWQ6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMua2V5SWQpLFxuICAgIH07XG59XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyBhIGJhc2UgZW5jYXBzdWxhdGlvbiBhcm91bmQgdGhlIFJPUyByZXNvdXJjZSB0eXBlIGBBTElZVU46OktNUzo6QWxpYXNgLCB3aGljaCBpcyB1c2VkIHRvIGNyZWF0ZSBhbiBhbGlhcyBmb3IgYSBDdXN0b21lciBNYXN0ZXIgS2V5IChDTUspLlxuICogQE5vdGUgVGhpcyBjbGFzcyBkb2VzIG5vdCBjb250YWluIGFkZGl0aW9uYWwgZnVuY3Rpb25zLCBzbyBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhlIGBBbGlhc2AgY2xhc3MgaW5zdGVhZCBvZiB0aGlzIGNsYXNzIGZvciBhIG1vcmUgY29udmVuaWVudCBkZXZlbG9wbWVudCBleHBlcmllbmNlLlxuICogU2VlIGh0dHBzOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20vaGVscC9yb3MvZGV2ZWxvcGVyLXJlZmVyZW5jZS9hbGl5dW4ta21zLWFsaWFzXG4gKi9cbmV4cG9ydCBjbGFzcyBSb3NBbGlhcyBleHRlbmRzIHJvcy5Sb3NSZXNvdXJjZSB7XG4gICAgLyoqXG4gICAgICogVGhlIHJlc291cmNlIHR5cGUgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBjbGFzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJPU19SRVNPVVJDRV9UWVBFX05BTUUgPSBcIkFMSVlVTjo6S01TOjpBbGlhc1wiO1xuXG4gICAgcHVibGljIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OiBib29sZWFuO1xuXG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgYWxpYXNOYW1lOiAtIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIGtleS4gWW91IGNhbiB1c2UgdGhlIGFsaWFzIHRvIGNhbGwgQVBJcyBzdWNoIGFzIEVuY3J5cHQsIEdlbmVyYXRlRGF0YUtleSwgYW5kIERlc2NyaWJlS2V5LiAtIE5vdCBpbmNsdWRpbmcgdGhlIHByZWZpeCwgdGhlIG1pbmltdW0gbGVuZ3RoIG9mIGFuIGFsaWFzIGlzIDEgYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBpcyAyNTUuIC0gVGhlIHByZWZpeCBhbGlhc1xcLyBtdXN0IGJlIGluY2x1ZGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBhbGlhc05hbWU6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBrZXlJZDogR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIENNSy5cbiAgICAgKi9cbiAgICBwdWJsaWMga2V5SWQ6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgICAqIEBwYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2VcbiAgICAgKiBAcGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAgICovXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IHJvcy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSb3NBbGlhc1Byb3BzLCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbikge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQsIHsgdHlwZTogUm9zQWxpYXMuUk9TX1JFU09VUkNFX1RZUEVfTkFNRSwgcHJvcGVydGllczogcHJvcHMgfSk7XG5cbiAgICAgICAgdGhpcy5lbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCA9IGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50O1xuICAgICAgICB0aGlzLmFsaWFzTmFtZSA9IHByb3BzLmFsaWFzTmFtZTtcbiAgICAgICAgdGhpcy5rZXlJZCA9IHByb3BzLmtleUlkO1xuICAgIH1cblxuXG4gICAgcHJvdGVjdGVkIGdldCByb3NQcm9wZXJ0aWVzKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGFsaWFzTmFtZTogdGhpcy5hbGlhc05hbWUsXG4gICAgICAgICAgICBrZXlJZDogdGhpcy5rZXlJZCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIHJlbmRlclByb3BlcnRpZXMocHJvcHM6IHtba2V5OiBzdHJpbmddOiBhbnl9KTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSAge1xuICAgICAgICByZXR1cm4gcm9zQWxpYXNQcm9wc1RvUm9zVGVtcGxhdGUocHJvcHMsIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIGBSb3NLZXlgLlxuICogU2VlIGh0dHBzOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20vaGVscC9yb3MvZGV2ZWxvcGVyLXJlZmVyZW5jZS9hbGl5dW4ta21zLWtleVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvc0tleVByb3BzIHtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBkZXNjcmlwdGlvbjogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBDTUsuIExlbmd0aCBjb25zdHJhaW50czogTWluaW11bSBsZW5ndGggb2YgMCBjaGFyYWN0ZXJzLiBNYXhpbXVtIGxlbmd0aCBvZiA4MTkyIGNoYXJhY3RlcnMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgZGttc0luc3RhbmNlSWQ6IFRoZSBJRCBvZiB0aGUgZGVkaWNhdGVkIEtNUyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBka21zSW5zdGFuY2VJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBlbmFibGU6IFNwZWNpZmllcyB3aGV0aGVyIHRoZSBrZXkgaXMgZW5hYmxlZC4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBlbmFibGU/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uOiBXaGV0aGVyIHRvIGVuYWJsZSBhdXRvbWF0aWMga2V5IHJvdGF0aW9uLiBWYWxpZCB2YWx1ZTogdHJ1ZVxcL2ZhbHNlIChkZWZhdWx0KVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uPzogYm9vbGVhbiB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBrZXlTcGVjOiBLZXkgdHlwZS4gVmFsaWQgdmFsdWU6IEFsaXl1bl9BRVNfMjU2XFwvQWxpeXVuX1NNNFxcL1JTQV8yMDQ4XFwvRUNfUDI1NlxcL0VDX1AyNTZLXFwvRUNfU00yXG4gICAgICovXG4gICAgcmVhZG9ubHkga2V5U3BlYz86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBrZXlVc2FnZTogVGhlIHVzYWdlIG9mIHRoZSBDTUsuIFZhbGlkIHZhbHVlczpcbiAgICAgKiBFTkNSWVBUXFwvREVDUllQVDogZW5jcnlwdHMgb3IgZGVjcnlwdHMgZGF0YS5cbiAgICAgKiBTSUdOXFwvVkVSSUZZOiBnZW5lcmF0ZXMgb3IgdmVyaWZpZXMgYSBkaWdpdGFsIHNpZ25hdHVyZS5cbiAgICAgKiBJZiB0aGUgQ01LIHN1cHBvcnRzIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24sIHRoZSBkZWZhdWx0IHZhbHVlIGlzIFNJR05cXC9WRVJJRlkuIElmIHRoZSBDTUsgZG9lcyBub3Qgc3VwcG9ydCBzaWduYXR1cmUgdmVyaWZpY2F0aW9uLCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBFTkNSWVBUXFwvREVDUllQVC5cbiAgICAgKi9cbiAgICByZWFkb25seSBrZXlVc2FnZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBwZW5kaW5nV2luZG93SW5EYXlzOiBUaGUgd2FpdGluZyBwZXJpb2QsIHNwZWNpZmllZCBpbiBudW1iZXIgb2YgZGF5cy4gRHVyaW5nIHRoaXMgcGVyaW9kLCB5b3UgY2FuIGNhbmNlbCB0aGUgQ01LIGluIFBlbmRpbmdEZWxldGlvbiBzdGF0dXMuIEFmdGVyIHRoZSB3YWl0aW5nIHBlcmlvZCBleHBpcmVzLCB5b3UgY2Fubm90IGNhbmNlbCB0aGUgZGVsZXRpb24uIFRoZSB2YWx1ZSBtdXN0IGJlIGJldHdlZW4gNyBhbmQgMzY2LiBEZWZhdWx0IHZhbHVlIGlzIDMwLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBlbmRpbmdXaW5kb3dJbkRheXM/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgcHJvdGVjdGlvbkxldmVsOiBUaGUgcHJvdGVjdGlvbiBsZXZlbCBvZiB0aGUgQ01LIHRvIGNyZWF0ZS4gVmFsaWQgdmFsdWU6IFNPRlRXQVJFIGFuZCBIU00uIFdoZW4gdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIEhTTTpcbiAgICAgKiBJZiB0aGUgT3JpZ2luIHBhcmFtZXRlciBpcyBzZXQgdG8gQWxpeXVuX0tNUywgdGhlIENNSyBpcyBjcmVhdGVkIGluIE1hbmFnZWQgSFNNLlxuICAgICAqIElmIHRoZSBPcmlnaW4gcGFyYW1ldGVyIGlzIHNldCB0byBFWFRFUk5BTCwgeW91IGNhbiBpbXBvcnQgZXh0ZXJuYWwga2V5cyB0byBNYW5hZ2VkIEhTTS5cbiAgICAgKi9cbiAgICByZWFkb25seSBwcm90ZWN0aW9uTGV2ZWw/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgcm90YXRpb25JbnRlcnZhbDogVGhlIHRpbWUgcGVyaW9kIGZvciBhdXRvbWF0aWMgcm90YXRpb24uIFRoZSBmb3JtYXQgaXMgaW50ZWdlclt1bml0XSwgd2hlcmUgaW50ZWdlciByZXByZXNlbnRzIHRoZSBsZW5ndGggb2YgdGltZSBhbmQgdW5pdCByZXByZXNlbnRzIHRoZSB0aW1lIHVuaXQuIFRoZSBsZWdhbCB1bml0IHVuaXRzIGFyZTogZCAoZGF5KSwgaCAoaG91ciksIG0gKG1pbnV0ZSksIHMgKHNlY29uZCkuIDdkIG9yIDYwNDgwMHMgYm90aCByZXByZXNlbnQgYSA3LWRheSBjeWNsZS4gVmFsdWU6IDd+NzMwIGRheXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcm90YXRpb25JbnRlcnZhbD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaCB0aG9zZSBvZiBhIGBSb3NLZXlQcm9wc2BcbiAqXG4gKiBAcGFyYW0gcHJvcGVydGllcyAtIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgUm9zS2V5UHJvcHNgXG4gKlxuICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgdmFsaWRhdGlvbi5cbiAqL1xuZnVuY3Rpb24gUm9zS2V5UHJvcHNWYWxpZGF0b3IocHJvcGVydGllczogYW55KTogcm9zLlZhbGlkYXRpb25SZXN1bHQge1xuICAgIGlmICghcm9zLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHJvcy5WQUxJREFUSU9OX1NVQ0NFU1M7IH1cbiAgICBjb25zdCBlcnJvcnMgPSBuZXcgcm9zLlZhbGlkYXRpb25SZXN1bHRzKCk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdwcm90ZWN0aW9uTGV2ZWwnLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMucHJvdGVjdGlvbkxldmVsKSk7XG4gICAgaWYocHJvcGVydGllcy5kZXNjcmlwdGlvbiAmJiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzLmRlc2NyaXB0aW9uKSB8fCAodHlwZW9mIHByb3BlcnRpZXMuZGVzY3JpcHRpb24pID09PSAnc3RyaW5nJykpIHtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdkZXNjcmlwdGlvbicsIHJvcy52YWxpZGF0ZUxlbmd0aCkoe1xuICAgICAgICAgICAgZGF0YTogcHJvcGVydGllcy5kZXNjcmlwdGlvbi5sZW5ndGgsXG4gICAgICAgICAgICBtaW46IDAsXG4gICAgICAgICAgICBtYXg6IDgxOTIsXG4gICAgICAgICAgfSkpO1xuICAgIH1cbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2Rlc2NyaXB0aW9uJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmRlc2NyaXB0aW9uKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdyb3RhdGlvbkludGVydmFsJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLnJvdGF0aW9uSW50ZXJ2YWwpKTtcbiAgICBpZihwcm9wZXJ0aWVzLnBlbmRpbmdXaW5kb3dJbkRheXMgJiYgKHR5cGVvZiBwcm9wZXJ0aWVzLnBlbmRpbmdXaW5kb3dJbkRheXMpICE9PSAnb2JqZWN0Jykge1xuICAgICAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3BlbmRpbmdXaW5kb3dJbkRheXMnLCByb3MudmFsaWRhdGVSYW5nZSkoe1xuICAgICAgICAgICAgZGF0YTogcHJvcGVydGllcy5wZW5kaW5nV2luZG93SW5EYXlzLFxuICAgICAgICAgICAgbWluOiA3LFxuICAgICAgICAgICAgbWF4OiAzNjYsXG4gICAgICAgICAgfSkpO1xuICAgIH1cbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3BlbmRpbmdXaW5kb3dJbkRheXMnLCByb3MudmFsaWRhdGVOdW1iZXIpKHByb3BlcnRpZXMucGVuZGluZ1dpbmRvd0luRGF5cykpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignZW5hYmxlQXV0b21hdGljUm90YXRpb24nLCByb3MudmFsaWRhdGVCb29sZWFuKShwcm9wZXJ0aWVzLmVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdrZXlTcGVjJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmtleVNwZWMpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2VuYWJsZScsIHJvcy52YWxpZGF0ZUJvb2xlYW4pKHByb3BlcnRpZXMuZW5hYmxlKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdrZXlVc2FnZScsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5rZXlVc2FnZSkpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignZGttc0luc3RhbmNlSWQnLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuZGttc0luc3RhbmNlSWQpKTtcbiAgICByZXR1cm4gZXJyb3JzLndyYXAoJ3N1cHBsaWVkIHByb3BlcnRpZXMgbm90IGNvcnJlY3QgZm9yIFwiUm9zS2V5UHJvcHNcIicpO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgdGhlIEFsaUNsb3VkIFJPUyBSZXNvdXJjZSBwcm9wZXJ0aWVzIG9mIGFuIGBBTElZVU46OktNUzo6S2V5YCByZXNvdXJjZVxuICpcbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIC0gdGhlIFR5cGVTY3JpcHQgcHJvcGVydGllcyBvZiBhIGBSb3NLZXlQcm9wc2BcbiAqXG4gKiBAcmV0dXJucyB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIHByb3BlcnRpZXMgb2YgYW4gYEFMSVlVTjo6S01TOjpLZXlgIHJlc291cmNlLlxuICovXG4vLyBAdHMtaWdub3JlIFRTNjEzM1xuZnVuY3Rpb24gcm9zS2V5UHJvcHNUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXM6IGFueSwgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW4pOiBhbnkge1xuICAgIGlmICghcm9zLmNhbkluc3BlY3QocHJvcGVydGllcykpIHsgcmV0dXJuIHByb3BlcnRpZXM7IH1cbiAgICBpZihlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCkge1xuICAgICAgICBSb3NLZXlQcm9wc1ZhbGlkYXRvcihwcm9wZXJ0aWVzKS5hc3NlcnRTdWNjZXNzKCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBEZXNjcmlwdGlvbjogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5kZXNjcmlwdGlvbiksXG4gICAgICBES01TSW5zdGFuY2VJZDogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5ka21zSW5zdGFuY2VJZCksXG4gICAgICBFbmFibGU6IHJvcy5ib29sZWFuVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLmVuYWJsZSksXG4gICAgICBFbmFibGVBdXRvbWF0aWNSb3RhdGlvbjogcm9zLmJvb2xlYW5Ub1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMuZW5hYmxlQXV0b21hdGljUm90YXRpb24pLFxuICAgICAgS2V5U3BlYzogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5rZXlTcGVjKSxcbiAgICAgIEtleVVzYWdlOiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLmtleVVzYWdlKSxcbiAgICAgIFBlbmRpbmdXaW5kb3dJbkRheXM6IHJvcy5udW1iZXJUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMucGVuZGluZ1dpbmRvd0luRGF5cyksXG4gICAgICBQcm90ZWN0aW9uTGV2ZWw6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMucHJvdGVjdGlvbkxldmVsKSxcbiAgICAgIFJvdGF0aW9uSW50ZXJ2YWw6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMucm90YXRpb25JbnRlcnZhbCksXG4gICAgfTtcbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIGEgYmFzZSBlbmNhcHN1bGF0aW9uIGFyb3VuZCB0aGUgUk9TIHJlc291cmNlIHR5cGUgYEFMSVlVTjo6S01TOjpLZXlgLCB3aGljaCBpcyB1c2VkIHRvIGNyZWF0ZSBhIGN1c3RvbWVyIG1hc3RlciBrZXkgKENNSykuXG4gKiBATm90ZSBUaGlzIGNsYXNzIGRvZXMgbm90IGNvbnRhaW4gYWRkaXRpb25hbCBmdW5jdGlvbnMsIHNvIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUgYEtleWAgY2xhc3MgaW5zdGVhZCBvZiB0aGlzIGNsYXNzIGZvciBhIG1vcmUgY29udmVuaWVudCBkZXZlbG9wbWVudCBleHBlcmllbmNlLlxuICogU2VlIGh0dHBzOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20vaGVscC9yb3MvZGV2ZWxvcGVyLXJlZmVyZW5jZS9hbGl5dW4ta21zLWtleVxuICovXG5leHBvcnQgY2xhc3MgUm9zS2V5IGV4dGVuZHMgcm9zLlJvc1Jlc291cmNlIHtcbiAgICAvKipcbiAgICAgKiBUaGUgcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUk9TX1JFU09VUkNFX1RZUEVfTkFNRSA9IFwiQUxJWVVOOjpLTVM6OktleVwiO1xuXG4gICAgLyoqXG4gICAgICogQEF0dHJpYnV0ZSBLZXlJZDogVGhlIGdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgQ01LLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyS2V5SWQ6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIHB1YmxpYyBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbjtcblxuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGRlc2NyaXB0aW9uOiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIENNSy4gTGVuZ3RoIGNvbnN0cmFpbnRzOiBNaW5pbXVtIGxlbmd0aCBvZiAwIGNoYXJhY3RlcnMuIE1heGltdW0gbGVuZ3RoIG9mIDgxOTIgY2hhcmFjdGVycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVzY3JpcHRpb246IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBka21zSW5zdGFuY2VJZDogVGhlIElEIG9mIHRoZSBkZWRpY2F0ZWQgS01TIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBka21zSW5zdGFuY2VJZDogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGVuYWJsZTogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGtleSBpcyBlbmFibGVkLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGU6IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgZW5hYmxlQXV0b21hdGljUm90YXRpb246IFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyBrZXkgcm90YXRpb24uIFZhbGlkIHZhbHVlOiB0cnVlXFwvZmFsc2UgKGRlZmF1bHQpXG4gICAgICovXG4gICAgcHVibGljIGVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uOiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGtleVNwZWM6IEtleSB0eXBlLiBWYWxpZCB2YWx1ZTogQWxpeXVuX0FFU18yNTZcXC9BbGl5dW5fU000XFwvUlNBXzIwNDhcXC9FQ19QMjU2XFwvRUNfUDI1NktcXC9FQ19TTTJcbiAgICAgKi9cbiAgICBwdWJsaWMga2V5U3BlYzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGtleVVzYWdlOiBUaGUgdXNhZ2Ugb2YgdGhlIENNSy4gVmFsaWQgdmFsdWVzOlxuICAgICAqIEVOQ1JZUFRcXC9ERUNSWVBUOiBlbmNyeXB0cyBvciBkZWNyeXB0cyBkYXRhLlxuICAgICAqIFNJR05cXC9WRVJJRlk6IGdlbmVyYXRlcyBvciB2ZXJpZmllcyBhIGRpZ2l0YWwgc2lnbmF0dXJlLlxuICAgICAqIElmIHRoZSBDTUsgc3VwcG9ydHMgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiwgdGhlIGRlZmF1bHQgdmFsdWUgaXMgU0lHTlxcL1ZFUklGWS4gSWYgdGhlIENNSyBkb2VzIG5vdCBzdXBwb3J0IHNpZ25hdHVyZSB2ZXJpZmljYXRpb24sIHRoZSBkZWZhdWx0IHZhbHVlIGlzIEVOQ1JZUFRcXC9ERUNSWVBULlxuICAgICAqL1xuICAgIHB1YmxpYyBrZXlVc2FnZTogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHBlbmRpbmdXaW5kb3dJbkRheXM6IFRoZSB3YWl0aW5nIHBlcmlvZCwgc3BlY2lmaWVkIGluIG51bWJlciBvZiBkYXlzLiBEdXJpbmcgdGhpcyBwZXJpb2QsIHlvdSBjYW4gY2FuY2VsIHRoZSBDTUsgaW4gUGVuZGluZ0RlbGV0aW9uIHN0YXR1cy4gQWZ0ZXIgdGhlIHdhaXRpbmcgcGVyaW9kIGV4cGlyZXMsIHlvdSBjYW5ub3QgY2FuY2VsIHRoZSBkZWxldGlvbi4gVGhlIHZhbHVlIG11c3QgYmUgYmV0d2VlbiA3IGFuZCAzNjYuIERlZmF1bHQgdmFsdWUgaXMgMzAuXG4gICAgICovXG4gICAgcHVibGljIHBlbmRpbmdXaW5kb3dJbkRheXM6IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBwcm90ZWN0aW9uTGV2ZWw6IFRoZSBwcm90ZWN0aW9uIGxldmVsIG9mIHRoZSBDTUsgdG8gY3JlYXRlLiBWYWxpZCB2YWx1ZTogU09GVFdBUkUgYW5kIEhTTS4gV2hlbiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gSFNNOlxuICAgICAqIElmIHRoZSBPcmlnaW4gcGFyYW1ldGVyIGlzIHNldCB0byBBbGl5dW5fS01TLCB0aGUgQ01LIGlzIGNyZWF0ZWQgaW4gTWFuYWdlZCBIU00uXG4gICAgICogSWYgdGhlIE9yaWdpbiBwYXJhbWV0ZXIgaXMgc2V0IHRvIEVYVEVSTkFMLCB5b3UgY2FuIGltcG9ydCBleHRlcm5hbCBrZXlzIHRvIE1hbmFnZWQgSFNNLlxuICAgICAqL1xuICAgIHB1YmxpYyBwcm90ZWN0aW9uTGV2ZWw6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSByb3RhdGlvbkludGVydmFsOiBUaGUgdGltZSBwZXJpb2QgZm9yIGF1dG9tYXRpYyByb3RhdGlvbi4gVGhlIGZvcm1hdCBpcyBpbnRlZ2VyW3VuaXRdLCB3aGVyZSBpbnRlZ2VyIHJlcHJlc2VudHMgdGhlIGxlbmd0aCBvZiB0aW1lIGFuZCB1bml0IHJlcHJlc2VudHMgdGhlIHRpbWUgdW5pdC4gVGhlIGxlZ2FsIHVuaXQgdW5pdHMgYXJlOiBkIChkYXkpLCBoIChob3VyKSwgbSAobWludXRlKSwgcyAoc2Vjb25kKS4gN2Qgb3IgNjA0ODAwcyBib3RoIHJlcHJlc2VudCBhIDctZGF5IGN5Y2xlLiBWYWx1ZTogN343MzAgZGF5cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcm90YXRpb25JbnRlcnZhbDogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAgICogQHBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogcm9zLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJvc0tleVByb3BzLCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbikge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQsIHsgdHlwZTogUm9zS2V5LlJPU19SRVNPVVJDRV9UWVBFX05BTUUsIHByb3BlcnRpZXM6IHByb3BzIH0pO1xuICAgICAgICB0aGlzLmF0dHJLZXlJZCA9IHRoaXMuZ2V0QXR0KCdLZXlJZCcpO1xuXG4gICAgICAgIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgPSBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDtcbiAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgICAgICB0aGlzLmRrbXNJbnN0YW5jZUlkID0gcHJvcHMuZGttc0luc3RhbmNlSWQ7XG4gICAgICAgIHRoaXMuZW5hYmxlID0gcHJvcHMuZW5hYmxlO1xuICAgICAgICB0aGlzLmVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uID0gcHJvcHMuZW5hYmxlQXV0b21hdGljUm90YXRpb247XG4gICAgICAgIHRoaXMua2V5U3BlYyA9IHByb3BzLmtleVNwZWM7XG4gICAgICAgIHRoaXMua2V5VXNhZ2UgPSBwcm9wcy5rZXlVc2FnZTtcbiAgICAgICAgdGhpcy5wZW5kaW5nV2luZG93SW5EYXlzID0gcHJvcHMucGVuZGluZ1dpbmRvd0luRGF5cztcbiAgICAgICAgdGhpcy5wcm90ZWN0aW9uTGV2ZWwgPSBwcm9wcy5wcm90ZWN0aW9uTGV2ZWw7XG4gICAgICAgIHRoaXMucm90YXRpb25JbnRlcnZhbCA9IHByb3BzLnJvdGF0aW9uSW50ZXJ2YWw7XG4gICAgfVxuXG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHJvc1Byb3BlcnRpZXMoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSAge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBka21zSW5zdGFuY2VJZDogdGhpcy5ka21zSW5zdGFuY2VJZCxcbiAgICAgICAgICAgIGVuYWJsZTogdGhpcy5lbmFibGUsXG4gICAgICAgICAgICBlbmFibGVBdXRvbWF0aWNSb3RhdGlvbjogdGhpcy5lbmFibGVBdXRvbWF0aWNSb3RhdGlvbixcbiAgICAgICAgICAgIGtleVNwZWM6IHRoaXMua2V5U3BlYyxcbiAgICAgICAgICAgIGtleVVzYWdlOiB0aGlzLmtleVVzYWdlLFxuICAgICAgICAgICAgcGVuZGluZ1dpbmRvd0luRGF5czogdGhpcy5wZW5kaW5nV2luZG93SW5EYXlzLFxuICAgICAgICAgICAgcHJvdGVjdGlvbkxldmVsOiB0aGlzLnByb3RlY3Rpb25MZXZlbCxcbiAgICAgICAgICAgIHJvdGF0aW9uSW50ZXJ2YWw6IHRoaXMucm90YXRpb25JbnRlcnZhbCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIHJlbmRlclByb3BlcnRpZXMocHJvcHM6IHtba2V5OiBzdHJpbmddOiBhbnl9KTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSAge1xuICAgICAgICByZXR1cm4gcm9zS2V5UHJvcHNUb1Jvc1RlbXBsYXRlKHByb3BzLCB0aGlzLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KTtcbiAgICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBgUm9zU2VjcmV0YC5cbiAqIFNlZSBodHRwczovL3d3dy5hbGliYWJhY2xvdWQuY29tL2hlbHAvcm9zL2RldmVsb3Blci1yZWZlcmVuY2UvYWxpeXVuLWttcy1zZWNyZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3NTZWNyZXRQcm9wcyB7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgc2VjcmV0RGF0YTogVGhlIHZhbHVlIG9mIHRoZSBzZWNyZXQgdGhhdCB5b3Ugd2FudCB0byBjcmVhdGUuIFNlY3JldHMgTWFuYWdlciBlbmNyeXB0cyB0aGUgc2VjcmV0XG4gICAgICogdmFsdWUgYW5kIHN0b3JlcyBpdCBpbiB0aGUgaW5pdGlhbCB2ZXJzaW9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNlY3JldERhdGE6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBzZWNyZXROYW1lOiBUaGUgbmFtZSBvZiB0aGUgc2VjcmV0LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNlY3JldE5hbWU6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSB2ZXJzaW9uSWQ6IFRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGUgaW5pdGlhbCB2ZXJzaW9uLiBWZXJzaW9uIG51bWJlcnMgYXJlIHVuaXF1ZSBpbiBlYWNoIHNlY3JldFxuICAgICAqIG9iamVjdC5cbiAgICAgKi9cbiAgICByZWFkb25seSB2ZXJzaW9uSWQ6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBkZXNjcmlwdGlvbjogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBzZWNyZXQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgZGttc0luc3RhbmNlSWQ6IFRoZSBJRCBvZiB0aGUgZGVkaWNhdGVkIEtNUyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBka21zSW5zdGFuY2VJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBlbmFibGVBdXRvbWF0aWNSb3RhdGlvbjogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyByb3RhdGlvbi4gVmFsaWQgdmFsdWVzOlxuICAgICAqIHRydWU6IHNwZWNpZmllcyB0byBlbmFibGUgYXV0b21hdGljIHJvdGF0aW9uLlxuICAgICAqIGZhbHNlOiBzcGVjaWZpZXMgdG8gZGlzYWJsZSBhdXRvbWF0aWMgcm90YXRpb24uIFRoaXMgaXMgdGhlIGRlZmF1bHQgdmFsdWUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5hYmxlQXV0b21hdGljUm90YXRpb24/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGVuY3J5cHRpb25LZXlJZDogVGhlIElEIG9mIHRoZSBLTVMgQ01LIHRoYXQgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSBzZWNyZXQgdmFsdWUuXG4gICAgICogSWYgeW91IGRvIG5vdCBzcGVjaWZ5IHRoaXMgcGFyYW1ldGVyLCBTZWNyZXRzIE1hbmFnZXIgYXV0b21hdGljYWxseSBjcmVhdGVzIGFuIGVuY3J5cHRpb25cbiAgICAgKiBrZXkgdG8gZW5jcnlwdCB0aGUgc2VjcmV0LlxuICAgICAqIE5vdGUgVGhlIEtNUyBDTUsgbXVzdCBiZSBhIHN5bW1ldHJpYyBrZXkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5jcnlwdGlvbktleUlkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGV4dGVuZGVkQ29uZmlnOiBUaGUgZXh0ZW5kZWQgY29uZmlndXJhdGlvbiBvZiB0aGUgc2VjcmV0LiBUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlY3JldCBvZiB0aGUgc3BlY2lmaWMgdHlwZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBleHRlbmRlZENvbmZpZz86IHsgW2tleTogc3RyaW5nXTogKGFueSB8IHJvcy5JUmVzb2x2YWJsZSkgfSB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBmb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeTogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZm9yY2libHkgZGVsZXRlIHRoZSBzZWNyZXQuIElmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byB0cnVlLCB0aGUgc2VjcmV0IGNhbm5vdCBiZSByZWNvdmVyZWQuIFZhbGlkIHZhbHVlczpcbiAgICAgKiB0cnVlXG4gICAgICogZmFsc2UgKGRlZmF1bHQgdmFsdWUpXG4gICAgICovXG4gICAgcmVhZG9ubHkgZm9yY2VEZWxldGVXaXRob3V0UmVjb3Zlcnk/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHJlY292ZXJ5V2luZG93SW5EYXlzOiBTcGVjaWZpZXMgdGhlIHJlY292ZXJ5IHBlcmlvZCBvZiB0aGUgc2VjcmV0IGlmIHlvdSBkbyBub3QgZm9yY2libHkgZGVsZXRlIGl0LiBEZWZhdWx0IHZhbHVlOiAzMFxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlY292ZXJ5V2luZG93SW5EYXlzPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHJvdGF0aW9uSW50ZXJ2YWw6IFRoZSBpbnRlcnZhbCBmb3IgYXV0b21hdGljIHJvdGF0aW9uLiBWYWxpZCB2YWx1ZXM6IDYgaG91cnMgdG8gOCw3NjAgaG91cnMgKDM2NSBkYXlzKS5cbiAgICAgKiBUaGUgdmFsdWUgaXMgaW4gdGhlIGludGVnZXJbdW5pdF0gZm9ybWF0LlxuICAgICAqIFRoZSB1bml0IGNhbiBiZSBkIChkYXkpLCBoIChob3VyKSwgbSAobWludXRlKSwgb3IgcyAoc2Vjb25kKS4gRm9yIGV4YW1wbGUsIGJvdGggN2QgYW5kIDYwNDgwMHMgaW5kaWNhdGUgYSBzZXZlbi1kYXkgaW50ZXJ2YWwuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcm90YXRpb25JbnRlcnZhbD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBzZWNyZXREYXRhVHlwZTogVGhlIHR5cGUgb2YgdGhlIHNlY3JldCB2YWx1ZS4gVmFsaWQgdmFsdWVzOlxuICAgICAqIHRleHQgKGRlZmF1bHQgdmFsdWUpXG4gICAgICogYmluYXJ5XG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VjcmV0RGF0YVR5cGU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgc2VjcmV0VHlwZTogVGhlIHR5cGUgb2YgdGhlIHNlY3JldC4gVmFsaWQgdmFsdWVzOlxuICAgICAqIEdlbmVyaWM6IHNwZWNpZmllcyBhIGdlbmVyaWMgc2VjcmV0LlxuICAgICAqIFJkczogc3BlY2lmaWVzIGEgbWFuYWdlZCBBcHNhcmFEQiBSRFMgc2VjcmV0LlxuICAgICAqIFJBTUNyZWRlbnRpYWxzOiBzcGVjaWZpZXMgYSBtYW5hZ2VkIFJBTSBzZWNyZXQuXG4gICAgICogRUNTOiBzcGVjaWZpZXMgYSBtYW5hZ2VkIEVDUyBzZWNyZXQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VjcmV0VHlwZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSB2ZXJzaW9uU3RhZ2VzOiBUaGUgc3RhZ2UgbGFiZWxzIHRoYXQgbWFyayB0aGUgc2VjcmV0IHZlcnNpb24uIEFDU0N1cnJlbnQgd2lsbCBiZSBtYXJrZWQgYXMgRGVmYXVsdElmIHlvdSBkbyBub3Qgc3BlY2lmeSBpdCwgU2VjcmV0cyBNYW5hZ2VyIG1hcmtzIGl0IHdpdGggXCJBQ1NDdXJyZW50XCIuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdmVyc2lvblN0YWdlcz86IEFycmF5PHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZT4gfCByb3MuSVJlc29sdmFibGU7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGdpdmVuIHByb3BlcnRpZXMgbWF0Y2ggdGhvc2Ugb2YgYSBgUm9zU2VjcmV0UHJvcHNgXG4gKlxuICogQHBhcmFtIHByb3BlcnRpZXMgLSB0aGUgVHlwZVNjcmlwdCBwcm9wZXJ0aWVzIG9mIGEgYFJvc1NlY3JldFByb3BzYFxuICpcbiAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIHZhbGlkYXRpb24uXG4gKi9cbmZ1bmN0aW9uIFJvc1NlY3JldFByb3BzVmFsaWRhdG9yKHByb3BlcnRpZXM6IGFueSk6IHJvcy5WYWxpZGF0aW9uUmVzdWx0IHtcbiAgICBpZiAoIXJvcy5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiByb3MuVkFMSURBVElPTl9TVUNDRVNTOyB9XG4gICAgY29uc3QgZXJyb3JzID0gbmV3IHJvcy5WYWxpZGF0aW9uUmVzdWx0cygpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcigndmVyc2lvbklkJywgcm9zLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLnZlcnNpb25JZCkpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcigndmVyc2lvbklkJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLnZlcnNpb25JZCkpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignZGVzY3JpcHRpb24nLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuZGVzY3JpcHRpb24pKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3JvdGF0aW9uSW50ZXJ2YWwnLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMucm90YXRpb25JbnRlcnZhbCkpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignc2VjcmV0VHlwZScsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5zZWNyZXRUeXBlKSk7XG4gICAgaWYocHJvcGVydGllcy5zZWNyZXREYXRhVHlwZSAmJiAodHlwZW9mIHByb3BlcnRpZXMuc2VjcmV0RGF0YVR5cGUpICE9PSAnb2JqZWN0Jykge1xuICAgICAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3NlY3JldERhdGFUeXBlJywgcm9zLnZhbGlkYXRlQWxsb3dlZFZhbHVlcykoe1xuICAgICAgICAgIGRhdGE6IHByb3BlcnRpZXMuc2VjcmV0RGF0YVR5cGUsXG4gICAgICAgICAgYWxsb3dlZFZhbHVlczogW1widGV4dFwiLFwiYmluYXJ5XCJdLFxuICAgICAgICB9KSk7XG4gICAgfVxuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignc2VjcmV0RGF0YVR5cGUnLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuc2VjcmV0RGF0YVR5cGUpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ2RrbXNJbnN0YW5jZUlkJywgcm9zLnZhbGlkYXRlU3RyaW5nKShwcm9wZXJ0aWVzLmRrbXNJbnN0YW5jZUlkKSk7XG4gICAgaWYocHJvcGVydGllcy52ZXJzaW9uU3RhZ2VzICYmIChBcnJheS5pc0FycmF5KHByb3BlcnRpZXMudmVyc2lvblN0YWdlcykgfHwgKHR5cGVvZiBwcm9wZXJ0aWVzLnZlcnNpb25TdGFnZXMpID09PSAnc3RyaW5nJykpIHtcbiAgICAgICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCd2ZXJzaW9uU3RhZ2VzJywgcm9zLnZhbGlkYXRlTGVuZ3RoKSh7XG4gICAgICAgICAgICBkYXRhOiBwcm9wZXJ0aWVzLnZlcnNpb25TdGFnZXMubGVuZ3RoLFxuICAgICAgICAgICAgbWluOiAxLFxuICAgICAgICAgICAgbWF4OiA3LFxuICAgICAgICAgIH0pKTtcbiAgICB9XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCd2ZXJzaW9uU3RhZ2VzJywgcm9zLmxpc3RWYWxpZGF0b3Iocm9zLnZhbGlkYXRlU3RyaW5nKSkocHJvcGVydGllcy52ZXJzaW9uU3RhZ2VzKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdzZWNyZXROYW1lJywgcm9zLnJlcXVpcmVkVmFsaWRhdG9yKShwcm9wZXJ0aWVzLnNlY3JldE5hbWUpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3NlY3JldE5hbWUnLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuc2VjcmV0TmFtZSkpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignZW5hYmxlQXV0b21hdGljUm90YXRpb24nLCByb3MudmFsaWRhdGVCb29sZWFuKShwcm9wZXJ0aWVzLmVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdleHRlbmRlZENvbmZpZycsIHJvcy5oYXNoVmFsaWRhdG9yKHJvcy52YWxpZGF0ZUFueSkpKHByb3BlcnRpZXMuZXh0ZW5kZWRDb25maWcpKTtcbiAgICBlcnJvcnMuY29sbGVjdChyb3MucHJvcGVydHlWYWxpZGF0b3IoJ3NlY3JldERhdGEnLCByb3MucmVxdWlyZWRWYWxpZGF0b3IpKHByb3BlcnRpZXMuc2VjcmV0RGF0YSkpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignc2VjcmV0RGF0YScsIHJvcy52YWxpZGF0ZVN0cmluZykocHJvcGVydGllcy5zZWNyZXREYXRhKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdlbmNyeXB0aW9uS2V5SWQnLCByb3MudmFsaWRhdGVTdHJpbmcpKHByb3BlcnRpZXMuZW5jcnlwdGlvbktleUlkKSk7XG4gICAgZXJyb3JzLmNvbGxlY3Qocm9zLnByb3BlcnR5VmFsaWRhdG9yKCdyZWNvdmVyeVdpbmRvd0luRGF5cycsIHJvcy52YWxpZGF0ZU51bWJlcikocHJvcGVydGllcy5yZWNvdmVyeVdpbmRvd0luRGF5cykpO1xuICAgIGVycm9ycy5jb2xsZWN0KHJvcy5wcm9wZXJ0eVZhbGlkYXRvcignZm9yY2VEZWxldGVXaXRob3V0UmVjb3ZlcnknLCByb3MudmFsaWRhdGVCb29sZWFuKShwcm9wZXJ0aWVzLmZvcmNlRGVsZXRlV2l0aG91dFJlY292ZXJ5KSk7XG4gICAgcmV0dXJuIGVycm9ycy53cmFwKCdzdXBwbGllZCBwcm9wZXJ0aWVzIG5vdCBjb3JyZWN0IGZvciBcIlJvc1NlY3JldFByb3BzXCInKTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgcHJvcGVydGllcyBvZiBhbiBgQUxJWVVOOjpLTVM6OlNlY3JldGAgcmVzb3VyY2VcbiAqXG4gKiBAcGFyYW0gcHJvcGVydGllcyAtIHRoZSBUeXBlU2NyaXB0IHByb3BlcnRpZXMgb2YgYSBgUm9zU2VjcmV0UHJvcHNgXG4gKlxuICogQHJldHVybnMgdGhlIEFsaUNsb3VkIFJPUyBSZXNvdXJjZSBwcm9wZXJ0aWVzIG9mIGFuIGBBTElZVU46OktNUzo6U2VjcmV0YCByZXNvdXJjZS5cbiAqL1xuLy8gQHRzLWlnbm9yZSBUUzYxMzNcbmZ1bmN0aW9uIHJvc1NlY3JldFByb3BzVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzOiBhbnksIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OiBib29sZWFuKTogYW55IHtcbiAgICBpZiAoIXJvcy5jYW5JbnNwZWN0KHByb3BlcnRpZXMpKSB7IHJldHVybiBwcm9wZXJ0aWVzOyB9XG4gICAgaWYoZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQpIHtcbiAgICAgICAgUm9zU2VjcmV0UHJvcHNWYWxpZGF0b3IocHJvcGVydGllcykuYXNzZXJ0U3VjY2VzcygpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgU2VjcmV0RGF0YTogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5zZWNyZXREYXRhKSxcbiAgICAgIFNlY3JldE5hbWU6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMuc2VjcmV0TmFtZSksXG4gICAgICBWZXJzaW9uSWQ6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMudmVyc2lvbklkKSxcbiAgICAgIERlc2NyaXB0aW9uOiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLmRlc2NyaXB0aW9uKSxcbiAgICAgIERLTVNJbnN0YW5jZUlkOiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLmRrbXNJbnN0YW5jZUlkKSxcbiAgICAgIEVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uOiByb3MuYm9vbGVhblRvUm9zVGVtcGxhdGUocHJvcGVydGllcy5lbmFibGVBdXRvbWF0aWNSb3RhdGlvbiksXG4gICAgICBFbmNyeXB0aW9uS2V5SWQ6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMuZW5jcnlwdGlvbktleUlkKSxcbiAgICAgIEV4dGVuZGVkQ29uZmlnOiByb3MuaGFzaE1hcHBlcihyb3Mub2JqZWN0VG9Sb3NUZW1wbGF0ZSkocHJvcGVydGllcy5leHRlbmRlZENvbmZpZyksXG4gICAgICBGb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeTogcm9zLmJvb2xlYW5Ub1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMuZm9yY2VEZWxldGVXaXRob3V0UmVjb3ZlcnkpLFxuICAgICAgUmVjb3ZlcnlXaW5kb3dJbkRheXM6IHJvcy5udW1iZXJUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMucmVjb3ZlcnlXaW5kb3dJbkRheXMpLFxuICAgICAgUm90YXRpb25JbnRlcnZhbDogcm9zLnN0cmluZ1RvUm9zVGVtcGxhdGUocHJvcGVydGllcy5yb3RhdGlvbkludGVydmFsKSxcbiAgICAgIFNlY3JldERhdGFUeXBlOiByb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZShwcm9wZXJ0aWVzLnNlY3JldERhdGFUeXBlKSxcbiAgICAgIFNlY3JldFR5cGU6IHJvcy5zdHJpbmdUb1Jvc1RlbXBsYXRlKHByb3BlcnRpZXMuc2VjcmV0VHlwZSksXG4gICAgICBWZXJzaW9uU3RhZ2VzOiByb3MubGlzdE1hcHBlcihyb3Muc3RyaW5nVG9Sb3NUZW1wbGF0ZSkocHJvcGVydGllcy52ZXJzaW9uU3RhZ2VzKSxcbiAgICB9O1xufVxuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgYSBiYXNlIGVuY2Fwc3VsYXRpb24gYXJvdW5kIHRoZSBST1MgcmVzb3VyY2UgdHlwZSBgQUxJWVVOOjpLTVM6OlNlY3JldGAsIHdoaWNoIGlzIHVzZWQgdG8gY3JlYXRlIGEgc2VjcmV0IGFuZCBzdG9yZSB0aGUgaW5pdGlhbCB2ZXJzaW9uIG9mIHRoZSBzZWNyZXQuXG4gKiBATm90ZSBUaGlzIGNsYXNzIGRvZXMgbm90IGNvbnRhaW4gYWRkaXRpb25hbCBmdW5jdGlvbnMsIHNvIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUgYFNlY3JldGAgY2xhc3MgaW5zdGVhZCBvZiB0aGlzIGNsYXNzIGZvciBhIG1vcmUgY29udmVuaWVudCBkZXZlbG9wbWVudCBleHBlcmllbmNlLlxuICogU2VlIGh0dHBzOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20vaGVscC9yb3MvZGV2ZWxvcGVyLXJlZmVyZW5jZS9hbGl5dW4ta21zLXNlY3JldFxuICovXG5leHBvcnQgY2xhc3MgUm9zU2VjcmV0IGV4dGVuZHMgcm9zLlJvc1Jlc291cmNlIHtcbiAgICAvKipcbiAgICAgKiBUaGUgcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUk9TX1JFU09VUkNFX1RZUEVfTkFNRSA9IFwiQUxJWVVOOjpLTVM6OlNlY3JldFwiO1xuXG4gICAgLyoqXG4gICAgICogQEF0dHJpYnV0ZSBBcm46IFRoZSBBbGliYWJhIENsb3VkIFJlc291cmNlIE5hbWUgKEFSTikuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJBcm46IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBBdHRyaWJ1dGUgU2VjcmV0TmFtZTogVGhlIG5hbWUgb2YgdGhlIHNlY3JldC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clNlY3JldE5hbWU6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIHB1YmxpYyBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbjtcblxuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHNlY3JldERhdGE6IFRoZSB2YWx1ZSBvZiB0aGUgc2VjcmV0IHRoYXQgeW91IHdhbnQgdG8gY3JlYXRlLiBTZWNyZXRzIE1hbmFnZXIgZW5jcnlwdHMgdGhlIHNlY3JldFxuICAgICAqIHZhbHVlIGFuZCBzdG9yZXMgaXQgaW4gdGhlIGluaXRpYWwgdmVyc2lvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VjcmV0RGF0YTogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHNlY3JldE5hbWU6IFRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuXG4gICAgICovXG4gICAgcHVibGljIHNlY3JldE5hbWU6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSB2ZXJzaW9uSWQ6IFRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGUgaW5pdGlhbCB2ZXJzaW9uLiBWZXJzaW9uIG51bWJlcnMgYXJlIHVuaXF1ZSBpbiBlYWNoIHNlY3JldFxuICAgICAqIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdmVyc2lvbklkOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgZGVzY3JpcHRpb246IFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgc2VjcmV0LlxuICAgICAqL1xuICAgIHB1YmxpYyBkZXNjcmlwdGlvbjogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IGRrbXNJbnN0YW5jZUlkOiBUaGUgSUQgb2YgdGhlIGRlZGljYXRlZCBLTVMgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIGRrbXNJbnN0YW5jZUlkOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgZW5hYmxlQXV0b21hdGljUm90YXRpb246IFNwZWNpZmllcyB3aGV0aGVyIHRvIGVuYWJsZSBhdXRvbWF0aWMgcm90YXRpb24uIFZhbGlkIHZhbHVlczpcbiAgICAgKiB0cnVlOiBzcGVjaWZpZXMgdG8gZW5hYmxlIGF1dG9tYXRpYyByb3RhdGlvbi5cbiAgICAgKiBmYWxzZTogc3BlY2lmaWVzIHRvIGRpc2FibGUgYXV0b21hdGljIHJvdGF0aW9uLiBUaGlzIGlzIHRoZSBkZWZhdWx0IHZhbHVlLlxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVBdXRvbWF0aWNSb3RhdGlvbjogYm9vbGVhbiB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBlbmNyeXB0aW9uS2V5SWQ6IFRoZSBJRCBvZiB0aGUgS01TIENNSyB0aGF0IGlzIHVzZWQgdG8gZW5jcnlwdCB0aGUgc2VjcmV0IHZhbHVlLlxuICAgICAqIElmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGlzIHBhcmFtZXRlciwgU2VjcmV0cyBNYW5hZ2VyIGF1dG9tYXRpY2FsbHkgY3JlYXRlcyBhbiBlbmNyeXB0aW9uXG4gICAgICoga2V5IHRvIGVuY3J5cHQgdGhlIHNlY3JldC5cbiAgICAgKiBOb3RlIFRoZSBLTVMgQ01LIG11c3QgYmUgYSBzeW1tZXRyaWMga2V5LlxuICAgICAqL1xuICAgIHB1YmxpYyBlbmNyeXB0aW9uS2V5SWQ6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSBleHRlbmRlZENvbmZpZzogVGhlIGV4dGVuZGVkIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNlY3JldC4gVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBzZWNyZXQgb2YgdGhlIHNwZWNpZmljIHR5cGUuXG4gICAgICovXG4gICAgcHVibGljIGV4dGVuZGVkQ29uZmlnOiB7IFtrZXk6IHN0cmluZ106IChhbnkgfCByb3MuSVJlc29sdmFibGUpIH0gfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgZm9yY2VEZWxldGVXaXRob3V0UmVjb3Zlcnk6IFNwZWNpZmllcyB3aGV0aGVyIHRvIGZvcmNpYmx5IGRlbGV0ZSB0aGUgc2VjcmV0LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gdHJ1ZSwgdGhlIHNlY3JldCBjYW5ub3QgYmUgcmVjb3ZlcmVkLiBWYWxpZCB2YWx1ZXM6XG4gICAgICogdHJ1ZVxuICAgICAqIGZhbHNlIChkZWZhdWx0IHZhbHVlKVxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeTogYm9vbGVhbiB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSByZWNvdmVyeVdpbmRvd0luRGF5czogU3BlY2lmaWVzIHRoZSByZWNvdmVyeSBwZXJpb2Qgb2YgdGhlIHNlY3JldCBpZiB5b3UgZG8gbm90IGZvcmNpYmx5IGRlbGV0ZSBpdC4gRGVmYXVsdCB2YWx1ZTogMzBcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVjb3ZlcnlXaW5kb3dJbkRheXM6IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEBQcm9wZXJ0eSByb3RhdGlvbkludGVydmFsOiBUaGUgaW50ZXJ2YWwgZm9yIGF1dG9tYXRpYyByb3RhdGlvbi4gVmFsaWQgdmFsdWVzOiA2IGhvdXJzIHRvIDgsNzYwIGhvdXJzICgzNjUgZGF5cykuXG4gICAgICogVGhlIHZhbHVlIGlzIGluIHRoZSBpbnRlZ2VyW3VuaXRdIGZvcm1hdC5cbiAgICAgKiBUaGUgdW5pdCBjYW4gYmUgZCAoZGF5KSwgaCAoaG91ciksIG0gKG1pbnV0ZSksIG9yIHMgKHNlY29uZCkuIEZvciBleGFtcGxlLCBib3RoIDdkIGFuZCA2MDQ4MDBzIGluZGljYXRlIGEgc2V2ZW4tZGF5IGludGVydmFsLlxuICAgICAqL1xuICAgIHB1YmxpYyByb3RhdGlvbkludGVydmFsOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgc2VjcmV0RGF0YVR5cGU6IFRoZSB0eXBlIG9mIHRoZSBzZWNyZXQgdmFsdWUuIFZhbGlkIHZhbHVlczpcbiAgICAgKiB0ZXh0IChkZWZhdWx0IHZhbHVlKVxuICAgICAqIGJpbmFyeVxuICAgICAqL1xuICAgIHB1YmxpYyBzZWNyZXREYXRhVHlwZTogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQFByb3BlcnR5IHNlY3JldFR5cGU6IFRoZSB0eXBlIG9mIHRoZSBzZWNyZXQuIFZhbGlkIHZhbHVlczpcbiAgICAgKiBHZW5lcmljOiBzcGVjaWZpZXMgYSBnZW5lcmljIHNlY3JldC5cbiAgICAgKiBSZHM6IHNwZWNpZmllcyBhIG1hbmFnZWQgQXBzYXJhREIgUkRTIHNlY3JldC5cbiAgICAgKiBSQU1DcmVkZW50aWFsczogc3BlY2lmaWVzIGEgbWFuYWdlZCBSQU0gc2VjcmV0LlxuICAgICAqIEVDUzogc3BlY2lmaWVzIGEgbWFuYWdlZCBFQ1Mgc2VjcmV0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZWNyZXRUeXBlOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAUHJvcGVydHkgdmVyc2lvblN0YWdlczogVGhlIHN0YWdlIGxhYmVscyB0aGF0IG1hcmsgdGhlIHNlY3JldCB2ZXJzaW9uLiBBQ1NDdXJyZW50IHdpbGwgYmUgbWFya2VkIGFzIERlZmF1bHRJZiB5b3UgZG8gbm90IHNwZWNpZnkgaXQsIFNlY3JldHMgTWFuYWdlciBtYXJrcyBpdCB3aXRoIFwiQUNTQ3VycmVudFwiLlxuICAgICAqL1xuICAgIHB1YmxpYyB2ZXJzaW9uU3RhZ2VzOiBBcnJheTxzdHJpbmcgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAgICogQHBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogcm9zLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJvc1NlY3JldFByb3BzLCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbikge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQsIHsgdHlwZTogUm9zU2VjcmV0LlJPU19SRVNPVVJDRV9UWVBFX05BTUUsIHByb3BlcnRpZXM6IHByb3BzIH0pO1xuICAgICAgICB0aGlzLmF0dHJBcm4gPSB0aGlzLmdldEF0dCgnQXJuJyk7XG4gICAgICAgIHRoaXMuYXR0clNlY3JldE5hbWUgPSB0aGlzLmdldEF0dCgnU2VjcmV0TmFtZScpO1xuXG4gICAgICAgIHRoaXMuZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgPSBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDtcbiAgICAgICAgdGhpcy5zZWNyZXREYXRhID0gcHJvcHMuc2VjcmV0RGF0YTtcbiAgICAgICAgdGhpcy5zZWNyZXROYW1lID0gcHJvcHMuc2VjcmV0TmFtZTtcbiAgICAgICAgdGhpcy52ZXJzaW9uSWQgPSBwcm9wcy52ZXJzaW9uSWQ7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBwcm9wcy5kZXNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy5ka21zSW5zdGFuY2VJZCA9IHByb3BzLmRrbXNJbnN0YW5jZUlkO1xuICAgICAgICB0aGlzLmVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uID0gcHJvcHMuZW5hYmxlQXV0b21hdGljUm90YXRpb247XG4gICAgICAgIHRoaXMuZW5jcnlwdGlvbktleUlkID0gcHJvcHMuZW5jcnlwdGlvbktleUlkO1xuICAgICAgICB0aGlzLmV4dGVuZGVkQ29uZmlnID0gcHJvcHMuZXh0ZW5kZWRDb25maWc7XG4gICAgICAgIHRoaXMuZm9yY2VEZWxldGVXaXRob3V0UmVjb3ZlcnkgPSBwcm9wcy5mb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeTtcbiAgICAgICAgdGhpcy5yZWNvdmVyeVdpbmRvd0luRGF5cyA9IHByb3BzLnJlY292ZXJ5V2luZG93SW5EYXlzO1xuICAgICAgICB0aGlzLnJvdGF0aW9uSW50ZXJ2YWwgPSBwcm9wcy5yb3RhdGlvbkludGVydmFsO1xuICAgICAgICB0aGlzLnNlY3JldERhdGFUeXBlID0gcHJvcHMuc2VjcmV0RGF0YVR5cGU7XG4gICAgICAgIHRoaXMuc2VjcmV0VHlwZSA9IHByb3BzLnNlY3JldFR5cGU7XG4gICAgICAgIHRoaXMudmVyc2lvblN0YWdlcyA9IHByb3BzLnZlcnNpb25TdGFnZXM7XG4gICAgfVxuXG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHJvc1Byb3BlcnRpZXMoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSAge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2VjcmV0RGF0YTogdGhpcy5zZWNyZXREYXRhLFxuICAgICAgICAgICAgc2VjcmV0TmFtZTogdGhpcy5zZWNyZXROYW1lLFxuICAgICAgICAgICAgdmVyc2lvbklkOiB0aGlzLnZlcnNpb25JZCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgZGttc0luc3RhbmNlSWQ6IHRoaXMuZGttc0luc3RhbmNlSWQsXG4gICAgICAgICAgICBlbmFibGVBdXRvbWF0aWNSb3RhdGlvbjogdGhpcy5lbmFibGVBdXRvbWF0aWNSb3RhdGlvbixcbiAgICAgICAgICAgIGVuY3J5cHRpb25LZXlJZDogdGhpcy5lbmNyeXB0aW9uS2V5SWQsXG4gICAgICAgICAgICBleHRlbmRlZENvbmZpZzogdGhpcy5leHRlbmRlZENvbmZpZyxcbiAgICAgICAgICAgIGZvcmNlRGVsZXRlV2l0aG91dFJlY292ZXJ5OiB0aGlzLmZvcmNlRGVsZXRlV2l0aG91dFJlY292ZXJ5LFxuICAgICAgICAgICAgcmVjb3ZlcnlXaW5kb3dJbkRheXM6IHRoaXMucmVjb3ZlcnlXaW5kb3dJbkRheXMsXG4gICAgICAgICAgICByb3RhdGlvbkludGVydmFsOiB0aGlzLnJvdGF0aW9uSW50ZXJ2YWwsXG4gICAgICAgICAgICBzZWNyZXREYXRhVHlwZTogdGhpcy5zZWNyZXREYXRhVHlwZSxcbiAgICAgICAgICAgIHNlY3JldFR5cGU6IHRoaXMuc2VjcmV0VHlwZSxcbiAgICAgICAgICAgIHZlcnNpb25TdGFnZXM6IHRoaXMudmVyc2lvblN0YWdlcyxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIHJlbmRlclByb3BlcnRpZXMocHJvcHM6IHtba2V5OiBzdHJpbmddOiBhbnl9KTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSAge1xuICAgICAgICByZXR1cm4gcm9zU2VjcmV0UHJvcHNUb1Jvc1RlbXBsYXRlKHByb3BzLCB0aGlzLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KTtcbiAgICB9XG59XG4iXX0=
|
package/lib/secret.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ import * as ros from '@alicloud/ros-cdk-core';
|
|
|
2
2
|
import { RosSecret } from './kms.generated';
|
|
3
3
|
export { RosSecret as SecretProperty };
|
|
4
4
|
/**
|
|
5
|
-
* Properties for defining a `
|
|
5
|
+
* Properties for defining a `Secret`.
|
|
6
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-secret
|
|
6
7
|
*/
|
|
7
8
|
export interface SecretProps {
|
|
8
9
|
/**
|
|
@@ -82,13 +83,15 @@ export interface SecretProps {
|
|
|
82
83
|
readonly versionStages?: Array<string | ros.IResolvable> | ros.IResolvable;
|
|
83
84
|
}
|
|
84
85
|
/**
|
|
85
|
-
*
|
|
86
|
+
* This class encapsulates and extends the ROS resource type `ALIYUN::KMS::Secret`, which is used to create a secret and store the initial version of the secret.
|
|
87
|
+
* @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosSecret`for a more convenient development experience.
|
|
88
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-secret
|
|
86
89
|
*/
|
|
87
90
|
export declare class Secret extends ros.Resource {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
protected scope: ros.Construct;
|
|
92
|
+
protected id: string;
|
|
93
|
+
protected props: SecretProps;
|
|
94
|
+
protected enableResourcePropertyConstraint: boolean;
|
|
92
95
|
/**
|
|
93
96
|
* Attribute Arn: The Alibaba Cloud Resource Name (ARN).
|
|
94
97
|
*/
|
|
@@ -98,8 +101,6 @@ export declare class Secret extends ros.Resource {
|
|
|
98
101
|
*/
|
|
99
102
|
readonly attrSecretName: ros.IResolvable;
|
|
100
103
|
/**
|
|
101
|
-
* Create a new `ALIYUN::KMS::Secret`.
|
|
102
|
-
*
|
|
103
104
|
* Param scope - scope in which this resource is defined
|
|
104
105
|
* Param id - scoped id of the resource
|
|
105
106
|
* Param props - resource properties
|
package/lib/secret.js
CHANGED
|
@@ -5,18 +5,22 @@ const ros = require("@alicloud/ros-cdk-core");
|
|
|
5
5
|
const kms_generated_1 = require("./kms.generated");
|
|
6
6
|
Object.defineProperty(exports, "SecretProperty", { enumerable: true, get: function () { return kms_generated_1.RosSecret; } });
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* This class encapsulates and extends the ROS resource type `ALIYUN::KMS::Secret`, which is used to create a secret and store the initial version of the secret.
|
|
9
|
+
* @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosSecret`for a more convenient development experience.
|
|
10
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-kms-secret
|
|
9
11
|
*/
|
|
10
12
|
class Secret extends ros.Resource {
|
|
11
13
|
/**
|
|
12
|
-
* Create a new `ALIYUN::KMS::Secret`.
|
|
13
|
-
*
|
|
14
14
|
* Param scope - scope in which this resource is defined
|
|
15
15
|
* Param id - scoped id of the resource
|
|
16
16
|
* Param props - resource properties
|
|
17
17
|
*/
|
|
18
18
|
constructor(scope, id, props, enableResourcePropertyConstraint = true) {
|
|
19
19
|
super(scope, id);
|
|
20
|
+
this.scope = scope;
|
|
21
|
+
this.id = id;
|
|
22
|
+
this.props = props;
|
|
23
|
+
this.enableResourcePropertyConstraint = enableResourcePropertyConstraint;
|
|
20
24
|
const rosSecret = new kms_generated_1.RosSecret(this, id, {
|
|
21
25
|
versionId: props.versionId,
|
|
22
26
|
description: props.description,
|
|
@@ -39,4 +43,4 @@ class Secret extends ros.Resource {
|
|
|
39
43
|
}
|
|
40
44
|
}
|
|
41
45
|
exports.Secret = Secret;
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUE4QztBQUM5QyxtREFBNEM7QUFFdEIsK0ZBRmIseUJBQVMsT0FFa0I7QUErRnBDOztHQUVHO0FBQ0gsTUFBYSxNQUFPLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUFpQnBDOzs7Ozs7T0FNRztJQUNILFlBQVksS0FBb0IsRUFBRSxFQUFVLEVBQUUsS0FBa0IsRUFBRSxtQ0FBMkMsSUFBSTtRQUM3RyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sU0FBUyxHQUFHLElBQUkseUJBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFHO1lBQ3ZDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztZQUNwQyxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDbEMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLHVCQUF1QixFQUFFLEtBQUssQ0FBQyx1QkFBdUI7WUFDdEQsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsb0JBQW9CLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxvQkFBb0I7WUFDdkksMEJBQTBCLEVBQUUsS0FBSyxDQUFDLDBCQUEwQixLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsMEJBQTBCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQywwQkFBMEI7U0FDckssRUFBRSxnQ0FBZ0MsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQztJQUNuRCxDQUFDO0NBQ0o7QUEvQ0Qsd0JBK0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuaW1wb3J0IHsgUm9zU2VjcmV0IH0gZnJvbSAnLi9rbXMuZ2VuZXJhdGVkJztcbi8vIEdlbmVyYXRlZCBmcm9tIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgU3BlY2lmaWNhdGlvblxuZXhwb3J0IHsgUm9zU2VjcmV0IGFzIFNlY3JldFByb3BlcnR5IH07XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBgQUxJWVVOOjpLTVM6OlNlY3JldGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWNyZXRQcm9wcyB7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzZWNyZXREYXRhOiBUaGUgdmFsdWUgb2YgdGhlIHNlY3JldCB0aGF0IHlvdSB3YW50IHRvIGNyZWF0ZS4gU2VjcmV0cyBNYW5hZ2VyIGVuY3J5cHRzIHRoZSBzZWNyZXRcbiAgICAgKiB2YWx1ZSBhbmQgc3RvcmVzIGl0IGluIHRoZSBpbml0aWFsIHZlcnNpb24uXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VjcmV0RGF0YTogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc2VjcmV0TmFtZTogVGhlIG5hbWUgb2YgdGhlIHNlY3JldC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzZWNyZXROYW1lOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB2ZXJzaW9uSWQ6IFRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGUgaW5pdGlhbCB2ZXJzaW9uLiBWZXJzaW9uIG51bWJlcnMgYXJlIHVuaXF1ZSBpbiBlYWNoIHNlY3JldFxuICAgICAqIG9iamVjdC5cbiAgICAgKi9cbiAgICByZWFkb25seSB2ZXJzaW9uSWQ6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRlc2NyaXB0aW9uOiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHNlY3JldC5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRrbXNJbnN0YW5jZUlkOiBUaGUgSUQgb2YgdGhlIGRlZGljYXRlZCBLTVMgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGttc0luc3RhbmNlSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBlbmFibGVBdXRvbWF0aWNSb3RhdGlvbjogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyByb3RhdGlvbi4gVmFsaWQgdmFsdWVzOlxuICAgICAqIHRydWU6IHNwZWNpZmllcyB0byBlbmFibGUgYXV0b21hdGljIHJvdGF0aW9uLlxuICAgICAqIGZhbHNlOiBzcGVjaWZpZXMgdG8gZGlzYWJsZSBhdXRvbWF0aWMgcm90YXRpb24uIFRoaXMgaXMgdGhlIGRlZmF1bHQgdmFsdWUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5hYmxlQXV0b21hdGljUm90YXRpb24/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZW5jcnlwdGlvbktleUlkOiBUaGUgSUQgb2YgdGhlIEtNUyBDTUsgdGhhdCBpcyB1c2VkIHRvIGVuY3J5cHQgdGhlIHNlY3JldCB2YWx1ZS5cbiAgICAgKiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgdGhpcyBwYXJhbWV0ZXIsIFNlY3JldHMgTWFuYWdlciBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYW4gZW5jcnlwdGlvblxuICAgICAqIGtleSB0byBlbmNyeXB0IHRoZSBzZWNyZXQuXG4gICAgICogTm90ZSBUaGUgS01TIENNSyBtdXN0IGJlIGEgc3ltbWV0cmljIGtleS5cbiAgICAgKi9cbiAgICByZWFkb25seSBlbmNyeXB0aW9uS2V5SWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBleHRlbmRlZENvbmZpZzogVGhlIGV4dGVuZGVkIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNlY3JldC4gVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBzZWNyZXQgb2YgdGhlIHNwZWNpZmljIHR5cGUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZXh0ZW5kZWRDb25maWc/OiB7IFtrZXk6IHN0cmluZ106IChhbnkgfCByb3MuSVJlc29sdmFibGUpIH0gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBmb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeTogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZm9yY2libHkgZGVsZXRlIHRoZSBzZWNyZXQuIElmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byB0cnVlLCB0aGUgc2VjcmV0IGNhbm5vdCBiZSByZWNvdmVyZWQuIFZhbGlkIHZhbHVlczpcbiAgICAgKiB0cnVlXG4gICAgICogZmFsc2UgKGRlZmF1bHQgdmFsdWUpXG4gICAgICovXG4gICAgcmVhZG9ubHkgZm9yY2VEZWxldGVXaXRob3V0UmVjb3Zlcnk/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcmVjb3ZlcnlXaW5kb3dJbkRheXM6IFNwZWNpZmllcyB0aGUgcmVjb3ZlcnkgcGVyaW9kIG9mIHRoZSBzZWNyZXQgaWYgeW91IGRvIG5vdCBmb3JjaWJseSBkZWxldGUgaXQuIERlZmF1bHQgdmFsdWU6IDMwXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmVjb3ZlcnlXaW5kb3dJbkRheXM/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSByb3RhdGlvbkludGVydmFsOiBUaGUgaW50ZXJ2YWwgZm9yIGF1dG9tYXRpYyByb3RhdGlvbi4gVmFsaWQgdmFsdWVzOiA2IGhvdXJzIHRvIDgsNzYwIGhvdXJzICgzNjUgZGF5cykuXG4gICAgICogVGhlIHZhbHVlIGlzIGluIHRoZSBpbnRlZ2VyW3VuaXRdIGZvcm1hdC5cbiAgICAgKiBUaGUgdW5pdCBjYW4gYmUgZCAoZGF5KSwgaCAoaG91ciksIG0gKG1pbnV0ZSksIG9yIHMgKHNlY29uZCkuIEZvciBleGFtcGxlLCBib3RoIDdkIGFuZCA2MDQ4MDBzIGluZGljYXRlIGEgc2V2ZW4tZGF5IGludGVydmFsLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJvdGF0aW9uSW50ZXJ2YWw/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzZWNyZXREYXRhVHlwZTogVGhlIHR5cGUgb2YgdGhlIHNlY3JldCB2YWx1ZS4gVmFsaWQgdmFsdWVzOlxuICAgICAqIHRleHQgKGRlZmF1bHQgdmFsdWUpXG4gICAgICogYmluYXJ5XG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VjcmV0RGF0YVR5cGU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzZWNyZXRUeXBlOiBUaGUgdHlwZSBvZiB0aGUgc2VjcmV0LiBWYWxpZCB2YWx1ZXM6XG4gICAgICogR2VuZXJpYzogc3BlY2lmaWVzIGEgZ2VuZXJpYyBzZWNyZXQuXG4gICAgICogUmRzOiBzcGVjaWZpZXMgYSBtYW5hZ2VkIEFwc2FyYURCIFJEUyBzZWNyZXQuXG4gICAgICogUkFNQ3JlZGVudGlhbHM6IHNwZWNpZmllcyBhIG1hbmFnZWQgUkFNIHNlY3JldC5cbiAgICAgKiBFQ1M6IHNwZWNpZmllcyBhIG1hbmFnZWQgRUNTIHNlY3JldC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzZWNyZXRUeXBlPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdmVyc2lvblN0YWdlczogVGhlIHN0YWdlIGxhYmVscyB0aGF0IG1hcmsgdGhlIHNlY3JldCB2ZXJzaW9uLiBBQ1NDdXJyZW50IHdpbGwgYmUgbWFya2VkIGFzIERlZmF1bHRJZiB5b3UgZG8gbm90IHNwZWNpZnkgaXQsIFNlY3JldHMgTWFuYWdlciBtYXJrcyBpdCB3aXRoIFwiQUNTQ3VycmVudFwiLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHZlcnNpb25TdGFnZXM/OiBBcnJheTxzdHJpbmcgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xufVxuXG4vKipcbiAqIEEgUk9TIHJlc291cmNlIHR5cGU6ICBgQUxJWVVOOjpLTVM6OlNlY3JldGBcbiAqL1xuZXhwb3J0IGNsYXNzIFNlY3JldCBleHRlbmRzIHJvcy5SZXNvdXJjZSB7XG5cbiAgICAvKipcbiAgICAgKiBBIGZhY3RvcnkgbWV0aG9kIHRoYXQgY3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGZyb20gYW4gb2JqZWN0XG4gICAgICogY29udGFpbmluZyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIFJPUyByZXNvdXJjZSwgd2hpY2ggd2lsbCBiZSBhc3NpZ25lZCB0byBST1MgcmVzb3VyY2UuXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgQXJuOiBUaGUgQWxpYmFiYSBDbG91ZCBSZXNvdXJjZSBOYW1lIChBUk4pLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyQXJuOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgU2VjcmV0TmFtZTogVGhlIG5hbWUgb2YgdGhlIHNlY3JldC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clNlY3JldE5hbWU6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyBgQUxJWVVOOjpLTVM6OlNlY3JldGAuXG4gICAgICpcbiAgICAgKiBQYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgICAqIFBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIFBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiByb3MuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2VjcmV0UHJvcHMsIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OmJvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAgICAgY29uc3Qgcm9zU2VjcmV0ID0gbmV3IFJvc1NlY3JldCh0aGlzLCBpZCwgIHtcbiAgICAgICAgICAgIHZlcnNpb25JZDogcHJvcHMudmVyc2lvbklkLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgcm90YXRpb25JbnRlcnZhbDogcHJvcHMucm90YXRpb25JbnRlcnZhbCxcbiAgICAgICAgICAgIHNlY3JldFR5cGU6IHByb3BzLnNlY3JldFR5cGUsXG4gICAgICAgICAgICBzZWNyZXREYXRhVHlwZTogcHJvcHMuc2VjcmV0RGF0YVR5cGUsXG4gICAgICAgICAgICBka21zSW5zdGFuY2VJZDogcHJvcHMuZGttc0luc3RhbmNlSWQsXG4gICAgICAgICAgICB2ZXJzaW9uU3RhZ2VzOiBwcm9wcy52ZXJzaW9uU3RhZ2VzLFxuICAgICAgICAgICAgc2VjcmV0TmFtZTogcHJvcHMuc2VjcmV0TmFtZSxcbiAgICAgICAgICAgIGVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uOiBwcm9wcy5lbmFibGVBdXRvbWF0aWNSb3RhdGlvbixcbiAgICAgICAgICAgIGV4dGVuZGVkQ29uZmlnOiBwcm9wcy5leHRlbmRlZENvbmZpZyxcbiAgICAgICAgICAgIHNlY3JldERhdGE6IHByb3BzLnNlY3JldERhdGEsXG4gICAgICAgICAgICBlbmNyeXB0aW9uS2V5SWQ6IHByb3BzLmVuY3J5cHRpb25LZXlJZCxcbiAgICAgICAgICAgIHJlY292ZXJ5V2luZG93SW5EYXlzOiBwcm9wcy5yZWNvdmVyeVdpbmRvd0luRGF5cyA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnJlY292ZXJ5V2luZG93SW5EYXlzID09PSBudWxsID8gMzAgOiBwcm9wcy5yZWNvdmVyeVdpbmRvd0luRGF5cyxcbiAgICAgICAgICAgIGZvcmNlRGVsZXRlV2l0aG91dFJlY292ZXJ5OiBwcm9wcy5mb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeSA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmZvcmNlRGVsZXRlV2l0aG91dFJlY292ZXJ5ID09PSBudWxsID8gZmFsc2UgOiBwcm9wcy5mb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeSxcbiAgICAgICAgfSwgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgJiYgdGhpcy5zdGFjay5lbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCk7XG4gICAgICAgIHRoaXMucmVzb3VyY2UgPSByb3NTZWNyZXQ7XG4gICAgICAgIHRoaXMuYXR0ckFybiA9IHJvc1NlY3JldC5hdHRyQXJuO1xuICAgICAgICB0aGlzLmF0dHJTZWNyZXROYW1lID0gcm9zU2VjcmV0LmF0dHJTZWNyZXROYW1lO1xuICAgIH1cbn1cbiJdfQ==
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VjcmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUE4QztBQUM5QyxtREFBNEM7QUFFdEIsK0ZBRmIseUJBQVMsT0FFa0I7QUFnR3BDOzs7O0dBSUc7QUFDSCxNQUFhLE1BQU8sU0FBUSxHQUFHLENBQUMsUUFBUTtJQWdCcEM7Ozs7T0FJRztJQUNILFlBQVksS0FBb0IsRUFBRSxFQUFVLEVBQUUsS0FBa0IsRUFBRSxtQ0FBMkMsSUFBSTtRQUM3RyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLGdDQUFnQyxDQUFDO1FBRXpFLE1BQU0sU0FBUyxHQUFHLElBQUkseUJBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFHO1lBQ3ZDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztZQUNwQyxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDbEMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLHVCQUF1QixFQUFFLEtBQUssQ0FBQyx1QkFBdUI7WUFDdEQsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsb0JBQW9CLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxvQkFBb0I7WUFDdkksMEJBQTBCLEVBQUUsS0FBSyxDQUFDLDBCQUEwQixLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsMEJBQTBCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQywwQkFBMEI7U0FDckssRUFBRSxnQ0FBZ0MsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQztJQUNuRCxDQUFDO0NBQ0o7QUFoREQsd0JBZ0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuaW1wb3J0IHsgUm9zU2VjcmV0IH0gZnJvbSAnLi9rbXMuZ2VuZXJhdGVkJztcbi8vIEdlbmVyYXRlZCBmcm9tIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgU3BlY2lmaWNhdGlvblxuZXhwb3J0IHsgUm9zU2VjcmV0IGFzIFNlY3JldFByb3BlcnR5IH07XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBgU2VjcmV0YC5cbiAqIFNlZSBodHRwczovL3d3dy5hbGliYWJhY2xvdWQuY29tL2hlbHAvcm9zL2RldmVsb3Blci1yZWZlcmVuY2UvYWxpeXVuLWttcy1zZWNyZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWNyZXRQcm9wcyB7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzZWNyZXREYXRhOiBUaGUgdmFsdWUgb2YgdGhlIHNlY3JldCB0aGF0IHlvdSB3YW50IHRvIGNyZWF0ZS4gU2VjcmV0cyBNYW5hZ2VyIGVuY3J5cHRzIHRoZSBzZWNyZXRcbiAgICAgKiB2YWx1ZSBhbmQgc3RvcmVzIGl0IGluIHRoZSBpbml0aWFsIHZlcnNpb24uXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VjcmV0RGF0YTogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc2VjcmV0TmFtZTogVGhlIG5hbWUgb2YgdGhlIHNlY3JldC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzZWNyZXROYW1lOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB2ZXJzaW9uSWQ6IFRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGUgaW5pdGlhbCB2ZXJzaW9uLiBWZXJzaW9uIG51bWJlcnMgYXJlIHVuaXF1ZSBpbiBlYWNoIHNlY3JldFxuICAgICAqIG9iamVjdC5cbiAgICAgKi9cbiAgICByZWFkb25seSB2ZXJzaW9uSWQ6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRlc2NyaXB0aW9uOiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHNlY3JldC5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRrbXNJbnN0YW5jZUlkOiBUaGUgSUQgb2YgdGhlIGRlZGljYXRlZCBLTVMgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGttc0luc3RhbmNlSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBlbmFibGVBdXRvbWF0aWNSb3RhdGlvbjogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyByb3RhdGlvbi4gVmFsaWQgdmFsdWVzOlxuICAgICAqIHRydWU6IHNwZWNpZmllcyB0byBlbmFibGUgYXV0b21hdGljIHJvdGF0aW9uLlxuICAgICAqIGZhbHNlOiBzcGVjaWZpZXMgdG8gZGlzYWJsZSBhdXRvbWF0aWMgcm90YXRpb24uIFRoaXMgaXMgdGhlIGRlZmF1bHQgdmFsdWUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5hYmxlQXV0b21hdGljUm90YXRpb24/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZW5jcnlwdGlvbktleUlkOiBUaGUgSUQgb2YgdGhlIEtNUyBDTUsgdGhhdCBpcyB1c2VkIHRvIGVuY3J5cHQgdGhlIHNlY3JldCB2YWx1ZS5cbiAgICAgKiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgdGhpcyBwYXJhbWV0ZXIsIFNlY3JldHMgTWFuYWdlciBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYW4gZW5jcnlwdGlvblxuICAgICAqIGtleSB0byBlbmNyeXB0IHRoZSBzZWNyZXQuXG4gICAgICogTm90ZSBUaGUgS01TIENNSyBtdXN0IGJlIGEgc3ltbWV0cmljIGtleS5cbiAgICAgKi9cbiAgICByZWFkb25seSBlbmNyeXB0aW9uS2V5SWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBleHRlbmRlZENvbmZpZzogVGhlIGV4dGVuZGVkIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNlY3JldC4gVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBzZWNyZXQgb2YgdGhlIHNwZWNpZmljIHR5cGUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZXh0ZW5kZWRDb25maWc/OiB7IFtrZXk6IHN0cmluZ106IChhbnkgfCByb3MuSVJlc29sdmFibGUpIH0gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBmb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeTogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZm9yY2libHkgZGVsZXRlIHRoZSBzZWNyZXQuIElmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byB0cnVlLCB0aGUgc2VjcmV0IGNhbm5vdCBiZSByZWNvdmVyZWQuIFZhbGlkIHZhbHVlczpcbiAgICAgKiB0cnVlXG4gICAgICogZmFsc2UgKGRlZmF1bHQgdmFsdWUpXG4gICAgICovXG4gICAgcmVhZG9ubHkgZm9yY2VEZWxldGVXaXRob3V0UmVjb3Zlcnk/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcmVjb3ZlcnlXaW5kb3dJbkRheXM6IFNwZWNpZmllcyB0aGUgcmVjb3ZlcnkgcGVyaW9kIG9mIHRoZSBzZWNyZXQgaWYgeW91IGRvIG5vdCBmb3JjaWJseSBkZWxldGUgaXQuIERlZmF1bHQgdmFsdWU6IDMwXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmVjb3ZlcnlXaW5kb3dJbkRheXM/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSByb3RhdGlvbkludGVydmFsOiBUaGUgaW50ZXJ2YWwgZm9yIGF1dG9tYXRpYyByb3RhdGlvbi4gVmFsaWQgdmFsdWVzOiA2IGhvdXJzIHRvIDgsNzYwIGhvdXJzICgzNjUgZGF5cykuXG4gICAgICogVGhlIHZhbHVlIGlzIGluIHRoZSBpbnRlZ2VyW3VuaXRdIGZvcm1hdC5cbiAgICAgKiBUaGUgdW5pdCBjYW4gYmUgZCAoZGF5KSwgaCAoaG91ciksIG0gKG1pbnV0ZSksIG9yIHMgKHNlY29uZCkuIEZvciBleGFtcGxlLCBib3RoIDdkIGFuZCA2MDQ4MDBzIGluZGljYXRlIGEgc2V2ZW4tZGF5IGludGVydmFsLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJvdGF0aW9uSW50ZXJ2YWw/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzZWNyZXREYXRhVHlwZTogVGhlIHR5cGUgb2YgdGhlIHNlY3JldCB2YWx1ZS4gVmFsaWQgdmFsdWVzOlxuICAgICAqIHRleHQgKGRlZmF1bHQgdmFsdWUpXG4gICAgICogYmluYXJ5XG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VjcmV0RGF0YVR5cGU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzZWNyZXRUeXBlOiBUaGUgdHlwZSBvZiB0aGUgc2VjcmV0LiBWYWxpZCB2YWx1ZXM6XG4gICAgICogR2VuZXJpYzogc3BlY2lmaWVzIGEgZ2VuZXJpYyBzZWNyZXQuXG4gICAgICogUmRzOiBzcGVjaWZpZXMgYSBtYW5hZ2VkIEFwc2FyYURCIFJEUyBzZWNyZXQuXG4gICAgICogUkFNQ3JlZGVudGlhbHM6IHNwZWNpZmllcyBhIG1hbmFnZWQgUkFNIHNlY3JldC5cbiAgICAgKiBFQ1M6IHNwZWNpZmllcyBhIG1hbmFnZWQgRUNTIHNlY3JldC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzZWNyZXRUeXBlPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdmVyc2lvblN0YWdlczogVGhlIHN0YWdlIGxhYmVscyB0aGF0IG1hcmsgdGhlIHNlY3JldCB2ZXJzaW9uLiBBQ1NDdXJyZW50IHdpbGwgYmUgbWFya2VkIGFzIERlZmF1bHRJZiB5b3UgZG8gbm90IHNwZWNpZnkgaXQsIFNlY3JldHMgTWFuYWdlciBtYXJrcyBpdCB3aXRoIFwiQUNTQ3VycmVudFwiLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHZlcnNpb25TdGFnZXM/OiBBcnJheTxzdHJpbmcgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xufVxuXG4vKipcbiAqIFRoaXMgY2xhc3MgZW5jYXBzdWxhdGVzIGFuZCBleHRlbmRzIHRoZSBST1MgcmVzb3VyY2UgdHlwZSBgQUxJWVVOOjpLTVM6OlNlY3JldGAsIHdoaWNoIGlzIHVzZWQgdG8gY3JlYXRlIGEgc2VjcmV0IGFuZCBzdG9yZSB0aGUgaW5pdGlhbCB2ZXJzaW9uIG9mIHRoZSBzZWNyZXQuXG4gKiBATm90ZSBUaGlzIGNsYXNzIG1heSBoYXZlIHNvbWUgbmV3IGZ1bmN0aW9ucyB0byBmYWNpbGl0YXRlIGRldmVsb3BtZW50LCBzbyBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhpcyBjbGFzcyBpbnN0ZWFkIG9mIGBSb3NTZWNyZXRgZm9yIGEgbW9yZSBjb252ZW5pZW50IGRldmVsb3BtZW50IGV4cGVyaWVuY2UuXG4gKiBTZWUgaHR0cHM6Ly93d3cuYWxpYmFiYWNsb3VkLmNvbS9oZWxwL3Jvcy9kZXZlbG9wZXItcmVmZXJlbmNlL2FsaXl1bi1rbXMtc2VjcmV0XG4gKi9cbmV4cG9ydCBjbGFzcyBTZWNyZXQgZXh0ZW5kcyByb3MuUmVzb3VyY2Uge1xuICAgIHByb3RlY3RlZCBzY29wZTogcm9zLkNvbnN0cnVjdDtcbiAgICBwcm90ZWN0ZWQgaWQ6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgcHJvcHM6IFNlY3JldFByb3BzO1xuICAgIHByb3RlY3RlZCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBBcm46IFRoZSBBbGliYWJhIENsb3VkIFJlc291cmNlIE5hbWUgKEFSTikuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJBcm46IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBTZWNyZXROYW1lOiBUaGUgbmFtZSBvZiB0aGUgc2VjcmV0LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyU2VjcmV0TmFtZTogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW0gc2NvcGUgLSBzY29wZSBpbiB3aGljaCB0aGlzIHJlc291cmNlIGlzIGRlZmluZWRcbiAgICAgKiBQYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2VcbiAgICAgKiBQYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogcm9zLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNlY3JldFByb3BzLCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDpib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgICAgICB0aGlzLnNjb3BlID0gc2NvcGU7XG4gICAgICAgIHRoaXMuaWQgPSBpZDtcbiAgICAgICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgICAgICB0aGlzLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50ID0gZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ7XG5cbiAgICAgICAgY29uc3Qgcm9zU2VjcmV0ID0gbmV3IFJvc1NlY3JldCh0aGlzLCBpZCwgIHtcbiAgICAgICAgICAgIHZlcnNpb25JZDogcHJvcHMudmVyc2lvbklkLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgcm90YXRpb25JbnRlcnZhbDogcHJvcHMucm90YXRpb25JbnRlcnZhbCxcbiAgICAgICAgICAgIHNlY3JldFR5cGU6IHByb3BzLnNlY3JldFR5cGUsXG4gICAgICAgICAgICBzZWNyZXREYXRhVHlwZTogcHJvcHMuc2VjcmV0RGF0YVR5cGUsXG4gICAgICAgICAgICBka21zSW5zdGFuY2VJZDogcHJvcHMuZGttc0luc3RhbmNlSWQsXG4gICAgICAgICAgICB2ZXJzaW9uU3RhZ2VzOiBwcm9wcy52ZXJzaW9uU3RhZ2VzLFxuICAgICAgICAgICAgc2VjcmV0TmFtZTogcHJvcHMuc2VjcmV0TmFtZSxcbiAgICAgICAgICAgIGVuYWJsZUF1dG9tYXRpY1JvdGF0aW9uOiBwcm9wcy5lbmFibGVBdXRvbWF0aWNSb3RhdGlvbixcbiAgICAgICAgICAgIGV4dGVuZGVkQ29uZmlnOiBwcm9wcy5leHRlbmRlZENvbmZpZyxcbiAgICAgICAgICAgIHNlY3JldERhdGE6IHByb3BzLnNlY3JldERhdGEsXG4gICAgICAgICAgICBlbmNyeXB0aW9uS2V5SWQ6IHByb3BzLmVuY3J5cHRpb25LZXlJZCxcbiAgICAgICAgICAgIHJlY292ZXJ5V2luZG93SW5EYXlzOiBwcm9wcy5yZWNvdmVyeVdpbmRvd0luRGF5cyA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnJlY292ZXJ5V2luZG93SW5EYXlzID09PSBudWxsID8gMzAgOiBwcm9wcy5yZWNvdmVyeVdpbmRvd0luRGF5cyxcbiAgICAgICAgICAgIGZvcmNlRGVsZXRlV2l0aG91dFJlY292ZXJ5OiBwcm9wcy5mb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeSA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmZvcmNlRGVsZXRlV2l0aG91dFJlY292ZXJ5ID09PSBudWxsID8gZmFsc2UgOiBwcm9wcy5mb3JjZURlbGV0ZVdpdGhvdXRSZWNvdmVyeSxcbiAgICAgICAgfSwgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgJiYgdGhpcy5zdGFjay5lbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCk7XG4gICAgICAgIHRoaXMucmVzb3VyY2UgPSByb3NTZWNyZXQ7XG4gICAgICAgIHRoaXMuYXR0ckFybiA9IHJvc1NlY3JldC5hdHRyQXJuO1xuICAgICAgICB0aGlzLmF0dHJTZWNyZXROYW1lID0gcm9zU2VjcmV0LmF0dHJTZWNyZXROYW1lO1xuICAgIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED