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
@@ -414,7 +414,7 @@ class LambdaFunctionBase extends aws_construct_1.AwsConstructBase {
414
414
  }
415
415
  exports.LambdaFunctionBase = LambdaFunctionBase;
416
416
  _a = JSII_RTTI_SYMBOL_1;
417
- LambdaFunctionBase[_a] = { fqn: "terraconstructs.aws.compute.LambdaFunctionBase", version: "0.2.0" };
417
+ LambdaFunctionBase[_a] = { fqn: "terraconstructs.aws.compute.LambdaFunctionBase", version: "0.2.2" };
418
418
  class QualifiedFunctionBase extends LambdaFunctionBase {
419
419
  constructor() {
420
420
  super(...arguments);
@@ -436,5 +436,5 @@ class QualifiedFunctionBase extends LambdaFunctionBase {
436
436
  }
437
437
  exports.QualifiedFunctionBase = QualifiedFunctionBase;
438
438
  _b = JSII_RTTI_SYMBOL_1;
439
- QualifiedFunctionBase[_b] = { fqn: "terraconstructs.aws.compute.QualifiedFunctionBase", version: "0.2.0" };
439
+ QualifiedFunctionBase[_b] = { fqn: "terraconstructs.aws.compute.QualifiedFunctionBase", version: "0.2.2" };
440
440
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9mdW5jdGlvbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOEpBQThKO0FBQzlKLHlIQUF5SDtBQUN6SCxpQ0FBaUM7QUFDakMsc0RBQXVEO0FBQ3ZELGlDQUF3RDtBQUV4RCxnQ0FBbUM7QUFDbkMsb0RBQW1FO0FBQ25FLDRDQUF3QztBQUd4QywrREFHK0I7QUFDL0IsaUVBR2dDO0FBRWhDLGlEQUl3QjtBQUN4Qix5Q0FBK0M7QUFDL0MsOEJBQThCO0FBMkw5QixNQUFzQixrQkFDcEIsU0FBUSxnQ0FBZ0I7SUFEMUI7O1FBNkZFOzs7V0FHRztRQUNPLHNCQUFpQixHQUE4QixFQUFFLENBQUM7UUFFNUQ7OztXQUdHO1FBQ08saUNBQTRCLEdBQThCLEVBQUUsQ0FBQztLQW1oQnhFO0lBamhCQzs7OztPQUlHO0lBQ0ksYUFBYSxDQUFDLEVBQVUsRUFBRSxVQUFzQjtRQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMzQiwrQkFBK0I7Z0JBQy9CLDZCQUE2QjtnQkFDN0IsbUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUM3QjtvQkFDRSxrRUFBa0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLGFBQWEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUc7b0JBQ2pILDBCQUEwQixvQkFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLGFBQWEsb0JBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHO29CQUNuSCwyR0FBMkc7b0JBQzNHLDJDQUEyQztpQkFDNUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQ1osQ0FBQztZ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LDRCQUE0QixDQUFDLEVBQUUsRUFDdkYsSUFBSSxDQUNMLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxTQUF5QjtRQUN6RCxPQUFPLFNBQVMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7QUF6bkJILGdEQTBuQkM7OztBQUVELE1BQXNCLHFCQUFzQixTQUFRLGtCQUFrQjtJQUF0RTs7UUFJa0Isb0JBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0tBb0I3QztJQWxCQyxJQUFXLDBCQUEwQjtRQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxPQUFpQztRQUMzRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUQsTUFBTSxJQUFJLHdCQUFlLENBQ3ZCLGtGQUFrRixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUNsRyxJQUFJLENBQ0wsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLHVDQUFpQixDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUMvQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDckIsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3ZCLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBdkJILHNEQXdCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2Nka3RmLXBsdXMvY2RrdGYtcGx1cy9ibG9iLzU4NmFhYmFkM2FiMmZiMmEyZTkzZTA1ZWQzM2Y5NDQ3NGViZTkzOTcvcGFja2FnZXMvJTQwY2RrdGYtcGx1cy9hd3MvbGliL2F3cy1sYW1iZGEtZnVuY3Rpb24vaW5kZXgudHNcXFxuLy8gdXBkYXRlIHRvIGFsaWduIHdpdGggaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTU2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWxhbWJkYS9saWIvZnVuY3Rpb24tYmFzZS50c1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gXCJjcnlwdG9cIjtcbmltcG9ydCB7IGxhbWJkYVBlcm1pc3Npb24gfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgSVJlc29sdmFibGUsIEFubm90YXRpb25zLCBUb2tlbiB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcm5Gb3JtYXQgfSBmcm9tIFwiLi4vYXJuXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBJQXdzQ29uc3RydWN0IH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuaW1wb3J0IHsgQXJjaGl0ZWN0dXJlIH0gZnJvbSBcIi4vYXJjaGl0ZWN0dXJlXCI7XG5pbXBvcnQgeyBDb25uZWN0aW9ucyB9IGZyb20gXCIuL2Nvbm5lY3Rpb25zXCI7XG5pbXBvcnQge1xuICBFdmVudEludm9rZUNvbmZpZyxcbiAgRXZlbnRJbnZva2VDb25maWdPcHRpb25zLFxufSBmcm9tIFwiLi9ldmVudC1pbnZva2UtY29uZmlnXCI7XG5pbXBvcnQge1xuICBFdmVudFNvdXJjZU1hcHBpbmcsXG4gIEV2ZW50U291cmNlTWFwcGluZ09wdGlvbnMsXG59IGZyb20gXCIuL2V2ZW50LXNvdXJjZS1tYXBwaW5nXCI7XG5pbXBvcnQgeyBQZXJtaXNzaW9uIH0gZnJvbSBcIi4vZnVuY3Rpb24tcGVybWlzc2lvblwiO1xuaW1wb3J0IHtcbiAgRnVuY3Rpb25VcmxPcHRpb25zLFxuICBGdW5jdGlvblVybCxcbiAgRnVuY3Rpb25VcmxBdXRoVHlwZSxcbn0gZnJvbSBcIi4vZnVuY3Rpb24tdXJsXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3JzXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuXG4vLyBUT0RPOiByZS1hZGQgZWMyLklDb25uZWN0YWJsZT9cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgTGFtYmRhIGZ1bmN0aW9uIGRlZmluZWQgb3V0c2lkZSBvZiB0aGlzIHN0YWNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqXG4gICAqIEZvcm1hdDogYXJuOjxwYXJ0aXRpb24+OmxhbWJkYTo8cmVnaW9uPjo8YWNjb3VudC1pZD46ZnVuY3Rpb246PGZ1bmN0aW9uLW5hbWU+XG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIGV4ZWN1dGlvbiByb2xlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBJZiB0aGUgcm9sZSBpcyBub3Qgc3BlY2lmaWVkLCBhbnkgcm9sZS1yZWxhdGVkIG9wZXJhdGlvbnMgd2lsbCBuby1vcC5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBncm91cCBvZiB0aGlzIExhbWJkYSwgaWYgaW4gYSBWUEMuXG4gICAqXG4gICAqIFRoaXMgbmVlZHMgdG8gYmUgZ2l2ZW4gaW4gb3JkZXIgdG8gc3VwcG9ydCBhbGxvd2luZyBjb25uZWN0aW9uc1xuICAgKiB0byB0aGlzIExhbWJkYS5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA/OiBzdHJpbmcgfCBJUmVzb2x2YWJsZTsgLy8gVE9ETzogUmUtYWRkIHN1cHBvcnQgZm9yIEVDMiBzZWN1cml0eSBncm91cHNcblxuICAvKipcbiAgICogU2V0dGluZyB0aGlzIHByb3BlcnR5IGluZm9ybXMgdGhlIENESyB0aGF0IHRoZSBpbXBvcnRlZCBmdW5jdGlvbiBpcyBpbiB0aGUgc2FtZSBlbnZpcm9ubWVudCBhcyB0aGUgc3RhY2suXG4gICAqIFRoaXMgYWZmZWN0cyBjZXJ0YWluIGJlaGF2aW91cnMgc3VjaCBhcywgd2hldGhlciB0aGlzIGZ1bmN0aW9uJ3MgcGVybWlzc2lvbiBjYW4gYmUgbW9kaWZpZWQuXG4gICAqIFdoZW4gbm90IGNvbmZpZ3VyZWQsIHRoZSBDREsgYXR0ZW1wdHMgdG8gYXV0by1kZXRlcm1pbmUgdGhpcy4gRm9yIGVudmlyb25tZW50IGFnbm9zdGljIHN0YWNrcywgaS5lLiwgc3RhY2tzXG4gICAqIHdoZXJlIHRoZSBhY2NvdW50IGlzIG5vdCBzcGVjaWZpZWQgd2l0aCB0aGUgYGVudmAgcHJvcGVydHksIHRoaXMgaXMgZGV0ZXJtaW5lZCB0byBiZSBmYWxzZS5cbiAgICpcbiAgICogU2V0IHRoaXMgdG8gcHJvcGVydHkgKk9OTFkgSUYqIHRoZSBpbXBvcnRlZCBmdW5jdGlvbiBpcyBpbiB0aGUgc2FtZSBhY2NvdW50IGFzIHRoZSBzdGFja1xuICAgKiBpdCdzIGltcG9ydGVkIGluLlxuICAgKiBAZGVmYXVsdCAtIGRlcGVuZHM6IHRydWUsIGlmIHRoZSBTdGFjayBpcyBjb25maWd1cmVkIHdpdGggYW4gZXhwbGljaXQgYGVudmAgKGFjY291bnQgYW5kIHJlZ2lvbikgYW5kIHRoZSBhY2NvdW50IGlzIHRoZSBzYW1lIGFzIHRoaXMgZnVuY3Rpb24uXG4gICAqIEZvciBlbnZpcm9ubWVudC1hZ25vc3RpYyBzdGFja3MgdGhpcyB3aWxsIGRlZmF1bHQgdG8gYGZhbHNlYC5cbiAgICovXG4gIHJlYWRvbmx5IHNhbWVFbnZpcm9ubWVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldHRpbmcgdGhpcyBwcm9wZXJ0eSBpbmZvcm1zIHRoZSBUZXJyYUNvbnN0cnVjdCB0aGF0IHRoZSBpbXBvcnRlZCBmdW5jdGlvbiBBTFJFQURZIEhBUyB0aGUgbmVjZXNzYXJ5IHBlcm1pc3Npb25zXG4gICAqIGZvciB3aGF0IHlvdSBhcmUgdHJ5aW5nIHRvIGRvLiBXaGVuIG5vdCBjb25maWd1cmVkLCBFLlQsIGF0dGVtcHRzIHRvIGF1dG8tZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90XG4gICAqIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXJlIG5lY2Vzc2FyeSBvbiB0aGUgZnVuY3Rpb24gd2hlbiBncmFudCBBUElzIGFyZSB1c2VkLiBJZiBUZXJyYUNvbnN0cnVjdCB0cmllZCB0byBhZGRcbiAgICogcGVybWlzc2lvbnMgb24gYW4gaW1wb3J0ZWQgbGFtYmRhLCBpdCB3aWxsIGZhaWwuXG4gICAqXG4gICAqIFNldCB0aGlzIHByb3BlcnR5ICpPTkxZIElGKiB5b3UgYXJlIGNvbW1pdHRpbmcgdG8gbWFuYWdlIHRoZSBpbXBvcnRlZCBmdW5jdGlvbidzIHBlcm1pc3Npb25zIG91dHNpZGUgb2ZcbiAgICogdGhpcyBUZXJyYUNvbnN0cnVjdCBzdGFjay4gWW91IGFyZSBhY2tub3dsZWRnaW5nIHRoYXQgeW91ciBUZXJyYUNvbnN0cnVjdCBjb2RlIGFsb25lIHdpbGwgaGF2ZSBpbnN1ZmZpY2llbnQgcGVybWlzc2lvbnMgdG8gYWNjZXNzIHRoZVxuICAgKiBpbXBvcnRlZCBmdW5jdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNraXBQZXJtaXNzaW9ucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBhcmNoaXRlY3R1cmUgb2YgdGhpcyBMYW1iZGEgRnVuY3Rpb24gKHRoaXMgaXMgYW4gb3B0aW9uYWwgYXR0cmlidXRlIGFuZCBkZWZhdWx0cyB0byBYODZfNjQpLlxuICAgKiBAZGVmYXVsdCAtIEFyY2hpdGVjdHVyZS5YODZfNjRcbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdGVjdHVyZT86IEFyY2hpdGVjdHVyZTtcbn1cblxuLyoqXG4gKiBBIExhbWJkYSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRnVuY3Rpb24gZXh0ZW5kcyBJQXdzQ29uc3RydWN0LCBpYW0uSUdyYW50YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBmdW5jdGlvbi5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIGNvbnN0cnVjdCBub2RlIHdoZXJlIHBlcm1pc3Npb25zIGFyZSBhdHRhY2hlZC5cbiAgICovXG4gIHJlYWRvbmx5IHBlcm1pc3Npb25zTm9kZTogTm9kZTtcblxuICAvKipcbiAgICogVGhlIHN5c3RlbSBhcmNoaXRlY3R1cmVzIGNvbXBhdGlibGUgd2l0aCB0aGlzIGxhbWJkYSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOKHMpIHRvIHB1dCBpbnRvIHRoZSByZXNvdXJjZSBmaWVsZCBvZiB0aGUgZ2VuZXJhdGVkIElBTSBwb2xpY3kgZm9yIGdyYW50SW52b2tlKCkuXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgZm9yIGNkayBtb2R1bGVzIHRvIGNvbnN1bWUgb25seS4gWW91IHNob3VsZCBub3QgbmVlZCB0byB1c2UgdGhpcyBwcm9wZXJ0eS5cbiAgICogSW5zdGVhZCwgdXNlIGdyYW50SW52b2tlKCkgZGlyZWN0bHkuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUFybnNGb3JHcmFudEludm9rZTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFF1YWxpZmllZCAoYDpRVUFMSUZJRVJgIG9yIGA6VkVSU0lPTmAgc3VmZml4KSBBUk4gdG8gYmUgdXNlZCBmb3IgaW52b2tpbmcgTGFtYmRhIEZ1bmN0aW9uIGZyb20gQVBJIEdhdGV3YXkuXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvblF1YWxpZmllZEludm9rZUFybjogc3RyaW5nOyAvLyBUT0RPOiBEZXByZWNhdGU/IFNlZW1zIHVudXNlZFxuXG4gIC8qKlxuICAgKiBBUk4gdG8gYmUgdXNlZCBmb3IgaW52b2tpbmcgTGFtYmRhIEZ1bmN0aW9uIGZyb20gQVBJIEdhdGV3YXkuXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbkludm9rZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGV2ZW50IHNvdXJjZSB0aGF0IG1hcHMgdG8gdGhpcyBBV1MgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKiBAcGFyYW0gaWQgY29uc3RydWN0IElEXG4gICAqIEBwYXJhbSBvcHRpb25zIG1hcHBpbmcgb3B0aW9uc1xuICAgKi9cbiAgYWRkRXZlbnRTb3VyY2VNYXBwaW5nKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczogRXZlbnRTb3VyY2VNYXBwaW5nT3B0aW9ucyxcbiAgKTogRXZlbnRTb3VyY2VNYXBwaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGV2ZW50IHNvdXJjZSB0byB0aGlzIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgYWRkcyBhbiBTUVMgUXVldWUgYXMgYW4gZXZlbnQgc291cmNlOlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgY29tcHV0ZSB9IGZyb20gJ3RlcnJhY29uc3RydWN0cyc7XG4gICAqIG15RnVuY3Rpb24uYWRkRXZlbnRTb3VyY2UobmV3IGNvbXB1dGUuU3FzRXZlbnRTb3VyY2UobXlRdWV1ZSkpO1xuICAgKiBgYGBcbiAgICovXG4gIGFkZEV2ZW50U291cmNlKHNvdXJjZTogSUV2ZW50U291cmNlKTogdm9pZDtcblxuICAvKipcbiAgICogQWRkcyBhIHBlcm1pc3Npb24gdG8gdGhlIExhbWJkYSByZXNvdXJjZSBwb2xpY3kuXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgZm9yIHRoZSBwZXJtaXNzaW9uIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gcGVybWlzc2lvbiBUaGUgcGVybWlzc2lvbiB0byBncmFudCB0byB0aGlzIExhbWJkYSBmdW5jdGlvbi4gQHNlZSBQZXJtaXNzaW9uIGZvciBkZXRhaWxzLlxuICAgKi9cbiAgYWRkUGVybWlzc2lvbihpZDogc3RyaW5nLCBwZXJtaXNzaW9uOiBQZXJtaXNzaW9uKTogdm9pZDtcblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgSUFNIHJvbGUgYXNzdW1lZCBieSB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICBhZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogdm9pZDtcblxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIGludm9rZSB0aGlzIExhbWJkYVxuICAgKi9cbiAgZ3JhbnRJbnZva2UoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gaW52b2tlIHRoZSAkTEFURVNUIHZlcnNpb24gb3JcbiAgICogdW5xdWFsaWZpZWQgdmVyc2lvbiBvZiB0aGlzIExhbWJkYVxuICAgKi9cbiAgZ3JhbnRJbnZva2VMYXRlc3RWZXJzaW9uKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIGludm9rZSB0aGUgZ2l2ZW4gKG9yIGxhdGVzdCkgdmVyc2lvbiBvZiB0aGlzIExhbWJkYVxuICAgKi9cbiAgZ3JhbnRJbnZva2VWZXJzaW9uKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdmVyc2lvbjogc3RyaW5nKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gaW52b2tlIHRoaXMgTGFtYmRhIEZ1bmN0aW9uIFVSTFxuICAgKi9cbiAgZ3JhbnRJbnZva2VVcmwoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCBtdWx0aXBsZSBwcmluY2lwYWxzIHRoZSBhYmlsaXR5IHRvIGludm9rZSB0aGlzIExhbWJkYSB2aWEgQ29tcG9zaXRlUHJpbmNpcGFsXG4gICAqL1xuICBncmFudEludm9rZUNvbXBvc2l0ZVByaW5jaXBhbChcbiAgICBjb21wb3NpdGVQcmluY2lwYWw6IGlhbS5Db21wb3NpdGVQcmluY2lwYWwsXG4gICk6IGlhbS5HcmFudFtdO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIG9wdGlvbnMgZm9yIGFzeW5jaHJvbm91cyBpbnZvY2F0aW9uLlxuICAgKi9cbiAgY29uZmlndXJlQXN5bmNJbnZva2Uob3B0aW9uczogRXZlbnRJbnZva2VDb25maWdPcHRpb25zKTogdm9pZDtcblxuICAvKipcbiAgICogQWRkcyBhIHVybCB0byB0aGlzIGxhbWJkYSBmdW5jdGlvbi5cbiAgICovXG4gIGFkZEZ1bmN0aW9uVXJsKG9wdGlvbnM/OiBGdW5jdGlvblVybE9wdGlvbnMpOiBGdW5jdGlvblVybDtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExhbWJkYUZ1bmN0aW9uQmFzZVxuICBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2VcbiAgaW1wbGVtZW50cyBJRnVuY3Rpb25cbntcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBmdW5jdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCB0aGlzIExhbWJkYSBGdW5jdGlvbiBpcyBydW5uaW5nIGFzXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIGZvIHRoZSBmdW5jdGlvbi5cbiAgICpcbiAgICogU2hvdWxkIGluY2x1ZGUgdmVyc2lvbiAoaWYgdmVyc2lvbmluZyBpcyBlbmFibGVkIHZpYSBwdWJsaXNoID0gdHJ1ZSlcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBmdW5jdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBRdWFsaWZpZWQgKGA6UVVBTElGSUVSYCBvciBgOlZFUlNJT05gIHN1ZmZpeCkgQVJOIHRvIGJlIHVzZWQgZm9yIGludm9raW5nIExhbWJkYSBGdW5jdGlvbiBmcm9tIEFQSSBHYXRld2F5LiBTZWUgYWxzbyBpbnZva2VfYXJuLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGZ1bmN0aW9uUXVhbGlmaWVkSW52b2tlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFSTiB0byBiZSB1c2VkIGZvciBpbnZva2luZyBMYW1iZGEgRnVuY3Rpb24gZnJvbSBBUEkgR2F0ZXdheS4gU2VlIGFsc28gaW52b2tlX2Fybi5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBmdW5jdGlvbkludm9rZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMYXRlc3QgcHVibGlzaGVkIHZlcnNpb24gb2YgeW91ciBMYW1iZGEgRnVuY3Rpb24uXG4gICAqXG4gICAqIFVzZWQgYXMgcXVhbGlmaWVyIG9mIHRoZSB2ZXJzaW9uIG9yIGFsaWFzIG9mIHRoaXMgZnVuY3Rpb24uXG4gICAqIEEgcXVhbGlmaWVyIGlzIHRoZSBpZGVudGlmaWVyIHRoYXQncyBhcHBlbmRlZCB0byBhIHZlcnNpb24gb3IgYWxpYXMgQVJOLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL0FQSV9HZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb24uaHRtbCNBUElfR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uX1JlcXVlc3RQYXJhbWV0ZXJzXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcXVhbGlmaWVyIG9mIHRoZSB2ZXJzaW9uIG9yIGFsaWFzIG9mIHRoaXMgZnVuY3Rpb24uXG4gICAqIEEgcXVhbGlmaWVyIGlzIHRoZSBpZGVudGlmaWVyIHRoYXQncyBhcHBlbmRlZCB0byBhIHZlcnNpb24gb3IgYWxpYXMgQVJOLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL0FQSV9HZXRGdW5jdGlvbkNvbmZpZ3VyYXRpb24uaHRtbCNBUElfR2V0RnVuY3Rpb25Db25maWd1cmF0aW9uX1JlcXVlc3RQYXJhbWV0ZXJzXG4gICAqL1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZnVuY3Rpb24uXG4gICAqXG4gICAqIFVuZGVmaW5lZCBpZiB0aGUgZnVuY3Rpb24gd2FzIGltcG9ydGVkIHdpdGhvdXQgYSByb2xlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdHJ1Y3Qgbm9kZSB3aGVyZSBwZXJtaXNzaW9ucyBhcmUgYXR0YWNoZWQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcGVybWlzc2lvbnNOb2RlOiBOb2RlO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJjaGl0ZWN0dXJlIG9mIHRoaXMgTGFtYmRhIEZ1bmN0aW9uLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBhZGRQZXJtaXNzaW9uKCkgY2FsbCBhZGRzIGFueSBwZXJtaXNzaW9uc1xuICAgKlxuICAgKiBUcnVlIGZvciBuZXcgTGFtYmRhcywgZmFsc2UgZm9yIHZlcnNpb24gJExBVEVTVCBhbmQgaW1wb3J0ZWQgTGFtYmRhc1xuICAgKiBmcm9tIGRpZmZlcmVudCBhY2NvdW50cy5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBjYW5DcmVhdGVQZXJtaXNzaW9uczogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIEFSTihzKSB0byBwdXQgaW50byB0aGUgcmVzb3VyY2UgZmllbGQgb2YgdGhlIGdlbmVyYXRlZCBJQU0gcG9saWN5IGZvciBncmFudEludm9rZSgpXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcmVzb3VyY2VBcm5zRm9yR3JhbnRJbnZva2U6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB1c2VyIGRlY2lkZXMgdG8gc2tpcCBhZGRpbmcgcGVybWlzc2lvbnMuXG4gICAqIFRoZSBvbmx5IHVzZSBjYXNlIGlzIGZvciBjcm9zcy1hY2NvdW50LCBpbXBvcnRlZCBsYW1iZGFzXG4gICAqIHdoZXJlIHRoZSB1c2VyIGNvbW1pdHMgdG8gbW9kaWZ5aW5nIHRoZSBwZXJtaXNzc2lvbnNcbiAgICogb24gdGhlIGltcG9ydGVkIGxhbWJkYSBvdXRzaWRlIHRoaXMgVGVycmFDb25zdHJ1Y3QgU3BlYy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3NraXBQZXJtaXNzaW9ucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFjdHVhbCBjb25uZWN0aW9ucyBvYmplY3QgZm9yIHRoaXMgTGFtYmRhXG4gICAqXG4gICAqIE1heSBiZSB1bnNldCwgaW4gd2hpY2ggY2FzZSB0aGlzIExhbWJkYSBpcyBub3QgY29uZmlndXJlZCB1c2UgaW4gYSBWUEMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIF9jb25uZWN0aW9ucz86IENvbm5lY3Rpb25zO1xuXG4gIC8qKlxuICAgKiBNYXBwaW5nIG9mIGludm9jYXRpb24gcHJpbmNpcGFscyB0byBncmFudHMuIFVzZWQgdG8gZGUtZHVwZSBgZ3JhbnRJbnZva2UoKWAgY2FsbHMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIF9pbnZvY2F0aW9uR3JhbnRzOiBSZWNvcmQ8c3RyaW5nLCBpYW0uR3JhbnQ+ID0ge307XG5cbiAgLyoqXG4gICAqIE1hcHBpbmcgb2YgZnVjbnRpb24gVVJMIGludm9jYXRpb24gcHJpbmNpcGFscyB0byBncmFudHMuIFVzZWQgdG8gZGUtZHVwZSBgZ3JhbnRJbnZva2VVcmwoKWAgY2FsbHMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIF9mdW5jdGlvblVybEludm9jYXRpb25HcmFudHM6IFJlY29yZDxzdHJpbmcsIGlhbS5HcmFudD4gPSB7fTtcblxuICAvKipcbiAgICogQWRkcyBhIHBlcm1pc3Npb24gdG8gdGhlIExhbWJkYSByZXNvdXJjZSBwb2xpY3kuXG4gICAqIEBwYXJhbSBpZCBUaGUgaWQgZm9yIHRoZSBwZXJtaXNzaW9uIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gcGVybWlzc2lvbiBUaGUgcGVybWlzc2lvbiB0byBncmFudCB0byB0aGlzIExhbWJkYSBmdW5jdGlvbi4gQHNlZSBQZXJtaXNzaW9uIGZvciBkZXRhaWxzLlxuICAgKi9cbiAgcHVibGljIGFkZFBlcm1pc3Npb24oaWQ6IHN0cmluZywgcGVybWlzc2lvbjogUGVybWlzc2lvbikge1xuICAgIGlmICghdGhpcy5jYW5DcmVhdGVQZXJtaXNzaW9ucykge1xuICAgICAgaWYgKCF0aGlzLl9za2lwUGVybWlzc2lvbnMpIHtcbiAgICAgICAgLy8gVE9ETzogcmV2aXNlIHRoaXMgYW5ub3RhdGlvblxuICAgICAgICAvLyBVbmNsZWFyIExhbWJkYSBFbnZpcm9ubWVudFxuICAgICAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nKFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIGBhZGRQZXJtaXNzaW9uKCkgaGFzIG5vIGVmZmVjdCBvbiBhIExhbWJkYSBGdW5jdGlvbiB3aXRoIHJlZ2lvbj0ke3RoaXMuZW52LnJlZ2lvbn0sIGFjY291bnQ9JHt0aGlzLmVudi5hY2NvdW50fSxgLFxuICAgICAgICAgICAgYGluIGEgU3RhY2sgd2l0aCByZWdpb249JHtBd3NTdGFjay5vZkF3c0NvbnN0cnVjdCh0aGlzKS5yZWdpb259LCBhY2NvdW50PSR7QXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcykuYWNjb3VudH0uYCxcbiAgICAgICAgICAgIGBTdXBwcmVzcyB0aGlzIHdhcm5pbmcgaWYgdGhpcyBpcyBpcyBpbnRlbnRpb25hbCwgb3IgcGFzcyBzYW1lRW52aXJvbm1lbnQ9dHJ1ZSB0byBmcm9tRnVuY3Rpb25BdHRyaWJ1dGVzKClgLFxuICAgICAgICAgICAgYGlmIHlvdSB3b3VsZCBsaWtlIHRvIGFkZCB0aGUgcGVybWlzc2lvbnMuYCxcbiAgICAgICAgICBdLmpvaW4oXCIgXCIpLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW5jaXBhbCA9IHRoaXMucGFyc2VQZXJtaXNzaW9uUHJpbmNpcGFsKHBlcm1pc3Npb24ucHJpbmNpcGFsKTtcblxuICAgIGNvbnN0IHsgc291cmNlQXJuLCBzb3VyY2VBY2NvdW50LCBwcmluY2lwYWxPcmdJRCB9ID1cbiAgICAgIHRoaXMudmFsaWRhdGVDb25kaXRpb25Db21iaW5hdGlvbnMocGVybWlzc2lvbi5wcmluY2lwYWwpID8/IHt9O1xuXG4gICAgY29uc3QgYWN0aW9uID0gcGVybWlzc2lvbi5hY3Rpb24gPz8gXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25cIjtcbiAgICBjb25zdCBzY29wZSA9IHBlcm1pc3Npb24uc2NvcGUgPz8gdGhpcztcblxuICAgIC8qKlxuICAgICAqIERvIGludm9rZUZ1bmN0aW9uIGxhbWJkYXMgd2l0aCB1bnF1YWxpZmllZCBmdW5jdGlvbiByZWZlcmVuY2VzIGFwcGx5IHRvIFRGP1xuICAgICAqIEEgd2FybmluZyBzaG91bGQgYmUgYWRkZWQgdG8gZnVuY3Rpb25zIHVuZGVyIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAgICAgKiAtIHBlcm1pc3Npb25zIHRoYXQgaW5jbHVkZSBgbGFtYmRhOkludm9rZUZ1bmN0aW9uYCBhcmUgYWRkZWQgdG8gdGhlIHVucXVhbGlmaWVkIGZ1bmN0aW9uLlxuICAgICAqIC0gZnVuY3Rpb24uY3VycmVudFZlcnNpb24gaXMgaW52b2tlZCBiZWZvcmUgb3IgYWZ0ZXIgdGhlIHBlcm1pc3Npb24gaXMgY3JlYXRlZC5cbiAgICAgKlxuICAgICAqIFRoaXMgYXBwbGllcyBvbmx5IHRvIHBlcm1pc3Npb25zIG9uIExhbWJkYSBmdW5jdGlvbnMsIG5vdCB2ZXJzaW9ucyBvciBhbGlhc2VzLlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgb3ZlcnJpZGRlbiBhcyBhIG5vT3AgZm9yIFF1YWxpZmllZEZ1bmN0aW9uQmFzZS5cbiAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNjAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtbGFtYmRhL2xpYi9mdW5jdGlvbi1iYXNlLnRzI0wzMzJcbiAgICAgKi9cbiAgICAvLyBbXG4gICAgLy8gICBcIkFXUyBMYW1iZGEgaGFzIGNoYW5nZWQgdGhlaXIgYXV0aG9yaXphdGlvbiBzdHJhdGVneSwgd2hpY2ggbWF5IGNhdXNlIGNsaWVudCBpbnZvY2F0aW9ucyB1c2luZyB0aGUgJ1F1YWxpZmllcicgcGFyYW1ldGVyIG9mIHRoZSBsYW1iZGEgZnVuY3Rpb24gdG8gZmFpbCB3aXRoIEFjY2VzcyBEZW5pZWQgZXJyb3JzLlwiLFxuICAgIC8vICAgXCJJZiB5b3UgYXJlIHVzaW5nIGEgbGFtYmRhIFZlcnNpb24gb3IgQWxpYXMsIG1ha2Ugc3VyZSB0byBjYWxsICdncmFudEludm9rZScgb3IgJ2FkZFBlcm1pc3Npb24nIG9uIHRoZSBWZXJzaW9uIG9yIEFsaWFzLCBub3QgdGhlIHVuZGVybHlpbmcgRnVuY3Rpb25cIixcbiAgICAvLyAgICdTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTkyNzMnLFxuICAgIC8vIF0uam9pbignXFxuJykpO1xuXG4gICAgbmV3IGxhbWJkYVBlcm1pc3Npb24uTGFtYmRhUGVybWlzc2lvbihzY29wZSwgaWQsIHtcbiAgICAgIGFjdGlvbixcbiAgICAgIHByaW5jaXBhbCxcbiAgICAgIC8vIHF1YWxpZmllcjogcGVybWlzc2lvbi5xdWFsaWZpZXIsXG4gICAgICBmdW5jdGlvbk5hbWU6IHRoaXMuZnVuY3Rpb25Bcm4sXG4gICAgICBldmVudFNvdXJjZVRva2VuOiBwZXJtaXNzaW9uLmV2ZW50U291cmNlVG9rZW4sXG4gICAgICBzb3VyY2VBY2NvdW50OiBwZXJtaXNzaW9uLnNvdXJjZUFjY291bnQgPz8gc291cmNlQWNjb3VudCxcbiAgICAgIHNvdXJjZUFybjogcGVybWlzc2lvbi5zb3VyY2VBcm4gPz8gc291cmNlQXJuLFxuICAgICAgcHJpbmNpcGFsT3JnSWQ6IHBlcm1pc3Npb24ub3JnYW5pemF0aW9uSWQgPz8gcHJpbmNpcGFsT3JnSUQsXG4gICAgICBmdW5jdGlvblVybEF1dGhUeXBlOiBwZXJtaXNzaW9uLmZ1bmN0aW9uVXJsQXV0aFR5cGUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgSUFNIHJvbGUgYXNzdW1lZCBieSB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkVG9Sb2xlUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCkge1xuICAgIGlmICghdGhpcy5yb2xlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KHN0YXRlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBDb25uZWN0aW9ucyBvYmplY3RcbiAgICpcbiAgICogV2lsbCBmYWlsIGlmIG5vdCBhIFZQQy1lbmFibGVkIExhbWJkYSBGdW5jdGlvblxuICAgKi9cbiAgcHVibGljIGdldCBjb25uZWN0aW9ucygpOiBDb25uZWN0aW9ucyB7XG4gICAgaWYgKCF0aGlzLl9jb25uZWN0aW9ucykge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgJ09ubHkgVlBDLWFzc29jaWF0ZWQgTGFtYmRhIEZ1bmN0aW9ucyBoYXZlIHNlY3VyaXR5IGdyb3VwcyB0byBtYW5hZ2UuIFN1cHBseSB0aGUgXCJ2cGNcIiBwYXJhbWV0ZXIgd2hlbiBjcmVhdGluZyB0aGUgTGFtYmRhLCBvciBcInNlY3VyaXR5R3JvdXBJZFwiIHdoZW4gaW1wb3J0aW5nIGl0LicsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhpcyBMYW1iZGEgZnVuY3Rpb24gd2FzIGJvdW5kIHRvIGEgVlBDXG4gICAqXG4gICAqIElmIHRoaXMgaXMgaXMgYGZhbHNlYCwgdHJ5aW5nIHRvIGFjY2VzcyB0aGUgYGNvbm5lY3Rpb25zYCBvYmplY3Qgd2lsbCBmYWlsLlxuICAgKi9cbiAgcHVibGljIGdldCBpc0JvdW5kVG9WcGMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fY29ubmVjdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgYWRkRXZlbnRTb3VyY2VNYXBwaW5nKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczogRXZlbnRTb3VyY2VNYXBwaW5nT3B0aW9ucyxcbiAgKTogRXZlbnRTb3VyY2VNYXBwaW5nIHtcbiAgICByZXR1cm4gbmV3IEV2ZW50U291cmNlTWFwcGluZyh0aGlzLCBpZCwge1xuICAgICAgdGFyZ2V0OiB0aGlzLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gaW52b2tlIHRoaXMgTGFtYmRhXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRJbnZva2UoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IGhhc2ggPSBjcnlwdG9cbiAgICAgIC5jcmVhdGVIYXNoKFwic2hhMjU2XCIpXG4gICAgICAudXBkYXRlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgcHJpbmNpcGFsOiBncmFudGVlLmdyYW50UHJpbmNpcGFsLnRvU3RyaW5nKCksXG4gICAgICAgICAgY29uZGl0aW9uczogZ3JhbnRlZS5ncmFudFByaW5jaXBhbC5wb2xpY3lGcmFnbWVudC5jb25kaXRpb25zLFxuICAgICAgICB9KSxcbiAgICAgICAgXCJ1dGY4XCIsXG4gICAgICApXG4gICAgICAuZGlnZXN0KFwiYmFzZTY0XCIpO1xuICAgIGNvbnN0IGlkZW50aWZpZXIgPSBgSW52b2tlJHtoYXNofWA7XG5cbiAgICAvLyBNZW1vaXplIHRoZSByZXN1bHQgc28gc3Vic2VxdWVudCBncmFudEludm9rZSgpIGNhbGxzIGFyZSBpZGVtcG90ZW50XG4gICAgbGV0IGdyYW50ID0gdGhpcy5faW52b2NhdGlvbkdyYW50c1tpZGVudGlmaWVyXTtcbiAgICBpZiAoIWdyYW50KSB7XG4gICAgICBncmFudCA9IHRoaXMuZ3JhbnQoXG4gICAgICAgIGdyYW50ZWUsXG4gICAgICAgIGlkZW50aWZpZXIsXG4gICAgICAgIFwibGFtYmRhOkludm9rZUZ1bmN0aW9uXCIsXG4gICAgICAgIHRoaXMucmVzb3VyY2VBcm5zRm9yR3JhbnRJbnZva2UsXG4gICAgICApO1xuICAgICAgdGhpcy5faW52b2NhdGlvbkdyYW50c1tpZGVudGlmaWVyXSA9IGdyYW50O1xuICAgIH1cbiAgICByZXR1cm4gZ3JhbnQ7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIGludm9rZSB0aGUgJExBVEVTVCB2ZXJzaW9uIG9yXG4gICAqIHVucXVhbGlmaWVkIHZlcnNpb24gb2YgdGhpcyBMYW1iZGFcbiAgICovXG4gIHB1YmxpYyBncmFudEludm9rZUxhdGVzdFZlcnNpb24oZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmdyYW50SW52b2tlVmVyc2lvbihncmFudGVlLCB0aGlzLnZlcnNpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBpbnZva2UgdGhlIGdpdmVuIHZlcnNpb24gb2YgdGhpcyBMYW1iZGFcbiAgICovXG4gIHB1YmxpYyBncmFudEludm9rZVZlcnNpb24oXG4gICAgZ3JhbnRlZTogaWFtLklHcmFudGFibGUsXG4gICAgdmVyc2lvbjogc3RyaW5nLFxuICApOiBpYW0uR3JhbnQge1xuICAgIGxldCBncmFudDogaWFtLkdyYW50O1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodmVyc2lvbikpIHtcbiAgICAgIC8vIElkZW50aWZpZXIgaXMgc2V0IHRvIFwiSW52b2tlTGF0ZXN0XCI/P1xuICAgICAgcmV0dXJuIHRoaXMuZ3JhbnRJbnZva2UoZ3JhbnRlZSk7XG4gICAgfVxuICAgIC8vIGVsc2UsIHVzZSB2ZXJzaW9uIHN0cmluZyBpbiBoYXNoP1xuICAgIGNvbnN0IGhhc2ggPSBjcnlwdG9cbiAgICAgIC5jcmVhdGVIYXNoKFwic2hhMjU2XCIpXG4gICAgICAudXBkYXRlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgcHJpbmNpcGFsOiBncmFudGVlLmdyYW50UHJpbmNpcGFsLnRvU3RyaW5nKCksXG4gICAgICAgICAgY29uZGl0aW9uczogZ3JhbnRlZS5ncmFudFByaW5jaXBhbC5wb2xpY3lGcmFnbWVudC5jb25kaXRpb25zLFxuICAgICAgICAgIHZlcnNpb246IHZlcnNpb24sXG4gICAgICAgIH0pLFxuICAgICAgICBcInV0ZjhcIixcbiAgICAgIClcbiAgICAgIC5kaWdlc3QoXCJiYXNlNjRcIik7XG4gICAgY29uc3QgaWRlbnRpZmllciA9IGBJbnZva2Uke2hhc2h9YDtcblxuICAgIC8vIE1lbW9pemUgdGhlIHJlc3VsdCBzbyBzdWJzZXF1ZW50IGdyYW50SW52b2tlKCkgY2FsbHMgYXJlIGlkZW1wb3RlbnRcbiAgICBncmFudCA9IHRoaXMuX2ludm9jYXRpb25HcmFudHNbaWRlbnRpZmllcl07XG4gICAgaWYgKCFncmFudCkge1xuICAgICAgY29uc3QgcmVzb3VjZUFybnMgPSBbYCR7dGhpcy5mdW5jdGlvbkFybn06JHt2ZXJzaW9ufWBdO1xuICAgICAgaWYgKHZlcnNpb24gPT0gdGhpcy52ZXJzaW9uKSB7XG4gICAgICAgIHJlc291Y2VBcm5zLnB1c2godGhpcy5mdW5jdGlvbkFybik7XG4gICAgICB9XG4gICAgICBncmFudCA9IHRoaXMuZ3JhbnQoXG4gICAgICAgIGdyYW50ZWUsXG4gICAgICAgIGlkZW50aWZpZXIsXG4gICAgICAgIFwibGFtYmRhOkludm9rZUZ1bmN0aW9uXCIsXG4gICAgICAgIHJlc291Y2VBcm5zLFxuICAgICAgKTtcbiAgICAgIHRoaXMuX2ludm9jYXRpb25HcmFudHNbaWRlbnRpZmllcl0gPSBncmFudDtcbiAgICB9XG4gICAgcmV0dXJuIGdyYW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBpbnZva2UgdGhpcyBMYW1iZGEgRnVuY3Rpb24gVVJMXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRJbnZva2VVcmwoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IGlkZW50aWZpZXIgPSBgSW52b2tlRnVuY3Rpb25Vcmwke2dyYW50ZWUuZ3JhbnRQcmluY2lwYWx9YDsgLy8gY2FsbHMgdGhlIC50b1N0cmluZygpIG9mIHRoZSBwcmluY2lwYWxcblxuICAgIC8vIE1lbW9pemUgdGhlIHJlc3VsdCBzbyBzdWJzZXF1ZW50IGdyYW50SW52b2tlKCkgY2FsbHMgYXJlIGlkZW1wb3RlbnRcbiAgICBsZXQgZ3JhbnQgPSB0aGlzLl9mdW5jdGlvblVybEludm9jYXRpb25HcmFudHNbaWRlbnRpZmllcl07XG4gICAgaWYgKCFncmFudCkge1xuICAgICAgZ3JhbnQgPSB0aGlzLmdyYW50KFxuICAgICAgICBncmFudGVlLFxuICAgICAgICBpZGVudGlmaWVyLFxuICAgICAgICBcImxhbWJkYTpJbnZva2VGdW5jdGlvblVybFwiLFxuICAgICAgICBbdGhpcy5mdW5jdGlvbkFybl0sXG4gICAgICAgIHtcbiAgICAgICAgICBmdW5jdGlvblVybEF1dGhUeXBlOiBGdW5jdGlvblVybEF1dGhUeXBlLkFXU19JQU0sXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5fZnVuY3Rpb25VcmxJbnZvY2F0aW9uR3JhbnRzW2lkZW50aWZpZXJdID0gZ3JhbnQ7XG4gICAgfVxuICAgIHJldHVybiBncmFudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBtdWx0aXBsZSBwcmluY2lwYWxzIHRoZSBhYmlsaXR5IHRvIGludm9rZSB0aGlzIExhbWJkYSB2aWEgQ29tcG9zaXRlUHJpbmNpcGFsXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRJbnZva2VDb21wb3NpdGVQcmluY2lwYWwoXG4gICAgY29tcG9zaXRlUHJpbmNpcGFsOiBpYW0uQ29tcG9zaXRlUHJpbmNpcGFsLFxuICApOiBpYW0uR3JhbnRbXSB7XG4gICAgcmV0dXJuIGNvbXBvc2l0ZVByaW5jaXBhbC5wcmluY2lwYWxzLm1hcCgocHJpbmNpcGFsKSA9PlxuICAgICAgdGhpcy5ncmFudEludm9rZShwcmluY2lwYWwpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkRXZlbnRTb3VyY2Uoc291cmNlOiBJRXZlbnRTb3VyY2UpIHtcbiAgICBzb3VyY2UuYmluZCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmVBc3luY0ludm9rZShvcHRpb25zOiBFdmVudEludm9rZUNvbmZpZ09wdGlvbnMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ub2RlLnRyeUZpbmRDaGlsZChcIkV2ZW50SW52b2tlQ29uZmlnXCIpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGBBbiBFdmVudEludm9rZUNvbmZpZyBoYXMgYWxyZWFkeSBiZWVuIGNvbmZpZ3VyZWQgZm9yIHRoZSBmdW5jdGlvbiBhdCAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIG5ldyBFdmVudEludm9rZUNvbmZpZyh0aGlzLCBcIkV2ZW50SW52b2tlQ29uZmlnXCIsIHtcbiAgICAgIGZ1bmN0aW9uOiB0aGlzLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIFVSTCBpcyBhIGRlZGljYXRlZCBIVFRQKFMpIGVuZHBvaW50IGZvciBhIExhbWJkYSBmdW5jdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZGRGdW5jdGlvblVybChvcHRpb25zPzogRnVuY3Rpb25VcmxPcHRpb25zKTogRnVuY3Rpb25Vcmwge1xuICAgIGlmICh0aGlzLm5vZGUudHJ5RmluZENoaWxkKFwiRnVuY3Rpb25VcmxcIikgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQSBGdW5jdGlvblVybCBoYXMgYWxyZWFkeSBiZWVuIGNvbmZpZ3VyZWQgZm9yIHRoZSBmdW5jdGlvbiBhdCAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEZ1bmN0aW9uVXJsKHRoaXMsIFwiRnVuY3Rpb25VcmxcIiwge1xuICAgICAgZnVuY3Rpb246IHRoaXMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvbnN0cnVjdCB0cmVlIG5vZGUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgbGFtYmRhIGZ1bmN0aW9uLlxuICAgKiBGb3IgdXNlIGludGVybmFsbHkgZm9yIGNvbnN0cnVjdHMsIHdoZW4gdGhlIHRyZWUgaXMgc2V0IHVwIGluIG5vbi1zdGFuZGFyZCB3YXlzLiBFeDogU2luZ2xldG9uRnVuY3Rpb24uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIF9mdW5jdGlvbk5vZGUoKTogTm9kZSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiB0aGUgZnVuY3Rpb24gYXJuLCBjaGVjayBpZiB0aGUgYWNjb3VudCBpZCBtYXRjaGVzIHRoaXMgYWNjb3VudFxuICAgKlxuICAgKiBGdW5jdGlvbiBBUk5zIGxvb2sgbGlrZSB0aGlzOlxuICAgKlxuICAgKiAgIGFybjphd3M6bGFtYmRhOnJlZ2lvbjphY2NvdW50LWlkOmZ1bmN0aW9uOmZ1bmN0aW9uLW5hbWVcbiAgICpcbiAgICogLi53aGljaCBtZWFucyB0aGF0IGluIG9yZGVyIHRvIGV4dHJhY3QgdGhlIGBhY2NvdW50LWlkYCBjb21wb25lbnQgZnJvbSB0aGUgQVJOLCB3ZSBjYW5cbiAgICogc3BsaXQgdGhlIEFSTiB1c2luZyBcIjpcIiBhbmQgc2VsZWN0IHRoZSBjb21wb25lbnQgaW4gaW5kZXggNC5cbiAgICpcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBhY2NvdW50IGlkIG9mIGZ1bmN0aW9uIG1hdGNoZXMgdGhlIGFjY291bnQgc3BlY2lmaWVkIG9uIHRoZSBzdGFjaywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfaXNTdGFja0FjY291bnQoKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMuc3RhY2suYWNjb3VudCkgfHwgLy8gQlVHPyB0aGlzIGlzIGFsd2F5cyBmYWxzZSBpbiBUZXJyYUNvbnN0cnVjdHNcbiAgICAgIFRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLmZ1bmN0aW9uQXJuKVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zdGFjay5zcGxpdEFybih0aGlzLmZ1bmN0aW9uQXJuLCBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSlcbiAgICAgICAgLmFjY291bnQgPT09IHRoaXMuc3RhY2suYWNjb3VudFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdyYW50KFxuICAgIGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLFxuICAgIGlkZW50aWZpZXI6IHN0cmluZyxcbiAgICBhY3Rpb246IHN0cmluZyxcbiAgICByZXNvdXJjZUFybnM6IHN0cmluZ1tdLFxuICAgIHBlcm1pc3Npb25PdmVycmlkZXM/OiBQYXJ0aWFsPFBlcm1pc3Npb24+LFxuICApOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IGdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsT3JSZXNvdXJjZSh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogW2FjdGlvbl0sXG4gICAgICByZXNvdXJjZUFybnMsXG5cbiAgICAgIC8vIEZha2UgcmVzb3VyY2UtbGlrZSBvYmplY3Qgb24gd2hpY2ggdG8gY2FsbCBhZGRUb1Jlc291cmNlUG9saWN5KCksIHdoaWNoIGFjdHVhbGx5XG4gICAgICAvLyBjYWxscyBhZGRQZXJtaXNzaW9uKClcbiAgICAgIHJlc291cmNlOiB7XG4gICAgICAgIGFkZFRvUmVzb3VyY2VQb2xpY3k6IChfc3RhdGVtZW50KSA9PiB7XG4gICAgICAgICAgLy8gQ291bGRuJ3QgYWRkIHBlcm1pc3Npb25zIHRvIHRoZSBwcmluY2lwYWwsIHNvIGFkZCB0aGVtIGxvY2FsbHkuXG4gICAgICAgICAgdGhpcy5hZGRQZXJtaXNzaW9uKGlkZW50aWZpZXIsIHtcbiAgICAgICAgICAgIHByaW5jaXBhbDogZ3JhbnRlZS5ncmFudFByaW5jaXBhbCEsXG4gICAgICAgICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgICAgICAgIC4uLnBlcm1pc3Npb25PdmVycmlkZXMsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBwZXJtaXNzaW9uTm9kZSA9IHRoaXMuX2Z1bmN0aW9uTm9kZSgpLnRyeUZpbmRDaGlsZChpZGVudGlmaWVyKTtcbiAgICAgICAgICBpZiAoIXBlcm1pc3Npb25Ob2RlICYmICF0aGlzLl9za2lwUGVybWlzc2lvbnMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICAgIFwiQ2Fubm90IG1vZGlmeSBwZXJtaXNzaW9uIHRvIGxhbWJkYSBmdW5jdGlvbi4gRnVuY3Rpb24gaXMgZWl0aGVyIGltcG9ydGVkIG9yICRMQVRFU1QgdmVyc2lvbi5cXG5cIiArXG4gICAgICAgICAgICAgICAgXCJJZiB0aGUgZnVuY3Rpb24gaXMgaW1wb3J0ZWQgZnJvbSB0aGUgc2FtZSBhY2NvdW50IHVzZSBgZnJvbUZ1bmN0aW9uQXR0cmlidXRlcygpYCBBUEkgd2l0aCB0aGUgYHNhbWVFbnZpcm9ubWVudGAgZmxhZy5cXG5cIiArXG4gICAgICAgICAgICAgICAgXCJJZiB0aGUgZnVuY3Rpb24gaXMgaW1wb3J0ZWQgZnJvbSBhIGRpZmZlcmVudCBhY2NvdW50IGFuZCBhbHJlYWR5IGhhcyB0aGUgY29ycmVjdCBwZXJtaXNzaW9ucyB1c2UgYGZyb21GdW5jdGlvbkF0dHJpYnV0ZXMoKWAgQVBJIHdpdGggdGhlIGBza2lwUGVybWlzc2lvbnNgIGZsYWcuXCIsXG4gICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogdHJ1ZSwgcG9saWN5RGVwZW5kYWJsZTogcGVybWlzc2lvbk5vZGUgfTtcbiAgICAgICAgfSxcbiAgICAgICAgbm9kZTogdGhpcy5ub2RlLFxuICAgICAgICBzdGFjazogdGhpcy5zdGFjayxcbiAgICAgICAgZW52OiB0aGlzLmVudixcbiAgICAgICAgZW52aXJvbm1lbnROYW1lOiB0aGlzLmVudmlyb25tZW50TmFtZSxcbiAgICAgICAgZ3JpZFVVSUQ6IHRoaXMuZ3JpZFVVSUQsXG4gICAgICAgIG91dHB1dHM6IHt9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBncmFudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2xhdGUgSVByaW5jaXBhbCB0byBzb21ldGhpbmcgd2UgY2FuIHBhc3MgdG8gYXdzX2xhbWJkYV9wZXJtaXNzaW9uXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2FwaS9BUElfQWRkUGVybWlzc2lvbi5odG1sI2xhbWJkYS1BZGRQZXJtaXNzaW9uLXJlcXVlc3QtUHJpbmNpcGFsXG4gICAqIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9sYW1iZGFfcGVybWlzc2lvbiNwcmluY2lwYWxcbiAgICpcbiAgICogRG8gc29tZSBuYXN0eSB0aGluZ3MgYmVjYXVzZSBgUGVybWlzc2lvbmAgc3VwcG9ydHMgYSBzdWJzZXQgb2Ygd2hhdCB0aGVcbiAgICogZnVsbCBJQU0gcHJpbmNpcGFsIGxhbmd1YWdlIHN1cHBvcnRzLCBhbmQgd2UgbWF5IG5vdCBiZSBhYmxlIHRvIHBhcnNlIHN0cmluZ3NcbiAgICogb3V0cmlnaHQgYmVjYXVzZSB0aGV5IG1heSBiZSB0b2tlbnMuXG4gICAqXG4gICAqIFRyeSB0byByZWNvZ25pemUgc29tZSBzcGVjaWZpYyBQcmluY2lwYWwgY2xhc3NlcyBmaXJzdCwgdGhlbiB0cnkgYSBnZW5lcmljXG4gICAqIGZhbGxiYWNrLlxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZVBlcm1pc3Npb25QcmluY2lwYWwoXG4gICAgcHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbCB8IHsgcmVhZG9ubHkgd3JhcHBlZDogaWFtLklQcmluY2lwYWwgfSxcbiAgKSB7XG4gICAgLy8gVHJ5IHNvbWUgc3BlY2lmaWMgY29tbW9uIGNsYXNzZXMgZmlyc3QuXG4gICAgLy8gdXNlIGR1Y2stdHlwaW5nLCBub3QgaW5zdGFuY2Ugb2ZcbiAgICBpZiAoXCJ3cmFwcGVkXCIgaW4gcHJpbmNpcGFsKSB7XG4gICAgICBwcmluY2lwYWwgPSBwcmluY2lwYWwud3JhcHBlZDtcbiAgICB9XG5cbiAgICBpZiAoXCJhY2NvdW50SWRcIiBpbiBwcmluY2lwYWwpIHtcbiAgICAgIHJldHVybiAocHJpbmNpcGFsIGFzIGlhbS5BY2NvdW50UHJpbmNpcGFsKS5hY2NvdW50SWQ7XG4gICAgfVxuXG4gICAgaWYgKFwic2VydmljZVwiIGluIHByaW5jaXBhbCkge1xuICAgICAgcmV0dXJuIChwcmluY2lwYWwgYXMgaWFtLlNlcnZpY2VQcmluY2lwYWwpLnNlcnZpY2U7XG4gICAgfVxuXG4gICAgaWYgKFwiYXJuXCIgaW4gcHJpbmNpcGFsKSB7XG4gICAgICByZXR1cm4gKHByaW5jaXBhbCBhcyBpYW0uQXJuUHJpbmNpcGFsKS5hcm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3RyaW5nRXF1YWxzID0gbWF0Y2hTaW5nbGVDb25kaXRpb24oXG4gICAgICBcIlN0cmluZ0VxdWFsc1wiLFxuICAgICAgcHJpbmNpcGFsLnBvbGljeUZyYWdtZW50LmNvbmRpdGlvbnMsXG4gICAgKTtcbiAgICBpZiAoXG4gICAgICBzdHJpbmdFcXVhbHMgJiZcbiAgICAgIHN0cmluZ0VxdWFscy5sZW5ndGggPT09IDEgJiZcbiAgICAgIHN0cmluZ0VxdWFsc1swXS52YXJpYWJsZSA9PT0gXCJhd3M6UHJpbmNpcGFsT3JnSURcIlxuICAgICkge1xuICAgICAgLy8gd2Ugd2lsbCBtb3ZlIHRoZSBvcmdhbml6YXRpb24gaWQgdG8gdGhlIGBwcmluY2lwYWxPcmdJZGAgcHJvcGVydHkgb2YgYFBlcm1pc3Npb25zYC5cbiAgICAgIHJldHVybiBcIipcIjtcbiAgICB9XG5cbiAgICAvLyBUcnkgYSBiZXN0LWVmZm9ydCBhcHByb2FjaCB0byBzdXBwb3J0IHNpbXBsZSBwcmluY2lwYWxzIHRoYXQgYXJlIG5vdCBhbnkgb2YgdGhlIHByZWRlZmluZWRcbiAgICAvLyBjbGFzc2VzLCBidXQgYXJlIHNpbXBsZSBlbm91Z2ggdGhhdCB0aGV5IHdpbGwgZml0IGludG8gdGhlIExhbWJkYSBQZXJtaXNzaW9uIG1vZGVsLlxuICAgIC8vIE1haW4gdGFyZ2V0IGhlcmU6IGltcG9ydGVkIFJvbGVzLCBVc2VycywgR3JvdXBzLlxuICAgIC8vXG4gICAgLy8gVGhlIHByaW5jaXBhbCBjYW5ub3QgaGF2ZSBjb25kaXRpb25zIGFuZCBtdXN0IGhhdmUgYSBzaW5nbGUgeyBBV1M6IFthcm5dIH0gZW50cnkuXG4gICAgY29uc3QgcHJpbmNpcGFscyA9IHByaW5jaXBhbC5wb2xpY3lGcmFnbWVudC5wcmluY2lwYWxzLmZpbHRlcihcbiAgICAgIChwKSA9PiBwLnR5cGUgPT09IFwiQVdTXCIsXG4gICAgKTtcbiAgICBpZiAoXG4gICAgICBwcmluY2lwYWwucG9saWN5RnJhZ21lbnQuY29uZGl0aW9ucy5sZW5ndGggPT09IDAgJiZcbiAgICAgIHByaW5jaXBhbHMubGVuZ3RoID09PSAxXG4gICAgKSB7XG4gICAgICBpZiAocHJpbmNpcGFsc1swXS5pZGVudGlmaWVycy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHByaW5jaXBhbHNbMF0uaWRlbnRpZmllcnNbMF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgIGBJbnZhbGlkIHByaW5jaXBhbCB0eXBlIGZvciBMYW1iZGEgcGVybWlzc2lvbiBzdGF0ZW1lbnQ6ICR7cHJpbmNpcGFsLmNvbnN0cnVjdG9yLm5hbWV9LiBgICtcbiAgICAgICAgXCJTdXBwb3J0ZWQ6IEFjY291bnRQcmluY2lwYWwsIEFyblByaW5jaXBhbCwgU2VydmljZVByaW5jaXBhbCwgT3JnYW5pemF0aW9uUHJpbmNpcGFsXCIsXG4gICAgICB0aGlzLFxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjb25kaXRpb25zIGZvciBhIGNlcnRhaW4gdGVzdCBpZiBpdCBleGlzdHMgYW5kIGlmIHRoZXJlIGFyZSBubyBvdGhlciBjb25kaXRpb25zLiBPdGhlcndpc2UsXG4gICAgICogcmV0dXJucyB1bmRlZmluZWQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gbWF0Y2hTaW5nbGVDb25kaXRpb24oXG4gICAgICB0ZXN0OiBzdHJpbmcsXG4gICAgICBvYmo6IGlhbS5Db25kaXRpb25zLFxuICAgICk6IGlhbS5Db25kaXRpb25zIHwgdW5kZWZpbmVkIHtcbiAgICAgIGlmIChvYmoubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYmouZmlsdGVyKChjKSA9PiBjLnRlc3QgPT09IHRlc3QpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVDb25kaXRpb25Db21iaW5hdGlvbnMocHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbCk6XG4gICAgfCB7XG4gICAgICAgIHNvdXJjZUFybjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICBzb3VyY2VBY2NvdW50OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIHByaW5jaXBhbE9yZ0lEOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSB0aGlzLnZhbGlkYXRlQ29uZGl0aW9ucyhwcmluY2lwYWwpO1xuXG4gICAgaWYgKCFjb25kaXRpb25zKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIFRPRE86IHdoYXQgaWYgbW9yZSB0aGFuIDEgaWRlbnRpZmllcj8gU2hvdWxkIGFueSBvZiB0aGVzZSB0aHJvdz9cbiAgICBjb25zdCBzb3VyY0FybkNvbmRpdGlvbnMgPSBjb25kaXRpb25zLmZpbHRlcihcbiAgICAgIChjKSA9PiBjLnRlc3QgPT09IFwiQXJuTGlrZVwiICYmIGMudmFyaWFibGUgPT09IFwiYXdzOlNvdXJjZUFyblwiLFxuICAgICk7XG4gICAgY29uc3Qgc291cmNlQXJuID1cbiAgICAgIHNvdXJjQXJuQ29uZGl0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgID8gc291cmNBcm5Db25kaXRpb25zWzBdLnZhbHVlc1swXVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAvLyByZXF1aXJlU3RyaW5nKFxuICAgIC8vICAgcmVxdWlyZU9iamVjdChjb25kaXRpb25zLkFybkxpa2UpPy5bXCJhd3M6U291cmNlQXJuXCJdLFxuICAgIC8vICk7XG4gICAgY29uc3Qgc291cmNlQWNjb3VudENvbmRpdGlvbnMgPSBjb25kaXRpb25zLmZpbHRlcihcbiAgICAgIChjKSA9PiBjLnRlc3QgPT09IFwiU3RyaW5nRXF1YWxzXCIgJiYgYy52YXJpYWJsZSA9PT0gXCJhd3M6U291cmNlQWNjb3VudFwiLFxuICAgICk7XG4gICAgY29uc3Qgc291cmNlQWNjb3VudCA9XG4gICAgICBzb3VyY2VBY2NvdW50Q29uZGl0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgID8gc291cmNlQWNjb3VudENvbmRpdGlvbnNbMF0udmFsdWVzWzBdXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIC8vIHJlcXVpcmVTdHJpbmcoXG4gICAgLy8gICByZXF1aXJlT2JqZWN0KGNvbmRpdGlvbnMuU3RyaW5nRXF1YWxzKT8uW1wiYXdzOlNvdXJjZUFjY291bnRcIl0sXG4gICAgLy8gKTtcbiAgICBjb25zdCBwcmluY2lwYWxPcmdJRENvbmRpdGlvbnMgPSBjb25kaXRpb25zLmZpbHRlcihcbiAgICAgIChjKSA9PiBjLnRlc3QgPT09IFwiU3RyaW5nRXF1YWxzXCIgJiYgYy52YXJpYWJsZSA9PT0gXCJhd3M6UHJpbmNpcGFsT3JnSURcIixcbiAgICApO1xuICAgIGNvbnN0IHByaW5jaXBhbE9yZ0lEID1cbiAgICAgIHByaW5jaXBhbE9yZ0lEQ29uZGl0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgID8gcHJpbmNpcGFsT3JnSURDb25kaXRpb25zWzBdLnZhbHVlc1swXVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAvLyByZXF1aXJlU3RyaW5nKFxuICAgIC8vICAgcmVxdWlyZU9iamVjdChjb25kaXRpb25zLlN0cmluZ0VxdWFscyk/LltcImF3czpQcmluY2lwYWxPcmdJRFwiXSxcbiAgICAvLyApO1xuXG4gICAgLy8gUHJpbmNpcGFsT3JnSUQgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggYW55IG90aGVyIGNvbmRpdGlvbnNcbiAgICBpZiAocHJpbmNpcGFsT3JnSUQgJiYgKHNvdXJjZUFybiB8fCBzb3VyY2VBY2NvdW50KSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCJQcmluY2lwYWxXaXRoQ29uZGl0aW9ucyBoYWQgdW5zdXBwb3J0ZWQgY29uZGl0aW9uIGNvbWJpbmF0aW9ucyBmb3IgTGFtYmRhIHBlcm1pc3Npb24gc3RhdGVtZW50OiBwcmluY2lwYWxPcmdJRCBjYW5ub3QgYmUgc2V0IHdpdGggb3RoZXIgY29uZGl0aW9ucy5cIixcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNvdXJjZUFybixcbiAgICAgIHNvdXJjZUFjY291bnQsXG4gICAgICBwcmluY2lwYWxPcmdJRCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUNvbmRpdGlvbnMoXG4gICAgcHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbCxcbiAgKTogaWFtLkNvbmRpdGlvbnMgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmlzUHJpbmNpcGFsV2l0aENvbmRpdGlvbnMocHJpbmNpcGFsKSkge1xuICAgICAgY29uc3QgY29uZGl0aW9ucyA9IHByaW5jaXBhbC5wb2xpY3lGcmFnbWVudC5jb25kaXRpb25zO1xuICAgICAgLy8gVGhlc2UgYXJlIGFsbCB0aGUgc3VwcG9ydGVkIGNvbmRpdGlvbnMuIFNvbWUgY29tYmluYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkLFxuICAgICAgLy8gbGlrZSBvbmx5ICdhd3M6U291cmNlQXJuJyBvciAnYXdzOlByaW5jaXBhbE9yZ0lEJyBhbmQgJ2F3czpTb3VyY2VBY2NvdW50Jy5cbiAgICAgIC8vIFRoZXNlIHdpbGwgYmUgdmFsaWRhdGVkIHRocm91Z2ggYHRoaXMudmFsaWRhdGVDb25kaXRpb25Db21iaW5hdGlvbnNgLlxuICAgICAgY29uc3Qgc3VwcG9ydGVkUHJpbmNpcGFsQ29uZGl0aW9ucyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3Q6IFwiQXJuTGlrZVwiLFxuICAgICAgICAgIHZhcmlhYmxlOiBcImF3czpTb3VyY2VBcm5cIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3Q6IFwiU3RyaW5nRXF1YWxzXCIsXG4gICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNvdXJjZUFjY291bnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3Q6IFwiU3RyaW5nRXF1YWxzXCIsXG4gICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlByaW5jaXBhbE9yZ0lEXCIsXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCB1bnN1cHBvcnRlZENvbmRpdGlvbnMgPSBjb25kaXRpb25zLmZpbHRlcihcbiAgICAgICAgKGNvbmRpdGlvbikgPT5cbiAgICAgICAgICAhc3VwcG9ydGVkUHJpbmNpcGFsQ29uZGl0aW9ucy5zb21lKFxuICAgICAgICAgICAgKHN1cHBvcnRlZENvbmRpdGlvbikgPT5cbiAgICAgICAgICAgICAgc3VwcG9ydGVkQ29uZGl0aW9uLnRlc3QgPT09IGNvbmRpdGlvbi50ZXN0ICYmXG4gICAgICAgICAgICAgIHN1cHBvcnRlZENvbmRpdGlvbi52YXJpYWJsZSA9PT0gY29uZGl0aW9uLnZhcmlhYmxlLFxuICAgICAgICAgICksXG4gICAgICApO1xuXG4gICAgICBpZiAodW5zdXBwb3J0ZWRDb25kaXRpb25zLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgIHJldHVybiBjb25kaXRpb25zO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICBgUHJpbmNpcGFsV2l0aENvbmRpdGlvbnMgaGFkIHVuc3VwcG9ydGVkIGNvbmRpdGlvbnMgZm9yIExhbWJkYSBwZXJtaXNzaW9uIHN0YXRlbWVudDogJHtKU09OLnN0cmluZ2lmeSh1bnN1cHBvcnRlZENvbmRpdGlvbnMpfS4gYCArXG4gICAgICAgICAgICBgU3VwcG9ydGVkIG9wZXJhdG9yL2NvbmRpdGlvbiBwYWlyczogJHtKU09OLnN0cmluZ2lmeShzdXBwb3J0ZWRQcmluY2lwYWxDb25kaXRpb25zKX1gLFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNQcmluY2lwYWxXaXRoQ29uZGl0aW9ucyhwcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHByaW5jaXBhbC5wb2xpY3lGcmFnbWVudC5jb25kaXRpb25zLmxlbmd0aCA+IDA7XG4gIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFF1YWxpZmllZEZ1bmN0aW9uQmFzZSBleHRlbmRzIExhbWJkYUZ1bmN0aW9uQmFzZSB7XG4gIC8qKiBUaGUgdW5kZXJseWluZyBgSUZ1bmN0aW9uYCAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgbGFtYmRhOiBJRnVuY3Rpb247IC8vIFRPRE86IFZlcmlmeSBwdWJsaXNoIGlzIHNldCB0byB0cnVlP1xuXG4gIHB1YmxpYyByZWFkb25seSBwZXJtaXNzaW9uc05vZGUgPSB0aGlzLm5vZGU7XG5cbiAgcHVibGljIGdldCByZXNvdXJjZUFybnNGb3JHcmFudEludm9rZSgpIHtcbiAgICByZXR1cm4gW3RoaXMuZnVuY3Rpb25Bcm5dO1xuICB9XG5cbiAgcHVibGljIGNvbmZpZ3VyZUFzeW5jSW52b2tlKG9wdGlvbnM6IEV2ZW50SW52b2tlQ29uZmlnT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5vZGUudHJ5RmluZENoaWxkKFwiRXZlbnRJbnZva2VDb25maWdcIikgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYEFuIEV2ZW50SW52b2tlQ29uZmlnIGhhcyBhbHJlYWR5IGJlZW4gY29uZmlndXJlZCBmb3IgdGhlIHF1YWxpZmllZCBmdW5jdGlvbiBhdCAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIG5ldyBFdmVudEludm9rZUNvbmZpZyh0aGlzLCBcIkV2ZW50SW52b2tlQ29uZmlnXCIsIHtcbiAgICAgIGZ1bmN0aW9uOiB0aGlzLmxhbWJkYSxcbiAgICAgIHF1YWxpZmllcjogdGhpcy52ZXJzaW9uLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIGFic3RyYWN0IGNsYXNzIHdoaWNoIHJlcHJlc2VudHMgYW4gQVdTIExhbWJkYSBldmVudCBzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV2ZW50U291cmNlIHtcbiAgLyoqXG4gICAqIENhbGxlZCBieSBgbGFtYmRhLmFkZEV2ZW50U291cmNlYCB0byBhbGxvdyB0aGUgZXZlbnQgc291cmNlIHRvIGJpbmQgdG8gdGhpc1xuICAgKiBmdW5jdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHRhcmdldCBUaGF0IGxhbWJkYSBmdW5jdGlvbiB0byBiaW5kIHRvLlxuICAgKi9cbiAgYmluZCh0YXJnZXQ6IElGdW5jdGlvbik6IHZvaWQ7XG59XG4iXX0=
@@ -42,5 +42,5 @@ class EventBridgeDestination {
42
42
  }
43
43
  exports.EventBridgeDestination = EventBridgeDestination;
44
44
  _a = JSII_RTTI_SYMBOL_1;
45
- EventBridgeDestination[_a] = { fqn: "terraconstructs.aws.compute.destinations.EventBridgeDestination", version: "0.2.0" };
45
+ EventBridgeDestination[_a] = { fqn: "terraconstructs.aws.compute.destinations.EventBridgeDestination", version: "0.2.2" };
46
46
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2Z1bmN0aW9uLWRlc3RpbmF0aW9ucy9ldmVudC1icmlkZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSw2QkFBaUM7QUFDakMsdUNBQXVDO0FBRXZDOzs7O0dBSUc7QUFDSCxNQUFhLHNCQUFzQjtJQUNqQzs7T0FFRztJQUNILFlBQTZCLFFBQTJCO1FBQTNCLGFBQVEsR0FBUixRQUFRLENBQW1CO0lBQUcsQ0FBQztJQUU1RDs7T0FFRztJQUNJLElBQUksQ0FDVCxNQUFpQixFQUNqQixFQUFxQixFQUNyQixRQUFxQztRQUVyQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRW5DLE9BQU87Z0JBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVzthQUN2QyxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sdUJBQXVCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1RSxNQUFNLFFBQVEsR0FDWCx1QkFBMkM7WUFDNUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQzdCLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsWUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3BDLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixRQUFRLEVBQUUsV0FBVztnQkFDckIsWUFBWSxFQUFFLFNBQVM7YUFDeEIsQ0FBQyxDQUNILENBQUM7UUFFSixRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFOUIsT0FBTztZQUNMLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztTQUNsQyxDQUFDO0lBQ0osQ0FBQzs7QUF4Q0gsd0RBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGNvbXB1dGUgZnJvbSBcIi4uL1wiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vLi5cIjtcbmltcG9ydCAqIGFzIG5vdGlmeSBmcm9tIFwiLi4vLi4vbm90aWZ5XCI7XG5cbi8qKlxuICogVXNlIGFuIEV2ZW50IEJyaWRnZSBldmVudCBidXMgYXMgYSBMYW1iZGEgZGVzdGluYXRpb24uXG4gKlxuICogSWYgbm8gZXZlbnQgYnVzIGlzIHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgZXZlbnQgYnVzIGlzIHVzZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBFdmVudEJyaWRnZURlc3RpbmF0aW9uIGltcGxlbWVudHMgY29tcHV0ZS5JRGVzdGluYXRpb24ge1xuICAvKipcbiAgICogQGRlZmF1bHQgLSB1c2UgdGhlIGRlZmF1bHQgZXZlbnQgYnVzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGV2ZW50QnVzPzogbm90aWZ5LklFdmVudEJ1cykge31cblxuICAvKipcbiAgICogUmV0dXJucyBhIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBiaW5kKFxuICAgIF9zY29wZTogQ29uc3RydWN0LFxuICAgIGZuOiBjb21wdXRlLklGdW5jdGlvbixcbiAgICBfb3B0aW9ucz86IGNvbXB1dGUuRGVzdGluYXRpb25PcHRpb25zLFxuICApOiBjb21wdXRlLkRlc3RpbmF0aW9uQ29uZmlnIHtcbiAgICBpZiAodGhpcy5ldmVudEJ1cykge1xuICAgICAgdGhpcy5ldmVudEJ1cy5ncmFudFB1dEV2ZW50c1RvKGZuKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVzdGluYXRpb246IHRoaXMuZXZlbnRCdXMuZXZlbnRCdXNBcm4sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nRGVmYXVsdEV2ZW50QnVzID0gX3Njb3BlLm5vZGUudHJ5RmluZENoaWxkKFwiRGVmYXVsdEV2ZW50QnVzXCIpO1xuICAgIGNvbnN0IGV2ZW50QnVzID1cbiAgICAgIChleGlzdGluZ0RlZmF1bHRFdmVudEJ1cyBhcyBub3RpZnkuRXZlbnRCdXMpIHx8XG4gICAgICBub3RpZnkuRXZlbnRCdXMuZnJvbUV2ZW50QnVzQXJuKFxuICAgICAgICBfc2NvcGUsXG4gICAgICAgIFwiRGVmYXVsdEV2ZW50QnVzXCIsXG4gICAgICAgIEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KGZuKS5mb3JtYXRBcm4oe1xuICAgICAgICAgIHNlcnZpY2U6IFwiZXZlbnRzXCIsXG4gICAgICAgICAgcmVzb3VyY2U6IFwiZXZlbnQtYnVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VOYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgZXZlbnRCdXMuZ3JhbnRQdXRFdmVudHNUbyhmbik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGVzdGluYXRpb246IGV2ZW50QnVzLmV2ZW50QnVzQXJuLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -51,5 +51,5 @@ class FunctionDestination {
51
51
  }
52
52
  exports.FunctionDestination = FunctionDestination;
53
53
  _a = JSII_RTTI_SYMBOL_1;
54
- FunctionDestination[_a] = { fqn: "terraconstructs.aws.compute.destinations.FunctionDestination", version: "0.2.0" };
54
+ FunctionDestination[_a] = { fqn: "terraconstructs.aws.compute.destinations.FunctionDestination", version: "0.2.2" };
55
55
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvZnVuY3Rpb24tZGVzdGluYXRpb25zL2Z1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsaURBQXdEO0FBQ3hELHVDQUF1QztBQXlCdkM7O0dBRUc7QUFDSCxNQUFhLG1CQUFtQjtJQUM5QixZQUNtQixFQUFxQixFQUNyQixVQUFzQyxFQUFFO1FBRHhDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWlDO0lBQ3hELENBQUM7SUFFSjs7T0FFRztJQUNJLElBQUksQ0FDVCxLQUFnQixFQUNoQixFQUFxQixFQUNyQixPQUFvQztRQUVwQyxxREFBcUQ7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0IsNkJBQTZCO1lBQzdCLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXhCLE9BQU87Z0JBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVzthQUNqQyxDQUFDO1FBQ0osQ0FBQztRQUVELHlFQUF5RTtRQUN6RSxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2Isa0VBQWtFO1lBQ2xFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsbUVBQW1FO1FBQ25FLG1EQUFtRDtRQUNuRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDbkMsWUFBWSxFQUFFO2dCQUNaLFVBQVUsRUFBRSxDQUFDLHVDQUF1QyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ25FLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsVUFBVSxDQUFDO2dCQUN4QyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDbkI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO29CQUN6QyxLQUFLLEVBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQ3pDLDBCQUEwQixDQUMzQixFQUFFLDJCQUEyQjtpQkFDL0IsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxXQUFXLEdBQUcsSUFBSSxxQ0FBc0IsRUFBRSxDQUFDLENBQUMsNkJBQTZCO1FBQy9FLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQzs7QUFsREgsa0RBbURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGNvbXB1dGUgZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyBFdmVudEJyaWRnZURlc3RpbmF0aW9uIH0gZnJvbSBcIi4vZXZlbnQtYnJpZGdlXCI7XG5pbXBvcnQgKiBhcyBub3RpZnkgZnJvbSBcIi4uLy4uL25vdGlmeVwiO1xuXG4vLyBUT0RPOiBOYW1lIHRoaXMgYmFjayB0byBMYW1iZGFEZXN0aW5hdGlvbiBpbnN0ZWFkP1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGEgTGFtYmRhIGRlc3RpbmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25EZXN0aW5hdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgZGVzdGluYXRpb24gZnVuY3Rpb24gcmVjZWl2ZXMgb25seSB0aGUgYHJlc3BvbnNlUGF5bG9hZGAgb2ZcbiAgICogdGhlIHNvdXJjZSBmdW5jdGlvbi5cbiAgICpcbiAgICogV2hlbiBzZXQgdG8gYHRydWVgIGFuZCB1c2VkIGFzIGBvblN1Y2Nlc3NgIGRlc3RpbmF0aW9uLCB0aGUgZGVzdGluYXRpb25cbiAgICogZnVuY3Rpb24gd2lsbCBiZSBpbnZva2VkIHdpdGggdGhlIHBheWxvYWQgcmV0dXJuZWQgYnkgdGhlIHNvdXJjZSBmdW5jdGlvbi5cbiAgICpcbiAgICogV2hlbiBzZXQgdG8gYHRydWVgIGFuZCB1c2VkIGFzIGBvbkZhaWx1cmVgIGRlc3RpbmF0aW9uLCB0aGUgZGVzdGluYXRpb25cbiAgICogZnVuY3Rpb24gd2lsbCBiZSBpbnZva2VkIHdpdGggdGhlIGVycm9yIG9iamVjdCByZXR1cm5lZCBieSBzb3VyY2UgZnVuY3Rpb24uXG4gICAqXG4gICAqIFNlZSB0aGUgUkVBRE1FIG9mIHRoaXMgbW9kdWxlIHRvIHNlZSBhIGZ1bGwgZXhwbGFuYXRpb24gb2YgdGhpcyBvcHRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlIFRoZSBkZXN0aW5hdGlvbiBmdW5jdGlvbiByZWNlaXZlcyB0aGUgZnVsbCBpbnZvY2F0aW9uIHJlY29yZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc3BvbnNlT25seT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVXNlIGEgTGFtYmRhIGZ1bmN0aW9uIGFzIGEgTGFtYmRhIGRlc3RpbmF0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBGdW5jdGlvbkRlc3RpbmF0aW9uIGltcGxlbWVudHMgY29tcHV0ZS5JRGVzdGluYXRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZuOiBjb21wdXRlLklGdW5jdGlvbixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEZ1bmN0aW9uRGVzdGluYXRpb25PcHRpb25zID0ge30sXG4gICkge31cblxuICAvKipcbiAgICogUmV0dXJucyBhIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBiaW5kKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgZm46IGNvbXB1dGUuSUZ1bmN0aW9uLFxuICAgIG9wdGlvbnM/OiBjb21wdXRlLkRlc3RpbmF0aW9uT3B0aW9ucyxcbiAgKTogY29tcHV0ZS5EZXN0aW5hdGlvbkNvbmZpZyB7XG4gICAgLy8gTm9ybWFsIExhbWJkYSBkZXN0aW5hdGlvbiAoZnVsbCBpbnZvY2F0aW9uIHJlY29yZClcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5yZXNwb25zZU9ubHkpIHtcbiAgICAgIC8vIGRlZHVwbGljYXRlZCBhdXRvbWF0aWNhbGx5XG4gICAgICB0aGlzLmZuLmdyYW50SW52b2tlKGZuKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVzdGluYXRpb246IHRoaXMuZm4uZnVuY3Rpb25Bcm4sXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSBhZGQgcnVsZSB0byBleHRyYWN0IHRoZSByZXNwb25zZSBwYXlsb2FkIGFuZCB1c2UgRXZlbnRCcmlkZ2VcbiAgICAvLyBhcyBkZXN0aW5hdGlvblxuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgLy8gYG9wdGlvbnNgIGFkZGVkIHRvIGJpbmQoKSBhcyBvcHRpb25uYWwgdG8gYXZvaWQgYnJlYWtpbmcgY2hhbmdlXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPcHRpb25zIG11c3QgYmUgZGVmaW5lZCB3aGVuIHVzaW5nIGByZXNwb25zZU9ubHlgLlwiKTtcbiAgICB9XG5cbiAgICAvLyBNYXRjaCBpbnZvY2F0aW9uIHJlc3VsdCBvZiB0aGUgc291cmNlIGZ1bmN0aW9uIChgZm5gKSBhbmQgdXNlIGl0XG4gICAgLy8gdG8gdHJpZ2dlciB0aGUgZGVzdGluYXRpb24gZnVuY3Rpb24gKGB0aGlzLmZuYCkuXG4gICAgbmV3IG5vdGlmeS5SdWxlKHNjb3BlLCBvcHRpb25zLnR5cGUsIHtcbiAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICBkZXRhaWxUeXBlOiBbYExhbWJkYSBGdW5jdGlvbiBJbnZvY2F0aW9uIFJlc3VsdCAtICR7b3B0aW9ucy50eXBlfWBdLFxuICAgICAgICByZXNvdXJjZXM6IFtgJHtmbi5mdW5jdGlvbkFybn06JExBVEVTVGBdLFxuICAgICAgICBzb3VyY2U6IFtcImxhbWJkYVwiXSxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRzOiBbXG4gICAgICAgIG5ldyBub3RpZnkudGFyZ2V0cy5MYW1iZGFGdW5jdGlvbih0aGlzLmZuLCB7XG4gICAgICAgICAgZXZlbnQ6IG5vdGlmeS5SdWxlVGFyZ2V0SW5wdXQuZnJvbUV2ZW50UGF0aChcbiAgICAgICAgICAgIFwiJC5kZXRhaWwucmVzcG9uc2VQYXlsb2FkXCIsXG4gICAgICAgICAgKSwgLy8gRXh0cmFjdCByZXNwb25zZSBwYXlsb2FkXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlc3RpbmF0aW9uID0gbmV3IEV2ZW50QnJpZGdlRGVzdGluYXRpb24oKTsgLy8gVXNlIGRlZmF1bHQgZXZlbnQgYnVzIGhlcmVcbiAgICByZXR1cm4gZGVzdGluYXRpb24uYmluZChzY29wZSwgZm4pO1xuICB9XG59XG4iXX0=
@@ -23,5 +23,5 @@ class SqsDestination {
23
23
  }
24
24
  exports.SqsDestination = SqsDestination;
25
25
  _a = JSII_RTTI_SYMBOL_1;
26
- SqsDestination[_a] = { fqn: "terraconstructs.aws.compute.destinations.SqsDestination", version: "0.2.0" };
26
+ SqsDestination[_a] = { fqn: "terraconstructs.aws.compute.destinations.SqsDestination", version: "0.2.2" };
27
27
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2Z1bmN0aW9uLWRlc3RpbmF0aW9ucy9zcXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQTs7R0FFRztBQUNILE1BQWEsY0FBYztJQUN6QixZQUE2QixLQUFvQjtRQUFwQixVQUFLLEdBQUwsS0FBSyxDQUFlO0lBQUcsQ0FBQztJQUVyRDs7T0FFRztJQUNJLElBQUksQ0FDVCxNQUFpQixFQUNqQixFQUFxQixFQUNyQixRQUFxQztRQUVyQyw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqQyxPQUFPO1lBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtTQUNqQyxDQUFDO0lBQ0osQ0FBQzs7QUFqQkgsd0NBa0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGNvbXB1dGUgZnJvbSBcIi4uXCI7XG5pbXBvcnQgKiBhcyBub3RpZnkgZnJvbSBcIi4uLy4uL25vdGlmeVwiO1xuXG4vKipcbiAqIFVzZSBhIFNRUyBxdWV1ZSBhcyBhIExhbWJkYSBkZXN0aW5hdGlvblxuICovXG5leHBvcnQgY2xhc3MgU3FzRGVzdGluYXRpb24gaW1wbGVtZW50cyBjb21wdXRlLklEZXN0aW5hdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcXVldWU6IG5vdGlmeS5JUXVldWUpIHt9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgYmluZChcbiAgICBfc2NvcGU6IENvbnN0cnVjdCxcbiAgICBmbjogY29tcHV0ZS5JRnVuY3Rpb24sXG4gICAgX29wdGlvbnM/OiBjb21wdXRlLkRlc3RpbmF0aW9uT3B0aW9ucyxcbiAgKTogY29tcHV0ZS5EZXN0aW5hdGlvbkNvbmZpZyB7XG4gICAgLy8gZGVkdXBsaWNhdGVkIGF1dG9tYXRpY2FsbHlcbiAgICB0aGlzLnF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKGZuKTtcblxuICAgIHJldHVybiB7XG4gICAgICBkZXN0aW5hdGlvbjogdGhpcy5xdWV1ZS5xdWV1ZUFybixcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -72,7 +72,7 @@ class NodejsFunction extends function_1.LambdaFunction {
72
72
  }
73
73
  exports.NodejsFunction = NodejsFunction;
74
74
  _a = JSII_RTTI_SYMBOL_1;
75
- NodejsFunction[_a] = { fqn: "terraconstructs.aws.compute.NodejsFunction", version: "0.2.0" };
75
+ NodejsFunction[_a] = { fqn: "terraconstructs.aws.compute.NodejsFunction", version: "0.2.2" };
76
76
  /**
77
77
  * default to NODEJS_LATEST.
78
78
  */
@@ -144,5 +144,5 @@ class FunctionUrl extends aws_construct_1.AwsConstructBase {
144
144
  }
145
145
  exports.FunctionUrl = FunctionUrl;
146
146
  _a = JSII_RTTI_SYMBOL_1;
147
- FunctionUrl[_a] = { fqn: "terraconstructs.aws.compute.FunctionUrl", version: "0.2.0" };
147
+ FunctionUrl[_a] = { fqn: "terraconstructs.aws.compute.FunctionUrl", version: "0.2.2" };
148
148
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tdXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2Z1bmN0aW9uLXVybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQUF3RDtBQUV4RCxvREFBbUU7QUFJbkUsOEJBQThCO0FBRTlCOztHQUVHO0FBQ0gsSUFBWSxtQkFVWDtBQVZELFdBQVksbUJBQW1CO0lBQzdCOztPQUVHO0lBQ0gsMENBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxvQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQVZXLG1CQUFtQixtQ0FBbkIsbUJBQW1CLFFBVTlCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFVBY1g7QUFkRCxXQUFZLFVBQVU7SUFDcEI7Ozs7T0FJRztJQUNILG1DQUFxQixDQUFBO0lBRXJCOzs7O09BSUc7SUFDSCxpREFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBZFcsVUFBVSwwQkFBVixVQUFVLFFBY3JCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLFVBaUNYO0FBakNELFdBQVksVUFBVTtJQUNwQjs7T0FFRztJQUNILHlCQUFXLENBQUE7SUFDWDs7T0FFRztJQUNILHlCQUFXLENBQUE7SUFDWDs7T0FFRztJQUNILDJCQUFhLENBQUE7SUFDYjs7T0FFRztJQUNILDJCQUFhLENBQUE7SUFDYjs7T0FFRztJQUNILCtCQUFpQixDQUFBO0lBQ2pCOztPQUVHO0lBQ0gsNkJBQWUsQ0FBQTtJQUNmOztPQUVHO0lBQ0gsaUNBQW1CLENBQUE7SUFDbkI7O09BRUc7SUFDSCx1QkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQWpDVyxVQUFVLDBCQUFWLFVBQVUsUUFpQ3JCO0FBZ0lEOzs7O0dBSUc7QUFDSCxNQUFhLFdBQVksU0FBUSxnQ0FBZ0I7SUFFL0MsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFtQkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1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LElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsWUFBWSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2pDLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztZQUNyRCxZQUFZLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDakMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2xDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRTtTQUNqQyxDQUFDO0lBQ0osQ0FBQzs7QUE3Rkgsa0NBOEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbGFtYmRhRnVuY3Rpb25VcmwgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IElBd3NDb25zdHJ1Y3QsIEF3c0NvbnN0cnVjdEJhc2UgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgSUFsaWFzIH0gZnJvbSBcIi4vZnVuY3Rpb24tYWxpYXNcIjtcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gXCIuL2Z1bmN0aW9uLWJhc2VcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2R1cmF0aW9uXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuXG4vKipcbiAqIFRoZSBhdXRoIHR5cGVzIGZvciBhIGZ1bmN0aW9uIHVybFxuICovXG5leHBvcnQgZW51bSBGdW5jdGlvblVybEF1dGhUeXBlIHtcbiAgLyoqXG4gICAqIFJlc3RyaWN0IGFjY2VzcyB0byBhdXRoZW50aWNhdGVkIElBTSB1c2VycyBvbmx5XG4gICAqL1xuICBBV1NfSUFNID0gXCJBV1NfSUFNXCIsXG5cbiAgLyoqXG4gICAqIEJ5cGFzcyBJQU0gYXV0aGVudGljYXRpb24gdG8gY3JlYXRlIGEgcHVibGljIGVuZHBvaW50XG4gICAqL1xuICBOT05FID0gXCJOT05FXCIsXG59XG5cbi8qKlxuICogVGhlIGludm9rZSBtb2RlcyBmb3IgYSBMYW1iZGEgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGVudW0gSW52b2tlTW9kZSB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IG9wdGlvbi4gTGFtYmRhIGludm9rZXMgeW91ciBmdW5jdGlvbiB1c2luZyB0aGUgSW52b2tlIEFQSSBvcGVyYXRpb24uXG4gICAqIEludm9jYXRpb24gcmVzdWx0cyBhcmUgYXZhaWxhYmxlIHdoZW4gdGhlIHBheWxvYWQgaXMgY29tcGxldGUuXG4gICAqIFRoZSBtYXhpbXVtIHBheWxvYWQgc2l6ZSBpcyA2IE1CLlxuICAgKi9cbiAgQlVGRkVSRUQgPSBcIkJVRkZFUkVEXCIsXG5cbiAgLyoqXG4gICAqIFlvdXIgZnVuY3Rpb24gc3RyZWFtcyBwYXlsb2FkIHJlc3VsdHMgYXMgdGhleSBiZWNvbWUgYXZhaWxhYmxlLlxuICAgKiBMYW1iZGEgaW52b2tlcyB5b3VyIGZ1bmN0aW9uIHVzaW5nIHRoZSBJbnZva2VXaXRoUmVzcG9uc2VTdHJlYW0gQVBJIG9wZXJhdGlvbi5cbiAgICogVGhlIG1heGltdW0gcmVzcG9uc2UgcGF5bG9hZCBzaXplIGlzIDIwIE1CLCBob3dldmVyLCB5b3UgY2FuIHJlcXVlc3QgYSBxdW90YSBpbmNyZWFzZS5cbiAgICovXG4gIFJFU1BPTlNFX1NUUkVBTSA9IFwiUkVTUE9OU0VfU1RSRUFNXCIsXG59XG5cbi8qKlxuICogQWxsIGh0dHAgcmVxdWVzdCBtZXRob2RzXG4gKi9cbmV4cG9ydCBlbnVtIEh0dHBNZXRob2Qge1xuICAvKipcbiAgICogVGhlIEdFVCBtZXRob2QgcmVxdWVzdHMgYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3BlY2lmaWVkIHJlc291cmNlLlxuICAgKi9cbiAgR0VUID0gXCJHRVRcIixcbiAgLyoqXG4gICAqIFRoZSBQVVQgbWV0aG9kIHJlcGxhY2VzIGFsbCBjdXJyZW50IHJlcHJlc2VudGF0aW9ucyBvZiB0aGUgdGFyZ2V0IHJlc291cmNlIHdpdGggdGhlIHJlcXVlc3QgcGF5bG9hZC5cbiAgICovXG4gIFBVVCA9IFwiUFVUXCIsXG4gIC8qKlxuICAgKiBUaGUgSEVBRCBtZXRob2QgYXNrcyBmb3IgYSByZXNwb25zZSBpZGVudGljYWwgdG8gdGhhdCBvZiBhIEdFVCByZXF1ZXN0LCBidXQgd2l0aG91dCB0aGUgcmVzcG9uc2UgYm9keS5cbiAgICovXG4gIEhFQUQgPSBcIkhFQURcIixcbiAgLyoqXG4gICAqIFRoZSBQT1NUIG1ldGhvZCBpcyB1c2VkIHRvIHN1Ym1pdCBhbiBlbnRpdHkgdG8gdGhlIHNwZWNpZmllZCByZXNvdXJjZSwgb2Z0ZW4gY2F1c2luZyBhIGNoYW5nZSBpbiBzdGF0ZSBvciBzaWRlIGVmZmVjdHMgb24gdGhlIHNlcnZlci5cbiAgICovXG4gIFBPU1QgPSBcIlBPU1RcIixcbiAgLyoqXG4gICAqIFRoZSBERUxFVEUgbWV0aG9kIGRlbGV0ZXMgdGhlIHNwZWNpZmllZCByZXNvdXJjZS5cbiAgICovXG4gIERFTEVURSA9IFwiREVMRVRFXCIsXG4gIC8qKlxuICAgKiBUaGUgUEFUQ0ggbWV0aG9kIGFwcGxpZXMgcGFydGlhbCBtb2RpZmljYXRpb25zIHRvIGEgcmVzb3VyY2UuXG4gICAqL1xuICBQQVRDSCA9IFwiUEFUQ0hcIixcbiAgLyoqXG4gICAqIFRoZSBPUFRJT05TIG1ldGhvZCBkZXNjcmliZXMgdGhlIGNvbW11bmljYXRpb24gb3B0aW9ucyBmb3IgdGhlIHRhcmdldCByZXNvdXJjZS5cbiAgICovXG4gIE9QVElPTlMgPSBcIk9QVElPTlNcIixcbiAgLyoqXG4gICAqIFRoZSB3aWxkY2FyZCBlbnRyeSB0byBhbGxvdyBhbGwgbWV0aG9kcy5cbiAgICovXG4gIEFMTCA9IFwiKlwiLFxufVxuXG4vKipcbiAqIFNwZWNpZmllcyBhIGNyb3NzLW9yaWdpbiBhY2Nlc3MgcHJvcGVydHkgZm9yIGEgZnVuY3Rpb24gVVJMXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25VcmxDb3JzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFsbG93IGNvb2tpZXMgb3Igb3RoZXIgY3JlZGVudGlhbHMgaW4gcmVxdWVzdHMgdG8geW91ciBmdW5jdGlvbiBVUkwuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0NyZWRlbnRpYWxzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSGVhZGVycyB0aGF0IGFyZSBzcGVjaWZpZWQgaW4gdGhlIEFjY2Vzcy1Db250cm9sLVJlcXVlc3QtSGVhZGVycyBoZWFkZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gaGVhZGVycyBhbGxvd2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZEhlYWRlcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQW4gSFRUUCBtZXRob2QgdGhhdCB5b3UgYWxsb3cgdGhlIG9yaWdpbiB0byBleGVjdXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFtIdHRwTWV0aG9kLkFMTF1cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRNZXRob2RzPzogSHR0cE1ldGhvZFtdO1xuXG4gIC8qKlxuICAgKiBPbmUgb3IgbW9yZSBvcmlnaW5zIHlvdSB3YW50IGN1c3RvbWVycyB0byBiZSBhYmxlIHRvIGFjY2VzcyB0aGUgYnVja2V0IGZyb20uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gb3JpZ2lucyBhbGxvd2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZE9yaWdpbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT25lIG9yIG1vcmUgaGVhZGVycyBpbiB0aGUgcmVzcG9uc2UgdGhhdCB5b3Ugd2FudCBjdXN0b21lcnMgdG8gYmUgYWJsZSB0byBhY2Nlc3MgZnJvbSB0aGVpciBhcHBsaWNhdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gaGVhZGVycyBleHBvc2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhwb3NlZEhlYWRlcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHRpbWUgaW4gc2Vjb25kcyB0aGF0IHlvdXIgYnJvd3NlciBpcyB0byBjYWNoZSB0aGUgcHJlZmxpZ2h0IHJlc3BvbnNlIGZvciB0aGUgc3BlY2lmaWVkIHJlc291cmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEJyb3dzZXIgZGVmYXVsdCBvZiA1IHNlY29uZHMuXG4gICAqL1xuICByZWFkb25seSBtYXhBZ2U/OiBEdXJhdGlvbjtcbn1cblxuLyoqXG4gKiBPdXRwdXRzIHRoYXQgY2FuIGJlIGV4cG9zZWQgdGhyb3VnaCB0aGUgZ3JpZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uVXJsT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgdXJsIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSB1cmw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZnVuY3Rpb24gdGhpcyBVUkwgcmVmZXJzIHRvXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbkFybjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgTGFtYmRhIGZ1bmN0aW9uIFVybFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElGdW5jdGlvblVybCBleHRlbmRzIElBd3NDb25zdHJ1Y3Qge1xuICAvKiogc3Ryb25nbHkgdHlwZWQgRnVuY3Rpb25VcmxPdXRwdXRzICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uVXJsT3V0cHV0czogRnVuY3Rpb25VcmxPdXRwdXRzO1xuXG4gIC8qKlxuICAgKiBUaGUgdXJsIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBhdHRyaWJ1dGUgRnVuY3Rpb25VcmxcbiAgICovXG4gIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBmdW5jdGlvbiB0aGlzIFVSTCByZWZlcnMgdG9cbiAgICpcbiAgICogQGF0dHJpYnV0ZSBGdW5jdGlvbkFyblxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIGludm9rZSB0aGlzIExhbWJkYSBGdW5jdGlvbiBVUkxcbiAgICovXG4gIGdyYW50SW52b2tlVXJsKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGFkZCBhIHVybCB0byBhIExhbWJkYSBmdW5jdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uVXJsT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhdXRoZW50aWNhdGlvbiB0aGF0IHlvdXIgZnVuY3Rpb24gVVJMIHVzZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IEZ1bmN0aW9uVXJsQXV0aFR5cGUuQVdTX0lBTVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aFR5cGU/OiBGdW5jdGlvblVybEF1dGhUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgY3Jvc3Mtb3JpZ2luIHJlc291cmNlIHNoYXJpbmcgKENPUlMpIHNldHRpbmdzIGZvciB5b3VyIGZ1bmN0aW9uIFVSTC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBDT1JTIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBjb3JzPzogRnVuY3Rpb25VcmxDb3JzT3B0aW9ucztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgaW52b2NhdGlvbiBtb2RlIHRoYXQgeW91ciBMYW1iZGEgZnVuY3Rpb24gdXNlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgSW52b2tlTW9kZS5CVUZGRVJFRFxuICAgKi9cbiAgcmVhZG9ubHkgaW52b2tlTW9kZT86IEludm9rZU1vZGU7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBGdW5jdGlvblVybFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uVXJsUHJvcHMgZXh0ZW5kcyBGdW5jdGlvblVybE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIHdoaWNoIHRoaXMgdXJsIHJlZmVycy5cbiAgICogSXQgY2FuIGFsc28gYmUgYW4gYEFsaWFzYCBidXQgbm90IGEgYFZlcnNpb25gLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvbjtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgTGFtYmRhIGZ1bmN0aW9uIHVybFxuICpcbiAqIEByZXNvdXJjZSBhd3NfbGFtYmRhX2Z1bmN0aW9uX3VybFxuICovXG5leHBvcnQgY2xhc3MgRnVuY3Rpb25VcmwgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSUZ1bmN0aW9uVXJsIHtcbiAgcHVibGljIHJlYWRvbmx5IGZ1bmN0aW9uVXJsT3V0cHV0czogRnVuY3Rpb25VcmxPdXRwdXRzO1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZnVuY3Rpb25VcmxPdXRwdXRzO1xuICB9XG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogbGFtYmRhRnVuY3Rpb25VcmwuTGFtYmRhRnVuY3Rpb25Vcmw7XG4gIC8qKlxuICAgKiBUaGUgdXJsIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGZ1bmN0aW9uIHRoaXMgVVJMIHJlZmVycyB0b1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRoZW50aWNhdGlvbiB0eXBlIHVzZWQgZm9yIHRoaXMgRnVuY3Rpb24gVVJMXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXV0aFR5cGU6IEZ1bmN0aW9uVXJsQXV0aFR5cGU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmdW5jdGlvbjogSUZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBGdW5jdGlvblVybFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIElmIHRoZSB0YXJnZXQgZnVuY3Rpb24gaXMgYW4gYWxpYXMsIHRoZW4gaXQgbXVzdCBiZSBjb25maWd1cmVkIHVzaW5nIHRoZSB1bmRlcmx5aW5nIGZ1bmN0aW9uXG4gICAgLy8gQVJOLCBhbmQgdGhlIGFsaWFzIG5hbWUgYXMgYSBxdWFsaWZpZXIuXG4gICAgY29uc3QgeyB0YXJnZXRGdW5jdGlvbiwgYWxpYXMgfSA9IHRoaXMuaW5zdGFuY2VPZkFsaWFzKHByb3BzLmZ1bmN0aW9uKVxuICAgICAgPyB7IHRhcmdldEZ1bmN0aW9uOiBwcm9wcy5mdW5jdGlvbi5sYW1iZGEsIGFsaWFzOiBwcm9wcy5mdW5jdGlvbiB9XG4gICAgICA6IHsgdGFyZ2V0RnVuY3Rpb246IHByb3BzLmZ1bmN0aW9uLCBhbGlhczogdW5kZWZpbmVkIH07XG5cbiAgICB0aGlzLmF1dGhUeXBlID0gcHJvcHMuYXV0aFR5cGUgPz8gRnVuY3Rpb25VcmxBdXRoVHlwZS5BV1NfSUFNO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBsYW1iZGFGdW5jdGlvblVybC5MYW1iZGFGdW5jdGlvblVybCh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIGF1dGhvcml6YXRpb25UeXBlOiB0aGlzLmF1dGhUeXBlLFxuICAgICAgY29yczogcHJvcHMuY29ycyA/IHRoaXMucmVuZGVyQ29ycyhwcm9wcy5jb3JzKSA6IHVuZGVmaW5lZCxcbiAgICAgIGludm9rZU1vZGU6IHByb3BzLmludm9rZU1vZGUsXG4gICAgICBmdW5jdGlvbk5hbWU6IHRhcmdldEZ1bmN0aW9uLmZ1bmN0aW9uQXJuLCAvLyBUaGUgbmFtZSAob3IgQVJOKSBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICAgICAgcXVhbGlmaWVyOiBhbGlhcz8uYWxpYXNOYW1lLFxuICAgIH0pO1xuICAgIC8vIFRoZSBhbGlhc05hbWUgaXMgYSByZXF1aXJlZCBwaHlzaWNhbCBuYW1lLCBzbyB1c2luZyBpdCBkb2VzIG5vdCBpbXBseSBhIGRlcGVuZGVuY3ksIHNvIHdlXG4gICAgLy8gbXVzdCBcIm1hbnVhbGx5XCIgcmVnaXN0ZXIgdGhlIGRlcGVuZGVuY3ksIG9yIGVsc2UgVEYgbWF5IGF0dGVtcHQgdG8gdXNlIGJlZm9yZSBpdCBleGlzdHMuXG4gICAgaWYgKGFsaWFzPy5ub2RlLmRlZmF1bHRDaGlsZCAhPSBudWxsKSB7XG4gICAgICB0aGlzLnJlc291cmNlLm5vZGUuYWRkRGVwZW5kZW5jeShhbGlhcy5ub2RlLmRlZmF1bHRDaGlsZCk7XG4gICAgfVxuXG4gICAgdGhpcy51cmwgPSB0aGlzLnJlc291cmNlLmZ1bmN0aW9uVXJsO1xuICAgIHRoaXMuZnVuY3Rpb25Bcm4gPSB0aGlzLnJlc291cmNlLmZ1bmN0aW9uQXJuO1xuICAgIHRoaXMuZnVuY3Rpb24gPSBwcm9wcy5mdW5jdGlvbjtcblxuICAgIGlmIChwcm9wcy5hdXRoVHlwZSA9PT0gRnVuY3Rpb25VcmxBdXRoVHlwZS5OT05FKSB7XG4gICAgICBwcm9wcy5mdW5jdGlvbi5hZGRQZXJtaXNzaW9uKFwiaW52b2tlLWZ1bmN0aW9uLXVybFwiLCB7XG4gICAgICAgIHByaW5jaXBhbDogbmV3IGlhbS5BbnlQcmluY2lwYWwoKSxcbiAgICAgICAgYWN0aW9uOiBcImxhbWJkYTpJbnZva2VGdW5jdGlvblVybFwiLFxuICAgICAgICBmdW5jdGlvblVybEF1dGhUeXBlOiBwcm9wcy5hdXRoVHlwZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmZ1bmN0aW9uVXJsT3V0cHV0cyA9IHtcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICBmdW5jdGlvbkFybjogdGhpcy5mdW5jdGlvbkFybixcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdyYW50SW52b2tlVXJsKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5mdW5jdGlvbi5ncmFudEludm9rZVVybChncmFudGVlKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zdGFuY2VPZkFsaWFzKGZuOiBJRnVuY3Rpb24pOiBmbiBpcyBJQWxpYXMge1xuICAgIHJldHVybiBcImFsaWFzTmFtZVwiIGluIGZuO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJDb3JzKFxuICAgIGNvcnM6IEZ1bmN0aW9uVXJsQ29yc09wdGlvbnMsXG4gICk6IGxhbWJkYUZ1bmN0aW9uVXJsLkxhbWJkYUZ1bmN0aW9uVXJsQ29ycyB7XG4gICAgaWYgKFxuICAgICAgY29ycy5tYXhBZ2UgJiZcbiAgICAgICFjb3JzLm1heEFnZS5pc1VucmVzb2x2ZWQoKSAmJlxuICAgICAgY29ycy5tYXhBZ2UudG9TZWNvbmRzKCkgPiA4NjQwMFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRnVuY3Rpb25VcmwgQ09SUyBtYXhBZ2Ugc2hvdWxkIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA4NjQwMCBzZWNzIChnb3QgJHtjb3JzLm1heEFnZS50b1NlY29uZHMoKX0pYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFsbG93Q3JlZGVudGlhbHM6IGNvcnMuYWxsb3dDcmVkZW50aWFscyxcbiAgICAgIGFsbG93SGVhZGVyczogY29ycy5hbGxvd2VkSGVhZGVycyxcbiAgICAgIGFsbG93TWV0aG9kczogY29ycy5hbGxvd2VkTWV0aG9kcyA/PyBbSHR0cE1ldGhvZC5BTExdLFxuICAgICAgYWxsb3dPcmlnaW5zOiBjb3JzLmFsbG93ZWRPcmlnaW5zLFxuICAgICAgZXhwb3NlSGVhZGVyczogY29ycy5leHBvc2VkSGVhZGVycyxcbiAgICAgIG1heEFnZTogY29ycy5tYXhBZ2U/LnRvU2Vjb25kcygpLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -732,7 +732,7 @@ class LambdaFunction extends function_base_1.LambdaFunctionBase {
732
732
  }
733
733
  exports.LambdaFunction = LambdaFunction;
734
734
  _a = JSII_RTTI_SYMBOL_1;
735
- LambdaFunction[_a] = { fqn: "terraconstructs.aws.compute.LambdaFunction", version: "0.2.0" };
735
+ LambdaFunction[_a] = { fqn: "terraconstructs.aws.compute.LambdaFunction", version: "0.2.2" };
736
736
  /**
737
737
  * Given an opaque (token) ARN, returns a TF expression that extracts the function
738
738
  * name from the ARN.
@@ -50,7 +50,7 @@ class GatewayResponse extends aws_construct_1.AwsConstructBase {
50
50
  }
51
51
  exports.GatewayResponse = GatewayResponse;
52
52
  _a = JSII_RTTI_SYMBOL_1;
53
- GatewayResponse[_a] = { fqn: "terraconstructs.aws.compute.GatewayResponse", version: "0.2.0" };
53
+ GatewayResponse[_a] = { fqn: "terraconstructs.aws.compute.GatewayResponse", version: "0.2.2" };
54
54
  /**
55
55
  * Supported types of gateway responses.
56
56
  * @see https://docs.aws.amazon.com/apigateway/latest/developerguide/supported-gateway-response-types.html
@@ -66,7 +66,7 @@ class ResponseType {
66
66
  }
67
67
  exports.ResponseType = ResponseType;
68
68
  _b = JSII_RTTI_SYMBOL_1;
69
- ResponseType[_b] = { fqn: "terraconstructs.aws.compute.ResponseType", version: "0.2.0" };
69
+ ResponseType[_b] = { fqn: "terraconstructs.aws.compute.ResponseType", version: "0.2.2" };
70
70
  /**
71
71
  * The gateway response for authorization failure.
72
72
  */
@@ -12,7 +12,7 @@ class Handler {
12
12
  }
13
13
  exports.Handler = Handler;
14
14
  _a = JSII_RTTI_SYMBOL_1;
15
- Handler[_a] = { fqn: "terraconstructs.aws.compute.Handler", version: "0.2.0" };
15
+ Handler[_a] = { fqn: "terraconstructs.aws.compute.Handler", version: "0.2.2" };
16
16
  /**
17
17
  * A special handler when the function handler is part of a Docker image.
18
18
  */
@@ -1679,5 +1679,5 @@ class InstanceType {
1679
1679
  }
1680
1680
  exports.InstanceType = InstanceType;
1681
1681
  _a = JSII_RTTI_SYMBOL_1;
1682
- InstanceType[_a] = { fqn: "terraconstructs.aws.compute.InstanceType", version: "0.2.0" };
1682
+ InstanceType[_a] = { fqn: "terraconstructs.aws.compute.InstanceType", version: "0.2.2" };
1683
1683
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvaW5zdGFuY2UtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrR0FBa0c7QUFFbEc7Ozs7Ozs7O0dBUUc7QUFDSCxJQUFZLGFBbTdDWDtBQW43Q0QsV0FBWSxhQUFhO0lBQ3ZCOztPQUVHO0lBQ0gsd0NBQXVCLENBQUE7SUFFdkI7O09BRUc7SUFDSCwwQkFBUyxDQUFBO0lBRVQ7O09BRUc7SUFDSCx3Q0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILDBCQUFTLENBQUE7SUFFVDs7T0FFRztJQUNILHdDQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsMEJBQVMsQ0FBQTtJQUVUOztPQUVHO0lBQ0gsOERBQTZDLENBQUE7SUFFN0M7O09BRUc7SUFDSCw0QkFBVyxDQUFBO0lBRVg7O09BRUc7SUFDSCxnREFBK0IsQ0FBQTtJQUUvQjs7T0FFRztJQUNILDRCQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILHNFQUFxRCxDQUFBO0lBRXJEOztPQUVHO0lBQ0gsOEJBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsMEVBQXlELENBQUE7SUFFekQ7O09BRUc7SUFDSCw0QkFBVyxDQUFBO0lBRVg7O09BRUc7SUFDSCxnR0FBK0UsQ0FBQTtJQUUvRTs7T0FFRztJQUNILDhCQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILGtFQUFpRCxDQUFBO0lBRWpEOztPQUVHO0lBQ0gsOEJBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsb0NBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCwwQkFBUyxDQUFBO0lBRVQ7O09BRUc7SUFDSCxvQ0FBbUIsQ0FBQTtJQUVuQjs7T0FFRztJQUNILDBCQUFTLENBQUE7SUFFVDs7T0FFRztJQUNILG9DQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsMEJBQVMsQ0FBQTtJQUVUOztPQUVHO0lBQ0gsNENBQTJC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Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVjMi9saWIvaW5zdGFuY2UtdHlwZXMudHNcblxuLyoqXG4gKiBXaGF0IGNsYXNzIGFuZCBnZW5lcmF0aW9uIG9mIGluc3RhbmNlIHRvIHVzZVxuICpcbiAqIFdlIGhhdmUgYm90aCBzeW1ib2xpYyBhbmQgY29uY3JldGUgZW51bXMgZm9yIGV2ZXJ5IHR5cGUuXG4gKlxuICogVGhlIGZpcnN0IGFyZSBmb3IgcGVvcGxlIHRoYXQgd2FudCB0byBzcGVjaWZ5IGJ5IHB1cnBvc2UsXG4gKiB0aGUgc2Vjb25kIG9uZSBhcmUgZm9yIHBlb3BsZSB3aG8gYWxyZWFkeSBrbm93IGV4YWN0bHkgd2hhdFxuICogJ1I0JyBtZWFucy5cbiAqL1xuZXhwb3J0IGVudW0gSW5zdGFuY2VDbGFzcyB7XG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVEFOREFSRDMgPSBcInN0YW5kYXJkM1wiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBNMyA9IFwibTNcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RBTkRBUkQ0ID0gXCJzdGFuZGFyZDRcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTTQgPSBcIm00XCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJENSA9IFwic3RhbmRhcmQ1XCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIE01ID0gXCJtNVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RBTkRBUkQ1X05WTUVfRFJJVkUgPSBcInN0YW5kYXJkNS1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNNUQgPSBcIm01ZFwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVEFOREFSRDVfQU1EID0gXCJzdGFuZGFyZDUtYW1kXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIE01QSA9IFwibTVhXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVEFOREFSRDVfQU1EX05WTUVfRFJJVkUgPSBcInN0YW5kYXJkNS1hbWQtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTTVBRCA9IFwibTVhZFwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RBTkRBUkQ1X0hJR0hfUEVSRk9STUFOQ0UgPSBcInN0YW5kYXJkNS1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNNU4gPSBcIm01blwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJENV9OVk1FX0RSSVZFX0hJR0hfUEVSRk9STUFOQ0UgPSBcInN0YW5kYXJkNS1udm1lLWRyaXZlLWhpZ2gtcGVyZm9ybWFuY2VcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNNUROID0gXCJtNWRuXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyB3aXRoIGhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKENhc2NhZGUgTGFrZSkgcHJvY2Vzc29ycywgNW5kIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJENV9ISUdIX0NPTVBVVEUgPSBcInN0YW5kYXJkNS1oaWdoLWNvbXB1dGVcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIHdpdGggaGlnaCBtZW1vcnkgYW5kIGNvbXB1dGUgY2FwYWNpdHkgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzLCA1bmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgTTVaTiA9IFwibTV6blwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTMgPSBcIm1lbW9yeTNcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBSMyA9IFwicjNcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk0ID0gXCJtZW1vcnk0XCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUjQgPSBcInI0XCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZNSA9IFwibWVtb3J5NVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1ID0gXCJyNVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTZfQU1EID0gXCJtZW1vcnk2LWFtZFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI2QSA9IFwicjZhXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoM3JkIGdlbmVyYXRpb24gcHJvY2Vzc29ycyBjb2RlIG5hbWVkIEljZSBMYWtlKVxuICAgKi9cbiAgTUVNT1JZNl9JTlRFTCA9IFwibWVtb3J5Ni1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb24gd2l0aCBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKDNyZCBnZW5lcmF0aW9uIHByb2Nlc3NvcnMgY29kZSBuYW1lZCBJY2UgTGFrZSlcbiAgICovXG4gIFI2SSA9IFwicjZpXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNnRoIGdlbmVyYXRpb24gd2l0aCBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKDNyZCBnZW5lcmF0aW9uIHByb2Nlc3NvcnMgY29kZSBuYW1lZCBJY2UgTGFrZSlcbiAgICovXG4gIE1FTU9SWTZfSU5URUxfTlZNRV9EUklWRSA9IFwibWVtb3J5Ni1pbnRlbC1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNnRoIGdlbmVyYXRpb24gd2l0aCBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKDNyZCBnZW5lcmF0aW9uIHByb2Nlc3NvcnMgY29kZSBuYW1lZCBJY2UgTGFrZSlcbiAgICovXG4gIFI2SUQgPSBcInI2aWRcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHBvd2VyZWQgYnkgSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChjb2RlIG5hbWVkIEljZSBMYWtlKSwgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTZfSU5URUxfSElHSF9QRVJGT1JNQU5DRSA9IFwibWVtb3J5Ni1pbnRlbC1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBSNklOID0gXCJyNmluXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKGNvZGUgbmFtZWQgSWNlIExha2UpLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZNl9JTlRFTF9OVk1FX0RSSVZFX0hJR0hfUEVSRk9STUFOQ0UgPSBcIm1lbW9yeTYtaW50ZWwtbnZtZS1kcml2ZS1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKGNvZGUgbmFtZWQgSWNlIExha2UpLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUjZJRE4gPSBcInI2aWRuXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTVfSElHSF9QRVJGT1JNQU5DRSA9IFwibWVtb3J5NS1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1TiA9IFwicjVuXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTVfTlZNRV9EUklWRSA9IFwibWVtb3J5NS1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1RCA9IFwicjVkXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk1X05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRSA9IFwibWVtb3J5NS1udm1lLWRyaXZlLWhpZ2gtcGVyZm9ybWFuY2VcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1RE4gPSBcInI1ZG5cIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk1X0FNRCA9IFwibWVtb3J5NS1hbWRcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBSNUEgPSBcInI1YVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk1X0FNRF9OVk1FX0RSSVZFID0gXCJtZW1vcnk1LWFtZC1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIEFNRCBFUFlDIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1QUQgPSBcInI1YWRcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgzVEIpIGJhc2VkIG9uIEludGVsIFhlb24gUGxhdGludW0gODE3Nk0gKFNreWxha2UpIHByb2Nlc3NvcnMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBISUdIX01FTU9SWV8zVEJfMSA9IFwiaGlnaC1tZW1vcnktM3RiLTFcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgzVEIpIGJhc2VkIG9uIEludGVsIFhlb24gUGxhdGludW0gODE3Nk0gKFNreWxha2UpIHByb2Nlc3NvcnMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBVXzNUQjEgPSBcInUtM3RiMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDZUQikgYmFzZWQgb24gSW50ZWwgWGVvbiBQbGF0aW51bSA4MTc2TSAoU2t5bGFrZSkgcHJvY2Vzc29ycywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfTUVNT1JZXzZUQl8xID0gXCJoaWdoLW1lbW9yeS02dGItMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDZUQikgYmFzZWQgb24gSW50ZWwgWGVvbiBQbGF0aW51bSA4MTc2TSAoU2t5bGFrZSkgcHJvY2Vzc29ycywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIFVfNlRCMSA9IFwidS02dGIxXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoOVRCKSBiYXNlZCBvbiBJbnRlbCBYZW9uIFBsYXRpbnVtIDgxNzZNIChTa3lsYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9NRU1PUllfOVRCXzEgPSBcImhpZ2gtbWVtb3J5LTl0Yi0xXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoOVRCKSBiYXNlZCBvbiBJbnRlbCBYZW9uIFBsYXRpbnVtIDgxNzZNIChTa3lsYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgVV85VEIxID0gXCJ1LTl0YjFcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgxMlRCKSBiYXNlZCBvbiBJbnRlbCBYZW9uIFBsYXRpbnVtIDgxNzZNIChTa3lsYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9NRU1PUllfMTJUQl8xID0gXCJoaWdoLW1lbW9yeS0xMnRiLTFcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgxMlRCKSBiYXNlZCBvbiBJbnRlbCBYZW9uIFBsYXRpbnVtIDgxNzZNIChTa3lsYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgVV8xMlRCMSA9IFwidS0xMnRiMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDE4VEIpIGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKENhc2NhZGUgTGFrZSkgcHJvY2Vzc29ycywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfTUVNT1JZXzE4VEJfMSA9IFwiaGlnaC1tZW1vcnktMTh0Yi0xXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoMThUQikgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgVV8xOFRCMSA9IFwidS0xOHRiMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDI0VEIpIGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKENhc2NhZGUgTGFrZSkgcHJvY2Vzc29ycywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfTUVNT1JZXzI0VEJfMSA9IFwiaGlnaC1tZW1vcnktMjR0Yi0xXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoMjRUQikgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgVV8yNFRCMSA9IFwidS0yNHRiMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDZUQikgYmFzZWQgb24gNHRoIEdlbmVyYXRpb24gSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChTYXBwaGlyZSBSYXBpZHMpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9NRU1PUllfNlRCXzcgPSBcImhpZ2gtbWVtb3J5LTZ0Yi03XCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoNlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBVN0lfNlRCID0gXCJ1N2ktNnRiXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoOFRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBISUdIX01FTU9SWV84VEJfNyA9IFwiaGlnaC1tZW1vcnktOHRiLTdcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICg4VEIpIGJhc2VkIG9uIDR0aCBHZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoU2FwcGhpcmUgUmFwaWRzKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFU3SV84VEIgPSBcInU3aS04dGJcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgxMlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBISUdIX01FTU9SWV8xMlRCXzcgPSBcImhpZ2gtbWVtb3J5LTEydGItN1wiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDEyVEIpIGJhc2VkIG9uIDR0aCBHZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoU2FwcGhpcmUgUmFwaWRzKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFU3SV8xMlRCID0gXCJ1N2ktMTJ0YlwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSwgbmV0d29yay1pbnRlbnNpdmUgaW5zdGFuY2VzICgxNlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBISUdIX01FTU9SWV9ISUdIX05FVFdPUktfMTZUQl83ID0gXCJoaWdoLW1lbW9yeS1oaWdoLW5ldHdvcmstMTZ0Yi03XCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5LCBuZXR3b3JrLWludGVuc2l2ZSBpbnN0YW5jZXMgKDE2VEIpIGJhc2VkIG9uIDR0aCBHZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoU2FwcGhpcmUgUmFwaWRzKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFU3SU5fMTZUQiA9IFwidTdpbi0xNnRiXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5LCBuZXR3b3JrLWludGVuc2l2ZSBpbnN0YW5jZXMgKDI0VEIpIGJhc2VkIG9uIDR0aCBHZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoU2FwcGhpcmUgUmFwaWRzKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS18yNFRCXzcgPSBcImhpZ2gtbWVtb3J5LWhpZ2gtbmV0d29yay0yNHRiLTdcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnksIG5ldHdvcmstaW50ZW5zaXZlIGluc3RhbmNlcyAoMjRUQikgYmFzZWQgb24gNHRoIEdlbmVyYXRpb24gSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChTYXBwaGlyZSBSYXBpZHMpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgVTdJTl8yNFRCID0gXCJ1N2luLTI0dGJcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnksIG5ldHdvcmstaW50ZW5zaXZlIGluc3RhbmNlcyAoMzJUQikgYmFzZWQgb24gNHRoIEdlbmVyYXRpb24gSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChTYXBwaGlyZSBSYXBpZHMpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9NRU1PUllfSElHSF9ORVRXT1JLXzMyVEJfNyA9IFwiaGlnaC1tZW1vcnktaGlnaC1uZXR3b3JrLTMydGItN1wiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSwgbmV0d29yay1pbnRlbnNpdmUgaW5zdGFuY2VzICgzMlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBVN0lOXzMyVEIgPSBcInU3aW4tMzJ0YlwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSwgbmV0d29yay1pbnRlbnNpdmUgaW5zdGFuY2VzICgzMlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqIFU3aW5oIGluc3RhbmNlcyB1c2UgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgKEhQRSkgQ29tcHV0ZSBTY2FsZSBVcCBTZXJ2ZXIgMzIwMC5cbiAgICovXG4gIEhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS19IUEVfMzJUQl83ID0gXCJoaWdoLW1lbW9yeS1oaWdoLW5ldHdvcmstaHBlLTMydGItN1wiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSwgbmV0d29yay1pbnRlbnNpdmUgaW5zdGFuY2VzICgzMlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqIFU3aW5oIGluc3RhbmNlcyB1c2UgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgKEhQRSkgQ29tcHV0ZSBTY2FsZSBVcCBTZXJ2ZXIgMzIwMC5cbiAgICovXG4gIFU3SU5IXzMyVEIgPSBcInU3aW5oLTMydGJcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgdGhhdCBhcmUgYWxzbyBFQlMtb3B0aW1pemVkLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZNV9FQlNfT1BUSU1JWkVEID0gXCJtZW1vcnk1LWVicy1vcHRpbWl6ZWRcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgdGhhdCBhcmUgYWxzbyBFQlMtb3B0aW1pemVkLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUjVCID0gXCJyNWJcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMsIDZ0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICovXG4gIE1FTU9SWTZfR1JBVklUT04gPSBcIm1lbW9yeTYtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMsIDZ0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICovXG4gIFI2RyA9IFwicjZnXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqL1xuICBNRU1PUlk2X0dSQVZJVE9OMl9OVk1FX0RSSVZFID0gXCJtZW1vcnk2LWdyYXZpdG9uMi1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqL1xuICBSNkdEID0gXCJyNmdkXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA3dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMyBwcm9jZXNzb3JzXG4gICAqXG4gICAqIFRoaXMgaW5zdGFuY2UgY2xhc3MgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIFVTIEVhc3QgKE9oaW8pLCBVUyBFYXN0IChOLiBWaXJnaW5pYSksIFVTIFdlc3QgKE9yZWdvbiksIGFuZCBFdXJvcGUgKElyZWxhbmQpLlxuICAgKi9cbiAgTUVNT1JZN19HUkFWSVRPTiA9IFwibWVtb3J5Ny1ncmF2aXRvblwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIFI3RyA9IFwicjdnXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA3dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMyBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqXG4gICAqIFRoaXMgaW5zdGFuY2UgY2xhc3MgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIFVTIEVhc3QgKE9oaW8pLCBVUyBFYXN0IChOLiBWaXJnaW5pYSksIFVTIFdlc3QgKE9yZWdvbiksIGFuZCBFdXJvcGUgKElyZWxhbmQpLlxuICAgKi9cbiAgTUVNT1JZN19HUkFWSVRPTjNfTlZNRV9EUklWRSA9IFwibWVtb3J5Ny1ncmF2aXRvbjMtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29ycyBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIFI3R0QgPSBcInI3Z2RcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoU2FwcGhpcmUgUmFwaWRzKSBwcm9jZXNzb3JzLCA3dGggZ2VuZXJhdGlvbiB3LyAgMy4yR0h6IHR1cmJvIGZyZXF1ZW5jeVxuICAgKi9cbiAgTUVNT1JZN19JTlRFTF9CQVNFID0gXCJtZW1vcnk3LWludGVsLWJhc2VcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoU2FwcGhpcmUgUmFwaWRzKSBwcm9jZXNzb3JzLCA3dGggZ2VuZXJhdGlvbiB3LyAgMy4yR0h6IHR1cmJvIGZyZXF1ZW5jeVxuICAgKi9cbiAgUjdJID0gXCJyN2lcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoU2FwcGhpcmUgUmFwaWRzKSBwcm9jZXNzb3JzLCA3dGggZ2VuZXJhdGlvbiwgd2l0aCBzdXN0YWluZWQgMy45R0h6IHR1cmJvIGZyZXF1ZW5jeVxuICAgKi9cbiAgTUVNT1JZN19JTlRFTCA9IFwibWVtb3J5Ny1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIChTYXBwaGlyZSBSYXBpZHMpIHByb2Nlc3NvcnMsIDd0aCBnZW5lcmF0aW9uLCB3aXRoIHN1c3RhaW5lZCAzLjlHSHogdHVyYm8gZnJlcXVlbmN5XG4gICAqL1xuICBSN0laID0gXCJyN2l6XCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIDR0aCBnZW5lcmF0aW9uIEFNRCBFUFlDIChjb2RlbmFtZSBHZW5vYSksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk3X0FNRCA9IFwibWVtb3J5Ny1hbWRcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gNHRoIGdlbmVyYXRpb24gQU1EIEVQWUMgKGNvZGVuYW1lIEdlbm9hKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFI3QSA9IFwicjdhXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggR3Jhdml0b240IHByb2Nlc3NvcnNcbiAgICovXG4gIE1FTU9SWThfR1JBVklUT04gPSBcIm1lbW9yeTgtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBHcmF2aXRvbjQgcHJvY2Vzc29yc1xuICAgKi9cbiAgUjhHID0gXCJyOGdcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgQ09NUFVURTMgPSBcImNvbXB1dGUzXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEMzID0gXCJjM1wiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDT01QVVRFNCA9IFwiY29tcHV0ZTRcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzQgPSBcImM0XCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU1ID0gXCJjb21wdXRlNVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDNSA9IFwiYzVcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU1X05WTUVfRFJJVkUgPSBcImNvbXB1dGU1LW52bWUtZHJpdmVcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEM1RCA9IFwiYzVkXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU1X0FNRCA9IFwiY29tcHV0ZTUtYW1kXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEM1QSA9IFwiYzVhXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUgYmFzZWQgb24gQU1EIEVQWUMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDT01QVVRFNV9BTURfTlZNRV9EUklWRSA9IFwiY29tcHV0ZTUtYW1kLW52bWUtZHJpdmVcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBiYXNlZCBvbiBBTUQgRVBZQywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEM1QUQgPSBcImM1YWRcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU1X0hJR0hfUEVSRk9STUFOQ0UgPSBcImNvbXB1dGU1LWhpZ2gtcGVyZm9ybWFuY2VcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEM1TiA9IFwiYzVuXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU2X0lOVEVMID0gXCJjb21wdXRlNi1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMsIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDNkkgPSBcImM2aVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQ09NUFVURTZfSU5URUxfTlZNRV9EUklWRSA9IFwiY29tcHV0ZTYtaW50ZWwtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzZJRCA9IFwiYzZpZFwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQ09NUFVURTZfSU5URUxfSElHSF9QRVJGT1JNQU5DRSA9IFwiY29tcHV0ZTYtaW50ZWwtaGlnaC1wZXJmb3JtYW5jZVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzZJTiA9IFwiYzZpblwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMgKGNvZGVuYW1lIE1pbGFuKSwgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU2X0FNRCA9IFwiY29tcHV0ZTYtYW1kXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQyAoY29kZW5hbWUgTWlsYW4pLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzZBID0gXCJjNmFcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNnRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29yc1xuICAgKi9cbiAgQ09NUFVURTZfR1JBVklUT04yID0gXCJjb21wdXRlNi1ncmF2aXRvbjJcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNnRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29yc1xuICAgKi9cbiAgQzZHID0gXCJjNmdcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKi9cbiAgQ09NUFVURTdfR1JBVklUT04zID0gXCJjb21wdXRlNy1ncmF2aXRvbjNcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKi9cbiAgQzdHID0gXCJjN2dcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgOHRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjQgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChGcmFua2Z1cnQpLlxuICAgKi9cbiAgQ09NUFVURThfR1JBVklUT040ID0gXCJjb21wdXRlOC1ncmF2aXRvbjRcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgOHRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjQgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChGcmFua2Z1cnQpLlxuICAgKi9cbiAgQzhHID0gXCJjOGdcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNnRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29yc1xuICAgKiBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKi9cbiAgQ09NUFVURTZfR1JBVklUT04yX05WTUVfRFJJVkUgPSBcImNvbXB1dGU2LWdyYXZpdG9uMi1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDZ0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICogYW5kIGxvY2FsIE5WTUUgZHJpdmVcbiAgICovXG4gIEM2R0QgPSBcImM2Z2RcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29ycyBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIENPTVBVVEU3X0dSQVZJVE9OM19OVk1FX0RSSVZFID0gXCJjb21wdXRlNy1ncmF2aXRvbjMtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA3dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMyBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqXG4gICAqIFRoaXMgaW5zdGFuY2UgY2xhc3MgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIFVTIEVhc3QgKE9oaW8pLCBVUyBFYXN0IChOLiBWaXJnaW5pYSksIFVTIFdlc3QgKE9yZWdvbiksIGFuZCBFdXJvcGUgKElyZWxhbmQpLlxuICAgKi9cbiAgQzdHRCA9IFwiYzdnZFwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzXG4gICAqIGFuZCBoaWdoIG5ldHdvcmsgYmFuZHdpZHRoIGNhcGFiaWxpdGllc1xuICAgKi9cbiAgQ09NUFVURTZfR1JBVklUT04yX0hJR0hfTkVUV09SS19CQU5EV0lEVEggPSBcImNvbXB1dGU2LWdyYXZpdG9uMi1oaWdoLW5ldHdvcmstYmFuZHdpZHRoXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDZ0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICogYW5kIGhpZ2ggbmV0d29yayBiYW5kd2lkdGggY2FwYWJpbGl0aWVzXG4gICAqL1xuICBDNkdOID0gXCJjNmduXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDd0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24zIHByb2Nlc3NvcnNcbiAgICogYW5kIGhpZ2ggbmV0d29yayBiYW5kd2lkdGggY2FwYWJpbGl0aWVzXG4gICAqL1xuICBDT01QVVRFN19HUkFWSVRPTjNfSElHSF9ORVRXT1JLX0JBTkRXSURUSCA9IFwiY29tcHV0ZTctZ3Jhdml0b24zLWhpZ2gtbmV0d29yay1iYW5kd2lkdGhcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKiBhbmQgaGlnaCBuZXR3b3JrIGJhbmR3aWR0aCBjYXBhYmlsaXRpZXNcbiAgICovXG4gIEM3R04gPSBcImM3Z25cIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU3X0lOVEVMID0gXCJjb21wdXRlNy1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoU2FwcGhpcmUgUmFwaWRzKSBwcm9jZXNzb3JzLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzdJID0gXCJjN2lcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICogQzdpLWZsZXggaW5zdGFuY2VzIGVmZmljaWVudGx5IHVzZSBjb21wdXRlIHJlc291cmNlcyB0byBkZWxpdmVyIGEgYmFzZWxpbmUgbGV2ZWwgb2YgcGVyZm9ybWFuY2Ugd2l0aCB0aGUgYWJpbGl0eSB0byBzY2FsZSB1cCB0byB0aGUgZnVsbCBjb21wdXRlIHBlcmZvcm1hbmNlIGEgbWFqb3JpdHkgb2YgdGhlIHRpbWUuXG4gICAqL1xuICBDT01QVVRFN19JTlRFTF9GTEVYID0gXCJjb21wdXRlNy1pbnRlbC1mbGV4XCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIChTYXBwaGlyZSBSYXBpZHMpIHByb2Nlc3NvcnMsIDd0aCBnZW5lcmF0aW9uXG4gICAqIEM3aS1mbGV4IGluc3RhbmNlcyBlZmZpY2llbnRseSB1c2UgY29tcHV0ZSByZXNvdXJjZXMgdG8gZGVsaXZlciBhIGJhc2VsaW5lIGxldmVsIG9mIHBlcmZvcm1hbmNlIHdpdGggdGhlIGFiaWxpdHkgdG8gc2NhbGUgdXAgdG8gdGhlIGZ1bGwgY29tcHV0ZSBwZXJmb3JtYW5jZSBhIG1ham9yaXR5IG9mIHRoZSB0aW1lLlxuICAgKi9cbiAgQzdJX0ZMRVggPSBcImM3aS1mbGV4XCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiA0dGggZ2VuZXJhdGlvbiBBTUQgRVBZQyAoY29kZW5hbWUgR2Vub2EpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQ09NUFVURTdfQU1EID0gXCJjb21wdXRlNy1hbWRcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIDR0aCBnZW5lcmF0aW9uIEFNRCBFUFlDIChjb2RlbmFtZSBHZW5vYSksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDN0EgPSBcImM3YVwiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlLW9wdGltaXplZCBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVE9SQUdFMiA9IFwic3RvcmFnZTJcIixcblxuICAvKipcbiAgICogU3RvcmFnZS1vcHRpbWl6ZWQgaW5zdGFuY2VzLCAybmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgRDIgPSBcImQyXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Utb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIFNUT1JBR0UzID0gXCJzdG9yYWdlM1wiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlLW9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBEMyA9IFwiZDNcIixcblxuICAvKipcbiAgICogU3RvcmFnZS1vcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RPUkFHRTNfRU5IQU5DRURfTkVUV09SSyA9IFwic3RvcmFnZTMtZW5oYW5jZWQtbmV0d29ya1wiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlLW9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBEM0VOID0gXCJkM2VuXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UvY29tcHV0ZSBiYWxhbmNlZCBpbnN0YW5jZXMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVE9SQUdFX0NPTVBVVEVfMSA9IFwic3RvcmFnZS1jb21wdXRlLTFcIixcblxuICAvKipcbiAgICogU3RvcmFnZS9jb21wdXRlIGJhbGFuY2VkIGluc3RhbmNlcywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEgxID0gXCJoMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEFXUyBUcmFpbml1bVxuICAgKi9cbiAgVFJBSU5JTkdfQUNDRUxFUkFUT1IxID0gXCJ0cmFpbmluZy1hY2NlbGVyYXRvcjFcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBBV1MgVHJhaW5pdW1cbiAgICovXG4gIFRSTjEgPSBcInRybjFcIixcblxuICAvKipcbiAgICogTmV0d29yay1vcHRpbWl6ZWQgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBBV1MgVHJhaW5pdW1cbiAgICovXG4gIFRSQUlOSU5HX0FDQ0VMRVJBVE9SMV9FTkhBTkNFRF9ORVRXT1JLID0gXCJ0cmFpbmluZy1hY2NlbGVyYXRvcjEtZW5oYW5jZWQtbmV0d29ya1wiLFxuXG4gIC8qKlxuICAgKiBOZXR3b3JrLW9wdGltaXplZCBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEFXUyBUcmFpbml1bVxuICAgKi9cbiAgVFJOMU4gPSBcInRybjFuXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHBvd2VyZWQgYnkgQVdTIFRyYWluaXVtMiwgMm5kIGdlbmVyYXRpb25cbiAgICovXG4gIFRSQUlOSU5HX0FDQ0VMRVJBVE9SMiA9IFwidHJhaW5pbmctYWNjZWxlcmF0b3IyXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHBvd2VyZWQgYnkgQVdTIFRyYWluaXVtMiwgMm5kIGdlbmVyYXRpb25cbiAgICovXG4gIFRSTjIgPSBcInRybjJcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBBV1MgVHJhaW5pdW0yIGFuZCBFQzIgVWx0cmEgU2VydmVycywgMm5kIGdlbmVyYXRpb25cbiAgICogVWx0cmFTZXJ2ZXJzIGNvbm5lY3QgbXVsdGlwbGUgRUMyIGluc3RhbmNlcyB1c2luZyBhIGRlZGljYXRlZCwgaGlnaC1iYW5kd2lkdGgsIGxvdy1sYXRlbmN5IGFjY2VsZXJhdG9yIGludGVyY29ubmVjdFxuICAgKi9cbiAgVFJBSU5JTkdfQUNDRUxFUkFUT1IyX1VMVFJBU0VSVkVSID0gXCJ0cmFpbmluZy1hY2NlbGVyYXRvcjItdWx0cmFzZXJ2ZXJcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBBV1MgVHJhaW5pdW0yIGFuZCBFQzIgVWx0cmEgU2VydmVycywgMm5kIGdlbmVyYXRpb25cbiAgICogVWx0cmFTZXJ2ZXJzIGNvbm5lY3QgbXVsdGlwbGUgRUMyIGluc3RhbmNlcyB1c2luZyBhIGRlZGljYXRlZCwgaGlnaC1iYW5kd2lkdGgsIGxvdy1sYXRlbmN5IGFjY2VsZXJhdG9yIGludGVyY29ubmVjdFxuICAgKi9cbiAgVFJOMlUgPSBcInRybjJ1XCIsXG5cbiAgLyoqXG4gICAqIEkvTy1vcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgSU8zID0gXCJpbzNcIixcblxuICAvKipcbiAgICogSS9PLW9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBJMyA9IFwiaTNcIixcblxuICAvKipcbiAgICogSS9PLW9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgSU8zX0RFTlNFX05WTUVfRFJJVkUgPSBcImlvMy1kZW5zZS1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIEkvTy1vcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEkzRU4gPSBcImkzZW5cIixcblxuICAvKipcbiAgICogSS9PLW9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIHBvd2VyZWQgYnkgSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChjb2RlIG5hbWVkIEljZSBMYWtlKSwgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIElPNF9JTlRFTCA9IFwiaW80X2ludGVsXCIsXG5cbiAgLyoqXG4gICAqIEkvTy1vcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBJNEkgPSBcImk0aVwiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBHcmF2aXRvbjIgcHJvY2Vzc29yLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RPUkFHRTRfR1JBVklUT04gPSBcInN0b3JhZ2U0X2dyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Ugb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEdyYXZpdG9uMiBwcm9jZXNzb3IsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBJNEcgPSBcImk0Z1wiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBHcmF2aXRvbjIgcHJvY2Vzc29yLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RPUkFHRTRfR1JBVklUT05fTkVUV09SS19PUFRJTUlaRUQgPSBcInN0b3JhZ2U0LWdyYXZpdG9uLW5ldHdvcmstb3B0aW1pemVkXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Ugb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEdyYXZpdG9uMiBwcm9jZXNzb3IsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTTRHTiA9IFwiaW00Z25cIixcblxuICAvKipcbiAgICogU3RvcmFnZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR3Jhdml0b24yIHByb2Nlc3NvciwgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUT1JBR0U0X0dSQVZJVE9OX05FVFdPUktfU1RPUkFHRV9PUFRJTUlaRUQgPSBcInN0b3JhZ2U0LWdyYXZpdG9uLW5ldHdvcmstc3RvcmFnZS1vcHRpbWl6ZWRcIixcblxuICAvKipcbiAgICogU3RvcmFnZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR3Jhdml0b24yIHByb2Nlc3NvciwgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIElTNEdFTiA9IFwiaXM0Z2VuXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Ugb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IDV0aCBnZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUT1JBR0U3X0lOVEVMX1NUT1JBR0VfT1BUSU1JWkVEID0gXCJzdG9yYWdlNy1pbnRlbC1zdG9yYWdlLW9wdGltaXplZFwiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSA1dGggZ2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMsIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBJN0lFID0gXCJpN2llXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Ugb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEdyYXZpdG9uNCBwcm9jZXNzb3IsIDh0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVE9SQUdFOF9HUkFWSVRPTiA9IFwic3RvcmFnZTgtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogU3RvcmFnZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR3Jhdml0b240IHByb2Nlc3NvciwgOHRoIGdlbmVyYXRpb25cbiAgICovXG4gIEk4RyA9IFwiaThnXCIsXG5cbiAgLyoqXG4gICAqIEJ1cnN0YWJsZSBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBCVVJTVEFCTEUyID0gXCJidXJzdGFibGUyXCIsXG5cbiAgLyoqXG4gICAqIEJ1cnN0YWJsZSBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBUMiA9IFwidDJcIixcblxuICAvKipcbiAgICogQnVyc3RhYmxlIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEJVUlNUQUJMRTMgPSBcImJ1cnN0YWJsZTNcIixcblxuICAvKipcbiAgICogQnVyc3RhYmxlIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIFQzID0gXCJ0M1wiLFxuXG4gIC8qKlxuICAgKiBCdXJzdGFibGUgaW5zdGFuY2VzIGJhc2VkIG9uIEFNRCBFUFlDLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgQlVSU1RBQkxFM19BTUQgPSBcImJ1cnN0YWJsZTMtYW1kXCIsXG5cbiAgLyoqXG4gICAqIEJ1cnN0YWJsZSBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBUM0EgPSBcInQzYVwiLFxuXG4gIC8qKlxuICAgKiBCdXJzdGFibGUgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzXG4gICAqL1xuICBCVVJTVEFCTEU0X0dSQVZJVE9OID0gXCJidXJzdGFibGU0LWdyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIEJ1cnN0YWJsZSBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICovXG4gIFQ0RyA9IFwidDRnXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZX0lOVEVOU0lWRV8xID0gXCJtZW1vcnktaW50ZW5zaXZlLTFcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBYMSA9IFwieDFcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIGV4dGVuZGVkLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZX0lOVEVOU0lWRV8xX0VYVEVOREVEID0gXCJtZW1vcnktaW50ZW5zaXZlLTEtZXh0ZW5kZWRcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIGV4dGVuZGVkLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgWDFFID0gXCJ4MWVcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICpcbiAgICogVGhpcyBpbnN0YW5jZSB0eXBlIGNhbiBiZSB1c2VkIG9ubHkgaW4gUkRTLiBJdCBpcyBub3Qgc3VwcG9ydGVkIGluIEVDMi5cbiAgICovXG4gIE1FTU9SWV9JTlRFTlNJVkVfMl9HUkFWSVRPTjIgPSBcIm1lbW9yeS1pbnRlbnNpdmUtMi1ncmF2aXRvbjJcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICpcbiAgICogVGhpcyBpbnN0YW5jZSB0eXBlIGNhbiBiZSB1c2VkIG9ubHkgaW4gUkRTLiBJdCBpcyBub3Qgc3VwcG9ydGVkIGluIEVDMi5cbiAgICovXG4gIFgyRyA9IFwieDJnXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzLCAybmQgZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqL1xuICBNRU1PUllfSU5URU5TSVZFXzJfR1JBVklUT04yX05WTUVfRFJJVkUgPSBcIm1lbW9yeS1pbnRlbnNpdmUtMi1ncmF2aXRvbjItbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnktaW50ZW5zaXZlIGluc3RhbmNlcywgMm5kIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29ycyBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKi9cbiAgWDJHRCA9IFwieDJnZFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnktaW50ZW5zaXZlIGluc3RhbmNlcyB3aXRoIGhpZ2hlciBuZXR3b3JrIGJhbmR3aXRoLCBsb2NhbCBOVk1FIGRyaXZlLCBhbmQgZXh0ZW5kZWQgbWVtb3J5LiBJbnRlbCBYZW9uIFNjYWxhYmxlIChJY2UgTGFrZSkgcHJvY2Vzc29yc1xuICAgKi9cbiAgTUVNT1JZX0lOVEVOU0lWRV8yX1hUX0lOVEVMID0gXCJtZW1vcnlfaW50ZW5zaXZlXzJfeHRfaW50ZWxcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMgd2l0aCBoaWdoZXIgbmV0d29yayBiYW5kd2l0aCwgbG9jYWwgTlZNRSBkcml2ZSwgYW5kIGV4dGVuZGVkIG1lbW9yeS4gSW50ZWwgWGVvbiBTY2FsYWJsZSAoSWNlIExha2UpIHByb2Nlc3NvcnNcbiAgICovXG4gIFgySUVETiA9IFwieDJpZWRuXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzIHdpdGggaGlnaGVyIG5ldHdvcmsgYmFuZHdpdGggYW5kIGxvY2FsIE5WTUUgZHJpdmUsIEludGVsIFhlb24gU2NhbGFibGUgKEljZSBMYWtlKSBwcm9jZXNzb3JzXG4gICAqL1xuICBNRU1PUllfSU5URU5TSVZFXzJfSU5URUwgPSBcIm1lbW9yeV9pbnRlbnNpdmVfMl9pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnktaW50ZW5zaXZlIGluc3RhbmNlcyB3aXRoIGhpZ2hlciBuZXR3b3JrIGJhbmR3aXRoIGFuZCBsb2NhbCBOVk1FIGRyaXZlLCBJbnRlbCBYZW9uIFNjYWxhYmxlIChJY2UgTGFrZSkgcHJvY2Vzc29yc1xuICAgKi9cbiAgWDJJRE4gPSBcIngyaWRuXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzIHdpdGggaGlnaGVyIG5ldHdvcmsgYmFuZHdpdGggYW5kIHNpbmdsZS10aHJlYWRlZCBwZXJmb3JtYW5jZSwgSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzXG4gICAqL1xuICBNRU1PUllfSU5URU5TSVZFXzJfWFRaX0lOVEVMID0gXCJtZW1vcnlfaW50ZW5zaXZlXzJfeHR6X2ludGVsXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzIHdpdGggaGlnaGVyIG5ldHdvcmsgYmFuZHdpdGggYW5kIHNpbmdsZS10aHJlYWRlZCBwZXJmb3JtYW5jZSwgSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzXG4gICAqL1xuICBYMklFWk4gPSBcIngyaWV6blwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnktaW50ZW5zaXZlIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEdyYXZpdG9uNCBwcm9jZXNzb3JzLCA4dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZX0lOVEVOU0lWRV84X0dSQVZJVE9OID0gXCJtZW1vcnktaW50ZW5zaXZlLTgtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMgcG93ZXJlZCBieSBHcmF2aXRvbjQgcHJvY2Vzc29ycywgOHRoIGdlbmVyYXRpb25cbiAgICovXG4gIFg4RyA9IFwieDhnXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlcyB3aXRoIGN1c3RvbWl6YWJsZSBoYXJkd2FyZSBhY2NlbGVyYXRpb24sIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBGUEdBMSA9IFwiZnBnYTFcIixcblxuICAvKipcbiAgICogSW5zdGFuY2VzIHdpdGggY3VzdG9taXphYmxlIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiwgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEYxID0gXCJmMVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZXMgd2l0aCBjdXN0b21pemFibGUgaGFyZHdhcmUgYWNjZWxlcmF0aW9uLCAybmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgRlBHQTIgPSBcImZwZ2EyXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlcyB3aXRoIGN1c3RvbWl6YWJsZSBoYXJkd2FyZSBhY2NlbGVyYXRpb24sIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBGMiA9IFwiZjJcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEdSQVBISUNTM19TTUFMTCA9IFwiZ3JhcGhpY3MzLXNtYWxsXCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBHM1MgPSBcImczc1wiLFxuXG4gIC8qKlxuICAgKiBHcmFwaGljcy1vcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgR1JBUEhJQ1MzID0gXCJncmFwaGljczNcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEczID0gXCJnM1wiLFxuXG4gIC8qKlxuICAgKiBHcmFwaGljcy1vcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHUkFQSElDUzRfTlZNRV9EUklWRV9ISUdIX1BFUkZPUk1BTkNFID0gXCJncmFwaGljczQtbnZtZS1kcml2ZS1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIEc0RE4gPSBcImc0ZG5cIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQyBBbmQgUmFkZW9uIFBybyBHUFUgKE5BVkkpIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIEdSQVBISUNTNF9BTURfTlZNRV9EUklWRSA9IFwiZ3JhcGhpY3M0LWFtZC1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMgQW5kIFJhZGVvbiBQcm8gR1BVIChOQVZJKSB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHNEFEID0gXCJnNGFkXCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHUkFQSElDUzUgPSBcImdyYXBoaWNzNVwiLFxuXG4gIC8qKlxuICAgKiBHcmFwaGljcy1vcHRpbWl6ZWQgaW5zdGFuY2VzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgRzUgPSBcImc1XCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBBV1MgR3Jhdml0b24yIFByb2Nlc3NvcnMgYW5kIE5WSURJQSBUNEcgVGVuc29yIENvcmUgR1BVcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEdSQVBISUNTNV9HUkFWSVRPTjIgPSBcImdyYXBoaWNzNS1ncmF2aXRvbjJcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEFXUyBHcmF2aXRvbjIgUHJvY2Vzc29ycyBhbmQgTlZJRElBIFQ0RyBUZW5zb3IgQ29yZSBHUFVzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgRzVHID0gXCJnNWdcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIEdSQVBISUNTNiA9IFwiZ3JhcGhpY3M2XCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMsIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHNiA9IFwiZzZcIixcblxuICAvKipcbiAgICogQ29zdC1lZmZpY2llbnQgR1BVLWJhc2VkIGluc3RhbmNlcyBmb3IgQUkgaW5mZXJlbmNlIGFuZCBzcGF0aWFsIGNvbXB1dGluZyB3b3JrbG9hZHMsIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHUkFQSElDUzZfRUZGSUNJRU5UID0gXCJncmFwaGljczYtZWZmaWNpZW50XCIsXG5cbiAgLyoqXG4gICAqIENvc3QtZWZmaWNpZW50IEdQVS1iYXNlZCBpbnN0YW5jZXMgZm9yIEFJIGluZmVyZW5jZSBhbmQgc3BhdGlhbCBjb21wdXRpbmcgd29ya2xvYWRzLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgRzZFID0gXCJnNmVcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb25cbiAgICogR3I2IGluc3RhbmNlcyBvZmZlciBhIDE6OCB2Q1BVIHRvIFJBTSByYXRpbywgbWFraW5nIHRoZW0gYmV0dGVyIHN1aXRlZCBmb3IgZ3JhcGhpY3Mgd29ya2xvYWRzIHdpdGggaGlnaGVyIG1lbW9yeSByZXF1aXJlbWVudHMuXG4gICAqL1xuICBHUkFQSElDU19SQU1fNiA9IFwiZ3JhcGhpY3MtcmFtLTZcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb25cbiAgICogR3I2IGluc3RhbmNlcyBvZmZlciBhIDE6OCB2Q1BVIHRvIFJBTSByYXRpbywgbWFraW5nIHRoZW0gYmV0dGVyIHN1aXRlZCBmb3IgZ3JhcGhpY3Mgd29ya2xvYWRzIHdpdGggaGlnaGVyIG1lbW9yeSByZXF1aXJlbWVudHMuXG4gICAqL1xuICBHUjYgPSBcImdyNlwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBQQVJBTExFTDIgPSBcInBhcmFsbGVsMlwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBQMiA9IFwicDJcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgUEFSQUxMRUwzID0gXCJwYXJhbGxlbDNcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgUDMgPSBcInAzXCIsXG5cbiAgLyoqXG4gICAqIFBhcmFsbGVsLXByb2Nlc3Npbmcgb3B0aW1pemVkIGluc3RhbmNlcyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgUEFSQUxMRUwzX05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRSA9IFwicGFyYWxsZWwzLW52bWUtZHJpdmUtaGlnaC1wZXJmb3JtYW5jZVwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIFAzRE4gPSBcInAzZG5cIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgZXh0ZW5kZWQsIDR0aCBnZW5lcmF0aW9uIChpbiBkZXZlbG9wZXIgcHJldmlldylcbiAgICovXG4gIFBBUkFMTEVMNF9OVk1FX0RSSVZFX0VYVEVOREVEID0gXCJwYXJhbGxlbDQtbnZtZS1kcml2ZS1leHRlbmRlZFwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCBleHRlbmRlZCwgNHRoIGdlbmVyYXRpb24gKGluIGRldmVsb3BlciBwcmV2aWV3KVxuICAgKi9cbiAgUDRERSA9IFwicDRkZVwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBQQVJBTExFTDQgPSBcInBhcmFsbGVsNFwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBQNEQgPSBcInA0ZFwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBOVklESUEgSDEwMCBUZW5zb3IgQ29yZSBHUFVzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUEFSQUxMRUw1ID0gXCJwYXJhbGxlbDVcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgTlZJRElBIEgxMDAgVGVuc29yIENvcmUgR1BVcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFA1ID0gXCJwNVwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBOVklESUEgSDIwMCBUZW5zb3IgQ29yZSBHUFVzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUEFSQUxMRUw1X0VYVEVOREVEID0gXCJwYXJhbGxlbDUtZXh0ZW5kZWRcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUDVFID0gXCJwNWVcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZywgbmV0d29yay1vcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgTlZJRElBIEgyMDAgVGVuc29yIENvcmUgR1BVcywgNXRoIGdlbmVyYXRpb25cbiAgICogUDVlbiBpbnN0YW5jZXMgcGFpciBOVklESUEgSDIwMCBUZW5zb3IgQ29yZSBHUFVzIHdpdGggSW50ZWwgU2FwcGhpcmUgUmFwaWRzIENQVSwgZW5hYmxpbmcgR2VuNSBQQ0llIGJldHdlZW4gQ1BVIGFuZCBHUFVcbiAgICovXG4gIFBBUkFMTEVMNV9FWFRFTkRFRF9ORVRXT1JLID0gXCJwYXJhbGxlbDUtZXh0ZW5kZWQtbmV0d29ya1wiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBQNUVOID0gXCJwNWVuXCIsXG5cbiAgLyoqXG4gICAqIEFybSBwcm9jZXNzb3IgYmFzZWQgaW5zdGFuY2VzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgQVJNMSA9IFwiYXJtMVwiLFxuXG4gIC8qKlxuICAgKiBBcm0gcHJvY2Vzc29yIGJhc2VkIGluc3RhbmNlcywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEExID0gXCJhMVwiLFxuXG4gIC8qKlxuICAgKiBBcm0gcHJvY2Vzc29yIGJhc2VkIGluc3RhbmNlcywgMm5kIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJENl9HUkFWSVRPTiA9IFwic3RhbmRhcmQ2LWdyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIEFybSBwcm9jZXNzb3IgYmFzZWQgaW5zdGFuY2VzLCAybmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgTTZHID0gXCJtNmdcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIChJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgU1RBTkRBUkQ2X0lOVEVMID0gXCJzdGFuZGFyZDYtaW50ZWxcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIChJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgTTZJID0gXCJtNmlcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIChJY2UgTGFrZSkgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA2dGggZ2VuZXJhdGlvbi5cbiAgICovXG4gIFNUQU5EQVJENl9JTlRFTF9OVk1FX0RSSVZFID0gXCJzdGFuZGFyZDYtaW50ZWwtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgKEljZSBMYWtlKSB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgTTZJRCA9IFwibTZpZFwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHBvd2VyZWQgYnkgSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChjb2RlIG5hbWVkIEljZSBMYWtlKSwgNnRoIGdlbmVyYXRpb24uXG4gICAqL1xuICBTVEFOREFSRDZfSU5URUxfSElHSF9QRVJGT1JNQU5DRSA9IFwic3RhbmRhcmQ2LWludGVsLWhpZ2gtcGVyZm9ybWFuY2VcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgTTZJTiA9IFwibTZpblwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgU1RBTkRBUkQ2X0lOVEVMX05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRSA9IFwic3RhbmRhcmQ2LWludGVsLW52bWUtZHJpdmUtaGlnaC1wZXJmb3JtYW5jZVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgTTZJRE4gPSBcIm02aWRuXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBiYXNlZCBvbiAzcmQgR2VuIEFNRCBFUFlDIHByb2Nlc3NvcnMsIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgU1RBTkRBUkQ2X0FNRCA9IFwic3RhbmRhcmQ2LWFtZFwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgYmFzZWQgb24gM3JkIEdlbiBBTUQgRVBZQyBwcm9jZXNzb3JzLCA2dGggZ2VuZXJhdGlvbi5cbiAgICovXG4gIE02QSA9IFwibTZhXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29ycyBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKi9cbiAgU1RBTkRBUkQ2X0dSQVZJVE9OMl9OVk1FX0RSSVZFID0gXCJzdGFuZGFyZDYtZ3Jhdml0b24yLW52bWUtZHJpdmVcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqL1xuICBNNkdEID0gXCJtNmdkXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIFNUQU5EQVJEN19HUkFWSVRPTiA9IFwic3RhbmRhcmQ3LWdyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIE03RyA9IFwibTdnXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgOHRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjQgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChGcmFua2Z1cnQpLlxuICAgKi9cbiAgU1RBTkRBUkQ4X0dSQVZJVE9OID0gXCJzdGFuZGFyZDgtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzLCA4dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uNCBwcm9jZXNzb3JzXG4gICAqXG4gICAqIFRoaXMgaW5zdGFuY2UgY2xhc3MgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIFVTIEVhc3QgKE9oaW8pLCBVUyBFYXN0IChOLiBWaXJnaW5pYSksIFVTIFdlc3QgKE9yZWdvbiksIGFuZCBFdXJvcGUgKEZyYW5rZnVydCkuXG4gICAqL1xuICBNOEcgPSBcIm04Z1wiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMsIDd0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24zIHByb2Nlc3NvcnMgYW5kIGxvY2FsIE5WTUUgZHJpdmVcbiAgICpcbiAgICogVGhpcyBpbnN0YW5jZSBjbGFzcyBpcyBjdXJyZW50bHkgb25seSBhdmFpbGFibGUgaW4gVVMgRWFzdCAoT2hpbyksIFVTIEVhc3QgKE4uIFZpcmdpbmlhKSwgVVMgV2VzdCAoT3JlZ29uKSwgYW5kIEV1cm9wZSAoSXJlbGFuZCkuXG4gICAqL1xuICBTVEFOREFSRDdfR1JBVklUT04zX05WTUVfRFJJVkUgPSBcInN0YW5kYXJkNy1ncmF2aXRvbjMtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMsIDd0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24zIHByb2Nlc3NvcnMgYW5kIGxvY2FsIE5WTUUgZHJpdmVcbiAgICpcbiAgICogVGhpcyBpbnN0YW5jZSBjbGFzcyBpcyBjdXJyZW50bHkgb25seSBhdmFpbGFibGUgaW4gVVMgRWFzdCAoT2hpbyksIFVTIEVhc3QgKE4uIFZpcmdpbmlhKSwgVVMgV2VzdCAoT3JlZ29uKSwgYW5kIEV1cm9wZSAoSXJlbGFuZCkuXG4gICAqL1xuICBNN0dEID0gXCJtN2dkXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyB3aXRoIGhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJEN19JTlRFTCA9IFwic3RhbmRhcmQ3LWludGVsXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyB3aXRoIGhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIE03SSA9IFwibTdpXCIsXG5cbiAgLyoqXG4gICAqIEZsZXhpYmxlIGluc3RhbmNlcyB3aXRoIGhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICogVGhlIE03aS1GbGV4IGluc3RhbmNlcyBkZWxpdmVyIGEgYmFzZWxpbmUgb2YgNDAlIENQVSBwZXJmb3JtYW5jZSwgYW5kIGNhbiBzY2FsZSB1cCB0byBmdWxsIENQVSBwZXJmb3JtYW5jZSA5NSUgb2YgdGhlIHRpbWVcbiAgICovXG4gIFNUQU5EQVJEN19JTlRFTF9GTEVYID0gXCJzdGFuZGFyZDctaW50ZWwtZmxleFwiLFxuXG4gIC8qKlxuICAgKiBGbGV4aWJsZSBpbnN0YW5jZXMgd2l0aCBoaWdoIG1lbW9yeSBhbmQgY29tcHV0ZSBjYXBhY2l0eSBiYXNlZCBvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIChTYXBwaGlyZSBSYXBpZHMpIHByb2Nlc3NvcnMsIDd0aCBnZW5lcmF0aW9uXG4gICAqIFRoZSBNN2ktRmxleCBpbnN0YW5jZXMgZGVsaXZlciBhIGJhc2VsaW5lIG9mIDQwJSBDUFUgcGVyZm9ybWFuY2UsIGFuZCBjYW4gc2NhbGUgdXAgdG8gZnVsbCBDUFUgcGVyZm9ybWFuY2UgOTUlIG9mIHRoZSB0aW1lXG4gICAqL1xuICBNN0lfRkxFWCA9IFwibTdpLWZsZXhcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGJhc2VkIG9uIDR0aCBnZW5lcmF0aW9uIEFNRCBFUFlDIChjb2RlbmFtZSBHZW5vYSksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVEFOREFSRDdfQU1EID0gXCJzdGFuZGFyZDctYW1kXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBiYXNlZCBvbiA0dGggZ2VuZXJhdGlvbiBBTUQgRVBZQyAoY29kZW5hbWUgR2Vub2EpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTTdBID0gXCJtN2FcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgYW5kIGNvbXB1dGUgY2FwYWNpdHkgaW5zdGFuY2VzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9DT01QVVRFX01FTU9SWTEgPSBcImhpZ2gtY29tcHV0ZS1tZW1vcnkxXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGluc3RhbmNlcywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIFoxRCA9IFwiejFkXCIsXG5cbiAgLyoqXG4gICAqIEluZmVyZW50aWEgQ2hpcHMgYmFzZWQgaW5zdGFuY2VzIGZvciBtYWNoaW5lIGxlYXJuaW5nIGluZmVyZW5jZSBhcHBsaWNhdGlvbnMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTkZFUkVOQ0UxID0gXCJpbmZlcmVuY2UxXCIsXG5cbiAgLyoqXG4gICAqIEluZmVyZW50aWEgQ2hpcHMgYmFzZWQgaW5zdGFuY2VzIGZvciBtYWNoaW5lIGxlYXJuaW5nIGluZmVyZW5jZSBhcHBsaWNhdGlvbnMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTkYxID0gXCJpbmYxXCIsXG5cbiAgLyoqXG4gICAqIEluZmVyZW50aWEgQ2hpcHMgYmFzZWQgaW5zdGFuY2VzIGZvciBtYWNoaW5lIGxlYXJuaW5nIGluZmVyZW5jZSBhcHBsaWNhdGlvbnMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTkZFUkVOQ0UyID0gXCJpbmZlcmVuY2UyXCIsXG5cbiAgLyoqXG4gICAqIEluZmVyZW50aWEgQ2hpcHMgYmFzZWQgaW5zdGFuY2VzIGZvciBtYWNoaW5lIGxlYXJuaW5nIGluZmVyZW5jZSBhcHBsaWNhdGlvbnMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTkYyID0gXCJpbmYyXCIsXG5cbiAgLyoqXG4gICAqIE1hY2ludG9zaCBpbnN0YW5jZXMgYnVpbHQgb24gQXBwbGUgTWFjIG1pbmkgY29tcHV0ZXJzLCAxc3QgZ2VuZXJhdGlvbiB3aXRoIEludGVsIHByb2Nlc29yc1xuICAgKi9cbiAgTUFDSU5UT1NIMV9JTlRFTCA9IFwibWFjaW50b3NoMS1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBNYWNpbnRvc2ggaW5zdGFuY2VzIGJ1aWx0IG9uIEFwcGxlIE1hYyBtaW5pIGNvbXB1dGVycywgMXN0IGdlbmVyYXRpb24gd2l0aCBJbnRlbCBwcm9jZXNvcnNcbiAgICovXG4gIE1BQzEgPSBcIm1hYzFcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIwIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0xIHByb2Nlc3NvcnNcbiAgICovXG4gIE1BQ0lOVE9TSDJfTTEgPSBcIm1hY2ludG9zaDItbTFcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIwIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0xIHByb2Nlc3NvcnNcbiAgICovXG4gIE1BQzIgPSBcIm1hYzJcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIzIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0yIHByb2Nlc3NvcnNcbiAgICovXG4gIE1BQ0lOVE9TSDJfTTIgPSBcIm1hY2ludG9zaDItbTJcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIzIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0yIHByb2Nlc3NvcnNcbiAgICovXG4gIE1BQzJfTTIgPSBcIm1hYzItbTJcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIzIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0yIFBybyBwcm9jZXNzb3JzXG4gICAqL1xuICBNQUNJTlRPU0gyX00yX1BSTyA9IFwibWFjaW50b3NoMi1tMi1wcm9cIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIzIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0yIFBybyBwcm9jZXNzb3JzXG4gICAqL1xuICBNQUMyX00yUFJPID0gXCJtYWMyLW0ycHJvXCIsXG5cbiAgLyoqXG4gICAqIE1hY2ludG9zaCBpbnN0YW5jZXMgYnVpbHQgb24gMjAyMiBNYWMgU3R1ZGlvIGhhcmR3YXJlIHBvd2VyZWQgYnkgQXBwbGUgc2lsaWNvbiBNMSBVbHRyYSBwcm9jZXNzb3JzXG4gICAqL1xuICBNQUNJTlRPU0gyX00xX1VMVFJBID0gXCJtYWNpbnRvc2gyLW0xLXVsdHJhXCIsXG5cbiAgLyoqXG4gICAqIE1hY2ludG9zaCBpbnN0YW5jZXMgYnVpbHQgb24gMjAyMiBNYWMgU3R1ZGlvIGhhcmR3YXJlIHBvd2VyZWQgYnkgQXBwbGUgc2lsaWNvbiBNMSBVbHRyYSBwcm9jZXNzb3JzXG4gICAqL1xuICBNQUMyX00xVUxUUkEgPSBcIm1hYzItbTF1bHRyYVwiLFxuXG4gIC8qKlxuICAgKiBNdWx0aS1zdHJlYW0gdmlkZW8gdHJhbnNjb2RpbmcgaW5zdGFuY2VzIGZvciByZXNvbHV0aW9ucyB1cCB0byA0SyBVSEQsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBWSURFT19UUkFOU0NPRElORzEgPSBcInZpZGVvLXRyYW5zY29kaW5nMVwiLFxuXG4gIC8qKlxuICAgKiBNdWx0aS1zdHJlYW0gdmlkZW8gdHJhbnNjb2RpbmcgaW5zdGFuY2VzIGZvciByZXNvbHV0aW9ucyB1cCB0byA0SyBVSEQsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBWVDEgPSBcInZ0MVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBiYXNlZCBvbiBBTUQgRVBZQywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfUEVSRk9STUFOQ0VfQ09NUFVUSU5HNl9BTUQgPSBcImhpZ2gtcGVyZm9ybWFuY2UtY29tcHV0aW5nNi1hbWRcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgYmFzZWQgb24gQU1EIEVQWUMsIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBIUEM2QSA9IFwiaHBjNmFcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGJhc2VkIG9uIDZ0aCBnZW5lcmF0aW9uIHdpdGggSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzICgzcmQgZ2VuZXJhdGlvbiBwcm9jZXNzb3JzIGNvZGUgbmFtZWQgSWNlIExha2UpLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9QRVJGT1JNQU5DRV9DT01QVVRJTkc2X0lOVEVMX05WTUVfRFJJVkUgPSBcImhpZ2gtcGVyZm9ybWFuY2UtY29tcHV0aW5nNi1pbnRlbC1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBiYXNlZCBvbiA2dGggZ2VuZXJhdGlvbiB3aXRoIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoM3JkIGdlbmVyYXRpb24gcHJvY2Vzc29ycyBjb2RlIG5hbWVkIEljZSBMYWtlKSwgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIEhQQzZJRCA9IFwiaHBjNmlkXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIGJhc2VkIG9uIEFNRCBFUFlDLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9QRVJGT1JNQU5DRV9DT01QVVRJTkc3X0FNRCA9IFwiaGlnaC1wZXJmb3JtYW5jZS1jb21wdXRpbmc3LWFtZFwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBiYXNlZCBvbiBBTUQgRVBZQywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIEhQQzdBID0gXCJocGM3YVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBiYXNlZCBvbiBHcmF2aXRvbiwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfUEVSRk9STUFOQ0VfQ09NUFVUSU5HN19HUkFWSVRPTiA9IFwiaGlnaC1wZXJmb3JtYW5jZS1jb21wdXRpbmc3LWdyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIGJhc2VkIG9uIEdyYXZpdG9uLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSFBDN0cgPSBcImhwYzdnXCIsXG5cbiAgLyoqXG4gICAqIERlZXAgbGVhcm5pbmcgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR2F1ZGkgYWNjZWxlcmF0b3JzIGZyb20gSGFiYW5hIExhYnMgKGFuIEludGVsIGNvbXBhbnkpLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgREVFUF9MRUFSTklORzEgPSBcImRlZXAtbGVhcm5pbmcxXCIsXG5cbiAgLyoqXG4gICAqIERlZXAgbGVhcm5pbmcgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR2F1ZGkgYWNjZWxlcmF0b3JzIGZyb20gSGFiYW5hIExhYnMgKGFuIEludGVsIGNvbXBhbnkpLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgREwxID0gXCJkbDFcIixcblxuICAvKipcbiAgICogRGVlcCBsZWFybmluZyBpbnN0YW5jZXMgcG93ZXJlZCBieSBRdWFsY29tbSBBSSAxMDAgU3RhbmRhcmQgYWNjZWxlcmF0b3JzLCAybmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgREVFUF9MRUFSTklORzJfUVVBTENPTU0gPSBcImRlZXAtbGVhcm5pbmcyLXF1YWxjb21tXCIsXG5cbiAgLyoqXG4gICAqIERlZXAgbGVhcm5pbmcgaW5zdGFuY2VzIHBvd2VyZWQgYnkgUXVhbGNvbW0gQUkgMTAwIFN0YW5kYXJkIGFjY2VsZXJhdG9ycywgMm5kIGdlbmVyYXRpb25cbiAgICovXG4gIERMMlEgPSBcImRsMnFcIixcbn1cblxuLyoqXG4gKiBJZGVudGlmaWVzIGFuIGluc3RhbmNlJ3MgQ1BVIGFyY2hpdGVjdHVyZVxuICovXG5leHBvcnQgZW51bSBJbnN0YW5jZUFyY2hpdGVjdHVyZSB7XG4gIC8qKlxuICAgKiBBUk02NCBhcmNoaXRlY3R1cmVcbiAgICovXG4gIEFSTV82NCA9IFwiYXJtNjRcIixcblxuICAvKipcbiAgICogeDg2LTY0IGFyY2hpdGVjdHVyZVxuICAgKi9cbiAgWDg2XzY0ID0gXCJ4ODZfNjRcIixcbn1cblxuLyoqXG4gKiBXaGF0IHNpemUgb2YgaW5zdGFuY2UgdG8gdXNlXG4gKi9cbmV4cG9ydCBlbnVtIEluc3RhbmNlU2l6ZSB7XG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIE5BTk8gKG5hbm8pXG4gICAqL1xuICBOQU5PID0gXCJuYW5vXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgTUlDUk8gKG1pY3JvKVxuICAgKi9cbiAgTUlDUk8gPSBcIm1pY3JvXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgU01BTEwgKHNtYWxsKVxuICAgKi9cbiAgU01BTEwgPSBcInNtYWxsXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgTUVESVVNIChtZWRpdW0pXG4gICAqL1xuICBNRURJVU0gPSBcIm1lZGl1bVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIExBUkdFIChsYXJnZSlcbiAgICovXG4gIExBUkdFID0gXCJsYXJnZVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRSAoeGxhcmdlKVxuICAgKi9cbiAgWExBUkdFID0gXCJ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UyICgyeGxhcmdlKVxuICAgKi9cbiAgWExBUkdFMiA9IFwiMnhsYXJnZVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRTMgKDN4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UzID0gXCIzeGxhcmdlXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgWExBUkdFNCAoNHhsYXJnZSlcbiAgICovXG4gIFhMQVJHRTQgPSBcIjR4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U2ICg2eGxhcmdlKVxuICAgKi9cbiAgWExBUkdFNiA9IFwiNnhsYXJnZVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRTggKDh4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0U4ID0gXCI4eGxhcmdlXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgWExBUkdFOSAoOXhsYXJnZSlcbiAgICovXG4gIFhMQVJHRTkgPSBcIjl4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxMCAoMTB4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UxMCA9IFwiMTB4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxMiAoMTJ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UxMiA9IFwiMTJ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxNiAoMTZ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UxNiA9IFwiMTZ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxOCAoMTh4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UxOCA9IFwiMTh4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UyNCAoMjR4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UyNCA9IFwiMjR4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UzMiAoMzJ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UzMiA9IFwiMzJ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U0OCAoNDh4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0U0OCA9IFwiNDh4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U1NiAoNTZ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0U1NiA9IFwiNTZ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U5NiAoOTZ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0U5NiA9IFwiOTZ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxMTIgKDExMnhsYXJnZSlcbiAgICovXG4gIFhMQVJHRTExMiA9IFwiMTEyeGxhcmdlXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgWExBUkdFMjI0ICgyMjR4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UyMjQgPSBcIjIyNHhsYXJnZVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRTQ4MCAoNDgweGxhcmdlKVxuICAgKi9cbiAgWExBUkdFNDgwID0gXCI0ODB4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBNRVRBTCAobWV0YWwpXG4gICAqL1xuICBNRVRBTCA9IFwibWV0YWxcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxNk1FVEFMIChtZXRhbC0xNnhsKVxuICAgKi9cbiAgWExBUkdFMTZNRVRBTCA9IFwibWV0YWwtMTZ4bFwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRTI0TUVUQUwgKG1ldGFsLTI0eGwpXG4gICAqL1xuICBYTEFSR0UyNE1FVEFMID0gXCJtZXRhbC0yNHhsXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgWExBUkdFMzJNRVRBTCAobWV0YWwtMzJ4bClcbiAgICovXG4gIFhMQVJHRTMyTUVUQUwgPSBcIm1ldGFsLTMyeGxcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U0OE1FVEFMIChtZXRhbC00OHhsKVxuICAgKi9cbiAgWExBUkdFNDhNRVRBTCA9IFwibWV0YWwtNDh4bFwiLFxufVxuXG4vKipcbiAqIEluc3RhbmNlIHR5cGUgZm9yIEVDMiBpbnN0YW5jZXNcbiAqXG4gKiBUaGlzIGNsYXNzIHRha2VzIGEgbGl0ZXJhbCBzdHJpbmcsIGdvb2QgaWYgeW91IGFscmVhZHlcbiAqIGtub3cgdGhlIGlkZW50aWZpZXIgb2YgdGhlIHR5cGUgeW91IHdhbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnN0YW5jZVR5cGUge1xuICAvKipcbiAgICogSW5zdGFuY2UgdHlwZSBmb3IgRUMyIGluc3RhbmNlc1xuICAgKlxuICAgKiBUaGlzIGNsYXNzIHRha2VzIGEgY29tYmluYXRpb24gb2YgYSBjbGFzcyBhbmQgc2l6ZS5cbiAgICpcbiAgICogQmUgYXdhcmUgdGhhdCBub3QgYWxsIGNvbWJpbmF0aW9ucyBvZiBjbGFzcyBhbmQgc2l6ZSBhcmUgYXZhaWxhYmxlLCBhbmQgbm90IGFsbFxuICAgKiBjbGFzc2VzIGFyZSBhdmFpbGFibGUgaW4gYWxsIHJlZ2lvbnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKGluc3RhbmNlQ2xhc3M6IEluc3RhbmNlQ2xhc3MsIGluc3RhbmNlU2l6ZTogSW5zdGFuY2VTaXplKSB7XG4gICAgLy8gSlNJSSBkb2VzIG5vdCBhbGxvdyBlbnVtIHR5cGVzIHRvIGhhdmUgc2FtZSB2YWx1ZS4gU28gdG8gc3VwcG9ydCB0aGUgZW51bSwgdGhlIGVudW0gd2l0aCBzYW1lIHZhbHVlIGhhcyB0byBiZSBtYXBwZWQgbGF0ZXIuXG4gICAgY29uc3QgaW5zdGFuY2VDbGFzc01hcDogUmVjb3JkPEluc3RhbmNlQ2xhc3MsIHN0cmluZz4gPSB7XG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDNdOiBcIm0zXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NM106IFwibTNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENF06IFwibTRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk00XTogXCJtNFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1XTogXCJtNVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTVdOiBcIm01XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDVfTlZNRV9EUklWRV06IFwibTVkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNURdOiBcIm01ZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1X0FNRF06IFwibTVhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNUFdOiBcIm01YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1X0FNRF9OVk1FX0RSSVZFXTogXCJtNWFkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNUFEXTogXCJtNWFkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDVfSElHSF9QRVJGT1JNQU5DRV06IFwibTVuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNU5dOiBcIm01blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1X05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRV06IFwibTVkblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTVETl06IFwibTVkblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1X0hJR0hfQ09NUFVURV06IFwibTV6blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTVaTl06IFwibTV6blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZM106IFwicjNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlIzXTogXCJyM1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNF06IFwicjRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI0XTogXCJyNFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNV06IFwicjVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI1XTogXCJyNVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNl9BTURdOiBcInI2YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjZBXTogXCJyNmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTZfSU5URUxdOiBcInI2aVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjZJXTogXCJyNmlcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTZfSU5URUxfTlZNRV9EUklWRV06IFwicjZpZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjZJRF06IFwicjZpZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNl9JTlRFTF9ISUdIX1BFUkZPUk1BTkNFXTogXCJyNmluXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5SNklOXTogXCJyNmluXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUlk2X0lOVEVMX05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRV06IFwicjZpZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI2SUROXTogXCJyNmlkblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNV9ISUdIX1BFUkZPUk1BTkNFXTogXCJyNW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI1Tl06IFwicjVuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUlk1X05WTUVfRFJJVkVdOiBcInI1ZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjVEXTogXCJyNWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTVfTlZNRV9EUklWRV9ISUdIX1BFUkZPUk1BTkNFXTogXCJyNWRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5SNUROXTogXCJyNWRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUlk1X0FNRF06IFwicjVhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5SNUFdOiBcInI1YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNV9BTURfTlZNRV9EUklWRV06IFwicjVhZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjVBRF06IFwicjVhZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSElHSF9NRU1PUllfM1RCXzFdOiBcInUtM3RiMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVV8zVEIxXTogXCJ1LTN0YjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZXzZUQl8xXTogXCJ1LTZ0YjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlVfNlRCMV06IFwidS02dGIxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX01FTU9SWV85VEJfMV06IFwidS05dGIxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VXzlUQjFdOiBcInUtOXRiMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSElHSF9NRU1PUllfMTJUQl8xXTogXCJ1LTEydGIxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VXzEyVEIxXTogXCJ1LTEydGIxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX01FTU9SWV8xOFRCXzFdOiBcInUtMTh0YjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlVfMThUQjFdOiBcInUtMTh0YjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZXzI0VEJfMV06IFwidS0yNHRiMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVV8yNFRCMV06IFwidS0yNHRiMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSElHSF9NRU1PUllfNlRCXzddOiBcInU3aS02dGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlU3SV82VEJdOiBcInU3aS02dGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZXzhUQl83XTogXCJ1N2ktOHRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VN0lfOFRCXTogXCJ1N2ktOHRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX01FTU9SWV8xMlRCXzddOiBcInU3aS0xMnRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VN0lfMTJUQl06IFwidTdpLTEydGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS18xNlRCXzddOiBcInU3aW4tMTZ0YlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVTdJTl8xNlRCXTogXCJ1N2luLTE2dGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS18yNFRCXzddOiBcInU3aW4tMjR0YlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVTdJTl8yNFRCXTogXCJ1N2luLTI0dGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS18zMlRCXzddOiBcInU3aW4tMzJ0YlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVTdJTl8zMlRCXTogXCJ1N2luLTMydGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS19IUEVfMzJUQl83XTogXCJ1N2luaC0zMnRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VN0lOSF8zMlRCXTogXCJ1N2luaC0zMnRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUlk1X0VCU19PUFRJTUlaRURdOiBcInI1YlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjVCXTogXCJyNWJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTZfR1JBVklUT05dOiBcInI2Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjZHXTogXCJyNmdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTZfR1JBVklUT04yX05WTUVfRFJJVkVdOiBcInI2Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI2R0RdOiBcInI2Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTdfR1JBVklUT05dOiBcInI3Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjdHXTogXCJyN2dcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTdfR1JBVklUT04zX05WTUVfRFJJVkVdOiBcInI3Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI3R0RdOiBcInI3Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTdfSU5URUxfQkFTRV06IFwicjdpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5SN0ldOiBcInI3aVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZN19JTlRFTF06IFwicjdpelwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjdJWl06IFwicjdpelwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZN19BTURdOiBcInI3YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjdBXTogXCJyN2FcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWThfR1JBVklUT05dOiBcInI4Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjhHXTogXCJyOGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEUzXTogXCJjM1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzNdOiBcImMzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFNF06IFwiYzRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM0XTogXCJjNFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURTVdOiBcImM1XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNV06IFwiYzVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU1X05WTUVfRFJJVkVdOiBcImM1ZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzVEXTogXCJjNWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU1X0FNRF06IFwiYzVhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNUFdOiBcImM1YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURTVfQU1EX05WTUVfRFJJVkVdOiBcImM1YWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM1QURdOiBcImM1YWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU1X0hJR0hfUEVSRk9STUFOQ0VdOiBcImM1blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzVOXTogXCJjNW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU2X0lOVEVMXTogXCJjNmlcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM2SV06IFwiYzZpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFNl9JTlRFTF9ISUdIX1BFUkZPUk1BTkNFXTogXCJjNmluXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNklOXTogXCJjNmluXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFNl9JTlRFTF9OVk1FX0RSSVZFXTogXCJjNmlkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNklEXTogXCJjNmlkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFNl9BTURdOiBcImM2YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzZBXTogXCJjNmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU2X0dSQVZJVE9OMl06IFwiYzZnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNkddOiBcImM2Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURTZfR1JBVklUT04yX05WTUVfRFJJVkVdOiBcImM2Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM2R0RdOiBcImM2Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU2X0dSQVZJVE9OMl9ISUdIX05FVFdPUktfQkFORFdJRFRIXTogXCJjNmduXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNkdOXTogXCJjNmduXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFN19HUkFWSVRPTjNdOiBcImM3Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzdHXTogXCJjN2dcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU3X0dSQVZJVE9OM19OVk1FX0RSSVZFXTogXCJjN2dkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DN0dEXTogXCJjN2dkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFN19HUkFWSVRPTjNfSElHSF9ORVRXT1JLX0JBTkRXSURUSF06IFwiYzdnblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzdHTl06IFwiYzdnblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURTdfSU5URUxdOiBcImM3aVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzdJXTogXCJjN2lcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU3X0lOVEVMX0ZMRVhdOiBcImM3aS1mbGV4XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DN0lfRkxFWF06IFwiYzdpLWZsZXhcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU3X0FNRF06IFwiYzdhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DN0FdOiBcImM3YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURThfR1JBVklUT040XTogXCJjOGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM4R106IFwiYzhnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVE9SQUdFMl06IFwiZDJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkQyXTogXCJkMlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RPUkFHRTNdOiBcImQzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5EM106IFwiZDNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUT1JBR0UzX0VOSEFOQ0VEX05FVFdPUktdOiBcImQzZW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkQzRU5dOiBcImQzZW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlRSQUlOSU5HX0FDQ0VMRVJBVE9SMV06IFwidHJuMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJOMV06IFwidHJuMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJBSU5JTkdfQUNDRUxFUkFUT1IxX0VOSEFOQ0VEX05FVFdPUktdOiBcInRybjFuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5UUk4xTl06IFwidHJuMW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlRSQUlOSU5HX0FDQ0VMRVJBVE9SMl06IFwidHJuMlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJOMl06IFwidHJuMlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJBSU5JTkdfQUNDRUxFUkFUT1IyX1VMVFJBU0VSVkVSXTogXCJ0cm4ydVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJOMlVdOiBcInRybjJ1XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVE9SQUdFX0NPTVBVVEVfMV06IFwiaDFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkgxXTogXCJoMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSU8zXTogXCJpM1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSTNdOiBcImkzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5JTzNfREVOU0VfTlZNRV9EUklWRV06IFwiaTNlblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSTNFTl06IFwiaTNlblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RPUkFHRTRfR1JBVklUT05dOiBcImk0Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSTRHXTogXCJpNGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUT1JBR0U0X0dSQVZJVE9OX05FVFdPUktfT1BUSU1JWkVEXTogXCJpbTRnblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSU00R05dOiBcImltNGduXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVE9SQUdFNF9HUkFWSVRPTl9ORVRXT1JLX1NUT1JBR0VfT1BUSU1JWkVEXTogXCJpczRnZW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklTNEdFTl06IFwiaXM0Z2VuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVE9SQUdFN19JTlRFTF9TVE9SQUdFX09QVElNSVpFRF06IFwiaTdpZVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSTdJRV06IFwiaTdpZVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RPUkFHRThfR1JBVklUT05dOiBcImk4Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSThHXTogXCJpOGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkJVUlNUQUJMRTJdOiBcInQyXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5UMl06IFwidDJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkJVUlNUQUJMRTNdOiBcInQzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5UM106IFwidDNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkJVUlNUQUJMRTNfQU1EXTogXCJ0M2FcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlQzQV06IFwidDNhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5CVVJTVEFCTEU0X0dSQVZJVE9OXTogXCJ0NGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlQ0R106IFwidDRnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUllfSU5URU5TSVZFXzFdOiBcIngxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMV06IFwieDFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWV9JTlRFTlNJVkVfMV9FWFRFTkRFRF06IFwieDFlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMUVdOiBcIngxZVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZX0lOVEVOU0lWRV8yX0dSQVZJVE9OMl06IFwieDJnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMkddOiBcIngyZ1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZX0lOVEVOU0lWRV8yX0dSQVZJVE9OMl9OVk1FX0RSSVZFXTogXCJ4MmdkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMkdEXTogXCJ4MmdkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5GUEdBMV06IFwiZjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkYxXTogXCJmMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuRlBHQTJdOiBcImYyXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5GMl06IFwiZjJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkdSQVBISUNTM19TTUFMTF06IFwiZzNzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HM1NdOiBcImczc1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuR1JBUEhJQ1MzXTogXCJnM1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuRzNdOiBcImczXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUkFQSElDUzRfTlZNRV9EUklWRV9ISUdIX1BFUkZPUk1BTkNFXTogXCJnNGRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HNEROXTogXCJnNGRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUkFQSElDUzRfQU1EX05WTUVfRFJJVkVdOiBcImc0YWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkc0QURdOiBcImc0YWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkdSQVBISUNTNV06IFwiZzVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkc1XTogXCJnNVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuR1JBUEhJQ1M1X0dSQVZJVE9OMl06IFwiZzVnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HNUddOiBcImc1Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuR1JBUEhJQ1M2XTogXCJnNlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuRzZdOiBcImc2XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUkFQSElDUzZfRUZGSUNJRU5UXTogXCJnNmVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkc2RV06IFwiZzZlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUkFQSElDU19SQU1fNl06IFwiZ3I2XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUjZdOiBcImdyNlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUEFSQUxMRUwyXTogXCJwMlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUDJdOiBcInAyXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QQVJBTExFTDNdOiBcInAzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QM106IFwicDNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlBBUkFMTEVMM19OVk1FX0RSSVZFX0hJR0hfUEVSRk9STUFOQ0VdOiBcInAzZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlAzRE5dOiBcInAzZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlBBUkFMTEVMNF9OVk1FX0RSSVZFX0VYVEVOREVEXTogXCJwNGRlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QNERFXTogXCJwNGRlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QQVJBTExFTDRdOiBcInA0ZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUDREXTogXCJwNGRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlBBUkFMTEVMNV06IFwicDVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlA1XTogXCJwNVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUEFSQUxMRUw1X0VYVEVOREVEXTogXCJwYXJhbGxlbDUtZXh0ZW5kZWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlA1RV06IFwicDVlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QQVJBTExFTDVfRVhURU5ERURfTkVUV09SS106IFwicGFyYWxsZWw1LWV4dGVuZGVkLW5ldHdvcmtcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlA1RU5dOiBcInA1ZW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkFSTTFdOiBcImExXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5BMV06IFwiYTFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENl9HUkFWSVRPTl06IFwibTZnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNkddOiBcIm02Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ2X0lOVEVMXTogXCJtNmlcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk02SV06IFwibTZpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDZfSU5URUxfTlZNRV9EUklWRV06IFwibTZpZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTZJRF06IFwibTZpZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ2X0lOVEVMX0hJR0hfUEVSRk9STUFOQ0VdOiBcIm02aW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk02SU5dOiBcIm02aW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENl9JTlRFTF9OVk1FX0RSSVZFX0hJR0hfUEVSRk9STUFOQ0VdOiBcIm02aWRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNklETl06IFwibTZpZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENl9BTURdOiBcIm02YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTZBXTogXCJtNmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENl9HUkFWSVRPTjJfTlZNRV9EUklWRV06IFwibTZnZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTZHRF06IFwibTZnZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ3X0dSQVZJVE9OXTogXCJtN2dcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk03R106IFwibTdnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDhfR1JBVklUT05dOiBcIm04Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTThHXTogXCJtOGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJEN19HUkFWSVRPTjNfTlZNRV9EUklWRV06IFwibTdnZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTdHRF06IFwibTdnZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ3X0lOVEVMXTogXCJtN2lcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk03SV06IFwibTdpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDdfSU5URUxfRkxFWF06IFwibTdpLWZsZXhcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk03SV9GTEVYXTogXCJtN2ktZmxleFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ3X0FNRF06IFwibTdhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NN0FdOiBcIm03YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSElHSF9DT01QVVRFX01FTU9SWTFdOiBcInoxZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuWjFEXTogXCJ6MWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklORkVSRU5DRTFdOiBcImluZjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklORjFdOiBcImluZjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklORkVSRU5DRTJdOiBcImluZjJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklORjJdOiBcImluZjJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQ0lOVE9TSDFfSU5URUxdOiBcIm1hYzFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQzFdOiBcIm1hYzFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQ0lOVE9TSDJfTTFdOiBcIm1hYzJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQzJdOiBcIm1hYzJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQ0lOVE9TSDJfTTJdOiBcIm1hYzItbTJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQzJfTTJdOiBcIm1hYzItbTJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQ0lOVE9TSDJfTTJfUFJPXTogXCJtYWMyLW0ycHJvXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NQUMyX00yUFJPXTogXCJtYWMyLW0ycHJvXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NQUNJTlRPU0gyX00xX1VMVFJBXTogXCJtYWMyLW0xdWx0cmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQzJfTTFVTFRSQV06IFwibWFjMi1tMXVsdHJhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5WSURFT19UUkFOU0NPRElORzFdOiBcInZ0MVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVlQxXTogXCJ2dDFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfUEVSRk9STUFOQ0VfQ09NUFVUSU5HNl9BTURdOiBcImhwYzZhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5IUEM2QV06IFwiaHBjNmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfUEVSRk9STUFOQ0VfQ09NUFVUSU5HNl9JTlRFTF9OVk1FX0RSSVZFXTogXCJocGM2aWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhQQzZJRF06IFwiaHBjNmlkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX1BFUkZPUk1BTkNFX0NPTVBVVElORzdfQU1EXTogXCJocGM3YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSFBDN0FdOiBcImhwYzdhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX1BFUkZPUk1BTkNFX0NPTVBVVElORzdfR1JBVklUT05dOiBcImhwYzdnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5IUEM3R106IFwiaHBjN2dcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkk0SV06IFwiaTRpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5JTzRfSU5URUxdOiBcImk0aVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuWDJJRUROXTogXCJ4MmllZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWV9JTlRFTlNJVkVfMl9YVF9JTlRFTF06IFwieDJpZWRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMklETl06IFwieDJpZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWV9JTlRFTlNJVkVfMl9JTlRFTF06IFwieDJpZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlgySUVaTl06IFwieDJpZXpuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUllfSU5URU5TSVZFXzhfR1JBVklUT05dOiBcIng4Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuWDhHXTogXCJ4OGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWV9JTlRFTlNJVkVfMl9YVFpfSU5URUxdOiBcIngyaWV6blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuREVFUF9MRUFSTklORzFdOiBcImRsMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuREwxXTogXCJkbDFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkRFRVBfTEVBUk5JTkcyX1FVQUxDT01NXTogXCJkbDJxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ETDJRXTogXCJkbDJxXCIsXG4gICAgfTtcbiAgICByZXR1cm4gbmV3IEluc3RhbmNlVHlwZShcbiAgICAgIGAke2luc3RhbmNlQ2xhc3NNYXBbaW5zdGFuY2VDbGFzc10gPz8gaW5zdGFuY2VDbGFzc30uJHtpbnN0YW5jZVNpemV9YCxcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbnN0YW5jZVR5cGVJZGVudGlmaWVyOiBzdHJpbmcpIHt9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgaW5zdGFuY2UgdHlwZSBhcyBhIGRvdHRlZCBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlVHlwZUlkZW50aWZpZXI7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGluc3RhbmNlJ3MgQ1BVIGFyY2hpdGVjdHVyZVxuICAgKi9cbiAgcHVibGljIGdldCBhcmNoaXRlY3R1cmUoKTogSW5zdGFuY2VBcmNoaXRlY3R1cmUge1xuICAgIC8vIGNhcHR1cmUgdGhlIGZhbWlseSwgZ2VuZXJhdGlvbiwgY2FwYWJpbGl0aWVzLCBhbmQgc2l6ZSBwb3J0aW9ucyBvZiB0aGUgaW5zdGFuY2UgdHlwZSBpZFxuICAgIGNvbnN0IGluc3RhbmNlVHlwZUNvbXBvbmVudHMgPSB0aGlzLmluc3RhbmNlVHlwZUlkZW50aWZpZXIubWF0Y2goXG4gICAgICAvXihbYS16XSspKFxcZHsxLDJ9KShbYS16XFwtXSopXFwuKFthLXowLTlcXC1dKykkLyxcbiAgICApO1xuICAgIGlmIChpbnN0YW5jZVR5cGVDb21wb25lbnRzID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1hbGZvcm1lZCBpbnN0YW5jZSB0eXBlIGlkZW50aWZpZXJcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZmFtaWx5ID0gaW5zdGFuY2VUeXBlQ29tcG9uZW50c1sxXTtcbiAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSBpbnN0YW5jZVR5cGVDb21wb25lbnRzWzNdO1xuXG4gICAgLy8gSW5zdGFuY2UgZmFtaWx5IGBhYCBhcmUgZmlyc3QtZ2VuIEdyYXZpdG9uIGluc3RhbmNlc1xuICAgIC8vIENhcGFiaWxpdHkgYGdgIGluZGljYXRlcyB0aGUgaW5zdGFuY2UgaXMgR3Jhdml0b24yIHBvd2VyZWRcbiAgICBpZiAoZmFtaWx5ID09PSBcImFcIiB8fCBjYXBhYmlsaXRpZXMuaW5jbHVkZXMoXCJnXCIpKSB7XG4gICAgICByZXR1cm4gSW5zdGFuY2VBcmNoaXRlY3R1cmUuQVJNXzY0O1xuICAgIH1cblxuICAgIHJldHVybiBJbnN0YW5jZUFyY2hpdGVjdHVyZS5YODZfNjQ7XG4gIH1cblxuICBwdWJsaWMgc2FtZUluc3RhbmNlQ2xhc3NBcyhvdGhlcjogSW5zdGFuY2VUeXBlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5zdGFuY2VDbGFzczogUmVnRXhwID0gL14oW2Etel0rXFxkezEsMn1bYS16XFwtXSopXFwuKFthLXowLTlcXC1dKykkLztcbiAgICBjb25zdCBpbnN0YW5jZUNsYXNzSWQgPSB0aGlzLmluc3RhbmNlVHlwZUlkZW50aWZpZXIubWF0Y2goaW5zdGFuY2VDbGFzcyk7XG4gICAgY29uc3Qgb3RoZXJJbnN0YW5jZUNsYXNzSWQgPVxuICAgICAgb3RoZXIuaW5zdGFuY2VUeXBlSWRlbnRpZmllci5tYXRjaChpbnN0YW5jZUNsYXNzKTtcbiAgICBpZiAoaW5zdGFuY2VDbGFzc0lkID09IG51bGwgfHwgb3RoZXJJbnN0YW5jZUNsYXNzSWQgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWFsZm9ybWVkIGluc3RhbmNlIHR5cGUgaWRlbnRpZmllclwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGluc3RhbmNlQ2xhc3NJZFsxXSA9PT0gb3RoZXJJbnN0YW5jZUNsYXNzSWRbMV07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBpbnN0YW5jZSB0eXBlIGlzIGEgYnVyc3RhYmxlIGluc3RhbmNlIHR5cGVcbiAgICovXG4gIHB1YmxpYyBpc0J1cnN0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbnN0YW5jZVR5cGVJZGVudGlmaWVyLnN0YXJ0c1dpdGgoXCJ0M1wiKSB8fFxuICAgICAgdGhpcy5pbnN0YW5jZVR5cGVJZGVudGlmaWVyLnN0YXJ0c1dpdGgoXCJ0NGdcIikgfHxcbiAgICAgIHRoaXMuaW5zdGFuY2VUeXBlSWRlbnRpZmllci5zdGFydHNXaXRoKFwidDJcIilcbiAgICApO1xuICB9XG59XG4iXX0=