@cdk_utils/iam 1.28.0 → 1.30.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 (470) hide show
  1. package/.jsii +2 -2
  2. package/lib/generated/index.d.ts +1 -0
  3. package/lib/generated/index.js +7 -6
  4. package/lib/generated/services/a2c.js +1 -1
  5. package/lib/generated/services/a4b.js +3 -3
  6. package/lib/generated/services/access-analyzer.js +4 -4
  7. package/lib/generated/services/account-access.js +4 -4
  8. package/lib/generated/services/account.js +4 -4
  9. package/lib/generated/services/acm-pca.js +4 -4
  10. package/lib/generated/services/acm.js +4 -4
  11. package/lib/generated/services/aco-automation.js +4 -4
  12. package/lib/generated/services/action-recommendations.js +1 -1
  13. package/lib/generated/services/activate.js +1 -1
  14. package/lib/generated/services/agent-registry.js +4 -4
  15. package/lib/generated/services/agentaccess-mcp.js +2 -2
  16. package/lib/generated/services/aidevops.js +4 -4
  17. package/lib/generated/services/aiops.js +4 -4
  18. package/lib/generated/services/airflow-serverless.js +4 -4
  19. package/lib/generated/services/airflow.js +4 -4
  20. package/lib/generated/services/amplify.js +4 -4
  21. package/lib/generated/services/amplifybackend.js +3 -3
  22. package/lib/generated/services/amplifyuibuilder.js +4 -4
  23. package/lib/generated/services/aoss.js +4 -4
  24. package/lib/generated/services/apigateway.js +4 -4
  25. package/lib/generated/services/app-integrations.js +4 -4
  26. package/lib/generated/services/appconfig.js +4 -4
  27. package/lib/generated/services/appfabric.js +4 -4
  28. package/lib/generated/services/appflow.js +4 -4
  29. package/lib/generated/services/application-autoscaling.js +4 -4
  30. package/lib/generated/services/application-signals-mcp.js +3 -3
  31. package/lib/generated/services/application-signals.js +4 -4
  32. package/lib/generated/services/application-transformation.js +1 -1
  33. package/lib/generated/services/applicationinsights.js +3 -3
  34. package/lib/generated/services/appmesh-preview.js +2 -2
  35. package/lib/generated/services/appmesh.js +4 -4
  36. package/lib/generated/services/apprunner.js +4 -4
  37. package/lib/generated/services/appstream.js +4 -4
  38. package/lib/generated/services/appstudio.js +2 -2
  39. package/lib/generated/services/appsync.js +4 -4
  40. package/lib/generated/services/apptest.js +3 -3
  41. package/lib/generated/services/aps.js +4 -4
  42. package/lib/generated/services/arc-region-switch.js +4 -4
  43. package/lib/generated/services/arc-zonal-shift.js +4 -4
  44. package/lib/generated/services/arsenal.js +1 -1
  45. package/lib/generated/services/artifact.js +4 -4
  46. package/lib/generated/services/athena.js +4 -4
  47. package/lib/generated/services/auditmanager.js +4 -4
  48. package/lib/generated/services/autoscaling-plans.js +2 -2
  49. package/lib/generated/services/autoscaling.js +4 -4
  50. package/lib/generated/services/aws-external-anthropic.js +3 -3
  51. package/lib/generated/services/aws-marketplace-management.js +1 -1
  52. package/lib/generated/services/aws-marketplace.js +4 -4
  53. package/lib/generated/services/aws-portal.js +1 -1
  54. package/lib/generated/services/awsconnector.js +1 -1
  55. package/lib/generated/services/b2bi.js +4 -4
  56. package/lib/generated/services/backup-gateway.js +4 -4
  57. package/lib/generated/services/backup-search.js +4 -4
  58. package/lib/generated/services/backup-storage.js +1 -1
  59. package/lib/generated/services/backup.js +4 -4
  60. package/lib/generated/services/batch.js +4 -4
  61. package/lib/generated/services/bcm-dashboards.js +4 -4
  62. package/lib/generated/services/bcm-data-exports.js +4 -4
  63. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  64. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  65. package/lib/generated/services/bedrock-agentcore.js +4 -4
  66. package/lib/generated/services/bedrock-mantle.js +3 -3
  67. package/lib/generated/services/bedrock-websearch.js +2 -2
  68. package/lib/generated/services/bedrock.js +4 -4
  69. package/lib/generated/services/billing.d.ts +4 -0
  70. package/lib/generated/services/billing.js +12 -5
  71. package/lib/generated/services/billingconductor.js +4 -4
  72. package/lib/generated/services/braket.js +4 -4
  73. package/lib/generated/services/budgets.js +4 -4
  74. package/lib/generated/services/bugbust.js +3 -3
  75. package/lib/generated/services/cases.js +4 -4
  76. package/lib/generated/services/cassandra.js +4 -4
  77. package/lib/generated/services/ce.js +4 -4
  78. package/lib/generated/services/chatbot.js +4 -4
  79. package/lib/generated/services/chime.js +4 -4
  80. package/lib/generated/services/cleanrooms-ml.js +4 -4
  81. package/lib/generated/services/cleanrooms.js +4 -4
  82. package/lib/generated/services/cloud9.js +4 -4
  83. package/lib/generated/services/clouddirectory.js +3 -3
  84. package/lib/generated/services/cloudformation.js +4 -4
  85. package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
  86. package/lib/generated/services/cloudfront.js +4 -4
  87. package/lib/generated/services/cloudhsm.js +4 -4
  88. package/lib/generated/services/cloudsearch.js +3 -3
  89. package/lib/generated/services/cloudshell.js +3 -3
  90. package/lib/generated/services/cloudtrail-data.js +4 -4
  91. package/lib/generated/services/cloudtrail.js +4 -4
  92. package/lib/generated/services/cloudwatch.d.ts +122 -0
  93. package/lib/generated/services/cloudwatch.js +217 -5
  94. package/lib/generated/services/codeartifact.js +4 -4
  95. package/lib/generated/services/codebuild.js +4 -4
  96. package/lib/generated/services/codecatalyst.js +4 -4
  97. package/lib/generated/services/codecommit.js +4 -4
  98. package/lib/generated/services/codeconnections.js +9 -6
  99. package/lib/generated/services/codedeploy-commands-secure.js +1 -1
  100. package/lib/generated/services/codedeploy.js +4 -4
  101. package/lib/generated/services/codeguru-profiler.js +4 -4
  102. package/lib/generated/services/codeguru-reviewer.js +4 -4
  103. package/lib/generated/services/codeguru-security.js +4 -4
  104. package/lib/generated/services/codeguru.js +1 -1
  105. package/lib/generated/services/codepipeline.js +4 -4
  106. package/lib/generated/services/codestar-connections.js +4 -4
  107. package/lib/generated/services/codestar-notifications.js +4 -4
  108. package/lib/generated/services/codestar.js +3 -3
  109. package/lib/generated/services/codewhisperer.js +3 -3
  110. package/lib/generated/services/cognito-identity.js +4 -4
  111. package/lib/generated/services/cognito-idp.js +4 -4
  112. package/lib/generated/services/cognito-sync.js +3 -3
  113. package/lib/generated/services/comprehend.js +4 -4
  114. package/lib/generated/services/comprehendmedical.js +3 -3
  115. package/lib/generated/services/compute-optimizer.js +3 -3
  116. package/lib/generated/services/config.js +4 -4
  117. package/lib/generated/services/connect-campaigns.js +4 -4
  118. package/lib/generated/services/connect.d.ts +43 -0
  119. package/lib/generated/services/connect.js +45 -6
  120. package/lib/generated/services/consoleapp.js +2 -2
  121. package/lib/generated/services/consolidatedbilling.js +1 -1
  122. package/lib/generated/services/controlcatalog.js +3 -3
  123. package/lib/generated/services/controltower.js +4 -4
  124. package/lib/generated/services/cost-optimization-hub.js +2 -2
  125. package/lib/generated/services/cur.js +4 -4
  126. package/lib/generated/services/customer-verification.js +1 -1
  127. package/lib/generated/services/databrew.js +4 -4
  128. package/lib/generated/services/dataexchange.js +4 -4
  129. package/lib/generated/services/datapipeline.js +4 -4
  130. package/lib/generated/services/datasync.js +4 -4
  131. package/lib/generated/services/datazone.js +4 -4
  132. package/lib/generated/services/dax.js +4 -4
  133. package/lib/generated/services/dbqms.js +1 -1
  134. package/lib/generated/services/deadline.js +4 -4
  135. package/lib/generated/services/detective.js +4 -4
  136. package/lib/generated/services/devicefarm.js +4 -4
  137. package/lib/generated/services/devops-guru.js +4 -4
  138. package/lib/generated/services/directconnect.js +4 -4
  139. package/lib/generated/services/discovery.js +3 -3
  140. package/lib/generated/services/dlm.js +4 -4
  141. package/lib/generated/services/dms.js +4 -4
  142. package/lib/generated/services/docdb-elastic.js +4 -4
  143. package/lib/generated/services/drs.js +4 -4
  144. package/lib/generated/services/ds-data.js +4 -4
  145. package/lib/generated/services/ds.js +4 -4
  146. package/lib/generated/services/dsql.js +4 -4
  147. package/lib/generated/services/dynamodb.js +4 -4
  148. package/lib/generated/services/ebs.js +4 -4
  149. package/lib/generated/services/ec2-instance-connect.js +4 -4
  150. package/lib/generated/services/ec2.d.ts +4 -0
  151. package/lib/generated/services/ec2.js +11 -5
  152. package/lib/generated/services/ec2messages.js +2 -2
  153. package/lib/generated/services/ecr-public.js +4 -4
  154. package/lib/generated/services/ecr.js +4 -4
  155. package/lib/generated/services/ecs-mcp.js +1 -1
  156. package/lib/generated/services/ecs.js +4 -4
  157. package/lib/generated/services/eks-auth.js +4 -4
  158. package/lib/generated/services/eks-mcp.js +1 -1
  159. package/lib/generated/services/eks.js +4 -4
  160. package/lib/generated/services/elasticache.js +6 -5
  161. package/lib/generated/services/elasticbeanstalk.js +4 -4
  162. package/lib/generated/services/elasticfilesystem.js +4 -4
  163. package/lib/generated/services/elasticloadbalancing.js +4 -4
  164. package/lib/generated/services/elasticmapreduce.js +4 -4
  165. package/lib/generated/services/elastictranscoder.js +2 -2
  166. package/lib/generated/services/elemental-activations.js +1 -1
  167. package/lib/generated/services/elemental-appliances-software.js +2 -2
  168. package/lib/generated/services/elemental-inference.js +4 -4
  169. package/lib/generated/services/elemental-support-cases.js +3 -3
  170. package/lib/generated/services/elemental-support-content.js +1 -1
  171. package/lib/generated/services/emr-containers.js +4 -4
  172. package/lib/generated/services/emr-serverless.js +4 -4
  173. package/lib/generated/services/entityresolution.js +4 -4
  174. package/lib/generated/services/es.js +4 -4
  175. package/lib/generated/services/events.d.ts +219 -0
  176. package/lib/generated/services/events.js +243 -5
  177. package/lib/generated/services/eventsbilltoaws.js +3 -3
  178. package/lib/generated/services/evidently.js +3 -3
  179. package/lib/generated/services/evs.js +4 -4
  180. package/lib/generated/services/execute-api.js +4 -4
  181. package/lib/generated/services/finops-agent.js +1 -1
  182. package/lib/generated/services/finspace-api.js +3 -3
  183. package/lib/generated/services/finspace.js +4 -4
  184. package/lib/generated/services/firehose.js +4 -4
  185. package/lib/generated/services/fis.js +4 -4
  186. package/lib/generated/services/fms.js +4 -4
  187. package/lib/generated/services/forecast.js +4 -4
  188. package/lib/generated/services/frauddetector.js +4 -4
  189. package/lib/generated/services/freertos.js +3 -3
  190. package/lib/generated/services/freetier.js +2 -2
  191. package/lib/generated/services/fsx.js +4 -4
  192. package/lib/generated/services/gamelift.js +4 -4
  193. package/lib/generated/services/gameliftstreams.js +4 -4
  194. package/lib/generated/services/geo-maps.js +3 -3
  195. package/lib/generated/services/geo-places.js +3 -3
  196. package/lib/generated/services/geo-routes.js +3 -3
  197. package/lib/generated/services/geo.js +4 -4
  198. package/lib/generated/services/glacier.js +4 -4
  199. package/lib/generated/services/globalaccelerator.js +4 -4
  200. package/lib/generated/services/glue.js +4 -4
  201. package/lib/generated/services/grafana.js +4 -4
  202. package/lib/generated/services/greengrass.js +4 -4
  203. package/lib/generated/services/groundstation.js +4 -4
  204. package/lib/generated/services/groundtruthlabeling.js +1 -1
  205. package/lib/generated/services/guardduty.js +4 -4
  206. package/lib/generated/services/health-agent.js +4 -4
  207. package/lib/generated/services/health.js +4 -4
  208. package/lib/generated/services/healthlake.js +4 -4
  209. package/lib/generated/services/honeycode.js +2 -2
  210. package/lib/generated/services/iam.js +4 -4
  211. package/lib/generated/services/identity-sync.js +2 -2
  212. package/lib/generated/services/identitystore-auth.js +1 -1
  213. package/lib/generated/services/identitystore.js +4 -4
  214. package/lib/generated/services/imagebuilder.js +4 -4
  215. package/lib/generated/services/importexport.js +2 -2
  216. package/lib/generated/services/inspector-scan.js +2 -2
  217. package/lib/generated/services/inspector.js +2 -2
  218. package/lib/generated/services/inspector2-telemetry.js +1 -1
  219. package/lib/generated/services/inspector2.js +4 -4
  220. package/lib/generated/services/interconnect.js +4 -4
  221. package/lib/generated/services/internetmonitor.js +4 -4
  222. package/lib/generated/services/invoicing.js +4 -4
  223. package/lib/generated/services/iot-device-tester.js +1 -1
  224. package/lib/generated/services/iot.js +4 -4
  225. package/lib/generated/services/iotanalytics.js +3 -3
  226. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  227. package/lib/generated/services/iotevents.js +3 -3
  228. package/lib/generated/services/iotfleethub.js +3 -3
  229. package/lib/generated/services/iotfleetwise.js +4 -4
  230. package/lib/generated/services/iotjobsdata.js +4 -4
  231. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  232. package/lib/generated/services/iotsitewise.js +4 -4
  233. package/lib/generated/services/iottwinmaker.js +4 -4
  234. package/lib/generated/services/iotwireless.js +4 -4
  235. package/lib/generated/services/iq-permission.js +2 -2
  236. package/lib/generated/services/iq.js +2 -2
  237. package/lib/generated/services/ivs.js +4 -4
  238. package/lib/generated/services/ivschat.js +4 -4
  239. package/lib/generated/services/kafka-cluster.js +3 -3
  240. package/lib/generated/services/kafka.js +4 -4
  241. package/lib/generated/services/kafkaconnect.js +4 -4
  242. package/lib/generated/services/kendra-ranking.js +4 -4
  243. package/lib/generated/services/kendra.js +4 -4
  244. package/lib/generated/services/kinesis.d.ts +4 -0
  245. package/lib/generated/services/kinesis.js +12 -5
  246. package/lib/generated/services/kinesisanalytics.js +4 -4
  247. package/lib/generated/services/kinesisvideo.js +4 -4
  248. package/lib/generated/services/kms.js +4 -4
  249. package/lib/generated/services/lakeformation.js +3 -3
  250. package/lib/generated/services/lambda.js +4 -4
  251. package/lib/generated/services/launchwizard.js +4 -4
  252. package/lib/generated/services/lex.js +4 -4
  253. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  254. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  255. package/lib/generated/services/license-manager.js +4 -4
  256. package/lib/generated/services/lightsail.js +4 -4
  257. package/lib/generated/services/logs.d.ts +2 -0
  258. package/lib/generated/services/logs.js +8 -5
  259. package/lib/generated/services/lookoutequipment.js +4 -4
  260. package/lib/generated/services/lookoutmetrics.js +3 -3
  261. package/lib/generated/services/lookoutvision.js +3 -3
  262. package/lib/generated/services/m2.js +4 -4
  263. package/lib/generated/services/machinelearning.js +3 -3
  264. package/lib/generated/services/macie2.js +4 -4
  265. package/lib/generated/services/managedblockchain-query.js +2 -2
  266. package/lib/generated/services/managedblockchain.js +4 -4
  267. package/lib/generated/services/mapcredits.js +2 -2
  268. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  269. package/lib/generated/services/mechanicalturk.js +2 -2
  270. package/lib/generated/services/mediaconnect.js +4 -4
  271. package/lib/generated/services/mediaconvert.js +4 -4
  272. package/lib/generated/services/mediaimport.js +1 -1
  273. package/lib/generated/services/medialive.js +4 -4
  274. package/lib/generated/services/mediapackage-vod.js +4 -4
  275. package/lib/generated/services/mediapackage.js +4 -4
  276. package/lib/generated/services/mediapackagev2.js +4 -4
  277. package/lib/generated/services/mediastore.js +4 -4
  278. package/lib/generated/services/mediatailor.js +4 -4
  279. package/lib/generated/services/medical-imaging.js +4 -4
  280. package/lib/generated/services/memorydb.js +4 -4
  281. package/lib/generated/services/mgh.js +4 -4
  282. package/lib/generated/services/mgn.js +4 -4
  283. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  284. package/lib/generated/services/migrationhub-strategy.js +2 -2
  285. package/lib/generated/services/mobileanalytics.js +1 -1
  286. package/lib/generated/services/mobiletargeting.js +4 -4
  287. package/lib/generated/services/monitron.js +3 -3
  288. package/lib/generated/services/mpa.js +4 -4
  289. package/lib/generated/services/mq.js +4 -4
  290. package/lib/generated/services/neptune-db.js +4 -4
  291. package/lib/generated/services/neptune-graph.js +4 -4
  292. package/lib/generated/services/network-firewall.js +4 -4
  293. package/lib/generated/services/network-security-director.js +1 -1
  294. package/lib/generated/services/network-security-manager.d.ts +674 -0
  295. package/lib/generated/services/network-security-manager.js +778 -0
  296. package/lib/generated/services/networkflowmonitor.js +4 -4
  297. package/lib/generated/services/networkmanager-chat.js +1 -1
  298. package/lib/generated/services/networkmanager.js +4 -4
  299. package/lib/generated/services/networkmonitor.js +4 -4
  300. package/lib/generated/services/nimble.js +3 -3
  301. package/lib/generated/services/notifications-contacts.js +4 -4
  302. package/lib/generated/services/notifications.js +4 -4
  303. package/lib/generated/services/nova-act.js +3 -3
  304. package/lib/generated/services/oam.js +37 -20
  305. package/lib/generated/services/observabilityadmin.d.ts +61 -0
  306. package/lib/generated/services/observabilityadmin.js +77 -8
  307. package/lib/generated/services/odb.js +4 -4
  308. package/lib/generated/services/omics.js +4 -4
  309. package/lib/generated/services/one.js +3 -3
  310. package/lib/generated/services/opensearch.js +3 -3
  311. package/lib/generated/services/opsworks-cm.js +2 -2
  312. package/lib/generated/services/opsworks.js +2 -2
  313. package/lib/generated/services/organizations.js +4 -4
  314. package/lib/generated/services/osis.js +4 -4
  315. package/lib/generated/services/outposts.js +4 -4
  316. package/lib/generated/services/panorama.js +3 -3
  317. package/lib/generated/services/partnercentral-account-management.js +2 -2
  318. package/lib/generated/services/partnercentral.js +4 -4
  319. package/lib/generated/services/payment-cryptography.js +4 -4
  320. package/lib/generated/services/payments.js +3 -3
  321. package/lib/generated/services/pca-connector-ad.js +4 -4
  322. package/lib/generated/services/pca-connector-scep.js +4 -4
  323. package/lib/generated/services/pcs.js +4 -4
  324. package/lib/generated/services/personalize.js +4 -4
  325. package/lib/generated/services/pi.js +4 -4
  326. package/lib/generated/services/pipes.js +4 -4
  327. package/lib/generated/services/polly.js +3 -3
  328. package/lib/generated/services/pricing.js +2 -2
  329. package/lib/generated/services/pricingplanmanager.js +3 -3
  330. package/lib/generated/services/private-networks.js +3 -3
  331. package/lib/generated/services/profile.js +4 -4
  332. package/lib/generated/services/proton.js +4 -4
  333. package/lib/generated/services/purchase-orders.js +3 -3
  334. package/lib/generated/services/q.js +3 -3
  335. package/lib/generated/services/qapps.js +4 -4
  336. package/lib/generated/services/qbusiness.js +4 -4
  337. package/lib/generated/services/qdeveloper.js +3 -3
  338. package/lib/generated/services/qldb.js +3 -3
  339. package/lib/generated/services/quicksight.js +4 -4
  340. package/lib/generated/services/ram.js +4 -4
  341. package/lib/generated/services/rbin.js +4 -4
  342. package/lib/generated/services/rds-data.js +4 -4
  343. package/lib/generated/services/rds-db.js +2 -2
  344. package/lib/generated/services/rds.js +4 -4
  345. package/lib/generated/services/redshift-data.js +4 -4
  346. package/lib/generated/services/redshift-serverless.js +4 -4
  347. package/lib/generated/services/redshift.js +4 -4
  348. package/lib/generated/services/refactor-spaces.js +4 -4
  349. package/lib/generated/services/rekognition.js +4 -4
  350. package/lib/generated/services/repostspace.js +4 -4
  351. package/lib/generated/services/researchstudio.js +1 -1
  352. package/lib/generated/services/resiliencehub.js +4 -4
  353. package/lib/generated/services/resource-explorer-2.js +4 -4
  354. package/lib/generated/services/resource-explorer.js +1 -1
  355. package/lib/generated/services/resource-groups.js +4 -4
  356. package/lib/generated/services/rhelkb.js +1 -1
  357. package/lib/generated/services/robomaker.js +3 -3
  358. package/lib/generated/services/rolesanywhere.js +4 -4
  359. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  360. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  361. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  362. package/lib/generated/services/route53.js +4 -4
  363. package/lib/generated/services/route53domains.js +2 -2
  364. package/lib/generated/services/route53globalresolver.js +4 -4
  365. package/lib/generated/services/route53profiles.js +4 -4
  366. package/lib/generated/services/route53resolver.js +4 -4
  367. package/lib/generated/services/rtbfabric.js +4 -4
  368. package/lib/generated/services/rum.js +4 -4
  369. package/lib/generated/services/s3-object-lambda.js +3 -3
  370. package/lib/generated/services/s3-outposts.js +4 -4
  371. package/lib/generated/services/s3.js +4 -4
  372. package/lib/generated/services/s3express.js +3 -3
  373. package/lib/generated/services/s3files.js +4 -4
  374. package/lib/generated/services/s3tables.js +4 -4
  375. package/lib/generated/services/s3vectors.js +4 -4
  376. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  377. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  378. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  379. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  380. package/lib/generated/services/sagemaker.js +4 -4
  381. package/lib/generated/services/savingsplans.js +4 -4
  382. package/lib/generated/services/scheduler.js +4 -4
  383. package/lib/generated/services/schemas.js +4 -4
  384. package/lib/generated/services/scn.js +4 -4
  385. package/lib/generated/services/sdb.js +3 -3
  386. package/lib/generated/services/secretsmanager.js +4 -4
  387. package/lib/generated/services/security-ir.js +4 -4
  388. package/lib/generated/services/securityagent.js +4 -4
  389. package/lib/generated/services/securityhub.js +4 -4
  390. package/lib/generated/services/securitylake.js +4 -4
  391. package/lib/generated/services/serverlessrepo.js +4 -4
  392. package/lib/generated/services/servicecatalog.js +4 -4
  393. package/lib/generated/services/servicediscovery.js +4 -4
  394. package/lib/generated/services/serviceextract.js +1 -1
  395. package/lib/generated/services/servicequotas.js +4 -4
  396. package/lib/generated/services/ses.js +4 -4
  397. package/lib/generated/services/shield.js +4 -4
  398. package/lib/generated/services/signer.js +4 -4
  399. package/lib/generated/services/signin.js +4 -4
  400. package/lib/generated/services/simspaceweaver.js +3 -3
  401. package/lib/generated/services/sms-voice.js +4 -4
  402. package/lib/generated/services/sms.js +1 -1
  403. package/lib/generated/services/snow-device-management.js +4 -4
  404. package/lib/generated/services/snowball.js +2 -2
  405. package/lib/generated/services/sns.js +4 -4
  406. package/lib/generated/services/social-messaging.js +4 -4
  407. package/lib/generated/services/sqlworkbench.js +3 -3
  408. package/lib/generated/services/sqs.js +4 -4
  409. package/lib/generated/services/ssm-contacts.js +4 -4
  410. package/lib/generated/services/ssm-guiconnect.js +2 -2
  411. package/lib/generated/services/ssm-incidents.js +4 -4
  412. package/lib/generated/services/ssm-quicksetup.js +4 -4
  413. package/lib/generated/services/ssm-sap.js +4 -4
  414. package/lib/generated/services/ssm.js +4 -4
  415. package/lib/generated/services/ssmmessages.js +2 -2
  416. package/lib/generated/services/sso-directory.js +1 -1
  417. package/lib/generated/services/sso-oauth.js +3 -3
  418. package/lib/generated/services/sso.js +4 -4
  419. package/lib/generated/services/states.js +4 -4
  420. package/lib/generated/services/storagegateway.js +4 -4
  421. package/lib/generated/services/sts.js +4 -4
  422. package/lib/generated/services/support-console.js +1 -1
  423. package/lib/generated/services/support.js +2 -2
  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.d.ts +4 -0
  457. package/lib/generated/services/wafv2.js +11 -5
  458. package/lib/generated/services/wam.js +1 -1
  459. package/lib/generated/services/wellarchitected.js +4 -4
  460. package/lib/generated/services/wickr.js +4 -4
  461. package/lib/generated/services/wisdom.js +4 -4
  462. package/lib/generated/services/workdocs.js +3 -3
  463. package/lib/generated/services/worklink.js +3 -3
  464. package/lib/generated/services/workmail.js +4 -4
  465. package/lib/generated/services/workmailmessageflow.js +3 -3
  466. package/lib/generated/services/workspaces-instances.js +4 -4
  467. package/lib/generated/services/workspaces-web.js +4 -4
  468. package/lib/generated/services/workspaces.js +4 -4
  469. package/lib/generated/services/xray.js +4 -4
  470. package/package.json +1 -1
@@ -16,7 +16,7 @@ class Wafv2Actions {
16
16
  }
17
17
  exports.Wafv2Actions = Wafv2Actions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- Wafv2Actions[_a] = { fqn: "@cdk_utils/iam.wafv2.Wafv2Actions", version: "1.28.0" };
19
+ Wafv2Actions[_a] = { fqn: "@cdk_utils/iam.wafv2.Wafv2Actions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  Wafv2Actions.SERVICE_PREFIX = "wafv2";
22
22
  /** [Write] wafv2:AssociateWebACL */
@@ -141,6 +141,10 @@ Wafv2Actions.UpdateRegexPatternSet = "wafv2:UpdateRegexPatternSet";
141
141
  Wafv2Actions.UpdateRuleGroup = "wafv2:UpdateRuleGroup";
142
142
  /** [Write] wafv2:UpdateWebACL */
143
143
  Wafv2Actions.UpdateWebACL = "wafv2:UpdateWebACL";
144
+ /** [Read] wafv2:ValidateNetworkSecurityManagerRuleConfiguration */
145
+ Wafv2Actions.ValidateNetworkSecurityManagerRuleConfiguration = "wafv2:ValidateNetworkSecurityManagerRuleConfiguration";
146
+ /** [Read] wafv2:ValidateNetworkSecurityManagerWebACLConfiguration */
147
+ Wafv2Actions.ValidateNetworkSecurityManagerWebACLConfiguration = "wafv2:ValidateNetworkSecurityManagerWebACLConfiguration";
144
148
  /** All read-level actions. */
145
149
  Wafv2Actions.AllReadActions = [
146
150
  Wafv2Actions.CheckCapacity,
@@ -165,6 +169,8 @@ Wafv2Actions.AllReadActions = [
165
169
  Wafv2Actions.actionGetWebACL,
166
170
  Wafv2Actions.actionGetWebACLForResource,
167
171
  Wafv2Actions.ListTagsForResource,
172
+ Wafv2Actions.ValidateNetworkSecurityManagerRuleConfiguration,
173
+ Wafv2Actions.ValidateNetworkSecurityManagerWebACLConfiguration,
168
174
  ];
169
175
  /** All write-level actions. */
170
176
  Wafv2Actions.AllWriteActions = [
@@ -614,7 +620,7 @@ class Wafv2Resources {
614
620
  }
615
621
  exports.Wafv2Resources = Wafv2Resources;
616
622
  _b = JSII_RTTI_SYMBOL_1;
617
- Wafv2Resources[_b] = { fqn: "@cdk_utils/iam.wafv2.Wafv2Resources", version: "1.28.0" };
623
+ Wafv2Resources[_b] = { fqn: "@cdk_utils/iam.wafv2.Wafv2Resources", version: "1.30.0" };
618
624
  /**
619
625
  * API operation to required IAM actions mapping for wafv2.
620
626
  */
@@ -622,7 +628,7 @@ class Wafv2Operations {
622
628
  }
623
629
  exports.Wafv2Operations = Wafv2Operations;
624
630
  _c = JSII_RTTI_SYMBOL_1;
625
- Wafv2Operations[_c] = { fqn: "@cdk_utils/iam.wafv2.Wafv2Operations", version: "1.28.0" };
631
+ Wafv2Operations[_c] = { fqn: "@cdk_utils/iam.wafv2.Wafv2Operations", version: "1.30.0" };
626
632
  /** IAM actions required for the AssociateWebACL API call. */
627
633
  Wafv2Operations.AssociateWebACL = [
628
634
  "appsync:AssociateWebACL",
@@ -864,7 +870,7 @@ class Wafv2Conditions {
864
870
  }
865
871
  exports.Wafv2Conditions = Wafv2Conditions;
866
872
  _d = JSII_RTTI_SYMBOL_1;
867
- Wafv2Conditions[_d] = { fqn: "@cdk_utils/iam.wafv2.Wafv2Conditions", version: "1.28.0" };
873
+ Wafv2Conditions[_d] = { fqn: "@cdk_utils/iam.wafv2.Wafv2Conditions", version: "1.30.0" };
868
874
  /** Condition keys applicable to the CreateIPSet action. */
869
875
  Wafv2Conditions.CreateIPSetConditionKeys = [
870
876
  "aws:RequestTag/${TagKey}",
@@ -959,4 +965,4 @@ Wafv2Conditions.AWS_TAG_KEYS = "aws:TagKeys";
959
965
  Wafv2Conditions.LOG_DESTINATION_RESOURCE = "wafv2:LogDestinationResource";
960
966
  /** Condition key: wafv2:LogScope (String) */
961
967
  Wafv2Conditions.LOG_SCOPE = "wafv2:LogScope";
962
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FmdjIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3NlcnZpY2VzL3dhZnYyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0ZBQWdGO0FBQ2hGLDZDQUE2QztBQUM3QywwREFBMEQ7QUFDMUQsNENBQTRDO0FBQzVDLG9EQUFvRDtBQUNwRCxnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDSCxNQUFhLFlBQVk7O0FBQXpCLG9DQTBOQzs7O0FBek5BLDhCQUE4QjtBQUNkLDJCQUFjLEdBQUcsT0FBTyxDQUFDO0FBRXpDLG9DQUFvQztBQUNwQiw0QkFBZSxHQUFHLHVCQUF1QixDQUFDO0FBQzFELGlDQUFpQztBQUNqQiwwQkFBYSxHQUFHLHFCQUFxQixDQUFDO0FBQ3RELGlDQUFpQztBQUNqQix5QkFBWSxHQUFHLG9CQUFvQixDQUFDO0FBQ3BELGdDQUFnQztBQUNoQix3QkFBVyxHQUFHLG1CQUFtQixDQUFDO0FBQ2xELDBDQUEwQztBQUMxQixrQ0FBcUIsR0FBRyw2QkFBNkIsQ0FBQztBQUN0RSxvQ0FBb0M7QUFDcEIsNEJBQWUsR0FBRyx1QkFBdUIsQ0FBQztBQUMxRCxpQ0FBaUM7QUFDakIseUJBQVksR0FBRyxvQkFBb0IsQ0FBQztBQUNwRCxpQ0FBaUM7QUFDakIseUJBQVksR0FBRyxvQkFBb0IsQ0FBQztBQUNwRCxvREFBb0Q7QUFDcEMsNENBQStCLEdBQzlDLHVDQUF1QyxDQUFDO0FBQ3pDLGdDQUFnQztBQUNoQix3QkFBVyxHQUFHLG1CQUFtQixDQUFDO0FBQ2xELCtDQUErQztBQUMvQix1Q0FBMEIsR0FDekMsa0NBQWtDLENBQUM7QUFDcEMsMERBQTBEO0FBQzFDLG1DQUFzQixHQUFHLDhCQUE4QixDQUFDO0FBQ3hFLDBDQUEwQztBQUMxQixrQ0FBcUIsR0FBRyw2QkFBNkIsQ0FBQztBQUN0RSxvQ0FBb0M7QUFDcEIsNEJBQWUsR0FBRyx1QkFBdUIsQ0FBQztBQUMxRCxpQ0FBaUM7QUFD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SUFDeEQsMkJBQTJCO0NBQzNCLENBQUM7QUFDRiw0REFBNEQ7QUFDNUMseUNBQXlCLEdBQWE7SUFDckQsMkJBQTJCO0NBQzNCLENBQUM7QUFFRix1REFBdUQ7QUFDdkMsK0JBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCx3REFBd0Q7QUFDeEMsZ0NBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDL0QsaURBQWlEO0FBQ2pDLDRCQUFZLEdBQUcsYUFBYSxDQUFDO0FBQzdDLHdEQUF3RDtBQUN4Qyx3Q0FBd0IsR0FBRyw4QkFBOEIsQ0FBQztBQUMxRSw2Q0FBNkM7QUFDN0IseUJBQVMsR0FBRyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL3dhZnYyLmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSB3YWZ2MiBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgV2FmdjJBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwid2FmdjJcIjtcblxuXHQvKiogW1dyaXRlXSB3YWZ2MjpBc3NvY2lhdGVXZWJBQ0wgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZVdlYkFDTCA9IFwid2FmdjI6QXNzb2NpYXRlV2ViQUNMXCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6Q2hlY2tDYXBhY2l0eSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2hlY2tDYXBhY2l0eSA9IFwid2FmdjI6Q2hlY2tDYXBhY2l0eVwiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpDcmVhdGVBUElLZXkgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUFQSUtleSA9IFwid2FmdjI6Q3JlYXRlQVBJS2V5XCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOkNyZWF0ZUlQU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJUFNldCA9IFwid2FmdjI6Q3JlYXRlSVBTZXRcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6Q3JlYXRlUmVnZXhQYXR0ZXJuU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWdleFBhdHRlcm5TZXQgPSBcIndhZnYyOkNyZWF0ZVJlZ2V4UGF0dGVyblNldFwiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpDcmVhdGVSdWxlR3JvdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJ1bGVHcm91cCA9IFwid2FmdjI6Q3JlYXRlUnVsZUdyb3VwXCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOkNyZWF0ZVdlYkFDTCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlV2ViQUNMID0gXCJ3YWZ2MjpDcmVhdGVXZWJBQ0xcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6RGVsZXRlQVBJS2V5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVBUElLZXkgPSBcIndhZnYyOkRlbGV0ZUFQSUtleVwiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpEZWxldGVGaXJld2FsbE1hbmFnZXJSdWxlR3JvdXBzICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGaXJld2FsbE1hbmFnZXJSdWxlR3JvdXBzID1cblx0XHRcIndhZnYyOkRlbGV0ZUZpcmV3YWxsTWFuYWdlclJ1bGVHcm91cHNcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6RGVsZXRlSVBTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUlQU2V0ID0gXCJ3YWZ2MjpEZWxldGVJUFNldFwiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpEZWxldGVMb2dnaW5nQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTG9nZ2luZ0NvbmZpZ3VyYXRpb24gPVxuXHRcdFwid2FmdjI6RGVsZXRlTG9nZ2luZ0NvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtQZXJtaXNzaW9uTWFuYWdlbWVudF0gd2FmdjI6RGVsZXRlUGVybWlzc2lvblBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUGVybWlzc2lvblBvbGljeSA9IFwid2FmdjI6RGVsZXRlUGVybWlzc2lvblBvbGljeVwiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpEZWxldGVSZWdleFBhdHRlcm5TZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlZ2V4UGF0dGVyblNldCA9IFwid2FmdjI6RGVsZXRlUmVnZXhQYXR0ZXJuU2V0XCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOkRlbGV0ZVJ1bGVHcm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUnVsZUdyb3VwID0gXCJ3YWZ2MjpEZWxldGVSdWxlR3JvdXBcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6RGVsZXRlV2ViQUNMICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVXZWJBQ0wgPSBcIndhZnYyOkRlbGV0ZVdlYkFDTFwiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkRlc2NyaWJlQWxsTWFuYWdlZFByb2R1Y3RzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFsbE1hbmFnZWRQcm9kdWN0cyA9XG5cdFx0XCJ3YWZ2MjpEZXNjcmliZUFsbE1hbmFnZWRQcm9kdWN0c1wiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkRlc2NyaWJlTWFuYWdlZFByb2R1Y3RzQnlWZW5kb3IgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTWFuYWdlZFByb2R1Y3RzQnlWZW5kb3IgPVxuXHRcdFwid2FmdjI6RGVzY3JpYmVNYW5hZ2VkUHJvZHVjdHNCeVZlbmRvclwiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkRlc2NyaWJlTWFuYWdlZFJ1bGVHcm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVNYW5hZ2VkUnVsZUdyb3VwID0gXCJ3YWZ2MjpEZXNjcmliZU1hbmFnZWRSdWxlR3JvdXBcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6RGlzYXNzb2NpYXRlRmlyZXdhbGxNYW5hZ2VyICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVGaXJld2FsbE1hbmFnZXIgPVxuXHRcdFwid2FmdjI6RGlzYXNzb2NpYXRlRmlyZXdhbGxNYW5hZ2VyXCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOkRpc2Fzc29jaWF0ZVdlYkFDTCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlV2ViQUNMID0gXCJ3YWZ2MjpEaXNhc3NvY2lhdGVXZWJBQ0xcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpHZW5lcmF0ZU1vYmlsZVNka1JlbGVhc2VVcmwgKi9cblx0c3RhdGljIHJlYWRvbmx5IEdlbmVyYXRlTW9iaWxlU2RrUmVsZWFzZVVybCA9XG5cdFx0XCJ3YWZ2MjpHZW5lcmF0ZU1vYmlsZVNka1JlbGVhc2VVcmxcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpHZXREZWNyeXB0ZWRBUElLZXkgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERlY3J5cHRlZEFQSUtleSA9IFwid2FmdjI6R2V0RGVjcnlwdGVkQVBJS2V5XCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6R2V0SVBTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldElQU2V0ID0gXCJ3YWZ2MjpHZXRJUFNldFwiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkdldExvZ2dpbmdDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRMb2dnaW5nQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJ3YWZ2MjpHZXRMb2dnaW5nQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkdldE1hbmFnZWRSdWxlU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRNYW5hZ2VkUnVsZVNldCA9IFwid2FmdjI6R2V0TWFuYWdlZFJ1bGVTZXRcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpHZXRNb2JpbGVTZGtSZWxlYXNlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRNb2JpbGVTZGtSZWxlYXNlID0gXCJ3YWZ2MjpHZXRNb2JpbGVTZGtSZWxlYXNlXCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6R2V0UGVybWlzc2lvblBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UGVybWlzc2lvblBvbGljeSA9IFwid2FmdjI6R2V0UGVybWlzc2lvblBvbGljeVwiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkdldFJhdGVCYXNlZFN0YXRlbWVudE1hbmFnZWRLZXlzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSYXRlQmFzZWRTdGF0ZW1lbnRNYW5hZ2VkS2V5cyA9XG5cdFx0XCJ3YWZ2MjpHZXRSYXRlQmFzZWRTdGF0ZW1lbnRNYW5hZ2VkS2V5c1wiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkdldFJlZ2V4UGF0dGVyblNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVnZXhQYXR0ZXJuU2V0ID0gXCJ3YWZ2MjpHZXRSZWdleFBhdHRlcm5TZXRcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpHZXRSZXZlbnVlU3RhdGlzdGljcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmV2ZW51ZVN0YXRpc3RpY3MgPSBcIndhZnYyOkdldFJldmVudWVTdGF0aXN0aWNzXCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6R2V0UmV2ZW51ZVN0YXRpc3RpY3NTdW1tYXJ5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXZlbnVlU3RhdGlzdGljc1N1bW1hcnkgPVxuXHRcdFwid2FmdjI6R2V0UmV2ZW51ZVN0YXRpc3RpY3NTdW1tYXJ5XCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6R2V0UmV2ZW51ZVN0YXRpc3RpY3NUaW1lU2VyaWVzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXZlbnVlU3RhdGlzdGljc1RpbWVTZXJpZXMgPVxuXHRcdFwid2FmdjI6R2V0UmV2ZW51ZVN0YXRpc3RpY3NUaW1lU2VyaWVzXCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6R2V0UnVsZUdyb3VwICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSdWxlR3JvdXAgPSBcIndhZnYyOkdldFJ1bGVHcm91cFwiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkdldFNhbXBsZWRSZXF1ZXN0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U2FtcGxlZFJlcXVlc3RzID0gXCJ3YWZ2MjpHZXRTYW1wbGVkUmVxdWVzdHNcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpHZXRUb3BQYXRoU3RhdGlzdGljc0J5VHJhZmZpYyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VG9wUGF0aFN0YXRpc3RpY3NCeVRyYWZmaWMgPVxuXHRcdFwid2FmdjI6R2V0VG9wUGF0aFN0YXRpc3RpY3NCeVRyYWZmaWNcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpHZXRXZWJBQ0wgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFdlYkFDTCA9IFwid2FmdjI6R2V0V2ViQUNMXCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6R2V0V2ViQUNMRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFdlYkFDTEZvclJlc291cmNlID0gXCJ3YWZ2MjpHZXRXZWJBQ0xGb3JSZXNvdXJjZVwiO1xuXHQvKiogW0xpc3RdIHdhZnYyOkxpc3RBUElLZXlzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QVBJS2V5cyA9IFwid2FmdjI6TGlzdEFQSUtleXNcIjtcblx0LyoqIFtMaXN0XSB3YWZ2MjpMaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cFZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cFZlcnNpb25zID1cblx0XHRcIndhZnYyOkxpc3RBdmFpbGFibGVNYW5hZ2VkUnVsZUdyb3VwVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSB3YWZ2MjpMaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBdmFpbGFibGVNYW5hZ2VkUnVsZUdyb3VwcyA9XG5cdFx0XCJ3YWZ2MjpMaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cHNcIjtcblx0LyoqIFtMaXN0XSB3YWZ2MjpMaXN0SVBTZXRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SVBTZXRzID0gXCJ3YWZ2MjpMaXN0SVBTZXRzXCI7XG5cdC8qKiBbTGlzdF0gd2FmdjI6TGlzdExvZ2dpbmdDb25maWd1cmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExvZ2dpbmdDb25maWd1cmF0aW9ucyA9IFwid2FmdjI6TGlzdExvZ2dpbmdDb25maWd1cmF0aW9uc1wiO1xuXHQvKiogW0xpc3RdIHdhZnYyOkxpc3RNYW5hZ2VkUnVsZVNldHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNYW5hZ2VkUnVsZVNldHMgPSBcIndhZnYyOkxpc3RNYW5hZ2VkUnVsZVNldHNcIjtcblx0LyoqIFtMaXN0XSB3YWZ2MjpMaXN0TW9iaWxlU2RrUmVsZWFzZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNb2JpbGVTZGtSZWxlYXNlcyA9IFwid2FmdjI6TGlzdE1vYmlsZVNka1JlbGVhc2VzXCI7XG5cdC8qKiBbTGlzdF0gd2FmdjI6TGlzdFJlZ2V4UGF0dGVyblNldHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWdleFBhdHRlcm5TZXRzID0gXCJ3YWZ2MjpMaXN0UmVnZXhQYXR0ZXJuU2V0c1wiO1xuXHQvKiogW0xpc3RdIHdhZnYyOkxpc3RSZXNvdXJjZXNGb3JXZWJBQ0wgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZXNvdXJjZXNGb3JXZWJBQ0wgPSBcIndhZnYyOkxpc3RSZXNvdXJjZXNGb3JXZWJBQ0xcIjtcblx0LyoqIFtMaXN0XSB3YWZ2MjpMaXN0UnVsZUdyb3VwcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJ1bGVHcm91cHMgPSBcIndhZnYyOkxpc3RSdWxlR3JvdXBzXCI7XG5cdC8qKiBbTGlzdF0gd2FmdjI6TGlzdFNldHRsZW1lbnRSZWNvcmRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U2V0dGxlbWVudFJlY29yZHMgPSBcIndhZnYyOkxpc3RTZXR0bGVtZW50UmVjb3Jkc1wiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcIndhZnYyOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtMaXN0XSB3YWZ2MjpMaXN0V2ViQUNMcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFdlYkFDTHMgPSBcIndhZnYyOkxpc3RXZWJBQ0xzXCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOlB1dEZpcmV3YWxsTWFuYWdlclJ1bGVHcm91cHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dEZpcmV3YWxsTWFuYWdlclJ1bGVHcm91cHMgPVxuXHRcdFwid2FmdjI6UHV0RmlyZXdhbGxNYW5hZ2VyUnVsZUdyb3Vwc1wiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpQdXRMb2dnaW5nQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0TG9nZ2luZ0NvbmZpZ3VyYXRpb24gPSBcIndhZnYyOlB1dExvZ2dpbmdDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOlB1dE1hbmFnZWRSdWxlU2V0VmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dE1hbmFnZWRSdWxlU2V0VmVyc2lvbnMgPSBcIndhZnYyOlB1dE1hbmFnZWRSdWxlU2V0VmVyc2lvbnNcIjtcblx0LyoqIFtQZXJtaXNzaW9uTWFuYWdlbWVudF0gd2FmdjI6UHV0UGVybWlzc2lvblBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UGVybWlzc2lvblBvbGljeSA9IFwid2FmdjI6UHV0UGVybWlzc2lvblBvbGljeVwiO1xuXHQvKiogW1RhZ2dpbmddIHdhZnYyOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwid2FmdjI6VGFnUmVzb3VyY2VcIjtcblx0LyoqIFtUYWdnaW5nXSB3YWZ2MjpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJ3YWZ2MjpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOlVwZGF0ZUlQU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVJUFNldCA9IFwid2FmdjI6VXBkYXRlSVBTZXRcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6VXBkYXRlTWFuYWdlZFJ1bGVTZXRWZXJzaW9uRXhwaXJ5RGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWFuYWdlZFJ1bGVTZXRWZXJzaW9uRXhwaXJ5RGF0ZSA9XG5cdFx0XCJ3YWZ2MjpVcGRhdGVNYW5hZ2VkUnVsZVNldFZlcnNpb25FeHBpcnlEYXRlXCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOlVwZGF0ZVJlZ2V4UGF0dGVyblNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVnZXhQYXR0ZXJuU2V0ID0gXCJ3YWZ2MjpVcGRhdGVSZWdleFBhdHRlcm5TZXRcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6VXBkYXRlUnVsZUdyb3VwICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSdWxlR3JvdXAgPSBcIndhZnYyOlVwZGF0ZVJ1bGVHcm91cFwiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpVcGRhdGVXZWJBQ0wgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVdlYkFDTCA9IFwid2FmdjI6VXBkYXRlV2ViQUNMXCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0V2FmdjJBY3Rpb25zLkNoZWNrQ2FwYWNpdHksXG5cdFx0V2FmdjJBY3Rpb25zLkRlc2NyaWJlQWxsTWFuYWdlZFByb2R1Y3RzLFxuXHRcdFdhZnYyQWN0aW9ucy5EZXNjcmliZU1hbmFnZWRQcm9kdWN0c0J5VmVuZG9yLFxuXHRcdFdhZnYyQWN0aW9ucy5EZXNjcmliZU1hbmFnZWRSdWxlR3JvdXAsXG5cdFx0V2FmdjJBY3Rpb25zLkdlbmVyYXRlTW9iaWxlU2RrUmVsZWFzZVVybCxcblx0XHRXYWZ2MkFjdGlvbnMuYWN0aW9uR2V0RGVjcnlwdGVkQVBJS2V5LFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXRJUFNldCxcblx0XHRXYWZ2MkFjdGlvbnMuYWN0aW9uR2V0TG9nZ2luZ0NvbmZpZ3VyYXRpb24sXG5cdFx0V2FmdjJBY3Rpb25zLmFjdGlvbkdldE1hbmFnZWRSdWxlU2V0LFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXRNb2JpbGVTZGtSZWxlYXNlLFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXRQZXJtaXNzaW9uUG9saWN5LFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXRSYXRlQmFzZWRTdGF0ZW1lbnRNYW5hZ2VkS2V5cyxcblx0XHRXYWZ2MkFjdGlvbnMuYWN0aW9uR2V0UmVnZXhQYXR0ZXJuU2V0LFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXRSZXZlbnVlU3RhdGlzdGljcyxcblx0XHRXYWZ2MkFjdGlvbnMuYWN0aW9uR2V0UmV2ZW51ZVN0YXRpc3RpY3NTdW1tYXJ5LFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXRSZXZlbnVlU3RhdGlzdGljc1RpbWVTZXJpZXMsXG5cdFx0V2FmdjJBY3Rpb25zLmFjdGlvbkdldFJ1bGVHcm91cCxcblx0XHRXYWZ2MkFjdGlvbnMuYWN0aW9uR2V0U2FtcGxlZFJlcXVlc3RzLFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXRUb3BQYXRoU3RhdGlzdGljc0J5VHJhZmZpYyxcblx0XHRXYWZ2MkFjdGlvbnMuYWN0aW9uR2V0V2ViQUNMLFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXRXZWJBQ0xGb3JSZXNvdXJjZSxcblx0XHRXYWZ2MkFjdGlvbnMuTGlzdFRhZ3NGb3JSZXNvdXJjZSxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRXYWZ2MkFjdGlvbnMuQXNzb2NpYXRlV2ViQUNMLFxuXHRcdFdhZnYyQWN0aW9ucy5DcmVhdGVBUElLZXksXG5cdFx0V2FmdjJBY3Rpb25zLkNyZWF0ZUlQU2V0LFxuXHRcdFdhZnYyQWN0aW9ucy5DcmVhdGVSZWdleFBhdHRlcm5TZXQsXG5cdFx0V2FmdjJBY3Rpb25zLkNyZWF0ZVJ1bGVHcm91cCxcblx0XHRXYWZ2MkFjdGlvbnMuQ3JlYXRlV2ViQUNMLFxuXHRcdFdhZnYyQWN0aW9ucy5EZWxldGVBUElLZXksXG5cdFx0V2FmdjJBY3Rpb25zLkRlbGV0ZUZpcmV3YWxsTWFuYWdlclJ1bGVHcm91cHMsXG5cdFx0V2FmdjJBY3Rpb25zLkRlbGV0ZUlQU2V0LFxuXHRcdFdhZnYyQWN0aW9ucy5EZWxldGVMb2dnaW5nQ29uZmlndXJhdGlvbixcblx0XHRXYWZ2MkFjdGlvbnMuRGVsZXRlUmVnZXhQYXR0ZXJuU2V0LFxuXHRcdFdhZnYyQWN0aW9ucy5EZWxldGVSdWxlR3JvdXAsXG5cdFx0V2FmdjJBY3Rpb25zLkRlbGV0ZVdlYkFDTCxcblx0XHRXYWZ2MkFjdGlvbnMuRGlzYXNzb2NpYXRlRmlyZXdhbGxNYW5hZ2VyLFxuXHRcdFdhZnYyQWN0aW9ucy5EaXNhc3NvY2lhdGVXZWJBQ0wsXG5cdFx0V2FmdjJBY3Rpb25zLlB1dEZpcmV3YWxsTWFuYWdlclJ1bGVHcm91cHMsXG5cdFx0V2FmdjJBY3Rpb25zLlB1dExvZ2dpbmdDb25maWd1cmF0aW9uLFxuXHRcdFdhZnYyQWN0aW9ucy5QdXRNYW5hZ2VkUnVsZVNldFZlcnNpb25zLFxuXHRcdFdhZnYyQWN0aW9ucy5VcGRhdGVJUFNldCxcblx0XHRXYWZ2MkFjdGlvbnMuVXBkYXRlTWFuYWdlZFJ1bGVTZXRWZXJzaW9uRXhwaXJ5RGF0ZSxcblx0XHRXYWZ2MkFjdGlvbnMuVXBkYXRlUmVnZXhQYXR0ZXJuU2V0LFxuXHRcdFdhZnYyQWN0aW9ucy5VcGRhdGVSdWxlR3JvdXAsXG5cdFx0V2FmdjJBY3Rpb25zLlVwZGF0ZVdlYkFDTCxcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RBUElLZXlzLFxuXHRcdFdhZnYyQWN0aW9ucy5MaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cFZlcnNpb25zLFxuXHRcdFdhZnYyQWN0aW9ucy5MaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cHMsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RJUFNldHMsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RMb2dnaW5nQ29uZmlndXJhdGlvbnMsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RNYW5hZ2VkUnVsZVNldHMsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RNb2JpbGVTZGtSZWxlYXNlcyxcblx0XHRXYWZ2MkFjdGlvbnMuTGlzdFJlZ2V4UGF0dGVyblNldHMsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RSZXNvdXJjZXNGb3JXZWJBQ0wsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RSdWxlR3JvdXBzLFxuXHRcdFdhZnYyQWN0aW9ucy5MaXN0U2V0dGxlbWVudFJlY29yZHMsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RXZWJBQ0xzLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRXYWZ2MkFjdGlvbnMuRGVsZXRlUGVybWlzc2lvblBvbGljeSxcblx0XHRXYWZ2MkFjdGlvbnMuUHV0UGVybWlzc2lvblBvbGljeSxcblx0XTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0V2FmdjJBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdFdhZnYyQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYWdlbnRjb3JlLWdhdGV3YXkgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhZnYyQWdlbnRjb3JlR2F0ZXdheUFyblByb3BzIHtcblx0LyoqIFRoZSBHYXRld2F5SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGdhdGV3YXlJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGFnZW50Y29yZS1nYXRld2F5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MkFnZW50Y29yZUdhdGV3YXlBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEdhdGV3YXlJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGdhdGV3YXlJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYW1wbGlmeS1hcHAgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhZnYyQW1wbGlmeUFwcEFyblByb3BzIHtcblx0LyoqIFRoZSBBcHBJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgYXBwSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhbXBsaWZ5LWFwcCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJBbXBsaWZ5QXBwQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBBcHBJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGFwcElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBhcGlnYXRld2F5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MkFwaWdhdGV3YXlBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQXBpSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGFwaUlkOiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RhZ2VOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzdGFnZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhcGlnYXRld2F5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MkFwaWdhdGV3YXlBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEFwaUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYXBpSWQ6IHN0cmluZztcblx0LyoqIFRoZSBTdGFnZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzdGFnZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGFwcHJ1bm5lciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJBcHBydW5uZXJBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2VydmljZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgU2VydmljZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzZXJ2aWNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhcHBydW5uZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhZnYyQXBwcnVubmVyQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTZXJ2aWNlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgU2VydmljZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc2VydmljZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBhcHBzeW5jIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MkFwcHN5bmNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgR3JhcGhRTEFQSUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBncmFwaFFsYXBpSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhcHBzeW5jIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MkFwcHN5bmNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEdyYXBoUUxBUElJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGdyYXBoUWxhcGlJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgaXBzZXQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhZnYySXBzZXRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2NvcGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cdC8qKiBUaGUgTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGlwc2V0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2Mklwc2V0QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTY29wZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cdC8qKiBUaGUgTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBsb2FkYmFsYW5jZXIvYXBwLyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJMb2FkYmFsYW5jZXJBcHBBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgTG9hZEJhbGFuY2VyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbG9hZEJhbGFuY2VyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIExvYWRCYWxhbmNlcklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBsb2FkQmFsYW5jZXJJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGxvYWRiYWxhbmNlci9hcHAvIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MkxvYWRiYWxhbmNlckFwcEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgTG9hZEJhbGFuY2VyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGxvYWRCYWxhbmNlck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBMb2FkQmFsYW5jZXJJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGxvYWRCYWxhbmNlcklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBtYW5hZ2VkcnVsZXNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJNYW5hZ2VkcnVsZXNldEFyblByb3BzIHtcblx0LyoqIFRoZSBTY29wZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblx0LyoqIFRoZSBOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbWFuYWdlZHJ1bGVzZXQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhZnYyTWFuYWdlZHJ1bGVzZXRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFNjb3BlIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblx0LyoqIFRoZSBOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHJlZ2V4cGF0dGVybnNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJSZWdleHBhdHRlcm5zZXRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2NvcGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cdC8qKiBUaGUgTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHJlZ2V4cGF0dGVybnNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJSZWdleHBhdHRlcm5zZXRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFNjb3BlIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblx0LyoqIFRoZSBOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHJ1bGVncm91cCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJSdWxlZ3JvdXBBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2NvcGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cdC8qKiBUaGUgTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHJ1bGVncm91cCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJSdWxlZ3JvdXBBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFNjb3BlIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblx0LyoqIFRoZSBOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHVzZXJwb29sIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MlVzZXJwb29sQXJuUHJvcHMge1xuXHQvKiogVGhlIFVzZXJQb29sSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHVzZXJQb29sSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSB1c2VycG9vbCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJVc2VycG9vbEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgVXNlclBvb2xJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHVzZXJQb29sSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHZlcmlmaWVkLWFjY2Vzcy1pbnN0YW5jZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJWZXJpZmllZEFjY2Vzc0luc3RhbmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFZlcmlmaWVkQWNjZXNzSW5zdGFuY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdmVyaWZpZWRBY2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgdmVyaWZpZWQtYWNjZXNzLWluc3RhbmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MlZlcmlmaWVkQWNjZXNzSW5zdGFuY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFZlcmlmaWVkQWNjZXNzSW5zdGFuY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHZlcmlmaWVkQWNjZXNzSW5zdGFuY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgd2ViYWNsIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MldlYmFjbEFyblByb3BzIHtcblx0LyoqIFRoZSBTY29wZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblx0LyoqIFRoZSBOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgd2ViYWNsIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MldlYmFjbEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU2NvcGUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzY29wZTogc3RyaW5nO1xuXHQvKiogVGhlIE5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG5jb25zdCBBZ2VudGNvcmVHYXRld2F5QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmJlZHJvY2stYWdlbnRjb3JlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Z2F0ZXdheVxcLyg/PGdhdGV3YXlJZD5bXjovP10rKSQvO1xuY29uc3QgQW1wbGlmeUFwcEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphbXBsaWZ5Oig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6YXBwc1xcLyg/PGFwcElkPlteOi8/XSspJC87XG5jb25zdCBBcGlnYXRld2F5QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmFwaWdhdGV3YXk6KD88cmVnaW9uPlteOl0qKTo6XFwvcmVzdGFwaXNcXC8oPzxhcGlJZD5bXjovP10rKVxcL3N0YWdlc1xcLyg/PHN0YWdlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgQXBwcnVubmVyQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmFwcHJ1bm5lcjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnNlcnZpY2VcXC8oPzxzZXJ2aWNlTmFtZT5bXjovP10rKVxcLyg/PHNlcnZpY2VJZD5bXjovP10rKSQvO1xuY29uc3QgQXBwc3luY0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphcHBzeW5jOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6YXBpc1xcLyg/PGdyYXBoUWxhcGlJZD5bXjovP10rKSQvO1xuY29uc3QgSXBzZXRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6d2FmdjI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTooPzxzY29wZT5bXjovP10rKVxcL2lwc2V0XFwvKD88bmFtZT5bXjovP10rKVxcLyg/PGlkPlteOi8/XSspJC87XG5jb25zdCBMb2FkYmFsYW5jZXJBcHBBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZWxhc3RpY2xvYWRiYWxhbmNpbmc6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpsb2FkYmFsYW5jZXJcXC9hcHBcXC8oPzxsb2FkQmFsYW5jZXJOYW1lPlteOi8/XSspXFwvKD88bG9hZEJhbGFuY2VySWQ+W146Lz9dKykkLztcbmNvbnN0IE1hbmFnZWRydWxlc2V0QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOndhZnYyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6KD88c2NvcGU+W146Lz9dKylcXC9tYW5hZ2VkcnVsZXNldFxcLyg/PG5hbWU+W146Lz9dKylcXC8oPzxpZD5bXjovP10rKSQvO1xuY29uc3QgUmVnZXhwYXR0ZXJuc2V0QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOndhZnYyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6KD88c2NvcGU+W146Lz9dKylcXC9yZWdleHBhdHRlcm5zZXRcXC8oPzxuYW1lPlteOi8/XSspXFwvKD88aWQ+W146Lz9dKykkLztcbmNvbnN0IFJ1bGVncm91cEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTp3YWZ2MjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOig/PHNjb3BlPlteOi8/XSspXFwvcnVsZWdyb3VwXFwvKD88bmFtZT5bXjovP10rKVxcLyg/PGlkPlteOi8/XSspJC87XG5jb25zdCBVc2VycG9vbEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpjb2duaXRvLWlkcDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnVzZXJwb29sXFwvKD88dXNlclBvb2xJZD5bXjovP10rKSQvO1xuY29uc3QgVmVyaWZpZWRBY2Nlc3NJbnN0YW5jZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTplYzI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTp2ZXJpZmllZC1hY2Nlc3MtaW5zdGFuY2VcXC8oPzx2ZXJpZmllZEFjY2Vzc0luc3RhbmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IFdlYmFjbEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTp3YWZ2MjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOig/PHNjb3BlPlteOi8/XSspXFwvd2ViYWNsXFwvKD88bmFtZT5bXjovP10rKVxcLyg/PGlkPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3Igd2FmdjIgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgV2FmdjJSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFnZW50Y29yZS1nYXRld2F5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFnZW50Y29yZUdhdGV3YXkocHJvcHM6IFdhZnYyQWdlbnRjb3JlR2F0ZXdheUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpiZWRyb2NrLWFnZW50Y29yZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpnYXRld2F5LyR7cHJvcHMuZ2F0ZXdheUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhZ2VudGNvcmUtZ2F0ZXdheSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQWdlbnRjb3JlR2F0ZXdheUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBBZ2VudGNvcmVHYXRld2F5QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGFnZW50Y29yZS1nYXRld2F5IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFnZW50Y29yZUdhdGV3YXlBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFdhZnYyQWdlbnRjb3JlR2F0ZXdheUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQWdlbnRjb3JlR2F0ZXdheUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhZ2VudGNvcmUtZ2F0ZXdheSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRnYXRld2F5SWQ6IG1hdGNoLmdyb3VwcyEuZ2F0ZXdheUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFtcGxpZnktYXBwIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFtcGxpZnlBcHAocHJvcHM6IFdhZnYyQW1wbGlmeUFwcEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphbXBsaWZ5OiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmFwcHMvJHtwcm9wcy5hcHBJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgYW1wbGlmeS1hcHAgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFtcGxpZnlBcHBBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQW1wbGlmeUFwcEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBhbXBsaWZ5LWFwcCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBbXBsaWZ5QXBwQXJuKGFybjogc3RyaW5nKTogV2FmdjJBbXBsaWZ5QXBwQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBbXBsaWZ5QXBwQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFtcGxpZnktYXBwIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGFwcElkOiBtYXRjaC5ncm91cHMhLmFwcElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFwaWdhdGV3YXkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYXBpZ2F0ZXdheShwcm9wczogV2FmdjJBcGlnYXRld2F5QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmFwaWdhdGV3YXk6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OjovcmVzdGFwaXMvJHtwcm9wcy5hcGlJZH0vc3RhZ2VzLyR7cHJvcHMuc3RhZ2VOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhcGlnYXRld2F5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRBcGlnYXRld2F5QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEFwaWdhdGV3YXlBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgYXBpZ2F0ZXdheSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBcGlnYXRld2F5QXJuKGFybjogc3RyaW5nKTogV2FmdjJBcGlnYXRld2F5QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBcGlnYXRld2F5QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFwaWdhdGV3YXkgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0YXBpSWQ6IG1hdGNoLmdyb3VwcyEuYXBpSWQsXG5cdFx0XHRzdGFnZU5hbWU6IG1hdGNoLmdyb3VwcyEuc3RhZ2VOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFwcHJ1bm5lciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBhcHBydW5uZXIocHJvcHM6IFdhZnYyQXBwcnVubmVyQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmFwcHJ1bm5lcjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzZXJ2aWNlLyR7cHJvcHMuc2VydmljZU5hbWV9LyR7cHJvcHMuc2VydmljZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhcHBydW5uZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFwcHJ1bm5lckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBBcHBydW5uZXJBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgYXBwcnVubmVyIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFwcHJ1bm5lckFybihhcm46IHN0cmluZyk6IFdhZnYyQXBwcnVubmVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBcHBydW5uZXJBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXBwcnVubmVyIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNlcnZpY2VOYW1lOiBtYXRjaC5ncm91cHMhLnNlcnZpY2VOYW1lLFxuXHRcdFx0c2VydmljZUlkOiBtYXRjaC5ncm91cHMhLnNlcnZpY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBhcHBzeW5jIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFwcHN5bmMocHJvcHM6IFdhZnYyQXBwc3luY0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphcHBzeW5jOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmFwaXMvJHtwcm9wcy5ncmFwaFFsYXBpSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGFwcHN5bmMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFwcHN5bmNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQXBwc3luY0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBhcHBzeW5jIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFwcHN5bmNBcm4oYXJuOiBzdHJpbmcpOiBXYWZ2MkFwcHN5bmNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEFwcHN5bmNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXBwc3luYyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRncmFwaFFsYXBpSWQ6IG1hdGNoLmdyb3VwcyEuZ3JhcGhRbGFwaUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGlwc2V0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlwc2V0KHByb3BzOiBXYWZ2Mklwc2V0QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OndhZnYyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OiR7cHJvcHMuc2NvcGV9L2lwc2V0LyR7cHJvcHMubmFtZX0vJHtwcm9wcy5pZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgaXBzZXQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZElwc2V0QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIElwc2V0QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGlwc2V0IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUlwc2V0QXJuKGFybjogc3RyaW5nKTogV2FmdjJJcHNldEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSXBzZXRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaXBzZXQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0c2NvcGU6IG1hdGNoLmdyb3VwcyEuc2NvcGUsXG5cdFx0XHRuYW1lOiBtYXRjaC5ncm91cHMhLm5hbWUsXG5cdFx0XHRpZDogbWF0Y2guZ3JvdXBzIS5pZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBsb2FkYmFsYW5jZXIvYXBwLyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBsb2FkYmFsYW5jZXJBcHAocHJvcHM6IFdhZnYyTG9hZGJhbGFuY2VyQXBwQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmVsYXN0aWNsb2FkYmFsYW5jaW5nOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmxvYWRiYWxhbmNlci9hcHAvJHtwcm9wcy5sb2FkQmFsYW5jZXJOYW1lfS8ke3Byb3BzLmxvYWRCYWxhbmNlcklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBsb2FkYmFsYW5jZXIvYXBwLyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTG9hZGJhbGFuY2VyQXBwQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIExvYWRiYWxhbmNlckFwcEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBsb2FkYmFsYW5jZXIvYXBwLyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VMb2FkYmFsYW5jZXJBcHBBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFdhZnYyTG9hZGJhbGFuY2VyQXBwQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBMb2FkYmFsYW5jZXJBcHBBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbG9hZGJhbGFuY2VyL2FwcC8gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bG9hZEJhbGFuY2VyTmFtZTogbWF0Y2guZ3JvdXBzIS5sb2FkQmFsYW5jZXJOYW1lLFxuXHRcdFx0bG9hZEJhbGFuY2VySWQ6IG1hdGNoLmdyb3VwcyEubG9hZEJhbGFuY2VySWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgbWFuYWdlZHJ1bGVzZXQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbWFuYWdlZHJ1bGVzZXQocHJvcHM6IFdhZnYyTWFuYWdlZHJ1bGVzZXRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06d2FmdjI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06JHtwcm9wcy5zY29wZX0vbWFuYWdlZHJ1bGVzZXQvJHtwcm9wcy5uYW1lfS8ke3Byb3BzLmlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBtYW5hZ2VkcnVsZXNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTWFuYWdlZHJ1bGVzZXRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTWFuYWdlZHJ1bGVzZXRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgbWFuYWdlZHJ1bGVzZXQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlTWFuYWdlZHJ1bGVzZXRBcm4oYXJuOiBzdHJpbmcpOiBXYWZ2Mk1hbmFnZWRydWxlc2V0QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBNYW5hZ2VkcnVsZXNldEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBtYW5hZ2VkcnVsZXNldCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzY29wZTogbWF0Y2guZ3JvdXBzIS5zY29wZSxcblx0XHRcdG5hbWU6IG1hdGNoLmdyb3VwcyEubmFtZSxcblx0XHRcdGlkOiBtYXRjaC5ncm91cHMhLmlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHJlZ2V4cGF0dGVybnNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyByZWdleHBhdHRlcm5zZXQocHJvcHM6IFdhZnYyUmVnZXhwYXR0ZXJuc2V0QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OndhZnYyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OiR7cHJvcHMuc2NvcGV9L3JlZ2V4cGF0dGVybnNldC8ke3Byb3BzLm5hbWV9LyR7cHJvcHMuaWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHJlZ2V4cGF0dGVybnNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVnZXhwYXR0ZXJuc2V0QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlZ2V4cGF0dGVybnNldEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSByZWdleHBhdHRlcm5zZXQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVnZXhwYXR0ZXJuc2V0QXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBXYWZ2MlJlZ2V4cGF0dGVybnNldEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVnZXhwYXR0ZXJuc2V0QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJlZ2V4cGF0dGVybnNldCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzY29wZTogbWF0Y2guZ3JvdXBzIS5zY29wZSxcblx0XHRcdG5hbWU6IG1hdGNoLmdyb3VwcyEubmFtZSxcblx0XHRcdGlkOiBtYXRjaC5ncm91cHMhLmlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHJ1bGVncm91cCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBydWxlZ3JvdXAocHJvcHM6IFdhZnYyUnVsZWdyb3VwQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OndhZnYyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OiR7cHJvcHMuc2NvcGV9L3J1bGVncm91cC8ke3Byb3BzLm5hbWV9LyR7cHJvcHMuaWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHJ1bGVncm91cCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUnVsZWdyb3VwQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJ1bGVncm91cEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBydWxlZ3JvdXAgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUnVsZWdyb3VwQXJuKGFybjogc3RyaW5nKTogV2FmdjJSdWxlZ3JvdXBBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJ1bGVncm91cEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBydWxlZ3JvdXAgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0c2NvcGU6IG1hdGNoLmdyb3VwcyEuc2NvcGUsXG5cdFx0XHRuYW1lOiBtYXRjaC5ncm91cHMhLm5hbWUsXG5cdFx0XHRpZDogbWF0Y2guZ3JvdXBzIS5pZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB1c2VycG9vbCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB1c2VycG9vbChwcm9wczogV2FmdjJVc2VycG9vbEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpjb2duaXRvLWlkcDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTp1c2VycG9vbC8ke3Byb3BzLnVzZXJQb29sSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHVzZXJwb29sIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRVc2VycG9vbEFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBVc2VycG9vbEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSB1c2VycG9vbCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VVc2VycG9vbEFybihhcm46IHN0cmluZyk6IFdhZnYyVXNlcnBvb2xBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFVzZXJwb29sQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHVzZXJwb29sIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHVzZXJQb29sSWQ6IG1hdGNoLmdyb3VwcyEudXNlclBvb2xJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB2ZXJpZmllZC1hY2Nlc3MtaW5zdGFuY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgdmVyaWZpZWRBY2Nlc3NJbnN0YW5jZShcblx0XHRwcm9wczogV2FmdjJWZXJpZmllZEFjY2Vzc0luc3RhbmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZWMyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnZlcmlmaWVkLWFjY2Vzcy1pbnN0YW5jZS8ke3Byb3BzLnZlcmlmaWVkQWNjZXNzSW5zdGFuY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgdmVyaWZpZWQtYWNjZXNzLWluc3RhbmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRWZXJpZmllZEFjY2Vzc0luc3RhbmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFZlcmlmaWVkQWNjZXNzSW5zdGFuY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgdmVyaWZpZWQtYWNjZXNzLWluc3RhbmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVZlcmlmaWVkQWNjZXNzSW5zdGFuY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFdhZnYyVmVyaWZpZWRBY2Nlc3NJbnN0YW5jZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gVmVyaWZpZWRBY2Nlc3NJbnN0YW5jZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2ZXJpZmllZC1hY2Nlc3MtaW5zdGFuY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0dmVyaWZpZWRBY2Nlc3NJbnN0YW5jZUlkOiBtYXRjaC5ncm91cHMhLnZlcmlmaWVkQWNjZXNzSW5zdGFuY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB3ZWJhY2wgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgd2ViYWNsKHByb3BzOiBXYWZ2MldlYmFjbEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTp3YWZ2Mjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifToke3Byb3BzLnNjb3BlfS93ZWJhY2wvJHtwcm9wcy5uYW1lfS8ke3Byb3BzLmlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSB3ZWJhY2wgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFdlYmFjbEFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBXZWJhY2xBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgd2ViYWNsIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVdlYmFjbEFybihhcm46IHN0cmluZyk6IFdhZnYyV2ViYWNsQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBXZWJhY2xBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgd2ViYWNsIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNjb3BlOiBtYXRjaC5ncm91cHMhLnNjb3BlLFxuXHRcdFx0bmFtZTogbWF0Y2guZ3JvdXBzIS5uYW1lLFxuXHRcdFx0aWQ6IG1hdGNoLmdyb3VwcyEuaWQsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3Igd2FmdjIuXG4gKi9cbmV4cG9ydCBjbGFzcyBXYWZ2Mk9wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBc3NvY2lhdGVXZWJBQ0wgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVXZWJBQ0w6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwc3luYzpBc3NvY2lhdGVXZWJBQ0xcIixcblx0XHRcIndhZnYyOkFzc29jaWF0ZVdlYkFDTFwiLFxuXHRcdFwiZWxhc3RpY2xvYWRiYWxhbmNpbmc6Q3JlYXRlV2ViQUNMQXNzb2NpYXRpb25cIixcblx0XHRcImFwaWdhdGV3YXk6U2V0V2ViQUNMXCIsXG5cdFx0XCJhcHBzeW5jOlNldFdlYkFDTFwiLFxuXHRcdFwiZWxhc3RpY2xvYWRiYWxhbmNpbmc6U2V0V2ViQWNsXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENoZWNrQ2FwYWNpdHkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDaGVja0NhcGFjaXR5OiBzdHJpbmdbXSA9IFtcIndhZnYyOkNoZWNrQ2FwYWNpdHlcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUFQSUtleSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUFQSUtleTogc3RyaW5nW10gPSBbXCJ3YWZ2MjpDcmVhdGVBUElLZXlcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUlQU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSVBTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6Q3JlYXRlSVBTZXRcIixcblx0XHRcIndhZnYyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVJlZ2V4UGF0dGVyblNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlZ2V4UGF0dGVyblNldDogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpDcmVhdGVSZWdleFBhdHRlcm5TZXRcIixcblx0XHRcIndhZnYyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVJ1bGVHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJ1bGVHcm91cDogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpDcmVhdGVSdWxlR3JvdXBcIixcblx0XHRcIndhZnYyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVdlYkFDTCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVdlYkFDTDogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpDcmVhdGVXZWJBQ0xcIixcblx0XHRcIndhZnYyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUFQSUtleSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFQSUtleTogc3RyaW5nW10gPSBbXCJ3YWZ2MjpEZWxldGVBUElLZXlcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUZpcmV3YWxsTWFuYWdlclJ1bGVHcm91cHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGaXJld2FsbE1hbmFnZXJSdWxlR3JvdXBzOiBzdHJpbmdbXSA9IFtcblx0XHRcIndhZnYyOkRlbGV0ZUZpcmV3YWxsTWFuYWdlclJ1bGVHcm91cHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlSVBTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVJUFNldDogc3RyaW5nW10gPSBbXCJ3YWZ2MjpEZWxldGVJUFNldFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTG9nZ2luZ0NvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMb2dnaW5nQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpEZWxldGVMb2dnaW5nQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVQZXJtaXNzaW9uUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUGVybWlzc2lvblBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpEZWxldGVQZXJtaXNzaW9uUG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVJlZ2V4UGF0dGVyblNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlZ2V4UGF0dGVyblNldDogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpEZWxldGVSZWdleFBhdHRlcm5TZXRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUnVsZUdyb3VwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUnVsZUdyb3VwOiBzdHJpbmdbXSA9IFtcIndhZnYyOkRlbGV0ZVJ1bGVHcm91cFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlV2ViQUNMIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlV2ViQUNMOiBzdHJpbmdbXSA9IFtcIndhZnYyOkRlbGV0ZVdlYkFDTFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVBbGxNYW5hZ2VkUHJvZHVjdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFsbE1hbmFnZWRQcm9kdWN0czogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpEZXNjcmliZUFsbE1hbmFnZWRQcm9kdWN0c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZU1hbmFnZWRQcm9kdWN0c0J5VmVuZG9yIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVNYW5hZ2VkUHJvZHVjdHNCeVZlbmRvcjogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpEZXNjcmliZU1hbmFnZWRQcm9kdWN0c0J5VmVuZG9yXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlTWFuYWdlZFJ1bGVHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTWFuYWdlZFJ1bGVHcm91cDogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpEZXNjcmliZU1hbmFnZWRSdWxlR3JvdXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzYXNzb2NpYXRlV2ViQUNMIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlV2ViQUNMOiBzdHJpbmdbXSA9IFtcblx0XHRcImVsYXN0aWNsb2FkYmFsYW5jaW5nOkRlbGV0ZVdlYkFDTEFzc29jaWF0aW9uXCIsXG5cdFx0XCJhcHBzeW5jOkRpc2Fzc29jaWF0ZVdlYkFDTFwiLFxuXHRcdFwid2FmdjI6RGlzYXNzb2NpYXRlV2ViQUNMXCIsXG5cdFx0XCJhcGlnYXRld2F5OlNldFdlYkFDTFwiLFxuXHRcdFwiYXBwc3luYzpTZXRXZWJBQ0xcIixcblx0XHRcImVsYXN0aWNsb2FkYmFsYW5jaW5nOlNldFdlYkFjbFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZW5lcmF0ZU1vYmlsZVNka1JlbGVhc2VVcmwgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBHZW5lcmF0ZU1vYmlsZVNka1JlbGVhc2VVcmw6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6R2VuZXJhdGVNb2JpbGVTZGtSZWxlYXNlVXJsXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldERlY3J5cHRlZEFQSUtleSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RGVjcnlwdGVkQVBJS2V5OiBzdHJpbmdbXSA9IFtcIndhZnYyOkdldERlY3J5cHRlZEFQSUtleVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SVBTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldElQU2V0OiBzdHJpbmdbXSA9IFtcIndhZnYyOkdldElQU2V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRMb2dnaW5nQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TG9nZ2luZ0NvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6R2V0TG9nZ2luZ0NvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TWFuYWdlZFJ1bGVTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE1hbmFnZWRSdWxlU2V0OiBzdHJpbmdbXSA9IFtcIndhZnYyOkdldE1hbmFnZWRSdWxlU2V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRNb2JpbGVTZGtSZWxlYXNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRNb2JpbGVTZGtSZWxlYXNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIndhZnYyOkdldE1vYmlsZVNka1JlbGVhc2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UGVybWlzc2lvblBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UGVybWlzc2lvblBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpHZXRQZXJtaXNzaW9uUG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJhdGVCYXNlZFN0YXRlbWVudE1hbmFnZWRLZXlzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSYXRlQmFzZWRTdGF0ZW1lbnRNYW5hZ2VkS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpHZXRSYXRlQmFzZWRTdGF0ZW1lbnRNYW5hZ2VkS2V5c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWdleFBhdHRlcm5TZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlZ2V4UGF0dGVyblNldDogc3RyaW5nW10gPSBbXCJ3YWZ2MjpHZXRSZWdleFBhdHRlcm5TZXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJldmVudWVTdGF0aXN0aWNzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZXZlbnVlU3RhdGlzdGljczogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpHZXRSZXZlbnVlU3RhdGlzdGljc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZXZlbnVlU3RhdGlzdGljc1N1bW1hcnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJldmVudWVTdGF0aXN0aWNzU3VtbWFyeTogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpHZXRSZXZlbnVlU3RhdGlzdGljc1N1bW1hcnlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmV2ZW51ZVN0YXRpc3RpY3NUaW1lU2VyaWVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZXZlbnVlU3RhdGlzdGljc1RpbWVTZXJpZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6R2V0UmV2ZW51ZVN0YXRpc3RpY3NUaW1lU2VyaWVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJ1bGVHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UnVsZUdyb3VwOiBzdHJpbmdbXSA9IFtcIndhZnYyOkdldFJ1bGVHcm91cFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2FtcGxlZFJlcXVlc3RzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTYW1wbGVkUmVxdWVzdHM6IHN0cmluZ1tdID0gW1wid2FmdjI6R2V0U2FtcGxlZFJlcXVlc3RzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRUb3BQYXRoU3RhdGlzdGljc0J5VHJhZmZpYyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0VG9wUGF0aFN0YXRpc3RpY3NCeVRyYWZmaWM6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6R2V0VG9wUGF0aFN0YXRpc3RpY3NCeVRyYWZmaWNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0V2ViQUNMIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRXZWJBQ0w6IHN0cmluZ1tdID0gW1wid2FmdjI6R2V0V2ViQUNMXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRXZWJBQ0xGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0V2ViQUNMRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWxhc3RpY2xvYWRiYWxhbmNpbmc6R2V0TG9hZEJhbGFuY2VyV2ViQUNMXCIsXG5cdFx0XCJhcHBzeW5jOkdldFdlYkFDTEZvclJlc291cmNlXCIsXG5cdFx0XCJ3YWZ2MjpHZXRXZWJBQ0xGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QVBJS2V5cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBUElLZXlzOiBzdHJpbmdbXSA9IFtcIndhZnYyOkxpc3RBUElLZXlzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cFZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEF2YWlsYWJsZU1hbmFnZWRSdWxlR3JvdXBWZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpMaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cFZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBdmFpbGFibGVNYW5hZ2VkUnVsZUdyb3VwcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBdmFpbGFibGVNYW5hZ2VkUnVsZUdyb3Vwczogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpMaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdElQU2V0cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJUFNldHM6IHN0cmluZ1tdID0gW1wid2FmdjI6TGlzdElQU2V0c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdExvZ2dpbmdDb25maWd1cmF0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMb2dnaW5nQ29uZmlndXJhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6TGlzdExvZ2dpbmdDb25maWd1cmF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TWFuYWdlZFJ1bGVTZXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1hbmFnZWRSdWxlU2V0czogc3RyaW5nW10gPSBbXCJ3YWZ2MjpMaXN0TWFuYWdlZFJ1bGVTZXRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TW9iaWxlU2RrUmVsZWFzZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TW9iaWxlU2RrUmVsZWFzZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6TGlzdE1vYmlsZVNka1JlbGVhc2VzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSZWdleFBhdHRlcm5TZXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlZ2V4UGF0dGVyblNldHM6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6TGlzdFJlZ2V4UGF0dGVyblNldHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlc291cmNlc0ZvcldlYkFDTCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZXNvdXJjZXNGb3JXZWJBQ0w6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWxhc3RpY2xvYWRiYWxhbmNpbmc6RGVzY3JpYmVXZWJBQ0xBc3NvY2lhdGlvblwiLFxuXHRcdFwiYXBwc3luYzpMaXN0UmVzb3VyY2VzRm9yV2ViQUNMXCIsXG5cdFx0XCJ3YWZ2MjpMaXN0UmVzb3VyY2VzRm9yV2ViQUNMXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSdWxlR3JvdXBzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJ1bGVHcm91cHM6IHN0cmluZ1tdID0gW1wid2FmdjI6TGlzdFJ1bGVHcm91cHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTZXR0bGVtZW50UmVjb3JkcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTZXR0bGVtZW50UmVjb3Jkczogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpMaXN0U2V0dGxlbWVudFJlY29yZHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3NGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wid2FmdjI6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFdlYkFDTHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V2ViQUNMczogc3RyaW5nW10gPSBbXCJ3YWZ2MjpMaXN0V2ViQUNMc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0TG9nZ2luZ0NvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRMb2dnaW5nQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpQdXRMb2dnaW5nQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRNYW5hZ2VkUnVsZVNldFZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0TWFuYWdlZFJ1bGVTZXRWZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpQdXRNYW5hZ2VkUnVsZVNldFZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dFBlcm1pc3Npb25Qb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRQZXJtaXNzaW9uUG9saWN5OiBzdHJpbmdbXSA9IFtcIndhZnYyOlB1dFBlcm1pc3Npb25Qb2xpY3lcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wid2FmdjI6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcIndhZnYyOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUlQU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlSVBTZXQ6IHN0cmluZ1tdID0gW1wid2FmdjI6VXBkYXRlSVBTZXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZU1hbmFnZWRSdWxlU2V0VmVyc2lvbkV4cGlyeURhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVNYW5hZ2VkUnVsZVNldFZlcnNpb25FeHBpcnlEYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcIndhZnYyOlVwZGF0ZU1hbmFnZWRSdWxlU2V0VmVyc2lvbkV4cGlyeURhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVnZXhQYXR0ZXJuU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVnZXhQYXR0ZXJuU2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcIndhZnYyOlVwZGF0ZVJlZ2V4UGF0dGVyblNldFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSdWxlR3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSdWxlR3JvdXA6IHN0cmluZ1tdID0gW1wid2FmdjI6VXBkYXRlUnVsZUdyb3VwXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVXZWJBQ0wgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVXZWJBQ0w6IHN0cmluZ1tdID0gW1wid2FmdjI6VXBkYXRlV2ViQUNMXCJdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3Igd2FmdjIuXG4gKi9cbmV4cG9ydCBjbGFzcyBXYWZ2MkNvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlSVBTZXQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSVBTZXRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJlZ2V4UGF0dGVyblNldCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWdleFBhdHRlcm5TZXRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJ1bGVHcm91cCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSdWxlR3JvdXBDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVdlYkFDTCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVXZWJBQ0xDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIERlbGV0ZUxvZ2dpbmdDb25maWd1cmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxvZ2dpbmdDb25maWd1cmF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpMb2dTY29wZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0SVBTZXQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SVBTZXRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldExvZ2dpbmdDb25maWd1cmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldExvZ2dpbmdDb25maWd1cmF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJ3YWZ2MjpMb2dTY29wZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0UmF0ZUJhc2VkU3RhdGVtZW50TWFuYWdlZEtleXMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmF0ZUJhc2VkU3RhdGVtZW50TWFuYWdlZEtleXNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9XG5cdFx0W1wiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldFJlZ2V4UGF0dGVyblNldCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWdleFBhdHRlcm5TZXRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldFJ1bGVHcm91cCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSdWxlR3JvdXBDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldFdlYkFDTCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRXZWJBQ0xDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIExpc3RMb2dnaW5nQ29uZmlndXJhdGlvbnMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExvZ2dpbmdDb25maWd1cmF0aW9uc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6TG9nU2NvcGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgUHV0TG9nZ2luZ0NvbmZpZ3VyYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0TG9nZ2luZ0NvbmZpZ3VyYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcIndhZnYyOkxvZ0Rlc3RpbmF0aW9uUmVzb3VyY2VcIixcblx0XHRcIndhZnYyOkxvZ1Njb3BlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUYWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUlQU2V0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUlQU2V0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVSZWdleFBhdHRlcm5TZXQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVnZXhQYXR0ZXJuU2V0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVSdWxlR3JvdXAgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUnVsZUdyb3VwQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVXZWJBQ0wgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlV2ViQUNMQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogd2FmdjI6TG9nRGVzdGluYXRpb25SZXNvdXJjZSAoQVJOKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTE9HX0RFU1RJTkFUSU9OX1JFU09VUkNFID0gXCJ3YWZ2MjpMb2dEZXN0aW5hdGlvblJlc291cmNlXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiB3YWZ2MjpMb2dTY29wZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTE9HX1NDT1BFID0gXCJ3YWZ2MjpMb2dTY29wZVwiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGB3YWZ2MjpMb2dEZXN0aW5hdGlvblJlc291cmNlYC5cblx0ICovXG5cdHN0YXRpYyBsb2dEZXN0aW5hdGlvblJlc291cmNlKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBBcm5FcXVhbHM6IHsgXCJ3YWZ2MjpMb2dEZXN0aW5hdGlvblJlc291cmNlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGB3YWZ2MjpMb2dTY29wZWAuXG5cdCAqL1xuXHRzdGF0aWMgbG9nU2NvcGUodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJ3YWZ2MjpMb2dTY29wZVwiOiB2YWx1ZSB9IH07XG5cdH1cbn1cbiJdfQ==
968
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FmdjIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL3NlcnZpY2VzL3dhZnYyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0ZBQWdGO0FBQ2hGLDZDQUE2QztBQUM3QywwREFBMEQ7QUFDMUQsNENBQTRDO0FBQzVDLG9EQUFvRDtBQUNwRCxnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDSCxNQUFhLFlBQVk7O0FBQXpCLG9DQWtPQzs7O0FBak9BLDhCQUE4QjtBQUNkLDJCQUFjLEdBQUcsT0FBTyxDQUFDO0FBRXpDLG9DQUFvQztBQUNwQiw0QkFBZSxHQUFHLHVCQUF1QixDQUFDO0FBQzFELGlDQUFpQztBQUNqQiwwQkFBYSxHQUFHLHFCQUFxQixDQUFDO0FBQ3RELGlDQUFpQztBQUNqQix5QkFBWSxHQUFHLG9CQUFvQixDQUFDO0FBQ3BELGdDQUFnQztBQUNoQix3QkFBVyxHQUFHLG1CQUFtQixDQUFDO0FBQ2xELDBDQUEwQztBQUMxQixrQ0FBcUIsR0FBRyw2QkFBNkIsQ0FBQztBQUN0RSxvQ0FBb0M7QUFDcEIsNEJBQWUsR0FBRyx1QkFBdUIsQ0FBQztBQUMxRCxpQ0FBaUM7QUFDakIseUJBQVksR0FBRyxvQkFBb0IsQ0FBQztBQUNwRCxpQ0FBaUM7QUFDakIseUJBQVksR0FBRyxvQkFBb0IsQ0FBQztBQUNwRCxvREFBb0Q7QUFDcEMsNENBQStCLEdBQzlDLHVDQUF1QyxDQUFDO0FBQ3pDLGdDQUFnQztBQUNoQix3QkFBVyxHQUFHLG1CQUFtQixDQUFDO0FBQ2xELCtDQUErQztBQUMvQix1Q0FBMEIsR0FDekMsa0NBQWtDLENBQUM7QUFDcEMsMERBQTBEO0FBQzFDLG1DQUFzQixHQUFHLDhCQUE4QixDQUFDO0FBQ3hFLDBDQUEwQztBQUMxQixrQ0FBcUIsR0FBRyw2QkFBNkIsQ0FBQztBQUN0RSxvQ0FBb0M7QUFDcEIsNEJBQWUsR0FBRyx1QkFBdUIsQ0FBQztBQUMxRCxpQ0FBaUM7QUFD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LDJEQUEyRDtBQUMzQyx3Q0FBd0IsR0FBYTtJQUNwRCwyQkFBMkI7Q0FDM0IsQ0FBQztBQUNGLHFFQUFxRTtBQUNyRCxrREFBa0MsR0FBYTtJQUM5RCwyQkFBMkI7Q0FDM0IsQ0FBQztBQUNGLCtEQUErRDtBQUMvQyw0Q0FBNEIsR0FBYTtJQUN4RCwyQkFBMkI7Q0FDM0IsQ0FBQztBQUNGLDREQUE0RDtBQUM1Qyx5Q0FBeUIsR0FBYTtJQUNyRCwyQkFBMkI7Q0FDM0IsQ0FBQztBQUVGLHVEQUF1RDtBQUN2QywrQkFBZSxHQUFHLDBCQUEwQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4QyxnQ0FBZ0IsR0FBRywyQkFBMkIsQ0FBQztBQUMvRCxpREFBaUQ7QUFDakMsNEJBQVksR0FBRyxhQUFhLENBQUM7QUFDN0Msd0RBQXdEO0FBQ3hDLHdDQUF3QixHQUFHLDhCQUE4QixDQUFDO0FBQzFFLDZDQUE2QztBQUM3Qix5QkFBUyxHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2Uvd2FmdjIuanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIHdhZnYyIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBXYWZ2MkFjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJ3YWZ2MlwiO1xuXG5cdC8qKiBbV3JpdGVdIHdhZnYyOkFzc29jaWF0ZVdlYkFDTCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlV2ViQUNMID0gXCJ3YWZ2MjpBc3NvY2lhdGVXZWJBQ0xcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpDaGVja0NhcGFjaXR5ICovXG5cdHN0YXRpYyByZWFkb25seSBDaGVja0NhcGFjaXR5ID0gXCJ3YWZ2MjpDaGVja0NhcGFjaXR5XCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOkNyZWF0ZUFQSUtleSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQVBJS2V5ID0gXCJ3YWZ2MjpDcmVhdGVBUElLZXlcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6Q3JlYXRlSVBTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUlQU2V0ID0gXCJ3YWZ2MjpDcmVhdGVJUFNldFwiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpDcmVhdGVSZWdleFBhdHRlcm5TZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlZ2V4UGF0dGVyblNldCA9IFwid2FmdjI6Q3JlYXRlUmVnZXhQYXR0ZXJuU2V0XCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOkNyZWF0ZVJ1bGVHcm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUnVsZUdyb3VwID0gXCJ3YWZ2MjpDcmVhdGVSdWxlR3JvdXBcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6Q3JlYXRlV2ViQUNMICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVXZWJBQ0wgPSBcIndhZnYyOkNyZWF0ZVdlYkFDTFwiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpEZWxldGVBUElLZXkgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFQSUtleSA9IFwid2FmdjI6RGVsZXRlQVBJS2V5XCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOkRlbGV0ZUZpcmV3YWxsTWFuYWdlclJ1bGVHcm91cHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUZpcmV3YWxsTWFuYWdlclJ1bGVHcm91cHMgPVxuXHRcdFwid2FmdjI6RGVsZXRlRmlyZXdhbGxNYW5hZ2VyUnVsZUdyb3Vwc1wiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpEZWxldGVJUFNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSVBTZXQgPSBcIndhZnYyOkRlbGV0ZUlQU2V0XCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOkRlbGV0ZUxvZ2dpbmdDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMb2dnaW5nQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJ3YWZ2MjpEZWxldGVMb2dnaW5nQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1Blcm1pc3Npb25NYW5hZ2VtZW50XSB3YWZ2MjpEZWxldGVQZXJtaXNzaW9uUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVQZXJtaXNzaW9uUG9saWN5ID0gXCJ3YWZ2MjpEZWxldGVQZXJtaXNzaW9uUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOkRlbGV0ZVJlZ2V4UGF0dGVyblNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVnZXhQYXR0ZXJuU2V0ID0gXCJ3YWZ2MjpEZWxldGVSZWdleFBhdHRlcm5TZXRcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6RGVsZXRlUnVsZUdyb3VwICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSdWxlR3JvdXAgPSBcIndhZnYyOkRlbGV0ZVJ1bGVHcm91cFwiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpEZWxldGVXZWJBQ0wgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVdlYkFDTCA9IFwid2FmdjI6RGVsZXRlV2ViQUNMXCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6RGVzY3JpYmVBbGxNYW5hZ2VkUHJvZHVjdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQWxsTWFuYWdlZFByb2R1Y3RzID1cblx0XHRcIndhZnYyOkRlc2NyaWJlQWxsTWFuYWdlZFByb2R1Y3RzXCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6RGVzY3JpYmVNYW5hZ2VkUHJvZHVjdHNCeVZlbmRvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVNYW5hZ2VkUHJvZHVjdHNCeVZlbmRvciA9XG5cdFx0XCJ3YWZ2MjpEZXNjcmliZU1hbmFnZWRQcm9kdWN0c0J5VmVuZG9yXCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6RGVzY3JpYmVNYW5hZ2VkUnVsZUdyb3VwICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZU1hbmFnZWRSdWxlR3JvdXAgPSBcIndhZnYyOkRlc2NyaWJlTWFuYWdlZFJ1bGVHcm91cFwiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpEaXNhc3NvY2lhdGVGaXJld2FsbE1hbmFnZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Fzc29jaWF0ZUZpcmV3YWxsTWFuYWdlciA9XG5cdFx0XCJ3YWZ2MjpEaXNhc3NvY2lhdGVGaXJld2FsbE1hbmFnZXJcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6RGlzYXNzb2NpYXRlV2ViQUNMICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVXZWJBQ0wgPSBcIndhZnYyOkRpc2Fzc29jaWF0ZVdlYkFDTFwiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkdlbmVyYXRlTW9iaWxlU2RrUmVsZWFzZVVybCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgR2VuZXJhdGVNb2JpbGVTZGtSZWxlYXNlVXJsID1cblx0XHRcIndhZnYyOkdlbmVyYXRlTW9iaWxlU2RrUmVsZWFzZVVybFwiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkdldERlY3J5cHRlZEFQSUtleSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RGVjcnlwdGVkQVBJS2V5ID0gXCJ3YWZ2MjpHZXREZWNyeXB0ZWRBUElLZXlcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpHZXRJUFNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SVBTZXQgPSBcIndhZnYyOkdldElQU2V0XCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6R2V0TG9nZ2luZ0NvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldExvZ2dpbmdDb25maWd1cmF0aW9uID1cblx0XHRcIndhZnYyOkdldExvZ2dpbmdDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6R2V0TWFuYWdlZFJ1bGVTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE1hbmFnZWRSdWxlU2V0ID0gXCJ3YWZ2MjpHZXRNYW5hZ2VkUnVsZVNldFwiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkdldE1vYmlsZVNka1JlbGVhc2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE1vYmlsZVNka1JlbGVhc2UgPSBcIndhZnYyOkdldE1vYmlsZVNka1JlbGVhc2VcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpHZXRQZXJtaXNzaW9uUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRQZXJtaXNzaW9uUG9saWN5ID0gXCJ3YWZ2MjpHZXRQZXJtaXNzaW9uUG9saWN5XCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6R2V0UmF0ZUJhc2VkU3RhdGVtZW50TWFuYWdlZEtleXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJhdGVCYXNlZFN0YXRlbWVudE1hbmFnZWRLZXlzID1cblx0XHRcIndhZnYyOkdldFJhdGVCYXNlZFN0YXRlbWVudE1hbmFnZWRLZXlzXCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6R2V0UmVnZXhQYXR0ZXJuU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWdleFBhdHRlcm5TZXQgPSBcIndhZnYyOkdldFJlZ2V4UGF0dGVyblNldFwiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkdldFJldmVudWVTdGF0aXN0aWNzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXZlbnVlU3RhdGlzdGljcyA9IFwid2FmdjI6R2V0UmV2ZW51ZVN0YXRpc3RpY3NcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpHZXRSZXZlbnVlU3RhdGlzdGljc1N1bW1hcnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJldmVudWVTdGF0aXN0aWNzU3VtbWFyeSA9XG5cdFx0XCJ3YWZ2MjpHZXRSZXZlbnVlU3RhdGlzdGljc1N1bW1hcnlcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpHZXRSZXZlbnVlU3RhdGlzdGljc1RpbWVTZXJpZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJldmVudWVTdGF0aXN0aWNzVGltZVNlcmllcyA9XG5cdFx0XCJ3YWZ2MjpHZXRSZXZlbnVlU3RhdGlzdGljc1RpbWVTZXJpZXNcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpHZXRSdWxlR3JvdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJ1bGVHcm91cCA9IFwid2FmdjI6R2V0UnVsZUdyb3VwXCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6R2V0U2FtcGxlZFJlcXVlc3RzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRTYW1wbGVkUmVxdWVzdHMgPSBcIndhZnYyOkdldFNhbXBsZWRSZXF1ZXN0c1wiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkdldFRvcFBhdGhTdGF0aXN0aWNzQnlUcmFmZmljICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRUb3BQYXRoU3RhdGlzdGljc0J5VHJhZmZpYyA9XG5cdFx0XCJ3YWZ2MjpHZXRUb3BQYXRoU3RhdGlzdGljc0J5VHJhZmZpY1wiO1xuXHQvKiogW1JlYWRdIHdhZnYyOkdldFdlYkFDTCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0V2ViQUNMID0gXCJ3YWZ2MjpHZXRXZWJBQ0xcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpHZXRXZWJBQ0xGb3JSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0V2ViQUNMRm9yUmVzb3VyY2UgPSBcIndhZnYyOkdldFdlYkFDTEZvclJlc291cmNlXCI7XG5cdC8qKiBbTGlzdF0gd2FmdjI6TGlzdEFQSUtleXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBUElLZXlzID0gXCJ3YWZ2MjpMaXN0QVBJS2V5c1wiO1xuXHQvKiogW0xpc3RdIHdhZnYyOkxpc3RBdmFpbGFibGVNYW5hZ2VkUnVsZUdyb3VwVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBdmFpbGFibGVNYW5hZ2VkUnVsZUdyb3VwVmVyc2lvbnMgPVxuXHRcdFwid2FmdjI6TGlzdEF2YWlsYWJsZU1hbmFnZWRSdWxlR3JvdXBWZXJzaW9uc1wiO1xuXHQvKiogW0xpc3RdIHdhZnYyOkxpc3RBdmFpbGFibGVNYW5hZ2VkUnVsZUdyb3VwcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEF2YWlsYWJsZU1hbmFnZWRSdWxlR3JvdXBzID1cblx0XHRcIndhZnYyOkxpc3RBdmFpbGFibGVNYW5hZ2VkUnVsZUdyb3Vwc1wiO1xuXHQvKiogW0xpc3RdIHdhZnYyOkxpc3RJUFNldHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJUFNldHMgPSBcIndhZnYyOkxpc3RJUFNldHNcIjtcblx0LyoqIFtMaXN0XSB3YWZ2MjpMaXN0TG9nZ2luZ0NvbmZpZ3VyYXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TG9nZ2luZ0NvbmZpZ3VyYXRpb25zID0gXCJ3YWZ2MjpMaXN0TG9nZ2luZ0NvbmZpZ3VyYXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gd2FmdjI6TGlzdE1hbmFnZWRSdWxlU2V0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1hbmFnZWRSdWxlU2V0cyA9IFwid2FmdjI6TGlzdE1hbmFnZWRSdWxlU2V0c1wiO1xuXHQvKiogW0xpc3RdIHdhZnYyOkxpc3RNb2JpbGVTZGtSZWxlYXNlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1vYmlsZVNka1JlbGVhc2VzID0gXCJ3YWZ2MjpMaXN0TW9iaWxlU2RrUmVsZWFzZXNcIjtcblx0LyoqIFtMaXN0XSB3YWZ2MjpMaXN0UmVnZXhQYXR0ZXJuU2V0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlZ2V4UGF0dGVyblNldHMgPSBcIndhZnYyOkxpc3RSZWdleFBhdHRlcm5TZXRzXCI7XG5cdC8qKiBbTGlzdF0gd2FmdjI6TGlzdFJlc291cmNlc0ZvcldlYkFDTCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlc291cmNlc0ZvcldlYkFDTCA9IFwid2FmdjI6TGlzdFJlc291cmNlc0ZvcldlYkFDTFwiO1xuXHQvKiogW0xpc3RdIHdhZnYyOkxpc3RSdWxlR3JvdXBzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UnVsZUdyb3VwcyA9IFwid2FmdjI6TGlzdFJ1bGVHcm91cHNcIjtcblx0LyoqIFtMaXN0XSB3YWZ2MjpMaXN0U2V0dGxlbWVudFJlY29yZHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTZXR0bGVtZW50UmVjb3JkcyA9IFwid2FmdjI6TGlzdFNldHRsZW1lbnRSZWNvcmRzXCI7XG5cdC8qKiBbUmVhZF0gd2FmdjI6TGlzdFRhZ3NGb3JSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZSA9IFwid2FmdjI6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW0xpc3RdIHdhZnYyOkxpc3RXZWJBQ0xzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V2ViQUNMcyA9IFwid2FmdjI6TGlzdFdlYkFDTHNcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6UHV0RmlyZXdhbGxNYW5hZ2VyUnVsZUdyb3VwcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RmlyZXdhbGxNYW5hZ2VyUnVsZUdyb3VwcyA9XG5cdFx0XCJ3YWZ2MjpQdXRGaXJld2FsbE1hbmFnZXJSdWxlR3JvdXBzXCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOlB1dExvZ2dpbmdDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRMb2dnaW5nQ29uZmlndXJhdGlvbiA9IFwid2FmdjI6UHV0TG9nZ2luZ0NvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6UHV0TWFuYWdlZFJ1bGVTZXRWZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0TWFuYWdlZFJ1bGVTZXRWZXJzaW9ucyA9IFwid2FmdjI6UHV0TWFuYWdlZFJ1bGVTZXRWZXJzaW9uc1wiO1xuXHQvKiogW1Blcm1pc3Npb25NYW5hZ2VtZW50XSB3YWZ2MjpQdXRQZXJtaXNzaW9uUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRQZXJtaXNzaW9uUG9saWN5ID0gXCJ3YWZ2MjpQdXRQZXJtaXNzaW9uUG9saWN5XCI7XG5cdC8qKiBbVGFnZ2luZ10gd2FmdjI6VGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlID0gXCJ3YWZ2MjpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1RhZ2dpbmddIHdhZnYyOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcIndhZnYyOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6VXBkYXRlSVBTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUlQU2V0ID0gXCJ3YWZ2MjpVcGRhdGVJUFNldFwiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpVcGRhdGVNYW5hZ2VkUnVsZVNldFZlcnNpb25FeHBpcnlEYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVNYW5hZ2VkUnVsZVNldFZlcnNpb25FeHBpcnlEYXRlID1cblx0XHRcIndhZnYyOlVwZGF0ZU1hbmFnZWRSdWxlU2V0VmVyc2lvbkV4cGlyeURhdGVcIjtcblx0LyoqIFtXcml0ZV0gd2FmdjI6VXBkYXRlUmVnZXhQYXR0ZXJuU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZWdleFBhdHRlcm5TZXQgPSBcIndhZnYyOlVwZGF0ZVJlZ2V4UGF0dGVyblNldFwiO1xuXHQvKiogW1dyaXRlXSB3YWZ2MjpVcGRhdGVSdWxlR3JvdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJ1bGVHcm91cCA9IFwid2FmdjI6VXBkYXRlUnVsZUdyb3VwXCI7XG5cdC8qKiBbV3JpdGVdIHdhZnYyOlVwZGF0ZVdlYkFDTCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlV2ViQUNMID0gXCJ3YWZ2MjpVcGRhdGVXZWJBQ0xcIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpWYWxpZGF0ZU5ldHdvcmtTZWN1cml0eU1hbmFnZXJSdWxlQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVmFsaWRhdGVOZXR3b3JrU2VjdXJpdHlNYW5hZ2VyUnVsZUNvbmZpZ3VyYXRpb24gPVxuXHRcdFwid2FmdjI6VmFsaWRhdGVOZXR3b3JrU2VjdXJpdHlNYW5hZ2VyUnVsZUNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSB3YWZ2MjpWYWxpZGF0ZU5ldHdvcmtTZWN1cml0eU1hbmFnZXJXZWJBQ0xDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBWYWxpZGF0ZU5ldHdvcmtTZWN1cml0eU1hbmFnZXJXZWJBQ0xDb25maWd1cmF0aW9uID1cblx0XHRcIndhZnYyOlZhbGlkYXRlTmV0d29ya1NlY3VyaXR5TWFuYWdlcldlYkFDTENvbmZpZ3VyYXRpb25cIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRXYWZ2MkFjdGlvbnMuQ2hlY2tDYXBhY2l0eSxcblx0XHRXYWZ2MkFjdGlvbnMuRGVzY3JpYmVBbGxNYW5hZ2VkUHJvZHVjdHMsXG5cdFx0V2FmdjJBY3Rpb25zLkRlc2NyaWJlTWFuYWdlZFByb2R1Y3RzQnlWZW5kb3IsXG5cdFx0V2FmdjJBY3Rpb25zLkRlc2NyaWJlTWFuYWdlZFJ1bGVHcm91cCxcblx0XHRXYWZ2MkFjdGlvbnMuR2VuZXJhdGVNb2JpbGVTZGtSZWxlYXNlVXJsLFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXREZWNyeXB0ZWRBUElLZXksXG5cdFx0V2FmdjJBY3Rpb25zLmFjdGlvbkdldElQU2V0LFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXRMb2dnaW5nQ29uZmlndXJhdGlvbixcblx0XHRXYWZ2MkFjdGlvbnMuYWN0aW9uR2V0TWFuYWdlZFJ1bGVTZXQsXG5cdFx0V2FmdjJBY3Rpb25zLmFjdGlvbkdldE1vYmlsZVNka1JlbGVhc2UsXG5cdFx0V2FmdjJBY3Rpb25zLmFjdGlvbkdldFBlcm1pc3Npb25Qb2xpY3ksXG5cdFx0V2FmdjJBY3Rpb25zLmFjdGlvbkdldFJhdGVCYXNlZFN0YXRlbWVudE1hbmFnZWRLZXlzLFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXRSZWdleFBhdHRlcm5TZXQsXG5cdFx0V2FmdjJBY3Rpb25zLmFjdGlvbkdldFJldmVudWVTdGF0aXN0aWNzLFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXRSZXZlbnVlU3RhdGlzdGljc1N1bW1hcnksXG5cdFx0V2FmdjJBY3Rpb25zLmFjdGlvbkdldFJldmVudWVTdGF0aXN0aWNzVGltZVNlcmllcyxcblx0XHRXYWZ2MkFjdGlvbnMuYWN0aW9uR2V0UnVsZUdyb3VwLFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXRTYW1wbGVkUmVxdWVzdHMsXG5cdFx0V2FmdjJBY3Rpb25zLmFjdGlvbkdldFRvcFBhdGhTdGF0aXN0aWNzQnlUcmFmZmljLFxuXHRcdFdhZnYyQWN0aW9ucy5hY3Rpb25HZXRXZWJBQ0wsXG5cdFx0V2FmdjJBY3Rpb25zLmFjdGlvbkdldFdlYkFDTEZvclJlc291cmNlLFxuXHRcdFdhZnYyQWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRcdFdhZnYyQWN0aW9ucy5WYWxpZGF0ZU5ldHdvcmtTZWN1cml0eU1hbmFnZXJSdWxlQ29uZmlndXJhdGlvbixcblx0XHRXYWZ2MkFjdGlvbnMuVmFsaWRhdGVOZXR3b3JrU2VjdXJpdHlNYW5hZ2VyV2ViQUNMQ29uZmlndXJhdGlvbixcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRXYWZ2MkFjdGlvbnMuQXNzb2NpYXRlV2ViQUNMLFxuXHRcdFdhZnYyQWN0aW9ucy5DcmVhdGVBUElLZXksXG5cdFx0V2FmdjJBY3Rpb25zLkNyZWF0ZUlQU2V0LFxuXHRcdFdhZnYyQWN0aW9ucy5DcmVhdGVSZWdleFBhdHRlcm5TZXQsXG5cdFx0V2FmdjJBY3Rpb25zLkNyZWF0ZVJ1bGVHcm91cCxcblx0XHRXYWZ2MkFjdGlvbnMuQ3JlYXRlV2ViQUNMLFxuXHRcdFdhZnYyQWN0aW9ucy5EZWxldGVBUElLZXksXG5cdFx0V2FmdjJBY3Rpb25zLkRlbGV0ZUZpcmV3YWxsTWFuYWdlclJ1bGVHcm91cHMsXG5cdFx0V2FmdjJBY3Rpb25zLkRlbGV0ZUlQU2V0LFxuXHRcdFdhZnYyQWN0aW9ucy5EZWxldGVMb2dnaW5nQ29uZmlndXJhdGlvbixcblx0XHRXYWZ2MkFjdGlvbnMuRGVsZXRlUmVnZXhQYXR0ZXJuU2V0LFxuXHRcdFdhZnYyQWN0aW9ucy5EZWxldGVSdWxlR3JvdXAsXG5cdFx0V2FmdjJBY3Rpb25zLkRlbGV0ZVdlYkFDTCxcblx0XHRXYWZ2MkFjdGlvbnMuRGlzYXNzb2NpYXRlRmlyZXdhbGxNYW5hZ2VyLFxuXHRcdFdhZnYyQWN0aW9ucy5EaXNhc3NvY2lhdGVXZWJBQ0wsXG5cdFx0V2FmdjJBY3Rpb25zLlB1dEZpcmV3YWxsTWFuYWdlclJ1bGVHcm91cHMsXG5cdFx0V2FmdjJBY3Rpb25zLlB1dExvZ2dpbmdDb25maWd1cmF0aW9uLFxuXHRcdFdhZnYyQWN0aW9ucy5QdXRNYW5hZ2VkUnVsZVNldFZlcnNpb25zLFxuXHRcdFdhZnYyQWN0aW9ucy5VcGRhdGVJUFNldCxcblx0XHRXYWZ2MkFjdGlvbnMuVXBkYXRlTWFuYWdlZFJ1bGVTZXRWZXJzaW9uRXhwaXJ5RGF0ZSxcblx0XHRXYWZ2MkFjdGlvbnMuVXBkYXRlUmVnZXhQYXR0ZXJuU2V0LFxuXHRcdFdhZnYyQWN0aW9ucy5VcGRhdGVSdWxlR3JvdXAsXG5cdFx0V2FmdjJBY3Rpb25zLlVwZGF0ZVdlYkFDTCxcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RBUElLZXlzLFxuXHRcdFdhZnYyQWN0aW9ucy5MaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cFZlcnNpb25zLFxuXHRcdFdhZnYyQWN0aW9ucy5MaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cHMsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RJUFNldHMsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RMb2dnaW5nQ29uZmlndXJhdGlvbnMsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RNYW5hZ2VkUnVsZVNldHMsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RNb2JpbGVTZGtSZWxlYXNlcyxcblx0XHRXYWZ2MkFjdGlvbnMuTGlzdFJlZ2V4UGF0dGVyblNldHMsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RSZXNvdXJjZXNGb3JXZWJBQ0wsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RSdWxlR3JvdXBzLFxuXHRcdFdhZnYyQWN0aW9ucy5MaXN0U2V0dGxlbWVudFJlY29yZHMsXG5cdFx0V2FmdjJBY3Rpb25zLkxpc3RXZWJBQ0xzLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRXYWZ2MkFjdGlvbnMuRGVsZXRlUGVybWlzc2lvblBvbGljeSxcblx0XHRXYWZ2MkFjdGlvbnMuUHV0UGVybWlzc2lvblBvbGljeSxcblx0XTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0V2FmdjJBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdFdhZnYyQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYWdlbnRjb3JlLWdhdGV3YXkgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhZnYyQWdlbnRjb3JlR2F0ZXdheUFyblByb3BzIHtcblx0LyoqIFRoZSBHYXRld2F5SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGdhdGV3YXlJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGFnZW50Y29yZS1nYXRld2F5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MkFnZW50Y29yZUdhdGV3YXlBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEdhdGV3YXlJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGdhdGV3YXlJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgYW1wbGlmeS1hcHAgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhZnYyQW1wbGlmeUFwcEFyblByb3BzIHtcblx0LyoqIFRoZSBBcHBJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgYXBwSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhbXBsaWZ5LWFwcCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJBbXBsaWZ5QXBwQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBBcHBJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGFwcElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBhcGlnYXRld2F5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MkFwaWdhdGV3YXlBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQXBpSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGFwaUlkOiBzdHJpbmc7XG5cdC8qKiBUaGUgU3RhZ2VOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzdGFnZU5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhcGlnYXRld2F5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MkFwaWdhdGV3YXlBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEFwaUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYXBpSWQ6IHN0cmluZztcblx0LyoqIFRoZSBTdGFnZU5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzdGFnZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGFwcHJ1bm5lciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJBcHBydW5uZXJBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2VydmljZU5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgU2VydmljZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzZXJ2aWNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhcHBydW5uZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhZnYyQXBwcnVubmVyQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTZXJ2aWNlTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgU2VydmljZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc2VydmljZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBhcHBzeW5jIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MkFwcHN5bmNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgR3JhcGhRTEFQSUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBncmFwaFFsYXBpSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhcHBzeW5jIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MkFwcHN5bmNBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEdyYXBoUUxBUElJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGdyYXBoUWxhcGlJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgaXBzZXQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhZnYySXBzZXRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2NvcGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cdC8qKiBUaGUgTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGlwc2V0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2Mklwc2V0QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTY29wZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cdC8qKiBUaGUgTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBsb2FkYmFsYW5jZXIvYXBwLyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJMb2FkYmFsYW5jZXJBcHBBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgTG9hZEJhbGFuY2VyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbG9hZEJhbGFuY2VyTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIExvYWRCYWxhbmNlcklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBsb2FkQmFsYW5jZXJJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGxvYWRiYWxhbmNlci9hcHAvIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MkxvYWRiYWxhbmNlckFwcEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgTG9hZEJhbGFuY2VyTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGxvYWRCYWxhbmNlck5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBMb2FkQmFsYW5jZXJJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGxvYWRCYWxhbmNlcklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBtYW5hZ2VkcnVsZXNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJNYW5hZ2VkcnVsZXNldEFyblByb3BzIHtcblx0LyoqIFRoZSBTY29wZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblx0LyoqIFRoZSBOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgbWFuYWdlZHJ1bGVzZXQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhZnYyTWFuYWdlZHJ1bGVzZXRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFNjb3BlIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblx0LyoqIFRoZSBOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHJlZ2V4cGF0dGVybnNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJSZWdleHBhdHRlcm5zZXRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2NvcGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cdC8qKiBUaGUgTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHJlZ2V4cGF0dGVybnNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJSZWdleHBhdHRlcm5zZXRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFNjb3BlIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblx0LyoqIFRoZSBOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHJ1bGVncm91cCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJSdWxlZ3JvdXBBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2NvcGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cdC8qKiBUaGUgTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHJ1bGVncm91cCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJSdWxlZ3JvdXBBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFNjb3BlIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblx0LyoqIFRoZSBOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHVzZXJwb29sIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MlVzZXJwb29sQXJuUHJvcHMge1xuXHQvKiogVGhlIFVzZXJQb29sSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHVzZXJQb29sSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSB1c2VycG9vbCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJVc2VycG9vbEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgVXNlclBvb2xJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHVzZXJQb29sSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHZlcmlmaWVkLWFjY2Vzcy1pbnN0YW5jZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FmdjJWZXJpZmllZEFjY2Vzc0luc3RhbmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFZlcmlmaWVkQWNjZXNzSW5zdGFuY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdmVyaWZpZWRBY2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgdmVyaWZpZWQtYWNjZXNzLWluc3RhbmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MlZlcmlmaWVkQWNjZXNzSW5zdGFuY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFZlcmlmaWVkQWNjZXNzSW5zdGFuY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHZlcmlmaWVkQWNjZXNzSW5zdGFuY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgd2ViYWNsIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MldlYmFjbEFyblByb3BzIHtcblx0LyoqIFRoZSBTY29wZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblx0LyoqIFRoZSBOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgd2ViYWNsIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXYWZ2MldlYmFjbEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU2NvcGUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzY29wZTogc3RyaW5nO1xuXHQvKiogVGhlIE5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG5jb25zdCBBZ2VudGNvcmVHYXRld2F5QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmJlZHJvY2stYWdlbnRjb3JlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Z2F0ZXdheVxcLyg/PGdhdGV3YXlJZD5bXjovP10rKSQvO1xuY29uc3QgQW1wbGlmeUFwcEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphbXBsaWZ5Oig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6YXBwc1xcLyg/PGFwcElkPlteOi8/XSspJC87XG5jb25zdCBBcGlnYXRld2F5QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmFwaWdhdGV3YXk6KD88cmVnaW9uPlteOl0qKTo6XFwvcmVzdGFwaXNcXC8oPzxhcGlJZD5bXjovP10rKVxcL3N0YWdlc1xcLyg/PHN0YWdlTmFtZT5bXjovP10rKSQvO1xuY29uc3QgQXBwcnVubmVyQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmFwcHJ1bm5lcjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnNlcnZpY2VcXC8oPzxzZXJ2aWNlTmFtZT5bXjovP10rKVxcLyg/PHNlcnZpY2VJZD5bXjovP10rKSQvO1xuY29uc3QgQXBwc3luY0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphcHBzeW5jOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6YXBpc1xcLyg/PGdyYXBoUWxhcGlJZD5bXjovP10rKSQvO1xuY29uc3QgSXBzZXRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6d2FmdjI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTooPzxzY29wZT5bXjovP10rKVxcL2lwc2V0XFwvKD88bmFtZT5bXjovP10rKVxcLyg/PGlkPlteOi8/XSspJC87XG5jb25zdCBMb2FkYmFsYW5jZXJBcHBBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZWxhc3RpY2xvYWRiYWxhbmNpbmc6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpsb2FkYmFsYW5jZXJcXC9hcHBcXC8oPzxsb2FkQmFsYW5jZXJOYW1lPlteOi8/XSspXFwvKD88bG9hZEJhbGFuY2VySWQ+W146Lz9dKykkLztcbmNvbnN0IE1hbmFnZWRydWxlc2V0QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOndhZnYyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6KD88c2NvcGU+W146Lz9dKylcXC9tYW5hZ2VkcnVsZXNldFxcLyg/PG5hbWU+W146Lz9dKylcXC8oPzxpZD5bXjovP10rKSQvO1xuY29uc3QgUmVnZXhwYXR0ZXJuc2V0QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOndhZnYyOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6KD88c2NvcGU+W146Lz9dKylcXC9yZWdleHBhdHRlcm5zZXRcXC8oPzxuYW1lPlteOi8/XSspXFwvKD88aWQ+W146Lz9dKykkLztcbmNvbnN0IFJ1bGVncm91cEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTp3YWZ2MjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOig/PHNjb3BlPlteOi8/XSspXFwvcnVsZWdyb3VwXFwvKD88bmFtZT5bXjovP10rKVxcLyg/PGlkPlteOi8/XSspJC87XG5jb25zdCBVc2VycG9vbEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpjb2duaXRvLWlkcDooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnVzZXJwb29sXFwvKD88dXNlclBvb2xJZD5bXjovP10rKSQvO1xuY29uc3QgVmVyaWZpZWRBY2Nlc3NJbnN0YW5jZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTplYzI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTp2ZXJpZmllZC1hY2Nlc3MtaW5zdGFuY2VcXC8oPzx2ZXJpZmllZEFjY2Vzc0luc3RhbmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IFdlYmFjbEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTp3YWZ2MjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOig/PHNjb3BlPlteOi8/XSspXFwvd2ViYWNsXFwvKD88bmFtZT5bXjovP10rKVxcLyg/PGlkPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3Igd2FmdjIgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgV2FmdjJSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFnZW50Y29yZS1nYXRld2F5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFnZW50Y29yZUdhdGV3YXkocHJvcHM6IFdhZnYyQWdlbnRjb3JlR2F0ZXdheUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpiZWRyb2NrLWFnZW50Y29yZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpnYXRld2F5LyR7cHJvcHMuZ2F0ZXdheUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhZ2VudGNvcmUtZ2F0ZXdheSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQWdlbnRjb3JlR2F0ZXdheUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBBZ2VudGNvcmVHYXRld2F5QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGFnZW50Y29yZS1nYXRld2F5IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFnZW50Y29yZUdhdGV3YXlBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFdhZnYyQWdlbnRjb3JlR2F0ZXdheUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQWdlbnRjb3JlR2F0ZXdheUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhZ2VudGNvcmUtZ2F0ZXdheSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRnYXRld2F5SWQ6IG1hdGNoLmdyb3VwcyEuZ2F0ZXdheUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFtcGxpZnktYXBwIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFtcGxpZnlBcHAocHJvcHM6IFdhZnYyQW1wbGlmeUFwcEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphbXBsaWZ5OiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmFwcHMvJHtwcm9wcy5hcHBJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgYW1wbGlmeS1hcHAgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFtcGxpZnlBcHBBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQW1wbGlmeUFwcEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBhbXBsaWZ5LWFwcCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBbXBsaWZ5QXBwQXJuKGFybjogc3RyaW5nKTogV2FmdjJBbXBsaWZ5QXBwQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBbXBsaWZ5QXBwQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFtcGxpZnktYXBwIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGFwcElkOiBtYXRjaC5ncm91cHMhLmFwcElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFwaWdhdGV3YXkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYXBpZ2F0ZXdheShwcm9wczogV2FmdjJBcGlnYXRld2F5QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmFwaWdhdGV3YXk6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OjovcmVzdGFwaXMvJHtwcm9wcy5hcGlJZH0vc3RhZ2VzLyR7cHJvcHMuc3RhZ2VOYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhcGlnYXRld2F5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRBcGlnYXRld2F5QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEFwaWdhdGV3YXlBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgYXBpZ2F0ZXdheSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBcGlnYXRld2F5QXJuKGFybjogc3RyaW5nKTogV2FmdjJBcGlnYXRld2F5QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBcGlnYXRld2F5QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFwaWdhdGV3YXkgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0YXBpSWQ6IG1hdGNoLmdyb3VwcyEuYXBpSWQsXG5cdFx0XHRzdGFnZU5hbWU6IG1hdGNoLmdyb3VwcyEuc3RhZ2VOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGFwcHJ1bm5lciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBhcHBydW5uZXIocHJvcHM6IFdhZnYyQXBwcnVubmVyQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmFwcHJ1bm5lcjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzZXJ2aWNlLyR7cHJvcHMuc2VydmljZU5hbWV9LyR7cHJvcHMuc2VydmljZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhcHBydW5uZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFwcHJ1bm5lckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBBcHBydW5uZXJBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgYXBwcnVubmVyIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFwcHJ1bm5lckFybihhcm46IHN0cmluZyk6IFdhZnYyQXBwcnVubmVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBcHBydW5uZXJBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXBwcnVubmVyIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNlcnZpY2VOYW1lOiBtYXRjaC5ncm91cHMhLnNlcnZpY2VOYW1lLFxuXHRcdFx0c2VydmljZUlkOiBtYXRjaC5ncm91cHMhLnNlcnZpY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBhcHBzeW5jIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFwcHN5bmMocHJvcHM6IFdhZnYyQXBwc3luY0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphcHBzeW5jOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmFwaXMvJHtwcm9wcy5ncmFwaFFsYXBpSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGFwcHN5bmMgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFwcHN5bmNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQXBwc3luY0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBhcHBzeW5jIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFwcHN5bmNBcm4oYXJuOiBzdHJpbmcpOiBXYWZ2MkFwcHN5bmNBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEFwcHN5bmNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXBwc3luYyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRncmFwaFFsYXBpSWQ6IG1hdGNoLmdyb3VwcyEuZ3JhcGhRbGFwaUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGlwc2V0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlwc2V0KHByb3BzOiBXYWZ2Mklwc2V0QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OndhZnYyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OiR7cHJvcHMuc2NvcGV9L2lwc2V0LyR7cHJvcHMubmFtZX0vJHtwcm9wcy5pZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgaXBzZXQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZElwc2V0QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIElwc2V0QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGlwc2V0IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUlwc2V0QXJuKGFybjogc3RyaW5nKTogV2FmdjJJcHNldEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSXBzZXRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaXBzZXQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0c2NvcGU6IG1hdGNoLmdyb3VwcyEuc2NvcGUsXG5cdFx0XHRuYW1lOiBtYXRjaC5ncm91cHMhLm5hbWUsXG5cdFx0XHRpZDogbWF0Y2guZ3JvdXBzIS5pZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBsb2FkYmFsYW5jZXIvYXBwLyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBsb2FkYmFsYW5jZXJBcHAocHJvcHM6IFdhZnYyTG9hZGJhbGFuY2VyQXBwQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmVsYXN0aWNsb2FkYmFsYW5jaW5nOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmxvYWRiYWxhbmNlci9hcHAvJHtwcm9wcy5sb2FkQmFsYW5jZXJOYW1lfS8ke3Byb3BzLmxvYWRCYWxhbmNlcklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBsb2FkYmFsYW5jZXIvYXBwLyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTG9hZGJhbGFuY2VyQXBwQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIExvYWRiYWxhbmNlckFwcEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBsb2FkYmFsYW5jZXIvYXBwLyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VMb2FkYmFsYW5jZXJBcHBBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFdhZnYyTG9hZGJhbGFuY2VyQXBwQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBMb2FkYmFsYW5jZXJBcHBBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbG9hZGJhbGFuY2VyL2FwcC8gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bG9hZEJhbGFuY2VyTmFtZTogbWF0Y2guZ3JvdXBzIS5sb2FkQmFsYW5jZXJOYW1lLFxuXHRcdFx0bG9hZEJhbGFuY2VySWQ6IG1hdGNoLmdyb3VwcyEubG9hZEJhbGFuY2VySWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgbWFuYWdlZHJ1bGVzZXQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbWFuYWdlZHJ1bGVzZXQocHJvcHM6IFdhZnYyTWFuYWdlZHJ1bGVzZXRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06d2FmdjI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06JHtwcm9wcy5zY29wZX0vbWFuYWdlZHJ1bGVzZXQvJHtwcm9wcy5uYW1lfS8ke3Byb3BzLmlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBtYW5hZ2VkcnVsZXNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTWFuYWdlZHJ1bGVzZXRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTWFuYWdlZHJ1bGVzZXRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgbWFuYWdlZHJ1bGVzZXQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlTWFuYWdlZHJ1bGVzZXRBcm4oYXJuOiBzdHJpbmcpOiBXYWZ2Mk1hbmFnZWRydWxlc2V0QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBNYW5hZ2VkcnVsZXNldEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBtYW5hZ2VkcnVsZXNldCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzY29wZTogbWF0Y2guZ3JvdXBzIS5zY29wZSxcblx0XHRcdG5hbWU6IG1hdGNoLmdyb3VwcyEubmFtZSxcblx0XHRcdGlkOiBtYXRjaC5ncm91cHMhLmlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHJlZ2V4cGF0dGVybnNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyByZWdleHBhdHRlcm5zZXQocHJvcHM6IFdhZnYyUmVnZXhwYXR0ZXJuc2V0QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OndhZnYyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OiR7cHJvcHMuc2NvcGV9L3JlZ2V4cGF0dGVybnNldC8ke3Byb3BzLm5hbWV9LyR7cHJvcHMuaWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHJlZ2V4cGF0dGVybnNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVnZXhwYXR0ZXJuc2V0QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlZ2V4cGF0dGVybnNldEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSByZWdleHBhdHRlcm5zZXQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVnZXhwYXR0ZXJuc2V0QXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBXYWZ2MlJlZ2V4cGF0dGVybnNldEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVnZXhwYXR0ZXJuc2V0QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJlZ2V4cGF0dGVybnNldCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzY29wZTogbWF0Y2guZ3JvdXBzIS5zY29wZSxcblx0XHRcdG5hbWU6IG1hdGNoLmdyb3VwcyEubmFtZSxcblx0XHRcdGlkOiBtYXRjaC5ncm91cHMhLmlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHJ1bGVncm91cCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBydWxlZ3JvdXAocHJvcHM6IFdhZnYyUnVsZWdyb3VwQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OndhZnYyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OiR7cHJvcHMuc2NvcGV9L3J1bGVncm91cC8ke3Byb3BzLm5hbWV9LyR7cHJvcHMuaWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHJ1bGVncm91cCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUnVsZWdyb3VwQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJ1bGVncm91cEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBydWxlZ3JvdXAgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUnVsZWdyb3VwQXJuKGFybjogc3RyaW5nKTogV2FmdjJSdWxlZ3JvdXBBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJ1bGVncm91cEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBydWxlZ3JvdXAgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0c2NvcGU6IG1hdGNoLmdyb3VwcyEuc2NvcGUsXG5cdFx0XHRuYW1lOiBtYXRjaC5ncm91cHMhLm5hbWUsXG5cdFx0XHRpZDogbWF0Y2guZ3JvdXBzIS5pZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB1c2VycG9vbCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB1c2VycG9vbChwcm9wczogV2FmdjJVc2VycG9vbEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpjb2duaXRvLWlkcDoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTp1c2VycG9vbC8ke3Byb3BzLnVzZXJQb29sSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHVzZXJwb29sIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRVc2VycG9vbEFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBVc2VycG9vbEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSB1c2VycG9vbCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VVc2VycG9vbEFybihhcm46IHN0cmluZyk6IFdhZnYyVXNlcnBvb2xBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFVzZXJwb29sQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHVzZXJwb29sIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHVzZXJQb29sSWQ6IG1hdGNoLmdyb3VwcyEudXNlclBvb2xJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB2ZXJpZmllZC1hY2Nlc3MtaW5zdGFuY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgdmVyaWZpZWRBY2Nlc3NJbnN0YW5jZShcblx0XHRwcm9wczogV2FmdjJWZXJpZmllZEFjY2Vzc0luc3RhbmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZWMyOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnZlcmlmaWVkLWFjY2Vzcy1pbnN0YW5jZS8ke3Byb3BzLnZlcmlmaWVkQWNjZXNzSW5zdGFuY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgdmVyaWZpZWQtYWNjZXNzLWluc3RhbmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRWZXJpZmllZEFjY2Vzc0luc3RhbmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFZlcmlmaWVkQWNjZXNzSW5zdGFuY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgdmVyaWZpZWQtYWNjZXNzLWluc3RhbmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVZlcmlmaWVkQWNjZXNzSW5zdGFuY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IFdhZnYyVmVyaWZpZWRBY2Nlc3NJbnN0YW5jZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gVmVyaWZpZWRBY2Nlc3NJbnN0YW5jZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2ZXJpZmllZC1hY2Nlc3MtaW5zdGFuY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0dmVyaWZpZWRBY2Nlc3NJbnN0YW5jZUlkOiBtYXRjaC5ncm91cHMhLnZlcmlmaWVkQWNjZXNzSW5zdGFuY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB3ZWJhY2wgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgd2ViYWNsKHByb3BzOiBXYWZ2MldlYmFjbEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTp3YWZ2Mjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifToke3Byb3BzLnNjb3BlfS93ZWJhY2wvJHtwcm9wcy5uYW1lfS8ke3Byb3BzLmlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSB3ZWJhY2wgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFdlYmFjbEFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBXZWJhY2xBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgd2ViYWNsIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVdlYmFjbEFybihhcm46IHN0cmluZyk6IFdhZnYyV2ViYWNsQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBXZWJhY2xBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgd2ViYWNsIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNjb3BlOiBtYXRjaC5ncm91cHMhLnNjb3BlLFxuXHRcdFx0bmFtZTogbWF0Y2guZ3JvdXBzIS5uYW1lLFxuXHRcdFx0aWQ6IG1hdGNoLmdyb3VwcyEuaWQsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3Igd2FmdjIuXG4gKi9cbmV4cG9ydCBjbGFzcyBXYWZ2Mk9wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBc3NvY2lhdGVXZWJBQ0wgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVXZWJBQ0w6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXBwc3luYzpBc3NvY2lhdGVXZWJBQ0xcIixcblx0XHRcIndhZnYyOkFzc29jaWF0ZVdlYkFDTFwiLFxuXHRcdFwiZWxhc3RpY2xvYWRiYWxhbmNpbmc6Q3JlYXRlV2ViQUNMQXNzb2NpYXRpb25cIixcblx0XHRcImFwaWdhdGV3YXk6U2V0V2ViQUNMXCIsXG5cdFx0XCJhcHBzeW5jOlNldFdlYkFDTFwiLFxuXHRcdFwiZWxhc3RpY2xvYWRiYWxhbmNpbmc6U2V0V2ViQWNsXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENoZWNrQ2FwYWNpdHkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDaGVja0NhcGFjaXR5OiBzdHJpbmdbXSA9IFtcIndhZnYyOkNoZWNrQ2FwYWNpdHlcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUFQSUtleSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUFQSUtleTogc3RyaW5nW10gPSBbXCJ3YWZ2MjpDcmVhdGVBUElLZXlcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUlQU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSVBTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6Q3JlYXRlSVBTZXRcIixcblx0XHRcIndhZnYyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVJlZ2V4UGF0dGVyblNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlZ2V4UGF0dGVyblNldDogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpDcmVhdGVSZWdleFBhdHRlcm5TZXRcIixcblx0XHRcIndhZnYyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVJ1bGVHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJ1bGVHcm91cDogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpDcmVhdGVSdWxlR3JvdXBcIixcblx0XHRcIndhZnYyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVdlYkFDTCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVdlYkFDTDogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpDcmVhdGVXZWJBQ0xcIixcblx0XHRcIndhZnYyOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUFQSUtleSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUFQSUtleTogc3RyaW5nW10gPSBbXCJ3YWZ2MjpEZWxldGVBUElLZXlcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUZpcmV3YWxsTWFuYWdlclJ1bGVHcm91cHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGaXJld2FsbE1hbmFnZXJSdWxlR3JvdXBzOiBzdHJpbmdbXSA9IFtcblx0XHRcIndhZnYyOkRlbGV0ZUZpcmV3YWxsTWFuYWdlclJ1bGVHcm91cHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlSVBTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVJUFNldDogc3RyaW5nW10gPSBbXCJ3YWZ2MjpEZWxldGVJUFNldFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTG9nZ2luZ0NvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMb2dnaW5nQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpEZWxldGVMb2dnaW5nQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVQZXJtaXNzaW9uUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUGVybWlzc2lvblBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpEZWxldGVQZXJtaXNzaW9uUG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVJlZ2V4UGF0dGVyblNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlZ2V4UGF0dGVyblNldDogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpEZWxldGVSZWdleFBhdHRlcm5TZXRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUnVsZUdyb3VwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUnVsZUdyb3VwOiBzdHJpbmdbXSA9IFtcIndhZnYyOkRlbGV0ZVJ1bGVHcm91cFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlV2ViQUNMIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlV2ViQUNMOiBzdHJpbmdbXSA9IFtcIndhZnYyOkRlbGV0ZVdlYkFDTFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVBbGxNYW5hZ2VkUHJvZHVjdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFsbE1hbmFnZWRQcm9kdWN0czogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpEZXNjcmliZUFsbE1hbmFnZWRQcm9kdWN0c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZU1hbmFnZWRQcm9kdWN0c0J5VmVuZG9yIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVNYW5hZ2VkUHJvZHVjdHNCeVZlbmRvcjogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpEZXNjcmliZU1hbmFnZWRQcm9kdWN0c0J5VmVuZG9yXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlTWFuYWdlZFJ1bGVHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTWFuYWdlZFJ1bGVHcm91cDogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpEZXNjcmliZU1hbmFnZWRSdWxlR3JvdXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzYXNzb2NpYXRlV2ViQUNMIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlV2ViQUNMOiBzdHJpbmdbXSA9IFtcblx0XHRcImVsYXN0aWNsb2FkYmFsYW5jaW5nOkRlbGV0ZVdlYkFDTEFzc29jaWF0aW9uXCIsXG5cdFx0XCJhcHBzeW5jOkRpc2Fzc29jaWF0ZVdlYkFDTFwiLFxuXHRcdFwid2FmdjI6RGlzYXNzb2NpYXRlV2ViQUNMXCIsXG5cdFx0XCJhcGlnYXRld2F5OlNldFdlYkFDTFwiLFxuXHRcdFwiYXBwc3luYzpTZXRXZWJBQ0xcIixcblx0XHRcImVsYXN0aWNsb2FkYmFsYW5jaW5nOlNldFdlYkFjbFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZW5lcmF0ZU1vYmlsZVNka1JlbGVhc2VVcmwgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBHZW5lcmF0ZU1vYmlsZVNka1JlbGVhc2VVcmw6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6R2VuZXJhdGVNb2JpbGVTZGtSZWxlYXNlVXJsXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldERlY3J5cHRlZEFQSUtleSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RGVjcnlwdGVkQVBJS2V5OiBzdHJpbmdbXSA9IFtcIndhZnYyOkdldERlY3J5cHRlZEFQSUtleVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SVBTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldElQU2V0OiBzdHJpbmdbXSA9IFtcIndhZnYyOkdldElQU2V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRMb2dnaW5nQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TG9nZ2luZ0NvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6R2V0TG9nZ2luZ0NvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TWFuYWdlZFJ1bGVTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE1hbmFnZWRSdWxlU2V0OiBzdHJpbmdbXSA9IFtcIndhZnYyOkdldE1hbmFnZWRSdWxlU2V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRNb2JpbGVTZGtSZWxlYXNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRNb2JpbGVTZGtSZWxlYXNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIndhZnYyOkdldE1vYmlsZVNka1JlbGVhc2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UGVybWlzc2lvblBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UGVybWlzc2lvblBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpHZXRQZXJtaXNzaW9uUG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJhdGVCYXNlZFN0YXRlbWVudE1hbmFnZWRLZXlzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSYXRlQmFzZWRTdGF0ZW1lbnRNYW5hZ2VkS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpHZXRSYXRlQmFzZWRTdGF0ZW1lbnRNYW5hZ2VkS2V5c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWdleFBhdHRlcm5TZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlZ2V4UGF0dGVyblNldDogc3RyaW5nW10gPSBbXCJ3YWZ2MjpHZXRSZWdleFBhdHRlcm5TZXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJldmVudWVTdGF0aXN0aWNzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZXZlbnVlU3RhdGlzdGljczogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpHZXRSZXZlbnVlU3RhdGlzdGljc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZXZlbnVlU3RhdGlzdGljc1N1bW1hcnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJldmVudWVTdGF0aXN0aWNzU3VtbWFyeTogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpHZXRSZXZlbnVlU3RhdGlzdGljc1N1bW1hcnlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmV2ZW51ZVN0YXRpc3RpY3NUaW1lU2VyaWVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZXZlbnVlU3RhdGlzdGljc1RpbWVTZXJpZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6R2V0UmV2ZW51ZVN0YXRpc3RpY3NUaW1lU2VyaWVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJ1bGVHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UnVsZUdyb3VwOiBzdHJpbmdbXSA9IFtcIndhZnYyOkdldFJ1bGVHcm91cFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2FtcGxlZFJlcXVlc3RzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTYW1wbGVkUmVxdWVzdHM6IHN0cmluZ1tdID0gW1wid2FmdjI6R2V0U2FtcGxlZFJlcXVlc3RzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRUb3BQYXRoU3RhdGlzdGljc0J5VHJhZmZpYyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0VG9wUGF0aFN0YXRpc3RpY3NCeVRyYWZmaWM6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6R2V0VG9wUGF0aFN0YXRpc3RpY3NCeVRyYWZmaWNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0V2ViQUNMIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRXZWJBQ0w6IHN0cmluZ1tdID0gW1wid2FmdjI6R2V0V2ViQUNMXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRXZWJBQ0xGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0V2ViQUNMRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWxhc3RpY2xvYWRiYWxhbmNpbmc6R2V0TG9hZEJhbGFuY2VyV2ViQUNMXCIsXG5cdFx0XCJhcHBzeW5jOkdldFdlYkFDTEZvclJlc291cmNlXCIsXG5cdFx0XCJ3YWZ2MjpHZXRXZWJBQ0xGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QVBJS2V5cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBUElLZXlzOiBzdHJpbmdbXSA9IFtcIndhZnYyOkxpc3RBUElLZXlzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cFZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEF2YWlsYWJsZU1hbmFnZWRSdWxlR3JvdXBWZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpMaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cFZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBdmFpbGFibGVNYW5hZ2VkUnVsZUdyb3VwcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBdmFpbGFibGVNYW5hZ2VkUnVsZUdyb3Vwczogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpMaXN0QXZhaWxhYmxlTWFuYWdlZFJ1bGVHcm91cHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdElQU2V0cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJUFNldHM6IHN0cmluZ1tdID0gW1wid2FmdjI6TGlzdElQU2V0c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdExvZ2dpbmdDb25maWd1cmF0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMb2dnaW5nQ29uZmlndXJhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6TGlzdExvZ2dpbmdDb25maWd1cmF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TWFuYWdlZFJ1bGVTZXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1hbmFnZWRSdWxlU2V0czogc3RyaW5nW10gPSBbXCJ3YWZ2MjpMaXN0TWFuYWdlZFJ1bGVTZXRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TW9iaWxlU2RrUmVsZWFzZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TW9iaWxlU2RrUmVsZWFzZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6TGlzdE1vYmlsZVNka1JlbGVhc2VzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSZWdleFBhdHRlcm5TZXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlZ2V4UGF0dGVyblNldHM6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6TGlzdFJlZ2V4UGF0dGVyblNldHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlc291cmNlc0ZvcldlYkFDTCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZXNvdXJjZXNGb3JXZWJBQ0w6IHN0cmluZ1tdID0gW1xuXHRcdFwiZWxhc3RpY2xvYWRiYWxhbmNpbmc6RGVzY3JpYmVXZWJBQ0xBc3NvY2lhdGlvblwiLFxuXHRcdFwiYXBwc3luYzpMaXN0UmVzb3VyY2VzRm9yV2ViQUNMXCIsXG5cdFx0XCJ3YWZ2MjpMaXN0UmVzb3VyY2VzRm9yV2ViQUNMXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSdWxlR3JvdXBzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJ1bGVHcm91cHM6IHN0cmluZ1tdID0gW1wid2FmdjI6TGlzdFJ1bGVHcm91cHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTZXR0bGVtZW50UmVjb3JkcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTZXR0bGVtZW50UmVjb3Jkczogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpMaXN0U2V0dGxlbWVudFJlY29yZHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3NGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wid2FmdjI6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFdlYkFDTHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0V2ViQUNMczogc3RyaW5nW10gPSBbXCJ3YWZ2MjpMaXN0V2ViQUNMc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0TG9nZ2luZ0NvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRMb2dnaW5nQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpQdXRMb2dnaW5nQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRNYW5hZ2VkUnVsZVNldFZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0TWFuYWdlZFJ1bGVTZXRWZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpQdXRNYW5hZ2VkUnVsZVNldFZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dFBlcm1pc3Npb25Qb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRQZXJtaXNzaW9uUG9saWN5OiBzdHJpbmdbXSA9IFtcIndhZnYyOlB1dFBlcm1pc3Npb25Qb2xpY3lcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wid2FmdjI6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcIndhZnYyOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUlQU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlSVBTZXQ6IHN0cmluZ1tdID0gW1wid2FmdjI6VXBkYXRlSVBTZXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZU1hbmFnZWRSdWxlU2V0VmVyc2lvbkV4cGlyeURhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVNYW5hZ2VkUnVsZVNldFZlcnNpb25FeHBpcnlEYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcIndhZnYyOlVwZGF0ZU1hbmFnZWRSdWxlU2V0VmVyc2lvbkV4cGlyeURhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVnZXhQYXR0ZXJuU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVnZXhQYXR0ZXJuU2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcIndhZnYyOlVwZGF0ZVJlZ2V4UGF0dGVyblNldFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSdWxlR3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSdWxlR3JvdXA6IHN0cmluZ1tdID0gW1wid2FmdjI6VXBkYXRlUnVsZUdyb3VwXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVXZWJBQ0wgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVXZWJBQ0w6IHN0cmluZ1tdID0gW1wid2FmdjI6VXBkYXRlV2ViQUNMXCJdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3Igd2FmdjIuXG4gKi9cbmV4cG9ydCBjbGFzcyBXYWZ2MkNvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlSVBTZXQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSVBTZXRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJlZ2V4UGF0dGVyblNldCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWdleFBhdHRlcm5TZXRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJ1bGVHcm91cCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSdWxlR3JvdXBDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVdlYkFDTCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVXZWJBQ0xDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIERlbGV0ZUxvZ2dpbmdDb25maWd1cmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxvZ2dpbmdDb25maWd1cmF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJ3YWZ2MjpMb2dTY29wZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0SVBTZXQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SVBTZXRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldExvZ2dpbmdDb25maWd1cmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldExvZ2dpbmdDb25maWd1cmF0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJ3YWZ2MjpMb2dTY29wZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0UmF0ZUJhc2VkU3RhdGVtZW50TWFuYWdlZEtleXMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmF0ZUJhc2VkU3RhdGVtZW50TWFuYWdlZEtleXNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9XG5cdFx0W1wiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldFJlZ2V4UGF0dGVyblNldCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWdleFBhdHRlcm5TZXRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldFJ1bGVHcm91cCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSdWxlR3JvdXBDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldFdlYkFDTCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRXZWJBQ0xDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIExpc3RMb2dnaW5nQ29uZmlndXJhdGlvbnMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExvZ2dpbmdDb25maWd1cmF0aW9uc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwid2FmdjI6TG9nU2NvcGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgUHV0TG9nZ2luZ0NvbmZpZ3VyYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0TG9nZ2luZ0NvbmZpZ3VyYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcIndhZnYyOkxvZ0Rlc3RpbmF0aW9uUmVzb3VyY2VcIixcblx0XHRcIndhZnYyOkxvZ1Njb3BlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUYWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZUlQU2V0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUlQU2V0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVSZWdleFBhdHRlcm5TZXQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVnZXhQYXR0ZXJuU2V0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVSdWxlR3JvdXAgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUnVsZUdyb3VwQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVXZWJBQ0wgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlV2ViQUNMQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogd2FmdjI6TG9nRGVzdGluYXRpb25SZXNvdXJjZSAoQVJOKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTE9HX0RFU1RJTkFUSU9OX1JFU09VUkNFID0gXCJ3YWZ2MjpMb2dEZXN0aW5hdGlvblJlc291cmNlXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiB3YWZ2MjpMb2dTY29wZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTE9HX1NDT1BFID0gXCJ3YWZ2MjpMb2dTY29wZVwiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGB3YWZ2MjpMb2dEZXN0aW5hdGlvblJlc291cmNlYC5cblx0ICovXG5cdHN0YXRpYyBsb2dEZXN0aW5hdGlvblJlc291cmNlKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBBcm5FcXVhbHM6IHsgXCJ3YWZ2MjpMb2dEZXN0aW5hdGlvblJlc291cmNlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGB3YWZ2MjpMb2dTY29wZWAuXG5cdCAqL1xuXHRzdGF0aWMgbG9nU2NvcGUodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJ3YWZ2MjpMb2dTY29wZVwiOiB2YWx1ZSB9IH07XG5cdH1cbn1cbiJdfQ==
@@ -16,7 +16,7 @@ class WamActions {
16
16
  }
17
17
  exports.WamActions = WamActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- WamActions[_a] = { fqn: "@cdk_utils/iam.wam.WamActions", version: "1.28.0" };
19
+ WamActions[_a] = { fqn: "@cdk_utils/iam.wam.WamActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  WamActions.SERVICE_PREFIX = "wam";
22
22
  /** [Write] wam:AuthenticatePackager */
@@ -16,7 +16,7 @@ class WellArchitectedActions {
16
16
  }
17
17
  exports.WellArchitectedActions = WellArchitectedActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- WellArchitectedActions[_a] = { fqn: "@cdk_utils/iam.wellarchitected.WellArchitectedActions", version: "1.28.0" };
19
+ WellArchitectedActions[_a] = { fqn: "@cdk_utils/iam.wellarchitected.WellArchitectedActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  WellArchitectedActions.SERVICE_PREFIX = "wellarchitected";
22
22
  /** [Write] wellarchitected:AssociateLenses */
@@ -502,7 +502,7 @@ class WellArchitectedResources {
502
502
  }
503
503
  exports.WellArchitectedResources = WellArchitectedResources;
504
504
  _b = JSII_RTTI_SYMBOL_1;
505
- WellArchitectedResources[_b] = { fqn: "@cdk_utils/iam.wellarchitected.WellArchitectedResources", version: "1.28.0" };
505
+ WellArchitectedResources[_b] = { fqn: "@cdk_utils/iam.wellarchitected.WellArchitectedResources", version: "1.30.0" };
506
506
  /**
507
507
  * API operation to required IAM actions mapping for wellarchitected.
508
508
  */
@@ -510,7 +510,7 @@ class WellArchitectedOperations {
510
510
  }
511
511
  exports.WellArchitectedOperations = WellArchitectedOperations;
512
512
  _c = JSII_RTTI_SYMBOL_1;
513
- WellArchitectedOperations[_c] = { fqn: "@cdk_utils/iam.wellarchitected.WellArchitectedOperations", version: "1.28.0" };
513
+ WellArchitectedOperations[_c] = { fqn: "@cdk_utils/iam.wellarchitected.WellArchitectedOperations", version: "1.30.0" };
514
514
  /** IAM actions required for the AssociateLenses API call. */
515
515
  WellArchitectedOperations.AssociateLenses = [
516
516
  "wellarchitected:AssociateLenses",
@@ -887,7 +887,7 @@ class WellArchitectedConditions {
887
887
  }
888
888
  exports.WellArchitectedConditions = WellArchitectedConditions;
889
889
  _d = JSII_RTTI_SYMBOL_1;
890
- WellArchitectedConditions[_d] = { fqn: "@cdk_utils/iam.wellarchitected.WellArchitectedConditions", version: "1.28.0" };
890
+ WellArchitectedConditions[_d] = { fqn: "@cdk_utils/iam.wellarchitected.WellArchitectedConditions", version: "1.30.0" };
891
891
  /** Condition keys applicable to the AssociateLenses action. */
892
892
  WellArchitectedConditions.AssociateLensesConditionKeys = [
893
893
  "aws:ResourceTag/${TagKey}",
@@ -16,7 +16,7 @@ class WickrActions {
16
16
  }
17
17
  exports.WickrActions = WickrActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- WickrActions[_a] = { fqn: "@cdk_utils/iam.wickr.WickrActions", version: "1.28.0" };
19
+ WickrActions[_a] = { fqn: "@cdk_utils/iam.wickr.WickrActions", version: "1.30.0" };
20
20
  /** The IAM service prefix. */
21
21
  WickrActions.SERVICE_PREFIX = "wickr";
22
22
  /** [Write] wickr:BatchCreateUser */
@@ -212,7 +212,7 @@ class WickrResources {
212
212
  }
213
213
  exports.WickrResources = WickrResources;
214
214
  _b = JSII_RTTI_SYMBOL_1;
215
- WickrResources[_b] = { fqn: "@cdk_utils/iam.wickr.WickrResources", version: "1.28.0" };
215
+ WickrResources[_b] = { fqn: "@cdk_utils/iam.wickr.WickrResources", version: "1.30.0" };
216
216
  /**
217
217
  * API operation to required IAM actions mapping for wickr.
218
218
  */
@@ -220,7 +220,7 @@ class WickrOperations {
220
220
  }
221
221
  exports.WickrOperations = WickrOperations;
222
222
  _c = JSII_RTTI_SYMBOL_1;
223
- WickrOperations[_c] = { fqn: "@cdk_utils/iam.wickr.WickrOperations", version: "1.28.0" };
223
+ WickrOperations[_c] = { fqn: "@cdk_utils/iam.wickr.WickrOperations", version: "1.30.0" };
224
224
  /** IAM actions required for the BatchCreateUser API call. */
225
225
  WickrOperations.BatchCreateUser = ["wickr:BatchCreateUser"];
226
226
  /** IAM actions required for the BatchDeleteUser API call. */
@@ -363,7 +363,7 @@ class WickrConditions {
363
363
  }
364
364
  exports.WickrConditions = WickrConditions;
365
365
  _d = JSII_RTTI_SYMBOL_1;
366
- WickrConditions[_d] = { fqn: "@cdk_utils/iam.wickr.WickrConditions", version: "1.28.0" };
366
+ WickrConditions[_d] = { fqn: "@cdk_utils/iam.wickr.WickrConditions", version: "1.30.0" };
367
367
  /** Condition keys applicable to the CreateNetwork action. */
368
368
  WickrConditions.CreateNetworkConditionKeys = [
369
369
  "aws:RequestTag/${TagKey}",