terraconstructs 0.1.7 → 0.1.9

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.
Files changed (297) hide show
  1. package/.jsii +1602 -1223
  2. package/go.mod +83 -77
  3. package/go.sum +175 -159
  4. package/lib/asset-staging.js +1 -1
  5. package/lib/aws/arn.js +1 -1
  6. package/lib/aws/aws-asset-manager.js +1 -1
  7. package/lib/aws/aws-construct.js +1 -1
  8. package/lib/aws/aws-stack.js +1 -1
  9. package/lib/aws/aws-tags.js +2 -2
  10. package/lib/aws/cloudwatch/actions/appscaling.js +1 -1
  11. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  12. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  13. package/lib/aws/cloudwatch/actions/sns.js +1 -1
  14. package/lib/aws/cloudwatch/actions/ssm.js +2 -2
  15. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  16. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  17. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  18. package/lib/aws/cloudwatch/alarm.js +9 -8
  19. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  20. package/lib/aws/cloudwatch/dashboard.js +1 -1
  21. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  22. package/lib/aws/cloudwatch/graph.js +8 -8
  23. package/lib/aws/cloudwatch/layout.js +3 -3
  24. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  25. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  26. package/lib/aws/cloudwatch/log-group.js +1 -1
  27. package/lib/aws/cloudwatch/log-query.js +1 -1
  28. package/lib/aws/cloudwatch/log-stream.js +1 -1
  29. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  30. package/lib/aws/cloudwatch/metric.js +2 -2
  31. package/lib/aws/cloudwatch/pattern.js +3 -3
  32. package/lib/aws/cloudwatch/policy.js +1 -1
  33. package/lib/aws/cloudwatch/query-definition.js +2 -2
  34. package/lib/aws/cloudwatch/stats.js +1 -1
  35. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  36. package/lib/aws/cloudwatch/text.js +1 -1
  37. package/lib/aws/cloudwatch/variable.js +3 -3
  38. package/lib/aws/cloudwatch/widget.js +1 -1
  39. package/lib/aws/compute/access-log.js +9 -7
  40. package/lib/aws/compute/activity.js +1 -1
  41. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  42. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  43. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  44. package/lib/aws/compute/alb/application-listener.js +1 -1
  45. package/lib/aws/compute/alb/application-load-balancer.js +1 -1
  46. package/lib/aws/compute/alb/application-target-group.js +1 -1
  47. package/lib/aws/compute/alb/conditions.js +1 -1
  48. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  49. package/lib/aws/compute/alb/trust-store.js +1 -1
  50. package/lib/aws/compute/api-definition.d.ts +1 -1
  51. package/lib/aws/compute/api-definition.js +11 -16
  52. package/lib/aws/compute/api-key.js +7 -8
  53. package/lib/aws/compute/apigateway-util.js +10 -21
  54. package/lib/aws/compute/architecture.js +1 -1
  55. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  56. package/lib/aws/compute/authorizer.js +1 -1
  57. package/lib/aws/compute/authorizers/identity-source.js +4 -5
  58. package/lib/aws/compute/authorizers/lambda.js +8 -11
  59. package/lib/aws/compute/autoscaling-common/interval-utils.js +7 -11
  60. package/lib/aws/compute/base-path-mapping.js +6 -8
  61. package/lib/aws/compute/base-scalable-attribute.js +1 -1
  62. package/lib/aws/compute/bastion-host.js +1 -1
  63. package/lib/aws/compute/chain.js +1 -1
  64. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  65. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  66. package/lib/aws/compute/client-vpn-route.js +2 -2
  67. package/lib/aws/compute/code.js +23 -40
  68. package/lib/aws/compute/condition.js +1 -1
  69. package/lib/aws/compute/connections.js +1 -1
  70. package/lib/aws/compute/cors.js +1 -1
  71. package/lib/aws/compute/deployment.js +1 -1
  72. package/lib/aws/compute/domain-name.js +9 -8
  73. package/lib/aws/compute/event-invoke-config.js +1 -1
  74. package/lib/aws/compute/event-source-filter.js +2 -2
  75. package/lib/aws/compute/event-source-mapping.js +1 -1
  76. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  77. package/lib/aws/compute/event-sources/s3.js +1 -1
  78. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  79. package/lib/aws/compute/event-sources/sqs.js +1 -1
  80. package/lib/aws/compute/fields.js +4 -4
  81. package/lib/aws/compute/function-alias.js +1 -1
  82. package/lib/aws/compute/function-base.js +12 -12
  83. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  84. package/lib/aws/compute/function-destinations/function.js +1 -1
  85. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  86. package/lib/aws/compute/function-nodejs/function.js +1 -1
  87. package/lib/aws/compute/function-url.js +1 -1
  88. package/lib/aws/compute/function-vpc-config.generated.d.ts +3 -3
  89. package/lib/aws/compute/function-vpc-config.generated.js +1 -1
  90. package/lib/aws/compute/function.js +4 -3
  91. package/lib/aws/compute/gateway-response.js +2 -2
  92. package/lib/aws/compute/handler.js +1 -1
  93. package/lib/aws/compute/instance-types.js +1 -1
  94. package/lib/aws/compute/instance.js +1 -1
  95. package/lib/aws/compute/integration.js +10 -16
  96. package/lib/aws/compute/integrations/aws.js +4 -4
  97. package/lib/aws/compute/integrations/http.js +1 -1
  98. package/lib/aws/compute/integrations/lambda.js +1 -1
  99. package/lib/aws/compute/integrations/mock.js +1 -1
  100. package/lib/aws/compute/integrations/stepfunctions.js +4 -5
  101. package/lib/aws/compute/ip-addresses.js +2 -2
  102. package/lib/aws/compute/ipam.js +1 -1
  103. package/lib/aws/compute/key-pair.js +1 -1
  104. package/lib/aws/compute/lambda-api.js +7 -10
  105. package/lib/aws/compute/launch-template.js +2 -2
  106. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  107. package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
  108. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  109. package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +37 -31
  110. package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +1 -1
  111. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +10 -4
  112. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +1 -1
  113. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  114. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  115. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  116. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  117. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  118. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  119. package/lib/aws/compute/load-balancer.js +3 -3
  120. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  121. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  122. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  123. package/lib/aws/compute/machine-image/common.js +1 -1
  124. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  125. package/lib/aws/compute/method.js +1 -1
  126. package/lib/aws/compute/model.js +3 -3
  127. package/lib/aws/compute/nat.js +5 -5
  128. package/lib/aws/compute/network-acl-types.js +2 -2
  129. package/lib/aws/compute/network-acl.js +3 -3
  130. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  131. package/lib/aws/compute/nlb/network-listener.js +1 -1
  132. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  133. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  134. package/lib/aws/compute/peer.js +1 -1
  135. package/lib/aws/compute/placement-group.js +1 -1
  136. package/lib/aws/compute/port.js +1 -1
  137. package/lib/aws/compute/prefix-list.js +1 -1
  138. package/lib/aws/compute/requestvalidator.js +1 -1
  139. package/lib/aws/compute/resource.js +3 -3
  140. package/lib/aws/compute/restapi.js +9 -10
  141. package/lib/aws/compute/route.js +10 -10
  142. package/lib/aws/compute/runtime.d.ts +8 -0
  143. package/lib/aws/compute/runtime.js +20 -7
  144. package/lib/aws/compute/scalable-target.js +1 -1
  145. package/lib/aws/compute/schedule.js +6 -12
  146. package/lib/aws/compute/security-group.js +1 -1
  147. package/lib/aws/compute/stage.js +8 -11
  148. package/lib/aws/compute/state-graph.js +1 -1
  149. package/lib/aws/compute/state-machine-fragment.js +1 -1
  150. package/lib/aws/compute/state-machine.js +4 -4
  151. package/lib/aws/compute/states/choice.js +1 -1
  152. package/lib/aws/compute/states/custom-state.js +1 -1
  153. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  154. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  155. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  156. package/lib/aws/compute/states/distributed-map.js +1 -1
  157. package/lib/aws/compute/states/fail.js +1 -1
  158. package/lib/aws/compute/states/map-base.js +1 -1
  159. package/lib/aws/compute/states/map.js +1 -1
  160. package/lib/aws/compute/states/parallel.js +1 -1
  161. package/lib/aws/compute/states/pass.js +2 -2
  162. package/lib/aws/compute/states/state.js +1 -1
  163. package/lib/aws/compute/states/succeed.js +1 -1
  164. package/lib/aws/compute/states/task-base.js +2 -2
  165. package/lib/aws/compute/states/task.js +1 -1
  166. package/lib/aws/compute/states/wait.js +2 -2
  167. package/lib/aws/compute/step-scaling-action.js +1 -1
  168. package/lib/aws/compute/step-scaling-policy.js +9 -14
  169. package/lib/aws/compute/stepfunctions-api.js +5 -6
  170. package/lib/aws/compute/subnet-v2.js +2 -2
  171. package/lib/aws/compute/subnet.js +1 -1
  172. package/lib/aws/compute/target-tracking-scaling-policy.js +9 -12
  173. package/lib/aws/compute/task-credentials.js +1 -1
  174. package/lib/aws/compute/task-input.js +1 -1
  175. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  176. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  177. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  178. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  179. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  180. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  181. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  182. package/lib/aws/compute/types.js +1 -1
  183. package/lib/aws/compute/usage-plan.js +1 -1
  184. package/lib/aws/compute/user-data.js +3 -3
  185. package/lib/aws/compute/volume.js +2 -2
  186. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  187. package/lib/aws/compute/vpc-endpoint.js +6 -6
  188. package/lib/aws/compute/vpc-flow-logs.js +8 -6
  189. package/lib/aws/compute/vpc-link.js +1 -1
  190. package/lib/aws/compute/vpc-v2-base.js +1 -1
  191. package/lib/aws/compute/vpc-v2.js +2 -2
  192. package/lib/aws/compute/vpc.js +4 -4
  193. package/lib/aws/compute/vpn.js +3 -3
  194. package/lib/aws/edge/certificate.js +1 -1
  195. package/lib/aws/edge/distribution.js +3 -3
  196. package/lib/aws/edge/dns-alias-record-targets.js +6 -6
  197. package/lib/aws/edge/dns-record.js +13 -13
  198. package/lib/aws/edge/dns-zone.d.ts +1 -1
  199. package/lib/aws/edge/dns-zone.js +8 -7
  200. package/lib/aws/edge/function.js +2 -2
  201. package/lib/aws/edge/key-value-store.js +4 -4
  202. package/lib/aws/edge/origin.js +3 -3
  203. package/lib/aws/edge/response-headers-policy.js +1 -1
  204. package/lib/aws/encryption/alias.js +1 -1
  205. package/lib/aws/encryption/key.js +1 -1
  206. package/lib/aws/encryption/via-service-principal.js +1 -1
  207. package/lib/aws/iam/grant.js +2 -2
  208. package/lib/aws/iam/group.js +1 -1
  209. package/lib/aws/iam/instance-profile.js +1 -1
  210. package/lib/aws/iam/managed-policy.js +1 -1
  211. package/lib/aws/iam/oidc-provider.js +1 -1
  212. package/lib/aws/iam/policy-document-config.generated.d.ts +8 -8
  213. package/lib/aws/iam/policy-document-config.generated.js +1 -1
  214. package/lib/aws/iam/policy-document.js +1 -1
  215. package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
  216. package/lib/aws/iam/policy-statement-props.generated.js +1 -1
  217. package/lib/aws/iam/policy-statement.js +1 -1
  218. package/lib/aws/iam/policy.js +1 -1
  219. package/lib/aws/iam/principals.js +20 -20
  220. package/lib/aws/iam/role.js +1 -1
  221. package/lib/aws/iam/saml-provider.js +2 -2
  222. package/lib/aws/iam/unknown-principal.js +1 -1
  223. package/lib/aws/iam/user.js +1 -1
  224. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  225. package/lib/aws/network/subnet-group.js +3 -3
  226. package/lib/aws/network/subnet.js +4 -4
  227. package/lib/aws/notify/archive.js +1 -1
  228. package/lib/aws/notify/connection.js +3 -3
  229. package/lib/aws/notify/event-bus.d.ts +19 -0
  230. package/lib/aws/notify/event-bus.js +22 -26
  231. package/lib/aws/notify/event-pattern.js +1 -1
  232. package/lib/aws/notify/input.js +2 -2
  233. package/lib/aws/notify/kinesis-stream.js +1 -1
  234. package/lib/aws/notify/notification-rule.js +1 -1
  235. package/lib/aws/notify/policy.js +1 -1
  236. package/lib/aws/notify/queue-config.generated.d.ts +18 -12
  237. package/lib/aws/notify/queue-config.generated.js +1 -1
  238. package/lib/aws/notify/queue-policy.js +1 -1
  239. package/lib/aws/notify/queue.js +1 -1
  240. package/lib/aws/notify/resource-policy.js +1 -1
  241. package/lib/aws/notify/rule.js +1 -1
  242. package/lib/aws/notify/schedule.js +1 -1
  243. package/lib/aws/notify/subscription-filter.js +7 -8
  244. package/lib/aws/notify/subscription.js +23 -25
  245. package/lib/aws/notify/subscriptions/email.js +1 -1
  246. package/lib/aws/notify/subscriptions/lambda.js +1 -1
  247. package/lib/aws/notify/subscriptions/sms.js +1 -1
  248. package/lib/aws/notify/subscriptions/sqs.js +1 -1
  249. package/lib/aws/notify/subscriptions/url.js +1 -1
  250. package/lib/aws/notify/targets/event-bus.js +1 -1
  251. package/lib/aws/notify/targets/function.js +1 -1
  252. package/lib/aws/notify/targets/log-group.js +2 -2
  253. package/lib/aws/notify/targets/sqs.js +1 -1
  254. package/lib/aws/notify/targets/state-machine.js +1 -1
  255. package/lib/aws/notify/topic-base.js +4 -4
  256. package/lib/aws/notify/topic.js +1 -1
  257. package/lib/aws/provider-config.generated.d.ts +41 -33
  258. package/lib/aws/provider-config.generated.js +1 -1
  259. package/lib/aws/storage/assets/image-asset.js +8 -12
  260. package/lib/aws/storage/assets/s3.js +4 -4
  261. package/lib/aws/storage/auth-token.js +2 -2
  262. package/lib/aws/storage/billing.js +1 -1
  263. package/lib/aws/storage/bucket-notifications.js +1 -1
  264. package/lib/aws/storage/bucket-policy.js +1 -1
  265. package/lib/aws/storage/bucket-source.js +1 -1
  266. package/lib/aws/storage/bucket.js +2 -2
  267. package/lib/aws/storage/capacity.js +1 -1
  268. package/lib/aws/storage/cors-config.generated.d.ts +9 -3
  269. package/lib/aws/storage/cors-config.generated.js +1 -1
  270. package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
  271. package/lib/aws/storage/cors-rule-config.generated.js +1 -1
  272. package/lib/aws/storage/ecr-repository.js +19 -32
  273. package/lib/aws/storage/encryption.js +1 -1
  274. package/lib/aws/storage/lifecycle-config.generated.d.ts +7 -7
  275. package/lib/aws/storage/lifecycle-config.generated.js +1 -1
  276. package/lib/aws/storage/notification-targets/function.js +1 -1
  277. package/lib/aws/storage/notification-targets/queue.js +1 -1
  278. package/lib/aws/storage/origin-access-identity.js +1 -1
  279. package/lib/aws/storage/parameter.js +2 -2
  280. package/lib/aws/storage/table.js +50 -101
  281. package/lib/aws/storage/website-config.generated.d.ts +11 -5
  282. package/lib/aws/storage/website-config.generated.js +1 -1
  283. package/lib/bundling.js +7 -6
  284. package/lib/construct-base.js +2 -2
  285. package/lib/duration.js +1 -1
  286. package/lib/errors.js +5 -3
  287. package/lib/expiration.js +1 -1
  288. package/lib/fs/ignore.js +4 -4
  289. package/lib/fs/index.js +1 -1
  290. package/lib/index.d.ts +1 -0
  291. package/lib/index.js +2 -1
  292. package/lib/private/asset-staging.js +3 -2
  293. package/lib/size.js +1 -1
  294. package/lib/stack-base.js +1 -1
  295. package/lib/terra-func.js +1 -1
  296. package/lib/time-zone.js +1 -1
  297. package/package.json +3 -3
@@ -8,6 +8,7 @@ const cdktf_1 = require("cdktf");
8
8
  const lambda = require("..");
9
9
  const duration_1 = require("../../../duration");
10
10
  // import { Fn } from "../../../terra-func";
11
+ const errors_1 = require("../../../errors");
11
12
  const arn_1 = require("../../arn");
12
13
  const iam = require("../../iam");
13
14
  const authorizer_1 = require("../authorizer");
@@ -17,8 +18,7 @@ class LambdaAuthorizer extends authorizer_1.Authorizer {
17
18
  this.handler = props.handler;
18
19
  this.role = props.assumeRole;
19
20
  if (props.resultsCacheTtl && props.resultsCacheTtl.toSeconds() > 3600) {
20
- // TODO: Use ValidationError from core/lib/errors
21
- throw new Error(`Lambda authorizer property 'resultsCacheTtl' must not be greater than 3600 seconds (1 hour). (${scope.node.path})`);
21
+ throw new errors_1.ValidationError(`Lambda authorizer property 'resultsCacheTtl' must not be greater than 3600 seconds (1 hour). (${scope.node.path})`, scope);
22
22
  }
23
23
  }
24
24
  /**
@@ -27,8 +27,7 @@ class LambdaAuthorizer extends authorizer_1.Authorizer {
27
27
  */
28
28
  _attachToApi(restApi) {
29
29
  if (this.restApiId && this.restApiId !== restApi.restApiId) {
30
- // TODO: Use ValidationError from core/lib/errors
31
- throw new Error(`Cannot attach authorizer to two different rest APIs. (${this.node.path})`);
30
+ throw new errors_1.ValidationError(`Cannot attach authorizer to two different rest APIs. (${this.node.path})`, this);
32
31
  }
33
32
  this.restApiId = restApi.restApiId;
34
33
  const deployment = restApi.latestDeployment;
@@ -95,8 +94,7 @@ class LambdaAuthorizer extends authorizer_1.Authorizer {
95
94
  return cdktf_1.Lazy.stringValue({
96
95
  produce: () => {
97
96
  if (!this.restApiId) {
98
- // TODO: Use UnscopedValidationError from core/lib/errors
99
- throw new Error(`Authorizer (${this.node.path}) must be attached to a RestApi`);
97
+ throw new errors_1.UnscopedValidationError(`Authorizer (${this.node.path}) must be attached to a RestApi`);
100
98
  }
101
99
  return this.restApiId;
102
100
  },
@@ -143,7 +141,7 @@ class TokenAuthorizer extends LambdaAuthorizer {
143
141
  }
144
142
  exports.TokenAuthorizer = TokenAuthorizer;
145
143
  _a = JSII_RTTI_SYMBOL_1;
146
- TokenAuthorizer[_a] = { fqn: "terraconstructs.aws.compute.TokenAuthorizer", version: "0.1.7" };
144
+ TokenAuthorizer[_a] = { fqn: "terraconstructs.aws.compute.TokenAuthorizer", version: "0.1.9" };
147
145
  /**
148
146
  * Request-based lambda authorizer that recognizes the caller's identity via request parameters,
149
147
  * such as headers, paths, query strings, stage variables, or context variables.
@@ -157,8 +155,7 @@ class RequestAuthorizer extends LambdaAuthorizer {
157
155
  if ((props.resultsCacheTtl === undefined ||
158
156
  props.resultsCacheTtl.toSeconds() !== 0) &&
159
157
  props.identitySources.length === 0) {
160
- // TODO: Use ValidationError from core/lib/errors
161
- throw new Error("At least one Identity Source is required for a REQUEST-based Lambda authorizer if caching is enabled.");
158
+ throw new errors_1.ValidationError("At least one Identity Source is required for a REQUEST-based Lambda authorizer if caching is enabled.", scope);
162
159
  }
163
160
  const restApiId = this.lazyRestApiId();
164
161
  const authorizerName = props.authorizerName ?? this.stack.uniqueResourceName(this);
@@ -192,7 +189,7 @@ class RequestAuthorizer extends LambdaAuthorizer {
192
189
  }
193
190
  exports.RequestAuthorizer = RequestAuthorizer;
194
191
  _b = JSII_RTTI_SYMBOL_1;
195
- RequestAuthorizer[_b] = { fqn: "terraconstructs.aws.compute.RequestAuthorizer", version: "0.1.7" };
192
+ RequestAuthorizer[_b] = { fqn: "terraconstructs.aws.compute.RequestAuthorizer", version: "0.1.9" };
196
193
  /**
197
194
  * constructs the authorizerURIArn.
198
195
  */
@@ -205,4 +202,4 @@ function lambdaAuthorizerArn(handler) {
205
202
  // );
206
203
  // return `arn:${partition}:apigateway:${region}:lambda:path/2015-03-31/functions/${handler.functionArn}/invocations`;
207
204
  }
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2F1dGhvcml6ZXJzL2xhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQUk2QjtBQUM3QixpQ0FBNkI7QUFFN0IsNkJBQTZCO0FBQzdCLGdEQUE2QztBQUM3Qyw0Q0FBNEM7QUFDNUMsbUNBQXNDO0FBRXRDLGlDQUFpQztBQUNqQyw4Q0FBd0Q7QUFvQ3hELE1BQWUsZ0JBQWlCLFNBQVEsdUJBQVU7SUF5QmhELFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQTRCO1FBRTVCLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFFN0IsSUFBSSxLQUFLLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7WUFDdEUsaURBQWlEO1lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQ2IsaUdBQWlHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQ3BILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFlBQVksQ0FBQyxPQUFpQjtRQUNuQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDM0QsaURBQWlEO1lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQ2IseURBQXlELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQzNFLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ25D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LEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDNUQsQ0FBQyxDQUFDLFNBQVM7U0FDaEIsQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxtQ0FBb0IsQ0FBQyxvQkFBb0IsQ0FDM0QsSUFBSSxFQUNKLFVBQVUsRUFDVixJQUFJLENBQUMsZUFBZSxDQUNyQixDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ3hDLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFFBQVEsRUFBRSxTQUFTLEVBQUUsdUJBQXVCO1lBQzVDLFlBQVksRUFBRSxlQUFlLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDaEQsU0FBUyxFQUFFLGVBQVMsQ0FBQyxtQkFBbUI7U0FDekMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU87WUFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQ2xDLENBQUM7SUFDSixDQUFDOztBQTFESCw4Q0EyREM7OztBQUVEOztHQUVHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxPQUF5QjtJQUNwRCxPQUFPLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUVqQyxpR0FBaUc7SUFDakcsMkNBQTJDO0lBQzNDLHlCQUF5QjtJQUN6QixtQ0FBbUM7SUFDbkMsS0FBSztJQUNMLHNIQUFzSDtBQUN4SCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXBpR2F0ZXdheUF1dGhvcml6ZXIsXG4gIGxhbWJkYUZ1bmN0aW9uLFxuICBsYW1iZGFQZXJtaXNzaW9uLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgTGF6eSB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2R1cmF0aW9uXCI7XG4vLyBpbXBvcnQgeyBGbiB9IGZyb20gXCIuLi8uLi8uLi90ZXJyYS1mdW5jXCI7XG5pbXBvcnQgeyBBcm5Gb3JtYXQgfSBmcm9tIFwiLi4vLi4vYXJuXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi8uLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uLy4uL2lhbVwiO1xuaW1wb3J0IHsgQXV0aG9yaXplciwgSUF1dGhvcml6ZXIgfSBmcm9tIFwiLi4vYXV0aG9yaXplclwiO1xuaW1wb3J0IHsgSVJlc3RBcGkgfSBmcm9tIFwiLi4vcmVzdGFwaVwiO1xuXG4vKipcbiAqIEJhc2UgcHJvcGVydGllcyBmb3IgYWxsIGxhbWJkYSBhdXRob3JpemVyc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUF1dGhvcml6ZXJQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIGh1bWFuIGZyaWVuZGx5IG5hbWUgZm9yIHRoZSBhdXRob3JpemVyLiBOb3RlIHRoYXQsIHRoaXMgaXMgbm90IHRoZSBwcmltYXJ5IGlkZW50aWZpZXIgb2YgdGhlIGF1dGhvcml6ZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIHVuaXF1ZSBjb25zdHJ1Y3QgSUQgKGZyaWVuZGx5TmFtZSlcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaGFuZGxlciBmb3IgdGhlIGF1dGhvcml6ZXIgbGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFuZGxlcjogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogSG93IGxvbmcgQVBJR2F0ZXdheSBzaG91bGQgY2FjaGUgdGhlIHJlc3VsdHMuIE1heCAxIGhvdXIuXG4gICAqIERpc2FibGUgY2FjaGluZyBieSBzZXR0aW5nIHRoaXMgdG8gMC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEdXJhdGlvbi5taW51dGVzKDUpXG4gICAqL1xuICByZWFkb25seSByZXN1bHRzQ2FjaGVUdGw/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgSUFNIHJvbGUgZm9yIEFQSUdhdGV3YXkgdG8gYXNzdW1lIGJlZm9yZSBjYWxsaW5nIHRoZSBMYW1iZGEtYmFzZWQgYXV0aG9yaXplci4gVGhlIElBTSByb2xlIG11c3QgYmVcbiAgICogYXNzdW1hYmxlIGJ5ICdhcGlnYXRld2F5LmFtYXpvbmF3cy5jb20nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgcmVzb3VyY2UgcG9saWN5IGlzIGFkZGVkIHRvIHRoZSBMYW1iZGEgZnVuY3Rpb24gYWxsb3dpbmcgYXBpZ2F0ZXdheS5hbWF6b25hd3MuY29tIHRvIGludm9rZSB0aGUgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlPzogaWFtLklSb2xlO1xufVxuXG5hYnN0cmFjdCBjbGFzcyBMYW1iZGFBdXRob3JpemVyIGV4dGVuZHMgQXV0aG9yaXplciBpbXBsZW1lbnRzIElBdXRob3JpemVyIHtcbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgYXV0aG9yaXplci5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGF1dGhvcml6ZXJJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBhdXRob3JpemVyIHRvIGJlIHVzZWQgaW4gcGVybWlzc2lvbiBwb2xpY2llcywgc3VjaCBhcyBJQU0gYW5kIHJlc291cmNlLWJhc2VkIGdyYW50cy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhdXRob3JpemVyQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gaGFuZGxlciB0aGF0IHRoaXMgYXV0aG9yaXplciB1c2VzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhbmRsZXI6IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSB0aGF0IHRoZSBBUEkgR2F0ZXdheSBzZXJ2aWNlIGFzc3VtZXMgd2hpbGUgaW52b2tpbmcgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIHByb3RlY3RlZCByZXN0QXBpSWQ/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBhdXRob3JpemVyUHJvcHM6IGFwaUdhdGV3YXlBdXRob3JpemVyLkFwaUdhdGV3YXlBdXRob3JpemVyQ29uZmlnO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IExhbWJkYUF1dGhvcml6ZXJQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLmhhbmRsZXIgPSBwcm9wcy5oYW5kbGVyO1xuICAgIHRoaXMucm9sZSA9IHByb3BzLmFzc3VtZVJvbGU7XG5cbiAgICBpZiAocHJvcHMucmVzdWx0c0NhY2hlVHRsICYmIHByb3BzLnJlc3VsdHNDYWNoZVR0bC50b1NlY29uZHMoKSA+IDM2MDApIHtcbiAgICAgIC8vIFRPRE86IFVzZSBWYWxpZGF0aW9uRXJyb3IgZnJvbSBjb3JlL2xpYi9lcnJvcnNcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYExhbWJkYSBhdXRob3JpemVyIHByb3BlcnR5ICdyZXN1bHRzQ2FjaGVUdGwnIG11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiAzNjAwIHNlY29uZHMgKDEgaG91cikuICgke3Njb3BlLm5vZGUucGF0aH0pYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIHRoaXMgYXV0aG9yaXplciB0byBhIHNwZWNpZmljIFJFU1QgQVBJLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfYXR0YWNoVG9BcGkocmVzdEFwaTogSVJlc3RBcGkpIHtcbiAgICBpZiAodGhpcy5yZXN0QXBpSWQgJiYgdGhpcy5yZXN0QXBpSWQgIT09IHJlc3RBcGkucmVzdEFwaUlkKSB7XG4gICAgICAvLyBUT0RPOiBVc2UgVmFsaWRhdGlvbkVycm9yIGZyb20gY29yZS9saWIvZXJyb3JzXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgYXR0YWNoIGF1dGhvcml6ZXIgdG8gdHdvIGRpZmZlcmVudCByZXN0IEFQSXMuICgke3RoaXMubm9kZS5wYXRofSlgLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5yZXN0QXBpSWQgPSByZXN0QXBpLnJlc3RBcGlJZDtcbiAgICBjb25zdCBkZXBsb3ltZW50ID0gcmVzdEFwaS5sYXRlc3REZXBsb3ltZW50O1xuICAgIC8vIGNvbnN0IGFkZFRvTG9naWNhbElkID0gRmVhdHVyZUZsYWdzLm9mKHRoaXMpLmlzRW5hYmxlZChcbiAgICAvLyAgIEFQSUdBVEVXQVlfQVVUSE9SSVpFUl9DSEFOR0VfREVQTE9ZTUVOVF9MT0dJQ0FMX0lELFxuICAgIC8vICk7XG5cbiAgICBpZiAoZGVwbG95bWVudCkge1xuICAgICAgLy8gJiYgYWRkVG9Mb2dpY2FsSWQpIHtcbiAgICAgIGxldCBmdW5jdGlvbk5hbWU7XG5cbiAgICAgIGlmICh0aGlzLmhhbmRsZXIgaW5zdGFuY2VvZiBsYW1iZGEuTGFtYmRhRnVuY3Rpb24pIHtcbiAgICAgICAgLy8gaWYgbm90IGltcG9ydGVkLCBhdHRlbXB0IHRvIGdldCB0aGUgZnVuY3Rpb24gbmFtZSwgd2hpY2hcbiAgICAgICAgLy8gbWF5IGJlIGEgdG9rZW5cbiAgICAgICAgZnVuY3Rpb25OYW1lID0gKFxuICAgICAgICAgIHRoaXMuaGFuZGxlci5ub2RlLmRlZmF1bHRDaGlsZCBhcyBsYW1iZGFGdW5jdGlvbi5MYW1iZGFGdW5jdGlvblxuICAgICAgICApLmZ1bmN0aW9uTmFtZUlucHV0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gaWYgaW1wb3J0ZWQsIHRoZSBmdW5jdGlvbiBuYW1lIHdpbGwgYmUgYSB0b2tlbiAoVE9ETzogQ29uZmlybSlcbiAgICAgICAgZnVuY3Rpb25OYW1lID0gdGhpcy5oYW5kbGVyLmZ1bmN0aW9uTmFtZTtcbiAgICAgIH1cblxuICAgICAgZGVwbG95bWVudC5ub2RlLmFkZERlcGVuZGVuY3kodGhpcyk7XG4gICAgICAvLyBDREtURiBoYW5kbGVzIGRlcGxveW1lbnQgdXBkYXRlcyBiYXNlZCBvbiByZXNvdXJjZSBjaGFuZ2VzIGltcGxpY2l0bHkgb3IgdmlhIGV4cGxpY2l0IHRyaWdnZXJzLlxuICAgICAgZGVwbG95bWVudC5hZGRUb1RyaWdnZXJzKHtcbiAgICAgICAgLy8gVE9ETzogRm4uc2hhMShGbi5qc29uZW5jb2RlKCkpIGNhdXNlcyBuZXN0ZWQgVG9rZW5zIGFuZCBSZXNvbHZlciBlcnJvcnM/XG4gICAgICAgIGF1dGhvcml6ZXI6IHRoaXMuYXV0aG9yaXplclByb3BzLFxuICAgICAgICBhdXRob3JpemVyVG9rZW46IGZ1bmN0aW9uTmFtZSxcbiAgICAgIH0pO1xuICAgICAgLy8gVGhlIGFkZFRvTG9naWNhbElkIHBhcnQgaXMgQ0RLL0NGTiBzcGVjaWZpYyBmb3IgbG9naWNhbCBJRCBzdGFiaWxpdHkuXG4gICAgICAvLyBkZXBsb3ltZW50LmFkZFRvTG9naWNhbElkKHtcbiAgICAgIC8vICAgYXV0aG9yaXplcjogdGhpcy5hdXRob3JpemVyUHJvcHMsXG4gICAgICAvLyAgIGF1dGhvcml6ZXJUb2tlbjogZnVuY3Rpb25OYW1lLFxuICAgICAgLy8gfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIHBlcm1pc3Npb25zIG5lY2Vzc2FyeSBmb3IgdGhlIEFQSSBHYXRld2F5IHNlcnZpY2UgdG8gaW52b2tlIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBQZXJtaXNzaW9ucygpIHtcbiAgICBpZiAoIXRoaXMucm9sZSkge1xuICAgICAgdGhpcy5hZGREZWZhdWx0UGVybWlzc2lvblJvbGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucm9sZSBpbnN0YW5jZW9mIGlhbS5Sb2xlKSB7XG4gICAgICAvLyBDaGVjayBpZiBpdCdzIGEgY29uY3JldGUgUm9sZSBpbnN0YW5jZSB0aGF0IHdlIGNhbiBhdHRhY2ggcG9saWNpZXMgdG9cbiAgICAgIHRoaXMuYWRkTGFtYmRhSW52b2tlUGVybWlzc2lvbih0aGlzLnJvbGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkRGVmYXVsdFBlcm1pc3Npb25Sb2xlKCk6IHZvaWQge1xuICAgIG5ldyBsYW1iZGFQZXJtaXNzaW9uLkxhbWJkYVBlcm1pc3Npb24odGhpcywgYFBlcm1pc3Npb25zYCwge1xuICAgICAgZnVuY3Rpb25OYW1lOiB0aGlzLmhhbmRsZXIuZnVuY3Rpb25OYW1lLFxuICAgICAgYWN0aW9uOiBcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiLFxuICAgICAgcHJpbmNpcGFsOiBcImFwaWdhdGV3YXkuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgc291cmNlQXJuOiB0aGlzLmF1dGhvcml6ZXJBcm4sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZExhbWJkYUludm9rZVBlcm1pc3Npb24ocm9sZTogaWFtLlJvbGUpOiB2b2lkIHtcbiAgICByb2xlLmF0dGFjaElubGluZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5KHRoaXMsIFwiYXV0aG9yaXplckludm9rZVBvbGljeVwiLCB7XG4gICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICByZXNvdXJjZXM6IHRoaXMuaGFuZGxlci5yZXNvdXJjZUFybnNGb3JHcmFudEludm9rZSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbGF6eVJlc3RBcGlJZCgpIHtcbiAgICByZXR1cm4gTGF6eS5zdHJpbmdWYWx1ZSh7XG4gICAgICBwcm9kdWNlOiAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5yZXN0QXBpSWQpIHtcbiAgICAgICAgICAvLyBUT0RPOiBVc2UgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgZnJvbSBjb3JlL2xpYi9lcnJvcnNcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgQXV0aG9yaXplciAoJHt0aGlzLm5vZGUucGF0aH0pIG11c3QgYmUgYXR0YWNoZWQgdG8gYSBSZXN0QXBpYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3RBcGlJZDtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBUb2tlbkF1dGhvcml6ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb2tlbkF1dGhvcml6ZXJQcm9wcyBleHRlbmRzIExhbWJkYUF1dGhvcml6ZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCByZWdleCB0byBiZSBtYXRjaGVkIGFnYWluc3QgdGhlIGF1dGhvcml6YXRpb24gdG9rZW4uIFdoZW4gbWF0Y2hlZCB0aGUgYXV0aG9yaXplciBsYW1iZGEgaXMgaW52b2tlZCxcbiAgICogb3RoZXJ3aXNlIGEgNDAxIFVuYXV0aG9yaXplZCBpcyByZXR1cm5lZCB0byB0aGUgY2xpZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHJlZ2V4IGZpbHRlciB3aWxsIGJlIGFwcGxpZWQuXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0aW9uUmVnZXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXF1ZXN0IGhlYWRlciBtYXBwaW5nIGV4cHJlc3Npb24gZm9yIHRoZSBiZWFyZXIgdG9rZW4uIFRoaXMgaXMgdHlwaWNhbGx5IHBhc3NlZCBhcyBwYXJ0IG9mIHRoZSBoZWFkZXIsIGluIHdoaWNoIGNhc2VcbiAgICogdGhpcyBzaG91bGQgYmUgYG1ldGhvZC5yZXF1ZXN0LmhlYWRlci5BdXRob3JpemVyYCB3aGVyZSBgQXV0aG9yaXplcmAgaXMgdGhlIGhlYWRlciBjb250YWluaW5nIHRoZSBiZWFyZXIgdG9rZW4uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwaWdhdGV3YXkvbGF0ZXN0L2FwaS9BUElfQ3JlYXRlQXV0aG9yaXplci5odG1sI2FwaWd3LUNyZWF0ZUF1dGhvcml6ZXItcmVxdWVzdC1pZGVudGl0eVNvdXJjZVxuICAgKiBAZGVmYXVsdCBgbWV0aG9kLnJlcXVlc3QuaGVhZGVyLkF1dGhvcml6YXRpb25gXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eVNvdXJjZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUb2tlbiBiYXNlZCBsYW1iZGEgYXV0aG9yaXplciB0aGF0IHJlY29nbml6ZXMgdGhlIGNhbGxlcidzIGlkZW50aXR5IGFzIGEgYmVhcmVyIHRva2VuLFxuICogc3VjaCBhcyBhIEpTT04gV2ViIFRva2VuIChKV1QpIG9yIGFuIE9BdXRoIHRva2VuLlxuICogQmFzZWQgb24gdGhlIHRva2VuLCBhdXRob3JpemF0aW9uIGlzIHBlcmZvcm1lZCBieSBhIGxhbWJkYSBmdW5jdGlvbi5cbiAqXG4gKiBAcmVzb3VyY2UgYXdzX2FwaV9nYXRld2F5X2F1dGhvcml6ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFRva2VuQXV0aG9yaXplciBleHRlbmRzIExhbWJkYUF1dGhvcml6ZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgYXV0aG9yaXplcklkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBhdXRob3JpemVyQXJuOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IGFwaUdhdGV3YXlBdXRob3JpemVyLkFwaUdhdGV3YXlBdXRob3JpemVyO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aG9yaXplclByb3BzOiBhcGlHYXRld2F5QXV0aG9yaXplci5BcGlHYXRld2F5QXV0aG9yaXplckNvbmZpZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVG9rZW5BdXRob3JpemVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGNvbnN0IHJlc3RBcGlJZCA9IHRoaXMubGF6eVJlc3RBcGlJZCgpO1xuICAgIGNvbnN0IGF1dGhvcml6ZXJOYW1lID1cbiAgICAgIHByb3BzLmF1dGhvcml6ZXJOYW1lID8/IHRoaXMuc3RhY2sudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMpO1xuICAgIHRoaXMuYXV0aG9yaXplclByb3BzID0ge1xuICAgICAgbmFtZTogYXV0aG9yaXplck5hbWUsXG4gICAgICByZXN0QXBpSWQ6IHJlc3RBcGlJZCxcbiAgICAgIHR5cGU6IFwiVE9LRU5cIixcbiAgICAgIGlkZW50aXR5VmFsaWRhdGlvbkV4cHJlc3Npb246IHByb3BzLnZhbGlkYXRpb25SZWdleCxcbiAgICAgIGF1dGhvcml6ZXJVcmk6IGxhbWJkYUF1dGhvcml6ZXJBcm4ocHJvcHMuaGFuZGxlciksXG4gICAgICBhdXRob3JpemVyQ3JlZGVudGlhbHM6IHByb3BzLmFzc3VtZVJvbGU/LnJvbGVBcm4sXG4gICAgICBhdXRob3JpemVyUmVzdWx0VHRsSW5TZWNvbmRzOlxuICAgICAgICBwcm9wcy5yZXN1bHRzQ2FjaGVUdGw/LnRvU2Vjb25kcygpID8/IER1cmF0aW9uLm1pbnV0ZXMoNSkudG9TZWNvbmRzKCksXG4gICAgICBpZGVudGl0eVNvdXJjZTpcbiAgICAgICAgcHJvcHMuaWRlbnRpdHlTb3VyY2UgPz8gXCJtZXRob2QucmVxdWVzdC5oZWFkZXIuQXV0aG9yaXphdGlvblwiLFxuICAgIH07XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGFwaUdhdGV3YXlBdXRob3JpemVyLkFwaUdhdGV3YXlBdXRob3JpemVyKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHRoaXMuYXV0aG9yaXplclByb3BzLFxuICAgICk7XG5cbiAgICB0aGlzLmF1dGhvcml6ZXJJZCA9IHRoaXMucmVzb3VyY2UuaWQ7XG4gICAgdGhpcy5hdXRob3JpemVyQXJuID0gdGhpcy5zdGFjay5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogXCJleGVjdXRlLWFwaVwiLFxuICAgICAgcmVzb3VyY2U6IHJlc3RBcGlJZCxcbiAgICAgIHJlc291cmNlTmFtZTogYGF1dGhvcml6ZXJzLyR7dGhpcy5hdXRob3JpemVySWR9YCxcbiAgICB9KTtcblxuICAgIHRoaXMuc2V0dXBQZXJtaXNzaW9ucygpO1xuICB9XG5cbiAgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF1dGhvcml6ZXJJZDogdGhpcy5hdXRob3JpemVySWQsXG4gICAgICBhdXRob3JpemVyQXJuOiB0aGlzLmF1dGhvcml6ZXJBcm4sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIFJlcXVlc3RBdXRob3JpemVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdEF1dGhvcml6ZXJQcm9wcyBleHRlbmRzIExhbWJkYUF1dGhvcml6ZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiByZXF1ZXN0IGhlYWRlciBtYXBwaW5nIGV4cHJlc3Npb25zIGZvciBpZGVudGl0aWVzLiBTdXBwb3J0ZWQgcGFyYW1ldGVyIHR5cGVzIGFyZVxuICAgKiBIZWFkZXIsIFF1ZXJ5IFN0cmluZywgU3RhZ2UgVmFyaWFibGUsIGFuZCBDb250ZXh0LiBGb3IgaW5zdGFuY2UsIGV4dHJhY3RpbmcgYW4gYXV0aG9yaXphdGlvblxuICAgKiB0b2tlbiBmcm9tIGEgaGVhZGVyIHdvdWxkIHVzZSB0aGUgaWRlbnRpdHkgc291cmNlIGBtZXRob2QucmVxdWVzdC5oZWFkZXIuQXV0aG9yaXphdGlvbmAuXG4gICAqXG4gICAqIE5vdGU6IEFQSSBHYXRld2F5IHVzZXMgdGhlIHNwZWNpZmllZCBpZGVudGl0eSBzb3VyY2VzIGFzIHRoZSByZXF1ZXN0IGF1dGhvcml6ZXIgY2FjaGluZyBrZXkuIFdoZW4gY2FjaGluZyBpc1xuICAgKiBlbmFibGVkLCBBUEkgR2F0ZXdheSBjYWxscyB0aGUgYXV0aG9yaXplcidzIExhbWJkYSBmdW5jdGlvbiBvbmx5IGFmdGVyIHN1Y2Nlc3NmdWxseSB2ZXJpZnlpbmcgdGhhdCBhbGwgdGhlXG4gICAqIHNwZWNpZmllZCBpZGVudGl0eSBzb3VyY2VzIGFyZSBwcmVzZW50IGF0IHJ1bnRpbWUuIElmIGEgc3BlY2lmaWVkIGlkZW50aWZ5IHNvdXJjZSBpcyBtaXNzaW5nLCBudWxsLCBvciBlbXB0eSxcbiAgICogQVBJIEdhdGV3YXkgcmV0dXJucyBhIDQwMSBVbmF1dGhvcml6ZWQgcmVzcG9uc2Ugd2l0aG91dCBjYWxsaW5nIHRoZSBhdXRob3JpemVyIExhbWJkYSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBpZ2F0ZXdheS9sYXRlc3QvYXBpL0FQSV9DcmVhdGVBdXRob3JpemVyLmh0bWwjYXBpZ3ctQ3JlYXRlQXV0aG9yaXplci1yZXF1ZXN0LWlkZW50aXR5U291cmNlXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eVNvdXJjZXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcXVlc3QtYmFzZWQgbGFtYmRhIGF1dGhvcml6ZXIgdGhhdCByZWNvZ25pemVzIHRoZSBjYWxsZXIncyBpZGVudGl0eSB2aWEgcmVxdWVzdCBwYXJhbWV0ZXJzLFxuICogc3VjaCBhcyBoZWFkZXJzLCBwYXRocywgcXVlcnkgc3RyaW5ncywgc3RhZ2UgdmFyaWFibGVzLCBvciBjb250ZXh0IHZhcmlhYmxlcy5cbiAqIEJhc2VkIG9uIHRoZSByZXF1ZXN0LCBhdXRob3JpemF0aW9uIGlzIHBlcmZvcm1lZCBieSBhIGxhbWJkYSBmdW5jdGlvbi5cbiAqXG4gKiBAcmVzb3VyY2UgYXdzX2FwaV9nYXRld2F5X2F1dGhvcml6ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFJlcXVlc3RBdXRob3JpemVyIGV4dGVuZHMgTGFtYmRhQXV0aG9yaXplciB7XG4gIHB1YmxpYyByZWFkb25seSBhdXRob3JpemVySWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGF1dGhvcml6ZXJBcm46IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogYXBpR2F0ZXdheUF1dGhvcml6ZXIuQXBpR2F0ZXdheUF1dGhvcml6ZXI7XG4gIHByb3RlY3RlZCByZWFkb25seSBhdXRob3JpemVyUHJvcHM6IGFwaUdhdGV3YXlBdXRob3JpemVyLkFwaUdhdGV3YXlBdXRob3JpemVyQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSZXF1ZXN0QXV0aG9yaXplclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBpZiAoXG4gICAgICAocHJvcHMucmVzdWx0c0NhY2hlVHRsID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgcHJvcHMucmVzdWx0c0NhY2hlVHRsLnRvU2Vjb25kcygpICE9PSAwKSAmJlxuICAgICAgcHJvcHMuaWRlbnRpdHlTb3VyY2VzLmxlbmd0aCA9PT0gMFxuICAgICkge1xuICAgICAgLy8gVE9ETzogVXNlIFZhbGlkYXRpb25FcnJvciBmcm9tIGNvcmUvbGliL2Vycm9yc1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkF0IGxlYXN0IG9uZSBJZGVudGl0eSBTb3VyY2UgaXMgcmVxdWlyZWQgZm9yIGEgUkVRVUVTVC1iYXNlZCBMYW1iZGEgYXV0aG9yaXplciBpZiBjYWNoaW5nIGlzIGVuYWJsZWQuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3RBcGlJZCA9IHRoaXMubGF6eVJlc3RBcGlJZCgpO1xuICAgIGNvbnN0IGF1dGhvcml6ZXJOYW1lID1cbiAgICAgIHByb3BzLmF1dGhvcml6ZXJOYW1lID8/IHRoaXMuc3RhY2sudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMpO1xuICAgIHRoaXMuYXV0aG9yaXplclByb3BzID0ge1xuICAgICAgbmFtZTogYXV0aG9yaXplck5hbWUsXG4gICAgICByZXN0QXBpSWQ6IHJlc3RBcGlJZCxcbiAgICAgIHR5cGU6IFwiUkVRVUVTVFwiLFxuICAgICAgYXV0aG9yaXplclVyaTogbGFtYmRhQXV0aG9yaXplckFybihwcm9wcy5oYW5kbGVyKSxcbiAgICAgIGF1dGhvcml6ZXJDcmVkZW50aWFsczogcHJvcHMuYXNzdW1lUm9sZT8ucm9sZUFybixcbiAgICAgIGF1dGhvcml6ZXJSZXN1bHRUdGxJblNlY29uZHM6XG4gICAgICAgIHByb3BzLnJlc3VsdHNDYWNoZVR0bD8udG9TZWNvbmRzKCkgPz8gRHVyYXRpb24ubWludXRlcyg1KS50b1NlY29uZHMoKSxcbiAgICAgIGlkZW50aXR5U291cmNlOlxuICAgICAgICBwcm9wcy5pZGVudGl0eVNvdXJjZXMubGVuZ3RoICE9PSAwXG4gICAgICAgICAgPyBwcm9wcy5pZGVudGl0eVNvdXJjZXMubWFwKChpcykgPT4gaXMudG9TdHJpbmcoKSkuam9pbihcIixcIilcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBhcGlHYXRld2F5QXV0aG9yaXplci5BcGlHYXRld2F5QXV0aG9yaXplcihcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICB0aGlzLmF1dGhvcml6ZXJQcm9wcyxcbiAgICApO1xuXG4gICAgdGhpcy5hdXRob3JpemVySWQgPSB0aGlzLnJlc291cmNlLmlkO1xuICAgIHRoaXMuYXV0aG9yaXplckFybiA9IHRoaXMuc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6IFwiZXhlY3V0ZS1hcGlcIixcbiAgICAgIHJlc291cmNlOiByZXN0QXBpSWQsIC8vIFRoaXMgd2lsbCBiZSBhIHRva2VuXG4gICAgICByZXNvdXJjZU5hbWU6IGBhdXRob3JpemVycy8ke3RoaXMuYXV0aG9yaXplcklkfWAsXG4gICAgICBhcm5Gb3JtYXQ6IEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zZXR1cFBlcm1pc3Npb25zKCk7XG4gIH1cbiAgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF1dGhvcml6ZXJJZDogdGhpcy5hdXRob3JpemVySWQsXG4gICAgICBhdXRob3JpemVyQXJuOiB0aGlzLmF1dGhvcml6ZXJBcm4sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIGNvbnN0cnVjdHMgdGhlIGF1dGhvcml6ZXJVUklBcm4uXG4gKi9cbmZ1bmN0aW9uIGxhbWJkYUF1dGhvcml6ZXJBcm4oaGFuZGxlcjogbGFtYmRhLklGdW5jdGlvbik6IHN0cmluZyB7XG4gIHJldHVybiBoYW5kbGVyLmZ1bmN0aW9uSW52b2tlQXJuO1xuXG4gIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBpcyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgaXQgd2FzIG1vdmVkIHRvIHRoZSBpbXBvcnRlZCBMYW1iZGFGdW5jdGlvbiBjbGFzcy5cbiAgLy8gY29uc3QgeyByZWdpb24sIHBhcnRpdGlvbiB9ID0gQXJuLnNwbGl0KFxuICAvLyAgIGhhbmRsZXIuZnVuY3Rpb25Bcm4sXG4gIC8vICAgQXJuRm9ybWF0LkNPTE9OX1JFU09VUkNFX05BTUUsXG4gIC8vICk7XG4gIC8vIHJldHVybiBgYXJuOiR7cGFydGl0aW9ufTphcGlnYXRld2F5OiR7cmVnaW9ufTpsYW1iZGE6cGF0aC8yMDE1LTAzLTMxL2Z1bmN0aW9ucy8ke2hhbmRsZXIuZnVuY3Rpb25Bcm59L2ludm9jYXRpb25zYDtcbn1cbiJdfQ==
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2F1dGhvcml6ZXJzL2xhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQUk2QjtBQUM3QixpQ0FBNkI7QUFFN0IsNkJBQTZCO0FBQzdCLGdEQUE2QztBQUM3Qyw0Q0FBNEM7QUFDNUMsNENBQTJFO0FBQzNFLG1DQUFzQztBQUV0QyxpQ0FBaUM7QUFDakMsOENBQXdEO0FBb0N4RCxNQUFlLGdCQUFpQixTQUFRLHVCQUFVO0lBeUJoRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUE0QjtRQUU1QixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBRTdCLElBQUksS0FBSyxDQUFDLGVBQWUsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1lBQ3RFLE1BQU0sSUFBSSx3QkFBZSxDQUN2QixpR0FBaUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFDbkgsS0FBSyxDQUNOLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFlBQVksQ0FBQyxPQUFpQjtRQUNuQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDM0QsTUFBTSxJQUFJLHdCQUFlLENBQ3ZCLHlEQUF5RCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxFQUMxRSxJQUFJLENBQ0wsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFT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R0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUM1RCxDQUFDLENBQUMsU0FBUztTQUNoQixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLG1DQUFvQixDQUFDLG9CQUFvQixDQUMzRCxJQUFJLEVBQ0osVUFBVSxFQUNWLElBQUksQ0FBQyxlQUFlLENBQ3JCLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDeEMsT0FBTyxFQUFFLGFBQWE7WUFDdEIsUUFBUSxFQUFFLFNBQVMsRUFBRSx1QkFBdUI7WUFDNUMsWUFBWSxFQUFFLGVBQWUsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNoRCxTQUFTLEVBQUUsZUFBUyxDQUFDLG1CQUFtQjtTQUN6QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1QsT0FBTztZQUNMLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDbEMsQ0FBQztJQUNKLENBQUM7O0FBMURILDhDQTJEQzs7O0FBRUQ7O0dBRUc7QUFDSCxTQUFTLG1CQUFtQixDQUFDLE9BQXlCO0lBQ3BELE9BQU8sT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBRWpDLGlHQUFpRztJQUNqRywyQ0FBMkM7SUFDM0MseUJBQXlCO0lBQ3pCLG1DQUFtQztJQUNuQyxLQUFLO0lBQ0wsc0hBQXNIO0FBQ3hILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhcGlHYXRld2F5QXV0aG9yaXplcixcbiAgbGFtYmRhRnVuY3Rpb24sXG4gIGxhbWJkYVBlcm1pc3Npb24sXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBMYXp5IH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vZHVyYXRpb25cIjtcbi8vIGltcG9ydCB7IEZuIH0gZnJvbSBcIi4uLy4uLy4uL3RlcnJhLWZ1bmNcIjtcbmltcG9ydCB7IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiLi4vLi4vLi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBBcm5Gb3JtYXQgfSBmcm9tIFwiLi4vLi4vYXJuXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi8uLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uLy4uL2lhbVwiO1xuaW1wb3J0IHsgQXV0aG9yaXplciwgSUF1dGhvcml6ZXIgfSBmcm9tIFwiLi4vYXV0aG9yaXplclwiO1xuaW1wb3J0IHsgSVJlc3RBcGkgfSBmcm9tIFwiLi4vcmVzdGFwaVwiO1xuXG4vKipcbiAqIEJhc2UgcHJvcGVydGllcyBmb3IgYWxsIGxhbWJkYSBhdXRob3JpemVyc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUF1dGhvcml6ZXJQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIGh1bWFuIGZyaWVuZGx5IG5hbWUgZm9yIHRoZSBhdXRob3JpemVyLiBOb3RlIHRoYXQsIHRoaXMgaXMgbm90IHRoZSBwcmltYXJ5IGlkZW50aWZpZXIgb2YgdGhlIGF1dGhvcml6ZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIHVuaXF1ZSBjb25zdHJ1Y3QgSUQgKGZyaWVuZGx5TmFtZSlcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZXJOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaGFuZGxlciBmb3IgdGhlIGF1dGhvcml6ZXIgbGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFuZGxlcjogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogSG93IGxvbmcgQVBJR2F0ZXdheSBzaG91bGQgY2FjaGUgdGhlIHJlc3VsdHMuIE1heCAxIGhvdXIuXG4gICAqIERpc2FibGUgY2FjaGluZyBieSBzZXR0aW5nIHRoaXMgdG8gMC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEdXJhdGlvbi5taW51dGVzKDUpXG4gICAqL1xuICByZWFkb25seSByZXN1bHRzQ2FjaGVUdGw/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgSUFNIHJvbGUgZm9yIEFQSUdhdGV3YXkgdG8gYXNzdW1lIGJlZm9yZSBjYWxsaW5nIHRoZSBMYW1iZGEtYmFzZWQgYXV0aG9yaXplci4gVGhlIElBTSByb2xlIG11c3QgYmVcbiAgICogYXNzdW1hYmxlIGJ5ICdhcGlnYXRld2F5LmFtYXpvbmF3cy5jb20nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgcmVzb3VyY2UgcG9saWN5IGlzIGFkZGVkIHRvIHRoZSBMYW1iZGEgZnVuY3Rpb24gYWxsb3dpbmcgYXBpZ2F0ZXdheS5hbWF6b25hd3MuY29tIHRvIGludm9rZSB0aGUgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBhc3N1bWVSb2xlPzogaWFtLklSb2xlO1xufVxuXG5hYnN0cmFjdCBjbGFzcyBMYW1iZGFBdXRob3JpemVyIGV4dGVuZHMgQXV0aG9yaXplciBpbXBsZW1lbnRzIElBdXRob3JpemVyIHtcbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgYXV0aG9yaXplci5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGF1dGhvcml6ZXJJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBhdXRob3JpemVyIHRvIGJlIHVzZWQgaW4gcGVybWlzc2lvbiBwb2xpY2llcywgc3VjaCBhcyBJQU0gYW5kIHJlc291cmNlLWJhc2VkIGdyYW50cy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhdXRob3JpemVyQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gaGFuZGxlciB0aGF0IHRoaXMgYXV0aG9yaXplciB1c2VzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhbmRsZXI6IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSB0aGF0IHRoZSBBUEkgR2F0ZXdheSBzZXJ2aWNlIGFzc3VtZXMgd2hpbGUgaW52b2tpbmcgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIHByb3RlY3RlZCByZXN0QXBpSWQ/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBhdXRob3JpemVyUHJvcHM6IGFwaUdhdGV3YXlBdXRob3JpemVyLkFwaUdhdGV3YXlBdXRob3JpemVyQ29uZmlnO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IExhbWJkYUF1dGhvcml6ZXJQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLmhhbmRsZXIgPSBwcm9wcy5oYW5kbGVyO1xuICAgIHRoaXMucm9sZSA9IHByb3BzLmFzc3VtZVJvbGU7XG5cbiAgICBpZiAocHJvcHMucmVzdWx0c0NhY2hlVHRsICYmIHByb3BzLnJlc3VsdHNDYWNoZVR0bC50b1NlY29uZHMoKSA+IDM2MDApIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGBMYW1iZGEgYXV0aG9yaXplciBwcm9wZXJ0eSAncmVzdWx0c0NhY2hlVHRsJyBtdXN0IG5vdCBiZSBncmVhdGVyIHRoYW4gMzYwMCBzZWNvbmRzICgxIGhvdXIpLiAoJHtzY29wZS5ub2RlLnBhdGh9KWAsXG4gICAgICAgIHNjb3BlLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgdGhpcyBhdXRob3JpemVyIHRvIGEgc3BlY2lmaWMgUkVTVCBBUEkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9hdHRhY2hUb0FwaShyZXN0QXBpOiBJUmVzdEFwaSkge1xuICAgIGlmICh0aGlzLnJlc3RBcGlJZCAmJiB0aGlzLnJlc3RBcGlJZCAhPT0gcmVzdEFwaS5yZXN0QXBpSWQpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgYXR0YWNoIGF1dGhvcml6ZXIgdG8gdHdvIGRpZmZlcmVudCByZXN0IEFQSXMuICgke3RoaXMubm9kZS5wYXRofSlgLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5yZXN0QXBpSWQgPSByZXN0QXBpLnJlc3RBcGlJZDtcbiAgICBjb25zdCBkZXBsb3ltZW50ID0gcmVzdEFwaS5sYXRlc3REZXBsb3ltZW50O1xuICAgIC8vIGNvbnN0IGFkZFRvTG9naWNhbElkID0gRmVhdHVyZUZsYWdzLm9mKHRoaXMpLmlzRW5hYmxlZChcbiAgICAvLyAgIEFQSUdBVEVXQVlfQVVUSE9SSVpFUl9DSEFOR0VfREVQTE9ZTUVOVF9MT0dJQ0FMX0lELFxuICAgIC8vICk7XG5cbiAgICBpZiAoZGVwbG95bWVudCkge1xuICAgICAgLy8gJiYgYWRkVG9Mb2dpY2FsSWQpIHtcbiAgICAgIGxldCBmdW5jdGlvbk5hbWU7XG5cbiAgICAgIGlmICh0aGlzLmhhbmRsZXIgaW5zdGFuY2VvZiBsYW1iZGEuTGFtYmRhRnVuY3Rpb24pIHtcbiAgICAgICAgLy8gaWYgbm90IGltcG9ydGVkLCBhdHRlbXB0IHRvIGdldCB0aGUgZnVuY3Rpb24gbmFtZSwgd2hpY2hcbiAgICAgICAgLy8gbWF5IGJlIGEgdG9rZW5cbiAgICAgICAgZnVuY3Rpb25OYW1lID0gKFxuICAgICAgICAgIHRoaXMuaGFuZGxlci5ub2RlLmRlZmF1bHRDaGlsZCBhcyBsYW1iZGFGdW5jdGlvbi5MYW1iZGFGdW5jdGlvblxuICAgICAgICApLmZ1bmN0aW9uTmFtZUlucHV0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gaWYgaW1wb3J0ZWQsIHRoZSBmdW5jdGlvbiBuYW1lIHdpbGwgYmUgYSB0b2tlbiAoVE9ETzogQ29uZmlybSlcbiAgICAgICAgZnVuY3Rpb25OYW1lID0gdGhpcy5oYW5kbGVyLmZ1bmN0aW9uTmFtZTtcbiAgICAgIH1cblxuICAgICAgZGVwbG95bWVudC5ub2RlLmFkZERlcGVuZGVuY3kodGhpcyk7XG4gICAgICAvLyBDREtURiBoYW5kbGVzIGRlcGxveW1lbnQgdXBkYXRlcyBiYXNlZCBvbiByZXNvdXJjZSBjaGFuZ2VzIGltcGxpY2l0bHkgb3IgdmlhIGV4cGxpY2l0IHRyaWdnZXJzLlxuICAgICAgZGVwbG95bWVudC5hZGRUb1RyaWdnZXJzKHtcbiAgICAgICAgLy8gVE9ETzogRm4uc2hhMShGbi5qc29uZW5jb2RlKCkpIGNhdXNlcyBuZXN0ZWQgVG9rZW5zIGFuZCBSZXNvbHZlciBlcnJvcnM/XG4gICAgICAgIGF1dGhvcml6ZXI6IHRoaXMuYXV0aG9yaXplclByb3BzLFxuICAgICAgICBhdXRob3JpemVyVG9rZW46IGZ1bmN0aW9uTmFtZSxcbiAgICAgIH0pO1xuICAgICAgLy8gVGhlIGFkZFRvTG9naWNhbElkIHBhcnQgaXMgQ0RLL0NGTiBzcGVjaWZpYyBmb3IgbG9naWNhbCBJRCBzdGFiaWxpdHkuXG4gICAgICAvLyBkZXBsb3ltZW50LmFkZFRvTG9naWNhbElkKHtcbiAgICAgIC8vICAgYXV0aG9yaXplcjogdGhpcy5hdXRob3JpemVyUHJvcHMsXG4gICAgICAvLyAgIGF1dGhvcml6ZXJUb2tlbjogZnVuY3Rpb25OYW1lLFxuICAgICAgLy8gfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIHBlcm1pc3Npb25zIG5lY2Vzc2FyeSBmb3IgdGhlIEFQSSBHYXRld2F5IHNlcnZpY2UgdG8gaW52b2tlIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBQZXJtaXNzaW9ucygpIHtcbiAgICBpZiAoIXRoaXMucm9sZSkge1xuICAgICAgdGhpcy5hZGREZWZhdWx0UGVybWlzc2lvblJvbGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucm9sZSBpbnN0YW5jZW9mIGlhbS5Sb2xlKSB7XG4gICAgICAvLyBDaGVjayBpZiBpdCdzIGEgY29uY3JldGUgUm9sZSBpbnN0YW5jZSB0aGF0IHdlIGNhbiBhdHRhY2ggcG9saWNpZXMgdG9cbiAgICAgIHRoaXMuYWRkTGFtYmRhSW52b2tlUGVybWlzc2lvbih0aGlzLnJvbGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkRGVmYXVsdFBlcm1pc3Npb25Sb2xlKCk6IHZvaWQge1xuICAgIG5ldyBsYW1iZGFQZXJtaXNzaW9uLkxhbWJkYVBlcm1pc3Npb24odGhpcywgYFBlcm1pc3Npb25zYCwge1xuICAgICAgZnVuY3Rpb25OYW1lOiB0aGlzLmhhbmRsZXIuZnVuY3Rpb25OYW1lLFxuICAgICAgYWN0aW9uOiBcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiLFxuICAgICAgcHJpbmNpcGFsOiBcImFwaWdhdGV3YXkuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgc291cmNlQXJuOiB0aGlzLmF1dGhvcml6ZXJBcm4sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZExhbWJkYUludm9rZVBlcm1pc3Npb24ocm9sZTogaWFtLlJvbGUpOiB2b2lkIHtcbiAgICByb2xlLmF0dGFjaElubGluZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5KHRoaXMsIFwiYXV0aG9yaXplckludm9rZVBvbGljeVwiLCB7XG4gICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICByZXNvdXJjZXM6IHRoaXMuaGFuZGxlci5yZXNvdXJjZUFybnNGb3JHcmFudEludm9rZSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcImxhbWJkYTpJbnZva2VGdW5jdGlvblwiXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbGF6eVJlc3RBcGlJZCgpIHtcbiAgICByZXR1cm4gTGF6eS5zdHJpbmdWYWx1ZSh7XG4gICAgICBwcm9kdWNlOiAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5yZXN0QXBpSWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICBgQXV0aG9yaXplciAoJHt0aGlzLm5vZGUucGF0aH0pIG11c3QgYmUgYXR0YWNoZWQgdG8gYSBSZXN0QXBpYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3RBcGlJZDtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBUb2tlbkF1dGhvcml6ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb2tlbkF1dGhvcml6ZXJQcm9wcyBleHRlbmRzIExhbWJkYUF1dGhvcml6ZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCByZWdleCB0byBiZSBtYXRjaGVkIGFnYWluc3QgdGhlIGF1dGhvcml6YXRpb24gdG9rZW4uIFdoZW4gbWF0Y2hlZCB0aGUgYXV0aG9yaXplciBsYW1iZGEgaXMgaW52b2tlZCxcbiAgICogb3RoZXJ3aXNlIGEgNDAxIFVuYXV0aG9yaXplZCBpcyByZXR1cm5lZCB0byB0aGUgY2xpZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHJlZ2V4IGZpbHRlciB3aWxsIGJlIGFwcGxpZWQuXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0aW9uUmVnZXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXF1ZXN0IGhlYWRlciBtYXBwaW5nIGV4cHJlc3Npb24gZm9yIHRoZSBiZWFyZXIgdG9rZW4uIFRoaXMgaXMgdHlwaWNhbGx5IHBhc3NlZCBhcyBwYXJ0IG9mIHRoZSBoZWFkZXIsIGluIHdoaWNoIGNhc2VcbiAgICogdGhpcyBzaG91bGQgYmUgYG1ldGhvZC5yZXF1ZXN0LmhlYWRlci5BdXRob3JpemVyYCB3aGVyZSBgQXV0aG9yaXplcmAgaXMgdGhlIGhlYWRlciBjb250YWluaW5nIHRoZSBiZWFyZXIgdG9rZW4uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwaWdhdGV3YXkvbGF0ZXN0L2FwaS9BUElfQ3JlYXRlQXV0aG9yaXplci5odG1sI2FwaWd3LUNyZWF0ZUF1dGhvcml6ZXItcmVxdWVzdC1pZGVudGl0eVNvdXJjZVxuICAgKiBAZGVmYXVsdCBgbWV0aG9kLnJlcXVlc3QuaGVhZGVyLkF1dGhvcml6YXRpb25gXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eVNvdXJjZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUb2tlbiBiYXNlZCBsYW1iZGEgYXV0aG9yaXplciB0aGF0IHJlY29nbml6ZXMgdGhlIGNhbGxlcidzIGlkZW50aXR5IGFzIGEgYmVhcmVyIHRva2VuLFxuICogc3VjaCBhcyBhIEpTT04gV2ViIFRva2VuIChKV1QpIG9yIGFuIE9BdXRoIHRva2VuLlxuICogQmFzZWQgb24gdGhlIHRva2VuLCBhdXRob3JpemF0aW9uIGlzIHBlcmZvcm1lZCBieSBhIGxhbWJkYSBmdW5jdGlvbi5cbiAqXG4gKiBAcmVzb3VyY2UgYXdzX2FwaV9nYXRld2F5X2F1dGhvcml6ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFRva2VuQXV0aG9yaXplciBleHRlbmRzIExhbWJkYUF1dGhvcml6ZXIge1xuICBwdWJsaWMgcmVhZG9ubHkgYXV0aG9yaXplcklkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBhdXRob3JpemVyQXJuOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IGFwaUdhdGV3YXlBdXRob3JpemVyLkFwaUdhdGV3YXlBdXRob3JpemVyO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aG9yaXplclByb3BzOiBhcGlHYXRld2F5QXV0aG9yaXplci5BcGlHYXRld2F5QXV0aG9yaXplckNvbmZpZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVG9rZW5BdXRob3JpemVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGNvbnN0IHJlc3RBcGlJZCA9IHRoaXMubGF6eVJlc3RBcGlJZCgpO1xuICAgIGNvbnN0IGF1dGhvcml6ZXJOYW1lID1cbiAgICAgIHByb3BzLmF1dGhvcml6ZXJOYW1lID8/IHRoaXMuc3RhY2sudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMpO1xuICAgIHRoaXMuYXV0aG9yaXplclByb3BzID0ge1xuICAgICAgbmFtZTogYXV0aG9yaXplck5hbWUsXG4gICAgICByZXN0QXBpSWQ6IHJlc3RBcGlJZCxcbiAgICAgIHR5cGU6IFwiVE9LRU5cIixcbiAgICAgIGlkZW50aXR5VmFsaWRhdGlvbkV4cHJlc3Npb246IHByb3BzLnZhbGlkYXRpb25SZWdleCxcbiAgICAgIGF1dGhvcml6ZXJVcmk6IGxhbWJkYUF1dGhvcml6ZXJBcm4ocHJvcHMuaGFuZGxlciksXG4gICAgICBhdXRob3JpemVyQ3JlZGVudGlhbHM6IHByb3BzLmFzc3VtZVJvbGU/LnJvbGVBcm4sXG4gICAgICBhdXRob3JpemVyUmVzdWx0VHRsSW5TZWNvbmRzOlxuICAgICAgICBwcm9wcy5yZXN1bHRzQ2FjaGVUdGw/LnRvU2Vjb25kcygpID8/IER1cmF0aW9uLm1pbnV0ZXMoNSkudG9TZWNvbmRzKCksXG4gICAgICBpZGVudGl0eVNvdXJjZTpcbiAgICAgICAgcHJvcHMuaWRlbnRpdHlTb3VyY2UgPz8gXCJtZXRob2QucmVxdWVzdC5oZWFkZXIuQXV0aG9yaXphdGlvblwiLFxuICAgIH07XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGFwaUdhdGV3YXlBdXRob3JpemVyLkFwaUdhdGV3YXlBdXRob3JpemVyKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHRoaXMuYXV0aG9yaXplclByb3BzLFxuICAgICk7XG5cbiAgICB0aGlzLmF1dGhvcml6ZXJJZCA9IHRoaXMucmVzb3VyY2UuaWQ7XG4gICAgdGhpcy5hdXRob3JpemVyQXJuID0gdGhpcy5zdGFjay5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogXCJleGVjdXRlLWFwaVwiLFxuICAgICAgcmVzb3VyY2U6IHJlc3RBcGlJZCxcbiAgICAgIHJlc291cmNlTmFtZTogYGF1dGhvcml6ZXJzLyR7dGhpcy5hdXRob3JpemVySWR9YCxcbiAgICB9KTtcblxuICAgIHRoaXMuc2V0dXBQZXJtaXNzaW9ucygpO1xuICB9XG5cbiAgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF1dGhvcml6ZXJJZDogdGhpcy5hdXRob3JpemVySWQsXG4gICAgICBhdXRob3JpemVyQXJuOiB0aGlzLmF1dGhvcml6ZXJBcm4sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIFJlcXVlc3RBdXRob3JpemVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdEF1dGhvcml6ZXJQcm9wcyBleHRlbmRzIExhbWJkYUF1dGhvcml6ZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiByZXF1ZXN0IGhlYWRlciBtYXBwaW5nIGV4cHJlc3Npb25zIGZvciBpZGVudGl0aWVzLiBTdXBwb3J0ZWQgcGFyYW1ldGVyIHR5cGVzIGFyZVxuICAgKiBIZWFkZXIsIFF1ZXJ5IFN0cmluZywgU3RhZ2UgVmFyaWFibGUsIGFuZCBDb250ZXh0LiBGb3IgaW5zdGFuY2UsIGV4dHJhY3RpbmcgYW4gYXV0aG9yaXphdGlvblxuICAgKiB0b2tlbiBmcm9tIGEgaGVhZGVyIHdvdWxkIHVzZSB0aGUgaWRlbnRpdHkgc291cmNlIGBtZXRob2QucmVxdWVzdC5oZWFkZXIuQXV0aG9yaXphdGlvbmAuXG4gICAqXG4gICAqIE5vdGU6IEFQSSBHYXRld2F5IHVzZXMgdGhlIHNwZWNpZmllZCBpZGVudGl0eSBzb3VyY2VzIGFzIHRoZSByZXF1ZXN0IGF1dGhvcml6ZXIgY2FjaGluZyBrZXkuIFdoZW4gY2FjaGluZyBpc1xuICAgKiBlbmFibGVkLCBBUEkgR2F0ZXdheSBjYWxscyB0aGUgYXV0aG9yaXplcidzIExhbWJkYSBmdW5jdGlvbiBvbmx5IGFmdGVyIHN1Y2Nlc3NmdWxseSB2ZXJpZnlpbmcgdGhhdCBhbGwgdGhlXG4gICAqIHNwZWNpZmllZCBpZGVudGl0eSBzb3VyY2VzIGFyZSBwcmVzZW50IGF0IHJ1bnRpbWUuIElmIGEgc3BlY2lmaWVkIGlkZW50aWZ5IHNvdXJjZSBpcyBtaXNzaW5nLCBudWxsLCBvciBlbXB0eSxcbiAgICogQVBJIEdhdGV3YXkgcmV0dXJucyBhIDQwMSBVbmF1dGhvcml6ZWQgcmVzcG9uc2Ugd2l0aG91dCBjYWxsaW5nIHRoZSBhdXRob3JpemVyIExhbWJkYSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBpZ2F0ZXdheS9sYXRlc3QvYXBpL0FQSV9DcmVhdGVBdXRob3JpemVyLmh0bWwjYXBpZ3ctQ3JlYXRlQXV0aG9yaXplci1yZXF1ZXN0LWlkZW50aXR5U291cmNlXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eVNvdXJjZXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFJlcXVlc3QtYmFzZWQgbGFtYmRhIGF1dGhvcml6ZXIgdGhhdCByZWNvZ25pemVzIHRoZSBjYWxsZXIncyBpZGVudGl0eSB2aWEgcmVxdWVzdCBwYXJhbWV0ZXJzLFxuICogc3VjaCBhcyBoZWFkZXJzLCBwYXRocywgcXVlcnkgc3RyaW5ncywgc3RhZ2UgdmFyaWFibGVzLCBvciBjb250ZXh0IHZhcmlhYmxlcy5cbiAqIEJhc2VkIG9uIHRoZSByZXF1ZXN0LCBhdXRob3JpemF0aW9uIGlzIHBlcmZvcm1lZCBieSBhIGxhbWJkYSBmdW5jdGlvbi5cbiAqXG4gKiBAcmVzb3VyY2UgYXdzX2FwaV9nYXRld2F5X2F1dGhvcml6ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFJlcXVlc3RBdXRob3JpemVyIGV4dGVuZHMgTGFtYmRhQXV0aG9yaXplciB7XG4gIHB1YmxpYyByZWFkb25seSBhdXRob3JpemVySWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGF1dGhvcml6ZXJBcm46IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogYXBpR2F0ZXdheUF1dGhvcml6ZXIuQXBpR2F0ZXdheUF1dGhvcml6ZXI7XG4gIHByb3RlY3RlZCByZWFkb25seSBhdXRob3JpemVyUHJvcHM6IGFwaUdhdGV3YXlBdXRob3JpemVyLkFwaUdhdGV3YXlBdXRob3JpemVyQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSZXF1ZXN0QXV0aG9yaXplclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBpZiAoXG4gICAgICAocHJvcHMucmVzdWx0c0NhY2hlVHRsID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgcHJvcHMucmVzdWx0c0NhY2hlVHRsLnRvU2Vjb25kcygpICE9PSAwKSAmJlxuICAgICAgcHJvcHMuaWRlbnRpdHlTb3VyY2VzLmxlbmd0aCA9PT0gMFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCJBdCBsZWFzdCBvbmUgSWRlbnRpdHkgU291cmNlIGlzIHJlcXVpcmVkIGZvciBhIFJFUVVFU1QtYmFzZWQgTGFtYmRhIGF1dGhvcml6ZXIgaWYgY2FjaGluZyBpcyBlbmFibGVkLlwiLFxuICAgICAgICBzY29wZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdEFwaUlkID0gdGhpcy5sYXp5UmVzdEFwaUlkKCk7XG4gICAgY29uc3QgYXV0aG9yaXplck5hbWUgPVxuICAgICAgcHJvcHMuYXV0aG9yaXplck5hbWUgPz8gdGhpcy5zdGFjay51bmlxdWVSZXNvdXJjZU5hbWUodGhpcyk7XG4gICAgdGhpcy5hdXRob3JpemVyUHJvcHMgPSB7XG4gICAgICBuYW1lOiBhdXRob3JpemVyTmFtZSxcbiAgICAgIHJlc3RBcGlJZDogcmVzdEFwaUlkLFxuICAgICAgdHlwZTogXCJSRVFVRVNUXCIsXG4gICAgICBhdXRob3JpemVyVXJpOiBsYW1iZGFBdXRob3JpemVyQXJuKHByb3BzLmhhbmRsZXIpLFxuICAgICAgYXV0aG9yaXplckNyZWRlbnRpYWxzOiBwcm9wcy5hc3N1bWVSb2xlPy5yb2xlQXJuLFxuICAgICAgYXV0aG9yaXplclJlc3VsdFR0bEluU2Vjb25kczpcbiAgICAgICAgcHJvcHMucmVzdWx0c0NhY2hlVHRsPy50b1NlY29uZHMoKSA/PyBEdXJhdGlvbi5taW51dGVzKDUpLnRvU2Vjb25kcygpLFxuICAgICAgaWRlbnRpdHlTb3VyY2U6XG4gICAgICAgIHByb3BzLmlkZW50aXR5U291cmNlcy5sZW5ndGggIT09IDBcbiAgICAgICAgICA/IHByb3BzLmlkZW50aXR5U291cmNlcy5tYXAoKGlzKSA9PiBpcy50b1N0cmluZygpKS5qb2luKFwiLFwiKVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH07XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGFwaUdhdGV3YXlBdXRob3JpemVyLkFwaUdhdGV3YXlBdXRob3JpemVyKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHRoaXMuYXV0aG9yaXplclByb3BzLFxuICAgICk7XG5cbiAgICB0aGlzLmF1dGhvcml6ZXJJZCA9IHRoaXMucmVzb3VyY2UuaWQ7XG4gICAgdGhpcy5hdXRob3JpemVyQXJuID0gdGhpcy5zdGFjay5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogXCJleGVjdXRlLWFwaVwiLFxuICAgICAgcmVzb3VyY2U6IHJlc3RBcGlJZCwgLy8gVGhpcyB3aWxsIGJlIGEgdG9rZW5cbiAgICAgIHJlc291cmNlTmFtZTogYGF1dGhvcml6ZXJzLyR7dGhpcy5hdXRob3JpemVySWR9YCxcbiAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG5cbiAgICB0aGlzLnNldHVwUGVybWlzc2lvbnMoKTtcbiAgfVxuICBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgYXV0aG9yaXplcklkOiB0aGlzLmF1dGhvcml6ZXJJZCxcbiAgICAgIGF1dGhvcml6ZXJBcm46IHRoaXMuYXV0aG9yaXplckFybixcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogY29uc3RydWN0cyB0aGUgYXV0aG9yaXplclVSSUFybi5cbiAqL1xuZnVuY3Rpb24gbGFtYmRhQXV0aG9yaXplckFybihoYW5kbGVyOiBsYW1iZGEuSUZ1bmN0aW9uKTogc3RyaW5nIHtcbiAgcmV0dXJuIGhhbmRsZXIuZnVuY3Rpb25JbnZva2VBcm47XG5cbiAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGlzIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBpdCB3YXMgbW92ZWQgdG8gdGhlIGltcG9ydGVkIExhbWJkYUZ1bmN0aW9uIGNsYXNzLlxuICAvLyBjb25zdCB7IHJlZ2lvbiwgcGFydGl0aW9uIH0gPSBBcm4uc3BsaXQoXG4gIC8vICAgaGFuZGxlci5mdW5jdGlvbkFybixcbiAgLy8gICBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSxcbiAgLy8gKTtcbiAgLy8gcmV0dXJuIGBhcm46JHtwYXJ0aXRpb259OmFwaWdhdGV3YXk6JHtyZWdpb259OmxhbWJkYTpwYXRoLzIwMTUtMDMtMzEvZnVuY3Rpb25zLyR7aGFuZGxlci5mdW5jdGlvbkFybn0vaW52b2NhdGlvbnNgO1xufVxuIl19
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.normalizeIntervals = normalizeIntervals;
5
5
  exports.findAlarmThresholds = findAlarmThresholds;
6
+ const errors_1 = require("../../../errors");
6
7
  /**
7
8
  * Normalize the given interval set to cover the complete number line and make sure it has at most one gap
8
9
  */
@@ -25,13 +26,11 @@ function normalizeIntervals(intervals, changesAreAbsolute) {
25
26
  */
26
27
  function orderAndCompleteIntervals(intervals) {
27
28
  if (intervals.length < 2) {
28
- // throw new UnscopedValidationError(
29
- throw new Error("Require at least 2 intervals");
29
+ throw new errors_1.UnscopedValidationError("Require at least 2 intervals");
30
30
  }
31
31
  for (const interval of intervals) {
32
32
  if (interval.lower === undefined && interval.upper === undefined) {
33
- // throw new UnscopedValidationError(
34
- throw new Error(`Must supply at least one of 'upper' or 'lower', got: ${JSON.stringify(interval)}`);
33
+ throw new errors_1.UnscopedValidationError(`Must supply at least one of 'upper' or 'lower', got: ${JSON.stringify(interval)}`);
35
34
  }
36
35
  }
37
36
  // Make a copy
@@ -52,16 +51,14 @@ function orderAndCompleteIntervals(intervals) {
52
51
  }
53
52
  for (const interval of intervals) {
54
53
  if (interval.lower === undefined || interval.upper === undefined) {
55
- // throw new UnscopedValidationError(
56
- throw new Error(`Could not determine the lower and upper bounds for ${JSON.stringify(interval)}`);
54
+ throw new errors_1.UnscopedValidationError(`Could not determine the lower and upper bounds for ${JSON.stringify(interval)}`);
57
55
  }
58
56
  }
59
57
  const completeIntervals = intervals;
60
58
  // Validate that we have nonoverlapping intervals now.
61
59
  for (let i = 0; i < completeIntervals.length - 1; i++) {
62
60
  if (overlap(completeIntervals[i], completeIntervals[i + 1])) {
63
- // throw new UnscopedValidationError(
64
- throw new Error(`Two intervals overlap: ${JSON.stringify(completeIntervals[i])} and ${JSON.stringify(completeIntervals[i + 1])}`);
61
+ throw new errors_1.UnscopedValidationError(`Two intervals overlap: ${JSON.stringify(completeIntervals[i])} and ${JSON.stringify(completeIntervals[i + 1])}`);
65
62
  }
66
63
  }
67
64
  // Fill up the gaps
@@ -141,8 +138,7 @@ function combineUndefineds(intervals) {
141
138
  function validateAtMostOneUndefined(intervals) {
142
139
  const undef = intervals.filter((x) => x.change === undefined);
143
140
  if (undef.length > 1) {
144
- // throw new UnscopedValidationError(
145
- throw new Error(`Can have at most one no-change interval, got ${JSON.stringify(undef)}`);
141
+ throw new errors_1.UnscopedValidationError(`Can have at most one no-change interval, got ${JSON.stringify(undef)}`);
146
142
  }
147
143
  }
148
144
  function comparatorFromKey(keyFn) {
@@ -210,4 +206,4 @@ function findAlarmThresholds(intervals) {
210
206
  upperAlarmIntervalIndex: middleIndex,
211
207
  };
212
208
  }
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvYXV0b3NjYWxpbmctY29tbW9uL2ludGVydmFsLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpSEFBaUg7O0FBaUJqSCxnREFtQkM7QUEwTkQsa0RBdUJDO0FBdlFEOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQ2hDLFNBQTRCLEVBQzVCLGtCQUEyQjtJQUUzQix1Q0FBdUM7SUFDdkMsTUFBTSxJQUFJLEdBQUcseUJBQXlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEQseURBQXlEO0lBQ3pELGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhCLHVGQUF1RjtJQUN2RixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN4QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsdUVBQXVFO0lBQ3ZFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyx5QkFBeUIsQ0FDaEMsU0FBNEI7SUFFNUIsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pCLHFDQUFxQztRQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7UUFDakMsSUFBSSxRQUFRLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxRQUFRLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pFLHFDQUFxQztZQUNyQyxNQUFNLElBQUksS0FBSyxDQUNiLHdEQUF3RCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEs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QyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDM0IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFckQsT0FBTztRQUNMLHVCQUF1QixFQUFFLFdBQVcsR0FBRyxDQUFDO1FBQ3hDLHVCQUF1QixFQUFFLFdBQVc7S0FDckMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xODYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtYXV0b3NjYWxpbmctY29tbW9uL2xpYi9pbnRlcnZhbC11dGlscy50c1xuXG5pbXBvcnQgeyBTY2FsaW5nSW50ZXJ2YWwgfSBmcm9tIFwiLi90eXBlc1wiO1xuLy8gVE9ETyBBZHVwdCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciBpcyBhdmFpbGFibGUsIG90aGVyd2lzZSB1c2Ugc3RhbmRhcmQgRXJyb3Jcbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL3B1bGwvMzMzODIvXG4vLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9wdWxsLzMzMDQ1XG4vLyBpbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3JzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxldGVTY2FsaW5nSW50ZXJ2YWwge1xuICByZWFkb25seSBsb3dlcjogbnVtYmVyO1xuICByZWFkb25seSB1cHBlcjogbnVtYmVyO1xuICByZWFkb25seSBjaGFuZ2U/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIHRoZSBnaXZlbiBpbnRlcnZhbCBzZXQgdG8gY292ZXIgdGhlIGNvbXBsZXRlIG51bWJlciBsaW5lIGFuZCBtYWtlIHN1cmUgaXQgaGFzIGF0IG1vc3Qgb25lIGdhcFxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplSW50ZXJ2YWxzKFxuICBpbnRlcnZhbHM6IFNjYWxpbmdJbnRlcnZhbFtdLFxuICBjaGFuZ2VzQXJlQWJzb2x1dGU6IGJvb2xlYW4sXG4pOiBDb21wbGV0ZVNjYWxpbmdJbnRlcnZhbFtdIHtcbiAgLy8gTWFrZSBpbnRlcnZhbHMgYSBjb21wbGV0ZSBudW1iZXJsaW5lXG4gIGNvbnN0IGZ1bGwgPSBvcmRlckFuZENvbXBsZXRlSW50ZXJ2YWxzKGludGVydmFscyk7XG4gIC8vIEFkZCAndW5kZWZpbmVkJ3MgaW4gdW5jb3ZlcmVkIGFyZWFzIG9mIHRoZSBudW1iZXIgbGluZVxuICBtYWtlR2Fwc1VuZGVmaW5lZChmdWxsKTtcblxuICAvLyBJbiBjYXNlIG9mIHJlbGF0aXZlIGNoYW5nZXMsIHRyZWF0IDAtY2hhbmdlIGFsc28gYXMgJ3VuZGVmaW5lZCcgKD0gbm8gY2hhbmdlIGFjdGlvbilcbiAgaWYgKCFjaGFuZ2VzQXJlQWJzb2x1dGUpIHtcbiAgICBtYWtlWmVyb3NVbmRlZmluZWQoZnVsbCk7XG4gIH1cblxuICAvLyBDb21iaW5lIGFkamFjZW50IHVuZGVmaW5lcyBhbmQgbWFrZSBzdXJlIHRoZXJlJ3MgYXQgbW9zdCBvbmUgb2YgdGhlbVxuICBjb21iaW5lVW5kZWZpbmVkcyhmdWxsKTtcbiAgdmFsaWRhdGVBdE1vc3RPbmVVbmRlZmluZWQoZnVsbCk7XG5cbiAgcmV0dXJuIGZ1bGw7XG59XG5cbi8qKlxuICogQ29tcGxldGVseSBvcmRlciBzY2FsaW5nIGludGVydmFscywgbWFraW5nIHRoZWlyIGxvd2VyIGFuZCB1cHBlciBib3VuZHMgY29uY3JldGUuXG4gKi9cbmZ1bmN0aW9uIG9yZGVyQW5kQ29tcGxldGVJbnRlcnZhbHMoXG4gIGludGVydmFsczogU2NhbGluZ0ludGVydmFsW10sXG4pOiBDb21wbGV0ZVNjYWxpbmdJbnRlcnZhbFtdIHtcbiAgaWYgKGludGVydmFscy5sZW5ndGggPCAyKSB7XG4gICAgLy8gdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgIHRocm93IG5ldyBFcnJvcihcIlJlcXVpcmUgYXQgbGVhc3QgMiBpbnRlcnZhbHNcIik7XG4gIH1cblxuICBmb3IgKGNvbnN0IGludGVydmFsIG9mIGludGVydmFscykge1xuICAgIGlmIChpbnRlcnZhbC5sb3dlciA9PT0gdW5kZWZpbmVkICYmIGludGVydmFsLnVwcGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE11c3Qgc3VwcGx5IGF0IGxlYXN0IG9uZSBvZiAndXBwZXInIG9yICdsb3dlcicsIGdvdDogJHtKU09OLnN0cmluZ2lmeShpbnRlcnZhbCl9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gTWFrZSBhIGNvcHlcbiAgaW50ZXJ2YWxzID0gaW50ZXJ2YWxzLm1hcCgoeCkgPT4gKHsgLi4ueCB9KSk7XG5cbiAgLy8gU29ydCBieSB3aGF0ZXZlciBudW1iZXIgd2UgaGF2ZSBmb3IgZWFjaCBpbnRlcnZhbFxuICBpbnRlcnZhbHMuc29ydChjb21wYXJhdG9yRnJvbUtleSgoeDogU2NhbGluZ0ludGVydmFsKSA9PiB4Lmxvd2VyID8/IHgudXBwZXIpKTtcblxuICAvLyBQcm9wYWdhdGUgYm91bmRhcmllcyB1bnRpbCBubyBtb3JlIGNoYW5nZVxuICB3aGlsZSAocHJvcGFnYXRlQm91bmRzKGludGVydmFscykpIHtcbiAgICAvKiBSZXBlYXQgKi9cbiAgfVxuXG4gIGNvbnN0IGxhc3RJbmRleCA9IGludGVydmFscy5sZW5ndGggLSAxO1xuXG4gIC8vIFZhbGlkYXRlIHRoYXQgbm8gaW50ZXJ2YWxzIGhhdmUgdW5kZWZpbmVkIGJvdW5kcyBub3csIHdoaWNoIG11c3QgbWVhbiB0aGV5J3JlIGNvbXBsZXRlLlxuICBpZiAoaW50ZXJ2YWxzWzBdLmxvd2VyID09PSB1bmRlZmluZWQpIHtcbiAgICBpbnRlcnZhbHNbMF0gPSB7IC4uLmludGVydmFsc1swXSwgbG93ZXI6IDAgfTtcbiAgfVxuICBpZiAoaW50ZXJ2YWxzW2xhc3RJbmRleF0udXBwZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIGludGVydmFsc1tsYXN0SW5kZXhdID0geyAuLi5pbnRlcnZhbHNbbGFzdEluZGV4XSwgdXBwZXI6IEluZmluaXR5IH07XG4gIH1cbiAgZm9yIChjb25zdCBpbnRlcnZhbCBvZiBpbnRlcnZhbHMpIHtcbiAgICBpZiAoaW50ZXJ2YWwubG93ZXIgPT09IHVuZGVmaW5lZCB8fCBpbnRlcnZhbC51cHBlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBsb3dlciBhbmQgdXBwZXIgYm91bmRzIGZvciAke0pTT04uc3RyaW5naWZ5KGludGVydmFsKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBjb21wbGV0ZUludGVydmFscyA9IGludGVydmFscyBhcyBDb21wbGV0ZVNjYWxpbmdJbnRlcnZhbFtdO1xuXG4gIC8vIFZhbGlkYXRlIHRoYXQgd2UgaGF2ZSBub25vdmVybGFwcGluZyBpbnRlcnZhbHMgbm93LlxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbXBsZXRlSW50ZXJ2YWxzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIGlmIChvdmVybGFwKGNvbXBsZXRlSW50ZXJ2YWxzW2ldLCBjb21wbGV0ZUludGVydmFsc1tpICsgMV0pKSB7XG4gICAgICAvLyB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUd28gaW50ZXJ2YWxzIG92ZXJsYXA6ICR7SlNPTi5zdHJpbmdpZnkoY29tcGxldGVJbnRlcnZhbHNbaV0pfSBhbmQgJHtKU09OLnN0cmluZ2lmeShjb21wbGV0ZUludGVydmFsc1tpICsgMV0pfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZpbGwgdXAgdGhlIGdhcHNcblxuICByZXR1cm4gY29tcGxldGVJbnRlcnZhbHM7XG59XG5cbi8qKlxuICogTWFrZSB0aGUgaW50ZXJ2YWxzIGNvdmVyIHRoZSBjb21wbGV0ZSBudW1iZXIgbGluZVxuICpcbiAqIFRoaXMgZW50YWlscyBhZGRpbmcgaW50ZXJ2YWxzIHdpdGggYW4gJ3VuZGVmaW5lZCcgY2hhbmdlIHRvIGZpbGwgdXAgdGhlIGdhcHMuXG4gKlxuICogU2luY2UgbWV0cmljcyBoYXZlIGEgaGFsZm9wZW4gaW50ZXJ2YWwsIHRoZSBmaXJzdCBvbmUgd2lsbCBnZXQgYSBsb3dlciBib3VuZFxuICogb2YgMCwgdGhlIGxhc3Qgb25lIHdpbGwgZ2V0IGFuIHVwcGVyIGJvdW5kIG9mICtJbmZpbml0eS5cbiAqXG4gKiBJbiBjYXNlIG9mIGFic29sdXRlIGFkanVzdG1lbnRzLCB0aGUgbG93ZXIgbnVtYmVyIG9mIHRoZSBhZGphY2VudCBib3VuZCB3aWxsXG4gKiBiZSB1c2VkLCB3aGljaCBtZWFucyBjb25zZXJ2YXRpdmUgY2hhbmdlLiBJbiBjYXNlIG9mIHJlbGF0aXZlIGFkanVzdG1lbnRzLFxuICogd2UnbGwgdXNlIHJlbGF0aXZlIGFkanVzbWVudCAwICh3aGljaCBtZWFucyBubyBjaGFuZ2UpLlxuICovXG5mdW5jdGlvbiBtYWtlR2Fwc1VuZGVmaW5lZChpbnRlcnZhbHM6IENvbXBsZXRlU2NhbGluZ0ludGVydmFsW10pIHtcbiAgLy8gQWRkIGVkZ2UgaW50ZXJ2YWxzIGlmIG5lY2Vzc2FyeSwgYnV0IG9ubHkgZm9yIHJlbGF0aXZlIGFkanVzdG1lbnRzLiBTaW5jZSB3ZSdyZVxuICAvLyBnb2luZyB0byBtYWtlIHNjYWxpbmcgaW50ZXJ2YWxzIGV4dGVuZCBhbGwgdGhlIHdheSBvdXQgdG8gaW5maW5pdHkgb24gZWl0aGVyIHNpZGUsXG4gIC8vIHRoZSByZXN1bHQgaXMgdGhlIHNhbWUgZm9yIGFic29sdXRlIGFkanVzdG1lbnRzIGFueXdheS5cbiAgaWYgKGludGVydmFsc1swXS5sb3dlciAhPT0gMCkge1xuICAgIGludGVydmFscy5zcGxpY2UoMCwgMCwge1xuICAgICAgbG93ZXI6IDAsXG4gICAgICB1cHBlcjogaW50ZXJ2YWxzWzBdLmxvd2VyLFxuICAgICAgY2hhbmdlOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cbiAgaWYgKGxhc3QoaW50ZXJ2YWxzKS51cHBlciAhPT0gSW5maW5pdHkpIHtcbiAgICBpbnRlcnZhbHMucHVzaCh7XG4gICAgICBsb3dlcjogbGFzdChpbnRlcnZhbHMpLnVwcGVyLFxuICAgICAgdXBwZXI6IEluZmluaXR5LFxuICAgICAgY2hhbmdlOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBsZXQgaSA9IDE7XG4gIHdoaWxlIChpIDwgaW50ZXJ2YWxzLmxlbmd0aCkge1xuICAgIGlmIChpbnRlcnZhbHNbaSAtIDFdLnVwcGVyIDwgaW50ZXJ2YWxzW2ldLmxvd2VyKSB7XG4gICAgICBpbnRlcnZhbHMuc3BsaWNlKGksIDAsIHtcbiAgICAgICAgbG93ZXI6IGludGVydmFsc1tpIC0gMV0udXBwZXIsXG4gICAgICAgIHVwcGVyOiBpbnRlcnZhbHNbaV0ubG93ZXIsXG4gICAgICAgIGNoYW5nZTogdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGkrKztcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBUdXJuIHplcm8gY2hhbmdlcyBpbnRvIHVuZGVmaW5lZCwgaW4tcGxhY2VcbiAqL1xuZnVuY3Rpb24gbWFrZVplcm9zVW5kZWZpbmVkKGludGVydmFsczogQ29tcGxldGVTY2FsaW5nSW50ZXJ2YWxbXSkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGludGVydmFscy5sZW5ndGg7ICsraSkge1xuICAgIGNvbnN0IGludGVydmFsID0gaW50ZXJ2YWxzW2ldO1xuICAgIGlmIChpbnRlcnZhbC5jaGFuZ2UgPT09IDApIHtcbiAgICAgIGludGVydmFsc1tpXSA9IHsgLi4uaW50ZXJ2YWwsIGNoYW5nZTogdW5kZWZpbmVkIH07XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogSWYgdGhlcmUgYXJlIGFkamFjZW50IFwidW5kZWZpbmVkXCIgaW50ZXJ2YWxzLCBjb21iaW5lIHRoZW1cbiAqL1xuZnVuY3Rpb24gY29tYmluZVVuZGVmaW5lZHMoaW50ZXJ2YWxzOiBDb21wbGV0ZVNjYWxpbmdJbnRlcnZhbFtdKSB7XG4gIGxldCBpID0gMDtcbiAgd2hpbGUgKGkgPCBpbnRlcnZhbHMubGVuZ3RoIC0gMSkge1xuICAgIGlmIChcbiAgICAgIGludGVydmFsc1tpXS5jaGFuZ2UgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgaW50ZXJ2YWxzW2kgKyAxXS5jaGFuZ2UgPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgaW50ZXJ2YWxzW2ldID0geyAuLi5pbnRlcnZhbHNbaV0sIHVwcGVyOiBpbnRlcnZhbHNbaSArIDFdLnVwcGVyIH07XG4gICAgICBpbnRlcnZhbHMuc3BsaWNlKGkgKyAxLCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaSsrO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUF0TW9zdE9uZVVuZGVmaW5lZChpbnRlcnZhbHM6IENvbXBsZXRlU2NhbGluZ0ludGVydmFsW10pIHtcbiAgY29uc3QgdW5kZWYgPSBpbnRlcnZhbHMuZmlsdGVyKCh4KSA9PiB4LmNoYW5nZSA9PT0gdW5kZWZpbmVkKTtcbiAgaWYgKHVuZGVmLmxlbmd0aCA+IDEpIHtcbiAgICAvLyB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENhbiBoYXZlIGF0IG1vc3Qgb25lIG5vLWNoYW5nZSBpbnRlcnZhbCwgZ290ICR7SlNPTi5zdHJpbmdpZnkodW5kZWYpfWAsXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21wYXJhdG9yRnJvbUtleTxULCBVPihrZXlGbjogKHg6IFQpID0+IFUpIHtcbiAgcmV0dXJuIChhOiBULCBiOiBUKSA9PiB7XG4gICAgY29uc3Qga2V5QSA9IGtleUZuKGEpO1xuICAgIGNvbnN0IGtleUIgPSBrZXlGbihiKTtcblxuICAgIGlmIChrZXlBIDwga2V5Qikge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBpZiAoa2V5QSA9PT0ga2V5Qikge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiAxO1xuICB9O1xufVxuXG5mdW5jdGlvbiBwcm9wYWdhdGVCb3VuZHMoaW50ZXJ2YWxzOiBTY2FsaW5nSW50ZXJ2YWxbXSkge1xuICBsZXQgcmV0ID0gZmFsc2U7XG5cbiAgLy8gUHJvcGFnYXRlIHVwcGVyIGJvdW5kcyB1cHdhcmRzXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW50ZXJ2YWxzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIGlmIChcbiAgICAgIGludGVydmFsc1tpXS51cHBlciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBpbnRlcnZhbHNbaSArIDFdLmxvd2VyID09PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIGludGVydmFsc1tpICsgMV0gPSB7IC4uLmludGVydmFsc1tpICsgMV0sIGxvd2VyOiBpbnRlcnZhbHNbaV0udXBwZXIgfTtcbiAgICAgIHJldCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJvcGFnYXRlIGxvd2VyIGJvdW5kcyBkb3dud2FyZHNcbiAgZm9yIChsZXQgaSA9IGludGVydmFscy5sZW5ndGggLSAxOyBpID49IDE7IGktLSkge1xuICAgIGlmIChcbiAgICAgIGludGVydmFsc1tpXS5sb3dlciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBpbnRlcnZhbHNbaSAtIDFdLnVwcGVyID09PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIGludGVydmFsc1tpIC0gMV0gPSB7IC4uLmludGVydmFsc1tpIC0gMV0sIHVwcGVyOiBpbnRlcnZhbHNbaV0ubG93ZXIgfTtcbiAgICAgIHJldCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHR3byBpbnRlcnZhbHMgb3ZlcmxhcFxuICovXG5mdW5jdGlvbiBvdmVybGFwKGE6IENvbXBsZXRlU2NhbGluZ0ludGVydmFsLCBiOiBDb21wbGV0ZVNjYWxpbmdJbnRlcnZhbCkge1xuICByZXR1cm4gYS5sb3dlciA8IGIudXBwZXIgJiYgYS51cHBlciA+IGIubG93ZXI7XG59XG5cbmZ1bmN0aW9uIGxhc3Q8VD4oeHM6IFRbXSkge1xuICByZXR1cm4geHNbeHMubGVuZ3RoIC0gMV07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxhcm1zIHtcbiAgcmVhZG9ubHkgbG93ZXJBbGFybUludGVydmFsSW5kZXg/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHVwcGVyQWxhcm1JbnRlcnZhbEluZGV4PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIExvY2F0ZSB0aGUgaW50ZXJ2YWxzIHRoYXQgc2hvdWxkIGhhdmUgdGhlIGFsYXJtIHRocmVzaG9sZHMsIGJ5IGluZGV4LlxuICpcbiAqIFBpY2sgdGhlIGludGVydmFscyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgc2luZ2xldG9uIFwidW5kZWZpbmVkXCIgaW50ZXJ2YWwsIG9yXG4gKiBwaWNrIHRoZSBtaWRkbGUgaW50ZXJ2YWwgaWYgdGhlcmUncyBubyBzdWNoIGludGVydmFsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEFsYXJtVGhyZXNob2xkcyhcbiAgaW50ZXJ2YWxzOiBDb21wbGV0ZVNjYWxpbmdJbnRlcnZhbFtdLFxuKTogQWxhcm1zIHtcbiAgY29uc3QgZ2FwSW5kZXggPSBpbnRlcnZhbHMuZmluZEluZGV4KCh4KSA9PiB4LmNoYW5nZSA9PT0gdW5kZWZpbmVkKTtcblxuICBpZiAoZ2FwSW5kZXggIT09IC0xKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvd2VyQWxhcm1JbnRlcnZhbEluZGV4OiBnYXBJbmRleCA+IDAgPyBnYXBJbmRleCAtIDEgOiB1bmRlZmluZWQsXG4gICAgICB1cHBlckFsYXJtSW50ZXJ2YWxJbmRleDpcbiAgICAgICAgZ2FwSW5kZXggPCBpbnRlcnZhbHMubGVuZ3RoIC0gMSA/IGdhcEluZGV4ICsgMSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKGludGVydmFscy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4geyB1cHBlckFsYXJtSW50ZXJ2YWxJbmRleDogMCB9O1xuICB9XG5cbiAgY29uc3QgbWlkZGxlSW5kZXggPSBNYXRoLmZsb29yKGludGVydmFscy5sZW5ndGggLyAyKTtcblxuICByZXR1cm4ge1xuICAgIGxvd2VyQWxhcm1JbnRlcnZhbEluZGV4OiBtaWRkbGVJbmRleCAtIDEsXG4gICAgdXBwZXJBbGFybUludGVydmFsSW5kZXg6IG1pZGRsZUluZGV4LFxuICB9O1xufVxuIl19
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvYXV0b3NjYWxpbmctY29tbW9uL2ludGVydmFsLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpSEFBaUg7O0FBY2pILGdEQW1CQztBQXFORCxrREF1QkM7QUExUUQsNENBQTBEO0FBUTFEOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQ2hDLFNBQTRCLEVBQzVCLGtCQUEyQjtJQUUzQix1Q0FBdUM7SUFDdkMsTUFBTSxJQUFJLEdBQUcseUJBQXlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEQseURBQXlEO0lBQ3pELGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhCLHVGQUF1RjtJQUN2RixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN4QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsdUVBQXVFO0lBQ3ZFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpDLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyx5QkFBeUIsQ0FDaEMsU0FBNEI7SUFFNUIsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxnQ0FBdUIsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLElBQUksUUFBUSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksUUFBUSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqRSxNQUFNLElBQUksZ0NBQXVCLENBQy9CLHdEQUF3RCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFF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QUFFLHVCQUF1QixFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFckQsT0FBTztRQUNMLHVCQUF1QixFQUFFLFdBQVcsR0FBRyxDQUFDO1FBQ3hDLHVCQUF1QixFQUFFLFdBQVc7S0FDckMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xODYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtYXV0b3NjYWxpbmctY29tbW9uL2xpYi9pbnRlcnZhbC11dGlscy50c1xuXG5pbXBvcnQgeyBTY2FsaW5nSW50ZXJ2YWwgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiLi4vLi4vLi4vZXJyb3JzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGxldGVTY2FsaW5nSW50ZXJ2YWwge1xuICByZWFkb25seSBsb3dlcjogbnVtYmVyO1xuICByZWFkb25seSB1cHBlcjogbnVtYmVyO1xuICByZWFkb25seSBjaGFuZ2U/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIHRoZSBnaXZlbiBpbnRlcnZhbCBzZXQgdG8gY292ZXIgdGhlIGNvbXBsZXRlIG51bWJlciBsaW5lIGFuZCBtYWtlIHN1cmUgaXQgaGFzIGF0IG1vc3Qgb25lIGdhcFxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplSW50ZXJ2YWxzKFxuICBpbnRlcnZhbHM6IFNjYWxpbmdJbnRlcnZhbFtdLFxuICBjaGFuZ2VzQXJlQWJzb2x1dGU6IGJvb2xlYW4sXG4pOiBDb21wbGV0ZVNjYWxpbmdJbnRlcnZhbFtdIHtcbiAgLy8gTWFrZSBpbnRlcnZhbHMgYSBjb21wbGV0ZSBudW1iZXJsaW5lXG4gIGNvbnN0IGZ1bGwgPSBvcmRlckFuZENvbXBsZXRlSW50ZXJ2YWxzKGludGVydmFscyk7XG4gIC8vIEFkZCAndW5kZWZpbmVkJ3MgaW4gdW5jb3ZlcmVkIGFyZWFzIG9mIHRoZSBudW1iZXIgbGluZVxuICBtYWtlR2Fwc1VuZGVmaW5lZChmdWxsKTtcblxuICAvLyBJbiBjYXNlIG9mIHJlbGF0aXZlIGNoYW5nZXMsIHRyZWF0IDAtY2hhbmdlIGFsc28gYXMgJ3VuZGVmaW5lZCcgKD0gbm8gY2hhbmdlIGFjdGlvbilcbiAgaWYgKCFjaGFuZ2VzQXJlQWJzb2x1dGUpIHtcbiAgICBtYWtlWmVyb3NVbmRlZmluZWQoZnVsbCk7XG4gIH1cblxuICAvLyBDb21iaW5lIGFkamFjZW50IHVuZGVmaW5lcyBhbmQgbWFrZSBzdXJlIHRoZXJlJ3MgYXQgbW9zdCBvbmUgb2YgdGhlbVxuICBjb21iaW5lVW5kZWZpbmVkcyhmdWxsKTtcbiAgdmFsaWRhdGVBdE1vc3RPbmVVbmRlZmluZWQoZnVsbCk7XG5cbiAgcmV0dXJuIGZ1bGw7XG59XG5cbi8qKlxuICogQ29tcGxldGVseSBvcmRlciBzY2FsaW5nIGludGVydmFscywgbWFraW5nIHRoZWlyIGxvd2VyIGFuZCB1cHBlciBib3VuZHMgY29uY3JldGUuXG4gKi9cbmZ1bmN0aW9uIG9yZGVyQW5kQ29tcGxldGVJbnRlcnZhbHMoXG4gIGludGVydmFsczogU2NhbGluZ0ludGVydmFsW10sXG4pOiBDb21wbGV0ZVNjYWxpbmdJbnRlcnZhbFtdIHtcbiAgaWYgKGludGVydmFscy5sZW5ndGggPCAyKSB7XG4gICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFwiUmVxdWlyZSBhdCBsZWFzdCAyIGludGVydmFsc1wiKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgaW50ZXJ2YWwgb2YgaW50ZXJ2YWxzKSB7XG4gICAgaWYgKGludGVydmFsLmxvd2VyID09PSB1bmRlZmluZWQgJiYgaW50ZXJ2YWwudXBwZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBgTXVzdCBzdXBwbHkgYXQgbGVhc3Qgb25lIG9mICd1cHBlcicgb3IgJ2xvd2VyJywgZ290OiAke0pTT04uc3RyaW5naWZ5KGludGVydmFsKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBNYWtlIGEgY29weVxuICBpbnRlcnZhbHMgPSBpbnRlcnZhbHMubWFwKCh4KSA9PiAoeyAuLi54IH0pKTtcblxuICAvLyBTb3J0IGJ5IHdoYXRldmVyIG51bWJlciB3ZSBoYXZlIGZvciBlYWNoIGludGVydmFsXG4gIGludGVydmFscy5zb3J0KGNvbXBhcmF0b3JGcm9tS2V5KCh4OiBTY2FsaW5nSW50ZXJ2YWwpID0+IHgubG93ZXIgPz8geC51cHBlcikpO1xuXG4gIC8vIFByb3BhZ2F0ZSBib3VuZGFyaWVzIHVudGlsIG5vIG1vcmUgY2hhbmdlXG4gIHdoaWxlIChwcm9wYWdhdGVCb3VuZHMoaW50ZXJ2YWxzKSkge1xuICAgIC8qIFJlcGVhdCAqL1xuICB9XG5cbiAgY29uc3QgbGFzdEluZGV4ID0gaW50ZXJ2YWxzLmxlbmd0aCAtIDE7XG5cbiAgLy8gVmFsaWRhdGUgdGhhdCBubyBpbnRlcnZhbHMgaGF2ZSB1bmRlZmluZWQgYm91bmRzIG5vdywgd2hpY2ggbXVzdCBtZWFuIHRoZXkncmUgY29tcGxldGUuXG4gIGlmIChpbnRlcnZhbHNbMF0ubG93ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIGludGVydmFsc1swXSA9IHsgLi4uaW50ZXJ2YWxzWzBdLCBsb3dlcjogMCB9O1xuICB9XG4gIGlmIChpbnRlcnZhbHNbbGFzdEluZGV4XS51cHBlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaW50ZXJ2YWxzW2xhc3RJbmRleF0gPSB7IC4uLmludGVydmFsc1tsYXN0SW5kZXhdLCB1cHBlcjogSW5maW5pdHkgfTtcbiAgfVxuICBmb3IgKGNvbnN0IGludGVydmFsIG9mIGludGVydmFscykge1xuICAgIGlmIChpbnRlcnZhbC5sb3dlciA9PT0gdW5kZWZpbmVkIHx8IGludGVydmFsLnVwcGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYENvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGxvd2VyIGFuZCB1cHBlciBib3VuZHMgZm9yICR7SlNPTi5zdHJpbmdpZnkoaW50ZXJ2YWwpfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNvbXBsZXRlSW50ZXJ2YWxzID0gaW50ZXJ2YWxzIGFzIENvbXBsZXRlU2NhbGluZ0ludGVydmFsW107XG5cbiAgLy8gVmFsaWRhdGUgdGhhdCB3ZSBoYXZlIG5vbm92ZXJsYXBwaW5nIGludGVydmFscyBub3cuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY29tcGxldGVJbnRlcnZhbHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgaWYgKG92ZXJsYXAoY29tcGxldGVJbnRlcnZhbHNbaV0sIGNvbXBsZXRlSW50ZXJ2YWxzW2kgKyAxXSkpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYFR3byBpbnRlcnZhbHMgb3ZlcmxhcDogJHtKU09OLnN0cmluZ2lmeShjb21wbGV0ZUludGVydmFsc1tpXSl9IGFuZCAke0pTT04uc3RyaW5naWZ5KGNvbXBsZXRlSW50ZXJ2YWxzW2kgKyAxXSl9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gRmlsbCB1cCB0aGUgZ2Fwc1xuXG4gIHJldHVybiBjb21wbGV0ZUludGVydmFscztcbn1cblxuLyoqXG4gKiBNYWtlIHRoZSBpbnRlcnZhbHMgY292ZXIgdGhlIGNvbXBsZXRlIG51bWJlciBsaW5lXG4gKlxuICogVGhpcyBlbnRhaWxzIGFkZGluZyBpbnRlcnZhbHMgd2l0aCBhbiAndW5kZWZpbmVkJyBjaGFuZ2UgdG8gZmlsbCB1cCB0aGUgZ2Fwcy5cbiAqXG4gKiBTaW5jZSBtZXRyaWNzIGhhdmUgYSBoYWxmb3BlbiBpbnRlcnZhbCwgdGhlIGZpcnN0IG9uZSB3aWxsIGdldCBhIGxvd2VyIGJvdW5kXG4gKiBvZiAwLCB0aGUgbGFzdCBvbmUgd2lsbCBnZXQgYW4gdXBwZXIgYm91bmQgb2YgK0luZmluaXR5LlxuICpcbiAqIEluIGNhc2Ugb2YgYWJzb2x1dGUgYWRqdXN0bWVudHMsIHRoZSBsb3dlciBudW1iZXIgb2YgdGhlIGFkamFjZW50IGJvdW5kIHdpbGxcbiAqIGJlIHVzZWQsIHdoaWNoIG1lYW5zIGNvbnNlcnZhdGl2ZSBjaGFuZ2UuIEluIGNhc2Ugb2YgcmVsYXRpdmUgYWRqdXN0bWVudHMsXG4gKiB3ZSdsbCB1c2UgcmVsYXRpdmUgYWRqdXNtZW50IDAgKHdoaWNoIG1lYW5zIG5vIGNoYW5nZSkuXG4gKi9cbmZ1bmN0aW9uIG1ha2VHYXBzVW5kZWZpbmVkKGludGVydmFsczogQ29tcGxldGVTY2FsaW5nSW50ZXJ2YWxbXSkge1xuICAvLyBBZGQgZWRnZSBpbnRlcnZhbHMgaWYgbmVjZXNzYXJ5LCBidXQgb25seSBmb3IgcmVsYXRpdmUgYWRqdXN0bWVudHMuIFNpbmNlIHdlJ3JlXG4gIC8vIGdvaW5nIHRvIG1ha2Ugc2NhbGluZyBpbnRlcnZhbHMgZXh0ZW5kIGFsbCB0aGUgd2F5IG91dCB0byBpbmZpbml0eSBvbiBlaXRoZXIgc2lkZSxcbiAgLy8gdGhlIHJlc3VsdCBpcyB0aGUgc2FtZSBmb3IgYWJzb2x1dGUgYWRqdXN0bWVudHMgYW55d2F5LlxuICBpZiAoaW50ZXJ2YWxzWzBdLmxvd2VyICE9PSAwKSB7XG4gICAgaW50ZXJ2YWxzLnNwbGljZSgwLCAwLCB7XG4gICAgICBsb3dlcjogMCxcbiAgICAgIHVwcGVyOiBpbnRlcnZhbHNbMF0ubG93ZXIsXG4gICAgICBjaGFuZ2U6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuICBpZiAobGFzdChpbnRlcnZhbHMpLnVwcGVyICE9PSBJbmZpbml0eSkge1xuICAgIGludGVydmFscy5wdXNoKHtcbiAgICAgIGxvd2VyOiBsYXN0KGludGVydmFscykudXBwZXIsXG4gICAgICB1cHBlcjogSW5maW5pdHksXG4gICAgICBjaGFuZ2U6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGxldCBpID0gMTtcbiAgd2hpbGUgKGkgPCBpbnRlcnZhbHMubGVuZ3RoKSB7XG4gICAgaWYgKGludGVydmFsc1tpIC0gMV0udXBwZXIgPCBpbnRlcnZhbHNbaV0ubG93ZXIpIHtcbiAgICAgIGludGVydmFscy5zcGxpY2UoaSwgMCwge1xuICAgICAgICBsb3dlcjogaW50ZXJ2YWxzW2kgLSAxXS51cHBlcixcbiAgICAgICAgdXBwZXI6IGludGVydmFsc1tpXS5sb3dlcixcbiAgICAgICAgY2hhbmdlOiB1bmRlZmluZWQsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaSsrO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFR1cm4gemVybyBjaGFuZ2VzIGludG8gdW5kZWZpbmVkLCBpbi1wbGFjZVxuICovXG5mdW5jdGlvbiBtYWtlWmVyb3NVbmRlZmluZWQoaW50ZXJ2YWxzOiBDb21wbGV0ZVNjYWxpbmdJbnRlcnZhbFtdKSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW50ZXJ2YWxzLmxlbmd0aDsgKytpKSB7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBpbnRlcnZhbHNbaV07XG4gICAgaWYgKGludGVydmFsLmNoYW5nZSA9PT0gMCkge1xuICAgICAgaW50ZXJ2YWxzW2ldID0geyAuLi5pbnRlcnZhbCwgY2hhbmdlOiB1bmRlZmluZWQgfTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBJZiB0aGVyZSBhcmUgYWRqYWNlbnQgXCJ1bmRlZmluZWRcIiBpbnRlcnZhbHMsIGNvbWJpbmUgdGhlbVxuICovXG5mdW5jdGlvbiBjb21iaW5lVW5kZWZpbmVkcyhpbnRlcnZhbHM6IENvbXBsZXRlU2NhbGluZ0ludGVydmFsW10pIHtcbiAgbGV0IGkgPSAwO1xuICB3aGlsZSAoaSA8IGludGVydmFscy5sZW5ndGggLSAxKSB7XG4gICAgaWYgKFxuICAgICAgaW50ZXJ2YWxzW2ldLmNoYW5nZSA9PT0gdW5kZWZpbmVkICYmXG4gICAgICBpbnRlcnZhbHNbaSArIDFdLmNoYW5nZSA9PT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBpbnRlcnZhbHNbaV0gPSB7IC4uLmludGVydmFsc1tpXSwgdXBwZXI6IGludGVydmFsc1tpICsgMV0udXBwZXIgfTtcbiAgICAgIGludGVydmFscy5zcGxpY2UoaSArIDEsIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpKys7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQXRNb3N0T25lVW5kZWZpbmVkKGludGVydmFsczogQ29tcGxldGVTY2FsaW5nSW50ZXJ2YWxbXSkge1xuICBjb25zdCB1bmRlZiA9IGludGVydmFscy5maWx0ZXIoKHgpID0+IHguY2hhbmdlID09PSB1bmRlZmluZWQpO1xuICBpZiAodW5kZWYubGVuZ3RoID4gMSkge1xuICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgIGBDYW4gaGF2ZSBhdCBtb3N0IG9uZSBuby1jaGFuZ2UgaW50ZXJ2YWwsIGdvdCAke0pTT04uc3RyaW5naWZ5KHVuZGVmKX1gLFxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tcGFyYXRvckZyb21LZXk8VCwgVT4oa2V5Rm46ICh4OiBUKSA9PiBVKSB7XG4gIHJldHVybiAoYTogVCwgYjogVCkgPT4ge1xuICAgIGNvbnN0IGtleUEgPSBrZXlGbihhKTtcbiAgICBjb25zdCBrZXlCID0ga2V5Rm4oYik7XG5cbiAgICBpZiAoa2V5QSA8IGtleUIpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgaWYgKGtleUEgPT09IGtleUIpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gMTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gcHJvcGFnYXRlQm91bmRzKGludGVydmFsczogU2NhbGluZ0ludGVydmFsW10pIHtcbiAgbGV0IHJldCA9IGZhbHNlO1xuXG4gIC8vIFByb3BhZ2F0ZSB1cHBlciBib3VuZHMgdXB3YXJkc1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGludGVydmFscy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICBpZiAoXG4gICAgICBpbnRlcnZhbHNbaV0udXBwZXIgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgaW50ZXJ2YWxzW2kgKyAxXS5sb3dlciA9PT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBpbnRlcnZhbHNbaSArIDFdID0geyAuLi5pbnRlcnZhbHNbaSArIDFdLCBsb3dlcjogaW50ZXJ2YWxzW2ldLnVwcGVyIH07XG4gICAgICByZXQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFByb3BhZ2F0ZSBsb3dlciBib3VuZHMgZG93bndhcmRzXG4gIGZvciAobGV0IGkgPSBpbnRlcnZhbHMubGVuZ3RoIC0gMTsgaSA+PSAxOyBpLS0pIHtcbiAgICBpZiAoXG4gICAgICBpbnRlcnZhbHNbaV0ubG93ZXIgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgaW50ZXJ2YWxzW2kgLSAxXS51cHBlciA9PT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBpbnRlcnZhbHNbaSAtIDFdID0geyAuLi5pbnRlcnZhbHNbaSAtIDFdLCB1cHBlcjogaW50ZXJ2YWxzW2ldLmxvd2VyIH07XG4gICAgICByZXQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogV2hldGhlciB0d28gaW50ZXJ2YWxzIG92ZXJsYXBcbiAqL1xuZnVuY3Rpb24gb3ZlcmxhcChhOiBDb21wbGV0ZVNjYWxpbmdJbnRlcnZhbCwgYjogQ29tcGxldGVTY2FsaW5nSW50ZXJ2YWwpIHtcbiAgcmV0dXJuIGEubG93ZXIgPCBiLnVwcGVyICYmIGEudXBwZXIgPiBiLmxvd2VyO1xufVxuXG5mdW5jdGlvbiBsYXN0PFQ+KHhzOiBUW10pIHtcbiAgcmV0dXJuIHhzW3hzLmxlbmd0aCAtIDFdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFsYXJtcyB7XG4gIHJlYWRvbmx5IGxvd2VyQWxhcm1JbnRlcnZhbEluZGV4PzogbnVtYmVyO1xuICByZWFkb25seSB1cHBlckFsYXJtSW50ZXJ2YWxJbmRleD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBMb2NhdGUgdGhlIGludGVydmFscyB0aGF0IHNob3VsZCBoYXZlIHRoZSBhbGFybSB0aHJlc2hvbGRzLCBieSBpbmRleC5cbiAqXG4gKiBQaWNrIHRoZSBpbnRlcnZhbHMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIHNpbmdsZXRvbiBcInVuZGVmaW5lZFwiIGludGVydmFsLCBvclxuICogcGljayB0aGUgbWlkZGxlIGludGVydmFsIGlmIHRoZXJlJ3Mgbm8gc3VjaCBpbnRlcnZhbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRBbGFybVRocmVzaG9sZHMoXG4gIGludGVydmFsczogQ29tcGxldGVTY2FsaW5nSW50ZXJ2YWxbXSxcbik6IEFsYXJtcyB7XG4gIGNvbnN0IGdhcEluZGV4ID0gaW50ZXJ2YWxzLmZpbmRJbmRleCgoeCkgPT4geC5jaGFuZ2UgPT09IHVuZGVmaW5lZCk7XG5cbiAgaWYgKGdhcEluZGV4ICE9PSAtMSkge1xuICAgIHJldHVybiB7XG4gICAgICBsb3dlckFsYXJtSW50ZXJ2YWxJbmRleDogZ2FwSW5kZXggPiAwID8gZ2FwSW5kZXggLSAxIDogdW5kZWZpbmVkLFxuICAgICAgdXBwZXJBbGFybUludGVydmFsSW5kZXg6XG4gICAgICAgIGdhcEluZGV4IDwgaW50ZXJ2YWxzLmxlbmd0aCAtIDEgPyBnYXBJbmRleCArIDEgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChpbnRlcnZhbHMubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIHsgdXBwZXJBbGFybUludGVydmFsSW5kZXg6IDAgfTtcbiAgfVxuXG4gIGNvbnN0IG1pZGRsZUluZGV4ID0gTWF0aC5mbG9vcihpbnRlcnZhbHMubGVuZ3RoIC8gMik7XG5cbiAgcmV0dXJuIHtcbiAgICBsb3dlckFsYXJtSW50ZXJ2YWxJbmRleDogbWlkZGxlSW5kZXggLSAxLFxuICAgIHVwcGVyQWxhcm1JbnRlcnZhbEluZGV4OiBtaWRkbGVJbmRleCxcbiAgfTtcbn1cbiJdfQ==
@@ -5,6 +5,7 @@ exports.BasePathMapping = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const provider_aws_1 = require("@cdktf/provider-aws");
7
7
  const cdktf_1 = require("cdktf");
8
+ const errors_1 = require("../../errors");
8
9
  const aws_construct_1 = require("../aws-construct");
9
10
  /**
10
11
  * This resource creates a base path that clients who call your API must use in
@@ -21,16 +22,13 @@ class BasePathMapping extends aws_construct_1.AwsConstructBase {
21
22
  super(scope, id, props);
22
23
  if (props.basePath && !cdktf_1.Token.isUnresolved(props.basePath)) {
23
24
  if (props.basePath.startsWith("/") || props.basePath.endsWith("/")) {
24
- // TODO: UnscopedValidationError
25
- throw new Error(`A base path cannot start or end with /", received: ${props.basePath}`);
25
+ throw new errors_1.UnscopedValidationError(`A base path cannot start or end with /", received: ${props.basePath}`);
26
26
  }
27
27
  if (props.basePath.match(/\/{2,}/)) {
28
- // TODO: UnscopedValidationError
29
- throw new Error(`A base path cannot have more than one consecutive /", received: ${props.basePath}`);
28
+ throw new errors_1.UnscopedValidationError(`A base path cannot have more than one consecutive /", received: ${props.basePath}`);
30
29
  }
31
30
  if (!props.basePath.match(/^[a-zA-Z0-9$_.+!*'()-/]+$/)) {
32
- // TODO: UnscopedValidationError
33
- throw new Error(`A base path may only contain letters, numbers, and one of "$-_.+!*'()", received: ${props.basePath}`);
31
+ throw new errors_1.UnscopedValidationError(`A base path may only contain letters, numbers, and one of "$-_.+!*'()", received: ${props.basePath}`);
34
32
  }
35
33
  }
36
34
  const attachToStage = props.attachToStage ?? true;
@@ -48,5 +46,5 @@ class BasePathMapping extends aws_construct_1.AwsConstructBase {
48
46
  }
49
47
  exports.BasePathMapping = BasePathMapping;
50
48
  _a = JSII_RTTI_SYMBOL_1;
51
- BasePathMapping[_a] = { fqn: "terraconstructs.aws.compute.BasePathMapping", version: "0.1.7" };
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wYXRoLW1hcHBpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvYmFzZS1wYXRoLW1hcHBpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBZ0U7QUFDaEUsaUNBQThCO0FBSzlCLG9EQUF1RTtBQTBDdkU7Ozs7OztHQU1HO0FBQ0gsTUFBYSxlQUFnQixTQUFRLGdDQUFnQjtJQUNuRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzFELElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDbkUsZ0NBQWdDO2dCQUNoQyxNQUFNLElBQUksS0FBSyxDQUNiLHNEQUFzRCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQ3ZFLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxnQ0FBZ0M7Z0JBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUVBQW1FLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FDcEYsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDO2dCQUN2RCxnQ0FBZ0M7Z0JBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQ2IscUZBQXFGLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FDdEcsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUM7UUFFbEQsSUFBSSxlQUFlLEdBQXNCLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDckQsSUFBSSxDQUFDLGVBQWUsSUFBSSxhQUFhLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2RSxlQUFlLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDbEQsQ0FBQztRQUVELElBQUksd0NBQXlCLENBQUMseUJBQXlCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUN4RSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsVUFBVTtZQUN2QyxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQzlCLFNBQVMsRUFBRSxlQUFlLEVBQUUsU0FBUztTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQTFDSCwwQ0EyQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhcGlHYXRld2F5QmFzZVBhdGhNYXBwaW5nIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgSURvbWFpbk5hbWUgfSBmcm9tIFwiLi9kb21haW4tbmFtZVwiO1xuaW1wb3J0IHsgSVJlc3RBcGkgfSBmcm9tIFwiLi9yZXN0YXBpXCI7XG5pbXBvcnQgeyBTdGFnZSB9IGZyb20gXCIuL3N0YWdlXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVBhdGhNYXBwaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBwYXRoIG5hbWUgdGhhdCBjYWxsZXJzIG9mIHRoZSBBUEkgbXVzdCBwcm92aWRlIGluIHRoZSBVUkwgYWZ0ZXJcbiAgICogdGhlIGRvbWFpbiBuYW1lIChlLmcuIGBleGFtcGxlLmNvbS9iYXNlLXBhdGhgKS4gSWYgeW91IHNwZWNpZnkgdGhpc1xuICAgKiBwcm9wZXJ0eSwgaXQgY2FuJ3QgYmUgYW4gZW1wdHkgc3RyaW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG1hcCByZXF1ZXN0cyBmcm9tIHRoZSBkb21haW4gcm9vdCAoZS5nLiBgZXhhbXBsZS5jb21gKS4gSWYgdGhpc1xuICAgKiBpcyB1bmRlZmluZWQsIG5vIGFkZGl0aW9uYWwgbWFwcGluZ3Mgd2lsbCBiZSBhbGxvd2VkIG9uIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBiYXNlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIERlcGxveW1lbnQgc3RhZ2Ugb2YgQVBJXG4gICAqIEBkZWZhdWx0IC0gbWFwIHRvIGRlcGxveW1lbnRTdGFnZSBvZiByZXN0QXBpIG90aGVyd2lzZSBzdGFnZSBuZWVkcyB0byBwYXNzIGluIFVSTFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2U/OiBTdGFnZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhdHRhY2ggdGhlIGJhc2UgcGF0aCBtYXBwaW5nIHRvIGEgc3RhZ2UuXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IHRvIGNyZWF0ZSBhIGJhc2UgcGF0aCBtYXBwaW5nIHdpdGhvdXQgYXR0YWNoaW5nIGl0IHRvIHRoZSBSZXN0IEFQSSBkZWZhdWx0IHN0YWdlLlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIGlnbm9yZWQgaWYgYHN0YWdlYCBpcyBwcm92aWRlZC5cbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBhdHRhY2hUb1N0YWdlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlUGF0aE1hcHBpbmdQcm9wc1xuICBleHRlbmRzIEJhc2VQYXRoTWFwcGluZ09wdGlvbnMsXG4gICAgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIERvbWFpbk5hbWUgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBiYXNlIHBhdGggbWFwcGluZy5cbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU6IElEb21haW5OYW1lO1xuXG4gIC8qKlxuICAgKiBUaGUgUmVzdEFwaSByZXNvdXJjZSB0byB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSByZXN0QXBpOiBJUmVzdEFwaTtcbn1cblxuLyoqXG4gKiBUaGlzIHJlc291cmNlIGNyZWF0ZXMgYSBiYXNlIHBhdGggdGhhdCBjbGllbnRzIHdobyBjYWxsIHlvdXIgQVBJIG11c3QgdXNlIGluXG4gKiB0aGUgaW52b2NhdGlvbiBVUkwuXG4gKlxuICogVW5sZXNzIHlvdSdyZSBpbXBvcnRpbmcgYSBkb21haW4gd2l0aCBgRG9tYWluTmFtZS5mcm9tRG9tYWluTmFtZUF0dHJpYnV0ZXMoKWAsXG4gKiB5b3UgY2FuIHVzZSBgRG9tYWluTmFtZS5hZGRCYXNlUGF0aE1hcHBpbmcoKWAgdG8gZGVmaW5lIG1hcHBpbmdzLlxuICovXG5leHBvcnQgY2xhc3MgQmFzZVBhdGhNYXBwaW5nIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSB7XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzZVBhdGhNYXBwaW5nUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGlmIChwcm9wcy5iYXNlUGF0aCAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmJhc2VQYXRoKSkge1xuICAgICAgaWYgKHByb3BzLmJhc2VQYXRoLnN0YXJ0c1dpdGgoXCIvXCIpIHx8IHByb3BzLmJhc2VQYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAvLyBUT0RPOiBVbnNjb3BlZFZhbGlkYXRpb25FcnJvclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEEgYmFzZSBwYXRoIGNhbm5vdCBzdGFydCBvciBlbmQgd2l0aCAvXCIsIHJlY2VpdmVkOiAke3Byb3BzLmJhc2VQYXRofWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuYmFzZVBhdGgubWF0Y2goL1xcL3syLH0vKSkge1xuICAgICAgICAvLyBUT0RPOiBVbnNjb3BlZFZhbGlkYXRpb25FcnJvclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEEgYmFzZSBwYXRoIGNhbm5vdCBoYXZlIG1vcmUgdGhhbiBvbmUgY29uc2VjdXRpdmUgL1wiLCByZWNlaXZlZDogJHtwcm9wcy5iYXNlUGF0aH1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKCFwcm9wcy5iYXNlUGF0aC5tYXRjaCgvXlthLXpBLVowLTkkXy4rISonKCktL10rJC8pKSB7XG4gICAgICAgIC8vIFRPRE86IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQSBiYXNlIHBhdGggbWF5IG9ubHkgY29udGFpbiBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgb25lIG9mIFwiJC1fLishKicoKVwiLCByZWNlaXZlZDogJHtwcm9wcy5iYXNlUGF0aH1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGF0dGFjaFRvU3RhZ2UgPSBwcm9wcy5hdHRhY2hUb1N0YWdlID8/IHRydWU7XG5cbiAgICBsZXQgc3RhZ2VGb3JNYXBwaW5nOiBTdGFnZSB8IHVuZGVmaW5lZCA9IHByb3BzLnN0YWdlO1xuICAgIGlmICghc3RhZ2VGb3JNYXBwaW5nICYmIGF0dGFjaFRvU3RhZ2UgJiYgcHJvcHMucmVzdEFwaS5kZXBsb3ltZW50U3RhZ2UpIHtcbiAgICAgIHN0YWdlRm9yTWFwcGluZyA9IHByb3BzLnJlc3RBcGkuZGVwbG95bWVudFN0YWdlO1xuICAgIH1cblxuICAgIG5ldyBhcGlHYXRld2F5QmFzZVBhdGhNYXBwaW5nLkFwaUdhdGV3YXlCYXNlUGF0aE1hcHBpbmcodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBiYXNlUGF0aDogcHJvcHMuYmFzZVBhdGgsXG4gICAgICBkb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lLmRvbWFpbk5hbWUsXG4gICAgICBhcGlJZDogcHJvcHMucmVzdEFwaS5yZXN0QXBpSWQsXG4gICAgICBzdGFnZU5hbWU6IHN0YWdlRm9yTWFwcGluZz8uc3RhZ2VOYW1lLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
49
+ BasePathMapping[_a] = { fqn: "terraconstructs.aws.compute.BasePathMapping", version: "0.1.9" };
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wYXRoLW1hcHBpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvYmFzZS1wYXRoLW1hcHBpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBZ0U7QUFDaEUsaUNBQThCO0FBSzlCLHlDQUF1RDtBQUN2RCxvREFBdUU7QUEwQ3ZFOzs7Ozs7R0FNRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxnQ0FBZ0I7SUFDbkQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsYUFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMxRCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ25FLE1BQU0sSUFBSSxnQ0FBdUIsQ0FDL0Isc0RBQXNELEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FDdkUsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sSUFBSSxnQ0FBdUIsQ0FDL0IsbUVBQW1FLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FDcEYsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDO2dCQUN2RCxNQUFNLElBQUksZ0NBQXVCLENBQy9CLHFGQUFxRixLQUFLLENBQUMsUUFBUSxFQUFFLENBQ3RHLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO1FBRWxELElBQUksZUFBZSxHQUFzQixLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3JELElBQUksQ0FBQyxlQUFlLElBQUksYUFBYSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkUsZUFBZSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQ2xELENBQUM7UUFFRCxJQUFJLHdDQUF5QixDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDeEUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVU7WUFDdkMsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUztZQUM5QixTQUFTLEVBQUUsZUFBZSxFQUFFLFNBQVM7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF2Q0gsMENBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXBpR2F0ZXdheUJhc2VQYXRoTWFwcGluZyB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IElEb21haW5OYW1lIH0gZnJvbSBcIi4vZG9tYWluLW5hbWVcIjtcbmltcG9ydCB7IElSZXN0QXBpIH0gZnJvbSBcIi4vcmVzdGFwaVwiO1xuaW1wb3J0IHsgU3RhZ2UgfSBmcm9tIFwiLi9zdGFnZVwiO1xuaW1wb3J0IHsgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3JzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVBhdGhNYXBwaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBwYXRoIG5hbWUgdGhhdCBjYWxsZXJzIG9mIHRoZSBBUEkgbXVzdCBwcm92aWRlIGluIHRoZSBVUkwgYWZ0ZXJcbiAgICogdGhlIGRvbWFpbiBuYW1lIChlLmcuIGBleGFtcGxlLmNvbS9iYXNlLXBhdGhgKS4gSWYgeW91IHNwZWNpZnkgdGhpc1xuICAgKiBwcm9wZXJ0eSwgaXQgY2FuJ3QgYmUgYW4gZW1wdHkgc3RyaW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG1hcCByZXF1ZXN0cyBmcm9tIHRoZSBkb21haW4gcm9vdCAoZS5nLiBgZXhhbXBsZS5jb21gKS4gSWYgdGhpc1xuICAgKiBpcyB1bmRlZmluZWQsIG5vIGFkZGl0aW9uYWwgbWFwcGluZ3Mgd2lsbCBiZSBhbGxvd2VkIG9uIHRoaXMgZG9tYWluIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBiYXNlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIERlcGxveW1lbnQgc3RhZ2Ugb2YgQVBJXG4gICAqIEBkZWZhdWx0IC0gbWFwIHRvIGRlcGxveW1lbnRTdGFnZSBvZiByZXN0QXBpIG90aGVyd2lzZSBzdGFnZSBuZWVkcyB0byBwYXNzIGluIFVSTFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2U/OiBTdGFnZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhdHRhY2ggdGhlIGJhc2UgcGF0aCBtYXBwaW5nIHRvIGEgc3RhZ2UuXG4gICAqIFVzZSB0aGlzIHByb3BlcnR5IHRvIGNyZWF0ZSBhIGJhc2UgcGF0aCBtYXBwaW5nIHdpdGhvdXQgYXR0YWNoaW5nIGl0IHRvIHRoZSBSZXN0IEFQSSBkZWZhdWx0IHN0YWdlLlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIGlnbm9yZWQgaWYgYHN0YWdlYCBpcyBwcm92aWRlZC5cbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBhdHRhY2hUb1N0YWdlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlUGF0aE1hcHBpbmdQcm9wc1xuICBleHRlbmRzIEJhc2VQYXRoTWFwcGluZ09wdGlvbnMsXG4gICAgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIERvbWFpbk5hbWUgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBiYXNlIHBhdGggbWFwcGluZy5cbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU6IElEb21haW5OYW1lO1xuXG4gIC8qKlxuICAgKiBUaGUgUmVzdEFwaSByZXNvdXJjZSB0byB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSByZXN0QXBpOiBJUmVzdEFwaTtcbn1cblxuLyoqXG4gKiBUaGlzIHJlc291cmNlIGNyZWF0ZXMgYSBiYXNlIHBhdGggdGhhdCBjbGllbnRzIHdobyBjYWxsIHlvdXIgQVBJIG11c3QgdXNlIGluXG4gKiB0aGUgaW52b2NhdGlvbiBVUkwuXG4gKlxuICogVW5sZXNzIHlvdSdyZSBpbXBvcnRpbmcgYSBkb21haW4gd2l0aCBgRG9tYWluTmFtZS5mcm9tRG9tYWluTmFtZUF0dHJpYnV0ZXMoKWAsXG4gKiB5b3UgY2FuIHVzZSBgRG9tYWluTmFtZS5hZGRCYXNlUGF0aE1hcHBpbmcoKWAgdG8gZGVmaW5lIG1hcHBpbmdzLlxuICovXG5leHBvcnQgY2xhc3MgQmFzZVBhdGhNYXBwaW5nIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSB7XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzZVBhdGhNYXBwaW5nUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGlmIChwcm9wcy5iYXNlUGF0aCAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmJhc2VQYXRoKSkge1xuICAgICAgaWYgKHByb3BzLmJhc2VQYXRoLnN0YXJ0c1dpdGgoXCIvXCIpIHx8IHByb3BzLmJhc2VQYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuICAgICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgYEEgYmFzZSBwYXRoIGNhbm5vdCBzdGFydCBvciBlbmQgd2l0aCAvXCIsIHJlY2VpdmVkOiAke3Byb3BzLmJhc2VQYXRofWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuYmFzZVBhdGgubWF0Y2goL1xcL3syLH0vKSkge1xuICAgICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgYEEgYmFzZSBwYXRoIGNhbm5vdCBoYXZlIG1vcmUgdGhhbiBvbmUgY29uc2VjdXRpdmUgL1wiLCByZWNlaXZlZDogJHtwcm9wcy5iYXNlUGF0aH1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKCFwcm9wcy5iYXNlUGF0aC5tYXRjaCgvXlthLXpBLVowLTkkXy4rISonKCktL10rJC8pKSB7XG4gICAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICBgQSBiYXNlIHBhdGggbWF5IG9ubHkgY29udGFpbiBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgb25lIG9mIFwiJC1fLishKicoKVwiLCByZWNlaXZlZDogJHtwcm9wcy5iYXNlUGF0aH1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGF0dGFjaFRvU3RhZ2UgPSBwcm9wcy5hdHRhY2hUb1N0YWdlID8/IHRydWU7XG5cbiAgICBsZXQgc3RhZ2VGb3JNYXBwaW5nOiBTdGFnZSB8IHVuZGVmaW5lZCA9IHByb3BzLnN0YWdlO1xuICAgIGlmICghc3RhZ2VGb3JNYXBwaW5nICYmIGF0dGFjaFRvU3RhZ2UgJiYgcHJvcHMucmVzdEFwaS5kZXBsb3ltZW50U3RhZ2UpIHtcbiAgICAgIHN0YWdlRm9yTWFwcGluZyA9IHByb3BzLnJlc3RBcGkuZGVwbG95bWVudFN0YWdlO1xuICAgIH1cblxuICAgIG5ldyBhcGlHYXRld2F5QmFzZVBhdGhNYXBwaW5nLkFwaUdhdGV3YXlCYXNlUGF0aE1hcHBpbmcodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBiYXNlUGF0aDogcHJvcHMuYmFzZVBhdGgsXG4gICAgICBkb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lLmRvbWFpbk5hbWUsXG4gICAgICBhcGlJZDogcHJvcHMucmVzdEFwaS5yZXN0QXBpSWQsXG4gICAgICBzdGFnZU5hbWU6IHN0YWdlRm9yTWFwcGluZz8uc3RhZ2VOYW1lLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -54,5 +54,5 @@ class BaseScalableAttribute extends constructs_1.Construct {
54
54
  }
55
55
  exports.BaseScalableAttribute = BaseScalableAttribute;
56
56
  _a = JSII_RTTI_SYMBOL_1;
57
- BaseScalableAttribute[_a] = { fqn: "terraconstructs.aws.compute.BaseScalableAttribute", version: "0.1.7" };
57
+ BaseScalableAttribute[_a] = { fqn: "terraconstructs.aws.compute.BaseScalableAttribute", version: "0.1.9" };
58
58
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zY2FsYWJsZS1hdHRyaWJ1dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvYmFzZS1zY2FsYWJsZS1hdHRyaWJ1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4SEFBOEg7QUFFOUgsMkNBQXVDO0FBQ3ZDLHVEQUkyQjtBQWdDM0I7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQXNCLHFCQUFzQixTQUFRLHNCQUFTO0lBRzNELFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNTLEtBQWlDO1FBRXBELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFGRSxVQUFLLEdBQUwsS0FBSyxDQUE0QjtRQUlwRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZ0NBQWMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQy9DLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCO1lBQzdDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztZQUN2QyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO1lBQ2pDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7WUFDckIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FBQztZQUNuQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ08saUJBQWlCLENBQUMsRUFBVSxFQUFFLEtBQXNCO1FBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxlQUFlLENBQUMsRUFBVSxFQUFFLEtBQWtDO1FBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxvQkFBb0IsQ0FDNUIsRUFBVSxFQUNWLEtBQTRDO1FBRTVDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7O0FBMUNILHNEQTJDQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE4Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nL2xpYi9iYXNlLXNjYWxhYmxlLWF0dHJpYnV0ZS50c1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgU2NhbGFibGVUYXJnZXQsXG4gIFNjYWxpbmdTY2hlZHVsZSxcbiAgU2VydmljZU5hbWVzcGFjZSxcbn0gZnJvbSBcIi4vc2NhbGFibGUtdGFyZ2V0XCI7XG5pbXBvcnQgeyBCYXNpY1N0ZXBTY2FsaW5nUG9saWN5UHJvcHMgfSBmcm9tIFwiLi9zdGVwLXNjYWxpbmctcG9saWN5XCI7XG5pbXBvcnQgeyBCYXNpY1RhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeVByb3BzIH0gZnJvbSBcIi4vdGFyZ2V0LXRyYWNraW5nLXNjYWxpbmctcG9saWN5XCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgU2NhbGFibGVUYWJsZUF0dHJpYnV0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VTY2FsYWJsZUF0dHJpYnV0ZVByb3BzIGV4dGVuZHMgRW5hYmxlU2NhbGluZ1Byb3BzIHtcbiAgLyoqXG4gICAqIFNlcnZpY2UgbmFtZXNwYWNlIG9mIHRoZSBzY2FsYWJsZSBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lc3BhY2U6IFNlcnZpY2VOYW1lc3BhY2U7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIElEIG9mIHRoZSBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogU2NhbGFibGUgZGltZW5zaW9uIG9mIHRoZSBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGRpbWVuc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSb2xlIHRvIHVzZSBmb3Igc2NhbGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCBBIHJvbGUgaXMgYXV0b21hdGljYWxseSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudCBhbiBhdHRyaWJ1dGUgZm9yIHdoaWNoIGF1dG9zY2FsaW5nIGNhbiBiZSBjb25maWd1cmVkXG4gKlxuICogVGhpcyBjbGFzcyBpcyBiYXNpY2FsbHkgYSBsaWdodCB3cmFwcGVyIGFyb3VuZCBTY2FsYWJsZVRhcmdldCwgYnV0IHdpdGhcbiAqIGFsbCBtZXRob2RzIHByb3RlY3RlZCBpbnN0ZWFkIG9mIHB1YmxpYyBzbyB0aGV5IGNhbiBiZSBzZWxlY3RpdmVseVxuICogZXhwb3NlZCBhbmQvb3IgbW9yZSBzcGVjaWZpYyB2ZXJzaW9ucyBvZiB0aGVtIGNhbiBiZSBleHBvc2VkIGJ5IGRlcml2ZWRcbiAqIGNsYXNzZXMgZm9yIGluZGl2aWR1YWwgc2VydmljZXMgc3VwcG9ydCBhdXRvc2NhbGluZy5cbiAqXG4gKiBUeXBpY2FsIHVzZSBjYXNlczpcbiAqXG4gKiAtIEhpZGUgYXdheSB0aGUgUHJlZGVmaW5lZE1ldHJpYyBlbnVtIGZvciB0YXJnZXQgdHJhY2tpbmcgcG9saWNpZXMuXG4gKiAtIERvbid0IGV4cG9zZSBhbGwgc2NhbGluZyBtZXRob2RzIChmb3IgZXhhbXBsZSBEeW5hbW8gdGFibGVzIGRvbid0IHN1cHBvcnRcbiAqICAgU3RlcCBTY2FsaW5nLCBzbyB0aGUgRHluYW1vIHN1YmNsYXNzIHdvbid0IGV4cG9zZSB0aGlzIG1ldGhvZCkuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU2NhbGFibGVBdHRyaWJ1dGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIHRhcmdldDogU2NhbGFibGVUYXJnZXQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJvcHM6IEJhc2VTY2FsYWJsZUF0dHJpYnV0ZVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy50YXJnZXQgPSBuZXcgU2NhbGFibGVUYXJnZXQodGhpcywgXCJUYXJnZXRcIiwge1xuICAgICAgc2VydmljZU5hbWVzcGFjZTogdGhpcy5wcm9wcy5zZXJ2aWNlTmFtZXNwYWNlLFxuICAgICAgc2NhbGFibGVEaW1lbnNpb246IHRoaXMucHJvcHMuZGltZW5zaW9uLFxuICAgICAgcmVzb3VyY2VJZDogdGhpcy5wcm9wcy5yZXNvdXJjZUlkLFxuICAgICAgcm9sZTogdGhpcy5wcm9wcy5yb2xlLFxuICAgICAgbWluQ2FwYWNpdHk6IHByb3BzLm1pbkNhcGFjaXR5ID8/IDEsXG4gICAgICBtYXhDYXBhY2l0eTogcHJvcHMubWF4Q2FwYWNpdHksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2NhbGUgb3V0IG9yIGluIGJhc2VkIG9uIHRpbWVcbiAgICovXG4gIHByb3RlY3RlZCBkb1NjYWxlT25TY2hlZHVsZShpZDogc3RyaW5nLCBwcm9wczogU2NhbGluZ1NjaGVkdWxlKSB7XG4gICAgdGhpcy50YXJnZXQuc2NhbGVPblNjaGVkdWxlKGlkLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogU2NhbGUgb3V0IG9yIGluIGJhc2VkIG9uIGEgbWV0cmljIHZhbHVlXG4gICAqL1xuICBwcm90ZWN0ZWQgZG9TY2FsZU9uTWV0cmljKGlkOiBzdHJpbmcsIHByb3BzOiBCYXNpY1N0ZXBTY2FsaW5nUG9saWN5UHJvcHMpIHtcbiAgICB0aGlzLnRhcmdldC5zY2FsZU9uTWV0cmljKGlkLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogU2NhbGUgb3V0IG9yIGluIGluIG9yZGVyIHRvIGtlZXAgYSBtZXRyaWMgYXJvdW5kIGEgdGFyZ2V0IHZhbHVlXG4gICAqL1xuICBwcm90ZWN0ZWQgZG9TY2FsZVRvVHJhY2tNZXRyaWMoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogQmFzaWNUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lQcm9wcyxcbiAgKSB7XG4gICAgdGhpcy50YXJnZXQuc2NhbGVUb1RyYWNrTWV0cmljKGlkLCBwcm9wcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBlbmFibGluZyBBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmFibGVTY2FsaW5nUHJvcHMge1xuICAvKipcbiAgICogTWluaW11bSBjYXBhY2l0eSB0byBzY2FsZSB0b1xuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBtaW5DYXBhY2l0eT86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBjYXBhY2l0eSB0byBzY2FsZSB0b1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q2FwYWNpdHk6IG51bWJlcjtcbn1cbiJdfQ==
@@ -110,5 +110,5 @@ class BastionHostLinux extends aws_construct_1.AwsConstructBase {
110
110
  }
111
111
  exports.BastionHostLinux = BastionHostLinux;
112
112
  _a = JSII_RTTI_SYMBOL_1;
113
- BastionHostLinux[_a] = { fqn: "terraconstructs.aws.compute.BastionHostLinux", version: "0.1.7" };
113
+ BastionHostLinux[_a] = { fqn: "terraconstructs.aws.compute.BastionHostLinux", version: "0.1.9" };
114
114
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzdGlvbi1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2Jhc3Rpb24taG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdHQUFnRztBQUVoRyxpQ0FBd0M7QUFFeEMsd0JBS1c7QUFHWCx5Q0FLb0I7QUFDcEIsbURBSXlCO0FBRXpCLGlDQUE4QjtBQUk5QixvREFBb0Q7QUFDcEQsNENBQXdDO0FBQ3hDLGdDQUE0RDtBQWtINUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsZ0NBQWdCO0lBQ3BELElBQVcsZUFBZTtRQUN4QixPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBc0RELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLG9CQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLE1BQU0sWUFBWSxHQUNoQixLQUFLLENBQUMsWUFBWTtZQUNsQixlQUFZLENBQUMsRUFBRSxDQUFDLGdCQUFhLENBQUMsRUFBRSxFQUFFLGVBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksbUJBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzdDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7WUFDeEMsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ2xDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLGFBQWE7WUFDakQsWUFBWTtZQUNa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LDRDQXVKQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3NS4xL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1lYzIvbGliL2Jhc3Rpb24taG9zdC50c1xuXG5pbXBvcnQgeyBUZXJyYWZvcm1PdXRwdXQgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBJbnN0YW5jZUFyY2hpdGVjdHVyZSxcbiAgSW5zdGFuY2VDbGFzcyxcbiAgSW5zdGFuY2VTaXplLFxuICBJbnN0YW5jZVR5cGUsXG59IGZyb20gXCIuXCI7XG4vLyBpbXBvcnQgeyBDbG91ZEZvcm1hdGlvbkluaXQgfSBmcm9tIFwiLi9jZm4taW5pdFwiO1xuaW1wb3J0IHsgQ29ubmVjdGlvbnMgfSBmcm9tIFwiLi9jb25uZWN0aW9uc1wiO1xuaW1wb3J0IHtcbiAgLy8gQXBwbHlDbG91ZEZvcm1hdGlvbkluaXRPcHRpb25zLFxuICBJSW5zdGFuY2UsXG4gIEluc3RhbmNlLFxuICBJbnN0YW5jZU91dHB1dHMsXG59IGZyb20gXCIuL2luc3RhbmNlXCI7XG5pbXBvcnQge1xuICBBbWF6b25MaW51eENwdVR5cGUsXG4gIElNYWNoaW5lSW1hZ2UsXG4gIE1hY2hpbmVJbWFnZSxcbn0gZnJvbSBcIi4vbWFjaGluZS1pbWFnZVwiO1xuaW1wb3J0IHsgSVBlZXIgfSBmcm9tIFwiLi9wZWVyXCI7XG5pbXBvcnQgeyBQb3J0IH0gZnJvbSBcIi4vcG9ydFwiO1xuaW1wb3J0IHsgSVNlY3VyaXR5R3JvdXAgfSBmcm9tIFwiLi9zZWN1cml0eS1ncm91cFwiO1xuaW1wb3J0IHsgQmxvY2tEZXZpY2UgfSBmcm9tIFwiLi92b2x1bWVcIjtcbmltcG9ydCB7IElWcGMsIFN1Ym5ldFNlbGVjdGlvbiB9IGZyb20gXCIuL3ZwY1wiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0QmFzZSB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi9hd3Mtc3RhY2tcIjtcbmltcG9ydCB7IElQcmluY2lwYWwsIElSb2xlLCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiLi4vaWFtXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiB0aGUgYmFzdGlvbiBob3N0XG4gKlxuICpcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXN0aW9uSG9zdExpbnV4UHJvcHMge1xuICAvKipcbiAgICogSW4gd2hpY2ggQVogdG8gcGxhY2UgdGhlIGluc3RhbmNlIHdpdGhpbiB0aGUgVlBDXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUmFuZG9tIHpvbmUuXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWUEMgdG8gbGF1bmNoIHRoZSBpbnN0YW5jZSBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogSVZwYztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGluc3RhbmNlXG4gICAqXG4gICAqIEBkZWZhdWx0ICdCYXN0aW9uSG9zdCdcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU2VsZWN0IHRoZSBzdWJuZXRzIHRvIHJ1biB0aGUgYmFzdGlvbiBob3N0IGluLlxuICAgKiBTZXQgdGhpcyB0byBQVUJMSUMgaWYgeW91IG5lZWQgdG8gY29ubmVjdCB0byB0aGlzIGluc3RhbmNlIHZpYSB0aGUgaW50ZXJuZXQgYW5kIGNhbm5vdCB1c2UgU1NNLlxuICAgKiBZb3UgaGF2ZSB0byBhbGxvdyBwb3J0IDIyIG1hbnVhbGx5IGJ5IHVzaW5nIHRoZSBjb25uZWN0aW9ucyBmaWVsZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHByaXZhdGUgc3VibmV0cyBvZiB0aGUgc3VwcGxpZWQgVlBDXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRTZWxlY3Rpb24/OiBTdWJuZXRTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIFNlY3VyaXR5IEdyb3VwIHRvIGFzc2lnbiB0byB0aGlzIGluc3RhbmNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gY3JlYXRlIG5ldyBzZWN1cml0eSBncm91cCB3aXRoIG5vIGluYm91bmQgYW5kIGFsbCBvdXRib3VuZCB0cmFmZmljIGFsbG93ZWRcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA/OiBJU2VjdXJpdHlHcm91cDtcblxuICAvKipcbiAgICogVHlwZSBvZiBpbnN0YW5jZSB0byBsYXVuY2hcbiAgICogQGRlZmF1bHQgJ3QzLm5hbm8nXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVR5cGU/OiBJbnN0YW5jZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtYWNoaW5lIGltYWdlIHRvIHVzZSwgYXNzdW1lZCB0byBoYXZlIFNTTSBBZ2VudCBwcmVpbnN0YWxsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQW4gQW1hem9uIExpbnV4IDIwMjMgaW1hZ2UgaWYgdGhlIGBAYXdzLWNkay9hd3MtZWMyOmJhc3Rpb25Ib3N0VXNlQW1hem9uTGludXgyMDIzQnlEZWZhdWx0YCBmZWF0dXJlIGZsYWcgaXMgZW5hYmxlZC4gT3RoZXJ3aXNlLCBhbiBBbWF6b24gTGludXggMiBpbWFnZS4gSW4gYm90aCBjYXNlcywgdGhlIGltYWdlIGlzIGtlcHQgdXAtdG8tZGF0ZSBhdXRvbWF0aWNhbGx5ICh0aGUgaW5zdGFuY2VcbiAgICogbWF5IGJlIHJlcGxhY2VkIG9uIGV2ZXJ5IGRlcGxveW1lbnQpIGFuZCBhbHJlYWR5IGhhcyBTU00gQWdlbnQgaW5zdGFsbGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbWFjaGluZUltYWdlPzogSU1hY2hpbmVJbWFnZTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGhvdyBibG9jayBkZXZpY2VzIGFyZSBleHBvc2VkIHRvIHRoZSBpbnN0YW5jZS4gWW91IGNhbiBzcGVjaWZ5IHZpcnR1YWwgZGV2aWNlcyBhbmQgRUJTIHZvbHVtZXMuXG4gICAqXG4gICAqIEVhY2ggaW5zdGFuY2UgdGhhdCBpcyBsYXVuY2hlZCBoYXMgYW4gYXNzb2NpYXRlZCByb290IGRldmljZSB2b2x1bWUsXG4gICAqIGVpdGhlciBhbiBBbWF6b24gRUJTIHZvbHVtZSBvciBhbiBpbnN0YW5jZSBzdG9yZSB2b2x1bWUuXG4gICAqIFlvdSBjYW4gdXNlIGJsb2NrIGRldmljZSBtYXBwaW5ncyB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgRUJTIHZvbHVtZXMgb3JcbiAgICogaW5zdGFuY2Ugc3RvcmUgdm9sdW1lcyB0byBhdHRhY2ggdG8gYW4gaW5zdGFuY2Ugd2hlbiBpdCBpcyBsYXVuY2hlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvYmxvY2stZGV2aWNlLW1hcHBpbmctY29uY2VwdHMuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFVzZXMgdGhlIGJsb2NrIGRldmljZSBtYXBwaW5nIG9mIHRoZSBBTUlcbiAgICovXG4gIHJlYWRvbmx5IGJsb2NrRGV2aWNlcz86IEJsb2NrRGV2aWNlW107XG5cbiAgLy8gLyoqXG4gIC8vICAqIEFwcGx5IHRoZSBnaXZlbiBDbG91ZEZvcm1hdGlvbiBJbml0IGNvbmZpZ3VyYXRpb24gdG8gdGhlIGluc3RhbmNlIGF0IHN0YXJ0dXBcbiAgLy8gICpcbiAgLy8gICogQGRlZmF1bHQgLSBubyBDbG91ZEZvcm1hdGlvbiBpbml0XG4gIC8vICAqL1xuICAvLyByZWFkb25seSBpbml0PzogQ2xvdWRGb3JtYXRpb25Jbml0O1xuXG4gIC8vIC8qKlxuICAvLyAgKiBVc2UgdGhlIGdpdmVuIG9wdGlvbnMgZm9yIGFwcGx5aW5nIENsb3VkRm9ybWF0aW9uIEluaXRcbiAgLy8gICpcbiAgLy8gICogRGVzY3JpYmVzIHRoZSBjb25maWdzZXRzIHRvIHVzZSBhbmQgdGhlIHRpbWVvdXQgdG8gd2FpdFxuICAvLyAgKlxuICAvLyAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgb3B0aW9uc1xuICAvLyAgKi9cbiAgLy8gcmVhZG9ubHkgaW5pdE9wdGlvbnM/OiBBcHBseUNsb3VkRm9ybWF0aW9uSW5pdE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgSU1EU3YyIHNob3VsZCBiZSByZXF1aXJlZCBvbiB0aGlzIGluc3RhbmNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVJbWRzdjI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgY2hhbmdlcyB0byB0aGUgVXNlckRhdGEgd2lsbCBmb3JjZSBpbnN0YW5jZSByZXBsYWNlbWVudC5cbiAgICpcbiAgICogRGVwZW5kaW5nIG9uIHRoZSBFQzIgaW5zdGFuY2UgdHlwZSwgbW9kaWZ5aW5nIHRoZSBVc2VyRGF0YSBtYXkgZWl0aGVyIHJlc3RhcnRcbiAgICogb3IgcmVwbGFjZSB0aGUgaW5zdGFuY2U6XG4gICAqXG4gICAqIC0gSW5zdGFuY2Ugc3RvcmUtYmFja2VkIGluc3RhbmNlcyBhcmUgcmVwbGFjZWQuXG4gICAqIC0gRUJTLWJhY2tlZCBpbnN0YW5jZXMgYXJlIHJlc3RhcnRlZC5cbiAgICpcbiAgICogTm90ZSB0aGF0IGJ5IGRlZmF1bHQsIHJlc3RhcnRpbmcgZG9lcyBub3QgZXhlY3V0ZSB0aGUgdXBkYXRlZCBVc2VyRGF0YSwgc28gYW4gYWx0ZXJuYXRpdmVcbiAgICogbWVjaGFuaXNtIGlzIG5lZWRlZCB0byBlbnN1cmUgdGhlIGluc3RhbmNlIHJlLWV4ZWN1dGVzIHRoZSBVc2VyRGF0YS5cbiAgICpcbiAgICogV2hlbiBzZXQgdG8gYHRydWVgLCB0aGUgaW5zdGFuY2UncyBMb2dpY2FsIElEIHdpbGwgZGVwZW5kIG9uIHRoZSBVc2VyRGF0YSwgY2F1c2luZ1xuICAgKiBDbG91ZEZvcm1hdGlvbiB0byByZXBsYWNlIHRoZSBpbnN0YW5jZSBpZiB0aGUgVXNlckRhdGEgY2hhbmdlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBgdHJ1ZWAgaWYgYGluaXRPcHRpb25zYCBpcyBzcGVjaWZpZWQsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlckRhdGFDYXVzZXNSZXBsYWNlbWVudD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhpcyBjcmVhdGVzIGEgbGludXggYmFzdGlvbiBob3N0IHlvdSBjYW4gdXNlIHRvIGNvbm5lY3QgdG8gb3RoZXIgaW5zdGFuY2VzIG9yIHNlcnZpY2VzIGluIHlvdXIgVlBDLlxuICogVGhlIHJlY29tbWVuZGVkIHdheSB0byBjb25uZWN0IHRvIHRoZSBiYXN0aW9uIGhvc3QgaXMgYnkgdXNpbmcgQVdTIFN5c3RlbXMgTWFuYWdlciBTZXNzaW9uIE1hbmFnZXIuXG4gKlxuICogVGhlIG9wZXJhdGluZyBzeXN0ZW0gaXMgQW1hem9uIExpbnV4IDIgd2l0aCB0aGUgbGF0ZXN0IFNTTSBhZ2VudCBpbnN0YWxsZWRcbiAqXG4gKiBZb3UgY2FuIGFsc28gY29uZmlndXJlIHRoaXMgYmFzdGlvbiBob3N0IHRvIGFsbG93IGNvbm5lY3Rpb25zIHZpYSBTU0hcbiAqXG4gKlxuICogQHJlc291cmNlIGF3c19pbnN0YW5jZVxuICovXG5leHBvcnQgY2xhc3MgQmFzdGlvbkhvc3RMaW51eCBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJSW5zdGFuY2Uge1xuICBwdWJsaWMgZ2V0IGluc3RhbmNlT3V0cHV0cygpOiBJbnN0YW5jZU91dHB1dHMge1xuICAgIHJldHVybiB7XG4gICAgICBpbnN0YW5jZUlkOiB0aGlzLmluc3RhbmNlSWQsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaW5zdGFuY2VPdXRwdXRzO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHN0YWNrOiBBd3NTdGFjaztcblxuICAvKipcbiAgICogQWxsb3dzIHNwZWNpZnkgc2VjdXJpdHkgZ3JvdXAgY29ubmVjdGlvbnMgZm9yIHRoZSBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uczogQ29ubmVjdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBhc3N1bWVkIGJ5IHRoZSBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBJUm9sZTtcblxuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCB0byBncmFudCBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBJUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5kZXJseWluZyBpbnN0YW5jZSByZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlOiBJbnN0YW5jZTtcblxuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlQXZhaWxhYmlsaXR5Wm9uZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VQcml2YXRlRG5zTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VQcml2YXRlSXA6IHN0cmluZztcblxuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlUHVibGljRG5zTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VQdWJsaWNJcDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCYXN0aW9uSG9zdExpbnV4UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMuc3RhY2sgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSk7XG4gICAgY29uc3QgaW5zdGFuY2VUeXBlID1cbiAgICAgIHByb3BzLmluc3RhbmNlVHlwZSA/P1xuICAgICAgSW5zdGFuY2VUeXBlLm9mKEluc3RhbmNlQ2xhc3MuVDMsIEluc3RhbmNlU2l6ZS5OQU5PKTtcbiAgICB0aGlzLmluc3RhbmNlID0gbmV3IEluc3RhbmNlKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICBhdmFpbGFiaWxpdHlab25lOiBwcm9wcy5hdmFpbGFiaWxpdHlab25lLFxuICAgICAgc2VjdXJpdHlHcm91cDogcHJvcHMuc2VjdXJpdHlHcm91cCxcbiAgICAgIGluc3RhbmNlTmFtZTogcHJvcHMuaW5zdGFuY2VOYW1lID8/IFwiQmFzdGlvbkhvc3RcIixcbiAgICAgIGluc3RhbmNlVHlwZSxcbiAgICAgIG1hY2hpbmVJbWFnZTogdGhpcy5nZXRNYWNoaW5lSW1hZ2UodGhpcywgaW5zdGFuY2VUeXBlLCBwcm9wcyksXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24gPz8ge30sXG4gICAgICBibG9ja0RldmljZXM6IHByb3BzLmJsb2NrRGV2aWNlcyA/PyB1bmRlZmluZWQsXG4gICAgICAvLyBpbml0OiBwcm9wcy5pbml0LFxuICAgICAgLy8gaW5pdE9wdGlvbnM6IHByb3BzLmluaXRPcHRpb25zLFxuICAgICAgcmVxdWlyZUltZHN2MjogcHJvcHMucmVxdWlyZUltZHN2MiA/PyBmYWxzZSxcbiAgICAgIHVzZXJEYXRhQ2F1c2VzUmVwbGFjZW1lbnQ6IHByb3BzLnVzZXJEYXRhQ2F1c2VzUmVwbGFjZW1lbnQsXG4gICAgfSk7XG4gICAgdGhpcy5pbnN0YW5jZS5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwic3NtbWVzc2FnZXM6KlwiLFxuICAgICAgICAgIFwic3NtOlVwZGF0ZUluc3RhbmNlSW5mb3JtYXRpb25cIixcbiAgICAgICAgICBcImVjMm1lc3NhZ2VzOipcIixcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgICAgfSksXG4gICAgKTtcbiAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5pbnN0YW5jZS5jb25uZWN0aW9ucztcbiAgICB0aGlzLnJvbGUgPSB0aGlzLmluc3RhbmNlLnJvbGU7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMuaW5zdGFuY2Uucm9sZTtcbiAgICB0aGlzLmluc3RhbmNlSWQgPSB0aGlzLmluc3RhbmNlLmluc3RhbmNlSWQ7XG4gICAgdGhpcy5pbnN0YW5jZVByaXZhdGVJcCA9IHRoaXMuaW5zdGFuY2UuaW5zdGFuY2VQcml2YXRlSXA7XG4gICAgdGhpcy5pbnN0YW5jZUF2YWlsYWJpbGl0eVpvbmUgPSB0aGlzLmluc3RhbmNlLmluc3RhbmNlQXZhaWxhYmlsaXR5Wm9uZTtcbiAgICB0aGlzLmluc3RhbmNlUHJpdmF0ZURuc05hbWUgPSB0aGlzLmluc3RhbmNlLmluc3RhbmNlUHJpdmF0ZURuc05hbWU7XG4gICAgdGhpcy5pbnN0YW5jZVB1YmxpY0lwID0gdGhpcy5pbnN0YW5jZS5pbnN0YW5jZVB1YmxpY0lwO1xuICAgIHRoaXMuaW5zdGFuY2VQdWJsaWNEbnNOYW1lID0gdGhpcy5pbnN0YW5jZS5pbnN0YW5jZVB1YmxpY0Ruc05hbWU7XG5cbiAgICBuZXcgVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwiQmFzdGlvbkhvc3RJZFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJJbnN0YW5jZSBJRCBvZiB0aGUgYmFzdGlvbiBob3N0LiBVc2UgdGhpcyB0byBjb25uZWN0IHZpYSBTU00gU2Vzc2lvbiBNYW5hZ2VyXCIsXG4gICAgICB2YWx1ZTogdGhpcy5pbnN0YW5jZUlkLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIEFtYXpvbkxpbnV4Q3B1VHlwZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBpbnN0YW5jZSBhcmNoaXRlY3R1cmVcbiAgICogQHBhcmFtIGFyY2hpdGVjdHVyZSB0aGUgaW5zdGFuY2UgYXJjaGl0ZWN0dXJlIHZhbHVlIHRvIGNvbnZlcnRcbiAgICovXG4gIHByaXZhdGUgdG9BbWF6b25MaW51eENwdVR5cGUoXG4gICAgYXJjaGl0ZWN0dXJlOiBJbnN0YW5jZUFyY2hpdGVjdHVyZSxcbiAgKTogQW1hem9uTGludXhDcHVUeXBlIHtcbiAgICBpZiAoYXJjaGl0ZWN0dXJlID09PSBJbnN0YW5jZUFyY2hpdGVjdHVyZS5BUk1fNjQpIHtcbiAgICAgIHJldHVybiBBbWF6b25MaW51eENwdVR5cGUuQVJNXzY0O1xuICAgIH0gZWxzZSBpZiAoYXJjaGl0ZWN0dXJlID09PSBJbnN0YW5jZUFyY2hpdGVjdHVyZS5YODZfNjQpIHtcbiAgICAgIHJldHVybiBBbWF6b25MaW51eENwdVR5cGUuWDg2XzY0O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgaW5zdGFuY2UgYXJjaGl0ZWN0dXJlICcke2FyY2hpdGVjdHVyZX0nYCk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgU1NIIGFjY2VzcyBmcm9tIHRoZSBnaXZlbiBwZWVyIG9yIHBlZXJzXG4gICAqXG4gICAqIE5lY2Vzc2FyeSBpZiB5b3Ugd2FudCB0byBjb25uZWN0IHRvIHRoZSBpbnN0YW5jZSB1c2luZyBzc2guIElmIG5vdFxuICAgKiBjYWxsZWQsIHlvdSBzaG91bGQgdXNlIFNTTSBTZXNzaW9uIE1hbmFnZXIgdG8gY29ubmVjdCB0byB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWxsb3dTc2hBY2Nlc3NGcm9tKC4uLnBlZXI6IElQZWVyW10pOiB2b2lkIHtcbiAgICBwZWVyLmZvckVhY2goKHApID0+IHtcbiAgICAgIHRoaXMuY29ubmVjdGlvbnMuYWxsb3dGcm9tKHAsIFBvcnQudGNwKDIyKSwgXCJTU0ggYWNjZXNzXCIpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG1hY2hpbmUgaW1hZ2UgdG8gdXNlIGZvciB0aGUgYmFzdGlvbiBob3N0LCByZXNwZWN0aW5nIHRoZSBmZWF0dXJlIGZsYWdcbiAgICogdG8gZGVmYXVsdCB0byBBbWF6b24gTGludXggMjAyMyBpZiBlbmFibGVkLCBvdGhlcndpc2UgZGVmYXVsdGluZyB0byBBbWF6b24gTGludXggMi5cbiAgICovXG4gIHByaXZhdGUgZ2V0TWFjaGluZUltYWdlKFxuICAgIF9zY29wZTogQ29uc3RydWN0LFxuICAgIGluc3RhbmNlVHlwZTogSW5zdGFuY2VUeXBlLFxuICAgIHByb3BzOiBCYXN0aW9uSG9zdExpbnV4UHJvcHMsXG4gICk6IElNYWNoaW5lSW1hZ2Uge1xuICAgIGNvbnN0IGRlZmF1bHRNYWNoaW5lSW1hZ2UgPSBNYWNoaW5lSW1hZ2UubGF0ZXN0QW1hem9uTGludXgyMDIzKHtcbiAgICAgIGNwdVR5cGU6IHRoaXMudG9BbWF6b25MaW51eENwdVR5cGUoaW5zdGFuY2VUeXBlLmFyY2hpdGVjdHVyZSksXG4gICAgfSk7XG4gICAgcmV0dXJuIHByb3BzLm1hY2hpbmVJbWFnZSA/PyBkZWZhdWx0TWFjaGluZUltYWdlO1xuICB9XG59XG4iXX0=
@@ -64,5 +64,5 @@ class Chain {
64
64
  }
65
65
  exports.Chain = Chain;
66
66
  _a = JSII_RTTI_SYMBOL_1;
67
- Chain[_a] = { fqn: "terraconstructs.aws.compute.Chain", version: "0.1.7" };
67
+ Chain[_a] = { fqn: "terraconstructs.aws.compute.Chain", version: "0.1.9" };
68
68
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvY2hhaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtR0FBbUc7QUFFbkcsZ0RBQTREO0FBSTVEOzs7OztHQUtHO0FBQ0gsTUFBYSxLQUFLO0lBQ2hCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFpQjtRQUNuQyxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQWlCLEVBQUUsSUFBZ0I7UUFDeEQsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FDbEIsVUFBaUIsRUFDakIsU0FBc0IsRUFDdEIsU0FBcUI7UUFFckIsT0FBTyxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFpQkQsWUFDRSxVQUFpQixFQUNqQixTQUFzQixFQUNMLFNBQXFCO1FBQXJCLGNBQVMsR0FBVCxTQUFTLENBQVk7UUFFdEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNJLElBQUksQ0FBQyxJQUFnQjtRQUMxQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkNBQTZDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxxQkFBcUIsQ0FDcEYsQ0FBQztRQUNKLENBQUM7UUFFRCxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFFRCxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksYUFBYSxDQUFDLEVBQVUsRUFBRSxRQUF1QixFQUFFO1FBQ3hELE9BQU8sSUFBSSxtQkFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDOztBQWhGSCxzQkFpRkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNjAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucy9saWIvY2hhaW4udHNcblxuaW1wb3J0IHsgUGFyYWxsZWwsIFBhcmFsbGVsUHJvcHMgfSBmcm9tIFwiLi9zdGF0ZXMvcGFyYWxsZWxcIjtcbmltcG9ydCB7IFN0YXRlIH0gZnJvbSBcIi4vc3RhdGVzL3N0YXRlXCI7XG5pbXBvcnQgeyBJQ2hhaW5hYmxlLCBJTmV4dGFibGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEEgY29sbGVjdGlvbiBvZiBzdGF0ZXMgdG8gY2hhaW4gb250b1xuICpcbiAqIEEgQ2hhaW4gaGFzIGEgc3RhcnQgYW5kIHplcm8gb3IgbW9yZSBjaGFpbmFibGUgZW5kcy4gSWYgdGhlcmUgYXJlXG4gKiB6ZXJvIGVuZHMsIGNhbGxpbmcgbmV4dCgpIG9uIHRoZSBDaGFpbiB3aWxsIGZhaWwuXG4gKi9cbmV4cG9ydCBjbGFzcyBDaGFpbiBpbXBsZW1lbnRzIElDaGFpbmFibGUge1xuICAvKipcbiAgICogQmVnaW4gYSBuZXcgQ2hhaW4gZnJvbSBvbmUgY2hhaW5hYmxlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN0YXJ0KHN0YXRlOiBJQ2hhaW5hYmxlKSB7XG4gICAgcmV0dXJuIG5ldyBDaGFpbihzdGF0ZS5zdGFydFN0YXRlLCBzdGF0ZS5lbmRTdGF0ZXMsIHN0YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGEgQ2hhaW4gd2l0aCB0aGUgc3RhcnQgZnJvbSBvbmUgY2hhaW4gYW5kIHRoZSBlbmRzIGZyb20gYW5vdGhlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzZXF1ZW5jZShzdGFydDogSUNoYWluYWJsZSwgbmV4dDogSUNoYWluYWJsZSkge1xuICAgIHJldHVybiBuZXcgQ2hhaW4oc3RhcnQuc3RhcnRTdGF0ZSwgbmV4dC5lbmRTdGF0ZXMsIG5leHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYSBDaGFpbiB3aXRoIHNwZWNpZmljIHN0YXJ0IGFuZCBlbmQgc3RhdGVzLCBhbmQgYSBsYXN0LWFkZGVkIENoYWluYWJsZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjdXN0b20oXG4gICAgc3RhcnRTdGF0ZTogU3RhdGUsXG4gICAgZW5kU3RhdGVzOiBJTmV4dGFibGVbXSxcbiAgICBsYXN0QWRkZWQ6IElDaGFpbmFibGUsXG4gICkge1xuICAgIHJldHVybiBuZXcgQ2hhaW4oc3RhcnRTdGF0ZSwgZW5kU3RhdGVzLCBsYXN0QWRkZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIElkZW50aWZ5IHRoaXMgQ2hhaW5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhcnQgc3RhdGUgb2YgdGhpcyBjaGFpblxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXJ0U3RhdGU6IFN0YXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hhaW5hYmxlIGVuZCBzdGF0ZShzKSBvZiB0aGlzIGNoYWluXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW5kU3RhdGVzOiBJTmV4dGFibGVbXTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHN0YXJ0U3RhdGU6IFN0YXRlLFxuICAgIGVuZFN0YXRlczogSU5leHRhYmxlW10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBsYXN0QWRkZWQ6IElDaGFpbmFibGUsXG4gICkge1xuICAgIHRoaXMuaWQgPSBsYXN0QWRkZWQuaWQ7XG4gICAgdGhpcy5zdGFydFN0YXRlID0gc3RhcnRTdGF0ZTtcbiAgICB0aGlzLmVuZFN0YXRlcyA9IGVuZFN0YXRlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb250aW51ZSBub3JtYWwgZXhlY3V0aW9uIHdpdGggdGhlIGdpdmVuIHN0YXRlXG4gICAqL1xuICBwdWJsaWMgbmV4dChuZXh0OiBJQ2hhaW5hYmxlKTogQ2hhaW4ge1xuICAgIGlmICh0aGlzLmVuZFN0YXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENhbm5vdCBhZGQgdG8gY2hhaW46IGxhc3Qgc3RhdGUgaW4gY2hhaW4gKCR7dGhpcy5sYXN0QWRkZWQuaWR9KSBkb2VzIG5vdCBhbGxvdyBpdGAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZW5kU3RhdGUgb2YgdGhpcy5lbmRTdGF0ZXMpIHtcbiAgICAgIGVuZFN0YXRlLm5leHQobmV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBDaGFpbih0aGlzLnN0YXJ0U3RhdGUsIG5leHQuZW5kU3RhdGVzLCBuZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBzaW5nbGUgc3RhdGUgdGhhdCBlbmNvbXBhc3NlcyBhbGwgc3RhdGVzIGluIHRoZSBjaGFpblxuICAgKlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGFkZCBlcnJvciBoYW5kbGluZyB0byBhIHNlcXVlbmNlIG9mIHN0YXRlcy5cbiAgICpcbiAgICogQmUgYXdhcmUgdGhhdCB0aGlzIGNoYW5nZXMgdGhlIHJlc3VsdCBvZiB0aGUgaW5uZXIgc3RhdGUgbWFjaGluZVxuICAgKiB0byBiZSBhbiBhcnJheSB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIHN0YXRlIG1hY2hpbmUgaW4gaXQuIEFkanVzdFxuICAgKiB5b3VyIHBhdGhzIGFjY29yZGluZ2x5LiBGb3IgZXhhbXBsZSwgY2hhbmdlICdvdXRwdXRQYXRoJyB0b1xuICAgKiAnJFswXScuXG4gICAqL1xuICBwdWJsaWMgdG9TaW5nbGVTdGF0ZShpZDogc3RyaW5nLCBwcm9wczogUGFyYWxsZWxQcm9wcyA9IHt9KTogUGFyYWxsZWwge1xuICAgIHJldHVybiBuZXcgUGFyYWxsZWwodGhpcy5zdGFydFN0YXRlLCBpZCwgcHJvcHMpLmJyYW5jaCh0aGlzKTtcbiAgfVxufVxuIl19
@@ -26,5 +26,5 @@ class ClientVpnAuthorizationRule extends aws_construct_1.AwsConstructBase {
26
26
  }
27
27
  exports.ClientVpnAuthorizationRule = ClientVpnAuthorizationRule;
28
28
  _a = JSII_RTTI_SYMBOL_1;
29
- ClientVpnAuthorizationRule[_a] = { fqn: "terraconstructs.aws.compute.ClientVpnAuthorizationRule", version: "0.1.7" };
29
+ ClientVpnAuthorizationRule[_a] = { fqn: "terraconstructs.aws.compute.ClientVpnAuthorizationRule", version: "0.1.9" };
30
30
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LXZwbi1hdXRob3JpemF0aW9uLXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvY2xpZW50LXZwbi1hdXRob3JpemF0aW9uLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpSEFBaUg7QUFFakgsc0RBQW9FO0FBR3BFLG9EQUFvRDtBQXdDcEQ7O0dBRUc7QUFDSCxNQUFhLDBCQUEyQixTQUFRLGdDQUFnQjtJQUM5RCxJQUFXLE9BQU87UUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBc0M7UUFFdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLDRDQUE2QixDQUFDLDZCQUE2QixDQUM3RCxJQUFJLEVBQ0osVUFBVSxFQUNWO1lBQ0UsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFVBQVU7WUFDdkQsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDN0IsYUFBYSxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQzVCLGtCQUFrQixFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU87WUFDbEMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQy9CLENBQ0YsQ0FBQztJQUNKLENBQUM7O0FBckJILGdFQXNCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3NS4xL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1lYzIvbGliL2NsaWVudC12cG4tYXV0aG9yaXphdGlvbi1ydWxlLnRzXG5cbmltcG9ydCB7IGVjMkNsaWVudFZwbkF1dGhvcml6YXRpb25SdWxlIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJQ2xpZW50VnBuRW5kcG9pbnQgfSBmcm9tIFwiLi9jbGllbnQtdnBuLWVuZHBvaW50LXR5cGVzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBhIENsaWVudFZwbkF1dGhvcml6YXRpb25SdWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50VnBuQXV0aG9yaXphdGlvblJ1bGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBJUHY0IGFkZHJlc3MgcmFuZ2UsIGluIENJRFIgbm90YXRpb24sIG9mIHRoZSBuZXR3b3JrIGZvciB3aGljaCBhY2Nlc3NcbiAgICogaXMgYmVpbmcgYXV0aG9yaXplZC5cbiAgICovXG4gIHJlYWRvbmx5IGNpZHI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBncm91cCB0byBncmFudCBhY2Nlc3MgdG8sIGZvciBleGFtcGxlLCB0aGUgQWN0aXZlIERpcmVjdG9yeVxuICAgKiBncm91cCBvciBpZGVudGl0eSBwcm92aWRlciAoSWRQKSBncm91cC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRob3JpemUgYWxsIGdyb3Vwc1xuICAgKi9cbiAgcmVhZG9ubHkgZ3JvdXBJZD86IHN0cmluZztcblxuICAvKipcbiAgICogQSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgYXV0aG9yaXphdGlvbiBydWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIENsaWVudFZwbkF1dGhvcml6YXRpb25SdWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50VnBuQXV0aG9yaXphdGlvblJ1bGVQcm9wc1xuICBleHRlbmRzIENsaWVudFZwbkF1dGhvcml6YXRpb25SdWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY2xpZW50IFZQTiBlbmRwb2ludCB0byB3aGljaCB0byBhZGQgdGhlIHJ1bGUuXG4gICAqIEBkZWZhdWx0IGNsaWVudFZwbkVuZHBvaW50IGlzIHJlcXVpcmVkXG4gICAqL1xuICByZWFkb25seSBjbGllbnRWcG5FbmRwb2ludDogSUNsaWVudFZwbkVuZHBvaW50O1xufVxuXG4vKipcbiAqIEEgY2xpZW50IFZQTiBhdXRob3JpemF0aW9uIHJ1bGVcbiAqL1xuZXhwb3J0IGNsYXNzIENsaWVudFZwbkF1dGhvcml6YXRpb25SdWxlIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSB7XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBDbGllbnRWcG5BdXRob3JpemF0aW9uUnVsZVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIG5ldyBlYzJDbGllbnRWcG5BdXRob3JpemF0aW9uUnVsZS5FYzJDbGllbnRWcG5BdXRob3JpemF0aW9uUnVsZShcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICB7XG4gICAgICAgIGNsaWVudFZwbkVuZHBvaW50SWQ6IHByb3BzLmNsaWVudFZwbkVuZHBvaW50LmVuZHBvaW50SWQsXG4gICAgICAgIHRhcmdldE5ldHdvcmtDaWRyOiBwcm9wcy5jaWRyLFxuICAgICAgICBhY2Nlc3NHcm91cElkOiBwcm9wcy5ncm91cElkLFxuICAgICAgICBhdXRob3JpemVBbGxHcm91cHM6ICFwcm9wcy5ncm91cElkLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICB9LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -45,7 +45,7 @@ class ClientVpnUserBasedAuthentication {
45
45
  }
46
46
  exports.ClientVpnUserBasedAuthentication = ClientVpnUserBasedAuthentication;
47
47
  _a = JSII_RTTI_SYMBOL_1;
48
- ClientVpnUserBasedAuthentication[_a] = { fqn: "terraconstructs.aws.compute.ClientVpnUserBasedAuthentication", version: "0.1.7" };
48
+ ClientVpnUserBasedAuthentication[_a] = { fqn: "terraconstructs.aws.compute.ClientVpnUserBasedAuthentication", version: "0.1.9" };
49
49
  /**
50
50
  * Active Directory authentication
51
51
  */
@@ -229,7 +229,7 @@ class ClientVpnEndpoint extends aws_construct_1.AwsConstructBase {
229
229
  }
230
230
  exports.ClientVpnEndpoint = ClientVpnEndpoint;
231
231
  _b = JSII_RTTI_SYMBOL_1;
232
- ClientVpnEndpoint[_b] = { fqn: "terraconstructs.aws.compute.ClientVpnEndpoint", version: "0.1.7" };
232
+ ClientVpnEndpoint[_b] = { fqn: "terraconstructs.aws.compute.ClientVpnEndpoint", version: "0.1.9" };
233
233
  function renderAuthenticationOptions(clientCertificateArn, userBasedAuthentication) {
234
234
  const authenticationOptions = [];
235
235
  if (clientCertificateArn) {
@@ -28,7 +28,7 @@ class ClientVpnRouteTarget {
28
28
  }
29
29
  exports.ClientVpnRouteTarget = ClientVpnRouteTarget;
30
30
  _a = JSII_RTTI_SYMBOL_1;
31
- ClientVpnRouteTarget[_a] = { fqn: "terraconstructs.aws.compute.ClientVpnRouteTarget", version: "0.1.7" };
31
+ ClientVpnRouteTarget[_a] = { fqn: "terraconstructs.aws.compute.ClientVpnRouteTarget", version: "0.1.9" };
32
32
  /**
33
33
  * A client VPN route
34
34
  */
@@ -53,5 +53,5 @@ class ClientVpnRoute extends aws_construct_1.AwsConstructBase {
53
53
  }
54
54
  exports.ClientVpnRoute = ClientVpnRoute;
55
55
  _b = JSII_RTTI_SYMBOL_1;
56
- ClientVpnRoute[_b] = { fqn: "terraconstructs.aws.compute.ClientVpnRoute", version: "0.1.7" };
56
+ ClientVpnRoute[_b] = { fqn: "terraconstructs.aws.compute.ClientVpnRoute", version: "0.1.9" };
57
57
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LXZwbi1yb3V0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9jbGllbnQtdnBuLXJvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0dBQW9HO0FBRXBHLHNEQUF3RDtBQUl4RCxvREFBdUU7QUErQnZFOztHQUVHO0FBQ0gsTUFBc0Isb0JBQW9CO0lBQ3hDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFlO1FBQ2xDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLO1FBQ2pCLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7QUFoQkgsb0RBb0JDOzs7QUFlRDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLGdDQUFnQjtJQUVsRCxJQUFXLE9BQU87UUFDaEIsT0FBTztZQUNMLDhEQUE4RDtZQUM5RCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7U0FDbkMsQ0FBQztJQUNKLENBQUM7SUFDRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxnQ0FBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3hFLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVO1lBQ3ZELFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixvQkFBb0IsRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVE7U0FDekMsQ0FBQyxDQUFDO1FBRUgsMEdBQTBHO1FBQzFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FDOUIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUNqRCxDQUFDO0lBQ0osQ0FBQzs7QUFyQkgsd0NBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVjMi9saWIvY2xpZW50LXZwbi1yb3V0ZS50c1xuXG5pbXBvcnQgeyBlYzJDbGllbnRWcG5Sb3V0ZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgSUNsaWVudFZwbkVuZHBvaW50IH0gZnJvbSBcIi4vY2xpZW50LXZwbi1lbmRwb2ludC10eXBlc1wiO1xuaW1wb3J0IHsgSVN1Ym5ldCB9IGZyb20gXCIuL3ZwY1wiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0QmFzZSwgQXdzQ29uc3RydWN0UHJvcHMgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGEgQ2xpZW50VnBuUm91dGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGllbnRWcG5Sb3V0ZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIElQdjQgYWRkcmVzcyByYW5nZSwgaW4gQ0lEUiBub3RhdGlvbiwgb2YgdGhlIHJvdXRlIGRlc3RpbmF0aW9uLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZTpcbiAgICogICAtIFRvIGFkZCBhIHJvdXRlIGZvciBJbnRlcm5ldCBhY2Nlc3MsIGVudGVyIDAuMC4wLjAvMFxuICAgKiAgIC0gVG8gYWRkIGEgcm91dGUgZm9yIGEgcGVlcmVkIFZQQywgZW50ZXIgdGhlIHBlZXJlZCBWUEMncyBJUHY0IENJRFIgcmFuZ2VcbiAgICogICAtIFRvIGFkZCBhIHJvdXRlIGZvciBhbiBvbi1wcmVtaXNlcyBuZXR3b3JrLCBlbnRlciB0aGUgQVdTIFNpdGUtdG8tU2l0ZSBWUE5cbiAgICogICAgIGNvbm5lY3Rpb24ncyBJUHY0IENJRFIgcmFuZ2VcbiAgICogICAtIFRvIGFkZCBhIHJvdXRlIGZvciB0aGUgbG9jYWwgbmV0d29yaywgZW50ZXIgdGhlIGNsaWVudCBDSURSIHJhbmdlXG4gICAqL1xuICByZWFkb25seSBjaWRyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIGF1dGhvcml6YXRpb24gcnVsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgZm9yIHRoZSByb3V0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0OiBDbGllbnRWcG5Sb3V0ZVRhcmdldDtcbn1cblxuLyoqXG4gKiBUYXJnZXQgZm9yIGEgY2xpZW50IFZQTiByb3V0ZVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2xpZW50VnBuUm91dGVUYXJnZXQge1xuICAvKipcbiAgICogU3VibmV0XG4gICAqXG4gICAqIFRoZSBzcGVjaWZpZWQgc3VibmV0IG11c3QgYmUgYW4gZXhpc3RpbmcgdGFyZ2V0IG5ldHdvcmsgb2YgdGhlIGNsaWVudCBWUE5cbiAgICogZW5kcG9pbnQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN1Ym5ldChzdWJuZXQ6IElTdWJuZXQpOiBDbGllbnRWcG5Sb3V0ZVRhcmdldCB7XG4gICAgcmV0dXJuIHsgc3VibmV0SWQ6IHN1Ym5ldC5zdWJuZXRJZCB9O1xuICB9XG5cbiAgLyoqXG4gICAqIExvY2FsIG5ldHdvcmtcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbG9jYWwoKTogQ2xpZW50VnBuUm91dGVUYXJnZXQge1xuICAgIHJldHVybiB7IHN1Ym5ldElkOiBcImxvY2FsXCIgfTtcbiAgfVxuXG4gIC8qKiBUaGUgc3VibmV0IElEICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBzdWJuZXRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgQ2xpZW50VnBuUm91dGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGllbnRWcG5Sb3V0ZVByb3BzXG4gIGV4dGVuZHMgQ2xpZW50VnBuUm91dGVPcHRpb25zLFxuICAgIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBjbGllbnQgVlBOIGVuZHBvaW50IHRvIHdoaWNoIHRvIGFkZCB0aGUgcm91dGUuXG4gICAqIEBkZWZhdWx0IGNsaWVudFZwbkVuZHBvaW50IGlzIHJlcXVpcmVkXG4gICAqL1xuICByZWFkb25seSBjbGllbnRWcG5FbmRwb2ludDogSUNsaWVudFZwbkVuZHBvaW50O1xufVxuXG4vKipcbiAqIEEgY2xpZW50IFZQTiByb3V0ZVxuICovXG5leHBvcnQgY2xhc3MgQ2xpZW50VnBuUm91dGUgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIHtcbiAgcHVibGljIHJlc291cmNlOiBlYzJDbGllbnRWcG5Sb3V0ZS5FYzJDbGllbnRWcG5Sb3V0ZTtcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICAvLyBpcyB0aGlzIHRoZSBJRCBvZiB0aGUgQ2xpZW50IFZQTiBlbmRwb2ludCBvciB0aGUgVlBOIHJvdXRlP1xuICAgICAgY2xpZW50VnBuUm91dGVJZDogdGhpcy5yZXNvdXJjZS5pZCxcbiAgICB9O1xuICB9XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDbGllbnRWcG5Sb3V0ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBlYzJDbGllbnRWcG5Sb3V0ZS5FYzJDbGllbnRWcG5Sb3V0ZSh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIGNsaWVudFZwbkVuZHBvaW50SWQ6IHByb3BzLmNsaWVudFZwbkVuZHBvaW50LmVuZHBvaW50SWQsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBkZXN0aW5hdGlvbkNpZHJCbG9jazogcHJvcHMuY2lkcixcbiAgICAgIHRhcmdldFZwY1N1Ym5ldElkOiBwcm9wcy50YXJnZXQuc3VibmV0SWQsXG4gICAgfSk7XG5cbiAgICAvLyBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1jbGllbnR2cG5yb3V0ZS5odG1sXG4gICAgdGhpcy5yZXNvdXJjZS5ub2RlLmFkZERlcGVuZGVuY3koXG4gICAgICBwcm9wcy5jbGllbnRWcG5FbmRwb2ludC50YXJnZXROZXR3b3Jrc0Fzc29jaWF0ZWQsXG4gICAgKTtcbiAgfVxufVxuIl19