@cdk_utils/iam 1.14.0 → 1.16.0

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 (469) hide show
  1. package/.jsii +11275 -7738
  2. package/lib/generated/services/a2c.js +1 -1
  3. package/lib/generated/services/a4b.js +3 -3
  4. package/lib/generated/services/access-analyzer.js +4 -4
  5. package/lib/generated/services/account-access.js +4 -4
  6. package/lib/generated/services/account.js +4 -4
  7. package/lib/generated/services/acm-pca.js +4 -4
  8. package/lib/generated/services/acm.js +4 -4
  9. package/lib/generated/services/aco-automation.js +4 -4
  10. package/lib/generated/services/action-recommendations.js +1 -1
  11. package/lib/generated/services/activate.js +1 -1
  12. package/lib/generated/services/agent-registry.d.ts +6 -0
  13. package/lib/generated/services/agent-registry.js +13 -5
  14. package/lib/generated/services/agentaccess-mcp.js +2 -2
  15. package/lib/generated/services/aidevops.js +4 -4
  16. package/lib/generated/services/aiops.js +4 -4
  17. package/lib/generated/services/airflow-serverless.js +4 -4
  18. package/lib/generated/services/airflow.js +4 -4
  19. package/lib/generated/services/amplify.js +4 -4
  20. package/lib/generated/services/amplifybackend.js +3 -3
  21. package/lib/generated/services/amplifyuibuilder.js +4 -4
  22. package/lib/generated/services/aoss.js +4 -4
  23. package/lib/generated/services/apigateway.js +4 -4
  24. package/lib/generated/services/app-integrations.js +4 -4
  25. package/lib/generated/services/appconfig.js +4 -4
  26. package/lib/generated/services/appfabric.js +4 -4
  27. package/lib/generated/services/appflow.js +4 -4
  28. package/lib/generated/services/application-autoscaling.js +4 -4
  29. package/lib/generated/services/application-signals-mcp.js +3 -3
  30. package/lib/generated/services/application-signals.js +4 -4
  31. package/lib/generated/services/application-transformation.js +1 -1
  32. package/lib/generated/services/applicationinsights.js +3 -3
  33. package/lib/generated/services/appmesh-preview.js +2 -2
  34. package/lib/generated/services/appmesh.js +4 -4
  35. package/lib/generated/services/apprunner.js +4 -4
  36. package/lib/generated/services/appstream.js +4 -4
  37. package/lib/generated/services/appstudio.js +2 -2
  38. package/lib/generated/services/appsync.js +4 -4
  39. package/lib/generated/services/apptest.js +3 -3
  40. package/lib/generated/services/aps.js +4 -4
  41. package/lib/generated/services/arc-region-switch.js +4 -4
  42. package/lib/generated/services/arc-zonal-shift.js +4 -4
  43. package/lib/generated/services/arsenal.js +1 -1
  44. package/lib/generated/services/artifact.js +4 -4
  45. package/lib/generated/services/athena.js +4 -4
  46. package/lib/generated/services/auditmanager.js +4 -4
  47. package/lib/generated/services/autoscaling-plans.js +2 -2
  48. package/lib/generated/services/autoscaling.js +4 -4
  49. package/lib/generated/services/aws-external-anthropic.js +3 -3
  50. package/lib/generated/services/aws-marketplace-management.js +1 -1
  51. package/lib/generated/services/aws-marketplace.js +4 -4
  52. package/lib/generated/services/aws-portal.js +1 -1
  53. package/lib/generated/services/awsconnector.js +1 -1
  54. package/lib/generated/services/b2bi.js +4 -4
  55. package/lib/generated/services/backup-gateway.js +4 -4
  56. package/lib/generated/services/backup-search.js +4 -4
  57. package/lib/generated/services/backup-storage.js +1 -1
  58. package/lib/generated/services/backup.js +4 -4
  59. package/lib/generated/services/batch.js +4 -4
  60. package/lib/generated/services/bcm-dashboards.js +4 -4
  61. package/lib/generated/services/bcm-data-exports.js +4 -4
  62. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  63. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  64. package/lib/generated/services/bedrock-agentcore.js +4 -4
  65. package/lib/generated/services/bedrock-mantle.js +3 -3
  66. package/lib/generated/services/bedrock-websearch.js +2 -2
  67. package/lib/generated/services/bedrock.js +4 -4
  68. package/lib/generated/services/billing.js +4 -4
  69. package/lib/generated/services/billingconductor.js +4 -4
  70. package/lib/generated/services/braket.js +4 -4
  71. package/lib/generated/services/budgets.js +4 -4
  72. package/lib/generated/services/bugbust.js +3 -3
  73. package/lib/generated/services/cases.js +4 -4
  74. package/lib/generated/services/cassandra.js +4 -4
  75. package/lib/generated/services/ce.js +4 -4
  76. package/lib/generated/services/chatbot.js +4 -4
  77. package/lib/generated/services/chime.js +4 -4
  78. package/lib/generated/services/cleanrooms-ml.js +4 -4
  79. package/lib/generated/services/cleanrooms.js +4 -4
  80. package/lib/generated/services/cloud9.js +4 -4
  81. package/lib/generated/services/clouddirectory.js +3 -3
  82. package/lib/generated/services/cloudformation.js +4 -4
  83. package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
  84. package/lib/generated/services/cloudfront.js +4 -4
  85. package/lib/generated/services/cloudhsm.js +4 -4
  86. package/lib/generated/services/cloudsearch.js +3 -3
  87. package/lib/generated/services/cloudshell.js +3 -3
  88. package/lib/generated/services/cloudtrail-data.js +4 -4
  89. package/lib/generated/services/cloudtrail.js +4 -4
  90. package/lib/generated/services/cloudwatch.js +4 -4
  91. package/lib/generated/services/codeartifact.js +4 -4
  92. package/lib/generated/services/codebuild.js +4 -4
  93. package/lib/generated/services/codecatalyst.js +4 -4
  94. package/lib/generated/services/codecommit.js +4 -4
  95. package/lib/generated/services/codeconnections.js +4 -4
  96. package/lib/generated/services/codedeploy-commands-secure.js +1 -1
  97. package/lib/generated/services/codedeploy.js +4 -4
  98. package/lib/generated/services/codeguru-profiler.js +4 -4
  99. package/lib/generated/services/codeguru-reviewer.js +4 -4
  100. package/lib/generated/services/codeguru-security.js +4 -4
  101. package/lib/generated/services/codeguru.js +1 -1
  102. package/lib/generated/services/codepipeline.js +4 -4
  103. package/lib/generated/services/codestar-connections.js +4 -4
  104. package/lib/generated/services/codestar-notifications.js +4 -4
  105. package/lib/generated/services/codestar.js +3 -3
  106. package/lib/generated/services/codewhisperer.js +3 -3
  107. package/lib/generated/services/cognito-identity.js +4 -4
  108. package/lib/generated/services/cognito-idp.d.ts +2 -0
  109. package/lib/generated/services/cognito-idp.js +14 -7
  110. package/lib/generated/services/cognito-sync.js +3 -3
  111. package/lib/generated/services/comprehend.js +4 -4
  112. package/lib/generated/services/comprehendmedical.js +3 -3
  113. package/lib/generated/services/compute-optimizer.js +3 -3
  114. package/lib/generated/services/config.js +4 -4
  115. package/lib/generated/services/connect-campaigns.js +4 -4
  116. package/lib/generated/services/connect.d.ts +75 -0
  117. package/lib/generated/services/connect.js +110 -9
  118. package/lib/generated/services/consoleapp.js +2 -2
  119. package/lib/generated/services/consolidatedbilling.js +1 -1
  120. package/lib/generated/services/controlcatalog.js +3 -3
  121. package/lib/generated/services/controltower.js +4 -4
  122. package/lib/generated/services/cost-optimization-hub.js +2 -2
  123. package/lib/generated/services/cur.js +4 -4
  124. package/lib/generated/services/customer-verification.js +1 -1
  125. package/lib/generated/services/databrew.js +4 -4
  126. package/lib/generated/services/dataexchange.js +4 -4
  127. package/lib/generated/services/datapipeline.js +4 -4
  128. package/lib/generated/services/datasync.js +4 -4
  129. package/lib/generated/services/datazone.js +4 -4
  130. package/lib/generated/services/dax.js +4 -4
  131. package/lib/generated/services/dbqms.js +1 -1
  132. package/lib/generated/services/deadline.js +4 -4
  133. package/lib/generated/services/detective.js +4 -4
  134. package/lib/generated/services/devicefarm.js +4 -4
  135. package/lib/generated/services/devops-guru.js +4 -4
  136. package/lib/generated/services/directconnect.js +4 -4
  137. package/lib/generated/services/discovery.js +3 -3
  138. package/lib/generated/services/dlm.js +4 -4
  139. package/lib/generated/services/dms.js +4 -4
  140. package/lib/generated/services/docdb-elastic.js +4 -4
  141. package/lib/generated/services/drs.js +4 -4
  142. package/lib/generated/services/ds-data.js +4 -4
  143. package/lib/generated/services/ds.js +4 -4
  144. package/lib/generated/services/dsql.js +4 -4
  145. package/lib/generated/services/dynamodb.js +4 -4
  146. package/lib/generated/services/ebs.js +4 -4
  147. package/lib/generated/services/ec2-instance-connect.js +4 -4
  148. package/lib/generated/services/ec2.d.ts +103 -0
  149. package/lib/generated/services/ec2.js +179 -21
  150. package/lib/generated/services/ec2messages.js +2 -2
  151. package/lib/generated/services/ecr-public.js +4 -4
  152. package/lib/generated/services/ecr.js +4 -4
  153. package/lib/generated/services/ecs-mcp.js +1 -1
  154. package/lib/generated/services/ecs.js +4 -4
  155. package/lib/generated/services/eks-auth.js +4 -4
  156. package/lib/generated/services/eks-mcp.js +1 -1
  157. package/lib/generated/services/eks.js +4 -4
  158. package/lib/generated/services/elasticache.js +4 -4
  159. package/lib/generated/services/elasticbeanstalk.js +4 -4
  160. package/lib/generated/services/elasticfilesystem.js +4 -4
  161. package/lib/generated/services/elasticloadbalancing.js +4 -4
  162. package/lib/generated/services/elasticmapreduce.js +4 -4
  163. package/lib/generated/services/elastictranscoder.js +2 -2
  164. package/lib/generated/services/elemental-activations.js +1 -1
  165. package/lib/generated/services/elemental-appliances-software.js +2 -2
  166. package/lib/generated/services/elemental-inference.js +4 -4
  167. package/lib/generated/services/elemental-support-cases.js +3 -3
  168. package/lib/generated/services/elemental-support-content.js +1 -1
  169. package/lib/generated/services/emr-containers.js +4 -4
  170. package/lib/generated/services/emr-serverless.js +4 -4
  171. package/lib/generated/services/entityresolution.js +4 -4
  172. package/lib/generated/services/es.js +4 -4
  173. package/lib/generated/services/events.js +4 -4
  174. package/lib/generated/services/eventsbilltoaws.js +3 -3
  175. package/lib/generated/services/evidently.js +3 -3
  176. package/lib/generated/services/evs.js +4 -4
  177. package/lib/generated/services/execute-api.js +4 -4
  178. package/lib/generated/services/finops-agent.js +1 -1
  179. package/lib/generated/services/finspace-api.js +3 -3
  180. package/lib/generated/services/finspace.js +4 -4
  181. package/lib/generated/services/firehose.js +4 -4
  182. package/lib/generated/services/fis.js +4 -4
  183. package/lib/generated/services/fms.js +4 -4
  184. package/lib/generated/services/forecast.js +4 -4
  185. package/lib/generated/services/frauddetector.js +4 -4
  186. package/lib/generated/services/freertos.js +3 -3
  187. package/lib/generated/services/freetier.js +2 -2
  188. package/lib/generated/services/fsx.js +4 -4
  189. package/lib/generated/services/gamelift.js +4 -4
  190. package/lib/generated/services/gameliftstreams.js +4 -4
  191. package/lib/generated/services/geo-maps.js +3 -3
  192. package/lib/generated/services/geo-places.js +3 -3
  193. package/lib/generated/services/geo-routes.js +3 -3
  194. package/lib/generated/services/geo.js +4 -4
  195. package/lib/generated/services/glacier.js +4 -4
  196. package/lib/generated/services/globalaccelerator.js +4 -4
  197. package/lib/generated/services/glue.js +4 -4
  198. package/lib/generated/services/grafana.js +4 -4
  199. package/lib/generated/services/greengrass.js +4 -4
  200. package/lib/generated/services/groundstation.js +4 -4
  201. package/lib/generated/services/groundtruthlabeling.js +1 -1
  202. package/lib/generated/services/guardduty.d.ts +132 -0
  203. package/lib/generated/services/guardduty.js +149 -5
  204. package/lib/generated/services/health-agent.js +4 -4
  205. package/lib/generated/services/health.js +4 -4
  206. package/lib/generated/services/healthlake.js +4 -4
  207. package/lib/generated/services/honeycode.js +2 -2
  208. package/lib/generated/services/iam.js +4 -4
  209. package/lib/generated/services/identity-sync.js +2 -2
  210. package/lib/generated/services/identitystore-auth.js +1 -1
  211. package/lib/generated/services/identitystore.js +4 -4
  212. package/lib/generated/services/imagebuilder.js +9 -6
  213. package/lib/generated/services/importexport.js +2 -2
  214. package/lib/generated/services/inspector-scan.js +2 -2
  215. package/lib/generated/services/inspector.js +2 -2
  216. package/lib/generated/services/inspector2-telemetry.js +1 -1
  217. package/lib/generated/services/inspector2.js +4 -4
  218. package/lib/generated/services/interconnect.js +4 -4
  219. package/lib/generated/services/internetmonitor.js +4 -4
  220. package/lib/generated/services/invoicing.js +4 -4
  221. package/lib/generated/services/iot-device-tester.js +1 -1
  222. package/lib/generated/services/iot.js +4 -4
  223. package/lib/generated/services/iotanalytics.js +3 -3
  224. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  225. package/lib/generated/services/iotevents.js +3 -3
  226. package/lib/generated/services/iotfleethub.js +3 -3
  227. package/lib/generated/services/iotfleetwise.js +4 -4
  228. package/lib/generated/services/iotjobsdata.js +4 -4
  229. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  230. package/lib/generated/services/iotsitewise.js +4 -4
  231. package/lib/generated/services/iottwinmaker.js +4 -4
  232. package/lib/generated/services/iotwireless.js +4 -4
  233. package/lib/generated/services/iq-permission.js +2 -2
  234. package/lib/generated/services/iq.js +2 -2
  235. package/lib/generated/services/ivs.js +4 -4
  236. package/lib/generated/services/ivschat.js +4 -4
  237. package/lib/generated/services/kafka-cluster.js +3 -3
  238. package/lib/generated/services/kafka.js +4 -4
  239. package/lib/generated/services/kafkaconnect.d.ts +2 -0
  240. package/lib/generated/services/kafkaconnect.js +7 -5
  241. package/lib/generated/services/kendra-ranking.js +4 -4
  242. package/lib/generated/services/kendra.js +4 -4
  243. package/lib/generated/services/kinesis.d.ts +61 -0
  244. package/lib/generated/services/kinesis.js +67 -5
  245. package/lib/generated/services/kinesisanalytics.js +4 -4
  246. package/lib/generated/services/kinesisvideo.js +4 -4
  247. package/lib/generated/services/kms.js +4 -4
  248. package/lib/generated/services/lakeformation.js +3 -3
  249. package/lib/generated/services/lambda.js +4 -4
  250. package/lib/generated/services/launchwizard.js +4 -4
  251. package/lib/generated/services/lex.js +4 -4
  252. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  253. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  254. package/lib/generated/services/license-manager.js +4 -4
  255. package/lib/generated/services/lightsail.d.ts +2 -0
  256. package/lib/generated/services/lightsail.js +7 -5
  257. package/lib/generated/services/logs.js +4 -4
  258. package/lib/generated/services/lookoutequipment.js +4 -4
  259. package/lib/generated/services/lookoutmetrics.js +3 -3
  260. package/lib/generated/services/lookoutvision.js +3 -3
  261. package/lib/generated/services/m2.js +4 -4
  262. package/lib/generated/services/machinelearning.js +3 -3
  263. package/lib/generated/services/macie2.js +4 -4
  264. package/lib/generated/services/managedblockchain-query.js +2 -2
  265. package/lib/generated/services/managedblockchain.js +4 -4
  266. package/lib/generated/services/mapcredits.js +2 -2
  267. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  268. package/lib/generated/services/mechanicalturk.js +2 -2
  269. package/lib/generated/services/mediaconnect.js +4 -4
  270. package/lib/generated/services/mediaconvert.js +4 -4
  271. package/lib/generated/services/mediaimport.js +1 -1
  272. package/lib/generated/services/medialive.js +4 -4
  273. package/lib/generated/services/mediapackage-vod.js +4 -4
  274. package/lib/generated/services/mediapackage.js +4 -4
  275. package/lib/generated/services/mediapackagev2.js +4 -4
  276. package/lib/generated/services/mediastore.js +4 -4
  277. package/lib/generated/services/mediatailor.js +4 -4
  278. package/lib/generated/services/medical-imaging.js +4 -4
  279. package/lib/generated/services/memorydb.js +4 -4
  280. package/lib/generated/services/mgh.js +4 -4
  281. package/lib/generated/services/mgn.js +4 -4
  282. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  283. package/lib/generated/services/migrationhub-strategy.js +2 -2
  284. package/lib/generated/services/mobileanalytics.js +1 -1
  285. package/lib/generated/services/mobiletargeting.js +4 -4
  286. package/lib/generated/services/monitron.js +3 -3
  287. package/lib/generated/services/mpa.js +4 -4
  288. package/lib/generated/services/mq.js +4 -4
  289. package/lib/generated/services/neptune-db.js +4 -4
  290. package/lib/generated/services/neptune-graph.js +4 -4
  291. package/lib/generated/services/network-firewall.js +4 -4
  292. package/lib/generated/services/network-security-director.js +1 -1
  293. package/lib/generated/services/networkflowmonitor.js +4 -4
  294. package/lib/generated/services/networkmanager-chat.js +1 -1
  295. package/lib/generated/services/networkmanager.js +4 -4
  296. package/lib/generated/services/networkmonitor.js +4 -4
  297. package/lib/generated/services/nimble.js +3 -3
  298. package/lib/generated/services/notifications-contacts.js +4 -4
  299. package/lib/generated/services/notifications.js +4 -4
  300. package/lib/generated/services/nova-act.js +3 -3
  301. package/lib/generated/services/oam.js +4 -4
  302. package/lib/generated/services/observabilityadmin.js +4 -4
  303. package/lib/generated/services/odb.js +4 -4
  304. package/lib/generated/services/omics.js +4 -4
  305. package/lib/generated/services/one.js +3 -3
  306. package/lib/generated/services/opensearch.js +3 -3
  307. package/lib/generated/services/opsworks-cm.js +2 -2
  308. package/lib/generated/services/opsworks.js +2 -2
  309. package/lib/generated/services/organizations.js +4 -4
  310. package/lib/generated/services/osis.js +4 -4
  311. package/lib/generated/services/outposts.js +4 -4
  312. package/lib/generated/services/panorama.js +3 -3
  313. package/lib/generated/services/partnercentral-account-management.js +2 -2
  314. package/lib/generated/services/partnercentral.js +4 -4
  315. package/lib/generated/services/payment-cryptography.js +4 -4
  316. package/lib/generated/services/payments.js +3 -3
  317. package/lib/generated/services/pca-connector-ad.js +4 -4
  318. package/lib/generated/services/pca-connector-scep.js +4 -4
  319. package/lib/generated/services/pcs.js +4 -4
  320. package/lib/generated/services/personalize.js +4 -4
  321. package/lib/generated/services/pi.js +4 -4
  322. package/lib/generated/services/pipes.js +4 -4
  323. package/lib/generated/services/polly.js +3 -3
  324. package/lib/generated/services/pricing.js +2 -2
  325. package/lib/generated/services/pricingplanmanager.js +3 -3
  326. package/lib/generated/services/private-networks.js +3 -3
  327. package/lib/generated/services/profile.d.ts +14 -0
  328. package/lib/generated/services/profile.js +33 -5
  329. package/lib/generated/services/proton.js +4 -4
  330. package/lib/generated/services/purchase-orders.js +3 -3
  331. package/lib/generated/services/q.js +3 -3
  332. package/lib/generated/services/qapps.js +4 -4
  333. package/lib/generated/services/qbusiness.js +4 -4
  334. package/lib/generated/services/qdeveloper.js +3 -3
  335. package/lib/generated/services/qldb.js +3 -3
  336. package/lib/generated/services/quicksight.d.ts +12 -0
  337. package/lib/generated/services/quicksight.js +22 -6
  338. package/lib/generated/services/ram.js +4 -4
  339. package/lib/generated/services/rbin.js +4 -4
  340. package/lib/generated/services/rds-data.js +4 -4
  341. package/lib/generated/services/rds-db.js +2 -2
  342. package/lib/generated/services/rds.js +4 -4
  343. package/lib/generated/services/redshift-data.js +4 -4
  344. package/lib/generated/services/redshift-serverless.js +4 -4
  345. package/lib/generated/services/redshift.js +4 -4
  346. package/lib/generated/services/refactor-spaces.js +4 -4
  347. package/lib/generated/services/rekognition.js +4 -4
  348. package/lib/generated/services/repostspace.js +4 -4
  349. package/lib/generated/services/researchstudio.js +1 -1
  350. package/lib/generated/services/resiliencehub.js +4 -4
  351. package/lib/generated/services/resource-explorer-2.js +4 -4
  352. package/lib/generated/services/resource-explorer.js +1 -1
  353. package/lib/generated/services/resource-groups.js +4 -4
  354. package/lib/generated/services/rhelkb.js +1 -1
  355. package/lib/generated/services/robomaker.js +3 -3
  356. package/lib/generated/services/rolesanywhere.js +4 -4
  357. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  358. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  359. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  360. package/lib/generated/services/route53.js +4 -4
  361. package/lib/generated/services/route53domains.js +2 -2
  362. package/lib/generated/services/route53globalresolver.js +4 -4
  363. package/lib/generated/services/route53profiles.js +4 -4
  364. package/lib/generated/services/route53resolver.js +4 -4
  365. package/lib/generated/services/rtbfabric.js +4 -4
  366. package/lib/generated/services/rum.js +4 -4
  367. package/lib/generated/services/s3-object-lambda.js +3 -3
  368. package/lib/generated/services/s3-outposts.js +4 -4
  369. package/lib/generated/services/s3.js +4 -4
  370. package/lib/generated/services/s3express.js +3 -3
  371. package/lib/generated/services/s3files.js +4 -4
  372. package/lib/generated/services/s3tables.js +4 -4
  373. package/lib/generated/services/s3vectors.js +4 -4
  374. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  375. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  376. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  377. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  378. package/lib/generated/services/sagemaker.js +4 -4
  379. package/lib/generated/services/savingsplans.js +4 -4
  380. package/lib/generated/services/scheduler.js +4 -4
  381. package/lib/generated/services/schemas.js +4 -4
  382. package/lib/generated/services/scn.js +4 -4
  383. package/lib/generated/services/sdb.js +3 -3
  384. package/lib/generated/services/secretsmanager.js +4 -4
  385. package/lib/generated/services/security-ir.js +4 -4
  386. package/lib/generated/services/securityagent.js +4 -4
  387. package/lib/generated/services/securityhub.js +4 -4
  388. package/lib/generated/services/securitylake.js +4 -4
  389. package/lib/generated/services/serverlessrepo.js +4 -4
  390. package/lib/generated/services/servicecatalog.js +4 -4
  391. package/lib/generated/services/servicediscovery.js +4 -4
  392. package/lib/generated/services/serviceextract.js +1 -1
  393. package/lib/generated/services/servicequotas.js +4 -4
  394. package/lib/generated/services/ses.d.ts +8 -0
  395. package/lib/generated/services/ses.js +13 -5
  396. package/lib/generated/services/shield.js +4 -4
  397. package/lib/generated/services/signer.js +4 -4
  398. package/lib/generated/services/signin.js +4 -4
  399. package/lib/generated/services/simspaceweaver.js +3 -3
  400. package/lib/generated/services/sms-voice.js +4 -4
  401. package/lib/generated/services/sms.js +1 -1
  402. package/lib/generated/services/snow-device-management.js +4 -4
  403. package/lib/generated/services/snowball.js +2 -2
  404. package/lib/generated/services/sns.js +4 -4
  405. package/lib/generated/services/social-messaging.js +4 -4
  406. package/lib/generated/services/sqlworkbench.js +3 -3
  407. package/lib/generated/services/sqs.js +4 -4
  408. package/lib/generated/services/ssm-contacts.js +4 -4
  409. package/lib/generated/services/ssm-guiconnect.js +2 -2
  410. package/lib/generated/services/ssm-incidents.js +4 -4
  411. package/lib/generated/services/ssm-quicksetup.js +4 -4
  412. package/lib/generated/services/ssm-sap.js +4 -4
  413. package/lib/generated/services/ssm.js +4 -4
  414. package/lib/generated/services/ssmmessages.js +2 -2
  415. package/lib/generated/services/sso-directory.js +1 -1
  416. package/lib/generated/services/sso-oauth.js +3 -3
  417. package/lib/generated/services/sso.js +4 -4
  418. package/lib/generated/services/states.js +4 -4
  419. package/lib/generated/services/storagegateway.js +4 -4
  420. package/lib/generated/services/sts.js +4 -4
  421. package/lib/generated/services/support-console.js +1 -1
  422. package/lib/generated/services/support.d.ts +9 -1
  423. package/lib/generated/services/support.js +25 -5
  424. package/lib/generated/services/supportapp.js +2 -2
  425. package/lib/generated/services/supportauthz.js +4 -4
  426. package/lib/generated/services/supportplans.js +1 -1
  427. package/lib/generated/services/sustainability.js +2 -2
  428. package/lib/generated/services/swf.js +4 -4
  429. package/lib/generated/services/synthetics.js +4 -4
  430. package/lib/generated/services/tag.js +2 -2
  431. package/lib/generated/services/tax.js +2 -2
  432. package/lib/generated/services/textract.js +4 -4
  433. package/lib/generated/services/thinclient.js +4 -4
  434. package/lib/generated/services/timestream-influxdb.js +4 -4
  435. package/lib/generated/services/timestream.js +4 -4
  436. package/lib/generated/services/tiros.js +1 -1
  437. package/lib/generated/services/tnb.js +4 -4
  438. package/lib/generated/services/transcribe.js +4 -4
  439. package/lib/generated/services/transfer.js +4 -4
  440. package/lib/generated/services/transform-custom.js +3 -3
  441. package/lib/generated/services/transform.js +3 -3
  442. package/lib/generated/services/translate.js +4 -4
  443. package/lib/generated/services/trustedadvisor.js +3 -3
  444. package/lib/generated/services/ts.js +3 -3
  445. package/lib/generated/services/user-subscriptions.js +2 -2
  446. package/lib/generated/services/uxc.js +2 -2
  447. package/lib/generated/services/vendor-insights.js +3 -3
  448. package/lib/generated/services/verified-access.js +1 -1
  449. package/lib/generated/services/verifiedpermissions.js +4 -4
  450. package/lib/generated/services/voiceid.js +4 -4
  451. package/lib/generated/services/vpc-lattice-svcs.js +3 -3
  452. package/lib/generated/services/vpc-lattice.js +4 -4
  453. package/lib/generated/services/vpce.js +2 -2
  454. package/lib/generated/services/waf-regional.js +4 -4
  455. package/lib/generated/services/waf.js +4 -4
  456. package/lib/generated/services/wafv2.js +4 -4
  457. package/lib/generated/services/wam.js +1 -1
  458. package/lib/generated/services/wellarchitected.js +4 -4
  459. package/lib/generated/services/wickr.js +4 -4
  460. package/lib/generated/services/wisdom.js +4 -4
  461. package/lib/generated/services/workdocs.js +3 -3
  462. package/lib/generated/services/worklink.js +3 -3
  463. package/lib/generated/services/workmail.js +4 -4
  464. package/lib/generated/services/workmailmessageflow.js +3 -3
  465. package/lib/generated/services/workspaces-instances.js +4 -4
  466. package/lib/generated/services/workspaces-web.js +4 -4
  467. package/lib/generated/services/workspaces.js +4 -4
  468. package/lib/generated/services/xray.js +4 -4
  469. package/package.json +1 -1
@@ -16,15 +16,21 @@ class KinesisActions {
16
16
  }
17
17
  exports.KinesisActions = KinesisActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- KinesisActions[_a] = { fqn: "@cdk_utils/iam.kinesis.KinesisActions", version: "1.14.0" };
19
+ KinesisActions[_a] = { fqn: "@cdk_utils/iam.kinesis.KinesisActions", version: "1.16.0" };
20
20
  /** The IAM service prefix. */
21
21
  KinesisActions.SERVICE_PREFIX = "kinesis";
22
22
  /** [Tagging] kinesis:AddTagsToStream */
23
23
  KinesisActions.AddTagsToStream = "kinesis:AddTagsToStream";
24
+ /** [Write] kinesis:AssociateStreamsWithChannel */
25
+ KinesisActions.AssociateStreamsWithChannel = "kinesis:AssociateStreamsWithChannel";
26
+ /** [Tagging] kinesis:CreateChannel */
27
+ KinesisActions.CreateChannel = "kinesis:CreateChannel";
24
28
  /** [Write] kinesis:CreateStream */
25
29
  KinesisActions.CreateStream = "kinesis:CreateStream";
26
30
  /** [Write] kinesis:DecreaseStreamRetentionPeriod */
27
31
  KinesisActions.DecreaseStreamRetentionPeriod = "kinesis:DecreaseStreamRetentionPeriod";
32
+ /** [Write] kinesis:DeleteChannel */
33
+ KinesisActions.DeleteChannel = "kinesis:DeleteChannel";
28
34
  /** [Write] kinesis:DeleteResourcePolicy */
29
35
  KinesisActions.DeleteResourcePolicy = "kinesis:DeleteResourcePolicy";
30
36
  /** [Write] kinesis:DeleteStream */
@@ -33,6 +39,8 @@ KinesisActions.DeleteStream = "kinesis:DeleteStream";
33
39
  KinesisActions.DeregisterStreamConsumer = "kinesis:DeregisterStreamConsumer";
34
40
  /** [Read] kinesis:DescribeAccountSettings */
35
41
  KinesisActions.DescribeAccountSettings = "kinesis:DescribeAccountSettings";
42
+ /** [Read] kinesis:DescribeChannel */
43
+ KinesisActions.DescribeChannel = "kinesis:DescribeChannel";
36
44
  /** [Read] kinesis:DescribeLimits */
37
45
  KinesisActions.DescribeLimits = "kinesis:DescribeLimits";
38
46
  /** [Read] kinesis:DescribeStream */
@@ -55,6 +63,8 @@ KinesisActions.actionGetShardIterator = "kinesis:GetShardIterator";
55
63
  KinesisActions.IncreaseStreamRetentionPeriod = "kinesis:IncreaseStreamRetentionPeriod";
56
64
  /** [Write] kinesis:InjectApiError */
57
65
  KinesisActions.InjectApiError = "kinesis:InjectApiError";
66
+ /** [List] kinesis:ListChannels */
67
+ KinesisActions.ListChannels = "kinesis:ListChannels";
58
68
  /** [List] kinesis:ListShards */
59
69
  KinesisActions.ListShards = "kinesis:ListShards";
60
70
  /** [List] kinesis:ListStreamConsumers */
@@ -91,6 +101,8 @@ KinesisActions.TagResource = "kinesis:TagResource";
91
101
  KinesisActions.UntagResource = "kinesis:UntagResource";
92
102
  /** [Write] kinesis:UpdateAccountSettings */
93
103
  KinesisActions.UpdateAccountSettings = "kinesis:UpdateAccountSettings";
104
+ /** [Write] kinesis:UpdateChannel */
105
+ KinesisActions.UpdateChannel = "kinesis:UpdateChannel";
94
106
  /** [Write] kinesis:UpdateMaxRecordSize */
95
107
  KinesisActions.UpdateMaxRecordSize = "kinesis:UpdateMaxRecordSize";
96
108
  /** [Write] kinesis:UpdateShardCount */
@@ -102,6 +114,7 @@ KinesisActions.UpdateStreamWarmThroughput = "kinesis:UpdateStreamWarmThroughput"
102
114
  /** All read-level actions. */
103
115
  KinesisActions.AllReadActions = [
104
116
  KinesisActions.DescribeAccountSettings,
117
+ KinesisActions.DescribeChannel,
105
118
  KinesisActions.DescribeLimits,
106
119
  KinesisActions.DescribeStream,
107
120
  KinesisActions.DescribeStreamConsumer,
@@ -115,8 +128,10 @@ KinesisActions.AllReadActions = [
115
128
  ];
116
129
  /** All write-level actions. */
117
130
  KinesisActions.AllWriteActions = [
131
+ KinesisActions.AssociateStreamsWithChannel,
118
132
  KinesisActions.CreateStream,
119
133
  KinesisActions.DecreaseStreamRetentionPeriod,
134
+ KinesisActions.DeleteChannel,
120
135
  KinesisActions.DeleteResourcePolicy,
121
136
  KinesisActions.DeleteStream,
122
137
  KinesisActions.DeregisterStreamConsumer,
@@ -133,6 +148,7 @@ KinesisActions.AllWriteActions = [
133
148
  KinesisActions.StartStreamEncryption,
134
149
  KinesisActions.StopStreamEncryption,
135
150
  KinesisActions.UpdateAccountSettings,
151
+ KinesisActions.UpdateChannel,
136
152
  KinesisActions.UpdateMaxRecordSize,
137
153
  KinesisActions.UpdateShardCount,
138
154
  KinesisActions.UpdateStreamMode,
@@ -140,6 +156,7 @@ KinesisActions.AllWriteActions = [
140
156
  ];
141
157
  /** All list-level actions. */
142
158
  KinesisActions.AllListActions = [
159
+ KinesisActions.ListChannels,
143
160
  KinesisActions.ListShards,
144
161
  KinesisActions.ListStreamConsumers,
145
162
  KinesisActions.ListStreams,
@@ -149,10 +166,12 @@ KinesisActions.AllPermissionManagementActions = [];
149
166
  /** All tagging-level actions. */
150
167
  KinesisActions.AllTaggingActions = [
151
168
  KinesisActions.AddTagsToStream,
169
+ KinesisActions.CreateChannel,
152
170
  KinesisActions.RemoveTagsFromStream,
153
171
  KinesisActions.TagResource,
154
172
  KinesisActions.UntagResource,
155
173
  ];
174
+ const ChannelArnRegex = /^arn:(?<partition>[^:]+):kinesis:(?<region>[^:]*):(?<account>[^:]*):channel\/(?<channelId>[^:/?]+)$/;
156
175
  const ConsumerArnRegex = /^arn:(?<partition>[^:]+):kinesis:(?<region>[^:]*):(?<account>[^:]*):(?<streamType>[^:/?]+)\/(?<streamName>[^:/?]+)\/consumer\/(?<consumerName>[^:/?]+):(?<consumerCreationTimpstamp>[^:/?]+)$/;
157
176
  const KMSKeyArnRegex = /^arn:(?<partition>[^:]+):kms:(?<region>[^:]*):(?<account>[^:]*):key\/(?<keyId>[^:/?]+)$/;
158
177
  const StreamArnRegex = /^arn:(?<partition>[^:]+):kinesis:(?<region>[^:]*):(?<account>[^:]*):stream\/(?<streamName>[^:/?]+)$/;
@@ -160,6 +179,34 @@ const StreamArnRegex = /^arn:(?<partition>[^:]+):kinesis:(?<region>[^:]*):(?<acc
160
179
  * ARN builders, validators, and parsers for kinesis resources.
161
180
  */
162
181
  class KinesisResources {
182
+ /**
183
+ * Builds an ARN for the channel resource.
184
+ */
185
+ static channel(props) {
186
+ return `arn:${props.partition ?? "aws"}:kinesis:${props.region ?? "*"}:${props.account ?? "*"}:channel/${props.channelId}`;
187
+ }
188
+ /**
189
+ * Validates whether a string is a valid ARN for the channel resource.
190
+ */
191
+ static isValidChannelArn(arn) {
192
+ return ChannelArnRegex.test(arn);
193
+ }
194
+ /**
195
+ * Parses a channel ARN into its components.
196
+ * @throws Error if the ARN does not match the expected format.
197
+ */
198
+ static parseChannelArn(arn) {
199
+ const match = ChannelArnRegex.exec(arn);
200
+ if (!match?.groups) {
201
+ throw new Error(`Invalid channel ARN: ${arn}`);
202
+ }
203
+ return {
204
+ partition: match.groups.partition,
205
+ region: match.groups.region,
206
+ account: match.groups.account,
207
+ channelId: match.groups.channelId,
208
+ };
209
+ }
163
210
  /**
164
211
  * Builds an ARN for the consumer resource.
165
212
  */
@@ -250,7 +297,7 @@ class KinesisResources {
250
297
  }
251
298
  exports.KinesisResources = KinesisResources;
252
299
  _b = JSII_RTTI_SYMBOL_1;
253
- KinesisResources[_b] = { fqn: "@cdk_utils/iam.kinesis.KinesisResources", version: "1.14.0" };
300
+ KinesisResources[_b] = { fqn: "@cdk_utils/iam.kinesis.KinesisResources", version: "1.16.0" };
254
301
  /**
255
302
  * API operation to required IAM actions mapping for kinesis.
256
303
  */
@@ -258,9 +305,16 @@ class KinesisOperations {
258
305
  }
259
306
  exports.KinesisOperations = KinesisOperations;
260
307
  _c = JSII_RTTI_SYMBOL_1;
261
- KinesisOperations[_c] = { fqn: "@cdk_utils/iam.kinesis.KinesisOperations", version: "1.14.0" };
308
+ KinesisOperations[_c] = { fqn: "@cdk_utils/iam.kinesis.KinesisOperations", version: "1.16.0" };
262
309
  /** IAM actions required for the AddTagsToStream API call. */
263
310
  KinesisOperations.AddTagsToStream = ["kinesis:AddTagsToStream"];
311
+ /** IAM actions required for the CreateChannel API call. */
312
+ KinesisOperations.CreateChannel = [
313
+ "kinesis:AssociateStreamsWithChannel",
314
+ "kinesis:CreateChannel",
315
+ "iam:PassRole",
316
+ "kinesis:TagResource",
317
+ ];
264
318
  /** IAM actions required for the CreateStream API call. */
265
319
  KinesisOperations.CreateStream = [
266
320
  "kinesis:AddTagsToStream",
@@ -270,6 +324,8 @@ KinesisOperations.CreateStream = [
270
324
  KinesisOperations.DecreaseStreamRetentionPeriod = [
271
325
  "kinesis:DecreaseStreamRetentionPeriod",
272
326
  ];
327
+ /** IAM actions required for the DeleteChannel API call. */
328
+ KinesisOperations.DeleteChannel = ["kinesis:DeleteChannel"];
273
329
  /** IAM actions required for the DeleteResourcePolicy API call. */
274
330
  KinesisOperations.DeleteResourcePolicy = [
275
331
  "kinesis:DeleteResourcePolicy",
@@ -284,6 +340,8 @@ KinesisOperations.DeregisterStreamConsumer = [
284
340
  KinesisOperations.DescribeAccountSettings = [
285
341
  "kinesis:DescribeAccountSettings",
286
342
  ];
343
+ /** IAM actions required for the DescribeChannel API call. */
344
+ KinesisOperations.DescribeChannel = ["kinesis:DescribeChannel"];
287
345
  /** IAM actions required for the DescribeLimits API call. */
288
346
  KinesisOperations.DescribeLimits = ["kinesis:DescribeLimits"];
289
347
  /** IAM actions required for the DescribeStream API call. */
@@ -314,6 +372,8 @@ KinesisOperations.opGetShardIterator = ["kinesis:GetShardIterator"];
314
372
  KinesisOperations.IncreaseStreamRetentionPeriod = [
315
373
  "kinesis:IncreaseStreamRetentionPeriod",
316
374
  ];
375
+ /** IAM actions required for the ListChannels API call. */
376
+ KinesisOperations.ListChannels = ["kinesis:ListChannels"];
317
377
  /** IAM actions required for the ListShards API call. */
318
378
  KinesisOperations.ListShards = ["kinesis:ListShards"];
319
379
  /** IAM actions required for the ListStreamConsumers API call. */
@@ -365,6 +425,8 @@ KinesisOperations.UntagResource = ["kinesis:UntagResource"];
365
425
  KinesisOperations.UpdateAccountSettings = [
366
426
  "kinesis:UpdateAccountSettings",
367
427
  ];
428
+ /** IAM actions required for the UpdateChannel API call. */
429
+ KinesisOperations.UpdateChannel = ["kinesis:UpdateChannel"];
368
430
  /** IAM actions required for the UpdateMaxRecordSize API call. */
369
431
  KinesisOperations.UpdateMaxRecordSize = [
370
432
  "kinesis:UpdateMaxRecordSize",
@@ -420,7 +482,7 @@ class KinesisConditions {
420
482
  }
421
483
  exports.KinesisConditions = KinesisConditions;
422
484
  _d = JSII_RTTI_SYMBOL_1;
423
- KinesisConditions[_d] = { fqn: "@cdk_utils/iam.kinesis.KinesisConditions", version: "1.14.0" };
485
+ KinesisConditions[_d] = { fqn: "@cdk_utils/iam.kinesis.KinesisConditions", version: "1.16.0" };
424
486
  /** Condition keys applicable to the InjectApiError action. */
425
487
  KinesisConditions.InjectApiErrorConditionKeys = [
426
488
  "kinesis:FisActionId",
@@ -439,4 +501,4 @@ KinesisConditions.FIS_ACTION_ID = "kinesis:FisActionId";
439
501
  KinesisConditions.FIS_INJECT_PERCENTAGE = "kinesis:FisInjectPercentage";
440
502
  /** Condition key: kinesis:FisTargetArns (ArrayOfARN) */
441
503
  KinesisConditions.FIS_TARGET_ARNS = "kinesis:FisTargetArns";
442
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZXNpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvc2VydmljZXMva2luZXNpcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsMERBQTBEO0FBQzFELDhDQUE4QztBQUM5QyxvREFBb0Q7QUFDcEQsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBYSxjQUFjOztBQUEzQix3Q0ErSUM7OztBQTlJQSw4QkFBOEI7QUFDZCw2QkFBYyxHQUFHLFNBQVMsQ0FBQztBQUUzQyx3Q0FBd0M7QUFDeEIsOEJBQWUsR0FBRyx5QkFBeUIsQ0FBQztBQUM1RCxtQ0FBbUM7QUFDbkIsMkJBQVksR0FBRyxzQkFBc0IsQ0FBQztBQUN0RCxvREFBb0Q7QUFDcEMsNENBQTZCLEdBQzVDLHVDQUF1QyxDQUFDO0FBQ3pDLDJDQUEyQztBQUMzQixtQ0FBb0IsR0FBRyw4QkFBOEIsQ0FBQztBQUN0RSxtQ0FBbUM7QUFDbkIsMkJBQVksR0FBRyxzQkFBc0IsQ0FBQztBQUN0RCwrQ0FBK0M7QUFDL0IsdUNBQXdCLEdBQUcsa0NBQWtDLENBQUM7QUFDOUUsNkNBQTZDO0FBQzdCLHNDQUF1QixHQUFHLGlDQUFpQyxDQUFDO0FBQzVFLG9DQUFvQztBQUNwQiw2QkFBYyxHQUFHLHdCQUF3QixDQUFDO0FBQzFELG9DQUFvQztBQUNwQiw2QkFBYyxHQUFHLHdCQUF3QixDQUFDO0FBQzFELDRDQUE0QztBQUM1QixxQ0FBc0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUMxRSwyQ0FBMkM7QUFDM0Isb0NBQXFCLEdBQUcsK0JBQStCLENBQUM7QUFDeEUsZ0RBQWdEO0FBQ2hDLHdDQUF5QixHQUN4QyxtQ0FBbUMsQ0FBQztBQUNyQywrQ0FBK0M7QUFDL0IsdUNBQXdCLEdBQUcsa0NBQWtDLENBQUM7QUFDOUUsZ0NBQWdDO0FBQ2hCLCtCQUFnQixHQUFHLG9CQUFvQixDQUFDO0FBQ3hELHVD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LENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUN6QixLQUFhO1FBRWIsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLDZCQUE2QixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FDbkIsTUFBZ0I7UUFFaEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUMxRSxDQUFDOztBQWpFRiw4Q0FrRUM7OztBQWpFQSw4REFBOEQ7QUFDOUMsNkNBQTJCLEdBQWE7SUFDdkQscUJBQXFCO0lBQ3JCLDZCQUE2QjtJQUM3Qix1QkFBdUI7Q0FDdkIsQ0FBQztBQUVGLHVEQUF1RDtBQUN2QyxpQ0FBZSxHQUFHLDBCQUEwQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4QyxrQ0FBZ0IsR0FBRywyQkFBMkIsQ0FBQztBQUMvRCxpREFBaUQ7QUFDakMsOEJBQVksR0FBRyxhQUFhLENBQUM7QUFDN0Msa0RBQWtEO0FBQ2xDLCtCQUFhLEdBQUcscUJBQXFCLENBQUM7QUFDdEQsMkRBQTJEO0FBQzNDLHVDQUFxQixHQUFHLDZCQUE2QixDQUFDO0FBQ3RFLHdEQUF3RDtBQUN4QyxpQ0FBZSxHQUFHLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2Uva2luZXNpcy5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUga2luZXNpcyBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgS2luZXNpc0FjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJraW5lc2lzXCI7XG5cblx0LyoqIFtUYWdnaW5nXSBraW5lc2lzOkFkZFRhZ3NUb1N0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWRkVGFnc1RvU3RyZWFtID0gXCJraW5lc2lzOkFkZFRhZ3NUb1N0cmVhbVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkNyZWF0ZVN0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU3RyZWFtID0gXCJraW5lc2lzOkNyZWF0ZVN0cmVhbVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kICovXG5cdHN0YXRpYyByZWFkb25seSBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCA9XG5cdFx0XCJraW5lc2lzOkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVsZXRlUmVzb3VyY2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlUG9saWN5ID0gXCJraW5lc2lzOkRlbGV0ZVJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVsZXRlU3RyZWFtICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTdHJlYW0gPSBcImtpbmVzaXM6RGVsZXRlU3RyZWFtXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgPSBcImtpbmVzaXM6RGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpEZXNjcmliZUFjY291bnRTZXR0aW5ncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBY2NvdW50U2V0dGluZ3MgPSBcImtpbmVzaXM6RGVzY3JpYmVBY2NvdW50U2V0dGluZ3NcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkRlc2NyaWJlTGltaXRzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUxpbWl0cyA9IFwia2luZXNpczpEZXNjcmliZUxpbWl0c1wiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6RGVzY3JpYmVTdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU3RyZWFtID0gXCJraW5lc2lzOkRlc2NyaWJlU3RyZWFtXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpEZXNjcmliZVN0cmVhbUNvbnN1bWVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbUNvbnN1bWVyID0gXCJraW5lc2lzOkRlc2NyaWJlU3RyZWFtQ29uc3VtZXJcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkRlc2NyaWJlU3RyZWFtU3VtbWFyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5ID0gXCJraW5lc2lzOkRlc2NyaWJlU3RyZWFtU3VtbWFyeVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRpc2FibGVFbmhhbmNlZE1vbml0b3JpbmcgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmcgPVxuXHRcdFwia2luZXNpczpEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nICovXG5cdHN0YXRpYyByZWFkb25seSBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmcgPSBcImtpbmVzaXM6RW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpHZXRSZWNvcmRzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWNvcmRzID0gXCJraW5lc2lzOkdldFJlY29yZHNcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkdldFJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXNvdXJjZVBvbGljeSA9IFwia2luZXNpczpHZXRSZXNvdXJjZVBvbGljeVwiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6R2V0U2hhcmRJdGVyYXRvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U2hhcmRJdGVyYXRvciA9IFwia2luZXNpczpHZXRTaGFyZEl0ZXJhdG9yXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6SW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QgKi9cblx0c3RhdGljIHJlYWRvbmx5IEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kID1cblx0XHRcImtpbmVzaXM6SW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpJbmplY3RBcGlFcnJvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW5qZWN0QXBpRXJyb3IgPSBcImtpbmVzaXM6SW5qZWN0QXBpRXJyb3JcIjtcblx0LyoqIFtMaXN0XSBraW5lc2lzOkxpc3RTaGFyZHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTaGFyZHMgPSBcImtpbmVzaXM6TGlzdFNoYXJkc1wiO1xuXHQvKiogW0xpc3RdIGtpbmVzaXM6TGlzdFN0cmVhbUNvbnN1bWVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN0cmVhbUNvbnN1bWVycyA9IFwia2luZXNpczpMaXN0U3RyZWFtQ29uc3VtZXJzXCI7XG5cdC8qKiBbTGlzdF0ga2luZXNpczpMaXN0U3RyZWFtcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN0cmVhbXMgPSBcImtpbmVzaXM6TGlzdFN0cmVhbXNcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcImtpbmVzaXM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6TGlzdFRhZ3NGb3JTdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yU3RyZWFtID0gXCJraW5lc2lzOkxpc3RUYWdzRm9yU3RyZWFtXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6TWVyZ2VTaGFyZHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE1lcmdlU2hhcmRzID0gXCJraW5lc2lzOk1lcmdlU2hhcmRzXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6UHV0UmVjb3JkICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZWNvcmQgPSBcImtpbmVzaXM6UHV0UmVjb3JkXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6UHV0UmVjb3JkcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVjb3JkcyA9IFwia2luZXNpczpQdXRSZWNvcmRzXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6UHV0UmVzb3VyY2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dFJlc291cmNlUG9saWN5ID0gXCJraW5lc2lzOlB1dFJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6UmVnaXN0ZXJTdHJlYW1Db25zdW1lciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVnaXN0ZXJTdHJlYW1Db25zdW1lciA9IFwia2luZXNpczpSZWdpc3RlclN0cmVhbUNvbnN1bWVyXCI7XG5cdC8qKiBbVGFnZ2luZ10ga2luZXNpczpSZW1vdmVUYWdzRnJvbVN0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVtb3ZlVGFnc0Zyb21TdHJlYW0gPSBcImtpbmVzaXM6UmVtb3ZlVGFnc0Zyb21TdHJlYW1cIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpTcGxpdFNoYXJkICovXG5cdHN0YXRpYyByZWFkb25seSBTcGxpdFNoYXJkID0gXCJraW5lc2lzOlNwbGl0U2hhcmRcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpTdGFydFN0cmVhbUVuY3J5cHRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U3RyZWFtRW5jcnlwdGlvbiA9IFwia2luZXNpczpTdGFydFN0cmVhbUVuY3J5cHRpb25cIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpTdG9wU3RyZWFtRW5jcnlwdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFN0cmVhbUVuY3J5cHRpb24gPSBcImtpbmVzaXM6U3RvcFN0cmVhbUVuY3J5cHRpb25cIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOlN1YnNjcmliZVRvU2hhcmQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1YnNjcmliZVRvU2hhcmQgPSBcImtpbmVzaXM6U3Vic2NyaWJlVG9TaGFyZFwiO1xuXHQvKiogW1RhZ2dpbmddIGtpbmVzaXM6VGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlID0gXCJraW5lc2lzOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbVGFnZ2luZ10ga2luZXNpczpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJraW5lc2lzOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpVcGRhdGVBY2NvdW50U2V0dGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFjY291bnRTZXR0aW5ncyA9IFwia2luZXNpczpVcGRhdGVBY2NvdW50U2V0dGluZ3NcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpVcGRhdGVNYXhSZWNvcmRTaXplICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVNYXhSZWNvcmRTaXplID0gXCJraW5lc2lzOlVwZGF0ZU1heFJlY29yZFNpemVcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpVcGRhdGVTaGFyZENvdW50ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTaGFyZENvdW50ID0gXCJraW5lc2lzOlVwZGF0ZVNoYXJkQ291bnRcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpVcGRhdGVTdHJlYW1Nb2RlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTdHJlYW1Nb2RlID0gXCJraW5lc2lzOlVwZGF0ZVN0cmVhbU1vZGVcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpVcGRhdGVTdHJlYW1XYXJtVGhyb3VnaHB1dCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXQgPVxuXHRcdFwia2luZXNpczpVcGRhdGVTdHJlYW1XYXJtVGhyb3VnaHB1dFwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEtpbmVzaXNBY3Rpb25zLkRlc2NyaWJlQWNjb3VudFNldHRpbmdzLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlc2NyaWJlTGltaXRzLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlc2NyaWJlU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlc2NyaWJlU3RyZWFtQ29uc3VtZXIsXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVzY3JpYmVTdHJlYW1TdW1tYXJ5LFxuXHRcdEtpbmVzaXNBY3Rpb25zLmFjdGlvbkdldFJlY29yZHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuYWN0aW9uR2V0UmVzb3VyY2VQb2xpY3ksXG5cdFx0S2luZXNpc0FjdGlvbnMuYWN0aW9uR2V0U2hhcmRJdGVyYXRvcixcblx0XHRLaW5lc2lzQWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkxpc3RUYWdzRm9yU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlN1YnNjcmliZVRvU2hhcmQsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0S2luZXNpc0FjdGlvbnMuQ3JlYXRlU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlbGV0ZVJlc291cmNlUG9saWN5LFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlbGV0ZVN0cmVhbSxcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIsXG5cdFx0S2luZXNpc0FjdGlvbnMuRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZyxcblx0XHRLaW5lc2lzQWN0aW9ucy5FbmFibGVFbmhhbmNlZE1vbml0b3JpbmcsXG5cdFx0S2luZXNpc0FjdGlvbnMuSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QsXG5cdFx0S2luZXNpc0FjdGlvbnMuSW5qZWN0QXBpRXJyb3IsXG5cdFx0S2luZXNpc0FjdGlvbnMuTWVyZ2VTaGFyZHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuUHV0UmVjb3JkLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlB1dFJlY29yZHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuUHV0UmVzb3VyY2VQb2xpY3ksXG5cdFx0S2luZXNpc0FjdGlvbnMuUmVnaXN0ZXJTdHJlYW1Db25zdW1lcixcblx0XHRLaW5lc2lzQWN0aW9ucy5TcGxpdFNoYXJkLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlN0YXJ0U3RyZWFtRW5jcnlwdGlvbixcblx0XHRLaW5lc2lzQWN0aW9ucy5TdG9wU3RyZWFtRW5jcnlwdGlvbixcblx0XHRLaW5lc2lzQWN0aW9ucy5VcGRhdGVBY2NvdW50U2V0dGluZ3MsXG5cdFx0S2luZXNpc0FjdGlvbnMuVXBkYXRlTWF4UmVjb3JkU2l6ZSxcblx0XHRLaW5lc2lzQWN0aW9ucy5VcGRhdGVTaGFyZENvdW50LFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZVN0cmVhbU1vZGUsXG5cdFx0S2luZXNpc0FjdGlvbnMuVXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXQsXG5cdF07XG5cdC8qKiBBbGwgbGlzdC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsTGlzdEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEtpbmVzaXNBY3Rpb25zLkxpc3RTaGFyZHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuTGlzdFN0cmVhbUNvbnN1bWVycyxcblx0XHRLaW5lc2lzQWN0aW9ucy5MaXN0U3RyZWFtcyxcblx0XTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0S2luZXNpc0FjdGlvbnMuQWRkVGFnc1RvU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlJlbW92ZVRhZ3NGcm9tU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb25zdW1lciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc0NvbnN1bWVyQXJuUHJvcHMge1xuXHQvKiogVGhlIFN0cmVhbVR5cGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHN0cmVhbVR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBTdHJlYW1OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzdHJlYW1OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29uc3VtZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25zdW1lck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb25zdW1lckNyZWF0aW9uVGltcHN0YW1wIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25zdW1lckNyZWF0aW9uVGltcHN0YW1wOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29uc3VtZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNDb25zdW1lckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RyZWFtVHlwZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHN0cmVhbVR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBTdHJlYW1OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc3RyZWFtTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbnN1bWVyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbnN1bWVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbnN1bWVyQ3JlYXRpb25UaW1wc3RhbXAgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb25zdW1lckNyZWF0aW9uVGltcHN0YW1wOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBrbXNLZXkgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNLTVNLZXlBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgS2V5SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEga21zS2V5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzS01TS2V5QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBLZXlJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBzdHJlYW0gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNTdHJlYW1Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU3RyZWFtTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc3RyZWFtTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHN0cmVhbSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc1N0cmVhbUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RyZWFtTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHN0cmVhbU5hbWU6IHN0cmluZztcbn1cblxuY29uc3QgQ29uc3VtZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6a2luZXNpczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOig/PHN0cmVhbVR5cGU+W146Lz9dKylcXC8oPzxzdHJlYW1OYW1lPlteOi8/XSspXFwvY29uc3VtZXJcXC8oPzxjb25zdW1lck5hbWU+W146Lz9dKyk6KD88Y29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcD5bXjovP10rKSQvO1xuY29uc3QgS01TS2V5QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmttczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmtleVxcLyg/PGtleUlkPlteOi8/XSspJC87XG5jb25zdCBTdHJlYW1Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6a2luZXNpczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnN0cmVhbVxcLyg/PHN0cmVhbU5hbWU+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBraW5lc2lzIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbnN1bWVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbnN1bWVyKHByb3BzOiBLaW5lc2lzQ29uc3VtZXJBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a2luZXNpczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifToke3Byb3BzLnN0cmVhbVR5cGV9LyR7cHJvcHMuc3RyZWFtTmFtZX0vY29uc3VtZXIvJHtwcm9wcy5jb25zdW1lck5hbWV9OiR7cHJvcHMuY29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29uc3VtZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbnN1bWVyQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbnN1bWVyQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbnN1bWVyIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbnN1bWVyQXJuKGFybjogc3RyaW5nKTogS2luZXNpc0NvbnN1bWVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb25zdW1lckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb25zdW1lciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzdHJlYW1UeXBlOiBtYXRjaC5ncm91cHMhLnN0cmVhbVR5cGUsXG5cdFx0XHRzdHJlYW1OYW1lOiBtYXRjaC5ncm91cHMhLnN0cmVhbU5hbWUsXG5cdFx0XHRjb25zdW1lck5hbWU6IG1hdGNoLmdyb3VwcyEuY29uc3VtZXJOYW1lLFxuXHRcdFx0Y29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcDogbWF0Y2guZ3JvdXBzIS5jb25zdW1lckNyZWF0aW9uVGltcHN0YW1wLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGttc0tleSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBrbXNLZXkocHJvcHM6IEtpbmVzaXNLTVNLZXlBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a21zOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmtleS8ke3Byb3BzLmtleUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBrbXNLZXkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEtNU0tleUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBLTVNLZXlBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEga21zS2V5IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUtNU0tleUFybihhcm46IHN0cmluZyk6IEtpbmVzaXNLTVNLZXlBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEtNU0tleUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBrbXNLZXkgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0a2V5SWQ6IG1hdGNoLmdyb3VwcyEua2V5SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgc3RyZWFtIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHN0cmVhbShwcm9wczogS2luZXNpc1N0cmVhbUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpraW5lc2lzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnN0cmVhbS8ke3Byb3BzLnN0cmVhbU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHN0cmVhbSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU3RyZWFtQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFN0cmVhbUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzdHJlYW0gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU3RyZWFtQXJuKGFybjogc3RyaW5nKTogS2luZXNpc1N0cmVhbUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU3RyZWFtQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHN0cmVhbSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzdHJlYW1OYW1lOiBtYXRjaC5ncm91cHMhLnN0cmVhbU5hbWUsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3Iga2luZXNpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWRkVGFnc1RvU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWRkVGFnc1RvU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6QWRkVGFnc1RvU3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTdHJlYW0gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTdHJlYW06IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpBZGRUYWdzVG9TdHJlYW1cIixcblx0XHRcImtpbmVzaXM6Q3JlYXRlU3RyZWFtXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2Q6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZXNvdXJjZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVsZXRlUmVzb3VyY2VQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6RGVsZXRlU3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVBY2NvdW50U2V0dGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFjY291bnRTZXR0aW5nczogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkRlc2NyaWJlQWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlTGltaXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVMaW1pdHM6IHN0cmluZ1tdID0gW1wia2luZXNpczpEZXNjcmliZUxpbWl0c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVTdHJlYW0gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbTogc3RyaW5nW10gPSBbXCJraW5lc2lzOkRlc2NyaWJlU3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVN0cmVhbUNvbnN1bWVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTdHJlYW1Db25zdW1lcjogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkRlc2NyaWJlU3RyZWFtQ29uc3VtZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5OiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1TdW1tYXJ5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBFbmFibGVFbmhhbmNlZE1vbml0b3Jpbmc6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb3JkcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVjb3Jkczogc3RyaW5nW10gPSBbXCJraW5lc2lzOkdldFJlY29yZHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJlc291cmNlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZXNvdXJjZVBvbGljeTogc3RyaW5nW10gPSBbXCJraW5lc2lzOkdldFJlc291cmNlUG9saWN5XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRTaGFyZEl0ZXJhdG9yIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTaGFyZEl0ZXJhdG9yOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6R2V0U2hhcmRJdGVyYXRvclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZDogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTaGFyZHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U2hhcmRzOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6TGlzdFNoYXJkc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFN0cmVhbUNvbnN1bWVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdHJlYW1Db25zdW1lcnM6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpMaXN0U3RyZWFtQ29uc3VtZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTdHJlYW1zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN0cmVhbXM6IHN0cmluZ1tdID0gW1wia2luZXNpczpMaXN0U3RyZWFtc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3NGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpMaXN0VGFnc0ZvclJlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JTdHJlYW06IHN0cmluZ1tdID0gW1wia2luZXNpczpMaXN0VGFnc0ZvclN0cmVhbVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTWVyZ2VTaGFyZHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBNZXJnZVNoYXJkczogc3RyaW5nW10gPSBbXCJraW5lc2lzOk1lcmdlU2hhcmRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRSZWNvcmQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZWNvcmQ6IHN0cmluZ1tdID0gW1wia2luZXNpczpQdXRSZWNvcmRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dFJlY29yZHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZWNvcmRzOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6UHV0UmVjb3Jkc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0UmVzb3VyY2VQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZXNvdXJjZVBvbGljeTogc3RyaW5nW10gPSBbXCJraW5lc2lzOlB1dFJlc291cmNlUG9saWN5XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZWdpc3RlclN0cmVhbUNvbnN1bWVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVnaXN0ZXJTdHJlYW1Db25zdW1lcjogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOlJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJcIixcblx0XHRcImtpbmVzaXM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVtb3ZlVGFnc0Zyb21TdHJlYW0gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZW1vdmVUYWdzRnJvbVN0cmVhbTogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOlJlbW92ZVRhZ3NGcm9tU3RyZWFtXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFNwbGl0U2hhcmQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTcGxpdFNoYXJkOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6U3BsaXRTaGFyZFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRTdHJlYW1FbmNyeXB0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRTdHJlYW1FbmNyeXB0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6U3RhcnRTdHJlYW1FbmNyeXB0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BTdHJlYW1FbmNyeXB0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFN0cmVhbUVuY3J5cHRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpTdG9wU3RyZWFtRW5jcnlwdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdWJzY3JpYmVUb1NoYXJkIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3Vic2NyaWJlVG9TaGFyZDogc3RyaW5nW10gPSBbXCJraW5lc2lzOlN1YnNjcmliZVRvU2hhcmRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wia2luZXNpczpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wia2luZXNpczpVbnRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVBY2NvdW50U2V0dGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBY2NvdW50U2V0dGluZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpVcGRhdGVBY2NvdW50U2V0dGluZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTWF4UmVjb3JkU2l6ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1heFJlY29yZFNpemU6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpVcGRhdGVNYXhSZWNvcmRTaXplXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVNoYXJkQ291bnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTaGFyZENvdW50OiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VXBkYXRlU2hhcmRDb3VudFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlU3RyZWFtTW9kZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbU1vZGU6IHN0cmluZ1tdID0gW1wia2luZXNpczpVcGRhdGVTdHJlYW1Nb2RlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVTdHJlYW1XYXJtVGhyb3VnaHB1dCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0OiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6VXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXRcIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGtpbmVzaXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBLaW5lc2lzQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBJbmplY3RBcGlFcnJvciBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBJbmplY3RBcGlFcnJvckNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpGaXNBY3Rpb25JZFwiLFxuXHRcdFwia2luZXNpczpGaXNJbmplY3RQZXJjZW50YWdlXCIsXG5cdFx0XCJraW5lc2lzOkZpc1RhcmdldEFybnNcIixcblx0XTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBraW5lc2lzOkZpc0FjdGlvbklkIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBGSVNfQUNUSU9OX0lEID0gXCJraW5lc2lzOkZpc0FjdGlvbklkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2UgKE51bWVyaWMpICovXG5cdHN0YXRpYyByZWFkb25seSBGSVNfSU5KRUNUX1BFUkNFTlRBR0UgPSBcImtpbmVzaXM6RmlzSW5qZWN0UGVyY2VudGFnZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleToga2luZXNpczpGaXNUYXJnZXRBcm5zIChBcnJheU9mQVJOKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRklTX1RBUkdFVF9BUk5TID0gXCJraW5lc2lzOkZpc1RhcmdldEFybnNcIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXF1ZXN0VGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZVRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyB0YWdLZXlzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3czpUYWdLZXlzXCI6IHZhbHVlcyB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBga2luZXNpczpGaXNBY3Rpb25JZGAuXG5cdCAqL1xuXHRzdGF0aWMgZmlzQWN0aW9uSWQodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJraW5lc2lzOkZpc0FjdGlvbklkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2VgLlxuXHQgKi9cblx0c3RhdGljIGZpc0luamVjdFBlcmNlbnRhZ2UoXG5cdFx0dmFsdWU6IG51bWJlcixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj4ge1xuXHRcdHJldHVybiB7IE51bWVyaWNFcXVhbHM6IHsgXCJraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2VcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGtpbmVzaXM6RmlzVGFyZ2V0QXJuc2AuXG5cdCAqL1xuXHRzdGF0aWMgZmlzVGFyZ2V0QXJucyhcblx0XHR2YWx1ZXM6IHN0cmluZ1tdLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpBcm5FcXVhbHNcIjogeyBcImtpbmVzaXM6RmlzVGFyZ2V0QXJuc1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG59XG4iXX0=
504
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZXNpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvc2VydmljZXMva2luZXNpcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsMERBQTBEO0FBQzFELDhDQUE4QztBQUM5QyxvREFBb0Q7QUFDcEQsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBYSxjQUFjOztBQUEzQix3Q0FrS0M7OztBQWpLQSw4QkFBOEI7QUFDZCw2QkFBYyxHQUFHLFNBQVMsQ0FBQztBQUUzQyx3Q0FBd0M7QUFDeEIsOEJBQWUsR0FBRyx5QkFBeUIsQ0FBQztBQUM1RCxrREFBa0Q7QUFDbEMsMENBQTJCLEdBQzFDLHFDQUFxQyxDQUFDO0FBQ3ZDLHNDQUFzQztBQUN0Qiw0QkFBYSxHQUFHLHVCQUF1QixDQUFDO0FBQ3hELG1DQUFtQztBQUNuQiwyQkFBWSxHQUFHLHNCQUFzQixDQUFDO0FBQ3RELG9EQUFvRDtBQUNwQyw0Q0FBNkIsR0FDNUMsdUNBQXVDLENBQUM7QUFDekMsb0NBQW9DO0FBQ3BCLDRCQUFhLEdBQUcsdUJBQXVCLENBQUM7QUFDeEQsMkNBQTJDO0FBQzNCLG1DQUFvQixHQUFHLDhCQUE4QixDQUFDO0FBQ3RFLG1DQUFtQztBQUNuQiwyQkFBWSxHQUFHLHNCQUFzQixDQUFDO0FBQ3RELCtDQUErQztBQUMvQix1Q0FBd0IsR0FBRyxrQ0FBa0MsQ0FBQztBQUM5RSw2Q0FBNkM7QUFDN0Isc0NBQXVCLEdBQUcsaUNBQWlDLENBQUM7QUFDNUUscUNBQXFDO0FBQ3JCLDhCQUFlLEdBQUcseUJBQXlCLENBQUM7QUFDNUQsb0NBQW9DO0FBQ3BCLDZCQUFjLEdBQUcsd0JBQXdCLENBQUM7QUFDMUQsb0NBQW9DO0FBQ3BCLDZCQUFjLEdBQUcsd0JBQXdCLENBQUM7QUFDMUQsNENBQTRDO0FBQzVCLHFDQUFzQixHQUFHLGdDQUFnQyxDQUFDO0FBQzFFLDJDQUEy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Q3hDLGtDQUFnQixHQUFHLDJCQUEyQixDQUFDO0FBQy9ELGlEQUFpRDtBQUNqQyw4QkFBWSxHQUFHLGFBQWEsQ0FBQztBQUM3QyxrREFBa0Q7QUFDbEMsK0JBQWEsR0FBRyxxQkFBcUIsQ0FBQztBQUN0RCwyREFBMkQ7QUFDM0MsdUNBQXFCLEdBQUcsNkJBQTZCLENBQUM7QUFDdEUsd0RBQXdEO0FBQ3hDLGlDQUFlLEdBQUcsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9raW5lc2lzLmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSBraW5lc2lzIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBLaW5lc2lzQWN0aW9ucyB7XG5cdC8qKiBUaGUgSUFNIHNlcnZpY2UgcHJlZml4LiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9QUkVGSVggPSBcImtpbmVzaXNcIjtcblxuXHQvKiogW1RhZ2dpbmddIGtpbmVzaXM6QWRkVGFnc1RvU3RyZWFtICovXG5cdHN0YXRpYyByZWFkb25seSBBZGRUYWdzVG9TdHJlYW0gPSBcImtpbmVzaXM6QWRkVGFnc1RvU3RyZWFtXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6QXNzb2NpYXRlU3RyZWFtc1dpdGhDaGFubmVsICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVTdHJlYW1zV2l0aENoYW5uZWwgPVxuXHRcdFwia2luZXNpczpBc3NvY2lhdGVTdHJlYW1zV2l0aENoYW5uZWxcIjtcblx0LyoqIFtUYWdnaW5nXSBraW5lc2lzOkNyZWF0ZUNoYW5uZWwgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNoYW5uZWwgPSBcImtpbmVzaXM6Q3JlYXRlQ2hhbm5lbFwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkNyZWF0ZVN0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU3RyZWFtID0gXCJraW5lc2lzOkNyZWF0ZVN0cmVhbVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kICovXG5cdHN0YXRpYyByZWFkb25seSBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCA9XG5cdFx0XCJraW5lc2lzOkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVsZXRlQ2hhbm5lbCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2hhbm5lbCA9IFwia2luZXNpczpEZWxldGVDaGFubmVsXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVsZXRlUmVzb3VyY2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlUG9saWN5ID0gXCJraW5lc2lzOkRlbGV0ZVJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVsZXRlU3RyZWFtICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTdHJlYW0gPSBcImtpbmVzaXM6RGVsZXRlU3RyZWFtXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgPSBcImtpbmVzaXM6RGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpEZXNjcmliZUFjY291bnRTZXR0aW5ncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBY2NvdW50U2V0dGluZ3MgPSBcImtpbmVzaXM6RGVzY3JpYmVBY2NvdW50U2V0dGluZ3NcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkRlc2NyaWJlQ2hhbm5lbCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDaGFubmVsID0gXCJraW5lc2lzOkRlc2NyaWJlQ2hhbm5lbFwiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6RGVzY3JpYmVMaW1pdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTGltaXRzID0gXCJraW5lc2lzOkRlc2NyaWJlTGltaXRzXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpEZXNjcmliZVN0cmVhbSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTdHJlYW0gPSBcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1cIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkRlc2NyaWJlU3RyZWFtQ29uc3VtZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU3RyZWFtQ29uc3VtZXIgPSBcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1Db25zdW1lclwiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6RGVzY3JpYmVTdHJlYW1TdW1tYXJ5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbVN1bW1hcnkgPSBcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1TdW1tYXJ5XCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6RGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZyA9XG5cdFx0XCJraW5lc2lzOkRpc2FibGVFbmhhbmNlZE1vbml0b3JpbmdcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpFbmFibGVFbmhhbmNlZE1vbml0b3JpbmcgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZyA9IFwia2luZXNpczpFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkdldFJlY29yZHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlY29yZHMgPSBcImtpbmVzaXM6R2V0UmVjb3Jkc1wiO1xuXHQvKiogW1JlYWRdIGtpbmVzaXM6R2V0UmVzb3VyY2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlc291cmNlUG9saWN5ID0gXCJraW5lc2lzOkdldFJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpHZXRTaGFyZEl0ZXJhdG9yICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRTaGFyZEl0ZXJhdG9yID0gXCJraW5lc2lzOkdldFNoYXJkSXRlcmF0b3JcIjtcblx0LyoqIFtXcml0ZV0ga2luZXNpczpJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QgPVxuXHRcdFwia2luZXNpczpJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZFwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOkluamVjdEFwaUVycm9yICovXG5cdHN0YXRpYyByZWFkb25seSBJbmplY3RBcGlFcnJvciA9IFwia2luZXNpczpJbmplY3RBcGlFcnJvclwiO1xuXHQvKiogW0xpc3RdIGtpbmVzaXM6TGlzdENoYW5uZWxzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2hhbm5lbHMgPSBcImtpbmVzaXM6TGlzdENoYW5uZWxzXCI7XG5cdC8qKiBbTGlzdF0ga2luZXNpczpMaXN0U2hhcmRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U2hhcmRzID0gXCJraW5lc2lzOkxpc3RTaGFyZHNcIjtcblx0LyoqIFtMaXN0XSBraW5lc2lzOkxpc3RTdHJlYW1Db25zdW1lcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdHJlYW1Db25zdW1lcnMgPSBcImtpbmVzaXM6TGlzdFN0cmVhbUNvbnN1bWVyc1wiO1xuXHQvKiogW0xpc3RdIGtpbmVzaXM6TGlzdFN0cmVhbXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdHJlYW1zID0gXCJraW5lc2lzOkxpc3RTdHJlYW1zXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJraW5lc2lzOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtSZWFkXSBraW5lc2lzOkxpc3RUYWdzRm9yU3RyZWFtICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclN0cmVhbSA9IFwia2luZXNpczpMaXN0VGFnc0ZvclN0cmVhbVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOk1lcmdlU2hhcmRzICovXG5cdHN0YXRpYyByZWFkb25seSBNZXJnZVNoYXJkcyA9IFwia2luZXNpczpNZXJnZVNoYXJkc1wiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlB1dFJlY29yZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVjb3JkID0gXCJraW5lc2lzOlB1dFJlY29yZFwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlB1dFJlY29yZHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dFJlY29yZHMgPSBcImtpbmVzaXM6UHV0UmVjb3Jkc1wiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlB1dFJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZXNvdXJjZVBvbGljeSA9IFwia2luZXNpczpQdXRSZXNvdXJjZVBvbGljeVwiO1xuXHQvKiogW1dyaXRlXSBraW5lc2lzOlJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgPSBcImtpbmVzaXM6UmVnaXN0ZXJTdHJlYW1Db25zdW1lclwiO1xuXHQvKiogW1RhZ2dpbmddIGtpbmVzaXM6UmVtb3ZlVGFnc0Zyb21TdHJlYW0gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlbW92ZVRhZ3NGcm9tU3RyZWFtID0gXCJraW5lc2lzOlJlbW92ZVRhZ3NGcm9tU3RyZWFtXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6U3BsaXRTaGFyZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3BsaXRTaGFyZCA9IFwia2luZXNpczpTcGxpdFNoYXJkXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6U3RhcnRTdHJlYW1FbmNyeXB0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFN0cmVhbUVuY3J5cHRpb24gPSBcImtpbmVzaXM6U3RhcnRTdHJlYW1FbmNyeXB0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6U3RvcFN0cmVhbUVuY3J5cHRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BTdHJlYW1FbmNyeXB0aW9uID0gXCJraW5lc2lzOlN0b3BTdHJlYW1FbmNyeXB0aW9uXCI7XG5cdC8qKiBbUmVhZF0ga2luZXNpczpTdWJzY3JpYmVUb1NoYXJkICovXG5cdHN0YXRpYyByZWFkb25seSBTdWJzY3JpYmVUb1NoYXJkID0gXCJraW5lc2lzOlN1YnNjcmliZVRvU2hhcmRcIjtcblx0LyoqIFtUYWdnaW5nXSBraW5lc2lzOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwia2luZXNpczpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1RhZ2dpbmddIGtpbmVzaXM6VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwia2luZXNpczpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlQWNjb3VudFNldHRpbmdzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBY2NvdW50U2V0dGluZ3MgPSBcImtpbmVzaXM6VXBkYXRlQWNjb3VudFNldHRpbmdzXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlQ2hhbm5lbCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2hhbm5lbCA9IFwia2luZXNpczpVcGRhdGVDaGFubmVsXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlTWF4UmVjb3JkU2l6ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWF4UmVjb3JkU2l6ZSA9IFwia2luZXNpczpVcGRhdGVNYXhSZWNvcmRTaXplXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlU2hhcmRDb3VudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU2hhcmRDb3VudCA9IFwia2luZXNpczpVcGRhdGVTaGFyZENvdW50XCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlU3RyZWFtTW9kZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlU3RyZWFtTW9kZSA9IFwia2luZXNpczpVcGRhdGVTdHJlYW1Nb2RlXCI7XG5cdC8qKiBbV3JpdGVdIGtpbmVzaXM6VXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0ID1cblx0XHRcImtpbmVzaXM6VXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXRcIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXNjcmliZUFjY291bnRTZXR0aW5ncyxcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXNjcmliZUNoYW5uZWwsXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVzY3JpYmVMaW1pdHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVzY3JpYmVTdHJlYW0sXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVzY3JpYmVTdHJlYW1Db25zdW1lcixcblx0XHRLaW5lc2lzQWN0aW9ucy5EZXNjcmliZVN0cmVhbVN1bW1hcnksXG5cdFx0S2luZXNpc0FjdGlvbnMuYWN0aW9uR2V0UmVjb3Jkcyxcblx0XHRLaW5lc2lzQWN0aW9ucy5hY3Rpb25HZXRSZXNvdXJjZVBvbGljeSxcblx0XHRLaW5lc2lzQWN0aW9ucy5hY3Rpb25HZXRTaGFyZEl0ZXJhdG9yLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdFx0S2luZXNpc0FjdGlvbnMuTGlzdFRhZ3NGb3JTdHJlYW0sXG5cdFx0S2luZXNpc0FjdGlvbnMuU3Vic2NyaWJlVG9TaGFyZCxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5Bc3NvY2lhdGVTdHJlYW1zV2l0aENoYW5uZWwsXG5cdFx0S2luZXNpc0FjdGlvbnMuQ3JlYXRlU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlbGV0ZUNoYW5uZWwsXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVsZXRlUmVzb3VyY2VQb2xpY3ksXG5cdFx0S2luZXNpc0FjdGlvbnMuRGVsZXRlU3RyZWFtLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkRlcmVnaXN0ZXJTdHJlYW1Db25zdW1lcixcblx0XHRLaW5lc2lzQWN0aW9ucy5EaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZyxcblx0XHRLaW5lc2lzQWN0aW9ucy5JbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCxcblx0XHRLaW5lc2lzQWN0aW9ucy5JbmplY3RBcGlFcnJvcixcblx0XHRLaW5lc2lzQWN0aW9ucy5NZXJnZVNoYXJkcyxcblx0XHRLaW5lc2lzQWN0aW9ucy5QdXRSZWNvcmQsXG5cdFx0S2luZXNpc0FjdGlvbnMuUHV0UmVjb3Jkcyxcblx0XHRLaW5lc2lzQWN0aW9ucy5QdXRSZXNvdXJjZVBvbGljeSxcblx0XHRLaW5lc2lzQWN0aW9ucy5SZWdpc3RlclN0cmVhbUNvbnN1bWVyLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlNwbGl0U2hhcmQsXG5cdFx0S2luZXNpc0FjdGlvbnMuU3RhcnRTdHJlYW1FbmNyeXB0aW9uLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlN0b3BTdHJlYW1FbmNyeXB0aW9uLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZUFjY291bnRTZXR0aW5ncyxcblx0XHRLaW5lc2lzQWN0aW9ucy5VcGRhdGVDaGFubmVsLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZU1heFJlY29yZFNpemUsXG5cdFx0S2luZXNpc0FjdGlvbnMuVXBkYXRlU2hhcmRDb3VudCxcblx0XHRLaW5lc2lzQWN0aW9ucy5VcGRhdGVTdHJlYW1Nb2RlLFxuXHRcdEtpbmVzaXNBY3Rpb25zLlVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0LFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5MaXN0Q2hhbm5lbHMsXG5cdFx0S2luZXNpc0FjdGlvbnMuTGlzdFNoYXJkcyxcblx0XHRLaW5lc2lzQWN0aW9ucy5MaXN0U3RyZWFtQ29uc3VtZXJzLFxuXHRcdEtpbmVzaXNBY3Rpb25zLkxpc3RTdHJlYW1zLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRLaW5lc2lzQWN0aW9ucy5BZGRUYWdzVG9TdHJlYW0sXG5cdFx0S2luZXNpc0FjdGlvbnMuQ3JlYXRlQ2hhbm5lbCxcblx0XHRLaW5lc2lzQWN0aW9ucy5SZW1vdmVUYWdzRnJvbVN0cmVhbSxcblx0XHRLaW5lc2lzQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHRLaW5lc2lzQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY2hhbm5lbCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc0NoYW5uZWxBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2hhbm5lbElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjaGFubmVsSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjaGFubmVsIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzQ2hhbm5lbEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2hhbm5lbElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2hhbm5lbElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjb25zdW1lciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc0NvbnN1bWVyQXJuUHJvcHMge1xuXHQvKiogVGhlIFN0cmVhbVR5cGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHN0cmVhbVR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBTdHJlYW1OYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzdHJlYW1OYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29uc3VtZXJOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25zdW1lck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBDb25zdW1lckNyZWF0aW9uVGltcHN0YW1wIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25zdW1lckNyZWF0aW9uVGltcHN0YW1wOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY29uc3VtZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNDb25zdW1lckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RyZWFtVHlwZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHN0cmVhbVR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBTdHJlYW1OYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc3RyZWFtTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbnN1bWVyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbnN1bWVyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbnN1bWVyQ3JlYXRpb25UaW1wc3RhbXAgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb25zdW1lckNyZWF0aW9uVGltcHN0YW1wOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBrbXNLZXkgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNLTVNLZXlBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgS2V5SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEga21zS2V5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzS01TS2V5QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBLZXlJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGtleUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBzdHJlYW0gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtpbmVzaXNTdHJlYW1Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU3RyZWFtTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc3RyZWFtTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHN0cmVhbSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc1N0cmVhbUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RyZWFtTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHN0cmVhbU5hbWU6IHN0cmluZztcbn1cblxuY29uc3QgQ2hhbm5lbEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpraW5lc2lzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y2hhbm5lbFxcLyg/PGNoYW5uZWxJZD5bXjovP10rKSQvO1xuY29uc3QgQ29uc3VtZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6a2luZXNpczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOig/PHN0cmVhbVR5cGU+W146Lz9dKylcXC8oPzxzdHJlYW1OYW1lPlteOi8/XSspXFwvY29uc3VtZXJcXC8oPzxjb25zdW1lck5hbWU+W146Lz9dKyk6KD88Y29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcD5bXjovP10rKSQvO1xuY29uc3QgS01TS2V5QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmttczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmtleVxcLyg/PGtleUlkPlteOi8/XSspJC87XG5jb25zdCBTdHJlYW1Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6a2luZXNpczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnN0cmVhbVxcLyg/PHN0cmVhbU5hbWU+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBraW5lc2lzIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNoYW5uZWwgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY2hhbm5lbChwcm9wczogS2luZXNpc0NoYW5uZWxBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a2luZXNpczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjaGFubmVsLyR7cHJvcHMuY2hhbm5lbElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjaGFubmVsIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDaGFubmVsQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENoYW5uZWxBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY2hhbm5lbCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDaGFubmVsQXJuKGFybjogc3RyaW5nKTogS2luZXNpc0NoYW5uZWxBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENoYW5uZWxBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2hhbm5lbCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjaGFubmVsSWQ6IG1hdGNoLmdyb3VwcyEuY2hhbm5lbElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNvbnN1bWVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbnN1bWVyKHByb3BzOiBLaW5lc2lzQ29uc3VtZXJBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a2luZXNpczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifToke3Byb3BzLnN0cmVhbVR5cGV9LyR7cHJvcHMuc3RyZWFtTmFtZX0vY29uc3VtZXIvJHtwcm9wcy5jb25zdW1lck5hbWV9OiR7cHJvcHMuY29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY29uc3VtZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENvbnN1bWVyQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbnN1bWVyQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNvbnN1bWVyIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNvbnN1bWVyQXJuKGFybjogc3RyaW5nKTogS2luZXNpc0NvbnN1bWVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb25zdW1lckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb25zdW1lciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzdHJlYW1UeXBlOiBtYXRjaC5ncm91cHMhLnN0cmVhbVR5cGUsXG5cdFx0XHRzdHJlYW1OYW1lOiBtYXRjaC5ncm91cHMhLnN0cmVhbU5hbWUsXG5cdFx0XHRjb25zdW1lck5hbWU6IG1hdGNoLmdyb3VwcyEuY29uc3VtZXJOYW1lLFxuXHRcdFx0Y29uc3VtZXJDcmVhdGlvblRpbXBzdGFtcDogbWF0Y2guZ3JvdXBzIS5jb25zdW1lckNyZWF0aW9uVGltcHN0YW1wLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGttc0tleSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBrbXNLZXkocHJvcHM6IEtpbmVzaXNLTVNLZXlBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06a21zOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmtleS8ke3Byb3BzLmtleUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBrbXNLZXkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEtNU0tleUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBLTVNLZXlBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEga21zS2V5IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUtNU0tleUFybihhcm46IHN0cmluZyk6IEtpbmVzaXNLTVNLZXlBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEtNU0tleUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBrbXNLZXkgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0a2V5SWQ6IG1hdGNoLmdyb3VwcyEua2V5SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgc3RyZWFtIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHN0cmVhbShwcm9wczogS2luZXNpc1N0cmVhbUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpraW5lc2lzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnN0cmVhbS8ke3Byb3BzLnN0cmVhbU5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHN0cmVhbSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU3RyZWFtQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFN0cmVhbUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBzdHJlYW0gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU3RyZWFtQXJuKGFybjogc3RyaW5nKTogS2luZXNpc1N0cmVhbUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU3RyZWFtQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHN0cmVhbSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzdHJlYW1OYW1lOiBtYXRjaC5ncm91cHMhLnN0cmVhbU5hbWUsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3Iga2luZXNpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWRkVGFnc1RvU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWRkVGFnc1RvU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6QWRkVGFnc1RvU3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDaGFubmVsIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2hhbm5lbDogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkFzc29jaWF0ZVN0cmVhbXNXaXRoQ2hhbm5lbFwiLFxuXHRcdFwia2luZXNpczpDcmVhdGVDaGFubmVsXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImtpbmVzaXM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU3RyZWFtOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6QWRkVGFnc1RvU3RyZWFtXCIsXG5cdFx0XCJraW5lc2lzOkNyZWF0ZVN0cmVhbVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ2hhbm5lbCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNoYW5uZWw6IHN0cmluZ1tdID0gW1wia2luZXNpczpEZWxldGVDaGFubmVsXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZXNvdXJjZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVsZXRlUmVzb3VyY2VQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6RGVsZXRlU3RyZWFtXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVBY2NvdW50U2V0dGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFjY291bnRTZXR0aW5nczogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkRlc2NyaWJlQWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ2hhbm5lbCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ2hhbm5lbDogc3RyaW5nW10gPSBbXCJraW5lc2lzOkRlc2NyaWJlQ2hhbm5lbFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVMaW1pdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUxpbWl0czogc3RyaW5nW10gPSBbXCJraW5lc2lzOkRlc2NyaWJlTGltaXRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVN0cmVhbSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU3RyZWFtQ29uc3VtZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbUNvbnN1bWVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6RGVzY3JpYmVTdHJlYW1Db25zdW1lclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZVN0cmVhbVN1bW1hcnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVN0cmVhbVN1bW1hcnk6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEZXNjcmliZVN0cmVhbVN1bW1hcnlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2FibGVFbmhhbmNlZE1vbml0b3Jpbmc6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZzogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOkVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWNvcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZWNvcmRzOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6R2V0UmVjb3Jkc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVzb3VyY2VQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlc291cmNlUG9saWN5OiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6R2V0UmVzb3VyY2VQb2xpY3lcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFNoYXJkSXRlcmF0b3IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFNoYXJkSXRlcmF0b3I6IHN0cmluZ1tdID0gW1wia2luZXNpczpHZXRTaGFyZEl0ZXJhdG9yXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6SW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENoYW5uZWxzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENoYW5uZWxzOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6TGlzdENoYW5uZWxzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U2hhcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFNoYXJkczogc3RyaW5nW10gPSBbXCJraW5lc2lzOkxpc3RTaGFyZHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTdHJlYW1Db25zdW1lcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3RyZWFtQ29uc3VtZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6TGlzdFN0cmVhbUNvbnN1bWVyc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U3RyZWFtcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdHJlYW1zOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6TGlzdFN0cmVhbXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclN0cmVhbSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yU3RyZWFtOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6TGlzdFRhZ3NGb3JTdHJlYW1cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIE1lcmdlU2hhcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTWVyZ2VTaGFyZHM6IHN0cmluZ1tdID0gW1wia2luZXNpczpNZXJnZVNoYXJkc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0UmVjb3JkIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVjb3JkOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6UHV0UmVjb3JkXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRSZWNvcmRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVjb3Jkczogc3RyaW5nW10gPSBbXCJraW5lc2lzOlB1dFJlY29yZHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dFJlc291cmNlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVzb3VyY2VQb2xpY3k6IHN0cmluZ1tdID0gW1wia2luZXNpczpQdXRSZXNvdXJjZVBvbGljeVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVnaXN0ZXJTdHJlYW1Db25zdW1lciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpSZWdpc3RlclN0cmVhbUNvbnN1bWVyXCIsXG5cdFx0XCJraW5lc2lzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlbW92ZVRhZ3NGcm9tU3RyZWFtIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVtb3ZlVGFnc0Zyb21TdHJlYW06IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpSZW1vdmVUYWdzRnJvbVN0cmVhbVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTcGxpdFNoYXJkIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3BsaXRTaGFyZDogc3RyaW5nW10gPSBbXCJraW5lc2lzOlNwbGl0U2hhcmRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0U3RyZWFtRW5jcnlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U3RyZWFtRW5jcnlwdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJraW5lc2lzOlN0YXJ0U3RyZWFtRW5jcnlwdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wU3RyZWFtRW5jcnlwdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BTdHJlYW1FbmNyeXB0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6U3RvcFN0cmVhbUVuY3J5cHRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3Vic2NyaWJlVG9TaGFyZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN1YnNjcmliZVRvU2hhcmQ6IHN0cmluZ1tdID0gW1wia2luZXNpczpTdWJzY3JpYmVUb1NoYXJkXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQWNjb3VudFNldHRpbmdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWNjb3VudFNldHRpbmdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6VXBkYXRlQWNjb3VudFNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNoYW5uZWwgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDaGFubmVsOiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VXBkYXRlQ2hhbm5lbFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTWF4UmVjb3JkU2l6ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1heFJlY29yZFNpemU6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpVcGRhdGVNYXhSZWNvcmRTaXplXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVNoYXJkQ291bnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVTaGFyZENvdW50OiBzdHJpbmdbXSA9IFtcImtpbmVzaXM6VXBkYXRlU2hhcmRDb3VudFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlU3RyZWFtTW9kZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbU1vZGU6IHN0cmluZ1tdID0gW1wia2luZXNpczpVcGRhdGVTdHJlYW1Nb2RlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVTdHJlYW1XYXJtVGhyb3VnaHB1dCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVN0cmVhbVdhcm1UaHJvdWdocHV0OiBzdHJpbmdbXSA9IFtcblx0XHRcImtpbmVzaXM6VXBkYXRlU3RyZWFtV2FybVRocm91Z2hwdXRcIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGtpbmVzaXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBLaW5lc2lzQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBJbmplY3RBcGlFcnJvciBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBJbmplY3RBcGlFcnJvckNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwia2luZXNpczpGaXNBY3Rpb25JZFwiLFxuXHRcdFwia2luZXNpczpGaXNJbmplY3RQZXJjZW50YWdlXCIsXG5cdFx0XCJraW5lc2lzOkZpc1RhcmdldEFybnNcIixcblx0XTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBraW5lc2lzOkZpc0FjdGlvbklkIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBGSVNfQUNUSU9OX0lEID0gXCJraW5lc2lzOkZpc0FjdGlvbklkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2UgKE51bWVyaWMpICovXG5cdHN0YXRpYyByZWFkb25seSBGSVNfSU5KRUNUX1BFUkNFTlRBR0UgPSBcImtpbmVzaXM6RmlzSW5qZWN0UGVyY2VudGFnZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleToga2luZXNpczpGaXNUYXJnZXRBcm5zIChBcnJheU9mQVJOKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRklTX1RBUkdFVF9BUk5TID0gXCJraW5lc2lzOkZpc1RhcmdldEFybnNcIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXF1ZXN0VGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZVRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyB0YWdLZXlzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3czpUYWdLZXlzXCI6IHZhbHVlcyB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBga2luZXNpczpGaXNBY3Rpb25JZGAuXG5cdCAqL1xuXHRzdGF0aWMgZmlzQWN0aW9uSWQodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJraW5lc2lzOkZpc0FjdGlvbklkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2VgLlxuXHQgKi9cblx0c3RhdGljIGZpc0luamVjdFBlcmNlbnRhZ2UoXG5cdFx0dmFsdWU6IG51bWJlcixcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgbnVtYmVyPj4ge1xuXHRcdHJldHVybiB7IE51bWVyaWNFcXVhbHM6IHsgXCJraW5lc2lzOkZpc0luamVjdFBlcmNlbnRhZ2VcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGtpbmVzaXM6RmlzVGFyZ2V0QXJuc2AuXG5cdCAqL1xuXHRzdGF0aWMgZmlzVGFyZ2V0QXJucyhcblx0XHR2YWx1ZXM6IHN0cmluZ1tdLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpBcm5FcXVhbHNcIjogeyBcImtpbmVzaXM6RmlzVGFyZ2V0QXJuc1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG59XG4iXX0=
@@ -16,7 +16,7 @@ class KinesisanalyticsActions {
16
16
  }
17
17
  exports.KinesisanalyticsActions = KinesisanalyticsActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- KinesisanalyticsActions[_a] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsActions", version: "1.14.0" };
19
+ KinesisanalyticsActions[_a] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsActions", version: "1.16.0" };
20
20
  /** The IAM service prefix. */
21
21
  KinesisanalyticsActions.SERVICE_PREFIX = "kinesisanalytics";
22
22
  /** [Write] kinesisanalytics:AddApplicationCloudWatchLoggingOption */
@@ -171,7 +171,7 @@ class KinesisanalyticsResources {
171
171
  }
172
172
  exports.KinesisanalyticsResources = KinesisanalyticsResources;
173
173
  _b = JSII_RTTI_SYMBOL_1;
174
- KinesisanalyticsResources[_b] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsResources", version: "1.14.0" };
174
+ KinesisanalyticsResources[_b] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsResources", version: "1.16.0" };
175
175
  /**
176
176
  * API operation to required IAM actions mapping for kinesisanalytics.
177
177
  */
@@ -179,7 +179,7 @@ class KinesisanalyticsOperations {
179
179
  }
180
180
  exports.KinesisanalyticsOperations = KinesisanalyticsOperations;
181
181
  _c = JSII_RTTI_SYMBOL_1;
182
- KinesisanalyticsOperations[_c] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsOperations", version: "1.14.0" };
182
+ KinesisanalyticsOperations[_c] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsOperations", version: "1.16.0" };
183
183
  /** IAM actions required for the AddApplicationCloudWatchLoggingOption API call. */
184
184
  KinesisanalyticsOperations.AddApplicationCloudWatchLoggingOption = [
185
185
  "kinesisanalytics:AddApplicationCloudWatchLoggingOption",
@@ -339,7 +339,7 @@ class KinesisanalyticsConditions {
339
339
  }
340
340
  exports.KinesisanalyticsConditions = KinesisanalyticsConditions;
341
341
  _d = JSII_RTTI_SYMBOL_1;
342
- KinesisanalyticsConditions[_d] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsConditions", version: "1.14.0" };
342
+ KinesisanalyticsConditions[_d] = { fqn: "@cdk_utils/iam.kinesisanalytics.KinesisanalyticsConditions", version: "1.16.0" };
343
343
  /** Condition keys applicable to the CreateApplication action. */
344
344
  KinesisanalyticsConditions.CreateApplicationConditionKeys = [
345
345
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class KinesisvideoActions {
16
16
  }
17
17
  exports.KinesisvideoActions = KinesisvideoActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- KinesisvideoActions[_a] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoActions", version: "1.14.0" };
19
+ KinesisvideoActions[_a] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoActions", version: "1.16.0" };
20
20
  /** The IAM service prefix. */
21
21
  KinesisvideoActions.SERVICE_PREFIX = "kinesisvideo";
22
22
  /** [Write] kinesisvideo:ConnectAsMaster */
@@ -238,7 +238,7 @@ class KinesisvideoResources {
238
238
  }
239
239
  exports.KinesisvideoResources = KinesisvideoResources;
240
240
  _b = JSII_RTTI_SYMBOL_1;
241
- KinesisvideoResources[_b] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoResources", version: "1.14.0" };
241
+ KinesisvideoResources[_b] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoResources", version: "1.16.0" };
242
242
  /**
243
243
  * API operation to required IAM actions mapping for kinesisvideo.
244
244
  */
@@ -246,7 +246,7 @@ class KinesisvideoOperations {
246
246
  }
247
247
  exports.KinesisvideoOperations = KinesisvideoOperations;
248
248
  _c = JSII_RTTI_SYMBOL_1;
249
- KinesisvideoOperations[_c] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoOperations", version: "1.14.0" };
249
+ KinesisvideoOperations[_c] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoOperations", version: "1.16.0" };
250
250
  /** IAM actions required for the CreateSignalingChannel API call. */
251
251
  KinesisvideoOperations.CreateSignalingChannel = [
252
252
  "kinesisvideo:CreateSignalingChannel",
@@ -422,7 +422,7 @@ class KinesisvideoConditions {
422
422
  }
423
423
  exports.KinesisvideoConditions = KinesisvideoConditions;
424
424
  _d = JSII_RTTI_SYMBOL_1;
425
- KinesisvideoConditions[_d] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoConditions", version: "1.14.0" };
425
+ KinesisvideoConditions[_d] = { fqn: "@cdk_utils/iam.kinesisvideo.KinesisvideoConditions", version: "1.16.0" };
426
426
  /** Condition keys applicable to the CreateSignalingChannel action. */
427
427
  KinesisvideoConditions.CreateSignalingChannelConditionKeys = [
428
428
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class KMSActions {
16
16
  }
17
17
  exports.KMSActions = KMSActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- KMSActions[_a] = { fqn: "@cdk_utils/iam.kms.KMSActions", version: "1.14.0" };
19
+ KMSActions[_a] = { fqn: "@cdk_utils/iam.kms.KMSActions", version: "1.16.0" };
20
20
  /** The IAM service prefix. */
21
21
  KMSActions.SERVICE_PREFIX = "kms";
22
22
  /** [Write] kms:CancelKeyDeletion */
@@ -267,7 +267,7 @@ class KMSResources {
267
267
  }
268
268
  exports.KMSResources = KMSResources;
269
269
  _b = JSII_RTTI_SYMBOL_1;
270
- KMSResources[_b] = { fqn: "@cdk_utils/iam.kms.KMSResources", version: "1.14.0" };
270
+ KMSResources[_b] = { fqn: "@cdk_utils/iam.kms.KMSResources", version: "1.16.0" };
271
271
  /**
272
272
  * API operation to required IAM actions mapping for kms.
273
273
  */
@@ -275,7 +275,7 @@ class KMSOperations {
275
275
  }
276
276
  exports.KMSOperations = KMSOperations;
277
277
  _c = JSII_RTTI_SYMBOL_1;
278
- KMSOperations[_c] = { fqn: "@cdk_utils/iam.kms.KMSOperations", version: "1.14.0" };
278
+ KMSOperations[_c] = { fqn: "@cdk_utils/iam.kms.KMSOperations", version: "1.16.0" };
279
279
  /** IAM actions required for the CancelKeyDeletion API call. */
280
280
  KMSOperations.CancelKeyDeletion = ["kms:CancelKeyDeletion"];
281
281
  /** IAM actions required for the ConnectCustomKeyStore API call. */
@@ -1036,7 +1036,7 @@ class KMSConditions {
1036
1036
  }
1037
1037
  exports.KMSConditions = KMSConditions;
1038
1038
  _d = JSII_RTTI_SYMBOL_1;
1039
- KMSConditions[_d] = { fqn: "@cdk_utils/iam.kms.KMSConditions", version: "1.14.0" };
1039
+ KMSConditions[_d] = { fqn: "@cdk_utils/iam.kms.KMSConditions", version: "1.16.0" };
1040
1040
  /** Condition keys applicable to the CancelKeyDeletion action. */
1041
1041
  KMSConditions.CancelKeyDeletionConditionKeys = [
1042
1042
  "kms:CallerAccount",
@@ -16,7 +16,7 @@ class LakeFormationActions {
16
16
  }
17
17
  exports.LakeFormationActions = LakeFormationActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- LakeFormationActions[_a] = { fqn: "@cdk_utils/iam.lakeformation.LakeFormationActions", version: "1.14.0" };
19
+ LakeFormationActions[_a] = { fqn: "@cdk_utils/iam.lakeformation.LakeFormationActions", version: "1.16.0" };
20
20
  /** The IAM service prefix. */
21
21
  LakeFormationActions.SERVICE_PREFIX = "lakeformation";
22
22
  /** [Tagging] lakeformation:AddLFTagsToResource */
@@ -224,7 +224,7 @@ class LakeFormationOperations {
224
224
  }
225
225
  exports.LakeFormationOperations = LakeFormationOperations;
226
226
  _b = JSII_RTTI_SYMBOL_1;
227
- LakeFormationOperations[_b] = { fqn: "@cdk_utils/iam.lakeformation.LakeFormationOperations", version: "1.14.0" };
227
+ LakeFormationOperations[_b] = { fqn: "@cdk_utils/iam.lakeformation.LakeFormationOperations", version: "1.16.0" };
228
228
  /** IAM actions required for the AddLFTagsToResource API call. */
229
229
  LakeFormationOperations.AddLFTagsToResource = [];
230
230
  /** IAM actions required for the AssumeDecoratedRoleWithSAML API call. */
@@ -414,7 +414,7 @@ class LakeFormationConditions {
414
414
  }
415
415
  exports.LakeFormationConditions = LakeFormationConditions;
416
416
  _c = JSII_RTTI_SYMBOL_1;
417
- LakeFormationConditions[_c] = { fqn: "@cdk_utils/iam.lakeformation.LakeFormationConditions", version: "1.14.0" };
417
+ LakeFormationConditions[_c] = { fqn: "@cdk_utils/iam.lakeformation.LakeFormationConditions", version: "1.16.0" };
418
418
  /** Condition keys applicable to the GetDataAccess action. */
419
419
  LakeFormationConditions.actionGetDataAccessConditionKeys = [
420
420
  "lakeformation:EnabledOnlyForMetaDataAccess",
@@ -16,7 +16,7 @@ class LambdaActions {
16
16
  }
17
17
  exports.LambdaActions = LambdaActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- LambdaActions[_a] = { fqn: "@cdk_utils/iam.lambda.LambdaActions", version: "1.14.0" };
19
+ LambdaActions[_a] = { fqn: "@cdk_utils/iam.lambda.LambdaActions", version: "1.16.0" };
20
20
  /** The IAM service prefix. */
21
21
  LambdaActions.SERVICE_PREFIX = "lambda";
22
22
  /** [PermissionManagement] lambda:AddLayerVersionPermission */
@@ -723,7 +723,7 @@ class LambdaResources {
723
723
  }
724
724
  exports.LambdaResources = LambdaResources;
725
725
  _b = JSII_RTTI_SYMBOL_1;
726
- LambdaResources[_b] = { fqn: "@cdk_utils/iam.lambda.LambdaResources", version: "1.14.0" };
726
+ LambdaResources[_b] = { fqn: "@cdk_utils/iam.lambda.LambdaResources", version: "1.16.0" };
727
727
  /**
728
728
  * API operation to required IAM actions mapping for lambda.
729
729
  */
@@ -731,7 +731,7 @@ class LambdaOperations {
731
731
  }
732
732
  exports.LambdaOperations = LambdaOperations;
733
733
  _c = JSII_RTTI_SYMBOL_1;
734
- LambdaOperations[_c] = { fqn: "@cdk_utils/iam.lambda.LambdaOperations", version: "1.14.0" };
734
+ LambdaOperations[_c] = { fqn: "@cdk_utils/iam.lambda.LambdaOperations", version: "1.16.0" };
735
735
  /** IAM actions required for the AddEventSource API call. */
736
736
  LambdaOperations.AddEventSource = ["iam:PassRole"];
737
737
  /** IAM actions required for the AddLayerVersionPermission API call. */
@@ -1257,7 +1257,7 @@ class LambdaConditions {
1257
1257
  }
1258
1258
  exports.LambdaConditions = LambdaConditions;
1259
1259
  _d = JSII_RTTI_SYMBOL_1;
1260
- LambdaConditions[_d] = { fqn: "@cdk_utils/iam.lambda.LambdaConditions", version: "1.14.0" };
1260
+ LambdaConditions[_d] = { fqn: "@cdk_utils/iam.lambda.LambdaConditions", version: "1.16.0" };
1261
1261
  /** Condition keys applicable to the AddPermission action. */
1262
1262
  LambdaConditions.AddPermissionConditionKeys = [
1263
1263
  "lambda:FunctionUrlAuthType",
@@ -16,7 +16,7 @@ class LaunchwizardActions {
16
16
  }
17
17
  exports.LaunchwizardActions = LaunchwizardActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- LaunchwizardActions[_a] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardActions", version: "1.14.0" };
19
+ LaunchwizardActions[_a] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardActions", version: "1.16.0" };
20
20
  /** The IAM service prefix. */
21
21
  LaunchwizardActions.SERVICE_PREFIX = "launchwizard";
22
22
  /** [Write] launchwizard:CreateAdditionalNode */
@@ -189,7 +189,7 @@ class LaunchwizardResources {
189
189
  }
190
190
  exports.LaunchwizardResources = LaunchwizardResources;
191
191
  _b = JSII_RTTI_SYMBOL_1;
192
- LaunchwizardResources[_b] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardResources", version: "1.14.0" };
192
+ LaunchwizardResources[_b] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardResources", version: "1.16.0" };
193
193
  /**
194
194
  * API operation to required IAM actions mapping for launchwizard.
195
195
  */
@@ -197,7 +197,7 @@ class LaunchwizardOperations {
197
197
  }
198
198
  exports.LaunchwizardOperations = LaunchwizardOperations;
199
199
  _c = JSII_RTTI_SYMBOL_1;
200
- LaunchwizardOperations[_c] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardOperations", version: "1.14.0" };
200
+ LaunchwizardOperations[_c] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardOperations", version: "1.16.0" };
201
201
  /** IAM actions required for the CreateDeployment API call. */
202
202
  LaunchwizardOperations.CreateDeployment = [
203
203
  "launchwizard:CreateDeployment",
@@ -272,7 +272,7 @@ class LaunchwizardConditions {
272
272
  }
273
273
  exports.LaunchwizardConditions = LaunchwizardConditions;
274
274
  _d = JSII_RTTI_SYMBOL_1;
275
- LaunchwizardConditions[_d] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardConditions", version: "1.14.0" };
275
+ LaunchwizardConditions[_d] = { fqn: "@cdk_utils/iam.launchwizard.LaunchwizardConditions", version: "1.16.0" };
276
276
  /** Condition key: aws:RequestTag/${TagKey} (String) */
277
277
  LaunchwizardConditions.AWS_REQUEST_TAG = "aws:RequestTag/${TagKey}";
278
278
  /** Condition key: aws:ResourceTag/${TagKey} (String) */