terraconstructs 0.1.8 → 0.1.10
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 +1514 -1279
- package/lib/asset-staging.js +1 -1
- package/lib/aws/arn.js +1 -1
- package/lib/aws/aws-asset-manager.js +1 -1
- package/lib/aws/aws-construct.js +1 -1
- package/lib/aws/aws-stack.d.ts +28 -4
- package/lib/aws/aws-stack.js +80 -22
- package/lib/aws/aws-tags.js +2 -2
- package/lib/aws/cloudwatch/actions/appscaling.js +1 -1
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/lambda.js +1 -1
- package/lib/aws/cloudwatch/actions/sns.js +1 -1
- package/lib/aws/cloudwatch/actions/ssm.js +2 -2
- 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 +9 -8
- 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/access-log.js +9 -7
- 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/api-definition.d.ts +1 -1
- package/lib/aws/compute/api-definition.js +11 -16
- package/lib/aws/compute/api-key.js +7 -8
- package/lib/aws/compute/apigateway-util.js +10 -21
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
- package/lib/aws/compute/authorizer.js +1 -1
- package/lib/aws/compute/authorizers/identity-source.js +4 -5
- package/lib/aws/compute/authorizers/lambda.js +8 -11
- package/lib/aws/compute/autoscaling-common/interval-utils.js +7 -11
- package/lib/aws/compute/base-path-mapping.js +6 -8
- package/lib/aws/compute/base-scalable-attribute.js +1 -1
- 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/code.js +23 -40
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.js +1 -1
- package/lib/aws/compute/cors.js +1 -1
- package/lib/aws/compute/deployment.js +1 -1
- package/lib/aws/compute/domain-name.js +9 -8
- 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 +12 -12
- 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/function.js +1 -1
- package/lib/aws/compute/function-url.js +1 -1
- package/lib/aws/compute/function.js +4 -3
- package/lib/aws/compute/gateway-response.js +2 -2
- package/lib/aws/compute/handler.js +1 -1
- package/lib/aws/compute/instance-types.js +1 -1
- package/lib/aws/compute/instance.js +1 -1
- package/lib/aws/compute/integration.js +10 -16
- package/lib/aws/compute/integrations/aws.js +4 -4
- package/lib/aws/compute/integrations/http.js +1 -1
- package/lib/aws/compute/integrations/lambda.js +1 -1
- package/lib/aws/compute/integrations/mock.js +1 -1
- package/lib/aws/compute/integrations/stepfunctions.js +4 -5
- 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/lambda-api.js +7 -10
- 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 +5 -7
- 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/method.js +1 -1
- package/lib/aws/compute/model.js +3 -3
- 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/requestvalidator.js +1 -1
- package/lib/aws/compute/resource.js +3 -3
- package/lib/aws/compute/restapi.js +9 -10
- package/lib/aws/compute/route.js +8 -8
- package/lib/aws/compute/runtime.d.ts +0 -1
- package/lib/aws/compute/runtime.js +5 -36
- package/lib/aws/compute/scalable-target.js +1 -1
- package/lib/aws/compute/schedule.js +6 -12
- package/lib/aws/compute/security-group.js +1 -1
- package/lib/aws/compute/stage.js +8 -11
- 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/step-scaling-action.js +1 -1
- package/lib/aws/compute/step-scaling-policy.js +9 -14
- package/lib/aws/compute/stepfunctions-api.js +5 -6
- package/lib/aws/compute/subnet-v2.js +2 -2
- package/lib/aws/compute/subnet.js +1 -1
- package/lib/aws/compute/target-tracking-scaling-policy.js +9 -12
- 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/usage-plan.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-link.js +1 -1
- 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/cx-api.d.ts +1 -0
- package/lib/aws/cx-api.js +6 -0
- 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 +6 -6
- package/lib/aws/edge/dns-record.js +13 -13
- package/lib/aws/edge/dns-zone.d.ts +1 -1
- package/lib/aws/edge/dns-zone.js +8 -7
- 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/group.js +1 -1
- 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/iam/user.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.d.ts +19 -0
- package/lib/aws/notify/event-bus.js +22 -26
- package/lib/aws/notify/event-pattern.js +1 -1
- package/lib/aws/notify/input.js +2 -2
- package/lib/aws/notify/kinesis-stream.js +1 -1
- package/lib/aws/notify/notification-rule.js +1 -1
- package/lib/aws/notify/policy.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/subscription-filter.js +7 -8
- package/lib/aws/notify/subscription.js +23 -25
- package/lib/aws/notify/subscriptions/email.js +1 -1
- package/lib/aws/notify/subscriptions/lambda.js +1 -1
- package/lib/aws/notify/subscriptions/sms.js +1 -1
- package/lib/aws/notify/subscriptions/sqs.js +1 -1
- package/lib/aws/notify/subscriptions/url.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/notify/topic-base.js +4 -4
- package/lib/aws/notify/topic.js +1 -1
- package/lib/aws/region-lookup.d.ts +8 -0
- package/lib/aws/region-lookup.js +104 -0
- package/lib/aws/storage/assets/image-asset.js +8 -12
- package/lib/aws/storage/assets/s3.js +4 -4
- package/lib/aws/storage/auth-token.js +2 -2
- package/lib/aws/storage/billing.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 +27 -24
- package/lib/aws/storage/capacity.js +1 -1
- package/lib/aws/storage/ecr-repository.js +19 -32
- package/lib/aws/storage/encryption.js +1 -1
- 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/aws/storage/table.js +50 -101
- package/lib/aws/storage/util.d.ts +0 -10
- package/lib/aws/storage/util.js +4 -91
- package/lib/bundling.js +7 -6
- package/lib/construct-base.js +2 -2
- package/lib/duration.js +1 -1
- package/lib/errors.js +5 -3
- package/lib/expiration.js +1 -1
- package/lib/fs/ignore.js +4 -4
- package/lib/fs/index.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/private/asset-staging.js +3 -2
- package/lib/size.js +1 -1
- package/lib/stack-base.d.ts +21 -5
- package/lib/stack-base.js +68 -5
- package/lib/terra-func.js +1 -1
- package/lib/time-zone.js +1 -1
- package/package.json +3 -1
- package/lib/aws/compute/lb-shared/access-logs-accounts.d.ts +0 -7
- package/lib/aws/compute/lb-shared/access-logs-accounts.js +0 -46
- package/lib/aws/partition.d.ts +0 -21
- package/lib/aws/partition.js +0 -42
|
@@ -69,5 +69,5 @@ class SqsQueue {
|
|
|
69
69
|
}
|
|
70
70
|
exports.SqsQueue = SqsQueue;
|
|
71
71
|
_a = JSII_RTTI_SYMBOL_1;
|
|
72
|
-
SqsQueue[_a] = { fqn: "terraconstructs.aws.notify.targets.SqsQueue", version: "0.1.
|
|
72
|
+
SqsQueue[_a] = { fqn: "terraconstructs.aws.notify.targets.SqsQueue", version: "0.1.10" };
|
|
73
73
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvdGFyZ2V0cy9zcXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxpQ0FJZ0I7QUFDaEIsaUNBQWlDO0FBeUJqQzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLFFBQVE7SUFDbkIsWUFDa0IsS0FBb0IsRUFDbkIsUUFBdUIsRUFBRTtRQUQxQixVQUFLLEdBQUwsS0FBSyxDQUFlO1FBQ25CLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBRTFDLElBQUksS0FBSyxDQUFDLGNBQWMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxJQUFJLENBQUMsSUFBa0IsRUFBRSxHQUFZO1FBQzFDLDJCQUEyQjtRQUMzQixNQUFNLFVBQVUsR0FBbUI7WUFDakMsd0VBQXdFO1lBQ3hFLDhDQUE4QztZQUM5QztnQkFDRSxJQUFJLEVBQUUsY0FBYztnQkFDcEIsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7YUFDM0I7U0FDRixDQUFDO1FBQ0YsNkJBQTZCO1FBQzdCLCtCQUErQjtRQUMvQix5Q0FBeUM7UUFDekMsaUJBQWlCO1FBQ2pCLE1BQU07UUFDTix5QkFBeUI7UUFDekIsaUNBQWlDO1FBQ2pDLDhCQUE4QjtRQUM5QixPQUFPO1FBQ1AsS0FBSztRQUNMLElBQUk7UUFFSiwrREFBK0Q7UUFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FDMUIsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUNqRSxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQy9CLElBQUEseUNBQWtDLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUVELE9BQU87WUFDTCxHQUFHLElBQUEsMkJBQW9CLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNuQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87WUFDekIsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQzFCLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7Z0JBQ3RDLENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRTtnQkFDL0MsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDO0lBQ0osQ0FBQzs7QUF6REgsNEJBMERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgbm90aWZ5IGZyb20gXCIuLlwiO1xuaW1wb3J0IHtcbiAgYWRkVG9EZWFkTGV0dGVyUXVldWVSZXNvdXJjZVBvbGljeSxcbiAgVGFyZ2V0QmFzZVByb3BzLFxuICBiaW5kQmFzZVRhcmdldENvbmZpZyxcbn0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCIuLi8uLi9pYW1cIjtcblxuLyoqXG4gKiBDdXN0b21pemUgdGhlIFNRUyBRdWV1ZSBFdmVudCBUYXJnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcXNRdWV1ZVByb3BzIGV4dGVuZHMgVGFyZ2V0QmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIE1lc3NhZ2UgR3JvdXAgSUQgZm9yIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBxdWV1ZVxuICAgKlxuICAgKiBSZXF1aXJlZCBmb3IgRklGTyBxdWV1ZXMsIGxlYXZlIGVtcHR5IGZvciByZWd1bGFyIHF1ZXVlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBtZXNzYWdlIGdyb3VwIElEIChyZWd1bGFyIHF1ZXVlKVxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZUdyb3VwSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIHRvIHNlbmQgdG8gdGhlIHF1ZXVlLlxuICAgKlxuICAgKiBNdXN0IGJlIGEgdmFsaWQgSlNPTiB0ZXh0IHBhc3NlZCB0byB0aGUgdGFyZ2V0IHF1ZXVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0aGUgZW50aXJlIEV2ZW50QnJpZGdlIGV2ZW50XG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlPzogbm90aWZ5LlJ1bGVUYXJnZXRJbnB1dDtcbn1cblxuLyoqXG4gKiBVc2UgYW4gU1FTIFF1ZXVlIGFzIGEgdGFyZ2V0IGZvciBBbWF6b24gRXZlbnRCcmlkZ2UgcnVsZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqICAgLy8vIGZpeHR1cmU9d2l0aFJlcG9BbmRTcXNRdWV1ZVxuICogICAvLyBwdWJsaXNoIHRvIGFuIFNRUyBxdWV1ZSBldmVyeSB0aW1lIGNvZGUgaXMgY29tbWl0dGVkXG4gKiAgIC8vIHRvIGEgQ29kZUNvbW1pdCByZXBvc2l0b3J5XG4gKiAgIHJlcG9zaXRvcnkub25Db21taXQoJ29uQ29tbWl0JywgeyB0YXJnZXQ6IG5ldyB0YXJnZXRzLlNxc1F1ZXVlKHF1ZXVlKSB9KTtcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBTcXNRdWV1ZSBpbXBsZW1lbnRzIG5vdGlmeS5JUnVsZVRhcmdldCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBxdWV1ZTogbm90aWZ5LklRdWV1ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBTcXNRdWV1ZVByb3BzID0ge30sXG4gICkge1xuICAgIGlmIChwcm9wcy5tZXNzYWdlR3JvdXBJZCAhPT0gdW5kZWZpbmVkICYmICFxdWV1ZS5maWZvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJtZXNzYWdlR3JvdXBJZCBjYW5ub3QgYmUgc3BlY2lmaWVkIGZvciBub24tRklGTyBxdWV1ZXNcIik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBSdWxlVGFyZ2V0IHRoYXQgY2FuIGJlIHVzZWQgdG8gdHJpZ2dlciB0aGlzIFNRUyBxdWV1ZSBhcyBhXG4gICAqIHJlc3VsdCBmcm9tIGFuIEV2ZW50QnJpZGdlIGV2ZW50LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9ldmVudGJyaWRnZS9sYXRlc3QvdXNlcmd1aWRlL3Jlc291cmNlLWJhc2VkLXBvbGljaWVzLWV2ZW50YnJpZGdlLmh0bWwjc3FzLXBlcm1pc3Npb25zXG4gICAqL1xuICBwdWJsaWMgYmluZChydWxlOiBub3RpZnkuSVJ1bGUsIF9pZD86IHN0cmluZyk6IG5vdGlmeS5SdWxlVGFyZ2V0Q29uZmlnIHtcbiAgICAvLyByZXN0cmljdCB0byBzYW1lIGFjY291bnRcbiAgICBjb25zdCBjb25kaXRpb25zOiBpYW0uQ29uZGl0aW9ucyA9IFtcbiAgICAgIC8vIEFkZCBvbmx5IHRoZSBhY2NvdW50IGlkIGFzIGEgY29uZGl0aW9uLCB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmN5LlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xMTE1OFxuICAgICAge1xuICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAgICAgICB2YXJpYWJsZTogXCJhd3M6U291cmNlQWNjb3VudFwiLFxuICAgICAgICB2YWx1ZXM6IFtydWxlLmVudi5hY2NvdW50XSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICAvLyAvL1RPRE86IFJlLWFkZCBLTVMgc3VwcG9ydFxuICAgIC8vIC8vVE9ETzogVXBkYXRlIFRlc3RzIGFzIHdlbGxcbiAgICAvLyBpZiAoIXRoaXMucXVldWUuZW5jcnlwdGlvbk1hc3RlcktleSkge1xuICAgIC8vIGNvbmRpdGlvbnMgPSBbXG4gICAgLy8gICB7XG4gICAgLy8gICAgIHRlc3Q6IFwiQXJuRXF1YWxzXCIsXG4gICAgLy8gICAgIHZhcmlhYmxlOiBcImF3czpTb3VyY2VBcm5cIixcbiAgICAvLyAgICAgdmFsdWVzOiBbcnVsZS5ydWxlQXJuXSxcbiAgICAvLyAgIH0sXG4gICAgLy8gXTtcbiAgICAvLyB9XG5cbiAgICAvLyBkZWR1cGxpY2F0ZWQgYXV0b21hdGljYWxseSAoYnkgUG9saWN5RG9jdW1lbnQgUG9zdFByb2Nlc3NvcilcbiAgICB0aGlzLnF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKFxuICAgICAgbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiZXZlbnRzLmFtYXpvbmF3cy5jb21cIiwgeyBjb25kaXRpb25zIH0pLFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5kZWFkTGV0dGVyUXVldWUpIHtcbiAgICAgIGFkZFRvRGVhZExldHRlclF1ZXVlUmVzb3VyY2VQb2xpY3kocnVsZSwgdGhpcy5wcm9wcy5kZWFkTGV0dGVyUXVldWUpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5iaW5kQmFzZVRhcmdldENvbmZpZyh0aGlzLnByb3BzKSxcbiAgICAgIGFybjogdGhpcy5xdWV1ZS5xdWV1ZUFybixcbiAgICAgIGlucHV0OiB0aGlzLnByb3BzLm1lc3NhZ2UsXG4gICAgICB0YXJnZXRSZXNvdXJjZTogdGhpcy5xdWV1ZSxcbiAgICAgIHNxc1BhcmFtZXRlcnM6IHRoaXMucHJvcHMubWVzc2FnZUdyb3VwSWRcbiAgICAgICAgPyB7IG1lc3NhZ2VHcm91cElkOiB0aGlzLnByb3BzLm1lc3NhZ2VHcm91cElkIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -35,5 +35,5 @@ class SfnStateMachine {
|
|
|
35
35
|
}
|
|
36
36
|
exports.SfnStateMachine = SfnStateMachine;
|
|
37
37
|
_a = JSII_RTTI_SYMBOL_1;
|
|
38
|
-
SfnStateMachine[_a] = { fqn: "terraconstructs.aws.notify.targets.SfnStateMachine", version: "0.1.
|
|
38
|
+
SfnStateMachine[_a] = { fqn: "terraconstructs.aws.notify.targets.SfnStateMachine", version: "0.1.10" };
|
|
39
39
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtbWFjaGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L3RhcmdldHMvc3RhdGUtbWFjaGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGlDQUtnQjtBQXVCaEI7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFHMUIsWUFDa0IsT0FBOEIsRUFDN0IsUUFBOEIsRUFBRTtRQURqQyxZQUFPLEdBQVAsT0FBTyxDQUF1QjtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUEyQjtRQUVqRCwrRkFBK0Y7UUFDL0YsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUEseUJBQWtCLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLElBQUksQ0FBQyxLQUFtQixFQUFFLEdBQVk7UUFDM0MsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQy9CLElBQUEseUNBQWtDLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELE9BQU87WUFDTCxHQUFHLElBQUEsMkJBQW9CLEVBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNuQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlO1lBQ2pDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7WUFDdkIsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQzdCLENBQUM7SUFDSixDQUFDOztBQTdCSCwwQ0E4QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBub3RpZnkgZnJvbSBcIi4uXCI7XG5pbXBvcnQge1xuICBhZGRUb0RlYWRMZXR0ZXJRdWV1ZVJlc291cmNlUG9saWN5LFxuICBiaW5kQmFzZVRhcmdldENvbmZpZyxcbiAgc2luZ2xldG9uRXZlbnRSb2xlLFxuICBUYXJnZXRCYXNlUHJvcHMsXG59IGZyb20gXCIuL3V0aWxcIjtcbmltcG9ydCAqIGFzIGNvbXB1dGUgZnJvbSBcIi4uLy4uL2NvbXB1dGVcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vaWFtXCI7XG5cbi8qKlxuICogQ3VzdG9taXplIHRoZSBTdGVwIEZ1bmN0aW9ucyBTdGF0ZSBNYWNoaW5lIHRhcmdldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNmblN0YXRlTWFjaGluZVByb3BzIGV4dGVuZHMgVGFyZ2V0QmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBpbnB1dCB0byB0aGUgc3RhdGUgbWFjaGluZSBleGVjdXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgdGhlIGVudGlyZSBFdmVudEJyaWRnZSBldmVudFxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ/OiBub3RpZnkuUnVsZVRhcmdldElucHV0O1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgdG8gYmUgYXNzdW1lZCB0byBleGVjdXRlIHRoZSBTdGF0ZSBNYWNoaW5lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuZXcgcm9sZSB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG59XG5cbi8qKlxuICogVXNlIGEgU3RlcEZ1bmN0aW9ucyBzdGF0ZSBtYWNoaW5lIGFzIGEgdGFyZ2V0IGZvciBBbWF6b24gRXZlbnRCcmlkZ2UgcnVsZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZm5TdGF0ZU1hY2hpbmUgaW1wbGVtZW50cyBub3RpZnkuSVJ1bGVUYXJnZXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbWFjaGluZTogY29tcHV0ZS5JU3RhdGVNYWNoaW5lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IFNmblN0YXRlTWFjaGluZVByb3BzID0ge30sXG4gICkge1xuICAgIC8vIG5vIHN0YXRlbWVudHMgYXJlIHBhc3NlZCBiZWNhdXNlIHdlIGFyZSBjb25maWd1cmluZyBwZXJtaXNzaW9ucyBieSB1c2luZyBncmFudCogaGVscGVyIGJlbG93XG4gICAgdGhpcy5yb2xlID0gcHJvcHMucm9sZSA/PyBzaW5nbGV0b25FdmVudFJvbGUobWFjaGluZSk7XG4gICAgbWFjaGluZS5ncmFudFN0YXJ0RXhlY3V0aW9uKHRoaXMucm9sZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHByb3BlcnRpZXMgdGhhdCBhcmUgdXNlZCBpbiBhbiBSdWxlIHRvIHRyaWdnZXIgdGhpcyBTdGF0ZSBNYWNoaW5lXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2V2ZW50YnJpZGdlL2xhdGVzdC91c2VyZ3VpZGUvcmVzb3VyY2UtYmFzZWQtcG9saWNpZXMtZXZlbnRicmlkZ2UuaHRtbCNzbnMtcGVybWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBiaW5kKF9ydWxlOiBub3RpZnkuSVJ1bGUsIF9pZD86IHN0cmluZyk6IG5vdGlmeS5SdWxlVGFyZ2V0Q29uZmlnIHtcbiAgICBpZiAodGhpcy5wcm9wcy5kZWFkTGV0dGVyUXVldWUpIHtcbiAgICAgIGFkZFRvRGVhZExldHRlclF1ZXVlUmVzb3VyY2VQb2xpY3koX3J1bGUsIHRoaXMucHJvcHMuZGVhZExldHRlclF1ZXVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uYmluZEJhc2VUYXJnZXRDb25maWcodGhpcy5wcm9wcyksXG4gICAgICBhcm46IHRoaXMubWFjaGluZS5zdGF0ZU1hY2hpbmVBcm4sXG4gICAgICByb2xlOiB0aGlzLnJvbGUsXG4gICAgICBpbnB1dDogdGhpcy5wcm9wcy5pbnB1dCxcbiAgICAgIHRhcmdldFJlc291cmNlOiB0aGlzLm1hY2hpbmUsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -7,6 +7,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
7
7
|
const cdktf_1 = require("cdktf");
|
|
8
8
|
const policy_1 = require("./policy");
|
|
9
9
|
const subscription_1 = require("./subscription");
|
|
10
|
+
const errors_1 = require("../../errors");
|
|
10
11
|
const aws_construct_1 = require("../aws-construct");
|
|
11
12
|
const iam = require("../iam");
|
|
12
13
|
/**
|
|
@@ -41,8 +42,7 @@ class TopicBase extends aws_construct_1.AwsConstructBase {
|
|
|
41
42
|
// We use the subscriber's id as the construct id. There's no meaning
|
|
42
43
|
// to subscribing the same subscriber twice on the same topic.
|
|
43
44
|
if (scope.node.tryFindChild(id)) {
|
|
44
|
-
|
|
45
|
-
throw new Error(`A subscription with id "${id}" already exists under the scope ${scope.node.path}`);
|
|
45
|
+
throw new errors_1.ValidationError(`A subscription with id "${id}" already exists under the scope ${scope.node.path}`, scope);
|
|
46
46
|
}
|
|
47
47
|
const subscription = new subscription_1.Subscription(scope, id, {
|
|
48
48
|
topic: this,
|
|
@@ -171,5 +171,5 @@ class TopicBase extends aws_construct_1.AwsConstructBase {
|
|
|
171
171
|
}
|
|
172
172
|
exports.TopicBase = TopicBase;
|
|
173
173
|
_a = JSII_RTTI_SYMBOL_1;
|
|
174
|
-
TopicBase[_a] = { fqn: "terraconstructs.aws.notify.TopicBase", version: "0.1.
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L3RvcGljLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4SEFBOEg7QUFFOUgsaUNBQThCO0FBTzlCLHFDQUF1QztBQUV2QyxpREFBOEM7QUFDOUMsb0RBSTBCO0FBRTFCLDhCQUE4QjtBQW1HOUI7O0dBRUc7QUFDSCxNQUFzQixTQUFVLFNBQVEsZ0NBQWdCO0lBQ3RELElBQVcsWUFBWTtRQUNyQixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUMxQixDQUFDO0lBQ0osQ0FBQztJQUNELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQXlCRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQTJCLEVBQUU7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDdEIsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLHlCQUF5QixFQUFFLElBQUksRUFBRTtTQUN4RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlLENBQUMsaUJBQXFDO1FBQzFELE1BQU0sa0JBQWtCLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhELE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUM7UUFDekQsSUFBSSxFQUFFLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDO1FBQ3pDLElBQUksYUFBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsRUFB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LElBQUksRUFBRSxDQUFDO2dCQUNmLHNCQUFzQjtnQkFDdEIsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDZDQUE2QztnQkFDckYsSUFBSSxXQUFXLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQzlCLDRFQUE0RTtvQkFDNUUsVUFBVSxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyx1QkFBdUI7Z0JBQ3ZELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8scUJBQXFCLFVBQVUsRUFBRSxDQUFDO0lBQzNDLENBQUM7O0FBOU1ILDhCQStNQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL2YxYzA5MjYzNGEzOTFiMGI3YWVkMGY3NTYyNmRkNmQwZmZkNTY1NjQvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLXNucy9saWIvdG9waWMtYmFzZS50c1xuXG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIElOb3RpZmljYXRpb25SdWxlVGFyZ2V0LFxuICBOb3RpZmljYXRpb25SdWxlVGFyZ2V0Q29uZmlnLFxufSBmcm9tIFwiLi9ub3RpZmljYXRpb24tcnVsZS10YXJnZXRcIjtcbmltcG9ydCB7IFRvcGljUG9saWN5IH0gZnJvbSBcIi4vcG9saWN5XCI7XG5pbXBvcnQgeyBJVG9waWNTdWJzY3JpcHRpb24gfSBmcm9tIFwiLi9zdWJzY3JpYmVyXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwiLi9zdWJzY3JpcHRpb25cIjtcbmltcG9ydCB7XG4gIElBd3NDb25zdHJ1Y3QsXG4gIEF3c0NvbnN0cnVjdEJhc2UsXG4gIEF3c0NvbnN0cnVjdFByb3BzLFxufSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgSUtleSB9IGZyb20gXCIuLi9lbmNyeXB0aW9uXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuLy8gVE9ETzogQWRvcHQgVmFsaWRhdGlvbkVycm9yXG4vLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9wdWxsLzMzMzgyL1xuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvcHVsbC8zMzA0NVxuLy8gaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSBcIi4uLy4uL2NvcmUvbGliL2Vycm9yc1wiO1xuXG4vKipcbiAqIE91dHB1dHMgZm9yIHRoZSBTdWJzY3JpcHRpb24gY29uc3RydWN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvcGljT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSB0b3BpY1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0b3BpY0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdG9waWNcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdG9waWNOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBTTlMgdG9waWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVG9waWMgZXh0ZW5kcyBJQXdzQ29uc3RydWN0LCBJTm90aWZpY2F0aW9uUnVsZVRhcmdldCB7XG4gIC8qKlxuICAgKiBzdHJvbmdseSB0eXBlZCBvdXRwdXRzIGZvciB0aGUgdG9waWNcbiAgICovXG4gIHJlYWRvbmx5IHRvcGljT3V0cHV0czogVG9waWNPdXRwdXRzO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgdG9waWNcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdG9waWNBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHRvcGljXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRvcGljTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIEtNUyBLZXksIGVpdGhlciBtYW5hZ2VkIGJ5IHRoaXMgQ0RLIGFwcCwgb3IgaW1wb3J0ZWQuXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgYXBwbGllcyBvbmx5IHRvIHNlcnZlci1zaWRlIGVuY3J5cHRpb24uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc25zLXNlcnZlci1zaWRlLWVuY3J5cHRpb24uaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBtYXN0ZXJLZXk/OiBJS2V5O1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIGNvbnRlbnQtYmFzZWQgZGVkdXBsaWNhdGlvbiBmb3IgRklGTyB0b3BpY3MuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyB0b3BpYyBpcyBhbiBBbWF6b24gU05TIEZJRk8gcXVldWUuIElmIGZhbHNlLCB0aGlzIGlzIGEgc3RhbmRhcmQgdG9waWMuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGZpZm86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSBzb21lIGVuZHBvaW50IHRvIHRoaXMgdG9waWNcbiAgICovXG4gIGFkZFN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb246IElUb3BpY1N1YnNjcmlwdGlvbik6IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgSUFNIHJlc291cmNlIHBvbGljeSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0b3BpYy5cbiAgICpcbiAgICogSWYgdGhpcyB0b3BpYyB3YXMgY3JlYXRlZCBpbiB0aGlzIHN0YWNrIChgbmV3IFRvcGljYCksIGEgdG9waWMgcG9saWN5XG4gICAqIHdpbGwgYmUgYXV0b21hdGljYWxseSBjcmVhdGVkIHVwb24gdGhlIGZpcnN0IGNhbGwgdG8gYGFkZFRvUmVzb3VyY2VQb2xpY3lgLiBJZlxuICAgKiB0aGUgdG9waWMgaXMgaW1wb3J0ZWQgKGBUb3BpYy5pbXBvcnRgKSwgdGhlbiB0aGlzIGlzIGEgbm8tb3AuXG4gICAqL1xuICBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHRvcGljIHB1Ymxpc2hpbmcgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGlkZW50aXR5XG4gICAqL1xuICBncmFudFB1Ymxpc2goaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB0b3BpYyBzdWJzY3JpYmluZyBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gaWRlbnRpdHlcbiAgICovXG4gIGdyYW50U3Vic2NyaWJlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbn1cblxuLyoqXG4gKiBFaXRoZXIgYSBuZXcgb3IgaW1wb3J0ZWQgVG9waWNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRvcGljQmFzZSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJVG9waWMge1xuICBwdWJsaWMgZ2V0IHRvcGljT3V0cHV0cygpOiBUb3BpY091dHB1dHMge1xuICAgIHJldHVybiB7XG4gICAgICB0b3BpY0FybjogdGhpcy50b3BpY0FybixcbiAgICAgIHRvcGljTmFtZTogdGhpcy50b3BpY05hbWUsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMudG9waWNPdXRwdXRzO1xuICB9XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0b3BpY0Fybjogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0b3BpY05hbWU6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgbWFzdGVyS2V5PzogSUtleTtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZmlmbzogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29udHJvbHMgYXV0b21hdGljIGNyZWF0aW9uIG9mIHBvbGljeSBvYmplY3RzLlxuICAgKlxuICAgKiBTZXQgYnkgc3ViY2xhc3Nlcy5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIGVuZm9yY2UgZW5jcnlwdGlvbiBvZiBkYXRhIGluIHRyYW5zaXQgd2hlbiBwdWJsaXNoaW5nIHRvIHRoZSB0b3BpYy5cbiAgICovXG4gIHByb3RlY3RlZCBlbmZvcmNlU1NMPzogYm9vbGVhbjtcblxuICBwcml2YXRlIHBvbGljeT86IFRvcGljUG9saWN5O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBd3NDb25zdHJ1Y3RQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih7XG4gICAgICB2YWxpZGF0ZTogKCkgPT4gdGhpcy5wb2xpY3k/LmRvY3VtZW50LnZhbGlkYXRlRm9yUmVzb3VyY2VQb2xpY3koKSA/PyBbXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgc29tZSBlbmRwb2ludCB0byB0aGlzIHRvcGljXG4gICAqL1xuICBwdWJsaWMgYWRkU3Vic2NyaXB0aW9uKHRvcGljU3Vic2NyaXB0aW9uOiBJVG9waWNTdWJzY3JpcHRpb24pOiBTdWJzY3JpcHRpb24ge1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbkNvbmZpZyA9IHRvcGljU3Vic2NyaXB0aW9uLmJpbmQodGhpcyk7XG5cbiAgICBjb25zdCBzY29wZSA9IHN1YnNjcmlwdGlvbkNvbmZpZy5zdWJzY3JpYmVyU2NvcGUgfHwgdGhpcztcbiAgICBsZXQgaWQgPSBzdWJzY3JpcHRpb25Db25maWcuc3Vic2NyaWJlcklkO1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoc3Vic2NyaXB0aW9uQ29uZmlnLnN1YnNjcmliZXJJZCkpIHtcbiAgICAgIGlkID0gdGhpcy5uZXh0VG9rZW5JZChzY29wZSk7XG4gICAgfVxuXG4gICAgLy8gV2UgdXNlIHRoZSBzdWJzY3JpYmVyJ3MgaWQgYXMgdGhlIGNvbnN0cnVjdCBpZC4gVGhlcmUncyBubyBtZWFuaW5nXG4gICAgLy8gdG8gc3Vic2NyaWJpbmcgdGhlIHNhbWUgc3Vic2NyaWJlciB0d2ljZSBvbiB0aGUgc2FtZSB0b3BpYy5cbiAgICBpZiAoc2NvcGUubm9kZS50cnlGaW5kQ2hpbGQoaWQpKSB7XG4gICAgICAvLyBUT0RPOiBBZG9wdCBWYWxpZGF0aW9uRXJyb3JcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEEgc3Vic2NyaXB0aW9uIHdpdGggaWQgXCIke2lkfVwiIGFscmVhZHkgZXhpc3RzIHVuZGVyIHRoZSBzY29wZSAke3Njb3BlLm5vZGUucGF0aH1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKHNjb3BlLCBpZCwge1xuICAgICAgdG9waWM6IHRoaXMsXG4gICAgICAuLi5zdWJzY3JpcHRpb25Db25maWcsXG4gICAgfSk7XG5cbiAgICAvLyBBZGQgZGVwZW5kZW5jeSBmb3IgdGhlIHN1YnNjcmlwdGlvbiwgZm9yIGV4YW1wbGUgZm9yIFNRUyBzdWJzY3JpcHRpb25cbiAgICAvLyB0aGUgcXVldWUgcG9saWN5IGhhcyB0byBkZXBsb3kgYmVmb3JlIHRoZSBzdWJzY3JpcHRpb24gaXMgY3JlYXRlZFxuICAgIGlmIChzdWJzY3JpcHRpb25Db25maWcuc3Vic2NyaXB0aW9uRGVwZW5kZW5jeSkge1xuICAgICAgc3Vic2NyaXB0aW9uLm5vZGUuYWRkRGVwZW5kZW5jeShcbiAgICAgICAgc3Vic2NyaXB0aW9uQ29uZmlnLnN1YnNjcmlwdGlvbkRlcGVuZGVuY3ksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJzY3JpcHRpb247XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgSUFNIHJlc291cmNlIHBvbGljeSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0b3BpYy5cbiAgICpcbiAgICogSWYgdGhpcyB0b3BpYyB3YXMgY3JlYXRlZCBpbiB0aGlzIHN0YWNrIChgbmV3IFRvcGljYCksIGEgdG9waWMgcG9saWN5XG4gICAqIHdpbGwgYmUgYXV0b21hdGljYWxseSBjcmVhdGVkIHVwb24gdGhlIGZpcnN0IGNhbGwgdG8gYGFkZFRvUmVzb3VyY2VQb2xpY3lgLlxuICAgKiBIb3dldmVyLCBpZiBgZW5mb3JjZVNTTGAgaXMgc2V0IHRvIGB0cnVlYCwgdGhlIHBvbGljeSBoYXMgYWxyZWFkeSBiZWVuIGNyZWF0ZWRcbiAgICogYmVmb3JlIHRoZSBmaXJzdCBjYWxsIHRvIHRoaXMgbWV0aG9kLlxuICAgKlxuICAgKiBJZiB0aGUgdG9waWMgaXMgaW1wb3J0ZWQgKGBUb3BpYy5pbXBvcnRgKSwgdGhlbiB0aGlzIGlzIGEgbm8tb3AuXG4gICAqL1xuICBwdWJsaWMgYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICBzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQsXG4gICk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0IHtcbiAgICB0aGlzLmNyZWF0ZVRvcGljUG9saWN5KCk7XG5cbiAgICBpZiAodGhpcy5wb2xpY3kpIHtcbiAgICAgIHRoaXMucG9saWN5LmRvY3VtZW50LmFkZFN0YXRlbWVudHMoc3RhdGVtZW50KTtcbiAgICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiB0cnVlLCBwb2xpY3lEZXBlbmRhYmxlOiB0aGlzLnBvbGljeSB9O1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogZmFsc2UgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgU1NMIHBvbGljeSB0byB0aGUgdG9waWMgcmVzb3VyY2UgcG9saWN5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGFkZFNTTFBvbGljeSgpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZVRvcGljUG9saWN5KCk7XG5cbiAgICBpZiAodGhpcy5wb2xpY3kpIHtcbiAgICAgIHRoaXMucG9saWN5LmRvY3VtZW50LmFkZFN0YXRlbWVudHModGhpcy5jcmVhdGVTU0xQb2xpY3lEb2N1bWVudCgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHRvcGljIHBvbGljeSBmb3IgdGhpcyB0b3BpYy5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVUb3BpY1BvbGljeSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucG9saWN5ICYmIHRoaXMuYXV0b0NyZWF0ZVBvbGljeSkge1xuICAgICAgdGhpcy5wb2xpY3kgPSBuZXcgVG9waWNQb2xpY3kodGhpcywgXCJQb2xpY3lcIiwgeyB0b3BpY3M6IFt0aGlzXSB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byBlbmZvcmNlIGVuY3J5cHRpb24gb2YgZGF0YSBpbiB0cmFuc2l0IHdoZW4gcHVibGlzaGluZyB0byB0aGUgdG9waWMuXG4gICAqXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc25zLXNlY3VyaXR5LWJlc3QtcHJhY3RpY2VzLmh0bWwjZW5mb3JjZS1lbmNyeXB0aW9uLWRhdGEtaW4tdHJhbnNpdC5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVTU0xQb2xpY3lEb2N1bWVudCgpOiBpYW0uUG9saWN5U3RhdGVtZW50IHtcbiAgICByZXR1cm4gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgc2lkOiBcIkFsbG93UHVibGlzaFRocm91Z2hTU0xPbmx5XCIsXG4gICAgICBhY3Rpb25zOiBbXCJzbnM6UHVibGlzaFwiXSxcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5ERU5ZLFxuICAgICAgcmVzb3VyY2VzOiBbdGhpcy50b3BpY0Fybl0sXG4gICAgICBjb25kaXRpb246IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3Q6IFwiQm9vbFwiLFxuICAgICAgICAgIHZhbHVlczogW1wiZmFsc2VcIl0sXG4gICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNlY3VyZVRyYW5zcG9ydFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLlN0YXJQcmluY2lwYWwoKV0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdG9waWMgcHVibGlzaGluZyBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gaWRlbnRpdHlcbiAgICovXG4gIHB1YmxpYyBncmFudFB1Ymxpc2goZ3JhbnRlZTogaWFtLklHcmFudGFibGUpIHtcbiAgICBjb25zdCByZXQgPSBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWxPclJlc291cmNlKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbXCJzbnM6UHVibGlzaFwiXSxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMudG9waWNBcm5dLFxuICAgICAgcmVzb3VyY2U6IHRoaXMsXG4gICAgfSk7XG4gICAgaWYgKHRoaXMubWFzdGVyS2V5KSB7XG4gICAgICB0aGlzLm1hc3RlcktleS5ncmFudChncmFudGVlLCBcImttczpEZWNyeXB0XCIsIFwia21zOkdlbmVyYXRlRGF0YUtleSpcIik7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdG9waWMgc3Vic2NyaWJpbmcgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGlkZW50aXR5XG4gICAqL1xuICBwdWJsaWMgZ3JhbnRTdWJzY3JpYmUoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpIHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsT3JSZXNvdXJjZSh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogW1wic25zOlN1YnNjcmliZVwiXSxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMudG9waWNBcm5dLFxuICAgICAgcmVzb3VyY2U6IHRoaXMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwcmVzZW50cyBhIG5vdGlmaWNhdGlvbiB0YXJnZXRcbiAgICogVGhhdCBhbGxvd3MgU05TIHRvcGljIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgcnVsZSB0YXJnZXQuXG4gICAqL1xuICBwdWJsaWMgYmluZEFzTm90aWZpY2F0aW9uUnVsZVRhcmdldChcbiAgICBfc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICApOiBOb3RpZmljYXRpb25SdWxlVGFyZ2V0Q29uZmlnIHtcbiAgICAvLyBTTlMgdG9waWMgbmVlZCB0byBncmFudCBjb2Rlc3Rhci1ub3RpZmljYXRpb25zIHNlcnZpY2UgdG8gcHVibGlzaFxuICAgIC8vIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2R0Y29uc29sZS9sYXRlc3QvdXNlcmd1aWRlL3NldC11cC1zbnMuaHRtbFxuICAgIHRoaXMuZ3JhbnRQdWJsaXNoKFxuICAgICAgbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiY29kZXN0YXItbm90aWZpY2F0aW9ucy5hbWF6b25hd3MuY29tXCIpLFxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRhcmdldFR5cGU6IFwiU05TXCIsXG4gICAgICB0YXJnZXRBZGRyZXNzOiB0aGlzLnRvcGljQXJuLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG5leHRUb2tlbklkKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICBsZXQgbmV4dFN1ZmZpeCA9IDE7XG4gICAgY29uc3QgcmUgPSAvVG9rZW5TdWJzY3JpcHRpb246KFtcXGRdKikvZ207XG4gICAgLy8gU2VhcmNoIHRocm91Z2ggdGhlIGNvbnN0cnVjdCBhbmQgYWxsIG9mIGl0cyBjaGlsZHJlblxuICAgIC8vIGZvciBwcmV2aW91cyBzdWJzY3JpcHRpb25zIHRoYXQgbWF0Y2ggb3VyIHJlZ2V4IHBhdHRlcm5cbiAgICBmb3IgKGNvbnN0IHNvdXJjZSBvZiBzY29wZS5ub2RlLmZpbmRBbGwoKSkge1xuICAgICAgY29uc3QgbSA9IHJlLmV4ZWMoc291cmNlLm5vZGUuaWQpOyAvLyBVc2UgcmVnZXggdG8gZmluZCBhIG1hdGNoXG4gICAgICBpZiAobSAhPT0gbnVsbCkge1xuICAgICAgICAvLyBpZiB3ZSBmb3VuZCBhIG1hdGNoXG4gICAgICAgIGNvbnN0IG1hdGNoU3VmZml4ID0gcGFyc2VJbnQobVsxXSwgMTApOyAvLyBnZXQgdGhlIHN1ZmZpeCBmb3IgdGhhdCBtYXRjaCAoYXMgaW50ZWdlcilcbiAgICAgICAgaWYgKG1hdGNoU3VmZml4ID49IG5leHRTdWZmaXgpIHtcbiAgICAgICAgICAvLyBjaGVjayBpZiB0aGUgbWF0Y2ggc3VmZml4IGlzIGxhcmdlciBvciBlcXVhbCB0byBjdXJyZW50bHkgcHJvcG9zZWQgc3VmZml4XG4gICAgICAgICAgbmV4dFN1ZmZpeCA9IG1hdGNoU3VmZml4ICsgMTsgLy8gaW5jcmVtZW50IHRoZSBzdWZmaXhcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYFRva2VuU3Vic2NyaXB0aW9uOiR7bmV4dFN1ZmZpeH1gO1xuICB9XG59XG4iXX0=
|
|
174
|
+
TopicBase[_a] = { fqn: "terraconstructs.aws.notify.TopicBase", version: "0.1.10" };
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L3RvcGljLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4SEFBOEg7QUFFOUgsaUNBQThCO0FBTzlCLHFDQUF1QztBQUV2QyxpREFBOEM7QUFDOUMseUNBQStDO0FBQy9DLG9EQUkwQjtBQUUxQiw4QkFBOEI7QUErRjlCOztHQUVHO0FBQ0gsTUFBc0IsU0FBVSxTQUFRLGdDQUFnQjtJQUN0RCxJQUFXLFlBQVk7UUFDckIsT0FBTztZQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDMUIsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUF5QkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUEyQixFQUFFO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ3RCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLEVBQUU7U0FDeEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZUFBZSxDQUFDLGlCQUFxQztRQUMxRCxNQUFNLGtCQUFrQixHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4RCxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDO1FBQ3pELElBQUksRUFBRSxHQUFHLGtCQUFrQixDQUFDLFlBQVksQ0FBQztRQUN6QyxJQUFJLGFBQUssQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMs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QUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNmLHNCQUFzQjtnQkFDdEIsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDZDQUE2QztnQkFDckYsSUFBSSxXQUFXLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQzlCLDRFQUE0RTtvQkFDNUUsVUFBVSxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyx1QkFBdUI7Z0JBQ3ZELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8scUJBQXFCLFVBQVUsRUFBRSxDQUFDO0lBQzNDLENBQUM7O0FBOU1ILDhCQStNQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL2YxYzA5MjYzNGEzOTFiMGI3YWVkMGY3NTYyNmRkNmQwZmZkNTY1NjQvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLXNucy9saWIvdG9waWMtYmFzZS50c1xuXG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIElOb3RpZmljYXRpb25SdWxlVGFyZ2V0LFxuICBOb3RpZmljYXRpb25SdWxlVGFyZ2V0Q29uZmlnLFxufSBmcm9tIFwiLi9ub3RpZmljYXRpb24tcnVsZS10YXJnZXRcIjtcbmltcG9ydCB7IFRvcGljUG9saWN5IH0gZnJvbSBcIi4vcG9saWN5XCI7XG5pbXBvcnQgeyBJVG9waWNTdWJzY3JpcHRpb24gfSBmcm9tIFwiLi9zdWJzY3JpYmVyXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwiLi9zdWJzY3JpcHRpb25cIjtcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCIuLi8uLi9lcnJvcnNcIjtcbmltcG9ydCB7XG4gIElBd3NDb25zdHJ1Y3QsXG4gIEF3c0NvbnN0cnVjdEJhc2UsXG4gIEF3c0NvbnN0cnVjdFByb3BzLFxufSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgSUtleSB9IGZyb20gXCIuLi9lbmNyeXB0aW9uXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuXG4vKipcbiAqIE91dHB1dHMgZm9yIHRoZSBTdWJzY3JpcHRpb24gY29uc3RydWN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvcGljT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSB0b3BpY1xuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0b3BpY0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdG9waWNcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdG9waWNOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBTTlMgdG9waWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVG9waWMgZXh0ZW5kcyBJQXdzQ29uc3RydWN0LCBJTm90aWZpY2F0aW9uUnVsZVRhcmdldCB7XG4gIC8qKlxuICAgKiBzdHJvbmdseSB0eXBlZCBvdXRwdXRzIGZvciB0aGUgdG9waWNcbiAgICovXG4gIHJlYWRvbmx5IHRvcGljT3V0cHV0czogVG9waWNPdXRwdXRzO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgdG9waWNcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdG9waWNBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHRvcGljXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRvcGljTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIEtNUyBLZXksIGVpdGhlciBtYW5hZ2VkIGJ5IHRoaXMgQ0RLIGFwcCwgb3IgaW1wb3J0ZWQuXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgYXBwbGllcyBvbmx5IHRvIHNlcnZlci1zaWRlIGVuY3J5cHRpb24uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc25zLXNlcnZlci1zaWRlLWVuY3J5cHRpb24uaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBtYXN0ZXJLZXk/OiBJS2V5O1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIGNvbnRlbnQtYmFzZWQgZGVkdXBsaWNhdGlvbiBmb3IgRklGTyB0b3BpY3MuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyB0b3BpYyBpcyBhbiBBbWF6b24gU05TIEZJRk8gcXVldWUuIElmIGZhbHNlLCB0aGlzIGlzIGEgc3RhbmRhcmQgdG9waWMuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGZpZm86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSBzb21lIGVuZHBvaW50IHRvIHRoaXMgdG9waWNcbiAgICovXG4gIGFkZFN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb246IElUb3BpY1N1YnNjcmlwdGlvbik6IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgSUFNIHJlc291cmNlIHBvbGljeSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0b3BpYy5cbiAgICpcbiAgICogSWYgdGhpcyB0b3BpYyB3YXMgY3JlYXRlZCBpbiB0aGlzIHN0YWNrIChgbmV3IFRvcGljYCksIGEgdG9waWMgcG9saWN5XG4gICAqIHdpbGwgYmUgYXV0b21hdGljYWxseSBjcmVhdGVkIHVwb24gdGhlIGZpcnN0IGNhbGwgdG8gYGFkZFRvUmVzb3VyY2VQb2xpY3lgLiBJZlxuICAgKiB0aGUgdG9waWMgaXMgaW1wb3J0ZWQgKGBUb3BpYy5pbXBvcnRgKSwgdGhlbiB0aGlzIGlzIGEgbm8tb3AuXG4gICAqL1xuICBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQ7XG5cbiAgLyoqXG4gICAqIEdyYW50IHRvcGljIHB1Ymxpc2hpbmcgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGlkZW50aXR5XG4gICAqL1xuICBncmFudFB1Ymxpc2goaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB0b3BpYyBzdWJzY3JpYmluZyBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gaWRlbnRpdHlcbiAgICovXG4gIGdyYW50U3Vic2NyaWJlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbn1cblxuLyoqXG4gKiBFaXRoZXIgYSBuZXcgb3IgaW1wb3J0ZWQgVG9waWNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRvcGljQmFzZSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJVG9waWMge1xuICBwdWJsaWMgZ2V0IHRvcGljT3V0cHV0cygpOiBUb3BpY091dHB1dHMge1xuICAgIHJldHVybiB7XG4gICAgICB0b3BpY0FybjogdGhpcy50b3BpY0FybixcbiAgICAgIHRvcGljTmFtZTogdGhpcy50b3BpY05hbWUsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMudG9waWNPdXRwdXRzO1xuICB9XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0b3BpY0Fybjogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB0b3BpY05hbWU6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgbWFzdGVyS2V5PzogSUtleTtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZmlmbzogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29udHJvbHMgYXV0b21hdGljIGNyZWF0aW9uIG9mIHBvbGljeSBvYmplY3RzLlxuICAgKlxuICAgKiBTZXQgYnkgc3ViY2xhc3Nlcy5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIGVuZm9yY2UgZW5jcnlwdGlvbiBvZiBkYXRhIGluIHRyYW5zaXQgd2hlbiBwdWJsaXNoaW5nIHRvIHRoZSB0b3BpYy5cbiAgICovXG4gIHByb3RlY3RlZCBlbmZvcmNlU1NMPzogYm9vbGVhbjtcblxuICBwcml2YXRlIHBvbGljeT86IFRvcGljUG9saWN5O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBd3NDb25zdHJ1Y3RQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih7XG4gICAgICB2YWxpZGF0ZTogKCkgPT4gdGhpcy5wb2xpY3k/LmRvY3VtZW50LnZhbGlkYXRlRm9yUmVzb3VyY2VQb2xpY3koKSA/PyBbXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgc29tZSBlbmRwb2ludCB0byB0aGlzIHRvcGljXG4gICAqL1xuICBwdWJsaWMgYWRkU3Vic2NyaXB0aW9uKHRvcGljU3Vic2NyaXB0aW9uOiBJVG9waWNTdWJzY3JpcHRpb24pOiBTdWJzY3JpcHRpb24ge1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbkNvbmZpZyA9IHRvcGljU3Vic2NyaXB0aW9uLmJpbmQodGhpcyk7XG5cbiAgICBjb25zdCBzY29wZSA9IHN1YnNjcmlwdGlvbkNvbmZpZy5zdWJzY3JpYmVyU2NvcGUgfHwgdGhpcztcbiAgICBsZXQgaWQgPSBzdWJzY3JpcHRpb25Db25maWcuc3Vic2NyaWJlcklkO1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoc3Vic2NyaXB0aW9uQ29uZmlnLnN1YnNjcmliZXJJZCkpIHtcbiAgICAgIGlkID0gdGhpcy5uZXh0VG9rZW5JZChzY29wZSk7XG4gICAgfVxuXG4gICAgLy8gV2UgdXNlIHRoZSBzdWJzY3JpYmVyJ3MgaWQgYXMgdGhlIGNvbnN0cnVjdCBpZC4gVGhlcmUncyBubyBtZWFuaW5nXG4gICAgLy8gdG8gc3Vic2NyaWJpbmcgdGhlIHNhbWUgc3Vic2NyaWJlciB0d2ljZSBvbiB0aGUgc2FtZSB0b3BpYy5cbiAgICBpZiAoc2NvcGUubm9kZS50cnlGaW5kQ2hpbGQoaWQpKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBgQSBzdWJzY3JpcHRpb24gd2l0aCBpZCBcIiR7aWR9XCIgYWxyZWFkeSBleGlzdHMgdW5kZXIgdGhlIHNjb3BlICR7c2NvcGUubm9kZS5wYXRofWAsXG4gICAgICAgIHNjb3BlLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKHNjb3BlLCBpZCwge1xuICAgICAgdG9waWM6IHRoaXMsXG4gICAgICAuLi5zdWJzY3JpcHRpb25Db25maWcsXG4gICAgfSk7XG5cbiAgICAvLyBBZGQgZGVwZW5kZW5jeSBmb3IgdGhlIHN1YnNjcmlwdGlvbiwgZm9yIGV4YW1wbGUgZm9yIFNRUyBzdWJzY3JpcHRpb25cbiAgICAvLyB0aGUgcXVldWUgcG9saWN5IGhhcyB0byBkZXBsb3kgYmVmb3JlIHRoZSBzdWJzY3JpcHRpb24gaXMgY3JlYXRlZFxuICAgIGlmIChzdWJzY3JpcHRpb25Db25maWcuc3Vic2NyaXB0aW9uRGVwZW5kZW5jeSkge1xuICAgICAgc3Vic2NyaXB0aW9uLm5vZGUuYWRkRGVwZW5kZW5jeShcbiAgICAgICAgc3Vic2NyaXB0aW9uQ29uZmlnLnN1YnNjcmlwdGlvbkRlcGVuZGVuY3ksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJzY3JpcHRpb247XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgSUFNIHJlc291cmNlIHBvbGljeSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0b3BpYy5cbiAgICpcbiAgICogSWYgdGhpcyB0b3BpYyB3YXMgY3JlYXRlZCBpbiB0aGlzIHN0YWNrIChgbmV3IFRvcGljYCksIGEgdG9waWMgcG9saWN5XG4gICAqIHdpbGwgYmUgYXV0b21hdGljYWxseSBjcmVhdGVkIHVwb24gdGhlIGZpcnN0IGNhbGwgdG8gYGFkZFRvUmVzb3VyY2VQb2xpY3lgLlxuICAgKiBIb3dldmVyLCBpZiBgZW5mb3JjZVNTTGAgaXMgc2V0IHRvIGB0cnVlYCwgdGhlIHBvbGljeSBoYXMgYWxyZWFkeSBiZWVuIGNyZWF0ZWRcbiAgICogYmVmb3JlIHRoZSBmaXJzdCBjYWxsIHRvIHRoaXMgbWV0aG9kLlxuICAgKlxuICAgKiBJZiB0aGUgdG9waWMgaXMgaW1wb3J0ZWQgKGBUb3BpYy5pbXBvcnRgKSwgdGhlbiB0aGlzIGlzIGEgbm8tb3AuXG4gICAqL1xuICBwdWJsaWMgYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICBzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQsXG4gICk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0IHtcbiAgICB0aGlzLmNyZWF0ZVRvcGljUG9saWN5KCk7XG5cbiAgICBpZiAodGhpcy5wb2xpY3kpIHtcbiAgICAgIHRoaXMucG9saWN5LmRvY3VtZW50LmFkZFN0YXRlbWVudHMoc3RhdGVtZW50KTtcbiAgICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiB0cnVlLCBwb2xpY3lEZXBlbmRhYmxlOiB0aGlzLnBvbGljeSB9O1xuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogZmFsc2UgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgU1NMIHBvbGljeSB0byB0aGUgdG9waWMgcmVzb3VyY2UgcG9saWN5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGFkZFNTTFBvbGljeSgpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZVRvcGljUG9saWN5KCk7XG5cbiAgICBpZiAodGhpcy5wb2xpY3kpIHtcbiAgICAgIHRoaXMucG9saWN5LmRvY3VtZW50LmFkZFN0YXRlbWVudHModGhpcy5jcmVhdGVTU0xQb2xpY3lEb2N1bWVudCgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHRvcGljIHBvbGljeSBmb3IgdGhpcyB0b3BpYy5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVUb3BpY1BvbGljeSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucG9saWN5ICYmIHRoaXMuYXV0b0NyZWF0ZVBvbGljeSkge1xuICAgICAgdGhpcy5wb2xpY3kgPSBuZXcgVG9waWNQb2xpY3kodGhpcywgXCJQb2xpY3lcIiwgeyB0b3BpY3M6IFt0aGlzXSB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byBlbmZvcmNlIGVuY3J5cHRpb24gb2YgZGF0YSBpbiB0cmFuc2l0IHdoZW4gcHVibGlzaGluZyB0byB0aGUgdG9waWMuXG4gICAqXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc25zLXNlY3VyaXR5LWJlc3QtcHJhY3RpY2VzLmh0bWwjZW5mb3JjZS1lbmNyeXB0aW9uLWRhdGEtaW4tdHJhbnNpdC5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVTU0xQb2xpY3lEb2N1bWVudCgpOiBpYW0uUG9saWN5U3RhdGVtZW50IHtcbiAgICByZXR1cm4gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgc2lkOiBcIkFsbG93UHVibGlzaFRocm91Z2hTU0xPbmx5XCIsXG4gICAgICBhY3Rpb25zOiBbXCJzbnM6UHVibGlzaFwiXSxcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5ERU5ZLFxuICAgICAgcmVzb3VyY2VzOiBbdGhpcy50b3BpY0Fybl0sXG4gICAgICBjb25kaXRpb246IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3Q6IFwiQm9vbFwiLFxuICAgICAgICAgIHZhbHVlczogW1wiZmFsc2VcIl0sXG4gICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNlY3VyZVRyYW5zcG9ydFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLlN0YXJQcmluY2lwYWwoKV0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdG9waWMgcHVibGlzaGluZyBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gaWRlbnRpdHlcbiAgICovXG4gIHB1YmxpYyBncmFudFB1Ymxpc2goZ3JhbnRlZTogaWFtLklHcmFudGFibGUpIHtcbiAgICBjb25zdCByZXQgPSBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWxPclJlc291cmNlKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbXCJzbnM6UHVibGlzaFwiXSxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMudG9waWNBcm5dLFxuICAgICAgcmVzb3VyY2U6IHRoaXMsXG4gICAgfSk7XG4gICAgaWYgKHRoaXMubWFzdGVyS2V5KSB7XG4gICAgICB0aGlzLm1hc3RlcktleS5ncmFudChncmFudGVlLCBcImttczpEZWNyeXB0XCIsIFwia21zOkdlbmVyYXRlRGF0YUtleSpcIik7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdG9waWMgc3Vic2NyaWJpbmcgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIGlkZW50aXR5XG4gICAqL1xuICBwdWJsaWMgZ3JhbnRTdWJzY3JpYmUoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpIHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsT3JSZXNvdXJjZSh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogW1wic25zOlN1YnNjcmliZVwiXSxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMudG9waWNBcm5dLFxuICAgICAgcmVzb3VyY2U6IHRoaXMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwcmVzZW50cyBhIG5vdGlmaWNhdGlvbiB0YXJnZXRcbiAgICogVGhhdCBhbGxvd3MgU05TIHRvcGljIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgcnVsZSB0YXJnZXQuXG4gICAqL1xuICBwdWJsaWMgYmluZEFzTm90aWZpY2F0aW9uUnVsZVRhcmdldChcbiAgICBfc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICApOiBOb3RpZmljYXRpb25SdWxlVGFyZ2V0Q29uZmlnIHtcbiAgICAvLyBTTlMgdG9waWMgbmVlZCB0byBncmFudCBjb2Rlc3Rhci1ub3RpZmljYXRpb25zIHNlcnZpY2UgdG8gcHVibGlzaFxuICAgIC8vIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2R0Y29uc29sZS9sYXRlc3QvdXNlcmd1aWRlL3NldC11cC1zbnMuaHRtbFxuICAgIHRoaXMuZ3JhbnRQdWJsaXNoKFxuICAgICAgbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiY29kZXN0YXItbm90aWZpY2F0aW9ucy5hbWF6b25hd3MuY29tXCIpLFxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRhcmdldFR5cGU6IFwiU05TXCIsXG4gICAgICB0YXJnZXRBZGRyZXNzOiB0aGlzLnRvcGljQXJuLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG5leHRUb2tlbklkKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICBsZXQgbmV4dFN1ZmZpeCA9IDE7XG4gICAgY29uc3QgcmUgPSAvVG9rZW5TdWJzY3JpcHRpb246KFtcXGRdKikvZ207XG4gICAgLy8gU2VhcmNoIHRocm91Z2ggdGhlIGNvbnN0cnVjdCBhbmQgYWxsIG9mIGl0cyBjaGlsZHJlblxuICAgIC8vIGZvciBwcmV2aW91cyBzdWJzY3JpcHRpb25zIHRoYXQgbWF0Y2ggb3VyIHJlZ2V4IHBhdHRlcm5cbiAgICBmb3IgKGNvbnN0IHNvdXJjZSBvZiBzY29wZS5ub2RlLmZpbmRBbGwoKSkge1xuICAgICAgY29uc3QgbSA9IHJlLmV4ZWMoc291cmNlLm5vZGUuaWQpOyAvLyBVc2UgcmVnZXggdG8gZmluZCBhIG1hdGNoXG4gICAgICBpZiAobSAhPT0gbnVsbCkge1xuICAgICAgICAvLyBpZiB3ZSBmb3VuZCBhIG1hdGNoXG4gICAgICAgIGNvbnN0IG1hdGNoU3VmZml4ID0gcGFyc2VJbnQobVsxXSwgMTApOyAvLyBnZXQgdGhlIHN1ZmZpeCBmb3IgdGhhdCBtYXRjaCAoYXMgaW50ZWdlcilcbiAgICAgICAgaWYgKG1hdGNoU3VmZml4ID49IG5leHRTdWZmaXgpIHtcbiAgICAgICAgICAvLyBjaGVjayBpZiB0aGUgbWF0Y2ggc3VmZml4IGlzIGxhcmdlciBvciBlcXVhbCB0byBjdXJyZW50bHkgcHJvcG9zZWQgc3VmZml4XG4gICAgICAgICAgbmV4dFN1ZmZpeCA9IG1hdGNoU3VmZml4ICsgMTsgLy8gaW5jcmVtZW50IHRoZSBzdWZmaXhcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYFRva2VuU3Vic2NyaXB0aW9uOiR7bmV4dFN1ZmZpeH1gO1xuICB9XG59XG4iXX0=
|
package/lib/aws/notify/topic.js
CHANGED
|
@@ -216,5 +216,5 @@ class Topic extends topic_base_1.TopicBase {
|
|
|
216
216
|
}
|
|
217
217
|
exports.Topic = Topic;
|
|
218
218
|
_a = JSII_RTTI_SYMBOL_1;
|
|
219
|
-
Topic[_a] = { fqn: "terraconstructs.aws.notify.Topic", version: "0.1.
|
|
219
|
+
Topic[_a] = { fqn: "terraconstructs.aws.notify.Topic", version: "0.1.10" };
|
|
220
220
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL25vdGlmeS90b3BpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlIQUF5SDtBQUV6SCxzREFBK0M7QUFDL0MsaUNBQThCO0FBRTlCLGdDQUFtQztBQUVuQyw0Q0FBd0M7QUFDeEMsNENBQTRDO0FBQzVDLDhCQUE4QjtBQUM5Qiw2Q0FBaUQ7QUFrS2pEOztHQUVHO0FBQ0gsSUFBWSxlQXlCWDtBQXpCRCxXQUFZLGVBQWU7SUFDekI7O09BRUc7SUFDSCxnQ0FBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCw4QkFBVyxDQUFBO0lBRVg7O09BRUc7SUFDSCxvQ0FBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILHdDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gsOENBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQXpCVyxlQUFlLCtCQUFmLGVBQWUsUUF5QjFCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGFBVVg7QUFWRCxXQUFZLGFBQWE7SUFDdkI7O09BRUc7SUFDSCw2Q0FBNEIsQ0FBQTtJQUU1Qjs7T0FFRztJQUNILGtDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFWVyxhQUFhLDZCQUFiLGFBQWEsUUFVeEI7QUEyQkQ7Ozs7R0FJRztBQUNILE1BQWEsS0FBTSxTQUFRLHNCQUFTO0lBQ2xDOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixRQUFnQjtRQUVoQixPQUFPLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLG1CQUFtQixDQUMvQixLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBc0I7UUFFdEIsTUFBTSxLQUFLLEdBQUcsb0JBQVEsQ0FBQyxjQUFjLENBQUMs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VDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ2xCO2FBQ0Y7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O0FBL05ILHNCQWdPQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL2E3NjMzYTk4Y2UzMjVhNjIwZjM2NGJmZGVkYTM1NDM0Mjc1MTkwMGEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLXNucy9saWIvdG9waWMudHNcblxuaW1wb3J0IHsgc25zVG9waWMgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcm5Gb3JtYXQgfSBmcm9tIFwiLi4vYXJuXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi9hd3Mtc3RhY2tcIjtcbmltcG9ydCAqIGFzIGVuY3J5cHRpb24gZnJvbSBcIi4uL2VuY3J5cHRpb25cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5pbXBvcnQgeyBJVG9waWMsIFRvcGljQmFzZSB9IGZyb20gXCIuL3RvcGljLWJhc2VcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIG5ldyBTTlMgdG9waWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb3BpY1Byb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogQSBkZXZlbG9wZXItZGVmaW5lZCBzdHJpbmcgdGhhdCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSB0aGlzIFNOUyB0b3BpYy5cbiAgICpcbiAgICogVGhlIGRpc3BsYXkgbmFtZSBtdXN0IGJlIG1heGltdW0gMTAwIGNoYXJhY3RlcnMgbG9uZywgaW5jbHVkaW5nIGh5cGhlbnMgKC0pLFxuICAgKiB1bmRlcnNjb3JlcyAoXyksIHNwYWNlcywgYW5kIHRhYnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHRoZSB0b3BpYy5cbiAgICpcbiAgICogSWYgeW91IGRvbid0IHNwZWNpZnkgYSBuYW1lLCBBV1MgQ2xvdWRGb3JtYXRpb24gZ2VuZXJhdGVzIGEgdW5pcXVlXG4gICAqIHBoeXNpY2FsIElEIGFuZCB1c2VzIHRoYXQgSUQgZm9yIHRoZSB0b3BpYyBuYW1lLiBGb3IgbW9yZSBpbmZvcm1hdGlvbixcbiAgICogc2VlIE5hbWUgVHlwZS5cbiAgICpcbiAgICogQGRlZmF1bHQgR2VuZXJhdGVkIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHRvcGljTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBLTVMgS2V5LCBlaXRoZXIgbWFuYWdlZCBieSB0aGlzIENESyBhcHAsIG9yIGltcG9ydGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBtYXN0ZXJLZXk/OiBlbmNyeXB0aW9uLklLZXk7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgY29udGVudC1iYXNlZCBkZWR1cGxpY2F0aW9uIGZvciBGSUZPIHRvcGljcy5cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldCB0byB0cnVlIHRvIGNyZWF0ZSBhIEZJRk8gdG9waWMuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGZpZm8/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBkZWxpdmVyeSBzdGF0dXMgbG9nZ2luZyBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHRvcGljLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zbnMvbGF0ZXN0L2RnL3Nucy10b3BpYy1hdHRyaWJ1dGVzLmh0bWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGxvZ2dpbmdDb25maWdzPzogTG9nZ2luZ0NvbmZpZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRheXMgQW1hem9uIFNOUyByZXRhaW5zIG1lc3NhZ2VzLlxuICAgKlxuICAgKiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIEZJRk8gdG9waWNzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zbnMvbGF0ZXN0L2RnL2ZpZm8tbWVzc2FnZS1hcmNoaXZpbmctcmVwbGF5Lmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkbyBub3QgYXJjaGl2ZSBtZXNzYWdlc1xuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZVJldGVudGlvblBlcmlvZEluRGF5cz86IG51bWJlcjtcblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byBlbmZvcmNlIGVuY3J5cHRpb24gb2YgZGF0YSBpbiB0cmFuc2l0IHdoZW4gcHVibGlzaGluZyB0byB0aGUgdG9waWMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc25zLXNlY3VyaXR5LWJlc3QtcHJhY3RpY2VzLmh0bWwjZW5mb3JjZS1lbmNyeXB0aW9uLWRhdGEtaW4tdHJhbnNpdC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuZm9yY2VTU0w/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgc2lnbmF0dXJlIHZlcnNpb24gY29ycmVzcG9uZHMgdG8gdGhlIGhhc2hpbmcgYWxnb3JpdGhtIHVzZWQgd2hpbGUgY3JlYXRpbmcgdGhlIHNpZ25hdHVyZSBvZiB0aGUgbm90aWZpY2F0aW9ucyxcbiAgICogc3Vic2NyaXB0aW9uIGNvbmZpcm1hdGlvbnMsIG9yIHVuc3Vic2NyaWJlIGNvbmZpcm1hdGlvbiBtZXNzYWdlcyBzZW50IGJ5IEFtYXpvbiBTTlMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc25zLXZlcmlmeS1zaWduYXR1cmUtb2YtbWVzc2FnZS5odG1sLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBzaWduYXR1cmVWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUcmFjaW5nIG1vZGUgb2YgYW4gQW1hem9uIFNOUyB0b3BpYy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc25zL2xhdGVzdC9kZy9zbnMtYWN0aXZlLXRyYWNpbmcuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCBUcmFjaW5nQ29uZmlnLlBBU1NfVEhST1VHSFxuICAgKi9cbiAgcmVhZG9ubHkgdHJhY2luZ0NvbmZpZz86IFRyYWNpbmdDb25maWc7XG5cbiAgLy8gVE9ETzogZmlmb1Rocm91Z2hwdXRTY29wZSBpcyBub3QgZGlyZWN0bHkgc3VwcG9ydGVkIGJ5IGF3c19zbnNfdG9waWMgaW4gVGVycmFmb3JtIGFzIG9mIHByb3ZpZGVyIHY1LjkzLjBcbiAgLy8gLyoqXG4gIC8vICAqIFNwZWNpZmllcyB0aGUgdGhyb3VnaHB1dCBxdW90YSBhbmQgZGVkdXBsaWNhdGlvbiBiZWhhdmlvciB0byBhcHBseSBmb3IgdGhlIEZJRk8gdG9waWMuXG4gIC8vICAqXG4gIC8vICAqIFlvdSBjYW4gb25seSBzZXQgdGhpcyBwcm9wZXJ0eSB3aGVuIGBmaWZvYCBpcyBgdHJ1ZWAuXG4gIC8vICAqXG4gIC8vICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAtIFNOUyBkZWZhdWx0IHNldHRpbmcgaXMgRmlmb1Rocm91Z2hwdXRTY29wZS5UT1BJQ1xuICAvLyAgKi9cbiAgLy8gcmVhZG9ubHkgZmlmb1Rocm91Z2hwdXRTY29wZT86IEZpZm9UaHJvdWdocHV0U2NvcGU7XG59XG5cbi8vIFRPRE86IGZpZm9UaHJvdWdocHV0U2NvcGUgaXMgbm90IGRpcmVjdGx5IHN1cHBvcnRlZCBieSBhd3Nfc25zX3RvcGljIGluIFRlcnJhZm9ybSBhcyBvZiBwcm92aWRlciB2NS45My4wXG4vLyAvKipcbi8vICAqIFRoZSB0aHJvdWdocHV0IHF1b3RhIGFuZCBkZWR1cGxpY2F0aW9uIGJlaGF2aW9yIHRvIGFwcGx5IGZvciB0aGUgRklGTyB0b3BpYy5cbi8vICAqL1xuLy8gZXhwb3J0IGVudW0gRmlmb1Rocm91Z2hwdXRTY29wZSB7XG4vLyAgIC8qKlxuLy8gICAgKiBUb3BpYyBzY29wZVxuLy8gICAgKiAtIFRocm91Z2hwdXQ6IDMwMDAgbWVzc2FnZXMgcGVyIHNlY29uZCBhbmQgYSBiYW5kd2lkdGggb2YgMjBNQiBwZXIgc2Vjb25kLlxuLy8gICAgKiAtIERlZHVwbGljYXRpb246IE1lc3NhZ2UgZGVkdXBsaWNhdGlvbiBpcyB2ZXJpZmllZCBvbiB0aGUgZW50aXJlIEZJRk8gdG9waWMuXG4vLyAgICAqL1xuLy8gICBUT1BJQyA9ICdUb3BpYycsXG5cbi8vICAgLyoqXG4vLyAgICAqIE1lc3NhZ2UgZ3JvdXAgc2NvcGVcbi8vICAgICogLSBUaHJvdWdocHV0OiBNYXhpbXVtIHJlZ2lvbmFsIGxpbWl0cy5cbi8vICAgICogLSBEZWR1cGxpY2F0aW9uOiBNZXNzYWdlIGRlZHVwbGljYXRpb24gaXMgb25seSB2ZXJpZmllZCB3aXRoaW4gYSBtZXNzYWdlIGdyb3VwLlxuLy8gICAgKi9cbi8vICAgTUVTU0FHRV9HUk9VUCA9ICdNZXNzYWdlR3JvdXAnLFxuLy8gfVxuXG4vKipcbiAqIEEgbG9nZ2luZyBjb25maWd1cmF0aW9uIGZvciBkZWxpdmVyeSBzdGF0dXMgb2YgbWVzc2FnZXMgc2VudCBmcm9tIFNOUyB0b3BpYyB0byBzdWJzY3JpYmVkIGVuZHBvaW50cy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zbnMvbGF0ZXN0L2RnL3Nucy10b3BpYy1hdHRyaWJ1dGVzLmh0bWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nZ2luZ0NvbmZpZyB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgb25lIG9mIHRoZSBzdXBwb3J0ZWQgcHJvdG9jb2xzIGZvciB0aGUgU05TIHRvcGljLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdG9jb2w6IExvZ2dpbmdQcm90b2NvbDtcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIHRvIGJlIHVzZWQgd2hlbiBsb2dnaW5nIGZhaWxlZCBtZXNzYWdlIGRlbGl2ZXJpZXMgaW4gQW1hem9uIENsb3VkV2F0Y2guXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGZhaWx1cmVGZWVkYmFja1JvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSB0byBiZSB1c2VkIHdoZW4gbG9nZ2luZyBzdWNjZXNzZnVsIG1lc3NhZ2UgZGVsaXZlcmllcyBpbiBBbWF6b24gQ2xvdWRXYXRjaC5cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VjY2Vzc0ZlZWRiYWNrUm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIHBlcmNlbnRhZ2Ugb2Ygc3VjY2Vzc2Z1bCBtZXNzYWdlIGRlbGl2ZXJpZXMgdG8gYmUgbG9nZ2VkIGluIEFtYXpvbiBDbG91ZFdhdGNoLlxuICAgKlxuICAgKiBWYWxpZCB2YWx1ZXMgYXJlIGludGVnZXIgYmV0d2VlbiAwLTEwMFxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBzdWNjZXNzRmVlZGJhY2tTYW1wbGVSYXRlPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSB0eXBlIG9mIHN1cHBvcnRlZCBwcm90b2NvbCBmb3IgZGVsaXZlcnkgc3RhdHVzIGxvZ2dpbmcuXG4gKi9cbmV4cG9ydCBlbnVtIExvZ2dpbmdQcm90b2NvbCB7XG4gIC8qKlxuICAgKiBIVFRQXG4gICAqL1xuICBIVFRQID0gXCJodHRwXCIsIC8vIE5PVEU6IEFXU0NESyBlbnVtIHZhbHVlID0gXCJodHRwL3NcIixcblxuICAvKipcbiAgICogQW1hem9uIFNpbXBsZSBRdWV1ZSBTZXJ2aWNlXG4gICAqL1xuICBTUVMgPSBcInNxc1wiLFxuXG4gIC8qKlxuICAgKiBBV1MgTGFtYmRhXG4gICAqL1xuICBMQU1CREEgPSBcImxhbWJkYVwiLFxuXG4gIC8qKlxuICAgKiBBbWF6b24gRGF0YSBGaXJlaG9zZVxuICAgKi9cbiAgRklSRUhPU0UgPSBcImZpcmVob3NlXCIsXG5cbiAgLyoqXG4gICAqIFBsYXRmb3JtIGFwcGxpY2F0aW9uIGVuZHBvaW50XG4gICAqL1xuICBBUFBMSUNBVElPTiA9IFwiYXBwbGljYXRpb25cIixcbn1cblxuLyoqXG4gKiBUaGUgdHJhY2luZyBtb2RlIG9mIGFuIEFtYXpvbiBTTlMgdG9waWNcbiAqL1xuZXhwb3J0IGVudW0gVHJhY2luZ0NvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbW9kZSB0aGF0IHRvcGljIHBhc3NlcyB0cmFjZSBoZWFkZXJzIHJlY2VpdmVkIGZyb20gdGhlIEFtYXpvbiBTTlMgcHVibGlzaGVyIHRvIGl0cyBzdWJzY3JpcHRpb24uXG4gICAqL1xuICBQQVNTX1RIUk9VR0ggPSBcIlBhc3NUaHJvdWdoXCIsXG5cbiAgLyoqXG4gICAqIFRoZSBtb2RlIHRoYXQgQW1hem9uIFNOUyB2ZW5kIFgtUmF5IHNlZ21lbnQgZGF0YSB0byB0b3BpYyBvd25lciBhY2NvdW50IGlmIHRoZSBzYW1wbGVkIGZsYWcgaW4gdGhlIHRyYWNpbmcgaGVhZGVyIGlzIHRydWUuXG4gICAqL1xuICBBQ1RJVkUgPSBcIkFjdGl2ZVwiLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gU05TIHRvcGljIGRlZmluZWQgb3V0c2lkZSBvZiB0aGlzIHN0YWNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvcGljQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTTlMgdG9waWMuXG4gICAqL1xuICByZWFkb25seSB0b3BpY0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBLTVMgZW5jcnlwdGlvbiBrZXkgQVJOLCBpZiB0aGlzIHRvcGljIGlzIHNlcnZlci1zaWRlIGVuY3J5cHRlZCBieSBhIEtNUyBrZXkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkga2V5QXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGNvbnRlbnQtYmFzZWQgZGVkdXBsaWNhdGlvbiBpcyBlbmFibGVkLlxuICAgKiBPbmx5IGFwcGxpY2FibGUgZm9yIEZJRk8gdG9waWNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBuZXcgU05TIHRvcGljXG4gKlxuICogQHJlc291cmNlIGF3c19zbnNfdG9waWNcbiAqL1xuZXhwb3J0IGNsYXNzIFRvcGljIGV4dGVuZHMgVG9waWNCYXNlIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBTTlMgdG9waWMgcHJvdmlkZWQgYW4gQVJOXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIHRvcGljQXJuIHRvcGljIEFSTiAoaS5lLiBhcm46YXdzOnNuczp1cy1lYXN0LTI6NDQ0NDU1NTU2NjY2Ok15VG9waWMpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Ub3BpY0FybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdG9waWNBcm46IHN0cmluZyxcbiAgKTogSVRvcGljIHtcbiAgICByZXR1cm4gVG9waWMuZnJvbVRvcGljQXR0cmlidXRlcyhzY29wZSwgaWQsIHsgdG9waWNBcm4gfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIFNOUyB0b3BpYyBwcm92aWRlZCBhIHRvcGljIGF0dHJpYnV0ZXNcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZVxuICAgKiBAcGFyYW0gYXR0cnMgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIHRvcGljIHRvIGltcG9ydFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVG9waWNBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogVG9waWNBdHRyaWJ1dGVzLFxuICApOiBJVG9waWMge1xuICAgIGNvbnN0IHN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpO1xuICAgIGNvbnN0IHRvcGljTmFtZSA9IHN0YWNrLnNwbGl0QXJuKFxuICAgICAgYXR0cnMudG9waWNBcm4sXG4gICAgICBBcm5Gb3JtYXQuTk9fUkVTT1VSQ0VfTkFNRSxcbiAgICApLnJlc291cmNlO1xuICAgIGNvbnN0IGZpZm8gPSB0b3BpY05hbWUuZW5kc1dpdGgoXCIuZmlmb1wiKTtcblxuICAgIGlmIChhdHRycy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uICYmICFmaWZvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ2Fubm90IGltcG9ydCB0b3BpYzsgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgRklGTyBTTlMgdG9waWNzLlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBUb3BpY0Jhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRvcGljQXJuID0gYXR0cnMudG9waWNBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdG9waWNOYW1lID0gdG9waWNOYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IG1hc3RlcktleSA9IGF0dHJzLmtleUFyblxuICAgICAgICA/IGVuY3J5cHRpb24uS2V5LmZyb21LZXlBcm4odGhpcywgXCJLZXlcIiwgYXR0cnMua2V5QXJuKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBmaWZvID0gZmlmbztcbiAgICAgIHB1YmxpYyByZWFkb25seSBjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uID1cbiAgICAgICAgYXR0cnMuY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbiB8fCBmYWxzZTtcbiAgICAgIHByb3RlY3RlZCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkLCB7XG4gICAgICBlbnZpcm9ubWVudEZyb21Bcm46IGF0dHJzLnRvcGljQXJuLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHRvcGljQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB0b3BpY05hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG1hc3RlcktleT86IGVuY3J5cHRpb24uSUtleTtcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb246IGJvb2xlYW47XG4gIHB1YmxpYyByZWFkb25seSBmaWZvOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuID0gdHJ1ZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBzbnNUb3BpYy5TbnNUb3BpYztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVG9waWNQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLmVuZm9yY2VTU0wgPSBwcm9wcy5lbmZvcmNlU1NMO1xuXG4gICAgaWYgKHByb3BzLmNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24gJiYgIXByb3BzLmZpZm8pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJDb250ZW50IGJhc2VkIGRlZHVwbGljYXRpb24gY2FuIG9ubHkgYmUgZW5hYmxlZCBmb3IgRklGTyBTTlMgdG9waWNzLlwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXMgJiYgIXByb3BzLmZpZm8pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJgbWVzc2FnZVJldGVudGlvblBlcmlvZEluRGF5c2AgaXMgb25seSB2YWxpZCBmb3IgRklGTyBTTlMgdG9waWNzLlwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgLy8gVE9ETzogZmlmb1Rocm91Z2hwdXRTY29wZSB2YWxpZGF0aW9uIHJlbW92ZWQgYXMgcHJvcGVydHkgaXMgbm90IHN1cHBvcnRlZFxuICAgIC8vIGlmIChwcm9wcy5maWZvVGhyb3VnaHB1dFNjb3BlICYmICFwcm9wcy5maWZvKSB7XG4gICAgLy8gICB0aHJvdyBuZXcgRXJyb3IoJ2BmaWZvVGhyb3VnaHB1dFNjb3BlYCBjYW4gb25seSBiZSBzZXQgZm9yIEZJRk8gU05TIHRvcGljcy4nKTtcbiAgICAvLyB9XG4gICAgaWYgKFxuICAgICAgcHJvcHMubWVzc2FnZVJldGVudGlvblBlcmlvZEluRGF5cyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXMpICYmXG4gICAgICAoIU51bWJlci5pc0ludGVnZXIocHJvcHMubWVzc2FnZVJldGVudGlvblBlcmlvZEluRGF5cykgfHxcbiAgICAgICAgcHJvcHMubWVzc2FnZVJldGVudGlvblBlcmlvZEluRGF5cyA+IDM2NSB8fFxuICAgICAgICBwcm9wcy5tZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzIDwgMSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJgbWVzc2FnZVJldGVudGlvblBlcmlvZEluRGF5c2AgbXVzdCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgMzY1XCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCB0b3BpY05hbWUgPSBwcm9wcy50b3BpY05hbWU7XG4gICAgaWYgKHByb3BzLmZpZm8gJiYgcHJvcHMudG9waWNOYW1lICYmICFwcm9wcy50b3BpY05hbWUuZW5kc1dpdGgoXCIuZmlmb1wiKSkge1xuICAgICAgdG9waWNOYW1lID0gcHJvcHMudG9waWNOYW1lICsgXCIuZmlmb1wiO1xuICAgIH0gZWxzZSBpZiAocHJvcHMuZmlmbyAmJiAhcHJvcHMudG9waWNOYW1lKSB7XG4gICAgICAvLyBNYXggbGVuZ3RoIGFsbG93ZWQgYnkgQ2xvdWRGb3JtYXRpb24gaXMgMjU2LCB3ZSBzdWJ0cmFjdCA1IHRvIGFsbG93IGZvciBcIi5maWZvXCIgc3VmZml4XG4gICAgICBjb25zdCBwcmVmaXhOYW1lID0gdGhpcy5zdGFjay51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywge1xuICAgICAgICBtYXhMZW5ndGg6IDI1NiAtIDUsXG4gICAgICAgIHNlcGFyYXRvcjogXCItXCIsXG4gICAgICB9KTtcbiAgICAgIHRvcGljTmFtZSA9IGAke3ByZWZpeE5hbWV9LmZpZm9gO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHByb3BzLnNpZ25hdHVyZVZlcnNpb24gJiZcbiAgICAgICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuc2lnbmF0dXJlVmVyc2lvbikgJiZcbiAgICAgIHByb3BzLnNpZ25hdHVyZVZlcnNpb24gIT09IFwiMVwiICYmXG4gICAgICBwcm9wcy5zaWduYXR1cmVWZXJzaW9uICE9PSBcIjJcIlxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgc2lnbmF0dXJlVmVyc2lvbiBtdXN0IGJlIFwiMVwiIG9yIFwiMlwiLCByZWNlaXZlZDogXCIke3Byb3BzLnNpZ25hdHVyZVZlcnNpb259XCJgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwcm9wcy5kaXNwbGF5TmFtZSAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5kaXNwbGF5TmFtZSkgJiZcbiAgICAgIHByb3BzLmRpc3BsYXlOYW1lLmxlbmd0aCA+IDEwMFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgZGlzcGxheU5hbWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMTAwIGNoYXJhY3RlcnMsIGdvdCAke3Byb3BzLmRpc3BsYXlOYW1lLmxlbmd0aH1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IHNuc1RvcGljLlNuc1RvcGljKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgbmFtZTogdG9waWNOYW1lLFxuICAgICAgZGlzcGxheU5hbWU6IHByb3BzLmRpc3BsYXlOYW1lLFxuICAgICAga21zTWFzdGVyS2V5SWQ6IHByb3BzLm1hc3RlcktleT8ua2V5QXJuLFxuICAgICAgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbjogcHJvcHMuY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbixcbiAgICAgIGZpZm9Ub3BpYzogcHJvcHMuZmlmbyxcbiAgICAgIHNpZ25hdHVyZVZlcnNpb246IHByb3BzLnNpZ25hdHVyZVZlcnNpb25cbiAgICAgICAgPyBwYXJzZUludChwcm9wcy5zaWduYXR1cmVWZXJzaW9uLCAxMClcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB0cmFjaW5nQ29uZmlnOiBwcm9wcy50cmFjaW5nQ29uZmlnLFxuICAgICAgYXJjaGl2ZVBvbGljeTogcHJvcHMubWVzc2FnZVJldGVudGlvblBlcmlvZEluRGF5c1xuICAgICAgICA/IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIE1lc3NhZ2VSZXRlbnRpb25QZXJpb2Q6IHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXMsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAvLyBUT0RPOiBmaWZvVGhyb3VnaHB1dFNjb3BlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gVGVycmFmb3JtIGFzIG9mIHByb3ZpZGVyIHY1LjkzLjBcbiAgICB9KTtcblxuICAgIC8vIGFkZCBsb2dnaW5nIGNvbmZpZyBvdmVycmlkZXNcbiAgICBpZiAocHJvcHMubG9nZ2luZ0NvbmZpZ3MpIHtcbiAgICAgIHByb3BzLmxvZ2dpbmdDb25maWdzLmZvckVhY2goKGMpID0+IHRoaXMuYWRkTG9nZ2luZ0NvbmZpZyhjKSk7XG4gICAgfVxuXG4gICAgdGhpcy50b3BpY0FybiA9IHRoaXMucmVzb3VyY2UuYXJuO1xuICAgIHRoaXMudG9waWNOYW1lID0gdGhpcy5yZXNvdXJjZS5uYW1lO1xuICAgIHRoaXMubWFzdGVyS2V5ID0gcHJvcHMubWFzdGVyS2V5O1xuICAgIHRoaXMuZmlmbyA9IHByb3BzLmZpZm8gfHwgZmFsc2U7XG4gICAgdGhpcy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uID0gcHJvcHMuY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbiB8fCBmYWxzZTtcblxuICAgIGlmICh0aGlzLmVuZm9yY2VTU0wpIHtcbiAgICAgIHRoaXMuYWRkU1NMUG9saWN5KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBkZWxpdmVyeSBzdGF0dXMgbG9nZ2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSB0b3BpYy5cbiAgICovXG4gIHB1YmxpYyBhZGRMb2dnaW5nQ29uZmlnKGNvbmZpZzogTG9nZ2luZ0NvbmZpZykge1xuICAgIGlmIChjb25maWcuc3VjY2Vzc0ZlZWRiYWNrU2FtcGxlUmF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCByYXRlID0gY29uZmlnLnN1Y2Nlc3NGZWVkYmFja1NhbXBsZVJhdGU7XG4gICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIocmF0ZSkgfHwgcmF0ZSA8IDAgfHwgcmF0ZSA+IDEwMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJTdWNjZXNzIGZlZWRiYWNrIHNhbXBsZSByYXRlIG11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDEwMFwiLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb25maWcuZmFpbHVyZUZlZWRiYWNrUm9sZSkge1xuICAgICAgdGhpcy5yZXNvdXJjZS5hZGRPdmVycmlkZShcbiAgICAgICAgYCR7Y29uZmlnLnByb3RvY29sfV9mYWlsdXJlX2ZlZWRiYWNrX3JvbGVfYXJuYCxcbiAgICAgICAgY29uZmlnLmZhaWx1cmVGZWVkYmFja1JvbGUucm9sZUFybixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5zdWNjZXNzRmVlZGJhY2tSb2xlKSB7XG4gICAgICB0aGlzLnJlc291cmNlLmFkZE92ZXJyaWRlKFxuICAgICAgICBgJHtjb25maWcucHJvdG9jb2x9X3N1Y2Nlc3NfZmVlZGJhY2tfcm9sZV9hcm5gLFxuICAgICAgICBjb25maWcuc3VjY2Vzc0ZlZWRiYWNrUm9sZS5yb2xlQXJuLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnN1Y2Nlc3NGZWVkYmFja1NhbXBsZVJhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZXNvdXJjZS5hZGRPdmVycmlkZShcbiAgICAgICAgYCR7Y29uZmlnLnByb3RvY29sfV9zdWNjZXNzX2ZlZWRiYWNrX3NhbXBsZV9yYXRlYCxcbiAgICAgICAgY29uZmlnLnN1Y2Nlc3NGZWVkYmFja1NhbXBsZVJhdGUudG9TdHJpbmcoKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gSUFNIHBvbGljeSBzdGF0ZW1lbnQgdG8gZW5mb3JjZSB0aGUgdXNlIG9mIFRMUyBmb3IgcHVibGlzaGluZyB0byB0aGlzIHRvcGljLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zbnMvbGF0ZXN0L2RnL3Nucy1zZWN1cml0eS1iZXN0LXByYWN0aWNlcy5odG1sI2VuZm9yY2UtZW5jcnlwdGlvbi1kYXRhLWluLXRyYW5zaXRcbiAgICovXG4gIHByb3RlY3RlZCBhZGRTU0xQb2xpY3koKTogdm9pZCB7XG4gICAgdGhpcy5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBzaWQ6IFwiRW5mb3JjZVB1Ymxpc2hTU0xcIixcbiAgICAgICAgYWN0aW9uczogW1wic25zOlB1Ymxpc2hcIl0sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5ERU5ZLFxuICAgICAgICByZXNvdXJjZXM6IFt0aGlzLnRvcGljQXJuXSxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQW55UHJpbmNpcGFsKCldLFxuICAgICAgICBjb25kaXRpb246IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXN0OiBcIkJvb2xcIixcbiAgICAgICAgICAgIHZhcmlhYmxlOiBcImF3czpTZWN1cmVUcmFuc3BvcnRcIixcbiAgICAgICAgICAgIHZhbHVlczogW1wiZmFsc2VcIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AwsStack } from "../aws/aws-stack";
|
|
2
|
+
/**
|
|
3
|
+
* Make sure a Terraform Local Block (to mimic a CloudFormation Mapping) exists
|
|
4
|
+
* in the given stack with the lookup values for the given fact
|
|
5
|
+
*
|
|
6
|
+
* Add to an existing Terraform Local Block if possible.
|
|
7
|
+
*/
|
|
8
|
+
export declare function deployTimeLookup(stack: AwsStack, factName: string, lookupMap: Record<string, string>, defaultValue?: string): any;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// https://github.com/aws/aws-cdk/blob/v2.232.2/packages/aws-cdk-lib/core/lib/private/region-lookup.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.deployTimeLookup = deployTimeLookup;
|
|
5
|
+
const region_info_1 = require("@aws-cdk/region-info");
|
|
6
|
+
const cdktf_1 = require("cdktf");
|
|
7
|
+
const cxapi = require("./cx-api");
|
|
8
|
+
const errors_1 = require("../errors");
|
|
9
|
+
const Aws = {
|
|
10
|
+
URL_SUFFIX: "AWS::URLSuffix",
|
|
11
|
+
REGION: "AWS::Region",
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Make sure a Terraform Local Block (to mimic a CloudFormation Mapping) exists
|
|
15
|
+
* in the given stack with the lookup values for the given fact
|
|
16
|
+
*
|
|
17
|
+
* Add to an existing Terraform Local Block if possible.
|
|
18
|
+
*/
|
|
19
|
+
function deployTimeLookup(stack, factName, lookupMap, defaultValue) {
|
|
20
|
+
// If there are no lookups, just return the default
|
|
21
|
+
if (Object.values(lookupMap).length === 0) {
|
|
22
|
+
if (defaultValue === undefined) {
|
|
23
|
+
throw new errors_1.UnscopedValidationError(`region-info: don't have any information for ${factName}. Use 'Fact.register' to provide values, or add partitions to the '${cxapi.TARGET_PARTITIONS}' context value.`);
|
|
24
|
+
}
|
|
25
|
+
return defaultValue;
|
|
26
|
+
}
|
|
27
|
+
// If the tokenized representation of all values is the same, we can just
|
|
28
|
+
// return the value directly and don't need to produce an actual map.
|
|
29
|
+
const pattern = findValuePattern(lookupMap);
|
|
30
|
+
if (pattern !== undefined) {
|
|
31
|
+
return (pattern
|
|
32
|
+
// Replace AWS pseudo parameters with Terraform tokens
|
|
33
|
+
.replace(Aws.REGION, stack.region)
|
|
34
|
+
.replace(Aws.URL_SUFFIX, stack.urlSuffix));
|
|
35
|
+
}
|
|
36
|
+
// Derive map name and lookup key from the factName, splitting on ':' if it exists
|
|
37
|
+
const [factClass, factParam] = factName.includes(":")
|
|
38
|
+
? factName.split(":")
|
|
39
|
+
: [factName, "value"];
|
|
40
|
+
const mapId = `${ucfirst(factClass)}Map`;
|
|
41
|
+
const factKey = factParam.replace(/[^a-zA-Z0-9]/g, "x");
|
|
42
|
+
let mapping = stack.node.tryFindChild(mapId);
|
|
43
|
+
if (!mapping) {
|
|
44
|
+
mapping = new cdktf_1.TerraformLocal(stack, mapId, {});
|
|
45
|
+
}
|
|
46
|
+
const temp = {};
|
|
47
|
+
for (const [region, value] of Object.entries(lookupMap)) {
|
|
48
|
+
temp[region] = {
|
|
49
|
+
[factKey]: value,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
mapping.expression = temp;
|
|
53
|
+
return cdktf_1.Fn.lookup(cdktf_1.Fn.lookup(mapping.asStringMap, stack.region), factKey);
|
|
54
|
+
}
|
|
55
|
+
function ucfirst(x) {
|
|
56
|
+
return `${x.slice(0, 1).toUpperCase()}${x.slice(1)}`;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Try to detect if all values in the map follow the same pattern
|
|
60
|
+
*
|
|
61
|
+
* Do this by replacing region and URLSuffix values in the found strings
|
|
62
|
+
* with their token variant. If at the end all strings have the same format,
|
|
63
|
+
* we can simplify to just the single value.
|
|
64
|
+
*
|
|
65
|
+
* This wouldn't have been necessary if the region-info library had encoded the
|
|
66
|
+
* pattern information instead of the literal values... but let's do it here now.
|
|
67
|
+
*/
|
|
68
|
+
function findValuePattern(regionMap) {
|
|
69
|
+
const simplified = { ...regionMap };
|
|
70
|
+
// If they all contain URL_SUFFIX, substitute it, but only if the value is different
|
|
71
|
+
// among some values in the list (we don't want to tokenize unnecessarily, i.e. we don't
|
|
72
|
+
// want to replace `amazonaws.com` with URL_SUFFIX if it's not necessary)
|
|
73
|
+
const urlSuffixes = Object.keys(simplified).map(urlSuffix);
|
|
74
|
+
if (!allSame(urlSuffixes) &&
|
|
75
|
+
Object.entries(simplified).every(([region, value]) => value.includes(urlSuffix(region)))) {
|
|
76
|
+
for (const region in simplified) {
|
|
77
|
+
simplified[region] = replaceAll(simplified[region], urlSuffix(region), Aws.URL_SUFFIX);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// If they all contain REGION, substitute it (no need to do the "is everything different"
|
|
81
|
+
// check, this is true by design for these values)
|
|
82
|
+
if (Object.entries(simplified).every(([region, value]) => value.includes(region))) {
|
|
83
|
+
for (const region in simplified) {
|
|
84
|
+
simplified[region] = replaceAll(simplified[region], region, Aws.REGION);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// If the values are now all the same, return the singleton value
|
|
88
|
+
const values = Object.values(simplified);
|
|
89
|
+
if (allSame(values)) {
|
|
90
|
+
return values[0];
|
|
91
|
+
}
|
|
92
|
+
// Otherwise we failed
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
function allSame(xs) {
|
|
96
|
+
return xs.every((x) => x === xs[0]);
|
|
97
|
+
}
|
|
98
|
+
function urlSuffix(region) {
|
|
99
|
+
return region_info_1.RegionInfo.get(region)?.domainSuffix ?? "amazonaws.com";
|
|
100
|
+
}
|
|
101
|
+
function replaceAll(x, pat, replacement) {
|
|
102
|
+
return x.split(pat).join(replacement);
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLWxvb2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3MvcmVnaW9uLWxvb2t1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0dBQXNHOztBQXFCdEcsNENBZ0RDO0FBbkVELHNEQUFrRDtBQUNsRCxpQ0FBMkM7QUFDM0Msa0NBQWtDO0FBRWxDLHNDQUFvRDtBQUlwRCxNQUFNLEdBQUcsR0FBRztJQUNWLFVBQVUsRUFBRSxnQkFBZ0I7SUFDNUIsTUFBTSxFQUFFLGFBQWE7Q0FDdEIsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLEtBQWUsRUFDZixRQUFnQixFQUNoQixTQUFpQyxFQUNqQyxZQUFxQjtJQUVyQixtREFBbUQ7SUFDbkQsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksZ0NBQXVCLENBQy9CLCtDQUErQyxRQUFRLHNFQUFzRSxLQUFLLENBQUMsaUJBQWlCLGtCQUFrQixDQUN2SyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCx5RUFBeUU7SUFDekUscUVBQXFFO0lBQ3JFLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sQ0FDTCxPQUFPO1lBQ0wsc0RBQXNEO2FBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUM1QyxDQUFDO0lBQ0osQ0FBQztJQUVELGtGQUFrRjtJQUNsRixNQUFNLENB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Q0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFFLENBQUM7SUFDSCxDQUFDO0lBRUQsaUVBQWlFO0lBQ2pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNwQixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxFQUFZO0lBQzNCLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxNQUFjO0lBQy9CLE9BQU8sd0JBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxJQUFJLGVBQWUsQ0FBQztBQUNqRSxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsQ0FBUyxFQUFFLEdBQVcsRUFBRSxXQUFtQjtJQUM3RCxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4yMzIuMi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9jb3JlL2xpYi9wcml2YXRlL3JlZ2lvbi1sb29rdXAudHNcblxuaW1wb3J0IHsgUmVnaW9uSW5mbyB9IGZyb20gXCJAYXdzLWNkay9yZWdpb24taW5mb1wiO1xuaW1wb3J0IHsgRm4sIFRlcnJhZm9ybUxvY2FsIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tIFwiLi9jeC1hcGlcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy9hd3Mtc3RhY2tcIjtcbmltcG9ydCB7IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuXG50eXBlIE1hcHBpbmcgPSB7IFtrMTogc3RyaW5nXTogeyBbazI6IHN0cmluZ106IGFueSB9IH07XG5cbmNvbnN0IEF3cyA9IHtcbiAgVVJMX1NVRkZJWDogXCJBV1M6OlVSTFN1ZmZpeFwiLFxuICBSRUdJT046IFwiQVdTOjpSZWdpb25cIixcbn07XG5cbi8qKlxuICogTWFrZSBzdXJlIGEgVGVycmFmb3JtIExvY2FsIEJsb2NrICh0byBtaW1pYyBhIENsb3VkRm9ybWF0aW9uIE1hcHBpbmcpIGV4aXN0c1xuICogaW4gdGhlIGdpdmVuIHN0YWNrIHdpdGggdGhlIGxvb2t1cCB2YWx1ZXMgZm9yIHRoZSBnaXZlbiBmYWN0XG4gKlxuICogQWRkIHRvIGFuIGV4aXN0aW5nIFRlcnJhZm9ybSBMb2NhbCBCbG9jayBpZiBwb3NzaWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlcGxveVRpbWVMb29rdXAoXG4gIHN0YWNrOiBBd3NTdGFjayxcbiAgZmFjdE5hbWU6IHN0cmluZyxcbiAgbG9va3VwTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmcsXG4pIHtcbiAgLy8gSWYgdGhlcmUgYXJlIG5vIGxvb2t1cHMsIGp1c3QgcmV0dXJuIHRoZSBkZWZhdWx0XG4gIGlmIChPYmplY3QudmFsdWVzKGxvb2t1cE1hcCkubGVuZ3RoID09PSAwKSB7XG4gICAgaWYgKGRlZmF1bHRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGByZWdpb24taW5mbzogZG9uJ3QgaGF2ZSBhbnkgaW5mb3JtYXRpb24gZm9yICR7ZmFjdE5hbWV9LiBVc2UgJ0ZhY3QucmVnaXN0ZXInIHRvIHByb3ZpZGUgdmFsdWVzLCBvciBhZGQgcGFydGl0aW9ucyB0byB0aGUgJyR7Y3hhcGkuVEFSR0VUX1BBUlRJVElPTlN9JyBjb250ZXh0IHZhbHVlLmAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgLy8gSWYgdGhlIHRva2VuaXplZCByZXByZXNlbnRhdGlvbiBvZiBhbGwgdmFsdWVzIGlzIHRoZSBzYW1lLCB3ZSBjYW4ganVzdFxuICAvLyByZXR1cm4gdGhlIHZhbHVlIGRpcmVjdGx5IGFuZCBkb24ndCBuZWVkIHRvIHByb2R1Y2UgYW4gYWN0dWFsIG1hcC5cbiAgY29uc3QgcGF0dGVybiA9IGZpbmRWYWx1ZVBhdHRlcm4obG9va3VwTWFwKTtcbiAgaWYgKHBhdHRlcm4gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAoXG4gICAgICBwYXR0ZXJuXG4gICAgICAgIC8vIFJlcGxhY2UgQVdTIHBzZXVkbyBwYXJhbWV0ZXJzIHdpdGggVGVycmFmb3JtIHRva2Vuc1xuICAgICAgICAucmVwbGFjZShBd3MuUkVHSU9OLCBzdGFjay5yZWdpb24pXG4gICAgICAgIC5yZXBsYWNlKEF3cy5VUkxfU1VGRklYLCBzdGFjay51cmxTdWZmaXgpXG4gICAgKTtcbiAgfVxuXG4gIC8vIERlcml2ZSBtYXAgbmFtZSBhbmQgbG9va3VwIGtleSBmcm9tIHRoZSBmYWN0TmFtZSwgc3BsaXR0aW5nIG9uICc6JyBpZiBpdCBleGlzdHNcbiAgY29uc3QgW2ZhY3RDbGFzcywgZmFjdFBhcmFtXSA9IGZhY3ROYW1lLmluY2x1ZGVzKFwiOlwiKVxuICAgID8gZmFjdE5hbWUuc3BsaXQoXCI6XCIpXG4gICAgOiAoW2ZhY3ROYW1lLCBcInZhbHVlXCJdIGFzIGNvbnN0KTtcblxuICBjb25zdCBtYXBJZCA9IGAke3VjZmlyc3QoZmFjdENsYXNzKX1NYXBgO1xuICBjb25zdCBmYWN0S2V5ID0gZmFjdFBhcmFtLnJlcGxhY2UoL1teYS16QS1aMC05XS9nLCBcInhcIik7XG5cbiAgbGV0IG1hcHBpbmcgPSBzdGFjay5ub2RlLnRyeUZpbmRDaGlsZChtYXBJZCkgYXMgVGVycmFmb3JtTG9jYWwgfCB1bmRlZmluZWQ7XG4gIGlmICghbWFwcGluZykge1xuICAgIG1hcHBpbmcgPSBuZXcgVGVycmFmb3JtTG9jYWwoc3RhY2ssIG1hcElkLCB7fSk7XG4gIH1cbiAgY29uc3QgdGVtcDogTWFwcGluZyA9IHt9O1xuICBmb3IgKGNvbnN0IFtyZWdpb24sIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhsb29rdXBNYXApKSB7XG4gICAgdGVtcFtyZWdpb25dID0ge1xuICAgICAgW2ZhY3RLZXldOiB2YWx1ZSxcbiAgICB9O1xuICB9XG4gIG1hcHBpbmcuZXhwcmVzc2lvbiA9IHRlbXA7XG4gIHJldHVybiBGbi5sb29rdXAoRm4ubG9va3VwKG1hcHBpbmcuYXNTdHJpbmdNYXAsIHN0YWNrLnJlZ2lvbiksIGZhY3RLZXkpO1xufVxuXG5mdW5jdGlvbiB1Y2ZpcnN0KHg6IHN0cmluZykge1xuICByZXR1cm4gYCR7eC5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpfSR7eC5zbGljZSgxKX1gO1xufVxuXG4vKipcbiAqIFRyeSB0byBkZXRlY3QgaWYgYWxsIHZhbHVlcyBpbiB0aGUgbWFwIGZvbGxvdyB0aGUgc2FtZSBwYXR0ZXJuXG4gKlxuICogRG8gdGhpcyBieSByZXBsYWNpbmcgcmVnaW9uIGFuZCBVUkxTdWZmaXggdmFsdWVzIGluIHRoZSBmb3VuZCBzdHJpbmdzXG4gKiB3aXRoIHRoZWlyIHRva2VuIHZhcmlhbnQuIElmIGF0IHRoZSBlbmQgYWxsIHN0cmluZ3MgaGF2ZSB0aGUgc2FtZSBmb3JtYXQsXG4gKiB3ZSBjYW4gc2ltcGxpZnkgdG8ganVzdCB0aGUgc2luZ2xlIHZhbHVlLlxuICpcbiAqIFRoaXMgd291bGRuJ3QgaGF2ZSBiZWVuIG5lY2Vzc2FyeSBpZiB0aGUgcmVnaW9uLWluZm8gbGlicmFyeSBoYWQgZW5jb2RlZCB0aGVcbiAqIHBhdHRlcm4gaW5mb3JtYXRpb24gaW5zdGVhZCBvZiB0aGUgbGl0ZXJhbCB2YWx1ZXMuLi4gYnV0IGxldCdzIGRvIGl0IGhlcmUgbm93LlxuICovXG5mdW5jdGlvbiBmaW5kVmFsdWVQYXR0ZXJuKFxuICByZWdpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBzaW1wbGlmaWVkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0geyAuLi5yZWdpb25NYXAgfTtcblxuICAvLyBJZiB0aGV5IGFsbCBjb250YWluIFVSTF9TVUZGSVgsIHN1YnN0aXR1dGUgaXQsIGJ1dCBvbmx5IGlmIHRoZSB2YWx1ZSBpcyBkaWZmZXJlbnRcbiAgLy8gYW1vbmcgc29tZSB2YWx1ZXMgaW4gdGhlIGxpc3QgKHdlIGRvbid0IHdhbnQgdG8gdG9rZW5pemUgdW5uZWNlc3NhcmlseSwgaS5lLiB3ZSBkb24ndFxuICAvLyB3YW50IHRvIHJlcGxhY2UgYGFtYXpvbmF3cy5jb21gIHdpdGggVVJMX1NVRkZJWCBpZiBpdCdzIG5vdCBuZWNlc3NhcnkpXG4gIGNvbnN0IHVybFN1ZmZpeGVzID0gT2JqZWN0LmtleXMoc2ltcGxpZmllZCkubWFwKHVybFN1ZmZpeCk7XG4gIGlmIChcbiAgICAhYWxsU2FtZSh1cmxTdWZmaXhlcykgJiZcbiAgICBPYmplY3QuZW50cmllcyhzaW1wbGlmaWVkKS5ldmVyeSgoW3JlZ2lvbiwgdmFsdWVdKSA9PlxuICAgICAgdmFsdWUuaW5jbHVkZXModXJsU3VmZml4KHJlZ2lvbikpLFxuICAgIClcbiAgKSB7XG4gICAgZm9yIChjb25zdCByZWdpb24gaW4gc2ltcGxpZmllZCkge1xuICAgICAgc2ltcGxpZmllZFtyZWdpb25dID0gcmVwbGFjZUFsbChcbiAgICAgICAgc2ltcGxpZmllZFtyZWdpb25dLFxuICAgICAgICB1cmxTdWZmaXgocmVnaW9uKSxcbiAgICAgICAgQXdzLlVSTF9TVUZGSVgsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRoZXkgYWxsIGNvbnRhaW4gUkVHSU9OLCBzdWJzdGl0dXRlIGl0IChubyBuZWVkIHRvIGRvIHRoZSBcImlzIGV2ZXJ5dGhpbmcgZGlmZmVyZW50XCJcbiAgLy8gY2hlY2ssIHRoaXMgaXMgdHJ1ZSBieSBkZXNpZ24gZm9yIHRoZXNlIHZhbHVlcylcbiAgaWYgKFxuICAgIE9iamVjdC5lbnRyaWVzKHNpbXBsaWZpZWQpLmV2ZXJ5KChbcmVnaW9uLCB2YWx1ZV0pID0+XG4gICAgICB2YWx1ZS5pbmNsdWRlcyhyZWdpb24pLFxuICAgIClcbiAgKSB7XG4gICAgZm9yIChjb25zdCByZWdpb24gaW4gc2ltcGxpZmllZCkge1xuICAgICAgc2ltcGxpZmllZFtyZWdpb25dID0gcmVwbGFjZUFsbChzaW1wbGlmaWVkW3JlZ2lvbl0sIHJlZ2lvbiwgQXdzLlJFR0lPTik7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGhlIHZhbHVlcyBhcmUgbm93IGFsbCB0aGUgc2FtZSwgcmV0dXJuIHRoZSBzaW5nbGV0b24gdmFsdWVcbiAgY29uc3QgdmFsdWVzID0gT2JqZWN0LnZhbHVlcyhzaW1wbGlmaWVkKTtcbiAgaWYgKGFsbFNhbWUodmFsdWVzKSkge1xuICAgIHJldHVybiB2YWx1ZXNbMF07XG4gIH1cblxuICAvLyBPdGhlcndpc2Ugd2UgZmFpbGVkXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGFsbFNhbWUoeHM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiB4cy5ldmVyeSgoeCkgPT4geCA9PT0geHNbMF0pO1xufVxuXG5mdW5jdGlvbiB1cmxTdWZmaXgocmVnaW9uOiBzdHJpbmcpIHtcbiAgcmV0dXJuIFJlZ2lvbkluZm8uZ2V0KHJlZ2lvbik/LmRvbWFpblN1ZmZpeCA/PyBcImFtYXpvbmF3cy5jb21cIjtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZUFsbCh4OiBzdHJpbmcsIHBhdDogc3RyaW5nLCByZXBsYWNlbWVudDogc3RyaW5nKSB7XG4gIHJldHVybiB4LnNwbGl0KHBhdCkuam9pbihyZXBsYWNlbWVudCk7XG59XG4iXX0=
|
|
@@ -41,7 +41,7 @@ class NetworkMode {
|
|
|
41
41
|
}
|
|
42
42
|
exports.NetworkMode = NetworkMode;
|
|
43
43
|
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
-
NetworkMode[_a] = { fqn: "terraconstructs.aws.storage.assets.NetworkMode", version: "0.1.
|
|
44
|
+
NetworkMode[_a] = { fqn: "terraconstructs.aws.storage.assets.NetworkMode", version: "0.1.10" };
|
|
45
45
|
/**
|
|
46
46
|
* The default networking mode if omitted, create a network stack on the default Docker bridge
|
|
47
47
|
*/
|
|
@@ -76,7 +76,7 @@ class Platform {
|
|
|
76
76
|
}
|
|
77
77
|
exports.Platform = Platform;
|
|
78
78
|
_b = JSII_RTTI_SYMBOL_1;
|
|
79
|
-
Platform[_b] = { fqn: "terraconstructs.aws.storage.assets.Platform", version: "0.1.
|
|
79
|
+
Platform[_b] = { fqn: "terraconstructs.aws.storage.assets.Platform", version: "0.1.10" };
|
|
80
80
|
/**
|
|
81
81
|
* Build for linux/amd64
|
|
82
82
|
*/
|
|
@@ -101,15 +101,13 @@ class DockerImageAsset extends constructs_1.Construct {
|
|
|
101
101
|
// resolve full path
|
|
102
102
|
const dir = path.resolve(props.directory);
|
|
103
103
|
if (!fs.existsSync(dir)) {
|
|
104
|
-
|
|
105
|
-
throw new Error(`Cannot find image directory at ${dir}`);
|
|
104
|
+
throw new __1.ValidationError(`Cannot find image directory at ${dir}`, this);
|
|
106
105
|
}
|
|
107
106
|
// validate the docker file exists
|
|
108
107
|
this.dockerfilePath = props.file || "Dockerfile";
|
|
109
108
|
const file = path.join(dir, this.dockerfilePath);
|
|
110
109
|
if (!fs.existsSync(file)) {
|
|
111
|
-
|
|
112
|
-
throw new Error(`Cannot find file at ${file}`);
|
|
110
|
+
throw new __1.ValidationError(`Cannot find file at ${file}`, this);
|
|
113
111
|
}
|
|
114
112
|
let ignoreMode = props.ignoreMode ?? __1.IgnoreMode.DOCKER;
|
|
115
113
|
let exclude = props.exclude || [];
|
|
@@ -219,12 +217,11 @@ class DockerImageAsset extends constructs_1.Construct {
|
|
|
219
217
|
}
|
|
220
218
|
exports.DockerImageAsset = DockerImageAsset;
|
|
221
219
|
_c = JSII_RTTI_SYMBOL_1;
|
|
222
|
-
DockerImageAsset[_c] = { fqn: "terraconstructs.aws.storage.assets.DockerImageAsset", version: "0.1.
|
|
220
|
+
DockerImageAsset[_c] = { fqn: "terraconstructs.aws.storage.assets.DockerImageAsset", version: "0.1.10" };
|
|
223
221
|
function validateProps(props) {
|
|
224
222
|
for (const [key, value] of Object.entries(props)) {
|
|
225
223
|
if (cdktf_1.Token.isUnresolved(value)) {
|
|
226
|
-
|
|
227
|
-
throw new Error(`Cannot use Token as value of '${key}': this value is used before deployment starts`);
|
|
224
|
+
throw new __1.UnscopedValidationError(`Cannot use Token as value of '${key}': this value is used before deployment starts`);
|
|
228
225
|
}
|
|
229
226
|
}
|
|
230
227
|
validateBuildArgs(props.buildArgs);
|
|
@@ -233,8 +230,7 @@ function validateProps(props) {
|
|
|
233
230
|
function validateBuildProps(buildPropName, buildProps) {
|
|
234
231
|
for (const [key, value] of Object.entries(buildProps || {})) {
|
|
235
232
|
if (cdktf_1.Token.isUnresolved(key) || cdktf_1.Token.isUnresolved(value)) {
|
|
236
|
-
|
|
237
|
-
throw new Error(`Cannot use tokens in keys or values of "${buildPropName}" since they are needed before deployment`);
|
|
233
|
+
throw new __1.UnscopedValidationError(`Cannot use tokens in keys or values of "${buildPropName}" since they are needed before deployment`);
|
|
238
234
|
}
|
|
239
235
|
}
|
|
240
236
|
}
|
|
@@ -244,4 +240,4 @@ function validateBuildArgs(buildArgs) {
|
|
|
244
240
|
function validateBuildSecrets(buildSecrets) {
|
|
245
241
|
validateBuildProps("buildSecrets", buildSecrets);
|
|
246
242
|
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL3N0b3JhZ2UvYXNzZXRzL2ltYWdlLWFzc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0dBQXNHO0FBRXRHLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsaUNBQTJDO0FBQzNDLDJDQUF1QztBQUN2QywwQkFBMEI7QUFDMUIsZ0NBT2tCO0FBQ2xCLCtDQUEyQztBQUUzQzs7R0FFRztBQUNILE1BQWEsV0FBVztJQWdCdEI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBbUI7UUFDN0MsT0FBTyxJQUFJLFdBQVcsQ0FBQyxhQUFhLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFZO1FBQy9CLE9BQU8sSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBb0MsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFBRyxDQUFDOztBQXRDdEQsa0NBdUNDOzs7QUF0Q0M7O0dBRUc7QUFDb0IsbUJBQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUU1RDs7R0FFRztBQUNvQixnQkFBSSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXREOztHQUVHO0FBQ29CLGdCQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7QUEyQnhEOztHQUVHO0FBQ0gsTUFBYSxRQUFRO0lBV25COzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFnQjtRQUNuQyxPQUFPLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQW9DLFFBQWdCO1FBQWhCLGFBQVEs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Q0FBQyxZQUFZLEVBQUUsU0FBUyxLQUFLLEtBQUssSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0QsU0FBUyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsWUFBWSxLQUFLLEtBQUssSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckUsU0FBUyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsUUFBUSxLQUFLLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0QsU0FBUyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsTUFBTSxLQUFLLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekQsU0FBUyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ2xDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxLQUFLLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckQsU0FBUyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQzlCLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsY0FBYyxLQUFLLEtBQUssSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekUsU0FBUyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQ2xELENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsV0FBVyxLQUFLLEtBQUssSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkUsU0FBUyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FB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Q0gsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsU0FBcUM7SUFDOUQsa0JBQWtCLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLFlBQXdDO0lBQ3BFLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTY4LjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVjci1hc3NldHMvbGliL2ltYWdlLWFzc2V0LnRzXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQW5ub3RhdGlvbnMsIFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgZWNyIGZyb20gXCIuLlwiO1xuaW1wb3J0IHtcbiAgQXNzZXRTdGFnaW5nLFxuICBGaWxlRmluZ2VycHJpbnRPcHRpb25zLFxuICBJZ25vcmVNb2RlLFxuICAvLyBWYWxpZGF0aW9uRXJyb3IsXG4gIC8vIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yLFxuICBJQXNzZXQsXG59IGZyb20gXCIuLi8uLi8uLlwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vLi4vYXdzLXN0YWNrXCI7XG5cbi8qKlxuICogbmV0d29ya2luZyBtb2RlIG9uIGJ1aWxkIHRpbWUgc3VwcG9ydGVkIGJ5IGRvY2tlclxuICovXG5leHBvcnQgY2xhc3MgTmV0d29ya01vZGUge1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgbmV0d29ya2luZyBtb2RlIGlmIG9taXR0ZWQsIGNyZWF0ZSBhIG5ldHdvcmsgc3RhY2sgb24gdGhlIGRlZmF1bHQgRG9ja2VyIGJyaWRnZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUID0gbmV3IE5ldHdvcmtNb2RlKFwiZGVmYXVsdFwiKTtcblxuICAvKipcbiAgICogVXNlIHRoZSBEb2NrZXIgaG9zdCBuZXR3b3JrIHN0YWNrXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEhPU1QgPSBuZXcgTmV0d29ya01vZGUoXCJob3N0XCIpO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHRoZSBuZXR3b3JrIHN0YWNrLCBvbmx5IHRoZSBsb29wYmFjayBkZXZpY2Ugd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PTkUgPSBuZXcgTmV0d29ya01vZGUoXCJub25lXCIpO1xuXG4gIC8qKlxuICAgKiBSZXVzZSBhbm90aGVyIGNvbnRhaW5lcidzIG5ldHdvcmsgc3RhY2tcbiAgICpcbiAgICogQHBhcmFtIGNvbnRhaW5lcklkIFRoZSB0YXJnZXQgY29udGFpbmVyJ3MgaWQgb3IgbmFtZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29udGFpbmVyKGNvbnRhaW5lcklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IE5ldHdvcmtNb2RlKGBjb250YWluZXI6JHtjb250YWluZXJJZH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHNwZWNpZnkgYSBjdXN0b20gbmV0d29ya2luZyBtb2RlXG4gICAqIFVzZSB0aGlzIGlmIHRoZSBuZXR3b3JraW5nIG1vZGUgbmFtZSBpcyBub3QgeWV0IHN1cHBvcnRlZCBieSB0aGUgQ0RLLlxuICAgKlxuICAgKiBAcGFyYW0gbW9kZSBUaGUgbmV0d29ya2luZyBtb2RlIHRvIHVzZSBmb3IgZG9ja2VyIGJ1aWxkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGN1c3RvbShtb2RlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IE5ldHdvcmtNb2RlKG1vZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBtb2RlIFRoZSBuZXR3b3JraW5nIG1vZGUgdG8gdXNlIGZvciBkb2NrZXIgYnVpbGRcbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IG1vZGU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBwbGF0Zm9ybSBzdXBwb3J0ZWQgYnkgZG9ja2VyXG4gKi9cbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybSB7XG4gIC8qKlxuICAgKiBCdWlsZCBmb3IgbGludXgvYW1kNjRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTElOVVhfQU1ENjQgPSBuZXcgUGxhdGZvcm0oXCJsaW51eC9hbWQ2NFwiKTtcblxuICAvKipcbiAgICogQnVpbGQgZm9yIGxpbnV4L2FybTY0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IExJTlVYX0FSTTY0ID0gbmV3IFBsYXRmb3JtKFwibGludXgvYXJtNjRcIik7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gc3BlY2lmeSBhIGN1c3RvbSBwbGF0Zm9ybVxuICAgKiBVc2UgdGhpcyBpZiB0aGUgcGxhdGZvcm0gbmFtZSBpcyBub3QgeWV0IHN1cHBvcnRlZCBieSB0aGUgQ0RLLlxuICAgKlxuICAgKiBAcGFyYW0gcGxhdGZvcm0gVGhlIHBsYXRmb3JtIHRvIHVzZSBmb3IgZG9ja2VyIGJ1aWxkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGN1c3RvbShwbGF0Zm9ybTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBQbGF0Zm9ybShwbGF0Zm9ybSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHBsYXRmb3JtIFRoZSBwbGF0Zm9ybSB0byB1c2UgZm9yIGRvY2tlciBidWlsZFxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcGxhdGZvcm06IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGNvbnRyb2wgaW52YWxpZGF0aW9uIG9mIGBEb2NrZXJJbWFnZUFzc2V0YCBhc3NldCBoYXNoZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJJbWFnZUFzc2V0SW52YWxpZGF0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBVc2UgYGV4dHJhSGFzaGAgd2hpbGUgY2FsY3VsYXRpbmcgdGhlIGFzc2V0IGhhc2hcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFIYXNoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIGBidWlsZEFyZ3NgIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSBhc3NldCBoYXNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVzZSBgYnVpbGRTZWNyZXRzYCB3aGlsZSBjYWxjdWxhdGluZyB0aGUgYXNzZXQgaGFzaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBidWlsZFNlY3JldHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgYGJ1aWxkU3NoYCB3aGlsZSBjYWxjdWxhdGluZyB0aGUgYXNzZXQgaGFzaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBidWlsZFNzaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVzZSBgdGFyZ2V0YCB3aGlsZSBjYWxjdWxhdGluZyB0aGUgYXNzZXQgaGFzaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB0YXJnZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgYGZpbGVgIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSBhc3NldCBoYXNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGZpbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgYHJlcG9zaXRvcnlOYW1lYCB3aGlsZSBjYWxjdWxhdGluZyB0aGUgYXNzZXQgaGFzaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVzZSBgbmV0d29ya01vZGVgIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSBhc3NldCBoYXNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtNb2RlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIGBwbGF0Zm9ybWAgd2hpbGUgY2FsY3VsYXRpbmcgdGhlIGFzc2V0IGhhc2hcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm0/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgYG91dHB1dHNgIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSBhc3NldCBoYXNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dHM/OiBib29sZWFuO1xufVxuXG4vLyBUT0RPOiBEdXBsaWNhdGUgZnJvbSBjb3JlLkRvY2tlckNhY2hlT3B0aW9uP1xuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgRG9ja2VyIGNhY2hlIGJhY2tlbmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJDYWNoZU9wdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBjYWNoZSB0byB1c2UuXG4gICAqIFJlZmVyIHRvIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2J1aWxkL2NhY2hlL2JhY2tlbmRzLyBmb3IgZnVsbCBsaXN0IG9mIGJhY2tlbmRzLlxuICAgKiBAZGVmYXVsdCAtIHVuc3BlY2lmaWVkXG4gICAqXG4gICAqIEBleGFtcGxlICdyZWdpc3RyeSdcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEFueSBwYXJhbWV0ZXJzIHRvIHBhc3MgaW50byB0aGUgZG9ja2VyIGNhY2hlIGJhY2tlbmQgY29uZmlndXJhdGlvbi5cbiAgICogUmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vYnVpbGQvY2FjaGUvYmFja2VuZHMvIGZvciBjYWNoZSBiYWNrZW5kIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBkZWZhdWx0IHt9IE5vIG9wdGlvbnMgcHJvdmlkZWRcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogZGVjbGFyZSBjb25zdCBicmFuY2g6IHN0cmluZztcbiAgICpcbiAgICogY29uc3QgcGFyYW1zID0ge1xuICAgKiAgIHJlZjogYDEyMzQ1Njc4LmRrci5lY3IudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20vY2FjaGU6JHticmFuY2h9YCxcbiAgICogICBtb2RlOiBcIm1heFwiLFxuICAgKiB9O1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBEb2NrZXJJbWFnZUFzc2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VySW1hZ2VBc3NldE9wdGlvbnMgZXh0ZW5kcyBGaWxlRmluZ2VycHJpbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVDUiByZXBvc2l0b3J5IG5hbWVcbiAgICpcbiAgICogU3BlY2lmeSB0aGlzIHByb3BlcnR5IGlmIHlvdSBuZWVkIHRvIHN0YXRpY2FsbHkgYWRkcmVzcyB0aGUgaW1hZ2UsIGUuZy5cbiAgICogZnJvbSBhIEt1YmVybmV0ZXMgUG9kLiBOb3RlLCB0aGlzIGlzIG9ubHkgdGhlIHJlcG9zaXRvcnkgbmFtZSwgd2l0aG91dCB0aGVcbiAgICogcmVnaXN0cnkgYW5kIHRoZSB0YWcgcGFydHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGRlZmF1bHQgRUNSIHJlcG9zaXRvcnkgZm9yIENESyBhc3NldHNcbiAgICogQGRlcHJlY2F0ZWQgdG8gY29udHJvbCB0aGUgbG9jYXRpb24gb2YgZG9ja2VyIGltYWdlIGFzc2V0cywgcGxlYXNlIG92ZXJyaWRlXG4gICAqIGBTdGFjay5hZGREb2NrZXJJbWFnZUFzc2V0YC4gdGhpcyBmZWF0dXJlIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmVcbiAgICogcmVsZWFzZXMuXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQgYXJncyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKlxuICAgKiBTaW5jZSBEb2NrZXIgYnVpbGQgYXJndW1lbnRzIGFyZSByZXNvbHZlZCBiZWZvcmUgZGVwbG95bWVudCwga2V5cyBhbmRcbiAgICogdmFsdWVzIGNhbm5vdCByZWZlciB0byB1bnJlc29sdmVkIHRva2VucyAoc3VjaCBhcyBgbGFtYmRhLmZ1bmN0aW9uQXJuYCBvclxuICAgKiBgcXVldWUucXVldWVVcmxgKS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBhcmdzIGFyZSBwYXNzZWRcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHNlY3JldHMuXG4gICAqXG4gICAqIERvY2tlciBCdWlsZEtpdCBtdXN0IGJlIGVuYWJsZWQgdG8gdXNlIGJ1aWxkIHNlY3JldHMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vYnVpbGQvYnVpbGRraXQvXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYnVpbGQgc2VjcmV0c1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBpbXBvcnQgeyBEb2NrZXJCdWlsZFNlY3JldCB9IGZyb20gJ2F3cy1jZGstbGliJztcbiAgICpcbiAgICogY29uc3QgYnVpbGRTZWNyZXRzID0ge1xuICAgKiAgICdNWV9TRUNSRVQnOiBEb2NrZXJCdWlsZFNlY3JldC5mcm9tU3JjKCdmaWxlLnR4dCcpXG4gICAqIH07XG4gICAqL1xuICByZWFkb25seSBidWlsZFNlY3JldHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBTU0ggYWdlbnQgc29ja2V0IG9yIGtleXMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogRG9ja2VyIEJ1aWxkS2l0IG11c3QgYmUgZW5hYmxlZCB0byB1c2UgdGhlIHNzaCBmbGFnXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vYnVpbGQvYnVpbGRraXQvXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gLS1zc2ggZmxhZ1xuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRTc2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERvY2tlciB0YXJnZXQgdG8gYnVpbGQgdG9cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldD86IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgRG9ja2VyZmlsZSAocmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeSkuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdEb2NrZXJmaWxlJ1xuICAgKi9cbiAgcmVhZG9ubHkgZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogTmV0d29ya2luZyBtb2RlIGZvciB0aGUgUlVOIGNvbW1hbmRzIGR1cmluZyBidWlsZC4gU3VwcG9ydCBkb2NrZXIgQVBJIDEuMjUrLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5ldHdvcmtpbmcgbW9kZSBzcGVjaWZpZWQgKHRoZSBkZWZhdWx0IG5ldHdvcmtpbmcgbW9kZSBgTmV0d29ya01vZGUuREVGQVVMVGAgd2lsbCBiZSB1c2VkKVxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya01vZGU/OiBOZXR3b3JrTW9kZTtcblxuICAvKipcbiAgICogUGxhdGZvcm0gdG8gYnVpbGQgZm9yLiBfUmVxdWlyZXMgRG9ja2VyIEJ1aWxkeF8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcGxhdGZvcm0gc3BlY2lmaWVkICh0aGUgY3VycmVudCBtYWNoaW5lIGFyY2hpdGVjdHVyZSB3aWxsIGJlIHVzZWQpXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybT86IFBsYXRmb3JtO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRvIGNvbnRyb2wgd2hpY2ggcGFyYW1ldGVycyBhcmUgdXNlZCB0byBpbnZhbGlkYXRlIHRoZSBhc3NldCBoYXNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGhhc2ggYWxsIHBhcmFtZXRlcnNcbiAgICovXG4gIHJlYWRvbmx5IGludmFsaWRhdGlvbj86IERvY2tlckltYWdlQXNzZXRJbnZhbGlkYXRpb25PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBPdXRwdXRzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gb3V0cHV0cyBhcmUgcGFzc2VkIHRvIHRoZSBidWlsZCBjb21tYW5kIChkZWZhdWx0IG91dHB1dHMgYXJlIHVzZWQpXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8jY3VzdG9tLWJ1aWxkLW91dHB1dHNcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGRvY2tlciBpbWFnZSBhc3NldCBhbmQgaXRzIHBvdGVudGlhbCByZXZpc2lvbnMuXG4gICAqIFJlcXVpcmVkIGlmIHVzaW5nIEFwcFNjb3BlZFN0YWdpbmdTeW50aGVzaXplci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhc3NldCBuYW1lXG4gICAqL1xuICByZWFkb25seSBhc3NldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENhY2hlIGZyb20gb3B0aW9ucyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNhY2hlIGZyb20gb3B0aW9ucyBhcmUgcGFzc2VkIHRvIHRoZSBidWlsZCBjb21tYW5kXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vYnVpbGQvY2FjaGUvYmFja2VuZHMvXG4gICAqL1xuICByZWFkb25seSBjYWNoZUZyb20/OiBEb2NrZXJDYWNoZU9wdGlvbltdO1xuXG4gIC8qKlxuICAgKiBDYWNoZSB0byBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY2FjaGUgdG8gb3B0aW9ucyBhcmUgcGFzc2VkIHRvIHRoZSBidWlsZCBjb21tYW5kXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vYnVpbGQvY2FjaGUvYmFja2VuZHMvXG4gICAqL1xuICByZWFkb25seSBjYWNoZVRvPzogRG9ja2VyQ2FjaGVPcHRpb247XG5cbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIGNhY2hlIGFuZCBwYXNzIGAtLW5vLWNhY2hlYCB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjYWNoZSBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBjYWNoZURpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9wcyBmb3IgRG9ja2VySW1hZ2VBc3NldHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJJbWFnZUFzc2V0UHJvcHMgZXh0ZW5kcyBEb2NrZXJJbWFnZUFzc2V0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBEb2NrZXJmaWxlIGlzIHN0b3JlZFxuICAgKlxuICAgKiBBbnkgZGlyZWN0b3J5IGluc2lkZSB3aXRoIGEgbmFtZSB0aGF0IG1hdGNoZXMgdGhlIENESyBvdXRwdXQgZm9sZGVyIChjZGsub3V0IGJ5IGRlZmF1bHQpIHdpbGwgYmUgZXhjbHVkZWQgZnJvbSB0aGUgYXNzZXRcbiAgICovXG4gIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFuIGFzc2V0IHRoYXQgcmVwcmVzZW50cyBhIERvY2tlciBpbWFnZS5cbiAqXG4gKiBUaGUgaW1hZ2Ugd2lsbCBiZSBjcmVhdGVkIGluIGJ1aWxkIHRpbWUgYW5kIHVwbG9hZGVkIHRvIGFuIEVDUiByZXBvc2l0b3J5LlxuICpcbiAqIFdBUk5JTkc6IGBEb2NrZXJBc3NldFswLTldKmAgYW5kIGBEb2NrZXJBc3NldF9JbWFnZVswLTldKmAgaWRlbnRpZmllcnMgYXJlXG4gKiB1c2VkIGludGVybmFsbHkgYnkgdGhlIFN0YWNrIEFzc2V0IE1hbmFnZXIgYW5kIHdpbGwgY2F1c2UgSWQgY29uZmxpY3RzLlxuICovXG5leHBvcnQgY2xhc3MgRG9ja2VySW1hZ2VBc3NldCBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElBc3NldCB7XG4gIC8qKlxuICAgKiBUaGUgZnVsbCBVUkkgb2YgdGhlIGltYWdlIChpbmNsdWRpbmcgYSB0YWcpLiBVc2UgdGhpcyByZWZlcmVuY2UgdG8gcHVsbFxuICAgKiB0aGUgYXNzZXQuXG4gICAqL1xuICBwdWJsaWMgaW1hZ2VVcmk6IHN0cmluZztcblxuICAvKipcbiAgICogUmVwb3NpdG9yeSB3aGVyZSB0aGUgaW1hZ2UgaXMgc3RvcmVkXG4gICAqL1xuICBwdWJsaWMgcmVwb3NpdG9yeTogZWNyLklSZXBvc2l0b3J5O1xuXG4gIC8qKlxuICAgKiBBIGhhc2ggb2YgdGhlIHNvdXJjZSBvZiB0aGlzIGFzc2V0LCB3aGljaCBpcyBhdmFpbGFibGUgYXQgY29uc3RydWN0aW9uIHRpbWUuIEFzIHRoaXMgaXMgYSBwbGFpblxuICAgKiBzdHJpbmcsIGl0IGNhbiBiZSB1c2VkIGluIGNvbnN0cnVjdCBJRHMgaW4gb3JkZXIgdG8gZW5mb3JjZSBjcmVhdGlvbiBvZiBhIG5ldyByZXNvdXJjZSB3aGVuXG4gICAqIHRoZSBjb250ZW50IGhhc2ggaGFzIGNoYW5nZWQuXG4gICAqIEBkZXByZWNhdGVkIHVzZSBhc3NldEhhc2hcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2VIYXNoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgaGFzaCBvZiB0aGlzIGFzc2V0LCB3aGljaCBpcyBhdmFpbGFibGUgYXQgY29uc3RydWN0aW9uIHRpbWUuIEFzIHRoaXMgaXMgYSBwbGFpbiBzdHJpbmcsIGl0XG4gICAqIGNhbiBiZSB1c2VkIGluIGNvbnN0cnVjdCBJRHMgaW4gb3JkZXIgdG8gZW5mb3JjZSBjcmVhdGlvbiBvZiBhIG5ldyByZXNvdXJjZSB3aGVuIHRoZSBjb250ZW50XG4gICAqIGhhc2ggaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRIYXNoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWcgb2YgdGhpcyBhc3NldCB3aGVuIGl0IGlzIHVwbG9hZGVkIHRvIEVDUi4gVGhlIHRhZyBtYXkgZGlmZmVyIGZyb20gdGhlIGFzc2V0SGFzaCBpZiBhIHN0YWNrIHN5bnRoZXNpemVyIGFkZHMgYSBkb2NrZXJUYWdQcmVmaXguXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW1hZ2VUYWc6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIGFzc2V0LCByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBDbG91ZCBBc3NlbWJseVxuICAgKlxuICAgKiBJZiBhc3NldCBzdGFnaW5nIGlzIGRpc2FibGVkLCB0aGlzIHdpbGwganVzdCBiZSB0aGUgb3JpZ2luYWwgcGF0aC5cbiAgICpcbiAgICogSWYgYXNzZXQgc3RhZ2luZyBpcyBlbmFibGVkIGl0IHdpbGwgYmUgdGhlIHN0YWdlZCBwYXRoLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBhc3NldFBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIERvY2tlcmZpbGUsIHJlbGF0aXZlIHRvIHRoZSBhc3NldFBhdGhcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyZmlsZVBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFyZ3MgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyQnVpbGRBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQnVpbGQgc2VjcmV0cyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBkb2NrZXJCdWlsZFNlY3JldHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBTU0ggYWdlbnQgc29ja2V0IG9yIGtleXMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyQnVpbGRTc2g/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPdXRwdXRzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY2tlck91dHB1dHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGRvY2tlciBpbWFnZSBhc3NldCBhbmQgaXRzIHBvdGVudGlhbCByZXZpc2lvbnMuXG4gICAqIFJlcXVpcmVkIGlmIHVzaW5nIEFwcFNjb3BlZFN0YWdpbmdTeW50aGVzaXplci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhc3NldCBuYW1lXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ2FjaGUgZnJvbSBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY2tlckNhY2hlRnJvbT86IERvY2tlckNhY2hlT3B0aW9uW107XG5cbiAgLyoqXG4gICAqIENhY2hlIHRvIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyQ2FjaGVUbz86IERvY2tlckNhY2hlT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHRoZSBjYWNoZSBhbmQgcGFzcyBgLS1uby1jYWNoZWAgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY2tlckNhY2hlRGlzYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEb2NrZXIgdGFyZ2V0IHRvIGJ1aWxkIHRvXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY2tlckJ1aWxkVGFyZ2V0Pzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEb2NrZXJJbWFnZUFzc2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gbm9uZSBvZiB0aGUgcHJvcGVydGllcyB1c2UgdG9rZW5zXG4gICAgdmFsaWRhdGVQcm9wcyhwcm9wcyk7XG5cbiAgICAvLyByZXNvbHZlIGZ1bGwgcGF0aFxuICAgIGNvbnN0IGRpciA9IHBhdGgucmVzb2x2ZShwcm9wcy5kaXJlY3RvcnkpO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhkaXIpKSB7XG4gICAgICAvLyB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBDYW5ub3QgZmluZCBpbWFnZSBkaXJlY3RvcnkgYXQgJHtkaXJ9YCwgdGhpcyk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIGltYWdlIGRpcmVjdG9yeSBhdCAke2Rpcn1gKTtcbiAgICB9XG5cbiAgICAvLyB2YWxpZGF0ZSB0aGUgZG9ja2VyIGZpbGUgZXhpc3RzXG4gICAgdGhpcy5kb2NrZXJmaWxlUGF0aCA9IHByb3BzLmZpbGUgfHwgXCJEb2NrZXJmaWxlXCI7XG4gICAgY29uc3QgZmlsZSA9IHBhdGguam9pbihkaXIsIHRoaXMuZG9ja2VyZmlsZVBhdGgpO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlKSkge1xuICAgICAgLy8gdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgQ2Fubm90IGZpbmQgZmlsZSBhdCAke2ZpbGV9YCwgdGhpcyk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIGZpbGUgYXQgJHtmaWxlfWApO1xuICAgIH1cblxuICAgIGxldCBpZ25vcmVNb2RlID0gcHJvcHMuaWdub3JlTW9kZSA/PyBJZ25vcmVNb2RlLkRPQ0tFUjtcblxuICAgIGxldCBleGNsdWRlOiBzdHJpbmdbXSA9IHByb3BzLmV4Y2x1ZGUgfHwgW107XG5cbiAgICBjb25zdCBpZ25vcmUgPSBwYXRoLmpvaW4oZGlyLCBcIi5kb2NrZXJpZ25vcmVcIik7XG5cbiAgICBpZiAoZnMuZXhpc3RzU3luYyhpZ25vcmUpKSB7XG4gICAgICBjb25zdCBkb2NrZXJJZ25vcmVQYXR0ZXJucyA9IGZzXG4gICAgICAgIC5yZWFkRmlsZVN5bmMoaWdub3JlKVxuICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgLmZpbHRlcigoZSkgPT4gISFlKTtcblxuICAgICAgZXhjbHVkZSA9IFtcbiAgICAgICAgLi4uZG9ja2VySWdub3JlUGF0dGVybnMsXG4gICAgICAgIC4uLmV4Y2x1ZGUsXG5cbiAgICAgICAgLy8gRW5zdXJlIC5kb2NrZXJpZ25vcmUgaXMgaW5jbHVkZWQgbm8gbWF0dGVyIHdoYXQuXG4gICAgICAgIFwiIS5kb2NrZXJpZ25vcmVcIixcbiAgICAgIF07XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIHRoZSBEb2NrZXJmaWxlIGlzIGluY2x1ZGVkIG5vIG1hdHRlciB3aGF0LlxuICAgIGV4Y2x1ZGUucHVzaChcIiFcIiArIHBhdGguYmFzZW5hbWUoZmlsZSkpO1xuICAgIC8vIEVuc3VyZSB0aGUgY2RrLm91dCBmb2xkZXIgaXMgbm90IGluY2x1ZGVkIHRvIGF2b2lkIGluZmluaXRlIGxvb3BzLlxuICAgIC8vIGNvbnN0IGNka291dCA9IFN0YWdlLm9mKHRoaXMpPy5vdXRkaXIgPz8gXCJjZGsub3V0XCI7XG4gICAgLy8gZXhjbHVkZS5wdXNoKGNka291dCk7XG4gICAgZXhjbHVkZS5wdXNoKFwiY2RrLm91dFwiKTtcblxuICAgIGlmIChwcm9wcy5yZXBvc2l0b3J5TmFtZSkge1xuICAgICAgLy8gXCJAYXdzLWNkay9hd3MtZWNyLWFzc2V0czpyZXBvc2l0b3J5TmFtZURlcHJlY2F0ZWRcIixcbiAgICAgIEFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmcoXG4gICAgICAgICdEb2NrZXJJbWFnZUFzc2V0LnJlcG9zaXRvcnlOYW1lIGlzIGRlcHJlY2F0ZWQuIE92ZXJyaWRlIFwiY29yZS5TdGFjay5hZGREb2NrZXJJbWFnZUFzc2V0XCIgdG8gY29udHJvbCBhc3NldCBsb2NhdGlvbnMnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBpbmNsdWRlIGJ1aWxkIGNvbnRleHQgaW4gXCJleHRyYVwiIHNvIGl0IHdpbGwgaW1wYWN0IHRoZSBoYXNoXG4gICAgY29uc3QgZXh0cmFIYXNoOiB7IFtmaWVsZDogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBpZiAocHJvcHMuaW52YWxpZGF0aW9uPy5leHRyYUhhc2ggIT09IGZhbHNlICYmIHByb3BzLmV4dHJhSGFzaCkge1xuICAgICAgZXh0cmFIYXNoLnVzZXIgPSBwcm9wcy5leHRyYUhhc2g7XG4gICAgfVxuICAgIGlmIChwcm9wcy5pbnZhbGlkYXRpb24/LmJ1aWxkQXJncyAhPT0gZmFsc2UgJiYgcHJvcHMuYnVpbGRBcmdzKSB7XG4gICAgICBleHRyYUhhc2guYnVpbGRBcmdzID0gcHJvcHMuYnVpbGRBcmdzO1xuICAgIH1cbiAgICBpZiAocHJvcHMuaW52YWxpZGF0aW9uPy5idWlsZFNlY3JldHMgIT09IGZhbHNlICYmIHByb3BzLmJ1aWxkU2VjcmV0cykge1xuICAgICAgZXh0cmFIYXNoLmJ1aWxkU2VjcmV0cyA9IHByb3BzLmJ1aWxkU2VjcmV0cztcbiAgICB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8uYnVpbGRTc2ggIT09IGZhbHNlICYmIHByb3BzLmJ1aWxkU3NoKSB7XG4gICAgICBleHRyYUhhc2guYnVpbGRTc2ggPSBwcm9wcy5idWlsZFNzaDtcbiAgICB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8udGFyZ2V0ICE9PSBmYWxzZSAmJiBwcm9wcy50YXJnZXQpIHtcbiAgICAgIGV4dHJhSGFzaC50YXJnZXQgPSBwcm9wcy50YXJnZXQ7XG4gICAgfVxuICAgIGlmIChwcm9wcy5pbnZhbGlkYXRpb24/LmZpbGUgIT09IGZhbHNlICYmIHByb3BzLmZpbGUpIHtcbiAgICAgIGV4dHJhSGFzaC5maWxlID0gcHJvcHMuZmlsZTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8ucmVwb3NpdG9yeU5hbWUgIT09IGZhbHNlICYmIHByb3BzLnJlcG9zaXRvcnlOYW1lKSB7XG4gICAgICBleHRyYUhhc2gucmVwb3NpdG9yeU5hbWUgPSBwcm9wcy5yZXBvc2l0b3J5TmFtZTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8ubmV0d29ya01vZGUgIT09IGZhbHNlICYmIHByb3BzLm5ldHdvcmtNb2RlKSB7XG4gICAgICBleHRyYUhhc2gubmV0d29ya01vZGUgPSBwcm9wcy5uZXR3b3JrTW9kZTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8ucGxhdGZvcm0gIT09IGZhbHNlICYmIHByb3BzLnBsYXRmb3JtKSB7XG4gICAgICBleHRyYUhhc2gucGxhdGZvcm0gPSBwcm9wcy5wbGF0Zm9ybTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8ub3V0cHV0cyAhPT0gZmFsc2UgJiYgcHJvcHMub3V0cHV0cykge1xuICAgICAgZXh0cmFIYXNoLm91dHB1dHMgPSBwcm9wcy5vdXRwdXRzO1xuICAgIH1cblxuICAgIC8vIGFkZCBcInNhbHRcIiB0byB0aGUgaGFzaCBpbiBvcmRlciB0byBpbnZhbGlkYXRlIHRoZSBpbWFnZSBpbiB0aGUgdXBncmFkZSB0b1xuICAgIC8vIDEuMjEuMCB3aGljaCByZW1vdmVzIHRoZSBBZG9wdGVkUmVwb3NpdG9yeSByZXNvdXJjZSAoYW5kIHdpbGwgY2F1c2UgdGhlXG4gICAgLy8gZGVsZXRpb24gb2YgdGhlIEVDUiByZXBvc2l0b3J5IHRoZSBhcHAgdXNlZCkuXG4gICAgZXh0cmFIYXNoLnZlcnNpb24gPSBcIjEuMjEuMFwiO1xuXG4gICAgY29uc3Qgc3RhZ2luZyA9IG5ldyBBc3NldFN0YWdpbmcodGhpcywgXCJTdGFnaW5nXCIsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZm9sbG93OiBwcm9wcy5mb2xsb3dTeW1saW5rcyxcbiAgICAgIGV4Y2x1ZGUsXG4gICAgICBpZ25vcmVNb2RlLFxuICAgICAgc291cmNlUGF0aDogZGlyLFxuICAgICAgZXh0cmFIYXNoOlxuICAgICAgICBPYmplY3Qua2V5cyhleHRyYUhhc2gpLmxlbmd0aCA9PT0gMFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShleHRyYUhhc2gpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hc3NldEhhc2ggPSBzdGFnaW5nLmFzc2V0SGFzaDtcbiAgICB0aGlzLnNvdXJjZUhhc2ggPSB0aGlzLmFzc2V0SGFzaDtcblxuICAgIGNvbnN0IHN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcyk7XG4gICAgdGhpcy5hc3NldFBhdGggPSBzdGFnaW5nLnJlbGF0aXZlU3RhZ2VkUGF0aChzdGFjayk7XG4gICAgdGhpcy5hc3NldE5hbWUgPSBwcm9wcy5hc3NldE5hbWU7XG4gICAgdGhpcy5kb2NrZXJCdWlsZEFyZ3MgPSBwcm9wcy5idWlsZEFyZ3M7XG4gICAgdGhpcy5kb2NrZXJCdWlsZFNlY3JldHMgPSBwcm9wcy5idWlsZFNlY3JldHM7XG4gICAgdGhpcy5kb2NrZXJCdWlsZFNzaCA9IHByb3BzLmJ1aWxkU3NoO1xuICAgIHRoaXMuZG9ja2VyQnVpbGRUYXJnZXQgPSBwcm9wcy50YXJnZXQ7XG4gICAgdGhpcy5kb2NrZXJPdXRwdXRzID0gcHJvcHMub3V0cHV0cztcbiAgICB0aGlzLmRvY2tlckNhY2hlRnJvbSA9IHByb3BzLmNhY2hlRnJvbTtcbiAgICB0aGlzLmRvY2tlckNhY2hlVG8gPSBwcm9wcy5jYWNoZVRvO1xuICAgIHRoaXMuZG9ja2VyQ2FjaGVEaXNhYmxlZCA9IHByb3BzLmNhY2hlRGlzYWJsZWQ7XG5cbiAgICBjb25zdCBsb2NhdGlvbiA9IHN0YWNrLmFkZERvY2tlckltYWdlQXNzZXQoe1xuICAgICAgZGlyZWN0b3J5TmFtZTogdGhpcy5hc3NldFBhdGgsXG4gICAgICBhc3NldE5hbWU6IHRoaXMuYXNzZXROYW1lLFxuICAgICAgZG9ja2VyQnVpbGRBcmdzOiB0aGlzLmRvY2tlckJ1aWxkQXJncyxcbiAgICAgIGRvY2tlckJ1aWxkU2VjcmV0czogdGhpcy5kb2NrZXJCdWlsZFNlY3JldHMsXG4gICAgICBkb2NrZXJCdWlsZFNzaDogdGhpcy5kb2NrZXJCdWlsZFNzaCxcbiAgICAgIGRvY2tlckJ1aWxkVGFyZ2V0OiB0aGlzLmRvY2tlckJ1aWxkVGFyZ2V0LFxuICAgICAgZG9ja2VyRmlsZTogcHJvcHMuZmlsZSxcbiAgICAgIHNvdXJjZUhhc2g6IHN0YWdpbmcuYXNzZXRIYXNoLFxuICAgICAgbmV0d29ya01vZGU6IHByb3BzLm5ldHdvcmtNb2RlPy5tb2RlLFxuICAgICAgcGxhdGZvcm06IHByb3BzLnBsYXRmb3JtPy5wbGF0Zm9ybSxcbiAgICAgIGRvY2tlck91dHB1dHM6IHRoaXMuZG9ja2VyT3V0cHV0cyxcbiAgICAgIGRvY2tlckNhY2hlRnJvbTogdGhpcy5kb2NrZXJDYWNoZUZyb20sXG4gICAgICBkb2NrZXJDYWNoZVRvOiB0aGlzLmRvY2tlckNhY2hlVG8sXG4gICAgICBkb2NrZXJDYWNoZURpc2FibGVkOiB0aGlzLmRvY2tlckNhY2hlRGlzYWJsZWQsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlcG9zaXRvcnkgPSBlY3IuUmVwb3NpdG9yeS5mcm9tUmVwb3NpdG9yeU5hbWUoXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXBvc2l0b3J5XCIsXG4gICAgICBsb2NhdGlvbi5yZXBvc2l0b3J5TmFtZSxcbiAgICApO1xuICAgIHRoaXMuaW1hZ2VVcmkgPSBsb2NhdGlvbi5pbWFnZVVyaTtcbiAgICB0aGlzLmltYWdlVGFnID0gbG9jYXRpb24uaW1hZ2VUYWcgPz8gdGhpcy5hc3NldEhhc2g7XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wcyhwcm9wczogRG9ja2VySW1hZ2VBc3NldFByb3BzKSB7XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzKSkge1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodmFsdWUpKSB7XG4gICAgICAvLyB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgdXNlIFRva2VuIGFzIHZhbHVlIG9mICcke2tleX0nOiB0aGlzIHZhbHVlIGlzIHVzZWQgYmVmb3JlIGRlcGxveW1lbnQgc3RhcnRzYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVCdWlsZEFyZ3MocHJvcHMuYnVpbGRBcmdzKTtcbiAgdmFsaWRhdGVCdWlsZFNlY3JldHMocHJvcHMuYnVpbGRTZWNyZXRzKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVCdWlsZFByb3BzKFxuICBidWlsZFByb3BOYW1lOiBzdHJpbmcsXG4gIGJ1aWxkUHJvcHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuKSB7XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGJ1aWxkUHJvcHMgfHwge30pKSB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChrZXkpIHx8IFRva2VuLmlzVW5yZXNvbHZlZCh2YWx1ZSkpIHtcbiAgICAgIC8vIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENhbm5vdCB1c2UgdG9rZW5zIGluIGtleXMgb3IgdmFsdWVzIG9mIFwiJHtidWlsZFByb3BOYW1lfVwiIHNpbmNlIHRoZXkgYXJlIG5lZWRlZCBiZWZvcmUgZGVwbG95bWVudGAsXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUJ1aWxkQXJncyhidWlsZEFyZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSB7XG4gIHZhbGlkYXRlQnVpbGRQcm9wcyhcImJ1aWxkQXJnc1wiLCBidWlsZEFyZ3MpO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUJ1aWxkU2VjcmV0cyhidWlsZFNlY3JldHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSB7XG4gIHZhbGlkYXRlQnVpbGRQcm9wcyhcImJ1aWxkU2VjcmV0c1wiLCBidWlsZFNlY3JldHMpO1xufVxuIl19
|
|
243
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL3N0b3JhZ2UvYXNzZXRzL2ltYWdlLWFzc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0dBQXNHO0FBRXRHLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsaUNBQTJDO0FBQzNDLDJDQUF1QztBQUN2QywwQkFBMEI7QUFDMUIsZ0NBT2tCO0FBQ2xCLCtDQUEyQztBQUUzQzs7R0FFRztBQUNILE1BQWEsV0FBVztJQWdCdEI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBbUI7UUFDN0MsT0FBTyxJQUFJLFdBQVcsQ0FBQyxhQUFhLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFZO1FBQy9CLE9BQU8sSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBb0MsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7SUFBRyxDQUFDOztBQXRDdEQsa0NBdUNDOzs7QUF0Q0M7O0dBRUc7QUFDb0IsbUJBQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUU1RDs7R0FFRztBQUNvQixnQkFBSSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXREOztHQUVHO0FBQ29CLGdCQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7QUEyQnhEOztHQUVHO0FBQ0gsTUFBYSxRQUFRO0lBV25COzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFnQjtRQUNuQyxPQUFPLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQW9DLFFBQWdCO1FBQWhCLGFBQVEs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LFlBQVksRUFBRSxTQUFTLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvRCxTQUFTLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxZQUFZLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyRSxTQUFTLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxRQUFRLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3RCxTQUFTLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxNQUFNLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6RCxTQUFTLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDbEMsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyRCxTQUFTLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxjQUFjLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6RSxTQUFTLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDbEQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxXQUFXLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuRSxTQUFTLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDNUMs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LENBQUMsU0FBcUM7SUFDOUQsa0JBQWtCLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLFlBQXdDO0lBQ3BFLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTY4LjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVjci1hc3NldHMvbGliL2ltYWdlLWFzc2V0LnRzXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQW5ub3RhdGlvbnMsIFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgZWNyIGZyb20gXCIuLlwiO1xuaW1wb3J0IHtcbiAgQXNzZXRTdGFnaW5nLFxuICBGaWxlRmluZ2VycHJpbnRPcHRpb25zLFxuICBJZ25vcmVNb2RlLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yLFxuICBJQXNzZXQsXG59IGZyb20gXCIuLi8uLi8uLlwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vLi4vYXdzLXN0YWNrXCI7XG5cbi8qKlxuICogbmV0d29ya2luZyBtb2RlIG9uIGJ1aWxkIHRpbWUgc3VwcG9ydGVkIGJ5IGRvY2tlclxuICovXG5leHBvcnQgY2xhc3MgTmV0d29ya01vZGUge1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgbmV0d29ya2luZyBtb2RlIGlmIG9taXR0ZWQsIGNyZWF0ZSBhIG5ldHdvcmsgc3RhY2sgb24gdGhlIGRlZmF1bHQgRG9ja2VyIGJyaWRnZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUID0gbmV3IE5ldHdvcmtNb2RlKFwiZGVmYXVsdFwiKTtcblxuICAvKipcbiAgICogVXNlIHRoZSBEb2NrZXIgaG9zdCBuZXR3b3JrIHN0YWNrXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEhPU1QgPSBuZXcgTmV0d29ya01vZGUoXCJob3N0XCIpO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHRoZSBuZXR3b3JrIHN0YWNrLCBvbmx5IHRoZSBsb29wYmFjayBkZXZpY2Ugd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PTkUgPSBuZXcgTmV0d29ya01vZGUoXCJub25lXCIpO1xuXG4gIC8qKlxuICAgKiBSZXVzZSBhbm90aGVyIGNvbnRhaW5lcidzIG5ldHdvcmsgc3RhY2tcbiAgICpcbiAgICogQHBhcmFtIGNvbnRhaW5lcklkIFRoZSB0YXJnZXQgY29udGFpbmVyJ3MgaWQgb3IgbmFtZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29udGFpbmVyKGNvbnRhaW5lcklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IE5ldHdvcmtNb2RlKGBjb250YWluZXI6JHtjb250YWluZXJJZH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHNwZWNpZnkgYSBjdXN0b20gbmV0d29ya2luZyBtb2RlXG4gICAqIFVzZSB0aGlzIGlmIHRoZSBuZXR3b3JraW5nIG1vZGUgbmFtZSBpcyBub3QgeWV0IHN1cHBvcnRlZCBieSB0aGUgQ0RLLlxuICAgKlxuICAgKiBAcGFyYW0gbW9kZSBUaGUgbmV0d29ya2luZyBtb2RlIHRvIHVzZSBmb3IgZG9ja2VyIGJ1aWxkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGN1c3RvbShtb2RlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IE5ldHdvcmtNb2RlKG1vZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBtb2RlIFRoZSBuZXR3b3JraW5nIG1vZGUgdG8gdXNlIGZvciBkb2NrZXIgYnVpbGRcbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IG1vZGU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBwbGF0Zm9ybSBzdXBwb3J0ZWQgYnkgZG9ja2VyXG4gKi9cbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybSB7XG4gIC8qKlxuICAgKiBCdWlsZCBmb3IgbGludXgvYW1kNjRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTElOVVhfQU1ENjQgPSBuZXcgUGxhdGZvcm0oXCJsaW51eC9hbWQ2NFwiKTtcblxuICAvKipcbiAgICogQnVpbGQgZm9yIGxpbnV4L2FybTY0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IExJTlVYX0FSTTY0ID0gbmV3IFBsYXRmb3JtKFwibGludXgvYXJtNjRcIik7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gc3BlY2lmeSBhIGN1c3RvbSBwbGF0Zm9ybVxuICAgKiBVc2UgdGhpcyBpZiB0aGUgcGxhdGZvcm0gbmFtZSBpcyBub3QgeWV0IHN1cHBvcnRlZCBieSB0aGUgQ0RLLlxuICAgKlxuICAgKiBAcGFyYW0gcGxhdGZvcm0gVGhlIHBsYXRmb3JtIHRvIHVzZSBmb3IgZG9ja2VyIGJ1aWxkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGN1c3RvbShwbGF0Zm9ybTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBQbGF0Zm9ybShwbGF0Zm9ybSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHBsYXRmb3JtIFRoZSBwbGF0Zm9ybSB0byB1c2UgZm9yIGRvY2tlciBidWlsZFxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcGxhdGZvcm06IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGNvbnRyb2wgaW52YWxpZGF0aW9uIG9mIGBEb2NrZXJJbWFnZUFzc2V0YCBhc3NldCBoYXNoZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJJbWFnZUFzc2V0SW52YWxpZGF0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBVc2UgYGV4dHJhSGFzaGAgd2hpbGUgY2FsY3VsYXRpbmcgdGhlIGFzc2V0IGhhc2hcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFIYXNoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIGBidWlsZEFyZ3NgIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSBhc3NldCBoYXNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVzZSBgYnVpbGRTZWNyZXRzYCB3aGlsZSBjYWxjdWxhdGluZyB0aGUgYXNzZXQgaGFzaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBidWlsZFNlY3JldHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgYGJ1aWxkU3NoYCB3aGlsZSBjYWxjdWxhdGluZyB0aGUgYXNzZXQgaGFzaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBidWlsZFNzaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVzZSBgdGFyZ2V0YCB3aGlsZSBjYWxjdWxhdGluZyB0aGUgYXNzZXQgaGFzaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB0YXJnZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgYGZpbGVgIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSBhc3NldCBoYXNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGZpbGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgYHJlcG9zaXRvcnlOYW1lYCB3aGlsZSBjYWxjdWxhdGluZyB0aGUgYXNzZXQgaGFzaFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFVzZSBgbmV0d29ya01vZGVgIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSBhc3NldCBoYXNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtNb2RlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlIGBwbGF0Zm9ybWAgd2hpbGUgY2FsY3VsYXRpbmcgdGhlIGFzc2V0IGhhc2hcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm0/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBVc2UgYG91dHB1dHNgIHdoaWxlIGNhbGN1bGF0aW5nIHRoZSBhc3NldCBoYXNoXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dHM/OiBib29sZWFuO1xufVxuXG4vLyBUT0RPOiBEdXBsaWNhdGUgZnJvbSBjb3JlLkRvY2tlckNhY2hlT3B0aW9uP1xuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgRG9ja2VyIGNhY2hlIGJhY2tlbmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJDYWNoZU9wdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBjYWNoZSB0byB1c2UuXG4gICAqIFJlZmVyIHRvIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2J1aWxkL2NhY2hlL2JhY2tlbmRzLyBmb3IgZnVsbCBsaXN0IG9mIGJhY2tlbmRzLlxuICAgKiBAZGVmYXVsdCAtIHVuc3BlY2lmaWVkXG4gICAqXG4gICAqIEBleGFtcGxlICdyZWdpc3RyeSdcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEFueSBwYXJhbWV0ZXJzIHRvIHBhc3MgaW50byB0aGUgZG9ja2VyIGNhY2hlIGJhY2tlbmQgY29uZmlndXJhdGlvbi5cbiAgICogUmVmZXIgdG8gaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vYnVpbGQvY2FjaGUvYmFja2VuZHMvIGZvciBjYWNoZSBiYWNrZW5kIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBkZWZhdWx0IHt9IE5vIG9wdGlvbnMgcHJvdmlkZWRcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogZGVjbGFyZSBjb25zdCBicmFuY2g6IHN0cmluZztcbiAgICpcbiAgICogY29uc3QgcGFyYW1zID0ge1xuICAgKiAgIHJlZjogYDEyMzQ1Njc4LmRrci5lY3IudXMtd2VzdC0yLmFtYXpvbmF3cy5jb20vY2FjaGU6JHticmFuY2h9YCxcbiAgICogICBtb2RlOiBcIm1heFwiLFxuICAgKiB9O1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBEb2NrZXJJbWFnZUFzc2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VySW1hZ2VBc3NldE9wdGlvbnMgZXh0ZW5kcyBGaWxlRmluZ2VycHJpbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVDUiByZXBvc2l0b3J5IG5hbWVcbiAgICpcbiAgICogU3BlY2lmeSB0aGlzIHByb3BlcnR5IGlmIHlvdSBuZWVkIHRvIHN0YXRpY2FsbHkgYWRkcmVzcyB0aGUgaW1hZ2UsIGUuZy5cbiAgICogZnJvbSBhIEt1YmVybmV0ZXMgUG9kLiBOb3RlLCB0aGlzIGlzIG9ubHkgdGhlIHJlcG9zaXRvcnkgbmFtZSwgd2l0aG91dCB0aGVcbiAgICogcmVnaXN0cnkgYW5kIHRoZSB0YWcgcGFydHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGRlZmF1bHQgRUNSIHJlcG9zaXRvcnkgZm9yIENESyBhc3NldHNcbiAgICogQGRlcHJlY2F0ZWQgdG8gY29udHJvbCB0aGUgbG9jYXRpb24gb2YgZG9ja2VyIGltYWdlIGFzc2V0cywgcGxlYXNlIG92ZXJyaWRlXG4gICAqIGBTdGFjay5hZGREb2NrZXJJbWFnZUFzc2V0YC4gdGhpcyBmZWF0dXJlIHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmVcbiAgICogcmVsZWFzZXMuXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQgYXJncyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKlxuICAgKiBTaW5jZSBEb2NrZXIgYnVpbGQgYXJndW1lbnRzIGFyZSByZXNvbHZlZCBiZWZvcmUgZGVwbG95bWVudCwga2V5cyBhbmRcbiAgICogdmFsdWVzIGNhbm5vdCByZWZlciB0byB1bnJlc29sdmVkIHRva2VucyAoc3VjaCBhcyBgbGFtYmRhLmZ1bmN0aW9uQXJuYCBvclxuICAgKiBgcXVldWUucXVldWVVcmxgKS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBidWlsZCBhcmdzIGFyZSBwYXNzZWRcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHNlY3JldHMuXG4gICAqXG4gICAqIERvY2tlciBCdWlsZEtpdCBtdXN0IGJlIGVuYWJsZWQgdG8gdXNlIGJ1aWxkIHNlY3JldHMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vYnVpbGQvYnVpbGRraXQvXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYnVpbGQgc2VjcmV0c1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBpbXBvcnQgeyBEb2NrZXJCdWlsZFNlY3JldCB9IGZyb20gJ2F3cy1jZGstbGliJztcbiAgICpcbiAgICogY29uc3QgYnVpbGRTZWNyZXRzID0ge1xuICAgKiAgICdNWV9TRUNSRVQnOiBEb2NrZXJCdWlsZFNlY3JldC5mcm9tU3JjKCdmaWxlLnR4dCcpXG4gICAqIH07XG4gICAqL1xuICByZWFkb25seSBidWlsZFNlY3JldHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBTU0ggYWdlbnQgc29ja2V0IG9yIGtleXMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogRG9ja2VyIEJ1aWxkS2l0IG11c3QgYmUgZW5hYmxlZCB0byB1c2UgdGhlIHNzaCBmbGFnXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vYnVpbGQvYnVpbGRraXQvXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gLS1zc2ggZmxhZ1xuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRTc2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERvY2tlciB0YXJnZXQgdG8gYnVpbGQgdG9cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldD86IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgRG9ja2VyZmlsZSAocmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeSkuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdEb2NrZXJmaWxlJ1xuICAgKi9cbiAgcmVhZG9ubHkgZmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogTmV0d29ya2luZyBtb2RlIGZvciB0aGUgUlVOIGNvbW1hbmRzIGR1cmluZyBidWlsZC4gU3VwcG9ydCBkb2NrZXIgQVBJIDEuMjUrLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5ldHdvcmtpbmcgbW9kZSBzcGVjaWZpZWQgKHRoZSBkZWZhdWx0IG5ldHdvcmtpbmcgbW9kZSBgTmV0d29ya01vZGUuREVGQVVMVGAgd2lsbCBiZSB1c2VkKVxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya01vZGU/OiBOZXR3b3JrTW9kZTtcblxuICAvKipcbiAgICogUGxhdGZvcm0gdG8gYnVpbGQgZm9yLiBfUmVxdWlyZXMgRG9ja2VyIEJ1aWxkeF8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcGxhdGZvcm0gc3BlY2lmaWVkICh0aGUgY3VycmVudCBtYWNoaW5lIGFyY2hpdGVjdHVyZSB3aWxsIGJlIHVzZWQpXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybT86IFBsYXRmb3JtO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRvIGNvbnRyb2wgd2hpY2ggcGFyYW1ldGVycyBhcmUgdXNlZCB0byBpbnZhbGlkYXRlIHRoZSBhc3NldCBoYXNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGhhc2ggYWxsIHBhcmFtZXRlcnNcbiAgICovXG4gIHJlYWRvbmx5IGludmFsaWRhdGlvbj86IERvY2tlckltYWdlQXNzZXRJbnZhbGlkYXRpb25PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBPdXRwdXRzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gb3V0cHV0cyBhcmUgcGFzc2VkIHRvIHRoZSBidWlsZCBjb21tYW5kIChkZWZhdWx0IG91dHB1dHMgYXJlIHVzZWQpXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8jY3VzdG9tLWJ1aWxkLW91dHB1dHNcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGRvY2tlciBpbWFnZSBhc3NldCBhbmQgaXRzIHBvdGVudGlhbCByZXZpc2lvbnMuXG4gICAqIFJlcXVpcmVkIGlmIHVzaW5nIEFwcFNjb3BlZFN0YWdpbmdTeW50aGVzaXplci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhc3NldCBuYW1lXG4gICAqL1xuICByZWFkb25seSBhc3NldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENhY2hlIGZyb20gb3B0aW9ucyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNhY2hlIGZyb20gb3B0aW9ucyBhcmUgcGFzc2VkIHRvIHRoZSBidWlsZCBjb21tYW5kXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vYnVpbGQvY2FjaGUvYmFja2VuZHMvXG4gICAqL1xuICByZWFkb25seSBjYWNoZUZyb20/OiBEb2NrZXJDYWNoZU9wdGlvbltdO1xuXG4gIC8qKlxuICAgKiBDYWNoZSB0byBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY2FjaGUgdG8gb3B0aW9ucyBhcmUgcGFzc2VkIHRvIHRoZSBidWlsZCBjb21tYW5kXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vYnVpbGQvY2FjaGUvYmFja2VuZHMvXG4gICAqL1xuICByZWFkb25seSBjYWNoZVRvPzogRG9ja2VyQ2FjaGVPcHRpb247XG5cbiAgLyoqXG4gICAqIERpc2FibGUgdGhlIGNhY2hlIGFuZCBwYXNzIGAtLW5vLWNhY2hlYCB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjYWNoZSBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBjYWNoZURpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9wcyBmb3IgRG9ja2VySW1hZ2VBc3NldHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJJbWFnZUFzc2V0UHJvcHMgZXh0ZW5kcyBEb2NrZXJJbWFnZUFzc2V0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBEb2NrZXJmaWxlIGlzIHN0b3JlZFxuICAgKlxuICAgKiBBbnkgZGlyZWN0b3J5IGluc2lkZSB3aXRoIGEgbmFtZSB0aGF0IG1hdGNoZXMgdGhlIENESyBvdXRwdXQgZm9sZGVyIChjZGsub3V0IGJ5IGRlZmF1bHQpIHdpbGwgYmUgZXhjbHVkZWQgZnJvbSB0aGUgYXNzZXRcbiAgICovXG4gIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFuIGFzc2V0IHRoYXQgcmVwcmVzZW50cyBhIERvY2tlciBpbWFnZS5cbiAqXG4gKiBUaGUgaW1hZ2Ugd2lsbCBiZSBjcmVhdGVkIGluIGJ1aWxkIHRpbWUgYW5kIHVwbG9hZGVkIHRvIGFuIEVDUiByZXBvc2l0b3J5LlxuICpcbiAqIFdBUk5JTkc6IGBEb2NrZXJBc3NldFswLTldKmAgYW5kIGBEb2NrZXJBc3NldF9JbWFnZVswLTldKmAgaWRlbnRpZmllcnMgYXJlXG4gKiB1c2VkIGludGVybmFsbHkgYnkgdGhlIFN0YWNrIEFzc2V0IE1hbmFnZXIgYW5kIHdpbGwgY2F1c2UgSWQgY29uZmxpY3RzLlxuICovXG5leHBvcnQgY2xhc3MgRG9ja2VySW1hZ2VBc3NldCBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElBc3NldCB7XG4gIC8qKlxuICAgKiBUaGUgZnVsbCBVUkkgb2YgdGhlIGltYWdlIChpbmNsdWRpbmcgYSB0YWcpLiBVc2UgdGhpcyByZWZlcmVuY2UgdG8gcHVsbFxuICAgKiB0aGUgYXNzZXQuXG4gICAqL1xuICBwdWJsaWMgaW1hZ2VVcmk6IHN0cmluZztcblxuICAvKipcbiAgICogUmVwb3NpdG9yeSB3aGVyZSB0aGUgaW1hZ2UgaXMgc3RvcmVkXG4gICAqL1xuICBwdWJsaWMgcmVwb3NpdG9yeTogZWNyLklSZXBvc2l0b3J5O1xuXG4gIC8qKlxuICAgKiBBIGhhc2ggb2YgdGhlIHNvdXJjZSBvZiB0aGlzIGFzc2V0LCB3aGljaCBpcyBhdmFpbGFibGUgYXQgY29uc3RydWN0aW9uIHRpbWUuIEFzIHRoaXMgaXMgYSBwbGFpblxuICAgKiBzdHJpbmcsIGl0IGNhbiBiZSB1c2VkIGluIGNvbnN0cnVjdCBJRHMgaW4gb3JkZXIgdG8gZW5mb3JjZSBjcmVhdGlvbiBvZiBhIG5ldyByZXNvdXJjZSB3aGVuXG4gICAqIHRoZSBjb250ZW50IGhhc2ggaGFzIGNoYW5nZWQuXG4gICAqIEBkZXByZWNhdGVkIHVzZSBhc3NldEhhc2hcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2VIYXNoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgaGFzaCBvZiB0aGlzIGFzc2V0LCB3aGljaCBpcyBhdmFpbGFibGUgYXQgY29uc3RydWN0aW9uIHRpbWUuIEFzIHRoaXMgaXMgYSBwbGFpbiBzdHJpbmcsIGl0XG4gICAqIGNhbiBiZSB1c2VkIGluIGNvbnN0cnVjdCBJRHMgaW4gb3JkZXIgdG8gZW5mb3JjZSBjcmVhdGlvbiBvZiBhIG5ldyByZXNvdXJjZSB3aGVuIHRoZSBjb250ZW50XG4gICAqIGhhc2ggaGFzIGNoYW5nZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzZXRIYXNoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWcgb2YgdGhpcyBhc3NldCB3aGVuIGl0IGlzIHVwbG9hZGVkIHRvIEVDUi4gVGhlIHRhZyBtYXkgZGlmZmVyIGZyb20gdGhlIGFzc2V0SGFzaCBpZiBhIHN0YWNrIHN5bnRoZXNpemVyIGFkZHMgYSBkb2NrZXJUYWdQcmVmaXguXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW1hZ2VUYWc6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIGFzc2V0LCByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBDbG91ZCBBc3NlbWJseVxuICAgKlxuICAgKiBJZiBhc3NldCBzdGFnaW5nIGlzIGRpc2FibGVkLCB0aGlzIHdpbGwganVzdCBiZSB0aGUgb3JpZ2luYWwgcGF0aC5cbiAgICpcbiAgICogSWYgYXNzZXQgc3RhZ2luZyBpcyBlbmFibGVkIGl0IHdpbGwgYmUgdGhlIHN0YWdlZCBwYXRoLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBhc3NldFBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIERvY2tlcmZpbGUsIHJlbGF0aXZlIHRvIHRoZSBhc3NldFBhdGhcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyZmlsZVBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFyZ3MgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyQnVpbGRBcmdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQnVpbGQgc2VjcmV0cyB0byBwYXNzIHRvIHRoZSBgZG9ja2VyIGJ1aWxkYCBjb21tYW5kLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBkb2NrZXJCdWlsZFNlY3JldHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBTU0ggYWdlbnQgc29ja2V0IG9yIGtleXMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyQnVpbGRTc2g/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPdXRwdXRzIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY2tlck91dHB1dHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGRvY2tlciBpbWFnZSBhc3NldCBhbmQgaXRzIHBvdGVudGlhbCByZXZpc2lvbnMuXG4gICAqIFJlcXVpcmVkIGlmIHVzaW5nIEFwcFNjb3BlZFN0YWdpbmdTeW50aGVzaXplci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhc3NldCBuYW1lXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGFzc2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ2FjaGUgZnJvbSBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY2tlckNhY2hlRnJvbT86IERvY2tlckNhY2hlT3B0aW9uW107XG5cbiAgLyoqXG4gICAqIENhY2hlIHRvIG9wdGlvbnMgdG8gcGFzcyB0byB0aGUgYGRvY2tlciBidWlsZGAgY29tbWFuZC5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9ja2VyQ2FjaGVUbz86IERvY2tlckNhY2hlT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHRoZSBjYWNoZSBhbmQgcGFzcyBgLS1uby1jYWNoZWAgdG8gdGhlIGBkb2NrZXIgYnVpbGRgIGNvbW1hbmQuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY2tlckNhY2hlRGlzYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEb2NrZXIgdGFyZ2V0IHRvIGJ1aWxkIHRvXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY2tlckJ1aWxkVGFyZ2V0Pzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEb2NrZXJJbWFnZUFzc2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gbm9uZSBvZiB0aGUgcHJvcGVydGllcyB1c2UgdG9rZW5zXG4gICAgdmFsaWRhdGVQcm9wcyhwcm9wcyk7XG5cbiAgICAvLyByZXNvbHZlIGZ1bGwgcGF0aFxuICAgIGNvbnN0IGRpciA9IHBhdGgucmVzb2x2ZShwcm9wcy5kaXJlY3RvcnkpO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhkaXIpKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBDYW5ub3QgZmluZCBpbWFnZSBkaXJlY3RvcnkgYXQgJHtkaXJ9YCwgdGhpcyk7XG4gICAgfVxuXG4gICAgLy8gdmFsaWRhdGUgdGhlIGRvY2tlciBmaWxlIGV4aXN0c1xuICAgIHRoaXMuZG9ja2VyZmlsZVBhdGggPSBwcm9wcy5maWxlIHx8IFwiRG9ja2VyZmlsZVwiO1xuICAgIGNvbnN0IGZpbGUgPSBwYXRoLmpvaW4oZGlyLCB0aGlzLmRvY2tlcmZpbGVQYXRoKTtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZSkpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYENhbm5vdCBmaW5kIGZpbGUgYXQgJHtmaWxlfWAsIHRoaXMpO1xuICAgIH1cblxuICAgIGxldCBpZ25vcmVNb2RlID0gcHJvcHMuaWdub3JlTW9kZSA/PyBJZ25vcmVNb2RlLkRPQ0tFUjtcblxuICAgIGxldCBleGNsdWRlOiBzdHJpbmdbXSA9IHByb3BzLmV4Y2x1ZGUgfHwgW107XG5cbiAgICBjb25zdCBpZ25vcmUgPSBwYXRoLmpvaW4oZGlyLCBcIi5kb2NrZXJpZ25vcmVcIik7XG5cbiAgICBpZiAoZnMuZXhpc3RzU3luYyhpZ25vcmUpKSB7XG4gICAgICBjb25zdCBkb2NrZXJJZ25vcmVQYXR0ZXJucyA9IGZzXG4gICAgICAgIC5yZWFkRmlsZVN5bmMoaWdub3JlKVxuICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgLmZpbHRlcigoZSkgPT4gISFlKTtcblxuICAgICAgZXhjbHVkZSA9IFtcbiAgICAgICAgLi4uZG9ja2VySWdub3JlUGF0dGVybnMsXG4gICAgICAgIC4uLmV4Y2x1ZGUsXG5cbiAgICAgICAgLy8gRW5zdXJlIC5kb2NrZXJpZ25vcmUgaXMgaW5jbHVkZWQgbm8gbWF0dGVyIHdoYXQuXG4gICAgICAgIFwiIS5kb2NrZXJpZ25vcmVcIixcbiAgICAgIF07XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIHRoZSBEb2NrZXJmaWxlIGlzIGluY2x1ZGVkIG5vIG1hdHRlciB3aGF0LlxuICAgIGV4Y2x1ZGUucHVzaChcIiFcIiArIHBhdGguYmFzZW5hbWUoZmlsZSkpO1xuICAgIC8vIEVuc3VyZSB0aGUgY2RrLm91dCBmb2xkZXIgaXMgbm90IGluY2x1ZGVkIHRvIGF2b2lkIGluZmluaXRlIGxvb3BzLlxuICAgIC8vIGNvbnN0IGNka291dCA9IFN0YWdlLm9mKHRoaXMpPy5vdXRkaXIgPz8gXCJjZGsub3V0XCI7XG4gICAgLy8gZXhjbHVkZS5wdXNoKGNka291dCk7XG4gICAgZXhjbHVkZS5wdXNoKFwiY2RrLm91dFwiKTtcblxuICAgIGlmIChwcm9wcy5yZXBvc2l0b3J5TmFtZSkge1xuICAgICAgLy8gXCJAYXdzLWNkay9hd3MtZWNyLWFzc2V0czpyZXBvc2l0b3J5TmFtZURlcHJlY2F0ZWRcIixcbiAgICAgIEFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmcoXG4gICAgICAgICdEb2NrZXJJbWFnZUFzc2V0LnJlcG9zaXRvcnlOYW1lIGlzIGRlcHJlY2F0ZWQuIE92ZXJyaWRlIFwiY29yZS5TdGFjay5hZGREb2NrZXJJbWFnZUFzc2V0XCIgdG8gY29udHJvbCBhc3NldCBsb2NhdGlvbnMnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBpbmNsdWRlIGJ1aWxkIGNvbnRleHQgaW4gXCJleHRyYVwiIHNvIGl0IHdpbGwgaW1wYWN0IHRoZSBoYXNoXG4gICAgY29uc3QgZXh0cmFIYXNoOiB7IFtmaWVsZDogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBpZiAocHJvcHMuaW52YWxpZGF0aW9uPy5leHRyYUhhc2ggIT09IGZhbHNlICYmIHByb3BzLmV4dHJhSGFzaCkge1xuICAgICAgZXh0cmFIYXNoLnVzZXIgPSBwcm9wcy5leHRyYUhhc2g7XG4gICAgfVxuICAgIGlmIChwcm9wcy5pbnZhbGlkYXRpb24/LmJ1aWxkQXJncyAhPT0gZmFsc2UgJiYgcHJvcHMuYnVpbGRBcmdzKSB7XG4gICAgICBleHRyYUhhc2guYnVpbGRBcmdzID0gcHJvcHMuYnVpbGRBcmdzO1xuICAgIH1cbiAgICBpZiAocHJvcHMuaW52YWxpZGF0aW9uPy5idWlsZFNlY3JldHMgIT09IGZhbHNlICYmIHByb3BzLmJ1aWxkU2VjcmV0cykge1xuICAgICAgZXh0cmFIYXNoLmJ1aWxkU2VjcmV0cyA9IHByb3BzLmJ1aWxkU2VjcmV0cztcbiAgICB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8uYnVpbGRTc2ggIT09IGZhbHNlICYmIHByb3BzLmJ1aWxkU3NoKSB7XG4gICAgICBleHRyYUhhc2guYnVpbGRTc2ggPSBwcm9wcy5idWlsZFNzaDtcbiAgICB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8udGFyZ2V0ICE9PSBmYWxzZSAmJiBwcm9wcy50YXJnZXQpIHtcbiAgICAgIGV4dHJhSGFzaC50YXJnZXQgPSBwcm9wcy50YXJnZXQ7XG4gICAgfVxuICAgIGlmIChwcm9wcy5pbnZhbGlkYXRpb24/LmZpbGUgIT09IGZhbHNlICYmIHByb3BzLmZpbGUpIHtcbiAgICAgIGV4dHJhSGFzaC5maWxlID0gcHJvcHMuZmlsZTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8ucmVwb3NpdG9yeU5hbWUgIT09IGZhbHNlICYmIHByb3BzLnJlcG9zaXRvcnlOYW1lKSB7XG4gICAgICBleHRyYUhhc2gucmVwb3NpdG9yeU5hbWUgPSBwcm9wcy5yZXBvc2l0b3J5TmFtZTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8ubmV0d29ya01vZGUgIT09IGZhbHNlICYmIHByb3BzLm5ldHdvcmtNb2RlKSB7XG4gICAgICBleHRyYUhhc2gubmV0d29ya01vZGUgPSBwcm9wcy5uZXR3b3JrTW9kZTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8ucGxhdGZvcm0gIT09IGZhbHNlICYmIHByb3BzLnBsYXRmb3JtKSB7XG4gICAgICBleHRyYUhhc2gucGxhdGZvcm0gPSBwcm9wcy5wbGF0Zm9ybTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmludmFsaWRhdGlvbj8ub3V0cHV0cyAhPT0gZmFsc2UgJiYgcHJvcHMub3V0cHV0cykge1xuICAgICAgZXh0cmFIYXNoLm91dHB1dHMgPSBwcm9wcy5vdXRwdXRzO1xuICAgIH1cblxuICAgIC8vIGFkZCBcInNhbHRcIiB0byB0aGUgaGFzaCBpbiBvcmRlciB0byBpbnZhbGlkYXRlIHRoZSBpbWFnZSBpbiB0aGUgdXBncmFkZSB0b1xuICAgIC8vIDEuMjEuMCB3aGljaCByZW1vdmVzIHRoZSBBZG9wdGVkUmVwb3NpdG9yeSByZXNvdXJjZSAoYW5kIHdpbGwgY2F1c2UgdGhlXG4gICAgLy8gZGVsZXRpb24gb2YgdGhlIEVDUiByZXBvc2l0b3J5IHRoZSBhcHAgdXNlZCkuXG4gICAgZXh0cmFIYXNoLnZlcnNpb24gPSBcIjEuMjEuMFwiO1xuXG4gICAgY29uc3Qgc3RhZ2luZyA9IG5ldyBBc3NldFN0YWdpbmcodGhpcywgXCJTdGFnaW5nXCIsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZm9sbG93OiBwcm9wcy5mb2xsb3dTeW1saW5rcyxcbiAgICAgIGV4Y2x1ZGUsXG4gICAgICBpZ25vcmVNb2RlLFxuICAgICAgc291cmNlUGF0aDogZGlyLFxuICAgICAgZXh0cmFIYXNoOlxuICAgICAgICBPYmplY3Qua2V5cyhleHRyYUhhc2gpLmxlbmd0aCA9PT0gMFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShleHRyYUhhc2gpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hc3NldEhhc2ggPSBzdGFnaW5nLmFzc2V0SGFzaDtcbiAgICB0aGlzLnNvdXJjZUhhc2ggPSB0aGlzLmFzc2V0SGFzaDtcblxuICAgIGNvbnN0IHN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcyk7XG4gICAgdGhpcy5hc3NldFBhdGggPSBzdGFnaW5nLnJlbGF0aXZlU3RhZ2VkUGF0aChzdGFjayk7XG4gICAgdGhpcy5hc3NldE5hbWUgPSBwcm9wcy5hc3NldE5hbWU7XG4gICAgdGhpcy5kb2NrZXJCdWlsZEFyZ3MgPSBwcm9wcy5idWlsZEFyZ3M7XG4gICAgdGhpcy5kb2NrZXJCdWlsZFNlY3JldHMgPSBwcm9wcy5idWlsZFNlY3JldHM7XG4gICAgdGhpcy5kb2NrZXJCdWlsZFNzaCA9IHByb3BzLmJ1aWxkU3NoO1xuICAgIHRoaXMuZG9ja2VyQnVpbGRUYXJnZXQgPSBwcm9wcy50YXJnZXQ7XG4gICAgdGhpcy5kb2NrZXJPdXRwdXRzID0gcHJvcHMub3V0cHV0cztcbiAgICB0aGlzLmRvY2tlckNhY2hlRnJvbSA9IHByb3BzLmNhY2hlRnJvbTtcbiAgICB0aGlzLmRvY2tlckNhY2hlVG8gPSBwcm9wcy5jYWNoZVRvO1xuICAgIHRoaXMuZG9ja2VyQ2FjaGVEaXNhYmxlZCA9IHByb3BzLmNhY2hlRGlzYWJsZWQ7XG5cbiAgICBjb25zdCBsb2NhdGlvbiA9IHN0YWNrLmFkZERvY2tlckltYWdlQXNzZXQoe1xuICAgICAgZGlyZWN0b3J5TmFtZTogdGhpcy5hc3NldFBhdGgsXG4gICAgICBhc3NldE5hbWU6IHRoaXMuYXNzZXROYW1lLFxuICAgICAgZG9ja2VyQnVpbGRBcmdzOiB0aGlzLmRvY2tlckJ1aWxkQXJncyxcbiAgICAgIGRvY2tlckJ1aWxkU2VjcmV0czogdGhpcy5kb2NrZXJCdWlsZFNlY3JldHMsXG4gICAgICBkb2NrZXJCdWlsZFNzaDogdGhpcy5kb2NrZXJCdWlsZFNzaCxcbiAgICAgIGRvY2tlckJ1aWxkVGFyZ2V0OiB0aGlzLmRvY2tlckJ1aWxkVGFyZ2V0LFxuICAgICAgZG9ja2VyRmlsZTogcHJvcHMuZmlsZSxcbiAgICAgIHNvdXJjZUhhc2g6IHN0YWdpbmcuYXNzZXRIYXNoLFxuICAgICAgbmV0d29ya01vZGU6IHByb3BzLm5ldHdvcmtNb2RlPy5tb2RlLFxuICAgICAgcGxhdGZvcm06IHByb3BzLnBsYXRmb3JtPy5wbGF0Zm9ybSxcbiAgICAgIGRvY2tlck91dHB1dHM6IHRoaXMuZG9ja2VyT3V0cHV0cyxcbiAgICAgIGRvY2tlckNhY2hlRnJvbTogdGhpcy5kb2NrZXJDYWNoZUZyb20sXG4gICAgICBkb2NrZXJDYWNoZVRvOiB0aGlzLmRvY2tlckNhY2hlVG8sXG4gICAgICBkb2NrZXJDYWNoZURpc2FibGVkOiB0aGlzLmRvY2tlckNhY2hlRGlzYWJsZWQsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlcG9zaXRvcnkgPSBlY3IuUmVwb3NpdG9yeS5mcm9tUmVwb3NpdG9yeU5hbWUoXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXBvc2l0b3J5XCIsXG4gICAgICBsb2NhdGlvbi5yZXBvc2l0b3J5TmFtZSxcbiAgICApO1xuICAgIHRoaXMuaW1hZ2VVcmkgPSBsb2NhdGlvbi5pbWFnZVVyaTtcbiAgICB0aGlzLmltYWdlVGFnID0gbG9jYXRpb24uaW1hZ2VUYWcgPz8gdGhpcy5hc3NldEhhc2g7XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9wcyhwcm9wczogRG9ja2VySW1hZ2VBc3NldFByb3BzKSB7XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzKSkge1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgdXNlIFRva2VuIGFzIHZhbHVlIG9mICcke2tleX0nOiB0aGlzIHZhbHVlIGlzIHVzZWQgYmVmb3JlIGRlcGxveW1lbnQgc3RhcnRzYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVCdWlsZEFyZ3MocHJvcHMuYnVpbGRBcmdzKTtcbiAgdmFsaWRhdGVCdWlsZFNlY3JldHMocHJvcHMuYnVpbGRTZWNyZXRzKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVCdWlsZFByb3BzKFxuICBidWlsZFByb3BOYW1lOiBzdHJpbmcsXG4gIGJ1aWxkUHJvcHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuKSB7XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGJ1aWxkUHJvcHMgfHwge30pKSB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChrZXkpIHx8IFRva2VuLmlzVW5yZXNvbHZlZCh2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYENhbm5vdCB1c2UgdG9rZW5zIGluIGtleXMgb3IgdmFsdWVzIG9mIFwiJHtidWlsZFByb3BOYW1lfVwiIHNpbmNlIHRoZXkgYXJlIG5lZWRlZCBiZWZvcmUgZGVwbG95bWVudGAsXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUJ1aWxkQXJncyhidWlsZEFyZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSB7XG4gIHZhbGlkYXRlQnVpbGRQcm9wcyhcImJ1aWxkQXJnc1wiLCBidWlsZEFyZ3MpO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUJ1aWxkU2VjcmV0cyhidWlsZFNlY3JldHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSB7XG4gIHZhbGlkYXRlQnVpbGRQcm9wcyhcImJ1aWxkU2VjcmV0c1wiLCBidWlsZFNlY3JldHMpO1xufVxuIl19
|