@restatedev/restate-cdk 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
[](https://docs.restate.dev)
|
|
2
|
+
[](https://discord.gg/skW3AZ6uGd)
|
|
3
|
+
[](https://twitter.com/intent/follow?screen_name=restatedev)
|
|
4
|
+
|
|
1
5
|
# Restate CDK support
|
|
2
6
|
|
|
3
|
-
CDK construct library for deploying [Restate](https://restate.dev) and Restate services on AWS.
|
|
7
|
+
CDK construct library for deploying [Restate](https://restate.dev) and Restate services on AWS.
|
|
@@ -4,6 +4,7 @@ import * as ec2 from "aws-cdk-lib/aws-ec2";
|
|
|
4
4
|
import * as iam from "aws-cdk-lib/aws-iam";
|
|
5
5
|
import * as cdk from "aws-cdk-lib";
|
|
6
6
|
import * as cr from "aws-cdk-lib/custom-resources";
|
|
7
|
+
import * as acm from "aws-cdk-lib/aws-certificatemanager";
|
|
7
8
|
/**
|
|
8
9
|
* Represents an instance of the Restate service. This could represent a self-hosted broker, or Restate's managed
|
|
9
10
|
* service.
|
|
@@ -28,6 +29,8 @@ export interface RestateInstanceProps {
|
|
|
28
29
|
restateTag?: string;
|
|
29
30
|
/** Amazon Distro for Open Telemetry Docker image tag. Defaults to `latest`. */
|
|
30
31
|
adotTag?: string;
|
|
32
|
+
/** Optional certificate for ingress endpoint. If unspecified, a plain HTTP listener will be created. */
|
|
33
|
+
certificate?: acm.ICertificate;
|
|
31
34
|
}
|
|
32
35
|
/**
|
|
33
36
|
* Creates a Restate service deployment backed by a single EC2 instance,
|
|
@@ -41,6 +41,7 @@ const constructs_1 = require("constructs");
|
|
|
41
41
|
const ec2 = __importStar(require("aws-cdk-lib/aws-ec2"));
|
|
42
42
|
const iam = __importStar(require("aws-cdk-lib/aws-iam"));
|
|
43
43
|
const elb_v2 = __importStar(require("aws-cdk-lib/aws-elasticloadbalancingv2"));
|
|
44
|
+
const aws_elasticloadbalancingv2_1 = require("aws-cdk-lib/aws-elasticloadbalancingv2");
|
|
44
45
|
const aws_elasticloadbalancingv2_targets_1 = require("aws-cdk-lib/aws-elasticloadbalancingv2-targets");
|
|
45
46
|
const lambda_node = __importStar(require("aws-cdk-lib/aws-lambda-nodejs"));
|
|
46
47
|
const node_path_1 = __importDefault(require("node:path"));
|
|
@@ -76,17 +77,17 @@ class SingleNodeRestateInstance extends constructs_1.Construct {
|
|
|
76
77
|
const restateTag = props.restateTag ?? RESTATE_DOCKER_DEFAULT_TAG;
|
|
77
78
|
const adotTag = props.adotTag ?? ADOT_DOCKER_DEFAULT_TAG;
|
|
78
79
|
const restateInitCommands = ec2.UserData.forLinux();
|
|
79
|
-
restateInitCommands.addCommands("
|
|
80
|
+
restateInitCommands.addCommands("yum update -y", "yum install -y docker", "systemctl enable docker.service", "systemctl start docker.service", [
|
|
80
81
|
"docker run --name adot --restart unless-stopped --detach",
|
|
81
82
|
" -p 4317:4317 -p 55680:55680 -p 8889:8888",
|
|
82
83
|
` public.ecr.aws/aws-observability/aws-otel-collector:${adotTag}`,
|
|
83
84
|
].join(""), [
|
|
84
|
-
"
|
|
85
|
+
"docker run --name restate --restart unless-stopped --detach",
|
|
85
86
|
" --volume /var/restate:/target --network=host",
|
|
86
87
|
" -e RESTATE_OBSERVABILITY__LOG__FORMAT=Json -e RUST_LOG=info,restate_worker::partition=warn",
|
|
87
88
|
" -e RESTATE_OBSERVABILITY__TRACING__ENDPOINT=http://localhost:4317",
|
|
88
89
|
` --log-driver=awslogs --log-opt awslogs-group=${props.logGroup.logGroupName}`,
|
|
89
|
-
`
|
|
90
|
+
` docker.io/restatedev/restate:${restateTag}`,
|
|
90
91
|
].join(""));
|
|
91
92
|
const restateInstance = new ec2.Instance(this, "Host", {
|
|
92
93
|
vpc: this.vpc,
|
|
@@ -114,17 +115,20 @@ class SingleNodeRestateInstance extends constructs_1.Construct {
|
|
|
114
115
|
});
|
|
115
116
|
const targetGroup = new elb_v2.ApplicationTargetGroup(this, "TargetGroup", {
|
|
116
117
|
vpc: this.vpc,
|
|
118
|
+
protocol: elb_v2.ApplicationProtocol.HTTP,
|
|
117
119
|
port: RESTATE_INGRESS_PORT,
|
|
118
120
|
targets: [new aws_elasticloadbalancingv2_targets_1.InstanceTarget(restateInstance)],
|
|
119
121
|
healthCheck: {
|
|
120
|
-
path: "/grpc.health.v1.Health/Check",
|
|
121
122
|
protocol: elb_v2.Protocol.HTTP,
|
|
123
|
+
path: "/grpc.health.v1.Health/Check",
|
|
124
|
+
interval: cdk.Duration.seconds(60),
|
|
122
125
|
},
|
|
123
126
|
});
|
|
124
|
-
// TODO: Make this HTTPS (https://github.com/restatedev/restate-cdk-support/issues/2)
|
|
125
127
|
ingressLoadBalancer.addListener("Listener", {
|
|
126
|
-
port: 80,
|
|
128
|
+
port: props.certificate ? 443 : 80,
|
|
129
|
+
protocol: props.certificate ? aws_elasticloadbalancingv2_1.ApplicationProtocol.HTTPS : aws_elasticloadbalancingv2_1.ApplicationProtocol.HTTP,
|
|
127
130
|
defaultTargetGroups: [targetGroup],
|
|
131
|
+
certificates: props.certificate ? [elb_v2.ListenerCertificate.fromCertificateManager(props.certificate)] : [],
|
|
128
132
|
});
|
|
129
133
|
const albSecurityGroup = new ec2.SecurityGroup(this, "AlbSecurityGroup", {
|
|
130
134
|
vpc: this.vpc,
|
|
@@ -150,7 +154,7 @@ class SingleNodeRestateInstance extends constructs_1.Construct {
|
|
|
150
154
|
exportName: [props.prefix, "RegistrationProviderToken"].join("-"),
|
|
151
155
|
value: registrationProvider.serviceToken,
|
|
152
156
|
});
|
|
153
|
-
this.publicIngressEndpoint =
|
|
157
|
+
this.publicIngressEndpoint = `${props.certificate ? "https" : "http"}://${ingressLoadBalancer.loadBalancerDnsName}`;
|
|
154
158
|
this.privateIngressEndpoint = `http://${this.instance.instancePrivateDnsName}:${RESTATE_INGRESS_PORT}`;
|
|
155
159
|
this.metaEndpoint = `http://${this.instance.instancePrivateDnsName}:${RESTATE_META_PORT}`;
|
|
156
160
|
}
|
|
@@ -180,4 +184,4 @@ class SingleNodeRestateInstance extends constructs_1.Construct {
|
|
|
180
184
|
}
|
|
181
185
|
}
|
|
182
186
|
exports.SingleNodeRestateInstance = SingleNodeRestateInstance;
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLW5vZGUtcmVzdGF0ZS1pbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9yZXN0YXRlLWNvbnN0cnVjdHMvc2luZ2xlLW5vZGUtcmVzdGF0ZS1pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDJDQUF1QztBQUV2Qyx5REFBMkM7QUFDM0MseURBQTJDO0FBQzNDLCtFQUFpRTtBQUNqRSx1R0FBZ0Y7QUFDaEYsMkVBQTZEO0FBQzdELDBEQUE2QjtBQUM3QiwrREFBaUQ7QUFDakQsaURBQW1DO0FBQ25DLGlFQUFtRDtBQUVuRCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUNsQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQztBQUMvQixNQUFNLDBCQUEwQixHQUFHLFFBQVEsQ0FBQztBQUM1QyxNQUFNLHVCQUF1QixHQUFHLFFBQVEsQ0FBQztBQVl6QyxJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsb0NBQXFCLENBQUE7SUFDckIsb0NBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUhXLFdBQVcsMkJBQVgsV0FBVyxRQUd0QjtBQW1CRDs7O0dBR0c7QUFDSCxNQUFhLHlCQUEwQixTQUFRLHNCQUFTO0lBV3RELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQ3pDLE1BQU0sRUFBRSxDQUFDO1NBQ1YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUNwRCxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUM7WUFDeEQsZUFBZSxFQUFFO2dCQUNmLEdBQUcsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsOEJBQThCLENBQUM7YUFDM0U7U0FDRixDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFNUMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsSUFBSSwwQkFBMEIsQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLHVCQUF1QixDQUFDO1FBQ3pELE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwRCxtQkFBbUIsQ0FBQyxXQUFXLENBQzdCLG9CQUFvQixFQUNwQiw0QkFBNEIsRUFDNUIsc0NBQXNDLEVBQ3RDLHFDQUFxQyxFQUNyQztZQUNFLDBEQUEwRDtZQUMxRCwyQ0FBMkM7WUFDM0Msd0RBQXdELE9BQU8sRUFBRTtTQUNsRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFDVjtZQUNFLGtFQUFrRTtZQUNsRSwrQ0FBK0M7WUFDL0MsNkZBQTZGO1lBQzdGLG9FQUFvRTtZQUNwRSxpREFBaUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUU7WUFDOUUsb0NBQW9DLFVBQVUsRUFBRTtTQUNqRCxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDWCxDQUFDO1FBRUYsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDckQsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFDL0MsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUM7Z0JBQ25ELE9BQU8sRUFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUMsTUFBTTthQUN2QyxDQUFDO1lBQ0YsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3RCLFFBQVEsRUFBRSxtQkFBbUI7U0FDOUIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUM7UUFFaEMsZ0hBQWdIO1FBQ2hILGtIQUFrSDtRQUNsSCxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUMxQyxlQUFlLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO1NBQzdHO1FBRUQsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1lBQ3ZGLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLGlCQUFpQixFQUFFLHNCQUFzQjtZQUN6QyxXQUFXLEVBQUUsa0NBQWtDO1NBQ2hELENBQUMsQ0FBQztRQUVILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxNQUFNLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNqRixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixjQUFjLEVBQUUsSUFBSTtTQUNyQixDQUFDLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3pFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsT0FBTyxFQUFFLENBQUMsSUFBSSxtREFBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzlDLFdBQVcsRUFBRTtnQkFDWCxJQUFJLEVBQUUsOEJBQThCO2dCQUNwQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJO2FBQy9CO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gscUZBQXFGO1FBQ3JGLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUU7WUFDMUMsSUFBSSxFQUFFLEVBQUU7WUFDUixtQkFBbUIsRUFBRSxDQUFDLFdBQVcsQ0FBQztTQUNuQyxDQUFDLENBQUM7UUFFSCxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDdkUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsV0FBVyxFQUFFLG9CQUFvQjtZQUNqQyxnQkFBZ0IsRUFBRSxLQUFLO1NBQ3hCLENBQUMsQ0FBQztRQUNILGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsZ0RBQWdELENBQUMsQ0FBQztRQUN6SSxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXZELDRCQUE0QixDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLDJDQUEyQyxDQUFDLENBQUM7UUFFL0ksNEdBQTRHO1FBQzVHLDZFQUE2RTtRQUM3RSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN6Qyw0QkFBNEIsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsNENBQTRDLENBQUMsQ0FBQztRQUNsSyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3pDLDRCQUE0QixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsRUFBRSwrQ0FBK0MsQ0FBQyxDQUFDO1FBQ3hLLENBQUMsQ0FBQyxDQUFDO1FBQ0gsZUFBZSxDQUFDLGdCQUFnQixDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFFL0QsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7UUFDakQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsMkJBQTJCLEVBQUU7WUFDcEYsV0FBVyxFQUFFLCtHQUErRztZQUM1SCxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLDJCQUEyQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNqRSxLQUFLLEVBQUUsb0JBQW9CLENBQUMsWUFBWTtTQUN6QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMscUJBQXFCLEdBQUcsVUFBVSxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2pGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxVQUFVLElBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUN2RyxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO0lBQzVGLENBQUM7SUFFRDs7O09BR0c7SUFDSywwQkFBMEI7UUFDaEMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFO1lBQ3RGLFdBQVcsRUFBRSxxQ0FBcUM7WUFDbEQsS0FBSyxFQUFFLG1CQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxtQ0FBbUMsQ0FBQztZQUNoRSxZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQ3hDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWE7WUFDckMsVUFBVSxFQUFFLEdBQUc7WUFDZixPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2pDLFdBQVcsRUFBRTtnQkFDWCxZQUFZLEVBQUUsc0JBQXNCO2FBQ3JDO1lBQ0QsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsVUFBVSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWM7YUFDakM7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7WUFDbkQsY0FBYyxFQUFFLG1CQUFtQjtTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFySkQsOERBcUpDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMyAtIFJlc3RhdGUgU29mdHdhcmUsIEluYy4sIFJlc3RhdGUgR21iSFxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBSZXN0YXRlIFNESyBmb3IgTm9kZS5qcy9UeXBlU2NyaXB0LFxuICogd2hpY2ggaXMgcmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICpcbiAqIFlvdSBjYW4gZmluZCBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgaW4gZmlsZSBMSUNFTlNFIGluIHRoZSByb290XG4gKiBkaXJlY3Rvcnkgb2YgdGhpcyByZXBvc2l0b3J5IG9yIHBhY2thZ2UsIG9yIGF0XG4gKiBodHRwczovL2dpdGh1Yi5jb20vcmVzdGF0ZWRldi9zZGstdHlwZXNjcmlwdC9ibG9iL21haW4vTElDRU5TRVxuICovXG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCAqIGFzIGVsYl92MiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjJcIjtcbmltcG9ydCB7IEluc3RhbmNlVGFyZ2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyLXRhcmdldHNcIjtcbmltcG9ydCAqIGFzIGxhbWJkYV9ub2RlIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBjciBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuXG5jb25zdCBSRVNUQVRFX0lOR1JFU1NfUE9SVCA9IDgwODA7XG5jb25zdCBSRVNUQVRFX01FVEFfUE9SVCA9IDkwNzA7XG5jb25zdCBSRVNUQVRFX0RPQ0tFUl9ERUZBVUxUX1RBRyA9IFwibGF0ZXN0XCI7XG5jb25zdCBBRE9UX0RPQ0tFUl9ERUZBVUxUX1RBRyA9IFwibGF0ZXN0XCI7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBpbnN0YW5jZSBvZiB0aGUgUmVzdGF0ZSBzZXJ2aWNlLiBUaGlzIGNvdWxkIHJlcHJlc2VudCBhIHNlbGYtaG9zdGVkIGJyb2tlciwgb3IgUmVzdGF0ZSdzIG1hbmFnZWRcbiAqIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdGF0ZUluc3RhbmNlIHtcbiAgcmVhZG9ubHkgaW52b2tlclJvbGU6IGlhbS5Sb2xlO1xuICByZWFkb25seSBtZXRhRW5kcG9pbnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVnaXN0cmF0aW9uUHJvdmlkZXJUb2tlbjogY2RrLkNmbk91dHB1dDtcbn1cblxuZXhwb3J0IGVudW0gVHJhY2luZ01vZGUge1xuICBESVNBQkxFRCA9IFwiRElTQUJMRURcIixcbiAgQVdTX1hSQVkgPSBcIkFXU19YUkFZXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdGF0ZUluc3RhbmNlUHJvcHMge1xuICAvKiogTG9nIGdyb3VwIGZvciBSZXN0YXRlIHNlcnZpY2UgbG9ncy4gKi9cbiAgbG9nR3JvdXA6IGxvZ3MuTG9nR3JvdXA7XG5cbiAgLyoqIFRyYWNpbmcgbW9kZSBmb3IgUmVzdGF0ZSBzZXJ2aWNlcy4gRGlzYWJsZWQgYnkgZGVmYXVsdC4gKi9cbiAgdHJhY2luZz86IFRyYWNpbmdNb2RlO1xuXG4gIC8qKiBQcmVmaXggZm9yIHJlc291cmNlcyBjcmVhdGVkIGJ5IHRoaXMgY29uc3RydWN0IHRoYXQgcmVxdWlyZSB1bmlxdWUgbmFtZXMuICovXG4gIHByZWZpeD86IHN0cmluZztcblxuICAvKiogUmVzdGF0ZSBEb2NrZXIgaW1hZ2UgdGFnLiBEZWZhdWx0cyB0byBgbGF0ZXN0YC4gKi9cbiAgcmVzdGF0ZVRhZz86IHN0cmluZztcblxuICAvKiogQW1hem9uIERpc3RybyBmb3IgT3BlbiBUZWxlbWV0cnkgRG9ja2VyIGltYWdlIHRhZy4gRGVmYXVsdHMgdG8gYGxhdGVzdGAuICovXG4gIGFkb3RUYWc/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIFJlc3RhdGUgc2VydmljZSBkZXBsb3ltZW50IGJhY2tlZCBieSBhIHNpbmdsZSBFQzIgaW5zdGFuY2UsXG4gKiBzdWl0YWJsZSBmb3IgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcgcHVycG9zZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTaW5nbGVOb2RlUmVzdGF0ZUluc3RhbmNlIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgUmVzdGF0ZUluc3RhbmNlIHtcbiAgcmVhZG9ubHkgaW5zdGFuY2U6IGVjMi5JbnN0YW5jZTtcbiAgcmVhZG9ubHkgaW52b2tlclJvbGU6IGlhbS5Sb2xlO1xuICByZWFkb25seSB2cGM6IGVjMi5WcGM7XG5cbiAgcmVhZG9ubHkgcHVibGljSW5ncmVzc0VuZHBvaW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByaXZhdGVJbmdyZXNzRW5kcG9pbnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgbWV0YUVuZHBvaW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlZ2lzdHJhdGlvblByb3ZpZGVyOiBjci5Qcm92aWRlcjtcbiAgcmVhZG9ubHkgcmVnaXN0cmF0aW9uUHJvdmlkZXJUb2tlbjogY2RrLkNmbk91dHB1dDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVzdGF0ZUluc3RhbmNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy52cGMgPSBuZXcgZWMyLlZwYyh0aGlzLCBcIlJlc3RhdGVWcGNcIiwge1xuICAgICAgbWF4QXpzOiAzLFxuICAgIH0pO1xuXG4gICAgdGhpcy5pbnZva2VyUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCBcIkluc3RhbmNlUm9sZVwiLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcImVjMi5hbWF6b25hd3MuY29tXCIpLFxuICAgICAgbWFuYWdlZFBvbGljaWVzOiBbXG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcIkFtYXpvblNTTU1hbmFnZWRJbnN0YW5jZUNvcmVcIiksXG4gICAgICBdLFxuICAgIH0pO1xuICAgIHByb3BzLmxvZ0dyb3VwLmdyYW50V3JpdGUodGhpcy5pbnZva2VyUm9sZSk7XG5cbiAgICBjb25zdCByZXN0YXRlVGFnID0gcHJvcHMucmVzdGF0ZVRhZyA/PyBSRVNUQVRFX0RPQ0tFUl9ERUZBVUxUX1RBRztcbiAgICBjb25zdCBhZG90VGFnID0gcHJvcHMuYWRvdFRhZyA/PyBBRE9UX0RPQ0tFUl9ERUZBVUxUX1RBRztcbiAgICBjb25zdCByZXN0YXRlSW5pdENvbW1hbmRzID0gZWMyLlVzZXJEYXRhLmZvckxpbnV4KCk7XG4gICAgcmVzdGF0ZUluaXRDb21tYW5kcy5hZGRDb21tYW5kcyhcbiAgICAgIFwic3VkbyB5dW0gdXBkYXRlIC15XCIsXG4gICAgICBcInN1ZG8geXVtIGluc3RhbGwgLXkgZG9ja2VyXCIsXG4gICAgICBcInN1ZG8gc3lzdGVtY3RsIGVuYWJsZSBkb2NrZXIuc2VydmljZVwiLFxuICAgICAgXCJzdWRvIHN5c3RlbWN0bCBzdGFydCBkb2NrZXIuc2VydmljZVwiLFxuICAgICAgW1xuICAgICAgICBcImRvY2tlciBydW4gLS1uYW1lIGFkb3QgLS1yZXN0YXJ0IHVubGVzcy1zdG9wcGVkIC0tZGV0YWNoXCIsXG4gICAgICAgIFwiIC1wIDQzMTc6NDMxNyAtcCA1NTY4MDo1NTY4MCAtcCA4ODg5Ojg4ODhcIixcbiAgICAgICAgYCBwdWJsaWMuZWNyLmF3cy9hd3Mtb2JzZXJ2YWJpbGl0eS9hd3Mtb3RlbC1jb2xsZWN0b3I6JHthZG90VGFnfWAsXG4gICAgICBdLmpvaW4oXCJcIiksXG4gICAgICBbXG4gICAgICAgIFwic3VkbyBkb2NrZXIgcnVuIC0tbmFtZSByZXN0YXRlIC0tcmVzdGFydCB1bmxlc3Mtc3RvcHBlZCAtLWRldGFjaFwiLFxuICAgICAgICBcIiAtLXZvbHVtZSAvdmFyL3Jlc3RhdGU6L3RhcmdldCAtLW5ldHdvcms9aG9zdFwiLFxuICAgICAgICBcIiAtZSBSRVNUQVRFX09CU0VSVkFCSUxJVFlfX0xPR19fRk9STUFUPUpzb24gLWUgUlVTVF9MT0c9aW5mbyxyZXN0YXRlX3dvcmtlcjo6cGFydGl0aW9uPXdhcm5cIixcbiAgICAgICAgXCIgLWUgUkVTVEFURV9PQlNFUlZBQklMSVRZX19UUkFDSU5HX19FTkRQT0lOVD1odHRwOi8vbG9jYWxob3N0OjQzMTdcIixcbiAgICAgICAgYCAtLWxvZy1kcml2ZXI9YXdzbG9ncyAtLWxvZy1vcHQgYXdzbG9ncy1ncm91cD0ke3Byb3BzLmxvZ0dyb3VwLmxvZ0dyb3VwTmFtZX1gLFxuICAgICAgICBgIGdoY3IuaW8vcmVzdGF0ZWRldi9yZXN0YXRlLWRpc3Q6JHtyZXN0YXRlVGFnfWAsXG4gICAgICBdLmpvaW4oXCJcIiksXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc3RhdGVJbnN0YW5jZSA9IG5ldyBlYzIuSW5zdGFuY2UodGhpcywgXCJIb3N0XCIsIHtcbiAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBlYzIuSW5zdGFuY2VUeXBlKFwidDRnLm1pY3JvXCIpLFxuICAgICAgbWFjaGluZUltYWdlOiBlYzIuTWFjaGluZUltYWdlLmxhdGVzdEFtYXpvbkxpbnV4MjAyMyh7XG4gICAgICAgIGNwdVR5cGU6IGVjMi5BbWF6b25MaW51eENwdVR5cGUuQVJNXzY0LFxuICAgICAgfSksXG4gICAgICByb2xlOiB0aGlzLmludm9rZXJSb2xlLFxuICAgICAgdXNlckRhdGE6IHJlc3RhdGVJbml0Q29tbWFuZHMsXG4gICAgfSk7XG4gICAgdGhpcy5pbnN0YW5jZSA9IHJlc3RhdGVJbnN0YW5jZTtcblxuICAgIC8vIFdlIHN0YXJ0IHRoZSBBRE9UIGNvbGxlY3RvciByZWdhcmRsZXNzLCBhbmQgb25seSBjb250cm9sIHdoZXRoZXIgdGhleSB3aWxsIGJlIHB1Ymxpc2hlZCB0byBYLVJheSB2aWEgaW5zdGFuY2VcbiAgICAvLyByb2xlIHBlcm1pc3Npb25zLiBUaGlzIHdheSBoaXN0b3JpYyB0cmFjZXMgd2lsbCBiZSBidWZmZXJlZCBvbiB0aGUgaG9zdCwgZXZlbiBpZiB0cmFjaW5nIGlzIGRpc2FibGVkIGluaXRpYWxseS5cbiAgICBpZiAocHJvcHMudHJhY2luZyA9PT0gVHJhY2luZ01vZGUuQVdTX1hSQVkpIHtcbiAgICAgIHJlc3RhdGVJbnN0YW5jZS5yb2xlLmFkZE1hbmFnZWRQb2xpY3koaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFwiQVdTWHJheVdyaXRlT25seUFjY2Vzc1wiKSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdGF0ZUluc3RhbmNlU2VjdXJpdHlHcm91cCA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBcIlJlc3RhdGVTZWN1cml0eUdyb3VwXCIsIHtcbiAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICBzZWN1cml0eUdyb3VwTmFtZTogXCJSZXN0YXRlU2VjdXJpdHlHcm91cFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiQWxsb3cgaW5ib3VuZCB0cmFmZmljIHRvIFJlc3RhdGVcIixcbiAgICB9KTtcblxuICAgIGNvbnN0IGluZ3Jlc3NMb2FkQmFsYW5jZXIgPSBuZXcgZWxiX3YyLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyKHRoaXMsIFwiUmVzdGF0ZUFsYlwiLCB7XG4gICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgaW50ZXJuZXRGYWNpbmc6IHRydWUsXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0R3JvdXAgPSBuZXcgZWxiX3YyLkFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAodGhpcywgXCJUYXJnZXRHcm91cFwiLCB7XG4gICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgcG9ydDogUkVTVEFURV9JTkdSRVNTX1BPUlQsXG4gICAgICB0YXJnZXRzOiBbbmV3IEluc3RhbmNlVGFyZ2V0KHJlc3RhdGVJbnN0YW5jZSldLFxuICAgICAgaGVhbHRoQ2hlY2s6IHtcbiAgICAgICAgcGF0aDogXCIvZ3JwYy5oZWFsdGgudjEuSGVhbHRoL0NoZWNrXCIsXG4gICAgICAgIHByb3RvY29sOiBlbGJfdjIuUHJvdG9jb2wuSFRUUCxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgLy8gVE9ETzogTWFrZSB0aGlzIEhUVFBTIChodHRwczovL2dpdGh1Yi5jb20vcmVzdGF0ZWRldi9yZXN0YXRlLWNkay1zdXBwb3J0L2lzc3Vlcy8yKVxuICAgIGluZ3Jlc3NMb2FkQmFsYW5jZXIuYWRkTGlzdGVuZXIoXCJMaXN0ZW5lclwiLCB7XG4gICAgICBwb3J0OiA4MCxcbiAgICAgIGRlZmF1bHRUYXJnZXRHcm91cHM6IFt0YXJnZXRHcm91cF0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBhbGJTZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRoaXMsIFwiQWxiU2VjdXJpdHlHcm91cFwiLCB7XG4gICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgZGVzY3JpcHRpb246IFwiQUxCIHNlY3VyaXR5IGdyb3VwXCIsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiBmYWxzZSxcbiAgICB9KTtcbiAgICBhbGJTZWN1cml0eUdyb3VwLmFkZEVncmVzc1J1bGUoZWMyLlBlZXIuYW55SXB2NCgpLCBlYzIuUG9ydC50Y3AoUkVTVEFURV9JTkdSRVNTX1BPUlQpLCBcIkFsbG93IG91dGJvdW5kIEhUVFAgdHJhZmZpYyB0byBSZXN0YXRlIGluZ3Jlc3NcIik7XG4gICAgaW5ncmVzc0xvYWRCYWxhbmNlci5hZGRTZWN1cml0eUdyb3VwKGFsYlNlY3VyaXR5R3JvdXApO1xuXG4gICAgcmVzdGF0ZUluc3RhbmNlU2VjdXJpdHlHcm91cC5hZGRJbmdyZXNzUnVsZShhbGJTZWN1cml0eUdyb3VwLCBlYzIuUG9ydC50Y3AoUkVTVEFURV9JTkdSRVNTX1BPUlQpLCBcIkFsbG93IHRyYWZmaWMgZnJvbSBBTEIgdG8gUmVzdGF0ZSBpbmdyZXNzXCIpO1xuXG4gICAgLy8gVGhlc2UgcnVsZXMgYWxsb3cgdGhlIHNlcnZpY2UgcmVnaXN0cmF0aW9uIGNvbXBvbmVudCB0byB0cmlnZ2VyIHNlcnZpY2UgZGlzY292ZXJ5IGFzIG5lZWRlZDsgdGhlIHJlcXVlc3RzXG4gICAgLy8gb3JpZ2luYXRlIGZyb20gYSBWUEMtYm91bmQgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgYmFja3MgdGhlIGN1c3RvbSByZXNvdXJjZS5cbiAgICB0aGlzLnZwYy5wcml2YXRlU3VibmV0cy5mb3JFYWNoKChzdWJuZXQpID0+IHtcbiAgICAgIHJlc3RhdGVJbnN0YW5jZVNlY3VyaXR5R3JvdXAuYWRkSW5ncmVzc1J1bGUoZWMyLlBlZXIuaXB2NChzdWJuZXQuaXB2NENpZHJCbG9jayksIGVjMi5Qb3J0LnRjcChSRVNUQVRFX01FVEFfUE9SVCksIFwiQWxsb3cgdHJhZmZpYyBmcm9tIHRoZSBWUEMgdG8gUmVzdGF0ZSBtZXRhXCIpO1xuICAgIH0pO1xuICAgIHRoaXMudnBjLnByaXZhdGVTdWJuZXRzLmZvckVhY2goKHN1Ym5ldCkgPT4ge1xuICAgICAgcmVzdGF0ZUluc3RhbmNlU2VjdXJpdHlHcm91cC5hZGRJbmdyZXNzUnVsZShlYzIuUGVlci5pcHY0KHN1Ym5ldC5pcHY0Q2lkckJsb2NrKSwgZWMyLlBvcnQudGNwKFJFU1RBVEVfSU5HUkVTU19QT1JUKSwgXCJBbGxvdyB0cmFmZmljIGZyb20gdGhlIFZQQyB0byBSZXN0YXRlIGluZ3Jlc3NcIik7XG4gICAgfSk7XG4gICAgcmVzdGF0ZUluc3RhbmNlLmFkZFNlY3VyaXR5R3JvdXAocmVzdGF0ZUluc3RhbmNlU2VjdXJpdHlHcm91cCk7XG5cbiAgICBjb25zdCByZWdpc3RyYXRpb25Qcm92aWRlciA9IHRoaXMuY3JlYXRlUmVnaXN0cmF0aW9uUHJvdmlkZXIoKTtcbiAgICB0aGlzLnJlZ2lzdHJhdGlvblByb3ZpZGVyID0gcmVnaXN0cmF0aW9uUHJvdmlkZXI7XG4gICAgdGhpcy5yZWdpc3RyYXRpb25Qcm92aWRlclRva2VuID0gbmV3IGNkay5DZm5PdXRwdXQodGhpcywgXCJSZWdpc3RyYXRpb25Qcm92aWRlclRva2VuXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkN1c3RvbSByZXNvdXJjZSBwcm92aWRlciBzZXJ2aWNlIHRva2VuLCBuZWVkZWQgYnkgdGhlIFJlc3RhdGUgc2VydmljZSByZWdpc3RyeSBjb21wb25lbnQgdG8gdHJpZ2dlciBkaXNjb3ZlcnlcIixcbiAgICAgIGV4cG9ydE5hbWU6IFtwcm9wcy5wcmVmaXgsIFwiUmVnaXN0cmF0aW9uUHJvdmlkZXJUb2tlblwiXS5qb2luKFwiLVwiKSxcbiAgICAgIHZhbHVlOiByZWdpc3RyYXRpb25Qcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgfSk7XG5cbiAgICB0aGlzLnB1YmxpY0luZ3Jlc3NFbmRwb2ludCA9IGBodHRwOi8vJHtpbmdyZXNzTG9hZEJhbGFuY2VyLmxvYWRCYWxhbmNlckRuc05hbWV9YDtcbiAgICB0aGlzLnByaXZhdGVJbmdyZXNzRW5kcG9pbnQgPSBgaHR0cDovLyR7dGhpcy5pbnN0YW5jZS5pbnN0YW5jZVByaXZhdGVEbnNOYW1lfToke1JFU1RBVEVfSU5HUkVTU19QT1JUfWA7XG4gICAgdGhpcy5tZXRhRW5kcG9pbnQgPSBgaHR0cDovLyR7dGhpcy5pbnN0YW5jZS5pbnN0YW5jZVByaXZhdGVEbnNOYW1lfToke1JFU1RBVEVfTUVUQV9QT1JUfWA7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGN1c3RvbSByZXNvdXJjZSBwcm92aWRlciB0byBmYWNpbGl0YXRlIHNlcnZpY2UgZGlzY292ZXJ5LiBOb3RlIHRoYXQgdGhlIGN1c3RvbSByZXNvdXJjZSBldmVudCBoYW5kbGVyXG4gICAqIG11c3QgYmUgYWJsZSB0byByZWFjaCB0aGUgUmVzdGF0ZSBpbnN0YW5jZSdzIG1ldGEgZW5kcG9pbnQgLSB3aGljaCBpcyB3aHkgaXQgaXMgZGVwbG95ZWQgd2l0aGluIHRoZSBzYW1lIFZQQy5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlUmVnaXN0cmF0aW9uUHJvdmlkZXIoKSB7XG4gICAgY29uc3QgcmVnaXN0cmF0aW9uSGFuZGxlciA9IG5ldyBsYW1iZGFfbm9kZS5Ob2RlanNGdW5jdGlvbih0aGlzLCBcIlJlZ2lzdHJhdGlvbkhhbmRsZXJcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiUmVzdGF0ZSBjdXN0b20gcmVnaXN0cmF0aW9uIGhhbmRsZXJcIixcbiAgICAgIGVudHJ5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCBcInJlZ2lzdGVyLXNlcnZpY2UtaGFuZGxlci9pbmRleC5qc1wiKSxcbiAgICAgIGFyY2hpdGVjdHVyZTogbGFtYmRhLkFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfTEFURVNULFxuICAgICAgbWVtb3J5U2l6ZTogMTI4LFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgTk9ERV9PUFRJT05TOiBcIi0tZW5hYmxlLXNvdXJjZS1tYXBzXCIsXG4gICAgICB9LFxuICAgICAgdnBjOiB0aGlzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHtcbiAgICAgICAgc3VibmV0czogdGhpcy52cGMucHJpdmF0ZVN1Ym5ldHMsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBjci5Qcm92aWRlcih0aGlzLCBcIlJlZ2lzdHJhdGlvblByb3ZpZGVyXCIsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiByZWdpc3RyYXRpb25IYW5kbGVyLFxuICAgIH0pO1xuICB9XG59Il19
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLW5vZGUtcmVzdGF0ZS1pbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9yZXN0YXRlLWNvbnN0cnVjdHMvc2luZ2xlLW5vZGUtcmVzdGF0ZS1pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7OztHQVNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDJDQUF1QztBQUV2Qyx5REFBMkM7QUFDM0MseURBQTJDO0FBQzNDLCtFQUFpRTtBQUNqRSx1RkFBNkU7QUFDN0UsdUdBQWdGO0FBQ2hGLDJFQUE2RDtBQUM3RCwwREFBNkI7QUFDN0IsK0RBQWlEO0FBQ2pELGlEQUFtQztBQUNuQyxpRUFBbUQ7QUFHbkQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUM7QUFDbEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUM7QUFDL0IsTUFBTSwwQkFBMEIsR0FBRyxRQUFRLENBQUM7QUFDNUMsTUFBTSx1QkFBdUIsR0FBRyxRQUFRLENBQUM7QUFZekMsSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLG9DQUFxQixDQUFBO0lBQ3JCLG9DQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxXQUFXLDJCQUFYLFdBQVcsUUFHdEI7QUFzQkQ7OztHQUdHO0FBQ0gsTUFBYSx5QkFBMEIsU0FBUSxzQkFBUztJQVd0RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUN6QyxNQUFNLEVBQUUsQ0FBQztTQUNWLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDcEQsU0FBUyxF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ZXN0YXRlIFNvZnR3YXJlLCBJbmMuLCBSZXN0YXRlIEdtYkhcbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgUmVzdGF0ZSBTREsgZm9yIE5vZGUuanMvVHlwZVNjcmlwdCxcbiAqIHdoaWNoIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqXG4gKiBZb3UgY2FuIGZpbmQgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGluIGZpbGUgTElDRU5TRSBpbiB0aGUgcm9vdFxuICogZGlyZWN0b3J5IG9mIHRoaXMgcmVwb3NpdG9yeSBvciBwYWNrYWdlLCBvciBhdFxuICogaHR0cHM6Ly9naXRodWIuY29tL3Jlc3RhdGVkZXYvc2RrLXR5cGVzY3JpcHQvYmxvYi9tYWluL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcbmltcG9ydCAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgKiBhcyBlbGJfdjIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXCI7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblByb3RvY29sIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXCI7XG5pbXBvcnQgeyBJbnN0YW5jZVRhcmdldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi10YXJnZXRzXCI7XG5pbXBvcnQgKiBhcyBsYW1iZGFfbm9kZSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgY3IgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCAqIGFzIGFjbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuXG5jb25zdCBSRVNUQVRFX0lOR1JFU1NfUE9SVCA9IDgwODA7XG5jb25zdCBSRVNUQVRFX01FVEFfUE9SVCA9IDkwNzA7XG5jb25zdCBSRVNUQVRFX0RPQ0tFUl9ERUZBVUxUX1RBRyA9IFwibGF0ZXN0XCI7XG5jb25zdCBBRE9UX0RPQ0tFUl9ERUZBVUxUX1RBRyA9IFwibGF0ZXN0XCI7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBpbnN0YW5jZSBvZiB0aGUgUmVzdGF0ZSBzZXJ2aWNlLiBUaGlzIGNvdWxkIHJlcHJlc2VudCBhIHNlbGYtaG9zdGVkIGJyb2tlciwgb3IgUmVzdGF0ZSdzIG1hbmFnZWRcbiAqIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdGF0ZUluc3RhbmNlIHtcbiAgcmVhZG9ubHkgaW52b2tlclJvbGU6IGlhbS5Sb2xlO1xuICByZWFkb25seSBtZXRhRW5kcG9pbnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVnaXN0cmF0aW9uUHJvdmlkZXJUb2tlbjogY2RrLkNmbk91dHB1dDtcbn1cblxuZXhwb3J0IGVudW0gVHJhY2luZ01vZGUge1xuICBESVNBQkxFRCA9IFwiRElTQUJMRURcIixcbiAgQVdTX1hSQVkgPSBcIkFXU19YUkFZXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdGF0ZUluc3RhbmNlUHJvcHMge1xuICAvKiogTG9nIGdyb3VwIGZvciBSZXN0YXRlIHNlcnZpY2UgbG9ncy4gKi9cbiAgbG9nR3JvdXA6IGxvZ3MuTG9nR3JvdXA7XG5cbiAgLyoqIFRyYWNpbmcgbW9kZSBmb3IgUmVzdGF0ZSBzZXJ2aWNlcy4gRGlzYWJsZWQgYnkgZGVmYXVsdC4gKi9cbiAgdHJhY2luZz86IFRyYWNpbmdNb2RlO1xuXG4gIC8qKiBQcmVmaXggZm9yIHJlc291cmNlcyBjcmVhdGVkIGJ5IHRoaXMgY29uc3RydWN0IHRoYXQgcmVxdWlyZSB1bmlxdWUgbmFtZXMuICovXG4gIHByZWZpeD86IHN0cmluZztcblxuICAvKiogUmVzdGF0ZSBEb2NrZXIgaW1hZ2UgdGFnLiBEZWZhdWx0cyB0byBgbGF0ZXN0YC4gKi9cbiAgcmVzdGF0ZVRhZz86IHN0cmluZztcblxuICAvKiogQW1hem9uIERpc3RybyBmb3IgT3BlbiBUZWxlbWV0cnkgRG9ja2VyIGltYWdlIHRhZy4gRGVmYXVsdHMgdG8gYGxhdGVzdGAuICovXG4gIGFkb3RUYWc/OiBzdHJpbmc7XG5cbiAgLyoqIE9wdGlvbmFsIGNlcnRpZmljYXRlIGZvciBpbmdyZXNzIGVuZHBvaW50LiBJZiB1bnNwZWNpZmllZCwgYSBwbGFpbiBIVFRQIGxpc3RlbmVyIHdpbGwgYmUgY3JlYXRlZC4gKi9cbiAgY2VydGlmaWNhdGU/OiBhY20uSUNlcnRpZmljYXRlO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBSZXN0YXRlIHNlcnZpY2UgZGVwbG95bWVudCBiYWNrZWQgYnkgYSBzaW5nbGUgRUMyIGluc3RhbmNlLFxuICogc3VpdGFibGUgZm9yIGRldmVsb3BtZW50IGFuZCB0ZXN0aW5nIHB1cnBvc2VzLlxuICovXG5leHBvcnQgY2xhc3MgU2luZ2xlTm9kZVJlc3RhdGVJbnN0YW5jZSBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIFJlc3RhdGVJbnN0YW5jZSB7XG4gIHJlYWRvbmx5IGluc3RhbmNlOiBlYzIuSW5zdGFuY2U7XG4gIHJlYWRvbmx5IGludm9rZXJSb2xlOiBpYW0uUm9sZTtcbiAgcmVhZG9ubHkgdnBjOiBlYzIuVnBjO1xuXG4gIHJlYWRvbmx5IHB1YmxpY0luZ3Jlc3NFbmRwb2ludDogc3RyaW5nO1xuICByZWFkb25seSBwcml2YXRlSW5ncmVzc0VuZHBvaW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1ldGFFbmRwb2ludDogc3RyaW5nO1xuICByZWFkb25seSByZWdpc3RyYXRpb25Qcm92aWRlcjogY3IuUHJvdmlkZXI7XG4gIHJlYWRvbmx5IHJlZ2lzdHJhdGlvblByb3ZpZGVyVG9rZW46IGNkay5DZm5PdXRwdXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJlc3RhdGVJbnN0YW5jZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMudnBjID0gbmV3IGVjMi5WcGModGhpcywgXCJSZXN0YXRlVnBjXCIsIHtcbiAgICAgIG1heEF6czogMyxcbiAgICB9KTtcblxuICAgIHRoaXMuaW52b2tlclJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgXCJJbnN0YW5jZVJvbGVcIiwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJlYzIuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXCJBbWF6b25TU01NYW5hZ2VkSW5zdGFuY2VDb3JlXCIpLFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBwcm9wcy5sb2dHcm91cC5ncmFudFdyaXRlKHRoaXMuaW52b2tlclJvbGUpO1xuXG4gICAgY29uc3QgcmVzdGF0ZVRhZyA9IHByb3BzLnJlc3RhdGVUYWcgPz8gUkVTVEFURV9ET0NLRVJfREVGQVVMVF9UQUc7XG4gICAgY29uc3QgYWRvdFRhZyA9IHByb3BzLmFkb3RUYWcgPz8gQURPVF9ET0NLRVJfREVGQVVMVF9UQUc7XG4gICAgY29uc3QgcmVzdGF0ZUluaXRDb21tYW5kcyA9IGVjMi5Vc2VyRGF0YS5mb3JMaW51eCgpO1xuICAgIHJlc3RhdGVJbml0Q29tbWFuZHMuYWRkQ29tbWFuZHMoXG4gICAgICBcInl1bSB1cGRhdGUgLXlcIixcbiAgICAgIFwieXVtIGluc3RhbGwgLXkgZG9ja2VyXCIsXG4gICAgICBcInN5c3RlbWN0bCBlbmFibGUgZG9ja2VyLnNlcnZpY2VcIixcbiAgICAgIFwic3lzdGVtY3RsIHN0YXJ0IGRvY2tlci5zZXJ2aWNlXCIsXG4gICAgICBbXG4gICAgICAgIFwiZG9ja2VyIHJ1biAtLW5hbWUgYWRvdCAtLXJlc3RhcnQgdW5sZXNzLXN0b3BwZWQgLS1kZXRhY2hcIixcbiAgICAgICAgXCIgLXAgNDMxNzo0MzE3IC1wIDU1NjgwOjU1NjgwIC1wIDg4ODk6ODg4OFwiLFxuICAgICAgICBgIHB1YmxpYy5lY3IuYXdzL2F3cy1vYnNlcnZhYmlsaXR5L2F3cy1vdGVsLWNvbGxlY3Rvcjoke2Fkb3RUYWd9YCxcbiAgICAgIF0uam9pbihcIlwiKSxcbiAgICAgIFtcbiAgICAgICAgXCJkb2NrZXIgcnVuIC0tbmFtZSByZXN0YXRlIC0tcmVzdGFydCB1bmxlc3Mtc3RvcHBlZCAtLWRldGFjaFwiLFxuICAgICAgICBcIiAtLXZvbHVtZSAvdmFyL3Jlc3RhdGU6L3RhcmdldCAtLW5ldHdvcms9aG9zdFwiLFxuICAgICAgICBcIiAtZSBSRVNUQVRFX09CU0VSVkFCSUxJVFlfX0xPR19fRk9STUFUPUpzb24gLWUgUlVTVF9MT0c9aW5mbyxyZXN0YXRlX3dvcmtlcjo6cGFydGl0aW9uPXdhcm5cIixcbiAgICAgICAgXCIgLWUgUkVTVEFURV9PQlNFUlZBQklMSVRZX19UUkFDSU5HX19FTkRQT0lOVD1odHRwOi8vbG9jYWxob3N0OjQzMTdcIixcbiAgICAgICAgYCAtLWxvZy1kcml2ZXI9YXdzbG9ncyAtLWxvZy1vcHQgYXdzbG9ncy1ncm91cD0ke3Byb3BzLmxvZ0dyb3VwLmxvZ0dyb3VwTmFtZX1gLFxuICAgICAgICBgIGRvY2tlci5pby9yZXN0YXRlZGV2L3Jlc3RhdGU6JHtyZXN0YXRlVGFnfWAsXG4gICAgICBdLmpvaW4oXCJcIiksXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc3RhdGVJbnN0YW5jZSA9IG5ldyBlYzIuSW5zdGFuY2UodGhpcywgXCJIb3N0XCIsIHtcbiAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBlYzIuSW5zdGFuY2VUeXBlKFwidDRnLm1pY3JvXCIpLFxuICAgICAgbWFjaGluZUltYWdlOiBlYzIuTWFjaGluZUltYWdlLmxhdGVzdEFtYXpvbkxpbnV4MjAyMyh7XG4gICAgICAgIGNwdVR5cGU6IGVjMi5BbWF6b25MaW51eENwdVR5cGUuQVJNXzY0LFxuICAgICAgfSksXG4gICAgICByb2xlOiB0aGlzLmludm9rZXJSb2xlLFxuICAgICAgdXNlckRhdGE6IHJlc3RhdGVJbml0Q29tbWFuZHMsXG4gICAgfSk7XG4gICAgdGhpcy5pbnN0YW5jZSA9IHJlc3RhdGVJbnN0YW5jZTtcblxuICAgIC8vIFdlIHN0YXJ0IHRoZSBBRE9UIGNvbGxlY3RvciByZWdhcmRsZXNzLCBhbmQgb25seSBjb250cm9sIHdoZXRoZXIgdGhleSB3aWxsIGJlIHB1Ymxpc2hlZCB0byBYLVJheSB2aWEgaW5zdGFuY2VcbiAgICAvLyByb2xlIHBlcm1pc3Npb25zLiBUaGlzIHdheSBoaXN0b3JpYyB0cmFjZXMgd2lsbCBiZSBidWZmZXJlZCBvbiB0aGUgaG9zdCwgZXZlbiBpZiB0cmFjaW5nIGlzIGRpc2FibGVkIGluaXRpYWxseS5cbiAgICBpZiAocHJvcHMudHJhY2luZyA9PT0gVHJhY2luZ01vZGUuQVdTX1hSQVkpIHtcbiAgICAgIHJlc3RhdGVJbnN0YW5jZS5yb2xlLmFkZE1hbmFnZWRQb2xpY3koaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFwiQVdTWHJheVdyaXRlT25seUFjY2Vzc1wiKSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdGF0ZUluc3RhbmNlU2VjdXJpdHlHcm91cCA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBcIlJlc3RhdGVTZWN1cml0eUdyb3VwXCIsIHtcbiAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICBzZWN1cml0eUdyb3VwTmFtZTogXCJSZXN0YXRlU2VjdXJpdHlHcm91cFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiQWxsb3cgaW5ib3VuZCB0cmFmZmljIHRvIFJlc3RhdGVcIixcbiAgICB9KTtcblxuICAgIGNvbnN0IGluZ3Jlc3NMb2FkQmFsYW5jZXIgPSBuZXcgZWxiX3YyLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyKHRoaXMsIFwiUmVzdGF0ZUFsYlwiLCB7XG4gICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgaW50ZXJuZXRGYWNpbmc6IHRydWUsXG4gICAgfSk7XG4gICAgY29uc3QgdGFyZ2V0R3JvdXAgPSBuZXcgZWxiX3YyLkFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAodGhpcywgXCJUYXJnZXRHcm91cFwiLCB7XG4gICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgcHJvdG9jb2w6IGVsYl92Mi5BcHBsaWNhdGlvblByb3RvY29sLkhUVFAsXG4gICAgICBwb3J0OiBSRVNUQVRFX0lOR1JFU1NfUE9SVCxcbiAgICAgIHRhcmdldHM6IFtuZXcgSW5zdGFuY2VUYXJnZXQocmVzdGF0ZUluc3RhbmNlKV0sXG4gICAgICBoZWFsdGhDaGVjazoge1xuICAgICAgICBwcm90b2NvbDogZWxiX3YyLlByb3RvY29sLkhUVFAsXG4gICAgICAgIHBhdGg6IFwiL2dycGMuaGVhbHRoLnYxLkhlYWx0aC9DaGVja1wiLFxuICAgICAgICBpbnRlcnZhbDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBpbmdyZXNzTG9hZEJhbGFuY2VyLmFkZExpc3RlbmVyKFwiTGlzdGVuZXJcIiwge1xuICAgICAgcG9ydDogcHJvcHMuY2VydGlmaWNhdGUgPyA0NDMgOiA4MCxcbiAgICAgIHByb3RvY29sOiBwcm9wcy5jZXJ0aWZpY2F0ZSA/IEFwcGxpY2F0aW9uUHJvdG9jb2wuSFRUUFMgOiBBcHBsaWNhdGlvblByb3RvY29sLkhUVFAsXG4gICAgICBkZWZhdWx0VGFyZ2V0R3JvdXBzOiBbdGFyZ2V0R3JvdXBdLFxuICAgICAgY2VydGlmaWNhdGVzOiBwcm9wcy5jZXJ0aWZpY2F0ZSA/IFtlbGJfdjIuTGlzdGVuZXJDZXJ0aWZpY2F0ZS5mcm9tQ2VydGlmaWNhdGVNYW5hZ2VyKHByb3BzLmNlcnRpZmljYXRlKV0gOiBbXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFsYlNlY3VyaXR5R3JvdXAgPSBuZXcgZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgXCJBbGJTZWN1cml0eUdyb3VwXCIsIHtcbiAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICBkZXNjcmlwdGlvbjogXCJBTEIgc2VjdXJpdHkgZ3JvdXBcIixcbiAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IGZhbHNlLFxuICAgIH0pO1xuICAgIGFsYlNlY3VyaXR5R3JvdXAuYWRkRWdyZXNzUnVsZShlYzIuUGVlci5hbnlJcHY0KCksIGVjMi5Qb3J0LnRjcChSRVNUQVRFX0lOR1JFU1NfUE9SVCksIFwiQWxsb3cgb3V0Ym91bmQgSFRUUCB0cmFmZmljIHRvIFJlc3RhdGUgaW5ncmVzc1wiKTtcbiAgICBpbmdyZXNzTG9hZEJhbGFuY2VyLmFkZFNlY3VyaXR5R3JvdXAoYWxiU2VjdXJpdHlHcm91cCk7XG5cbiAgICByZXN0YXRlSW5zdGFuY2VTZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKGFsYlNlY3VyaXR5R3JvdXAsIGVjMi5Qb3J0LnRjcChSRVNUQVRFX0lOR1JFU1NfUE9SVCksIFwiQWxsb3cgdHJhZmZpYyBmcm9tIEFMQiB0byBSZXN0YXRlIGluZ3Jlc3NcIik7XG5cbiAgICAvLyBUaGVzZSBydWxlcyBhbGxvdyB0aGUgc2VydmljZSByZWdpc3RyYXRpb24gY29tcG9uZW50IHRvIHRyaWdnZXIgc2VydmljZSBkaXNjb3ZlcnkgYXMgbmVlZGVkOyB0aGUgcmVxdWVzdHNcbiAgICAvLyBvcmlnaW5hdGUgZnJvbSBhIFZQQy1ib3VuZCBMYW1iZGEgZnVuY3Rpb24gdGhhdCBiYWNrcyB0aGUgY3VzdG9tIHJlc291cmNlLlxuICAgIHRoaXMudnBjLnByaXZhdGVTdWJuZXRzLmZvckVhY2goKHN1Ym5ldCkgPT4ge1xuICAgICAgcmVzdGF0ZUluc3RhbmNlU2VjdXJpdHlHcm91cC5hZGRJbmdyZXNzUnVsZShlYzIuUGVlci5pcHY0KHN1Ym5ldC5pcHY0Q2lkckJsb2NrKSwgZWMyLlBvcnQudGNwKFJFU1RBVEVfTUVUQV9QT1JUKSwgXCJBbGxvdyB0cmFmZmljIGZyb20gdGhlIFZQQyB0byBSZXN0YXRlIG1ldGFcIik7XG4gICAgfSk7XG4gICAgdGhpcy52cGMucHJpdmF0ZVN1Ym5ldHMuZm9yRWFjaCgoc3VibmV0KSA9PiB7XG4gICAgICByZXN0YXRlSW5zdGFuY2VTZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKGVjMi5QZWVyLmlwdjQoc3VibmV0LmlwdjRDaWRyQmxvY2spLCBlYzIuUG9ydC50Y3AoUkVTVEFURV9JTkdSRVNTX1BPUlQpLCBcIkFsbG93IHRyYWZmaWMgZnJvbSB0aGUgVlBDIHRvIFJlc3RhdGUgaW5ncmVzc1wiKTtcbiAgICB9KTtcbiAgICByZXN0YXRlSW5zdGFuY2UuYWRkU2VjdXJpdHlHcm91cChyZXN0YXRlSW5zdGFuY2VTZWN1cml0eUdyb3VwKTtcblxuICAgIGNvbnN0IHJlZ2lzdHJhdGlvblByb3ZpZGVyID0gdGhpcy5jcmVhdGVSZWdpc3RyYXRpb25Qcm92aWRlcigpO1xuICAgIHRoaXMucmVnaXN0cmF0aW9uUHJvdmlkZXIgPSByZWdpc3RyYXRpb25Qcm92aWRlcjtcbiAgICB0aGlzLnJlZ2lzdHJhdGlvblByb3ZpZGVyVG9rZW4gPSBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCBcIlJlZ2lzdHJhdGlvblByb3ZpZGVyVG9rZW5cIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiQ3VzdG9tIHJlc291cmNlIHByb3ZpZGVyIHNlcnZpY2UgdG9rZW4sIG5lZWRlZCBieSB0aGUgUmVzdGF0ZSBzZXJ2aWNlIHJlZ2lzdHJ5IGNvbXBvbmVudCB0byB0cmlnZ2VyIGRpc2NvdmVyeVwiLFxuICAgICAgZXhwb3J0TmFtZTogW3Byb3BzLnByZWZpeCwgXCJSZWdpc3RyYXRpb25Qcm92aWRlclRva2VuXCJdLmpvaW4oXCItXCIpLFxuICAgICAgdmFsdWU6IHJlZ2lzdHJhdGlvblByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICB9KTtcblxuICAgIHRoaXMucHVibGljSW5ncmVzc0VuZHBvaW50ID0gYCR7cHJvcHMuY2VydGlmaWNhdGUgPyBcImh0dHBzXCIgOiBcImh0dHBcIn06Ly8ke2luZ3Jlc3NMb2FkQmFsYW5jZXIubG9hZEJhbGFuY2VyRG5zTmFtZX1gO1xuICAgIHRoaXMucHJpdmF0ZUluZ3Jlc3NFbmRwb2ludCA9IGBodHRwOi8vJHt0aGlzLmluc3RhbmNlLmluc3RhbmNlUHJpdmF0ZURuc05hbWV9OiR7UkVTVEFURV9JTkdSRVNTX1BPUlR9YDtcbiAgICB0aGlzLm1ldGFFbmRwb2ludCA9IGBodHRwOi8vJHt0aGlzLmluc3RhbmNlLmluc3RhbmNlUHJpdmF0ZURuc05hbWV9OiR7UkVTVEFURV9NRVRBX1BPUlR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgY3VzdG9tIHJlc291cmNlIHByb3ZpZGVyIHRvIGZhY2lsaXRhdGUgc2VydmljZSBkaXNjb3ZlcnkuIE5vdGUgdGhhdCB0aGUgY3VzdG9tIHJlc291cmNlIGV2ZW50IGhhbmRsZXJcbiAgICogbXVzdCBiZSBhYmxlIHRvIHJlYWNoIHRoZSBSZXN0YXRlIGluc3RhbmNlJ3MgbWV0YSBlbmRwb2ludCAtIHdoaWNoIGlzIHdoeSBpdCBpcyBkZXBsb3llZCB3aXRoaW4gdGhlIHNhbWUgVlBDLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVSZWdpc3RyYXRpb25Qcm92aWRlcigpIHtcbiAgICBjb25zdCByZWdpc3RyYXRpb25IYW5kbGVyID0gbmV3IGxhbWJkYV9ub2RlLk5vZGVqc0Z1bmN0aW9uKHRoaXMsIFwiUmVnaXN0cmF0aW9uSGFuZGxlclwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJSZXN0YXRlIGN1c3RvbSByZWdpc3RyYXRpb24gaGFuZGxlclwiLFxuICAgICAgZW50cnk6IHBhdGguam9pbihfX2Rpcm5hbWUsIFwicmVnaXN0ZXItc2VydmljZS1oYW5kbGVyL2luZGV4LmpzXCIpLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU19MQVRFU1QsXG4gICAgICBtZW1vcnlTaXplOiAxMjgsXG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBOT0RFX09QVElPTlM6IFwiLS1lbmFibGUtc291cmNlLW1hcHNcIixcbiAgICAgIH0sXG4gICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgdnBjU3VibmV0czoge1xuICAgICAgICBzdWJuZXRzOiB0aGlzLnZwYy5wcml2YXRlU3VibmV0cyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IGNyLlByb3ZpZGVyKHRoaXMsIFwiUmVnaXN0cmF0aW9uUHJvdmlkZXJcIiwge1xuICAgICAgb25FdmVudEhhbmRsZXI6IHJlZ2lzdHJhdGlvbkhhbmRsZXIsXG4gICAgfSk7XG4gIH1cbn0iXX0=
|
package/package.json
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@restatedev/restate-cdk",
|
|
3
3
|
"description": "Restate.dev CDK constructs",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"author": "Restate Developers",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"email": "code@restate.dev",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/restatedev/cdk.git"
|
|
11
|
+
},
|
|
8
12
|
"publishConfig": {
|
|
9
13
|
"@restatedev:registry": "https://registry.npmjs.org"
|
|
10
14
|
},
|
|
@@ -15,7 +19,7 @@
|
|
|
15
19
|
"prebundle": "rm -rf dist",
|
|
16
20
|
"postbundle": "cd dist && zip -r index.zip index.js*",
|
|
17
21
|
"watch": "tsc -w",
|
|
18
|
-
"test": "jest",
|
|
22
|
+
"test": "jest --passWithNoTests",
|
|
19
23
|
"cdk": "cdk"
|
|
20
24
|
},
|
|
21
25
|
"devDependencies": {
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import * as lambda from "aws-cdk-lib/aws-lambda";
|
|
2
|
-
import { Construct } from "constructs";
|
|
3
|
-
/**
|
|
4
|
-
* A Restate RPC service path. Example: `greeter`.
|
|
5
|
-
*/
|
|
6
|
-
type RestatePath = string;
|
|
7
|
-
export interface RestateInstanceRef {
|
|
8
|
-
readonly metaEndpoint: string;
|
|
9
|
-
readonly invokerRoleArn: string;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* A collection of Lambda Restate RPC Service handlers.
|
|
13
|
-
*/
|
|
14
|
-
export type LambdaServiceRegistryProps = {
|
|
15
|
-
/**
|
|
16
|
-
* Mappings from service path to Lambda handler.
|
|
17
|
-
*/
|
|
18
|
-
serviceHandlers: Record<RestatePath, lambda.Function>;
|
|
19
|
-
registrationProviderToken?: string;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Represents a collection of Lambda-based Restate RPC services. This component is used to register
|
|
23
|
-
* them with a single Restate instance. This creates a custom resource which will trigger service
|
|
24
|
-
* discovery on any handler changes deployed through CDK/CloudFormation.
|
|
25
|
-
*/
|
|
26
|
-
export declare class LambdaServiceRegistry extends Construct {
|
|
27
|
-
private readonly serviceHandlers;
|
|
28
|
-
private readonly registrationProviderToken?;
|
|
29
|
-
constructor(scope: Construct, id: string, props: LambdaServiceRegistryProps);
|
|
30
|
-
register(restate: RestateInstanceRef): void;
|
|
31
|
-
private registerHandler;
|
|
32
|
-
}
|
|
33
|
-
export {};
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.LambdaServiceRegistry = void 0;
|
|
27
|
-
const cdk = __importStar(require("aws-cdk-lib"));
|
|
28
|
-
const iam = __importStar(require("aws-cdk-lib/aws-iam"));
|
|
29
|
-
const constructs_1 = require("constructs");
|
|
30
|
-
/**
|
|
31
|
-
* Represents a collection of Lambda-based Restate RPC services. This component is used to register
|
|
32
|
-
* them with a single Restate instance. This creates a custom resource which will trigger service
|
|
33
|
-
* discovery on any handler changes deployed through CDK/CloudFormation.
|
|
34
|
-
*/
|
|
35
|
-
class LambdaServiceRegistry extends constructs_1.Construct {
|
|
36
|
-
constructor(scope, id, props) {
|
|
37
|
-
super(scope, id);
|
|
38
|
-
this.serviceHandlers = props.serviceHandlers;
|
|
39
|
-
this.registrationProviderToken = props.registrationProviderToken;
|
|
40
|
-
}
|
|
41
|
-
register(restate) {
|
|
42
|
-
for (const [path, handler] of Object.entries(this.serviceHandlers)) {
|
|
43
|
-
this.registerHandler(restate, { path, handler });
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
registerHandler(restate, service) {
|
|
47
|
-
const invokerRole = iam.Role.fromRoleArn(this, service.handler.node.id + "InvokerRole", restate.invokerRoleArn);
|
|
48
|
-
cdk.Annotations.of(service.handler).acknowledgeWarning("@aws-cdk/aws-register-service-handler:addPermissionsToVersionOrAlias", "We specifically want to grant invoke permissions on all handler versions, " +
|
|
49
|
-
"not just the currently deployed one, as there may be suspended invocations against older versions");
|
|
50
|
-
service.handler.currentVersion.grantInvoke(invokerRole); // CDK ack doesn't work, this silences the warning above
|
|
51
|
-
service.handler.grantInvoke(invokerRole); // Grants access to all handler versions for ongoing invocations
|
|
52
|
-
new RestateServiceRegistrar(this, service.handler.node.id + "Discovery", {
|
|
53
|
-
restate,
|
|
54
|
-
service,
|
|
55
|
-
serviceToken: this.registrationProviderToken,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
exports.LambdaServiceRegistry = LambdaServiceRegistry;
|
|
60
|
-
class RestateServiceRegistrar extends constructs_1.Construct {
|
|
61
|
-
constructor(scope, id, props) {
|
|
62
|
-
super(scope, id);
|
|
63
|
-
new cdk.CustomResource(this, props.service.handler.node.id + "Discovery", {
|
|
64
|
-
serviceToken: props.serviceToken,
|
|
65
|
-
resourceType: "Custom::RestateServiceRegistrar",
|
|
66
|
-
properties: {
|
|
67
|
-
metaEndpoint: props.restate.metaEndpoint,
|
|
68
|
-
serviceLambdaArn: props.service.handler.currentVersion.functionArn,
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
// TODO: add a dependency on attaching Lambda invocation permissions to the Restate instance role
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdGF0ZS1sYW1iZGEtc2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvcmVzdGF0ZS1jb25zdHJ1Y3RzL3Jlc3RhdGUtbGFtYmRhLXNlcnZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQW1DO0FBQ25DLHlEQUEyQztBQUUzQywyQ0FBdUM7QUF5QnZDOzs7O0dBSUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBSWxELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDN0MsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQztJQUNuRSxDQUFDO0lBRU0sUUFBUSxDQUFDLE9BQTJCO1FBQ3pDLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNsRSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxPQUEyQixFQUFFLE9BR3BEO1FBQ0MsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxhQUFhLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hILEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxzRUFBc0UsRUFDM0gsNEVBQTRFO1lBQzVFLG1HQUFtRyxDQUFDLENBQUM7UUFDdkcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsd0RBQXdEO1FBQ2pILE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZ0VBQWdFO1FBRTFHLElBQUksdUJBQXVCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxXQUFXLEVBQUU7WUFDdkUsT0FBTztZQUNQLE9BQU87WUFDUCxZQUFZLEVBQUUsSUFBSSxDQUFDLHlCQUEwQjtTQUM5QyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFsQ0Qsc0RBa0NDO0FBRUQsTUFBTSx1QkFBd0IsU0FBUSxzQkFBUztJQUM3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUM1QixLQU9DO1FBRVgsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsV0FBVyxFQUFFO1lBQ3hFLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxZQUFZLEVBQUUsaUNBQWlDO1lBQy9DLFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZO2dCQUN4QyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsV0FBVzthQUNsQztTQUNuQyxDQUFDLENBQUM7UUFDSCxpR0FBaUc7SUFDbkcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBSZWdpc3RyYXRpb25Qcm9wZXJ0aWVzIH0gZnJvbSBcIi4vcmVnaXN0ZXItc2VydmljZS1oYW5kbGVyXCI7XG5cbi8qKlxuICogQSBSZXN0YXRlIFJQQyBzZXJ2aWNlIHBhdGguIEV4YW1wbGU6IGBncmVldGVyYC5cbiAqL1xudHlwZSBSZXN0YXRlUGF0aCA9IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBSZXN0YXRlSW5zdGFuY2VSZWYge1xuICByZWFkb25seSBtZXRhRW5kcG9pbnQ6IHN0cmluZztcbiAgcmVhZG9ubHkgaW52b2tlclJvbGVBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIGNvbGxlY3Rpb24gb2YgTGFtYmRhIFJlc3RhdGUgUlBDIFNlcnZpY2UgaGFuZGxlcnMuXG4gKi9cbmV4cG9ydCB0eXBlIExhbWJkYVNlcnZpY2VSZWdpc3RyeVByb3BzID0ge1xuICAvKipcbiAgICogTWFwcGluZ3MgZnJvbSBzZXJ2aWNlIHBhdGggdG8gTGFtYmRhIGhhbmRsZXIuXG4gICAqL1xuICBzZXJ2aWNlSGFuZGxlcnM6IFJlY29yZDxSZXN0YXRlUGF0aCwgbGFtYmRhLkZ1bmN0aW9uPjtcblxuICByZWdpc3RyYXRpb25Qcm92aWRlclRva2VuPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIExhbWJkYS1iYXNlZCBSZXN0YXRlIFJQQyBzZXJ2aWNlcy4gVGhpcyBjb21wb25lbnQgaXMgdXNlZCB0byByZWdpc3RlclxuICogdGhlbSB3aXRoIGEgc2luZ2xlIFJlc3RhdGUgaW5zdGFuY2UuIFRoaXMgY3JlYXRlcyBhIGN1c3RvbSByZXNvdXJjZSB3aGljaCB3aWxsIHRyaWdnZXIgc2VydmljZVxuICogZGlzY292ZXJ5IG9uIGFueSBoYW5kbGVyIGNoYW5nZXMgZGVwbG95ZWQgdGhyb3VnaCBDREsvQ2xvdWRGb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBMYW1iZGFTZXJ2aWNlUmVnaXN0cnkgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VIYW5kbGVyczogUmVjb3JkPFJlc3RhdGVQYXRoLCBsYW1iZGEuRnVuY3Rpb24+O1xuICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJhdGlvblByb3ZpZGVyVG9rZW4/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IExhbWJkYVNlcnZpY2VSZWdpc3RyeVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuc2VydmljZUhhbmRsZXJzID0gcHJvcHMuc2VydmljZUhhbmRsZXJzO1xuICAgIHRoaXMucmVnaXN0cmF0aW9uUHJvdmlkZXJUb2tlbiA9IHByb3BzLnJlZ2lzdHJhdGlvblByb3ZpZGVyVG9rZW47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXIocmVzdGF0ZTogUmVzdGF0ZUluc3RhbmNlUmVmKSB7XG4gICAgZm9yIChjb25zdCBbcGF0aCwgaGFuZGxlcl0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5zZXJ2aWNlSGFuZGxlcnMpKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVySGFuZGxlcihyZXN0YXRlLCB7IHBhdGgsIGhhbmRsZXIgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckhhbmRsZXIocmVzdGF0ZTogUmVzdGF0ZUluc3RhbmNlUmVmLCBzZXJ2aWNlOiB7XG4gICAgcGF0aDogUmVzdGF0ZVBhdGgsXG4gICAgaGFuZGxlcjogbGFtYmRhLkZ1bmN0aW9uXG4gIH0pIHtcbiAgICBjb25zdCBpbnZva2VyUm9sZSA9IGlhbS5Sb2xlLmZyb21Sb2xlQXJuKHRoaXMsIHNlcnZpY2UuaGFuZGxlci5ub2RlLmlkICsgXCJJbnZva2VyUm9sZVwiLCByZXN0YXRlLmludm9rZXJSb2xlQXJuKTtcbiAgICBjZGsuQW5ub3RhdGlvbnMub2Yoc2VydmljZS5oYW5kbGVyKS5hY2tub3dsZWRnZVdhcm5pbmcoXCJAYXdzLWNkay9hd3MtcmVnaXN0ZXItc2VydmljZS1oYW5kbGVyOmFkZFBlcm1pc3Npb25zVG9WZXJzaW9uT3JBbGlhc1wiLFxuICAgICAgXCJXZSBzcGVjaWZpY2FsbHkgd2FudCB0byBncmFudCBpbnZva2UgcGVybWlzc2lvbnMgb24gYWxsIGhhbmRsZXIgdmVyc2lvbnMsIFwiICtcbiAgICAgIFwibm90IGp1c3QgdGhlIGN1cnJlbnRseSBkZXBsb3llZCBvbmUsIGFzIHRoZXJlIG1heSBiZSBzdXNwZW5kZWQgaW52b2NhdGlvbnMgYWdhaW5zdCBvbGRlciB2ZXJzaW9uc1wiKTtcbiAgICBzZXJ2aWNlLmhhbmRsZXIuY3VycmVudFZlcnNpb24uZ3JhbnRJbnZva2UoaW52b2tlclJvbGUpOyAvLyBDREsgYWNrIGRvZXNuJ3Qgd29yaywgdGhpcyBzaWxlbmNlcyB0aGUgd2FybmluZyBhYm92ZVxuICAgIHNlcnZpY2UuaGFuZGxlci5ncmFudEludm9rZShpbnZva2VyUm9sZSk7IC8vIEdyYW50cyBhY2Nlc3MgdG8gYWxsIGhhbmRsZXIgdmVyc2lvbnMgZm9yIG9uZ29pbmcgaW52b2NhdGlvbnNcblxuICAgIG5ldyBSZXN0YXRlU2VydmljZVJlZ2lzdHJhcih0aGlzLCBzZXJ2aWNlLmhhbmRsZXIubm9kZS5pZCArIFwiRGlzY292ZXJ5XCIsIHtcbiAgICAgIHJlc3RhdGUsXG4gICAgICBzZXJ2aWNlLFxuICAgICAgc2VydmljZVRva2VuOiB0aGlzLnJlZ2lzdHJhdGlvblByb3ZpZGVyVG9rZW4hLFxuICAgIH0pO1xuICB9XG59XG5cbmNsYXNzIFJlc3RhdGVTZXJ2aWNlUmVnaXN0cmFyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICByZXN0YXRlOiBSZXN0YXRlSW5zdGFuY2VSZWYsXG4gICAgICAgICAgICAgICAgc2VydmljZToge1xuICAgICAgICAgICAgICAgICAgcGF0aDogUmVzdGF0ZVBhdGgsXG4gICAgICAgICAgICAgICAgICBoYW5kbGVyOiBsYW1iZGEuRnVuY3Rpb25cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNlcnZpY2VUb2tlbjogc3RyaW5nXG4gICAgICAgICAgICAgIH0sXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsIHByb3BzLnNlcnZpY2UuaGFuZGxlci5ub2RlLmlkICsgXCJEaXNjb3ZlcnlcIiwge1xuICAgICAgc2VydmljZVRva2VuOiBwcm9wcy5zZXJ2aWNlVG9rZW4sXG4gICAgICByZXNvdXJjZVR5cGU6IFwiQ3VzdG9tOjpSZXN0YXRlU2VydmljZVJlZ2lzdHJhclwiLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBtZXRhRW5kcG9pbnQ6IHByb3BzLnJlc3RhdGUubWV0YUVuZHBvaW50LFxuICAgICAgICBzZXJ2aWNlTGFtYmRhQXJuOiBwcm9wcy5zZXJ2aWNlLmhhbmRsZXIuY3VycmVudFZlcnNpb24uZnVuY3Rpb25Bcm4sXG4gICAgICB9IHNhdGlzZmllcyBSZWdpc3RyYXRpb25Qcm9wZXJ0aWVzLFxuICAgIH0pO1xuICAgIC8vIFRPRE86IGFkZCBhIGRlcGVuZGVuY3kgb24gYXR0YWNoaW5nIExhbWJkYSBpbnZvY2F0aW9uIHBlcm1pc3Npb25zIHRvIHRoZSBSZXN0YXRlIGluc3RhbmNlIHJvbGVcbiAgfVxufSJdfQ==
|