terraconstructs 0.2.0 → 0.2.2

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 (278) hide show
  1. package/.jsii +1087 -235
  2. package/lib/asset-staging.js +1 -1
  3. package/lib/aws/arn.js +1 -1
  4. package/lib/aws/aws-asset-manager.js +1 -1
  5. package/lib/aws/aws-construct.js +1 -1
  6. package/lib/aws/aws-stack.js +1 -1
  7. package/lib/aws/aws-tags.js +2 -2
  8. package/lib/aws/cloudwatch/actions/appscaling.js +1 -1
  9. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  10. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  11. package/lib/aws/cloudwatch/actions/sns.js +1 -1
  12. package/lib/aws/cloudwatch/actions/ssm.js +2 -2
  13. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  14. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  15. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  16. package/lib/aws/cloudwatch/alarm.js +1 -1
  17. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  18. package/lib/aws/cloudwatch/dashboard.js +1 -1
  19. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  20. package/lib/aws/cloudwatch/graph.js +8 -8
  21. package/lib/aws/cloudwatch/layout.js +3 -3
  22. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  23. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  24. package/lib/aws/cloudwatch/log-group.js +1 -1
  25. package/lib/aws/cloudwatch/log-query.js +1 -1
  26. package/lib/aws/cloudwatch/log-stream.js +1 -1
  27. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  28. package/lib/aws/cloudwatch/metric.js +2 -2
  29. package/lib/aws/cloudwatch/pattern.js +3 -3
  30. package/lib/aws/cloudwatch/policy.js +1 -1
  31. package/lib/aws/cloudwatch/query-definition.js +2 -2
  32. package/lib/aws/cloudwatch/stats.js +1 -1
  33. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  34. package/lib/aws/cloudwatch/text.js +1 -1
  35. package/lib/aws/cloudwatch/variable.js +3 -3
  36. package/lib/aws/cloudwatch/widget.js +1 -1
  37. package/lib/aws/compute/access-log.js +4 -4
  38. package/lib/aws/compute/activity.js +1 -1
  39. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  40. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  41. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  42. package/lib/aws/compute/alb/application-listener.js +1 -1
  43. package/lib/aws/compute/alb/application-load-balancer.js +1 -1
  44. package/lib/aws/compute/alb/application-target-group.js +1 -1
  45. package/lib/aws/compute/alb/conditions.js +1 -1
  46. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  47. package/lib/aws/compute/alb/trust-store.js +1 -1
  48. package/lib/aws/compute/api-definition.js +3 -3
  49. package/lib/aws/compute/api-key.js +2 -2
  50. package/lib/aws/compute/architecture.js +1 -1
  51. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  52. package/lib/aws/compute/authorizer.js +1 -1
  53. package/lib/aws/compute/authorizers/identity-source.js +1 -1
  54. package/lib/aws/compute/authorizers/lambda.js +2 -2
  55. package/lib/aws/compute/base-path-mapping.js +1 -1
  56. package/lib/aws/compute/base-scalable-attribute.js +1 -1
  57. package/lib/aws/compute/bastion-host.js +1 -1
  58. package/lib/aws/compute/chain.js +1 -1
  59. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  60. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  61. package/lib/aws/compute/client-vpn-route.js +2 -2
  62. package/lib/aws/compute/code.js +8 -8
  63. package/lib/aws/compute/condition.js +1 -1
  64. package/lib/aws/compute/connections.js +1 -1
  65. package/lib/aws/compute/cors.js +1 -1
  66. package/lib/aws/compute/deployment.js +1 -1
  67. package/lib/aws/compute/domain-name.js +1 -1
  68. package/lib/aws/compute/event-invoke-config.js +1 -1
  69. package/lib/aws/compute/event-source-filter.js +2 -2
  70. package/lib/aws/compute/event-source-mapping.js +1 -1
  71. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  72. package/lib/aws/compute/event-sources/s3.js +1 -1
  73. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  74. package/lib/aws/compute/event-sources/sqs.js +1 -1
  75. package/lib/aws/compute/fields.js +4 -4
  76. package/lib/aws/compute/function-alias.js +1 -1
  77. package/lib/aws/compute/function-base.js +2 -2
  78. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  79. package/lib/aws/compute/function-destinations/function.js +1 -1
  80. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  81. package/lib/aws/compute/function-nodejs/function.js +1 -1
  82. package/lib/aws/compute/function-url.js +1 -1
  83. package/lib/aws/compute/function.js +1 -1
  84. package/lib/aws/compute/gateway-response.js +2 -2
  85. package/lib/aws/compute/handler.js +1 -1
  86. package/lib/aws/compute/instance-types.js +1 -1
  87. package/lib/aws/compute/instance.js +1 -1
  88. package/lib/aws/compute/integration.js +1 -1
  89. package/lib/aws/compute/integrations/aws.js +1 -1
  90. package/lib/aws/compute/integrations/http.js +1 -1
  91. package/lib/aws/compute/integrations/lambda.js +1 -1
  92. package/lib/aws/compute/integrations/mock.js +1 -1
  93. package/lib/aws/compute/integrations/stepfunctions.js +1 -1
  94. package/lib/aws/compute/ip-addresses.js +2 -2
  95. package/lib/aws/compute/ipam.js +1 -1
  96. package/lib/aws/compute/key-pair.js +1 -1
  97. package/lib/aws/compute/lambda-api.js +1 -1
  98. package/lib/aws/compute/launch-template.js +2 -2
  99. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  100. package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
  101. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  102. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  103. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  104. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  105. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  106. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  107. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  108. package/lib/aws/compute/load-balancer.js +3 -3
  109. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  110. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  111. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  112. package/lib/aws/compute/machine-image/common.js +1 -1
  113. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  114. package/lib/aws/compute/method.js +1 -1
  115. package/lib/aws/compute/model.js +3 -3
  116. package/lib/aws/compute/nat.js +5 -5
  117. package/lib/aws/compute/network-acl-types.js +2 -2
  118. package/lib/aws/compute/network-acl.js +3 -3
  119. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  120. package/lib/aws/compute/nlb/network-listener.js +1 -1
  121. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  122. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  123. package/lib/aws/compute/peer.js +1 -1
  124. package/lib/aws/compute/placement-group.js +1 -1
  125. package/lib/aws/compute/port.js +1 -1
  126. package/lib/aws/compute/prefix-list.js +1 -1
  127. package/lib/aws/compute/requestvalidator.js +1 -1
  128. package/lib/aws/compute/resource.js +3 -3
  129. package/lib/aws/compute/restapi.js +3 -3
  130. package/lib/aws/compute/route.js +8 -8
  131. package/lib/aws/compute/runtime.js +1 -1
  132. package/lib/aws/compute/scalable-target.js +1 -1
  133. package/lib/aws/compute/schedule.js +1 -1
  134. package/lib/aws/compute/security-group.js +1 -1
  135. package/lib/aws/compute/stage.js +2 -2
  136. package/lib/aws/compute/state-graph.js +1 -1
  137. package/lib/aws/compute/state-machine-fragment.js +1 -1
  138. package/lib/aws/compute/state-machine.js +4 -4
  139. package/lib/aws/compute/states/choice.js +1 -1
  140. package/lib/aws/compute/states/custom-state.js +1 -1
  141. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  142. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  143. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  144. package/lib/aws/compute/states/distributed-map.js +1 -1
  145. package/lib/aws/compute/states/fail.js +1 -1
  146. package/lib/aws/compute/states/map-base.js +1 -1
  147. package/lib/aws/compute/states/map.js +1 -1
  148. package/lib/aws/compute/states/parallel.js +1 -1
  149. package/lib/aws/compute/states/pass.js +2 -2
  150. package/lib/aws/compute/states/state.js +1 -1
  151. package/lib/aws/compute/states/succeed.js +1 -1
  152. package/lib/aws/compute/states/task-base.js +2 -2
  153. package/lib/aws/compute/states/task.js +1 -1
  154. package/lib/aws/compute/states/wait.js +2 -2
  155. package/lib/aws/compute/step-scaling-action.js +1 -1
  156. package/lib/aws/compute/step-scaling-policy.js +1 -1
  157. package/lib/aws/compute/stepfunctions-api.js +1 -1
  158. package/lib/aws/compute/subnet-v2.js +2 -2
  159. package/lib/aws/compute/subnet.js +1 -1
  160. package/lib/aws/compute/target-tracking-scaling-policy.js +1 -1
  161. package/lib/aws/compute/task-credentials.js +1 -1
  162. package/lib/aws/compute/task-input.js +1 -1
  163. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  164. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  165. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  166. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  167. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  168. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  169. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  170. package/lib/aws/compute/types.js +1 -1
  171. package/lib/aws/compute/usage-plan.js +1 -1
  172. package/lib/aws/compute/user-data.js +3 -3
  173. package/lib/aws/compute/volume.js +2 -2
  174. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  175. package/lib/aws/compute/vpc-endpoint.js +6 -6
  176. package/lib/aws/compute/vpc-flow-logs.js +4 -4
  177. package/lib/aws/compute/vpc-link.js +1 -1
  178. package/lib/aws/compute/vpc-v2-base.js +1 -1
  179. package/lib/aws/compute/vpc-v2.js +2 -2
  180. package/lib/aws/compute/vpc.js +4 -4
  181. package/lib/aws/compute/vpn.js +3 -3
  182. package/lib/aws/edge/certificate.js +1 -1
  183. package/lib/aws/edge/distribution.js +3 -3
  184. package/lib/aws/edge/dns-alias-record-targets.js +6 -6
  185. package/lib/aws/edge/dns-record.js +13 -13
  186. package/lib/aws/edge/dns-zone.js +1 -1
  187. package/lib/aws/edge/function.js +2 -2
  188. package/lib/aws/edge/key-value-store.js +4 -4
  189. package/lib/aws/edge/origin.js +3 -3
  190. package/lib/aws/edge/response-headers-policy.js +1 -1
  191. package/lib/aws/encryption/alias.js +1 -1
  192. package/lib/aws/encryption/key.js +1 -1
  193. package/lib/aws/encryption/via-service-principal.js +1 -1
  194. package/lib/aws/iam/grant.js +3 -3
  195. package/lib/aws/iam/group.js +1 -1
  196. package/lib/aws/iam/instance-profile.js +1 -1
  197. package/lib/aws/iam/managed-policy.js +1 -1
  198. package/lib/aws/iam/oidc-provider.js +1 -1
  199. package/lib/aws/iam/policy-document.js +1 -1
  200. package/lib/aws/iam/policy-statement.js +1 -1
  201. package/lib/aws/iam/policy.js +1 -1
  202. package/lib/aws/iam/principals.js +20 -20
  203. package/lib/aws/iam/role.js +14 -5
  204. package/lib/aws/iam/saml-provider.js +2 -2
  205. package/lib/aws/iam/unknown-principal.js +1 -1
  206. package/lib/aws/iam/user.js +1 -1
  207. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  208. package/lib/aws/network/subnet-group.js +3 -3
  209. package/lib/aws/network/subnet.js +4 -4
  210. package/lib/aws/notify/archive.js +1 -1
  211. package/lib/aws/notify/connection.js +3 -3
  212. package/lib/aws/notify/event-bus.js +3 -3
  213. package/lib/aws/notify/event-pattern.js +1 -1
  214. package/lib/aws/notify/input.js +2 -2
  215. package/lib/aws/notify/kinesis-stream.js +1 -1
  216. package/lib/aws/notify/notification-rule.js +1 -1
  217. package/lib/aws/notify/policy.js +1 -1
  218. package/lib/aws/notify/queue-base.js +1 -1
  219. package/lib/aws/notify/queue-policy.js +1 -1
  220. package/lib/aws/notify/queue.js +1 -1
  221. package/lib/aws/notify/resource-policy.js +1 -1
  222. package/lib/aws/notify/rule.d.ts +1 -0
  223. package/lib/aws/notify/rule.js +5 -3
  224. package/lib/aws/notify/schedule.js +1 -1
  225. package/lib/aws/notify/sqs-grants.generated.js +1 -1
  226. package/lib/aws/notify/subscription-filter.js +1 -1
  227. package/lib/aws/notify/subscription.js +4 -4
  228. package/lib/aws/notify/subscriptions/email.js +1 -1
  229. package/lib/aws/notify/subscriptions/lambda.js +1 -1
  230. package/lib/aws/notify/subscriptions/sms.js +1 -1
  231. package/lib/aws/notify/subscriptions/sqs.js +1 -1
  232. package/lib/aws/notify/subscriptions/url.js +1 -1
  233. package/lib/aws/notify/targets/event-bus.js +1 -1
  234. package/lib/aws/notify/targets/function.js +1 -1
  235. package/lib/aws/notify/targets/log-group.js +2 -2
  236. package/lib/aws/notify/targets/sqs.js +1 -1
  237. package/lib/aws/notify/targets/state-machine.js +1 -1
  238. package/lib/aws/notify/topic-base.js +1 -1
  239. package/lib/aws/notify/topic.js +1 -1
  240. package/lib/aws/storage/assets/image-asset.js +3 -3
  241. package/lib/aws/storage/assets/s3.js +1 -1
  242. package/lib/aws/storage/auth-token.js +2 -2
  243. package/lib/aws/storage/billing.js +1 -1
  244. package/lib/aws/storage/bucket-notifications.js +1 -1
  245. package/lib/aws/storage/bucket-policy.js +1 -1
  246. package/lib/aws/storage/bucket-source.js +1 -1
  247. package/lib/aws/storage/bucket.js +2 -2
  248. package/lib/aws/storage/capacity.js +1 -1
  249. package/lib/aws/storage/dynamodb-perms.d.ts +2 -2
  250. package/lib/aws/storage/dynamodb-perms.js +9 -16
  251. package/lib/aws/storage/ecr-repository.js +3 -3
  252. package/lib/aws/storage/encryption.js +1 -1
  253. package/lib/aws/storage/index.d.ts +2 -0
  254. package/lib/aws/storage/index.js +3 -1
  255. package/lib/aws/storage/notification-targets/function.js +1 -1
  256. package/lib/aws/storage/notification-targets/queue.js +1 -1
  257. package/lib/aws/storage/origin-access-identity.js +1 -1
  258. package/lib/aws/storage/parameter.js +2 -2
  259. package/lib/aws/storage/shared.d.ts +31 -2
  260. package/lib/aws/storage/shared.js +29 -2
  261. package/lib/aws/storage/stream-grants.d.ts +61 -0
  262. package/lib/aws/storage/stream-grants.js +72 -0
  263. package/lib/aws/storage/table-grants.d.ts +98 -0
  264. package/lib/aws/storage/table-grants.js +137 -0
  265. package/lib/aws/storage/table.d.ts +280 -8
  266. package/lib/aws/storage/table.js +350 -148
  267. package/lib/bundling.js +3 -3
  268. package/lib/construct-base.js +2 -2
  269. package/lib/duration.js +1 -1
  270. package/lib/errors.js +1 -1
  271. package/lib/expiration.js +1 -1
  272. package/lib/fs/ignore.js +4 -4
  273. package/lib/fs/index.js +1 -1
  274. package/lib/size.js +1 -1
  275. package/lib/stack-base.js +1 -1
  276. package/lib/terra-func.js +1 -1
  277. package/lib/time-zone.js +1 -1
  278. package/package.json +4 -4
@@ -159,7 +159,7 @@ class Code {
159
159
  }
160
160
  exports.Code = Code;
161
161
  _a = JSII_RTTI_SYMBOL_1;
162
- Code[_a] = { fqn: "terraconstructs.aws.compute.Code", version: "0.2.0" };
162
+ Code[_a] = { fqn: "terraconstructs.aws.compute.Code", version: "0.2.2" };
163
163
  /**
164
164
  * Lambda code from an S3 archive.
165
165
  */
@@ -186,7 +186,7 @@ class S3Code extends Code {
186
186
  }
187
187
  exports.S3Code = S3Code;
188
188
  _b = JSII_RTTI_SYMBOL_1;
189
- S3Code[_b] = { fqn: "terraconstructs.aws.compute.S3Code", version: "0.2.0" };
189
+ S3Code[_b] = { fqn: "terraconstructs.aws.compute.S3Code", version: "0.2.2" };
190
190
  /**
191
191
  * Lambda code from an S3 archive. With option to set KMSKey for encryption.
192
192
  */
@@ -214,7 +214,7 @@ class S3CodeV2 extends Code {
214
214
  }
215
215
  exports.S3CodeV2 = S3CodeV2;
216
216
  _c = JSII_RTTI_SYMBOL_1;
217
- S3CodeV2[_c] = { fqn: "terraconstructs.aws.compute.S3CodeV2", version: "0.2.0" };
217
+ S3CodeV2[_c] = { fqn: "terraconstructs.aws.compute.S3CodeV2", version: "0.2.2" };
218
218
  /**
219
219
  * Get the file extension for inline code based on the runtime family
220
220
  */
@@ -303,7 +303,7 @@ class InlineCode extends Code {
303
303
  }
304
304
  exports.InlineCode = InlineCode;
305
305
  _d = JSII_RTTI_SYMBOL_1;
306
- InlineCode[_d] = { fqn: "terraconstructs.aws.compute.InlineCode", version: "0.2.0" };
306
+ InlineCode[_d] = { fqn: "terraconstructs.aws.compute.InlineCode", version: "0.2.2" };
307
307
  /**
308
308
  * Lambda code from a local directory.
309
309
  */
@@ -344,7 +344,7 @@ class AssetCode extends Code {
344
344
  }
345
345
  exports.AssetCode = AssetCode;
346
346
  _e = JSII_RTTI_SYMBOL_1;
347
- AssetCode[_e] = { fqn: "terraconstructs.aws.compute.AssetCode", version: "0.2.0" };
347
+ AssetCode[_e] = { fqn: "terraconstructs.aws.compute.AssetCode", version: "0.2.2" };
348
348
  /**
349
349
  * Lambda code defined using 2 Terraform variables.
350
350
  * Useful when you don't have access to the code of your Lambda from your CDK code, so you can't use Assets,
@@ -414,7 +414,7 @@ class TerraformVariablesCode extends Code {
414
414
  }
415
415
  exports.TerraformVariablesCode = TerraformVariablesCode;
416
416
  _f = JSII_RTTI_SYMBOL_1;
417
- TerraformVariablesCode[_f] = { fqn: "terraconstructs.aws.compute.TerraformVariablesCode", version: "0.2.0" };
417
+ TerraformVariablesCode[_f] = { fqn: "terraconstructs.aws.compute.TerraformVariablesCode", version: "0.2.2" };
418
418
  /**
419
419
  * Represents a Docker image in ECR that can be bound as Lambda Code.
420
420
  */
@@ -439,7 +439,7 @@ class EcrImageCode extends Code {
439
439
  }
440
440
  exports.EcrImageCode = EcrImageCode;
441
441
  _g = JSII_RTTI_SYMBOL_1;
442
- EcrImageCode[_g] = { fqn: "terraconstructs.aws.compute.EcrImageCode", version: "0.2.0" };
442
+ EcrImageCode[_g] = { fqn: "terraconstructs.aws.compute.EcrImageCode", version: "0.2.2" };
443
443
  /**
444
444
  * Represents an ECR image that will be constructed from the specified asset and can be bound as Lambda code.
445
445
  */
@@ -475,5 +475,5 @@ class AssetImageCode extends Code {
475
475
  }
476
476
  exports.AssetImageCode = AssetImageCode;
477
477
  _h = JSII_RTTI_SYMBOL_1;
478
- AssetImageCode[_h] = { fqn: "terraconstructs.aws.compute.AssetImageCode", version: "0.2.0" };
478
+ AssetImageCode[_h] = { fqn: "terraconstructs.aws.compute.AssetImageCode", version: "0.2.2" };
479
479
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9jb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQTBDO0FBQzFDLCtCQUF5QztBQUN6Qyw4REFBMEQ7QUFDMUQsK0JBQStCO0FBRS9CLDZDQUFpRTtBQUNqRSx5Q0FBd0U7QUFDeEUsNkRBQWlEO0FBQ2pELDRDQUF3QztBQUV4Qyw4QkFBOEI7QUFFOUIsb0RBQW9EO0FBQ3BELHVDQUFtRDtBQUNuRCw0REFBNEQ7QUFDNUQsa0RBQWtEO0FBRWxEOztHQUVHO0FBQ0gsTUFBc0IsSUFBSTtJQUN4Qjs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQ3RCLE1BQXVCLEVBQ3ZCLEdBQVcsRUFDWCxhQUFzQjtRQUV0QixPQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUN4QixNQUF1QixFQUN2QixHQUFXLEVBQ1gsT0FBdUI7UUFFdkIsT0FBTyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUNsQixNQUF1QixFQUN2QixHQUFXLEVBQ1gsYUFBc0I7UUFFdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQVk7UUFDbkMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFZO1FBQy9CLE9BQU8sSUFBSSxDQUFD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LEVBQUU7Z0JBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtnQkFDN0IsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtnQkFDakMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRztnQkFDbkIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7YUFDOUM7U0FDRixDQUFDO0lBQ0osQ0FBQzs7QUF2Q0gsd0NBdURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd25TeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7IGpvaW4gYXMgcGF0aHRKb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGRhdGFBcmNoaXZlRmlsZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXJjaGl2ZVwiO1xuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgRG9ja2VySW1hZ2UsIERvY2tlckJ1aWxkT3B0aW9ucyB9IGZyb20gXCIuLi8uLi9idW5kbGluZ1wiO1xuaW1wb3J0IHsgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IsIFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCIuLi8uLi9lcnJvcnNcIjtcbmltcG9ydCB7IG1kNWhhc2ggfSBmcm9tIFwiLi4vLi4vaGVscGVycy1pbnRlcm5hbFwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgeyBJS2V5IH0gZnJvbSBcIi4uL2VuY3J5cHRpb25cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5pbXBvcnQgKiBhcyBzdG9yYWdlIGZyb20gXCIuLi9zdG9yYWdlXCI7XG4vLyBpbXBvcnQgeyBJQXdzQ29uc3RydWN0IH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IFJ1bnRpbWUsIFJ1bnRpbWVGYW1pbHkgfSBmcm9tIFwiLi9ydW50aW1lXCI7XG5pbXBvcnQgKiBhcyBlY3JfYXNzZXRzIGZyb20gXCIuLi9zdG9yYWdlL2Fzc2V0cy9pbWFnZS1hc3NldFwiO1xuaW1wb3J0ICogYXMgczNfYXNzZXRzIGZyb20gXCIuLi9zdG9yYWdlL2Fzc2V0cy9zM1wiO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIExhbWJkYSBIYW5kbGVyIENvZGUuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb2RlIHtcbiAgLyoqXG4gICAqIExhbWJkYSBoYW5kbGVyIGNvZGUgYXMgYW4gUzMgb2JqZWN0LlxuICAgKiBAcGFyYW0gYnVja2V0IFRoZSBTMyBidWNrZXRcbiAgICogQHBhcmFtIGtleSBUaGUgb2JqZWN0IGtleVxuICAgKiBAcGFyYW0gb2JqZWN0VmVyc2lvbiBPcHRpb25hbCBTMyBvYmplY3QgdmVyc2lvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQnVja2V0KFxuICAgIGJ1Y2tldDogc3RvcmFnZS5JQnVja2V0LFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9iamVjdFZlcnNpb24/OiBzdHJpbmcsXG4gICk6IFMzQ29kZSB7XG4gICAgcmV0dXJuIG5ldyBTM0NvZGUoYnVja2V0LCBrZXksIG9iamVjdFZlcnNpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIExhbWJkYSBoYW5kbGVyIGNvZGUgYXMgYW4gUzMgb2JqZWN0LlxuICAgKiBAcGFyYW0gYnVja2V0IFRoZSBTMyBidWNrZXRcbiAgICogQHBhcmFtIGtleSBUaGUgb2JqZWN0IGtleVxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCBwYXJhbWV0ZXJzIGZvciBzZXR0aW5nIHRoZSBjb2RlLCBjdXJyZW50IG9wdGlvbmFsIHBhcmFtZXRlcnMgdG8gc2V0IGhlcmUgYXJlXG4gICAqIDEuIGBvYmplY3RWZXJzaW9uYCB0byBzZXQgUzMgb2JqZWN0IHZlcnNpb25cbiAgICogMi4gYHNvdXJjZUtNU0tleWAgdG8gc2V0IEtNUyBLZXkgZm9yIGVuY3J5cHRpb24gb2YgY29kZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQnVja2V0VjIoXG4gICAgYnVja2V0OiBzdG9yYWdlLklCdWNrZXQsXG4gICAga2V5OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEJ1Y2tldE9wdGlvbnMsXG4gICk6IFMzQ29kZVYyIHtcbiAgICByZXR1cm4gbmV3IFMzQ29kZVYyKGJ1Y2tldCwga2V5LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBERVBSRUNBVEVEXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgZnJvbUJ1Y2tldGBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYnVja2V0KFxuICAgIGJ1Y2tldDogc3RvcmFnZS5JQnVja2V0LFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9iamVjdFZlcnNpb24/OiBzdHJpbmcsXG4gICk6IFMzQ29kZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUJ1Y2tldChidWNrZXQsIGtleSwgb2JqZWN0VmVyc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogSW5saW5lIGNvZGUgZm9yIExhbWJkYSBoYW5kbGVyXG4gICAqIEByZXR1cm5zIGBMYW1iZGFJbmxpbmVDb2RlYCB3aXRoIGlubGluZSBjb2RlLlxuICAgKiBAcGFyYW0gY29kZSBUaGUgYWN0dWFsIGhhbmRsZXIgY29kZSAodGhlIHJlc3VsdGluZyB6aXAgZmlsZSBjYW5ub3QgZXhjZWVkIDRNQilcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUlubGluZShjb2RlOiBzdHJpbmcpOiBJbmxpbmVDb2RlIHtcbiAgICByZXR1cm4gbmV3IElubGluZUNvZGUoY29kZSk7XG4gIH1cblxuICAvKipcbiAgICogREVQUkVDQVRFRFxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGZyb21JbmxpbmVgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlubGluZShjb2RlOiBzdHJpbmcpOiBJbmxpbmVDb2RlIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tSW5saW5lKGNvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBmdW5jdGlvbiBjb2RlIGZyb20gYSBsb2NhbCBkaXNrIHBhdGguXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIEVpdGhlciBhIGRpcmVjdG9yeSB3aXRoIHRoZSBMYW1iZGEgY29kZSBidW5kbGUgb3IgYSAuemlwIGZpbGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFzc2V0KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBvcHRpb25zPzogczNfYXNzZXRzLkFzc2V0T3B0aW9ucyxcbiAgKTogQXNzZXRDb2RlIHtcbiAgICByZXR1cm4gbmV3IEFzc2V0Q29kZShwYXRoLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGEgY29tbWFuZCB0byBidWlsZCB0aGUgY29kZSBhc3NldCB0aGF0IHdpbGwgYmUgdXNlZC5cbiAgICpcbiAgICogQHBhcmFtIG91dHB1dCBXaGVyZSB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kIHdpbGwgYmUgZGlyZWN0ZWQsIGVpdGhlciBhIGRpcmVjdG9yeSBvciBhIC56aXAgZmlsZSB3aXRoIHRoZSBvdXRwdXQgTGFtYmRhIGNvZGUgYnVuZGxlXG4gICAqICogRm9yIGV4YW1wbGUsIGlmIHlvdSB1c2UgdGhlIGNvbW1hbmQgdG8gcnVuIGEgYnVpbGQgc2NyaXB0IChlLmcuLCBbICdub2RlJywgJ2J1bmRsZV9jb2RlLmpzJyBdKSwgYW5kIHRoZSBidWlsZCBzY3JpcHQgZ2VuZXJhdGVzIGEgZGlyZWN0b3J5IGAvbXkvbGFtYmRhL2NvZGVgXG4gICAqIGNvbnRhaW5pbmcgY29kZSB0aGF0IHNob3VsZCBiZSByYW4gaW4gYSBMYW1iZGEgZnVuY3Rpb24sIHRoZW4gb3V0cHV0IHNob3VsZCBiZSBzZXQgdG8gYC9teS9sYW1iZGEvY29kZWBcbiAgICogQHBhcmFtIGNvbW1hbmQgVGhlIGNvbW1hbmQgd2hpY2ggd2lsbCBiZSBleGVjdXRlZCB0byBnZW5lcmF0ZSB0aGUgb3V0cHV0LCBmb3IgZXhhbXBsZSwgWyAnbm9kZScsICdidW5kbGVfY29kZS5qcycgXVxuICAgKiBAcGFyYW0gb3B0aW9ucyBvcHRpb25zIGZvciB0aGUgY3VzdG9tIGNvbW1hbmQsIGFuZCBvdGhlciBhc3NldCBvcHRpb25zIC0tIGJ1dCBidW5kbGluZyBvcHRpb25zIGFyZSBub3QgYWxsb3dlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUN1c3RvbUNvbW1hbmQoXG4gICAgb3V0cHV0OiBzdHJpbmcsXG4gICAgY29tbWFuZDogc3RyaW5nW10sXG4gICAgb3B0aW9ucz86IEN1c3RvbUNvbW1hbmRPcHRpb25zLFxuICApOiBBc3NldENvZGUge1xuICAgIGlmIChjb21tYW5kLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAnY29tbWFuZCBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGFyZ3VtZW50LiBGb3IgZXhhbXBsZSwgW1wibm9kZVwiLCBcImJ1aWxkRmlsZS5qc1wiXS4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBjbWQgPSBjb21tYW5kWzBdO1xuICAgIGNvbnN0IGNvbW1hbmRBcmd1bWVudHMgPSBjb21tYW5kLnNwbGljZSgxKTtcblxuICAgIGNvbnN0IHByb2MgPVxuICAgICAgb3B0aW9ucz8uY29tbWFuZE9wdGlvbnMgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHNwYXduU3luYyhjbWQsIGNvbW1hbmRBcmd1bWVudHMpIC8vIHVzZSB0aGUgZGVmYXVsdCBzcGF3blN5bmNPcHRpb25zXG4gICAgICAgIDogc3Bhd25TeW5jKGNtZCwgY29tbWFuZEFyZ3VtZW50cywgb3B0aW9ucy5jb21tYW5kT3B0aW9ucyk7XG5cbiAgICBpZiAocHJvYy5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIGV4ZWN1dGUgY3VzdG9tIGNvbW1hbmQ6ICR7cHJvYy5lcnJvcn1gLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHByb2Muc3RhdHVzICE9PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGAke2NvbW1hbmQuam9pbihcIiBcIil9IGV4aXRlZCB3aXRoIHN0YXR1czogJHtwcm9jLnN0YXR1c31cXG5cXG5zdGRvdXQ6ICR7cHJvYy5zdGRvdXQ/LnRvU3RyaW5nKCkudHJpbSgpfVxcblxcbnN0ZGVycjogJHtwcm9jLnN0ZGVycj8udG9TdHJpbmcoKS50cmltKCl9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBBc3NldENvZGUob3V0cHV0LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgZnVuY3Rpb24gY29kZSBmcm9tIGFuIGFzc2V0IGNyZWF0ZWQgYnkgYSBEb2NrZXIgYnVpbGQuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBhc3NldCBpcyBleHBlY3RlZCB0byBiZSBsb2NhdGVkIGF0IGAvYXNzZXRgIGluIHRoZVxuICAgKiBpbWFnZS5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBEb2NrZXIgZmlsZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBEb2NrZXIgYnVpbGQgb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRG9ja2VyQnVpbGQoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IERvY2tlckJ1aWxkQXNzZXRPcHRpb25zID0ge30sXG4gICk6IEFzc2V0Q29kZSB7XG4gICAgbGV0IGltYWdlUGF0aCA9IG9wdGlvbnMuaW1hZ2VQYXRoID8/IFwiL2Fzc2V0Ly5cIjtcblxuICAgIC8vIGVuc3VyZSBpbWFnZVBhdGggZW5kcyB3aXRoIC8uIHRvIGNvcHkgdGhlICoqY29udGVudCoqIGF0IHRoaXMgcGF0aFxuICAgIGlmIChpbWFnZVBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG4gICAgICBpbWFnZVBhdGggPSBgJHtpbWFnZVBhdGh9LmA7XG4gICAgfSBlbHNlIGlmICghaW1hZ2VQYXRoLmVuZHNXaXRoKFwiLy5cIikpIHtcbiAgICAgIGltYWdlUGF0aCA9IGAke2ltYWdlUGF0aH0vLmA7XG4gICAgfVxuXG4gICAgY29uc3QgYXNzZXRQYXRoID0gRG9ja2VySW1hZ2UuZnJvbUJ1aWxkKHBhdGgsIG9wdGlvbnMpLmNwKFxuICAgICAgaW1hZ2VQYXRoLFxuICAgICAgb3B0aW9ucy5vdXRwdXRQYXRoLFxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IEFzc2V0Q29kZShhc3NldFBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERFUFJFQ0FURURcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBmcm9tQXNzZXRgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzc2V0KHBhdGg6IHN0cmluZyk6IEFzc2V0Q29kZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUFzc2V0KHBhdGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTGFtYmRhIHNvdXJjZSBkZWZpbmVkIHVzaW5nIFRlcnJhZm9ybSB2YXJpYWJsZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIGBUZXJyYWZvcm1WYXJpYWJsZXNDb2RlYFxuICAgKiBAcGFyYW0gcHJvcHMgb3B0aW9uYWwgY29uc3RydWN0aW9uIHByb3BlcnRpZXMgb2YgYFRlcnJhZm9ybVZhcmlhYmxlc0NvZGVgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21UZXJyYWZvcm1WYXJpYWJsZXMoXG4gICAgcHJvcHM/OiBUZXJyYWZvcm1WYXJpYWJsZXNDb2RlUHJvcHMsXG4gICk6IFRlcnJhZm9ybVZhcmlhYmxlc0NvZGUge1xuICAgIHJldHVybiBuZXcgVGVycmFmb3JtVmFyaWFibGVzQ29kZShwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogREVQUkVDQVRFRFxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGZyb21UZXJyYWZvcm1WYXJpYWJsZXNgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHRlcnJhZm9ybVZhcmlhYmxlcyhcbiAgICBwcm9wcz86IFRlcnJhZm9ybVZhcmlhYmxlc0NvZGVQcm9wcyxcbiAgKTogVGVycmFmb3JtVmFyaWFibGVzQ29kZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbVRlcnJhZm9ybVZhcmlhYmxlcyhwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGFuIGV4aXN0aW5nIEVDUiBpbWFnZSBhcyB0aGUgTGFtYmRhIGNvZGUuXG4gICAqIEBwYXJhbSByZXBvc2l0b3J5IHRoZSBFQ1IgcmVwb3NpdG9yeSB0aGF0IHRoZSBpbWFnZSBpcyBpblxuICAgKiBAcGFyYW0gcHJvcHMgcHJvcGVydGllcyB0byBmdXJ0aGVyIGNvbmZpZ3VyZSB0aGUgc2VsZWN0ZWQgaW1hZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUVjckltYWdlKFxuICAgIHJlcG9zaXRvcnk6IHN0b3JhZ2UuSVJlcG9zaXRvcnksXG4gICAgcHJvcHM/OiBFY3JJbWFnZUNvZGVQcm9wcyxcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBFY3JJbWFnZUNvZGUocmVwb3NpdG9yeSwgcHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBFQ1IgaW1hZ2UgZnJvbSB0aGUgc3BlY2lmaWVkIGFzc2V0IGFuZCBiaW5kIGl0IGFzIHRoZSBMYW1iZGEgY29kZS5cbiAgICogQHBhcmFtIGRpcmVjdG9yeSB0aGUgZGlyZWN0b3J5IGZyb20gd2hpY2ggdGhlIGFzc2V0IG11c3QgYmUgY3JlYXRlZFxuICAgKiBAcGFyYW0gcHJvcHMgcHJvcGVydGllcyB0byBmdXJ0aGVyIGNvbmZpZ3VyZSB0aGUgc2VsZWN0ZWQgaW1hZ2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFzc2V0SW1hZ2UoXG4gICAgZGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgcHJvcHM6IEFzc2V0SW1hZ2VDb2RlUHJvcHMgPSB7fSxcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBBc3NldEltYWdlQ29kZShkaXJlY3RvcnksIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhpcyBDb2RlIGlzIGlubGluZSBjb2RlIG9yIG5vdC5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdGhpcyB2YWx1ZSBpcyBpZ25vcmVkIHNpbmNlIGlubGluZSBpcyBub3cgZGV0ZXJtaW5lZCBiYXNlZCBvbiB0aGVcbiAgICogdGhlIGBpbmxpbmVDb2RlYCBmaWVsZCBvZiBgQ29kZUNvbmZpZ2AgcmV0dXJuZWQgZnJvbSBgYmluZCgpYC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBpc0lubGluZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGxhbWJkYSBvciBsYXllciBpcyBpbml0aWFsaXplZCB0byBhbGxvdyB0aGlzIG9iamVjdCB0byBiaW5kXG4gICAqIHRvIHRoZSBzdGFjaywgYWRkIHJlc291cmNlcyBhbmQgaGF2ZSBmdW4uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgYmluZGluZyBzY29wZS4gRG9uJ3QgYmUgc21hcnQgYWJvdXQgdHJ5aW5nIHRvIGRvd24tY2FzdCBvclxuICAgKiBhc3N1bWUgaXQncyBpbml0aWFsaXplZC4gWW91IG1heSBqdXN0IHVzZSBpdCBhcyBhIGNvbnN0cnVjdCBzY29wZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnO1xuXG4gIC8vIFRPRE86IHBlbmRpbmcgY3VzdG9tIENMSSB0byBtb2NrIExhbWJkYSBmdW5jdGlvbiBpbnZvY2F0aW9ucyBsb2NhbGx5XG4gIC8vIC8qKlxuICAvLyAgKiBDYWxsZWQgYWZ0ZXIgdGhlIHRlcnJhZm9ybSBwcm92aWRlciBmdW5jdGlvbiByZXNvdXJjZSBoYXMgYmVlbiBjcmVhdGVkIHRvIGFsbG93IHRoZSBjb2RlXG4gIC8vICAqIGNsYXNzIHRvIGJpbmQgdG8gaXQuIFNwZWNpZmljYWxseSBpdCdzIHJlcXVpcmVkIHRvIGFsbG93IGFzc2V0cyB0byBhZGRcbiAgLy8gICogbWV0YWRhdGEgZm9yIHRvb2xpbmcgbGlrZSBTQU0gQ0xJIHRvIGJlIGFibGUgdG8gZmluZCB0aGVpciBvcmlnaW5zLlxuICAvLyAgKi9cbiAgLy8gcHVibGljIGJpbmRUb1Jlc291cmNlKFxuICAvLyAgIF9yZXNvdXJjZTogSUF3c0NvbnN0cnVjdCxcbiAgLy8gICBfb3B0aW9ucz86IFJlc291cmNlQmluZE9wdGlvbnMsXG4gIC8vICkge1xuICAvLyAgIHJldHVybjtcbiAgLy8gfVxufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBiaW5kaW5nIGBDb2RlYCBpbnRvIGEgYEZ1bmN0aW9uYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBvZiB0aGUgY29kZSBpbiBTMyAobXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggYGlubGluZUNvZGVgIGFuZCBgaW1hZ2VgKS5cbiAgICogQGRlZmF1bHQgLSBjb2RlIGlzIG5vdCBhbiBzMyBsb2NhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgczNMb2NhdGlvbj86IHN0b3JhZ2UuUzNMb2NhdGlvbjtcblxuICAvKipcbiAgICogSW5saW5lIGNvZGUgKG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGBzM0xvY2F0aW9uYCBhbmQgYGltYWdlYCkuXG4gICAqIEBkZWZhdWx0IC0gY29kZSBpcyBub3QgaW5saW5lIGNvZGVcbiAgICovXG4gIHJlYWRvbmx5IGlubGluZUNvZGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERvY2tlciBpbWFnZSBjb25maWd1cmF0aW9uIChtdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgczNMb2NhdGlvbmAgYW5kIGBpbmxpbmVDb2RlYCkuXG4gICAqIEBkZWZhdWx0IC0gY29kZSBpcyBub3QgYW4gRUNSIGNvbnRhaW5lciBpbWFnZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBDb2RlSW1hZ2VDb25maWc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIEtNUyBrZXkgdXNlZCB0byBlbmNyeXB0IHRoZSBoYW5kbGVyIGNvZGUuXG4gICAqIEBkZWZhdWx0IC0gdGhlIGRlZmF1bHQgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB3aXRoIEFtYXpvbiBTMyBtYW5hZ2VkIGtleXMoU1NFLVMzKSBrZXkgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlS01TS2V5QXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGhhc2ggb2YgdGhlIHNvdXJjZSBjb2RlLCB1c2VkIHRvIGRldGVybWluZSBpZiB0aGUgY29kZSBoYXMgY2hhbmdlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUNvZGVIYXNoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlc3VsdCBvZiB0aGUgYmluZCB3aGVuIGFuIEVDUiBpbWFnZSBpcyB1c2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVJbWFnZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBVUkkgdG8gdGhlIERvY2tlciBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlVXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgb3Igb3ZlcnJpZGUgdGhlIENNRCBvbiB0aGUgc3BlY2lmaWVkIERvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKiBUaGlzIG5lZWRzIHRvIGJlIGluIHRoZSAnZXhlYyBmb3JtJywgdml6LiwgYFsgJ2V4ZWN1dGFibGUnLCAncGFyYW0xJywgJ3BhcmFtMicgXWAuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9idWlsZGVyLyNjbWRcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIENNRCBzcGVjaWZpZWQgaW4gdGhlIGRvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgY21kPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgb3Igb3ZlcnJpZGUgdGhlIEVOVFJZUE9JTlQgb24gdGhlIHNwZWNpZmllZCBEb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICogQW4gRU5UUllQT0lOVCBhbGxvd3MgeW91IHRvIGNvbmZpZ3VyZSBhIGNvbnRhaW5lciB0aGF0IHdpbGwgcnVuIGFzIGFuIGV4ZWN1dGFibGUuXG4gICAqIFRoaXMgbmVlZHMgdG8gYmUgaW4gdGhlICdleGVjIGZvcm0nLCB2aXouLCBgWyAnZXhlY3V0YWJsZScsICdwYXJhbTEnLCAncGFyYW0yJyBdYC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvI2VudHJ5cG9pbnRcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIEVOVFJZUE9JTlQgaW4gdGhlIGRvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZW50cnlwb2ludD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9yIG92ZXJyaWRlIHRoZSBXT1JLRElSIG9uIHRoZSBzcGVjaWZpZWQgRG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqIEEgV09SS0RJUiBhbGxvd3MgeW91IHRvIGNvbmZpZ3VyZSB0aGUgd29ya2luZyBkaXJlY3RvcnkgdGhlIGNvbnRhaW5lciB3aWxsIHVzZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvI3dvcmtkaXJcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIFdPUktESVIgaW4gdGhlIGRvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2luZ0RpcmVjdG9yeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBMYW1iZGEgY29kZSBmcm9tIGFuIFMzIGFyY2hpdmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTM0NvZGUgZXh0ZW5kcyBDb2RlIHtcbiAgcHVibGljIHJlYWRvbmx5IGlzSW5saW5lID0gZmFsc2U7XG4gIHByaXZhdGUgYnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGJ1Y2tldDogc3RvcmFnZS5JQnVja2V0LFxuICAgIHByaXZhdGUga2V5OiBzdHJpbmcsXG4gICAgcHJpdmF0ZSBvYmplY3RWZXJzaW9uPzogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKCFidWNrZXQuYnVja2V0TmFtZSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCJidWNrZXROYW1lIGlzIHVuZGVmaW5lZCBmb3IgdGhlIHByb3ZpZGVkIGJ1Y2tldFwiLFxuICAgICAgICBidWNrZXQsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuYnVja2V0TmFtZSA9IGJ1Y2tldC5idWNrZXROYW1lO1xuICB9XG5cbiAgcHVibGljIGJpbmQoX3Njb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgczNMb2NhdGlvbjoge1xuICAgICAgICBidWNrZXROYW1lOiB0aGlzLmJ1Y2tldE5hbWUsXG4gICAgICAgIG9iamVjdEtleTogdGhpcy5rZXksXG4gICAgICAgIG9iamVjdFZlcnNpb246IHRoaXMub2JqZWN0VmVyc2lvbixcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIExhbWJkYSBjb2RlIGZyb20gYW4gUzMgYXJjaGl2ZS4gV2l0aCBvcHRpb24gdG8gc2V0IEtNU0tleSBmb3IgZW5jcnlwdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFMzQ29kZVYyIGV4dGVuZHMgQ29kZSB7XG4gIHB1YmxpYyByZWFkb25seSBpc0lubGluZSA9IGZhbHNlO1xuICBwcml2YXRlIGJ1Y2tldE5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBidWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldCxcbiAgICBwcml2YXRlIGtleTogc3RyaW5nLFxuICAgIHByaXZhdGUgb3B0aW9ucz86IEJ1Y2tldE9wdGlvbnMsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKCFidWNrZXQuYnVja2V0TmFtZSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCJidWNrZXROYW1lIGlzIHVuZGVmaW5lZCBmb3IgdGhlIHByb3ZpZGVkIGJ1Y2tldFwiLFxuICAgICAgICBidWNrZXQsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuYnVja2V0TmFtZSA9IGJ1Y2tldC5idWNrZXROYW1lO1xuICB9XG5cbiAgcHVibGljIGJpbmQoX3Njb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgczNMb2NhdGlvbjoge1xuICAgICAgICBidWNrZXROYW1lOiB0aGlzLmJ1Y2tldE5hbWUsXG4gICAgICAgIG9iamVjdEtleTogdGhpcy5rZXksXG4gICAgICAgIG9iamVjdFZlcnNpb246IHRoaXMub3B0aW9ucz8ub2JqZWN0VmVyc2lvbixcbiAgICAgIH0sXG4gICAgICBzb3VyY2VLTVNLZXlBcm46IHRoaXMub3B0aW9ucz8uc291cmNlS01TS2V5Py5rZXlBcm4sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEdldCB0aGUgZmlsZSBleHRlbnNpb24gZm9yIGlubGluZSBjb2RlIGJhc2VkIG9uIHRoZSBydW50aW1lIGZhbWlseVxuICovXG5mdW5jdGlvbiBnZXRJbmxpbmVDb2RlRmlsZUV4dGVuc2lvbihydW50aW1lPzogUnVudGltZSk6IHN0cmluZyB7XG4gIGlmICghcnVudGltZSkge1xuICAgIC8vIERlZmF1bHQgdG8gLmpzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIHJldHVybiBcIi5qc1wiO1xuICB9XG5cbiAgc3dpdGNoIChydW50aW1lLmZhbWlseSkge1xuICAgIGNhc2UgUnVudGltZUZhbWlseS5OT0RFSlM6XG4gICAgICByZXR1cm4gXCIuanNcIjtcbiAgICBjYXNlIFJ1bnRpbWVGYW1pbHkuUFlUSE9OOlxuICAgICAgcmV0dXJuIFwiLnB5XCI7XG4gICAgY2FzZSBSdW50aW1lRmFtaWx5LkpBVkE6XG4gICAgICByZXR1cm4gXCIuamF2YVwiO1xuICAgIGNhc2UgUnVudGltZUZhbWlseS5ET1RORVRfQ09SRTpcbiAgICAgIHJldHVybiBcIi5jc1wiO1xuICAgIGNhc2UgUnVudGltZUZhbWlseS5HTzpcbiAgICAgIHJldHVybiBcIi5nb1wiO1xuICAgIGNhc2UgUnVudGltZUZhbWlseS5SVUJZOlxuICAgICAgcmV0dXJuIFwiLnJiXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIERlZmF1bHQgdG8gLmpzIGZvciB1bmtub3duIHJ1bnRpbWVzXG4gICAgICByZXR1cm4gXCIuanNcIjtcbiAgfVxufVxuXG4vKipcbiAqIExhbWJkYSBjb2RlIGZyb20gYW4gaW5saW5lIHN0cmluZy5cbiAqL1xuZXhwb3J0IGNsYXNzIElubGluZUNvZGUgZXh0ZW5kcyBDb2RlIHtcbiAgcHVibGljIHJlYWRvbmx5IGlzSW5saW5lID0gdHJ1ZTtcbiAgcHJpdmF0ZSBkYXRhQXJjaGl2ZT86IGRhdGFBcmNoaXZlRmlsZS5EYXRhQXJjaGl2ZUZpbGU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb2RlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKGNvZGUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXCJMYW1iZGEgaW5saW5lIGNvZGUgY2Fubm90IGJlIGVtcHR5XCIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnIHtcbiAgICB0aGlzLmVuc3VyZURhdGFBcmNoaXZlKHNjb3BlKTtcbiAgICByZXR1cm4ge1xuICAgICAgaW5saW5lQ29kZTogdGhpcy5kYXRhQXJjaGl2ZSEub3V0cHV0UGF0aCxcbiAgICAgIHNvdXJjZUNvZGVIYXNoOiB0aGlzLmRhdGFBcmNoaXZlIS5vdXRwdXRCYXNlNjRTaGEyNTYsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVZ2x5IGhhY2sgdG8gc3VwcG9ydCBpbmxpbmUgY29kZSB3aXRoIFRlcnJhZm9ybS5cbiAgICpcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2lzc3Vlcy85Nzc0I2lzc3VlY29tbWVudC02NjkzNTY3ODZcbiAgICogQHBhcmFtIHNjb3BlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIGVuc3VyZURhdGFBcmNoaXZlKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgICBpZiAodGhpcy5kYXRhQXJjaGl2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBnZXQgdGhlIHByb3ZpZGVyIHNpbmdsZXRvblxuICAgIGNvbnN0IHByb3ZpZGVyID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpLmFyY2hpdmVQcm92aWRlcjtcbiAgICAvLyBlbnN1cmUgdGhlIGNvZGUgaXMgaGFzaGVkIGZvciBjb25zaXN0ZW5jeVxuICAgIGNvbnN0IGlkID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpLnVuaXF1ZVJlc291cmNlTmFtZShcbiAgICAgIG5ldyBjZGt0Zi5UZXJyYWZvcm1FbGVtZW50KHNjb3BlLCBtZDVoYXNoKHRoaXMuY29kZSkpLFxuICAgICAge1xuICAgICAgICBtYXhMZW5ndGg6IDY0LFxuICAgICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiLV9cIixcbiAgICAgIH0sXG4gICAgKTtcbiAgICAvLyBjb25zdCBpZCA9IG1kNWhhc2godGhpcy5jb2RlKTtcbiAgICBjb25zdCBleGlzdGluZyA9IHNjb3BlLm5vZGUudHJ5RmluZENoaWxkKGlkKTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIHRoaXMuZGF0YUFyY2hpdmUgPSBleGlzdGluZyBhcyBkYXRhQXJjaGl2ZUZpbGUuRGF0YUFyY2hpdmVGaWxlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBEZXRlcm1pbmUgdGhlIGZpbGUgZXh0ZW5zaW9uIGJhc2VkIG9uIHRoZSBydW50aW1lXG4gICAgICAvLyBUaGUgc2NvcGUgc2hvdWxkIGJlIGEgTGFtYmRhRnVuY3Rpb24gd2hlbiBiaW5kIGlzIGNhbGxlZFxuICAgICAgbGV0IHJ1bnRpbWU6IFJ1bnRpbWUgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAoXCJydW50aW1lXCIgaW4gc2NvcGUgJiYgc2NvcGUucnVudGltZSBpbnN0YW5jZW9mIFJ1bnRpbWUpIHtcbiAgICAgICAgcnVudGltZSA9IHNjb3BlLnJ1bnRpbWU7XG4gICAgICB9XG4gICAgICBjb25zdCBleHRlbnNpb24gPSBnZXRJbmxpbmVDb2RlRmlsZUV4dGVuc2lvbihydW50aW1lKTtcblxuICAgICAgdGhpcy5kYXRhQXJjaGl2ZSA9IG5ldyBkYXRhQXJjaGl2ZUZpbGUuRGF0YUFyY2hpdmVGaWxlKHNjb3BlLCBpZCwge1xuICAgICAgICBvdXRwdXRQYXRoOiBwYXRodEpvaW4oXG4gICAgICAgICAgY2RrdGYuVG9rZW4uYXNTdHJpbmcoY2RrdGYucmVmKFwicGF0aC5yb290XCIpKSxcbiAgICAgICAgICBcIi5hcmNoaXZlX2ZpbGVzXCIsXG4gICAgICAgICAgYCR7aWR9LnppcGAsXG4gICAgICAgICksXG4gICAgICAgIHR5cGU6IFwiemlwXCIsXG4gICAgICAgIHNvdXJjZUNvbnRlbnQ6IHRoaXMuY29kZSxcbiAgICAgICAgc291cmNlQ29udGVudEZpbGVuYW1lOiBgaW5kZXgke2V4dGVuc2lvbn1gLFxuICAgICAgICBwcm92aWRlcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIExhbWJkYSBjb2RlIGZyb20gYSBsb2NhbCBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NldENvZGUgZXh0ZW5kcyBDb2RlIHtcbiAgcHVibGljIHJlYWRvbmx5IGlzSW5saW5lID0gZmFsc2U7XG4gIHByaXZhdGUgYXNzZXQ/OiBzM19hc3NldHMuQXNzZXQ7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIHRoZSBhc3NldCBmaWxlIG9yIGRpcmVjdG9yeS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwYXRoOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBzM19hc3NldHMuQXNzZXRPcHRpb25zID0ge30sXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgYmluZChzY29wZTogQ29uc3RydWN0KTogQ29kZUNvbmZpZyB7XG4gICAgLy8gSWYgdGhlIHNhbWUgQXNzZXRDb2RlIGlzIHVzZWQgbXVsdGlwbGUgdGltZXMsIHJldGFpbiBvbmx5IHRoZSBmaXJzdCBpbnN0YW50aWF0aW9uLlxuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhpcy5hc3NldCA9IG5ldyBzM19hc3NldHMuQXNzZXQoc2NvcGUsIFwiQ29kZVwiLCB7XG4gICAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICAgICAgZGVwbG95VGltZTogdHJ1ZSxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMuYXNzZXQpICE9PSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGBBc3NldCBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCBhbm90aGVyIHN0YWNrICcke0F3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMuYXNzZXQpLmdyaWRVVUlEfScuIGAgK1xuICAgICAgICAgIFwiQ3JlYXRlIGEgbmV3IENvZGUgaW5zdGFuY2UgZm9yIGV2ZXJ5IHN0YWNrLlwiLFxuICAgICAgICBzY29wZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFzc2V0LmlzWmlwQXJjaGl2ZSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYEFzc2V0IG11c3QgYmUgYSAuemlwIGZpbGUgb3IgYSBkaXJlY3RvcnkgKCR7dGhpcy5wYXRofSlgLFxuICAgICAgICBzY29wZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHMzTG9jYXRpb246IHtcbiAgICAgICAgYnVja2V0TmFtZTogdGhpcy5hc3NldC5zM0J1Y2tldE5hbWUsXG4gICAgICAgIG9iamVjdEtleTogdGhpcy5hc3NldC5zM09iamVjdEtleSxcbiAgICAgIH0sXG4gICAgICBzb3VyY2VLTVNLZXlBcm46IHRoaXMub3B0aW9ucy5zb3VyY2VLTVNLZXk/LmtleUFybixcbiAgICB9O1xuICB9XG5cbiAgLy8gcHVibGljIGJpbmRUb1Jlc291cmNlKFxuICAvLyAgIHJlc291cmNlOiBJQXdzQ29uc3RydWN0LFxuICAvLyAgIG9wdGlvbnM6IFJlc291cmNlQmluZE9wdGlvbnMgPSB7fSxcbiAgLy8gKSB7XG4gIC8vICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gIC8vICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAvLyAgICAgICBcImJpbmRUb1Jlc291cmNlKCkgbXVzdCBiZSBjYWxsZWQgYWZ0ZXIgYmluZCgpXCIsXG4gIC8vICAgICAgIHJlc291cmNlLFxuICAvLyAgICAgKTtcbiAgLy8gICB9XG5cbiAgLy8gICBjb25zdCByZXNvdXJjZVByb3BlcnR5ID0gb3B0aW9ucy5yZXNvdXJjZVByb3BlcnR5IHx8IFwiQ29kZVwiO1xuICAvLyAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTQzMlxuICAvLyAgIHRoaXMuYXNzZXQuYWRkUmVzb3VyY2VNZXRhZGF0YShyZXNvdXJjZSwgcmVzb3VyY2VQcm9wZXJ0eSk7XG4gIC8vIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUJpbmRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBhbm5vdGF0ZSB3aXRoIGFzc2V0IG1ldGFkYXRhLlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTQzMlxuICAgKiBAZGVmYXVsdCBDb2RlXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZVByb3BlcnR5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnN0cnVjdGlvbiBwcm9wZXJ0aWVzIGZvciBgVGVycmFmb3JtVmFyaWFibGVzQ29kZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtVmFyaWFibGVzQ29kZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBUZXJyYWZvcm0gdmFyaWFibGUgdGhhdCByZXByZXNlbnRzIHRoZSBuYW1lIG9mIHRoZSBTMyBCdWNrZXRcbiAgICogd2hlcmUgdGhlIExhbWJkYSBjb2RlIHdpbGwgYmUgbG9jYXRlZCBpbi5cbiAgICogTXVzdCBiZSBvZiB0eXBlICdTdHJpbmcnLlxuICAgKlxuICAgKiBAZGVmYXVsdCBhIG5ldyB2YXJpYWJsZSB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldE5hbWVWYXI/OiBjZGt0Zi5UZXJyYWZvcm1WYXJpYWJsZTtcblxuICAvKipcbiAgICogVGhlIFRlcnJhZm9ybSB2YXJpYWJsZSB0aGF0IHJlcHJlc2VudHMgdGhlIHBhdGggaW5zaWRlIHRoZSBTMyBCdWNrZXRcbiAgICogd2hlcmUgdGhlIExhbWJkYSBjb2RlIHdpbGwgYmUgbG9jYXRlZCBhdC5cbiAgICogTXVzdCBiZSBvZiB0eXBlICdTdHJpbmcnLlxuICAgKlxuICAgKiBAZGVmYXVsdCBhIG5ldyB2YXJpYWJsZSB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IG9iamVjdEtleVZhcj86IGNka3RmLlRlcnJhZm9ybVZhcmlhYmxlO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgS01TIGtleSB1c2VkIHRvIGVuY3J5cHQgdGhlIGhhbmRsZXIgY29kZS5cbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIHdpdGggQW1hem9uIFMzIG1hbmFnZWQga2V5cyhTU0UtUzMpIGtleSB3aWxsIGJlIHVzZWQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VLTVNLZXk/OiBJS2V5O1xufVxuXG4vKipcbiAqIExhbWJkYSBjb2RlIGRlZmluZWQgdXNpbmcgMiBUZXJyYWZvcm0gdmFyaWFibGVzLlxuICogVXNlZnVsIHdoZW4geW91IGRvbid0IGhhdmUgYWNjZXNzIHRvIHRoZSBjb2RlIG9mIHlvdXIgTGFtYmRhIGZyb20geW91ciBDREsgY29kZSwgc28geW91IGNhbid0IHVzZSBBc3NldHMsXG4gKiBhbmQgeW91IHdhbnQgdG8gZGVwbG95IHRoZSBMYW1iZGEgaW4gYSBwaXBlbGluZSwgZHVyaW5nIFRlcnJhZm9ybSBleGVjdXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1WYXJpYWJsZXNDb2RlIGV4dGVuZHMgQ29kZSB7XG4gIHB1YmxpYyByZWFkb25seSBpc0lubGluZSA9IGZhbHNlO1xuICBwcml2YXRlIF9idWNrZXROYW1lVmFyPzogY2RrdGYuVGVycmFmb3JtVmFyaWFibGU7XG4gIHByaXZhdGUgX29iamVjdEtleVZhcj86IGNka3RmLlRlcnJhZm9ybVZhcmlhYmxlO1xuICBwcml2YXRlIF9zb3VyY2VLTVNLZXk/OiBJS2V5O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBUZXJyYWZvcm1WYXJpYWJsZXNDb2RlUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLl9idWNrZXROYW1lVmFyID0gcHJvcHMuYnVja2V0TmFtZVZhcjtcbiAgICB0aGlzLl9vYmplY3RLZXlWYXIgPSBwcm9wcy5vYmplY3RLZXlWYXI7XG4gICAgdGhpcy5fc291cmNlS01TS2V5ID0gcHJvcHMuc291cmNlS01TS2V5O1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IENvZGVDb25maWcge1xuICAgIGlmICghdGhpcy5fYnVja2V0TmFtZVZhcikge1xuICAgICAgdGhpcy5fYnVja2V0TmFtZVZhciA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1WYXJpYWJsZShcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIFwiTGFtYmRhU291cmNlQnVja2V0TmFtZVBhcmFtZXRlclwiLFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJTdHJpbmdcIixcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9vYmplY3RLZXlWYXIpIHtcbiAgICAgIHRoaXMuX29iamVjdEtleVZhciA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1WYXJpYWJsZShcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIFwiTGFtYmRhU291cmNlT2JqZWN0S2V5UGFyYW1ldGVyXCIsXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBcIlN0cmluZ1wiLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgczNMb2NhdGlvbjoge1xuICAgICAgICBidWNrZXROYW1lOiB0aGlzLl9idWNrZXROYW1lVmFyLnN0cmluZ1ZhbHVlLFxuICAgICAgICBvYmplY3RLZXk6IHRoaXMuX29iamVjdEtleVZhci5zdHJpbmdWYWx1ZSxcbiAgICAgIH0sXG4gICAgICBzb3VyY2VLTVNLZXlBcm46IHRoaXMuX3NvdXJjZUtNU0tleT8ua2V5QXJuLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgcGFyYW1ldGVycyBtYXAgZnJvbSB0aGlzIGluc3RhbmNlJ3MgVGVycmFmb3JtIHZhcmlhYmxlcy5cbiAgICpcbiAgICogSXQgcmV0dXJucyBhIG1hcCB3aXRoIDIga2V5cyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIG5hbWVzIG9mIHRoZSBwYXJhbWV0ZXJzIGRlZmluZWQgaW4gdGhpcyBMYW1iZGEgY29kZSxcbiAgICogYW5kIGFzIHZhbHVlcyBpdCBjb250YWlucyB0aGUgYXBwcm9wcmlhdGUgZXhwcmVzc2lvbnMgcG9pbnRpbmcgYXQgdGhlIHByb3ZpZGVkIFMzIGxvY2F0aW9uXG4gICAqIChtb3N0IGxpa2VseSwgb2J0YWluZWQgZnJvbSBhIENvZGVQaXBlbGluZSBBcnRpZmFjdCBieSBjYWxsaW5nIHRoZSBgYXJ0aWZhY3QuczNMb2NhdGlvbmAgbWV0aG9kKS5cbiAgICogVGhlIHJlc3VsdCBzaG91bGQgYmUgcHJvdmlkZWQgdG8gdGhlIENsb3VkRm9ybWF0aW9uIEFjdGlvblxuICAgKiB0aGF0IGlzIGRlcGxveWluZyB0aGUgU3RhY2sgdGhhdCB0aGUgTGFtYmRhIHdpdGggdGhpcyBjb2RlIGlzIHBhcnQgb2YsXG4gICAqIGluIHRoZSBgcGFyYW1ldGVyT3ZlcnJpZGVzYCBwcm9wZXJ0eS5cbiAgICpcbiAgICogQHBhcmFtIGxvY2F0aW9uIHRoZSBsb2NhdGlvbiBvZiB0aGUgb2JqZWN0IGluIFMzIHRoYXQgcmVwcmVzZW50cyB0aGUgTGFtYmRhIGNvZGVcbiAgICovXG4gIHB1YmxpYyBhc3NpZ24obG9jYXRpb246IHN0b3JhZ2UuUzNMb2NhdGlvbik6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICBjb25zdCByZXQ6IHsgW25hbWU6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgcmV0W3RoaXMuYnVja2V0TmFtZVZhcl0gPSBsb2NhdGlvbi5idWNrZXROYW1lO1xuICAgIHJldFt0aGlzLm9iamVjdEtleVZhcl0gPSBsb2NhdGlvbi5vYmplY3RLZXk7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYnVja2V0TmFtZVZhcigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLl9idWNrZXROYW1lVmFyKSB7XG4gICAgICByZXR1cm4gdGhpcy5fYnVja2V0TmFtZVZhci5mcW47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCJQYXNzIFRlcnJhZm9ybVZhcmlhYmxlc0NvZGUgdG8gYSBMYW1iZGEgRnVuY3Rpb24gYmVmb3JlIGFjY2Vzc2luZyB0aGUgYnVja2V0TmFtZVZhciBwcm9wZXJ0eVwiLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9iamVjdEtleVZhcigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLl9vYmplY3RLZXlWYXIpIHtcbiAgICAgIHJldHVybiB0aGlzLl9vYmplY3RLZXlWYXIuZnFuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIFwiUGFzcyBUZXJyYWZvcm1WYXJpYWJsZXNDb2RlIHRvIGEgTGFtYmRhIEZ1bmN0aW9uIGJlZm9yZSBhY2Nlc3NpbmcgdGhlIG9iamVjdEtleVZhciBwcm9wZXJ0eVwiLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGluaXRpYWxpemUgYSBuZXcgRWNySW1hZ2VDb2RlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWNySW1hZ2VDb2RlUHJvcHMge1xuICAvKipcbiAgICogU3BlY2lmeSBvciBvdmVycmlkZSB0aGUgQ01EIG9uIHRoZSBzcGVjaWZpZWQgRG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqIFRoaXMgbmVlZHMgdG8gYmUgaW4gdGhlICdleGVjIGZvcm0nLCB2aXouLCBgWyAnZXhlY3V0YWJsZScsICdwYXJhbTEnLCAncGFyYW0yJyBdYC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvI2NtZFxuICAgKiBAZGVmYXVsdCAtIHVzZSB0aGUgQ01EIHNwZWNpZmllZCBpbiB0aGUgZG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqL1xuICByZWFkb25seSBjbWQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogU3BlY2lmeSBvciBvdmVycmlkZSB0aGUgRU5UUllQT0lOVCBvbiB0aGUgc3BlY2lmaWVkIERvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKiBBbiBFTlRSWVBPSU5UIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIGEgY29udGFpbmVyIHRoYXQgd2lsbCBydW4gYXMgYW4gZXhlY3V0YWJsZS5cbiAgICogVGhpcyBuZWVkcyB0byBiZSBpbiB0aGUgJ2V4ZWMgZm9ybScsIHZpei4sIGBbICdleGVjdXRhYmxlJywgJ3BhcmFtMScsICdwYXJhbTInIF1gLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvYnVpbGRlci8jZW50cnlwb2ludFxuICAgKiBAZGVmYXVsdCAtIHVzZSB0aGUgRU5UUllQT0lOVCBpbiB0aGUgZG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqL1xuICByZWFkb25seSBlbnRyeXBvaW50Pzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgb3Igb3ZlcnJpZGUgdGhlIFdPUktESVIgb24gdGhlIHNwZWNpZmllZCBEb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICogQSBXT1JLRElSIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIHRoZSB3b3JraW5nIGRpcmVjdG9yeSB0aGUgY29udGFpbmVyIHdpbGwgdXNlLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvYnVpbGRlci8jd29ya2RpclxuICAgKiBAZGVmYXVsdCAtIHVzZSB0aGUgV09SS0RJUiBpbiB0aGUgZG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqL1xuICByZWFkb25seSB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaW1hZ2UgdGFnIHRvIHVzZSB3aGVuIHB1bGxpbmcgdGhlIGltYWdlIGZyb20gRUNSLlxuICAgKiBAZGVmYXVsdCAnbGF0ZXN0J1xuICAgKiBAZGVwcmVjYXRlZCB1c2UgYHRhZ09yRGlnZXN0YFxuICAgKi9cbiAgcmVhZG9ubHkgdGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaW1hZ2UgdGFnIG9yIGRpZ2VzdCB0byB1c2Ugd2hlbiBwdWxsaW5nIHRoZSBpbWFnZSBmcm9tIEVDUiAoZGlnZXN0cyBtdXN0IHN0YXJ0IHdpdGggYHNoYTI1NjpgKS5cbiAgICogQGRlZmF1bHQgJ2xhdGVzdCdcbiAgICovXG4gIHJlYWRvbmx5IHRhZ09yRGlnZXN0Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBEb2NrZXIgaW1hZ2UgaW4gRUNSIHRoYXQgY2FuIGJlIGJvdW5kIGFzIExhbWJkYSBDb2RlLlxuICovXG5leHBvcnQgY2xhc3MgRWNySW1hZ2VDb2RlIGV4dGVuZHMgQ29kZSB7XG4gIHB1YmxpYyByZWFkb25seSBpc0lubGluZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVwb3NpdG9yeTogc3RvcmFnZS5JUmVwb3NpdG9yeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBFY3JJbWFnZUNvZGVQcm9wcyA9IHt9LFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGJpbmQoX3Njb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnIHtcbiAgICB0aGlzLnJlcG9zaXRvcnkuZ3JhbnRQdWxsKG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcImxhbWJkYS5hbWF6b25hd3MuY29tXCIpKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpbWFnZToge1xuICAgICAgICBpbWFnZVVyaTogdGhpcy5yZXBvc2l0b3J5LnJlcG9zaXRvcnlVcmlGb3JUYWdPckRpZ2VzdChcbiAgICAgICAgICB0aGlzLnByb3BzPy50YWdPckRpZ2VzdCA/PyB0aGlzLnByb3BzPy50YWcgPz8gXCJsYXRlc3RcIixcbiAgICAgICAgKSxcbiAgICAgICAgY21kOiB0aGlzLnByb3BzLmNtZCxcbiAgICAgICAgZW50cnlwb2ludDogdGhpcy5wcm9wcy5lbnRyeXBvaW50LFxuICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB0aGlzLnByb3BzLndvcmtpbmdEaXJlY3RvcnksXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGluaXRpYWxpemUgYSBuZXcgQXNzZXRJbWFnZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0SW1hZ2VDb2RlUHJvcHNcbiAgZXh0ZW5kcyBlY3JfYXNzZXRzLkRvY2tlckltYWdlQXNzZXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNwZWNpZnkgb3Igb3ZlcnJpZGUgdGhlIENNRCBvbiB0aGUgc3BlY2lmaWVkIERvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKiBUaGlzIG5lZWRzIHRvIGJlIGluIHRoZSAnZXhlYyBmb3JtJywgdml6LiwgYFsgJ2V4ZWN1dGFibGUnLCAncGFyYW0xJywgJ3BhcmFtMicgXWAuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9idWlsZGVyLyNjbWRcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIENNRCBzcGVjaWZpZWQgaW4gdGhlIGRvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgY21kPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgb3Igb3ZlcnJpZGUgdGhlIEVOVFJZUE9JTlQgb24gdGhlIHNwZWNpZmllZCBEb2NrZXIgaW1hZ2Ugb3IgRG9ja2VyZmlsZS5cbiAgICogQW4gRU5UUllQT0lOVCBhbGxvd3MgeW91IHRvIGNvbmZpZ3VyZSBhIGNvbnRhaW5lciB0aGF0IHdpbGwgcnVuIGFzIGFuIGV4ZWN1dGFibGUuXG4gICAqIFRoaXMgbmVlZHMgdG8gYmUgaW4gdGhlICdleGVjIGZvcm0nLCB2aXouLCBgWyAnZXhlY3V0YWJsZScsICdwYXJhbTEnLCAncGFyYW0yJyBdYC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvI2VudHJ5cG9pbnRcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIEVOVFJZUE9JTlQgaW4gdGhlIGRvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZW50cnlwb2ludD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9yIG92ZXJyaWRlIHRoZSBXT1JLRElSIG9uIHRoZSBzcGVjaWZpZWQgRG9ja2VyIGltYWdlIG9yIERvY2tlcmZpbGUuXG4gICAqIEEgV09SS0RJUiBhbGxvd3MgeW91IHRvIGNvbmZpZ3VyZSB0aGUgd29ya2luZyBkaXJlY3RvcnkgdGhlIGNvbnRhaW5lciB3aWxsIHVzZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvI3dvcmtkaXJcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIFdPUktESVIgaW4gdGhlIGRvY2tlciBpbWFnZSBvciBEb2NrZXJmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2luZ0RpcmVjdG9yeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIEVDUiBpbWFnZSB0aGF0IHdpbGwgYmUgY29uc3RydWN0ZWQgZnJvbSB0aGUgc3BlY2lmaWVkIGFzc2V0IGFuZCBjYW4gYmUgYm91bmQgYXMgTGFtYmRhIGNvZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NldEltYWdlQ29kZSBleHRlbmRzIENvZGUge1xuICBwdWJsaWMgcmVhZG9ubHkgaXNJbmxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBhc3NldD86IGVjcl9hc3NldHMuRG9ja2VySW1hZ2VBc3NldDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpcmVjdG9yeTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IEFzc2V0SW1hZ2VDb2RlUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgYmluZChzY29wZTogQ29uc3RydWN0KTogQ29kZUNvbmZpZyB7XG4gICAgLy8gSWYgdGhlIHNhbWUgQXNzZXRJbWFnZUNvZGUgaXMgdXNlZCBtdWx0aXBsZSB0aW1lcywgcmV0YWluIG9ubHkgdGhlIGZpcnN0IGluc3RhbnRpYXRpb24uXG4gICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gICAgICB0aGlzLmFzc2V0ID0gbmV3IGVjcl9hc3NldHMuRG9ja2VySW1hZ2VBc3NldChzY29wZSwgXCJBc3NldEltYWdlXCIsIHtcbiAgICAgICAgZGlyZWN0b3J5OiB0aGlzLmRpcmVjdG9yeSxcbiAgICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5hc3NldC5yZXBvc2l0b3J5LmdyYW50UHVsbChcbiAgICAgICAgbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwibGFtYmRhLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdCh0aGlzLmFzc2V0KSAhPT0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBgQXNzZXQgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggYW5vdGhlciBzdGFjayAnJHtBd3NTdGFjay5vZkF3c0NvbnN0cnVjdCh0aGlzLmFzc2V0KS5ncmlkVVVJRH0nLiBgICtcbiAgICAgICAgICBcIkNyZWF0ZSBhIG5ldyBDb2RlIGluc3RhbmNlIGZvciBldmVyeSBzdGFjay5cIixcbiAgICAgICAgc2NvcGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBpbWFnZToge1xuICAgICAgICBpbWFnZVVyaTogdGhpcy5hc3NldC5pbWFnZVVyaSxcbiAgICAgICAgZW50cnlwb2ludDogdGhpcy5wcm9wcy5lbnRyeXBvaW50LFxuICAgICAgICBjbWQ6IHRoaXMucHJvcHMuY21kLFxuICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB0aGlzLnByb3BzLndvcmtpbmdEaXJlY3RvcnksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvLyAvLyBUT0RPOiBwZW5kaW5nIGN1c3RvbSBDTEkgdG8gbW9jayBMYW1iZGEgZnVuY3Rpb24gaW52b2NhdGlvbnMgbG9jYWxseVxuICAvLyBwdWJsaWMgYmluZFRvUmVzb3VyY2UoXG4gIC8vICAgcmVzb3VyY2U6IElBd3NDb25zdHJ1Y3QsXG4gIC8vICAgb3B0aW9uczogUmVzb3VyY2VCaW5kT3B0aW9ucyA9IHt9LFxuICAvLyApIHtcbiAgLy8gICBpZiAoIXRoaXMuYXNzZXQpIHtcbiAgLy8gICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXCJiaW5kVG9SZXNvdXJjZSgpIG11c3QgYmUgY2FsbGVkIGFmdGVyIGJpbmQoKVwiLCByZXNvdXJjZSk7XG4gIC8vICAgfVxuXG4gIC8vICAgLy8gY29uc3QgcmVzb3VyY2VQcm9wZXJ0eSA9IF9vcHRpb25zLnJlc291cmNlUHJvcGVydHkgfHwgXCJDb2RlLkltYWdlVXJpXCI7XG5cbiAgLy8gICAvLyAvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE0NTkzXG4gIC8vICAgLy8gdGhpcy5hc3NldC5hZGRSZXNvdXJjZU1ldGFkYXRhKF9yZXNvdXJjZSwgcmVzb3VyY2VQcm9wZXJ0eSk7XG4gIC8vIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIHdoZW4gY3JlYXRpbmcgYW4gYXNzZXQgZnJvbSBhIERvY2tlciBidWlsZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJCdWlsZEFzc2V0T3B0aW9ucyBleHRlbmRzIERvY2tlckJ1aWxkT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCBpbiB0aGUgRG9ja2VyIGltYWdlIHdoZXJlIHRoZSBhc3NldCBpcyBsb2NhdGVkIGFmdGVyIHRoZSBidWlsZFxuICAgKiBvcGVyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC9hc3NldFxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvbiB0aGUgbG9jYWwgZmlsZXN5c3RlbSB3aGVyZSB0aGUgYXNzZXQgd2lsbCBiZSBjb3BpZWRcbiAgICogdXNpbmcgYGRvY2tlciBjcGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSB1bmlxdWUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiB0aGUgc3lzdGVtIHRlbXAgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSBvdXRwdXRQYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGBBc3NldENvZGVgIHdpdGggYSBjdXN0b20gY29tbWFuZCwgc3VjaCBhcyBydW5uaW5nIGEgYnVpbGRmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUNvbW1hbmRPcHRpb25zIGV4dGVuZHMgczNfYXNzZXRzLkFzc2V0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBvcHRpb25zIHRoYXQgYXJlIHBhc3NlZCB0byB0aGUgc3Bhd25lZCBwcm9jZXNzLCB3aGljaCBkZXRlcm1pbmUgdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgc3Bhd25lZCBwcm9jZXNzLlxuICAgKlxuICAgKiBAZGVmYXVsdDogc2VlIGBjaGlsZF9wcm9jZXNzLlNwYXduU3luY09wdGlvbnNgIChodHRwczovL25vZGVqcy5vcmcvYXBpL2NoaWxkX3Byb2Nlc3MuaHRtbCNjaGlsZF9wcm9jZXNzc3Bhd25zeW5jY29tbWFuZC1hcmdzLW9wdGlvbnMpLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZE9wdGlvbnM/OiB7IFtvcHRpb25zOiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBPcHRpb25hbCBwYXJhbWV0ZXJzIGZvciBjcmVhdGluZyBjb2RlIHVzaW5nIGJ1Y2tldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldE9wdGlvbnMge1xuICAvKipcbiAgICogT3B0aW9uYWwgUzMgb2JqZWN0IHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IG9iamVjdFZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBLTVMga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGUgaGFuZGxlciBjb2RlLlxuICAgKiBAZGVmYXVsdCAtIHRoZSBkZWZhdWx0IHNlcnZlci1zaWRlIGVuY3J5cHRpb24gd2l0aCBBbWF6b24gUzMgbWFuYWdlZCBrZXlzKFNTRS1TMykga2V5IHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUtNU0tleT86IElLZXk7XG59XG4iXX0=
@@ -300,7 +300,7 @@ class Condition {
300
300
  }
301
301
  exports.Condition = Condition;
302
302
  _a = JSII_RTTI_SYMBOL_1;
303
- Condition[_a] = { fqn: "terraconstructs.aws.compute.Condition", version: "0.2.0" };
303
+ Condition[_a] = { fqn: "terraconstructs.aws.compute.Condition", version: "0.2.2" };
304
304
  /**
305
305
  * Comparison Operator types
306
306
  */
@@ -178,7 +178,7 @@ class Connections {
178
178
  }
179
179
  exports.Connections = Connections;
180
180
  _a = JSII_RTTI_SYMBOL_1;
181
- Connections[_a] = { fqn: "terraconstructs.aws.compute.Connections", version: "0.2.0" };
181
+ Connections[_a] = { fqn: "terraconstructs.aws.compute.Connections", version: "0.2.2" };
182
182
  class ReactiveList {
183
183
  constructor() {
184
184
  this.elements = new Array();
@@ -10,7 +10,7 @@ class Cors {
10
10
  }
11
11
  exports.Cors = Cors;
12
12
  _a = JSII_RTTI_SYMBOL_1;
13
- Cors[_a] = { fqn: "terraconstructs.aws.compute.Cors", version: "0.2.0" };
13
+ Cors[_a] = { fqn: "terraconstructs.aws.compute.Cors", version: "0.2.2" };
14
14
  /**
15
15
  * All HTTP methods.
16
16
  */
@@ -153,5 +153,5 @@ class Deployment extends aws_construct_1.AwsConstructBase {
153
153
  }
154
154
  exports.Deployment = Deployment;
155
155
  _a = JSII_RTTI_SYMBOL_1;
156
- Deployment[_a] = { fqn: "terraconstructs.aws.compute.Deployment", version: "0.2.0" };
156
+ Deployment[_a] = { fqn: "terraconstructs.aws.compute.Deployment", version: "0.2.2" };
157
157
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9kZXBsb3ltZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBSzZCO0FBQzdCLGlDQUE2QjtBQUc3Qix1Q0FBd0U7QUFDeEUseUNBQXlDO0FBQ3pDLDZEQUFpRDtBQUNqRCxvREFBdUU7QUFxQ3ZFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFhLFVBQVcsU0FBUSxnQ0FBZ0I7SUFhOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUhULHNCQUFpQixHQUFHLElBQUksS0FBSyxFQUFPLENBQUM7UUFLcEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBRXJCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLG1DQUFvQixDQUFDLG9CQUFvQixDQUNyRSxJQUFJLEVBQ0osVUFBVSxFQUNWO1lBQ0UsU0FBUyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUztZQUM5QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsbUZBQW1GO1lBQ25GLFNBQVMsRUFBRTtnQkFDVCxtQkFBbUIsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLG1CQUFtQixJQUFJLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3JGLEdBQUcsS0FBSyxDQUFDLFNBQVM7YUFDbkI7U0FDRixDQUNGLENBQUM7UUFFRixvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FDakMsVUFBVSxFQUNWLFlBQUksQ0FBQyxRQUFRLENBQUM7WUFDWixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1NBQ3hDLENBQUMsQ0FDSCxDQUFDO1FBRUYsMkVB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RUFBMEU7UUFDMUUsMkVBQTJFO1FBQzNFLHFFQUFxRTtRQUNyRSxxRUFBcUU7UUFDckUseURBQXlEO1FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQWlELENBQzlELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU87WUFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVM7U0FDOUMsQ0FBQztJQUNKLENBQUM7O0FBekpILGdDQTBKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwaUdhdGV3YXlEZXBsb3ltZW50LFxuICBhcGlHYXRld2F5TWV0aG9kLFxuICBhcGlHYXRld2F5UmVzdEFwaSxcbiAgYXBpR2F0ZXdheVN0YWdlLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgTGF6eSB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IE1ldGhvZCB9IGZyb20gXCIuL21ldGhvZFwiO1xuaW1wb3J0IHsgSVJlc3RBcGksIFJlc3RBcGksIFJlc3RBcGlCYXNlLCBTcGVjUmVzdEFwaSB9IGZyb20gXCIuL3Jlc3RhcGlcIjtcbi8vIGltcG9ydCB7IEZuIH0gZnJvbSBcIi4uLy4uL3RlcnJhLWZ1bmNcIjtcbmltcG9ydCB7IG1kNWhhc2ggfSBmcm9tIFwiLi4vLi4vaGVscGVycy1pbnRlcm5hbFwiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0QmFzZSwgQXdzQ29uc3RydWN0UHJvcHMgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBSZXN0IEFQSSB0byBkZXBsb3kuXG4gICAqL1xuICByZWFkb25seSBhcGk6IElSZXN0QXBpO1xuXG4gIC8qKlxuICAgKiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBwdXJwb3NlIG9mIHRoZSBBUEkgR2F0ZXdheSBkZXBsb3ltZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLy8gLy8gVE9ETzogSW1wbGVtZW50IFJlbW92YWxQb2xpY3kuUkVUQUlOIHRocm91Z2ggcmVtb3ZlZCBibG9jayBpbiBUZXJyYWZvcm0uXG4gIC8vIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0vaXNzdWVzLzI3MDM1I2lzc3VlY29tbWVudC0yMzQwMzQ4ODAxXG4gIC8vIC8vIHJlZjogaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vbGFuZ3VhZ2UvcmVzb3VyY2VzL3N5bnRheCNyZW1vdmluZy1yZXNvdXJjZXNcbiAgLy8gLyoqXG4gIC8vICAqIFdoZW4gYW4gQVBJIEdhdGV3YXkgbW9kZWwgaXMgdXBkYXRlZCwgYSBuZXcgZGVwbG95bWVudCB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgY3JlYXRlZC5cbiAgLy8gICogSWYgdGhpcyBpcyB0cnVlLCB0aGUgb2xkIEFQSSBHYXRld2F5IERlcGxveW1lbnQgcmVzb3VyY2Ugd2lsbCBub3QgYmUgZGVsZXRlZC5cbiAgLy8gICogVGhpcyB3aWxsIGFsbG93IG1hbnVhbGx5IHJldmVydGluZyBiYWNrIHRvIGEgcHJldmlvdXMgZGVwbG95bWVudCBpbiBjYXNlIGZvciBleGFtcGxlXG4gIC8vICAqXG4gIC8vICAqIEBkZWZhdWx0IGZhbHNlXG4gIC8vICAqL1xuICAvLyByZWFkb25seSByZXRhaW5EZXBsb3ltZW50cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdGFnZSB0aGUgQVBJIEdhdGV3YXkgZGVwbG95bWVudCBkZXBsb3lzIHRvLlxuICAgKiBJZiB0aGlzIHByb3BlcnR5IGlzIHNldCBhbmQgYSBzdGFnZSB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIG5hbWUgZG9lcyBub3QgZXhpc3QsXG4gICAqIGEgbmV3IHN0YWdlIHJlc291cmNlIHdpbGwgYmUgY3JlYXRlZCBhbmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBzdGFnZSBpcyBjcmVhdGVkIG9yIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRlcGxveW1lbnQuXG4gICAqL1xuICByZWFkb25seSBzdGFnZU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBEZXBsb3ltZW50IG9mIGEgUkVTVCBBUEkuXG4gKlxuICogQW4gaW1tdXRhYmxlIHJlcHJlc2VudGF0aW9uIG9mIGEgUmVzdEFwaSByZXNvdXJjZSB0aGF0IGNhbiBiZSBjYWxsZWQgYnkgdXNlcnNcbiAqIHVzaW5nIFN0YWdlcy4gQSBkZXBsb3ltZW50IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIGEgU3RhZ2UgZm9yIGl0IHRvIGJlXG4gKiBjYWxsYWJsZSBvdmVyIHRoZSBJbnRlcm5ldC5cbiAqXG4gKiBOb3JtYWxseSwgeW91IGRvbid0IG5lZWQgdG8gZGVmaW5lIGRlcGxveW1lbnRzIG1hbnVhbGx5LiBUaGUgUmVzdEFwaVxuICogY29uc3RydWN0IG1hbmFnZXMgYSBEZXBsb3ltZW50IHJlc291cmNlIHRoYXQgcmVwcmVzZW50cyB0aGUgbGF0ZXN0IG1vZGVsLiBJdFxuICogY2FuIGJlIGFjY2Vzc2VkIHRocm91Z2ggYHJlc3RBcGkubGF0ZXN0RGVwbG95bWVudGAgKHVubGVzcyBgZGVwbG95OiBmYWxzZWAgaXNcbiAqIHNldCB3aGVuIGRlZmluaW5nIHRoZSBgUmVzdEFwaWApLlxuICpcbiAqIElmIHlvdSBtYW51YWxseSBkZWZpbmUgdGhpcyByZXNvdXJjZSwgeW91IHdpbGwgbmVlZCB0byBrbm93IHRoYXQgc2luY2VcbiAqIGRlcGxveW1lbnRzIGFyZSBpbW11dGFibGUsIHRoZWlyIHByb3BlcnRpZXMgd2lsbCBub3QgY2hhbmdlIGFmdGVyIGNyZWF0aW9uLlxuICogVG8gcmVmbGVjdCBBUEkgbW9kZWwgY2hhbmdlcywgYSBuZXcgZGVwbG95bWVudCBtdXN0IGJlIGNyZWF0ZWQuIFRoaXMgaXMgdHlwaWNhbGx5XG4gKiBhY2hpZXZlZCBieSBjaGFuZ2luZyB0aGUgYHRyaWdnZXJzYCBwcm9wZXJ0eSBvZiB0aGUgYEFwaUdhdGV3YXlEZXBsb3ltZW50YCByZXNvdXJjZS5cbiAqXG4gKiBUaGUgYGFkZFRvVHJpZ2dlcnNgIG1ldGhvZCBjYW4gYmUgdXNlZCB0byBhdWdtZW50IHRoZSBzZXQgb2YgdHJpZ2dlcnMgZm9yIHRoaXNcbiAqIGRlcGxveW1lbnQuIFRoaXMgZW5zdXJlcyB0aGF0IGlmIHNwZWNpZmljIHBhcnRzIG9mIHRoZSBBUEkgbW9kZWwgY2hhbmdlIChlLmcuLCBhIE1ldGhvZCdzIGNvbmZpZ3VyYXRpb24pLFxuICogYSBuZXcgZGVwbG95bWVudCBpcyB0cmlnZ2VyZWQuIFRoaXMgaXMgZG9uZSBhdXRvbWF0aWNhbGx5IGZvciB0aGUgYHJlc3RBcGkubGF0ZXN0RGVwbG95bWVudGAgZGVwbG95bWVudC5cbiAqXG4gKiBGdXJ0aGVybW9yZSwgYSBkZXBsb3ltZW50IHNob3VsZCBkZXBlbmQgb24gYWxsIEFQSSBHYXRld2F5IHJlc291cmNlcyAoTWV0aG9kcywgUmVzb3VyY2VzLCBldGMuKVxuICogdGhhdCBkZWZpbmUgdGhlIEFQSS4gVXNlIHRoZSBgX2FkZE1ldGhvZERlcGVuZGVuY3lgIG9yIGRpcmVjdGx5IGFkZCBkZXBlbmRlbmNpZXMgdG8gZW5zdXJlIGNvcnJlY3RcbiAqIHByb3Zpc2lvbmluZyBvcmRlci4gVGhpcyBpcyBhbHNvIGhhbmRsZWQgZm9yIGByZXN0QXBpLmxhdGVzdERlcGxveW1lbnRgLlxuICovXG5leHBvcnQgY2xhc3MgRGVwbG95bWVudCBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgZGVwbG95bWVudElkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBhcGk6IElSZXN0QXBpO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHN0YWdlIGNyZWF0ZWQgYW5kIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRlcGxveW1lbnQsIGlmIGBzdGFnZU5hbWVgIHdhcyBwcm92aWRlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGFnZU5hbWU/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXBsb3ltZW50UmVzb3VyY2U6IGFwaUdhdGV3YXlEZXBsb3ltZW50LkFwaUdhdGV3YXlEZXBsb3ltZW50O1xuICBwcml2YXRlIHN0YWdlUmVzb3VyY2U/OiBhcGlHYXRld2F5U3RhZ2UuQXBpR2F0ZXdheVN0YWdlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJpZ2dlckNvbXBvbmVudHMgPSBuZXcgQXJyYXk8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEZXBsb3ltZW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMuYXBpID0gcHJvcHMuYXBpO1xuXG4gICAgdGhpcy5kZXBsb3ltZW50UmVzb3VyY2UgPSBuZXcgYXBpR2F0ZXdheURlcGxveW1lbnQuQXBpR2F0ZXdheURlcGxveW1lbnQoXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAge1xuICAgICAgICByZXN0QXBpSWQ6IHByb3BzLmFwaS5yZXN0QXBpSWQsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgLy8gZW5zdXJlIGxpZmVjeWNsZSBjcmVhdGUgYmVmb3JlIGRlc3Ryb3kgaXMgZW5hYmxlZCB1bmxlc3MgZXhwbGljaXRseSBzZXQgdG8gZmFsc2VcbiAgICAgICAgbGlmZWN5Y2xlOiB7XG4gICAgICAgICAgY3JlYXRlQmVmb3JlRGVzdHJveTogcHJvcHMubGlmZWN5Y2xlPy5jcmVhdGVCZWZvcmVEZXN0cm95ID8/IHRydWUsIC8vIGRlZmF1bHQgdG8gdHJ1ZVxuICAgICAgICAgIC4uLnByb3BzLmxpZmVjeWNsZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8vIEFkZCB0cmlnZ2VycyBmb3IgcmVkcGxveW1lbnQgb24gY2hlY2tzdW0gY2hhbmdlcy5cbiAgICB0aGlzLmRlcGxveW1lbnRSZXNvdXJjZS5hZGRPdmVycmlkZShcbiAgICAgIFwidHJpZ2dlcnNcIixcbiAgICAgIExhenkuYW55VmFsdWUoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLmNhbGN1bGF0ZVRyaWdnZXJzKCksXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgLy8gVE9ETzogSW1wbGVtZW50IFJlbW92YWxQb2xpY3kuUkVUQUlOIHRocm91Z2ggcmVtb3ZlZCBibG9jayBpbiBUZXJyYWZvcm0uXG4gICAgLy8gaWYgKHByb3BzLnJldGFpbkRlcGxveW1lbnRzKSB7XG4gICAgLy8gICB0aGlzLmRlcGxveW1lbnRSZXNvdXJjZS5hZGRPdmVycmlkZShcImxpZmVjeWNsZVwiLCB7XG4gICAgLy8gICAgIHByZXZlbnRfZGVzdHJveTogdHJ1ZSxcbiAgICAvLyAgIH0pO1xuICAgIC8vIH1cblxuICAgIHRoaXMuZGVwbG95bWVudElkID0gdGhpcy5kZXBsb3ltZW50UmVzb3VyY2UuaWQ7XG5cbiAgICBpZiAocHJvcHMuc3RhZ2VOYW1lKSB7XG4gICAgICB0aGlzLnN0YWdlTmFtZSA9IHByb3BzLnN0YWdlTmFtZTtcbiAgICAgIHRoaXMuc3RhZ2VSZXNvdXJjZSA9IG5ldyBhcGlHYXRld2F5U3RhZ2UuQXBpR2F0ZXdheVN0YWdlKHRoaXMsIFwiU3RhZ2VcIiwge1xuICAgICAgICByZXN0QXBpSWQ6IHByb3BzLmFwaS5yZXN0QXBpSWQsXG4gICAgICAgIGRlcGxveW1lbnRJZDogdGhpcy5kZXBsb3ltZW50UmVzb3VyY2UuaWQsXG4gICAgICAgIHN0YWdlTmFtZTogcHJvcHMuc3RhZ2VOYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb25cbiAgICAgICAgICA/IGAke3Byb3BzLmRlc2NyaXB0aW9ufSBTdGFnZWBcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIH0pO1xuICAgICAgLy8gRGVwZW5kZW5jaWVzIG9uIG1ldGhvZHMgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBkZXBsb3ltZW50UmVzb3VyY2UgaXRzZWxmLlxuICAgICAgLy8gVGhlIHN0YWdlUmVzb3VyY2UgaW1wbGljaXRseSBkZXBlbmRzIG9uIGRlcGxveW1lbnRSZXNvdXJjZSB2aWEgZGVwbG95bWVudElkLlxuICAgIH1cblxuICAgIGlmIChwcm9wcy5hcGkgaW5zdGFuY2VvZiBSZXN0QXBpQmFzZSkge1xuICAgICAgLy8gVGhlIG1ldGhvZCBfYXR0YWNoRGVwbG95bWVudCBtaWdodCBuZWVkIHRvIGJlIGFkYXB0ZWQgb3IgbWlnaHQgbm90IGV4aXN0IGluIFRlcnJhQ29uc3RydWN0cyBSZXN0QXBpQmFzZVxuICAgICAgLy8gVGhpcyBpcyBzcGVjaWZpYyB0byBob3cgYGxhdGVzdERlcGxveW1lbnRgIGlzIG1hbmFnZWQgYnkgdGhlIFJlc3RBcGkgY29uc3RydWN0LlxuICAgICAgKHByb3BzLmFwaSBhcyBhbnkpLl9hdHRhY2hEZXBsb3ltZW50Py4odGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVUcmlnZ2VycygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0cmlnZ2VycyA9IFsuLi50aGlzLnRyaWdnZXJDb21wb25lbnRzXTtcblxuICAgIC8vIElnbm9yZSBJUmVzdEFwaSB0aGF0IGFyZSBpbXBvcnRlZFxuICAgIGlmICh0aGlzLmFwaSBpbnN0YW5jZW9mIFJlc3RBcGkgfHwgdGhpcy5hcGkgaW5zdGFuY2VvZiBTcGVjUmVzdEFwaSkge1xuICAgICAgY29uc3QgYXBpSW50ZXJuYWwgPSB0aGlzLmFwaS5ub2RlXG4gICAgICAgIC5kZWZhdWx0Q2hpbGQgYXMgYXBpR2F0ZXdheVJlc3RBcGkuQXBpR2F0ZXdheVJlc3RBcGk7XG4gICAgICAvLyBUT0RPOiBBV1NDREsgVHJpZ2dlcnMgcmVkZXBsb3ltZW50IG9uIGFueSBjaGFuZ2VzIChub3QganVzdCB0aGUgYm9keSBwcm9wZXJ0eSkuXG4gICAgICBjb25zdCB0ZlJlc3RBUEkgPSBhcGlJbnRlcm5hbC50b1RlcnJhZm9ybSgpO1xuICAgICAgdHJpZ2dlcnMucHVzaCh0ZlJlc3RBUEkucmVzb3VyY2UuYXdzX2FwaV9nYXRld2F5X3Jlc3RfYXBpKTtcbiAgICB9XG5cbiAgICAvLyBOT1RFOiBBV1NDREsgY2FsY3VsYXRlcyBjaGVja3N1bSBhZ2FpbnN0IGZ1bmN0aW9uIHByb3BlcnRpZXMuXG4gICAgLy8gVGVycmFmb3JtIGFsbG93cyB1c2UgdG8gaW5jbHVkZSB0aGUgZW50aXJlIG9iamVjdCwgc28gd2UgdXNlIHRoYXQgZm9yIGNsYXJpdHkuXG4gICAgY29uc3QgY2hlY2tzdW0gPSBtZDVoYXNoKFxuICAgICAgdHJpZ2dlcnNcbiAgICAgICAgLm1hcCgoeCkgPT4gdGhpcy5zdGFjay5yZXNvbHZlKHgpKVxuICAgICAgICAubWFwKChjKSA9PiBKU09OLnN0cmluZ2lmeShjKSlcbiAgICAgICAgLmpvaW4oXCJcIiksXG4gICAgKTtcbiAgICAvLyB0cmlnZ2VycyBoYXMgdG8gYmUgUmVjb3JkPHN0cmluZywgc3RyaW5nPiBmb3IgVGVycmFmb3JtIHRvIGFjY2VwdCBpdC5cbiAgICByZXR1cm4geyByZWRlcGxveW1lbnQ6IGNoZWNrc3VtIH07XG5cbiAgICAvLyAvLyBOT1RFOiBjb25zaWRlciBjaGVja3N1bSB0b28gY29uZnVzaW5nIGFuZCB1c2UgZnVsbCB0cmlnZ2VyIG9iamVjdHMgaW5zdGVhZD9cbiAgICAvLyAvLyBUT0RPOiBUaGlzIGNhdXNlcyBcIm1pc3NpbmcgYXR0cmlidXRlciBzZXBhcmF0b3JcIiBlcnJvcnNcbiAgICAvLyByZXR1cm4gdHJpZ2dlcnMubGVuZ3RoICE9PSAwXG4gICAgLy8gICA/IHsgcmVkZXBsb3ltZW50OiBGbi5zaGExKEZuLmpzb25lbmNvZGUodGhpcy5zdGFjay5yZXNvbHZlKHRyaWdnZXJzKSkpIH1cbiAgICAvLyAgIDogLy8gVE9ETzogV3JhcCBlYWNoIHRyaWdnZXIgaW4gc2hhIGluc3RlYWQ/IHsgcmVkZXBsb3ltZW50OiBGbi5zaGExKEZuLmpzb25lbmNvZGUoKSkgfVxuICAgIC8vICAgICAvLyB0cmlnZ2Vycy5yZWR1Y2UoXG4gICAgLy8gICAgIC8vICAgKGFjYywgY3VycikgPT4ge1xuICAgIC8vICAgICAvLyAgICAgY29uc3Qga2V5ID0gYHRyaWdnZXItJHtPYmplY3Qua2V5cyhhY2MpLmxlbmd0aCArIDF9YDtcbiAgICAvLyAgICAgLy8gICAgIGFjY1trZXldID0gdGhpcy5zdGFjay5yZXNvbHZlKGN1cnIpO1xuICAgIC8vICAgICAvLyAgICAgcmV0dXJuIGFjYztcbiAgICAvLyAgICAgLy8gICB9LFxuICAgIC8vICAgICAvLyAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgLy8gICAgIC8vIClcbiAgICAvLyAgICAgdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjb21wb25lbnQgdG8gdGhlIHNldCBvZiB0cmlnZ2VycyB0aGF0IGRldGVybWluZSBpZiBhIG5ldyBkZXBsb3ltZW50IHNob3VsZCBiZSBjcmVhdGVkLlxuICAgKlxuICAgKiBUcmlnZ2VycyBzaG91bGQgYmUgcHJlZmVycmVkIG92ZXIgRGVwZW5kZW5jaWVzLCBzaW5jZSBEZXBlbmRlbmNpZXMgY2FuIG9ubHkgY2FwdHVyZSBkZXBlbmRlbmN5XG4gICAqIG9yZGVyaW5nIGFuZCB3aWxsIG5vdCBjYXVzZSB0aGUgcmVzb3VyY2UgdG8gcmVjcmVhdGUgKHJlZGVwbG95IHRoZSBSRVNUIEFQSSkgd2l0aCB1cHN0cmVhbVxuICAgKiBjb25maWd1cmF0aW9uIGNoYW5nZXMuXG4gICAqXG4gICAqIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBieSBjb25zdHJ1Y3RzIG9mIHRoZSBBUEkgR2F0ZXdheSBtb2RlbCB0aGF0IHdhbnQgdG9cbiAgICogaW52YWxpZGF0ZSB0aGUgZGVwbG95bWVudCB3aGVuIHRoZWlyIHNldHRpbmdzIGNoYW5nZS4gVGhlIGNvbXBvbmVudCB3aWxsXG4gICAqIGJlIHJlc29sdmVkIGR1cmluZyBzeW50aGVzaXMgc28gdG9rZW5zIGFyZSB3ZWxjb21lLlxuICAgKi9cbiAgcHVibGljIGFkZFRvVHJpZ2dlcnMoZGF0YTogYW55KSB7XG4gICAgaWYgKHRoaXMubm9kZS5sb2NrZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJDYW5ub3QgbW9kaWZ5IGRlcGxveW1lbnQgdHJpZ2dlcnMgd2hlbiB0aGUgY29uc3RydWN0IGlzIGxvY2tlZC5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMudHJpZ2dlckNvbXBvbmVudHMucHVzaChkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgZGVwZW5kZW5jeSBmcm9tIHRoaXMgRGVwbG95bWVudCB0byBhbiBBUEkgR2F0ZXdheSBNZXRob2QuXG4gICAqIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBtZXRob2QgaXMgY3JlYXRlZCBiZWZvcmUgdGhlIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRob2QgVGhlIE1ldGhvZCBjb25zdHJ1Y3QgdG8gYWRkIGFzIGEgZGVwZW5kZW5jeS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX2FkZE1ldGhvZERlcGVuZGVuY3kobWV0aG9kOiBNZXRob2QpIHtcbiAgICAvLyBhZGRpbmcgYSBkZXBlbmRlbmN5IGJldHdlZW4gdGhlIGNvbnN0cnVjdHMgdXNpbmcgYG5vZGUuYWRkRGVwZW5kZW5jeSgpYFxuICAgIC8vIHdpbGwgY3JlYXRlIGFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzIGJldHdlZW4gYGF3c19hcGlfZ2F0ZXdheV9kZXBsb3ltZW50YFxuICAgIC8vIGFuZCB0aGUgYGF3c19sYW1iZGFfcGVybWlzc2lvbmAgcmVzb3VyY2VzIChjaGlsZHJlbiB1bmRlciBNZXRob2QpLFxuICAgIC8vIGNhdXNpbmcgY3ljbGljIGRlcGVuZGVuY3kgZXJyb3JzLiBIZW5jZSwgZmFsbGluZyBiYWNrIHRvIGRlY2xhcmluZ1xuICAgIC8vIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZSB1bmRlcmx5aW5nIFRlcnJhZm9ybUVsZW1lbnRzLlxuICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KFxuICAgICAgbWV0aG9kLm5vZGUuZGVmYXVsdENoaWxkIGFzIGFwaUdhdGV3YXlNZXRob2QuQXBpR2F0ZXdheU1ldGhvZCxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICBkZXBsb3ltZW50SWQ6IHRoaXMuZGVwbG95bWVudElkLFxuICAgICAgc3RhZ2VOYW1lOiB0aGlzLnN0YWdlTmFtZSxcbiAgICAgIHN0YWdlSW52b2tlVXJsOiB0aGlzLnN0YWdlUmVzb3VyY2U/Lmludm9rZVVybCxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -155,5 +155,5 @@ class DomainName extends aws_construct_1.AwsConstructBase {
155
155
  }
156
156
  exports.DomainName = DomainName;
157
157
  _a = JSII_RTTI_SYMBOL_1;
158
- DomainName[_a] = { fqn: "terraconstructs.aws.compute.DomainName", version: "0.2.0" };
158
+ DomainName[_a] = { fqn: "terraconstructs.aws.compute.DomainName", version: "0.2.2" };
159
159
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvZG9tYWluLW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzR0FBc0c7QUFFdEcsc0RBRzZCO0FBQzdCLGlDQUE4QjtBQUU5QiwyREFBOEUsQ0FBQyxrQ0FBa0M7QUFDakgsdUNBQW1ELENBQUMsNkNBQTZDO0FBRWpHLHlDQUF1RDtBQUN2RCxvREFJMEI7QUFDMUIsNENBQXdDO0FBc0J4Qzs7R0FFRztBQUNILElBQVksY0FNWDtBQU5ELFdBQVksY0FBYztJQUN4QiwyQkFBMkI7SUFDM0IscUNBQW1CLENBQUE7SUFFbkIsMkJBQTJCO0lBQzNCLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFOVyxjQUFjLDhCQUFkLGNBQWMsUUFNekI7QUErRUQsTUFBYSxVQUFXLFNBQVEsZ0NBQWdCO0lBQzlDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLHdCQUF3QixDQUNwQyxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBMkI7UUFFM0IsTUFBTSxNQUFPLFNBQVEsZ0NBQWdCO1lBS25DLElBQVcsT0FBTztnQkFDaEIsT0FBTztvQkFDTCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7b0JBQzNCLHlCQUF5QixFQUFFLElBQUksQ0FBQyx5QkFBeUI7b0JBQ3pELDJCQUEyQixFQUFFLElBQUksQ0FBQywyQkFBMkI7aUJBQzlELENBQUM7WUFDSixDQUFDO1lBQ0QsWUFBWSxDQUFZLEVBQUUsQ0FBUztnQkFDakMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQ1Ysa0JBQWtCLEVBQUUsc0JBQXNCLG9CQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sYUFBYTtpQkFDekYsQ0FBQyxDQUFDLENBQUMsdUNBQXVDO2dCQWQ3QixlQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztnQkFDOUIsOEJBQXlCLEdBQUcs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Q0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsUUFBUTtZQUNyQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztZQUN0QyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1gsTUFBTSxFQUFFLEdBQUcsVUFBVSxjQUFjLElBQUksb0JBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFFNUcsSUFBSSxxQ0FBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQzFELEtBQUssRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVM7WUFDcEMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxTQUFTO1lBQzVCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixhQUFhLEVBQUUsT0FBTyxDQUFDLFFBQVE7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGFBQWEsQ0FDbkIsVUFBdUI7UUFJdkIsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNsQyxPQUFPO1lBQ0wsYUFBYSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7WUFDL0QsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLE9BQU87U0FDdEMsQ0FBQztJQUNKLENBQUM7O0FBNUxILGdDQTZMQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE4Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5L2xpYi9kb21haW4tbmFtZS50c1xuXG5pbXBvcnQge1xuICBhcGlHYXRld2F5RG9tYWluTmFtZSxcbiAgYXBpZ2F0ZXdheXYyQXBpTWFwcGluZyxcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQmFzZVBhdGhNYXBwaW5nLCBCYXNlUGF0aE1hcHBpbmdPcHRpb25zIH0gZnJvbSBcIi4vYmFzZS1wYXRoLW1hcHBpbmdcIjsgLy8gQXNzdW1pbmcgdGhpcyB3aWxsIGJlIGNvbnZlcnRlZFxuaW1wb3J0IHsgRW5kcG9pbnRUeXBlLCBJUmVzdEFwaSB9IGZyb20gXCIuL3Jlc3RhcGlcIjsgLy8gQXNzdW1pbmcgdGhlc2Ugd2lsbCBiZSBjb252ZXJ0ZWQvYXZhaWxhYmxlXG5pbXBvcnQgeyBJU3RhZ2UgfSBmcm9tIFwiLi9zdGFnZVwiOyAvLyBBc3N1bWluZyB0aGlzIHdpbGwgYmUgY29udmVydGVkL2F2YWlsYWJsZVxuaW1wb3J0IHsgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3JzXCI7XG5pbXBvcnQge1xuICBBd3NDb25zdHJ1Y3RCYXNlLFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbiAgSUF3c0NvbnN0cnVjdCxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuaW1wb3J0ICogYXMgYWNtIGZyb20gXCIuLi9lZGdlXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcIi4uL3N0b3JhZ2VcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBhbiBhcGkgbWFwcGluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaU1hcHBpbmdPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhcGkgcGF0aCBuYW1lIHRoYXQgY2FsbGVycyBvZiB0aGUgQVBJIG11c3QgcHJvdmlkZSBpbiB0aGUgVVJMIGFmdGVyXG4gICAqIHRoZSBkb21haW4gbmFtZSAoZS5nLiBgZXhhbXBsZS5jb20vYmFzZS1wYXRoYCkuIElmIHlvdSBzcGVjaWZ5IHRoaXNcbiAgICogcHJvcGVydHksIGl0IGNhbid0IGJlIGFuIGVtcHR5IHN0cmluZy5cbiAgICpcbiAgICogSWYgdGhpcyBpcyB1bmRlZmluZWQsIGEgbWFwcGluZyB3aWxsIGJlIGFkZGVkIGZvciB0aGUgZW1wdHkgcGF0aC4gQW55IHJlcXVlc3RcbiAgICogdGhhdCBkb2VzIG5vdCBtYXRjaCBhIG1hcHBpbmcgd2lsbCBnZXQgc2VudCB0byB0aGUgQVBJIHRoYXQgaGFzIGJlZW4gbWFwcGVkXG4gICAqIHRvIHRoZSBlbXB0eSBwYXRoLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG1hcCByZXF1ZXN0cyBmcm9tIHRoZSBkb21haW4gcm9vdCAoZS5nLiBgZXhhbXBsZS5jb21gKS5cbiAgICovXG4gIHJlYWRvbmx5IGJhc2VQYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBtaW5pbXVtIHZlcnNpb24gb2YgdGhlIFNTTCBwcm90b2NvbCB0aGF0IHlvdSB3YW50IEFQSSBHYXRld2F5IHRvIHVzZSBmb3IgSFRUUFMgY29ubmVjdGlvbnMuXG4gKi9cbmV4cG9ydCBlbnVtIFNlY3VyaXR5UG9saWN5IHtcbiAgLyoqIENpcGhlciBzdWl0ZSBUTFMgMS4wICovXG4gIFRMU18xXzAgPSBcIlRMU18xXzBcIixcblxuICAvKiogQ2lwaGVyIHN1aXRlIFRMUyAxLjIgKi9cbiAgVExTXzFfMiA9IFwiVExTXzFfMlwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbk5hbWVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gZG9tYWluIG5hbWUgZm9yIHlvdXIgQVBJLiBVcHBlcmNhc2UgbGV0dGVycyBhcmUgbm90IHN1cHBvcnRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZmVyZW5jZSB0byBhbiBBV1MtbWFuYWdlZCBjZXJ0aWZpY2F0ZSBmb3IgdXNlIGJ5IHRoZSBlZGdlLW9wdGltaXplZFxuICAgKiBlbmRwb2ludCBmb3IgdGhlIGRvbWFpbiBuYW1lLiBGb3IgXCJFREdFXCIgZG9tYWluIG5hbWVzLCB0aGUgY2VydGlmaWNhdGVcbiAgICogbmVlZHMgdG8gYmUgaW4gdGhlIFVTIEVhc3QgKE4uIFZpcmdpbmlhKSByZWdpb24uXG4gICAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZTogYWNtLklDZXJ0aWZpY2F0ZTtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgZW5kcG9pbnQgZm9yIHRoaXMgRG9tYWluTmFtZS5cbiAgICogQGRlZmF1bHQgUkVHSU9OQUxcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50VHlwZT86IEVuZHBvaW50VHlwZTtcblxuICAvKipcbiAgICogVGhlIFRyYW5zcG9ydCBMYXllciBTZWN1cml0eSAoVExTKSB2ZXJzaW9uICsgY2lwaGVyIHN1aXRlIGZvciB0aGlzIGRvbWFpbiBuYW1lLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1hcGlnYXRld2F5LWRvbWFpbm5hbWUuaHRtbFxuICAgKiBAZGVmYXVsdCBTZWN1cml0eVBvbGljeS5UTFNfMV8yXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eVBvbGljeT86IFNlY3VyaXR5UG9saWN5O1xuXG4gIC8qKlxuICAgKiBUaGUgbXV0dWFsIFRMUyBhdXRoZW50aWNhdGlvbiBjb25maWd1cmF0aW9uIGZvciBhIGN1c3RvbSBkb21haW4gbmFtZS5cbiAgICogQGRlZmF1bHQgLSBtVExTIGlzIG5vdCBjb25maWd1cmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbXRscz86IE1UTFNDb25maWc7XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIHBhdGggbmFtZSB0aGF0IGNhbGxlcnMgb2YgdGhlIEFQSSBtdXN0IHByb3ZpZGUgaW4gdGhlIFVSTCBhZnRlclxuICAgKiB0aGUgZG9tYWluIG5hbWUgKGUuZy4gYGV4YW1wbGUuY29tL2Jhc2UtcGF0aGApLiBJZiB5b3Ugc3BlY2lmeSB0aGlzXG4gICAqIHByb3BlcnR5LCBpdCBjYW4ndCBiZSBhbiBlbXB0eSBzdHJpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbWFwIHJlcXVlc3RzIGZyb20gdGhlIGRvbWFpbiByb290IChlLmcuIGBleGFtcGxlLmNvbWApLlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZVBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9tYWluTmFtZVByb3BzIGV4dGVuZHMgRG9tYWluTmFtZU9wdGlvbnMsIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIElmIHNwZWNpZmllZCwgYWxsIHJlcXVlc3RzIHRvIHRoaXMgZG9tYWluIHdpbGwgYmUgbWFwcGVkIHRvIHRoZSBwcm9kdWN0aW9uXG4gICAqIGRlcGxveW1lbnQgb2YgdGhpcyBBUEkuIElmIHlvdSB3aXNoIHRvIG1hcCB0aGlzIGRvbWFpbiB0byBtdWx0aXBsZSBBUElzXG4gICAqIHdpdGggZGlmZmVyZW50IGJhc2UgcGF0aHMsIHVzZSBgYWRkQmFzZVBhdGhNYXBwaW5nYCBvciBgYWRkQXBpTWFwcGluZ2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0geW91IHdpbGwgaGF2ZSB0byBjYWxsIGBhZGRCYXNlUGF0aE1hcHBpbmdgIHRvIG1hcCB0aGlzIGRvbWFpbiB0b1xuICAgKiBBUEkgZW5kcG9pbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWFwcGluZz86IElSZXN0QXBpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEb21haW5OYW1lIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgZG9tYWluIG5hbWUgKGUuZy4gYGV4YW1wbGUuY29tYClcbiAgICpcbiAgICogQGF0dHJpYnV0ZSBEb21haW5OYW1lXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBSb3V0ZTUzIGFsaWFzIHRhcmdldCB0byB1c2UgaW4gb3JkZXIgdG8gY29ubmVjdCBhIHJlY29yZCBzZXQgdG8gdGhpcyBkb21haW4gdGhyb3VnaCBhbiBhbGlhcy5cbiAgICpcbiAgICogQGF0dHJpYnV0ZSBEaXN0cmlidXRpb25Eb21haW5OYW1lLFJlZ2lvbmFsRG9tYWluTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZUFsaWFzRG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgUm91dGU1MyBob3N0ZWQgem9uZSBJRCB0byB1c2UgaW4gb3JkZXIgdG8gY29ubmVjdCBhIHJlY29yZCBzZXQgdG8gdGhpcyBkb21haW4gdGhyb3VnaCBhbiBhbGlhcy5cbiAgICpcbiAgICogQGF0dHJpYnV0ZSBEaXN0cmlidXRpb25Ib3N0ZWRab25lSWQsUmVnaW9uYWxIb3N0ZWRab25lSWRcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWVBbGlhc0hvc3RlZFpvbmVJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRG9tYWluTmFtZSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJRG9tYWluTmFtZSB7XG4gIC8qKlxuICAgKiBJbXBvcnRzIGFuIGV4aXN0aW5nIGRvbWFpbiBuYW1lLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRG9tYWluTmFtZUF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBEb21haW5OYW1lQXR0cmlidXRlcyxcbiAgKTogSURvbWFpbk5hbWUge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJRG9tYWluTmFtZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZG9tYWluTmFtZSA9IGF0dHJzLmRvbWFpbk5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZG9tYWluTmFtZUFsaWFzRG9tYWluTmFtZSA9IGF0dHJzLmRvbWFpbk5hbWVBbGlhc1RhcmdldDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBkb21haW5OYW1lQWxpYXNIb3N0ZWRab25lSWQgPVxuICAgICAgICBhdHRycy5kb21haW5OYW1lQWxpYXNIb3N0ZWRab25lSWQ7XG4gICAgICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZG9tYWluTmFtZTogdGhpcy5kb21haW5OYW1lLFxuICAgICAgICAgIGRvbWFpbk5hbWVBbGlhc0RvbWFpbk5hbWU6IHRoaXMuZG9tYWluTmFtZUFsaWFzRG9tYWluTmFtZSxcbiAgICAgICAgICBkb21haW5OYW1lQWxpYXNIb3N0ZWRab25lSWQ6IHRoaXMuZG9tYWluTmFtZUFsaWFzSG9zdGVkWm9uZUlkLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3RydWN0b3IoczogQ29uc3RydWN0LCBpOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIocywgaSwge1xuICAgICAgICAgIGVudmlyb25tZW50RnJvbUFybjogYGFybjphd3M6YXBpZ2F0ZXdheToke0F3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHMpLnJlZ2lvbn06Oi9yZXN0YXBpc2AsXG4gICAgICAgIH0pOyAvLyBEdW1teSBBUk4gZm9yIHJlZ2lvbi9hY2NvdW50IGNvbnRleHRcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGRvbWFpbk5hbWVBbGlhc0RvbWFpbk5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGRvbWFpbk5hbWVBbGlhc0hvc3RlZFpvbmVJZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGJhc2VQYXRocyA9IG5ldyBTZXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlY3VyaXR5UG9saWN5PzogU2VjdXJpdHlQb2xpY3k7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGU7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IGFwaUdhdGV3YXlEb21haW5OYW1lLkFwaUdhdGV3YXlEb21haW5OYW1lO1xuXG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgZG9tYWluTmFtZTogdGhpcy5kb21haW5OYW1lLFxuICAgICAgZG9tYWluTmFtZUFsaWFzRG9tYWluTmFtZTogdGhpcy5kb21haW5OYW1lQWxpYXNEb21haW5OYW1lLFxuICAgICAgZG9tYWluTmFtZUFsaWFzSG9zdGVkWm9uZUlkOiB0aGlzLmRvbWFpbk5hbWVBbGlhc0hvc3RlZFpvbmVJZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERvbWFpbk5hbWVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5lbmRwb2ludFR5cGUgPSBwcm9wcy5lbmRwb2ludFR5cGUgfHwgRW5kcG9pbnRUeXBlLlJFR0lPTkFMO1xuICAgIGNvbnN0IGVkZ2UgPSB0aGlzLmVuZHBvaW50VHlwZSA9PT0gRW5kcG9pbnRUeXBlLkVER0U7XG4gICAgdGhpcy5zZWN1cml0eVBvbGljeSA9IHByb3BzLnNlY3VyaXR5UG9saWN5O1xuXG4gICAgaWYgKFxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5kb21haW5OYW1lKSAmJlxuICAgICAgL1tBLVpdLy50ZXN0KHByb3BzLmRvbWFpbk5hbWUpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGBEb21haW4gbmFtZSBkb2VzIG5vdCBzdXBwb3J0IHVwcGVyY2FzZSBsZXR0ZXJzLiBHb3Q6ICR7cHJvcHMuZG9tYWluTmFtZX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBtdGxzQ29uZmlnID0gdGhpcy5jb25maWd1cmVNVExTKHByb3BzLm10bHMpO1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgYXBpR2F0ZXdheURvbWFpbk5hbWUuQXBpR2F0ZXdheURvbWFpbk5hbWUoXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAge1xuICAgICAgICBkb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lLFxuICAgICAgICBjZXJ0aWZpY2F0ZUFybjogZWRnZSA/IHByb3BzLmNlcnRpZmljYXRlLmNlcnRpZmljYXRlQXJuIDogdW5kZWZpbmVkLFxuICAgICAgICByZWdpb25hbENlcnRpZmljYXRlQXJuOiAhZWRnZVxuICAgICAgICAgID8gcHJvcHMuY2VydGlmaWNhdGUuY2VydGlmaWNhdGVBcm5cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgZW5kcG9pbnRDb25maWd1cmF0aW9uOiB7IHR5cGVzOiBbdGhpcy5lbmRwb2ludFR5cGVdIH0sXG4gICAgICAgIG11dHVhbFRsc0F1dGhlbnRpY2F0aW9uOiBtdGxzQ29uZmlnLFxuICAgICAgICBzZWN1cml0eVBvbGljeTogcHJvcHMuc2VjdXJpdHlQb2xpY3ksXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLmRvbWFpbk5hbWUgPSB0aGlzLnJlc291cmNlLmRvbWFpbk5hbWU7XG5cbiAgICB0aGlzLmRvbWFpbk5hbWVBbGlhc0RvbWFpbk5hbWUgPSBlZGdlXG4gICAgICA/IHRoaXMucmVzb3VyY2UuY2xvdWRmcm9udERvbWFpbk5hbWVcbiAgICAgIDogdGhpcy5yZXNvdXJjZS5yZWdpb25hbERvbWFpbk5hbWU7XG5cbiAgICB0aGlzLmRvbWFpbk5hbWVBbGlhc0hvc3RlZFpvbmVJZCA9IGVkZ2VcbiAgICAgID8gdGhpcy5yZXNvdXJjZS5jbG91ZGZyb250Wm9uZUlkXG4gICAgICA6IHRoaXMucmVzb3VyY2UucmVnaW9uYWxab25lSWQ7XG5cbiAgICBjb25zdCBtdWx0aUxldmVsID0gdGhpcy52YWxpZGF0ZUJhc2VQYXRoKHByb3BzLmJhc2VQYXRoKTtcbiAgICBpZiAocHJvcHMubWFwcGluZyAmJiAhbXVsdGlMZXZlbCkge1xuICAgICAgdGhpcy5hZGRCYXNlUGF0aE1hcHBpbmcocHJvcHMubWFwcGluZywge1xuICAgICAgICBiYXNlUGF0aDogcHJvcHMuYmFzZVBhdGgsXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHByb3BzLm1hcHBpbmcgJiYgbXVsdGlMZXZlbCkge1xuICAgICAgdGhpcy5hZGRBcGlNYXBwaW5nKHByb3BzLm1hcHBpbmcuZGVwbG95bWVudFN0YWdlLCB7XG4gICAgICAgIGJhc2VQYXRoOiBwcm9wcy5iYXNlUGF0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVCYXNlUGF0aChwYXRoPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNNdWx0aUxldmVsKHBhdGgpKSB7XG4gICAgICBpZiAodGhpcy5lbmRwb2ludFR5cGUgPT09IEVuZHBvaW50VHlwZS5FREdFKSB7XG4gICAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICBcIm11bHRpLWxldmVsIGJhc2VQYXRoIGlzIG9ubHkgc3VwcG9ydGVkIHdoZW4gZW5kcG9pbnRUeXBlIGlzIEVuZHBvaW50VHlwZS5SRUdJT05BTFwiLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnNlY3VyaXR5UG9saWN5ICYmXG4gICAgICAgIHRoaXMuc2VjdXJpdHlQb2xpY3kgIT09IFNlY3VyaXR5UG9saWN5LlRMU18xXzJcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgXCJzZWN1cml0eVBvbGljeSBtdXN0IGJlIHNldCB0byBUTFNfMV8yIGlmIG11bHRpLWxldmVsIGJhc2VQYXRoIGlzIHByb3ZpZGVkXCIsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc011bHRpTGV2ZWwocGF0aD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAocGF0aD8uc3BsaXQoXCIvXCIpLmZpbHRlcigoeCkgPT4gISF4KSA/PyBbXSkubGVuZ3RoID49IDI7XG4gIH1cblxuICBwdWJsaWMgYWRkQmFzZVBhdGhNYXBwaW5nKFxuICAgIHRhcmdldEFwaTogSVJlc3RBcGksXG4gICAgb3B0aW9uczogQmFzZVBhdGhNYXBwaW5nT3B0aW9ucyA9IHt9LFxuICApOiBCYXNlUGF0aE1hcHBpbmcge1xuICAgIGlmICh0aGlzLmJhc2VQYXRocy5oYXMob3B0aW9ucy5iYXNlUGF0aCkpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYERvbWFpbk5hbWUgJHt0aGlzLmZyaWVuZGx5TmFtZX0gYWxyZWFkeSBoYXMgYSBtYXBwaW5nIGZvciBwYXRoICR7b3B0aW9ucy5iYXNlUGF0aH1gLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNNdWx0aUxldmVsKG9wdGlvbnMuYmFzZVBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICdCYXNlUGF0aE1hcHBpbmcgZG9lcyBub3Qgc3VwcG9ydCBtdWx0aS1sZXZlbCBwYXRocy4gVXNlIFwiYWRkQXBpTWFwcGluZyBpbnN0ZWFkLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuYmFzZVBhdGhzLmFkZChvcHRpb25zLmJhc2VQYXRoKTtcbiAgICBjb25zdCBiYXNlUGF0aElkUGFydCA9IG9wdGlvbnMuYmFzZVBhdGhcbiAgICAgID8gb3B0aW9ucy5iYXNlUGF0aC5yZXBsYWNlKC9cXC8vZywgXCJfXCIpXG4gICAgICA6IFwicm9vdFwiO1xuICAgIGNvbnN0IGlkID0gYE1hcC0ke2Jhc2VQYXRoSWRQYXJ0fS0ke0F3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpLnVuaXF1ZVJlc291cmNlTmFtZSh0YXJnZXRBcGkubm9kZSl9YDtcblxuICAgIC8vIEFzc3VtaW5nIEJhc2VQYXRoTWFwcGluZyBpcyBhIFRlcnJhQ29uc3RydWN0IHRoYXQgd3JhcHMgYXBpR2F0ZXdheUJhc2VQYXRoTWFwcGluZy5BcGlHYXRld2F5QmFzZVBhdGhNYXBwaW5nXG4gICAgcmV0dXJuIG5ldyBCYXNlUGF0aE1hcHBpbmcodGhpcywgaWQsIHtcbiAgICAgIGRvbWFpbk5hbWU6IHRoaXMsIC8vIFBhc3MgdGhlIERvbWFpbk5hbWUgY29uc3RydWN0IGl0c2VsZlxuICAgICAgcmVzdEFwaTogdGFyZ2V0QXBpLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRBcGlNYXBwaW5nKFxuICAgIHRhcmdldFN0YWdlOiBJU3RhZ2UsXG4gICAgb3B0aW9uczogQXBpTWFwcGluZ09wdGlvbnMgPSB7fSxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYmFzZVBhdGhzLmhhcyhvcHRpb25zLmJhc2VQYXRoKSkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBgRG9tYWluTmFtZSAke3RoaXMubm9kZS5pZH0gYWxyZWFkeSBoYXMgYSBtYXBwaW5nIGZvciBwYXRoICR7b3B0aW9ucy5iYXNlUGF0aH0uICgke3RoaXMubm9kZS5wYXRofSlgLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZUJhc2VQYXRoKG9wdGlvbnMuYmFzZVBhdGgpO1xuICAgIHRoaXMuYmFzZVBhdGhzLmFkZChvcHRpb25zLmJhc2VQYXRoKTtcbiAgICBjb25zdCBiYXNlUGF0aElkUGFydCA9IG9wdGlvbnMuYmFzZVBhdGhcbiAgICAgID8gb3B0aW9ucy5iYXNlUGF0aC5yZXBsYWNlKC9cXC8vZywgXCJfXCIpXG4gICAgICA6IFwicm9vdFwiO1xuICAgIGNvbnN0IGlkID0gYEFwaU1hcC0ke2Jhc2VQYXRoSWRQYXJ0fS0ke0F3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpLnVuaXF1ZVJlc291cmNlTmFtZSh0YXJnZXRTdGFnZS5ub2RlKX1gO1xuXG4gICAgbmV3IGFwaWdhdGV3YXl2MkFwaU1hcHBpbmcuQXBpZ2F0ZXdheXYyQXBpTWFwcGluZyh0aGlzLCBpZCwge1xuICAgICAgYXBpSWQ6IHRhcmdldFN0YWdlLnJlc3RBcGkucmVzdEFwaUlkLFxuICAgICAgc3RhZ2U6IHRhcmdldFN0YWdlLnN0YWdlTmFtZSxcbiAgICAgIGRvbWFpbk5hbWU6IHRoaXMuZG9tYWluTmFtZSxcbiAgICAgIGFwaU1hcHBpbmdLZXk6IG9wdGlvbnMuYmFzZVBhdGgsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZU1UTFMoXG4gICAgbXRsc0NvbmZpZz86IE1UTFNDb25maWcsXG4gICk6XG4gICAgfCBhcGlHYXRld2F5RG9tYWluTmFtZS5BcGlHYXRld2F5RG9tYWluTmFtZU11dHVhbFRsc0F1dGhlbnRpY2F0aW9uXG4gICAgfCB1bmRlZmluZWQge1xuICAgIGlmICghbXRsc0NvbmZpZykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgdHJ1c3RzdG9yZVVyaTogbXRsc0NvbmZpZy5idWNrZXQuczNVcmxGb3JPYmplY3QobXRsc0NvbmZpZy5rZXkpLFxuICAgICAgdHJ1c3RzdG9yZVZlcnNpb246IG10bHNDb25maWcudmVyc2lvbixcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9tYWluTmFtZUF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIGRvbWFpbiBuYW1lIChlLmcuIGBleGFtcGxlLmNvbWApXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBSb3V0ZTUzIGFsaWFzIHRhcmdldCB0byB1c2UgaW4gb3JkZXIgdG8gY29ubmVjdCBhIHJlY29yZCBzZXQgdG8gdGhpcyBkb21haW4gdGhyb3VnaCBhbiBhbGlhcy5cbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWVBbGlhc1RhcmdldDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgUm91dGU1MyBob3N0ZWQgem9uZSBJRCB0byB1c2UgaW4gb3JkZXIgdG8gY29ubmVjdCBhIHJlY29yZCBzZXQgdG8gdGhpcyBkb21haW4gdGhyb3VnaCBhbiBhbGlhcy5cbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWVBbGlhc0hvc3RlZFpvbmVJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBtVExTIGF1dGhlbnRpY2F0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIGEgY3VzdG9tIGRvbWFpbiBuYW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1UTFNDb25maWcge1xuICAvKipcbiAgICogVGhlIGJ1Y2tldCB0aGF0IHRoZSB0cnVzdCBzdG9yZSBpcyBob3N0ZWQgaW4uXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ6IElCdWNrZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBrZXkgaW4gUzMgdG8gbG9vayBhdCBmb3IgdGhlIHRydXN0IHN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBUaGUgdmVyc2lvbiBvZiB0aGUgUzMgb2JqZWN0IHRoYXQgY29udGFpbnMgeW91ciB0cnVzdHN0b3JlLlxuICAgKiAgVG8gc3BlY2lmeSBhIHZlcnNpb24sIHlvdSBtdXN0IGhhdmUgdmVyc2lvbmluZyBlbmFibGVkIGZvciB0aGUgUzMgYnVja2V0LlxuICAgKiAgQGRlZmF1bHQgLSBsYXRlc3QgdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbn1cbiJdfQ==
@@ -59,5 +59,5 @@ class EventInvokeConfig extends aws_construct_1.AwsConstructBase {
59
59
  }
60
60
  exports.EventInvokeConfig = EventInvokeConfig;
61
61
  _a = JSII_RTTI_SYMBOL_1;
62
- EventInvokeConfig[_a] = { fqn: "terraconstructs.aws.compute.EventInvokeConfig", version: "0.2.0" };
62
+ EventInvokeConfig[_a] = { fqn: "terraconstructs.aws.compute.EventInvokeConfig", version: "0.2.2" };
63
63
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtaW52b2tlLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9ldmVudC1pbnZva2UtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBQXNFO0FBRXRFLG9EQUF1RTtBQUV2RSxpRUFBdUU7QUFnRXZFOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLGlCQUFrQixTQUFRLGdDQUFnQjtJQUVyRCxvQ0FBb0M7SUFDcEMsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUNFLEtBQUssQ0FBQyxXQUFXO1lBQ2pCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUNqQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUN4QyxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixxRkFBcUYsQ0FDdEYsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUNFLEtBQUssQ0FBQyxhQUFhO1lBQ25CLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsRUFDcEQsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVE7WUFDWCxJQUFJLDhDQUErQixDQUFDLCtCQUErQixDQUNqRSxJQUFJLEVBQ0osVUFBVSxFQUNWO2dCQUNFLGlCQUFpQixFQUNmLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLFNBQVM7b0JBQ2hDLENBQUMsQ0FBQzt3QkFDRSxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVM7NEJBQ2pCLENBQUMsQ0FBQztnQ0FDRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUU7b0NBQ3BELElBQUksRUFBRSxzQ0FBZSxDQUFDLE9BQU87aUNBQzlCLENBQUM7NkJBQ0g7NEJBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDUCxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVM7NEJBQ2pCLENBQUMsQ0FBQztnQ0FDRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUU7b0NBQ3BELElBQUksRUFBRSxzQ0FBZSxDQUFDLE9BQU87aUNBQzlCLENBQUM7NkJBQ0g7NEJBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztxQkFDUjtvQkFDSCxDQUFDLENBQUMsU0FBUztnQkFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO2dCQUN6Qyx3QkFBd0IsRUFDdEIsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRTtnQkFDcEQsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSxTQUFTO2dCQUN0RCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxTQUFTO2FBQ3hDLENBQ0YsQ0FBQztJQUNOLENBQUM7O0FBekRILDhDQTBEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxhbWJkYUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIEF3c0NvbnN0cnVjdFByb3BzIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gXCIuL2Z1bmN0aW9uLWJhc2VcIjtcbmltcG9ydCB7IERlc3RpbmF0aW9uVHlwZSwgSURlc3RpbmF0aW9uIH0gZnJvbSBcIi4vZnVuY3Rpb24tZGVzdGluYXRpb25cIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2R1cmF0aW9uXCI7XG5cbi8qKlxuICogT3B0aW9ucyB0byBhZGQgYW4gRXZlbnRJbnZva2VDb25maWcgdG8gYSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudEludm9rZUNvbmZpZ09wdGlvbnMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZGVzdGluYXRpb24gZm9yIGZhaWxlZCBpbnZvY2F0aW9ucy5cbiAgICpcbiAgICogRW5zdXJlIHRoZSBMYW1iZGEgRnVuY3Rpb24gSUFNIFJvbGUgaGFzIG5lY2Vzc2FyeSBwZXJtaXNzaW9ucyBmb3IgdGhlIGRlc3RpbmF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVzdGluYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IG9uRmFpbHVyZT86IElEZXN0aW5hdGlvbjtcblxuICAvKipcbiAgICogVGhlIGRlc3RpbmF0aW9uIGZvciBzdWNjZXNzZnVsIGludm9jYXRpb25zLlxuICAgKlxuICAgKiBFbnN1cmUgdGhlIExhbWJkYSBGdW5jdGlvbiBJQU0gUm9sZSBoYXMgbmVjZXNzYXJ5IHBlcm1pc3Npb25zIGZvciB0aGUgZGVzdGluYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXN0aW5hdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgb25TdWNjZXNzPzogSURlc3RpbmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhZ2Ugb2YgYSByZXF1ZXN0IHRoYXQgTGFtYmRhIHNlbmRzIHRvIGEgZnVuY3Rpb24gZm9yXG4gICAqIHByb2Nlc3NpbmcuXG4gICAqXG4gICAqIE1pbmltdW06IDYwIHNlY29uZHNcbiAgICogTWF4aW11bTogNiBob3Vyc1xuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5ob3Vycyg2KVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4RXZlbnRBZ2U/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzIHRvIHJldHJ5IHdoZW4gdGhlIGZ1bmN0aW9uIHJldHVybnMgYW4gZXJyb3IuXG4gICAqXG4gICAqIE1pbmltdW06IDBcbiAgICogTWF4aW11bTogMlxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSByZXRyeUF0dGVtcHRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFuIEV2ZW50SW52b2tlQ29uZmlnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRJbnZva2VDb25maWdQcm9wcyBleHRlbmRzIEV2ZW50SW52b2tlQ29uZmlnT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbjogSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcXVhbGlmaWVyXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbGF0ZXN0IHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmUgb3B0aW9ucyBmb3IgYXN5bmNocm9ub3VzIGludm9jYXRpb24gb24gYSB2ZXJzaW9uIG9yIGFuIGFsaWFzXG4gKlxuICogQnkgZGVmYXVsdCwgTGFtYmRhIHJldHJpZXMgYW4gYXN5bmNocm9ub3VzIGludm9jYXRpb24gdHdpY2UgaWYgdGhlIGZ1bmN0aW9uXG4gKiByZXR1cm5zIGFuIGVycm9yLiBJdCByZXRhaW5zIGV2ZW50cyBpbiBhIHF1ZXVlIGZvciB1cCB0byBzaXggaG91cnMuIFdoZW4gYW5cbiAqIGV2ZW50IGZhaWxzIGFsbCBwcm9jZXNzaW5nIGF0dGVtcHRzIG9yIHN0YXlzIGluIHRoZSBhc3luY2hyb25vdXMgaW52b2NhdGlvblxuICogcXVldWUgZm9yIHRvbyBsb25nLCBMYW1iZGEgZGlzY2FyZHMgaXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBFdmVudEludm9rZUNvbmZpZyBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGxhbWJkYUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcuTGFtYmRhRnVuY3Rpb25FdmVudEludm9rZUNvbmZpZztcbiAgLy8gVE9ETzogb3V0cHV0IHVuZGVmaW5lZCBzdXBwb3J0Li4uXG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEV2ZW50SW52b2tlQ29uZmlnUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKFxuICAgICAgcHJvcHMubWF4RXZlbnRBZ2UgJiZcbiAgICAgIChwcm9wcy5tYXhFdmVudEFnZS50b1NlY29uZHMoKSA8IDYwIHx8XG4gICAgICAgIHByb3BzLm1heEV2ZW50QWdlLnRvU2Vjb25kcygpID4gMjE2MDApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiYG1heGltdW1FdmVudEFnZWAgbXVzdCByZXByZXNlbnQgYSBgRHVyYXRpb25gIHRoYXQgaXMgYmV0d2VlbiA2MCBhbmQgMjE2MDAgc2Vjb25kcy5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcHJvcHMucmV0cnlBdHRlbXB0cyAmJlxuICAgICAgKHByb3BzLnJldHJ5QXR0ZW1wdHMgPCAwIHx8IHByb3BzLnJldHJ5QXR0ZW1wdHMgPiAyKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYHJldHJ5QXR0ZW1wdHNgIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyLlwiKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc291cmNlID1cbiAgICAgIG5ldyBsYW1iZGFGdW5jdGlvbkV2ZW50SW52b2tlQ29uZmlnLkxhbWJkYUZ1bmN0aW9uRXZlbnRJbnZva2VDb25maWcoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgICAge1xuICAgICAgICAgIGRlc3RpbmF0aW9uQ29uZmlnOlxuICAgICAgICAgICAgcHJvcHMub25GYWlsdXJlIHx8IHByb3BzLm9uU3VjY2Vzc1xuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIC4uLihwcm9wcy5vbkZhaWx1cmVcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkZhaWx1cmU6IHByb3BzLm9uRmFpbHVyZS5iaW5kKHRoaXMsIHByb3BzLmZ1bmN0aW9uLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IERlc3RpbmF0aW9uVHlwZS5GQUlMVVJFLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgIC4uLihwcm9wcy5vblN1Y2Nlc3NcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblN1Y2Nlc3M6IHByb3BzLm9uU3VjY2Vzcy5iaW5kKHRoaXMsIHByb3BzLmZ1bmN0aW9uLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IERlc3RpbmF0aW9uVHlwZS5TVUNDRVNTLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGZ1bmN0aW9uTmFtZTogcHJvcHMuZnVuY3Rpb24uZnVuY3Rpb25OYW1lLFxuICAgICAgICAgIG1heGltdW1FdmVudEFnZUluU2Vjb25kczpcbiAgICAgICAgICAgIHByb3BzLm1heEV2ZW50QWdlICYmIHByb3BzLm1heEV2ZW50QWdlLnRvU2Vjb25kcygpLFxuICAgICAgICAgIG1heGltdW1SZXRyeUF0dGVtcHRzOiBwcm9wcy5yZXRyeUF0dGVtcHRzID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICBxdWFsaWZpZXI6IHByb3BzLnF1YWxpZmllciB8fCBcIiRMQVRFU1RcIixcbiAgICAgICAgfSxcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -68,7 +68,7 @@ class FilterRule {
68
68
  }
69
69
  exports.FilterRule = FilterRule;
70
70
  _a = JSII_RTTI_SYMBOL_1;
71
- FilterRule[_a] = { fqn: "terraconstructs.aws.compute.FilterRule", version: "0.2.0" };
71
+ FilterRule[_a] = { fqn: "terraconstructs.aws.compute.FilterRule", version: "0.2.2" };
72
72
  /**
73
73
  * Filter criteria for Lambda event filtering
74
74
  */
@@ -82,5 +82,5 @@ class FilterCriteria {
82
82
  }
83
83
  exports.FilterCriteria = FilterCriteria;
84
84
  _b = JSII_RTTI_SYMBOL_1;
85
- FilterCriteria[_b] = { fqn: "terraconstructs.aws.compute.FilterCriteria", version: "0.2.0" };
85
+ FilterCriteria[_b] = { fqn: "terraconstructs.aws.compute.FilterCriteria", version: "0.2.2" };
86
86
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc291cmNlLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9ldmVudC1zb3VyY2UtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0dBQStHO0FBQy9HOztHQUVHO0FBQ0gsTUFBYSxVQUFVO0lBQ3JCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLElBQUk7UUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLO1FBQ2pCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBK0I7UUFDbkQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQWM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVk7UUFDbEMsT0FBTyxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQ25CLEtBQWEsRUFDYixNQUFjO1FBRWQsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNO1FBQ2xCLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxTQUFTO1FBQ3JCLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUNuQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDOztBQXBFSCxnQ0FxRUM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxjQUFjO0lBQ3pCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUE4QjtRQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUM3QyxDQUFDOztBQU5ILHdDQU9DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNTYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtbGFtYmRhL2xpYi9ldmVudC1zb3VyY2UtZmlsdGVyLnRzXG4vKipcbiAqIEZpbHRlciBydWxlcyBmb3IgTGFtYmRhIGV2ZW50IGZpbHRlcmluZ1xuICovXG5leHBvcnQgY2xhc3MgRmlsdGVyUnVsZSB7XG4gIC8qKlxuICAgKiBOdWxsIGNvbXBhcmlzb24gb3BlcmF0b3JcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbnVsbCgpOiBhbnkge1xuICAgIHJldHVybiBbbnVsbF07XG4gIH1cblxuICAvKipcbiAgICogRW1wdHkgY29tcGFyaXNvbiBvcGVyYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlbXB0eSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcIlwiXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFcXVhbHMgY29tcGFyaXNvbiBvcGVyYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0VxdWFsKGl0ZW06IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pOiBhbnkge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgcmV0dXJuIFt7IG51bWVyaWM6IFtcIj1cIiwgaXRlbV0gfV07XG4gICAgfVxuICAgIHJldHVybiBbaXRlbV07XG4gIH1cblxuICAvKipcbiAgICogT3IgY29tcGFyaXNvbiBvcGVyYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvciguLi5lbGVtOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gZWxlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3QgZXF1YWxzIGNvbXBhcmlzb24gb3BlcmF0b3JcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbm90RXF1YWxzKGVsZW06IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfVtdIHtcbiAgICByZXR1cm4gW3sgXCJhbnl0aGluZy1idXRcIjogW2VsZW1dIH1dO1xuICB9XG5cbiAgLyoqXG4gICAqIE51bWVyaWMgcmFuZ2UgY29tcGFyaXNvbiBvcGVyYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBiZXR3ZWVuKFxuICAgIGZpcnN0OiBudW1iZXIsXG4gICAgc2Vjb25kOiBudW1iZXIsXG4gICk6IHsgW2tleTogc3RyaW5nXTogYW55W10gfVtdIHtcbiAgICByZXR1cm4gW3sgbnVtZXJpYzogW1wiPlwiLCBmaXJzdCwgXCI8PVwiLCBzZWNvbmRdIH1dO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4aXN0cyBjb21wYXJpc29uIG9wZXJhdG9yXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV4aXN0cygpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfVtdIHtcbiAgICByZXR1cm4gW3sgZXhpc3RzOiB0cnVlIH1dO1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdCBleGlzdHMgY29tcGFyaXNvbiBvcGVyYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBub3RFeGlzdHMoKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH1bXSB7XG4gICAgcmV0dXJuIFt7IGV4aXN0czogZmFsc2UgfV07XG4gIH1cblxuICAvKipcbiAgICogQmVnaW5zIHdpdGggY29tcGFyaXNvbiBvcGVyYXRvclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBiZWdpbnNXaXRoKGVsZW06IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1bXSB7XG4gICAgcmV0dXJuIFt7IHByZWZpeDogZWxlbSB9XTtcbiAgfVxufVxuXG4vKipcbiAqIEZpbHRlciBjcml0ZXJpYSBmb3IgTGFtYmRhIGV2ZW50IGZpbHRlcmluZ1xuICovXG5leHBvcnQgY2xhc3MgRmlsdGVyQ3JpdGVyaWEge1xuICAvKipcbiAgICogRmlsdGVyIGZvciBldmVudCBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyKGZpbHRlcjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7IHBhdHRlcm46IEpTT04uc3RyaW5naWZ5KGZpbHRlcikgfTtcbiAgfVxufVxuIl19
@@ -203,7 +203,7 @@ class EventSourceMapping extends aws_construct_1.AwsConstructBase {
203
203
  }
204
204
  exports.EventSourceMapping = EventSourceMapping;
205
205
  _a = JSII_RTTI_SYMBOL_1;
206
- EventSourceMapping[_a] = { fqn: "terraconstructs.aws.compute.EventSourceMapping", version: "0.2.0" };
206
+ EventSourceMapping[_a] = { fqn: "terraconstructs.aws.compute.EventSourceMapping", version: "0.2.2" };
207
207
  /**
208
208
  * The type of authentication protocol or the VPC components for your event source's SourceAccessConfiguration
209
209
  * @see https://docs.aws.amazon.com/lambda/latest/dg/API_SourceAccessConfiguration.html#SSS-Type-SourceAccessConfiguration-Type
@@ -22,5 +22,5 @@ class S3OnFailureDestination {
22
22
  }
23
23
  exports.S3OnFailureDestination = S3OnFailureDestination;
24
24
  _a = JSII_RTTI_SYMBOL_1;
25
- S3OnFailureDestination[_a] = { fqn: "terraconstructs.aws.compute.sources.S3OnFailureDestination", version: "0.2.0" };
25
+ S3OnFailureDestination[_a] = { fqn: "terraconstructs.aws.compute.sources.S3OnFailureDestination", version: "0.2.2" };
26
26
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtb25mYWlsdXJlLWRlc3RpbmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2V2ZW50LXNvdXJjZXMvczMtb25mYWlsdXJlLWRlc3RpbmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBUUE7O0dBRUc7QUFDSCxNQUFhLHNCQUFzQjtJQUNqQyxZQUE2QixNQUF1QjtRQUF2QixXQUFNLEdBQU4sTUFBTSxDQUFpQjtJQUFHLENBQUM7SUFFeEQ7O09BRUc7SUFDSSxJQUFJLENBQ1QsT0FBNEIsRUFDNUIsYUFBd0I7UUFFeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFMUMsT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7U0FDbkMsQ0FBQztJQUNKLENBQUM7O0FBZkgsd0RBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGxxRGVzdGluYXRpb25Db25maWcsXG4gIElFdmVudFNvdXJjZURscSxcbiAgSUV2ZW50U291cmNlTWFwcGluZyxcbiAgSUZ1bmN0aW9uLFxufSBmcm9tIFwiLi4vXCI7XG5pbXBvcnQgKiBhcyBzdG9yYWdlIGZyb20gXCIuLi8uLi9zdG9yYWdlXCI7XG5cbi8qKlxuICogQW4gUzMgZGVhZCBsZXR0ZXIgYnVja2V0IGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIGEgTGFtYmRhIGV2ZW50IHNvdXJjZVxuICovXG5leHBvcnQgY2xhc3MgUzNPbkZhaWx1cmVEZXN0aW5hdGlvbiBpbXBsZW1lbnRzIElFdmVudFNvdXJjZURscSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYnVja2V0OiBzdG9yYWdlLklCdWNrZXQpIHt9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uIGZvciB0aGUgRExRXG4gICAqL1xuICBwdWJsaWMgYmluZChcbiAgICBfdGFyZ2V0OiBJRXZlbnRTb3VyY2VNYXBwaW5nLFxuICAgIHRhcmdldEhhbmRsZXI6IElGdW5jdGlvbixcbiAgKTogRGxxRGVzdGluYXRpb25Db25maWcge1xuICAgIHRoaXMuYnVja2V0LmdyYW50UmVhZFdyaXRlKHRhcmdldEhhbmRsZXIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRlc3RpbmF0aW9uOiB0aGlzLmJ1Y2tldC5idWNrZXRBcm4sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -21,5 +21,5 @@ class S3EventSource {
21
21
  }
22
22
  exports.S3EventSource = S3EventSource;
23
23
  _a = JSII_RTTI_SYMBOL_1;
24
- S3EventSource[_a] = { fqn: "terraconstructs.aws.compute.sources.S3EventSource", version: "0.2.0" };
24
+ S3EventSource[_a] = { fqn: "terraconstructs.aws.compute.sources.S3EventSource", version: "0.2.2" };
25
25
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvZXZlbnQtc291cmNlcy9zMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLDZEQUE2RDtBQWlCN0Q7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDeEIsWUFDbUIsTUFBdUIsRUFDdkIsS0FBeUI7UUFEekIsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDdkIsVUFBSyxHQUFMLEtBQUssQ0FBb0I7SUFDekMsQ0FBQztJQUVHLElBQUksQ0FBQyxNQUF5QjtRQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDekMsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQzlCLEtBQUssRUFDTCxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFDdEMsR0FBRyxPQUFPLENBQ1gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOztBQWZILHNDQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvbXB1dGUgZnJvbSBcIi4uXCI7XG5pbXBvcnQgKiBhcyBzdG9yYWdlIGZyb20gXCIuLi8uLi9zdG9yYWdlXCI7XG5pbXBvcnQgKiBhcyBub3RpZnMgZnJvbSBcIi4uLy4uL3N0b3JhZ2Uvbm90aWZpY2F0aW9uLXRhcmdldHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTM0V2ZW50U291cmNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIHMzIGV2ZW50IHR5cGVzIHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBub3RpZmljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBldmVudHM6IHN0b3JhZ2UuRXZlbnRUeXBlW107XG5cbiAgLyoqXG4gICAqIFMzIG9iamVjdCBrZXkgZmlsdGVyIHJ1bGVzIHRvIGRldGVybWluZSB3aGljaCBvYmplY3RzIHRyaWdnZXIgdGhpcyBldmVudC5cbiAgICogRWFjaCBmaWx0ZXIgbXVzdCBpbmNsdWRlIGEgYHByZWZpeGAgYW5kL29yIGBzdWZmaXhgIHRoYXQgd2lsbCBiZSBtYXRjaGVkXG4gICAqIGFnYWluc3QgdGhlIHMzIG9iamVjdCBrZXkuIFJlZmVyIHRvIHRoZSBTMyBEZXZlbG9wZXIgR3VpZGUgZm9yIGRldGFpbHNcbiAgICogYWJvdXQgYWxsb3dlZCBmaWx0ZXIgcnVsZXMuXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXJzPzogc3RvcmFnZS5Ob3RpZmljYXRpb25LZXlGaWx0ZXJbXTtcbn1cblxuLyoqXG4gKiBVc2UgUzMgYnVja2V0IG5vdGlmaWNhdGlvbnMgYXMgYW4gZXZlbnQgc291cmNlIGZvciBBV1MgTGFtYmRhLlxuICovXG5leHBvcnQgY2xhc3MgUzNFdmVudFNvdXJjZSBpbXBsZW1lbnRzIGNvbXB1dGUuSUV2ZW50U291cmNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBidWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBTM0V2ZW50U291cmNlUHJvcHMsXG4gICkge31cblxuICBwdWJsaWMgYmluZCh0YXJnZXQ6IGNvbXB1dGUuSUZ1bmN0aW9uKSB7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMucHJvcHMuZmlsdGVycyB8fCBbXTtcbiAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIHRoaXMucHJvcHMuZXZlbnRzKSB7XG4gICAgICB0aGlzLmJ1Y2tldC5hZGRFdmVudE5vdGlmaWNhdGlvbihcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIG5ldyBub3RpZnMuRnVuY3Rpb25EZXN0aW5hdGlvbih0YXJnZXQpLFxuICAgICAgICAuLi5maWx0ZXJzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -22,5 +22,5 @@ class SqsDlq {
22
22
  }
23
23
  exports.SqsDlq = SqsDlq;
24
24
  _a = JSII_RTTI_SYMBOL_1;
25
- SqsDlq[_a] = { fqn: "terraconstructs.aws.compute.sources.SqsDlq", version: "0.2.0" };
25
+ SqsDlq[_a] = { fqn: "terraconstructs.aws.compute.sources.SqsDlq", version: "0.2.2" };
26
26
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLWRscS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9ldmVudC1zb3VyY2VzL3Nxcy1kbHEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFRQTs7R0FFRztBQUNILE1BQWEsTUFBTTtJQUNqQixZQUE2QixLQUFvQjtRQUFwQixVQUFLLEdBQUwsS0FBSyxDQUFlO0lBQUcsQ0FBQztJQUVyRDs7T0FFRztJQUNJLElBQUksQ0FDVCxPQUE0QixFQUM1QixhQUF3QjtRQUV4QixJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTVDLE9BQU87WUFDTCxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO1NBQ2pDLENBQUM7SUFDSixDQUFDOztBQWZILHdCQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERscURlc3RpbmF0aW9uQ29uZmlnLFxuICBJRXZlbnRTb3VyY2VEbHEsXG4gIElFdmVudFNvdXJjZU1hcHBpbmcsXG4gIElGdW5jdGlvbixcbn0gZnJvbSBcIi4uL1wiO1xuaW1wb3J0ICogYXMgbm90aWZ5IGZyb20gXCIuLi8uLi9ub3RpZnlcIjtcblxuLyoqXG4gKiBBbiBTUVMgZGVhZCBsZXR0ZXIgcXVldWUgZGVzdGluYXRpb24gY29uZmlndXJhdGlvbiBmb3IgYSBMYW1iZGEgZXZlbnQgc291cmNlXG4gKi9cbmV4cG9ydCBjbGFzcyBTcXNEbHEgaW1wbGVtZW50cyBJRXZlbnRTb3VyY2VEbHEge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHF1ZXVlOiBub3RpZnkuSVF1ZXVlKSB7fVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgZGVzdGluYXRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIERMUVxuICAgKi9cbiAgcHVibGljIGJpbmQoXG4gICAgX3RhcmdldDogSUV2ZW50U291cmNlTWFwcGluZyxcbiAgICB0YXJnZXRIYW5kbGVyOiBJRnVuY3Rpb24sXG4gICk6IERscURlc3RpbmF0aW9uQ29uZmlnIHtcbiAgICB0aGlzLnF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKHRhcmdldEhhbmRsZXIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRlc3RpbmF0aW9uOiB0aGlzLnF1ZXVlLnF1ZXVlQXJuLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -81,5 +81,5 @@ class SqsEventSource {
81
81
  }
82
82
  exports.SqsEventSource = SqsEventSource;
83
83
  _a = JSII_RTTI_SYMBOL_1;
84
- SqsEventSource[_a] = { fqn: "terraconstructs.aws.compute.sources.SqsEventSource", version: "0.2.0" };
84
+ SqsEventSource[_a] = { fqn: "terraconstructs.aws.compute.sources.SqsEventSource", version: "0.2.2" };
85
85
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2V2ZW50LXNvdXJjZXMvc3FzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOEdBQThHO0FBRTlHLGlDQUEyQztBQUUzQyw2QkFBaUM7QUF3RWpDOztHQUVHO0FBQ0gsTUFBYSxjQUFjO0lBSXpCLFlBQ1csS0FBb0IsRUFDWixRQUE2QixFQUFFO1FBRHZDLFVBQUssR0FBTCxLQUFLLENBQWU7UUFDWixVQUFLLEdBQUwsS0FBSyxDQUEwQjtRQUwxQywwQkFBcUIsR0FBWSxTQUFTLENBQUM7UUFDM0MsMkJBQXNCLEdBQVksU0FBUyxDQUFDO1FBTWxELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7WUFDdEUsQ0FBQztZQUNELElBQ0UsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRTtnQkFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsR0FBRyxHQUFHLEVBQzlDLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYiw4REFBOEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUM5RyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFDRCxJQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxLQUFLLFNBQVM7WUFDbEMsQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQ3pDLENBQUM7WUFDRCxJQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEtBQUssU0FBUztnQkFDMUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLEVBQzFELENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixtRUFBbUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLHNDQUFzQyxDQUM5SCxDQUFDO1lBQ0osQ0FBQztZQUNELElBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxTQUFTO2dCQUMxQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsRUFDdkQsQ0FBQztnQkFDRCxNQUFNLElBQUksS0FBSyxDQUNiLGdFQUFnRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsMENBQTBDLENBQy9ILENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxJQUFJLENBQUMsTUFBeUI7UUFDbkMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQ3JELGtCQUFrQixZQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFDdEQ7WUFDRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQy9CLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCO1lBQy9DLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7WUFDekMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyx1QkFBdUI7WUFDM0QsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTztZQUMzQixjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO1lBQ25DLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87WUFDM0IsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7U0FDOUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO1FBQ3JFLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztRQUV2RSwyREFBMkQ7UUFDM0QsK0NBQStDO1FBQy9DLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDTixvRUFBb0U7WUFDcEUsbUJBQVcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUMvQixhQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxxQ0FBcUM7Z0JBQ2hFLDBEQUEwRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FDcEYsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLG9CQUFvQjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FDYiw0REFBNEQsQ0FDN0QsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLHFCQUFxQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FDYiw0REFBNEQsQ0FDN0QsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUNyQyxDQUFDOztBQWhHSCx3Q0FpR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xODYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtbGFtYmRhLWV2ZW50LXNvdXJjZXMvdGVzdC9zcXMudGVzdC50c1xuXG5pbXBvcnQgeyBUb2tlbiwgQW5ub3RhdGlvbnMgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCAqIGFzIGNvbXB1dGUgZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi8uLlwiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vLi5cIjtcbmltcG9ydCB7IElLZXkgfSBmcm9tIFwiLi4vLi4vZW5jcnlwdGlvblwiO1xuaW1wb3J0ICogYXMgbm90aWZ5IGZyb20gXCIuLi8uLi9ub3RpZnlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTcXNFdmVudFNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBsYXJnZXN0IG51bWJlciBvZiByZWNvcmRzIHRoYXQgQVdTIExhbWJkYSB3aWxsIHJldHJpZXZlIGZyb20geW91ciBldmVudFxuICAgKiBzb3VyY2UgYXQgdGhlIHRpbWUgb2YgaW52b2tpbmcgeW91ciBmdW5jdGlvbi4gWW91ciBmdW5jdGlvbiByZWNlaXZlcyBhblxuICAgKiBldmVudCB3aXRoIGFsbCB0aGUgcmV0cmlldmVkIHJlY29yZHMuXG4gICAqXG4gICAqIFZhbGlkIFJhbmdlOiBNaW5pbXVtIHZhbHVlIG9mIDEuIE1heGltdW0gdmFsdWUgb2YgMTAuXG4gICAqIElmIGBtYXhCYXRjaGluZ1dpbmRvd2AgaXMgY29uZmlndXJlZCwgdGhpcyB2YWx1ZSBjYW4gZ28gdXAgdG8gMTAsMDAwLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxMFxuICAgKi9cbiAgcmVhZG9ubHkgYmF0Y2hTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZSB0byBnYXRoZXIgcmVjb3JkcyBiZWZvcmUgaW52b2tpbmcgdGhlIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBWYWxpZCBSYW5nZTogTWluaW11bSB2YWx1ZSBvZiAwIG1pbnV0ZXMuIE1heGltdW0gdmFsdWUgb2YgNSBtaW51dGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGJhdGNoaW5nIHdpbmRvdy4gVGhlIGxhbWJkYSBmdW5jdGlvbiB3aWxsIGJlIGludm9rZWQgaW1tZWRpYXRlbHkgd2l0aCB0aGUgcmVjb3JkcyB0aGF0IGFyZSBhdmFpbGFibGUuXG4gICAqL1xuICByZWFkb25seSBtYXhCYXRjaGluZ1dpbmRvdz86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBBbGxvdyBmdW5jdGlvbnMgdG8gcmV0dXJuIHBhcnRpYWxseSBzdWNjZXNzZnVsIHJlc3BvbnNlcyBmb3IgYSBiYXRjaCBvZiByZWNvcmRzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3dpdGgtc3FzLmh0bWwjc2VydmljZXMtc3FzLWJhdGNoZmFpbHVyZXJlcG9ydGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3J0QmF0Y2hJdGVtRmFpbHVyZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiB0aGUgU1FTIGV2ZW50IHNvdXJjZSBtYXBwaW5nIHNob3VsZCBiZSBlbmFibGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkIGZpbHRlciBjcml0ZXJpYSBvcHRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXJzPzogQXJyYXk8eyBba2V5OiBzdHJpbmddOiBhbnkgfT47XG5cbiAgLyoqXG4gICAqIEFkZCBDdXN0b21lciBtYW5hZ2VkIEtNUyBrZXkgdG8gZW5jcnlwdCBGaWx0ZXIgQ3JpdGVyaWEuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvaW52b2NhdGlvbi1ldmVudGZpbHRlcmluZy5odG1sXG4gICAqIEJ5IGRlZmF1bHQsIExhbWJkYSB3aWxsIGVuY3J5cHQgRmlsdGVyIENyaXRlcmlhIHVzaW5nIEFXUyBtYW5hZ2VkIGtleXNcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20va21zL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9jb25jZXB0cy5odG1sI2F3cy1tYW5hZ2VkLWNta1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGZpbHRlckVuY3J5cHRpb24/OiBJS2V5O1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBjb25jdXJyZW5jeSBzZXR0aW5nIGxpbWl0cyB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgaW5zdGFuY2VzIG9mIHRoZSBmdW5jdGlvbiB0aGF0IGFuIEFtYXpvbiBTUVMgZXZlbnQgc291cmNlIGNhbiBpbnZva2UuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2l0aC1zcXMuaHRtbCNldmVudHMtc3FzLW1heC1jb25jdXJyZW5jeVxuICAgKlxuICAgKiBWYWxpZCBSYW5nZTogTWluaW11bSB2YWx1ZSBvZiAyLiBNYXhpbXVtIHZhbHVlIG9mIDEwMDAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gc3BlY2lmaWMgbGltaXQuXG4gICAqL1xuICByZWFkb25seSBtYXhDb25jdXJyZW5jeT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBVc2UgYW4gQW1hem9uIFNRUyBxdWV1ZSBhcyBhbiBldmVudCBzb3VyY2UgZm9yIEFXUyBMYW1iZGEuXG4gKi9cbmV4cG9ydCBjbGFzcyBTcXNFdmVudFNvdXJjZSBpbXBsZW1lbnRzIGNvbXB1dGUuSUV2ZW50U291cmNlIHtcbiAgcHJpdmF0ZSBfZXZlbnRTb3VyY2VNYXBwaW5nSWQ/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2V2ZW50U291cmNlTWFwcGluZ0Fybj86IHN0cmluZyA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBxdWV1ZTogbm90aWZ5LklRdWV1ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBTcXNFdmVudFNvdXJjZVByb3BzID0ge30sXG4gICkge1xuICAgIGlmICh0aGlzLnByb3BzLm1heEJhdGNoaW5nV2luZG93ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChxdWV1ZS5maWZvKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkJhdGNoaW5nIHdpbmRvdyBpcyBub3Qgc3VwcG9ydGVkIGZvciBGSUZPIHF1ZXVlc1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMucHJvcHMubWF4QmF0Y2hpbmdXaW5kb3cuaXNVbnJlc29sdmVkKCkgJiZcbiAgICAgICAgdGhpcy5wcm9wcy5tYXhCYXRjaGluZ1dpbmRvdy50b1NlY29uZHMoKSA+IDMwMFxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgTWF4aW11bSBiYXRjaGluZyB3aW5kb3cgbXVzdCBiZSAzMDAgc2Vjb25kcyBvciBsZXNzIChnaXZlbiAke3RoaXMucHJvcHMubWF4QmF0Y2hpbmdXaW5kb3cudG9IdW1hblN0cmluZygpfSlgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLnByb3BzLmJhdGNoU2l6ZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMucHJvcHMuYmF0Y2hTaXplKVxuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnByb3BzLm1heEJhdGNoaW5nV2luZG93ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgKHRoaXMucHJvcHMuYmF0Y2hTaXplIDwgMSB8fCB0aGlzLnByb3BzLmJhdGNoU2l6ZSA+IDEwMDAwKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgTWF4aW11bSBiYXRjaCBzaXplIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAxMDAwMCBpbmNsdXNpdmUgKGdpdmVuICR7dGhpcy5wcm9wcy5iYXRjaFNpemV9KSB3aGVuIGJhdGNoaW5nIHdpbmRvdyBpcyBzcGVjaWZpZWQuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5wcm9wcy5tYXhCYXRjaGluZ1dpbmRvdyA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICh0aGlzLnByb3BzLmJhdGNoU2l6ZSA8IDEgfHwgdGhpcy5wcm9wcy5iYXRjaFNpemUgPiAxMClcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYE1heGltdW0gYmF0Y2ggc2l6ZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMTAgaW5jbHVzaXZlIChnaXZlbiAke3RoaXMucHJvcHMuYmF0Y2hTaXplfSkgd2hlbiBiYXRjaGluZyB3aW5kb3cgaXMgbm90IHNwZWNpZmllZC5gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBiaW5kKHRhcmdldDogY29tcHV0ZS5JRnVuY3Rpb24pIHtcbiAgICBjb25zdCBldmVudFNvdXJjZU1hcHBpbmcgPSB0YXJnZXQuYWRkRXZlbnRTb3VyY2VNYXBwaW5nKFxuICAgICAgYFNxc0V2ZW50U291cmNlOiR7QXdzU3RhY2sudW5pcXVlSWQodGhpcy5xdWV1ZS5ub2RlKX1gLFxuICAgICAge1xuICAgICAgICBiYXRjaFNpemU6IHRoaXMucHJvcHMuYmF0Y2hTaXplLFxuICAgICAgICBtYXhCYXRjaGluZ1dpbmRvdzogdGhpcy5wcm9wcy5tYXhCYXRjaGluZ1dpbmRvdyxcbiAgICAgICAgbWF4Q29uY3VycmVuY3k6IHRoaXMucHJvcHMubWF4Q29uY3VycmVuY3ksXG4gICAgICAgIHJlcG9ydEJhdGNoSXRlbUZhaWx1cmVzOiB0aGlzLnByb3BzLnJlcG9ydEJhdGNoSXRlbUZhaWx1cmVzLFxuICAgICAgICBlbmFibGVkOiB0aGlzLnByb3BzLmVuYWJsZWQsXG4gICAgICAgIGV2ZW50U291cmNlQXJuOiB0aGlzLnF1ZXVlLnF1ZXVlQXJuLFxuICAgICAgICBmaWx0ZXJzOiB0aGlzLnByb3BzLmZpbHRlcnMsXG4gICAgICAgIGZpbHRlckVuY3J5cHRpb246IHRoaXMucHJvcHMuZmlsdGVyRW5jcnlwdGlvbixcbiAgICAgIH0sXG4gICAgKTtcbiAgICB0aGlzLl9ldmVudFNvdXJjZU1hcHBpbmdJZCA9IGV2ZW50U291cmNlTWFwcGluZy5ldmVudFNvdXJjZU1hcHBpbmdJZDtcbiAgICB0aGlzLl9ldmVudFNvdXJjZU1hcHBpbmdBcm4gPSBldmVudFNvdXJjZU1hcHBpbmcuZXZlbnRTb3VyY2VNYXBwaW5nQXJuO1xuXG4gICAgLy8gb25seSBncmFudCBhY2Nlc3MgaWYgdGhlIGxhbWJkYSBmdW5jdGlvbiBoYXMgYW4gSUFNIHJvbGVcbiAgICAvLyBvdGhlcndpc2UgdGhlIElBTSBtb2R1bGUgd2lsbCB0aHJvdyBhbiBlcnJvclxuICAgIGlmICh0YXJnZXQucm9sZSkge1xuICAgICAgdGhpcy5xdWV1ZS5ncmFudENvbnN1bWVNZXNzYWdlcyh0YXJnZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBcIkBhd3MtY2RrL2F3cy1sYW1iZGEtZXZlbnQtc291cmNlczpzcXNGdW5jdGlvbkltcG9ydFdpdGhvdXRSb2xlXCIsXG4gICAgICBBbm5vdGF0aW9ucy5vZih0YXJnZXQpLmFkZFdhcm5pbmcoXG4gICAgICAgIGBGdW5jdGlvbiAnJHt0YXJnZXQubm9kZS5wYXRofScgd2FzIGltcG9ydGVkIHdpdGhvdXQgYW4gSUFNIHJvbGUgYCArXG4gICAgICAgICAgYHNvIGl0IHdhcyBub3QgZ3JhbnRlZCBhY2Nlc3MgdG8gY29uc3VtZSBtZXNzYWdlcyBmcm9tICcke3RoaXMucXVldWUubm9kZS5wYXRofSdgLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgZm9yIHRoaXMgRXZlbnRTb3VyY2VNYXBwaW5nXG4gICAqL1xuICBwdWJsaWMgZ2V0IGV2ZW50U291cmNlTWFwcGluZ0lkKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9ldmVudFNvdXJjZU1hcHBpbmdJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlNxc0V2ZW50U291cmNlIGlzIG5vdCB5ZXQgYm91bmQgdG8gYW4gZXZlbnQgc291cmNlIG1hcHBpbmdcIixcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9ldmVudFNvdXJjZU1hcHBpbmdJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgQVJOIGZvciB0aGlzIEV2ZW50U291cmNlTWFwcGluZ1xuICAgKi9cbiAgcHVibGljIGdldCBldmVudFNvdXJjZU1hcHBpbmdBcm4oKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX2V2ZW50U291cmNlTWFwcGluZ0Fybikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlNxc0V2ZW50U291cmNlIGlzIG5vdCB5ZXQgYm91bmQgdG8gYW4gZXZlbnQgc291cmNlIG1hcHBpbmdcIixcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9ldmVudFNvdXJjZU1hcHBpbmdBcm47XG4gIH1cbn1cbiJdfQ==
@@ -357,7 +357,7 @@ class JsonPath {
357
357
  }
358
358
  exports.JsonPath = JsonPath;
359
359
  _a = JSII_RTTI_SYMBOL_1;
360
- JsonPath[_a] = { fqn: "terraconstructs.aws.compute.JsonPath", version: "0.2.0" };
360
+ JsonPath[_a] = { fqn: "terraconstructs.aws.compute.JsonPath", version: "0.2.2" };
361
361
  /**
362
362
  * Special string value to discard state input, output or result.
363
363
  */
@@ -414,7 +414,7 @@ class Data {
414
414
  }
415
415
  exports.Data = Data;
416
416
  _b = JSII_RTTI_SYMBOL_1;
417
- Data[_b] = { fqn: "terraconstructs.aws.compute.Data", version: "0.2.0" };
417
+ Data[_b] = { fqn: "terraconstructs.aws.compute.Data", version: "0.2.2" };
418
418
  /**
419
419
  * Extract a field from the State Machine Context data
420
420
  *
@@ -460,7 +460,7 @@ class Context {
460
460
  }
461
461
  exports.Context = Context;
462
462
  _c = JSII_RTTI_SYMBOL_1;
463
- Context[_c] = { fqn: "terraconstructs.aws.compute.Context", version: "0.2.0" };
463
+ Context[_c] = { fqn: "terraconstructs.aws.compute.Context", version: "0.2.2" };
464
464
  /**
465
465
  * Helper functions to work with structures containing fields
466
466
  */
@@ -491,7 +491,7 @@ class FieldUtils {
491
491
  }
492
492
  exports.FieldUtils = FieldUtils;
493
493
  _d = JSII_RTTI_SYMBOL_1;
494
- FieldUtils[_d] = { fqn: "terraconstructs.aws.compute.FieldUtils", version: "0.2.0" };
494
+ FieldUtils[_d] = { fqn: "terraconstructs.aws.compute.FieldUtils", version: "0.2.2" };
495
495
  function validateJsonPath(path) {
496
496
  const intrinsicFunctionNames = [
497
497
  // Intrinsics for arrays
@@ -184,5 +184,5 @@ class Alias extends function_base_1.QualifiedFunctionBase {
184
184
  }
185
185
  exports.Alias = Alias;
186
186
  _a = JSII_RTTI_SYMBOL_1;
187
- Alias[_a] = { fqn: "terraconstructs.aws.compute.Alias", version: "0.2.0" };
187
+ Alias[_a] = { fqn: "terraconstructs.aws.compute.Alias", version: "0.2.2" };
188
188
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tYWxpYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvZnVuY3Rpb24tYWxpYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBc0U7QUFJdEUsbURBQW1FO0FBb0huRTs7R0FFRztBQUNILE1BQWEsS0FBTSxTQUFRLHFDQUFxQjtJQUN2QyxNQUFNLENBQUMsbUJBQW1CLENBQy9CLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFzQjtRQUV0QixNQUFNLFFBQVMsU0FBUSxxQ0FBcUI7WUFHMUM7O2VBRUc7WUFDSCxJQUFXLE9BQU87Z0JBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7WUFDdkMsQ0FBQztZQUNELElBQVcsMEJBQTBCO2dCQUNuQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1lBQ2pDLENBQUM7WUFDRCxJQUFXLGlCQUFpQjtnQkFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztZQUNqQyxDQUFDO1lBUUQsSUFBVyxZQUFZO2dCQUNyQixPQUFPO29CQUNMLElBQUksRUFBRSxLQUFLLENBQUMsU0FBUztvQkFDckIsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUztpQkFDbkMsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFXLE9BQU87Z0JBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztZQUMzQixDQUFDO1lBR0QsWUFBWSxDQUFZLEVBQUUsQ0FBUztnQkFDakMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFoQ0UsY0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBYTVCLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO2dCQUN4QixnQkFBVyxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLFNBQVMs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K0NBQStDO0lBQy9DLDBDQUEwQztJQUMxQyxxREFBcUQ7SUFDckQsNkRBQTZEO0lBQzdELDhEQUE4RDtJQUM5RCxnQ0FBZ0M7SUFDaEMsU0FBUztJQUNULFFBQVE7SUFDUixJQUFJO0lBRUo7O09BRUc7SUFDSyxzQkFBc0IsQ0FDNUIsS0FBaUI7UUFFakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxNQUFNLHdCQUF3QixHQUE4QixFQUFFLENBQUM7UUFDL0QsS0FBSyxNQUFNLEVBQUUsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sSUFBSSxLQUFLLENBQ2IsMkRBQTJELEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FDdkUsQ0FBQztZQUNKLENBQUM7WUFDRCxLQUFLLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUNuQix3QkFBd0IsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUNiLDZEQUE2RCxLQUFLLEVBQUUsQ0FDckUsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPO1lBQ0wsd0JBQXdCO1NBQ3pCLENBQUM7SUFDSixDQUFDOztBQXJQSCxzQkErUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsYW1iZGFBbGlhcywgZGF0YUF3c0xhbWJkYUFsaWFzIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcmNoaXRlY3R1cmUgfSBmcm9tIFwiLi9hcmNoaXRlY3R1cmVcIjtcbmltcG9ydCB7IEV2ZW50SW52b2tlQ29uZmlnT3B0aW9ucyB9IGZyb20gXCIuL2V2ZW50LWludm9rZS1jb25maWdcIjtcbmltcG9ydCB7IElGdW5jdGlvbiwgUXVhbGlmaWVkRnVuY3Rpb25CYXNlIH0gZnJvbSBcIi4vZnVuY3Rpb24tYmFzZVwiO1xuLy8gaW1wb3J0IHsgU2NhbGFibGVGdW5jdGlvbkF0dHJpYnV0ZSB9IGZyb20gXCIuL3ByaXZhdGUvc2NhbGFibGUtZnVuY3Rpb24tYXR0cmlidXRlXCI7XG4vLyBpbXBvcnQge1xuLy8gICBBdXRvU2NhbGluZ09wdGlvbnMsXG4vLyAgIElTY2FsYWJsZUZ1bmN0aW9uQXR0cmlidXRlLFxuLy8gfSBmcm9tIFwiLi9zY2FsYWJsZS1hdHRyaWJ1dGUtYXBpXCI7XG4vLyBpbXBvcnQgeyBBcm5Gb3JtYXQgfSBmcm9tIFwiLi4vXCI7XG5cbi8qKlxuICogT3V0cHV0cyB0aGF0IGNhbiBiZSBleHBvc2VkIHRocm91Z2ggdGhlIGdyaWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbGlhc091dHB1dHMge1xuICAvKipcbiAgICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIGlkZW50aWZ5aW5nIHlvdXIgTGFtYmRhIGZ1bmN0aW9uIGFsaWFzLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIHRvIGJlIHVzZWQgZm9yIGludm9raW5nIExhbWJkYSBGdW5jdGlvbiBmcm9tIEFQSSBHYXRld2F5IC0gdG8gYmUgdXNlZCBpbiBgYXdzX2FwaV9nYXRld2F5X2ludGVncmF0aW9uYCdzIHVyaVxuICAgKi9cbiAgcmVhZG9ubHkgaW52b2tlQXJuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFsaWFzIGV4dGVuZHMgSUZ1bmN0aW9uIHtcbiAgLyoqIHN0cm9uZ2x5IHR5cGVkIGFsaWFzT3V0cHV0cyAqL1xuICByZWFkb25seSBhbGlhc091dHB1dHM6IEFsaWFzT3V0cHV0cztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGlzIGFsaWFzLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBhbGlhc05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuZGVybHlpbmcgTGFtYmRhIGZ1bmN0aW9uXG4gICAqL1xuICByZWFkb25seSBsYW1iZGE6IElGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGhlIHVuZGVybHlpbmcgTGFtYmRhIGZ1bmN0aW9uIHZlcnNpb24uXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYGxhbWJkYS5BbGlhc2AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWxpYXNPcHRpb25zIGV4dGVuZHMgRXZlbnRJbnZva2VDb25maWdPcHRpb25zIHtcbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIGZvciB0aGUgYWxpYXNcbiAgICpcbiAgICogQGRlZmF1bHQgTm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHZlcnNpb25zIHdpdGggaW5kaXZpZHVhbCB3ZWlnaHRzIHRoaXMgYWxpYXMgcG9pbnRzIHRvXG4gICAqXG4gICAqIEluZGl2aWR1YWwgYWRkaXRpb25hbCB2ZXJzaW9uIHdlaWdodHMgc3BlY2lmaWVkIGhlcmUgc2hvdWxkIGFkZCB1cCB0b1xuICAgKiAobGVzcyB0aGFuKSBvbmUuIEFsbCByZW1haW5pbmcgd2VpZ2h0IGlzIHJvdXRlZCB0byB0aGUgZGVmYXVsdFxuICAgKiB2ZXJzaW9uLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgdGhlIGNvbmZpZyBpc1xuICAgKlxuICAgKiAgICB2ZXJzaW9uOiBcIjFcIlxuICAgKiAgICBhZGRpdGlvbmFsVmVyc2lvbnM6IFt7IHZlcnNpb246IFwiMlwiLCB3ZWlnaHQ6IDAuMDUgfV1cbiAgICpcbiAgICogVGhlbiA1JSBvZiB0cmFmZmljIHdpbGwgYmUgcm91dGVkIHRvIGZ1bmN0aW9uIHZlcnNpb24gMiwgd2hpbGVcbiAgICogdGhlIHJlbWFpbmluZyA5NSUgb2YgdHJhZmZpYyB3aWxsIGJlIHJvdXRlZCB0byBmdW5jdGlvbiB2ZXJzaW9uIDEuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vIGFkZGl0aW9uYWwgdmVyc2lvbnNcbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxWZXJzaW9ucz86IFZlcnNpb25XZWlnaHRbXTtcblxuICAvLyBUT0RPOiByZS1hZGQgc3VwcG9ydCBmb3IgcHJvdmlzaW9uZWQgY29uY3VycmVuY3lcbiAgLy8gLyoqXG4gIC8vICAqIFNwZWNpZmllcyBhIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IGNvbmZpZ3VyYXRpb24gZm9yIGEgZnVuY3Rpb24ncyBhbGlhcy5cbiAgLy8gICpcbiAgLy8gICogQGRlZmF1bHQgTm8gcHJvdmlzaW9uZWQgY29uY3VycmVuY3lcbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IHByb3Zpc2lvbmVkQ29uY3VycmVudEV4ZWN1dGlvbnM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBuZXcgTGFtYmRhIGFsaWFzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWxpYXNQcm9wcyBleHRlbmRzIEFsaWFzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoaXMgYWxpYXNcbiAgICpcbiAgICogTWluaW11bSBsZW5ndGggb2YgMS4gTWF4aW11bSBsZW5ndGggb2YgMTI4LlxuICAgKiBQYXR0ZXJuOiAoPyFeWzAtOV0rJCkoW2EtekEtWjAtOS1fXSspXG4gICAqXG4gICAqL1xuICByZWFkb25seSBhbGlhc05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRnVuY3Rpb24gdGhpcyBhbGlhcyByZWZlcnMgdG9cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uOiBJRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHZlcnNpb24gdGhpcyBhbGlhcyByZWZlcnMgdG9cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcy9yZXNvdXJjZXMvbGFtYmRhX2FsaWFzI2Z1bmN0aW9uX3ZlcnNpb24gTGFtYmRhQWxpYXMjZnVuY3Rpb25fdmVyc2lvbn1cbiAgICogcGF0dGVybiAoXFwkTEFURVNUfFswLTldKylcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbGlhc0F0dHJpYnV0ZXMge1xuICByZWFkb25seSBhbGlhc05hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvbjtcbn1cblxuLyoqXG4gKiBBIG5ldyBhbGlhcyB0byBhIHBhcnRpY3VsYXIgdmVyc2lvbiBvZiBhIExhbWJkYSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEFsaWFzIGV4dGVuZHMgUXVhbGlmaWVkRnVuY3Rpb25CYXNlIGltcGxlbWVudHMgSUFsaWFzIHtcbiAgcHVibGljIHN0YXRpYyBmcm9tQWxpYXNBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogQWxpYXNBdHRyaWJ1dGVzLFxuICApOiBJQWxpYXMge1xuICAgIGNsYXNzIEltcG9ydGVkIGV4dGVuZHMgUXVhbGlmaWVkRnVuY3Rpb25CYXNlIGltcGxlbWVudHMgSUFsaWFzIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogZGF0YUF3c0xhbWJkYUFsaWFzLkRhdGFBd3NMYW1iZGFBbGlhcztcbiAgICAgIHB1YmxpYyByZWFkb25seSBhbGlhc05hbWUgPSBhdHRycy5hbGlhc05hbWU7XG4gICAgICAvKipcbiAgICAgICAqIExhbWJkYSBmdW5jdGlvbiB2ZXJzaW9uIHdoaWNoIHRoZSBhbGlhcyB1c2VzLlxuICAgICAgICovXG4gICAgICBwdWJsaWMgZ2V0IHZlcnNpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc291cmNlLmZ1bmN0aW9uVmVyc2lvbjtcbiAgICAgIH1cbiAgICAgIHB1YmxpYyBnZXQgZnVuY3Rpb25RdWFsaWZpZWRJbnZva2VBcm4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc291cmNlLmludm9rZUFybjtcbiAgICAgIH1cbiAgICAgIHB1YmxpYyBnZXQgZnVuY3Rpb25JbnZva2VBcm4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc291cmNlLmludm9rZUFybjtcbiAgICAgIH1cbiAgICAgIHB1YmxpYyByZWFkb25seSBsYW1iZGEgPSBhdHRycy5mdW5jdGlvbjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbkFybiA9IGAke2F0dHJzLmZ1bmN0aW9uLmZ1bmN0aW9uQXJufToke2F0dHJzLmFsaWFzTmFtZX1gO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGZ1bmN0aW9uTmFtZSA9IGAke2F0dHJzLmZ1bmN0aW9uLmZ1bmN0aW9uTmFtZX06JHthdHRycy5hbGlhc05hbWV9YDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbCA9IGF0dHJzLmZ1bmN0aW9uLmdyYW50UHJpbmNpcGFsO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHJvbGUgPSBhdHRycy5mdW5jdGlvbi5yb2xlO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGFyY2hpdGVjdHVyZSA9IGF0dHJzLmZ1bmN0aW9uLmFyY2hpdGVjdHVyZTtcblxuICAgICAgcHVibGljIGdldCBhbGlhc091dHB1dHMoKTogQWxpYXNPdXRwdXRzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiBhdHRycy5hbGlhc05hbWUsXG4gICAgICAgICAgaW52b2tlQXJuOiB0aGlzLnJlc291cmNlLmludm9rZUFybixcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHB1YmxpYyBnZXQgb3V0cHV0cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxpYXNPdXRwdXRzO1xuICAgICAgfVxuICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbkNyZWF0ZVBlcm1pc3Npb25zID0gdGhpcy5faXNTdGFja0FjY291bnQoKTtcbiAgICAgIHByb3RlY3RlZCByZWFkb25seSBxdWFsaWZpZXIgPSBhdHRycy5hbGlhc05hbWU7XG4gICAgICBjb25zdHJ1Y3RvcihzOiBDb25zdHJ1Y3QsIGk6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzLCBpKTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBkYXRhQXdzTGFtYmRhQWxpYXMuRGF0YUF3c0xhbWJkYUFsaWFzKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuYWxpYXNOYW1lLFxuICAgICAgICAgICAgZnVuY3Rpb25OYW1lOiBhdHRycy5mdW5jdGlvbi5mdW5jdGlvbk5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydGVkKHNjb3BlLCBpZCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGxhbWJkYUFsaWFzLkxhbWJkYUFsaWFzO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hbGlhc091dHB1dHM6IEFsaWFzT3V0cHV0cztcbiAgcHVibGljIGdldCBhbGlhc091dHB1dHMoKTogQWxpYXNPdXRwdXRzIHtcbiAgICByZXR1cm4gdGhpcy5fYWxpYXNPdXRwdXRzO1xuICB9XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fYWxpYXNPdXRwdXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhpcyBhbGlhcy5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFsaWFzTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoaXMgYWxpYXNcbiAgICpcbiAgICogVXNlZCB0byBiZSBhYmxlIHRvIHVzZSBBbGlhcyBpbiBwbGFjZSBvZiBhIHJlZ3VsYXIgTGFtYmRhLiBMYW1iZGEgYWNjZXB0c1xuICAgKiBBUk5zIGV2ZXJ5d2hlcmUgaXQgYWNjZXB0cyBmdW5jdGlvbiBuYW1lcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbk5hbWU6IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgbGFtYmRhOiBJRnVuY3Rpb247XG5cbiAgcHVibGljIHJlYWRvbmx5IGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlO1xuXG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFSTiBvZiB0aGlzIGFsaWFzXG4gICAqXG4gICAqIFVzZWQgdG8gYmUgYWJsZSB0byB1c2UgQWxpYXMgaW4gcGxhY2Ugb2YgYSByZWd1bGFyIExhbWJkYS4gTGFtYmRhIGFjY2VwdHNcbiAgICogQVJOcyBldmVyeXdoZXJlIGl0IGFjY2VwdHMgZnVuY3Rpb24gbmFtZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcblxuICBwdWJsaWMgZ2V0IGZ1bmN0aW9uUXVhbGlmaWVkSW52b2tlQXJuKCkge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmludm9rZUFybjtcbiAgfVxuICBwdWJsaWMgZ2V0IGZ1bmN0aW9uSW52b2tlQXJuKCkge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmludm9rZUFybjtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBxdWFsaWZpZXI6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuQ3JlYXRlUGVybWlzc2lvbnM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8vIC8vIFRPRE86IFJlLUFkZCBzY2FsYWJsZSBmdW5jdGlvbnNcbiAgLy8gcHJpdmF0ZSBzY2FsYWJsZUFsaWFzPzogU2NhbGFibGVGdW5jdGlvbkF0dHJpYnV0ZTtcbiAgLy8gcHJpdmF0ZSByZWFkb25seSBzY2FsaW5nUm9sZTogaWFtLklSb2xlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBbGlhc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLmxhbWJkYSA9IHByb3BzLmZ1bmN0aW9uO1xuICAgIC8vIFRPRE86IERvZXMgaXQgbWFrZSBzZW5zZSB0byBqdXN0IHByZWZpeCBhbGlhc05hbWUgd2l0aCBHcmlkVVVJRD9cbiAgICAvLyBzaG91bGQgdXNlIHRoaXMuc3RhY2sudW5pcXVlUmVzb3VyY2VOYW1lIGluc3RlYWQ/XG4gICAgdGhpcy5hbGlhc05hbWUgPSBgJHt0aGlzLmdyaWRVVUlEfS0ke3Byb3BzLmFsaWFzTmFtZX1gO1xuICAgIHRoaXMudmVyc2lvbiA9IHByb3BzLnZlcnNpb247XG4gICAgdGhpcy5hcmNoaXRlY3R1cmUgPSB0aGlzLmxhbWJkYS5hcmNoaXRlY3R1cmU7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGxhbWJkYUFsaWFzLkxhbWJkYUFsaWFzKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgbmFtZTogdGhpcy5hbGlhc05hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBmdW5jdGlvbk5hbWU6IHRoaXMubGFtYmRhLmZ1bmN0aW9uTmFtZSxcbiAgICAgIGZ1bmN0aW9uVmVyc2lvbjogcHJvcHMudmVyc2lvbixcbiAgICAgIHJvdXRpbmdDb25maWc6IHRoaXMuZGV0ZXJtaW5lUm91dGluZ0NvbmZpZyhwcm9wcyksXG4gICAgfSk7XG5cbiAgICAvLyBUT0RPOiBBZGQgYXdzX2xhbWJkYV9wcm92aXNpb25lZF9jb25jdXJyZW5jeV9jb25maWdcblxuICAgIC8vIC8vIFVzZSBhIFNlcnZpY2UgTGlua2VkIFJvbGVcbiAgICAvLyAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vdXNlcmd1aWRlL2FwcGxpY2F0aW9uLWF1dG8tc2NhbGluZy1zZXJ2aWNlLWxpbmtlZC1yb2xlcy5odG1sXG4gICAgLy8gdGhpcy5zY2FsaW5nUm9sZSA9IGlhbS5Sb2xlLmZyb21Sb2xlQXJuKFxuICAgIC8vICAgdGhpcyxcbiAgICAvLyAgIFwiU2NhbGluZ1JvbGVcIixcbiAgICAvLyAgIHRoaXMuc3RhY2suZm9ybWF0QXJuKHtcbiAgICAvLyAgICAgc2VydmljZTogXCJpYW1cIixcbiAgICAvLyAgICAgcmVnaW9uOiBcIlwiLFxuICAgIC8vICAgICByZXNvdXJjZTpcbiAgICAvLyAgICAgICBcInJvbGUvYXdzLXNlcnZpY2Utcm9sZS9sYW1iZGEuYXBwbGljYXRpb24tYXV0b3NjYWxpbmcuYW1hem9uYXdzLmNvbVwiLFxuICAgIC8vICAgICByZXNvdXJjZU5hbWU6XG4gICAgLy8gICAgICAgXCJBV1NTZXJ2aWNlUm9sZUZvckFwcGxpY2F0aW9uQXV0b1NjYWxpbmdfTGFtYmRhQ29uY3VycmVuY3lcIixcbiAgICAvLyAgIH0pLFxuICAgIC8vICk7XG5cbiAgICAvLyBpbmNsdWRlcyBxdWFsaWZpZXJcbiAgICB0aGlzLmZ1bmN0aW9uQXJuID0gdGhpcy5yZXNvdXJjZS5pbnZva2VBcm47XG5cbiAgICAvLyB0aGlzLmdldFJlc291cmNlQXJuQXR0cmlidXRlKGFsaWFzLnJlZiwge1xuICAgIC8vICAgc2VydmljZTogXCJsYW1iZGFcIixcbiAgICAvLyAgIHJlc291cmNlOiBcImZ1bmN0aW9uXCIsXG4gICAgLy8gICByZXNvdXJjZU5hbWU6IGAke3RoaXMubGFtYmRhLmZ1bmN0aW9uTmFtZX06JHt0aGlzLmFsaWFzTmFtZX1gLFxuICAgIC8vICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSxcbiAgICAvLyB9KTtcblxuICAgIHRoaXMucXVhbGlmaWVyID0gdGhpcy5hbGlhc05hbWU7XG5cbiAgICBpZiAoXG4gICAgICBwcm9wcy5vbkZhaWx1cmUgfHxcbiAgICAgIHByb3BzLm9uU3VjY2VzcyB8fFxuICAgICAgcHJvcHMubWF4RXZlbnRBZ2UgfHxcbiAgICAgIHByb3BzLnJldHJ5QXR0ZW1wdHMgIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgdGhpcy5jb25maWd1cmVBc3luY0ludm9rZSh7XG4gICAgICAgIG9uRmFpbHVyZTogcHJvcHMub25GYWlsdXJlLFxuICAgICAgICBvblN1Y2Nlc3M6IHByb3BzLm9uU3VjY2VzcyxcbiAgICAgICAgbWF4RXZlbnRBZ2U6IHByb3BzLm1heEV2ZW50QWdlLFxuICAgICAgICByZXRyeUF0dGVtcHRzOiBwcm9wcy5yZXRyeUF0dGVtcHRzLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQVJOIHBhcnNpbmcgc3BsaXRzIG9uIGA6YCwgc28gd2UgY2FuIG9ubHkgZ2V0IHRoZSBmdW5jdGlvbidzIG5hbWUgZnJvbSB0aGUgQVJOIGFzIHJlc291cmNlTmFtZS4uLlxuICAgIC8vIEFuZCB3ZSdyZSBwYXJzaW5nIGl0IG91dCAoaW5zdGVhZCBvZiB1c2luZyB0aGUgdW5kZXJseWluZyBmdW5jdGlvbiBkaXJlY3RseSkgaW4gb3JkZXIgdG8gaGF2ZSB1c2Ugb2YgaXQgaW5jdXJcbiAgICAvLyBhbiBpbXBsaWNpdCBkZXBlbmRlbmN5IG9uIHRoZSByZXNvdXJjZS5cblxuICAgIC8vYCR7dGhpcy5zdGFjay5zcGxpdEFybih0aGlzLmZ1bmN0aW9uQXJuLCBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lIX06JHt0aGlzLmFsaWFzTmFtZX1gO1xuICAgIHRoaXMuZnVuY3Rpb25OYW1lID0gdGhpcy5yZXNvdXJjZS5mdW5jdGlvbk5hbWU7XG4gICAgdGhpcy5fYWxpYXNPdXRwdXRzID0ge1xuICAgICAgaW52b2tlQXJuOiB0aGlzLnJlc291cmNlLmludm9rZUFybixcbiAgICAgIG5hbWU6IHRoaXMuYWxpYXNOYW1lLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdyYW50UHJpbmNpcGFsKCkge1xuICAgIHJldHVybiB0aGlzLmxhbWJkYS5ncmFudFByaW5jaXBhbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcm9sZSgpIHtcbiAgICByZXR1cm4gdGhpcy5sYW1iZGEucm9sZTtcbiAgfVxuXG4gIC8vIC8qKlxuICAvLyAgKiBDb25maWd1cmUgcHJvdmlzaW9uZWQgY29uY3VycmVuY3kgYXV0b3NjYWxpbmcgb24gYSBmdW5jdGlvbiBhbGlhcy4gUmV0dXJucyBhIHNjYWxhYmxlIGF0dHJpYnV0ZSB0aGF0IGNhbiBjYWxsXG4gIC8vICAqIGBzY2FsZU9uVXRpbGl6YXRpb24oKWAgYW5kIGBzY2FsZU9uU2NoZWR1bGUoKWAuXG4gIC8vICAqXG4gIC8vICAqIEBwYXJhbSBvcHRpb25zIEF1dG9zY2FsaW5nIG9wdGlvbnNcbiAgLy8gICovXG4gIC8vIHB1YmxpYyBhZGRBdXRvU2NhbGluZyhcbiAgLy8gICBvcHRpb25zOiBBdXRvU2NhbGluZ09wdGlvbnMsXG4gIC8vICk6IElTY2FsYWJsZUZ1bmN0aW9uQXR0cmlidXRlIHtcbiAgLy8gICBpZiAodGhpcy5zY2FsYWJsZUFsaWFzKSB7XG4gIC8vICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdXRvU2NhbGluZyBhbHJlYWR5IGVuYWJsZWQgZm9yIHRoaXMgYWxpYXNcIik7XG4gIC8vICAgfVxuICAvLyAgIHJldHVybiAodGhpcy5zY2FsYWJsZUFsaWFzID0gbmV3IFNjYWxhYmxlRnVuY3Rpb25BdHRyaWJ1dGUoXG4gIC8vICAgICB0aGlzLFxuICAvLyAgICAgXCJBbGlhc1NjYWxpbmdcIixcbiAgLy8gICAgIHtcbiAgLy8gICAgICAgbWluQ2FwYWNpdHk6IG9wdGlvbnMubWluQ2FwYWNpdHkgPz8gMSxcbiAgLy8gICAgICAgbWF4Q2FwYWNpdHk6IG9wdGlvbnMubWF4Q2FwYWNpdHksXG4gIC8vICAgICAgIHJlc291cmNlSWQ6IGBmdW5jdGlvbjoke3RoaXMuZnVuY3Rpb25OYW1lfWAsXG4gIC8vICAgICAgIGRpbWVuc2lvbjogXCJsYW1iZGE6ZnVuY3Rpb246UHJvdmlzaW9uZWRDb25jdXJyZW5jeVwiLFxuICAvLyAgICAgICBzZXJ2aWNlTmFtZXNwYWNlOiBhcHBzY2FsaW5nLlNlcnZpY2VOYW1lc3BhY2UuTEFNQkRBLFxuICAvLyAgICAgICByb2xlOiB0aGlzLnNjYWxpbmdSb2xlLFxuICAvLyAgICAgfSxcbiAgLy8gICApKTtcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIHJvdXRpbmdDb25maWcgcGFyYW1ldGVyIGZyb20gdGhlIGlucHV0IHByb3BzXG4gICAqL1xuICBwcml2YXRlIGRldGVybWluZVJvdXRpbmdDb25maWcoXG4gICAgcHJvcHM6IEFsaWFzUHJvcHMsXG4gICk6IGxhbWJkYUFsaWFzLkxhbWJkYUFsaWFzUm91dGluZ0NvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFwcm9wcy5hZGRpdGlvbmFsVmVyc2lvbnMgfHwgcHJvcHMuYWRkaXRpb25hbFZlcnNpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBsZXQgdG90YWwgPSAwO1xuICAgIGNvbnN0IGFkZGl0aW9uYWxWZXJzaW9uV2VpZ2h0czogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICAgIGZvciAoY29uc3Qgdncgb2YgcHJvcHMuYWRkaXRpb25hbFZlcnNpb25zKSB7XG4gICAgICBpZiAodncud2VpZ2h0IDwgMCB8fCB2dy53ZWlnaHQgPiAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQWRkaXRpb25hbCB2ZXJzaW9uIHdlaWdodCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMSwgZ290OiAke3Z3LndlaWdodH1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdG90YWwgKz0gdncud2VpZ2h0O1xuICAgICAgYWRkaXRpb25hbFZlcnNpb25XZWlnaHRzW3Z3LnZlcnNpb25dID0gdncud2VpZ2h0O1xuICAgIH1cbiAgICBpZiAodG90YWwgPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBTdW0gb2YgYWRkaXRpb25hbCB2ZXJzaW9uIHdlaWdodHMgbXVzdCBub3QgZXhjZWVkIDEsIGdvdDogJHt0b3RhbH1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWRkaXRpb25hbFZlcnNpb25XZWlnaHRzLFxuICAgIH07XG4gIH1cblxuICAvLyAvKipcbiAgLy8gICogVmFsaWRhdGUgdGhhdCB0aGUgcHJvdmlzaW9uZWRDb25jdXJyZW50RXhlY3V0aW9ucyBtYWtlcyBzZW5zZVxuICAvLyAgKlxuICAvLyAgKiBNZW1iZXIgbXVzdCBoYXZlIHZhbHVlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxXG4gIC8vICAqL1xuICAvLyBwcml2YXRlIGRldGVybWluZVByb3Zpc2lvbmVkQ29uY3VycmVuY3koXG4gIC8vICAgcHJvcHM6IEFsaWFzUHJvcHMsXG4gIC8vICk6XG4gIC8vICAgfCBsYW1iZGFBbGlhcy5MYW1iZGFBbGlhcy5Qcm92aXNpb25lZENvbmN1cnJlbmN5Q29uZmlndXJhdGlvblByb3BlcnR5XG4gIC8vICAgfCB1bmRlZmluZWQge1xuICAvLyAgIGlmICghcHJvcHMucHJvdmlzaW9uZWRDb25jdXJyZW50RXhlY3V0aW9ucykge1xuICAvLyAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgLy8gICB9XG5cbiAgLy8gICBpZiAocHJvcHMucHJvdmlzaW9uZWRDb25jdXJyZW50RXhlY3V0aW9ucyA8PSAwKSB7XG4gIC8vICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gIC8vICAgICAgIFwicHJvdmlzaW9uZWRDb25jdXJyZW50RXhlY3V0aW9ucyBtdXN0IGhhdmUgdmFsdWUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDFcIixcbiAgLy8gICAgICk7XG4gIC8vICAgfVxuXG4gIC8vICAgcmV0dXJuIHtcbiAgLy8gICAgIHByb3Zpc2lvbmVkQ29uY3VycmVudEV4ZWN1dGlvbnM6IHByb3BzLnByb3Zpc2lvbmVkQ29uY3VycmVudEV4ZWN1dGlvbnMsXG4gIC8vICAgfTtcbiAgLy8gfVxufVxuXG4vKipcbiAqIEEgdmVyc2lvbi93ZWlnaHQgcGFpciBmb3Igcm91dGluZyB0cmFmZmljIHRvIExhbWJkYSBmdW5jdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uV2VpZ2h0IHtcbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIHRvIHJvdXRlIHRyYWZmaWMgdG9cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogSG93IG11Y2ggd2VpZ2h0IHRvIGFzc2lnbiB0byB0aGlzIHZlcnNpb24gKDAuLjEpXG4gICAqL1xuICByZWFkb25seSB3ZWlnaHQ6IG51bWJlcjtcbn1cbiJdfQ==