@cdk_utils/iam 1.3.0 → 1.5.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 (461) hide show
  1. package/.jsii +5437 -2583
  2. package/lib/generated/services/a2c.js +1 -1
  3. package/lib/generated/services/a4b.js +3 -3
  4. package/lib/generated/services/access-analyzer.js +4 -4
  5. package/lib/generated/services/account-access.js +4 -4
  6. package/lib/generated/services/account.js +4 -4
  7. package/lib/generated/services/acm-pca.js +4 -4
  8. package/lib/generated/services/acm.js +4 -4
  9. package/lib/generated/services/aco-automation.js +4 -4
  10. package/lib/generated/services/action-recommendations.js +1 -1
  11. package/lib/generated/services/activate.js +1 -1
  12. package/lib/generated/services/agent-registry.js +4 -4
  13. package/lib/generated/services/agentaccess-mcp.js +2 -2
  14. package/lib/generated/services/aidevops.js +4 -4
  15. package/lib/generated/services/aiops.js +4 -4
  16. package/lib/generated/services/airflow-serverless.js +4 -4
  17. package/lib/generated/services/airflow.js +4 -4
  18. package/lib/generated/services/amplify.js +4 -4
  19. package/lib/generated/services/amplifybackend.js +3 -3
  20. package/lib/generated/services/amplifyuibuilder.js +4 -4
  21. package/lib/generated/services/aoss.js +4 -4
  22. package/lib/generated/services/apigateway.js +4 -4
  23. package/lib/generated/services/app-integrations.js +4 -4
  24. package/lib/generated/services/appconfig.d.ts +126 -0
  25. package/lib/generated/services/appconfig.js +157 -15
  26. package/lib/generated/services/appfabric.js +4 -4
  27. package/lib/generated/services/appflow.js +4 -4
  28. package/lib/generated/services/application-autoscaling.js +4 -4
  29. package/lib/generated/services/application-signals-mcp.js +3 -3
  30. package/lib/generated/services/application-signals.js +4 -4
  31. package/lib/generated/services/application-transformation.js +1 -1
  32. package/lib/generated/services/applicationinsights.js +3 -3
  33. package/lib/generated/services/appmesh-preview.js +2 -2
  34. package/lib/generated/services/appmesh.js +4 -4
  35. package/lib/generated/services/apprunner.js +4 -4
  36. package/lib/generated/services/appstream.js +4 -4
  37. package/lib/generated/services/appstudio.js +2 -2
  38. package/lib/generated/services/appsync.js +4 -4
  39. package/lib/generated/services/apptest.js +3 -3
  40. package/lib/generated/services/aps.js +4 -4
  41. package/lib/generated/services/arc-region-switch.js +4 -4
  42. package/lib/generated/services/arc-zonal-shift.js +4 -4
  43. package/lib/generated/services/arsenal.js +1 -1
  44. package/lib/generated/services/artifact.js +4 -4
  45. package/lib/generated/services/athena.js +4 -4
  46. package/lib/generated/services/auditmanager.js +4 -4
  47. package/lib/generated/services/autoscaling-plans.js +2 -2
  48. package/lib/generated/services/autoscaling.js +4 -4
  49. package/lib/generated/services/aws-external-anthropic.js +3 -3
  50. package/lib/generated/services/aws-marketplace-management.js +1 -1
  51. package/lib/generated/services/aws-marketplace.js +4 -4
  52. package/lib/generated/services/aws-portal.js +1 -1
  53. package/lib/generated/services/awsconnector.js +1 -1
  54. package/lib/generated/services/b2bi.js +4 -4
  55. package/lib/generated/services/backup-gateway.js +4 -4
  56. package/lib/generated/services/backup-search.js +4 -4
  57. package/lib/generated/services/backup-storage.js +1 -1
  58. package/lib/generated/services/backup.js +4 -4
  59. package/lib/generated/services/batch.js +4 -4
  60. package/lib/generated/services/bcm-dashboards.js +4 -4
  61. package/lib/generated/services/bcm-data-exports.js +4 -4
  62. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  63. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  64. package/lib/generated/services/bedrock-agentcore.js +4 -4
  65. package/lib/generated/services/bedrock-mantle.js +3 -3
  66. package/lib/generated/services/bedrock-websearch.js +2 -2
  67. package/lib/generated/services/bedrock.d.ts +65 -0
  68. package/lib/generated/services/bedrock.js +75 -5
  69. package/lib/generated/services/billing.js +4 -4
  70. package/lib/generated/services/billingconductor.js +4 -4
  71. package/lib/generated/services/braket.js +4 -4
  72. package/lib/generated/services/budgets.js +4 -4
  73. package/lib/generated/services/bugbust.js +3 -3
  74. package/lib/generated/services/cases.js +4 -4
  75. package/lib/generated/services/cassandra.js +4 -4
  76. package/lib/generated/services/ce.js +4 -4
  77. package/lib/generated/services/chatbot.js +4 -4
  78. package/lib/generated/services/chime.js +4 -4
  79. package/lib/generated/services/cleanrooms-ml.js +4 -4
  80. package/lib/generated/services/cleanrooms.js +4 -4
  81. package/lib/generated/services/cloud9.js +4 -4
  82. package/lib/generated/services/clouddirectory.js +3 -3
  83. package/lib/generated/services/cloudformation.js +4 -4
  84. package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
  85. package/lib/generated/services/cloudfront.js +4 -4
  86. package/lib/generated/services/cloudhsm.js +4 -4
  87. package/lib/generated/services/cloudsearch.js +3 -3
  88. package/lib/generated/services/cloudshell.js +3 -3
  89. package/lib/generated/services/cloudtrail-data.js +4 -4
  90. package/lib/generated/services/cloudtrail.js +4 -4
  91. package/lib/generated/services/cloudwatch.js +4 -4
  92. package/lib/generated/services/codeartifact.js +4 -4
  93. package/lib/generated/services/codebuild.js +4 -4
  94. package/lib/generated/services/codecatalyst.js +4 -4
  95. package/lib/generated/services/codecommit.js +4 -4
  96. package/lib/generated/services/codeconnections.js +4 -4
  97. package/lib/generated/services/codedeploy-commands-secure.js +1 -1
  98. package/lib/generated/services/codedeploy.js +4 -4
  99. package/lib/generated/services/codeguru-profiler.js +4 -4
  100. package/lib/generated/services/codeguru-reviewer.js +4 -4
  101. package/lib/generated/services/codeguru-security.js +4 -4
  102. package/lib/generated/services/codeguru.js +1 -1
  103. package/lib/generated/services/codepipeline.js +4 -4
  104. package/lib/generated/services/codestar-connections.js +4 -4
  105. package/lib/generated/services/codestar-notifications.js +6 -5
  106. package/lib/generated/services/codestar.js +3 -3
  107. package/lib/generated/services/codewhisperer.js +3 -3
  108. package/lib/generated/services/cognito-identity.js +4 -4
  109. package/lib/generated/services/cognito-idp.js +4 -4
  110. package/lib/generated/services/cognito-sync.js +3 -3
  111. package/lib/generated/services/comprehend.js +4 -4
  112. package/lib/generated/services/comprehendmedical.js +3 -3
  113. package/lib/generated/services/compute-optimizer.js +3 -3
  114. package/lib/generated/services/config.js +4 -4
  115. package/lib/generated/services/connect-campaigns.js +4 -4
  116. package/lib/generated/services/connect.d.ts +10 -0
  117. package/lib/generated/services/connect.js +15 -5
  118. package/lib/generated/services/consoleapp.js +2 -2
  119. package/lib/generated/services/consolidatedbilling.js +1 -1
  120. package/lib/generated/services/controlcatalog.js +3 -3
  121. package/lib/generated/services/controltower.js +4 -4
  122. package/lib/generated/services/cost-optimization-hub.js +2 -2
  123. package/lib/generated/services/cur.js +4 -4
  124. package/lib/generated/services/customer-verification.js +1 -1
  125. package/lib/generated/services/databrew.js +4 -4
  126. package/lib/generated/services/dataexchange.js +4 -4
  127. package/lib/generated/services/datapipeline.js +4 -4
  128. package/lib/generated/services/datasync.js +4 -4
  129. package/lib/generated/services/datazone.js +4 -4
  130. package/lib/generated/services/dax.js +4 -4
  131. package/lib/generated/services/dbqms.js +1 -1
  132. package/lib/generated/services/deadline.js +4 -4
  133. package/lib/generated/services/detective.js +4 -4
  134. package/lib/generated/services/devicefarm.js +4 -4
  135. package/lib/generated/services/devops-guru.js +4 -4
  136. package/lib/generated/services/directconnect.js +4 -4
  137. package/lib/generated/services/discovery.js +3 -3
  138. package/lib/generated/services/dlm.js +4 -4
  139. package/lib/generated/services/dms.js +4 -4
  140. package/lib/generated/services/docdb-elastic.js +4 -4
  141. package/lib/generated/services/drs.d.ts +162 -0
  142. package/lib/generated/services/drs.js +183 -5
  143. package/lib/generated/services/ds-data.js +4 -4
  144. package/lib/generated/services/ds.js +4 -4
  145. package/lib/generated/services/dsql.js +4 -4
  146. package/lib/generated/services/dynamodb.js +4 -4
  147. package/lib/generated/services/ebs.js +4 -4
  148. package/lib/generated/services/ec2-instance-connect.js +4 -4
  149. package/lib/generated/services/ec2.js +4 -4
  150. package/lib/generated/services/ec2messages.js +2 -2
  151. package/lib/generated/services/ecr-public.js +4 -4
  152. package/lib/generated/services/ecr.js +4 -4
  153. package/lib/generated/services/ecs-mcp.js +1 -1
  154. package/lib/generated/services/ecs.js +4 -4
  155. package/lib/generated/services/eks-auth.js +4 -4
  156. package/lib/generated/services/eks-mcp.js +1 -1
  157. package/lib/generated/services/eks.js +4 -4
  158. package/lib/generated/services/elasticache.js +4 -4
  159. package/lib/generated/services/elasticbeanstalk.js +4 -4
  160. package/lib/generated/services/elasticfilesystem.js +4 -4
  161. package/lib/generated/services/elasticloadbalancing.js +4 -4
  162. package/lib/generated/services/elasticmapreduce.js +4 -4
  163. package/lib/generated/services/elastictranscoder.js +2 -2
  164. package/lib/generated/services/elemental-activations.js +1 -1
  165. package/lib/generated/services/elemental-appliances-software.js +2 -2
  166. package/lib/generated/services/elemental-inference.js +4 -4
  167. package/lib/generated/services/elemental-support-cases.js +3 -3
  168. package/lib/generated/services/elemental-support-content.js +1 -1
  169. package/lib/generated/services/emr-containers.js +4 -4
  170. package/lib/generated/services/emr-serverless.js +4 -4
  171. package/lib/generated/services/entityresolution.js +4 -4
  172. package/lib/generated/services/es.js +4 -4
  173. package/lib/generated/services/events.js +4 -4
  174. package/lib/generated/services/eventsbilltoaws.js +3 -3
  175. package/lib/generated/services/evidently.js +3 -3
  176. package/lib/generated/services/evs.js +4 -4
  177. package/lib/generated/services/execute-api.js +4 -4
  178. package/lib/generated/services/finops-agent.js +1 -1
  179. package/lib/generated/services/finspace-api.js +3 -3
  180. package/lib/generated/services/finspace.js +4 -4
  181. package/lib/generated/services/firehose.js +4 -4
  182. package/lib/generated/services/fis.js +4 -4
  183. package/lib/generated/services/fms.js +4 -4
  184. package/lib/generated/services/forecast.js +4 -4
  185. package/lib/generated/services/frauddetector.js +4 -4
  186. package/lib/generated/services/freertos.js +3 -3
  187. package/lib/generated/services/freetier.js +2 -2
  188. package/lib/generated/services/fsx.js +4 -4
  189. package/lib/generated/services/gamelift.js +4 -4
  190. package/lib/generated/services/gameliftstreams.js +4 -4
  191. package/lib/generated/services/geo-maps.js +3 -3
  192. package/lib/generated/services/geo-places.js +3 -3
  193. package/lib/generated/services/geo-routes.js +3 -3
  194. package/lib/generated/services/geo.js +4 -4
  195. package/lib/generated/services/glacier.js +4 -4
  196. package/lib/generated/services/globalaccelerator.js +4 -4
  197. package/lib/generated/services/glue.js +4 -4
  198. package/lib/generated/services/grafana.js +4 -4
  199. package/lib/generated/services/greengrass.js +6 -9
  200. package/lib/generated/services/groundstation.js +4 -4
  201. package/lib/generated/services/groundtruthlabeling.js +1 -1
  202. package/lib/generated/services/guardduty.js +4 -4
  203. package/lib/generated/services/health-agent.js +4 -4
  204. package/lib/generated/services/health.js +4 -4
  205. package/lib/generated/services/healthlake.js +4 -4
  206. package/lib/generated/services/honeycode.js +2 -2
  207. package/lib/generated/services/iam.js +4 -4
  208. package/lib/generated/services/identity-sync.js +2 -2
  209. package/lib/generated/services/identitystore-auth.js +1 -1
  210. package/lib/generated/services/identitystore.js +4 -4
  211. package/lib/generated/services/imagebuilder.js +4 -4
  212. package/lib/generated/services/importexport.js +2 -2
  213. package/lib/generated/services/inspector-scan.js +2 -2
  214. package/lib/generated/services/inspector.js +2 -2
  215. package/lib/generated/services/inspector2-telemetry.js +1 -1
  216. package/lib/generated/services/inspector2.js +4 -4
  217. package/lib/generated/services/interconnect.js +4 -4
  218. package/lib/generated/services/internetmonitor.js +4 -4
  219. package/lib/generated/services/invoicing.js +4 -4
  220. package/lib/generated/services/iot-device-tester.js +1 -1
  221. package/lib/generated/services/iot.js +4 -4
  222. package/lib/generated/services/iotanalytics.js +3 -3
  223. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  224. package/lib/generated/services/iotevents.js +3 -3
  225. package/lib/generated/services/iotfleethub.js +3 -3
  226. package/lib/generated/services/iotfleetwise.js +4 -4
  227. package/lib/generated/services/iotjobsdata.js +4 -4
  228. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  229. package/lib/generated/services/iotsitewise.js +4 -4
  230. package/lib/generated/services/iottwinmaker.js +4 -4
  231. package/lib/generated/services/iotwireless.js +4 -4
  232. package/lib/generated/services/iq-permission.js +2 -2
  233. package/lib/generated/services/iq.js +2 -2
  234. package/lib/generated/services/ivs.js +4 -4
  235. package/lib/generated/services/ivschat.js +4 -4
  236. package/lib/generated/services/kafka-cluster.js +3 -3
  237. package/lib/generated/services/kafka.js +4 -4
  238. package/lib/generated/services/kafkaconnect.js +4 -4
  239. package/lib/generated/services/kendra-ranking.js +4 -4
  240. package/lib/generated/services/kendra.js +4 -4
  241. package/lib/generated/services/kinesis.js +4 -4
  242. package/lib/generated/services/kinesisanalytics.js +4 -4
  243. package/lib/generated/services/kinesisvideo.js +4 -4
  244. package/lib/generated/services/kms.js +4 -4
  245. package/lib/generated/services/lakeformation.js +3 -3
  246. package/lib/generated/services/lambda.js +4 -4
  247. package/lib/generated/services/launchwizard.js +4 -4
  248. package/lib/generated/services/lex.js +4 -4
  249. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  250. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  251. package/lib/generated/services/license-manager.js +4 -4
  252. package/lib/generated/services/lightsail.js +4 -4
  253. package/lib/generated/services/logs.js +4 -4
  254. package/lib/generated/services/lookoutequipment.js +4 -4
  255. package/lib/generated/services/lookoutmetrics.js +3 -3
  256. package/lib/generated/services/lookoutvision.js +3 -3
  257. package/lib/generated/services/m2.js +4 -4
  258. package/lib/generated/services/machinelearning.js +3 -3
  259. package/lib/generated/services/macie2.js +4 -4
  260. package/lib/generated/services/managedblockchain-query.js +2 -2
  261. package/lib/generated/services/managedblockchain.js +4 -4
  262. package/lib/generated/services/mapcredits.js +2 -2
  263. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  264. package/lib/generated/services/mechanicalturk.js +2 -2
  265. package/lib/generated/services/mediaconnect.js +4 -4
  266. package/lib/generated/services/mediaconvert.js +4 -4
  267. package/lib/generated/services/mediaimport.js +1 -1
  268. package/lib/generated/services/medialive.js +4 -4
  269. package/lib/generated/services/mediapackage-vod.js +4 -4
  270. package/lib/generated/services/mediapackage.js +4 -4
  271. package/lib/generated/services/mediapackagev2.js +4 -4
  272. package/lib/generated/services/mediastore.js +4 -4
  273. package/lib/generated/services/mediatailor.js +4 -4
  274. package/lib/generated/services/medical-imaging.js +4 -4
  275. package/lib/generated/services/memorydb.js +4 -4
  276. package/lib/generated/services/mgh.js +4 -4
  277. package/lib/generated/services/mgn.js +4 -4
  278. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  279. package/lib/generated/services/migrationhub-strategy.js +2 -2
  280. package/lib/generated/services/mobileanalytics.js +1 -1
  281. package/lib/generated/services/mobiletargeting.js +4 -4
  282. package/lib/generated/services/monitron.js +3 -3
  283. package/lib/generated/services/mpa.js +4 -4
  284. package/lib/generated/services/mq.js +4 -4
  285. package/lib/generated/services/neptune-db.js +4 -4
  286. package/lib/generated/services/neptune-graph.js +4 -4
  287. package/lib/generated/services/network-firewall.js +4 -4
  288. package/lib/generated/services/network-security-director.js +1 -1
  289. package/lib/generated/services/networkflowmonitor.js +4 -4
  290. package/lib/generated/services/networkmanager-chat.js +1 -1
  291. package/lib/generated/services/networkmanager.js +4 -4
  292. package/lib/generated/services/networkmonitor.js +4 -4
  293. package/lib/generated/services/nimble.js +3 -3
  294. package/lib/generated/services/notifications-contacts.js +4 -4
  295. package/lib/generated/services/notifications.js +4 -4
  296. package/lib/generated/services/nova-act.js +3 -3
  297. package/lib/generated/services/oam.js +4 -4
  298. package/lib/generated/services/observabilityadmin.js +4 -4
  299. package/lib/generated/services/odb.js +4 -4
  300. package/lib/generated/services/omics.js +4 -4
  301. package/lib/generated/services/one.js +3 -3
  302. package/lib/generated/services/opensearch.js +3 -3
  303. package/lib/generated/services/opsworks-cm.js +2 -2
  304. package/lib/generated/services/opsworks.js +2 -2
  305. package/lib/generated/services/organizations.js +4 -4
  306. package/lib/generated/services/osis.js +4 -4
  307. package/lib/generated/services/outposts.js +4 -4
  308. package/lib/generated/services/panorama.js +3 -3
  309. package/lib/generated/services/partnercentral-account-management.js +2 -2
  310. package/lib/generated/services/partnercentral.js +4 -4
  311. package/lib/generated/services/payment-cryptography.js +4 -4
  312. package/lib/generated/services/payments.js +3 -3
  313. package/lib/generated/services/pca-connector-ad.js +4 -4
  314. package/lib/generated/services/pca-connector-scep.js +4 -4
  315. package/lib/generated/services/pcs.js +4 -4
  316. package/lib/generated/services/personalize.js +5 -6
  317. package/lib/generated/services/pi.js +4 -4
  318. package/lib/generated/services/pipes.js +4 -4
  319. package/lib/generated/services/polly.js +3 -3
  320. package/lib/generated/services/pricing.js +2 -2
  321. package/lib/generated/services/pricingplanmanager.js +3 -3
  322. package/lib/generated/services/private-networks.js +3 -3
  323. package/lib/generated/services/profile.js +4 -4
  324. package/lib/generated/services/proton.js +4 -4
  325. package/lib/generated/services/purchase-orders.js +3 -3
  326. package/lib/generated/services/q.js +3 -3
  327. package/lib/generated/services/qapps.js +4 -4
  328. package/lib/generated/services/qbusiness.js +4 -4
  329. package/lib/generated/services/qdeveloper.js +3 -3
  330. package/lib/generated/services/qldb.js +3 -3
  331. package/lib/generated/services/quicksight.js +4 -4
  332. package/lib/generated/services/ram.js +4 -4
  333. package/lib/generated/services/rbin.js +4 -4
  334. package/lib/generated/services/rds-data.js +4 -4
  335. package/lib/generated/services/rds-db.js +2 -2
  336. package/lib/generated/services/rds.js +4 -4
  337. package/lib/generated/services/redshift-data.js +4 -4
  338. package/lib/generated/services/redshift-serverless.js +4 -4
  339. package/lib/generated/services/redshift.js +4 -4
  340. package/lib/generated/services/refactor-spaces.js +4 -4
  341. package/lib/generated/services/rekognition.js +4 -4
  342. package/lib/generated/services/repostspace.js +4 -4
  343. package/lib/generated/services/researchstudio.js +1 -1
  344. package/lib/generated/services/resiliencehub.js +4 -4
  345. package/lib/generated/services/resource-explorer-2.js +4 -4
  346. package/lib/generated/services/resource-explorer.js +1 -1
  347. package/lib/generated/services/resource-groups.js +4 -4
  348. package/lib/generated/services/rhelkb.js +1 -1
  349. package/lib/generated/services/robomaker.js +3 -3
  350. package/lib/generated/services/rolesanywhere.js +4 -4
  351. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  352. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  353. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  354. package/lib/generated/services/route53.js +4 -4
  355. package/lib/generated/services/route53domains.js +2 -2
  356. package/lib/generated/services/route53globalresolver.js +4 -4
  357. package/lib/generated/services/route53profiles.js +4 -4
  358. package/lib/generated/services/route53resolver.js +4 -4
  359. package/lib/generated/services/rtbfabric.js +4 -4
  360. package/lib/generated/services/rum.js +4 -4
  361. package/lib/generated/services/s3-object-lambda.js +3 -3
  362. package/lib/generated/services/s3-outposts.js +4 -4
  363. package/lib/generated/services/s3.js +4 -4
  364. package/lib/generated/services/s3express.js +3 -3
  365. package/lib/generated/services/s3files.js +4 -4
  366. package/lib/generated/services/s3tables.js +4 -4
  367. package/lib/generated/services/s3vectors.js +4 -4
  368. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  369. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  370. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  371. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  372. package/lib/generated/services/sagemaker.js +4 -4
  373. package/lib/generated/services/savingsplans.js +4 -4
  374. package/lib/generated/services/scheduler.js +4 -4
  375. package/lib/generated/services/schemas.js +4 -4
  376. package/lib/generated/services/scn.js +4 -4
  377. package/lib/generated/services/sdb.js +3 -3
  378. package/lib/generated/services/secretsmanager.js +4 -4
  379. package/lib/generated/services/security-ir.js +4 -4
  380. package/lib/generated/services/securityagent.js +4 -4
  381. package/lib/generated/services/securityhub.js +4 -4
  382. package/lib/generated/services/securitylake.js +4 -4
  383. package/lib/generated/services/serverlessrepo.js +4 -4
  384. package/lib/generated/services/servicecatalog.js +4 -4
  385. package/lib/generated/services/servicediscovery.js +4 -4
  386. package/lib/generated/services/serviceextract.js +1 -1
  387. package/lib/generated/services/servicequotas.js +4 -4
  388. package/lib/generated/services/ses.js +4 -4
  389. package/lib/generated/services/shield.js +4 -4
  390. package/lib/generated/services/signer.js +4 -4
  391. package/lib/generated/services/signin.js +4 -4
  392. package/lib/generated/services/simspaceweaver.js +3 -3
  393. package/lib/generated/services/sms-voice.js +4 -4
  394. package/lib/generated/services/sms.js +1 -1
  395. package/lib/generated/services/snow-device-management.js +4 -4
  396. package/lib/generated/services/snowball.js +2 -2
  397. package/lib/generated/services/sns.js +6 -5
  398. package/lib/generated/services/social-messaging.js +4 -4
  399. package/lib/generated/services/sqlworkbench.js +3 -3
  400. package/lib/generated/services/sqs.js +4 -4
  401. package/lib/generated/services/ssm-contacts.js +4 -4
  402. package/lib/generated/services/ssm-guiconnect.js +2 -2
  403. package/lib/generated/services/ssm-incidents.js +4 -4
  404. package/lib/generated/services/ssm-quicksetup.js +4 -4
  405. package/lib/generated/services/ssm-sap.js +4 -4
  406. package/lib/generated/services/ssm.js +4 -4
  407. package/lib/generated/services/ssmmessages.js +2 -2
  408. package/lib/generated/services/sso-directory.js +1 -1
  409. package/lib/generated/services/sso-oauth.js +3 -3
  410. package/lib/generated/services/sso.js +4 -4
  411. package/lib/generated/services/states.js +4 -4
  412. package/lib/generated/services/storagegateway.js +4 -4
  413. package/lib/generated/services/sts.js +4 -4
  414. package/lib/generated/services/support-console.js +1 -1
  415. package/lib/generated/services/support.js +2 -2
  416. package/lib/generated/services/supportapp.js +2 -2
  417. package/lib/generated/services/supportauthz.js +4 -4
  418. package/lib/generated/services/supportplans.js +1 -1
  419. package/lib/generated/services/sustainability.js +2 -2
  420. package/lib/generated/services/swf.js +4 -4
  421. package/lib/generated/services/synthetics.js +7 -13
  422. package/lib/generated/services/tag.js +2 -2
  423. package/lib/generated/services/tax.js +2 -2
  424. package/lib/generated/services/textract.js +4 -4
  425. package/lib/generated/services/thinclient.js +4 -4
  426. package/lib/generated/services/timestream-influxdb.js +4 -4
  427. package/lib/generated/services/timestream.js +4 -4
  428. package/lib/generated/services/tiros.js +1 -1
  429. package/lib/generated/services/tnb.js +4 -4
  430. package/lib/generated/services/transcribe.js +4 -4
  431. package/lib/generated/services/transfer.js +4 -4
  432. package/lib/generated/services/transform-custom.js +3 -3
  433. package/lib/generated/services/transform.js +3 -3
  434. package/lib/generated/services/translate.js +4 -4
  435. package/lib/generated/services/trustedadvisor.js +3 -3
  436. package/lib/generated/services/ts.js +3 -3
  437. package/lib/generated/services/user-subscriptions.js +2 -2
  438. package/lib/generated/services/uxc.js +2 -2
  439. package/lib/generated/services/vendor-insights.js +3 -3
  440. package/lib/generated/services/verified-access.js +1 -1
  441. package/lib/generated/services/verifiedpermissions.js +4 -4
  442. package/lib/generated/services/voiceid.js +4 -4
  443. package/lib/generated/services/vpc-lattice-svcs.js +3 -3
  444. package/lib/generated/services/vpc-lattice.js +4 -4
  445. package/lib/generated/services/vpce.js +2 -2
  446. package/lib/generated/services/waf-regional.js +4 -4
  447. package/lib/generated/services/waf.js +4 -4
  448. package/lib/generated/services/wafv2.js +4 -4
  449. package/lib/generated/services/wam.js +1 -1
  450. package/lib/generated/services/wellarchitected.js +4 -4
  451. package/lib/generated/services/wickr.js +4 -4
  452. package/lib/generated/services/wisdom.js +4 -4
  453. package/lib/generated/services/workdocs.js +3 -3
  454. package/lib/generated/services/worklink.js +3 -3
  455. package/lib/generated/services/workmail.js +4 -4
  456. package/lib/generated/services/workmailmessageflow.js +3 -3
  457. package/lib/generated/services/workspaces-instances.js +4 -4
  458. package/lib/generated/services/workspaces-web.js +4 -4
  459. package/lib/generated/services/workspaces.js +4 -4
  460. package/lib/generated/services/xray.js +4 -4
  461. package/package.json +1 -1
@@ -16,7 +16,7 @@ class DRSActions {
16
16
  }
17
17
  exports.DRSActions = DRSActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- DRSActions[_a] = { fqn: "@cdk_utils/iam.drs.DRSActions", version: "1.3.0" };
19
+ DRSActions[_a] = { fqn: "@cdk_utils/iam.drs.DRSActions", version: "1.5.0" };
20
20
  /** The IAM service prefix. */
21
21
  DRSActions.SERVICE_PREFIX = "drs";
22
22
  /** [Write] drs:AssociateFailbackClientToRecoveryInstanceForDrs */
@@ -27,6 +27,8 @@ DRSActions.AssociateSourceNetworkStack = "drs:AssociateSourceNetworkStack";
27
27
  DRSActions.BatchCreateVolumeSnapshotGroupForDrs = "drs:BatchCreateVolumeSnapshotGroupForDrs";
28
28
  /** [Write] drs:BatchDeleteSnapshotRequestForDrs */
29
29
  DRSActions.BatchDeleteSnapshotRequestForDrs = "drs:BatchDeleteSnapshotRequestForDrs";
30
+ /** [Write] drs:CancelRecoveryPlanExecution */
31
+ DRSActions.CancelRecoveryPlanExecution = "drs:CancelRecoveryPlanExecution";
30
32
  /** [Write] drs:CreateConvertedSnapshotForDrs */
31
33
  DRSActions.CreateConvertedSnapshotForDrs = "drs:CreateConvertedSnapshotForDrs";
32
34
  /** [Write] drs:CreateExtendedSourceServer */
@@ -35,6 +37,10 @@ DRSActions.CreateExtendedSourceServer = "drs:CreateExtendedSourceServer";
35
37
  DRSActions.CreateLaunchConfigurationTemplate = "drs:CreateLaunchConfigurationTemplate";
36
38
  /** [Write] drs:CreateRecoveryInstanceForDrs */
37
39
  DRSActions.CreateRecoveryInstanceForDrs = "drs:CreateRecoveryInstanceForDrs";
40
+ /** [Write] drs:CreateRecoveryPlan */
41
+ DRSActions.CreateRecoveryPlan = "drs:CreateRecoveryPlan";
42
+ /** [Write] drs:CreateRecoveryPlanStep */
43
+ DRSActions.CreateRecoveryPlanStep = "drs:CreateRecoveryPlanStep";
38
44
  /** [Write] drs:CreateReplicationConfigurationTemplate */
39
45
  DRSActions.CreateReplicationConfigurationTemplate = "drs:CreateReplicationConfigurationTemplate";
40
46
  /** [Write] drs:CreateSourceNetwork */
@@ -49,6 +55,12 @@ DRSActions.DeleteLaunchAction = "drs:DeleteLaunchAction";
49
55
  DRSActions.DeleteLaunchConfigurationTemplate = "drs:DeleteLaunchConfigurationTemplate";
50
56
  /** [Write] drs:DeleteRecoveryInstance */
51
57
  DRSActions.DeleteRecoveryInstance = "drs:DeleteRecoveryInstance";
58
+ /** [Write] drs:DeleteRecoveryPlan */
59
+ DRSActions.DeleteRecoveryPlan = "drs:DeleteRecoveryPlan";
60
+ /** [Write] drs:DeleteRecoveryPlanExecution */
61
+ DRSActions.DeleteRecoveryPlanExecution = "drs:DeleteRecoveryPlanExecution";
62
+ /** [Write] drs:DeleteRecoveryPlanStep */
63
+ DRSActions.DeleteRecoveryPlanStep = "drs:DeleteRecoveryPlanStep";
52
64
  /** [Write] drs:DeleteReplicationConfigurationTemplate */
53
65
  DRSActions.DeleteReplicationConfigurationTemplate = "drs:DeleteReplicationConfigurationTemplate";
54
66
  /** [Write] drs:DeleteSourceNetwork */
@@ -103,6 +115,14 @@ DRSActions.actionGetFailbackLaunchRequestedForDrs = "drs:GetFailbackLaunchReques
103
115
  DRSActions.actionGetFailbackReplicationConfiguration = "drs:GetFailbackReplicationConfiguration";
104
116
  /** [Read] drs:GetLaunchConfiguration */
105
117
  DRSActions.actionGetLaunchConfiguration = "drs:GetLaunchConfiguration";
118
+ /** [Read] drs:GetRecoveryPlan */
119
+ DRSActions.actionGetRecoveryPlan = "drs:GetRecoveryPlan";
120
+ /** [Read] drs:GetRecoveryPlanExecution */
121
+ DRSActions.actionGetRecoveryPlanExecution = "drs:GetRecoveryPlanExecution";
122
+ /** [Read] drs:GetRecoveryPlanExecutionStep */
123
+ DRSActions.actionGetRecoveryPlanExecutionStep = "drs:GetRecoveryPlanExecutionStep";
124
+ /** [Read] drs:GetRecoveryPlanStep */
125
+ DRSActions.actionGetRecoveryPlanStep = "drs:GetRecoveryPlanStep";
106
126
  /** [Read] drs:GetReplicationConfiguration */
107
127
  DRSActions.actionGetReplicationConfiguration = "drs:GetReplicationConfiguration";
108
128
  /** [Read] drs:GetSuggestedFailbackClientDeviceMappingForDrs */
@@ -115,6 +135,14 @@ DRSActions.IssueAgentCertificateForDrs = "drs:IssueAgentCertificateForDrs";
115
135
  DRSActions.ListExtensibleSourceServers = "drs:ListExtensibleSourceServers";
116
136
  /** [Read] drs:ListLaunchActions */
117
137
  DRSActions.ListLaunchActions = "drs:ListLaunchActions";
138
+ /** [Read] drs:ListRecoveryPlanExecutionSteps */
139
+ DRSActions.ListRecoveryPlanExecutionSteps = "drs:ListRecoveryPlanExecutionSteps";
140
+ /** [Read] drs:ListRecoveryPlanExecutions */
141
+ DRSActions.ListRecoveryPlanExecutions = "drs:ListRecoveryPlanExecutions";
142
+ /** [Read] drs:ListRecoveryPlanSteps */
143
+ DRSActions.ListRecoveryPlanSteps = "drs:ListRecoveryPlanSteps";
144
+ /** [Read] drs:ListRecoveryPlans */
145
+ DRSActions.ListRecoveryPlans = "drs:ListRecoveryPlans";
118
146
  /** [Read] drs:ListStagingAccounts */
119
147
  DRSActions.ListStagingAccounts = "drs:ListStagingAccounts";
120
148
  /** [Read] drs:ListTagsForResource */
@@ -135,8 +163,12 @@ DRSActions.NotifyReplicationServerAuthenticationForDrs = "drs:NotifyReplicationS
135
163
  DRSActions.NotifyVolumeEventForDrs = "drs:NotifyVolumeEventForDrs";
136
164
  /** [Write] drs:PutLaunchAction */
137
165
  DRSActions.PutLaunchAction = "drs:PutLaunchAction";
166
+ /** [Write] drs:ReorderRecoveryPlanSteps */
167
+ DRSActions.ReorderRecoveryPlanSteps = "drs:ReorderRecoveryPlanSteps";
138
168
  /** [Write] drs:RetryDataReplication */
139
169
  DRSActions.RetryDataReplication = "drs:RetryDataReplication";
170
+ /** [Write] drs:RetryRecoveryPlanExecutionStep */
171
+ DRSActions.RetryRecoveryPlanExecutionStep = "drs:RetryRecoveryPlanExecutionStep";
140
172
  /** [Write] drs:ReverseReplication */
141
173
  DRSActions.ReverseReplication = "drs:ReverseReplication";
142
174
  /** [Write] drs:SendAgentLogsForDrs */
@@ -155,6 +187,8 @@ DRSActions.SendVolumeStatsForDrs = "drs:SendVolumeStatsForDrs";
155
187
  DRSActions.StartFailbackLaunch = "drs:StartFailbackLaunch";
156
188
  /** [Write] drs:StartRecovery */
157
189
  DRSActions.StartRecovery = "drs:StartRecovery";
190
+ /** [Write] drs:StartRecoveryPlanExecution */
191
+ DRSActions.StartRecoveryPlanExecution = "drs:StartRecoveryPlanExecution";
158
192
  /** [Write] drs:StartReplication */
159
193
  DRSActions.StartReplication = "drs:StartReplication";
160
194
  /** [Write] drs:StartSourceNetworkRecovery */
@@ -193,6 +227,12 @@ DRSActions.UpdateFailbackReplicationConfiguration = "drs:UpdateFailbackReplicati
193
227
  DRSActions.UpdateLaunchConfiguration = "drs:UpdateLaunchConfiguration";
194
228
  /** [Write] drs:UpdateLaunchConfigurationTemplate */
195
229
  DRSActions.UpdateLaunchConfigurationTemplate = "drs:UpdateLaunchConfigurationTemplate";
230
+ /** [Write] drs:UpdateRecoveryPlan */
231
+ DRSActions.UpdateRecoveryPlan = "drs:UpdateRecoveryPlan";
232
+ /** [Write] drs:UpdateRecoveryPlanExecutionStep */
233
+ DRSActions.UpdateRecoveryPlanExecutionStep = "drs:UpdateRecoveryPlanExecutionStep";
234
+ /** [Write] drs:UpdateRecoveryPlanStep */
235
+ DRSActions.UpdateRecoveryPlanStep = "drs:UpdateRecoveryPlanStep";
196
236
  /** [Write] drs:UpdateReplicationCertificateForDrs */
197
237
  DRSActions.UpdateReplicationCertificateForDrs = "drs:UpdateReplicationCertificateForDrs";
198
238
  /** [Write] drs:UpdateReplicationConfiguration */
@@ -222,10 +262,18 @@ DRSActions.AllReadActions = [
222
262
  DRSActions.actionGetFailbackLaunchRequestedForDrs,
223
263
  DRSActions.actionGetFailbackReplicationConfiguration,
224
264
  DRSActions.actionGetLaunchConfiguration,
265
+ DRSActions.actionGetRecoveryPlan,
266
+ DRSActions.actionGetRecoveryPlanExecution,
267
+ DRSActions.actionGetRecoveryPlanExecutionStep,
268
+ DRSActions.actionGetRecoveryPlanStep,
225
269
  DRSActions.actionGetReplicationConfiguration,
226
270
  DRSActions.actionGetSuggestedFailbackClientDeviceMappingForDrs,
227
271
  DRSActions.ListExtensibleSourceServers,
228
272
  DRSActions.ListLaunchActions,
273
+ DRSActions.ListRecoveryPlanExecutionSteps,
274
+ DRSActions.ListRecoveryPlanExecutions,
275
+ DRSActions.ListRecoveryPlanSteps,
276
+ DRSActions.ListRecoveryPlans,
229
277
  DRSActions.ListStagingAccounts,
230
278
  DRSActions.ListTagsForResource,
231
279
  ];
@@ -235,10 +283,13 @@ DRSActions.AllWriteActions = [
235
283
  DRSActions.AssociateSourceNetworkStack,
236
284
  DRSActions.BatchCreateVolumeSnapshotGroupForDrs,
237
285
  DRSActions.BatchDeleteSnapshotRequestForDrs,
286
+ DRSActions.CancelRecoveryPlanExecution,
238
287
  DRSActions.CreateConvertedSnapshotForDrs,
239
288
  DRSActions.CreateExtendedSourceServer,
240
289
  DRSActions.CreateLaunchConfigurationTemplate,
241
290
  DRSActions.CreateRecoveryInstanceForDrs,
291
+ DRSActions.CreateRecoveryPlan,
292
+ DRSActions.CreateRecoveryPlanStep,
242
293
  DRSActions.CreateReplicationConfigurationTemplate,
243
294
  DRSActions.CreateSourceNetwork,
244
295
  DRSActions.CreateSourceServerForDrs,
@@ -246,6 +297,9 @@ DRSActions.AllWriteActions = [
246
297
  DRSActions.DeleteLaunchAction,
247
298
  DRSActions.DeleteLaunchConfigurationTemplate,
248
299
  DRSActions.DeleteRecoveryInstance,
300
+ DRSActions.DeleteRecoveryPlan,
301
+ DRSActions.DeleteRecoveryPlanExecution,
302
+ DRSActions.DeleteRecoveryPlanStep,
249
303
  DRSActions.DeleteReplicationConfigurationTemplate,
250
304
  DRSActions.DeleteSourceNetwork,
251
305
  DRSActions.DeleteSourceServer,
@@ -262,7 +316,9 @@ DRSActions.AllWriteActions = [
262
316
  DRSActions.NotifyReplicationServerAuthenticationForDrs,
263
317
  DRSActions.NotifyVolumeEventForDrs,
264
318
  DRSActions.PutLaunchAction,
319
+ DRSActions.ReorderRecoveryPlanSteps,
265
320
  DRSActions.RetryDataReplication,
321
+ DRSActions.RetryRecoveryPlanExecutionStep,
266
322
  DRSActions.ReverseReplication,
267
323
  DRSActions.SendAgentLogsForDrs,
268
324
  DRSActions.SendAgentMetricsForDrs,
@@ -272,6 +328,7 @@ DRSActions.AllWriteActions = [
272
328
  DRSActions.SendVolumeStatsForDrs,
273
329
  DRSActions.StartFailbackLaunch,
274
330
  DRSActions.StartRecovery,
331
+ DRSActions.StartRecoveryPlanExecution,
275
332
  DRSActions.StartReplication,
276
333
  DRSActions.StartSourceNetworkRecovery,
277
334
  DRSActions.StartSourceNetworkReplication,
@@ -289,6 +346,9 @@ DRSActions.AllWriteActions = [
289
346
  DRSActions.UpdateFailbackReplicationConfiguration,
290
347
  DRSActions.UpdateLaunchConfiguration,
291
348
  DRSActions.UpdateLaunchConfigurationTemplate,
349
+ DRSActions.UpdateRecoveryPlan,
350
+ DRSActions.UpdateRecoveryPlanExecutionStep,
351
+ DRSActions.UpdateRecoveryPlanStep,
292
352
  DRSActions.UpdateReplicationCertificateForDrs,
293
353
  DRSActions.UpdateReplicationConfiguration,
294
354
  DRSActions.UpdateReplicationConfigurationTemplate,
@@ -305,6 +365,8 @@ DRSActions.AllTaggingActions = [
305
365
  const JobResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):job\/(?<jobId>[^:/?]+)$/;
306
366
  const LaunchConfigurationTemplateResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):launch-configuration-template\/(?<launchConfigurationTemplateId>[^:/?]+)$/;
307
367
  const RecoveryInstanceResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):recovery-instance\/(?<recoveryInstanceId>[^:/?]+)$/;
368
+ const RecoveryPlanExecutionResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):recovery-plan-execution\/(?<recoveryPlanExecutionId>[^:/?]+)$/;
369
+ const RecoveryPlanResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):recovery-plan\/(?<recoveryPlanId>[^:/?]+)$/;
308
370
  const ReplicationConfigurationTemplateResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):replication-configuration-template\/(?<replicationConfigurationTemplateId>[^:/?]+)$/;
309
371
  const SourceNetworkResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):source-network\/(?<sourceNetworkId>[^:/?]+)$/;
310
372
  const SourceServerResourceArnRegex = /^arn:(?<partition>[^:]+):drs:(?<region>[^:]*):(?<account>[^:]*):source-server\/(?<sourceServerId>[^:/?]+)$/;
@@ -396,6 +458,62 @@ class DRSResources {
396
458
  recoveryInstanceId: match.groups.recoveryInstanceId,
397
459
  };
398
460
  }
461
+ /**
462
+ * Builds an ARN for the RecoveryPlanExecutionResource resource.
463
+ */
464
+ static recoveryPlanExecutionResource(props) {
465
+ return `arn:${props.partition ?? "aws"}:drs:${props.region ?? "*"}:${props.account ?? "*"}:recovery-plan-execution/${props.recoveryPlanExecutionId}`;
466
+ }
467
+ /**
468
+ * Validates whether a string is a valid ARN for the RecoveryPlanExecutionResource resource.
469
+ */
470
+ static isValidRecoveryPlanExecutionResourceArn(arn) {
471
+ return RecoveryPlanExecutionResourceArnRegex.test(arn);
472
+ }
473
+ /**
474
+ * Parses a RecoveryPlanExecutionResource ARN into its components.
475
+ * @throws Error if the ARN does not match the expected format.
476
+ */
477
+ static parseRecoveryPlanExecutionResourceArn(arn) {
478
+ const match = RecoveryPlanExecutionResourceArnRegex.exec(arn);
479
+ if (!match?.groups) {
480
+ throw new Error(`Invalid RecoveryPlanExecutionResource ARN: ${arn}`);
481
+ }
482
+ return {
483
+ partition: match.groups.partition,
484
+ region: match.groups.region,
485
+ account: match.groups.account,
486
+ recoveryPlanExecutionId: match.groups.recoveryPlanExecutionId,
487
+ };
488
+ }
489
+ /**
490
+ * Builds an ARN for the RecoveryPlanResource resource.
491
+ */
492
+ static recoveryPlanResource(props) {
493
+ return `arn:${props.partition ?? "aws"}:drs:${props.region ?? "*"}:${props.account ?? "*"}:recovery-plan/${props.recoveryPlanId}`;
494
+ }
495
+ /**
496
+ * Validates whether a string is a valid ARN for the RecoveryPlanResource resource.
497
+ */
498
+ static isValidRecoveryPlanResourceArn(arn) {
499
+ return RecoveryPlanResourceArnRegex.test(arn);
500
+ }
501
+ /**
502
+ * Parses a RecoveryPlanResource ARN into its components.
503
+ * @throws Error if the ARN does not match the expected format.
504
+ */
505
+ static parseRecoveryPlanResourceArn(arn) {
506
+ const match = RecoveryPlanResourceArnRegex.exec(arn);
507
+ if (!match?.groups) {
508
+ throw new Error(`Invalid RecoveryPlanResource ARN: ${arn}`);
509
+ }
510
+ return {
511
+ partition: match.groups.partition,
512
+ region: match.groups.region,
513
+ account: match.groups.account,
514
+ recoveryPlanId: match.groups.recoveryPlanId,
515
+ };
516
+ }
399
517
  /**
400
518
  * Builds an ARN for the ReplicationConfigurationTemplateResource resource.
401
519
  */
@@ -483,7 +601,7 @@ class DRSResources {
483
601
  }
484
602
  exports.DRSResources = DRSResources;
485
603
  _b = JSII_RTTI_SYMBOL_1;
486
- DRSResources[_b] = { fqn: "@cdk_utils/iam.drs.DRSResources", version: "1.3.0" };
604
+ DRSResources[_b] = { fqn: "@cdk_utils/iam.drs.DRSResources", version: "1.5.0" };
487
605
  /**
488
606
  * API operation to required IAM actions mapping for drs.
489
607
  */
@@ -491,11 +609,13 @@ class DRSOperations {
491
609
  }
492
610
  exports.DRSOperations = DRSOperations;
493
611
  _c = JSII_RTTI_SYMBOL_1;
494
- DRSOperations[_c] = { fqn: "@cdk_utils/iam.drs.DRSOperations", version: "1.3.0" };
612
+ DRSOperations[_c] = { fqn: "@cdk_utils/iam.drs.DRSOperations", version: "1.5.0" };
495
613
  /** IAM actions required for the AssociateSourceNetworkStack API call. */
496
614
  DRSOperations.AssociateSourceNetworkStack = [
497
615
  "drs:AssociateSourceNetworkStack",
498
616
  ];
617
+ /** IAM actions required for the CancelRecoveryPlanExecution API call. */
618
+ DRSOperations.CancelRecoveryPlanExecution = [];
499
619
  /** IAM actions required for the CreateExtendedSourceServer API call. */
500
620
  DRSOperations.CreateExtendedSourceServer = [
501
621
  "drs:CreateExtendedSourceServer",
@@ -506,6 +626,12 @@ DRSOperations.CreateLaunchConfigurationTemplate = [
506
626
  "drs:CreateLaunchConfigurationTemplate",
507
627
  "drs:TagResource",
508
628
  ];
629
+ /** IAM actions required for the CreateRecoveryPlan API call. */
630
+ DRSOperations.CreateRecoveryPlan = ["drs:CreateRecoveryPlan"];
631
+ /** IAM actions required for the CreateRecoveryPlanStep API call. */
632
+ DRSOperations.CreateRecoveryPlanStep = [
633
+ "drs:CreateRecoveryPlanStep",
634
+ ];
509
635
  /** IAM actions required for the CreateReplicationConfigurationTemplate API call. */
510
636
  DRSOperations.CreateReplicationConfigurationTemplate = [
511
637
  "drs:CreateReplicationConfigurationTemplate",
@@ -528,6 +654,14 @@ DRSOperations.DeleteLaunchConfigurationTemplate = [
528
654
  DRSOperations.DeleteRecoveryInstance = [
529
655
  "drs:DeleteRecoveryInstance",
530
656
  ];
657
+ /** IAM actions required for the DeleteRecoveryPlan API call. */
658
+ DRSOperations.DeleteRecoveryPlan = ["drs:DeleteRecoveryPlan"];
659
+ /** IAM actions required for the DeleteRecoveryPlanExecution API call. */
660
+ DRSOperations.DeleteRecoveryPlanExecution = [];
661
+ /** IAM actions required for the DeleteRecoveryPlanStep API call. */
662
+ DRSOperations.DeleteRecoveryPlanStep = [
663
+ "drs:DeleteRecoveryPlanStep",
664
+ ];
531
665
  /** IAM actions required for the DeleteReplicationConfigurationTemplate API call. */
532
666
  DRSOperations.DeleteReplicationConfigurationTemplate = [
533
667
  "drs:DeleteReplicationConfigurationTemplate",
@@ -584,6 +718,14 @@ DRSOperations.opGetFailbackReplicationConfiguration = [
584
718
  DRSOperations.opGetLaunchConfiguration = [
585
719
  "drs:GetLaunchConfiguration",
586
720
  ];
721
+ /** IAM actions required for the GetRecoveryPlan API call. */
722
+ DRSOperations.opGetRecoveryPlan = ["drs:GetRecoveryPlan"];
723
+ /** IAM actions required for the GetRecoveryPlanExecution API call. */
724
+ DRSOperations.opGetRecoveryPlanExecution = [];
725
+ /** IAM actions required for the GetRecoveryPlanExecutionStep API call. */
726
+ DRSOperations.opGetRecoveryPlanExecutionStep = [];
727
+ /** IAM actions required for the GetRecoveryPlanStep API call. */
728
+ DRSOperations.opGetRecoveryPlanStep = ["drs:GetRecoveryPlanStep"];
587
729
  /** IAM actions required for the GetReplicationConfiguration API call. */
588
730
  DRSOperations.opGetReplicationConfiguration = [
589
731
  "drs:GetReplicationConfiguration",
@@ -596,14 +738,30 @@ DRSOperations.ListExtensibleSourceServers = [
596
738
  ];
597
739
  /** IAM actions required for the ListLaunchActions API call. */
598
740
  DRSOperations.ListLaunchActions = ["drs:ListLaunchActions"];
741
+ /** IAM actions required for the ListRecoveryPlanExecutionSteps API call. */
742
+ DRSOperations.ListRecoveryPlanExecutionSteps = [];
743
+ /** IAM actions required for the ListRecoveryPlanExecutions API call. */
744
+ DRSOperations.ListRecoveryPlanExecutions = [];
745
+ /** IAM actions required for the ListRecoveryPlanSteps API call. */
746
+ DRSOperations.ListRecoveryPlanSteps = [
747
+ "drs:ListRecoveryPlanSteps",
748
+ ];
749
+ /** IAM actions required for the ListRecoveryPlans API call. */
750
+ DRSOperations.ListRecoveryPlans = ["drs:ListRecoveryPlans"];
599
751
  /** IAM actions required for the ListStagingAccounts API call. */
600
752
  DRSOperations.ListStagingAccounts = ["drs:ListStagingAccounts"];
601
753
  /** IAM actions required for the ListTagsForResource API call. */
602
754
  DRSOperations.ListTagsForResource = ["drs:ListTagsForResource"];
603
755
  /** IAM actions required for the PutLaunchAction API call. */
604
756
  DRSOperations.PutLaunchAction = ["drs:PutLaunchAction"];
757
+ /** IAM actions required for the ReorderRecoveryPlanSteps API call. */
758
+ DRSOperations.ReorderRecoveryPlanSteps = [
759
+ "drs:ReorderRecoveryPlanSteps",
760
+ ];
605
761
  /** IAM actions required for the RetryDataReplication API call. */
606
762
  DRSOperations.RetryDataReplication = ["drs:RetryDataReplication"];
763
+ /** IAM actions required for the RetryRecoveryPlanExecutionStep API call. */
764
+ DRSOperations.RetryRecoveryPlanExecutionStep = [];
607
765
  /** IAM actions required for the ReverseReplication API call. */
608
766
  DRSOperations.ReverseReplication = ["drs:ReverseReplication"];
609
767
  /** IAM actions required for the StartFailbackLaunch API call. */
@@ -613,6 +771,8 @@ DRSOperations.StartRecovery = [
613
771
  "drs:StartRecovery",
614
772
  "drs:TagResource",
615
773
  ];
774
+ /** IAM actions required for the StartRecoveryPlanExecution API call. */
775
+ DRSOperations.StartRecoveryPlanExecution = [];
616
776
  /** IAM actions required for the StartReplication API call. */
617
777
  DRSOperations.StartReplication = ["drs:StartReplication"];
618
778
  /** IAM actions required for the StartSourceNetworkRecovery API call. */
@@ -652,6 +812,14 @@ DRSOperations.UpdateLaunchConfiguration = [
652
812
  DRSOperations.UpdateLaunchConfigurationTemplate = [
653
813
  "drs:UpdateLaunchConfigurationTemplate",
654
814
  ];
815
+ /** IAM actions required for the UpdateRecoveryPlan API call. */
816
+ DRSOperations.UpdateRecoveryPlan = ["drs:UpdateRecoveryPlan"];
817
+ /** IAM actions required for the UpdateRecoveryPlanExecutionStep API call. */
818
+ DRSOperations.UpdateRecoveryPlanExecutionStep = [];
819
+ /** IAM actions required for the UpdateRecoveryPlanStep API call. */
820
+ DRSOperations.UpdateRecoveryPlanStep = [
821
+ "drs:UpdateRecoveryPlanStep",
822
+ ];
655
823
  /** IAM actions required for the UpdateReplicationConfiguration API call. */
656
824
  DRSOperations.UpdateReplicationConfiguration = [
657
825
  "drs:UpdateReplicationConfiguration",
@@ -697,7 +865,7 @@ class DRSConditions {
697
865
  }
698
866
  exports.DRSConditions = DRSConditions;
699
867
  _d = JSII_RTTI_SYMBOL_1;
700
- DRSConditions[_d] = { fqn: "@cdk_utils/iam.drs.DRSConditions", version: "1.3.0" };
868
+ DRSConditions[_d] = { fqn: "@cdk_utils/iam.drs.DRSConditions", version: "1.5.0" };
701
869
  /** Condition keys applicable to the AssociateSourceNetworkStack action. */
702
870
  DRSConditions.AssociateSourceNetworkStackConditionKeys = [
703
871
  "aws:RequestTag/${TagKey}",
@@ -723,6 +891,11 @@ DRSConditions.CreateRecoveryInstanceForDrsConditionKeys = [
723
891
  "aws:RequestTag/${TagKey}",
724
892
  "aws:TagKeys",
725
893
  ];
894
+ /** Condition keys applicable to the CreateRecoveryPlan action. */
895
+ DRSConditions.CreateRecoveryPlanConditionKeys = [
896
+ "aws:RequestTag/${TagKey}",
897
+ "aws:TagKeys",
898
+ ];
726
899
  /** Condition keys applicable to the CreateReplicationConfigurationTemplate action. */
727
900
  DRSConditions.CreateReplicationConfigurationTemplateConditionKeys = ["aws:RequestTag/${TagKey}", "aws:TagKeys"];
728
901
  /** Condition keys applicable to the CreateSourceNetwork action. */
@@ -755,6 +928,11 @@ DRSConditions.StartRecoveryConditionKeys = [
755
928
  "aws:RequestTag/${TagKey}",
756
929
  "aws:TagKeys",
757
930
  ];
931
+ /** Condition keys applicable to the StartRecoveryPlanExecution action. */
932
+ DRSConditions.StartRecoveryPlanExecutionConditionKeys = [
933
+ "aws:RequestTag/${TagKey}",
934
+ "aws:TagKeys",
935
+ ];
758
936
  /** Condition keys applicable to the StartSourceNetworkRecovery action. */
759
937
  DRSConditions.StartSourceNetworkRecoveryConditionKeys = [
760
938
  "aws:RequestTag/${TagKey}",
@@ -783,4 +961,4 @@ DRSConditions.AWS_TAG_KEYS = "aws:TagKeys";
783
961
  DRSConditions.CREATE_ACTION = "drs:CreateAction";
784
962
  /** Condition key: drs:EC2InstanceARN (ARN) */
785
963
  DRSConditions.EC2_INSTANCE_ARN = "drs:EC2InstanceARN";
786
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9kcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCwwQ0FBMEM7QUFDMUMsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsVUFBVTs7QUFBdkIsZ0NBK1VDOzs7QUE5VUEsOEJBQThCO0FBQ2QseUJBQWMsR0FBRyxLQUFLLENBQUM7QUFFdkMsa0VBQWtFO0FBQ2xELDBEQUErQyxHQUM5RCxxREFBcUQsQ0FBQztBQUN2RCw4Q0FBOEM7QUFDOUIsc0NBQTJCLEdBQzFDLGlDQUFpQyxDQUFDO0FBQ25DLHVEQUF1RDtBQUN2QywrQ0FBb0MsR0FDbkQsMENBQTBDLENBQUM7QUFDNUMsbURBQW1EO0FBQ25DLDJDQUFnQyxHQUMvQyxzQ0FBc0MsQ0FBQztBQUN4QyxnREFBZ0Q7QUFDaEMsd0NBQTZCLEdBQzVDLG1DQUFtQyxDQUFDO0FBQ3JDLDZDQUE2QztBQUM3QixxQ0FBMEIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM5RSxvREFBb0Q7QUFDcEMsNENBQWlDLEdBQ2hELHVDQUF1QyxDQUFDO0FBQ3pDLCtDQUErQztBQUMvQix1Q0FBNEIsR0FDM0Msa0NBQWtDLENBQUM7QUFDcEMseURBQXlEO0FBQ3pDLGlEQUFzQyxHQUNyRCw0Q0FBNEMsQ0FBQztBQUM5QyxzQ0FBc0M7QUFDdEIsOEJBQW1CLEdBQUcseUJBQXlCLENBQUM7QUFDaEUsMkNBQTJDO0FBQzNCLG1DQUF3QixHQUFHLDhCQUE4QixDQUFDO0FBQzFFLDRCQUE0QjtBQUNaLG9CQUFTLEdBQUcsZUFBZSxDQUFDO0FBQzVDLHFDQUFxQztBQUNyQiw2QkFBa0IsR0FBRyx3QkFBd0IsQ0FBQztBQUM5RCxvREFBb0Q7QUFDcEMsNENBQWlDLEdBQ2hELHVDQUF1QyxDQUFDO0FBQ3pDLHlD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REFBdUQ7QUFDdkMsNkJBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCx3REFBd0Q7QUFDeEMsOEJBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDL0QsaURBQWlEO0FBQ2pDLDBCQUFZLEdBQUcsYUFBYSxDQUFDO0FBQzdDLCtDQUErQztBQUMvQiwyQkFBYSxHQUFHLGtCQUFrQixDQUFDO0FBQ25ELDhDQUE4QztBQUM5Qiw4QkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL2Rycy5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgZHJzIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEUlNBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwiZHJzXCI7XG5cblx0LyoqIFtXcml0ZV0gZHJzOkFzc29jaWF0ZUZhaWxiYWNrQ2xpZW50VG9SZWNvdmVyeUluc3RhbmNlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVGYWlsYmFja0NsaWVudFRvUmVjb3ZlcnlJbnN0YW5jZUZvckRycyA9XG5cdFx0XCJkcnM6QXNzb2NpYXRlRmFpbGJhY2tDbGllbnRUb1JlY292ZXJ5SW5zdGFuY2VGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFjayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrID1cblx0XHRcImRyczpBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2tcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkJhdGNoQ3JlYXRlVm9sdW1lU25hcHNob3RHcm91cEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQmF0Y2hDcmVhdGVWb2x1bWVTbmFwc2hvdEdyb3VwRm9yRHJzID1cblx0XHRcImRyczpCYXRjaENyZWF0ZVZvbHVtZVNuYXBzaG90R3JvdXBGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkJhdGNoRGVsZXRlU25hcHNob3RSZXF1ZXN0Rm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaERlbGV0ZVNuYXBzaG90UmVxdWVzdEZvckRycyA9XG5cdFx0XCJkcnM6QmF0Y2hEZWxldGVTbmFwc2hvdFJlcXVlc3RGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZUNvbnZlcnRlZFNuYXBzaG90Rm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRycyA9XG5cdFx0XCJkcnM6Q3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlciA9IFwiZHJzOkNyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6Q3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzID1cblx0XHRcImRyczpDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOkNyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVTb3VyY2VOZXR3b3JrICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb3VyY2VOZXR3b3JrID0gXCJkcnM6Q3JlYXRlU291cmNlTmV0d29ya1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Q3JlYXRlU291cmNlU2VydmVyRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnMgPSBcImRyczpDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZUpvYiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSm9iID0gXCJkcnM6RGVsZXRlSm9iXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVMYXVuY2hBY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxhdW5jaEFjdGlvbiA9IFwiZHJzOkRlbGV0ZUxhdW5jaEFjdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOkRlbGV0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlUmVjb3ZlcnlJbnN0YW5jZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb3ZlcnlJbnN0YW5jZSA9IFwiZHJzOkRlbGV0ZVJlY292ZXJ5SW5zdGFuY2VcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6RGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZVNvdXJjZU5ldHdvcmsgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZU5ldHdvcmsgPSBcImRyczpEZWxldGVTb3VyY2VOZXR3b3JrXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVTb3VyY2VTZXJ2ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZVNlcnZlciA9IFwiZHJzOkRlbGV0ZVNvdXJjZVNlcnZlclwiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZUpvYkxvZ0l0ZW1zICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUpvYkxvZ0l0ZW1zID0gXCJkcnM6RGVzY3JpYmVKb2JMb2dJdGVtc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZUpvYnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlSm9icyA9IFwiZHJzOkRlc2NyaWJlSm9ic1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlcyA9XG5cdFx0XCJkcnM6RGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXMgPSBcImRyczpEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHMgPSBcImRyczpEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlcyA9XG5cdFx0XCJkcnM6RGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVSZXBsaWNhdGlvblNlcnZlckFzc29jaWF0aW9uc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZXBsaWNhdGlvblNlcnZlckFzc29jaWF0aW9uc0ZvckRycyA9XG5cdFx0XCJkcnM6RGVzY3JpYmVSZXBsaWNhdGlvblNlcnZlckFzc29jaWF0aW9uc0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVNuYXBzaG90UmVxdWVzdHNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU25hcHNob3RSZXF1ZXN0c0ZvckRycyA9XG5cdFx0XCJkcnM6RGVzY3JpYmVTbmFwc2hvdFJlcXVlc3RzRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlU291cmNlTmV0d29ya3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU291cmNlTmV0d29ya3MgPSBcImRyczpEZXNjcmliZVNvdXJjZU5ldHdvcmtzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlU291cmNlU2VydmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTb3VyY2VTZXJ2ZXJzID0gXCJkcnM6RGVzY3JpYmVTb3VyY2VTZXJ2ZXJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEaXNjb25uZWN0UmVjb3ZlcnlJbnN0YW5jZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2UgPSBcImRyczpEaXNjb25uZWN0UmVjb3ZlcnlJbnN0YW5jZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGlzY29ubmVjdFNvdXJjZVNlcnZlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzY29ubmVjdFNvdXJjZVNlcnZlciA9IFwiZHJzOkRpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXJcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlID1cblx0XHRcImRyczpFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGVcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRDb21tYW5kRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudENvbW1hbmRGb3JEcnMgPSBcImRyczpHZXRBZ2VudENvbW1hbmRGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRDb25maXJtZWRSZXN1bWVJbmZvRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudENvbmZpcm1lZFJlc3VtZUluZm9Gb3JEcnMgPVxuXHRcdFwiZHJzOkdldEFnZW50Q29uZmlybWVkUmVzdW1lSW5mb0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRBZ2VudEluc3RhbGxhdGlvbkFzc2V0c0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRJbnN0YWxsYXRpb25Bc3NldHNGb3JEcnMgPVxuXHRcdFwiZHJzOkdldEFnZW50SW5zdGFsbGF0aW9uQXNzZXRzRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRycyA9XG5cdFx0XCJkcnM6R2V0QWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRSdW50aW1lQ29uZmlndXJhdGlvbkZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRSdW50aW1lQ29uZmlndXJhdGlvbkZvckRycyA9XG5cdFx0XCJkcnM6R2V0QWdlbnRSdW50aW1lQ29uZmlndXJhdGlvbkZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRBZ2VudFNuYXBzaG90Q3JlZGl0c0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRTbmFwc2hvdENyZWRpdHNGb3JEcnMgPVxuXHRcdFwiZHJzOkdldEFnZW50U25hcHNob3RDcmVkaXRzRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldENoYW5uZWxDb21tYW5kc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q2hhbm5lbENvbW1hbmRzRm9yRHJzID1cblx0XHRcImRyczpHZXRDaGFubmVsQ29tbWFuZHNGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0RmFpbGJhY2tDb21tYW5kRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGYWlsYmFja0NvbW1hbmRGb3JEcnMgPVxuXHRcdFwiZHJzOkdldEZhaWxiYWNrQ29tbWFuZEZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRGYWlsYmFja0xhdW5jaFJlcXVlc3RlZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RmFpbGJhY2tMYXVuY2hSZXF1ZXN0ZWRGb3JEcnMgPVxuXHRcdFwiZHJzOkdldEZhaWxiYWNrTGF1bmNoUmVxdWVzdGVkRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJkcnM6R2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0TGF1bmNoQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TGF1bmNoQ29uZmlndXJhdGlvbiA9IFwiZHJzOkdldExhdW5jaENvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0UmVwbGljYXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZHJzOkdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRTdWdnZXN0ZWRGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFN1Z2dlc3RlZEZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyA9XG5cdFx0XCJkcnM6R2V0U3VnZ2VzdGVkRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpJbml0aWFsaXplU2VydmljZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW5pdGlhbGl6ZVNlcnZpY2UgPSBcImRyczpJbml0aWFsaXplU2VydmljZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6SXNzdWVBZ2VudENlcnRpZmljYXRlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBJc3N1ZUFnZW50Q2VydGlmaWNhdGVGb3JEcnMgPVxuXHRcdFwiZHJzOklzc3VlQWdlbnRDZXJ0aWZpY2F0ZUZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFeHRlbnNpYmxlU291cmNlU2VydmVycyA9XG5cdFx0XCJkcnM6TGlzdEV4dGVuc2libGVTb3VyY2VTZXJ2ZXJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RMYXVuY2hBY3Rpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TGF1bmNoQWN0aW9ucyA9IFwiZHJzOkxpc3RMYXVuY2hBY3Rpb25zXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RTdGFnaW5nQWNjb3VudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdGFnaW5nQWNjb3VudHMgPSBcImRyczpMaXN0U3RhZ2luZ0FjY291bnRzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcImRyczpMaXN0VGFnc0ZvclJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpOb3RpZnlBZ2VudEF1dGhlbnRpY2F0aW9uRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBOb3RpZnlBZ2VudEF1dGhlbnRpY2F0aW9uRm9yRHJzID1cblx0XHRcImRyczpOb3RpZnlBZ2VudEF1dGhlbnRpY2F0aW9uRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpOb3RpZnlBZ2VudENvbm5lY3RlZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5QWdlbnRDb25uZWN0ZWRGb3JEcnMgPSBcImRyczpOb3RpZnlBZ2VudENvbm5lY3RlZEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5QWdlbnREaXNjb25uZWN0ZWRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeUFnZW50RGlzY29ubmVjdGVkRm9yRHJzID1cblx0XHRcImRyczpOb3RpZnlBZ2VudERpc2Nvbm5lY3RlZEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5QWdlbnRSZXBsaWNhdGlvblByb2dyZXNzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBOb3RpZnlBZ2VudFJlcGxpY2F0aW9uUHJvZ3Jlc3NGb3JEcnMgPVxuXHRcdFwiZHJzOk5vdGlmeUFnZW50UmVwbGljYXRpb25Qcm9ncmVzc0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5Q29uc2lzdGVuY3lBdHRhaW5lZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5Q29uc2lzdGVuY3lBdHRhaW5lZEZvckRycyA9XG5cdFx0XCJkcnM6Tm90aWZ5Q29uc2lzdGVuY3lBdHRhaW5lZEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5UmVwbGljYXRpb25TZXJ2ZXJBdXRoZW50aWNhdGlvbkZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5UmVwbGljYXRpb25TZXJ2ZXJBdXRoZW50aWNhdGlvbkZvckRycyA9XG5cdFx0XCJkcnM6Tm90aWZ5UmVwbGljYXRpb25TZXJ2ZXJBdXRoZW50aWNhdGlvbkZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5Vm9sdW1lRXZlbnRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeVZvbHVtZUV2ZW50Rm9yRHJzID0gXCJkcnM6Tm90aWZ5Vm9sdW1lRXZlbnRGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlB1dExhdW5jaEFjdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0TGF1bmNoQWN0aW9uID0gXCJkcnM6UHV0TGF1bmNoQWN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpSZXRyeURhdGFSZXBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV0cnlEYXRhUmVwbGljYXRpb24gPSBcImRyczpSZXRyeURhdGFSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6UmV2ZXJzZVJlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBSZXZlcnNlUmVwbGljYXRpb24gPSBcImRyczpSZXZlcnNlUmVwbGljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlNlbmRBZ2VudExvZ3NGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRBZ2VudExvZ3NGb3JEcnMgPSBcImRyczpTZW5kQWdlbnRMb2dzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTZW5kQWdlbnRNZXRyaWNzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQWdlbnRNZXRyaWNzRm9yRHJzID0gXCJkcnM6U2VuZEFnZW50TWV0cmljc0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U2VuZENoYW5uZWxDb21tYW5kUmVzdWx0Rm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQ2hhbm5lbENvbW1hbmRSZXN1bHRGb3JEcnMgPVxuXHRcdFwiZHJzOlNlbmRDaGFubmVsQ29tbWFuZFJlc3VsdEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U2VuZENsaWVudExvZ3NGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRDbGllbnRMb2dzRm9yRHJzID0gXCJkcnM6U2VuZENsaWVudExvZ3NGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlNlbmRDbGllbnRNZXRyaWNzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQ2xpZW50TWV0cmljc0ZvckRycyA9IFwiZHJzOlNlbmRDbGllbnRNZXRyaWNzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTZW5kVm9sdW1lU3RhdHNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRWb2x1bWVTdGF0c0ZvckRycyA9IFwiZHJzOlNlbmRWb2x1bWVTdGF0c0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RhcnRGYWlsYmFja0xhdW5jaCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRGYWlsYmFja0xhdW5jaCA9IFwiZHJzOlN0YXJ0RmFpbGJhY2tMYXVuY2hcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0YXJ0UmVjb3ZlcnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb3ZlcnkgPSBcImRyczpTdGFydFJlY292ZXJ5XCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdGFydFJlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlcGxpY2F0aW9uID0gXCJkcnM6U3RhcnRSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5ID0gXCJkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnlcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0YXJ0U291cmNlTmV0d29ya1JlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiA9XG5cdFx0XCJkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVwbGljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0b3BGYWlsYmFjayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcEZhaWxiYWNrID0gXCJkcnM6U3RvcEZhaWxiYWNrXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdG9wUmVwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BSZXBsaWNhdGlvbiA9IFwiZHJzOlN0b3BSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiA9XG5cdFx0XCJkcnM6U3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvblwiO1xuXHQvKiogW1RhZ2dpbmddIGRyczpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImRyczpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlcm1pbmF0ZVJlY292ZXJ5SW5zdGFuY2VzID0gXCJkcnM6VGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXNcIjtcblx0LyoqIFtUYWdnaW5nXSBkcnM6VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwiZHJzOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZUFnZW50QmFja2xvZ0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWdlbnRCYWNrbG9nRm9yRHJzID0gXCJkcnM6VXBkYXRlQWdlbnRCYWNrbG9nRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMgPVxuXHRcdFwiZHJzOlVwZGF0ZUFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudFNvdXJjZVByb3BlcnRpZXNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFnZW50U291cmNlUHJvcGVydGllc0ZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlQWdlbnRTb3VyY2VQcm9wZXJ0aWVzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVGYWlsYmFja0NsaWVudExhc3RTZWVuRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGYWlsYmFja0NsaWVudExhc3RTZWVuRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVGYWlsYmFja0NsaWVudExhc3RTZWVuRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZHJzOlVwZGF0ZUZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uID0gXCJkcnM6VXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlUmVwbGljYXRpb25DZXJ0aWZpY2F0ZUZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVwbGljYXRpb25DZXJ0aWZpY2F0ZUZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlUmVwbGljYXRpb25DZXJ0aWZpY2F0ZUZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZHJzOlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlID1cblx0XHRcImRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVKb2JMb2dJdGVtcyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlSm9icyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlcyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVJlY292ZXJ5U25hcHNob3RzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVJlcGxpY2F0aW9uU2VydmVyQXNzb2NpYXRpb25zRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVTbmFwc2hvdFJlcXVlc3RzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVTb3VyY2VOZXR3b3Jrcyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlU291cmNlU2VydmVycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEFnZW50Q29tbWFuZEZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEFnZW50Q29uZmlybWVkUmVzdW1lSW5mb0ZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEFnZW50SW5zdGFsbGF0aW9uQXNzZXRzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0QWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRBZ2VudFJ1bnRpbWVDb25maWd1cmF0aW9uRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0QWdlbnRTbmFwc2hvdENyZWRpdHNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRDaGFubmVsQ29tbWFuZHNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRGYWlsYmFja0NvbW1hbmRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRGYWlsYmFja0xhdW5jaFJlcXVlc3RlZEZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0TGF1bmNoQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldFN1Z2dlc3RlZEZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyxcblx0XHREUlNBY3Rpb25zLkxpc3RFeHRlbnNpYmxlU291cmNlU2VydmVycyxcblx0XHREUlNBY3Rpb25zLkxpc3RMYXVuY2hBY3Rpb25zLFxuXHRcdERSU0FjdGlvbnMuTGlzdFN0YWdpbmdBY2NvdW50cyxcblx0XHREUlNBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0RFJTQWN0aW9ucy5Bc3NvY2lhdGVGYWlsYmFja0NsaWVudFRvUmVjb3ZlcnlJbnN0YW5jZUZvckRycyxcblx0XHREUlNBY3Rpb25zLkFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFjayxcblx0XHREUlNBY3Rpb25zLkJhdGNoQ3JlYXRlVm9sdW1lU25hcHNob3RHcm91cEZvckRycyxcblx0XHREUlNBY3Rpb25zLkJhdGNoRGVsZXRlU25hcHNob3RSZXF1ZXN0Rm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuQ3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlcixcblx0XHREUlNBY3Rpb25zLkNyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLkNyZWF0ZVJlY292ZXJ5SW5zdGFuY2VGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLkNyZWF0ZVNvdXJjZU5ldHdvcmssXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVKb2IsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVMYXVuY2hBY3Rpb24sXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVSZWNvdmVyeUluc3RhbmNlLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVTb3VyY2VOZXR3b3JrLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlU291cmNlU2VydmVyLFxuXHRcdERSU0FjdGlvbnMuRGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2UsXG5cdFx0RFJTQWN0aW9ucy5EaXNjb25uZWN0U291cmNlU2VydmVyLFxuXHRcdERSU0FjdGlvbnMuRXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlLFxuXHRcdERSU0FjdGlvbnMuSW5pdGlhbGl6ZVNlcnZpY2UsXG5cdFx0RFJTQWN0aW9ucy5Jc3N1ZUFnZW50Q2VydGlmaWNhdGVGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlBZ2VudEF1dGhlbnRpY2F0aW9uRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5QWdlbnRDb25uZWN0ZWRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlBZ2VudERpc2Nvbm5lY3RlZEZvckRycyxcblx0XHREUlNBY3Rpb25zLk5vdGlmeUFnZW50UmVwbGljYXRpb25Qcm9ncmVzc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLk5vdGlmeUNvbnNpc3RlbmN5QXR0YWluZWRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlSZXBsaWNhdGlvblNlcnZlckF1dGhlbnRpY2F0aW9uRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5Vm9sdW1lRXZlbnRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5QdXRMYXVuY2hBY3Rpb24sXG5cdFx0RFJTQWN0aW9ucy5SZXRyeURhdGFSZXBsaWNhdGlvbixcblx0XHREUlNBY3Rpb25zLlJldmVyc2VSZXBsaWNhdGlvbixcblx0XHREUlNBY3Rpb25zLlNlbmRBZ2VudExvZ3NGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5TZW5kQWdlbnRNZXRyaWNzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuU2VuZENoYW5uZWxDb21tYW5kUmVzdWx0Rm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuU2VuZENsaWVudExvZ3NGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5TZW5kQ2xpZW50TWV0cmljc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlNlbmRWb2x1bWVTdGF0c0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlN0YXJ0RmFpbGJhY2tMYXVuY2gsXG5cdFx0RFJTQWN0aW9ucy5TdGFydFJlY292ZXJ5LFxuXHRcdERSU0FjdGlvbnMuU3RhcnRSZXBsaWNhdGlvbixcblx0XHREUlNBY3Rpb25zLlN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5LFxuXHRcdERSU0FjdGlvbnMuU3RhcnRTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5TdG9wRmFpbGJhY2ssXG5cdFx0RFJTQWN0aW9ucy5TdG9wUmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5TdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uLFxuXHRcdERSU0FjdGlvbnMuVGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudEJhY2tsb2dGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlQWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlQWdlbnRTb3VyY2VQcm9wZXJ0aWVzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlRmFpbGJhY2tDbGllbnRMYXN0U2VlbkZvckRycyxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZVJlcGxpY2F0aW9uQ2VydGlmaWNhdGVGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0RFJTQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHREUlNBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBKb2JSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTSm9iUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgSm9iSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgSm9iUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU0pvYlJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBKb2JJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGpvYklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU0xhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBSZWNvdmVyeUluc3RhbmNlSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlY292ZXJ5SW5zdGFuY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZWNvdmVyeUluc3RhbmNlSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZWNvdmVyeUluc3RhbmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBTb3VyY2VOZXR3b3JrUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1NvdXJjZU5ldHdvcmtSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBTb3VyY2VOZXR3b3JrSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNvdXJjZU5ldHdvcmtJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFNvdXJjZU5ldHdvcmtSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTU291cmNlTmV0d29ya1Jlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTb3VyY2VOZXR3b3JrSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzb3VyY2VOZXR3b3JrSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFNvdXJjZVNlcnZlclJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBTb3VyY2VTZXJ2ZXJJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc291cmNlU2VydmVySWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBTb3VyY2VTZXJ2ZXJSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTU291cmNlU2VydmVyUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFNvdXJjZVNlcnZlcklEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc291cmNlU2VydmVySWQ6IHN0cmluZztcbn1cblxuY29uc3QgSm9iUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZHJzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6am9iXFwvKD88am9iSWQ+W146Lz9dKykkLztcbmNvbnN0IExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRyczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmxhdW5jaC1jb25maWd1cmF0aW9uLXRlbXBsYXRlXFwvKD88bGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ+W146Lz9dKykkLztcbmNvbnN0IFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpyZWNvdmVyeS1pbnN0YW5jZVxcLyg/PHJlY292ZXJ5SW5zdGFuY2VJZD5bXjovP10rKSQvO1xuY29uc3QgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpyZXBsaWNhdGlvbi1jb25maWd1cmF0aW9uLXRlbXBsYXRlXFwvKD88cmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJZD5bXjovP10rKSQvO1xuY29uc3QgU291cmNlTmV0d29ya1Jlc291cmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRyczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnNvdXJjZS1uZXR3b3JrXFwvKD88c291cmNlTmV0d29ya0lkPlteOi8/XSspJC87XG5jb25zdCBTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpzb3VyY2Utc2VydmVyXFwvKD88c291cmNlU2VydmVySWQ+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBkcnMgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgRFJTUmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBKb2JSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBqb2JSZXNvdXJjZShwcm9wczogRFJTSm9iUmVzb3VyY2VBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmpvYi8ke3Byb3BzLmpvYklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBKb2JSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSm9iUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSm9iUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgSm9iUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlSm9iUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBEUlNKb2JSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSm9iUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSm9iUmVzb3VyY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0am9iSWQ6IG1hdGNoLmdyb3VwcyEuam9iSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UoXG5cdFx0cHJvcHM6IERSU0xhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmxhdW5jaC1jb25maWd1cmF0aW9uLXRlbXBsYXRlLyR7cHJvcHMubGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0XHRgSW52YWxpZCBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk46ICR7YXJufWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRsYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJZDpcblx0XHRcdFx0bWF0Y2guZ3JvdXBzIS5sYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlKFxuXHRcdHByb3BzOiBEUlNSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06cmVjb3ZlcnktaW5zdGFuY2UvJHtwcm9wcy5yZWNvdmVyeUluc3RhbmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBEUlNSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVjb3ZlcnlJbnN0YW5jZUlkOiBtYXRjaC5ncm91cHMhLnJlY292ZXJ5SW5zdGFuY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UoXG5cdFx0cHJvcHM6IERSU1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06cmVwbGljYXRpb24tY29uZmlndXJhdGlvbi10ZW1wbGF0ZS8ke3Byb3BzLnJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YEludmFsaWQgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk46ICR7YXJufWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOlxuXHRcdFx0XHRtYXRjaC5ncm91cHMhLnJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgU291cmNlTmV0d29ya1Jlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHNvdXJjZU5ldHdvcmtSZXNvdXJjZShcblx0XHRwcm9wczogRFJTU291cmNlTmV0d29ya1Jlc291cmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnNvdXJjZS1uZXR3b3JrLyR7cHJvcHMuc291cmNlTmV0d29ya0lkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBTb3VyY2VOZXR3b3JrUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFNvdXJjZU5ldHdvcmtSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgU291cmNlTmV0d29ya1Jlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVNvdXJjZU5ldHdvcmtSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTU291cmNlTmV0d29ya1Jlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgU291cmNlTmV0d29ya1Jlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNvdXJjZU5ldHdvcmtJZDogbWF0Y2guZ3JvdXBzIS5zb3VyY2VOZXR3b3JrSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgU291cmNlU2VydmVyUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc291cmNlU2VydmVyUmVzb3VyY2UocHJvcHM6IERSU1NvdXJjZVNlcnZlclJlc291cmNlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRyczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzb3VyY2Utc2VydmVyLyR7cHJvcHMuc291cmNlU2VydmVySWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFNvdXJjZVNlcnZlclJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBTb3VyY2VTZXJ2ZXJSZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTU291cmNlU2VydmVyUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFNvdXJjZVNlcnZlclJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFNvdXJjZVNlcnZlclJlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNvdXJjZVNlcnZlcklkOiBtYXRjaC5ncm91cHMhLnNvdXJjZVNlcnZlcklkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGRycy5cbiAqL1xuZXhwb3J0IGNsYXNzIERSU09wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2sgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2s6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFja1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpDcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlclwiLFxuXHRcdFwiZHJzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6Q3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlXCIsXG5cdFx0XCJkcnM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6Q3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTb3VyY2VOZXR3b3JrIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU291cmNlTmV0d29yazogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6Q3JlYXRlU291cmNlTmV0d29ya1wiLFxuXHRcdFwiZHJzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUpvYjogc3RyaW5nW10gPSBbXCJkcnM6RGVsZXRlSm9iXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVMYXVuY2hBY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMYXVuY2hBY3Rpb246IHN0cmluZ1tdID0gW1wiZHJzOkRlbGV0ZUxhdW5jaEFjdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVjb3ZlcnlJbnN0YW5jZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5SW5zdGFuY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlbGV0ZVJlY292ZXJ5SW5zdGFuY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU291cmNlTmV0d29yayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZU5ldHdvcms6IHN0cmluZ1tdID0gW1wiZHJzOkRlbGV0ZVNvdXJjZU5ldHdvcmtcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVNvdXJjZVNlcnZlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZVNlcnZlcjogc3RyaW5nW10gPSBbXCJkcnM6RGVsZXRlU291cmNlU2VydmVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUpvYkxvZ0l0ZW1zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JMb2dJdGVtczogc3RyaW5nW10gPSBbXCJkcnM6RGVzY3JpYmVKb2JMb2dJdGVtc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVKb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JzOiBzdHJpbmdbXSA9IFtcImRyczpEZXNjcmliZUpvYnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU291cmNlTmV0d29ya3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNvdXJjZU5ldHdvcmtzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVNvdXJjZU5ldHdvcmtzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU291cmNlU2VydmVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU291cmNlU2VydmVyczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVzY3JpYmVTb3VyY2VTZXJ2ZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNjb25uZWN0U291cmNlU2VydmVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEaXNjb25uZWN0U291cmNlU2VydmVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6R2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TGF1bmNoQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TGF1bmNoQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6R2V0TGF1bmNoQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6R2V0UmVwbGljYXRpb25Db25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEluaXRpYWxpemVTZXJ2aWNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW5pdGlhbGl6ZVNlcnZpY2U6IHN0cmluZ1tdID0gW1wiZHJzOkluaXRpYWxpemVTZXJ2aWNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkxpc3RFeHRlbnNpYmxlU291cmNlU2VydmVyc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TGF1bmNoQWN0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMYXVuY2hBY3Rpb25zOiBzdHJpbmdbXSA9IFtcImRyczpMaXN0TGF1bmNoQWN0aW9uc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFN0YWdpbmdBY2NvdW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdGFnaW5nQWNjb3VudHM6IHN0cmluZ1tdID0gW1wiZHJzOkxpc3RTdGFnaW5nQWNjb3VudHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcImRyczpMaXN0VGFnc0ZvclJlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXRMYXVuY2hBY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRMYXVuY2hBY3Rpb246IHN0cmluZ1tdID0gW1wiZHJzOlB1dExhdW5jaEFjdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmV0cnlEYXRhUmVwbGljYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZXRyeURhdGFSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJkcnM6UmV0cnlEYXRhUmVwbGljYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJldmVyc2VSZXBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldmVyc2VSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJkcnM6UmV2ZXJzZVJlcGxpY2F0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydEZhaWxiYWNrTGF1bmNoIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRGYWlsYmFja0xhdW5jaDogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRSZWNvdmVyeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb3Zlcnk6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlN0YXJ0UmVjb3ZlcnlcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFJlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJkcnM6U3RhcnRSZXBsaWNhdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFNvdXJjZU5ldHdvcmtSZWNvdmVyeTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnlcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U291cmNlTmV0d29ya1JlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wRmFpbGJhY2sgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wRmFpbGJhY2s6IHN0cmluZ1tdID0gW1wiZHJzOlN0b3BGYWlsYmFja1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFJlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFJlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcImRyczpTdG9wUmVwbGljYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpTdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiZHJzOlRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlcm1pbmF0ZVJlY292ZXJ5SW5zdGFuY2VzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVbnRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJkcnM6VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGRycy5cbiAqL1xuZXhwb3J0IGNsYXNzIERSU0NvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFja0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY292ZXJ5SW5zdGFuY2VGb3JEcnNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPVxuXHRcdFtcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLCBcImF3czpUYWdLZXlzXCJdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlU291cmNlTmV0d29yayBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb3VyY2VOZXR3b3JrQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU291cmNlU2VydmVyRm9yRHJzQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBSZXZlcnNlUmVwbGljYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV2ZXJzZVJlcGxpY2F0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdGFydEZhaWxiYWNrTGF1bmNoIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0RmFpbGJhY2tMYXVuY2hDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0UmVjb3ZlcnkgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZWNvdmVyeUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnlDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJkcnM6Q3JlYXRlQWN0aW9uXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlcyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBkcnM6Q3JlYXRlQWN0aW9uIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDUkVBVEVfQUNUSU9OID0gXCJkcnM6Q3JlYXRlQWN0aW9uXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBkcnM6RUMySW5zdGFuY2VBUk4gKEFSTikgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVDMl9JTlNUQU5DRV9BUk4gPSBcImRyczpFQzJJbnN0YW5jZUFSTlwiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBkcnM6Q3JlYXRlQWN0aW9uYC5cblx0ICovXG5cdHN0YXRpYyBjcmVhdGVBY3Rpb24odmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJkcnM6Q3JlYXRlQWN0aW9uXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBkcnM6RUMySW5zdGFuY2VBUk5gLlxuXHQgKi9cblx0c3RhdGljIGVjMkluc3RhbmNlQVJOKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgQXJuRXF1YWxzOiB7IFwiZHJzOkVDMkluc3RhbmNlQVJOXCI6IHZhbHVlIH0gfTtcblx0fVxufVxuIl19
964
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9kcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCwwQ0FBMEM7QUFDMUMsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsVUFBVTs7QUFBdkIsZ0NBa1pDOzs7QUFqWkEsOEJBQThCO0FBQ2QseUJBQWMsR0FBRyxLQUFLLENBQUM7QUFFdkMsa0VBQWtFO0FBQ2xELDBEQUErQyxHQUM5RCxxREFBcUQsQ0FBQztBQUN2RCw4Q0FBOEM7QUFDOUIsc0NBQTJCLEdBQzFDLGlDQUFpQyxDQUFDO0FBQ25DLHVEQUF1RDtBQUN2QywrQ0FBb0MsR0FDbkQsMENBQTBDLENBQUM7QUFDNUMsbURBQW1EO0FBQ25DLDJDQUFnQyxHQUMvQyxzQ0FBc0MsQ0FBQztBQUN4Qyw4Q0FBOEM7QUFDOUIsc0NBQTJCLEdBQzFDLGlDQUFpQyxDQUFDO0FBQ25DLGdEQUFnRDtBQUNoQyx3Q0FBNkIsR0FDNUMsbUNBQW1DLENBQUM7QUFDckMsNkNBQTZDO0FBQzdCLHFDQUEwQixHQUFHLGdDQUFnQyxDQUFDO0FBQzlFLG9EQUFvRDtBQUNwQyw0Q0FBaUMsR0FDaEQsdUNBQXVDLENBQUM7QUFDekMsK0NBQStDO0FBQy9CLHVDQUE0QixHQUMzQyxrQ0FBa0MsQ0FBQztBQUNwQyxxQ0FBcUM7QUFDckIsNkJBQWtCLEdBQUcsd0JBQXdCLENBQUM7QUFDOUQseUNBQXlDO0FBQ3pCLGlDQUFzQixHQUFHLDRCQUE0QixDQUFDO0FBQ3RFLHlEQUF5RDtBQUN6QyxpREFBc0MsR0FDckQsNENBQTRDLENBQUM7QUFDOUMsc0NBQXNDO0FBQ3RCLDhCQUFtQixHQUFHLHlCQUF5QixDQUFDO0FBQ2hFLDJDQUEyQztBQUMzQixtQ0FBd0IsR0FBRyw4QkFBOEIsQ0FBQztBQUMxRSw0QkFBNEI7QUFDWixvQkFBUyxHQUFHLGVBQWUsQ0FBQztBQUM1QyxxQ0FBcUM7QUFDckIsNkJBQWtCLEdBQUcsd0JBQXdCLENBQUM7QUFDOUQsb0RBQW9EO0FBQ3BDLDRDQUFpQyxHQUNoRCx1Q0FBdUMsQ0FBQztBQUN6Qyx5Q0FBeUM7QUFDekIsaUNBQXNCLEdBQUcsNEJBQTRCLENBQUM7QUFDdEUscUNBQXFDO0FBQ3JCLDZCQUFrQixHQUFHLHdCQUF3QixDQUFDO0FBQzlELDhDQUE4QztBQUM5QixzQ0FBMkIsR0FDMUMsaUNBQWlDLENBQUM7QUFDbkMseUNBQXlDO0FBQ3pCLGlDQUFzQixHQUFHLDRCQUE0QixDQUFDO0FBQ3RFLHlEQUF5RDtBQUN6QyxpREFBc0MsR0FDckQsNENBQTRDLENBQUM7QUFDOUMsc0NBQXNDO0FBQ3RCLDhCQUFtQixHQUFHLHlCQUF5QixDQUFDO0FBQ2hFLHFDQUFxQztBQUNyQiw2QkFBa0IsR0FBRyx3QkFBd0IsQ0FBQztBQUM5RCxxQ0FBcUM7QUFDckIsOEJBQW1CLEdBQUcseUJBQXlCLENBQUM7QUFDaEUsOEJBQThCO0FBQ2QsdUJBQVksR0FBRyxrQkFBa0IsQ0FBQztBQUNsRCxzREFBc0Q7QUFDdEMsK0NBQW9DLEdBQ25ELDBDQUEwQyxDQUFDO0FBQzVDLDJDQUEyQztBQUMzQixvQ0FBeUIsR0FBRywrQkFBK0IsQ0FBQztBQUM1RSwyQ0FBMkM7QUFDM0Isb0NBQXlCLEdBQUcsK0JBQStCLENBQUM7QUFDNUUsMkRBQTJEO0FBQzNDLG9EQUF5QyxHQUN4RCwrQ0FBK0MsQ0FBQztBQUNqRCw2REFBNkQ7QUFDN0Msc0RBQTJDLEdBQzFELGlEQUFpRCxDQUFDO0FBQ25ELGdEQUFnRDtBQUNoQyx5Q0FBOEIsR0FDN0Msb0NBQW9DLENBQUM7QUFDdEMsd0NBQXdDO0FBQ3hCLGlDQUFzQixHQUFHLDRCQUE0QixDQUFDO0FBQ3RFLHVDQUF1QztBQUN2QixnQ0FBcUIsR0FBRywyQkFBMkIsQ0FBQztBQUNwRSw2Q0FBNkM7QUFDN0IscUNBQTBCLEdBQUcsZ0NBQWdDLENBQUM7QUFDOUUseUNBQXlDO0FBQ3pCLGlDQUFzQixHQUFHLDRCQUE0QixDQUFDO0FBQ3RFLGlEQUFpRDtBQUNqQyx5Q0FBOEIsR0FDN0Msb0NBQW9DLENBQUM7QUFDdEMsdUNBQXVDO0FBQ3ZCLHNDQUEyQixHQUFHLDJCQUEyQixDQUFDO0FBQzFFLG1EQUFtRDtBQUNuQyxrREFBdUMsR0FDdEQsdUNBQXVDLENBQUM7QUFDekMsa0RBQWtEO0FBQ2xDLGlEQUFzQyxHQUNyRCxzQ0FBc0MsQ0FBQztBQUN4QywrQ0FBK0M7QUFDL0IsOENBQW1DLEdBQ2xELG1DQUFtQyxDQUFDO0FBQ3JDLG9EQUFvRDtBQUNwQyxtREFBd0MsR0FDdkQsd0NBQXdDLENBQUM7QUFDMUMsK0NBQStDO0FBQy9CLDhDQUFtQyxHQUNsRCxtQ0FBbUMsQ0FBQztBQUNyQywwQ0FBMEM7QUFDMUIseUNBQThCLEdBQzdDLDhCQUE4QixDQUFDO0FBQ2hDLDBDQUEwQztBQUMxQix5Q0FBOEIsR0FDN0MsOEJBQThCLENBQUM7QUFDaEMsa0RBQWtEO0FBQ2xDLGlEQUFzQyxHQUNyRCxzQ0FBc0MsQ0FBQztBQUN4QyxxREFBcUQ7QUFDckMsb0RBQXlDLEdBQ3hELHlDQUF5QyxDQUFDO0FBQzNDLHdDQUF3QztBQUN4Qix1Q0FBNEIsR0FBRyw0QkFBNEIsQ0FBQztBQUM1RSxpQ0FBaUM7QUFDakIsZ0NBQXFCLEdBQUcscUJBQXFCLENBQUM7QUFDOUQsMENBQTBDO0FBQzFCLHlDQUE4QixHQUM3Qyw4QkFBOEIsQ0FBQztBQUNoQyw4Q0FBOEM7QUFDOUIsNkNBQWtDLEdBQ2pELGtDQUFrQyxDQUFDO0FBQ3BDLHFDQUFxQztBQUNyQixvQ0FBeUIsR0FBRyx5QkFBeUIsQ0FBQztBQUN0RSw2Q0FBNkM7QUFDN0IsNENBQWlDLEdBQ2hELGlDQUFpQyxDQUFDO0FBQ25DLCtEQUErRDtBQUMvQyw4REFBbUQsR0FDbEUsbURBQW1ELENBQUM7QUFDckQsb0NBQW9DO0FBQ3BCLDRCQUFpQixHQUFHLHVCQUF1QixDQUFDO0FBQzVELDhDQUE4QztBQUM5QixzQ0FBMkIsR0FDMUMsaUNBQWlDLENBQUM7QUFDbkMsNkNBQTZDO0FBQzdCLHNDQUEyQixHQUMxQyxpQ0FBaUMsQ0FBQztBQUNuQyxtQ0FBbUM7QUFDbkIsNEJBQWlCLEdBQUcsdUJBQXVCLENBQUM7QUFDNUQsZ0RBQWdEO0FBQ2hDLHlDQUE4QixHQUM3QyxvQ0FBb0MsQ0FBQztBQUN0Qyw0Q0FBNEM7QUFDNUIscUNBQTBCLEdBQUcsZ0NBQWdDLENBQUM7QUFDOUUsdUNBQXVDO0FBQ3ZCLGdDQUFxQixHQUFHLDJCQUEyQixDQUFDO0FBQ3BFLG1DQUFtQztBQUNuQiw0QkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUM1RCxxQ0FBcUM7QUFDckIsOEJBQW1CLEdBQUcseUJBQXlCLENBQUM7QUFDaEUscUNBQXFDO0FBQ3JCLDhCQUFtQixHQUFHLHlCQUF5QixDQUFDO0FBQ2hFLGtEQUFrRDtBQUNsQywwQ0FBK0IsR0FDOUMscUNBQXFDLENBQUM7QUFDdkMsNkNBQTZDO0FBQzdCLHFDQUEwQixHQUFHLGdDQUFnQyxDQUFDO0FBQzlFLGdEQUFnRDtBQUNoQyx3Q0FBNkIsR0FDNUMsbUNBQW1DLENBQUM7QUFDckMsdURBQXVEO0FBQ3ZDLCtDQUFvQyxHQUNuRCwwQ0FBMEMsQ0FBQztBQUM1QyxrREFBa0Q7QUFDbEMsMENBQStCLEdBQzlDLHFDQUFxQyxDQUFDO0FBQ3ZDLDhEQUE4RDtBQUM5QyxzREFBMkMsR0FDMUQsaURBQWlELENBQUM7QUFDbkQsMENBQTBDO0FBQzFCLGtDQUF1QixHQUFHLDZCQUE2QixDQUFDO0FBQ3hFLGtDQUFrQztBQUNsQiwwQkFBZSxHQUFHLHFCQUFxQixDQUFDO0FBQ3hELDJDQUEyQztBQUMzQixtQ0FBd0IsR0FBRyw4QkFBOEIsQ0FBQztBQUMxRSx1Q0FBdUM7QUFDdkIsK0JBQW9CLEdBQUcsMEJBQTBCLENBQUM7QUFDbEUsaURBQWlEO0FBQ2pDLHlDQUE4QixHQUM3QyxvQ0FBb0MsQ0FBQztBQUN0QyxxQ0FBcUM7QUFDckIsNkJBQWtCLEdBQUcsd0JBQXdCLENBQUM7QUFDOUQsc0NBQXNDO0FBQ3RCLDhCQUFtQixHQUFHLHlCQUF5QixDQUFDO0FBQ2hFLHlDQUF5QztBQUN6QixpQ0FBc0IsR0FBRyw0QkFBNEIsQ0FBQztBQUN0RSxpREFBaUQ7QUFDakMseUNBQThCLEdBQzdDLG9DQUFvQyxDQUFDO0FBQ3RDLHVDQUF1QztBQUN2QiwrQkFBb0IsR0FBRywwQkFBMEIsQ0FBQztBQUNsRSwwQ0FBMEM7QUFDMUIsa0NBQXVCLEdBQUcsNkJBQTZCLENBQUM7QUFDeEUsd0NBQXdDO0FBQ3hCLGdDQUFxQixHQUFHLDJCQUEyQixDQUFDO0FBQ3BFLHNDQUFzQztBQUN0Qiw4QkFBbUIsR0FBRyx5QkFBeUIsQ0FBQztBQUNoRSxnQ0FBZ0M7QUFDaEIsd0JBQWEsR0FBRyxtQkFBbUIsQ0FBQztBQUNwRCw2Q0FBNkM7QUFDN0IscUNBQTBCLEdBQUcsZ0NBQWdDLENBQUM7QUFDOUUsbUNBQW1DO0FBQ25CLDJCQUFnQixHQUFHLHNCQUFzQixDQUFDO0FBQzFELDZDQUE2QztBQUM3QixxQ0FBMEIsR0FBRyxnQ0FBZ0MsQ0FBQztBQUM5RSxnREFBZ0Q7QUFDaEMsd0NBQTZCLEdBQzVDLG1DQUFtQyxDQUFDO0FBQ3JDLCtCQUErQjtBQUNmLHVCQUFZLEdBQUcsa0JBQWtCLENBQUM7QUFDbEQsa0NBQWtDO0FBQ2xCLDBCQUFlLEdBQUcscUJBQXFCLENBQUM7QUFDeEQsK0NBQStDO0FBQy9CLHVDQUE0QixHQUMzQyxrQ0FBa0MsQ0FBQztBQUNwQyxnQ0FBZ0M7QUFDaEIsc0JBQVcsR0FBRyxpQkFBaUIsQ0FBQztBQUNoRCw2Q0FBNkM7QUFDN0IscUNBQTBCLEdBQUcsZ0NBQWdDLENBQUM7QUFDOUUsa0NBQWtDO0FBQ2xCLHdCQUFhLEdBQUcsbUJBQW1CLENBQUM7QUFDcEQsMkNBQTJDO0FBQzNCLG1DQUF3QixHQUFHLDhCQUE4QixDQUFDO0FBQzFFLGtEQUFrRDtBQUNsQywwQ0FBK0IsR0FDOUMscUNBQXFDLENBQUM7QUFDdkMsbURBQW1EO0FBQ25DLDJDQUFnQyxHQUMvQyxzQ0FBc0MsQ0FBQztBQUN4QywyREFBMkQ7QUFDM0MsbURBQXdDLEdBQ3ZELDhDQUE4QyxDQUFDO0FBQ2hELG9EQUFvRDtBQUNwQyw0Q0FBaUMsR0FDaEQsdUNBQXVDLENBQUM7QUFDekMsMERBQTBEO0FBQzFDLGtEQUF1QyxHQUN0RCw2Q0FBNkMsQ0FBQztBQUMvQyxxREFBcUQ7QUFDckMsNkNBQWtDLEdBQ2pELHdDQUF3QyxDQUFDO0FBQzFDLHlEQUF5RDtBQUN6QyxpREFBc0MsR0FDckQsNENBQTRDLENBQUM7QUFDOUMsNENBQTRDO0FBQzVCLG9DQUF5QixHQUFHLCtCQUErQixDQUFDO0FBQzVFLG9EQUFvRDtBQUNwQyw0Q0FBaUMsR0FDaEQsdUNBQXVDLENBQUM7QUFDekMscUNBQXFDO0FBQ3JCLDZCQUFrQixHQUFHLHdCQUF3QixDQUFDO0FBQzlELGtEQUFrRDtBQUNsQywwQ0FBK0IsR0FDOUMscUNBQXFDLENBQUM7QUFDdkMseUNBQXlDO0FBQ3pCLGlDQUFzQixHQUFHLDRCQUE0QixDQUFDO0FBQ3RFLHFEQUFxRDtBQUNyQyw2Q0FBa0MsR0FDakQsd0NBQXdDLENBQUM7QUFDMUMsaURBQWlEO0FBQ2pDLHlDQUE4QixHQUM3QyxvQ0FBb0MsQ0FBQztBQUN0Qyx5REFBeUQ7QUFDekMsaURBQXNDLEdBQ3JELDRDQUE0QyxDQUFDO0FBRTlDLDhCQUE4QjtBQUNkLHlCQUFjLEdBQWE7SUFDMUMsVUFBVSxDQUFDLG1CQUFtQjtJQUM5QixVQUFVLENBQUMsWUFBWTtJQUN2QixVQUFVLENBQUMsb0NBQW9DO0lBQy9DLFVBQVUsQ0FBQyx5QkFBeUI7SUFDcEMsVUFBVSxDQUFDLHlCQUF5QjtJQUNwQyxVQUFVLENBQUMseUNBQXlDO0lBQ3BELFVBQVUsQ0FBQywyQ0FBMkM7SUFDdEQsVUFBVSxDQUFDLDhCQUE4QjtJQUN6QyxVQUFVLENBQUMsc0JBQXNCO0lBQ2pDLFVBQVUsQ0FBQyxxQkFBcUI7SUFDaEMsVUFBVSxDQUFDLDJCQUEyQjtJQUN0QyxVQUFVLENBQUMsdUNBQXVDO0lBQ2xELFVBQVUsQ0FBQyxzQ0FBc0M7SUFDakQsVUFBVSxDQUFDLG1DQUFtQztJQUM5QyxVQUFVLENBQUMsd0NBQXdDO0lBQ25ELFVBQVUsQ0FBQyxtQ0FBbUM7SUFDOUMsVUFBVSxDQUFDLDhCQUE4QjtJQUN6QyxVQUFVLENBQUMsOEJBQThCO0lBQ3pDLFVBQVUsQ0FBQyxzQ0FBc0M7SUFDakQsVUFBVSxDQUFDLHlDQUF5QztJQUNwRCxVQUFVLENBQUMsNEJBQTRCO0lBQ3ZDLFVBQVUsQ0FBQyxxQkFBcUI7SUFDaEMsVUFBVSxDQUFDLDhCQUE4QjtJQUN6QyxVQUFVLENBQUMsa0NBQWtDO0lBQzdDLFVBQVUsQ0FBQyx5QkFBeUI7SUFDcEMsVUFBVSxDQUFDLGlDQUFpQztJQUM1QyxVQUFVLENBQUMsbURBQW1EO0lBQzlELFVBQVUsQ0FBQywyQkFBMkI7SUFDdEMsVUFBVSxDQUFDLGlCQUFpQjtJQUM1QixVQUFVLENBQUMsOEJBQThCO0lBQ3pDLFVBQVUsQ0FBQywwQkFBMEI7SUFDckMsVUFBVSxDQUFDLHFCQUFxQjtJQUNoQyxVQUFVLENBQUMsaUJBQWlCO0lBQzVCLFVBQVUsQ0FBQyxtQkFBbUI7SUFDOUIsVUFBVSxDQUFDLG1CQUFtQjtDQUM5QixDQUFDO0FBQ0YsK0JBQStCO0FBQ2YsMEJBQWUsR0FBYTtJQUMzQyxVQUFVLENBQUMsK0NBQStDO0lBQzFELFVBQVUsQ0FBQywyQkFBMkI7SUFDdEMsVUFBVSxDQUFDLG9DQUFvQztJQUMvQyxVQUFVLENBQUMsZ0NBQWdDO0lBQzNDLFVBQVUsQ0FBQywyQkFBMkI7SUFDdEMsVUFBVSxDQUFDLDZCQUE2QjtJQUN4QyxVQUFVLENBQUMsMEJBQTBCO0lBQ3JDLFVBQVUsQ0FBQyxpQ0FBaUM7SUFDNUMsVUFBVSxDQUFDLDRCQUE0QjtJQUN2QyxVQUFVLENBQUMsa0JBQWtCO0lBQzdCLFVBQVUsQ0FBQyxzQkFBc0I7SUFDakMsVUFBVSxDQUFDLHNDQUFzQztJQUNqRCxVQUFVLENBQUMsbUJBQW1CO0lBQzlCLFVBQVUsQ0FBQyx3QkFBd0I7SUFDbkMsVUFBVSxDQUFDLFNBQVM7SUFDcEIsVUFBVSxDQUFDLGtCQUFrQjtJQUM3QixVQUFVLENBQUMsaUNBQWlDO0lBQzVDLFVBQVUsQ0FBQyxzQkFBc0I7SUFDakMsVUFBVSxDQUFDLGtCQUFrQjtJQUM3QixVQUFVLENBQUMsMkJBQTJCO0lBQ3RDLFVBQVUsQ0FBQyxzQkFBc0I7SUFDakMsVUFBVSxDQUFDLHNDQUFzQztJQUNqRCxVQUFVLENBQUMsbUJBQW1CO0lBQzlCLFVBQVUsQ0FBQyxrQkFBa0I7SUFDN0IsVUFBVSxDQUFDLDBCQUEwQjtJQUNyQyxVQUFVLENBQUMsc0JBQXNCO0lBQ2pDLFVBQVUsQ0FBQyw4QkFBOEI7SUFDekMsVUFBVSxDQUFDLGlCQUFpQjtJQUM1QixVQUFVLENBQUMsMkJBQTJCO0lBQ3RDLFVBQVUsQ0FBQywrQkFBK0I7SUFDMUMsVUFBVSxDQUFDLDBCQUEwQjtJQUNyQyxVQUFVLENBQUMsNkJBQTZCO0lBQ3hDLFVBQVUsQ0FBQyxvQ0FBb0M7SUFDL0MsVUFBVSxDQUFDLCtCQUErQjtJQUMxQyxVQUFVLENBQUMsMkNBQTJDO0lBQ3RELFVBQVUsQ0FBQyx1QkFBdUI7SUFDbEMsVUFBVSxDQUFDLGVBQWU7SUFDMUIsVUFBVSxDQUFDLHdCQUF3QjtJQUNuQyxVQUFVLENBQUMsb0JBQW9CO0lBQy9CLFVBQVUsQ0FBQyw4QkFBOEI7SUFDekMsVUFBVSxDQUFDLGtCQUFrQjtJQUM3QixVQUFVLENBQUMsbUJBQW1CO0lBQzlCLFVBQVUsQ0FBQyxzQkFBc0I7SUFDakMsVUFBVSxDQUFDLDhCQUE4QjtJQUN6QyxVQUFVLENBQUMsb0JBQW9CO0lBQy9CLFVBQVUsQ0FBQyx1QkFBdUI7SUFDbEMsVUFBVSxDQUFDLHFCQUFxQjtJQUNoQyxVQUFVLENBQUMsbUJBQW1CO0lBQzlCLFVBQVUsQ0FBQyxhQUFhO0lBQ3hCLFVBQVUsQ0FBQywwQkFBMEI7SUFDckMsVUFBVSxDQUFDLGdCQUFnQjtJQUMzQixVQUFVLENBQUMsMEJBQTBCO0lBQ3JDLFVBQVUsQ0FBQyw2QkFBNkI7SUFDeEMsVUFBVSxDQUFDLFlBQVk7SUFDdkIsVUFBVSxDQUFDLGVBQWU7SUFDMUIsVUFBVSxDQUFDLDRCQUE0QjtJQUN2QyxVQUFVLENBQUMsMEJBQTBCO0lBQ3JDLFVBQVUsQ0FBQyx3QkFBd0I7SUFDbkMsVUFBVSxDQUFDLCtCQUErQjtJQUMxQyxVQUFVLENBQUMsZ0NBQWdDO0lBQzNDLFVBQVUsQ0FBQyx3Q0FBd0M7SUFDbkQsVUFBVSxDQUFDLGlDQUFpQztJQUM1QyxVQUFVLENBQUMsdUNBQXVDO0lBQ2xELFVBQVUsQ0FBQyxrQ0FBa0M7SUFDN0MsVUFBVSxDQUFDLHNDQUFzQztJQUNqRCxVQUFVLENBQUMseUJBQXlCO0lBQ3BDLFVBQVUsQ0FBQyxpQ0FBaUM7SUFDNUMsVUFBVSxDQUFDLGtCQUFrQjtJQUM3QixVQUFVLENBQUMsK0JBQStCO0lBQzFDLFVBQVUsQ0FBQyxzQkFBc0I7SUFDakMsVUFBVSxDQUFDLGtDQUFrQztJQUM3QyxVQUFVLENBQUMsOEJBQThCO0lBQ3pDLFVBQVUsQ0FBQyxzQ0FBc0M7Q0FDakQsQ0FBQztBQUNGLDhCQUE4QjtBQUNkLHlCQUFjLEdBQWEsRUFBRSxDQUFDO0FBQzlDLCtDQUErQztBQUMvQix5Q0FBOEIsR0FBYSxFQUFFLENBQUM7QUFDOUQsaUNBQWlDO0FBQ2pCLDRCQUFpQixHQUFhO0lBQzdDLFVBQVUsQ0FBQyxXQUFXO0lBQ3RCLFVBQVUsQ0FBQyxhQUFhO0NBQ3hCLENBQUM7QUFtT0gsTUFBTSxtQkFBbUIsR0FDeEIseUZBQXlGLENBQUM7QUFDM0YsTUFBTSwyQ0FBMkMsR0FDaEQsMklBQTJJLENBQUM7QUFDN0ksTUFBTSxnQ0FBZ0MsR0FDckMsb0hBQW9ILENBQUM7QUFDdEgsTUFBTSxxQ0FBcUMsR0FDMUMsK0hBQStILENBQUM7QUFDakksTUFBTSw0QkFBNEIsR0FDakMsNEdBQTRHLENBQUM7QUFDOUcsTUFBTSxnREFBZ0QsR0FDckQscUpBQXFKLENBQUM7QUFDdkosTUFBTSw2QkFBNkIsR0FDbEMsOEdBQThHLENBQUM7QUFDaEgsTUFBTSw0QkFBNEIsR0FDakMsNEdBQTRHLENBQUM7QUFFOUc7O0dBRUc7QUFDSCxNQUFhLFlBQVk7SUFDeEI7O09BRUc7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQTZCO1FBQy9DLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssUUFBUSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsUUFBUSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEgsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQVc7UUFDdkMsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFXO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxLQUFLO1NBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsbUNBQW1DLENBQ3pDLEtBQXFEO1FBRXJELE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssUUFBUSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsa0NBQWtDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO0lBQ2xLLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyw2Q0FBNkMsQ0FBQyxHQUFXO1FBQy9ELE9BQU8sMkNBQTJDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsMkNBQTJDLENBQ2pELEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRywyQ0FBMkMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUNkLG9EQUFvRCxHQUFHLEVBQUUsQ0FDekQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsNkJBQTZCLEVBQzVCLEtBQUssQ0FBQyxNQUFPLENBQUMsNkJBQTZCO1NBQzVDLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsd0JBQXdCLENBQzlCLEtBQTBDO1FBRTFDLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssUUFBUSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsc0JBQXNCLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzNJLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxHQUFXO1FBQ3BELE9BQU8sZ0NBQWdDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsZ0NBQWdDLENBQ3RDLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0Isa0JBQWtCLEVBQUUsS0FBSyxDQUFDLE1BQU8sQ0FBQyxrQkFBa0I7U0FDcEQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyw2QkFBNkIsQ0FDbkMsS0FBK0M7UUFFL0MsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxRQUFRLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyw0QkFBNEIsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDdEosQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHVDQUF1QyxDQUFDLEdBQVc7UUFDekQsT0FBTyxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxxQ0FBcUMsQ0FDM0MsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3Qix1QkFBdUIsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLHVCQUF1QjtTQUM5RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQXNDO1FBQ2pFLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssUUFBUSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsa0JBQWtCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuSSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsOEJBQThCLENBQUMsR0FBVztRQUNoRCxPQUFPLDRCQUE0QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDRCQUE0QixDQUNsQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcsNEJBQTRCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLGNBQWM7U0FDNUMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyx3Q0FBd0MsQ0FDOUMsS0FBMEQ7UUFFMUQsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxRQUFRLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyx1Q0FBdUMsS0FBSyxDQUFDLGtDQUFrQyxFQUFFLENBQUM7SUFDNUssQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGtEQUFrRCxDQUN4RCxHQUFXO1FBRVgsT0FBTyxnREFBZ0QsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxnREFBZ0QsQ0FDdEQsR0FBVztRQUVYLE1BQU0sS0FBSyxHQUFHLGdEQUFnRCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2QseURBQXlELEdBQUcsRUFBRSxDQUM5RCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU87WUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTztZQUM3QixrQ0FBa0MsRUFDakMsS0FBSyxDQUFDLE1BQU8sQ0FBQyxrQ0FBa0M7U0FDakQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxxQkFBcUIsQ0FDM0IsS0FBdUM7UUFFdkMsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxRQUFRLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxtQkFBbUIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3JJLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxHQUFXO1FBQ2pELE9BQU8sNkJBQTZCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsNkJBQTZCLENBQ25DLEdBQVc7UUFFWCxNQUFNLEtBQUssR0FBRyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxPQUFPO1lBQ04sU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1lBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDN0IsZUFBZSxFQUFFLEtBQUssQ0FBQyxNQUFPLENBQUMsZUFBZTtTQUM5QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQXNDO1FBQ2pFLE9BQU8sT0FBTyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssUUFBUSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLEdBQUcsa0JBQWtCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuSSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsOEJBQThCLENBQUMsR0FBVztRQUNoRCxPQUFPLDRCQUE0QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDRCQUE0QixDQUNsQyxHQUFXO1FBRVgsTUFBTSxLQUFLLEdBQUcsNEJBQTRCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsT0FBTztZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7WUFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzdCLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTyxDQUFDLGNBQWM7U0FDNUMsQ0FBQztJQUNILENBQUM7O0FBdlJGLG9DQXdSQzs7O0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGFBQWE7O0FBQTFCLHNDQTJOQzs7O0FBMU5BLHlFQUF5RTtBQUN6RCx5Q0FBMkIsR0FBYTtJQUN2RCxpQ0FBaUM7Q0FDakMsQ0FBQztBQUNGLHlFQUF5RTtBQUN6RCx5Q0FBMkIsR0FBYSxFQUFFLENBQUM7QUFDM0Qsd0VBQXdFO0FBQ3hELHdDQUEwQixHQUFhO0lBQ3RELGdDQUFnQztJQUNoQyxpQkFBaUI7Q0FDakIsQ0FBQztBQUNGLCtFQUErRTtBQUMvRCwrQ0FBaUMsR0FBYTtJQUM3RCx1Q0FBdUM7SUFDdkMsaUJBQWlCO0NBQ2pCLENBQUM7QUFDRixnRUFBZ0U7QUFDaEQsZ0NBQWtCLEdBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQzFFLG9FQUFvRTtBQUNwRCxvQ0FBc0IsR0FBYTtJQUNsRCw0QkFBNEI7Q0FDNUIsQ0FBQztBQUNGLG9GQUFvRjtBQUNwRSxvREFBc0MsR0FBYTtJQUNsRSw0Q0FBNEM7SUFDNUMsaUJBQWlCO0NBQ2pCLENBQUM7QUFDRixpRUFBaUU7QUFDakQsaUNBQW1CLEdBQWE7SUFDL0MseUJBQXlCO0lBQ3pCLGlCQUFpQjtDQUNqQixDQUFDO0FBQ0YsdURBQXVEO0FBQ3ZDLHVCQUFTLEdBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUN4RCxnRUFBZ0U7QUFDaEQsZ0NBQWtCLEdBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQzFFLCtFQUErRTtBQUMvRCwrQ0FBaUMsR0FBYTtJQUM3RCx1Q0FBdUM7Q0FDdkMsQ0FBQztBQUNGLG9FQUFvRTtBQUNwRCxvQ0FBc0IsR0FBYTtJQUNsRCw0QkFBNEI7Q0FDNUIsQ0FBQztBQUNGLGdFQUFnRTtBQUNoRCxnQ0FBa0IsR0FBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDMUUseUVBQXlFO0FBQ3pELHlDQUEyQixHQUFhLEVBQUUsQ0FBQztBQUMzRCxvRUFBb0U7QUFDcEQsb0NBQXNCLEdBQWE7SUFDbEQsNEJBQTRCO0NBQzVCLENBQUM7QUFDRixvRkFBb0Y7QUFDcEUsb0RBQXNDLEdBQWE7SUFDbEUsNENBQTRDO0NBQzVDLENBQUM7QUFDRixpRUFBaUU7QUFDakQsaUNBQW1CLEdBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQzVFLGdFQUFnRTtBQUNoRCxnQ0FBa0IsR0FBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDMUUsaUVBQWlFO0FBQ2pELGlDQUFtQixHQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUM1RSwwREFBMEQ7QUFDMUMsMEJBQVksR0FBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDOUQsa0ZBQWtGO0FBQ2xFLGtEQUFvQyxHQUFhO0lBQ2hFLDBDQUEwQztDQUMxQyxDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELHVDQUF5QixHQUFhO0lBQ3JELCtCQUErQjtDQUMvQixDQUFDO0FBQ0YsdUVBQXVFO0FBQ3ZELHVDQUF5QixHQUFhO0lBQ3JELCtCQUErQjtDQUMvQixDQUFDO0FBQ0YsdUZBQXVGO0FBQ3ZFLHVEQUF5QyxHQUFhO0lBQ3JFLCtDQUErQztDQUMvQyxDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELG9DQUFzQixHQUFhO0lBQ2xELDRCQUE0QjtDQUM1QixDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELG1DQUFxQixHQUFhO0lBQ2pELDJCQUEyQjtDQUMzQixDQUFDO0FBQ0Ysd0VBQXdFO0FBQ3hELHdDQUEwQixHQUFhO0lBQ3RELGdDQUFnQztDQUNoQyxDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELG9DQUFzQixHQUFhO0lBQ2xELDRCQUE0QjtDQUM1QixDQUFDO0FBQ0YsNEVBQTRFO0FBQzVELDRDQUE4QixHQUFhO0lBQzFELG9DQUFvQztDQUNwQyxDQUFDO0FBQ0YsaUZBQWlGO0FBQ2pFLG1EQUFxQyxHQUFhO0lBQ2pFLHlDQUF5QztDQUN6QyxDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELHNDQUF3QixHQUFhO0lBQ3BELDRCQUE0QjtDQUM1QixDQUFDO0FBQ0YsNkRBQTZEO0FBQzdDLCtCQUFpQixHQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUN0RSxzRUFBc0U7QUFDdEQsd0NBQTBCLEdBQWEsRUFBRSxDQUFDO0FBQzFELDBFQUEwRTtBQUMxRCw0Q0FBOEIsR0FBYSxFQUFFLENBQUM7QUFDOUQsaUVBQWlFO0FBQ2pELG1DQUFxQixHQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUM5RSx5RUFBeUU7QUFDekQsMkNBQTZCLEdBQWE7SUFDekQsaUNBQWlDO0NBQ2pDLENBQUM7QUFDRiwrREFBK0Q7QUFDL0MsK0JBQWlCLEdBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQ3hFLHlFQUF5RTtBQUN6RCx5Q0FBMkIsR0FBYTtJQUN2RCxpQ0FBaUM7Q0FDakMsQ0FBQztBQUNGLCtEQUErRDtBQUMvQywrQkFBaUIsR0FBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDeEUsNEVBQTRFO0FBQzVELDRDQUE4QixHQUFhLEVBQUUsQ0FBQztBQUM5RCx3RUFBd0U7QUFDeEQsd0NBQTBCLEdBQWEsRUFBRSxDQUFDO0FBQzFELG1FQUFtRTtBQUNuRCxtQ0FBcUIsR0FBYTtJQUNqRCwyQkFBMkI7Q0FDM0IsQ0FBQztBQUNGLCtEQUErRDtBQUMvQywrQkFBaUIsR0FBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDeEUsaUVBQWlFO0FBQ2pELGlDQUFtQixHQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUM1RSxpRUFBaUU7QUFDakQsaUNBQW1CLEdBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQzVFLDZEQUE2RDtBQUM3Qyw2QkFBZSxHQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNwRSxzRUFBc0U7QUFDdEQsc0NBQXdCLEdBQWE7SUFDcEQsOEJBQThCO0NBQzlCLENBQUM7QUFDRixrRUFBa0U7QUFDbEQsa0NBQW9CLEdBQWEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBQzlFLDRFQUE0RTtBQUM1RCw0Q0FBOEIsR0FBYSxFQUFFLENBQUM7QUFDOUQsZ0VBQWdFO0FBQ2hELGdDQUFrQixHQUFhLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUMxRSxpRUFBaUU7QUFDakQsaUNBQW1CLEdBQWEsRUFBRSxDQUFDO0FBQ25ELDJEQUEyRDtBQUMzQywyQkFBYSxHQUFhO0lBQ3pDLG1CQUFtQjtJQUNuQixpQkFBaUI7Q0FDakIsQ0FBQztBQUNGLHdFQUF3RTtBQUN4RCx3Q0FBMEIsR0FBYSxFQUFFLENBQUM7QUFDMUQsOERBQThEO0FBQzlDLDhCQUFnQixHQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUN0RSx3RUFBd0U7QUFDeEQsd0NBQTBCLEdBQWE7SUFDdEQsZ0NBQWdDO0lBQ2hDLGlCQUFpQjtDQUNqQixDQUFDO0FBQ0YsMkVBQTJFO0FBQzNELDJDQUE2QixHQUFhO0lBQ3pELG1DQUFtQztDQUNuQyxDQUFDO0FBQ0YsMERBQTBEO0FBQzFDLDBCQUFZLEdBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzlELDZEQUE2RDtBQUM3Qyw2QkFBZSxHQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUNwRSwwRUFBMEU7QUFDMUQsMENBQTRCLEdBQWE7SUFDeEQsa0NBQWtDO0NBQ2xDLENBQUM7QUFDRix5REFBeUQ7QUFDekMseUJBQVcsR0FBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDNUQsd0VBQXdFO0FBQ3hELHdDQUEwQixHQUFhO0lBQ3RELGdDQUFnQztDQUNoQyxDQUFDO0FBQ0YsMkRBQTJEO0FBQzNDLDJCQUFhLEdBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ2hFLG9GQUFvRjtBQUNwRSxvREFBc0MsR0FBYTtJQUNsRSw0Q0FBNEM7Q0FDNUMsQ0FBQztBQUNGLHVFQUF1RTtBQUN2RCx1Q0FBeUIsR0FBYTtJQUNyRCwrQkFBK0I7Q0FDL0IsQ0FBQztBQUNGLCtFQUErRTtBQUMvRCwrQ0FBaUMsR0FBYTtJQUM3RCx1Q0FBdUM7Q0FDdkMsQ0FBQztBQUNGLGdFQUFnRTtBQUNoRCxnQ0FBa0IsR0FBYSxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDMUUsNkVBQTZFO0FBQzdELDZDQUErQixHQUFhLEVBQUUsQ0FBQztBQUMvRCxvRUFBb0U7QUFDcEQsb0NBQXNCLEdBQWE7SUFDbEQsNEJBQTRCO0NBQzVCLENBQUM7QUFDRiw0RUFBNEU7QUFDNUQsNENBQThCLEdBQWE7SUFDMUQsb0NBQW9DO0NBQ3BDLENBQUM7QUFDRixvRkFBb0Y7QUFDcEUsb0RBQXNDLEdBQWE7SUFDbEUsNENBQTRDO0NBQzVDLENBQUM7QUFHSDs7R0FFRztBQUNILE1BQWEsYUFBYTtJQW1HekI7O09BRUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQWE7UUFDOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLDBCQUEwQixFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFhO1FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSwyQkFBMkIsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBZ0I7UUFDOUIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFhO1FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBYTtRQUNsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUN2RCxDQUFDOztBQXBJRixzQ0FxSUM7OztBQXBJQSwyRUFBMkU7QUFDM0Qsc0RBQXdDLEdBQWE7SUFDcEUsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsNkVBQTZFO0FBQzdELHdEQUEwQyxHQUFhO0lBQ3RFLDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDBFQUEwRTtBQUMxRCxxREFBdUMsR0FBYTtJQUNuRSwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRixpRkFBaUY7QUFDakUsNERBQThDLEdBQWE7SUFDMUUsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsNEVBQTRFO0FBQzVELHVEQUF5QyxHQUFhO0lBQ3JFLDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLGtFQUFrRTtBQUNsRCw2Q0FBK0IsR0FBYTtJQUMzRCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRixzRkFBc0Y7QUFDdEUsaUVBQW1ELEdBQ2xFLENBQUMsMEJBQTBCLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDN0MsbUVBQW1FO0FBQ25ELDhDQUFnQyxHQUFhO0lBQzVELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLHdFQUF3RTtBQUN4RCxtREFBcUMsR0FBYTtJQUNqRSwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiw4RUFBOEU7QUFDOUQseURBQTJDLEdBQWE7SUFDdkUsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0Ysa0VBQWtFO0FBQ2xELDZDQUErQixHQUFhO0lBQzNELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLG1FQUFtRTtBQUNuRCw4Q0FBZ0MsR0FBYTtJQUM1RCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiw2REFBNkQ7QUFDN0Msd0NBQTBCLEdBQWE7SUFDdEQsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsMEVBQTBFO0FBQzFELHFEQUF1QyxHQUFhO0lBQ25FLDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDBFQUEwRTtBQUMxRCxxREFBdUMsR0FBYTtJQUNuRSwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiwyREFBMkQ7QUFDM0Msc0NBQXdCLEdBQWE7SUFDcEQsMEJBQTBCO0lBQzFCLGFBQWE7SUFDYixrQkFBa0I7Q0FDbEIsQ0FBQztBQUNGLDBFQUEwRTtBQUMxRCxxREFBdUMsR0FBYTtJQUNuRSwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiw2REFBNkQ7QUFDN0Msd0NBQTBCLEdBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUV2RSx1REFBdUQ7QUFDdkMsNkJBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCx3REFBd0Q7QUFDeEMsOEJBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDL0QsaURBQWlEO0FBQ2pDLDBCQUFZLEdBQUcsYUFBYSxDQUFDO0FBQzdDLCtDQUErQztBQUMvQiwyQkFBYSxHQUFHLGtCQUFrQixDQUFDO0FBQ25ELDhDQUE4QztBQUM5Qiw4QkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL2Rycy5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgZHJzIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEUlNBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwiZHJzXCI7XG5cblx0LyoqIFtXcml0ZV0gZHJzOkFzc29jaWF0ZUZhaWxiYWNrQ2xpZW50VG9SZWNvdmVyeUluc3RhbmNlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVGYWlsYmFja0NsaWVudFRvUmVjb3ZlcnlJbnN0YW5jZUZvckRycyA9XG5cdFx0XCJkcnM6QXNzb2NpYXRlRmFpbGJhY2tDbGllbnRUb1JlY292ZXJ5SW5zdGFuY2VGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFjayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrID1cblx0XHRcImRyczpBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2tcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkJhdGNoQ3JlYXRlVm9sdW1lU25hcHNob3RHcm91cEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQmF0Y2hDcmVhdGVWb2x1bWVTbmFwc2hvdEdyb3VwRm9yRHJzID1cblx0XHRcImRyczpCYXRjaENyZWF0ZVZvbHVtZVNuYXBzaG90R3JvdXBGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkJhdGNoRGVsZXRlU25hcHNob3RSZXF1ZXN0Rm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaERlbGV0ZVNuYXBzaG90UmVxdWVzdEZvckRycyA9XG5cdFx0XCJkcnM6QmF0Y2hEZWxldGVTbmFwc2hvdFJlcXVlc3RGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNhbmNlbFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsUmVjb3ZlcnlQbGFuRXhlY3V0aW9uID1cblx0XHRcImRyczpDYW5jZWxSZWNvdmVyeVBsYW5FeGVjdXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZUNvbnZlcnRlZFNuYXBzaG90Rm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRycyA9XG5cdFx0XCJkcnM6Q3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlciA9IFwiZHJzOkNyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6Q3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzID1cblx0XHRcImRyczpDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVSZWNvdmVyeVBsYW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY292ZXJ5UGxhbiA9IFwiZHJzOkNyZWF0ZVJlY292ZXJ5UGxhblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6Q3JlYXRlUmVjb3ZlcnlQbGFuU3RlcCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVjb3ZlcnlQbGFuU3RlcCA9IFwiZHJzOkNyZWF0ZVJlY292ZXJ5UGxhblN0ZXBcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6Q3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZVNvdXJjZU5ldHdvcmsgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNvdXJjZU5ldHdvcmsgPSBcImRyczpDcmVhdGVTb3VyY2VOZXR3b3JrXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNvdXJjZVNlcnZlckZvckRycyA9IFwiZHJzOkNyZWF0ZVNvdXJjZVNlcnZlckZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlSm9iICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVKb2IgPSBcImRyczpEZWxldGVKb2JcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZUxhdW5jaEFjdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTGF1bmNoQWN0aW9uID0gXCJkcnM6RGVsZXRlTGF1bmNoQWN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6RGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVSZWNvdmVyeUluc3RhbmNlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvdmVyeUluc3RhbmNlID0gXCJkcnM6RGVsZXRlUmVjb3ZlcnlJbnN0YW5jZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlUmVjb3ZlcnlQbGFuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvdmVyeVBsYW4gPSBcImRyczpEZWxldGVSZWNvdmVyeVBsYW5cIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uID1cblx0XHRcImRyczpEZWxldGVSZWNvdmVyeVBsYW5FeGVjdXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZVJlY292ZXJ5UGxhblN0ZXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5UGxhblN0ZXAgPSBcImRyczpEZWxldGVSZWNvdmVyeVBsYW5TdGVwXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOkRlbGV0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVTb3VyY2VOZXR3b3JrICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTb3VyY2VOZXR3b3JrID0gXCJkcnM6RGVsZXRlU291cmNlTmV0d29ya1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlU291cmNlU2VydmVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTb3VyY2VTZXJ2ZXIgPSBcImRyczpEZWxldGVTb3VyY2VTZXJ2ZXJcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVKb2JMb2dJdGVtcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JMb2dJdGVtcyA9IFwiZHJzOkRlc2NyaWJlSm9iTG9nSXRlbXNcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVKb2JzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUpvYnMgPSBcImRyczpEZXNjcmliZUpvYnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZXMgPVxuXHRcdFwiZHJzOkRlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzID0gXCJkcnM6RGVzY3JpYmVSZWNvdmVyeUluc3RhbmNlc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzID0gXCJkcnM6RGVzY3JpYmVSZWNvdmVyeVNuYXBzaG90c1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXMgPVxuXHRcdFwiZHJzOkRlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlUmVwbGljYXRpb25TZXJ2ZXJBc3NvY2lhdGlvbnNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVwbGljYXRpb25TZXJ2ZXJBc3NvY2lhdGlvbnNGb3JEcnMgPVxuXHRcdFwiZHJzOkRlc2NyaWJlUmVwbGljYXRpb25TZXJ2ZXJBc3NvY2lhdGlvbnNGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVTbmFwc2hvdFJlcXVlc3RzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNuYXBzaG90UmVxdWVzdHNGb3JEcnMgPVxuXHRcdFwiZHJzOkRlc2NyaWJlU25hcHNob3RSZXF1ZXN0c0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVNvdXJjZU5ldHdvcmtzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNvdXJjZU5ldHdvcmtzID0gXCJkcnM6RGVzY3JpYmVTb3VyY2VOZXR3b3Jrc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVNvdXJjZVNlcnZlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU291cmNlU2VydmVycyA9IFwiZHJzOkRlc2NyaWJlU291cmNlU2VydmVyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlID0gXCJkcnM6RGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2VcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXIgPSBcImRyczpEaXNjb25uZWN0U291cmNlU2VydmVyXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IEV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6RXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEFnZW50Q29tbWFuZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRDb21tYW5kRm9yRHJzID0gXCJkcnM6R2V0QWdlbnRDb21tYW5kRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEFnZW50Q29uZmlybWVkUmVzdW1lSW5mb0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRDb25maXJtZWRSZXN1bWVJbmZvRm9yRHJzID1cblx0XHRcImRyczpHZXRBZ2VudENvbmZpcm1lZFJlc3VtZUluZm9Gb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRJbnN0YWxsYXRpb25Bc3NldHNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFnZW50SW5zdGFsbGF0aW9uQXNzZXRzRm9yRHJzID1cblx0XHRcImRyczpHZXRBZ2VudEluc3RhbGxhdGlvbkFzc2V0c0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMgPVxuXHRcdFwiZHJzOkdldEFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEFnZW50UnVudGltZUNvbmZpZ3VyYXRpb25Gb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFnZW50UnVudGltZUNvbmZpZ3VyYXRpb25Gb3JEcnMgPVxuXHRcdFwiZHJzOkdldEFnZW50UnVudGltZUNvbmZpZ3VyYXRpb25Gb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRTbmFwc2hvdENyZWRpdHNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFnZW50U25hcHNob3RDcmVkaXRzRm9yRHJzID1cblx0XHRcImRyczpHZXRBZ2VudFNuYXBzaG90Q3JlZGl0c0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRDaGFubmVsQ29tbWFuZHNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENoYW5uZWxDb21tYW5kc0ZvckRycyA9XG5cdFx0XCJkcnM6R2V0Q2hhbm5lbENvbW1hbmRzRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEZhaWxiYWNrQ29tbWFuZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RmFpbGJhY2tDb21tYW5kRm9yRHJzID1cblx0XHRcImRyczpHZXRGYWlsYmFja0NvbW1hbmRGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0RmFpbGJhY2tMYXVuY2hSZXF1ZXN0ZWRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZhaWxiYWNrTGF1bmNoUmVxdWVzdGVkRm9yRHJzID1cblx0XHRcImRyczpHZXRGYWlsYmFja0xhdW5jaFJlcXVlc3RlZEZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZHJzOkdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldExhdW5jaENvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldExhdW5jaENvbmZpZ3VyYXRpb24gPSBcImRyczpHZXRMYXVuY2hDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldFJlY292ZXJ5UGxhbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVjb3ZlcnlQbGFuID0gXCJkcnM6R2V0UmVjb3ZlcnlQbGFuXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uID1cblx0XHRcImRyczpHZXRSZWNvdmVyeVBsYW5FeGVjdXRpb25cIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCA9XG5cdFx0XCJkcnM6R2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcFwiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRSZWNvdmVyeVBsYW5TdGVwICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWNvdmVyeVBsYW5TdGVwID0gXCJkcnM6R2V0UmVjb3ZlcnlQbGFuU3RlcFwiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJkcnM6R2V0UmVwbGljYXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldFN1Z2dlc3RlZEZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U3VnZ2VzdGVkRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzID1cblx0XHRcImRyczpHZXRTdWdnZXN0ZWRGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkluaXRpYWxpemVTZXJ2aWNlICovXG5cdHN0YXRpYyByZWFkb25seSBJbml0aWFsaXplU2VydmljZSA9IFwiZHJzOkluaXRpYWxpemVTZXJ2aWNlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpJc3N1ZUFnZW50Q2VydGlmaWNhdGVGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IElzc3VlQWdlbnRDZXJ0aWZpY2F0ZUZvckRycyA9XG5cdFx0XCJkcnM6SXNzdWVBZ2VudENlcnRpZmljYXRlRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RFeHRlbnNpYmxlU291cmNlU2VydmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV4dGVuc2libGVTb3VyY2VTZXJ2ZXJzID1cblx0XHRcImRyczpMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6TGlzdExhdW5jaEFjdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMYXVuY2hBY3Rpb25zID0gXCJkcnM6TGlzdExhdW5jaEFjdGlvbnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6TGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXBzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcHMgPVxuXHRcdFwiZHJzOkxpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwc1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvbnMgPSBcImRyczpMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uc1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0UmVjb3ZlcnlQbGFuU3RlcHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvdmVyeVBsYW5TdGVwcyA9IFwiZHJzOkxpc3RSZWNvdmVyeVBsYW5TdGVwc1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0UmVjb3ZlcnlQbGFucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY292ZXJ5UGxhbnMgPSBcImRyczpMaXN0UmVjb3ZlcnlQbGFuc1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0U3RhZ2luZ0FjY291bnRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3RhZ2luZ0FjY291bnRzID0gXCJkcnM6TGlzdFN0YWdpbmdBY2NvdW50c1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJkcnM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5QWdlbnRBdXRoZW50aWNhdGlvbkZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5QWdlbnRBdXRoZW50aWNhdGlvbkZvckRycyA9XG5cdFx0XCJkcnM6Tm90aWZ5QWdlbnRBdXRoZW50aWNhdGlvbkZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5QWdlbnRDb25uZWN0ZWRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeUFnZW50Q29ubmVjdGVkRm9yRHJzID0gXCJkcnM6Tm90aWZ5QWdlbnRDb25uZWN0ZWRGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOk5vdGlmeUFnZW50RGlzY29ubmVjdGVkRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBOb3RpZnlBZ2VudERpc2Nvbm5lY3RlZEZvckRycyA9XG5cdFx0XCJkcnM6Tm90aWZ5QWdlbnREaXNjb25uZWN0ZWRGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOk5vdGlmeUFnZW50UmVwbGljYXRpb25Qcm9ncmVzc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5QWdlbnRSZXBsaWNhdGlvblByb2dyZXNzRm9yRHJzID1cblx0XHRcImRyczpOb3RpZnlBZ2VudFJlcGxpY2F0aW9uUHJvZ3Jlc3NGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOk5vdGlmeUNvbnNpc3RlbmN5QXR0YWluZWRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeUNvbnNpc3RlbmN5QXR0YWluZWRGb3JEcnMgPVxuXHRcdFwiZHJzOk5vdGlmeUNvbnNpc3RlbmN5QXR0YWluZWRGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOk5vdGlmeVJlcGxpY2F0aW9uU2VydmVyQXV0aGVudGljYXRpb25Gb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeVJlcGxpY2F0aW9uU2VydmVyQXV0aGVudGljYXRpb25Gb3JEcnMgPVxuXHRcdFwiZHJzOk5vdGlmeVJlcGxpY2F0aW9uU2VydmVyQXV0aGVudGljYXRpb25Gb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOk5vdGlmeVZvbHVtZUV2ZW50Rm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBOb3RpZnlWb2x1bWVFdmVudEZvckRycyA9IFwiZHJzOk5vdGlmeVZvbHVtZUV2ZW50Rm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpQdXRMYXVuY2hBY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dExhdW5jaEFjdGlvbiA9IFwiZHJzOlB1dExhdW5jaEFjdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6UmVvcmRlclJlY292ZXJ5UGxhblN0ZXBzICovXG5cdHN0YXRpYyByZWFkb25seSBSZW9yZGVyUmVjb3ZlcnlQbGFuU3RlcHMgPSBcImRyczpSZW9yZGVyUmVjb3ZlcnlQbGFuU3RlcHNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlJldHJ5RGF0YVJlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBSZXRyeURhdGFSZXBsaWNhdGlvbiA9IFwiZHJzOlJldHJ5RGF0YVJlcGxpY2F0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpSZXRyeVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldHJ5UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCA9XG5cdFx0XCJkcnM6UmV0cnlSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpSZXZlcnNlUmVwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldmVyc2VSZXBsaWNhdGlvbiA9IFwiZHJzOlJldmVyc2VSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U2VuZEFnZW50TG9nc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZEFnZW50TG9nc0ZvckRycyA9IFwiZHJzOlNlbmRBZ2VudExvZ3NGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlNlbmRBZ2VudE1ldHJpY3NGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRBZ2VudE1ldHJpY3NGb3JEcnMgPSBcImRyczpTZW5kQWdlbnRNZXRyaWNzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTZW5kQ2hhbm5lbENvbW1hbmRSZXN1bHRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRDaGFubmVsQ29tbWFuZFJlc3VsdEZvckRycyA9XG5cdFx0XCJkcnM6U2VuZENoYW5uZWxDb21tYW5kUmVzdWx0Rm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTZW5kQ2xpZW50TG9nc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZENsaWVudExvZ3NGb3JEcnMgPSBcImRyczpTZW5kQ2xpZW50TG9nc0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U2VuZENsaWVudE1ldHJpY3NGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRDbGllbnRNZXRyaWNzRm9yRHJzID0gXCJkcnM6U2VuZENsaWVudE1ldHJpY3NGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlNlbmRWb2x1bWVTdGF0c0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZFZvbHVtZVN0YXRzRm9yRHJzID0gXCJkcnM6U2VuZFZvbHVtZVN0YXRzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdGFydEZhaWxiYWNrTGF1bmNoICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydEZhaWxiYWNrTGF1bmNoID0gXCJkcnM6U3RhcnRGYWlsYmFja0xhdW5jaFwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RhcnRSZWNvdmVyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZWNvdmVyeSA9IFwiZHJzOlN0YXJ0UmVjb3ZlcnlcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0YXJ0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiA9IFwiZHJzOlN0YXJ0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdGFydFJlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlcGxpY2F0aW9uID0gXCJkcnM6U3RhcnRSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5ID0gXCJkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnlcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0YXJ0U291cmNlTmV0d29ya1JlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiA9XG5cdFx0XCJkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVwbGljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0b3BGYWlsYmFjayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcEZhaWxiYWNrID0gXCJkcnM6U3RvcEZhaWxiYWNrXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdG9wUmVwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BSZXBsaWNhdGlvbiA9IFwiZHJzOlN0b3BSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiA9XG5cdFx0XCJkcnM6U3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvblwiO1xuXHQvKiogW1RhZ2dpbmddIGRyczpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImRyczpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlcm1pbmF0ZVJlY292ZXJ5SW5zdGFuY2VzID0gXCJkcnM6VGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXNcIjtcblx0LyoqIFtUYWdnaW5nXSBkcnM6VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwiZHJzOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZUFnZW50QmFja2xvZ0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWdlbnRCYWNrbG9nRm9yRHJzID0gXCJkcnM6VXBkYXRlQWdlbnRCYWNrbG9nRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMgPVxuXHRcdFwiZHJzOlVwZGF0ZUFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudFNvdXJjZVByb3BlcnRpZXNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFnZW50U291cmNlUHJvcGVydGllc0ZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlQWdlbnRTb3VyY2VQcm9wZXJ0aWVzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVGYWlsYmFja0NsaWVudExhc3RTZWVuRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGYWlsYmFja0NsaWVudExhc3RTZWVuRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVGYWlsYmFja0NsaWVudExhc3RTZWVuRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZHJzOlVwZGF0ZUZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uID0gXCJkcnM6VXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlUmVjb3ZlcnlQbGFuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZWNvdmVyeVBsYW4gPSBcImRyczpVcGRhdGVSZWNvdmVyeVBsYW5cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgPVxuXHRcdFwiZHJzOlVwZGF0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXBcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZVJlY292ZXJ5UGxhblN0ZXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlY292ZXJ5UGxhblN0ZXAgPSBcImRyczpVcGRhdGVSZWNvdmVyeVBsYW5TdGVwXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVSZXBsaWNhdGlvbkNlcnRpZmljYXRlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBsaWNhdGlvbkNlcnRpZmljYXRlRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVSZXBsaWNhdGlvbkNlcnRpZmljYXRlRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJkcnM6VXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZUpvYkxvZ0l0ZW1zLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVKb2JzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVSZWNvdmVyeUluc3RhbmNlcyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlcyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlUmVwbGljYXRpb25TZXJ2ZXJBc3NvY2lhdGlvbnNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVNuYXBzaG90UmVxdWVzdHNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVNvdXJjZU5ldHdvcmtzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVTb3VyY2VTZXJ2ZXJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0QWdlbnRDb21tYW5kRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0QWdlbnRDb25maXJtZWRSZXN1bWVJbmZvRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0QWdlbnRJbnN0YWxsYXRpb25Bc3NldHNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEFnZW50UnVudGltZUNvbmZpZ3VyYXRpb25Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRBZ2VudFNuYXBzaG90Q3JlZGl0c0ZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldENoYW5uZWxDb21tYW5kc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEZhaWxiYWNrQ29tbWFuZEZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEZhaWxiYWNrTGF1bmNoUmVxdWVzdGVkRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRMYXVuY2hDb25maWd1cmF0aW9uLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0UmVjb3ZlcnlQbGFuLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldFJlY292ZXJ5UGxhblN0ZXAsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRTdWdnZXN0ZWRGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5MaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnMsXG5cdFx0RFJTQWN0aW9ucy5MaXN0TGF1bmNoQWN0aW9ucyxcblx0XHREUlNBY3Rpb25zLkxpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwcyxcblx0XHREUlNBY3Rpb25zLkxpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25zLFxuXHRcdERSU0FjdGlvbnMuTGlzdFJlY292ZXJ5UGxhblN0ZXBzLFxuXHRcdERSU0FjdGlvbnMuTGlzdFJlY292ZXJ5UGxhbnMsXG5cdFx0RFJTQWN0aW9ucy5MaXN0U3RhZ2luZ0FjY291bnRzLFxuXHRcdERSU0FjdGlvbnMuTGlzdFRhZ3NGb3JSZXNvdXJjZSxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHREUlNBY3Rpb25zLkFzc29jaWF0ZUZhaWxiYWNrQ2xpZW50VG9SZWNvdmVyeUluc3RhbmNlRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrLFxuXHRcdERSU0FjdGlvbnMuQmF0Y2hDcmVhdGVWb2x1bWVTbmFwc2hvdEdyb3VwRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuQmF0Y2hEZWxldGVTbmFwc2hvdFJlcXVlc3RGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5DYW5jZWxSZWNvdmVyeVBsYW5FeGVjdXRpb24sXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRycyxcblx0XHREUlNBY3Rpb25zLkNyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyLFxuXHRcdERSU0FjdGlvbnMuQ3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlLFxuXHRcdERSU0FjdGlvbnMuQ3JlYXRlUmVjb3ZlcnlJbnN0YW5jZUZvckRycyxcblx0XHREUlNBY3Rpb25zLkNyZWF0ZVJlY292ZXJ5UGxhbixcblx0XHREUlNBY3Rpb25zLkNyZWF0ZVJlY292ZXJ5UGxhblN0ZXAsXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLkNyZWF0ZVNvdXJjZU5ldHdvcmssXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVKb2IsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVMYXVuY2hBY3Rpb24sXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVSZWNvdmVyeUluc3RhbmNlLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlUmVjb3ZlcnlQbGFuLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlUmVjb3ZlcnlQbGFuU3RlcCxcblx0XHREUlNBY3Rpb25zLkRlbGV0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlU291cmNlTmV0d29yayxcblx0XHREUlNBY3Rpb25zLkRlbGV0ZVNvdXJjZVNlcnZlcixcblx0XHREUlNBY3Rpb25zLkRpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlLFxuXHRcdERSU0FjdGlvbnMuRGlzY29ubmVjdFNvdXJjZVNlcnZlcixcblx0XHREUlNBY3Rpb25zLkV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLkluaXRpYWxpemVTZXJ2aWNlLFxuXHRcdERSU0FjdGlvbnMuSXNzdWVBZ2VudENlcnRpZmljYXRlRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5QWdlbnRBdXRoZW50aWNhdGlvbkZvckRycyxcblx0XHREUlNBY3Rpb25zLk5vdGlmeUFnZW50Q29ubmVjdGVkRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5QWdlbnREaXNjb25uZWN0ZWRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlBZ2VudFJlcGxpY2F0aW9uUHJvZ3Jlc3NGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlDb25zaXN0ZW5jeUF0dGFpbmVkRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5UmVwbGljYXRpb25TZXJ2ZXJBdXRoZW50aWNhdGlvbkZvckRycyxcblx0XHREUlNBY3Rpb25zLk5vdGlmeVZvbHVtZUV2ZW50Rm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuUHV0TGF1bmNoQWN0aW9uLFxuXHRcdERSU0FjdGlvbnMuUmVvcmRlclJlY292ZXJ5UGxhblN0ZXBzLFxuXHRcdERSU0FjdGlvbnMuUmV0cnlEYXRhUmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5SZXRyeVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAsXG5cdFx0RFJTQWN0aW9ucy5SZXZlcnNlUmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5TZW5kQWdlbnRMb2dzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuU2VuZEFnZW50TWV0cmljc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlNlbmRDaGFubmVsQ29tbWFuZFJlc3VsdEZvckRycyxcblx0XHREUlNBY3Rpb25zLlNlbmRDbGllbnRMb2dzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuU2VuZENsaWVudE1ldHJpY3NGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5TZW5kVm9sdW1lU3RhdHNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5TdGFydEZhaWxiYWNrTGF1bmNoLFxuXHRcdERSU0FjdGlvbnMuU3RhcnRSZWNvdmVyeSxcblx0XHREUlNBY3Rpb25zLlN0YXJ0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uLFxuXHRcdERSU0FjdGlvbnMuU3RhcnRSZXBsaWNhdGlvbixcblx0XHREUlNBY3Rpb25zLlN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5LFxuXHRcdERSU0FjdGlvbnMuU3RhcnRTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5TdG9wRmFpbGJhY2ssXG5cdFx0RFJTQWN0aW9ucy5TdG9wUmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5TdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uLFxuXHRcdERSU0FjdGlvbnMuVGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudEJhY2tsb2dGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlQWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlQWdlbnRTb3VyY2VQcm9wZXJ0aWVzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlRmFpbGJhY2tDbGllbnRMYXN0U2VlbkZvckRycyxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZVJlY292ZXJ5UGxhbixcblx0XHREUlNBY3Rpb25zLlVwZGF0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVSZWNvdmVyeVBsYW5TdGVwLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlUmVwbGljYXRpb25DZXJ0aWZpY2F0ZUZvckRycyxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHREUlNBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdERSU0FjdGlvbnMuVW50YWdSZXNvdXJjZSxcblx0XTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIEpvYlJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNKb2JSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBKb2JJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgam9iSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBKb2JSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTSm9iUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEpvYklEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgam9iSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlY292ZXJ5SW5zdGFuY2VJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVjb3ZlcnlJbnN0YW5jZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlY292ZXJ5SW5zdGFuY2VJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlY292ZXJ5SW5zdGFuY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlY292ZXJ5UGxhbkV4ZWN1dGlvbklEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZWNvdmVyeVBsYW5FeGVjdXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVjb3ZlcnlQbGFuRXhlY3V0aW9uSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZWNvdmVyeVBsYW5FeGVjdXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgUmVjb3ZlcnlQbGFuUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlY292ZXJ5UGxhblJlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlY292ZXJ5UGxhbklEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZWNvdmVyeVBsYW5JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFJlY292ZXJ5UGxhblJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNSZWNvdmVyeVBsYW5SZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVjb3ZlcnlQbGFuSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZWNvdmVyeVBsYW5JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFNvdXJjZU5ldHdvcmtSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTU291cmNlTmV0d29ya1Jlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFNvdXJjZU5ldHdvcmtJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc291cmNlTmV0d29ya0lkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgU291cmNlTmV0d29ya1Jlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFNvdXJjZU5ldHdvcmtJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHNvdXJjZU5ldHdvcmtJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgU291cmNlU2VydmVyUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1NvdXJjZVNlcnZlclJlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFNvdXJjZVNlcnZlcklEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzb3VyY2VTZXJ2ZXJJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFNvdXJjZVNlcnZlclJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU291cmNlU2VydmVySUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzb3VyY2VTZXJ2ZXJJZDogc3RyaW5nO1xufVxuXG5jb25zdCBKb2JSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpqb2JcXC8oPzxqb2JJZD5bXjovP10rKSQvO1xuY29uc3QgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZHJzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6bGF1bmNoLWNvbmZpZ3VyYXRpb24tdGVtcGxhdGVcXC8oPzxsYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJZD5bXjovP10rKSQvO1xuY29uc3QgUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRyczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnJlY292ZXJ5LWluc3RhbmNlXFwvKD88cmVjb3ZlcnlJbnN0YW5jZUlkPlteOi8/XSspJC87XG5jb25zdCBSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpyZWNvdmVyeS1wbGFuLWV4ZWN1dGlvblxcLyg/PHJlY292ZXJ5UGxhbkV4ZWN1dGlvbklkPlteOi8/XSspJC87XG5jb25zdCBSZWNvdmVyeVBsYW5SZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpyZWNvdmVyeS1wbGFuXFwvKD88cmVjb3ZlcnlQbGFuSWQ+W146Lz9dKykkLztcbmNvbnN0IFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZHJzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6cmVwbGljYXRpb24tY29uZmlndXJhdGlvbi10ZW1wbGF0ZVxcLyg/PHJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ+W146Lz9dKykkLztcbmNvbnN0IFNvdXJjZU5ldHdvcmtSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpzb3VyY2UtbmV0d29ya1xcLyg/PHNvdXJjZU5ldHdvcmtJZD5bXjovP10rKSQvO1xuY29uc3QgU291cmNlU2VydmVyUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZHJzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6c291cmNlLXNlcnZlclxcLyg/PHNvdXJjZVNlcnZlcklkPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3IgZHJzIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIERSU1Jlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgSm9iUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgam9iUmVzb3VyY2UocHJvcHM6IERSU0pvYlJlc291cmNlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRyczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpqb2IvJHtwcm9wcy5qb2JJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgSm9iUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEpvYlJlc291cmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEpvYlJlc291cmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIEpvYlJlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUpvYlJlc291cmNlQXJuKGFybjogc3RyaW5nKTogRFJTSm9iUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEpvYlJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEpvYlJlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGpvYklkOiBtYXRjaC5ncm91cHMhLmpvYklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlKFxuXHRcdHByb3BzOiBEUlNMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRyczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpsYXVuY2gtY29uZmlndXJhdGlvbi10ZW1wbGF0ZS8ke3Byb3BzLmxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IERSU0xhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YEludmFsaWQgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOOiAke2Fybn1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ6XG5cdFx0XHRcdG1hdGNoLmdyb3VwcyEubGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZShcblx0XHRwcm9wczogRFJTUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnJlY292ZXJ5LWluc3RhbmNlLyR7cHJvcHMucmVjb3ZlcnlJbnN0YW5jZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlY292ZXJ5SW5zdGFuY2VJZDogbWF0Y2guZ3JvdXBzIS5yZWNvdmVyeUluc3RhbmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2UoXG5cdFx0cHJvcHM6IERSU1JlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnJlY292ZXJ5LXBsYW4tZXhlY3V0aW9uLyR7cHJvcHMucmVjb3ZlcnlQbGFuRXhlY3V0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlY292ZXJ5UGxhbkV4ZWN1dGlvbklkOiBtYXRjaC5ncm91cHMhLnJlY292ZXJ5UGxhbkV4ZWN1dGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFJlY292ZXJ5UGxhblJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlY292ZXJ5UGxhblJlc291cmNlKHByb3BzOiBEUlNSZWNvdmVyeVBsYW5SZXNvdXJjZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06cmVjb3ZlcnktcGxhbi8ke3Byb3BzLnJlY292ZXJ5UGxhbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBSZWNvdmVyeVBsYW5SZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVjb3ZlcnlQbGFuUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gUmVjb3ZlcnlQbGFuUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgUmVjb3ZlcnlQbGFuUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVjb3ZlcnlQbGFuUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IERSU1JlY292ZXJ5UGxhblJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBSZWNvdmVyeVBsYW5SZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBSZWNvdmVyeVBsYW5SZXNvdXJjZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZWNvdmVyeVBsYW5JZDogbWF0Y2guZ3JvdXBzIS5yZWNvdmVyeVBsYW5JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UoXG5cdFx0cHJvcHM6IERSU1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06cmVwbGljYXRpb24tY29uZmlndXJhdGlvbi10ZW1wbGF0ZS8ke3Byb3BzLnJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YEludmFsaWQgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk46ICR7YXJufWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOlxuXHRcdFx0XHRtYXRjaC5ncm91cHMhLnJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgU291cmNlTmV0d29ya1Jlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHNvdXJjZU5ldHdvcmtSZXNvdXJjZShcblx0XHRwcm9wczogRFJTU291cmNlTmV0d29ya1Jlc291cmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnNvdXJjZS1uZXR3b3JrLyR7cHJvcHMuc291cmNlTmV0d29ya0lkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBTb3VyY2VOZXR3b3JrUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFNvdXJjZU5ldHdvcmtSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgU291cmNlTmV0d29ya1Jlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVNvdXJjZU5ldHdvcmtSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTU291cmNlTmV0d29ya1Jlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgU291cmNlTmV0d29ya1Jlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNvdXJjZU5ldHdvcmtJZDogbWF0Y2guZ3JvdXBzIS5zb3VyY2VOZXR3b3JrSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgU291cmNlU2VydmVyUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc291cmNlU2VydmVyUmVzb3VyY2UocHJvcHM6IERSU1NvdXJjZVNlcnZlclJlc291cmNlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRyczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzb3VyY2Utc2VydmVyLyR7cHJvcHMuc291cmNlU2VydmVySWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFNvdXJjZVNlcnZlclJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBTb3VyY2VTZXJ2ZXJSZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTU291cmNlU2VydmVyUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFNvdXJjZVNlcnZlclJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFNvdXJjZVNlcnZlclJlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNvdXJjZVNlcnZlcklkOiBtYXRjaC5ncm91cHMhLnNvdXJjZVNlcnZlcklkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGRycy5cbiAqL1xuZXhwb3J0IGNsYXNzIERSU09wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2sgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2s6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFja1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDYW5jZWxSZWNvdmVyeVBsYW5FeGVjdXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxSZWNvdmVyeVBsYW5FeGVjdXRpb246IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkNyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyXCIsXG5cdFx0XCJkcnM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVSZWNvdmVyeVBsYW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvdmVyeVBsYW46IHN0cmluZ1tdID0gW1wiZHJzOkNyZWF0ZVJlY292ZXJ5UGxhblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUmVjb3ZlcnlQbGFuU3RlcCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY292ZXJ5UGxhblN0ZXA6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkNyZWF0ZVJlY292ZXJ5UGxhblN0ZXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6Q3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTb3VyY2VOZXR3b3JrIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU291cmNlTmV0d29yazogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6Q3JlYXRlU291cmNlTmV0d29ya1wiLFxuXHRcdFwiZHJzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUpvYjogc3RyaW5nW10gPSBbXCJkcnM6RGVsZXRlSm9iXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVMYXVuY2hBY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMYXVuY2hBY3Rpb246IHN0cmluZ1tdID0gW1wiZHJzOkRlbGV0ZUxhdW5jaEFjdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVjb3ZlcnlJbnN0YW5jZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5SW5zdGFuY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlbGV0ZVJlY292ZXJ5SW5zdGFuY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVjb3ZlcnlQbGFuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb3ZlcnlQbGFuOiBzdHJpbmdbXSA9IFtcImRyczpEZWxldGVSZWNvdmVyeVBsYW5cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvbjogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVjb3ZlcnlQbGFuU3RlcCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5UGxhblN0ZXA6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlbGV0ZVJlY292ZXJ5UGxhblN0ZXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU291cmNlTmV0d29yayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZU5ldHdvcms6IHN0cmluZ1tdID0gW1wiZHJzOkRlbGV0ZVNvdXJjZU5ldHdvcmtcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVNvdXJjZVNlcnZlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZVNlcnZlcjogc3RyaW5nW10gPSBbXCJkcnM6RGVsZXRlU291cmNlU2VydmVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUpvYkxvZ0l0ZW1zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JMb2dJdGVtczogc3RyaW5nW10gPSBbXCJkcnM6RGVzY3JpYmVKb2JMb2dJdGVtc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVKb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JzOiBzdHJpbmdbXSA9IFtcImRyczpEZXNjcmliZUpvYnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU291cmNlTmV0d29ya3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNvdXJjZU5ldHdvcmtzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVNvdXJjZU5ldHdvcmtzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU291cmNlU2VydmVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU291cmNlU2VydmVyczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVzY3JpYmVTb3VyY2VTZXJ2ZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNjb25uZWN0U291cmNlU2VydmVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEaXNjb25uZWN0U291cmNlU2VydmVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6R2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TGF1bmNoQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TGF1bmNoQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6R2V0TGF1bmNoQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWNvdmVyeVBsYW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlY292ZXJ5UGxhbjogc3RyaW5nW10gPSBbXCJkcnM6R2V0UmVjb3ZlcnlQbGFuXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWNvdmVyeVBsYW5FeGVjdXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvbjogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcDogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb3ZlcnlQbGFuU3RlcCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVjb3ZlcnlQbGFuU3RlcDogc3RyaW5nW10gPSBbXCJkcnM6R2V0UmVjb3ZlcnlQbGFuU3RlcFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVwbGljYXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbml0aWFsaXplU2VydmljZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEluaXRpYWxpemVTZXJ2aWNlOiBzdHJpbmdbXSA9IFtcImRyczpJbml0aWFsaXplU2VydmljZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEV4dGVuc2libGVTb3VyY2VTZXJ2ZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV4dGVuc2libGVTb3VyY2VTZXJ2ZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdExhdW5jaEFjdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TGF1bmNoQWN0aW9uczogc3RyaW5nW10gPSBbXCJkcnM6TGlzdExhdW5jaEFjdGlvbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwczogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY292ZXJ5UGxhblN0ZXBzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY292ZXJ5UGxhblN0ZXBzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpMaXN0UmVjb3ZlcnlQbGFuU3RlcHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY292ZXJ5UGxhbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb3ZlcnlQbGFuczogc3RyaW5nW10gPSBbXCJkcnM6TGlzdFJlY292ZXJ5UGxhbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTdGFnaW5nQWNjb3VudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3RhZ2luZ0FjY291bnRzOiBzdHJpbmdbXSA9IFtcImRyczpMaXN0U3RhZ2luZ0FjY291bnRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJkcnM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0TGF1bmNoQWN0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0TGF1bmNoQWN0aW9uOiBzdHJpbmdbXSA9IFtcImRyczpQdXRMYXVuY2hBY3Rpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlb3JkZXJSZWNvdmVyeVBsYW5TdGVwcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlb3JkZXJSZWNvdmVyeVBsYW5TdGVwczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6UmVvcmRlclJlY292ZXJ5UGxhblN0ZXBzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJldHJ5RGF0YVJlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV0cnlEYXRhUmVwbGljYXRpb246IHN0cmluZ1tdID0gW1wiZHJzOlJldHJ5RGF0YVJlcGxpY2F0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZXRyeVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZXRyeVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXA6IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJldmVyc2VSZXBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldmVyc2VSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJkcnM6UmV2ZXJzZVJlcGxpY2F0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydEZhaWxiYWNrTGF1bmNoIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRGYWlsYmFja0xhdW5jaDogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRSZWNvdmVyeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb3Zlcnk6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlN0YXJ0UmVjb3ZlcnlcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFJlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJkcnM6U3RhcnRSZXBsaWNhdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFNvdXJjZU5ldHdvcmtSZWNvdmVyeTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnlcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U291cmNlTmV0d29ya1JlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wRmFpbGJhY2sgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wRmFpbGJhY2s6IHN0cmluZ1tdID0gW1wiZHJzOlN0b3BGYWlsYmFja1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFJlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFJlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcImRyczpTdG9wUmVwbGljYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpTdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiZHJzOlRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlcm1pbmF0ZVJlY292ZXJ5SW5zdGFuY2VzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVbnRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJkcnM6VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVjb3ZlcnlQbGFuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVjb3ZlcnlQbGFuOiBzdHJpbmdbXSA9IFtcImRyczpVcGRhdGVSZWNvdmVyeVBsYW5cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSZWNvdmVyeVBsYW5TdGVwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVjb3ZlcnlQbGFuU3RlcDogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VXBkYXRlUmVjb3ZlcnlQbGFuU3RlcFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiLFxuXHRdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3IgZHJzLlxuICovXG5leHBvcnQgY2xhc3MgRFJTQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2sgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRycyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRyc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXIgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXJDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJlY292ZXJ5SW5zdGFuY2VGb3JEcnMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVjb3ZlcnlJbnN0YW5jZUZvckRyc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUmVjb3ZlcnlQbGFuIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY292ZXJ5UGxhbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9XG5cdFx0W1wiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsIFwiYXdzOlRhZ0tleXNcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVTb3VyY2VOZXR3b3JrIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNvdXJjZU5ldHdvcmtDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVNvdXJjZVNlcnZlckZvckRycyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFJldmVyc2VSZXBsaWNhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBSZXZlcnNlUmVwbGljYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0RmFpbGJhY2tMYXVuY2ggYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRGYWlsYmFja0xhdW5jaENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRSZWNvdmVyeSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlY292ZXJ5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnlDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJkcnM6Q3JlYXRlQWN0aW9uXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlcyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBkcnM6Q3JlYXRlQWN0aW9uIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDUkVBVEVfQUNUSU9OID0gXCJkcnM6Q3JlYXRlQWN0aW9uXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBkcnM6RUMySW5zdGFuY2VBUk4gKEFSTikgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVDMl9JTlNUQU5DRV9BUk4gPSBcImRyczpFQzJJbnN0YW5jZUFSTlwiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBkcnM6Q3JlYXRlQWN0aW9uYC5cblx0ICovXG5cdHN0YXRpYyBjcmVhdGVBY3Rpb24odmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJkcnM6Q3JlYXRlQWN0aW9uXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBkcnM6RUMySW5zdGFuY2VBUk5gLlxuXHQgKi9cblx0c3RhdGljIGVjMkluc3RhbmNlQVJOKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgQXJuRXF1YWxzOiB7IFwiZHJzOkVDMkluc3RhbmNlQVJOXCI6IHZhbHVlIH0gfTtcblx0fVxufVxuIl19