terraconstructs 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +218 -30
- package/lib/aws/arn.js +1 -1
- package/lib/aws/aws-construct.js +1 -1
- package/lib/aws/aws-stack.js +1 -1
- package/lib/aws/aws-tags.js +2 -2
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/lambda.js +1 -1
- package/lib/aws/cloudwatch/alarm-base.js +1 -1
- package/lib/aws/cloudwatch/alarm-rule.js +1 -1
- package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
- package/lib/aws/cloudwatch/alarm.js +1 -1
- package/lib/aws/cloudwatch/composite-alarm.js +1 -1
- package/lib/aws/cloudwatch/dashboard.js +1 -1
- package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
- package/lib/aws/cloudwatch/graph.js +8 -8
- package/lib/aws/cloudwatch/layout.js +3 -3
- package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
- package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
- package/lib/aws/cloudwatch/log-group.js +1 -1
- package/lib/aws/cloudwatch/log-query.js +1 -1
- package/lib/aws/cloudwatch/log-stream.js +1 -1
- package/lib/aws/cloudwatch/metric-filter.js +1 -1
- package/lib/aws/cloudwatch/metric.js +2 -2
- package/lib/aws/cloudwatch/pattern.js +3 -3
- package/lib/aws/cloudwatch/policy.js +1 -1
- package/lib/aws/cloudwatch/query-definition.js +2 -2
- package/lib/aws/cloudwatch/stats.js +1 -1
- package/lib/aws/cloudwatch/subscription-filter.js +1 -1
- package/lib/aws/cloudwatch/text.js +1 -1
- package/lib/aws/cloudwatch/variable.js +3 -3
- package/lib/aws/cloudwatch/widget.js +1 -1
- package/lib/aws/compute/activity.js +1 -1
- package/lib/aws/compute/alb/application-listener-action.js +1 -1
- package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
- package/lib/aws/compute/alb/application-listener-rule.js +1 -1
- package/lib/aws/compute/alb/application-listener.js +1 -1
- package/lib/aws/compute/alb/application-load-balancer.js +1 -1
- package/lib/aws/compute/alb/application-target-group.js +1 -1
- package/lib/aws/compute/alb/conditions.js +1 -1
- package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
- package/lib/aws/compute/alb/trust-store.js +1 -1
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
- package/lib/aws/compute/bastion-host.js +1 -1
- package/lib/aws/compute/chain.js +1 -1
- package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
- package/lib/aws/compute/client-vpn-endpoint.js +2 -2
- package/lib/aws/compute/client-vpn-route.js +2 -2
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.js +1 -1
- package/lib/aws/compute/event-invoke-config.js +1 -1
- package/lib/aws/compute/event-source-filter.js +2 -2
- package/lib/aws/compute/event-source-mapping.js +1 -1
- package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
- package/lib/aws/compute/event-sources/s3.js +1 -1
- package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
- package/lib/aws/compute/event-sources/sqs.js +1 -1
- package/lib/aws/compute/fields.js +4 -4
- package/lib/aws/compute/function-alias.js +1 -1
- package/lib/aws/compute/function-base.js +2 -2
- package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
- package/lib/aws/compute/function-destinations/function.js +1 -1
- package/lib/aws/compute/function-destinations/sqs.js +1 -1
- package/lib/aws/compute/function-nodejs.js +1 -1
- package/lib/aws/compute/function-url.js +1 -1
- package/lib/aws/compute/function.js +1 -1
- package/lib/aws/compute/instance-types.js +1 -1
- package/lib/aws/compute/instance.js +1 -1
- package/lib/aws/compute/ip-addresses.js +2 -2
- package/lib/aws/compute/ipam.js +1 -1
- package/lib/aws/compute/key-pair.js +1 -1
- package/lib/aws/compute/launch-template.js +2 -2
- package/lib/aws/compute/lb-shared/base-listener.js +1 -1
- package/lib/aws/compute/lb-shared/base-load-balancer.js +1 -1
- package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
- package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
- package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
- package/lib/aws/compute/lb-targets/alb-target.js +3 -3
- package/lib/aws/compute/lb-targets/instance-target.js +2 -2
- package/lib/aws/compute/lb-targets/ip-target.js +1 -1
- package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
- package/lib/aws/compute/load-balancer.js +3 -3
- package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
- package/lib/aws/compute/machine-image/common.js +1 -1
- package/lib/aws/compute/machine-image/machine-image.js +8 -8
- package/lib/aws/compute/nat.js +5 -5
- package/lib/aws/compute/network-acl-types.js +2 -2
- package/lib/aws/compute/network-acl.js +3 -3
- package/lib/aws/compute/nlb/network-listener-action.js +1 -1
- package/lib/aws/compute/nlb/network-listener.js +1 -1
- package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
- package/lib/aws/compute/nlb/network-target-group.js +1 -1
- package/lib/aws/compute/peer.js +1 -1
- package/lib/aws/compute/placement-group.js +1 -1
- package/lib/aws/compute/port.js +1 -1
- package/lib/aws/compute/prefix-list.js +1 -1
- package/lib/aws/compute/route.js +8 -8
- package/lib/aws/compute/security-group.js +1 -1
- package/lib/aws/compute/state-graph.js +1 -1
- package/lib/aws/compute/state-machine-fragment.js +1 -1
- package/lib/aws/compute/state-machine.js +4 -4
- package/lib/aws/compute/states/choice.js +1 -1
- package/lib/aws/compute/states/custom-state.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
- package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
- package/lib/aws/compute/states/distributed-map.js +1 -1
- package/lib/aws/compute/states/fail.js +1 -1
- package/lib/aws/compute/states/map-base.js +1 -1
- package/lib/aws/compute/states/map.js +1 -1
- package/lib/aws/compute/states/parallel.js +1 -1
- package/lib/aws/compute/states/pass.js +2 -2
- package/lib/aws/compute/states/state.js +1 -1
- package/lib/aws/compute/states/succeed.js +1 -1
- package/lib/aws/compute/states/task-base.js +2 -2
- package/lib/aws/compute/states/task.js +1 -1
- package/lib/aws/compute/states/wait.js +2 -2
- package/lib/aws/compute/subnet-v2.js +2 -2
- package/lib/aws/compute/subnet.js +1 -1
- package/lib/aws/compute/task-credentials.js +1 -1
- package/lib/aws/compute/task-input.js +1 -1
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
- package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
- package/lib/aws/compute/tasks/http/invoke.js +1 -1
- package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
- package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
- package/lib/aws/compute/types.js +1 -1
- package/lib/aws/compute/user-data.js +3 -3
- package/lib/aws/compute/volume.js +2 -2
- package/lib/aws/compute/vpc-endpoint-service.js +1 -1
- package/lib/aws/compute/vpc-endpoint.js +6 -6
- package/lib/aws/compute/vpc-flow-logs.js +4 -4
- package/lib/aws/compute/vpc-v2-base.js +1 -1
- package/lib/aws/compute/vpc-v2.js +2 -2
- package/lib/aws/compute/vpc.js +4 -4
- package/lib/aws/compute/vpn.js +3 -3
- package/lib/aws/edge/certificate.js +1 -1
- package/lib/aws/edge/distribution.js +3 -3
- package/lib/aws/edge/dns-alias-record-targets.js +2 -2
- package/lib/aws/edge/dns-record.js +13 -13
- package/lib/aws/edge/dns-zone.js +1 -1
- package/lib/aws/edge/function.js +2 -2
- package/lib/aws/edge/key-value-store.js +4 -4
- package/lib/aws/edge/origin.js +3 -3
- package/lib/aws/edge/response-headers-policy.js +1 -1
- package/lib/aws/encryption/alias.js +1 -1
- package/lib/aws/encryption/key.js +1 -1
- package/lib/aws/encryption/via-service-principal.js +1 -1
- package/lib/aws/iam/grant.js +2 -2
- package/lib/aws/iam/instance-profile.js +1 -1
- package/lib/aws/iam/managed-policy.js +1 -1
- package/lib/aws/iam/oidc-provider.js +1 -1
- package/lib/aws/iam/policy-document.js +1 -1
- package/lib/aws/iam/policy-statement.js +1 -1
- package/lib/aws/iam/policy.js +1 -1
- package/lib/aws/iam/principals.js +20 -20
- package/lib/aws/iam/role.js +1 -1
- package/lib/aws/iam/saml-provider.js +2 -2
- package/lib/aws/iam/unknown-principal.js +1 -1
- package/lib/aws/network/simple-ipv4-vpc.js +1 -1
- package/lib/aws/network/subnet-group.js +3 -3
- package/lib/aws/network/subnet.js +4 -4
- package/lib/aws/notify/archive.js +1 -1
- package/lib/aws/notify/connection.js +3 -3
- package/lib/aws/notify/event-bus.js +3 -3
- package/lib/aws/notify/event-pattern.d.ts +26 -1
- package/lib/aws/notify/event-pattern.js +48 -4
- package/lib/aws/notify/input.js +2 -2
- package/lib/aws/notify/kinesis-stream.js +1 -1
- package/lib/aws/notify/queue-policy.js +1 -1
- package/lib/aws/notify/queue.js +1 -1
- package/lib/aws/notify/resource-policy.js +1 -1
- package/lib/aws/notify/rule.js +1 -1
- package/lib/aws/notify/schedule.js +1 -1
- package/lib/aws/notify/targets/event-bus.js +1 -1
- package/lib/aws/notify/targets/function.js +1 -1
- package/lib/aws/notify/targets/log-group.js +2 -2
- package/lib/aws/notify/targets/sqs.js +1 -1
- package/lib/aws/notify/targets/state-machine.js +1 -1
- package/lib/aws/storage/bucket-notifications.js +1 -1
- package/lib/aws/storage/bucket-policy.js +1 -1
- package/lib/aws/storage/bucket-source.js +1 -1
- package/lib/aws/storage/bucket.js +2 -2
- package/lib/aws/storage/notification-targets/function.js +1 -1
- package/lib/aws/storage/notification-targets/queue.js +1 -1
- package/lib/aws/storage/origin-access-identity.js +1 -1
- package/lib/aws/storage/parameter.js +2 -2
- package/lib/construct-base.js +2 -2
- package/lib/duration.js +1 -1
- package/lib/expiration.js +1 -1
- package/lib/size.js +1 -1
- package/lib/stack-base.js +1 -1
- package/lib/terra-func.js +1 -1
- package/package.json +1 -1
|
@@ -258,5 +258,5 @@ class Instance extends aws_construct_1.AwsConstructBase {
|
|
|
258
258
|
}
|
|
259
259
|
exports.Instance = Instance;
|
|
260
260
|
_a = JSII_RTTI_SYMBOL_1;
|
|
261
|
-
Instance[_a] = { fqn: "terraconstructs.aws.compute.Instance", version: "0.0.
|
|
261
|
+
Instance[_a] = { fqn: "terraconstructs.aws.compute.Instance", version: "0.0.13" };
|
|
262
262
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0RkFBNEY7QUFFNUYsc0RBSTZCO0FBQzdCLGlDQU1lO0FBR2Ysb0RBQW1FO0FBQ25FLDhDQUE4QztBQUM5QywwQ0FBbUM7QUFDbkMsd0NBQXdDO0FBQ3hDLDJFQUE4RTtBQUM5RSxtREFBbUQ7QUFDbkQsK0NBQTBEO0FBUzFELGlEQUk0QjtBQUM1QixxREFBaUU7QUFHakUsK0JBQXNEO0FBQ3RELG9EQUFvRDtBQUNwRCw4QkFBOEI7QUFFOUI7O0dBRUc7QUFDSCxNQUFNLFFBQVEsR0FBVyxNQUFNLENBQUM7QUFnWmhDOztHQUVHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsZ0NBQWdCO0lBQzVDLElBQVcsZUFBZTtRQUN4QixPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBc0VELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUhGLG1CQUFjLEdBQXFCLEVBQUUsQ0FBQztRQUtyRCwwQ0FBMEM7UUFDMUMsK0VBQStFO1FBQy9FLElBQUk7UUFFSixJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0VBQWtFLENBQ25FLENBQUM7UUFDSixDQUFDO1FBRUQsMkVBQTJFO1FBQzNFLElBQUksS0FBSyxDQUFDLG1CQUFtQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ25FLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0ZBQWtGLEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDbEgsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDM0MsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksOEJBQWEsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7Z0JBQ3BFLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztnQkFDZCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLEtBQUssS0FBSztnQkFDbEQsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjthQUNqRCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLENBQUM7WUFDakMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUNyQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0MsZUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRSxJQUFJLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsSUFBSSxrQkFBa0IsR0FBdUIsU0FBUyxDQUFDO1FBQ3ZELElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQ3ZDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUM7UUFDakUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSTtnQkFDUCxLQUFLLENBQUMsSUFBSTtvQkFDVixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTt3QkFDakMsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDO3FCQUN6RCxDQUFDLENBQUM7WUFFTCxNQUFNLFVBQVUsR0FBRyxJQUFJLGlDQUFpQixDQUFDLGtCQUFrQixDQUN6RCxJQUFJLEVBQ0osaUJBQWlCLEVBQ2pCO2dCQUNFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7YUFDekIsQ0FDRixDQUFDO1lBQ0Ysa0JBQWtCLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUNyQyxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRWhDLElBQUksS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FDeEIsR0FBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FDeEMsSUFBSSxFQUNKLDhCQUE4QixFQUM5Qiw4QkFBOEIsQ0FDL0IsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUVELHlCQUF5QjtRQUN6QixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUN2RCxNQUFNLG1CQUFtQixHQUFHLFlBQUksQ0FBQyxTQUFTLENBQUM7WUFDekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDO1NBQ25FLENBQUMsQ0FBQztRQUVILE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLElBQUksTUFBTSxDQUFDO1FBQ1gsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMzQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUM3QixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGdCQUFnQixLQUFLLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDdkQsQ0FBQztZQUNGLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sbUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUMzQixzQ0FBc0MsS0FBSyxDQUFDLGdCQUFnQixZQUFZLFFBQVEsQ0FBQyxNQUFNLHFDQUFxQyxDQUM3SCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN2QixNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixtQkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQzNCLHNDQUFzQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsc0NBQXNDLENBQzdHLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLHVFQUF1RTtZQUN2RSx5REFBeUQ7WUFDekQsTUFBTSxHQUFHLFlBQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO2dCQUN4RCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsZ0JBQWdCLEVBQUUsYUFBYTthQUNoQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsMEhBQTBIO1FBQzFILElBQUksaUJBQWlCLEdBQ25CLFNBQVMsQ0FBQztRQUNaLElBQUksS0FBSyxDQUFDLHdCQUF3QixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLCtCQUFrQixDQUFDLGdCQUFnQixDQUNwRSxJQUFJLEVBQ0osa0JBQWtCLEVBQ2xCO2dCQUNFLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtnQkFDekIsY0FBYyxFQUFFLG1CQUFtQjtnQkFDbkMsVUFBVSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7b0JBQ2hDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDMUIsQ0FBQyxDQUFDLFNBQVM7YUFDZCxDQUNGLENBQUM7WUFDRixnREFBZ0Q7WUFDaEQsK0dBQStHO1lBQy9HLGlCQUFpQixHQUFHO2dCQUNsQjtvQkFDRSxXQUFXLEVBQUUsQ0FBQztvQkFDZCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsRUFBRTtpQkFDcEQ7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3hFLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksOENBQThDLENBQ3BFLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsY0FBYyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3JELE1BQU0sSUFBSSxLQUFLLENBQ2IsMkZBQTJGLENBQzVGLENBQUM7UUFDSixDQUFDO1FBRUQsSUFDRSxLQUFLLENBQUMsZ0JBQWdCLEtBQUssU0FBUztZQUNwQyxDQUFDLGFBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1lBQzNDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFDekUsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsNkRBQTZELEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUN0RixDQUFDO1FBQ0osQ0FBQztRQUVELElBQ0UsS0FBSyxDQUFDLGdCQUFnQixLQUFLLFNBQVM7WUFDcEMsS0FBSyxDQUFDLHdCQUF3QixLQUFLLFNBQVMsRUFDNUMsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQ2Isc0VBQXNFLENBQ3ZFLENBQUM7UUFDSixDQUFDO1FBRUQsaUdBQWlHO1FBQ2pHLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQywrQkFBK0I7WUFDdEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ3RELENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFZCw2RUFBNkU7UUFDN0UseUVBQXlFO1FBQ3pFLDJEQUEyRDtRQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksdUJBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUN0RCxHQUFHLEVBQUUsV0FBVyxDQUFDLE9BQU87WUFDeEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxJQUFJLEtBQUssRUFBRSxPQUFPO1lBQ3JELFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRTtZQUMzQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDekQsY0FBYyxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtZQUNuRSx3QkFBd0IsRUFBRSxLQUFLLENBQUMsd0JBQXdCO1lBQ3hELGdCQUFnQixFQUFFLGlCQUFpQjtZQUNuQyxrQkFBa0I7WUFDbEIsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUMxQyx3R0FBd0c7WUFDeEcsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLHlCQUF5QixJQUFJLElBQUk7WUFDaEUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtZQUN6QyxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsY0FBYyxFQUNaLEtBQUssQ0FBQyxZQUFZLEtBQUssU0FBUztnQkFDOUIsQ0FBQyxDQUFDLElBQUEseUNBQThCLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUM7Z0JBQzFELENBQUMsQ0FBQyxTQUFTO1lBQ2YsZUFBZSxFQUNiLEtBQUssQ0FBQyxZQUFZLEtBQUssU0FBUztnQkFDOUIsQ0FBQyxDQUFDLElBQUEseUNBQThCLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUM7Z0JBQzFELENBQUMsQ0FBQyxTQUFTO1lBQ2Ysb0JBQW9CLEVBQ2xCLEtBQUssQ0FBQyxZQUFZLEtBQUssU0FBUztnQkFDOUIsQ0FBQyxDQUFDLElBQUEsK0NBQW9DLEVBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztnQkFDMUQsQ0FBQyxDQUFDLFNBQVM7WUFDZixTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQjtZQUNqRSxVQUFVO1lBQ1YsVUFBVSxFQUFFLEtBQUssQ0FBQyxrQkFBa0I7WUFDcEMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLG1CQUFtQjtnQkFDNUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsRUFBRTtnQkFDM0MsQ0FBQyxDQUFDLFNBQVM7WUFDYixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLHFCQUFxQjtZQUNsRCxpQ0FBaUMsRUFDL0IsS0FBSyxDQUFDLGlDQUFpQztZQUN6QyxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxrQkFBa0I7WUFDeEQsY0FBYyxFQUNaLEtBQUssQ0FBQyxjQUFjLEtBQUssU0FBUztnQkFDaEMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxjQUFjLEVBQUU7Z0JBQ25DLENBQUMsQ0FBQyxTQUFTO1lBQ2YsV0FBVyxFQUFFLEtBQUssQ0FBQyxrQkFBa0I7WUFDckMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtTQUN6QyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVDLGdHQUFnRztRQUNoRyxJQUNFLEtBQUssQ0FBQyx3QkFBd0IsS0FBSyxTQUFTO1lBQzVDLEtBQUssQ0FBQyx3QkFBd0IsRUFDOUIsQ0FBQztZQUNELE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQy9DLEtBQUssQ0FBQyxVQUFVLENBQ2pCLENBQUMsK0JBQStCLENBQUM7WUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDakQsTUFBTSxJQUFJLEtBQUssQ0FDYix3SEFBd0gsQ0FDekgsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUV2QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1FBQy9ELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUN2RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDakQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3JELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUMvQyxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QjtZQUMzRCxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUU7WUFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUM7UUFFNUMsb0NBQW9DO1FBQ3BDLHdFQUF3RTtRQUN4RSxvRkFBb0Y7UUFDcEYsd0dBQXdHO1FBQ3hHLG1DQUFtQztRQUVuQyxvQkFBb0I7UUFDcEIsaUVBQWlFO1FBQ2pFLElBQUk7UUFFSixJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixlQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLG1EQUEyQixFQUFFLENBQUMsQ0FBQztZQUN4RCxNQUFNO1lBQ04sdUNBQXVDO1lBQ3ZDLE1BQU07UUFDUixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxnQkFBZ0IsQ0FBQyxhQUE2QjtRQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksV0FBVyxDQUFDLEdBQUcsUUFBa0I7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlLENBQUMsU0FBOEI7UUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDOztBQWhYSCw0QkFzYkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtZWMyL2xpYi9pbnN0YW5jZS50c1xuXG5pbXBvcnQge1xuICBpbnN0YW5jZSxcbiAgaWFtSW5zdGFuY2VQcm9maWxlIGFzIHRmSW5zdGFuY2VQcm9maWxlLFxuICBuZXR3b3JrSW50ZXJmYWNlIGFzIHRmTmV0d29ya0ludGVyZmFjZSxcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7XG4gIEFubm90YXRpb25zLFxuICBBc3BlY3RzLFxuICAvLyBBc3BlY3RQcmlvcml0eSxcbiAgTGF6eSxcbiAgVG9rZW4sXG59IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2R1cmF0aW9uXCI7XG5pbXBvcnQgeyBJQXdzQ29uc3RydWN0LCBBd3NDb25zdHJ1Y3RCYXNlIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbi8vIFRPRE86IFVzZSBUYWdNYW5hZ2VyIGFuZCB0YWctYXNwZWN0IGluc3RlYWRcbmltcG9ydCB7IFRhZ3MgfSBmcm9tIFwiLi4vYXdzLXRhZ3NcIjtcbi8vIGltcG9ydCB7IFRhZ3MgfSBmcm9tIFwiLi4vdGFnLWFzcGVjdFwiO1xuaW1wb3J0IHsgSW5zdGFuY2VSZXF1aXJlSW1kc3YyQXNwZWN0IH0gZnJvbSBcIi4vYXNwZWN0cy9yZXF1aXJlLWltZHN2Mi1hc3BlY3RcIjtcbi8vIGltcG9ydCB7IENsb3VkRm9ybWF0aW9uSW5pdCB9IGZyb20gXCIuL2Nmbi1pbml0XCI7XG5pbXBvcnQgeyBDb25uZWN0aW9ucywgSUNvbm5lY3RhYmxlIH0gZnJvbSBcIi4vY29ubmVjdGlvbnNcIjtcbmltcG9ydCB7IEluc3RhbmNlVHlwZSB9IGZyb20gXCIuL2luc3RhbmNlLXR5cGVzXCI7XG5pbXBvcnQgeyBJS2V5UGFpciB9IGZyb20gXCIuL2tleS1wYWlyXCI7XG5pbXBvcnQge1xuICBDcHVDcmVkaXRzLFxuICBJbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3IsXG59IGZyb20gXCIuL2xhdW5jaC10ZW1wbGF0ZVwiO1xuaW1wb3J0IHsgSU1hY2hpbmVJbWFnZSwgT3BlcmF0aW5nU3lzdGVtVHlwZSB9IGZyb20gXCIuL21hY2hpbmUtaW1hZ2VcIjtcbmltcG9ydCB7IElQbGFjZW1lbnRHcm91cCB9IGZyb20gXCIuL3BsYWNlbWVudC1ncm91cFwiO1xuaW1wb3J0IHtcbiAgaW5zdGFuY2VFYnNCbG9ja0RldmljZU1hcHBpbmdzLFxuICBpbnN0YW5jZUVwaGVtZXJhbEJsb2NrRGV2aWNlTWFwcGluZ3MsXG4gIGluc3RhbmNlUm9vdEJsb2NrRGV2aWNlTWFwcGluZyxcbn0gZnJvbSBcIi4vcHJpdmF0ZS9lYnMtdXRpbFwiO1xuaW1wb3J0IHsgSVNlY3VyaXR5R3JvdXAsIFNlY3VyaXR5R3JvdXAgfSBmcm9tIFwiLi9zZWN1cml0eS1ncm91cFwiO1xuaW1wb3J0IHsgVXNlckRhdGEgfSBmcm9tIFwiLi91c2VyLWRhdGFcIjtcbmltcG9ydCB7IEJsb2NrRGV2aWNlIH0gZnJvbSBcIi4vdm9sdW1lXCI7XG5pbXBvcnQgeyBJVnBjLCBTdWJuZXQsIFN1Ym5ldFNlbGVjdGlvbiB9IGZyb20gXCIuL3ZwY1wiO1xuLy8gaW1wb3J0IHsgbWQ1aGFzaCB9IGZyb20gXCIuLi8uLi9oZWxwZXJzLWludGVybmFsXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuXG4vKipcbiAqIE5hbWUgdGFnIGNvbnN0YW50XG4gKi9cbmNvbnN0IE5BTUVfVEFHOiBzdHJpbmcgPSBcIk5hbWVcIjtcblxuLyoqXG4gKiBPdXRwdXRzIHdoaWNoIG1heSBiZSByZWdpc3RlcmVkIGZvciBvdXRwdXQgdmlhIHRoZSBHcmlkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2UncyBJRFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUluc3RhbmNlIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCwgSUNvbm5lY3RhYmxlLCBpYW0uSUdyYW50YWJsZSB7XG4gIC8qKiBTdHJvbmdseSB0eXBlZCBvdXRwdXRzICovXG4gIHJlYWRvbmx5IGluc3RhbmNlT3V0cHV0czogSW5zdGFuY2VPdXRwdXRzO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2UncyBJRFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhdmFpbGFiaWxpdHkgem9uZSB0aGUgaW5zdGFuY2Ugd2FzIGxhdW5jaGVkIGluXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlQXZhaWxhYmlsaXR5Wm9uZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcml2YXRlIEROUyBuYW1lIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlUHJpdmF0ZURuc05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogUHJpdmF0ZSBJUCBmb3IgdGhpcyBpbnN0YW5jZVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVByaXZhdGVJcDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQdWJsaWNseS1yb3V0YWJsZSBETlMgbmFtZSBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICpcbiAgICogKE1heSBiZSBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIGluc3RhbmNlIGRvZXMgbm90IGhhdmUgYSBwdWJsaWMgbmFtZSkuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlUHVibGljRG5zTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQdWJsaWNseS1yb3V0YWJsZSBJUCAgYWRkcmVzcyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICpcbiAgICogKE1heSBiZSBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIGluc3RhbmNlIGRvZXMgbm90IGhhdmUgYSBwdWJsaWMgSVApLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVB1YmxpY0lwOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiBhbiBFQzIgSW5zdGFuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZVByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgU1NIIGtleXBhaXIgdG8gZ3JhbnQgYWNjZXNzIHRvIGluc3RhbmNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gU1NIIGFjY2VzcyB3aWxsIGJlIHBvc3NpYmxlLlxuICAgKiBAZGVwcmVjYXRlZCAtIFVzZSBga2V5UGFpcmAgaW5zdGVhZCAtIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jZGsvYXBpL3YyL2RvY3MvYXdzLWNkay1saWIuYXdzX2VjMi1yZWFkbWUuaHRtbCN1c2luZy1hbi1leGlzdGluZy1lYzIta2V5LXBhaXJcbiAgICovXG4gIHJlYWRvbmx5IGtleU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBTU0gga2V5cGFpciB0byBncmFudCBhY2Nlc3MgdG8gdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIFNTSCBhY2Nlc3Mgd2lsbCBiZSBwb3NzaWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGtleVBhaXI/OiBJS2V5UGFpcjtcblxuICAvKipcbiAgICogV2hlcmUgdG8gcGxhY2UgdGhlIGluc3RhbmNlIHdpdGhpbiB0aGUgVlBDXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUHJpdmF0ZSBzdWJuZXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IFN1Ym5ldFNlbGVjdGlvbjtcblxuICAvKipcbiAgICogSW4gd2hpY2ggQVogdG8gcGxhY2UgdGhlIGluc3RhbmNlIHdpdGhpbiB0aGUgVlBDXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUmFuZG9tIHpvbmUuXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnN0YW5jZSBjb3VsZCBpbml0aWF0ZSBjb25uZWN0aW9ucyB0byBhbnl3aGVyZSBieSBkZWZhdWx0LlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIG9ubHkgdXNlZCB3aGVuIHlvdSBkbyBub3QgcHJvdmlkZSBhIHNlY3VyaXR5IGdyb3VwLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0FsbE91dGJvdW5kPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5zdGFuY2UgY291bGQgaW5pdGlhdGUgSVB2NiBjb25uZWN0aW9ucyB0byBhbnl3aGVyZSBieSBkZWZhdWx0LlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIG9ubHkgdXNlZCB3aGVuIHlvdSBkbyBub3QgcHJvdmlkZSBhIHNlY3VyaXR5IGdyb3VwLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dBbGxJcHY2T3V0Ym91bmQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbGVuZ3RoIG9mIHRpbWUgdG8gd2FpdCBmb3IgdGhlIHJlc291cmNlU2lnbmFsQ291bnRcbiAgICpcbiAgICogVGhlIG1heGltdW0gdmFsdWUgaXMgNDMyMDAgKDEyIGhvdXJzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcyg1KVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VTaWduYWxUaW1lb3V0PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFZQQyB0byBsYXVuY2ggdGhlIGluc3RhbmNlIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBHcm91cCB0byBhc3NpZ24gdG8gdGhpcyBpbnN0YW5jZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGNyZWF0ZSBuZXcgc2VjdXJpdHkgZ3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA/OiBJU2VjdXJpdHlHcm91cDtcblxuICAvKipcbiAgICogVHlwZSBvZiBpbnN0YW5jZSB0byBsYXVuY2hcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlVHlwZTogSW5zdGFuY2VUeXBlO1xuXG4gIC8qKlxuICAgKiBBTUkgdG8gbGF1bmNoXG4gICAqL1xuICByZWFkb25seSBtYWNoaW5lSW1hZ2U6IElNYWNoaW5lSW1hZ2U7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmljIFVzZXJEYXRhIHRvIHVzZVxuICAgKlxuICAgKiBUaGUgVXNlckRhdGEgbWF5IHN0aWxsIGJlIG11dGF0ZWQgYWZ0ZXIgY3JlYXRpb24uXG4gICAqXG4gICAqIFVwZGF0ZXMgdG8gdGhpcyBmaWVsZCB3aWxsIHRyaWdnZXIgYSBzdG9wL3N0YXJ0IG9mIHRoZSBFQzIgaW5zdGFuY2UgYnkgZGVmYXVsdC5cbiAgICpcbiAgICogSWYgdXNlckRhdGFDYXVzZXNSZXBsYWNlbWVudCBpcyBzZXQgdGhlbiB1cGRhdGVzIHRvIHRoaXMgZmllbGQgd2lsbCB0cmlnZ2VyXG4gICAqIGEgZGVzdHJveSBhbmQgcmVjcmVhdGUgb2YgdGhlIEVDMiBpbnN0YW5jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIFVzZXJEYXRhIG9iamVjdCBhcHByb3ByaWF0ZSBmb3IgdGhlIE1hY2hpbmVJbWFnZSdzXG4gICAqIE9wZXJhdGluZyBTeXN0ZW0gaXMgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJEYXRhPzogVXNlckRhdGE7XG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdG8gdGhlIFVzZXJEYXRhIGZvcmNlIHJlcGxhY2VtZW50XG4gICAqXG4gICAqIERlcGVuZGluZyB0aGUgRUMyIGluc3RhbmNlIHR5cGUsIGNoYW5naW5nIFVzZXJEYXRhIGVpdGhlclxuICAgKiByZXN0YXJ0cyB0aGUgaW5zdGFuY2Ugb3IgcmVwbGFjZXMgdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiAtIEluc3RhbmNlIHN0b3JlLWJhY2tlZCBpbnN0YW5jZXMgYXJlIHJlcGxhY2VkLlxuICAgKiAtIEVCUy1iYWNrZWQgaW5zdGFuY2VzIGFyZSByZXN0YXJ0ZWQuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHJlc3RhcnRpbmcgZG9lcyBub3QgZXhlY3V0ZSB0aGUgbmV3IFVzZXJEYXRhIHNvIHlvdVxuICAgKiB3aWxsIG5lZWQgYSBkaWZmZXJlbnQgbWVjaGFuaXNtIHRvIGVuc3VyZSB0aGUgaW5zdGFuY2UgaXMgcmVzdGFydGVkLlxuICAgKlxuICAgKiBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlckRhdGFDYXVzZXNSZXBsYWNlbWVudD86IGJvb2xlYW47XG4gIC8vIEBkZWZhdWx0IC0gdHJ1ZSBpZiBgaW5pdE9wdGlvbnNgIGlzIHNwZWNpZmllZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuXG4gIC8qKlxuICAgKiBBbiBJQU0gcm9sZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgaW5zdGFuY2UgcHJvZmlsZSBhc3NpZ25lZCB0byB0aGlzIEF1dG8gU2NhbGluZyBHcm91cC5cbiAgICpcbiAgICogVGhlIHJvbGUgbXVzdCBiZSBhc3N1bWFibGUgYnkgdGhlIHNlcnZpY2UgcHJpbmNpcGFsIGBlYzIuYW1hem9uYXdzLmNvbWA6XG4gICAqIE5vdGU6IFlvdSBjYW4gcHJvdmlkZSBhbiBpbnN0YW5jZVByb2ZpbGUgb3IgYSByb2xlLCBidXQgbm90IGJvdGguXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ015Um9sZScsIHtcbiAgICogICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnZWMyLmFtYXpvbmF3cy5jb20nKVxuICAgKiB9KTtcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIHJvbGUgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNyZWF0ZWQsIGl0IGNhbiBiZSBhY2Nlc3NlZCB2aWEgdGhlIGByb2xlYCBwcm9wZXJ0eVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIGluc3RhbmNlIHByb2ZpbGUgdXNlZCB0byBwYXNzIHJvbGUgaW5mb3JtYXRpb24gdG8gRUMyIGluc3RhbmNlcy5cbiAgICpcbiAgICogTm90ZTogWW91IGNhbiBwcm92aWRlIGFuIGluc3RhbmNlUHJvZmlsZSBvciBhIHJvbGUsIGJ1dCBub3QgYm90aC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBpbnN0YW5jZSBwcm9maWxlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVByb2ZpbGU/OiBpYW0uSUluc3RhbmNlUHJvZmlsZTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGluc3RhbmNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ0RLIGdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIHRvIGVuYWJsZSBhbiBpbnN0YW5jZSBsYXVuY2hlZCBpbiBhIFZQQyB0byBwZXJmb3JtIE5BVC5cbiAgICogVGhpcyBjb250cm9scyB3aGV0aGVyIHNvdXJjZS9kZXN0aW5hdGlvbiBjaGVja2luZyBpcyBlbmFibGVkIG9uIHRoZSBpbnN0YW5jZS5cbiAgICogQSB2YWx1ZSBvZiB0cnVlIG1lYW5zIHRoYXQgY2hlY2tpbmcgaXMgZW5hYmxlZCwgYW5kIGZhbHNlIG1lYW5zIHRoYXQgY2hlY2tpbmcgaXMgZGlzYWJsZWQuXG4gICAqIFRoZSB2YWx1ZSBtdXN0IGJlIGZhbHNlIGZvciB0aGUgaW5zdGFuY2UgdG8gcGVyZm9ybSBOQVQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZURlc3RDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBob3cgYmxvY2sgZGV2aWNlcyBhcmUgZXhwb3NlZCB0byB0aGUgaW5zdGFuY2UuIFlvdSBjYW4gc3BlY2lmeSB2aXJ0dWFsIGRldmljZXMgYW5kIEVCUyB2b2x1bWVzLlxuICAgKlxuICAgKiBFYWNoIGluc3RhbmNlIHRoYXQgaXMgbGF1bmNoZWQgaGFzIGFuIGFzc29jaWF0ZWQgcm9vdCBkZXZpY2Ugdm9sdW1lLFxuICAgKiBlaXRoZXIgYW4gQW1hem9uIEVCUyB2b2x1bWUgb3IgYW4gaW5zdGFuY2Ugc3RvcmUgdm9sdW1lLlxuICAgKiBZb3UgY2FuIHVzZSBibG9jayBkZXZpY2UgbWFwcGluZ3MgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIEVCUyB2b2x1bWVzIG9yXG4gICAqIGluc3RhbmNlIHN0b3JlIHZvbHVtZXMgdG8gYXR0YWNoIHRvIGFuIGluc3RhbmNlIHdoZW4gaXQgaXMgbGF1bmNoZWQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2Jsb2NrLWRldmljZS1tYXBwaW5nLWNvbmNlcHRzLmh0bWxcbiAgICogQHNlZSBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcy9yZXNvdXJjZXMvaW5zdGFuY2UjZWJzLWVwaGVtZXJhbC1hbmQtcm9vdC1ibG9jay1kZXZpY2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlcyB0aGUgYmxvY2sgZGV2aWNlIG1hcHBpbmcgb2YgdGhlIEFNSVxuICAgKi9cbiAgcmVhZG9ubHkgYmxvY2tEZXZpY2VzPzogQmxvY2tEZXZpY2VbXTtcblxuICAvKipcbiAgICogRGVmaW5lcyBhIHByaXZhdGUgSVAgYWRkcmVzcyB0byBhc3NvY2lhdGUgd2l0aCBhbiBpbnN0YW5jZS5cbiAgICpcbiAgICogUHJpdmF0ZSBJUCBzaG91bGQgYmUgYXZhaWxhYmxlIHdpdGhpbiB0aGUgVlBDIHRoYXQgdGhlIGluc3RhbmNlIGlzIGJ1aWxkIHdpdGhpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhc3NvY2lhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUlwQWRkcmVzcz86IHN0cmluZztcblxuICAvKipcbiAgICogUHJvcGFnYXRlIHRoZSBFQzIgaW5zdGFuY2UgdGFncyB0byB0aGUgRUJTIHZvbHVtZXMuXG4gICAqXG4gICAqIERvIG5vdCBwcm9wYWdhdGUgdGFncyBpZiB5b3UgcGxhbiB0byBtYW5hZ2UgYmxvY2sgZGV2aWNlIHRhZ3Mgb3V0c2lkZVxuICAgKiB0aGUgYGF3c19pbnN0YW5jZWAgY29uZmlndXJhdGlvbiwgc3VjaCBhcyB1c2luZyBgdGFnc2AgaW4gYW4gYGF3c19lYnNfdm9sdW1lYFxuICAgKiByZXNvdXJjZSBhdHRhY2hlZCB2aWEgYGF3c192b2x1bWVfYXR0YWNobWVudGAuXG4gICAqXG4gICAqIERvaW5nIHNvIHdpbGwgcmVzdWx0IGluIHJlc291cmNlIGN5Y2xpbmcgYW5kIGluY29uc2lzdGVudCBiZWhhdmlvci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGFnYXRlVGFnc1RvVm9sdW1lT25DcmVhdGlvbj86IGJvb2xlYW47XG5cbiAgLy8gVE9ETzogSW1wbGVtZW50IEdyaWQgSW5pdFxuICAvLyAvKipcbiAgLy8gICogQXBwbHkgdGhlIGdpdmVuIENsb3VkRm9ybWF0aW9uIEluaXQgY29uZmlndXJhdGlvbiB0byB0aGUgaW5zdGFuY2UgYXQgc3RhcnR1cFxuICAvLyAgKlxuICAvLyAgKiBAZGVmYXVsdCAtIG5vIENsb3VkRm9ybWF0aW9uIGluaXRcbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IGluaXQ/OiBDbG91ZEZvcm1hdGlvbkluaXQ7XG4gIC8vXG4gIC8vIC8qKlxuICAvLyAgKiBVc2UgdGhlIGdpdmVuIG9wdGlvbnMgZm9yIGFwcGx5aW5nIENsb3VkRm9ybWF0aW9uIEluaXRcbiAgLy8gICpcbiAgLy8gICogRGVzY3JpYmVzIHRoZSBjb25maWdzZXRzIHRvIHVzZSBhbmQgdGhlIHRpbWVvdXQgdG8gd2FpdFxuICAvLyAgKlxuICAvLyAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgb3B0aW9uc1xuICAvLyAgKi9cbiAgLy8gcmVhZG9ubHkgaW5pdE9wdGlvbnM/OiBBcHBseUNsb3VkRm9ybWF0aW9uSW5pdE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgSU1EU3YyIHNob3VsZCBiZSByZXF1aXJlZCBvbiB0aGlzIGluc3RhbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlSW1kc3YyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBcIkRldGFpbGVkIE1vbml0b3JpbmdcIiBpcyBlbmFibGVkIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEtlZXAgaW4gbWluZCB0aGF0IERldGFpbGVkIE1vbml0b3JpbmcgcmVzdWx0cyBpbiBleHRyYSBjaGFyZ2VzXG4gICAqXG4gICAqIEBzZWUgaHR0cDovL2F3cy5hbWF6b24uY29tL2Nsb3Vkd2F0Y2gvcHJpY2luZy9cbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWlsZWRNb25pdG9yaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkIFNTTSBzZXNzaW9uIHBlcm1pc3Npb25zIHRvIHRoZSBpbnN0YW5jZSByb2xlXG4gICAqXG4gICAqIFNldHRpbmcgdGhpcyB0byBgdHJ1ZWAgYWRkcyB0aGUgbmVjZXNzYXJ5IHBlcm1pc3Npb25zIHRvIGNvbm5lY3RcbiAgICogdG8gdGhlIGluc3RhbmNlIHVzaW5nIFNTTSBTZXNzaW9uIE1hbmFnZXIuIFlvdSBjYW4gZG8gdGhpc1xuICAgKiBmcm9tIHRoZSBBV1MgQ29uc29sZS5cbiAgICpcbiAgICogTk9URTogU2V0dGluZyB0aGlzIGZsYWcgdG8gYHRydWVgIG1heSBub3QgYmUgZW5vdWdoIGJ5IGl0c2VsZi5cbiAgICogWW91IG11c3QgYWxzbyB1c2UgYW4gQU1JIHRoYXQgY29tZXMgd2l0aCB0aGUgU1NNIEFnZW50LCBvciBpbnN0YWxsXG4gICAqIHRoZSBTU00gQWdlbnQgeW91cnNlbGYuIFNlZVxuICAgKiBbV29ya2luZyB3aXRoIFNTTSBBZ2VudF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N5c3RlbXMtbWFuYWdlci9sYXRlc3QvdXNlcmd1aWRlL3NzbS1hZ2VudC5odG1sKVxuICAgKiBpbiB0aGUgU1NNIERldmVsb3BlciBHdWlkZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNzbVNlc3Npb25QZXJtaXNzaW9ucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYXNzb2NpYXRlIGEgcHVibGljIElQIGFkZHJlc3MgdG8gdGhlIHByaW1hcnkgbmV0d29yayBpbnRlcmZhY2UgYXR0YWNoZWQgdG8gdGhpcyBpbnN0YW5jZS5cbiAgICpcbiAgICogWW91IGNhbm5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkgYW5kIGBpcHY2QWRkcmVzc0NvdW50YCBhdCB0aGUgc2FtZSB0aW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHB1YmxpYyBJUCBhZGRyZXNzIGlzIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgYmFzZWQgb24gZGVmYXVsdCBiZWhhdmlvclxuICAgKi9cbiAgcmVhZG9ubHkgYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmeWluZyB0aGUgQ1BVIGNyZWRpdCB0eXBlIGZvciBidXJzdGFibGUgRUMyIGluc3RhbmNlIHR5cGVzIChUMiwgVDMsIFQzYSwgZXRjKS5cbiAgICogVGhlIHVubGltaXRlZCBDUFUgY3JlZGl0IG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBUMyBpbnN0YW5jZXMgd2l0aCBhIGRlZGljYXRlZCBob3N0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFQyIGluc3RhbmNlcyBhcmUgc3RhbmRhcmQsIHdoaWxlIFQzLCBUNGcsIGFuZCBUM2EgaW5zdGFuY2VzIGFyZSB1bmxpbWl0ZWQuXG4gICAqL1xuICByZWFkb25seSBjcmVkaXRTcGVjaWZpY2F0aW9uPzogQ3B1Q3JlZGl0cztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGluc3RhbmNlIGlzIG9wdGltaXplZCBmb3IgQW1hem9uIEVCUyBJL08uXG4gICAqXG4gICAqIFRoaXMgb3B0aW1pemF0aW9uIHByb3ZpZGVzIGRlZGljYXRlZCB0aHJvdWdocHV0IHRvIEFtYXpvbiBFQlMgYW5kIGFuIG9wdGltaXplZCBjb25maWd1cmF0aW9uIHN0YWNrIHRvIHByb3ZpZGUgb3B0aW1hbCBBbWF6b24gRUJTIEkvTyBwZXJmb3JtYW5jZS5cbiAgICogVGhpcyBvcHRpbWl6YXRpb24gaXNuJ3QgYXZhaWxhYmxlIHdpdGggYWxsIGluc3RhbmNlIHR5cGVzLlxuICAgKiBBZGRpdGlvbmFsIHVzYWdlIGNoYXJnZXMgYXBwbHkgd2hlbiB1c2luZyBhbiBFQlMtb3B0aW1pemVkIGluc3RhbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZWJzT3B0aW1pemVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIGluc3RhbmNlIHdpbGwgbm90IGJlIGFibGUgdG8gYmUgdGVybWluYXRlZCB1c2luZyB0aGUgQW1hem9uIEVDMiBjb25zb2xlLCBDTEksIG9yIEFQSS5cbiAgICpcbiAgICogVG8gY2hhbmdlIHRoaXMgYXR0cmlidXRlIGFmdGVyIGxhdW5jaCwgdXNlIFtNb2RpZnlJbnN0YW5jZUF0dHJpYnV0ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Nb2RpZnlJbnN0YW5jZUF0dHJpYnV0ZS5odG1sKS5cbiAgICogQWx0ZXJuYXRpdmVseSwgaWYgeW91IHNldCBJbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3IgdG8gdGVybWluYXRlLCB5b3UgY2FuIHRlcm1pbmF0ZSB0aGUgaW5zdGFuY2VcbiAgICogYnkgcnVubmluZyB0aGUgc2h1dGRvd24gY29tbWFuZCBmcm9tIHRoZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaW5zdGFuY2UuaHRtbCNjZm4tZWMyLWluc3RhbmNlLWRpc2FibGVhcGl0ZXJtaW5hdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZUFwaVRlcm1pbmF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgYW4gaW5zdGFuY2Ugc3RvcHMgb3IgdGVybWluYXRlcyB3aGVuIHlvdSBpbml0aWF0ZSBzaHV0ZG93biBmcm9tIHRoZSBpbnN0YW5jZVxuICAgKiAodXNpbmcgdGhlIG9wZXJhdGluZyBzeXN0ZW0gY29tbWFuZCBmb3Igc3lzdGVtIHNodXRkb3duKS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvdGVybWluYXRpbmctaW5zdGFuY2VzLmh0bWwjVXNpbmdfQ2hhbmdpbmdJbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3JcbiAgICpcbiAgICogQGRlZmF1bHQgSW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yLlNUT1BcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvcj86IEluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvcjtcblxuICAvKipcbiAgICogVGhlIHBsYWNlbWVudCBncm91cCB0aGF0IHlvdSB3YW50IHRvIGxhdW5jaCB0aGUgaW5zdGFuY2UgaW50by5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwbGFjZW1lbnQgZ3JvdXAgd2lsbCBiZSB1c2VkIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGxhY2VtZW50R3JvdXA/OiBJUGxhY2VtZW50R3JvdXA7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGluc3RhbmNlIGlzIGVuYWJsZWQgZm9yIEFXUyBOaXRybyBFbmNsYXZlcy5cbiAgICpcbiAgICogTml0cm8gRW5jbGF2ZXMgcmVxdWlyZXMgYSBOaXRyby1iYXNlZCB2aXJ0dWFsaXplZCBwYXJlbnQgaW5zdGFuY2Ugd2l0aCBzcGVjaWZpYyBJbnRlbC9BTUQgd2l0aCBhdCBsZWFzdCA0IHZDUFVzXG4gICAqIG9yIEdyYXZpdG9uIHdpdGggYXQgbGVhc3QgMiB2Q1BVcyBpbnN0YW5jZSB0eXBlcyBhbmQgTGludXgvV2luZG93cyBob3N0IE9TLFxuICAgKiB3aGlsZSB0aGUgZW5jbGF2ZSBpdHNlbGYgc3VwcG9ydHMgb25seSBMaW51eCBPUy5cbiAgICpcbiAgICogWW91IGNhbid0IHNldCBib3RoIGBlbmNsYXZlRW5hYmxlZGAgYW5kIGBoaWJlcm5hdGlvbkVuYWJsZWRgIHRvIHRydWUgb24gdGhlIHNhbWUgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VuY2xhdmVzL2xhdGVzdC91c2VyL25pdHJvLWVuY2xhdmUuaHRtbCNuaXRyby1lbmNsYXZlLXJlcXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5jbGF2ZUVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnN0YW5jZSBpcyBlbmFibGVkIGZvciBoaWJlcm5hdGlvbi5cbiAgICpcbiAgICogWW91IGNhbid0IHNldCBib3RoIGBlbmNsYXZlRW5hYmxlZGAgYW5kIGBoaWJlcm5hdGlvbkVuYWJsZWRgIHRvIHRydWUgb24gdGhlIHNhbWUgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWluc3RhbmNlLWhpYmVybmF0aW9ub3B0aW9ucy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGhpYmVybmF0aW9uRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgSVB2NiBhZGRyZXNzZXMgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHByaW1hcnkgbmV0d29yayBpbnRlcmZhY2UuXG4gICAqXG4gICAqIEFtYXpvbiBFQzIgY2hvb3NlcyB0aGUgSVB2NiBhZGRyZXNzZXMgZnJvbSB0aGUgcmFuZ2Ugb2YgeW91ciBzdWJuZXQuXG4gICAqXG4gICAqIFlvdSBjYW5ub3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5IGFuZCBgYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzYCBhdCB0aGUgc2FtZSB0aW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEZvciBpbnN0YW5jZXMgYXNzb2NpYXRlZCB3aXRoIGFuIElQdjYgc3VibmV0LCB1c2UgMTsgb3RoZXJ3aXNlLCB1c2UgMC5cbiAgICovXG4gIHJlYWRvbmx5IGlwdjZBZGRyZXNzQ291bnQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhpcyByZXByZXNlbnRzIGEgc2luZ2xlIEVDMiBpbnN0YW5jZVxuICovXG5leHBvcnQgY2xhc3MgSW5zdGFuY2UgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSUluc3RhbmNlIHtcbiAgcHVibGljIGdldCBpbnN0YW5jZU91dHB1dHMoKTogSW5zdGFuY2VPdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5zdGFuY2VJZDogdGhpcy5pbnN0YW5jZUlkLFxuICAgIH07XG4gIH1cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlT3V0cHV0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBPUyB0aGUgaW5zdGFuY2UgaXMgcnVubmluZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvc1R5cGU6IE9wZXJhdGluZ1N5c3RlbVR5cGU7XG5cbiAgLyoqXG4gICAqIEFsbG93cyBzcGVjaWZ5IHNlY3VyaXR5IGdyb3VwIGNvbm5lY3Rpb25zIGZvciB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbnM6IENvbm5lY3Rpb25zO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgYXNzdW1lZCBieSB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZTogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBVc2VyRGF0YSBmb3IgdGhlIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlckRhdGE6IFVzZXJEYXRhO1xuXG4gIC8qKlxuICAgKiB0aGUgdW5kZXJseWluZyBpbnN0YW5jZSByZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlOiBpbnN0YW5jZS5JbnN0YW5jZTtcblxuICAvKipcbiAgICogdGhlIHByaW1hcnkgbmV0d29yayBpbnRlZmFjZSAoaWYgYXBwbGljYWJsZSlcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJpbWFyeU5ldHdvcmtJbnRlcmZhY2U/OiB0Zk5ldHdvcmtJbnRlcmZhY2UuTmV0d29ya0ludGVyZmFjZTtcblxuICAvKipcbiAgICogdGhlIHByaW1hcnkgbmV0d29yayBpbnRlcmZhY2UgaWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJpbWFyeU5ldHdvcmtJbnRlcmZhY2VJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VJZDogc3RyaW5nO1xuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlQXZhaWxhYmlsaXR5Wm9uZTogc3RyaW5nO1xuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlUHJpdmF0ZURuc05hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZVByaXZhdGVJcDogc3RyaW5nO1xuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlUHVibGljRG5zTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlUHVibGljSXA6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA6IElTZWN1cml0eUdyb3VwO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzOiBJU2VjdXJpdHlHcm91cFtdID0gW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEluc3RhbmNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gaWYgKHByb3BzLmluaXRPcHRpb25zICYmICFwcm9wcy5pbml0KSB7XG4gICAgLy8gICB0aHJvdyBuZXcgRXJyb3IoXCJTZXR0aW5nICdpbml0T3B0aW9ucycgcmVxdWlyZXMgdGhhdCAnaW5pdCcgaXMgYWxzbyBzZXRcIik7XG4gICAgLy8gfVxuXG4gICAgaWYgKHByb3BzLmtleU5hbWUgJiYgcHJvcHMua2V5UGFpcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkNhbm5vdCBzcGVjaWZ5IGJvdGggb2YgJ2tleU5hbWUnIGFuZCAna2V5UGFpcic7IHByZWZlciAna2V5UGFpcidcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gaWYgY3JlZGl0IHNwZWNpZmljYXRpb24gaXMgc2V0LCB0aGVuIHRoZSBpbnN0YW5jZSB0eXBlIG11c3QgYmUgYnVyc3RhYmxlXG4gICAgaWYgKHByb3BzLmNyZWRpdFNwZWNpZmljYXRpb24gJiYgIXByb3BzLmluc3RhbmNlVHlwZS5pc0J1cnN0YWJsZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBjcmVkaXRTcGVjaWZpY2F0aW9uIGlzIHN1cHBvcnRlZCBvbmx5IGZvciBUNGcsIFQzYSwgVDMsIFQyIGluc3RhbmNlIHR5cGUsIGdvdDogJHtwcm9wcy5pbnN0YW5jZVR5cGUudG9TdHJpbmcoKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuc2VjdXJpdHlHcm91cCkge1xuICAgICAgdGhpcy5zZWN1cml0eUdyb3VwID0gcHJvcHMuc2VjdXJpdHlHcm91cDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWN1cml0eUdyb3VwID0gbmV3IFNlY3VyaXR5R3JvdXAodGhpcywgXCJJbnN0YW5jZVNlY3VyaXR5R3JvdXBcIiwge1xuICAgICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgICAgYWxsb3dBbGxPdXRib3VuZDogcHJvcHMuYWxsb3dBbGxPdXRib3VuZCAhPT0gZmFsc2UsXG4gICAgICAgIGFsbG93QWxsSXB2Nk91dGJvdW5kOiBwcm9wcy5hbGxvd0FsbElwdjZPdXRib3VuZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNvbm5lY3Rpb25zID0gbmV3IENvbm5lY3Rpb25zKHtcbiAgICAgIHNlY3VyaXR5R3JvdXBzOiBbdGhpcy5zZWN1cml0eUdyb3VwXSxcbiAgICB9KTtcbiAgICB0aGlzLnNlY3VyaXR5R3JvdXBzLnB1c2godGhpcy5zZWN1cml0eUdyb3VwKTtcbiAgICBUYWdzLm9mKHRoaXMpLmFkZChOQU1FX1RBRywgcHJvcHMuaW5zdGFuY2VOYW1lIHx8IHRoaXMubm9kZS5wYXRoKTtcblxuICAgIGlmIChwcm9wcy5pbnN0YW5jZVByb2ZpbGUgJiYgcHJvcHMucm9sZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiWW91IGNhbm5vdCBwcm92aWRlIGJvdGggaW5zdGFuY2VQcm9maWxlIGFuZCByb2xlXCIpO1xuICAgIH1cblxuICAgIGxldCBpYW1JbnN0YW5jZVByb2ZpbGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAocHJvcHMuaW5zdGFuY2VQcm9maWxlPy5yb2xlKSB7XG4gICAgICB0aGlzLnJvbGUgPSBwcm9wcy5pbnN0YW5jZVByb2ZpbGUucm9sZTtcbiAgICAgIGlhbUluc3RhbmNlUHJvZmlsZSA9IHByb3BzLmluc3RhbmNlUHJvZmlsZS5pbnN0YW5jZVByb2ZpbGVOYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvbGUgPVxuICAgICAgICBwcm9wcy5yb2xlIHx8XG4gICAgICAgIG5ldyBpYW0uUm9sZSh0aGlzLCBcIkluc3RhbmNlUm9sZVwiLCB7XG4gICAgICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJlYzIuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGlhbVByb2ZpbGUgPSBuZXcgdGZJbnN0YW5jZVByb2ZpbGUuSWFtSW5zdGFuY2VQcm9maWxlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIkluc3RhbmNlUHJvZmlsZVwiLFxuICAgICAgICB7XG4gICAgICAgICAgcm9sZTogdGhpcy5yb2xlLnJvbGVOYW1lLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIGlhbUluc3RhbmNlUHJvZmlsZSA9IGlhbVByb2ZpbGUuaWQ7XG4gICAgfVxuXG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMucm9sZTtcblxuICAgIGlmIChwcm9wcy5zc21TZXNzaW9uUGVybWlzc2lvbnMpIHtcbiAgICAgIHRoaXMucm9sZS5hZGRNYW5hZ2VkUG9saWN5KFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBcIkFtYXpvblNTTU1hbmFnZWRJbnN0YW5jZUNvcmVcIixcbiAgICAgICAgICBcIkFtYXpvblNTTU1hbmFnZWRJbnN0YW5jZUNvcmVcIixcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gdXNlIGRlbGF5ZWQgZXZhbHVhdGlvblxuICAgIGNvbnN0IGltYWdlQ29uZmlnID0gcHJvcHMubWFjaGluZUltYWdlLmdldEltYWdlKHRoaXMpO1xuICAgIHRoaXMudXNlckRhdGEgPSBwcm9wcy51c2VyRGF0YSA/PyBpbWFnZUNvbmZpZy51c2VyRGF0YTtcbiAgICBjb25zdCBzZWN1cml0eUdyb3Vwc1Rva2VuID0gTGF6eS5saXN0VmFsdWUoe1xuICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5zZWN1cml0eUdyb3Vwcy5tYXAoKHNnKSA9PiBzZy5zZWN1cml0eUdyb3VwSWQpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgeyBzdWJuZXRzLCBoYXNQdWJsaWMgfSA9IHByb3BzLnZwYy5zZWxlY3RTdWJuZXRzKHByb3BzLnZwY1N1Ym5ldHMpO1xuICAgIGxldCBzdWJuZXQ7XG4gICAgaWYgKHByb3BzLmF2YWlsYWJpbGl0eVpvbmUpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gc3VibmV0cy5maWx0ZXIoXG4gICAgICAgIChzbikgPT4gc24uYXZhaWxhYmlsaXR5Wm9uZSA9PT0gcHJvcHMuYXZhaWxhYmlsaXR5Wm9uZSxcbiAgICAgICk7XG4gICAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHN1Ym5ldCA9IHNlbGVjdGVkWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkRXJyb3IoXG4gICAgICAgICAgYE5lZWQgZXhhY3RseSAxIHN1Ym5ldCB0byBtYXRjaCBBWiAnJHtwcm9wcy5hdmFpbGFiaWxpdHlab25lfScsIGZvdW5kICR7c2VsZWN0ZWQubGVuZ3RofS4gVXNlIGEgZGlmZmVyZW50IGF2YWlsYWJpbGl0eVpvbmUuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHN1Ym5ldHMubGVuZ3RoID4gMCkge1xuICAgICAgICBzdWJuZXQgPSBzdWJuZXRzWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkRXJyb3IoXG4gICAgICAgICAgYERpZCBub3QgZmluZCBhbnkgc3VibmV0cyBtYXRjaGluZyAnJHtKU09OLnN0cmluZ2lmeShwcm9wcy52cGNTdWJuZXRzKX0nLCBwbGVhc2UgdXNlIGEgZGlmZmVyZW50IHNlbGVjdGlvbi5gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXN1Ym5ldCkge1xuICAgICAgLy8gV2UgZ290IGhlcmUgYW5kIHdlIGRvbid0IGhhdmUgYSBzdWJuZXQgYmVjYXVzZSBvZiB2YWxpZGF0aW9uIGVycm9ycy5cbiAgICAgIC8vIEludmVudCBvbmUgb24gdGhlIHNwb3Qgc28gdGhlIGNvZGUgYmVsb3cgZG9lc24ndCBmYWlsLlxuICAgICAgc3VibmV0ID0gU3VibmV0LmZyb21TdWJuZXRBdHRyaWJ1dGVzKHRoaXMsIFwiRHVtbXlTdWJuZXRcIiwge1xuICAgICAgICBzdWJuZXRJZDogXCJzLW5vdGZvdW5kXCIsXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IFwiYXotbm90Zm91bmRcIixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIG5ldHdvcmsgaW50ZXJmYWNlcyBhcnJheSBpcyBzZXQgdG8gY29uZmlndXJlIHRoZSBwcmltYXJ5IG5ldHdvcmsgaW50ZXJmYWNlIGlmIGFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzcyBpcyB0cnVlIG9yIGZhbHNlXG4gICAgbGV0IG5ldHdvcmtJbnRlcmZhY2VzOiBpbnN0YW5jZS5JbnN0YW5jZU5ldHdvcmtJbnRlcmZhY2VbXSB8IHVuZGVmaW5lZCA9XG4gICAgICB1bmRlZmluZWQ7XG4gICAgaWYgKHByb3BzLmFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnByaW1hcnlOZXR3b3JrSW50ZXJmYWNlID0gbmV3IHRmTmV0d29ya0ludGVyZmFjZS5OZXR3b3JrSW50ZXJmYWNlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VcIixcbiAgICAgICAge1xuICAgICAgICAgIHN1Ym5ldElkOiBzdWJuZXQuc3VibmV0SWQsXG4gICAgICAgICAgc2VjdXJpdHlHcm91cHM6IHNlY3VyaXR5R3JvdXBzVG9rZW4sXG4gICAgICAgICAgcHJpdmF0ZUlwczogcHJvcHMucHJpdmF0ZUlwQWRkcmVzc1xuICAgICAgICAgICAgPyBbcHJvcHMucHJpdmF0ZUlwQWRkcmVzc11cbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIC8vIFRPRE86IFVzZSBuZXR3b3JrSW50ZXJmYWNlQXR0YWNobWVudCBpbnN0ZWFkP1xuICAgICAgLy8gcmVmOiBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy9sYXRlc3QvZG9jcy9yZXNvdXJjZXMvaW5zdGFuY2UjbmV0d29yay1pbnRlcmZhY2VzXG4gICAgICBuZXR3b3JrSW50ZXJmYWNlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGRldmljZUluZGV4OiAwLFxuICAgICAgICAgIG5ldHdvcmtJbnRlcmZhY2VJZDogdGhpcy5wcmltYXJ5TmV0d29ya0ludGVyZmFjZS5pZCxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmtleVBhaXIgJiYgIXByb3BzLmtleVBhaXIuX2lzT3NDb21wYXRpYmxlKGltYWdlQ29uZmlnLm9zVHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7cHJvcHMua2V5UGFpci50eXBlfSBrZXlzIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBjaG9zZW4gQU1JYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmVuY2xhdmVFbmFibGVkICYmIHByb3BzLmhpYmVybmF0aW9uRW5hYmxlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIllvdSBjYW4ndCBzZXQgYm90aCBgZW5jbGF2ZUVuYWJsZWRgIGFuZCBgaGliZXJuYXRpb25FbmFibGVkYCB0byB0cnVlIG9uIHRoZSBzYW1lIGluc3RhbmNlXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHByb3BzLmlwdjZBZGRyZXNzQ291bnQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5pcHY2QWRkcmVzc0NvdW50KSAmJlxuICAgICAgKHByb3BzLmlwdjZBZGRyZXNzQ291bnQgPCAwIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKHByb3BzLmlwdjZBZGRyZXNzQ291bnQpKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgXFwnaXB2NkFkZHJlc3NDb3VudFxcJyBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIsIGdvdDogJHtwcm9wcy5pcHY2QWRkcmVzc0NvdW50fWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHByb3BzLmlwdjZBZGRyZXNzQ291bnQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgcHJvcHMuYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzICE9PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJZb3UgY2FuJ3Qgc2V0IGJvdGggJ2lwdjZBZGRyZXNzQ291bnQnIGFuZCAnYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzJ1wiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy9sYXRlc3QvZG9jcy9yZXNvdXJjZXMvaW5zdGFuY2UjdGFnLWd1aWRlXG4gICAgY29uc3Qgdm9sdW1lVGFncyA9IHByb3BzLnByb3BhZ2F0ZVRhZ3NUb1ZvbHVtZU9uQ3JlYXRpb25cbiAgICAgID8geyBbTkFNRV9UQUddOiBwcm9wcy5pbnN0YW5jZU5hbWUgfHwgdGhpcy5ub2RlLnBhdGggfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBpZiBuZXR3b3JrIGludGVyZmFjZXMgYXJyYXkgaXMgY29uZmlndXJlZCB0aGVuIHN1Ym5ldElkLCBzZWN1cml0eUdyb3VwSWRzLFxuICAgIC8vIGFuZCBwcml2YXRlSXBBZGRyZXNzIGFyZSBjb25maWd1cmVkIG9uIHRoZSBuZXR3b3JrIGludGVyZmFjZSBsZXZlbCBhbmRcbiAgICAvLyB0aGVyZSBpcyBubyBuZWVkIHRvIGNvbmZpZ3VyZSB0aGVtIG9uIHRoZSBpbnN0YW5jZSBsZXZlbFxuICAgIHRoaXMuaW5zdGFuY2UgPSBuZXcgaW5zdGFuY2UuSW5zdGFuY2UodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBhbWk6IGltYWdlQ29uZmlnLmltYWdlSWQsXG4gICAgICBrZXlOYW1lOiBwcm9wcy5rZXlQYWlyPy5rZXlQYWlyTmFtZSA/PyBwcm9wcz8ua2V5TmFtZSxcbiAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCksXG4gICAgICBzdWJuZXRJZDogbmV0d29ya0ludGVyZmFjZXMgPyB1bmRlZmluZWQgOiBzdWJuZXQuc3VibmV0SWQsXG4gICAgICBzZWN1cml0eUdyb3VwczogbmV0d29ya0ludGVyZmFjZXMgPyB1bmRlZmluZWQgOiBzZWN1cml0eUdyb3Vwc1Rva2VuLFxuICAgICAgYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzOiBwcm9wcy5hc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3MsXG4gICAgICBuZXR3b3JrSW50ZXJmYWNlOiBuZXR3b3JrSW50ZXJmYWNlcyxcbiAgICAgIGlhbUluc3RhbmNlUHJvZmlsZSxcbiAgICAgIHVzZXJEYXRhQmFzZTY0OiB0aGlzLnVzZXJEYXRhLnJlbmRlcih0aGlzKSxcbiAgICAgIC8vIHVubGlrZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtZWMyL2xpYi9pbnN0YW5jZS50cyNMNjUyXG4gICAgICB1c2VyRGF0YVJlcGxhY2VPbkNoYW5nZTogcHJvcHMudXNlckRhdGFDYXVzZXNSZXBsYWNlbWVudCA/PyB0cnVlLFxuICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogc3VibmV0LmF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICBzb3VyY2VEZXN0Q2hlY2s6IHByb3BzLnNvdXJjZURlc3RDaGVjayxcbiAgICAgIGVic0Jsb2NrRGV2aWNlOlxuICAgICAgICBwcm9wcy5ibG9ja0RldmljZXMgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gaW5zdGFuY2VFYnNCbG9ja0RldmljZU1hcHBpbmdzKHRoaXMsIHByb3BzLmJsb2NrRGV2aWNlcylcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHJvb3RCbG9ja0RldmljZTpcbiAgICAgICAgcHJvcHMuYmxvY2tEZXZpY2VzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IGluc3RhbmNlUm9vdEJsb2NrRGV2aWNlTWFwcGluZyh0aGlzLCBwcm9wcy5ibG9ja0RldmljZXMpXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBlcGhlbWVyYWxCbG9ja0RldmljZTpcbiAgICAgICAgcHJvcHMuYmxvY2tEZXZpY2VzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IGluc3RhbmNlRXBoZW1lcmFsQmxvY2tEZXZpY2VNYXBwaW5ncyhwcm9wcy5ibG9ja0RldmljZXMpXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBwcml2YXRlSXA6IG5ldHdvcmtJbnRlcmZhY2VzID8gdW5kZWZpbmVkIDogcHJvcHMucHJpdmF0ZUlwQWRkcmVzcyxcbiAgICAgIHZvbHVtZVRhZ3MsXG4gICAgICBtb25pdG9yaW5nOiBwcm9wcy5kZXRhaWxlZE1vbml0b3JpbmcsXG4gICAgICBjcmVkaXRTcGVjaWZpY2F0aW9uOiBwcm9wcy5jcmVkaXRTcGVjaWZpY2F0aW9uXG4gICAgICAgID8geyBjcHVDcmVkaXRzOiBwcm9wcy5jcmVkaXRTcGVjaWZpY2F0aW9uIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBlYnNPcHRpbWl6ZWQ6IHByb3BzLmVic09wdGltaXplZCxcbiAgICAgIGRpc2FibGVBcGlUZXJtaW5hdGlvbjogcHJvcHMuZGlzYWJsZUFwaVRlcm1pbmF0aW9uLFxuICAgICAgaW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yOlxuICAgICAgICBwcm9wcy5pbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3IsXG4gICAgICBwbGFjZW1lbnRHcm91cDogcHJvcHMucGxhY2VtZW50R3JvdXA/LnBsYWNlbWVudEdyb3VwTmFtZSxcbiAgICAgIGVuY2xhdmVPcHRpb25zOlxuICAgICAgICBwcm9wcy5lbmNsYXZlRW5hYmxlZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyB7IGVuYWJsZWQ6IHByb3BzLmVuY2xhdmVFbmFibGVkIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGhpYmVybmF0aW9uOiBwcm9wcy5oaWJlcm5hdGlvbkVuYWJsZWQsXG4gICAgICBpcHY2QWRkcmVzc0NvdW50OiBwcm9wcy5pcHY2QWRkcmVzc0NvdW50LFxuICAgIH0pO1xuICAgIHRoaXMuaW5zdGFuY2Uubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMucm9sZSk7XG5cbiAgICAvLyBpZiBhc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3MgaXMgdHJ1ZSwgdGhlbiB0aGVyZSBtdXN0IGJlIGEgZGVwZW5kZW5jeSBvbiBpbnRlcm5ldCBjb25uZWN0aXZpdHlcbiAgICBpZiAoXG4gICAgICBwcm9wcy5hc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgcHJvcHMuYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzXG4gICAgKSB7XG4gICAgICBjb25zdCBpbnRlcm5ldENvbm5lY3RlZCA9IHByb3BzLnZwYy5zZWxlY3RTdWJuZXRzKFxuICAgICAgICBwcm9wcy52cGNTdWJuZXRzLFxuICAgICAgKS5pbnRlcm5ldENvbm5lY3Rpdml0eUVzdGFibGlzaGVkO1xuICAgICAgdGhpcy5pbnN0YW5jZS5ub2RlLmFkZERlcGVuZGVuY3koaW50ZXJuZXRDb25uZWN0ZWQpO1xuICAgIH1cblxuICAgIGlmICghaGFzUHVibGljICYmIHByb3BzLmFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlRvIHNldCAnYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzOiB0cnVlJyB5b3UgbXVzdCBzZWxlY3QgUHVibGljIHN1Ym5ldHMgKHZwY1N1Ym5ldHM6IHsgc3VibmV0VHlwZTogU3VibmV0VHlwZS5QVUJMSUMgfSlcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5vc1R5cGUgPSBpbWFnZUNvbmZpZy5vc1R5cGU7XG4gICAgdGhpcy5ub2RlLmRlZmF1bHRDaGlsZCA9IHRoaXMuaW5zdGFuY2U7XG5cbiAgICB0aGlzLmluc3RhbmNlSWQgPSB0aGlzLmluc3RhbmNlLmlkO1xuICAgIHRoaXMuaW5zdGFuY2VBdmFpbGFiaWxpdHlab25lID0gdGhpcy5pbnN0YW5jZS5hdmFpbGFiaWxpdHlab25lO1xuICAgIHRoaXMuaW5zdGFuY2VQcml2YXRlRG5zTmFtZSA9IHRoaXMuaW5zdGFuY2UucHJpdmF0ZURucztcbiAgICB0aGlzLmluc3RhbmNlUHJpdmF0ZUlwID0gdGhpcy5pbnN0YW5jZS5wcml2YXRlSXA7XG4gICAgdGhpcy5pbnN0YW5jZVB1YmxpY0Ruc05hbWUgPSB0aGlzLmluc3RhbmNlLnB1YmxpY0RucztcbiAgICB0aGlzLmluc3RhbmNlUHVibGljSXAgPSB0aGlzLmluc3RhbmNlLnB1YmxpY0lwO1xuICAgIHRoaXMucHJpbWFyeU5ldHdvcmtJbnRlcmZhY2VJZCA9IHRoaXMucHJpbWFyeU5ldHdvcmtJbnRlcmZhY2VcbiAgICAgID8gdGhpcy5wcmltYXJ5TmV0d29ya0ludGVyZmFjZS5pZFxuICAgICAgOiB0aGlzLmluc3RhbmNlLnByaW1hcnlOZXR3b3JrSW50ZXJmYWNlSWQ7XG5cbiAgICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgQ2ZuIFNpZ25hbHNcbiAgICAvLyAvLyBpZiBib3RoIHRoZSByZXNvdXJjZVNpZ25hbFRpbWVvdXQgYW5kIGluaXRPcHRpb25zLnRpbWVvdXQgYXJlIHNldCxcbiAgICAvLyAvLyB0aGUgdGltZW91dCBpcyBzdW1tZWQgdG9nZXRoZXIuIFRoaXMgbG9naWMgaXMgZG9uZSBpbiBhcHBseUNsb3VkRm9ybWF0aW9uSW5pdC5cbiAgICAvLyAvLyBUaGlzIGlzIGJlY2F1c2UgYXBwbHlVcGRhdGVQb2xpY2llcyBvdmVyd3JpdGVzIHRoZSB0aW1lb3V0IHdoZW4gYm90aCB0aW1lb3V0IGZpZWxkcyBhcmUgc3BlY2lmaWVkLlxuICAgIC8vIHRoaXMuYXBwbHlVcGRhdGVQb2xpY2llcyhwcm9wcyk7XG5cbiAgICAvLyBpZiAocHJvcHMuaW5pdCkge1xuICAgIC8vICAgdGhpcy5hcHBseUNsb3VkRm9ybWF0aW9uSW5pdChwcm9wcy5pbml0LCBwcm9wcy5pbml0T3B0aW9ucyk7XG4gICAgLy8gfVxuXG4gICAgaWYgKHByb3BzLnJlcXVpcmVJbWRzdjIpIHtcbiAgICAgIEFzcGVjdHMub2YodGhpcykuYWRkKG5ldyBJbnN0YW5jZVJlcXVpcmVJbWRzdjJBc3BlY3QoKSk7XG4gICAgICAvLyAsIHtcbiAgICAgIC8vICAgcHJpb3JpdHk6IEFzcGVjdFByaW9yaXR5Lk1VVEFUSU5HLFxuICAgICAgLy8gfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgc2VjdXJpdHkgZ3JvdXAgdG8gdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gc2VjdXJpdHlHcm91cDogVGhlIHNlY3VyaXR5IGdyb3VwIHRvIGFkZFxuICAgKi9cbiAgcHVibGljIGFkZFNlY3VyaXR5R3JvdXAoc2VjdXJpdHlHcm91cDogSVNlY3VyaXR5R3JvdXApOiB2b2lkIHtcbiAgICB0aGlzLnNlY3VyaXR5R3JvdXBzLnB1c2goc2VjdXJpdHlHcm91cCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGNvbW1hbmQgdG8gdGhlIHN0YXJ0dXAgc2NyaXB0IG9mIHRoZSBpbnN0YW5jZS5cbiAgICogVGhlIGNvbW1hbmQgbXVzdCBiZSBpbiB0aGUgc2NyaXB0aW5nIGxhbmd1YWdlIHN1cHBvcnRlZCBieSB0aGUgaW5zdGFuY2UncyBPUyAoaS5lLiBMaW51eC9XaW5kb3dzKS5cbiAgICovXG4gIHB1YmxpYyBhZGRVc2VyRGF0YSguLi5jb21tYW5kczogc3RyaW5nW10pIHtcbiAgICB0aGlzLnVzZXJEYXRhLmFkZENvbW1hbmRzKC4uLmNvbW1hbmRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIHRoZSBJQU0gcm9sZSBhc3N1bWVkIGJ5IHRoZSBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KSB7XG4gICAgdGhpcy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KHN0YXRlbWVudCk7XG4gIH1cblxuICAvLyAvKipcbiAgLy8gICogVXNlIGEgQ2xvdWRGb3JtYXRpb24gSW5pdCBjb25maWd1cmF0aW9uIGF0IGluc3RhbmNlIHN0YXJ0dXBcbiAgLy8gICpcbiAgLy8gICogVGhpcyBkb2VzIHRoZSBmb2xsb3dpbmc6XG4gIC8vICAqXG4gIC8vICAqIC0gQXR0YWNoZXMgdGhlIENsb3VkRm9ybWF0aW9uIEluaXQgbWV0YWRhdGEgdG8gdGhlIEluc3RhbmNlIHJlc291cmNlLlxuICAvLyAgKiAtIEFkZCBjb21tYW5kcyB0byB0aGUgaW5zdGFuY2UgVXNlckRhdGEgdG8gcnVuIGBjZm4taW5pdGAgYW5kIGBjZm4tc2lnbmFsYC5cbiAgLy8gICogLSBVcGRhdGUgdGhlIGluc3RhbmNlJ3MgQ3JlYXRpb25Qb2xpY3kgdG8gd2FpdCBmb3IgdGhlIGBjZm4tc2lnbmFsYCBjb21tYW5kcy5cbiAgLy8gICovXG4gIC8vIHB1YmxpYyBhcHBseUNsb3VkRm9ybWF0aW9uSW5pdChcbiAgLy8gICBpbml0OiBDbG91ZEZvcm1hdGlvbkluaXQsXG4gIC8vICAgb3B0aW9uczogQXBwbHlDbG91ZEZvcm1hdGlvbkluaXRPcHRpb25zID0ge30sXG4gIC8vICkge1xuICAvLyAgIGluaXQuYXR0YWNoKHRoaXMuaW5zdGFuY2UsIHtcbiAgLy8gICAgIHBsYXRmb3JtOiB0aGlzLm9zVHlwZSxcbiAgLy8gICAgIGluc3RhbmNlUm9sZTogdGhpcy5yb2xlLFxuICAvLyAgICAgdXNlckRhdGE6IHRoaXMudXNlckRhdGEsXG4gIC8vICAgICBjb25maWdTZXRzOiBvcHRpb25zLmNvbmZpZ1NldHMsXG4gIC8vICAgICBlbWJlZEZpbmdlcnByaW50OiBvcHRpb25zLmVtYmVkRmluZ2VycHJpbnQsXG4gIC8vICAgICBwcmludExvZzogb3B0aW9ucy5wcmludExvZyxcbiAgLy8gICAgIGlnbm9yZUZhaWx1cmVzOiBvcHRpb25zLmlnbm9yZUZhaWx1cmVzLFxuICAvLyAgICAgaW5jbHVkZVJvbGU6IG9wdGlvbnMuaW5jbHVkZVJvbGUsXG4gIC8vICAgICBpbmNsdWRlVXJsOiBvcHRpb25zLmluY2x1ZGVVcmwsXG4gIC8vICAgfSk7XG4gIC8vICAgdGhpcy53YWl0Rm9yUmVzb3VyY2VTaWduYWwob3B0aW9ucy50aW1lb3V0ID8/IER1cmF0aW9uLm1pbnV0ZXMoNSkpO1xuICAvLyB9XG5cbiAgLy8gLyoqXG4gIC8vICAqIFdhaXQgZm9yIGEgc2luZ2xlIGFkZGl0aW9uYWwgcmVzb3VyY2Ugc2lnbmFsXG4gIC8vICAqXG4gIC8vICAqIEFkZCAxIHRvIHRoZSBjdXJyZW50IFJlc291cmNlU2lnbmFsIENvdW50IGFuZCBhZGQgdGhlIGdpdmVuIHRpbWVvdXQgdG8gdGhlIGN1cnJlbnQgdGltZW91dC5cbiAgLy8gICpcbiAgLy8gICogVXNlIHRoaXMgdG8gcGF1c2UgdGhlIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnQgdG8gd2FpdCBmb3IgdGhlIGluc3RhbmNlc1xuICAvLyAgKiBpbiB0aGUgQXV0b1NjYWxpbmdHcm91cCB0byByZXBvcnQgc3VjY2Vzc2Z1bCBzdGFydHVwIGR1cmluZ1xuICAvLyAgKiBjcmVhdGlvbiBhbmQgdXBkYXRlcy4gVGhlIFVzZXJEYXRhIHNjcmlwdCBuZWVkcyB0byBpbnZva2UgYGNmbi1zaWduYWxgXG4gIC8vICAqIHdpdGggYSBzdWNjZXNzIG9yIGZhaWx1cmUgY29kZSBhZnRlciBpdCBpcyBkb25lIHNldHRpbmcgdXAgdGhlIGluc3RhbmNlLlxuICAvLyAgKi9cbiAgLy8gcHJpdmF0ZSB3YWl0Rm9yUmVzb3VyY2VTaWduYWwodGltZW91dDogRHVyYXRpb24pIHtcbiAgLy8gICBjb25zdCBvbGRSZXNvdXJjZVNpZ25hbCA9XG4gIC8vICAgICB0aGlzLmluc3RhbmNlLmNmbk9wdGlvbnMuY3JlYXRpb25Qb2xpY3k/LnJlc291cmNlU2lnbmFsO1xuICAvLyAgIHRoaXMuaW5zdGFuY2UuY2ZuT3B0aW9ucy5jcmVhdGlvblBvbGljeSA9IHtcbiAgLy8gICAgIC4uLnRoaXMuaW5zdGFuY2UuY2ZuT3B0aW9ucy5jcmVhdGlvblBvbGljeSxcbiAgLy8gICAgIHJlc291cmNlU2lnbmFsOiB7XG4gIC8vICAgICAgIGNvdW50OiAob2xkUmVzb3VyY2VTaWduYWw/LmNvdW50ID8/IDApICsgMSxcbiAgLy8gICAgICAgdGltZW91dDogKG9sZFJlc291cmNlU2lnbmFsPy50aW1lb3V0XG4gIC8vICAgICAgICAgPyBEdXJhdGlvbi5wYXJzZShvbGRSZXNvdXJjZVNpZ25hbD8udGltZW91dCkucGx1cyh0aW1lb3V0KVxuICAvLyAgICAgICAgIDogdGltZW91dFxuICAvLyAgICAgICApLnRvSXNvU3RyaW5nKCksXG4gIC8vICAgICB9LFxuICAvLyAgIH07XG4gIC8vIH1cblxuICAvLyAvKipcbiAgLy8gICogQXBwbHkgQ2xvdWRGb3JtYXRpb24gdXBkYXRlIHBvbGljaWVzIGZvciB0aGUgaW5zdGFuY2VcbiAgLy8gICovXG4gIC8vIHByaXZhdGUgYXBwbHlVcGRhdGVQb2xpY2llcyhwcm9wczogSW5zdGFuY2VQcm9wcykge1xuICAvLyAgIGlmIChwcm9wcy5yZXNvdXJjZVNpZ25hbFRpbWVvdXQgIT09IHVuZGVmaW5lZCkge1xuICAvLyAgICAgdGhpcy5pbnN0YW5jZS5jZm5PcHRpb25zLmNyZWF0aW9uUG9saWN5ID0ge1xuICAvLyAgICAgICAuLi50aGlzLmluc3RhbmNlLmNmbk9wdGlvbnMuY3JlYXRpb25Qb2xpY3ksXG4gIC8vICAgICAgIHJlc291cmNlU2lnbmFsOiB7XG4gIC8vICAgICAgICAgLi4udGhpcy5pbnN0YW5jZS5jZm5PcHRpb25zLmNyZWF0aW9uUG9saWN5Py5yZXNvdXJjZVNpZ25hbCxcbiAgLy8gICAgICAgICB0aW1lb3V0OlxuICAvLyAgICAgICAgICAgcHJvcHMucmVzb3VyY2VTaWduYWxUaW1lb3V0ICYmXG4gIC8vICAgICAgICAgICBwcm9wcy5yZXNvdXJjZVNpZ25hbFRpbWVvdXQudG9Jc29TdHJpbmcoKSxcbiAgLy8gICAgICAgfSxcbiAgLy8gICAgIH07XG4gIC8vICAgfVxuICAvLyB9XG59XG5cbi8vIC8qKlxuLy8gICogT3B0aW9ucyBmb3IgYXBwbHlpbmcgQ2xvdWRGb3JtYXRpb24gaW5pdCB0byBhbiBpbnN0YW5jZSBvciBpbnN0YW5jZSBncm91cFxuLy8gICovXG4vLyBleHBvcnQgaW50ZXJmYWNlIEFwcGx5Q2xvdWRGb3JtYXRpb25Jbml0T3B0aW9ucyB7XG4vLyAgIC8qKlxuLy8gICAgKiBDb25maWdTZXQgdG8gYWN0aXZhdGVcbi8vICAgICpcbi8vICAgICogQGRlZmF1bHQgWydkZWZhdWx0J11cbi8vICAgICovXG4vLyAgIHJlYWRvbmx5IGNvbmZpZ1NldHM/OiBzdHJpbmdbXTtcblxuLy8gICAvKipcbi8vICAgICogVGltZW91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJhdGlvbiB0byBiZSBhcHBsaWVkXG4vLyAgICAqXG4vLyAgICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoNSlcbi8vICAgICovXG4vLyAgIHJlYWRvbmx5IHRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuLy8gICAvKipcbi8vICAgICogRm9yY2UgaW5zdGFuY2UgcmVwbGFjZW1lbnQgYnkgZW1iZWRkaW5nIGEgY29uZmlnIGZpbmdlcnByaW50XG4vLyAgICAqXG4vLyAgICAqIElmIGB0cnVlYCAodGhlIGRlZmF1bHQpLCBhIGhhc2ggb2YgdGhlIGNvbmZpZyB3aWxsIGJlIGVtYmVkZGVkIGludG8gdGhlXG4vLyAgICAqIFVzZXJEYXRhLCBzbyB0aGF0IGlmIHRoZSBjb25maWcgY2hhbmdlcywgdGhlIFVzZXJEYXRhIGNoYW5nZXMuXG4vLyAgICAqXG4vLyAgICAqIC0gSWYgdGhlIEVDMiBpbnN0YW5jZSBpcyBpbnN0YW5jZS1zdG9yZSBiYWNrZWQgb3Jcbi8vICAgICogICBgdXNlckRhdGFDYXVzZXNSZXBsYWNlbWVudGAgaXMgc2V0LCB0aGlzIHdpbGwgY2F1c2UgdGhlIGluc3RhbmNlIHRvIGJlXG4vLyAgICAqICAgcmVwbGFjZWQgYW5kIHRoZSBuZXcgY29uZmlndXJhdGlvbiB0byBiZSBhcHBsaWVkLlxuLy8gICAgKiAtIElmIHRoZSBpbnN0YW5jZSBpcyBFQlMtYmFja2VkIGFuZCBgdXNlckRhdGFDYXVzZXNSZXBsYWNlbWVudGAgaXMgbm90XG4vLyAgICAqICAgc2V0LCB0aGUgY2hhbmdlIG9mIFVzZXJEYXRhIHdpbGwgbWFrZSB0aGUgaW5zdGFuY2UgcmVzdGFydCBidXQgbm90IGJlXG4vLyAgICAqICAgcmVwbGFjZWQsIGFuZCB0aGUgY29uZmlndXJhdGlvbiB3aWxsIG5vdCBiZSBhcHBsaWVkIGF1dG9tYXRpY2FsbHkuXG4vLyAgICAqXG4vLyAgICAqIElmIGBmYWxzZWAsIG5vIGhhc2ggd2lsbCBiZSBlbWJlZGRlZCwgYW5kIGlmIHRoZSBDbG91ZEZvcm1hdGlvbiBJbml0XG4vLyAgICAqIGNvbmZpZyBjaGFuZ2VzIG5vdGhpbmcgd2lsbCBoYXBwZW4gdG8gdGhlIHJ1bm5pbmcgaW5zdGFuY2UuIElmIGFcbi8vICAgICogY29uZmlnIHVwZGF0ZSBpbnRyb2R1Y2VzIGVycm9ycywgeW91IHdpbGwgbm90IG5vdGljZSB1bnRpbCBhZnRlciB0aGVcbi8vICAgICogQ2xvdWRGb3JtYXRpb24gZGVwbG95bWVudCBzdWNjZXNzZnVsbHkgZmluaXNoZXMgYW5kIHRoZSBuZXh0IGluc3RhbmNlXG4vLyAgICAqIGZhaWxzIHRvIGxhdW5jaC5cbi8vICAgICpcbi8vICAgICogQGRlZmF1bHQgdHJ1ZVxuLy8gICAgKi9cbi8vICAgcmVhZG9ubHkgZW1iZWRGaW5nZXJwcmludD86IGJvb2xlYW47XG5cbi8vICAgLyoqXG4vLyAgICAqIFByaW50IHRoZSByZXN1bHRzIG9mIHJ1bm5pbmcgY2ZuLWluaXQgdG8gdGhlIEluc3RhbmNlIFN5c3RlbSBMb2dcbi8vICAgICpcbi8vICAgICogQnkgZGVmYXVsdCwgdGhlIG91dHB1dCBvZiBydW5uaW5nIGNmbi1pbml0IGlzIHdyaXR0ZW4gdG8gYSBsb2cgZmlsZVxuLy8gICAgKiBvbiB0aGUgaW5zdGFuY2UuIFNldCB0aGlzIHRvIGB0cnVlYCB0byBwcmludCBpdCB0byB0aGUgU3lzdGVtIExvZ1xuLy8gICAgKiAodmlzaWJsZSBmcm9tIHRoZSBFQzIgQ29uc29sZSksIGBmYWxzZWAgdG8gbm90IHByaW50IGl0LlxuLy8gICAgKlxuLy8gICAgKiAoQmUgYXdhcmUgdGhhdCB0aGUgc3lzdGVtIGxvZyBpcyByZWZyZXNoZWQgYXQgY2VydGFpbiBwb2ludHMgaW5cbi8vICAgICogdGltZSBvZiB0aGUgaW5zdGFuY2UgbGlmZSBjeWNsZSwgYW5kIHN1Y2Nlc3NmdWwgZXhlY3V0aW9uIG1heVxuLy8gICAgKiBub3QgYWx3YXlzIHNob3cgdXApLlxuLy8gICAgKlxuLy8gICAgKiBAZGVmYXVsdCB0cnVlXG4vLyAgICAqL1xuLy8gICByZWFkb25seSBwcmludExvZz86IGJvb2xlYW47XG5cbi8vICAgLyoqXG4vLyAgICAqIERvbid0IGZhaWwgdGhlIGluc3RhbmNlIGNyZWF0aW9uIHdoZW4gY2ZuLWluaXQgZmFpbHNcbi8vICAgICpcbi8vICAgICogWW91IGNhbiB1c2UgdGhpcyB0byBwcmV2ZW50IENsb3VkRm9ybWF0aW9uIGZyb20gcm9sbGluZyBiYWNrIHdoZW5cbi8vICAgICogaW5zdGFuY2VzIGZhaWwgdG8gc3RhcnQgdXAsIHRvIGhlbHAgaW4gZGVidWdnaW5nLlxuLy8gICAgKlxuLy8gICAgKiBAZGVmYXVsdCBmYWxzZVxuLy8gICAgKi9cbi8vICAgcmVhZG9ubHkgaWdub3JlRmFpbHVyZXM/OiBib29sZWFuO1xuXG4vLyAgIC8qKlxuLy8gICAgKiBJbmNsdWRlIC0tdXJsIGFyZ3VtZW50IHdoZW4gcnVubmluZyBjZm4taW5pdCBhbmQgY2ZuLXNpZ25hbCBjb21tYW5kc1xuLy8gICAgKlxuLy8gICAgKiBUaGlzIHdpbGwgYmUgdGhlIGNsb3VkZm9ybWF0aW9uIGVuZHBvaW50IGluIHRoZSBkZXBsb3llZCByZWdpb25cbi8vICAgICogZS5nLiBodHRwczovL2Nsb3VkZm9ybWF0aW9uLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXG4vLyAgICAqXG4vLyAgICAqIEBkZWZhdWx0IGZhbHNlXG4vLyAgICAqL1xuLy8gICByZWFkb25seSBpbmNsdWRlVXJsPzogYm9vbGVhbjtcblxuLy8gICAvKipcbi8vICAgICogSW5jbHVkZSAtLXJvbGUgYXJndW1lbnQgd2hlbiBydW5uaW5nIGNmbi1pbml0IGFuZCBjZm4tc2lnbmFsIGNvbW1hbmRzXG4vLyAgICAqXG4vLyAgICAqIFRoaXMgd2lsbCBiZSB0aGUgSUFNIGluc3RhbmNlIHByb2ZpbGUgYXR0YWNoZWQgdG8gdGhlIEVDMiBpbnN0YW5jZVxuLy8gICAgKlxuLy8gICAgKiBAZGVmYXVsdCBmYWxzZVxuLy8gICAgKi9cbi8vICAgcmVhZG9ubHkgaW5jbHVkZVJvbGU/OiBib29sZWFuO1xuLy8gfVxuIl19
|
|
@@ -41,7 +41,7 @@ class IpAddresses {
|
|
|
41
41
|
}
|
|
42
42
|
exports.IpAddresses = IpAddresses;
|
|
43
43
|
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
-
IpAddresses[_a] = { fqn: "terraconstructs.aws.compute.IpAddresses", version: "0.0.
|
|
44
|
+
IpAddresses[_a] = { fqn: "terraconstructs.aws.compute.IpAddresses", version: "0.0.13" };
|
|
45
45
|
/**
|
|
46
46
|
* Implements integration with Amazon VPC IP Address Manager (IPAM).
|
|
47
47
|
*
|
|
@@ -180,7 +180,7 @@ class Ipv6Addresses {
|
|
|
180
180
|
}
|
|
181
181
|
exports.Ipv6Addresses = Ipv6Addresses;
|
|
182
182
|
_b = JSII_RTTI_SYMBOL_1;
|
|
183
|
-
Ipv6Addresses[_b] = { fqn: "terraconstructs.aws.compute.Ipv6Addresses", version: "0.0.
|
|
183
|
+
Ipv6Addresses[_b] = { fqn: "terraconstructs.aws.compute.Ipv6Addresses", version: "0.0.13" };
|
|
184
184
|
/**
|
|
185
185
|
* Implements integration with Amazon provided IPv6 CIDRs.
|
|
186
186
|
*
|
package/lib/aws/compute/ipam.js
CHANGED
|
@@ -279,7 +279,7 @@ class Ipam extends aws_construct_1.AwsConstructBase {
|
|
|
279
279
|
}
|
|
280
280
|
exports.Ipam = Ipam;
|
|
281
281
|
_a = JSII_RTTI_SYMBOL_1;
|
|
282
|
-
Ipam[_a] = { fqn: "terraconstructs.aws.compute.alpha.Ipam", version: "0.0.
|
|
282
|
+
Ipam[_a] = { fqn: "terraconstructs.aws.compute.alpha.Ipam", version: "0.0.13" };
|
|
283
283
|
/**
|
|
284
284
|
* Function to create IpamPool under scope
|
|
285
285
|
* @internal
|
|
@@ -190,5 +190,5 @@ class KeyPair extends aws_construct_1.AwsConstructBase {
|
|
|
190
190
|
}
|
|
191
191
|
exports.KeyPair = KeyPair;
|
|
192
192
|
_a = JSII_RTTI_SYMBOL_1;
|
|
193
|
-
KeyPair[_a] = { fqn: "terraconstructs.aws.compute.KeyPair", version: "0.0.
|
|
193
|
+
KeyPair[_a] = { fqn: "terraconstructs.aws.compute.KeyPair", version: "0.0.13" };
|
|
194
194
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LXBhaXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUva2V5LXBhaXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0RkFBNEY7QUFFNUYsc0RBQTJEO0FBQzNELHNEQUFpRDtBQUNqRCxpQ0FBMkI7QUFFM0IsbURBQXNEO0FBQ3RELG9EQUkwQjtBQUMxQixvREFJOEI7QUFFOUIsTUFBTTtBQUNOLGdDQUFnQztBQUNoQyxNQUFNO0FBQ04sOEJBQThCO0FBQzlCLFFBQVE7QUFDUiw4Q0FBOEM7QUFDOUMsUUFBUTtBQUNSLGlCQUFpQjtBQUVqQixRQUFRO0FBQ1IsbUJBQW1CO0FBQ25CLFFBQVE7QUFDUixpQkFBaUI7QUFDakIsSUFBSTtBQUVKOztHQUVHO0FBQ0gsSUFBWSxXQVlYO0FBWkQsV0FBWSxXQUFXO0lBQ3JCOztPQUVHO0lBQ0gsMEJBQVcsQ0FBQTtJQUVYOzs7O09BSUc7SUFDSCxrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBWlcsV0FBVywyQkFBWCxXQUFXLFFBWXRCO0FBc0hEOzs7O0dBSUc7QUFDSCxNQUFhLE9BQVEsU0FBUSxnQ0FBZ0I7SUFDM0M7O09BRUc7SUFDSSxNQUFNLENBQUMsZUFBZSxDQUMzQixLQUFnQixFQUNoQixFQUFVLEVBQ1YsV0FBbUI7UUFFbkIsT0FBTyxPQUFPLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUNqQyxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBd0I7UUFFeEIsTUFBTSxNQUFPLFNBQVEsZ0NBQWdCO1lBR25DLElBQVcsY0FBYztnQkFDdkIsT0FBTztvQkFDTCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7b0JBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtpQkFDaEIsQ0FBQztZ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Q0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGVBQWUsQ0FBQyxNQUEyQjtRQUNoRCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixLQUFLLFdBQVcsQ0FBQyxPQUFPO2dCQUN0QixPQUFPLE1BQU0sS0FBSyxtQ0FBbUIsQ0FBQyxPQUFPLENBQUM7WUFDaEQsS0FBSyxXQUFXLENBQUMsR0FBRztnQkFDbEIsT0FBTyxJQUFJLENBQUM7WUFDZDtnQkFDRSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQzs7QUFwTkgsMEJBcU5DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVjMi9saWIva2V5LXBhaXIudHNcblxuaW1wb3J0IHsga2V5UGFpciBhcyB0ZktleVBhaXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgcHJpdmF0ZUtleSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItdGxzXCI7XG5pbXBvcnQgeyBGbiB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IE9wZXJhdGluZ1N5c3RlbVR5cGUgfSBmcm9tIFwiLi9tYWNoaW5lLWltYWdlXCI7XG5pbXBvcnQge1xuICBBd3NDb25zdHJ1Y3RCYXNlLFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbiAgSUF3c0NvbnN0cnVjdCxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7XG4gIFN0cmluZ1BhcmFtZXRlcixcbiAgSVN0cmluZ1BhcmFtZXRlcixcbiAgUGFyYW1ldGVyVHlwZSxcbn0gZnJvbSBcIi4uL3N0b3JhZ2UvcGFyYW1ldGVyXCI7XG5cbi8vIC8qKlxuLy8gICogVGhlIGZvcm1hdCBvZiB0aGUgS2V5IFBhaXJcbi8vICAqL1xuLy8gZXhwb3J0IGVudW0gS2V5UGFpckZvcm1hdCB7XG4vLyAgIC8qKlxuLy8gICAgKiBBIFBQSyBmaWxlLCB0eXBpY2FsbHkgdXNlZCB3aXRoIFB1VFRZLlxuLy8gICAgKi9cbi8vICAgUFBLID0gXCJwcGtcIixcblxuLy8gICAvKipcbi8vICAgICogQSBQRU0gZmlsZS5cbi8vICAgICovXG4vLyAgIFBFTSA9IFwicGVtXCIsXG4vLyB9XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgdGhlIGtleSBwYWlyLlxuICovXG5leHBvcnQgZW51bSBLZXlQYWlyVHlwZSB7XG4gIC8qKlxuICAgKiBBbiBSU0Ega2V5LlxuICAgKi9cbiAgUlNBID0gXCJyc2FcIixcblxuICAvKipcbiAgICogQW4gRUQyNTUxOSBrZXkuXG4gICAqXG4gICAqIE5vdGUgdGhhdCBFRDI1NTE5IGtleXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIFdpbmRvd3MgaW5zdGFuY2VzLlxuICAgKi9cbiAgRUQyNTUxOSA9IFwiZWQyNTUxOVwiLFxufVxuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIG9mIGEgS2V5IFBhaXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLZXlQYWlyUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBuYW1lIGZvciB0aGUga2V5IHBhaXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IEEgZ2VuZXJhdGVkIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGtleVBhaXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgdW5pcXVlIG5hbWUgYmVnaW5uaW5nIHdpdGggdGhlIHNwZWNpZmllZCBwcmVmaXguXG4gICAqXG4gICAqIENvbmZsaWN0cyB3aXRoIGBrZXlQYWlyTmFtZWAuIElmIG5laXRoZXIgYGtleVBhaXJOYW1lYCBub3IgYGtleVBhaXJOYW1lUHJlZml4YCBpcyBwcm92aWRlZCxcbiAgICogVGVycmFDb25zdHJ1Y3RzIHdpbGwgY3JlYXRlIGEgdW5pcXVlIGtleSBuYW1lIHVzaW5nIHRoZSBgZ3JpZFVVSURgIGFzIHByZWZpeC5cbiAgICpcbiAgICogQGRlZmF1bHQgQSBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkga2V5UGFpck5hbWVQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLy8gLyoqXG4gIC8vICAqIFRoZSBmb3JtYXQgb2YgdGhlIGtleSBwYWlyLlxuICAvLyAgKlxuICAvLyAgKiBAZGVmYXVsdCBQRU1cbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IGZvcm1hdD86IEtleVBhaXJGb3JtYXQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGtleSBwYWlyLlxuICAgKlxuICAgKiBAZGVmYXVsdCBSU0EgKGlnbm9yZWQgaWYga2V5TWF0ZXJpYWwgaXMgcHJvdmlkZWQpXG4gICAqL1xuICByZWFkb25seSB0eXBlPzogS2V5UGFpclR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBwdWJsaWMga2V5IG1hdGVyaWFsLlxuICAgKlxuICAgKiBJZiB0aGlzIGlzIHByb3ZpZGVkIHRoZSBrZXkgaXMgY29uc2lkZXJlZCBcImltcG9ydGVkXCIuIEZvciBpbXBvcnRlZFxuICAgKiBrZXlzLCBpdCBpcyBhc3N1bWVkIHRoYXQgeW91IGFscmVhZHkgaGF2ZSB0aGUgcHJpdmF0ZSBrZXkgbWF0ZXJpYWxcbiAgICogc28gdGhlIHByaXZhdGUga2V5IG1hdGVyaWFsIHdpbGwgbm90IGJlIHJldHVybmVkIG9yIHN0b3JlZCBpblxuICAgKiBBV1MgU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZS5cbiAgICpcbiAgICogVGhlIHByaXZhdGUga2V5IGdlbmVyYXRlZCBieSB0aGlzIHJlc291cmNlIHdpbGwgYmUgc3RvcmVkIHVuZW5jcnlwdGVkXG4gICAqIGluIHlvdXIgVGVycmFmb3JtIHN0YXRlIGZpbGUuXG4gICAqXG4gICAqIE9taXR0aW5nIHRoZSBwdWJsaWNLZXlNYXRlcmlhbCBmb3IgcHJvZHVjdGlvbiBkZXBsb3ltZW50cyBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAqIEluc3RlYWQsIGdlbmVyYXRlIGEgcHJpdmF0ZSBrZXkgZmlsZSBvdXRzaWRlIG9mIFRlcnJhZm9ybSBhbmQgZGlzdHJpYnV0ZSBpdFxuICAgKiBzZWN1cmVseSB0byB0aGUgc3lzdGVtIHdoZXJlIFRlcnJhZm9ybSB3aWxsIGJlIHJ1bi5cbiAgICpcbiAgICogQGRlZmF1bHQgYSBwdWJsaWMgYW5kIHByaXZhdGUga2V5IHdpbGwgYmUgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNLZXlNYXRlcmlhbD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPdXRwdXRzIHdoaWNoIG1heSBiZSByZWdpc3RlcmVkIGZvciBvdXRwdXQgdmlhIHRoZSBHcmlkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleVBhaXJPdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgbmFtZSBvZiB0aGUga2V5IHBhaXIuXG4gICAqL1xuICByZWFkb25seSBrZXlQYWlyTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUga2V5IHBhaXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIHR5cGUgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSB0eXBlPzogS2V5UGFpclR5cGU7XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBvZiBhIEtleSBQYWlyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleVBhaXJBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgbmFtZSBvZiB0aGUga2V5IHBhaXIuXG4gICAqL1xuICByZWFkb25seSBrZXlQYWlyTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUga2V5IHBhaXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vIHR5cGUgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSB0eXBlPzogS2V5UGFpclR5cGU7XG59XG5cbi8qKlxuICogQW4gRUMyIEtleSBQYWlyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElLZXlQYWlyIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKiBTdHJvbmdseSB0eXBlZCBvdXRwdXRzICovXG4gIHJlYWRvbmx5IGtleVBhaXJPdXRwdXRzOiBLZXlQYWlyT3V0cHV0cztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGtleSBwYWlyLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBrZXlQYWlyTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUga2V5IHBhaXIuXG4gICAqL1xuICByZWFkb25seSB0eXBlPzogS2V5UGFpclR5cGU7XG5cbiAgLyoqXG4gICAqIFVzZWQgaW50ZXJuYWxseSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUga2V5IHBhaXIgaXMgY29tcGF0aWJsZSB3aXRoIGFuIE9TIHR5cGUuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX2lzT3NDb21wYXRpYmxlKG9zVHlwZTogT3BlcmF0aW5nU3lzdGVtVHlwZSk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQW4gRUMyIEtleSBQYWlyLlxuICpcbiAqIEByZXNvdXJjZSBBV1M6OkVDMjo6S2V5UGFpclxuICovXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJS2V5UGFpciB7XG4gIC8qKlxuICAgKiBJbXBvcnRzIGEga2V5IHBhaXIgYmFzZWQgb24gdGhlIG5hbWUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21LZXlQYWlyTmFtZShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAga2V5UGFpck5hbWU6IHN0cmluZyxcbiAgKTogSUtleVBhaXIge1xuICAgIHJldHVybiBLZXlQYWlyLmZyb21LZXlQYWlyQXR0cmlidXRlcyhzY29wZSwgaWQsIHsga2V5UGFpck5hbWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyBhIGtleSBwYWlyIHdpdGggYSBuYW1lIGFuZCBvcHRpb25hbCB0eXBlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tS2V5UGFpckF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBLZXlQYWlyQXR0cmlidXRlcyxcbiAgKTogSUtleVBhaXIge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJS2V5UGFpciB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkga2V5UGFpck5hbWU6IHN0cmluZztcbiAgICAgIHB1YmxpYyByZWFkb25seSB0eXBlPzogS2V5UGFpclR5cGU7XG4gICAgICBwdWJsaWMgZ2V0IGtleVBhaXJPdXRwdXRzKCk6IEtleVBhaXJPdXRwdXRzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBrZXlQYWlyTmFtZTogdGhpcy5rZXlQYWlyTmFtZSxcbiAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmtleVBhaXJPdXRwdXRzO1xuICAgICAgfVxuXG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAgICAgdGhpcy5rZXlQYWlyTmFtZSA9IGF0dHJzLmtleVBhaXJOYW1lO1xuICAgICAgICB0aGlzLnR5cGUgPSBhdHRycy50eXBlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFVzZWQgaW50ZXJuYWxseSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUga2V5IHBhaXIgaXMgY29tcGF0aWJsZSB3aXRoIGFuIE9TIHR5cGUuXG4gICAgICAgKlxuICAgICAgICogQGludGVybmFsXG4gICAgICAgKi9cbiAgICAgIHB1YmxpYyBfaXNPc0NvbXBhdGlibGUob3NUeXBlOiBPcGVyYXRpbmdTeXN0ZW1UeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgY2FzZSBLZXlQYWlyVHlwZS5FRDI1NTE5OlxuICAgICAgICAgICAgcmV0dXJuIG9zVHlwZSAhPT0gT3BlcmF0aW5nU3lzdGVtVHlwZS5XSU5ET1dTO1xuICAgICAgICAgIGNhc2UgS2V5UGFpclR5cGUuUlNBOlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGtleVBhaXJPdXRwdXRzKCk6IEtleVBhaXJPdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5UGFpck5hbWU6IHRoaXMua2V5UGFpck5hbWUsXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMua2V5UGFpck91dHB1dHM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBuYW1lIG9mIHRoZSBrZXkgcGFpci5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGtleVBhaXJOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmaW5nZXJwcmludCBvZiB0aGUga2V5IHBhaXIuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBrZXlQYWlyRmluZ2VycHJpbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBJRCBvZiB0aGUga2V5IHBhaXIuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBrZXlQYWlySWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIGtleSBwYWlyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHR5cGU/OiBLZXlQYWlyVHlwZTtcblxuICAvLyBub3Qgc3VwcG9ydGVkIGluIFRlcnJhZm9ybVxuICAvLyAvKipcbiAgLy8gICogVGhlIGZvcm1hdCBvZiB0aGUga2V5IHBhaXIuXG4gIC8vICAqL1xuICAvLyBwdWJsaWMgcmVhZG9ubHkgZm9ybWF0OiBLZXlQYWlyRm9ybWF0O1xuXG4gIHByaXZhdGUgX3ByaXZhdGVLZXk/OiBwcml2YXRlS2V5LlByaXZhdGVLZXk7XG4gIHByaXZhdGUgX3ByaXZhdGVLZXlTc20/OiBJU3RyaW5nUGFyYW1ldGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc0ltcG9ydDogYm9vbGVhbjtcblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IHRmS2V5UGFpci5LZXlQYWlyO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogS2V5UGFpclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBpZiAocHJvcHM/LmtleVBhaXJOYW1lICYmIHByb3BzPy5rZXlQYWlyTmFtZVByZWZpeCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkNhbm5vdCBzcGVjaWZ5IGJvdGggJ2tleVBhaXJOYW1lJyBhbmQgJ2tleVBhaXJOYW1lUHJlZml4J1wiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXlQYWlyTmFtZVByZWZpeCA9XG4gICAgICBwcm9wcz8ua2V5UGFpck5hbWVQcmVmaXggfHxcbiAgICAgIHRoaXMuc3RhY2sudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHtcbiAgICAgICAgcHJlZml4OiB0aGlzLmdyaWRVVUlELFxuICAgICAgICBtYXhMZW5ndGg6IDI1NSxcbiAgICAgIH0pO1xuXG4gICAgLy8gTGF6eS5zdHJpbmdWYWx1ZSh7XG4gICAgLy8gICBwcm9kdWNlOiAoKSA9PiBBd3NTdGFjay51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDI1NSB9KSxcbiAgICAvLyB9KTtcblxuICAgIGlmIChwcm9wcz8ucHVibGljS2V5TWF0ZXJpYWwgJiYgcHJvcHM/LnR5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBzcGVjaWZ5ICd0eXBlJyBmb3Iga2V5cyB3aXRoIGltcG9ydGVkIG1hdGVyaWFsXCIpO1xuICAgIH1cblxuICAgIHRoaXMuX2lzSW1wb3J0ID0gISFwcm9wcz8ucHVibGljS2V5TWF0ZXJpYWw7XG5cbiAgICBjb25zdCBrZXlUeXBlID0gcHJvcHM/LnR5cGUgPz8gS2V5UGFpclR5cGUuUlNBO1xuICAgIGxldCBwdWJsaWNLZXkgPSBwcm9wcz8ucHVibGljS2V5TWF0ZXJpYWw7XG4gICAgaWYgKCFwdWJsaWNLZXkpIHtcbiAgICAgIGxldCBhbGdvcml0aG06IFwiUlNBXCIgfCBcIkVDRFNBXCIgfCBcIkVEMjU1MTlcIjtcbiAgICAgIHN3aXRjaCAoa2V5VHlwZSkge1xuICAgICAgICBjYXNlIEtleVBhaXJUeXBlLkVEMjU1MTk6XG4gICAgICAgICAgYWxnb3JpdGhtID0gXCJFRDI1NTE5XCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgS2V5UGFpclR5cGUuUlNBOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGFsZ29yaXRobSA9IFwiUlNBXCI7XG4gICAgICB9XG4gICAgICB0aGlzLl9wcml2YXRlS2V5ID0gbmV3IHByaXZhdGVLZXkuUHJpdmF0ZUtleSh0aGlzLCBcIlByaXZhdGVLZXlcIiwge1xuICAgICAgICBhbGdvcml0aG0sXG4gICAgICB9KTtcbiAgICAgIHB1YmxpY0tleSA9IEZuLnRyaW1zcGFjZSh0aGlzLl9wcml2YXRlS2V5LnB1YmxpY0tleU9wZW5zc2gpO1xuICAgIH1cblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgdGZLZXlQYWlyLktleVBhaXIodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBrZXlOYW1lOiBwcm9wcz8ua2V5UGFpck5hbWUsXG4gICAgICBrZXlOYW1lUHJlZml4OiBrZXlQYWlyTmFtZVByZWZpeCxcbiAgICAgIC8vIGtleUZvcm1hdDogcHJvcHM/LmZvcm1hdCA/PyBLZXlQYWlyRm9ybWF0LlBFTSxcbiAgICAgIHB1YmxpY0tleSxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLl9wcml2YXRlS2V5KSB7XG4gICAgICAvLyBpZiBwcml2YXRlS2V5IHdhcyBnZW5lcmF0ZWQsIG1pbWljIENGTiBiZWhhdmlvciB3aXRoIFNTTVxuICAgICAgdGhpcy5fcHJpdmF0ZUtleVNzbSA9IG5ldyBTdHJpbmdQYXJhbWV0ZXIodGhpcywgXCJQcml2YXRlS2V5UGFyYW1ldGVyXCIsIHtcbiAgICAgICAgcGFyYW1ldGVyTmFtZTogYC9lYzIva2V5cGFpci8ke3RoaXMucmVzb3VyY2UuaWR9YCxcbiAgICAgICAgZGVzY3JpcHRpb246IGBQcml2YXRlIGtleSBmb3IgJHt0aGlzLnJlc291cmNlLmtleU5hbWV9YCxcbiAgICAgICAgdHlwZTogUGFyYW1ldGVyVHlwZS5TRUNVUkVfU1RSSU5HLFxuICAgICAgICBzZW5zaXRpdmVTdHJpbmdWYWx1ZTogdGhpcy5fcHJpdmF0ZUtleS5wcml2YXRlS2V5UGVtLFxuICAgICAgICBzaW1wbGVOYW1lOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMua2V5UGFpck5hbWUgPSB0aGlzLnJlc291cmNlLmtleU5hbWU7XG4gICAgdGhpcy5rZXlQYWlyRmluZ2VycHJpbnQgPSB0aGlzLnJlc291cmNlLmZpbmdlcnByaW50O1xuICAgIHRoaXMua2V5UGFpcklkID0gdGhpcy5yZXNvdXJjZS5pZDtcbiAgICB0aGlzLnR5cGUgPSBrZXlUeXBlO1xuICAgIC8vIHRoaXMuZm9ybWF0ID0ga2V5Rm9ybWF0O1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGtleSBtYXRlcmlhbCB3YXMgaW1wb3J0ZWQuXG4gICAqXG4gICAqIEtleXMgd2l0aCBpbXBvcnRlZCBtYXRlcmlhbCBkbyBub3QgaGF2ZSB0aGVpciBwcml2YXRlIGtleSBtYXRlcmlhbCBzdG9yZWRcbiAgICogb3IgcmV0dXJuZWQgYXV0b21hdGljYWxseS5cbiAgICovXG4gIHB1YmxpYyBnZXQgaGFzSW1wb3J0ZWRNYXRlcmlhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNJbXBvcnQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIFN5c3RlbXMgTWFuYWdlciBQYXJhbWV0ZXIgU3RvcmUgcGFyYW1ldGVyIHdpdGggdGhlIHBhaXIncyBwcml2YXRlIGtleSBtYXRlcmlhbC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcHJpdmF0ZUtleSgpOiBJU3RyaW5nUGFyYW1ldGVyIHtcbiAgICBpZiAodGhpcy5faXNJbXBvcnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJBbiBTU00gcGFyYW1ldGVyIHdpdGggcHJpdmF0ZSBrZXkgbWF0ZXJpYWwgaXMgbm90IGNyZWF0ZWQgZm9yIGltcG9ydGVkIGtleXNcIixcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIGVsc2UsIHRoaXMgaXMgZ3VhcmFudGVlZCB0byBiZSBzZXRcbiAgICByZXR1cm4gdGhpcy5fcHJpdmF0ZUtleVNzbSE7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBpbnRlcm5hbGx5IHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBrZXkgcGFpciBpcyBjb21wYXRpYmxlIHdpdGggYW4gT1MgdHlwZS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX2lzT3NDb21wYXRpYmxlKG9zVHlwZTogT3BlcmF0aW5nU3lzdGVtVHlwZSk6IGJvb2xlYW4ge1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIEtleVBhaXJUeXBlLkVEMjU1MTk6XG4gICAgICAgIHJldHVybiBvc1R5cGUgIT09IE9wZXJhdGluZ1N5c3RlbVR5cGUuV0lORE9XUztcbiAgICAgIGNhc2UgS2V5UGFpclR5cGUuUlNBOlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -118,7 +118,7 @@ class LaunchTemplateSpecialVersions {
|
|
|
118
118
|
}
|
|
119
119
|
exports.LaunchTemplateSpecialVersions = LaunchTemplateSpecialVersions;
|
|
120
120
|
_a = JSII_RTTI_SYMBOL_1;
|
|
121
|
-
LaunchTemplateSpecialVersions[_a] = { fqn: "terraconstructs.aws.compute.LaunchTemplateSpecialVersions", version: "0.0.
|
|
121
|
+
LaunchTemplateSpecialVersions[_a] = { fqn: "terraconstructs.aws.compute.LaunchTemplateSpecialVersions", version: "0.0.13" };
|
|
122
122
|
/**
|
|
123
123
|
* The special value that denotes that users of a Launch Template should
|
|
124
124
|
* reference the LATEST version of the template.
|
|
@@ -464,5 +464,5 @@ class LaunchTemplate extends aws_construct_1.AwsConstructBase {
|
|
|
464
464
|
}
|
|
465
465
|
exports.LaunchTemplate = LaunchTemplate;
|
|
466
466
|
_b = JSII_RTTI_SYMBOL_1;
|
|
467
|
-
LaunchTemplate[_b] = { fqn: "terraconstructs.aws.compute.LaunchTemplate", version: "0.0.
|
|
467
|
+
LaunchTemplate[_b] = { fqn: "terraconstructs.aws.compute.LaunchTemplate", version: "0.0.13" };
|
|
468
468
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLXRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2xhdW5jaC10ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1HQUFtRztBQUVuRyxzREFHNkI7QUFDN0IsaUNBQWlEO0FBRWpELCtDQUEwRDtBQVExRCxpREFBdUU7QUFNdkUsb0RBSTBCO0FBQzFCLG1DQUFtQztBQUNuQywwQ0FBbUM7QUFLbkM7O0dBRUc7QUFDSCxNQUFNLFFBQVEsR0FBVyxNQUFNLENBQUM7QUFFaEM7Ozs7R0FJRztBQUNILGtEQUFrRDtBQUNsRCxJQUFZLFVBWVg7QUFaRCxXQUFZLFVBQVU7SUFDcEI7OztPQUdHO0lBQ0gsbUNBQXFCLENBQUE7SUFFckI7OztPQUdHO0lBQ0gscUNBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVpXLFVBQVUsMEJBQVYsVUFBVSxRQVlyQjtBQUVEOzs7O0dBSUc7QUFDSCxrREFBa0Q7QUFDbEQsSUFBWSxpQ0FVWDtBQVZELFdBQVksaUNBQWlDO0lBQzNDOztPQUVHO0lBQ0gsa0RBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsNERBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVZXLGlDQUFpQyxpREFBakMsaUNBQWlDLFFBVTVDO0FBOEREOztHQUVHO0FBQ0gsd0VBQXdFO0FBQ3hFLElBQVksd0JBZVg7QUFmRCxXQUFZLHdCQUF3QjtJQUNsQzs7T0FFRztJQUNILHlDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILG1EQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsbURBQXVCLENBQUE7QUFDekIsQ0FBQyxFQWZXLHdCQUF3Qix3Q0FBeEIsd0JBQXdCLFFBZW5DO0FBRUQ7Ozs7R0FJRztBQUNILElBQVksZUFpQlg7QUFqQkQsV0FBWSxlQUFlO0lBQ3pCOzs7OztPQUtHO0lBQ0gsd0NBQXFCLENBQUE7SUFFckI7Ozs7OztPQU1HO0lBQ0gsNENBQXlCLENBQUE7QUFD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Q0FBQztZQUNOLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGdCQUFnQixDQUFDLGFBQTZCO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FDYiw4R0FBOEcsQ0FDL0csQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxXQUFXO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FDYixzR0FBc0csQ0FDdkcsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFXLGNBQWM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksS0FBSyxDQUNiLDJGQUEyRixDQUM1RixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDOztBQWxmSCx3Q0FtZkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtZWMyL2xpYi9sYXVuY2gtdGVtcGxhdGUudHNcblxuaW1wb3J0IHtcbiAgbGF1bmNoVGVtcGxhdGUgYXMgdGZMYXVuY2hUZW1wbGF0ZSxcbiAgaWFtSW5zdGFuY2VQcm9maWxlIGFzIHRmSWFtSW5zdGFuY2VQcm9maWxlLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQW5ub3RhdGlvbnMsIExhenksIFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ29ubmVjdGlvbnMsIElDb25uZWN0YWJsZSB9IGZyb20gXCIuL2Nvbm5lY3Rpb25zXCI7XG5pbXBvcnQgeyBJbnN0YW5jZVR5cGUgfSBmcm9tIFwiLi9pbnN0YW5jZS10eXBlc1wiO1xuaW1wb3J0IHsgSUtleVBhaXIgfSBmcm9tIFwiLi9rZXktcGFpclwiO1xuaW1wb3J0IHtcbiAgSU1hY2hpbmVJbWFnZSxcbiAgTWFjaGluZUltYWdlQ29uZmlnLFxuICBPcGVyYXRpbmdTeXN0ZW1UeXBlLFxufSBmcm9tIFwiLi9tYWNoaW5lLWltYWdlXCI7XG5pbXBvcnQgeyBsYXVuY2hUZW1wbGF0ZUJsb2NrRGV2aWNlTWFwcGluZ3MgfSBmcm9tIFwiLi9wcml2YXRlL2Vicy11dGlsXCI7XG5pbXBvcnQgeyBJU2VjdXJpdHlHcm91cCB9IGZyb20gXCIuL3NlY3VyaXR5LWdyb3VwXCI7XG5pbXBvcnQgeyBVc2VyRGF0YSB9IGZyb20gXCIuL3VzZXItZGF0YVwiO1xuaW1wb3J0IHsgQmxvY2tEZXZpY2UgfSBmcm9tIFwiLi92b2x1bWVcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2R1cmF0aW9uXCI7XG5pbXBvcnQgeyBFeHBpcmF0aW9uIH0gZnJvbSBcIi4uLy4uL2V4cGlyYXRpb25cIjtcbmltcG9ydCB7XG4gIElBd3NDb25zdHJ1Y3QsXG4gIEF3c0NvbnN0cnVjdEJhc2UsXG4gIC8vIFRhZ1R5cGVcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbi8vIFRPRE86IEFsaWduIHdpdGggQVdTIENESyBUYWdnaW5nXG5pbXBvcnQgeyBUYWdzIH0gZnJvbSBcIi4uL2F3cy10YWdzXCI7XG4vLyBpbXBvcnQgeyBUYWdzIH0gZnJvbSBcIi4uL3RhZy1hc3BlY3RcIjtcbi8vIGltcG9ydCB7IFRhZ01hbmFnZXIgfSBmcm9tIFwiLi4vdGFnLW1hbmFnZXJcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5cbi8qKlxuICogTmFtZSB0YWcgY29uc3RhbnRcbiAqL1xuY29uc3QgTkFNRV9UQUc6IHN0cmluZyA9IFwiTmFtZVwiO1xuXG4vKipcbiAqIFByb3ZpZGVzIHRoZSBvcHRpb25zIGZvciBzcGVjaWZ5aW5nIHRoZSBDUFUgY3JlZGl0IHR5cGUgZm9yIGJ1cnN0YWJsZSBFQzIgaW5zdGFuY2UgdHlwZXMgKFQyLCBUMywgVDNhLCBldGMpLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2J1cnN0YWJsZS1wZXJmb3JtYW5jZS1pbnN0YW5jZXMtaG93LXRvLmh0bWxcbiAqL1xuLy8gZGV2LW5vdGU6IFRoaXMgY291bGQgYmUgdXNlZCBpbiB0aGUgSW5zdGFuY2UgTDJcbmV4cG9ydCBlbnVtIENwdUNyZWRpdHMge1xuICAvKipcbiAgICogU3RhbmRhcmQgYnVyc3RpbmcgbW9kZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvYnVyc3RhYmxlLXBlcmZvcm1hbmNlLWluc3RhbmNlcy1zdGFuZGFyZC1tb2RlLmh0bWxcbiAgICovXG4gIFNUQU5EQVJEID0gXCJzdGFuZGFyZFwiLFxuXG4gIC8qKlxuICAgKiBVbmxpbWl0ZWQgYnVyc3RpbmcgbW9kZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvYnVyc3RhYmxlLXBlcmZvcm1hbmNlLWluc3RhbmNlcy11bmxpbWl0ZWQtbW9kZS5odG1sXG4gICAqL1xuICBVTkxJTUlURUQgPSBcInVubGltaXRlZFwiLFxufVxuXG4vKipcbiAqIFByb3ZpZGVzIHRoZSBvcHRpb25zIGZvciBzcGVjaWZ5aW5nIHRoZSBpbnN0YW5jZSBpbml0aWF0ZWQgc2h1dGRvd24gYmVoYXZpb3IuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvdGVybWluYXRpbmctaW5zdGFuY2VzLmh0bWwjVXNpbmdfQ2hhbmdpbmdJbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3JcbiAqL1xuLy8gZGV2LW5vdGU6IFRoaXMgY291bGQgYmUgdXNlZCBpbiB0aGUgSW5zdGFuY2UgTDJcbmV4cG9ydCBlbnVtIEluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvciB7XG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2Ugd2lsbCBzdG9wIHdoZW4gaXQgaW5pdGlhdGVzIGEgc2h1dGRvd24uXG4gICAqL1xuICBTVE9QID0gXCJzdG9wXCIsXG5cbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSB3aWxsIGJlIHRlcm1pbmF0ZWQgd2hlbiBpdCBpbml0aWF0ZXMgYSBzaHV0ZG93bi5cbiAgICovXG4gIFRFUk1JTkFURSA9IFwidGVybWluYXRlXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF1bmNoVGVtcGxhdGVPdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIGxhdW5jaCB0ZW1wbGF0ZSB0byB1c2VcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbk51bWJlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgTGF1bmNoIFRlbXBsYXRlXG4gICAqXG4gICAqIEV4YWN0bHkgb25lIG9mIGBsYXVuY2hUZW1wbGF0ZUlkYCBhbmQgYGxhdW5jaFRlbXBsYXRlTmFtZWAgd2lsbCBiZSBzZXQuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGxhdW5jaFRlbXBsYXRlSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBMYXVuY2ggVGVtcGxhdGVcbiAgICpcbiAgICogRXhhY3RseSBvbmUgb2YgYGxhdW5jaFRlbXBsYXRlSWRgIGFuZCBgbGF1bmNoVGVtcGxhdGVOYW1lYCB3aWxsIGJlIHNldC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGVOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgTGF1bmNoVGVtcGxhdGUtbGlrZSBvYmplY3RzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElMYXVuY2hUZW1wbGF0ZSBleHRlbmRzIElBd3NDb25zdHJ1Y3Qge1xuICAvKiogc3Ryb25nbHkgdHlwZWQgb3V0cHV0cyAqL1xuICByZWFkb25seSBsYXVuY2hUZW1wbGF0ZU91dHB1dHM6IExhdW5jaFRlbXBsYXRlT3V0cHV0cztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoaXMgbGF1bmNoIHRlbXBsYXRlIHRvIHVzZVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uTnVtYmVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBMYXVuY2ggVGVtcGxhdGVcbiAgICpcbiAgICogRXhhY3RseSBvbmUgb2YgYGxhdW5jaFRlbXBsYXRlSWRgIGFuZCBgbGF1bmNoVGVtcGxhdGVOYW1lYCB3aWxsIGJlIHNldC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGVJZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIExhdW5jaCBUZW1wbGF0ZVxuICAgKlxuICAgKiBFeGFjdGx5IG9uZSBvZiBgbGF1bmNoVGVtcGxhdGVJZGAgYW5kIGBsYXVuY2hUZW1wbGF0ZU5hbWVgIHdpbGwgYmUgc2V0LlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBsYXVuY2hUZW1wbGF0ZU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIG9wdGlvbnMgZm9yIHRoZSB0eXBlcyBvZiBpbnRlcnJ1cHRpb24gZm9yIHNwb3QgaW5zdGFuY2VzLlxuICovXG4vLyBkZXYtbm90ZTogVGhpcyBjb3VsZCBiZSB1c2VkIGluIGEgU3BvdEZsZWV0IEwyIGlmIG9uZSBnZXRzIGRldmVsb3BlZC5cbmV4cG9ydCBlbnVtIFNwb3RJbnN0YW5jZUludGVycnVwdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2Ugd2lsbCBzdG9wIHdoZW4gaW50ZXJydXB0ZWQuXG4gICAqL1xuICBTVE9QID0gXCJzdG9wXCIsXG5cbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSB3aWxsIGJlIHRlcm1pbmF0ZWQgd2hlbiBpbnRlcnJ1cHRlZC5cbiAgICovXG4gIFRFUk1JTkFURSA9IFwidGVybWluYXRlXCIsXG5cbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSB3aWxsIGhpYmVybmF0ZSB3aGVuIGludGVycnVwdGVkLlxuICAgKi9cbiAgSElCRVJOQVRFID0gXCJoaWJlcm5hdGVcIixcbn1cblxuLyoqXG4gKiBUaGUgU3BvdCBJbnN0YW5jZSByZXF1ZXN0IHR5cGUuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvc3BvdC1yZXF1ZXN0cy5odG1sXG4gKi9cbmV4cG9ydCBlbnVtIFNwb3RSZXF1ZXN0VHlwZSB7XG4gIC8qKlxuICAgKiBBIG9uZS10aW1lIFNwb3QgSW5zdGFuY2UgcmVxdWVzdCByZW1haW5zIGFjdGl2ZSB1bnRpbCBBbWF6b24gRUMyIGxhdW5jaGVzIHRoZSBTcG90IEluc3RhbmNlLFxuICAgKiB0aGUgcmVxdWVzdCBleHBpcmVzLCBvciB5b3UgY2FuY2VsIHRoZSByZXF1ZXN0LiBJZiB0aGUgU3BvdCBwcmljZSBleGNlZWRzIHlvdXIgbWF4aW11bSBwcmljZVxuICAgKiBvciBjYXBhY2l0eSBpcyBub3QgYXZhaWxhYmxlLCB5b3VyIFNwb3QgSW5zdGFuY2UgaXMgdGVybWluYXRlZCBhbmQgdGhlIFNwb3QgSW5zdGFuY2UgcmVxdWVzdFxuICAgKiBpcyBjbG9zZWQuXG4gICAqL1xuICBPTkVfVElNRSA9IFwib25lLXRpbWVcIixcblxuICAvKipcbiAgICogQSBwZXJzaXN0ZW50IFNwb3QgSW5zdGFuY2UgcmVxdWVzdCByZW1haW5zIGFjdGl2ZSB1bnRpbCBpdCBleHBpcmVzIG9yIHlvdSBjYW5jZWwgaXQsIGV2ZW4gaWZcbiAgICogdGhlIHJlcXVlc3QgaXMgZnVsZmlsbGVkLiBJZiB0aGUgU3BvdCBwcmljZSBleGNlZWRzIHlvdXIgbWF4aW11bSBwcmljZSBvciBjYXBhY2l0eSBpcyBub3QgYXZhaWxhYmxlLFxuICAgKiB5b3VyIFNwb3QgSW5zdGFuY2UgaXMgaW50ZXJydXB0ZWQuIEFmdGVyIHlvdXIgaW5zdGFuY2UgaXMgaW50ZXJydXB0ZWQsIHdoZW4geW91ciBtYXhpbXVtIHByaWNlIGV4Y2VlZHNcbiAgICogdGhlIFNwb3QgcHJpY2Ugb3IgY2FwYWNpdHkgYmVjb21lcyBhdmFpbGFibGUgYWdhaW4sIHRoZSBTcG90IEluc3RhbmNlIGlzIHN0YXJ0ZWQgaWYgc3RvcHBlZCBvciByZXN1bWVkXG4gICAqIGlmIGhpYmVybmF0ZWQuXG4gICAqL1xuICBQRVJTSVNURU5UID0gXCJwZXJzaXN0ZW50XCIsXG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciB0aGUgU3BvdCBtYXJrZXQgaW5zdGFuY2Ugb3B0aW9ucyBwcm92aWRlZCBpbiBhIExhdW5jaFRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhdW5jaFRlbXBsYXRlU3BvdE9wdGlvbnMge1xuICAvKipcbiAgICogU3BvdCBJbnN0YW5jZXMgd2l0aCBhIGRlZmluZWQgZHVyYXRpb24gKGFsc28ga25vd24gYXMgU3BvdCBibG9ja3MpIGFyZSBkZXNpZ25lZCBub3QgdG8gYmUgaW50ZXJydXB0ZWQgYW5kIHdpbGwgcnVuIGNvbnRpbnVvdXNseSBmb3IgdGhlIGR1cmF0aW9uIHlvdSBzZWxlY3QuXG4gICAqIFlvdSBjYW4gdXNlIGEgZHVyYXRpb24gb2YgMSwgMiwgMywgNCwgNSwgb3IgNiBob3Vycy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvc3BvdC1yZXF1ZXN0cy5odG1sI2ZpeGVkLWR1cmF0aW9uLXNwb3QtaW5zdGFuY2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IFJlcXVlc3RlZCBzcG90IGluc3RhbmNlcyBkbyBub3QgaGF2ZSBhIHByZS1kZWZpbmVkIGR1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYmxvY2tEdXJhdGlvbj86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgYmVoYXZpb3Igd2hlbiBhIFNwb3QgSW5zdGFuY2UgaXMgaW50ZXJydXB0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFNwb3QgaW5zdGFuY2VzIHdpbGwgdGVybWluYXRlIHdoZW4gaW50ZXJydXB0ZWQuXG4gICAqL1xuICByZWFkb25seSBpbnRlcnJ1cHRpb25CZWhhdmlvcj86IFNwb3RJbnN0YW5jZUludGVycnVwdGlvbjtcblxuICAvKipcbiAgICogTWF4aW11bSBob3VybHkgcHJpY2UgeW91J3JlIHdpbGxpbmcgdG8gcGF5IGZvciBlYWNoIFNwb3QgaW5zdGFuY2UuIFRoZSB2YWx1ZSBpcyBnaXZlblxuICAgKiBpbiBkb2xsYXJzLiBleDogMC4wMSBmb3IgMSBjZW50IHBlciBob3VyLCBvciAwLjAwMSBmb3Igb25lLXRlbnRoIG9mIGEgY2VudCBwZXIgaG91ci5cbiAgICpcbiAgICogQGRlZmF1bHQgTWF4aW11bSBob3VybHkgcHJpY2Ugd2lsbCBkZWZhdWx0IHRvIHRoZSBvbi1kZW1hbmQgcHJpY2UgZm9yIHRoZSBpbnN0YW5jZSB0eXBlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4UHJpY2U/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBTcG90IEluc3RhbmNlIHJlcXVlc3QgdHlwZS5cbiAgICpcbiAgICogSWYgeW91IGFyZSB1c2luZyBTcG90IEluc3RhbmNlcyB3aXRoIGFuIEF1dG8gU2NhbGluZyBncm91cCwgdXNlIG9uZS10aW1lIHJlcXVlc3RzLCBhcyB0aGVcbiAgICogQW1hem9uIEVDMiBBdXRvIFNjYWxpbmcgc2VydmljZSBoYW5kbGVzIHJlcXVlc3RpbmcgbmV3IFNwb3QgSW5zdGFuY2VzIHdoZW5ldmVyIHRoZSBncm91cCBpc1xuICAgKiBiZWxvdyBpdHMgZGVzaXJlZCBjYXBhY2l0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgT25lLXRpbWUgc3BvdCByZXF1ZXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdFR5cGU/OiBTcG90UmVxdWVzdFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBlbmQgZGF0ZSBvZiB0aGUgcmVxdWVzdC4gRm9yIGEgb25lLXRpbWUgcmVxdWVzdCwgdGhlIHJlcXVlc3QgcmVtYWlucyBhY3RpdmUgdW50aWwgYWxsIGluc3RhbmNlc1xuICAgKiBsYXVuY2gsIHRoZSByZXF1ZXN0IGlzIGNhbmNlbGVkLCBvciB0aGlzIGRhdGUgaXMgcmVhY2hlZC4gSWYgdGhlIHJlcXVlc3QgaXMgcGVyc2lzdGVudCwgaXQgcmVtYWluc1xuICAgKiBhY3RpdmUgdW50aWwgaXQgaXMgY2FuY2VsZWQgb3IgdGhpcyBkYXRlIGFuZCB0aW1lIGlzIHJlYWNoZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFRoZSBkZWZhdWx0IGVuZCBkYXRlIGlzIDcgZGF5cyBmcm9tIHRoZSBjdXJyZW50IGRhdGUuXG4gICAqL1xuICByZWFkb25seSB2YWxpZFVudGlsPzogRXhwaXJhdGlvbjtcbn1cblxuLyoqXG4gKiBUaGUgc3RhdGUgb2YgdG9rZW4gdXNhZ2UgZm9yIHlvdXIgaW5zdGFuY2UgbWV0YWRhdGEgcmVxdWVzdHMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLW1ldGFkYXRhb3B0aW9ucy5odG1sI2Nmbi1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLW1ldGFkYXRhb3B0aW9ucy1odHRwdG9rZW5zXG4gKi9cbmV4cG9ydCBlbnVtIExhdW5jaFRlbXBsYXRlSHR0cFRva2VucyB7XG4gIC8qKlxuICAgKiBJZiB0aGUgc3RhdGUgaXMgb3B0aW9uYWwsIHlvdSBjYW4gY2hvb3NlIHRvIHJldHJpZXZlIGluc3RhbmNlIG1ldGFkYXRhIHdpdGggb3Igd2l0aG91dCBhIHNpZ25lZCB0b2tlbiBoZWFkZXIgb24geW91ciByZXF1ZXN0LlxuICAgKi9cbiAgT1BUSU9OQUwgPSBcIm9wdGlvbmFsXCIsXG4gIC8qKlxuICAgKiBJZiB0aGUgc3RhdGUgaXMgcmVxdWlyZWQsIHlvdSBtdXN0IHNlbmQgYSBzaWduZWQgdG9rZW4gaGVhZGVyIHdpdGggYW55IGluc3RhbmNlIG1ldGFkYXRhIHJldHJpZXZhbCByZXF1ZXN0cy4gSW4gdGhpcyBzdGF0ZSxcbiAgICogcmV0cmlldmluZyB0aGUgSUFNIHJvbGUgY3JlZGVudGlhbHMgYWx3YXlzIHJldHVybnMgdGhlIHZlcnNpb24gMi4wIGNyZWRlbnRpYWxzOyB0aGUgdmVyc2lvbiAxLjAgY3JlZGVudGlhbHMgYXJlIG5vdCBhdmFpbGFibGUuXG4gICAqL1xuICBSRVFVSVJFRCA9IFwicmVxdWlyZWRcIixcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgTGF1bmNoVGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGF1bmNoVGVtcGxhdGVQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIGZvciB0aGlzIGxhdW5jaCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGRlc2NyaXB0aW9uIGZvciB0aGUgZmlyc3QgdmVyc2lvbiBvZiB0aGUgbGF1bmNoIHRlbXBsYXRlLlxuICAgKlxuICAgKiBUaGUgdmVyc2lvbiBkZXNjcmlwdGlvbiBtdXN0IGJlIG1heGltdW0gMjU1IGNoYXJhY3RlcnMgbG9uZy5cbiAgICpcbiAgICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItbGF1bmNodGVtcGxhdGUuaHRtbCNjZm4tZWMyLWxhdW5jaHRlbXBsYXRlLXZlcnNpb25kZXNjcmlwdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uRGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFR5cGUgb2YgaW5zdGFuY2UgdG8gbGF1bmNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgTGF1bmNoIFRlbXBsYXRlIGRvZXMgbm90IHNwZWNpZnkgYSBkZWZhdWx0IEluc3RhbmNlIFR5cGUuXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVR5cGU/OiBJbnN0YW5jZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBBTUkgdGhhdCB3aWxsIGJlIHVzZWQgYnkgaW5zdGFuY2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgTGF1bmNoIFRlbXBsYXRlIGRvZXMgbm90IHNwZWNpZnkgYSBkZWZhdWx0IEFNSS5cbiAgICovXG4gIHJlYWRvbmx5IG1hY2hpbmVJbWFnZT86IElNYWNoaW5lSW1hZ2U7XG5cbiAgLyoqXG4gICAqIFRoZSBBTUkgdGhhdCB3aWxsIGJlIHVzZWQgYnkgaW5zdGFuY2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoaXMgTGF1bmNoIFRlbXBsYXRlIGNyZWF0ZXMgYSBVc2VyRGF0YSBiYXNlZCBvbiB0aGUgdHlwZSBvZiBwcm92aWRlZFxuICAgKiBtYWNoaW5lSW1hZ2U7IG5vIFVzZXJEYXRhIGlzIGNyZWF0ZWQgaWYgYSBtYWNoaW5lSW1hZ2UgaXMgbm90IHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSB1c2VyRGF0YT86IFVzZXJEYXRhO1xuXG4gIC8qKlxuICAgKiBBbiBJQU0gcm9sZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgaW5zdGFuY2UgcHJvZmlsZSB0aGF0IGlzIHVzZWQgYnkgaW5zdGFuY2VzLlxuICAgKlxuICAgKiBUaGUgcm9sZSBtdXN0IGJlIGFzc3VtYWJsZSBieSB0aGUgc2VydmljZSBwcmluY2lwYWwgYGVjMi5hbWF6b25hd3MuY29tYC5cbiAgICogTm90ZTogWW91IGNhbiBwcm92aWRlIGFuIGluc3RhbmNlUHJvZmlsZSBvciBhIHJvbGUsIGJ1dCBub3QgYm90aC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogY29uc3Qgcm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnTXlSb2xlJywge1xuICAgKiAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdlYzIuYW1hem9uYXdzLmNvbScpXG4gICAqIH0pO1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIG5ldyByb2xlIGlzIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaG93IGJsb2NrIGRldmljZXMgYXJlIGV4cG9zZWQgdG8gdGhlIGluc3RhbmNlLiBZb3UgY2FuIHNwZWNpZnkgdmlydHVhbCBkZXZpY2VzIGFuZCBFQlMgdm9sdW1lcy5cbiAgICpcbiAgICogRWFjaCBpbnN0YW5jZSB0aGF0IGlzIGxhdW5jaGVkIGhhcyBhbiBhc3NvY2lhdGVkIHJvb3QgZGV2aWNlIHZvbHVtZSxcbiAgICogZWl0aGVyIGFuIEFtYXpvbiBFQlMgdm9sdW1lIG9yIGFuIGluc3RhbmNlIHN0b3JlIHZvbHVtZS5cbiAgICogWW91IGNhbiB1c2UgYmxvY2sgZGV2aWNlIG1hcHBpbmdzIHRvIHNwZWNpZnkgYWRkaXRpb25hbCBFQlMgdm9sdW1lcyBvclxuICAgKiBpbnN0YW5jZSBzdG9yZSB2b2x1bWVzIHRvIGF0dGFjaCB0byBhbiBpbnN0YW5jZSB3aGVuIGl0IGlzIGxhdW5jaGVkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9ibG9jay1kZXZpY2UtbWFwcGluZy1jb25jZXB0cy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlcyB0aGUgYmxvY2sgZGV2aWNlIG1hcHBpbmcgb2YgdGhlIEFNSVxuICAgKi9cbiAgcmVhZG9ubHkgYmxvY2tEZXZpY2VzPzogQmxvY2tEZXZpY2VbXTtcblxuICAvKipcbiAgICogQ1BVIGNyZWRpdCB0eXBlIGZvciBidXJzdGFibGUgRUMyIGluc3RhbmNlIHR5cGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9idXJzdGFibGUtcGVyZm9ybWFuY2UtaW5zdGFuY2VzLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBjcmVkaXQgdHlwZSBpcyBzcGVjaWZpZWQgaW4gdGhlIExhdW5jaCBUZW1wbGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGNwdUNyZWRpdHM/OiBDcHVDcmVkaXRzO1xuXG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IHRoaXMgcGFyYW1ldGVyIHRvIHRydWUsIHlvdSBjYW5ub3QgdGVybWluYXRlIHRoZSBpbnN0YW5jZXMgbGF1bmNoZWQgd2l0aCB0aGlzIGxhdW5jaCB0ZW1wbGF0ZVxuICAgKiB1c2luZyB0aGUgQW1hem9uIEVDMiBjb25zb2xlLCBDTEksIG9yIEFQSTsgb3RoZXJ3aXNlLCB5b3UgY2FuLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBBUEkgdGVybWluYXRpb24gc2V0dGluZyBpcyBub3Qgc3BlY2lmaWVkIGluIHRoZSBMYXVuY2ggVGVtcGxhdGUuXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlQXBpVGVybWluYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgaW5zdGFuY2VzIGFyZSBvcHRpbWl6ZWQgZm9yIEFtYXpvbiBFQlMgSS9PLiBUaGlzIG9wdGltaXphdGlvbiBwcm92aWRlcyBkZWRpY2F0ZWQgdGhyb3VnaHB1dFxuICAgKiB0byBBbWF6b24gRUJTIGFuZCBhbiBvcHRpbWl6ZWQgY29uZmlndXJhdGlvbiBzdGFjayB0byBwcm92aWRlIG9wdGltYWwgQW1hem9uIEVCUyBJL08gcGVyZm9ybWFuY2UuIFRoaXMgb3B0aW1pemF0aW9uXG4gICAqIGlzbid0IGF2YWlsYWJsZSB3aXRoIGFsbCBpbnN0YW5jZSB0eXBlcy4gQWRkaXRpb25hbCB1c2FnZSBjaGFyZ2VzIGFwcGx5IHdoZW4gdXNpbmcgYW4gRUJTLW9wdGltaXplZCBpbnN0YW5jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBFQlMgb3B0aW1pemF0aW9uIGlzIG5vdCBzcGVjaWZpZWQgaW4gdGhlIGxhdW5jaCB0ZW1wbGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGVic09wdGltaXplZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byB0cnVlLCB0aGUgaW5zdGFuY2UgaXMgZW5hYmxlZCBmb3IgQVdTIE5pdHJvIEVuY2xhdmVzOyBvdGhlcndpc2UsIGl0IGlzIG5vdCBlbmFibGVkIGZvciBBV1MgTml0cm8gRW5jbGF2ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRW5hYmxlbWVudCBvZiBOaXRybyBlbmNsYXZlcyBpcyBub3Qgc3BlY2lmaWVkIGluIHRoZSBsYXVuY2ggdGVtcGxhdGU7IGRlZmF1bHRpbmcgdG8gZmFsc2UuXG4gICAqL1xuICByZWFkb25seSBuaXRyb0VuY2xhdmVFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgeW91IHNldCB0aGlzIHBhcmFtZXRlciB0byB0cnVlLCB0aGUgaW5zdGFuY2UgaXMgZW5hYmxlZCBmb3IgaGliZXJuYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gSGliZXJuYXRpb24gY29uZmlndXJhdGlvbiBpcyBub3Qgc3BlY2lmaWVkIGluIHRoZSBsYXVuY2ggdGVtcGxhdGU7IGRlZmF1bHRpbmcgdG8gZmFsc2UuXG4gICAqL1xuICByZWFkb25seSBoaWJlcm5hdGlvbkNvbmZpZ3VyZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBpbnN0YW5jZSBzdG9wcyBvciB0ZXJtaW5hdGVzIHdoZW4geW91IGluaXRpYXRlIHNodXRkb3duIGZyb20gdGhlIGluc3RhbmNlICh1c2luZyB0aGUgb3BlcmF0aW5nIHN5c3RlbSBjb21tYW5kIGZvciBzeXN0ZW0gc2h1dGRvd24pLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS90ZXJtaW5hdGluZy1pbnN0YW5jZXMuaHRtbCNVc2luZ19DaGFuZ2luZ0luc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFNodXRkb3duIGJlaGF2aW9yIGlzIG5vdCBzcGVjaWZpZWQgaW4gdGhlIGxhdW5jaCB0ZW1wbGF0ZTsgZGVmYXVsdHMgdG8gU1RPUC5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvcj86IEluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvcjtcblxuICAvKipcbiAgICogSWYgdGhpcyBwcm9wZXJ0eSBpcyBkZWZpbmVkLCB0aGVuIHRoZSBMYXVuY2ggVGVtcGxhdGUncyBJbnN0YW5jZU1hcmtldE9wdGlvbnMgd2lsbCBiZVxuICAgKiBzZXQgdG8gdXNlIFNwb3QgaW5zdGFuY2VzLCBhbmQgdGhlIG9wdGlvbnMgZm9yIHRoZSBTcG90IGluc3RhbmNlcyB3aWxsIGJlIGFzIGRlZmluZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gSW5zdGFuY2UgbGF1bmNoZWQgd2l0aCB0aGlzIHRlbXBsYXRlIHdpbGwgbm90IGJlIHNwb3QgaW5zdGFuY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgc3BvdE9wdGlvbnM/OiBMYXVuY2hUZW1wbGF0ZVNwb3RPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIFNTSCBrZXlwYWlyIHRvIGdyYW50IGFjY2VzcyB0byBpbnN0YW5jZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIFNTSCBhY2Nlc3Mgd2lsbCBiZSBwb3NzaWJsZS5cbiAgICogQGRlcHJlY2F0ZWQgLSBVc2UgYGtleVBhaXJgIGluc3RlYWQgLSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2FwaS92Mi9kb2NzL2F3cy1jZGstbGliLmF3c19lYzItcmVhZG1lLmh0bWwjdXNpbmctYW4tZXhpc3RpbmctZWMyLWtleS1wYWlyXG4gICAqL1xuICByZWFkb25seSBrZXlOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgU1NIIGtleXBhaXIgdG8gZ3JhbnQgYWNjZXNzIHRvIHRoZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBTU0ggYWNjZXNzIHdpbGwgYmUgcG9zc2libGUuXG4gICAqL1xuICByZWFkb25seSBrZXlQYWlyPzogSUtleVBhaXI7XG5cbiAgLyoqXG4gICAqIElmIHNldCB0byB0cnVlLCB0aGVuIGRldGFpbGVkIG1vbml0b3Jpbmcgd2lsbCBiZSBlbmFibGVkIG9uIGluc3RhbmNlcyBjcmVhdGVkIHdpdGggdGhpc1xuICAgKiBsYXVuY2ggdGVtcGxhdGUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL3VzaW5nLWNsb3Vkd2F0Y2gtbmV3Lmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgRmFsc2UgLSBEZXRhaWxlZCBtb25pdG9yaW5nIGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWlsZWRNb25pdG9yaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2VjdXJpdHkgZ3JvdXAgdG8gYXNzaWduIHRvIGluc3RhbmNlcyBjcmVhdGVkIHdpdGggdGhlIGxhdW5jaCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgTm8gc2VjdXJpdHkgZ3JvdXAgaXMgYXNzaWduZWQuXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwPzogSVNlY3VyaXR5R3JvdXA7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgSU1EU3YyIHNob3VsZCBiZSByZXF1aXJlZCBvbiBsYXVuY2hlZCBpbnN0YW5jZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVJbWRzdjI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIHRoZSBIVFRQIG1ldGFkYXRhIGVuZHBvaW50IG9uIHlvdXIgaW5zdGFuY2VzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEtbWV0YWRhdGFvcHRpb25zLmh0bWwjY2ZuLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEtbWV0YWRhdGFvcHRpb25zLWh0dHBlbmRwb2ludFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBodHRwRW5kcG9pbnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIHRoZSBJUHY2IGVuZHBvaW50IGZvciB0aGUgaW5zdGFuY2UgbWV0YWRhdGEgc2VydmljZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLW1ldGFkYXRhb3B0aW9ucy5odG1sI2Nmbi1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLW1ldGFkYXRhb3B0aW9ucy1odHRwcHJvdG9jb2xpcHY2XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGh0dHBQcm90b2NvbElwdjY/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzaXJlZCBIVFRQIFBVVCByZXNwb25zZSBob3AgbGltaXQgZm9yIGluc3RhbmNlIG1ldGFkYXRhIHJlcXVlc3RzLiBUaGUgbGFyZ2VyIHRoZSBudW1iZXIsIHRoZSBmdXJ0aGVyIGluc3RhbmNlIG1ldGFkYXRhIHJlcXVlc3RzIGNhbiB0cmF2ZWwuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS1tZXRhZGF0YW9wdGlvbnMuaHRtbCNjZm4tZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS1tZXRhZGF0YW9wdGlvbnMtaHR0cHB1dHJlc3BvbnNlaG9wbGltaXRcbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgaHR0cFB1dFJlc3BvbnNlSG9wTGltaXQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0ZSBvZiB0b2tlbiB1c2FnZSBmb3IgeW91ciBpbnN0YW5jZSBtZXRhZGF0YSByZXF1ZXN0cy4gIFRoZSBkZWZhdWx0IHN0YXRlIGlzIGBvcHRpb25hbGAgaWYgbm90IHNwZWNpZmllZC4gSG93ZXZlcixcbiAgICogaWYgcmVxdWlyZUltZHN2MiBpcyB0cnVlLCB0aGUgc3RhdGUgbXVzdCBiZSBgcmVxdWlyZWRgLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEtbWV0YWRhdGFvcHRpb25zLmh0bWwjY2ZuLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEtbWV0YWRhdGFvcHRpb25zLWh0dHB0b2tlbnNcbiAgICpcbiAgICogQGRlZmF1bHQgTGF1bmNoVGVtcGxhdGVIdHRwVG9rZW5zLk9QVElPTkFMXG4gICAqL1xuICByZWFkb25seSBodHRwVG9rZW5zPzogTGF1bmNoVGVtcGxhdGVIdHRwVG9rZW5zO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gZW5hYmxlZCB0byBhbGxvdyBhY2Nlc3MgdG8gaW5zdGFuY2UgdGFncyBmcm9tIHRoZSBpbnN0YW5jZSBtZXRhZGF0YS4gU2V0IHRvIGRpc2FibGVkIHRvIHR1cm4gb2ZmIGFjY2VzcyB0byBpbnN0YW5jZSB0YWdzIGZyb20gdGhlIGluc3RhbmNlIG1ldGFkYXRhLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEtbWV0YWRhdGFvcHRpb25zLmh0bWwjY2ZuLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEtbWV0YWRhdGFvcHRpb25zLWluc3RhbmNlbWV0YWRhdGF0YWdzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZU1ldGFkYXRhVGFncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgaW5zdGFuY2VzIHNob3VsZCBoYXZlIGEgcHVibGljIElQIGFkZHJlc3NlcyBhc3NvY2lhdGVkIHdpdGggdGhlbS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBVc2Ugc3VibmV0IHNldHRpbmdzXG4gICAqL1xuICByZWFkb25seSBhc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2UgcHJvZmlsZSB1c2VkIHRvIHBhc3Mgcm9sZSBpbmZvcm1hdGlvbiB0byBFQzIgaW5zdGFuY2VzLlxuICAgKlxuICAgKiBOb3RlOiBZb3UgY2FuIHByb3ZpZGUgYW4gaW5zdGFuY2VQcm9maWxlIG9yIGEgcm9sZSwgYnV0IG5vdCBib3RoLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGluc3RhbmNlIHByb2ZpbGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlUHJvZmlsZT86IGlhbS5JSW5zdGFuY2VQcm9maWxlO1xufVxuXG4vKipcbiAqIEEgY2xhc3MgdGhhdCBwcm92aWRlcyBjb252ZW5pZW50IGFjY2VzcyB0byBzcGVjaWFsIHZlcnNpb24gdG9rZW5zIGZvciBMYXVuY2hUZW1wbGF0ZVxuICogdmVyc2lvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBMYXVuY2hUZW1wbGF0ZVNwZWNpYWxWZXJzaW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgc3BlY2lhbCB2YWx1ZSB0aGF0IGRlbm90ZXMgdGhhdCB1c2VycyBvZiBhIExhdW5jaCBUZW1wbGF0ZSBzaG91bGRcbiAgICogcmVmZXJlbmNlIHRoZSBMQVRFU1QgdmVyc2lvbiBvZiB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IExBVEVTVF9WRVJTSU9OOiBzdHJpbmcgPSBcIiRMYXRlc3RcIjtcblxuICAvKipcbiAgICogVGhlIHNwZWNpYWwgdmFsdWUgdGhhdCBkZW5vdGVzIHRoYXQgdXNlcnMgb2YgYSBMYXVuY2ggVGVtcGxhdGUgc2hvdWxkXG4gICAqIHJlZmVyZW5jZSB0aGUgREVGQVVMVCB2ZXJzaW9uIG9mIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9WRVJTSU9OOiBzdHJpbmcgPSBcIiREZWZhdWx0XCI7XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgYW4gaW1wb3J0ZWQgTGF1bmNoVGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGF1bmNoVGVtcGxhdGVBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIGxhdW5jaCB0ZW1wbGF0ZSB0byB1c2VcbiAgICpcbiAgICogQGRlZmF1bHQgVmVyc2lvbjogXCIkRGVmYXVsdFwiXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uTnVtYmVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgTGF1bmNoIFRlbXBsYXRlXG4gICAqXG4gICAqIEV4YWN0bHkgb25lIG9mIGBsYXVuY2hUZW1wbGF0ZUlkYCBhbmQgYGxhdW5jaFRlbXBsYXRlTmFtZWAgbWF5IGJlIHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGVJZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIExhdW5jaCBUZW1wbGF0ZVxuICAgKlxuICAgKiBFeGFjdGx5IG9uZSBvZiBgbGF1bmNoVGVtcGxhdGVJZGAgYW5kIGBsYXVuY2hUZW1wbGF0ZU5hbWVgIG1heSBiZSBzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGxhdW5jaFRlbXBsYXRlTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGlzIHJlcHJlc2VudHMgYW4gRUMyIExhdW5jaFRlbXBsYXRlLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1sYXVuY2gtdGVtcGxhdGVzLmh0bWxcbiAqL1xuZXhwb3J0IGNsYXNzIExhdW5jaFRlbXBsYXRlXG4gIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZVxuICBpbXBsZW1lbnRzIElMYXVuY2hUZW1wbGF0ZSwgaWFtLklHcmFudGFibGUsIElDb25uZWN0YWJsZVxue1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIExhdW5jaFRlbXBsYXRlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tTGF1bmNoVGVtcGxhdGVBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogTGF1bmNoVGVtcGxhdGVBdHRyaWJ1dGVzLFxuICApOiBJTGF1bmNoVGVtcGxhdGUge1xuICAgIGNvbnN0IGhhdmVJZCA9IEJvb2xlYW4oYXR0cnMubGF1bmNoVGVtcGxhdGVJZCk7XG4gICAgY29uc3QgaGF2ZU5hbWUgPSBCb29sZWFuKGF0dHJzLmxhdW5jaFRlbXBsYXRlTmFtZSk7XG4gICAgaWYgKGhhdmVJZCA9PSBoYXZlTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkxhdW5jaFRlbXBsYXRlLmZyb21MYXVuY2hUZW1wbGF0ZUF0dHJpYnV0ZXMoKSByZXF1aXJlcyBleGFjdGx5IG9uZSBvZiBsYXVuY2hUZW1wbGF0ZUlkIG9yIGxhdW5jaFRlbXBsYXRlTmFtZSBiZSBwcm92aWRlZC5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElMYXVuY2hUZW1wbGF0ZSB7XG4gICAgICBwdWJsaWMgZ2V0IGxhdW5jaFRlbXBsYXRlT3V0cHV0cygpOiBMYXVuY2hUZW1wbGF0ZU91dHB1dHMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZlcnNpb25OdW1iZXI6IHRoaXMudmVyc2lvbk51bWJlcixcbiAgICAgICAgICBsYXVuY2hUZW1wbGF0ZUlkOiB0aGlzLmxhdW5jaFRlbXBsYXRlSWQsXG4gICAgICAgICAgbGF1bmNoVGVtcGxhdGVOYW1lOiB0aGlzLmxhdW5jaFRlbXBsYXRlTmFtZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGF1bmNoVGVtcGxhdGVPdXRwdXRzO1xuICAgICAgfVxuICAgICAgcHVibGljIHJlYWRvbmx5IHZlcnNpb25OdW1iZXIgPVxuICAgICAgICBhdHRycy52ZXJzaW9uTnVtYmVyID8/IExhdW5jaFRlbXBsYXRlU3BlY2lhbFZlcnNpb25zLkRFRkFVTFRfVkVSU0lPTjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBsYXVuY2hUZW1wbGF0ZUlkPyA9IGF0dHJzLmxhdW5jaFRlbXBsYXRlSWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGVOYW1lPyA9IGF0dHJzLmxhdW5jaFRlbXBsYXRlTmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vICAgTWVtYmVycyBmb3IgSUxhdW5jaFRlbXBsYXRlL0lUZXJyYUNvbnN0cnVjdCBpbnRlcmZhY2VcblxuICBwdWJsaWMgZ2V0IGxhdW5jaFRlbXBsYXRlT3V0cHV0cygpOiBMYXVuY2hUZW1wbGF0ZU91dHB1dHMge1xuICAgIHJldHVybiB7XG4gICAgICB2ZXJzaW9uTnVtYmVyOiB0aGlzLnZlcnNpb25OdW1iZXIsXG4gICAgICBsYXVuY2hUZW1wbGF0ZUlkOiB0aGlzLmxhdW5jaFRlbXBsYXRlSWQsXG4gICAgICBsYXVuY2hUZW1wbGF0ZU5hbWU6IHRoaXMubGF1bmNoVGVtcGxhdGVOYW1lLFxuICAgIH07XG4gIH1cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmxhdW5jaFRlbXBsYXRlT3V0cHV0cztcbiAgfVxuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbk51bWJlcjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGVJZD86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGxhdW5jaFRlbXBsYXRlTmFtZT86IHN0cmluZztcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gICBEYXRhIG1lbWJlcnNcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgdmVyc2lvbiBmb3IgdGhlIGxhdW5jaCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRWZXJzaW9uTnVtYmVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgbGF1bmNoIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbGF0ZXN0VmVyc2lvbk51bWJlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBPUyB0aGUgaW5zdGFuY2UgaXMgcnVubmluZy5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9zVHlwZT86IE9wZXJhdGluZ1N5c3RlbVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBBTUkgSUQgb2YgdGhlIGltYWdlIHRvIHVzZVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW1hZ2VJZD86IHN0cmluZztcblxuICAvKipcbiAgICogSUFNIFJvbGUgYXNzdW1lZCBieSBpbnN0YW5jZXMgdGhhdCBhcmUgbGF1bmNoZWQgZnJvbSB0aGlzIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVXNlckRhdGEgZXhlY3V0ZWQgYnkgaW5zdGFuY2VzIHRoYXQgYXJlIGxhdW5jaGVkIGZyb20gdGhpcyB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJEYXRhPzogVXNlckRhdGE7XG5cbiAgLyoqXG4gICAqIFR5cGUgb2YgaW5zdGFuY2UgdG8gbGF1bmNoLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VUeXBlPzogSW5zdGFuY2VUeXBlO1xuXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogdGZMYXVuY2hUZW1wbGF0ZS5MYXVuY2hUZW1wbGF0ZTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gICBQcml2YXRlL3Byb3RlY3RlZCBkYXRhIG1lbWJlcnNcblxuICAvKipcbiAgICogUHJpbmNpcGFsIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBfZ3JhbnRQcmluY2lwYWw/OiBpYW0uSVByaW5jaXBhbDtcblxuICAvKipcbiAgICogQWxsb3dzIHNwZWNpZnlpbmcgc2VjdXJpdHkgZ3JvdXAgY29ubmVjdGlvbnMgZm9yIHRoZSBpbnN0YW5jZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2Nvbm5lY3Rpb25zPzogQ29ubmVjdGlvbnM7XG5cbiAgLy8gLyoqXG4gIC8vICAqIFRhZ01hbmFnZXIgZm9yIHRhZ2dpbmcgc3VwcG9ydC5cbiAgLy8gICovXG4gIC8vIHByb3RlY3RlZCByZWFkb25seSB0YWdzOiBUYWdNYW5hZ2VyO1xuXG4gIC8vIGlzVGFnZ2FibGVDb25zdHJ1Y3QgcmVxdWlyZWQgcHJvcGVydGllc1xuICBwcml2YXRlIF90YWdzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBwdWJsaWMgc2V0IHRhZ3ModmFsdWU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICB0aGlzLl90YWdzID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCB0YWdzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiBUb2tlbi5hc1N0cmluZ01hcChcbiAgICAgIExhenkuYW55VmFsdWUoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLl90YWdzID8/IHVuZGVmaW5lZCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IHRhZ3NJbnB1dCgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdGFncztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBMYXVuY2hUZW1wbGF0ZVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gQmFzaWMgdmFsaWRhdGlvbiBvZiB0aGUgcHJvdmlkZWQgc3BvdCBibG9jayBkdXJhdGlvblxuICAgIGNvbnN0IHNwb3REdXJhdGlvbiA9IHByb3BzPy5zcG90T3B0aW9ucz8uYmxvY2tEdXJhdGlvbj8udG9Ib3Vycyh7XG4gICAgICBpbnRlZ3JhbDogdHJ1ZSxcbiAgICB9KTtcbiAgICBpZiAoc3BvdER1cmF0aW9uICE9PSB1bmRlZmluZWQgJiYgKHNwb3REdXJhdGlvbiA8IDEgfHwgc3BvdER1cmF0aW9uID4gNikpIHtcbiAgICAgIC8vIFNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL3Nwb3QtcmVxdWVzdHMuaHRtbCNmaXhlZC1kdXJhdGlvbi1zcG90LWluc3RhbmNlc1xuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkRXJyb3IoXG4gICAgICAgIFwiU3BvdCBibG9jayBkdXJhdGlvbiBtdXN0IGJlIGV4YWN0bHkgMSwgMiwgMywgNCwgNSwgb3IgNiBob3Vycy5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQmFzaWMgdmFsaWRhdGlvbiBvZiB0aGUgcHJvdmlkZWQgaHR0cFB1dFJlc3BvbnNlSG9wTGltaXRcbiAgICBpZiAoXG4gICAgICBwcm9wcy5odHRwUHV0UmVzcG9uc2VIb3BMaW1pdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAocHJvcHMuaHR0cFB1dFJlc3BvbnNlSG9wTGltaXQgPCAxIHx8IHByb3BzLmh0dHBQdXRSZXNwb25zZUhvcExpbWl0ID4gNjQpXG4gICAgKSB7XG4gICAgICAvLyBTZWU6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEtbWV0YWRhdGFvcHRpb25zLmh0bWwjY2ZuLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEtbWV0YWRhdGFvcHRpb25zLWh0dHBwdXRyZXNwb25zZWhvcGxpbWl0XG4gICAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRFcnJvcihcbiAgICAgICAgXCJIdHRwUHV0UmVzcG9uc2VIb3BMaW1pdCBtdXN0IGJldHdlZW4gMSBhbmQgNjRcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmluc3RhbmNlUHJvZmlsZSAmJiBwcm9wcy5yb2xlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJZb3UgY2Fubm90IHByb3ZpZGUgYm90aCBhbiBpbnN0YW5jZVByb2ZpbGUgYW5kIGEgcm9sZVwiKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMua2V5TmFtZSAmJiBwcm9wcy5rZXlQYWlyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ2Fubm90IHNwZWNpZnkgYm90aCBvZiAna2V5TmFtZScgYW5kICdrZXlQYWlyJzsgcHJlZmVyICdrZXlQYWlyJ1wiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyB1c2UgcHJvdmlkZWQgaW5zdGFuY2UgcHJvZmlsZSBvciBjcmVhdGUgb25lIGlmIGEgcm9sZSB3YXMgcHJvdmlkZWRcbiAgICBsZXQgaWFtUHJvZmlsZUFybjogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9wcy5pbnN0YW5jZVByb2ZpbGUpIHtcbiAgICAgIHRoaXMucm9sZSA9IHByb3BzLmluc3RhbmNlUHJvZmlsZS5yb2xlO1xuICAgICAgaWFtUHJvZmlsZUFybiA9IHByb3BzLmluc3RhbmNlUHJvZmlsZS5pbnN0YW5jZVByb2ZpbGVBcm47XG4gICAgfSBlbHNlIGlmIChwcm9wcy5yb2xlKSB7XG4gICAgICB0aGlzLnJvbGUgPSBwcm9wcy5yb2xlO1xuICAgICAgY29uc3QgaWFtUHJvZmlsZSA9IG5ldyB0ZklhbUluc3RhbmNlUHJvZmlsZS5JYW1JbnN0YW5jZVByb2ZpbGUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiUHJvZmlsZVwiLFxuICAgICAgICB7XG4gICAgICAgICAgcm9sZTogdGhpcy5yb2xlLnJvbGVOYW1lLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIGlhbVByb2ZpbGVBcm4gPSBpYW1Qcm9maWxlLmFybjtcbiAgICB9XG5cbiAgICB0aGlzLl9ncmFudFByaW5jaXBhbCA9IHRoaXMucm9sZTtcblxuICAgIGlmIChwcm9wcy5zZWN1cml0eUdyb3VwKSB7XG4gICAgICB0aGlzLl9jb25uZWN0aW9ucyA9IG5ldyBDb25uZWN0aW9ucyh7XG4gICAgICAgIHNlY3VyaXR5R3JvdXBzOiBbcHJvcHMuc2VjdXJpdHlHcm91cF0sXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3Qgc2VjdXJpdHlHcm91cHNUb2tlbiA9IExhenkubGlzdFZhbHVlKHtcbiAgICAgIHByb2R1Y2U6ICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2Nvbm5lY3Rpb25zICYmIHRoaXMuX2Nvbm5lY3Rpb25zLnNlY3VyaXR5R3JvdXBzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fY29ubmVjdGlvbnMuc2VjdXJpdHlHcm91cHMubWFwKFxuICAgICAgICAgICAgKHNnKSA9PiBzZy5zZWN1cml0eUdyb3VwSWQsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGltYWdlQ29uZmlnOiBNYWNoaW5lSW1hZ2VDb25maWcgfCB1bmRlZmluZWQgPVxuICAgICAgcHJvcHMubWFjaGluZUltYWdlPy5nZXRJbWFnZSh0aGlzKTtcbiAgICBpZiAoaW1hZ2VDb25maWcpIHtcbiAgICAgIHRoaXMub3NUeXBlID0gaW1hZ2VDb25maWcub3NUeXBlO1xuICAgICAgdGhpcy5pbWFnZUlkID0gaW1hZ2VDb25maWcuaW1hZ2VJZDtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLm9zVHlwZSAmJlxuICAgICAgcHJvcHMua2V5UGFpciAmJlxuICAgICAgIXByb3BzLmtleVBhaXIuX2lzT3NDb21wYXRpYmxlKHRoaXMub3NUeXBlKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgJHtwcm9wcy5rZXlQYWlyLnR5cGV9IGtleXMgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIGNob3NlbiBBTUlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBwcmlvcml0eTogcHJvcC51c2VyRGF0YSAtPiB1c2VyRGF0YSBmcm9tIG1hY2hpbmVJbWFnZSAtPiB1bmRlZmluZWRcbiAgICB0aGlzLnVzZXJEYXRhID0gcHJvcHMudXNlckRhdGEgPz8gaW1hZ2VDb25maWc/LnVzZXJEYXRhO1xuICAgIHRoaXMuaW5zdGFuY2VUeXBlID0gcHJvcHMuaW5zdGFuY2VUeXBlO1xuXG4gICAgbGV0IG1hcmtldE9wdGlvbnM6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBpZiAocHJvcHM/LnNwb3RPcHRpb25zKSB7XG4gICAgICBtYXJrZXRPcHRpb25zID0ge1xuICAgICAgICBtYXJrZXRUeXBlOiBcInNwb3RcIixcbiAgICAgICAgc3BvdE9wdGlvbnM6IHtcbiAgICAgICAgICBibG9ja0R1cmF0aW9uTWludXRlczpcbiAgICAgICAgICAgIHNwb3REdXJhdGlvbiAhPT0gdW5kZWZpbmVkID8gc3BvdER1cmF0aW9uICogNjAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgaW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvcjogcHJvcHMuc3BvdE9wdGlvbnMuaW50ZXJydXB0aW9uQmVoYXZpb3IsXG4gICAgICAgICAgbWF4UHJpY2U6IHByb3BzLnNwb3RPcHRpb25zLm1heFByaWNlPy50b1N0cmluZygpLFxuICAgICAgICAgIHNwb3RJbnN0YW5jZVR5cGU6IHByb3BzLnNwb3RPcHRpb25zLnJlcXVlc3RUeXBlLFxuICAgICAgICAgIHZhbGlkVW50aWw6IHByb3BzLnNwb3RPcHRpb25zLnZhbGlkVW50aWw/LmRhdGUudG9VVENTdHJpbmcoKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICAvLyBSZW1vdmUgU3BvdE9wdGlvbnMgaWYgdGhlcmUgYXJlIG5vbmUuXG4gICAgICBpZiAoXG4gICAgICAgIE9iamVjdC5rZXlzKG1hcmtldE9wdGlvbnMuc3BvdE9wdGlvbnMpLmZpbHRlcihcbiAgICAgICAgICAoaykgPT4gbWFya2V0T3B0aW9ucy5zcG90T3B0aW9uc1trXSxcbiAgICAgICAgKS5sZW5ndGggPT0gMFxuICAgICAgKSB7XG4gICAgICAgIG1hcmtldE9wdGlvbnMuc3BvdE9wdGlvbnMgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gdGhpcy50YWdzID0gbmV3IFRhZ01hbmFnZXIoXG4gICAgLy8gICBUYWdUeXBlLktFWV9WQUxVRSxcbiAgICAvLyAgIHRmTGF1bmNoVGVtcGxhdGUuTGF1bmNoVGVtcGxhdGUudGZSZXNvdXJjZVR5cGUsXG4gICAgLy8gKTtcblxuICAgIGNvbnN0IHRhZ3NUb2tlbiA9IExhenkuYW55VmFsdWUoe1xuICAgICAgcHJvZHVjZTogKCk6XG4gICAgICAgIHwgdGZMYXVuY2hUZW1wbGF0ZS5MYXVuY2hUZW1wbGF0ZVRhZ1NwZWNpZmljYXRpb25zW11cbiAgICAgICAgfCB1bmRlZmluZWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5fdGFncykge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHJlc291cmNlVHlwZTogXCJpbnN0YW5jZVwiLFxuICAgICAgICAgICAgICB0YWdzOiB0aGlzLl90YWdzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcmVzb3VyY2VUeXBlOiBcInZvbHVtZVwiLFxuICAgICAgICAgICAgICB0YWdzOiB0aGlzLl90YWdzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcmVzb3VyY2VUeXBlOiBcImxhdW5jaC10ZW1wbGF0ZVwiLFxuICAgICAgICAgICAgICB0YWdzOiB0aGlzLl90YWdzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLm1hcCh0ZkxhdW5jaFRlbXBsYXRlLmxhdW5jaFRlbXBsYXRlVGFnU3BlY2lmaWNhdGlvbnNUb1RlcnJhZm9ybSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBuZXR3b3JrSW50ZXJmYWNlczpcbiAgICAgIHwgdGZMYXVuY2hUZW1wbGF0ZS5MYXVuY2hUZW1wbGF0ZU5ldHdvcmtJbnRlcmZhY2VzW11cbiAgICAgIHwgdW5kZWZpbmVkID1cbiAgICAgIHByb3BzLmFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzcyAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBkZXZpY2VJbmRleDogMCxcbiAgICAgICAgICAgICAgYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzOlxuICAgICAgICAgICAgICAgIHByb3BzLmFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzcz8udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgc2VjdXJpdHlHcm91cHM6IHNlY3VyaXR5R3JvdXBzVG9rZW4sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoXG4gICAgICBwcm9wcy52ZXJzaW9uRGVzY3JpcHRpb24gJiZcbiAgICAgICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMudmVyc2lvbkRlc2NyaXB0aW9uKSAmJlxuICAgICAgcHJvcHMudmVyc2lvbkRlc2NyaXB0aW9uLmxlbmd0aCA+IDI1NVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgdmVyc2lvbkRlc2NyaXB0aW9uIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDI1NSBjaGFyYWN0ZXJzLCBnb3QgJHtwcm9wcy52ZXJzaW9uRGVzY3JpcHRpb24ubGVuZ3RofWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgdGZMYXVuY2hUZW1wbGF0ZS5MYXVuY2hUZW1wbGF0ZSh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIG5hbWU6IHByb3BzPy5sYXVuY2hUZW1wbGF0ZU5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHM/LnZlcnNpb25EZXNjcmlwdGlvbixcbiAgICAgIGJsb2NrRGV2aWNlTWFwcGluZ3M6XG4gICAgICAgIHByb3BzPy5ibG9ja0RldmljZXMgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gbGF1bmNoVGVtcGxhdGVCbG9ja0RldmljZU1hcHBpbmdzKHRoaXMsIHByb3BzLmJsb2NrRGV2aWNlcylcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGNyZWRpdFNwZWNpZmljYXRpb246XG4gICAgICAgIHByb3BzPy5jcHVDcmVkaXRzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgY3B1Q3JlZGl0czogcHJvcHMuY3B1Q3JlZGl0cyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGRpc2FibGVBcGlUZXJtaW5hdGlvbjogcHJvcHM/LmRpc2FibGVBcGlUZXJtaW5hdGlvbixcbiAgICAgIGVic09wdGltaXplZDogcHJvcHM/LmVic09wdGltaXplZD8udG9TdHJpbmcoKSxcbiAgICAgIGVuY2xhdmVPcHRpb25zOlxuICAgICAgICBwcm9wcz8ubml0cm9FbmNsYXZlRW5hYmxlZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHByb3BzLm5pdHJvRW5jbGF2ZUVuYWJsZWQsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBoaWJlcm5hdGlvbk9wdGlvbnM6XG4gICAgICAgIHByb3BzPy5oaWJlcm5hdGlvbkNvbmZpZ3VyZWQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBjb25maWd1cmVkOiBwcm9wcy5oaWJlcm5hdGlvbkNvbmZpZ3VyZWQsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBpYW1JbnN0YW5jZVByb2ZpbGU6XG4gICAgICAgIGlhbVByb2ZpbGVBcm4gIT09IHVuZGVmaW5lZCA/IHsgYXJuOiBpYW1Qcm9maWxlQXJuIH0gOiB1bmRlZmluZWQsXG4gICAgICBpbWFnZUlkOiBpbWFnZUNvbmZpZz8uaW1hZ2VJZCxcbiAgICAgIGluc3RhbmNlVHlwZTogcHJvcHM/Lmluc3RhbmNlVHlwZT8udG9TdHJpbmcoKSxcbiAgICAgIGluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvcjpcbiAgICAgICAgcHJvcHM/Lmluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvcixcbiAgICAgIGluc3RhbmNlTWFya2V0T3B0aW9uczogbWFya2V0T3B0aW9ucyxcbiAgICAgIGtleU5hbWU6IHByb3BzLmtleVBhaXI/LmtleVBhaXJOYW1lID8/IHByb3BzPy5rZXlOYW1lLFxuICAgICAgbW9uaXRvcmluZzpcbiAgICAgICAgcHJvcHM/LmRldGFpbGVkTW9uaXRvcmluZyAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHByb3BzLmRldGFpbGVkTW9uaXRvcmluZyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHZwY1NlY3VyaXR5R3JvdXBJZHM6IG5ldHdvcmtJbnRlcmZhY2VzID8gdW5kZWZpbmVkIDogc2VjdXJpdHlHcm91cHNUb2tlbixcbiAgICAgIHRhZ1NwZWNpZmljYXRpb25zOiB0YWdzVG9rZW4sXG4gICAgICB1c2VyRGF0YTogdGhpcy51c2VyRGF0YT8ucmVuZGVyKHRoaXMpLFxuICAgICAgbWV0YWRhdGFPcHRpb25zOiB0aGlzLnJlbmRlck1ldGFkYXRhT3B0aW9ucyhwcm9wcyksXG4gICAgICBuZXR3b3JrSW50ZXJmYWNlcyxcblxuICAgICAgLy8gRmllbGRzIG5vdCB5ZXQgaW1wbGVtZW50ZWQ6XG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS1jYXBhY2l0eXJlc2VydmF0aW9uc3BlY2lmaWNhdGlvbi5odG1sXG4gICAgICAvLyBXaWxsIHJlcXVpcmUgY3JlYXRpbmcgYW4gTDIgZm9yIEFXUzo6RUMyOjpDYXBhY2l0eVJlc2VydmF0aW9uXG4gICAgICAvLyBjYXBhY2l0eVJlc2VydmF0aW9uU3BlY2lmaWNhdGlvbjogdW5kZWZpbmVkLFxuXG4gICAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLWNwdW9wdGlvbnMuaHRtbFxuICAgICAgLy8gY3B1T3B0aW9uczogdW5kZWZpbmVkLFxuXG4gICAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtZWxhc3RpY2dwdXNwZWNpZmljYXRpb24uaHRtbFxuICAgICAgLy8gZWxhc3RpY0dwdVNwZWNpZmljYXRpb25zOiB1bmRlZmluZWQsXG5cbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCNjZm4tZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS1lbGFzdGljaW5mZXJlbmNlYWNjZWxlcmF0b3JzXG4gICAgICAvLyBlbGFzdGljSW5mZXJlbmNlQWNjZWxlcmF0b3JzOiB1bmRlZmluZWQsXG5cbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCNjZm4tZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS1rZXJuZWxpZFxuICAgICAgLy8ga2VybmVsSWQ6IHVuZGVmaW5lZCxcbiAgICAgIC8vIHJhbURpc2tJZDogdW5kZWZpbmVkLFxuXG4gICAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLmh0bWwjY2ZuLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEtbGljZW5zZXNwZWNpZmljYXRpb25zXG4gICAgICAvLyBBbHNvIG5vdCBpbXBsZW1lbnRlZCBpbiBJbnN0YW5jZSBMMlxuICAgICAgLy8gbGljZW5zZVNwZWNpZmljYXRpb25zOiB1bmRlZmluZWQsXG5cbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCNjZm4tZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS10YWdzcGVjaWZpY2F0aW9uc1xuICAgICAgLy8gU2hvdWxkIGJlIGltcGxlbWVudGVkIHZpYSB0aGUgVGFnZ2luZyBhc3BlY3QgaW4gQ0RLIGNvcmUuIENvbXBsaWNhdGlvbiB3aWxsIGJlIHRoYXQgdGhpcyB0YWdnaW5nIGludGVyZmFjZSBpcyB2ZXJ5IHVuaXF1ZSB0byBMYXVuY2hUZW1wbGF0ZXMuXG4gICAgICAvLyB0YWdTcGVjaWZpY2F0aW9uOiB1bmRlZmluZWRcblxuICAgICAgLy8gVE9ETzogdXNlIElQbGFjZW1lbnRHcm91cCBpbiBMdWFuY2hUZW1wbGF0ZVxuICAgICAgLy8gcGxhY2VtZW50OiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5yb2xlKSB7XG4gICAgICB0aGlzLnJlc291cmNlLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLnJvbGUpO1xuICAgIH0gZWxzZSBpZiAocHJvcHMuaW5zdGFuY2VQcm9maWxlPy5yb2xlKSB7XG4gICAgICB0aGlzLnJlc291cmNlLm5vZGUuYWRkRGVwZW5kZW5jeShwcm9wcy5pbnN0YW5jZVByb2ZpbGUucm9sZSk7XG4gICAgfVxuXG4gICAgVGFncy5vZih0aGlzKS5hZGQoTkFNRV9UQUcsIHRoaXMubm9kZS5wYXRoKTtcblxuICAgIHRoaXMuZGVmYXVsdFZlcnNpb25OdW1iZXIgPSB0aGlzLnJlc291cmNlLmRlZmF1bHRWZXJzaW9uLnRvU3RyaW5nKCk7IC8vIHNob3VsZCBiZSBUb2tlbi5hc1N0cmluZygpP1xuICAgIHRoaXMubGF0ZXN0VmVyc2lvbk51bWJlciA9IHRoaXMucmVzb3VyY2UubGF0ZXN0VmVyc2lvbi50b1N0cmluZygpOyAvLyBzaG91bGQgYmUgVG9rZW4uYXNTdHJpbmcoKT9cbiAgICB0aGlzLmxhdW5jaFRlbXBsYXRlSWQgPSB0aGlzLnJlc291cmNlLmlkO1xuICAgIHRoaXMudmVyc2lvbk51bWJlciA9IHRoaXMucmVzb3VyY2UubGF0ZXN0VmVyc2lvbi50b1N0cmluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJNZXRhZGF0YU9wdGlvbnMocHJvcHM6IExhdW5jaFRlbXBsYXRlUHJvcHMpIHtcbiAgICBsZXQgcmVxdWlyZU1ldGFkYXRhT3B0aW9ucyA9IGZhbHNlO1xuICAgIC8vIGlmIHJlcXVpcmVJbWRzdjIgaXMgdHJ1ZSwgaHR0cFRva2VucyBtdXN0IGJlIHJlcXVpcmVkLlxuICAgIGlmIChcbiAgICAgIHByb3BzLnJlcXVpcmVJbWRzdjIgPT09IHRydWUgJiZcbiAgICAgIHByb3BzLmh0dHBUb2tlbnMgPT09IExhdW5jaFRlbXBsYXRlSHR0cFRva2Vucy5PUFRJT05BTFxuICAgICkge1xuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkRXJyb3IoXG4gICAgICAgIFwiaHR0cFRva2VucyBtdXN0IGJlIHJlcXVpcmVkIHdoZW4gcmVxdWlyZUltZHN2MiBpcyB0cnVlXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBwcm9wcy5odHRwRW5kcG9pbnQgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgcHJvcHMuaHR0cFByb3RvY29sSXB2NiAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICBwcm9wcy5odHRwUHV0UmVzcG9uc2VIb3BMaW1pdCAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICBwcm9wcy5odHRwVG9rZW5zICE9PSB1bmRlZmluZWQgfHxcbiAgICAgIHByb3BzLmluc3RhbmNlTWV0YWRhdGFUYWdzICE9PSB1bmRlZmluZWQgfHxcbiAgICAgIHByb3BzLnJlcXVpcmVJbWRzdjIgPT09IHRydWVcbiAgICApIHtcbiAgICAgIHJlcXVpcmVNZXRhZGF0YU9wdGlvbnMgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAocmVxdWlyZU1ldGFkYXRhT3B0aW9ucykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaHR0cEVuZHBvaW50OlxuICAgICAgICAgIHByb3BzLmh0dHBFbmRwb2ludCA9PT0gdHJ1ZVxuICAgICAgICAgICAgPyBcImVuYWJsZWRcIlxuICAgICAgICAgICAgOiBwcm9wcy5odHRwRW5kcG9pbnQgPT09IGZhbHNlXG4gICAgICAgICAgICAgID8gXCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBodHRwUHJvdG9jb2xJcHY2OlxuICAgICAgICAgIHByb3BzLmh0dHBQcm90b2NvbElwdjYgPT09IHRydWVcbiAgICAgICAgICAgID8gXCJlbmFibGVkXCJcbiAgICAgICAgICAgIDogcHJvcHMuaHR0cFByb3RvY29sSXB2NiA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgPyBcImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIGh0dHBQdXRSZXNwb25zZUhvcExpbWl0OiBwcm9wcy5odHRwUHV0UmVzcG9uc2VIb3BMaW1pdCxcbiAgICAgICAgaHR0cFRva2VuczpcbiAgICAgICAgICBwcm9wcy5yZXF1aXJlSW1kc3YyID09PSB0cnVlXG4gICAgICAgICAgICA/IExhdW5jaFRlbXBsYXRlSHR0cFRva2Vucy5SRVFVSVJFRFxuICAgICAgICAgICAgOiBwcm9wcy5odHRwVG9rZW5zLFxuICAgICAgICBpbnN0YW5jZU1ldGFkYXRhVGFnczpcbiAgICAgICAgICBwcm9wcy5pbnN0YW5jZU1ldGFkYXRhVGFncyA9PT0gdHJ1ZVxuICAgICAgICAgICAgPyBcImVuYWJsZWRcIlxuICAgICAgICAgICAgOiBwcm9wcy5pbnN0YW5jZU1ldGFkYXRhVGFncyA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgPyBcImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIHNlY3VyaXR5IGdyb3VwIHRvIHRoZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHNlY3VyaXR5R3JvdXA6IFRoZSBzZWN1cml0eSBncm91cCB0byBhZGRcbiAgICovXG4gIHB1YmxpYyBhZGRTZWN1cml0eUdyb3VwKHNlY3VyaXR5R3JvdXA6IElTZWN1cml0eUdyb3VwKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9jb25uZWN0aW9ucykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkxhdW5jaFRlbXBsYXRlIGNhbiBvbmx5IGJlIGFkZGVkIGEgc2VjdXJpdHlHcm91cCBpZiBhbm90aGVyIHNlY3VyaXR5R3JvdXAgaXMgaW5pdGlhbGl6ZWQgaW4gdGhlIGNvbnN0cnVjdG9yLlwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5fY29ubmVjdGlvbnMuYWRkU2VjdXJpdHlHcm91cChzZWN1cml0eUdyb3VwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3Mgc3BlY2lmeWluZyBzZWN1cml0eSBncm91cCBjb25uZWN0aW9ucyBmb3IgdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAbm90ZSBPbmx5IGF2YWlsYWJsZSBpZiB5b3UgcHJvdmlkZSBhIHNlY3VyaXR5R3JvdXAgd2hlbiBjb25zdHJ1Y3RpbmcgdGhlIExhdW5jaFRlbXBsYXRlLlxuICAgKi9cbiAgcHVibGljIGdldCBjb25uZWN0aW9ucygpOiBDb25uZWN0aW9ucyB7XG4gICAgaWYgKCF0aGlzLl9jb25uZWN0aW9ucykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkxhdW5jaFRlbXBsYXRlIGNhbiBvbmx5IGJlIHVzZWQgYXMgSUNvbm5lY3RhYmxlIGlmIGEgc2VjdXJpdHlHcm91cCBpcyBwcm92aWRlZCB3aGVuIGNvbnN0cnVjdGluZyBpdC5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG8uXG4gICAqXG4gICAqIEBub3RlIE9ubHkgYXZhaWxhYmxlIGlmIHlvdSBwcm92aWRlIGEgcm9sZSB3aGVuIGNvbnN0cnVjdGluZyB0aGUgTGF1bmNoVGVtcGxhdGUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGdyYW50UHJpbmNpcGFsKCk6IGlhbS5JUHJpbmNpcGFsIHtcbiAgICBpZiAoIXRoaXMuX2dyYW50UHJpbmNpcGFsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiTGF1bmNoVGVtcGxhdGUgY2FuIG9ubHkgYmUgdXNlZCBhcyBJR3JhbnRhYmxlIGlmIGEgcm9sZSBpcyBwcm92aWRlZCB3aGVuIGNvbnN0cnVjdGluZyBpdC5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9ncmFudFByaW5jaXBhbDtcbiAgfVxufVxuIl19
|
|
@@ -177,5 +177,5 @@ class BaseListener extends aws_construct_1.AwsConstructBase {
|
|
|
177
177
|
}
|
|
178
178
|
exports.BaseListener = BaseListener;
|
|
179
179
|
_a = JSII_RTTI_SYMBOL_1;
|
|
180
|
-
BaseListener[_a] = { fqn: "terraconstructs.aws.compute.BaseListener", version: "0.0.
|
|
180
|
+
BaseListener[_a] = { fqn: "terraconstructs.aws.compute.BaseListener", version: "0.0.13" };
|
|
181
181
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0ZW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9sYi1zaGFyZWQvYmFzZS1saXN0ZW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJIQUEySDtBQUUzSCxzREFBK0Q7QUFDL0QsaUNBS2U7QUFRZixpQ0FPZ0I7QUFDaEIsdURBQXNFO0FBMkV0RTs7R0FFRztBQUNILE1BQXNCLFlBQ3BCLFNBQVEsZ0NBQWdCO0lBR3hCLE1BQU07SUFDTiwyRUFBMkU7SUFDM0Usb0JBQW9CO0lBQ3BCLGVBQWU7SUFDZixNQUFNO0lBQ04sMENBQTBDO0lBQzFDLHNCQUFzQjtJQUN0QixrREFBa0Q7SUFDbEQsTUFBTTtJQUNOLFNBQVM7SUFDVCxpRUFBaUU7SUFDakUsc0VBQXNFO0lBQ3RFLDRCQUE0QjtJQUM1QixXQUFXO0lBQ1gsMkRBQTJEO0lBQzNELFFBQVE7SUFDUix1QkFBdUI7SUFDdkIsMEZBQTBGO0lBQzFGLFNBQVM7SUFDVCxNQUFNO0lBRU4sa0RBQWtEO0lBQ2xELGdEQUFnRDtJQUNoRCxnRkFBZ0Y7SUFDaEYsTUFBTTtJQUVOLDZEQUE2RDtJQUM3RCx3Q0FBd0M7SUFDeEMsNEVBQTRFO0lBQzVFLGlCQUFpQjtJQUNqQiw0Q0FBNEM7SUFDNUMsMERBQTBEO0lBQzFELHNEQUFzRDtJQUN0RCxnRUFBZ0U7SUFDaEUsMENBQTBDO0lBQzFDLHNEQUFzRDtJQUN0RCx3REFBd0Q7SUFDeEQsc0JBQXNCO0lBQ3RCLG9FQUFvRTtJQUNwRSxzS0FBc0s7SUFDdEssNEJBQTRCO0lBQzVCLGlEQUFpRDtJQUNqRCx3REFBd0Q7SUFDeEQsZ0JBQWdCO0lBRWhCLGtCQUFrQjtJQUNsQixJQUFJO0lBRUo7O09BRUc7SUFDSCxJQUFXLGVBQWU7UUFDeEIsT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztTQUM5QixDQUFDO0lBQ0osQ0FBQztJQUNELElBQVcsT0FBTztR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QkFDTCxnR0FBZ0c7YUFDakcsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7OztPQUlHO0lBQ08saUJBQWlCLENBQUMsTUFBdUI7UUFDakQsdUNBQXVDO1FBQ3ZDLEVBQUU7UUFDRixrRkFBa0Y7UUFDbEYseUZBQXlGO1FBQ3pGLDhGQUE4RjtRQUM5RixrREFBa0Q7UUFDbEQsRUFBRTtRQUNGLDBDQUEwQztRQUMxQyw0RUFBNEU7UUFDNUUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsOERBQThEO1lBQzlELG1CQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FDN0IsMkdBQTJHLENBQzVHLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDOUIsQ0FBQzs7QUE5T0gsb0NBK09DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjIvbGliL3NoYXJlZC9iYXNlLWxpc3RlbmVyLnRzXG5cbmltcG9ydCB7IGxiTGlzdGVuZXIgYXMgdGZMaXN0ZW5lciB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQge1xuICBBbm5vdGF0aW9ucyxcbiAgLy8gQ29udGV4dFByb3ZpZGVyLFxuICBMYXp5LFxuICAvLyBUb2tlbixcbn0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgTG9hZEJhbGFuY2VyVHlwZSxcbiAgTG9hZEJhbGFuY2VyTGlzdGVuZXJQcm90b2NvbCxcbn0gZnJvbSBcIi4vZ3JpZC1sb29rdXAtdHlwZXNcIjtcbmltcG9ydCB7IExiTGlzdGVuZXJDb25maWcgfSBmcm9tIFwiLi9sYi1saXN0ZW5lci1jb25maWcuZ2VuZXJhdGVkXCI7XG5pbXBvcnQgeyBJTGlzdGVuZXJBY3Rpb24gfSBmcm9tIFwiLi9saXN0ZW5lci1hY3Rpb25cIjtcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZXMsXG4gIC8vIG1hcFRhZ01hcFRvQ3hzY2hlbWEsXG4gIC8vIHJlbmRlckF0dHJpYnV0ZXMsXG4gIExpc3RlbmVyQXR0cmlidXRlIGFzIEF0dHJpYnV0ZSxcbiAgbG9va3VwQm9vbEF0dHJpYnV0ZSxcbiAgbG9va3VwTnVtYmVyQXR0cmlidXRlLFxufSBmcm9tIFwiLi91dGlsXCI7XG5pbXBvcnQgeyBJQXdzQ29uc3RydWN0LCBBd3NDb25zdHJ1Y3RCYXNlIH0gZnJvbSBcIi4uLy4uL2F3cy1jb25zdHJ1Y3RcIjtcbi8qKlxuICogT3B0aW9ucyBmb3IgbGlzdGVuZXIgbG9va3VwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUxpc3RlbmVyTG9va3VwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBGaWx0ZXIgbGlzdGVuZXJzIGJ5IGFzc29jaWF0ZWQgbG9hZCBiYWxhbmNlciBhcm5cbiAgICogQGRlZmF1bHQgLSBkb2VzIG5vdCBmaWx0ZXIgYnkgbG9hZCBiYWxhbmNlciBhcm5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckFybj86IHN0cmluZztcblxuICAvKipcbiAgICogRmlsdGVyIGxpc3RlbmVycyBieSBhc3NvY2lhdGVkIGxvYWQgYmFsYW5jZXIgdGFnc1xuICAgKiBAZGVmYXVsdCAtIGRvZXMgbm90IGZpbHRlciBieSBsb2FkIGJhbGFuY2VyIHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlclRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBGaWx0ZXIgbGlzdGVuZXJzIGJ5IGxpc3RlbmVyIHBvcnRcbiAgICogQGRlZmF1bHQgLSBkb2VzIG5vdCBmaWx0ZXIgYnkgbGlzdGVuZXIgcG9ydFxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXJQb3J0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHF1ZXJ5aW5nIHRoZSBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyIGNvbnRleHQgcHJvdmlkZXJcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RlbmVyUXVlcnlDb250ZXh0UHJvdmlkZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFVzZXIncyBwcm92aWRlZCBvcHRpb25zXG4gICAqL1xuICByZWFkb25seSB1c2VyT3B0aW9uczogQmFzZUxpc3RlbmVyTG9va3VwT3B0aW9ucztcblxuICAvKipcbiAgICogVHlwZSBvZiBsb2FkIGJhbGFuY2VyIGV4cGVjdGVkXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJUeXBlOiBMb2FkQmFsYW5jZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIGxpc3RlbmVyIHRvIGxvb2sgdXBcbiAgICogQGRlZmF1bHQgLSBkb2VzIG5vdCBmaWx0ZXIgYnkgbGlzdGVuZXIgYXJuXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lckFybj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgcHJvdG9jb2wgb2YgdGhlIGxpc3RlbmVyIHRvIGxvb2sgdXBcbiAgICovXG4gIHJlYWRvbmx5IGxpc3RlbmVyUHJvdG9jb2w/OiBMb2FkQmFsYW5jZXJMaXN0ZW5lclByb3RvY29sO1xufVxuXG4vKipcbiAqIE91dHB1dHMgd2hpY2ggbWF5IGJlIHJlZ2lzdGVyZWQgZm9yIG91dHB1dCB2aWEgdGhlIEdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdGVuZXJPdXRwdXRzIHtcbiAgLyoqXG4gICAqIEFSTiBvZiB0aGUgbGlzdGVuZXJcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXJBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGludGVyZmFjZSBmb3IgbGlzdGVuZXJzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUxpc3RlbmVyIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKiBTdHJvbmdseSB0eXBlZCBvdXRwdXRzICovXG4gIHJlYWRvbmx5IGxpc3RlbmVyT3V0cHV0czogTGlzdGVuZXJPdXRwdXRzO1xuICAvKipcbiAgICogQVJOIG9mIHRoZSBsaXN0ZW5lclxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lckFybjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGxpc3RlbmVyc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUxpc3RlbmVyXG4gIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZVxuICBpbXBsZW1lbnRzIElMaXN0ZW5lclxue1xuICAvLyAvKipcbiAgLy8gICogUXVlcmllcyB0aGUgbG9hZCBiYWxhbmNlciBsaXN0ZW5lciBjb250ZXh0IHByb3ZpZGVyIGZvciBsb2FkIGJhbGFuY2VyXG4gIC8vICAqIGxpc3RlbmVyIGluZm8uXG4gIC8vICAqIEBpbnRlcm5hbFxuICAvLyAgKi9cbiAgLy8gcHJvdGVjdGVkIHN0YXRpYyBfcXVlcnlDb250ZXh0UHJvdmlkZXIoXG4gIC8vICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgLy8gICBvcHRpb25zOiBMaXN0ZW5lclF1ZXJ5Q29udGV4dFByb3ZpZGVyT3B0aW9ucyxcbiAgLy8gKSB7XG4gIC8vICAgaWYgKFxuICAvLyAgICAgVG9rZW4uaXNVbnJlc29sdmVkKG9wdGlvbnMudXNlck9wdGlvbnMubG9hZEJhbGFuY2VyQXJuKSB8fFxuICAvLyAgICAgT2JqZWN0LnZhbHVlcyhvcHRpb25zLnVzZXJPcHRpb25zLmxvYWRCYWxhbmNlclRhZ3MgPz8ge30pLnNvbWUoXG4gIC8vICAgICAgIFRva2VuLmlzVW5yZXNvbHZlZCxcbiAgLy8gICAgICkgfHxcbiAgLy8gICAgIFRva2VuLmlzVW5yZXNvbHZlZChvcHRpb25zLnVzZXJPcHRpb25zLmxpc3RlbmVyUG9ydClcbiAgLy8gICApIHtcbiAgLy8gICAgIHRocm93IG5ldyBFcnJvcihcbiAgLy8gICAgICAgXCJBbGwgYXJndW1lbnRzIHRvIGxvb2sgdXAgYSBsb2FkIGJhbGFuY2VyIGxpc3RlbmVyIG11c3QgYmUgY29uY3JldGUgKG5vIFRva2VucylcIixcbiAgLy8gICAgICk7XG4gIC8vICAgfVxuXG4gIC8vICAgbGV0IGN4c2NoZW1hVGFnczogY3hzY2hlbWEuVGFnW10gfCB1bmRlZmluZWQ7XG4gIC8vICAgaWYgKG9wdGlvbnMudXNlck9wdGlvbnMubG9hZEJhbGFuY2VyVGFncykge1xuICAvLyAgICAgY3hzY2hlbWFUYWdzID0gbWFwVGFnTWFwVG9DeHNjaGVtYShvcHRpb25zLnVzZXJPcHRpb25zLmxvYWRCYWxhbmNlclRhZ3MpO1xuICAvLyAgIH1cblxuICAvLyAgIGNvbnN0IHByb3BzOiBjeGFwaS5Mb2FkQmFsYW5jZXJMaXN0ZW5lckNvbnRleHRSZXNwb25zZSA9XG4gIC8vICAgICBDb250ZXh0UHJvdmlkZXIuZ2V0VmFsdWUoc2NvcGUsIHtcbiAgLy8gICAgICAgcHJvdmlkZXI6IGN4c2NoZW1hLkNvbnRleHRQcm92aWRlci5MT0FEX0JBTEFOQ0VSX0xJU1RFTkVSX1BST1ZJREVSLFxuICAvLyAgICAgICBwcm9wczoge1xuICAvLyAgICAgICAgIGxpc3RlbmVyQXJuOiBvcHRpb25zLmxpc3RlbmVyQXJuLFxuICAvLyAgICAgICAgIGxpc3RlbmVyUG9ydDogb3B0aW9ucy51c2VyT3B0aW9ucy5saXN0ZW5lclBvcnQsXG4gIC8vICAgICAgICAgbGlzdGVuZXJQcm90b2NvbDogb3B0aW9ucy5saXN0ZW5lclByb3RvY29sLFxuICAvLyAgICAgICAgIGxvYWRCYWxhbmNlckFybjogb3B0aW9ucy51c2VyT3B0aW9ucy5sb2FkQmFsYW5jZXJBcm4sXG4gIC8vICAgICAgICAgbG9hZEJhbGFuY2VyVGFnczogY3hzY2hlbWFUYWdzLFxuICAvLyAgICAgICAgIGxvYWRCYWxhbmNlclR5cGU6IG9wdGlvbnMubG9hZEJhbGFuY2VyVHlwZSxcbiAgLy8gICAgICAgfSBhcyBjeHNjaGVtYS5Mb2FkQmFsYW5jZXJMaXN0ZW5lckNvbnRleHRRdWVyeSxcbiAgLy8gICAgICAgZHVtbXlWYWx1ZToge1xuICAvLyAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9uby1saXRlcmFsLXBhcnRpdGlvblxuICAvLyAgICAgICAgIGxpc3RlbmVyQXJuOiBgYXJuOmF3czplbGFzdGljbG9hZGJhbGFuY2luZzp1cy13ZXN0LTI6MTIzNDU2Nzg5MDEyOmxpc3RlbmVyLyR7b3B0aW9ucy5sb2FkQmFsYW5jZXJUeXBlfS9teS1sb2FkLWJhbGFuY2VyLzUwZGM2YzQ5NWMwYzkxODgvZjJmN2RjOGVmYzUyMmFiMmAsXG4gIC8vICAgICAgICAgbGlzdGVuZXJQb3J0OiA4MCxcbiAgLy8gICAgICAgICBzZWN1cml0eUdyb3VwSWRzOiBbXCJzZy0xMjM0NTY3ODkwMTJcIl0sXG4gIC8vICAgICAgIH0gYXMgY3hhcGkuTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UmVzcG9uc2UsXG4gIC8vICAgICB9KS52YWx1ZTtcblxuICAvLyAgIHJldHVybiBwcm9wcztcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiBTdHJvbmdseSB0eXBlZCBvdXRwdXRzXG4gICAqL1xuICBwdWJsaWMgZ2V0IGxpc3RlbmVyT3V0cHV0cygpOiBMaXN0ZW5lck91dHB1dHMge1xuICAgIHJldHVybiB7XG4gICAgICBsaXN0ZW5lckFybjogdGhpcy5saXN0ZW5lckFybixcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lck91dHB1dHM7XG4gIH1cblxuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxpc3RlbmVyQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZXMgc2V0IG9uIHRoaXMgbGlzdGVuZXJcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgYXR0cmlidXRlczogQXR0cmlidXRlcyA9IHt9O1xuXG4gIHByaXZhdGUgZGVmYXVsdEFjdGlvbj86IElMaXN0ZW5lckFjdGlvbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhZGRpdGlvbmFsUHJvcHM6IExiTGlzdGVuZXJDb25maWcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgdGZMaXN0ZW5lci5MYkxpc3RlbmVyKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgLy8gUmV2ZXJzZSBDRk4gTG9hZEJhbGFuY2VyQXR0cmlidXRlcyB0byBUZXJyYWZvcm0gUmVzb3VyY2UgcHJvcGVydGllc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2Jsb2IvdjUuODguMC9pbnRlcm5hbC9zZXJ2aWNlL2VsYnYyL2xpc3RlbmVyLmdvI0w4ODBcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbGlzdGVuZXItbGlzdGVuZXJhdHRyaWJ1dGUuaHRtbFxuICAgICAgLy8gbm90aWNlOiBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1wcm92aWRlci1hd3MvaXNzdWVzLzQwOTg2XG4gICAgICByb3V0aW5nSHR0cFJlcXVlc3RYQW16bk10bHNDbGllbnRjZXJ0SGVhZGVyTmFtZTogdGhpcy5sYXp5U3RyaW5nQXR0cihcbiAgICAgICAgQXR0cmlidXRlLnJvdXRpbmdIVFRQUmVxdWVzdFhBbXpuTXRsc0NsaWVudGNlcnRIZWFkZXJOYW1lLFxuICAgICAgKSxcbiAgICAgIHJvdXRpbmdIdHRwUmVxdWVzdFhBbXpuTXRsc0NsaWVudGNlcnRJc3N1ZXJIZWFkZXJOYW1lOlxuICAgICAgICB0aGlzLmxhenlTdHJpbmdBdHRyKFxuICAgICAgICAgIEF0dHJpYnV0ZS5yb3V0aW5nSFRUUFJlcXVlc3RYQW16bk10bHNDbGllbnRjZXJ0SXNzdWVySGVhZGVyTmFtZSxcbiAgICAgICAgKSxcbiAgICAgIHJvdXRpbmdIdHRwUmVxdWVzdFhBbXpuTXRsc0NsaWVudGNlcnRMZWFmSGVhZGVyTmFtZTogdGhpcy5sYXp5U3RyaW5nQXR0cihcbiAgICAgICAgQXR0cmlidXRlLnJvdXRpbmdIVFRQUmVxdWVzdFhBbXpuTXRsc0NsaWVudGNlcnRMZWFmSGVhZGVyTmFtZSxcbiAgICAgICksXG4gICAgICByb3V0aW5nSHR0cFJlcXVlc3RYQW16bk10bHNDbGllbnRjZXJ0U2VyaWFsTnVtYmVySGVhZGVyTmFtZTpcbiAgICAgICAgdGhpcy5sYXp5U3RyaW5nQXR0cihcbiAgICAgICAgICBBdHRyaWJ1dGUucm91dGluZ0hUVFBSZXF1ZXN0WEFtem5NdGxzQ2xpZW50Y2VydFNlcmlhbE51bWJlckhlYWRlck5hbWUsXG4gICAgICAgICksXG4gICAgICByb3V0aW5nSHR0cFJlcXVlc3RYQW16bk10bHNDbGllbnRjZXJ0U3ViamVjdEhlYWRlck5hbWU6XG4gICAgICAgIHRoaXMubGF6eVN0cmluZ0F0dHIoXG4gICAgICAgICAgQXR0cmlidXRlLnJvdXRpbmdIVFRQUmVxdWVzdFhBbXpuTXRsc0NsaWVudGNlcnRTdWJqZWN0SGVhZGVyTmFtZSxcbiAgICAgICAgKSxcbiAgICAgIHJvdXRpbmdIdHRwUmVxdWVzdFhBbXpuTXRsc0NsaWVudGNlcnRWYWxpZGl0eUhlYWRlck5hbWU6XG4gICAgICAgIHRoaXMubGF6eVN0cmluZ0F0dHIoXG4gICAgICAgICAgQXR0cmlidXRlLnJvdXRpbmdIVFRQUmVxdWVzdFhBbXpuTXRsc0NsaWVudGNlcnRWYWxpZGl0eUhlYWRlck5hbWUsXG4gICAgICAgICksXG4gICAgICByb3V0aW5nSHR0cFJlcXVlc3RYQW16blRsc0NpcGhlclN1aXRlSGVhZGVyTmFtZTogdGhpcy5sYXp5U3RyaW5nQXR0cihcbiAgICAgICAgQXR0cmlidXRlLnJvdXRpbmdIVFRQUmVxdWVzdFhBbXpuVGxzQ2lwaGVyU3VpdGVIZWFkZXJOYW1lLFxuICAgICAgKSxcbiAgICAgIHJvdXRpbmdIdHRwUmVxdWVzdFhBbXpuVGxzVmVyc2lvbkhlYWRlck5hbWU6IHRoaXMubGF6eVN0cmluZ0F0dHIoXG4gICAgICAgIEF0dHJpYnV0ZS5yb3V0aW5nSFRUUFJlcXVlc3RYQW16blRsc1ZlcnNpb25IZWFkZXJOYW1lLFxuICAgICAgKSxcbiAgICAgIHJvdXRpbmdIdHRwUmVzcG9uc2VBY2Nlc3NDb250cm9sQWxsb3dDcmVkZW50aWFsc0hlYWRlclZhbHVlOlxuICAgICAgICB0aGlzLmxhenlTdHJpbmdBdHRyKFxuICAgICAgICAgIEF0dHJpYnV0ZS5yb3V0aW5nSFRUUFJlc3BvbnNlQWNjZXNzQ29udHJvbEFsbG93Q3JlZGVudGlhbHNIZWFkZXJWYWx1ZSxcbiAgICAgICAgKSxcbiAgICAgIHJvdXRpbmdIdHRwUmVzcG9uc2VBY2Nlc3NDb250cm9sQWxsb3dIZWFkZXJzSGVhZGVyVmFsdWU6XG4gICAgICAgIHRoaXMubGF6eVN0cmluZ0F0dHIoXG4gICAgICAgICAgQXR0cmlidXRlLnJvdXRpbmdIVFRQUmVzcG9uc2VBY2Nlc3NDb250cm9sQWxsb3dIZWFkZXJzSGVhZGVyVmFsdWUsXG4gICAgICAgICksXG4gICAgICByb3V0aW5nSHR0cFJlc3BvbnNlQWNjZXNzQ29udHJvbEFsbG93TWV0aG9kc0hlYWRlclZhbHVlOlxuICAgICAgICB0aGlzLmxhenlTdHJpbmdBdHRyKFxuICAgICAgICAgIEF0dHJpYnV0ZS5yb3V0aW5nSFRUUFJlc3BvbnNlQWNjZXNzQ29udHJvbEFsbG93TWV0aG9kc0hlYWRlclZhbHVlLFxuICAgICAgICApLFxuICAgICAgcm91dGluZ0h0dHBSZXNwb25zZUFjY2Vzc0NvbnRyb2xBbGxvd09yaWdpbkhlYWRlclZhbHVlOlxuICAgICAgICB0aGlzLmxhenlTdHJpbmdBdHRyKFxuICAgICAgICAgIEF0dHJpYnV0ZS5yb3V0aW5nSFRUUFJlc3BvbnNlQWNjZXNzQ29udHJvbEFsbG93T3JpZ2luSGVhZGVyVmFsdWUsXG4gICAgICAgICksXG4gICAgICByb3V0aW5nSHR0cFJlc3BvbnNlQWNjZXNzQ29udHJvbEV4cG9zZUhlYWRlcnNIZWFkZXJWYWx1ZTpcbiAgICAgICAgdGhpcy5sYXp5U3RyaW5nQXR0cihcbiAgICAgICAgICBBdHRyaWJ1dGUucm91dGluZ0hUVFBSZXNwb25zZUFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJzSGVhZGVyVmFsdWUsXG4gICAgICAgICksXG4gICAgICByb3V0aW5nSHR0cFJlc3BvbnNlQWNjZXNzQ29udHJvbE1heEFnZUhlYWRlclZhbHVlOiB0aGlzLmxhenlTdHJpbmdBdHRyKFxuICAgICAgICBBdHRyaWJ1dGUucm91dGluZ0hUVFBSZXNwb25zZUFjY2Vzc0NvbnRyb2xNYXhBZ2VIZWFkZXJWYWx1ZSxcbiAgICAgICksXG4gICAgICByb3V0aW5nSHR0cFJlc3BvbnNlQ29udGVudFNlY3VyaXR5UG9saWN5SGVhZGVyVmFsdWU6IHRoaXMubGF6eVN0cmluZ0F0dHIoXG4gICAgICAgIEF0dHJpYnV0ZS5yb3V0aW5nSFRUUFJlc3BvbnNlQ29udGVudFNlY3VyaXR5UG9saWN5SGVhZGVyVmFsdWUsXG4gICAgICApLFxuICAgICAgcm91dGluZ0h0dHBSZXNwb25zZVNlcnZlckVuYWJsZWQ6IHRoaXMubGF6eUJvb2xBdHRyKFxuICAgICAgICBBdHRyaWJ1dGUucm91dGluZ0hUVFBSZXNwb25zZVNlcnZlckVuYWJsZWQsXG4gICAgICApLFxuICAgICAgcm91dGluZ0h0dHBSZXNwb25zZVN0cmljdFRyYW5zcG9ydFNlY3VyaXR5SGVhZGVyVmFsdWU6XG4gICAgICAgIHRoaXMubGF6eVN0cmluZ0F0dHIoXG4gICAgICAgICAgQXR0cmlidXRlLnJvdXRpbmdIVFRQUmVzcG9uc2VTdHJpY3RUcmFuc3BvcnRTZWN1cml0eUhlYWRlclZhbHVlLFxuICAgICAgICApLFxuICAgICAgcm91dGluZ0h0dHBSZXNwb25zZVhDb250ZW50VHlwZU9wdGlvbnNIZWFkZXJWYWx1ZTogdGhpcy5sYXp5U3RyaW5nQXR0cihcbiAgICAgICAgQXR0cmlidXRlLnJvdXRpbmdIVFRQUmVzcG9uc2VYQ29udGVudFR5cGVPcHRpb25zSGVhZGVyVmFsdWUsXG4gICAgICApLFxuICAgICAgcm91dGluZ0h0dHBSZXNwb25zZVhGcmFtZU9wdGlvbnNIZWFkZXJWYWx1ZTogdGhpcy5sYXp5U3RyaW5nQXR0cihcbiAgICAgICAgQXR0cmlidXRlLnJvdXRpbmdIVFRQUmVzcG9uc2VYRnJhbWVPcHRpb25zSGVhZGVyVmFsdWUsXG4gICAgICApLFxuICAgICAgdGNwSWRsZVRpbWVvdXRTZWNvbmRzOiB0aGlzLmxhenlOdW1iZXJBdHRyKFxuICAgICAgICBBdHRyaWJ1dGUudGNwSWRsZVRpbWVvdXRTZWNvbmRzLFxuICAgICAgKSxcbiAgICAgIC4uLmFkZGl0aW9uYWxQcm9wcyxcbiAgICAgIGRlZmF1bHRBY3Rpb246IExhenkuYW55VmFsdWUoe1xuICAgICAgICBwcm9kdWNlOiAoKTogdGZMaXN0ZW5lci5MYkxpc3RlbmVyRGVmYXVsdEFjdGlvbltdID0+IHtcbiAgICAgICAgICBjb25zdCByZW5kZXJlZCA9IHRoaXMuZGVmYXVsdEFjdGlvbj8ucmVuZGVyQWN0aW9ucygpID8/IFtdO1xuICAgICAgICAgIHJldHVybiByZW5kZXJlZC5tYXAodGZMaXN0ZW5lci5sYkxpc3RlbmVyRGVmYXVsdEFjdGlvblRvVGVycmFmb3JtKTtcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgLy8gbGlzdGVuZXJBdHRyaWJ1dGVzOiBMYXp5LmFueVZhbHVlKFxuICAgICAgLy8gICB7IHByb2R1Y2U6ICgpID0+IHJlbmRlckF0dHJpYnV0ZXModGhpcy5hdHRyaWJ1dGVzKSB9LFxuICAgICAgLy8gICB7IG9taXRFbXB0eUFycmF5OiB0cnVlIH0sXG4gICAgICAvLyApLFxuICAgIH0pO1xuXG4gICAgdGhpcy5saXN0ZW5lckFybiA9IHJlc291cmNlLmFybjtcbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih7IHZhbGlkYXRlOiAoKSA9PiB0aGlzLnZhbGlkYXRlTGlzdGVuZXIoKSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYSBub24tc3RhbmRhcmQgYXR0cmlidXRlIG9uIHRoZSBsaXN0ZW5lclxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbGlzdGVuZXItbGlzdGVuZXJhdHRyaWJ1dGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHNldEF0dHJpYnV0ZShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuYXR0cmlidXRlc1trZXldID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIGF0dHJpYnV0ZSBmcm9tIHRoZSBsaXN0ZW5lclxuICAgKi9cbiAgcHVibGljIHJlbW92ZUF0dHJpYnV0ZShrZXk6IHN0cmluZykge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKGtleSwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHByaXZhdGUgbGF6eVN0cmluZ0F0dHIoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gTGF6eS5zdHJpbmdWYWx1ZSh7XG4gICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLmF0dHJpYnV0ZXNba2V5XSxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGxhenlCb29sQXR0cihrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBMYXp5LmFueVZhbHVlKHtcbiAgICAgIHByb2R1Y2U6ICgpID0+IGxvb2t1cEJvb2xBdHRyaWJ1dGUodGhpcy5hdHRyaWJ1dGVzLCBrZXkpLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgbGF6eU51bWJlckF0dHIoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gTGF6eS5udW1iZXJWYWx1ZSh7XG4gICAgICBwcm9kdWNlOiAoKSA9PiBsb29rdXBOdW1iZXJBdHRyaWJ1dGUodGhpcy5hdHRyaWJ1dGVzLCBrZXkpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIHRoaXMgbGlzdGVuZXJcbiAgICovXG4gIHByb3RlY3RlZCB2YWxpZGF0ZUxpc3RlbmVyKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMuZGVmYXVsdEFjdGlvbikge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgXCJMaXN0ZW5lciBuZWVkcyBhdCBsZWFzdCBvbmUgZGVmYXVsdCBhY3Rpb24gb3IgdGFyZ2V0IGdyb3VwIChjYWxsIGFkZFRhcmdldEdyb3VwcyBvciBhZGRBY3Rpb24pXCIsXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfc2V0RGVmYXVsdEFjdGlvbihhY3Rpb246IElMaXN0ZW5lckFjdGlvbikge1xuICAgIC8vIEl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gJ3Rocm93JyBoZXJlLlxuICAgIC8vXG4gICAgLy8gSG93ZXZlciwgcHJvZ3JhbXMgbWF5IGFscmVhZHkgZXhpc3Qgb3V0IHRoZXJlIHdoaWNoIGNvbmZpZ3VyZWQgYW4gYWN0aW9uIHR3aWNlLFxuICAgIC8vIGluIHdoaWNoIGNhc2UgdGhlIHNlY29uZCBhY3Rpb24gYWNjaWRlbnRhbGx5IG92ZXJ3cml0ZSB0aGUgaW5pdGlhbCBhY3Rpb24sIGFuZCBpbiBzb21lXG4gICAgLy8gd2F5IGVuZGVkIHVwIHdpdGggYSBwcm9ncmFtIHRoYXQgZGlkIHdoYXQgdGhlIGF1dGhvciBpbnRlbmRlZC4gSWYgd2Ugd2VyZSB0byBhZGQgdGhyb3cgbm93LFxuICAgIC8vIHRoZSBwcmV2aW91c2x5IHdvcmtpbmcgcHJvZ3JhbSB3b3VsZCBiZSBicm9rZW4uXG4gICAgLy9cbiAgICAvLyBJbnN0ZWFkLCBzaWduYWwgdGhpcyB0aHJvdWdoIGEgd2FybmluZy5cbiAgICAvLyBAZGVwcmVjYXRlOiB1cG9uIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gYnVtcCwgcmVwbGFjZSB0aGlzIHdpdGggYSBgdGhyb3dgXG4gICAgaWYgKHRoaXMuZGVmYXVsdEFjdGlvbikge1xuICAgICAgLy8gXCJAYXdzLWNkay9hd3MtZWxidjI6bGlzdGVuZXJFeGlzdGluZ0RlZmF1bHRBY3Rpb25SZXBsYWNlZFwiLFxuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZyhcbiAgICAgICAgXCJBIGRlZmF1bHQgQWN0aW9uIGFscmVhZHkgZXhpc3RlZCBvbiB0aGlzIExpc3RlbmVyIGFuZCB3YXMgcmVwbGFjZWQuIENvbmZpZ3VyZSBleGFjdGx5IG9uZSBkZWZhdWx0IEFjdGlvbi5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5kZWZhdWx0QWN0aW9uID0gYWN0aW9uO1xuICB9XG59XG4iXX0=
|
|
@@ -286,5 +286,5 @@ class BaseLoadBalancer extends aws_construct_1.AwsConstructBase {
|
|
|
286
286
|
}
|
|
287
287
|
exports.BaseLoadBalancer = BaseLoadBalancer;
|
|
288
288
|
_a = JSII_RTTI_SYMBOL_1;
|
|
289
|
-
BaseLoadBalancer[_a] = { fqn: "terraconstructs.aws.compute.BaseLoadBalancer", version: "0.0.
|
|
289
|
+
BaseLoadBalancer[_a] = { fqn: "terraconstructs.aws.compute.BaseLoadBalancer", version: "0.0.13" };
|
|
290
290
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sb2FkLWJhbGFuY2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2xiLXNoYXJlZC9iYXNlLWxvYWQtYmFsYW5jZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnSUFBZ0k7QUFFaEksc0RBQTJEO0FBQzNELGlDQUtlO0FBRWYsbUNBQXdDO0FBQ3hDLHFEQUFxRDtBQUNyRCxpQ0FTZ0I7QUFDaEIsMkJBQTJCO0FBQzNCLGlFQUF5RDtBQUN6RCwyREFBdUQ7QUFDdkQsbUNBQXNDO0FBQ3RDLHVEQUk2QjtBQUM3QiwrQ0FBMkM7QUFDM0MsaUNBQWlDO0FBQ2pDLG1DQUE4RDtBQXVJOUQ7O0dBRUc7QUFDSCxNQUFzQixnQkFBaUIsU0FBUSxnQ0FBZ0I7SUFDN0QsTUFBTTtJQUNOLHdFQUF3RTtJQUN4RSxlQUFlO0lBQ2YsTUFBTTtJQUNOLDBDQUEwQztJQUMxQyxzQkFBc0I7SUFDdEIsc0RBQXNEO0lBQ3RELE1BQU07SUFDTixTQUFTO0lBQ1QsaUVBQWlFO0lBQ2pFLHNFQUFzRTtJQUN0RSw0QkFBNEI7SUFDNUIsUUFBUTtJQUNSLFFBQVE7SUFDUix1QkFBdUI7SUFDdkIsaUZBQWlGO0lBQ2pGLFNBQVM7SUFDVCxNQUFNO0lBRU4sa0RBQWtEO0lBQ2xELGdEQUFnRDtJQUNoRCxnRkFBZ0Y7SUFDaEYsTUFBTTtJQUVOLCtFQUErRTtJQUMvRSxhQUFhO0lBQ2IsUUFBUTtJQUNSLG1FQUFtRTtJQUNuRSxpQkFBaUI7SUFDakIsZ0VBQWdFO0lBQ2hFLDBDQUEwQztJQUMxQyxzREFBc0Q7SUFDdEQsZ0RBQWdEO0lBQ2hELHNCQUFzQjtJQUN0QixxRUFBcUU7SUFDckUsb0VBQW9FO0lBQ3BFLDZKQUE2SjtJQUM3SiwrREFBK0Q7SUFDL0QsK0JBQStCO0lBQy9CLHVFQUF1RTtJQUN2RSx5Q0FBeUM7SUFDekMsOEJBQThCO0lBQzlCLGdEQUFnRDtJQUNoRCxTQUFTO0lBQ1QsYUFB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R0FBRyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFUyxvQkFBb0I7UUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUVoQyxvS0FBb0s7UUFDcEssTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzNDLElBQ0UsQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO1lBQ3JDLGdCQUFnQixLQUFLLFNBQVMsRUFDOUIsQ0FBQztZQUNELElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO2dCQUNqQyxHQUFHLENBQUMsSUFBSSxDQUNOLHdCQUF3QixnQkFBZ0Isd0NBQXdDLENBQ2pGLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDN0MsR0FBRyxDQUFDLElBQUksQ0FDTix3QkFBd0IsZ0JBQWdCLG9DQUFvQyxDQUM3RSxDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN2RSxHQUFHLENBQUMsSUFBSSxDQUNOLHdCQUF3QixnQkFBZ0Isd0NBQXdDLENBQ2pGLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxHQUFHLENBQUMsSUFBSSxDQUNOLHdCQUF3QixnQkFBZ0IseURBQXlELENBQ2xHLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7QUFsYUgsNENBbWFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjIvbGliL3NoYXJlZC9iYXNlLWxvYWQtYmFsYW5jZXIudHNcblxuaW1wb3J0IHsgbGIgYXMgdGZMb2FkQmFsYW5jZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHtcbiAgVGVycmFmb3JtUmVzb3VyY2UsXG4gIC8vIENvbnRleHRQcm92aWRlcixcbiAgTGF6eSxcbiAgVG9rZW4sXG59IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IElwQWRkcmVzc1R5cGUgfSBmcm9tIFwiLi9lbnVtc1wiO1xuLy8gaW1wb3J0IHsgUmVnaW9uSW5mbyB9IGZyb20gXCIuLi8uLi8uLi9yZWdpb24taW5mb1wiO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRlcyxcbiAgaWZVbmRlZmluZWQsXG4gIExvYWRCYWxhbmNlckF0dHJpYnV0ZSBhcyBBdHRyaWJ1dGUsXG4gIGxvb2t1cEJvb2xBdHRyaWJ1dGUsXG4gIGxvb2t1cE51bWJlckF0dHJpYnV0ZSxcbiAgbG9va3VwU3RyaW5nQXR0cmlidXRlLFxuICAvLyBtYXBUYWdNYXBUb0N4c2NoZW1hLFxuICAvLyByZW5kZXJBdHRyaWJ1dGVzLFxufSBmcm9tIFwiLi91dGlsXCI7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcIi4uL1wiO1xuaW1wb3J0IHsgZ2V0RWxidjJBY2NvdW50IH0gZnJvbSBcIi4vYWNjZXNzLWxvZ3MtYWNjb3VudHNcIjtcbmltcG9ydCB7IExvYWRCYWxhbmNlclR5cGUgfSBmcm9tIFwiLi9ncmlkLWxvb2t1cC10eXBlc1wiO1xuaW1wb3J0IHsgQXJuRm9ybWF0IH0gZnJvbSBcIi4uLy4uL2FyblwiO1xuaW1wb3J0IHtcbiAgSUF3c0NvbnN0cnVjdCxcbiAgQXdzQ29uc3RydWN0QmFzZSxcbiAgQXdzQ29uc3RydWN0UHJvcHMsXG59IGZyb20gXCIuLi8uLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi8uLi9hd3Mtc3RhY2tcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vaWFtXCI7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiLi4vLi4vaWFtXCI7XG5pbXBvcnQgKiBhcyBzMyBmcm9tIFwiLi4vLi4vc3RvcmFnZVwiO1xuXG4vKipcbiAqIFNoYXJlZCBwcm9wZXJ0aWVzIG9mIGJvdGggQXBwbGljYXRpb24gYW5kIE5ldHdvcmsgTG9hZCBCYWxhbmNlcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlTG9hZEJhbGFuY2VyUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBsb2FkIGJhbGFuY2VyXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBWUEMgbmV0d29yayB0byBwbGFjZSB0aGUgbG9hZCBiYWxhbmNlciBpblxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBlYzIuSVZwYztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbG9hZCBiYWxhbmNlciBoYXMgYW4gaW50ZXJuZXQtcm91dGFibGUgYWRkcmVzc1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZXJuZXRGYWNpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGljaCBzdWJuZXRzIHBsYWNlIHRoZSBsb2FkIGJhbGFuY2VyIGluXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIFZwYyBkZWZhdWx0IHN0cmF0ZWd5LlxuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIGRlbGV0aW9uIHByb3RlY3Rpb24gaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0aW9uUHJvdGVjdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIGNyb3NzLXpvbmUgbG9hZCBiYWxhbmNpbmcgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZSBmb3IgTmV0d29yayBMb2FkIEJhbGFuY2VycyBhbmQgdHJ1ZSBmb3IgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcnMuXG4gICAqIFRoaXMgY2FuIG5vdCBiZSBgZmFsc2VgIGZvciBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2Vycy5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyLWxvYWRiYWxhbmNlci1sb2FkYmFsYW5jZXJhdHRyaWJ1dGUuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgY3Jvc3Nab25lRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBsb2FkIGJhbGFuY2VyIGJsb2NrcyB0cmFmZmljIHRocm91Z2ggdGhlIEludGVybmV0IEdhdGV3YXkgKElHVykuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2UgZm9yIGludGVybmV0LWZhY2luZyBsb2FkIGJhbGFuY2VycyBhbmQgdHJ1ZSBmb3IgaW50ZXJuYWwgbG9hZCBiYWxhbmNlcnNcbiAgICovXG4gIHJlYWRvbmx5IGRlbnlBbGxJZ3dUcmFmZmljPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPdXRwdXRzIHdoaWNoIG1heSBiZSByZWdpc3RlcmVkIGZvciBvdXRwdXQgdmlhIHRoZSBHcmlkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlclYyT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgY2Fub25pY2FsIGhvc3RlZCB6b25lIElEIG9mIHRoaXMgbG9hZCBiYWxhbmNlclxuICAgKlxuICAgKiBFeGFtcGxlIHZhbHVlOiBgWjJQNzBKN0VYQU1QTEVgXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckNhbm9uaWNhbEhvc3RlZFpvbmVJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEROUyBuYW1lIG9mIHRoaXMgbG9hZCBiYWxhbmNlclxuICAgKlxuICAgKiBFeGFtcGxlIHZhbHVlOiBgbXktbG9hZC1iYWxhbmNlci00MjQ4MzU3MDYudXMtd2VzdC0yLmVsYi5hbWF6b25hd3MuY29tYFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJEbnNOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxvYWRCYWxhbmNlclYyIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKiBTdHJvbmdseSB0eXBlZCBvdXRwdXRzICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlclYyT3V0cHV0czogTG9hZEJhbGFuY2VyVjJPdXRwdXRzO1xuICAvKipcbiAgICogVGhlIGNhbm9uaWNhbCBob3N0ZWQgem9uZSBJRCBvZiB0aGlzIGxvYWQgYmFsYW5jZXJcbiAgICpcbiAgICogRXhhbXBsZSB2YWx1ZTogYFoyUDcwSjdFWEFNUExFYFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJDYW5vbmljYWxIb3N0ZWRab25lSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEROUyBuYW1lIG9mIHRoaXMgbG9hZCBiYWxhbmNlclxuICAgKlxuICAgKiBFeGFtcGxlIHZhbHVlOiBgbXktbG9hZC1iYWxhbmNlci00MjQ4MzU3MDYudXMtd2VzdC0yLmVsYi5hbWF6b25hd3MuY29tYFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJEbnNOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgbG9va2luZyB1cCBsb2FkIGJhbGFuY2Vyc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VMb2FkQmFsYW5jZXJMb29rdXBPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZpbmQgYnkgbG9hZCBiYWxhbmNlcidzIEFSTlxuICAgKiBAZGVmYXVsdCAtIGRvZXMgbm90IHNlYXJjaCBieSBsb2FkIGJhbGFuY2VyIGFyblxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYXRjaCBsb2FkIGJhbGFuY2VyIHRhZ3MuXG4gICAqIEBkZWZhdWx0IC0gZG9lcyBub3QgbWF0Y2ggbG9hZCBiYWxhbmNlcnMgYnkgdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyVGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgcXVlcnkgY29udGV4dCBwcm92aWRlclxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyUXVlcnlDb250ZXh0UHJvdmlkZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFVzZXIncyBsb29rdXAgb3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgdXNlck9wdGlvbnM6IEJhc2VMb2FkQmFsYW5jZXJMb29rdXBPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBUeXBlIG9mIGxvYWQgYmFsYW5jZXJcbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlclR5cGU6IExvYWRCYWxhbmNlclR5cGU7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYm90aCBBcHBsaWNhdGlvbiBhbmQgTmV0d29yayBMb2FkIEJhbGFuY2Vyc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUxvYWRCYWxhbmNlciBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICAvLyAvKipcbiAgLy8gICogUXVlcmllcyB0aGUgbG9hZCBiYWxhbmNlciBjb250ZXh0IHByb3ZpZGVyIGZvciBsb2FkIGJhbGFuY2VyIGluZm8uXG4gIC8vICAqIEBpbnRlcm5hbFxuICAvLyAgKi9cbiAgLy8gcHJvdGVjdGVkIHN0YXRpYyBfcXVlcnlDb250ZXh0UHJvdmlkZXIoXG4gIC8vICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgLy8gICBvcHRpb25zOiBMb2FkQmFsYW5jZXJRdWVyeUNvbnRleHRQcm92aWRlck9wdGlvbnMsXG4gIC8vICkge1xuICAvLyAgIGlmIChcbiAgLy8gICAgIFRva2VuLmlzVW5yZXNvbHZlZChvcHRpb25zLnVzZXJPcHRpb25zLmxvYWRCYWxhbmNlckFybikgfHxcbiAgLy8gICAgIE9iamVjdC52YWx1ZXMob3B0aW9ucy51c2VyT3B0aW9ucy5sb2FkQmFsYW5jZXJUYWdzID8/IHt9KS5zb21lKFxuICAvLyAgICAgICBUb2tlbi5pc1VucmVzb2x2ZWQsXG4gIC8vICAgICApXG4gIC8vICAgKSB7XG4gIC8vICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gIC8vICAgICAgIFwiQWxsIGFyZ3VtZW50cyB0byBsb29rIHVwIGEgbG9hZCBiYWxhbmNlciBtdXN0IGJlIGNvbmNyZXRlIChubyBUb2tlbnMpXCIsXG4gIC8vICAgICApO1xuICAvLyAgIH1cblxuICAvLyAgIGxldCBjeHNjaGVtYVRhZ3M6IGN4c2NoZW1hLlRhZ1tdIHwgdW5kZWZpbmVkO1xuICAvLyAgIGlmIChvcHRpb25zLnVzZXJPcHRpb25zLmxvYWRCYWxhbmNlclRhZ3MpIHtcbiAgLy8gICAgIGN4c2NoZW1hVGFncyA9IG1hcFRhZ01hcFRvQ3hzY2hlbWEob3B0aW9ucy51c2VyT3B0aW9ucy5sb2FkQmFsYW5jZXJUYWdzKTtcbiAgLy8gICB9XG5cbiAgLy8gICBjb25zdCBwcm9wczogY3hhcGkuTG9hZEJhbGFuY2VyQ29udGV4dFJlc3BvbnNlID0gQ29udGV4dFByb3ZpZGVyLmdldFZhbHVlKFxuICAvLyAgICAgc2NvcGUsXG4gIC8vICAgICB7XG4gIC8vICAgICAgIHByb3ZpZGVyOiBjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuTE9BRF9CQUxBTkNFUl9QUk9WSURFUixcbiAgLy8gICAgICAgcHJvcHM6IHtcbiAgLy8gICAgICAgICBsb2FkQmFsYW5jZXJBcm46IG9wdGlvbnMudXNlck9wdGlvbnMubG9hZEJhbGFuY2VyQXJuLFxuICAvLyAgICAgICAgIGxvYWRCYWxhbmNlclRhZ3M6IGN4c2NoZW1hVGFncyxcbiAgLy8gICAgICAgICBsb2FkQmFsYW5jZXJUeXBlOiBvcHRpb25zLmxvYWRCYWxhbmNlclR5cGUsXG4gIC8vICAgICAgIH0gYXMgY3hzY2hlbWEuTG9hZEJhbGFuY2VyQ29udGV4dFF1ZXJ5LFxuICAvLyAgICAgICBkdW1teVZhbHVlOiB7XG4gIC8vICAgICAgICAgaXBBZGRyZXNzVHlwZTogY3hhcGkuTG9hZEJhbGFuY2VySXBBZGRyZXNzVHlwZS5EVUFMX1NUQUNLLFxuICAvLyAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9uby1saXRlcmFsLXBhcnRpdGlvblxuICAvLyAgICAgICAgIGxvYWRCYWxhbmNlckFybjogYGFybjphd3M6ZWxhc3RpY2xvYWRiYWxhbmNpbmc6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpsb2FkYmFsYW5jZXIvJHtvcHRpb25zLmxvYWRCYWxhbmNlclR5cGV9L215LWxvYWQtYmFsYW5jZXIvNTBkYzZjNDk1YzBjOTE4OGAsXG4gIC8vICAgICAgICAgbG9hZEJhbGFuY2VyQ2Fub25pY2FsSG9zdGVkWm9uZUlkOiBcIlozRFpYRTBFWEFNUExFXCIsXG4gIC8vICAgICAgICAgbG9hZEJhbGFuY2VyRG5zTmFtZTpcbiAgLy8gICAgICAgICAgIFwibXktbG9hZC1iYWxhbmNlci0xMjM0NTY3ODkwLnVzLXdlc3QtMi5lbGIuYW1hem9uYXdzLmNvbVwiLFxuICAvLyAgICAgICAgIHNlY3VyaXR5R3JvdXBJZHM6IFtcInNnLTEyMzRcIl0sXG4gIC8vICAgICAgICAgdnBjSWQ6IFwidnBjLTEyMzQ1XCIsXG4gIC8vICAgICAgIH0gYXMgY3hhcGkuTG9hZEJhbGFuY2VyQ29udGV4dFJlc3BvbnNlLFxuICAvLyAgICAgfSxcbiAgLy8gICApLnZhbHVlO1xuXG4gIC8vICAgcmV0dXJuIHByb3BzO1xuICAvLyB9XG5cbiAgcHVibGljIGdldCBsb2FkQmFsYW5jZXJWMk91dHB1dHMoKTogTG9hZEJhbGFuY2VyVjJPdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9hZEJhbGFuY2VyQ2Fub25pY2FsSG9zdGVkWm9uZUlkOiB0aGlzLmxvYWRCYWxhbmNlckNhbm9uaWNhbEhvc3RlZFpvbmVJZCxcbiAgICAgIGxvYWRCYWxhbmNlckRuc05hbWU6IHRoaXMubG9hZEJhbGFuY2VyRG5zTmFtZSxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkQmFsYW5jZXJWMk91dHB1dHM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGNhbm9uaWNhbCBob3N0ZWQgem9uZSBJRCBvZiB0aGlzIGxvYWQgYmFsYW5jZXJcbiAgICpcbiAgICogRXhhbXBsZSB2YWx1ZTogYFoyUDcwSjdFWEFNUExFYFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbG9hZEJhbGFuY2VyQ2Fub25pY2FsSG9zdGVkWm9uZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBETlMgbmFtZSBvZiB0aGlzIGxvYWQgYmFsYW5jZXJcbiAgICpcbiAgICogRXhhbXBsZSB2YWx1ZTogYG15LWxvYWQtYmFsYW5jZXItNDI0ODM1NzA2LnVzLXdlc3QtMi5lbGIuYW1hem9uYXdzLmNvbWBcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxvYWRCYWxhbmNlckRuc05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZ1bGwgbmFtZSBvZiB0aGlzIGxvYWQgYmFsYW5jZXJcbiAgICpcbiAgICogRXhhbXBsZSB2YWx1ZTogYGFwcC9teS1sb2FkLWJhbGFuY2VyLzUwZGM2YzQ5NWMwYzkxODhgXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsb2FkQmFsYW5jZXJGdWxsTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIGxvYWQgYmFsYW5jZXJcbiAgICpcbiAgICogRXhhbXBsZSB2YWx1ZTogYG15LWxvYWQtYmFsYW5jZXJgXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsb2FkQmFsYW5jZXJOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhpcyBsb2FkIGJhbGFuY2VyXG4gICAqXG4gICAqIEV4YW1wbGUgdmFsdWU6IGBhcm46YXdzOmVsYXN0aWNsb2FkYmFsYW5jaW5nOnVzLXdlc3QtMjoxMjM0NTY3ODkwMTI6bG9hZGJhbGFuY2VyL2FwcC9teS1pbnRlcm5hbC1sb2FkLWJhbGFuY2VyLzUwZGM2YzQ5NWMwYzkxODhgXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsb2FkQmFsYW5jZXJBcm46IHN0cmluZztcblxuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxvYWRCYWxhbmNlclNlY3VyaXR5R3JvdXBzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIFZQQyB0aGlzIGxvYWQgYmFsYW5jZXIgaGFzIGJlZW4gY3JlYXRlZCBpbi5cbiAgICpcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyBhbHdheXMgZGVmaW5lZCAobm90IGBudWxsYCBvciBgdW5kZWZpbmVkYCkgZm9yIHN1Yi1jbGFzc2VzIG9mIGBCYXNlTG9hZEJhbGFuY2VyYC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcblxuICAvKipcbiAgICogQXR0cmlidXRlcyBzZXQgb24gdGhpcyBsb2FkIGJhbGFuY2VyXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZXMgPSB7fTtcbiAgcHJpdmF0ZSByZWFkb25seSBwaHlzaWNhbE5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYmFzZVByb3BzOiBCYXNlTG9hZEJhbGFuY2VyUHJvcHMsXG4gICAgYWRkaXRpb25hbFByb3BzOiB0ZkxvYWRCYWxhbmNlci5MYkNvbmZpZyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBiYXNlUHJvcHMpO1xuICAgIHRoaXMucGh5c2ljYWxOYW1lID1cbiAgICAgIGJhc2VQcm9wcy5sb2FkQmFsYW5jZXJOYW1lIHx8XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIHByZWZpeDogdGhpcy5ncmlkVVVJRCxcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgaW50ZXJuZXRGYWNpbmcgPSBpZlVuZGVmaW5lZChiYXNlUHJvcHMuaW50ZXJuZXRGYWNpbmcsIGZhbHNlKTtcblxuICAgIGNvbnN0IHZwY1N1Ym5ldHMgPSBpZlVuZGVmaW5lZChcbiAgICAgIGJhc2VQcm9wcy52cGNTdWJuZXRzLFxuICAgICAgaW50ZXJuZXRGYWNpbmcgPyB7IHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyB9IDoge30sXG4gICAgKTtcbiAgICBjb25zdCB7IHN1Ym5ldElkcywgaW50ZXJuZXRDb25uZWN0aXZpdHlFc3RhYmxpc2hlZCB9ID1cbiAgICAgIGJhc2VQcm9wcy52cGMuc2VsZWN0U3VibmV0cyh2cGNTdWJuZXRzKTtcblxuICAgIHRoaXMudnBjID0gYmFzZVByb3BzLnZwYztcblxuICAgIGlmIChcbiAgICAgIGFkZGl0aW9uYWxQcm9wcy5pcEFkZHJlc3NUeXBlID09PVxuICAgICAgICBJcEFkZHJlc3NUeXBlLkRVQUxfU1RBQ0tfV0lUSE9VVF9QVUJMSUNfSVBWNCAmJlxuICAgICAgYWRkaXRpb25hbFByb3BzLmxvYWRCYWxhbmNlclR5cGUgIT09IExvYWRCYWxhbmNlclR5cGUuQVBQTElDQVRJT05cbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCdpcEFkZHJlc3NUeXBlJyBEVUFMX1NUQUNLX1dJVEhPVVRfUFVCTElDX0lQVjQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIsIGdvdCAke2FkZGl0aW9uYWxQcm9wcy5sb2FkQmFsYW5jZXJUeXBlfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IHRmTG9hZEJhbGFuY2VyLkxiKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgbmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICBzdWJuZXRzOiBzdWJuZXRJZHMsXG4gICAgICBpbnRlcm5hbDogIWludGVybmV0RmFjaW5nLCAvLyBBV1MgQ0RLIFwiU2NoZW1lXCJcbiAgICAgIC8vIFJldmVyc2UgQ0ZOIExvYWRCYWxhbmNlckF0dHJpYnV0ZXMgdG8gVGVycmFmb3JtIFJlc291cmNlIHByb3BlcnRpZXNcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLXByb3ZpZGVyLWF3cy9ibG9iL3Y1Ljg4LjAvaW50ZXJuYWwvc2VydmljZS9lbGJ2Mi9sb2FkX2JhbGFuY2VyLmdvI0w3MThcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbG9hZGJhbGFuY2VyLWxvYWRiYWxhbmNlcmF0dHJpYnV0ZS5odG1sXG4gICAgICBjbGllbnRLZWVwQWxpdmU6IHRoaXMubGF6eU51bWJlckF0dHIoQXR0cmlidXRlLmNsaWVudEtlZXBBbGl2ZVNlY29uZHMpLFxuICAgICAgLy8gY3VzdG9tZXJPd25lZElwdjRQb29sIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycyBvbiBPdXRwb3N0c11cbiAgICAgIGRlc3luY01pdGlnYXRpb25Nb2RlOiB0aGlzLmxhenlTdHJpbmdBdHRyKFxuICAgICAgICBBdHRyaWJ1dGUucm91dGluZ0hUVFBEZXN5bmNNaXRpZ2F0aW9uTW9kZSxcbiAgICAgICksXG4gICAgICBkbnNSZWNvcmRDbGllbnRSb3V0aW5nUG9saWN5OiB0aGlzLmxhenlTdHJpbmdBdHRyKFxuICAgICAgICBBdHRyaWJ1dGUuZE5TUmVjb3JkQ2xpZW50Um91dGluZ1BvbGljeSxcbiAgICAgICksXG4gICAgICBkcm9wSW52YWxpZEhlYWRlckZpZWxkczogdGhpcy5sYXp5Qm9vbEF0dHIoXG4gICAgICAgIEF0dHJpYnV0ZS5yb3V0aW5nSFRUUERyb3BJbnZhbGlkSGVhZGVyRmllbGRzRW5hYmxlZCxcbiAgICAgICksXG4gICAgICBlbmFibGVDcm9zc1pvbmVMb2FkQmFsYW5jaW5nOiB0aGlzLmxhenlCb29sQXR0cihcbiAgICAgICAgQXR0cmlidXRlLmxvYWRCYWxhbmNpbmdDcm9zc1pvbmVFbmFibGVkLFxuICAgICAgKSxcbiAgICAgIGVuYWJsZURlbGV0aW9uUHJvdGVjdGlvbjogdGhpcy5sYXp5Qm9vbEF0dHIoXG4gICAgICAgIEF0dHJpYnV0ZS5kZWxldGlvblByb3RlY3Rpb25FbmFibGVkLFxuICAgICAgKSxcbiAgICAgIGVuYWJsZUh0dHAyOiB0aGlzLmxhenlCb29sQXR0cihBdHRyaWJ1dGUucm91dGluZ0hUVFAyRW5hYmxlZCksXG4gICAgICBlbmFibGVUbHNWZXJzaW9uQW5kQ2lwaGVyU3VpdGVIZWFkZXJzOiB0aGlzLmxhenlCb29sQXR0cihcbiAgICAgICAgQXR0cmlidXRlLnJvdXRpbmdIVFRQWEFtem5UTFNWZXJzaW9uQW5kQ2lwaGVyU3VpdGVFbmFibGVkLFxuICAgICAgKSxcbiAgICAgIGVuYWJsZVdhZkZhaWxPcGVuOiB0aGlzLmxhenlCb29sQXR0cihBdHRyaWJ1dGUud0FGRmFpbE9wZW5FbmFibGVkKSxcbiAgICAgIGVuYWJsZVhmZkNsaWVudFBvcnQ6IHRoaXMubGF6eUJvb2xBdHRyKFxuICAgICAgICBBdHRyaWJ1dGUucm91dGluZ0hUVFBYRkZDbGllbnRQb3J0RW5hYmxlZCxcbiAgICAgICksXG4gICAgICBlbmFibGVab25hbFNoaWZ0OiB0aGlzLmxhenlCb29sQXR0cihBdHRyaWJ1dGUuem9uYWxTaGlmdENvbmZpZ0VuYWJsZWQpLFxuICAgICAgLy8gZW5mb3JjZVNlY3VyaXR5R3JvdXBJbmJvdW5kUnVsZXNPblByaXZhdGVMaW5rVHJhZmZpYyxcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lbGFzdGljbG9hZGJhbGFuY2luZ3YyLWxvYWRiYWxhbmNlci5odG1sI2Nmbi1lbGFzdGljbG9hZGJhbGFuY2luZ3YyLWxvYWRiYWxhbmNlci1lbmZvcmNlc2VjdXJpdHlncm91cGluYm91bmRydWxlc29ucHJpdmF0ZWxpbmt0cmFmZmljXG4gICAgICBpZGxlVGltZW91dDogdGhpcy5sYXp5TnVtYmVyQXR0cihBdHRyaWJ1dGUuaWRsZVRpbWVvdXRUaW1lb3V0U2Vjb25kcyksXG4gICAgICAvLyBpcEFkZHJlc3NUeXBlXG4gICAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi1sb2FkYmFsYW5jZXIuaHRtbCNjZm4tZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi1sb2FkYmFsYW5jZXItaXBhZGRyZXNzdHlwZVxuICAgICAgcHJlc2VydmVIb3N0SGVhZGVyOiB0aGlzLmxhenlCb29sQXR0cihcbiAgICAgICAgQXR0cmlidXRlLnJvdXRpbmdIVFRQUHJlc2VydmVIb3N0SGVhZGVyRW5hYmxlZCxcbiAgICAgICksXG4gICAgICB4ZmZIZWFkZXJQcm9jZXNzaW5nTW9kZTogdGhpcy5sYXp5U3RyaW5nQXR0cihcbiAgICAgICAgQXR0cmlidXRlLnJvdXRpbmdIVFRQWEZGSGVhZGVyUHJvY2Vzc2luZ01vZGUsXG4gICAgICApLFxuICAgICAgLy8gLy8gdGhpcyByZXN1bHRzIGluIGVtcHR5IGBhY2Nlc3NfbG9nczoge31gIHdoaWNoIGlzIG5vdCB2YWxpZCAoYnVja2V0IGlzIHJlcXVpcmVkKVxuICAgICAgLy8gYWNjZXNzTG9nczoge1xuICAgICAgLy8gICBlbmFibGVkOiB0aGlzLmxhenlCb29sQXR0cihBdHRyaWJ1dGUuYWNjZXNzTG9nc1MzRW5hYmxlZCksXG4gICAgICAvLyAgIGJ1Y2tldDogdGhpcy5sYXp5U3RyaW5nQXR0cihBdHRyaWJ1dGUuYWNjZXNzTG9nc1MzQnVja2V0KSxcbiAgICAgIC8vICAgcHJlZml4OiB0aGlzLmxhenlTdHJpbmdBdHRyKEF0dHJpYnV0ZS5hY2Nlc3NMb2dzUzNQcmVmaXgpLFxuICAgICAgLy8gfSxcbiAgICAgIC8vIC8vIHRoaXMgcmVzdWx0cyBpbiBlbXB0eSBgY29ubmVjdGlvbl9sb2dzOiB7fWAgd2hpY2ggaXMgbm90IHZhbGlkIChidWNrZXQgaXMgcmVxdWlyZWQpXG4gICAgICAvLyBjb25uZWN0aW9uTG9nczoge1xuICAgICAgLy8gICBlbmFibGVkOiB0aGlzLmxhenlCb29sQXR0cihBdHRyaWJ1dGUuY29ubmVjdGlvbkxvZ3NTM0VuYWJsZWQpLFxuICAgICAgLy8gICBidWNrZXQ6IHRoaXMubGF6eVN0cmluZ0F0dHIoQXR0cmlidXRlLmNvbm5lY3Rpb25Mb2dzUzNCdWNrZXQpLFxuICAgICAgLy8gICBwcmVmaXg6IHRoaXMubGF6eVN0cmluZ0F0dHIoQXR0cmlidXRlLmNvbm5lY3Rpb25Mb2dzUzNQcmVmaXgpLFxuICAgICAgLy8gfSxcbiAgICAgIC8vc3VibmV0TWFwcGluZ3NcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lbGFzdGljbG9hZGJhbGFuY2luZ3YyLWxvYWRiYWxhbmNlci5odG1sI2Nmbi1lbGFzdGljbG9hZGJhbGFuY2luZ3YyLWxvYWRiYWxhbmNlci1zdWJuZXRtYXBwaW5nc1xuICAgICAgLi4uYWRkaXRpb25hbFByb3BzLFxuICAgIH0pO1xuICAgIGlmIChpbnRlcm5ldEZhY2luZykge1xuICAgICAgcmVzb3VyY2Uubm9kZS5hZGREZXBlbmRlbmN5KGludGVybmV0Q29ubmVjdGl2aXR5RXN0YWJsaXNoZWQpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0QXR0cmlidXRlKFxuICAgICAgQXR0cmlidXRlLmRlbGV0aW9uUHJvdGVjdGlvbkVuYWJsZWQsXG4gICAgICBiYXNlUHJvcHMuZGVsZXRpb25Qcm90ZWN0aW9uID8gXCJ0cnVlXCIgOiBcImZhbHNlXCIsXG4gICAgKTtcblxuICAgIGlmIChiYXNlUHJvcHMuY3Jvc3Nab25lRW5hYmxlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZShcbiAgICAgICAgQXR0cmlidXRlLmxvYWRCYWxhbmNpbmdDcm9zc1pvbmVFbmFibGVkLFxuICAgICAgICBiYXNlUHJvcHMuY3Jvc3Nab25lRW5hYmxlZCA9PT0gdHJ1ZSA/IFwidHJ1ZVwiIDogXCJmYWxzZVwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoYmFzZVByb3BzLmRlbnlBbGxJZ3dUcmFmZmljICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChhZGRpdGlvbmFsUHJvcHMuaXBBZGRyZXNzVHlwZSA9PT0gSXBBZGRyZXNzVHlwZS5EVUFMX1NUQUNLKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKFxuICAgICAgICAgIEF0dHJpYnV0ZS5pUHY2RGVueUFsbElHV1RyYWZmaWMsXG4gICAgICAgICAgYmFzZVByb3BzLmRlbnlBbGxJZ3dUcmFmZmljLnRvU3RyaW5nKCksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYCdkZW55QWxsSWd3VHJhZmZpYycgbWF5IG9ubHkgYmUgc2V0IG9uIGxvYWQgYmFsYW5jZXJzIHdpdGggJHtJcEFkZHJlc3NUeXBlLkRVQUxfU1RBQ0t9IGFkZHJlc3NpbmcuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmxvYWRCYWxhbmNlckNhbm9uaWNhbEhvc3RlZFpvbmVJZCA9IHJlc291cmNlLnpvbmVJZDtcbiAgICB0aGlzLmxvYWRCYWxhbmNlckRuc05hbWUgPSByZXNvdXJjZS5kbnNOYW1lO1xuICAgIHRoaXMubG9hZEJhbGFuY2VyRnVsbE5hbWUgPSB0aGlzLnN0YWNrLnNwbGl0QXJuKFxuICAgICAgcmVzb3VyY2UuYXJuLFxuICAgICAgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgKS5yZXNvdXJjZTtcbiAgICB0aGlzLmxvYWRCYWxhbmNlck5hbWUgPSByZXNvdXJjZS5uYW1lO1xuICAgIHRoaXMubG9hZEJhbGFuY2VyQXJuID0gcmVzb3VyY2UuYXJuO1xuICAgIHRoaXMubG9hZEJhbGFuY2VyU2VjdXJpdHlHcm91cHMgPSByZXNvdXJjZS5zZWN1cml0eUdyb3VwcztcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKHsgdmFsaWRhdGU6IHRoaXMudmFsaWRhdGVMb2FkQmFsYW5jZXIuYmluZCh0aGlzKSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGUgYWNjZXNzIGxvZ2dpbmcgZm9yIHRoaXMgbG9hZCBiYWxhbmNlci5cbiAgICpcbiAgICogQSByZWdpb24gbXVzdCBiZSBzcGVjaWZpZWQgb24gdGhlIHN0YWNrIGNvbnRhaW5pbmcgdGhlIGxvYWQgYmFsYW5jZXI7IHlvdSBjYW5ub3QgZW5hYmxlIGxvZ2dpbmcgb25cbiAgICogZW52aXJvbm1lbnQtYWdub3N0aWMgc3RhY2tzLiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvZW52aXJvbm1lbnRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyBsb2dBY2Nlc3NMb2dzKGJ1Y2tldDogczMuSUJ1Y2tldCwgcHJlZml4Pzogc3RyaW5nKSB7XG4gICAgLy8gcHJlZml4ID0gcHJlZml4OyAvLyBvcHRpb25hbCBpbiBURi4uLiB8fCBcIlwiO1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKFwiYWNjZXNzX2xvZ3MuczMuZW5hYmxlZFwiLCBcInRydWVcIik7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoXCJhY2Nlc3NfbG9ncy5zMy5idWNrZXRcIiwgYnVja2V0LmJ1Y2tldE5hbWUudG9TdHJpbmcoKSk7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoXCJhY2Nlc3NfbG9ncy5zMy5wcmVmaXhcIiwgcHJlZml4KTtcblxuICAgIGNvbnN0IGxvZ3NEZWxpdmVyeVNlcnZpY2VQcmluY2lwYWwgPSBuZXcgU2VydmljZVByaW5jaXBhbChcbiAgICAgIFwiZGVsaXZlcnkubG9ncy5hbWF6b25hd3MuY29tXCIsXG4gICAgKTtcbiAgICBidWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXCJzMzpQdXRPYmplY3RcIl0sXG4gICAgICAgIHByaW5jaXBhbHM6IFt0aGlzLnJlc291cmNlUG9saWN5UHJpbmNpcGFsKCldLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBidWNrZXQuYXJuRm9yT2JqZWN0cyhcbiAgICAgICAgICAgIGAke3ByZWZpeCA/IHByZWZpeCArIFwiL1wiIDogXCJcIn1BV1NMb2dzLyR7QXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcykuYWNjb3VudH0vKmAsXG4gICAgICAgICAgKSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICk7XG4gICAgYnVja2V0LmFkZFRvUmVzb3VyY2VQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1wiczM6UHV0T2JqZWN0XCJdLFxuICAgICAgICBwcmluY2lwYWxzOiBbbG9nc0RlbGl2ZXJ5U2VydmljZVByaW5jaXBhbF0sXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIGJ1Y2tldC5hcm5Gb3JPYmplY3RzKFxuICAgICAgICAgICAgYCR7cHJlZml4ID8gcHJlZml4ICsgXCIvXCIgOiBcIlwifUFXU0xvZ3MvJHt0aGlzLmVudi5hY2NvdW50fS8qYCxcbiAgICAgICAgICApLFxuICAgICAgICBdLFxuICAgICAgICBjb25kaXRpb246IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAgICAgICAgICAgdmFyaWFibGU6IFwiczM6eC1hbXotYWNsXCIsXG4gICAgICAgICAgICB2YWx1ZXM6IFtcImJ1Y2tldC1vd25lci1mdWxsLWNvbnRyb2xcIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICk7XG4gICAgYnVja2V0LmFkZFRvUmVzb3VyY2VQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1wiczM6R2V0QnVja2V0QWNsXCJdLFxuICAgICAgICBwcmluY2lwYWxzOiBbbG9nc0RlbGl2ZXJ5U2VydmljZVByaW5jaXBhbF0sXG4gICAgICAgIHJlc291cmNlczogW2J1Y2tldC5idWNrZXRBcm5dLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8vIG1ha2Ugc3VyZSB0aGUgYnVja2V0J3MgcG9saWN5IGlzIGNyZWF0ZWQgYmVmb3JlIHRoZSBBTEIgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE2MzMpXG4gICAgLy8gYXQgdGhlIEwxIGxldmVsIHRvIGF2b2lkIGNyZWF0aW5nIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMjc1MjhcbiAgICAvLyBhbmQgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8yNzkyOClcbiAgICBjb25zdCBsYiA9IHRoaXMubm9kZS5kZWZhdWx0Q2hpbGQgYXMgdGZMb2FkQmFsYW5jZXIuTGI7XG4gICAgY29uc3QgYnVja2V0UG9saWN5ID0gYnVja2V0LnBvbGljeT8ubm9kZS5kZWZhdWx0Q2hpbGQ7XG4gICAgaWYgKFxuICAgICAgbGIgJiZcbiAgICAgIGJ1Y2tldFBvbGljeSAmJlxuICAgICAgVGVycmFmb3JtUmVzb3VyY2UuaXNUZXJyYWZvcm1SZXNvdXJjZShsYikgJiZcbiAgICAgIFRlcnJhZm9ybVJlc291cmNlLmlzVGVycmFmb3JtUmVzb3VyY2UoYnVja2V0UG9saWN5KVxuICAgICkge1xuICAgICAgbGIubm9kZS5hZGREZXBlbmRlbmN5KGJ1Y2tldFBvbGljeSk7XG4gICAgfVxuICAgIC8vIFRPRE86IFNob3VsZCBwdXRBY2Nlc3NMb2dzIGJlIGhhbmRsZWQgYXMgcGFydCBvZiBwcmVwYXJlU3RhY2sgKGluIHRvVGVycmFmb3JtKCkgaW5zdGVhZCk/XG4gICAgLy8gb25seSBpZiBsYi5hY2Nlc3NMb2dzLmludGVybmFsVmFsdWUgIT09IHVuZGVmaW5lZD8gKG9yIGJhc2VkIG9uIHRoaXMuYXR0cmlidXRlcz8pXG4gICAgbGIucHV0QWNjZXNzTG9ncyh7XG4gICAgICBlbmFibGVkOiB0aGlzLmxhenlCb29sQXR0cihBdHRyaWJ1dGUuYWNjZXNzTG9nc1MzRW5hYmxlZCksXG4gICAgICBidWNrZXQ6IHRoaXMubGF6eVN0cmluZ0F0dHIoQXR0cmlidXRlLmFjY2Vzc0xvZ3NTM0J1Y2tldCksXG4gICAgICBwcmVmaXg6IHRoaXMubGF6eVN0cmluZ0F0dHIoQXR0cmlidXRlLmFjY2Vzc0xvZ3NTM1ByZWZpeCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgbm9uLXN0YW5kYXJkIGF0dHJpYnV0ZSBvbiB0aGUgbG9hZCBiYWxhbmNlclxuICAgKlxuICAgKiBVc2UgdGhlIGRlZGljYXRlZCBsb2dBY2Nlc3NMb2dzKCkgbWV0aG9kIGludGVhZCBvZiBzZXRBdHRyaWJ1dGUgaWYgeW91IHdhbnQgdG8gc2V0dXAgYWNjZXNzIGxvZ2dpbmcuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2Vycy5odG1sI2xvYWQtYmFsYW5jZXItYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHNldEF0dHJpYnV0ZShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuYXR0cmlidXRlc1trZXldID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIGF0dHJpYnV0ZSBmcm9tIHRoZSBsb2FkIGJhbGFuY2VyXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlQXR0cmlidXRlKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoa2V5LCB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGxhenlTdHJpbmdBdHRyKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIExhenkuc3RyaW5nVmFsdWUoe1xuICAgICAgcHJvZHVjZTogKCkgPT4gbG9va3VwU3RyaW5nQXR0cmlidXRlKHRoaXMuYXR0cmlidXRlcywga2V5KSxcbiAgICB9KTtcbiAgfVxuICBwcm90ZWN0ZWQgbGF6eUJvb2xBdHRyKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIExhenkuYW55VmFsdWUoe1xuICAgICAgcHJvZHVjZTogKCkgPT4gbG9va3VwQm9vbEF0dHJpYnV0ZSh0aGlzLmF0dHJpYnV0ZXMsIGtleSksXG4gICAgfSk7XG4gIH1cbiAgcHJvdGVjdGVkIGxhenlOdW1iZXJBdHRyKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIExhenkubnVtYmVyVmFsdWUoe1xuICAgICAgcHJvZHVjZTogKCkgPT4gbG9va3VwTnVtYmVyQXR0cmlidXRlKHRoaXMuYXR0cmlidXRlcywga2V5KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNvdXJjZVBvbGljeVByaW5jaXBhbCgpOiBpYW0uSVByaW5jaXBhbCB7XG4gICAgY29uc3QgcmVnaW9uID0gdGhpcy5zdGFjay5yZWdpb247XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChyZWdpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWdpb24gaXMgcmVxdWlyZWQgdG8gZW5hYmxlIEVMQnYyIGFjY2VzcyBsb2dnaW5nXCIpO1xuICAgIH1cblxuICAgIC8vIGNvbnN0IGFjY291bnQgPSBSZWdpb25JbmZvLmdldChyZWdpb24pLmVsYnYyQWNjb3VudDtcbiAgICBjb25zdCBhY2NvdW50ID0gZ2V0RWxidjJBY2NvdW50KHJlZ2lvbik7XG4gICAgaWYgKCFhY2NvdW50KSB7XG4gICAgICAvLyBOZXcgUmVnaW9ucyB1c2UgYSBzZXJ2aWNlIHByaW5jaXBhbFxuICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9jbGFzc2ljL2VuYWJsZS1hY2Nlc3MtbG9ncy5odG1sI2F0dGFjaC1idWNrZXQtcG9saWN5XG4gICAgICByZXR1cm4gbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFxuICAgICAgICBcImxvZ2RlbGl2ZXJ5LmVsYXN0aWNsb2FkYmFsYW5jaW5nLmFtYXpvbmF3cy5jb21cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBpYW0uQWNjb3VudFByaW5jaXBhbChhY2NvdW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCB2YWxpZGF0ZUxvYWRCYWxhbmNlcigpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcmV0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lbGFzdGljbG9hZGJhbGFuY2luZ3YyLWxvYWRiYWxhbmNlci5odG1sI2Nmbi1lbGFzdGljbG9hZGJhbGFuY2luZ3YyLWxvYWRiYWxhbmNlci1uYW1lXG4gICAgY29uc3QgbG9hZEJhbGFuY2VyTmFtZSA9IHRoaXMucGh5c2ljYWxOYW1lO1xuICAgIGlmIChcbiAgICAgICFUb2tlbi5pc1VucmVzb2x2ZWQobG9hZEJhbGFuY2VyTmFtZSkgJiZcbiAgICAgIGxvYWRCYWxhbmNlck5hbWUgIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgaWYgKGxvYWRCYWxhbmNlck5hbWUubGVuZ3RoID4gMzIpIHtcbiAgICAgICAgcmV0LnB1c2goXG4gICAgICAgICAgYExvYWQgYmFsYW5jZXIgbmFtZTogXCIke2xvYWRCYWxhbmNlck5hbWV9XCIgY2FuIGhhdmUgYSBtYXhpbXVtIG9mIDMyIGNoYXJhY3RlcnMuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2FkQmFsYW5jZXJOYW1lLnN0YXJ0c1dpdGgoXCJpbnRlcm5hbC1cIikpIHtcbiAgICAgICAgcmV0LnB1c2goXG4gICAgICAgICAgYExvYWQgYmFsYW5jZXIgbmFtZTogXCIke2xvYWRCYWxhbmNlck5hbWV9XCIgbXVzdCBub3QgYmVnaW4gd2l0aCBcImludGVybmFsLVwiLmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAobG9hZEJhbGFuY2VyTmFtZS5zdGFydHNXaXRoKFwiLVwiKSB8fCBsb2FkQmFsYW5jZXJOYW1lLmVuZHNXaXRoKFwiLVwiKSkge1xuICAgICAgICByZXQucHVzaChcbiAgICAgICAgICBgTG9hZCBiYWxhbmNlciBuYW1lOiBcIiR7bG9hZEJhbGFuY2VyTmFtZX1cIiBtdXN0IG5vdCBiZWdpbiBvciBlbmQgd2l0aCBhIGh5cGhlbi5gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKCEvXlswLTlhLXotXSskL2kudGVzdChsb2FkQmFsYW5jZXJOYW1lKSkge1xuICAgICAgICByZXQucHVzaChcbiAgICAgICAgICBgTG9hZCBiYWxhbmNlciBuYW1lOiBcIiR7bG9hZEJhbGFuY2VyTmFtZX1cIiBtdXN0IGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBvciBoeXBoZW5zLmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxufVxuIl19
|
|
@@ -345,7 +345,7 @@ class TargetGroupBase extends aws_construct_1.AwsConstructBase {
|
|
|
345
345
|
}
|
|
346
346
|
exports.TargetGroupBase = TargetGroupBase;
|
|
347
347
|
_a = JSII_RTTI_SYMBOL_1;
|
|
348
|
-
TargetGroupBase[_a] = { fqn: "terraconstructs.aws.compute.TargetGroupBase", version: "0.0.
|
|
348
|
+
TargetGroupBase[_a] = { fqn: "terraconstructs.aws.compute.TargetGroupBase", version: "0.0.13" };
|
|
349
349
|
/**
|
|
350
350
|
* Extract the full load balancer name (used for metrics) from the listener ARN:
|
|
351
351
|
*
|
|
@@ -25,5 +25,5 @@ class ListenerCertificate {
|
|
|
25
25
|
}
|
|
26
26
|
exports.ListenerCertificate = ListenerCertificate;
|
|
27
27
|
_a = JSII_RTTI_SYMBOL_1;
|
|
28
|
-
ListenerCertificate[_a] = { fqn: "terraconstructs.aws.compute.ListenerCertificate", version: "0.0.
|
|
28
|
+
ListenerCertificate[_a] = { fqn: "terraconstructs.aws.compute.ListenerCertificate", version: "0.0.13" };
|
|
29
29
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuZXItY2VydGlmaWNhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvbGItc2hhcmVkL2xpc3RlbmVyLWNlcnRpZmljYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBY0E7O0dBRUc7QUFDSCxNQUFhLG1CQUFtQjtJQUM5Qjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxjQUFpQztRQUNwRSxPQUFPLElBQUksbUJBQW1CLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBc0I7UUFDMUMsT0FBTyxJQUFJLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFPRCxZQUFzQixjQUFzQjtRQUMxQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDOztBQXRCSCxrREF1QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi9saWIvc2hhcmVkL2xpc3RlbmVyLWNlcnRpZmljYXRlLnRzXG5cbmltcG9ydCAqIGFzIGVkZ2UgZnJvbSBcIi4uLy4uL2VkZ2VcIjtcblxuLyoqXG4gKiBBIGNlcnRpZmljYXRlIHNvdXJjZSBmb3IgYW4gRUxCdjIgbGlzdGVuZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTGlzdGVuZXJDZXJ0aWZpY2F0ZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBjZXJ0aWZpY2F0ZSB0byB1c2VcbiAgICovXG4gIHJlYWRvbmx5IGNlcnRpZmljYXRlQXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBjZXJ0aWZpY2F0ZSBzb3VyY2UgZm9yIGFuIEVMQnYyIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBjbGFzcyBMaXN0ZW5lckNlcnRpZmljYXRlIGltcGxlbWVudHMgSUxpc3RlbmVyQ2VydGlmaWNhdGUge1xuICAvKipcbiAgICogVXNlIGFuIEFDTSBjZXJ0aWZpY2F0ZSBhcyBhIGxpc3RlbmVyIGNlcnRpZmljYXRlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21DZXJ0aWZpY2F0ZU1hbmFnZXIoYWNtQ2VydGlmaWNhdGU6IGVkZ2UuSUNlcnRpZmljYXRlKSB7XG4gICAgcmV0dXJuIG5ldyBMaXN0ZW5lckNlcnRpZmljYXRlKGFjbUNlcnRpZmljYXRlLmNlcnRpZmljYXRlQXJuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgYW55IGNlcnRpZmljYXRlLCBpZGVudGlmaWVkIGJ5IGl0cyBBUk4sIGFzIGEgbGlzdGVuZXIgY2VydGlmaWNhdGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFybihjZXJ0aWZpY2F0ZUFybjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBMaXN0ZW5lckNlcnRpZmljYXRlKGNlcnRpZmljYXRlQXJuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBjZXJ0aWZpY2F0ZSB0byB1c2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjZXJ0aWZpY2F0ZUFybjogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihjZXJ0aWZpY2F0ZUFybjogc3RyaW5nKSB7XG4gICAgdGhpcy5jZXJ0aWZpY2F0ZUFybiA9IGNlcnRpZmljYXRlQXJuO1xuICB9XG59XG4iXX0=
|
|
@@ -50,7 +50,7 @@ class InstanceTarget {
|
|
|
50
50
|
}
|
|
51
51
|
exports.InstanceTarget = InstanceTarget;
|
|
52
52
|
_a = JSII_RTTI_SYMBOL_1;
|
|
53
|
-
InstanceTarget[_a] = { fqn: "terraconstructs.aws.compute.InstanceTarget", version: "0.0.
|
|
53
|
+
InstanceTarget[_a] = { fqn: "terraconstructs.aws.compute.InstanceTarget", version: "0.0.13" };
|
|
54
54
|
/**
|
|
55
55
|
* An IP address that is a target for load balancing.
|
|
56
56
|
*
|
|
@@ -123,5 +123,5 @@ class IpTarget {
|
|
|
123
123
|
}
|
|
124
124
|
exports.IpTarget = IpTarget;
|
|
125
125
|
_b = JSII_RTTI_SYMBOL_1;
|
|
126
|
-
IpTarget[_b] = { fqn: "terraconstructs.aws.compute.IpTarget", version: "0.0.
|
|
126
|
+
IpTarget[_b] = { fqn: "terraconstructs.aws.compute.IpTarget", version: "0.0.13" };
|
|
127
127
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1iYWxhbmNlci10YXJnZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2xiLXNoYXJlZC9sb2FkLWJhbGFuY2VyLXRhcmdldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQSxtQ0FBcUM7QUFVckM7Ozs7Ozs7R0FPRztBQUNILE1BQWEsY0FBYztJQUd6Qjs7Ozs7T0FLRztJQUNILFlBQ21CLFVBQWtCLEVBQ2xCLElBQWE7UUFEYixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLFNBQUksR0FBSixJQUFJLENBQVM7SUFDN0IsQ0FBQztJQUVKOzs7OztPQUtHO0lBQ0ksOEJBQThCLENBQ25DLFdBQW9DO1FBRXBDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSwwQkFBMEIsQ0FDL0IsV0FBZ0M7UUFFaEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxNQUFNLENBQUMsWUFBMEI7UUFDdkMsT0FBTztZQUNMLFVBQVUsRUFBRSxrQkFBVSxDQUFDLFFBQVE7WUFDL0IsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7U0FDM0QsQ0FBQztJQUNKLENBQUM7O0FBM0NILHdDQTRDQzs7O0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBYSxRQUFRO0lBR25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FxQkc7SUFDSCxZQUNtQixTQUFpQixFQUNqQixJQUFhLEVBQ2IsZ0JBQXlCO1FBRnpCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsU0FBSSxHQUFKLElBQUksQ0FBUztRQUNiLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUztJQUN6QyxDQUFDO0lBRUo7Ozs7O09BS0c7SUFDSSw4QkFBOEIsQ0FDbkMsV0FBb0M7UUFFcEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLDBCQUEwQixDQUMvQixXQUFnQztRQUVoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxZQUEwQjtRQUN2QyxPQUFPO1lBQ0wsVUFBVSxFQUFFLGtCQUFVLENBQUMsRUFBRTtZQUN6QixVQUFVLEVBQUU7Z0JBQ1YsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjthQUN4QztTQUNGLENBQUM7SUFDSixDQUFDOztBQWhFSCw0QkFpRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi9saWIvc2hhcmVkL2xvYWQtYmFsYW5jZXItdGFyZ2V0cy50c1xuXG5pbXBvcnQgeyBJVGFyZ2V0R3JvdXAsIExvYWRCYWxhbmNlclRhcmdldFByb3BzIH0gZnJvbSBcIi4vYmFzZS10YXJnZXQtZ3JvdXBcIjtcbmltcG9ydCB7IFRhcmdldFR5cGUgfSBmcm9tIFwiLi9lbnVtc1wiO1xuaW1wb3J0IHtcbiAgSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyVGFyZ2V0LFxuICBJQXBwbGljYXRpb25UYXJnZXRHcm91cCxcbn0gZnJvbSBcIi4uL2FsYi9hcHBsaWNhdGlvbi10YXJnZXQtZ3JvdXBcIjtcbmltcG9ydCB7XG4gIElOZXR3b3JrTG9hZEJhbGFuY2VyVGFyZ2V0LFxuICBJTmV0d29ya1RhcmdldEdyb3VwLFxufSBmcm9tIFwiLi4vbmxiL25ldHdvcmstdGFyZ2V0LWdyb3VwXCI7XG5cbi8qKlxuICogQW4gRUMyIGluc3RhbmNlIHRoYXQgaXMgdGhlIHRhcmdldCBmb3IgbG9hZCBiYWxhbmNpbmdcbiAqXG4gKiBJZiB5b3UgcmVnaXN0ZXIgYSB0YXJnZXQgb2YgdGhpcyB0eXBlLCB5b3UgYXJlIHJlc3BvbnNpYmxlIGZvciBtYWtpbmdcbiAqIHN1cmUgdGhlIGxvYWQgYmFsYW5jZXIncyBzZWN1cml0eSBncm91cCBjYW4gY29ubmVjdCB0byB0aGUgaW5zdGFuY2UuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIElwVGFyZ2V0IGZyb20gdGhlIGNvbXB1dGUvbGItdGFyZ2V0cyBpbnN0ZWFkLlxuICovXG5leHBvcnQgY2xhc3MgSW5zdGFuY2VUYXJnZXRcbiAgaW1wbGVtZW50cyBJQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJUYXJnZXQsIElOZXR3b3JrTG9hZEJhbGFuY2VyVGFyZ2V0XG57XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgSW5zdGFuY2UgdGFyZ2V0XG4gICAqXG4gICAqIEBwYXJhbSBpbnN0YW5jZUlkIEluc3RhbmNlIElEIG9mIHRoZSBpbnN0YW5jZSB0byByZWdpc3RlciB0b1xuICAgKiBAcGFyYW0gcG9ydCBPdmVycmlkZSB0aGUgZGVmYXVsdCBwb3J0IGZvciB0aGUgdGFyZ2V0IGdyb3VwXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluc3RhbmNlSWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcnQ/OiBudW1iZXIsXG4gICkge31cblxuICAvKipcbiAgICogUmVnaXN0ZXIgdGhpcyBpbnN0YW5jZSB0YXJnZXQgd2l0aCBhIGxvYWQgYmFsYW5jZXJcbiAgICpcbiAgICogRG9uJ3QgY2FsbCB0aGlzLCBpdCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSB3aGVuIHlvdSBhZGQgdGhlIHRhcmdldCB0byBhXG4gICAqIGxvYWQgYmFsYW5jZXIuXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoVG9BcHBsaWNhdGlvblRhcmdldEdyb3VwKFxuICAgIHRhcmdldEdyb3VwOiBJQXBwbGljYXRpb25UYXJnZXRHcm91cCxcbiAgKTogTG9hZEJhbGFuY2VyVGFyZ2V0UHJvcHMge1xuICAgIHJldHVybiB0aGlzLmF0dGFjaCh0YXJnZXRHcm91cCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgdGhpcyBpbnN0YW5jZSB0YXJnZXQgd2l0aCBhIGxvYWQgYmFsYW5jZXJcbiAgICpcbiAgICogRG9uJ3QgY2FsbCB0aGlzLCBpdCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSB3aGVuIHlvdSBhZGQgdGhlIHRhcmdldCB0byBhXG4gICAqIGxvYWQgYmFsYW5jZXIuXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoVG9OZXR3b3JrVGFyZ2V0R3JvdXAoXG4gICAgdGFyZ2V0R3JvdXA6IElOZXR3b3JrVGFyZ2V0R3JvdXAsXG4gICk6IExvYWRCYWxhbmNlclRhcmdldFByb3BzIHtcbiAgICByZXR1cm4gdGhpcy5hdHRhY2godGFyZ2V0R3JvdXApO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2goX3RhcmdldEdyb3VwOiBJVGFyZ2V0R3JvdXApOiBMb2FkQmFsYW5jZXJUYXJnZXRQcm9wcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRhcmdldFR5cGU6IFRhcmdldFR5cGUuSU5TVEFOQ0UsXG4gICAgICB0YXJnZXRKc29uOiB7IHRhcmdldElkOiB0aGlzLmluc3RhbmNlSWQsIHBvcnQ6IHRoaXMucG9ydCB9LFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBJUCBhZGRyZXNzIHRoYXQgaXMgYSB0YXJnZXQgZm9yIGxvYWQgYmFsYW5jaW5nLlxuICpcbiAqIFNwZWNpZnkgSVAgYWRkcmVzc2VzIGZyb20gdGhlIHN1Ym5ldHMgb2YgdGhlIHZpcnR1YWwgcHJpdmF0ZSBjbG91ZCAoVlBDKSBmb3JcbiAqIHRoZSB0YXJnZXQgZ3JvdXAsIHRoZSBSRkMgMTkxOCByYW5nZSAoMTAuMC4wLjAvOCwgMTcyLjE2LjAuMC8xMiwgYW5kXG4gKiAxOTIuMTY4LjAuMC8xNiksIGFuZCB0aGUgUkZDIDY1OTggcmFuZ2UgKDEwMC42NC4wLjAvMTApLiBZb3UgY2FuJ3Qgc3BlY2lmeVxuICogcHVibGljbHkgcm91dGFibGUgSVAgYWRkcmVzc2VzLlxuICpcbiAqIElmIHlvdSByZWdpc3RlciBhIHRhcmdldCBvZiB0aGlzIHR5cGUsIHlvdSBhcmUgcmVzcG9uc2libGUgZm9yIG1ha2luZ1xuICogc3VyZSB0aGUgbG9hZCBiYWxhbmNlcidzIHNlY3VyaXR5IGdyb3VwIGNhbiBzZW5kIHBhY2tldHMgdG8gdGhlIElQIGFkZHJlc3MuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIElwVGFyZ2V0IGZyb20gdGhlIGNvbXB1dGUvbGItdGFyZ2V0cyBwYWNrYWdlIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBJcFRhcmdldFxuICBpbXBsZW1lbnRzIElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclRhcmdldCwgSU5ldHdvcmtMb2FkQmFsYW5jZXJUYXJnZXRcbntcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBJUEFkZHJlc3MgdGFyZ2V0XG4gICAqXG4gICAqIFRoZSBhdmFpbGFiaWxpdHlab25lIHBhcmFtZXRlciBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHRhcmdldCByZWNlaXZlc1xuICAgKiB0cmFmZmljIGZyb20gdGhlIGxvYWQgYmFsYW5jZXIgbm9kZXMgaW4gdGhlIHNwZWNpZmllZCBBdmFpbGFiaWxpdHkgWm9uZVxuICAgKiBvciBmcm9tIGFsbCBlbmFibGVkIEF2YWlsYWJpbGl0eSBab25lcyBmb3IgdGhlIGxvYWQgYmFsYW5jZXIuXG4gICAqXG4gICAqIFRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzdXBwb3J0ZWQgaWYgdGhlIHRhcmdldCB0eXBlIG9mIHRoZSB0YXJnZXQgZ3JvdXBcbiAgICogaXMgaW5zdGFuY2UuIElmIHRoZSBJUCBhZGRyZXNzIGlzIGluIGEgc3VibmV0IG9mIHRoZSBWUEMgZm9yIHRoZSB0YXJnZXRcbiAgICogZ3JvdXAsIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSBpcyBhdXRvbWF0aWNhbGx5IGRldGVjdGVkIGFuZCB0aGlzXG4gICAqIHBhcmFtZXRlciBpcyBvcHRpb25hbC4gSWYgdGhlIElQIGFkZHJlc3MgaXMgb3V0c2lkZSB0aGUgVlBDLCB0aGlzXG4gICAqIHBhcmFtZXRlciBpcyByZXF1aXJlZC5cbiAgICpcbiAgICogV2l0aCBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCBpZiB0aGUgSVAgYWRkcmVzcyBpcyBvdXRzaWRlIHRoZSBWUENcbiAgICogZm9yIHRoZSB0YXJnZXQgZ3JvdXAsIHRoZSBvbmx5IHN1cHBvcnRlZCB2YWx1ZSBpcyBhbGwuXG4gICAqXG4gICAqIERlZmF1bHQgaXMgYXV0b21hdGljLlxuICAgKlxuICAgKiBAcGFyYW0gaXBBZGRyZXNzIFRoZSBJUCBBZGRyZXNzIHRvIGxvYWQgYmFsYW5jZSB0b1xuICAgKiBAcGFyYW0gcG9ydCBPdmVycmlkZSB0aGUgZ3JvdXAncyBkZWZhdWx0IHBvcnRcbiAgICogQHBhcmFtIGF2YWlsYWJpbGl0eVpvbmUgQXZhaWxhYmlsaXR5IHpvbmUgdG8gc2VuZCB0cmFmZmljIGZyb21cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaXBBZGRyZXNzOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3J0PzogbnVtYmVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXZhaWxhYmlsaXR5Wm9uZT86IHN0cmluZyxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciB0aGlzIGluc3RhbmNlIHRhcmdldCB3aXRoIGEgbG9hZCBiYWxhbmNlclxuICAgKlxuICAgKiBEb24ndCBjYWxsIHRoaXMsIGl0IGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4geW91IGFkZCB0aGUgdGFyZ2V0IHRvIGFcbiAgICogbG9hZCBiYWxhbmNlci5cbiAgICovXG4gIHB1YmxpYyBhdHRhY2hUb0FwcGxpY2F0aW9uVGFyZ2V0R3JvdXAoXG4gICAgdGFyZ2V0R3JvdXA6IElBcHBsaWNhdGlvblRhcmdldEdyb3VwLFxuICApOiBMb2FkQmFsYW5jZXJUYXJnZXRQcm9wcyB7XG4gICAgcmV0dXJuIHRoaXMuYXR0YWNoKHRhcmdldEdyb3VwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciB0aGlzIGluc3RhbmNlIHRhcmdldCB3aXRoIGEgbG9hZCBiYWxhbmNlclxuICAgKlxuICAgKiBEb24ndCBjYWxsIHRoaXMsIGl0IGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4geW91IGFkZCB0aGUgdGFyZ2V0IHRvIGFcbiAgICogbG9hZCBiYWxhbmNlci5cbiAgICovXG4gIHB1YmxpYyBhdHRhY2hUb05ldHdvcmtUYXJnZXRHcm91cChcbiAgICB0YXJnZXRHcm91cDogSU5ldHdvcmtUYXJnZXRHcm91cCxcbiAgKTogTG9hZEJhbGFuY2VyVGFyZ2V0UHJvcHMge1xuICAgIHJldHVybiB0aGlzLmF0dGFjaCh0YXJnZXRHcm91cCk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaChfdGFyZ2V0R3JvdXA6IElUYXJnZXRHcm91cCk6IExvYWRCYWxhbmNlclRhcmdldFByb3BzIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0VHlwZTogVGFyZ2V0VHlwZS5JUCxcbiAgICAgIHRhcmdldEpzb246IHtcbiAgICAgICAgdGFyZ2V0SWQ6IHRoaXMuaXBBZGRyZXNzLFxuICAgICAgICBwb3J0OiB0aGlzLnBvcnQsXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IHRoaXMuYXZhaWxhYmlsaXR5Wm9uZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
|