@cdk_utils/iam 1.18.0 → 1.19.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 (459) hide show
  1. package/.jsii +2342 -2021
  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.js +4 -4
  25. package/lib/generated/services/appfabric.js +4 -4
  26. package/lib/generated/services/appflow.js +4 -4
  27. package/lib/generated/services/application-autoscaling.js +4 -4
  28. package/lib/generated/services/application-signals-mcp.js +3 -3
  29. package/lib/generated/services/application-signals.js +4 -4
  30. package/lib/generated/services/application-transformation.js +1 -1
  31. package/lib/generated/services/applicationinsights.js +3 -3
  32. package/lib/generated/services/appmesh-preview.js +2 -2
  33. package/lib/generated/services/appmesh.js +4 -4
  34. package/lib/generated/services/apprunner.js +4 -4
  35. package/lib/generated/services/appstream.js +4 -4
  36. package/lib/generated/services/appstudio.js +2 -2
  37. package/lib/generated/services/appsync.js +4 -4
  38. package/lib/generated/services/apptest.js +3 -3
  39. package/lib/generated/services/aps.js +4 -4
  40. package/lib/generated/services/arc-region-switch.js +4 -4
  41. package/lib/generated/services/arc-zonal-shift.js +4 -4
  42. package/lib/generated/services/arsenal.js +1 -1
  43. package/lib/generated/services/artifact.js +4 -4
  44. package/lib/generated/services/athena.js +4 -4
  45. package/lib/generated/services/auditmanager.js +4 -4
  46. package/lib/generated/services/autoscaling-plans.js +2 -2
  47. package/lib/generated/services/autoscaling.js +4 -4
  48. package/lib/generated/services/aws-external-anthropic.js +3 -3
  49. package/lib/generated/services/aws-marketplace-management.js +1 -1
  50. package/lib/generated/services/aws-marketplace.js +4 -4
  51. package/lib/generated/services/aws-portal.js +1 -1
  52. package/lib/generated/services/awsconnector.js +1 -1
  53. package/lib/generated/services/b2bi.js +4 -4
  54. package/lib/generated/services/backup-gateway.js +4 -4
  55. package/lib/generated/services/backup-search.js +4 -4
  56. package/lib/generated/services/backup-storage.js +1 -1
  57. package/lib/generated/services/backup.js +4 -4
  58. package/lib/generated/services/batch.js +4 -4
  59. package/lib/generated/services/bcm-dashboards.js +4 -4
  60. package/lib/generated/services/bcm-data-exports.js +4 -4
  61. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  62. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  63. package/lib/generated/services/bedrock-agentcore.js +9 -6
  64. package/lib/generated/services/bedrock-mantle.js +3 -3
  65. package/lib/generated/services/bedrock-websearch.js +2 -2
  66. package/lib/generated/services/bedrock.js +6 -9
  67. package/lib/generated/services/billing.js +4 -4
  68. package/lib/generated/services/billingconductor.js +4 -4
  69. package/lib/generated/services/braket.js +4 -4
  70. package/lib/generated/services/budgets.js +4 -4
  71. package/lib/generated/services/bugbust.js +3 -3
  72. package/lib/generated/services/cases.js +4 -4
  73. package/lib/generated/services/cassandra.js +4 -4
  74. package/lib/generated/services/ce.js +4 -4
  75. package/lib/generated/services/chatbot.js +4 -4
  76. package/lib/generated/services/chime.js +4 -4
  77. package/lib/generated/services/cleanrooms-ml.js +4 -4
  78. package/lib/generated/services/cleanrooms.js +4 -4
  79. package/lib/generated/services/cloud9.js +4 -4
  80. package/lib/generated/services/clouddirectory.js +3 -3
  81. package/lib/generated/services/cloudformation.js +4 -4
  82. package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
  83. package/lib/generated/services/cloudfront.js +4 -4
  84. package/lib/generated/services/cloudhsm.js +4 -4
  85. package/lib/generated/services/cloudsearch.js +3 -3
  86. package/lib/generated/services/cloudshell.js +3 -3
  87. package/lib/generated/services/cloudtrail-data.js +4 -4
  88. package/lib/generated/services/cloudtrail.js +4 -4
  89. package/lib/generated/services/cloudwatch.js +4 -4
  90. package/lib/generated/services/codeartifact.js +4 -4
  91. package/lib/generated/services/codebuild.js +4 -4
  92. package/lib/generated/services/codecatalyst.js +4 -4
  93. package/lib/generated/services/codecommit.js +4 -4
  94. package/lib/generated/services/codeconnections.js +4 -4
  95. package/lib/generated/services/codedeploy-commands-secure.js +1 -1
  96. package/lib/generated/services/codedeploy.js +4 -4
  97. package/lib/generated/services/codeguru-profiler.js +4 -4
  98. package/lib/generated/services/codeguru-reviewer.js +4 -4
  99. package/lib/generated/services/codeguru-security.js +4 -4
  100. package/lib/generated/services/codeguru.js +1 -1
  101. package/lib/generated/services/codepipeline.js +4 -4
  102. package/lib/generated/services/codestar-connections.js +4 -4
  103. package/lib/generated/services/codestar-notifications.js +4 -4
  104. package/lib/generated/services/codestar.js +3 -3
  105. package/lib/generated/services/codewhisperer.js +3 -3
  106. package/lib/generated/services/cognito-identity.js +4 -4
  107. package/lib/generated/services/cognito-idp.js +4 -4
  108. package/lib/generated/services/cognito-sync.js +3 -3
  109. package/lib/generated/services/comprehend.js +6 -5
  110. package/lib/generated/services/comprehendmedical.js +3 -3
  111. package/lib/generated/services/compute-optimizer.js +3 -3
  112. package/lib/generated/services/config.js +4 -4
  113. package/lib/generated/services/connect-campaigns.js +4 -4
  114. package/lib/generated/services/connect.js +4 -4
  115. package/lib/generated/services/consoleapp.js +2 -2
  116. package/lib/generated/services/consolidatedbilling.js +1 -1
  117. package/lib/generated/services/controlcatalog.js +3 -3
  118. package/lib/generated/services/controltower.js +4 -4
  119. package/lib/generated/services/cost-optimization-hub.js +2 -2
  120. package/lib/generated/services/cur.js +4 -4
  121. package/lib/generated/services/customer-verification.js +1 -1
  122. package/lib/generated/services/databrew.js +4 -4
  123. package/lib/generated/services/dataexchange.js +4 -4
  124. package/lib/generated/services/datapipeline.js +4 -4
  125. package/lib/generated/services/datasync.js +4 -4
  126. package/lib/generated/services/datazone.js +4 -4
  127. package/lib/generated/services/dax.js +4 -4
  128. package/lib/generated/services/dbqms.js +1 -1
  129. package/lib/generated/services/deadline.js +4 -4
  130. package/lib/generated/services/detective.js +4 -4
  131. package/lib/generated/services/devicefarm.js +4 -4
  132. package/lib/generated/services/devops-guru.js +4 -4
  133. package/lib/generated/services/directconnect.js +4 -4
  134. package/lib/generated/services/discovery.js +3 -3
  135. package/lib/generated/services/dlm.js +4 -4
  136. package/lib/generated/services/dms.js +4 -4
  137. package/lib/generated/services/docdb-elastic.js +4 -4
  138. package/lib/generated/services/drs.js +4 -4
  139. package/lib/generated/services/ds-data.js +4 -4
  140. package/lib/generated/services/ds.js +4 -4
  141. package/lib/generated/services/dsql.js +4 -4
  142. package/lib/generated/services/dynamodb.js +4 -4
  143. package/lib/generated/services/ebs.js +4 -4
  144. package/lib/generated/services/ec2-instance-connect.js +4 -4
  145. package/lib/generated/services/ec2.d.ts +2 -0
  146. package/lib/generated/services/ec2.js +7 -5
  147. package/lib/generated/services/ec2messages.js +2 -2
  148. package/lib/generated/services/ecr-public.js +4 -4
  149. package/lib/generated/services/ecr.js +4 -4
  150. package/lib/generated/services/ecs-mcp.js +1 -1
  151. package/lib/generated/services/ecs.js +4 -4
  152. package/lib/generated/services/eks-auth.js +4 -4
  153. package/lib/generated/services/eks-mcp.js +1 -1
  154. package/lib/generated/services/eks.js +4 -4
  155. package/lib/generated/services/elasticache.js +4 -4
  156. package/lib/generated/services/elasticbeanstalk.js +4 -4
  157. package/lib/generated/services/elasticfilesystem.js +4 -4
  158. package/lib/generated/services/elasticloadbalancing.js +4 -4
  159. package/lib/generated/services/elasticmapreduce.js +4 -4
  160. package/lib/generated/services/elastictranscoder.js +2 -2
  161. package/lib/generated/services/elemental-activations.js +1 -1
  162. package/lib/generated/services/elemental-appliances-software.js +2 -2
  163. package/lib/generated/services/elemental-inference.js +4 -4
  164. package/lib/generated/services/elemental-support-cases.js +3 -3
  165. package/lib/generated/services/elemental-support-content.js +1 -1
  166. package/lib/generated/services/emr-containers.js +4 -4
  167. package/lib/generated/services/emr-serverless.js +4 -4
  168. package/lib/generated/services/entityresolution.js +4 -4
  169. package/lib/generated/services/es.js +4 -4
  170. package/lib/generated/services/events.js +4 -4
  171. package/lib/generated/services/eventsbilltoaws.js +3 -3
  172. package/lib/generated/services/evidently.js +3 -3
  173. package/lib/generated/services/evs.js +4 -4
  174. package/lib/generated/services/execute-api.js +4 -4
  175. package/lib/generated/services/finops-agent.js +1 -1
  176. package/lib/generated/services/finspace-api.js +3 -3
  177. package/lib/generated/services/finspace.js +4 -4
  178. package/lib/generated/services/firehose.js +4 -4
  179. package/lib/generated/services/fis.js +4 -4
  180. package/lib/generated/services/fms.js +4 -4
  181. package/lib/generated/services/forecast.js +4 -4
  182. package/lib/generated/services/frauddetector.js +4 -4
  183. package/lib/generated/services/freertos.js +3 -3
  184. package/lib/generated/services/freetier.js +2 -2
  185. package/lib/generated/services/fsx.js +4 -4
  186. package/lib/generated/services/gamelift.js +4 -4
  187. package/lib/generated/services/gameliftstreams.js +4 -4
  188. package/lib/generated/services/geo-maps.js +3 -3
  189. package/lib/generated/services/geo-places.js +3 -3
  190. package/lib/generated/services/geo-routes.js +3 -3
  191. package/lib/generated/services/geo.js +4 -4
  192. package/lib/generated/services/glacier.js +4 -4
  193. package/lib/generated/services/globalaccelerator.js +4 -4
  194. package/lib/generated/services/glue.js +4 -4
  195. package/lib/generated/services/grafana.js +4 -4
  196. package/lib/generated/services/greengrass.js +4 -4
  197. package/lib/generated/services/groundstation.js +4 -4
  198. package/lib/generated/services/groundtruthlabeling.js +1 -1
  199. package/lib/generated/services/guardduty.js +4 -4
  200. package/lib/generated/services/health-agent.js +4 -4
  201. package/lib/generated/services/health.js +4 -4
  202. package/lib/generated/services/healthlake.js +4 -4
  203. package/lib/generated/services/honeycode.js +2 -2
  204. package/lib/generated/services/iam.js +4 -4
  205. package/lib/generated/services/identity-sync.js +2 -2
  206. package/lib/generated/services/identitystore-auth.js +1 -1
  207. package/lib/generated/services/identitystore.js +4 -4
  208. package/lib/generated/services/imagebuilder.js +4 -4
  209. package/lib/generated/services/importexport.js +2 -2
  210. package/lib/generated/services/inspector-scan.js +2 -2
  211. package/lib/generated/services/inspector.js +2 -2
  212. package/lib/generated/services/inspector2-telemetry.js +1 -1
  213. package/lib/generated/services/inspector2.js +4 -4
  214. package/lib/generated/services/interconnect.js +4 -4
  215. package/lib/generated/services/internetmonitor.js +4 -4
  216. package/lib/generated/services/invoicing.js +4 -4
  217. package/lib/generated/services/iot-device-tester.js +1 -1
  218. package/lib/generated/services/iot.js +4 -4
  219. package/lib/generated/services/iotanalytics.js +3 -3
  220. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  221. package/lib/generated/services/iotevents.js +3 -3
  222. package/lib/generated/services/iotfleethub.js +3 -3
  223. package/lib/generated/services/iotfleetwise.js +4 -4
  224. package/lib/generated/services/iotjobsdata.js +4 -4
  225. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  226. package/lib/generated/services/iotsitewise.js +4 -4
  227. package/lib/generated/services/iottwinmaker.js +4 -4
  228. package/lib/generated/services/iotwireless.js +4 -4
  229. package/lib/generated/services/iq-permission.js +2 -2
  230. package/lib/generated/services/iq.js +2 -2
  231. package/lib/generated/services/ivs.js +4 -4
  232. package/lib/generated/services/ivschat.js +4 -4
  233. package/lib/generated/services/kafka-cluster.js +3 -3
  234. package/lib/generated/services/kafka.js +4 -4
  235. package/lib/generated/services/kafkaconnect.js +4 -4
  236. package/lib/generated/services/kendra-ranking.js +4 -4
  237. package/lib/generated/services/kendra.js +4 -4
  238. package/lib/generated/services/kinesis.js +4 -4
  239. package/lib/generated/services/kinesisanalytics.js +4 -4
  240. package/lib/generated/services/kinesisvideo.js +4 -4
  241. package/lib/generated/services/kms.js +4 -4
  242. package/lib/generated/services/lakeformation.js +3 -3
  243. package/lib/generated/services/lambda.js +4 -4
  244. package/lib/generated/services/launchwizard.js +4 -4
  245. package/lib/generated/services/lex.js +4 -4
  246. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  247. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  248. package/lib/generated/services/license-manager.js +4 -4
  249. package/lib/generated/services/lightsail.js +4 -4
  250. package/lib/generated/services/logs.js +4 -4
  251. package/lib/generated/services/lookoutequipment.js +4 -4
  252. package/lib/generated/services/lookoutmetrics.js +3 -3
  253. package/lib/generated/services/lookoutvision.js +3 -3
  254. package/lib/generated/services/m2.js +4 -4
  255. package/lib/generated/services/machinelearning.js +3 -3
  256. package/lib/generated/services/macie2.js +4 -4
  257. package/lib/generated/services/managedblockchain-query.js +2 -2
  258. package/lib/generated/services/managedblockchain.js +4 -4
  259. package/lib/generated/services/mapcredits.js +2 -2
  260. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  261. package/lib/generated/services/mechanicalturk.js +2 -2
  262. package/lib/generated/services/mediaconnect.js +4 -4
  263. package/lib/generated/services/mediaconvert.js +4 -4
  264. package/lib/generated/services/mediaimport.js +1 -1
  265. package/lib/generated/services/medialive.js +4 -4
  266. package/lib/generated/services/mediapackage-vod.js +4 -4
  267. package/lib/generated/services/mediapackage.js +4 -4
  268. package/lib/generated/services/mediapackagev2.js +4 -4
  269. package/lib/generated/services/mediastore.js +4 -4
  270. package/lib/generated/services/mediatailor.js +4 -4
  271. package/lib/generated/services/medical-imaging.js +4 -4
  272. package/lib/generated/services/memorydb.js +4 -4
  273. package/lib/generated/services/mgh.js +4 -4
  274. package/lib/generated/services/mgn.js +4 -4
  275. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  276. package/lib/generated/services/migrationhub-strategy.js +2 -2
  277. package/lib/generated/services/mobileanalytics.js +1 -1
  278. package/lib/generated/services/mobiletargeting.js +4 -4
  279. package/lib/generated/services/monitron.js +3 -3
  280. package/lib/generated/services/mpa.js +4 -4
  281. package/lib/generated/services/mq.js +4 -4
  282. package/lib/generated/services/neptune-db.js +4 -4
  283. package/lib/generated/services/neptune-graph.js +4 -4
  284. package/lib/generated/services/network-firewall.js +4 -4
  285. package/lib/generated/services/network-security-director.js +1 -1
  286. package/lib/generated/services/networkflowmonitor.js +4 -4
  287. package/lib/generated/services/networkmanager-chat.js +1 -1
  288. package/lib/generated/services/networkmanager.js +4 -4
  289. package/lib/generated/services/networkmonitor.js +4 -4
  290. package/lib/generated/services/nimble.js +3 -3
  291. package/lib/generated/services/notifications-contacts.js +4 -4
  292. package/lib/generated/services/notifications.js +4 -4
  293. package/lib/generated/services/nova-act.js +3 -3
  294. package/lib/generated/services/oam.js +4 -4
  295. package/lib/generated/services/observabilityadmin.js +4 -4
  296. package/lib/generated/services/odb.js +8 -6
  297. package/lib/generated/services/omics.js +6 -9
  298. package/lib/generated/services/one.js +3 -3
  299. package/lib/generated/services/opensearch.js +3 -3
  300. package/lib/generated/services/opsworks-cm.js +2 -2
  301. package/lib/generated/services/opsworks.js +2 -2
  302. package/lib/generated/services/organizations.js +4 -4
  303. package/lib/generated/services/osis.js +4 -4
  304. package/lib/generated/services/outposts.js +4 -4
  305. package/lib/generated/services/panorama.js +3 -3
  306. package/lib/generated/services/partnercentral-account-management.js +2 -2
  307. package/lib/generated/services/partnercentral.js +4 -4
  308. package/lib/generated/services/payment-cryptography.d.ts +34 -0
  309. package/lib/generated/services/payment-cryptography.js +64 -5
  310. package/lib/generated/services/payments.js +3 -3
  311. package/lib/generated/services/pca-connector-ad.js +4 -4
  312. package/lib/generated/services/pca-connector-scep.js +4 -4
  313. package/lib/generated/services/pcs.js +4 -4
  314. package/lib/generated/services/personalize.js +4 -4
  315. package/lib/generated/services/pi.js +4 -4
  316. package/lib/generated/services/pipes.js +4 -4
  317. package/lib/generated/services/polly.js +3 -3
  318. package/lib/generated/services/pricing.js +2 -2
  319. package/lib/generated/services/pricingplanmanager.js +3 -3
  320. package/lib/generated/services/private-networks.js +3 -3
  321. package/lib/generated/services/profile.js +4 -4
  322. package/lib/generated/services/proton.js +4 -4
  323. package/lib/generated/services/purchase-orders.js +3 -3
  324. package/lib/generated/services/q.js +3 -3
  325. package/lib/generated/services/qapps.js +4 -4
  326. package/lib/generated/services/qbusiness.js +4 -4
  327. package/lib/generated/services/qdeveloper.js +3 -3
  328. package/lib/generated/services/qldb.js +3 -3
  329. package/lib/generated/services/quicksight.js +4 -4
  330. package/lib/generated/services/ram.js +4 -4
  331. package/lib/generated/services/rbin.js +4 -4
  332. package/lib/generated/services/rds-data.js +4 -4
  333. package/lib/generated/services/rds-db.js +2 -2
  334. package/lib/generated/services/rds.js +4 -4
  335. package/lib/generated/services/redshift-data.js +4 -4
  336. package/lib/generated/services/redshift-serverless.js +4 -4
  337. package/lib/generated/services/redshift.js +4 -4
  338. package/lib/generated/services/refactor-spaces.js +4 -4
  339. package/lib/generated/services/rekognition.js +4 -4
  340. package/lib/generated/services/repostspace.js +4 -4
  341. package/lib/generated/services/researchstudio.js +1 -1
  342. package/lib/generated/services/resiliencehub.js +9 -6
  343. package/lib/generated/services/resource-explorer-2.js +4 -4
  344. package/lib/generated/services/resource-explorer.js +1 -1
  345. package/lib/generated/services/resource-groups.js +4 -4
  346. package/lib/generated/services/rhelkb.js +1 -1
  347. package/lib/generated/services/robomaker.js +3 -3
  348. package/lib/generated/services/rolesanywhere.js +4 -4
  349. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  350. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  351. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  352. package/lib/generated/services/route53.js +4 -4
  353. package/lib/generated/services/route53domains.js +2 -2
  354. package/lib/generated/services/route53globalresolver.js +4 -4
  355. package/lib/generated/services/route53profiles.js +4 -4
  356. package/lib/generated/services/route53resolver.js +4 -4
  357. package/lib/generated/services/rtbfabric.js +4 -4
  358. package/lib/generated/services/rum.js +4 -4
  359. package/lib/generated/services/s3-object-lambda.js +3 -3
  360. package/lib/generated/services/s3-outposts.js +4 -4
  361. package/lib/generated/services/s3.js +4 -4
  362. package/lib/generated/services/s3express.js +3 -3
  363. package/lib/generated/services/s3files.js +4 -4
  364. package/lib/generated/services/s3tables.js +4 -4
  365. package/lib/generated/services/s3vectors.js +4 -4
  366. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  367. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  368. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  369. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  370. package/lib/generated/services/sagemaker.js +4 -4
  371. package/lib/generated/services/savingsplans.js +4 -4
  372. package/lib/generated/services/scheduler.js +4 -4
  373. package/lib/generated/services/schemas.js +4 -4
  374. package/lib/generated/services/scn.js +4 -4
  375. package/lib/generated/services/sdb.js +3 -3
  376. package/lib/generated/services/secretsmanager.js +4 -4
  377. package/lib/generated/services/security-ir.js +4 -4
  378. package/lib/generated/services/securityagent.js +4 -4
  379. package/lib/generated/services/securityhub.js +4 -4
  380. package/lib/generated/services/securitylake.js +4 -4
  381. package/lib/generated/services/serverlessrepo.js +4 -4
  382. package/lib/generated/services/servicecatalog.js +4 -4
  383. package/lib/generated/services/servicediscovery.js +4 -4
  384. package/lib/generated/services/serviceextract.js +1 -1
  385. package/lib/generated/services/servicequotas.js +4 -4
  386. package/lib/generated/services/ses.js +4 -4
  387. package/lib/generated/services/shield.js +4 -4
  388. package/lib/generated/services/signer.js +4 -4
  389. package/lib/generated/services/signin.js +4 -4
  390. package/lib/generated/services/simspaceweaver.js +3 -3
  391. package/lib/generated/services/sms-voice.js +4 -4
  392. package/lib/generated/services/sms.js +1 -1
  393. package/lib/generated/services/snow-device-management.js +4 -4
  394. package/lib/generated/services/snowball.js +2 -2
  395. package/lib/generated/services/sns.js +4 -4
  396. package/lib/generated/services/social-messaging.js +4 -4
  397. package/lib/generated/services/sqlworkbench.js +3 -3
  398. package/lib/generated/services/sqs.js +4 -4
  399. package/lib/generated/services/ssm-contacts.js +4 -4
  400. package/lib/generated/services/ssm-guiconnect.js +2 -2
  401. package/lib/generated/services/ssm-incidents.js +4 -4
  402. package/lib/generated/services/ssm-quicksetup.js +4 -4
  403. package/lib/generated/services/ssm-sap.js +4 -4
  404. package/lib/generated/services/ssm.js +4 -4
  405. package/lib/generated/services/ssmmessages.js +2 -2
  406. package/lib/generated/services/sso-directory.js +1 -1
  407. package/lib/generated/services/sso-oauth.js +3 -3
  408. package/lib/generated/services/sso.js +4 -4
  409. package/lib/generated/services/states.js +4 -4
  410. package/lib/generated/services/storagegateway.js +4 -4
  411. package/lib/generated/services/sts.js +4 -4
  412. package/lib/generated/services/support-console.js +1 -1
  413. package/lib/generated/services/support.js +2 -2
  414. package/lib/generated/services/supportapp.js +2 -2
  415. package/lib/generated/services/supportauthz.js +4 -4
  416. package/lib/generated/services/supportplans.js +1 -1
  417. package/lib/generated/services/sustainability.js +2 -2
  418. package/lib/generated/services/swf.js +4 -4
  419. package/lib/generated/services/synthetics.js +4 -4
  420. package/lib/generated/services/tag.js +2 -2
  421. package/lib/generated/services/tax.js +2 -2
  422. package/lib/generated/services/textract.js +4 -4
  423. package/lib/generated/services/thinclient.js +4 -4
  424. package/lib/generated/services/timestream-influxdb.js +4 -4
  425. package/lib/generated/services/timestream.js +4 -4
  426. package/lib/generated/services/tiros.js +1 -1
  427. package/lib/generated/services/tnb.js +4 -4
  428. package/lib/generated/services/transcribe.js +4 -4
  429. package/lib/generated/services/transfer.js +4 -4
  430. package/lib/generated/services/transform-custom.js +3 -3
  431. package/lib/generated/services/transform.js +3 -3
  432. package/lib/generated/services/translate.js +4 -4
  433. package/lib/generated/services/trustedadvisor.js +3 -3
  434. package/lib/generated/services/ts.js +3 -3
  435. package/lib/generated/services/user-subscriptions.js +2 -2
  436. package/lib/generated/services/uxc.js +2 -2
  437. package/lib/generated/services/vendor-insights.js +3 -3
  438. package/lib/generated/services/verified-access.js +1 -1
  439. package/lib/generated/services/verifiedpermissions.js +4 -4
  440. package/lib/generated/services/voiceid.js +4 -4
  441. package/lib/generated/services/vpc-lattice-svcs.js +3 -3
  442. package/lib/generated/services/vpc-lattice.js +4 -4
  443. package/lib/generated/services/vpce.js +2 -2
  444. package/lib/generated/services/waf-regional.js +4 -4
  445. package/lib/generated/services/waf.js +4 -4
  446. package/lib/generated/services/wafv2.js +4 -4
  447. package/lib/generated/services/wam.js +1 -1
  448. package/lib/generated/services/wellarchitected.js +4 -4
  449. package/lib/generated/services/wickr.js +4 -4
  450. package/lib/generated/services/wisdom.js +4 -4
  451. package/lib/generated/services/workdocs.js +3 -3
  452. package/lib/generated/services/worklink.js +3 -3
  453. package/lib/generated/services/workmail.js +4 -4
  454. package/lib/generated/services/workmailmessageflow.js +3 -3
  455. package/lib/generated/services/workspaces-instances.js +4 -4
  456. package/lib/generated/services/workspaces-web.js +4 -4
  457. package/lib/generated/services/workspaces.js +4 -4
  458. package/lib/generated/services/xray.js +4 -4
  459. package/package.json +1 -1
@@ -16,7 +16,7 @@ class OamActions {
16
16
  }
17
17
  exports.OamActions = OamActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- OamActions[_a] = { fqn: "@cdk_utils/iam.oam.OamActions", version: "1.18.0" };
19
+ OamActions[_a] = { fqn: "@cdk_utils/iam.oam.OamActions", version: "1.19.0" };
20
20
  /** The IAM service prefix. */
21
21
  OamActions.SERVICE_PREFIX = "oam";
22
22
  /** [Write] oam:CreateLink */
@@ -142,7 +142,7 @@ class OamResources {
142
142
  }
143
143
  exports.OamResources = OamResources;
144
144
  _b = JSII_RTTI_SYMBOL_1;
145
- OamResources[_b] = { fqn: "@cdk_utils/iam.oam.OamResources", version: "1.18.0" };
145
+ OamResources[_b] = { fqn: "@cdk_utils/iam.oam.OamResources", version: "1.19.0" };
146
146
  /**
147
147
  * API operation to required IAM actions mapping for oam.
148
148
  */
@@ -150,7 +150,7 @@ class OamOperations {
150
150
  }
151
151
  exports.OamOperations = OamOperations;
152
152
  _c = JSII_RTTI_SYMBOL_1;
153
- OamOperations[_c] = { fqn: "@cdk_utils/iam.oam.OamOperations", version: "1.18.0" };
153
+ OamOperations[_c] = { fqn: "@cdk_utils/iam.oam.OamOperations", version: "1.19.0" };
154
154
  /** IAM actions required for the CreateLink API call. */
155
155
  OamOperations.CreateLink = [];
156
156
  /** IAM actions required for the CreateSink API call. */
@@ -212,7 +212,7 @@ class OamConditions {
212
212
  }
213
213
  exports.OamConditions = OamConditions;
214
214
  _d = JSII_RTTI_SYMBOL_1;
215
- OamConditions[_d] = { fqn: "@cdk_utils/iam.oam.OamConditions", version: "1.18.0" };
215
+ OamConditions[_d] = { fqn: "@cdk_utils/iam.oam.OamConditions", version: "1.19.0" };
216
216
  /** Condition keys applicable to the CreateLink action. */
217
217
  OamConditions.CreateLinkConditionKeys = [
218
218
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class ObservabilityadminActions {
16
16
  }
17
17
  exports.ObservabilityadminActions = ObservabilityadminActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- ObservabilityadminActions[_a] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminActions", version: "1.18.0" };
19
+ ObservabilityadminActions[_a] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminActions", version: "1.19.0" };
20
20
  /** The IAM service prefix. */
21
21
  ObservabilityadminActions.SERVICE_PREFIX = "observabilityadmin";
22
22
  /** [Write] observabilityadmin:CreateCentralizationRuleForOrganization */
@@ -305,7 +305,7 @@ class ObservabilityadminResources {
305
305
  }
306
306
  exports.ObservabilityadminResources = ObservabilityadminResources;
307
307
  _b = JSII_RTTI_SYMBOL_1;
308
- ObservabilityadminResources[_b] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminResources", version: "1.18.0" };
308
+ ObservabilityadminResources[_b] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminResources", version: "1.19.0" };
309
309
  /**
310
310
  * API operation to required IAM actions mapping for observabilityadmin.
311
311
  */
@@ -313,7 +313,7 @@ class ObservabilityadminOperations {
313
313
  }
314
314
  exports.ObservabilityadminOperations = ObservabilityadminOperations;
315
315
  _c = JSII_RTTI_SYMBOL_1;
316
- ObservabilityadminOperations[_c] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminOperations", version: "1.18.0" };
316
+ ObservabilityadminOperations[_c] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminOperations", version: "1.19.0" };
317
317
  /** IAM actions required for the CreateCentralizationRuleForOrganization API call. */
318
318
  ObservabilityadminOperations.CreateCentralizationRuleForOrganization = [
319
319
  "observabilityadmin:CreateCentralizationRuleForOrganization",
@@ -576,7 +576,7 @@ class ObservabilityadminConditions {
576
576
  }
577
577
  exports.ObservabilityadminConditions = ObservabilityadminConditions;
578
578
  _d = JSII_RTTI_SYMBOL_1;
579
- ObservabilityadminConditions[_d] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminConditions", version: "1.18.0" };
579
+ ObservabilityadminConditions[_d] = { fqn: "@cdk_utils/iam.observabilityadmin.ObservabilityadminConditions", version: "1.19.0" };
580
580
  /** Condition keys applicable to the CreateCentralizationRuleForOrganization action. */
581
581
  ObservabilityadminConditions.CreateCentralizationRuleForOrganizationConditionKeys = [
582
582
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class OdbActions {
16
16
  }
17
17
  exports.OdbActions = OdbActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- OdbActions[_a] = { fqn: "@cdk_utils/iam.odb.OdbActions", version: "1.18.0" };
19
+ OdbActions[_a] = { fqn: "@cdk_utils/iam.odb.OdbActions", version: "1.19.0" };
20
20
  /** The IAM service prefix. */
21
21
  OdbActions.SERVICE_PREFIX = "odb";
22
22
  /** [Write] odb:AcceptMarketplaceRegistration */
@@ -600,7 +600,7 @@ class OdbResources {
600
600
  }
601
601
  exports.OdbResources = OdbResources;
602
602
  _b = JSII_RTTI_SYMBOL_1;
603
- OdbResources[_b] = { fqn: "@cdk_utils/iam.odb.OdbResources", version: "1.18.0" };
603
+ OdbResources[_b] = { fqn: "@cdk_utils/iam.odb.OdbResources", version: "1.19.0" };
604
604
  /**
605
605
  * API operation to required IAM actions mapping for odb.
606
606
  */
@@ -608,7 +608,7 @@ class OdbOperations {
608
608
  }
609
609
  exports.OdbOperations = OdbOperations;
610
610
  _c = JSII_RTTI_SYMBOL_1;
611
- OdbOperations[_c] = { fqn: "@cdk_utils/iam.odb.OdbOperations", version: "1.18.0" };
611
+ OdbOperations[_c] = { fqn: "@cdk_utils/iam.odb.OdbOperations", version: "1.19.0" };
612
612
  /** IAM actions required for the AcceptMarketplaceRegistration API call. */
613
613
  OdbOperations.AcceptMarketplaceRegistration = [
614
614
  "odb:AcceptMarketplaceRegistration",
@@ -705,7 +705,9 @@ OdbOperations.DisassociateIamRoleFromResource = [
705
705
  "odb:DisassociateIamRoleFromResource",
706
706
  ];
707
707
  /** IAM actions required for the DisassociateVirtualMachinesFromExadbVmCluster API call. */
708
- OdbOperations.DisassociateVirtualMachinesFromExadbVmCluster = [];
708
+ OdbOperations.DisassociateVirtualMachinesFromExadbVmCluster = [
709
+ "odb:DisassociateVirtualMachinesFromExadbVmCluster",
710
+ ];
709
711
  /** IAM actions required for the FailoverAutonomousDatabase API call. */
710
712
  OdbOperations.FailoverAutonomousDatabase = [
711
713
  "odb:FailoverAutonomousDatabase",
@@ -906,7 +908,7 @@ class OdbConditions {
906
908
  }
907
909
  exports.OdbConditions = OdbConditions;
908
910
  _d = JSII_RTTI_SYMBOL_1;
909
- OdbConditions[_d] = { fqn: "@cdk_utils/iam.odb.OdbConditions", version: "1.18.0" };
911
+ OdbConditions[_d] = { fqn: "@cdk_utils/iam.odb.OdbConditions", version: "1.19.0" };
910
912
  /** Condition keys applicable to the CreateAutonomousDatabase action. */
911
913
  OdbConditions.CreateAutonomousDatabaseConditionKeys = [
912
914
  "aws:RequestTag/${TagKey}",
@@ -973,4 +975,4 @@ OdbConditions.AWS_REQUEST_TAG = "aws:RequestTag/${TagKey}";
973
975
  OdbConditions.AWS_RESOURCE_TAG = "aws:ResourceTag/${TagKey}";
974
976
  /** Condition key: aws:TagKeys (ArrayOfString) */
975
977
  OdbConditions.AWS_TAG_KEYS = "aws:TagKeys";
976
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2RiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9vZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCwwQ0FBMEM7QUFDMUMsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsVUFBVTs7QUFBdkIsZ0NBaVVDOzs7QUFoVUEsOEJBQThCO0FBQ2QseUJBQWMsR0FBRyxLQUFLLENBQUM7QUFFdkMsZ0RBQWdEO0FBQ2hDLHdDQUE2QixHQUM1QyxtQ0FBbUMsQ0FBQztBQUNyQyw2Q0FBNkM7QUFDN0IscUNBQTBCLEdBQUcsZ0NBQWdDLENBQUM7QUFDOUUsMkRBQTJEO0FBQzNDLG1EQUF3QyxHQUN2RCw4Q0FBOEMsQ0FBQztBQUNoRCwyQ0FBMkM7QUFDM0IsbUNBQXdCLEdBQUcsOEJBQThCLENBQUM7QUFDMUUsaURBQWlEO0FBQ2pDLHlDQUE4QixHQUM3QyxvQ0FBb0MsQ0FBQztBQUN0QyxpREFBaUQ7QUFDakMseUNBQThCLEdBQzdDLG9DQUFvQyxDQUFDO0FBQ3RDLGlEQUFpRDtBQUNqQyx5Q0FBOEIsR0FDN0Msb0NBQW9DLENBQUM7QUFDdEMsbURBQW1EO0FBQ25DLDJDQUFnQyxHQUMvQyxzQ0FBc0MsQ0FBQztBQUN4Qyx1Q0FBdUM7QUFDdkIsK0JBQW9CLEdBQUcsMEJBQTBCLENBQUM7QUFDbEUsK0JBQStCO0FBQ2YsdUJBQVksR0FBRyxrQkFBa0IsQ0FBQztBQUNsRCx1Q0FBdUM7QUFDdkIsK0JBQW9CLEdBQUcsMEJBQTBCLENBQUM7QUFDbEUsK0NBQStDO0FBQy9CLHVDQUE0QixHQUMzQyxrQ0FBa0MsQ0FBQztBQUNwQyxtQ0FBbUM7QUFDbkIsMkJBQWdCLEdBQUcsc0JBQXNCLENBQUM7QUFDMUQsbUNBQW1DO0FBQ25CLDJCQUFnQixHQUFHLHNCQUFzQixDQUFDO0FBQzFELDZD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QUNwRCwrQ0FBaUMsR0FBYTtJQUM3RCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiw0RUFBNEU7QUFDNUQsdURBQXlDLEdBQWE7SUFDckUsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsZ0VBQWdFO0FBQ2hELDJDQUE2QixHQUFhO0lBQ3pELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDBFQUEwRTtBQUMxRCxxREFBdUMsR0FBYTtJQUNuRSwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRixtRUFBbUU7QUFDbkQsOENBQWdDLEdBQWE7SUFDNUQsMkJBQTJCO0NBQzNCLENBQUM7QUFDRiwyREFBMkQ7QUFDM0Msc0NBQXdCLEdBQWE7SUFDcEQsMEJBQTBCO0lBQzFCLDJCQUEyQjtJQUMzQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDZEQUE2RDtBQUM3Qyx3Q0FBMEIsR0FBYTtJQUN0RCwyQkFBMkI7SUFDM0IsYUFBYTtDQUNiLENBQUM7QUFFRix1REFBdUQ7QUFDdkMsNkJBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCx3REFBd0Q7QUFDeEMsOEJBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDL0QsaURBQWlEO0FBQ2pDLDBCQUFZLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2Uvb2RiLmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSBvZGIgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE9kYkFjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJvZGJcIjtcblxuXHQvKiogW1dyaXRlXSBvZGI6QWNjZXB0TWFya2V0cGxhY2VSZWdpc3RyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFjY2VwdE1hcmtldHBsYWNlUmVnaXN0cmF0aW9uID1cblx0XHRcIm9kYjpBY2NlcHRNYXJrZXRwbGFjZVJlZ2lzdHJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBvZGI6QXNzb2NpYXRlSWFtUm9sZVRvUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZUlhbVJvbGVUb1Jlc291cmNlID0gXCJvZGI6QXNzb2NpYXRlSWFtUm9sZVRvUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkFzc29jaWF0ZVZpcnR1YWxNYWNoaW5lc1RvRXhhZGJWbUNsdXN0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZVZpcnR1YWxNYWNoaW5lc1RvRXhhZGJWbUNsdXN0ZXIgPVxuXHRcdFwib2RiOkFzc29jaWF0ZVZpcnR1YWxNYWNoaW5lc1RvRXhhZGJWbUNsdXN0ZXJcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkNyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQXV0b25vbW91c0RhdGFiYXNlID0gXCJvZGI6Q3JlYXRlQXV0b25vbW91c0RhdGFiYXNlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cCA9XG5cdFx0XCJvZGI6Q3JlYXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2VXYWxsZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZVdhbGxldCA9XG5cdFx0XCJvZGI6Q3JlYXRlQXV0b25vbW91c0RhdGFiYXNlV2FsbGV0XCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpDcmVhdGVDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlciA9XG5cdFx0XCJvZGI6Q3JlYXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpDcmVhdGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUgPVxuXHRcdFwib2RiOkNyZWF0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpDcmVhdGVDbG91ZFZtQ2x1c3RlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2xvdWRWbUNsdXN0ZXIgPSBcIm9kYjpDcmVhdGVDbG91ZFZtQ2x1c3RlclwiO1xuXHQvKiogW1dyaXRlXSBvZGI6Q3JlYXRlRGJOb2RlICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYk5vZGUgPSBcIm9kYjpDcmVhdGVEYk5vZGVcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkNyZWF0ZUV4YWRiVm1DbHVzdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeGFkYlZtQ2x1c3RlciA9IFwib2RiOkNyZWF0ZUV4YWRiVm1DbHVzdGVyXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpDcmVhdGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0ID1cblx0XHRcIm9kYjpDcmVhdGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0XCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpDcmVhdGVHcmFudFNoYXJlICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVHcmFudFNoYXJlID0gXCJvZGI6Q3JlYXRlR3JhbnRTaGFyZVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6Q3JlYXRlT2RiTmV0d29yayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlT2RiTmV0d29yayA9IFwib2RiOkNyZWF0ZU9kYk5ldHdvcmtcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkNyZWF0ZU9kYlBlZXJpbmdDb25uZWN0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVPZGJQZWVyaW5nQ29ubmVjdGlvbiA9IFwib2RiOkNyZWF0ZU9kYlBlZXJpbmdDb25uZWN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpDcmVhdGVPdXRib3VuZEludGVncmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVPdXRib3VuZEludGVncmF0aW9uID0gXCJvZGI6Q3JlYXRlT3V0Ym91bmRJbnRlZ3JhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBvZGI6RGVsZXRlQXV0b25vbW91c0RhdGFiYXNlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVBdXRvbm9tb3VzRGF0YWJhc2UgPSBcIm9kYjpEZWxldGVBdXRvbm9tb3VzRGF0YWJhc2VcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkRlbGV0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwID1cblx0XHRcIm9kYjpEZWxldGVBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkRlbGV0ZUNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyID1cblx0XHRcIm9kYjpEZWxldGVDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkRlbGV0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZSA9XG5cdFx0XCJvZGI6RGVsZXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkRlbGV0ZUNsb3VkVm1DbHVzdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDbG91ZFZtQ2x1c3RlciA9IFwib2RiOkRlbGV0ZUNsb3VkVm1DbHVzdGVyXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpEZWxldGVEYk5vZGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURiTm9kZSA9IFwib2RiOkRlbGV0ZURiTm9kZVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6RGVsZXRlRXhhZGJWbUNsdXN0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV4YWRiVm1DbHVzdGVyID0gXCJvZGI6RGVsZXRlRXhhZGJWbUNsdXN0ZXJcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkRlbGV0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHQgPVxuXHRcdFwib2RiOkRlbGV0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHRcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkRlbGV0ZUdyYW50U2hhcmUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUdyYW50U2hhcmUgPSBcIm9kYjpEZWxldGVHcmFudFNoYXJlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpEZWxldGVPZGJOZXR3b3JrICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVPZGJOZXR3b3JrID0gXCJvZGI6RGVsZXRlT2RiTmV0d29ya1wiO1xuXHQvKiogW1dyaXRlXSBvZGI6RGVsZXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU9kYlBlZXJpbmdDb25uZWN0aW9uID0gXCJvZGI6RGVsZXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb25cIjtcblx0LyoqIFtXcml0ZV0gb2RiOkRlbGV0ZVJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXNvdXJjZVBvbGljeSA9IFwib2RiOkRlbGV0ZVJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpEaXNhc3NvY2lhdGVJYW1Sb2xlRnJvbVJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVJYW1Sb2xlRnJvbVJlc291cmNlID1cblx0XHRcIm9kYjpEaXNhc3NvY2lhdGVJYW1Sb2xlRnJvbVJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpEaXNhc3NvY2lhdGVWaXJ0dWFsTWFjaGluZXNGcm9tRXhhZGJWbUNsdXN0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Fzc29jaWF0ZVZpcnR1YWxNYWNoaW5lc0Zyb21FeGFkYlZtQ2x1c3RlciA9XG5cdFx0XCJvZGI6RGlzYXNzb2NpYXRlVmlydHVhbE1hY2hpbmVzRnJvbUV4YWRiVm1DbHVzdGVyXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpGYWlsb3ZlckF1dG9ub21vdXNEYXRhYmFzZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRmFpbG92ZXJBdXRvbm9tb3VzRGF0YWJhc2UgPSBcIm9kYjpGYWlsb3ZlckF1dG9ub21vdXNEYXRhYmFzZVwiO1xuXHQvKiogW1JlYWRdIG9kYjpHZXRBdXRvbm9tb3VzRGF0YWJhc2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEF1dG9ub21vdXNEYXRhYmFzZSA9IFwib2RiOkdldEF1dG9ub21vdXNEYXRhYmFzZVwiO1xuXHQvKiogW1JlYWRdIG9kYjpHZXRBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cCA9XG5cdFx0XCJvZGI6R2V0QXV0b25vbW91c0RhdGFiYXNlQmFja3VwXCI7XG5cdC8qKiBbUmVhZF0gb2RiOkdldEF1dG9ub21vdXNEYXRhYmFzZVdhbGxldERldGFpbHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEF1dG9ub21vdXNEYXRhYmFzZVdhbGxldERldGFpbHMgPVxuXHRcdFwib2RiOkdldEF1dG9ub21vdXNEYXRhYmFzZVdhbGxldERldGFpbHNcIjtcblx0LyoqIFtSZWFkXSBvZGI6R2V0Q2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXIgPVxuXHRcdFwib2RiOkdldENsb3VkQXV0b25vbW91c1ZtQ2x1c3RlclwiO1xuXHQvKiogW1JlYWRdIG9kYjpHZXRDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUgPVxuXHRcdFwib2RiOkdldENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlXCI7XG5cdC8qKiBbUmVhZF0gb2RiOkdldENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlVW5hbGxvY2F0ZWRSZXNvdXJjZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlVW5hbGxvY2F0ZWRSZXNvdXJjZXMgPVxuXHRcdFwib2RiOkdldENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlVW5hbGxvY2F0ZWRSZXNvdXJjZXNcIjtcblx0LyoqIFtSZWFkXSBvZGI6R2V0Q2xvdWRWbUNsdXN0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENsb3VkVm1DbHVzdGVyID0gXCJvZGI6R2V0Q2xvdWRWbUNsdXN0ZXJcIjtcblx0LyoqIFtSZWFkXSBvZGI6R2V0RGJOb2RlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREYk5vZGUgPSBcIm9kYjpHZXREYk5vZGVcIjtcblx0LyoqIFtSZWFkXSBvZGI6R2V0RGJTZXJ2ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERiU2VydmVyID0gXCJvZGI6R2V0RGJTZXJ2ZXJcIjtcblx0LyoqIFtSZWFkXSBvZGI6R2V0RXhhZGJWbUNsdXN0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEV4YWRiVm1DbHVzdGVyID0gXCJvZGI6R2V0RXhhZGJWbUNsdXN0ZXJcIjtcblx0LyoqIFtSZWFkXSBvZGI6R2V0RXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCA9XG5cdFx0XCJvZGI6R2V0RXhhc2NhbGVEYlN0b3JhZ2VWYXVsdFwiO1xuXHQvKiogW1JlYWRdIG9kYjpHZXRPY2lPbmJvYXJkaW5nU3RhdHVzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRPY2lPbmJvYXJkaW5nU3RhdHVzID0gXCJvZGI6R2V0T2NpT25ib2FyZGluZ1N0YXR1c1wiO1xuXHQvKiogW1JlYWRdIG9kYjpHZXRPZGJOZXR3b3JrICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRPZGJOZXR3b3JrID0gXCJvZGI6R2V0T2RiTmV0d29ya1wiO1xuXHQvKiogW1JlYWRdIG9kYjpHZXRPZGJQZWVyaW5nQ29ubmVjdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0T2RiUGVlcmluZ0Nvbm5lY3Rpb24gPSBcIm9kYjpHZXRPZGJQZWVyaW5nQ29ubmVjdGlvblwiO1xuXHQvKiogW1JlYWRdIG9kYjpHZXRSZXNvdXJjZVBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVzb3VyY2VQb2xpY3kgPSBcIm9kYjpHZXRSZXNvdXJjZVBvbGljeVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6SW5pdGlhbGl6ZVNlcnZpY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IEluaXRpYWxpemVTZXJ2aWNlID0gXCJvZGI6SW5pdGlhbGl6ZVNlcnZpY2VcIjtcblx0LyoqIFtMaXN0XSBvZGI6TGlzdEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBzID1cblx0XHRcIm9kYjpMaXN0QXV0b25vbW91c0RhdGFiYXNlQmFja3Vwc1wiO1xuXHQvKiogW0xpc3RdIG9kYjpMaXN0QXV0b25vbW91c0RhdGFiYXNlQ2hhcmFjdGVyU2V0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEF1dG9ub21vdXNEYXRhYmFzZUNoYXJhY3RlclNldHMgPVxuXHRcdFwib2RiOkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VDaGFyYWN0ZXJTZXRzXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VDbG9uZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBdXRvbm9tb3VzRGF0YWJhc2VDbG9uZXMgPVxuXHRcdFwib2RiOkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VDbG9uZXNcIjtcblx0LyoqIFtMaXN0XSBvZGI6TGlzdEF1dG9ub21vdXNEYXRhYmFzZVBlZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXV0b25vbW91c0RhdGFiYXNlUGVlcnMgPVxuXHRcdFwib2RiOkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VQZWVyc1wiO1xuXHQvKiogW0xpc3RdIG9kYjpMaXN0QXV0b25vbW91c0RhdGFiYXNlVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBdXRvbm9tb3VzRGF0YWJhc2VWZXJzaW9ucyA9XG5cdFx0XCJvZGI6TGlzdEF1dG9ub21vdXNEYXRhYmFzZVZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXV0b25vbW91c0RhdGFiYXNlcyA9IFwib2RiOkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VzXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RBdXRvbm9tb3VzVmlydHVhbE1hY2hpbmVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXV0b25vbW91c1ZpcnR1YWxNYWNoaW5lcyA9XG5cdFx0XCJvZGI6TGlzdEF1dG9ub21vdXNWaXJ0dWFsTWFjaGluZXNcIjtcblx0LyoqIFtMaXN0XSBvZGI6TGlzdENsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJzID1cblx0XHRcIm9kYjpMaXN0Q2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyc1wiO1xuXHQvKiogW0xpc3RdIG9kYjpMaXN0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVzID1cblx0XHRcIm9kYjpMaXN0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVzXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RDbG91ZFZtQ2x1c3RlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDbG91ZFZtQ2x1c3RlcnMgPSBcIm9kYjpMaXN0Q2xvdWRWbUNsdXN0ZXJzXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3REYk5vZGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGJOb2RlcyA9IFwib2RiOkxpc3REYk5vZGVzXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3REYlNlcnZlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REYlNlcnZlcnMgPSBcIm9kYjpMaXN0RGJTZXJ2ZXJzXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3REYlN5c3RlbVNoYXBlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERiU3lzdGVtU2hhcGVzID0gXCJvZGI6TGlzdERiU3lzdGVtU2hhcGVzXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RFeGFkYlZtQ2x1c3RlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFeGFkYlZtQ2x1c3RlcnMgPSBcIm9kYjpMaXN0RXhhZGJWbUNsdXN0ZXJzXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RFeGFzY2FsZURiU3RvcmFnZVZhdWx0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV4YXNjYWxlRGJTdG9yYWdlVmF1bHRzID1cblx0XHRcIm9kYjpMaXN0RXhhc2NhbGVEYlN0b3JhZ2VWYXVsdHNcIjtcblx0LyoqIFtMaXN0XSBvZGI6TGlzdEZsZXhDb21wb25lbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RmxleENvbXBvbmVudHMgPSBcIm9kYjpMaXN0RmxleENvbXBvbmVudHNcIjtcblx0LyoqIFtMaXN0XSBvZGI6TGlzdEdpTWlub3JWZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEdpTWlub3JWZXJzaW9ucyA9IFwib2RiOkxpc3RHaU1pbm9yVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBvZGI6TGlzdEdpVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RHaVZlcnNpb25zID0gXCJvZGI6TGlzdEdpVmVyc2lvbnNcIjtcblx0LyoqIFtMaXN0XSBvZGI6TGlzdE9kYk5ldHdvcmtzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0T2RiTmV0d29ya3MgPSBcIm9kYjpMaXN0T2RiTmV0d29ya3NcIjtcblx0LyoqIFtMaXN0XSBvZGI6TGlzdE9kYlBlZXJpbmdDb25uZWN0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE9kYlBlZXJpbmdDb25uZWN0aW9ucyA9IFwib2RiOkxpc3RPZGJQZWVyaW5nQ29ubmVjdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBvZGI6TGlzdFN5c3RlbVZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3lzdGVtVmVyc2lvbnMgPSBcIm9kYjpMaXN0U3lzdGVtVmVyc2lvbnNcIjtcblx0LyoqIFtSZWFkXSBvZGI6TGlzdFRhZ3NGb3JSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZSA9IFwib2RiOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gb2RiOlB1dFJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZXNvdXJjZVBvbGljeSA9IFwib2RiOlB1dFJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpSZWJvb3RBdXRvbm9tb3VzRGF0YWJhc2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlYm9vdEF1dG9ub21vdXNEYXRhYmFzZSA9IFwib2RiOlJlYm9vdEF1dG9ub21vdXNEYXRhYmFzZVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6UmVib290RGJOb2RlICovXG5cdHN0YXRpYyByZWFkb25seSBSZWJvb3REYk5vZGUgPSBcIm9kYjpSZWJvb3REYk5vZGVcIjtcblx0LyoqIFtXcml0ZV0gb2RiOlJlc3RvcmVBdXRvbm9tb3VzRGF0YWJhc2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlc3RvcmVBdXRvbm9tb3VzRGF0YWJhc2UgPSBcIm9kYjpSZXN0b3JlQXV0b25vbW91c0RhdGFiYXNlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpTaHJpbmtBdXRvbm9tb3VzRGF0YWJhc2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNocmlua0F1dG9ub21vdXNEYXRhYmFzZSA9IFwib2RiOlNocmlua0F1dG9ub21vdXNEYXRhYmFzZVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6U3RhcnRBdXRvbm9tb3VzRGF0YWJhc2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0QXV0b25vbW91c0RhdGFiYXNlID0gXCJvZGI6U3RhcnRBdXRvbm9tb3VzRGF0YWJhc2VcIjtcblx0LyoqIFtXcml0ZV0gb2RiOlN0YXJ0RGJOb2RlICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydERiTm9kZSA9IFwib2RiOlN0YXJ0RGJOb2RlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpTdG9wQXV0b25vbW91c0RhdGFiYXNlICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wQXV0b25vbW91c0RhdGFiYXNlID0gXCJvZGI6U3RvcEF1dG9ub21vdXNEYXRhYmFzZVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6U3RvcERiTm9kZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcERiTm9kZSA9IFwib2RiOlN0b3BEYk5vZGVcIjtcblx0LyoqIFtXcml0ZV0gb2RiOlN3aXRjaG92ZXJBdXRvbm9tb3VzRGF0YWJhc2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN3aXRjaG92ZXJBdXRvbm9tb3VzRGF0YWJhc2UgPVxuXHRcdFwib2RiOlN3aXRjaG92ZXJBdXRvbm9tb3VzRGF0YWJhc2VcIjtcblx0LyoqIFtUYWdnaW5nXSBvZGI6VGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlID0gXCJvZGI6VGFnUmVzb3VyY2VcIjtcblx0LyoqIFtUYWdnaW5nXSBvZGI6VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwib2RiOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gb2RiOlVwZGF0ZUF1dG9ub21vdXNEYXRhYmFzZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQXV0b25vbW91c0RhdGFiYXNlID0gXCJvZGI6VXBkYXRlQXV0b25vbW91c0RhdGFiYXNlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpVcGRhdGVBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cCA9XG5cdFx0XCJvZGI6VXBkYXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpVcGRhdGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUgPVxuXHRcdFwib2RiOlVwZGF0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpVcGRhdGVFeGFkYlZtQ2x1c3RlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXhhZGJWbUNsdXN0ZXIgPSBcIm9kYjpVcGRhdGVFeGFkYlZtQ2x1c3RlclwiO1xuXHQvKiogW1dyaXRlXSBvZGI6VXBkYXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCA9XG5cdFx0XCJvZGI6VXBkYXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdFwiO1xuXHQvKiogW1dyaXRlXSBvZGI6VXBkYXRlR3JhbnRTaGFyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlR3JhbnRTaGFyZSA9IFwib2RiOlVwZGF0ZUdyYW50U2hhcmVcIjtcblx0LyoqIFtXcml0ZV0gb2RiOlVwZGF0ZU9kYk5ldHdvcmsgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU9kYk5ldHdvcmsgPSBcIm9kYjpVcGRhdGVPZGJOZXR3b3JrXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpVcGRhdGVPZGJQZWVyaW5nQ29ubmVjdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb24gPSBcIm9kYjpVcGRhdGVPZGJQZWVyaW5nQ29ubmVjdGlvblwiO1xuXHQvKiogW1dyaXRlXSBvZGI6VXBkYXRlT3V0Ym91bmRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlT3V0Ym91bmRJbnRlZ3JhdGlvbiA9IFwib2RiOlVwZGF0ZU91dGJvdW5kSW50ZWdyYXRpb25cIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPZGJBY3Rpb25zLmFjdGlvbkdldEF1dG9ub21vdXNEYXRhYmFzZSxcblx0XHRPZGJBY3Rpb25zLmFjdGlvbkdldEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cCxcblx0XHRPZGJBY3Rpb25zLmFjdGlvbkdldEF1dG9ub21vdXNEYXRhYmFzZVdhbGxldERldGFpbHMsXG5cdFx0T2RiQWN0aW9ucy5hY3Rpb25HZXRDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXIsXG5cdFx0T2RiQWN0aW9ucy5hY3Rpb25HZXRDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZSxcblx0XHRPZGJBY3Rpb25zLmFjdGlvbkdldENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlVW5hbGxvY2F0ZWRSZXNvdXJjZXMsXG5cdFx0T2RiQWN0aW9ucy5hY3Rpb25HZXRDbG91ZFZtQ2x1c3Rlcixcblx0XHRPZGJBY3Rpb25zLmFjdGlvbkdldERiTm9kZSxcblx0XHRPZGJBY3Rpb25zLmFjdGlvbkdldERiU2VydmVyLFxuXHRcdE9kYkFjdGlvbnMuYWN0aW9uR2V0RXhhZGJWbUNsdXN0ZXIsXG5cdFx0T2RiQWN0aW9ucy5hY3Rpb25HZXRFeGFzY2FsZURiU3RvcmFnZVZhdWx0LFxuXHRcdE9kYkFjdGlvbnMuYWN0aW9uR2V0T2NpT25ib2FyZGluZ1N0YXR1cyxcblx0XHRPZGJBY3Rpb25zLmFjdGlvbkdldE9kYk5ldHdvcmssXG5cdFx0T2RiQWN0aW9ucy5hY3Rpb25HZXRPZGJQZWVyaW5nQ29ubmVjdGlvbixcblx0XHRPZGJBY3Rpb25zLmFjdGlvbkdldFJlc291cmNlUG9saWN5LFxuXHRcdE9kYkFjdGlvbnMuTGlzdFRhZ3NGb3JSZXNvdXJjZSxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPZGJBY3Rpb25zLkFjY2VwdE1hcmtldHBsYWNlUmVnaXN0cmF0aW9uLFxuXHRcdE9kYkFjdGlvbnMuQXNzb2NpYXRlSWFtUm9sZVRvUmVzb3VyY2UsXG5cdFx0T2RiQWN0aW9ucy5Bc3NvY2lhdGVWaXJ0dWFsTWFjaGluZXNUb0V4YWRiVm1DbHVzdGVyLFxuXHRcdE9kYkFjdGlvbnMuQ3JlYXRlQXV0b25vbW91c0RhdGFiYXNlLFxuXHRcdE9kYkFjdGlvbnMuQ3JlYXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwLFxuXHRcdE9kYkFjdGlvbnMuQ3JlYXRlQXV0b25vbW91c0RhdGFiYXNlV2FsbGV0LFxuXHRcdE9kYkFjdGlvbnMuQ3JlYXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyLFxuXHRcdE9kYkFjdGlvbnMuQ3JlYXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUsXG5cdFx0T2RiQWN0aW9ucy5DcmVhdGVDbG91ZFZtQ2x1c3Rlcixcblx0XHRPZGJBY3Rpb25zLkNyZWF0ZURiTm9kZSxcblx0XHRPZGJBY3Rpb25zLkNyZWF0ZUV4YWRiVm1DbHVzdGVyLFxuXHRcdE9kYkFjdGlvbnMuQ3JlYXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCxcblx0XHRPZGJBY3Rpb25zLkNyZWF0ZUdyYW50U2hhcmUsXG5cdFx0T2RiQWN0aW9ucy5DcmVhdGVPZGJOZXR3b3JrLFxuXHRcdE9kYkFjdGlvbnMuQ3JlYXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb24sXG5cdFx0T2RiQWN0aW9ucy5DcmVhdGVPdXRib3VuZEludGVncmF0aW9uLFxuXHRcdE9kYkFjdGlvbnMuRGVsZXRlQXV0b25vbW91c0RhdGFiYXNlLFxuXHRcdE9kYkFjdGlvbnMuRGVsZXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwLFxuXHRcdE9kYkFjdGlvbnMuRGVsZXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyLFxuXHRcdE9kYkFjdGlvbnMuRGVsZXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUsXG5cdFx0T2RiQWN0aW9ucy5EZWxldGVDbG91ZFZtQ2x1c3Rlcixcblx0XHRPZGJBY3Rpb25zLkRlbGV0ZURiTm9kZSxcblx0XHRPZGJBY3Rpb25zLkRlbGV0ZUV4YWRiVm1DbHVzdGVyLFxuXHRcdE9kYkFjdGlvbnMuRGVsZXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCxcblx0XHRPZGJBY3Rpb25zLkRlbGV0ZUdyYW50U2hhcmUsXG5cdFx0T2RiQWN0aW9ucy5EZWxldGVPZGJOZXR3b3JrLFxuXHRcdE9kYkFjdGlvbnMuRGVsZXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb24sXG5cdFx0T2RiQWN0aW9ucy5EZWxldGVSZXNvdXJjZVBvbGljeSxcblx0XHRPZGJBY3Rpb25zLkRpc2Fzc29jaWF0ZUlhbVJvbGVGcm9tUmVzb3VyY2UsXG5cdFx0T2RiQWN0aW9ucy5EaXNhc3NvY2lhdGVWaXJ0dWFsTWFjaGluZXNGcm9tRXhhZGJWbUNsdXN0ZXIsXG5cdFx0T2RiQWN0aW9ucy5GYWlsb3ZlckF1dG9ub21vdXNEYXRhYmFzZSxcblx0XHRPZGJBY3Rpb25zLkluaXRpYWxpemVTZXJ2aWNlLFxuXHRcdE9kYkFjdGlvbnMuUHV0UmVzb3VyY2VQb2xpY3ksXG5cdFx0T2RiQWN0aW9ucy5SZWJvb3RBdXRvbm9tb3VzRGF0YWJhc2UsXG5cdFx0T2RiQWN0aW9ucy5SZWJvb3REYk5vZGUsXG5cdFx0T2RiQWN0aW9ucy5SZXN0b3JlQXV0b25vbW91c0RhdGFiYXNlLFxuXHRcdE9kYkFjdGlvbnMuU2hyaW5rQXV0b25vbW91c0RhdGFiYXNlLFxuXHRcdE9kYkFjdGlvbnMuU3RhcnRBdXRvbm9tb3VzRGF0YWJhc2UsXG5cdFx0T2RiQWN0aW9ucy5TdGFydERiTm9kZSxcblx0XHRPZGJBY3Rpb25zLlN0b3BBdXRvbm9tb3VzRGF0YWJhc2UsXG5cdFx0T2RiQWN0aW9ucy5TdG9wRGJOb2RlLFxuXHRcdE9kYkFjdGlvbnMuU3dpdGNob3ZlckF1dG9ub21vdXNEYXRhYmFzZSxcblx0XHRPZGJBY3Rpb25zLlVwZGF0ZUF1dG9ub21vdXNEYXRhYmFzZSxcblx0XHRPZGJBY3Rpb25zLlVwZGF0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cCxcblx0XHRPZGJBY3Rpb25zLlVwZGF0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlLFxuXHRcdE9kYkFjdGlvbnMuVXBkYXRlRXhhZGJWbUNsdXN0ZXIsXG5cdFx0T2RiQWN0aW9ucy5VcGRhdGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0LFxuXHRcdE9kYkFjdGlvbnMuVXBkYXRlR3JhbnRTaGFyZSxcblx0XHRPZGJBY3Rpb25zLlVwZGF0ZU9kYk5ldHdvcmssXG5cdFx0T2RiQWN0aW9ucy5VcGRhdGVPZGJQZWVyaW5nQ29ubmVjdGlvbixcblx0XHRPZGJBY3Rpb25zLlVwZGF0ZU91dGJvdW5kSW50ZWdyYXRpb24sXG5cdF07XG5cdC8qKiBBbGwgbGlzdC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsTGlzdEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdE9kYkFjdGlvbnMuTGlzdEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cHMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0QXV0b25vbW91c0RhdGFiYXNlQ2hhcmFjdGVyU2V0cyxcblx0XHRPZGJBY3Rpb25zLkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VDbG9uZXMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0QXV0b25vbW91c0RhdGFiYXNlUGVlcnMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0QXV0b25vbW91c0RhdGFiYXNlVmVyc2lvbnMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0QXV0b25vbW91c0RhdGFiYXNlcyxcblx0XHRPZGJBY3Rpb25zLkxpc3RBdXRvbm9tb3VzVmlydHVhbE1hY2hpbmVzLFxuXHRcdE9kYkFjdGlvbnMuTGlzdENsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcnMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVzLFxuXHRcdE9kYkFjdGlvbnMuTGlzdENsb3VkVm1DbHVzdGVycyxcblx0XHRPZGJBY3Rpb25zLkxpc3REYk5vZGVzLFxuXHRcdE9kYkFjdGlvbnMuTGlzdERiU2VydmVycyxcblx0XHRPZGJBY3Rpb25zLkxpc3REYlN5c3RlbVNoYXBlcyxcblx0XHRPZGJBY3Rpb25zLkxpc3RFeGFkYlZtQ2x1c3RlcnMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0RXhhc2NhbGVEYlN0b3JhZ2VWYXVsdHMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0RmxleENvbXBvbmVudHMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0R2lNaW5vclZlcnNpb25zLFxuXHRcdE9kYkFjdGlvbnMuTGlzdEdpVmVyc2lvbnMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0T2RiTmV0d29ya3MsXG5cdFx0T2RiQWN0aW9ucy5MaXN0T2RiUGVlcmluZ0Nvbm5lY3Rpb25zLFxuXHRcdE9kYkFjdGlvbnMuTGlzdFN5c3RlbVZlcnNpb25zLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPZGJBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdE9kYkFjdGlvbnMuVW50YWdSZXNvdXJjZSxcblx0XTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGF1dG9ub21vdXMtZGF0YWJhc2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9kYkF1dG9ub21vdXNEYXRhYmFzZUFyblByb3BzIHtcblx0LyoqIFRoZSBBdXRvbm9tb3VzRGF0YWJhc2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgYXV0b25vbW91c0RhdGFiYXNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBhdXRvbm9tb3VzLWRhdGFiYXNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJBdXRvbm9tb3VzRGF0YWJhc2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEF1dG9ub21vdXNEYXRhYmFzZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYXV0b25vbW91c0RhdGFiYXNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGF1dG9ub21vdXMtZGF0YWJhc2UtYmFja3VwIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQXV0b25vbW91c0RhdGFiYXNlQmFja3VwSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgYXV0b25vbW91cy1kYXRhYmFzZS1iYWNrdXAgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9kYkF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQXV0b25vbW91c0RhdGFiYXNlQmFja3VwSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBhdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgY2xvdWQtYXV0b25vbW91cy12bS1jbHVzdGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVySWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY2xvdWQtYXV0b25vbW91cy12bS1jbHVzdGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVySWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNsb3VkLWV4YWRhdGEtaW5mcmFzdHJ1Y3R1cmUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9kYkNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlQXJuUHJvcHMge1xuXHQvKiogVGhlIENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjbG91ZC1leGFkYXRhLWluZnJhc3RydWN0dXJlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNsb3VkLXZtLWNsdXN0ZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9kYkNsb3VkVm1DbHVzdGVyQXJuUHJvcHMge1xuXHQvKiogVGhlIENsb3VkVm1DbHVzdGVySWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNsb3VkVm1DbHVzdGVySWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjbG91ZC12bS1jbHVzdGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJDbG91ZFZtQ2x1c3RlckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2xvdWRWbUNsdXN0ZXJJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNsb3VkVm1DbHVzdGVySWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRiLW5vZGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9kYkRCTm9kZUFyblByb3BzIHtcblx0LyoqIFRoZSBEYk5vZGVJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGJOb2RlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkYi1ub2RlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJEQk5vZGVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERiTm9kZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGJOb2RlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGV4YWRiLXZtLWNsdXN0ZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9kYkV4YWRiVm1DbHVzdGVyQXJuUHJvcHMge1xuXHQvKiogVGhlIEV4YWRiVm1DbHVzdGVySWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGV4YWRiVm1DbHVzdGVySWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBleGFkYi12bS1jbHVzdGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJFeGFkYlZtQ2x1c3RlckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRXhhZGJWbUNsdXN0ZXJJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGV4YWRiVm1DbHVzdGVySWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGV4YXNjYWxlLWRiLXN0b3JhZ2UtdmF1bHQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9kYkV4YXNjYWxlREJTdG9yYWdlVmF1bHRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBleGFzY2FsZURCU3RvcmFnZVZhdWx0SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBleGFzY2FsZS1kYi1zdG9yYWdlLXZhdWx0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJFeGFzY2FsZURCU3RvcmFnZVZhdWx0QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBFeGFzY2FsZURiU3RvcmFnZVZhdWx0SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBleGFzY2FsZURCU3RvcmFnZVZhdWx0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIG9kYi1uZXR3b3JrIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJPZGJOZXR3b3JrQXJuUHJvcHMge1xuXHQvKiogVGhlIE9kYk5ldHdvcmtJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgb2RiTmV0d29ya0lkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgb2RiLW5ldHdvcmsgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9kYk9kYk5ldHdvcmtBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIE9kYk5ldHdvcmtJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IG9kYk5ldHdvcmtJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgb2RiLXBlZXJpbmctY29ubmVjdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2RiT2RiUGVlcmluZ0Nvbm5lY3Rpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgT2RiUGVlcmluZ0Nvbm5lY3Rpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgb2RiUGVlcmluZ0Nvbm5lY3Rpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIG9kYi1wZWVyaW5nLWNvbm5lY3Rpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9kYk9kYlBlZXJpbmdDb25uZWN0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBPZGJQZWVyaW5nQ29ubmVjdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgb2RiUGVlcmluZ0Nvbm5lY3Rpb25JZDogc3RyaW5nO1xufVxuXG5jb25zdCBBdXRvbm9tb3VzRGF0YWJhc2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6b2RiOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6YXV0b25vbW91cy1kYXRhYmFzZVxcLyg/PGF1dG9ub21vdXNEYXRhYmFzZUlkPlteOi8/XSspJC87XG5jb25zdCBBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6b2RiOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6YXV0b25vbW91cy1kYXRhYmFzZS1iYWNrdXBcXC8oPzxhdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBJZD5bXjovP10rKSQvO1xuY29uc3QgQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9kYjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmNsb3VkLWF1dG9ub21vdXMtdm0tY2x1c3RlclxcLyg/PGNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcklkPlteOi8/XSspJC87XG5jb25zdCBDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvZGI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjbG91ZC1leGFkYXRhLWluZnJhc3RydWN0dXJlXFwvKD88Y2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVJZD5bXjovP10rKSQvO1xuY29uc3QgQ2xvdWRWbUNsdXN0ZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6b2RiOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y2xvdWQtdm0tY2x1c3RlclxcLyg/PGNsb3VkVm1DbHVzdGVySWQ+W146Lz9dKykkLztcbmNvbnN0IERCTm9kZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvZGI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkYi1ub2RlXFwvKD88ZGJOb2RlSWQ+W146Lz9dKykkLztcbmNvbnN0IEV4YWRiVm1DbHVzdGVyQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9kYjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmV4YWRiLXZtLWNsdXN0ZXJcXC8oPzxleGFkYlZtQ2x1c3RlcklkPlteOi8/XSspJC87XG5jb25zdCBFeGFzY2FsZURCU3RvcmFnZVZhdWx0QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9kYjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmV4YXNjYWxlLWRiLXN0b3JhZ2UtdmF1bHRcXC8oPzxleGFzY2FsZURCU3RvcmFnZVZhdWx0SWQ+W146Lz9dKykkLztcbmNvbnN0IE9kYk5ldHdvcmtBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6b2RiOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6b2RiLW5ldHdvcmtcXC8oPzxvZGJOZXR3b3JrSWQ+W146Lz9dKykkLztcbmNvbnN0IE9kYlBlZXJpbmdDb25uZWN0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9kYjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOm9kYi1wZWVyaW5nLWNvbm5lY3Rpb25cXC8oPzxvZGJQZWVyaW5nQ29ubmVjdGlvbklkPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3Igb2RiIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE9kYlJlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgYXV0b25vbW91cy1kYXRhYmFzZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBhdXRvbm9tb3VzRGF0YWJhc2UocHJvcHM6IE9kYkF1dG9ub21vdXNEYXRhYmFzZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpvZGI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06YXV0b25vbW91cy1kYXRhYmFzZS8ke3Byb3BzLmF1dG9ub21vdXNEYXRhYmFzZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhdXRvbm9tb3VzLWRhdGFiYXNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRBdXRvbm9tb3VzRGF0YWJhc2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQXV0b25vbW91c0RhdGFiYXNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGF1dG9ub21vdXMtZGF0YWJhc2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQXV0b25vbW91c0RhdGFiYXNlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBPZGJBdXRvbm9tb3VzRGF0YWJhc2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEF1dG9ub21vdXNEYXRhYmFzZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhdXRvbm9tb3VzLWRhdGFiYXNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGF1dG9ub21vdXNEYXRhYmFzZUlkOiBtYXRjaC5ncm91cHMhLmF1dG9ub21vdXNEYXRhYmFzZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGF1dG9ub21vdXMtZGF0YWJhc2UtYmFja3VwIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cChcblx0XHRwcm9wczogT2RiQXV0b25vbW91c0RhdGFiYXNlQmFja3VwQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06b2RiOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmF1dG9ub21vdXMtZGF0YWJhc2UtYmFja3VwLyR7cHJvcHMuYXV0b25vbW91c0RhdGFiYXNlQmFja3VwSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGF1dG9ub21vdXMtZGF0YWJhc2UtYmFja3VwIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQXV0b25vbW91c0RhdGFiYXNlQmFja3VwQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGF1dG9ub21vdXMtZGF0YWJhc2UtYmFja3VwIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cEFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogT2RiQXV0b25vbW91c0RhdGFiYXNlQmFja3VwQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXV0b25vbW91cy1kYXRhYmFzZS1iYWNrdXAgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0YXV0b25vbW91c0RhdGFiYXNlQmFja3VwSWQ6IG1hdGNoLmdyb3VwcyEuYXV0b25vbW91c0RhdGFiYXNlQmFja3VwSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY2xvdWQtYXV0b25vbW91cy12bS1jbHVzdGVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNsb3VkQXV0b25vbW91c1ZtQ2x1c3Rlcihcblx0XHRwcm9wczogT2RiQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06b2RiOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNsb3VkLWF1dG9ub21vdXMtdm0tY2x1c3Rlci8ke3Byb3BzLmNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjbG91ZC1hdXRvbm9tb3VzLXZtLWNsdXN0ZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENsb3VkQXV0b25vbW91c1ZtQ2x1c3RlckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY2xvdWQtYXV0b25vbW91cy12bS1jbHVzdGVyIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlckFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogT2RiQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2xvdWQtYXV0b25vbW91cy12bS1jbHVzdGVyIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcklkOiBtYXRjaC5ncm91cHMhLmNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNsb3VkLWV4YWRhdGEtaW5mcmFzdHJ1Y3R1cmUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUoXG5cdFx0cHJvcHM6IE9kYkNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06b2RiOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNsb3VkLWV4YWRhdGEtaW5mcmFzdHJ1Y3R1cmUvJHtwcm9wcy5jbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjbG91ZC1leGFkYXRhLWluZnJhc3RydWN0dXJlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjbG91ZC1leGFkYXRhLWluZnJhc3RydWN0dXJlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBPZGJDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY2xvdWQtZXhhZGF0YS1pbmZyYXN0cnVjdHVyZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUlkOiBtYXRjaC5ncm91cHMhLmNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY2xvdWQtdm0tY2x1c3RlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjbG91ZFZtQ2x1c3Rlcihwcm9wczogT2RiQ2xvdWRWbUNsdXN0ZXJBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06b2RiOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNsb3VkLXZtLWNsdXN0ZXIvJHtwcm9wcy5jbG91ZFZtQ2x1c3RlcklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjbG91ZC12bS1jbHVzdGVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDbG91ZFZtQ2x1c3RlckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDbG91ZFZtQ2x1c3RlckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBjbG91ZC12bS1jbHVzdGVyIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNsb3VkVm1DbHVzdGVyQXJuKGFybjogc3RyaW5nKTogT2RiQ2xvdWRWbUNsdXN0ZXJBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENsb3VkVm1DbHVzdGVyQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNsb3VkLXZtLWNsdXN0ZXIgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2xvdWRWbUNsdXN0ZXJJZDogbWF0Y2guZ3JvdXBzIS5jbG91ZFZtQ2x1c3RlcklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGRiLW5vZGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGJOb2RlKHByb3BzOiBPZGJEQk5vZGVBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06b2RiOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRiLW5vZGUvJHtwcm9wcy5kYk5vZGVJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZGItbm9kZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkREJOb2RlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERCTm9kZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkYi1ub2RlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURCTm9kZUFybihhcm46IHN0cmluZyk6IE9kYkRCTm9kZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gREJOb2RlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRiLW5vZGUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGJOb2RlSWQ6IG1hdGNoLmdyb3VwcyEuZGJOb2RlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZXhhZGItdm0tY2x1c3RlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBleGFkYlZtQ2x1c3Rlcihwcm9wczogT2RiRXhhZGJWbUNsdXN0ZXJBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06b2RiOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmV4YWRiLXZtLWNsdXN0ZXIvJHtwcm9wcy5leGFkYlZtQ2x1c3RlcklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBleGFkYi12bS1jbHVzdGVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFeGFkYlZtQ2x1c3RlckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBFeGFkYlZtQ2x1c3RlckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBleGFkYi12bS1jbHVzdGVyIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUV4YWRiVm1DbHVzdGVyQXJuKGFybjogc3RyaW5nKTogT2RiRXhhZGJWbUNsdXN0ZXJBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEV4YWRiVm1DbHVzdGVyQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGV4YWRiLXZtLWNsdXN0ZXIgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZXhhZGJWbUNsdXN0ZXJJZDogbWF0Y2guZ3JvdXBzIS5leGFkYlZtQ2x1c3RlcklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGV4YXNjYWxlLWRiLXN0b3JhZ2UtdmF1bHQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZXhhc2NhbGVEQlN0b3JhZ2VWYXVsdChcblx0XHRwcm9wczogT2RiRXhhc2NhbGVEQlN0b3JhZ2VWYXVsdEFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9kYjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpleGFzY2FsZS1kYi1zdG9yYWdlLXZhdWx0LyR7cHJvcHMuZXhhc2NhbGVEQlN0b3JhZ2VWYXVsdElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBleGFzY2FsZS1kYi1zdG9yYWdlLXZhdWx0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRFeGFzY2FsZURCU3RvcmFnZVZhdWx0QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEV4YXNjYWxlREJTdG9yYWdlVmF1bHRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZXhhc2NhbGUtZGItc3RvcmFnZS12YXVsdCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VFeGFzY2FsZURCU3RvcmFnZVZhdWx0QXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBPZGJFeGFzY2FsZURCU3RvcmFnZVZhdWx0QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBFeGFzY2FsZURCU3RvcmFnZVZhdWx0QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGV4YXNjYWxlLWRiLXN0b3JhZ2UtdmF1bHQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZXhhc2NhbGVEQlN0b3JhZ2VWYXVsdElkOiBtYXRjaC5ncm91cHMhLmV4YXNjYWxlREJTdG9yYWdlVmF1bHRJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBvZGItbmV0d29yayByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBvZGJOZXR3b3JrKHByb3BzOiBPZGJPZGJOZXR3b3JrQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9kYjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpvZGItbmV0d29yay8ke3Byb3BzLm9kYk5ldHdvcmtJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgb2RiLW5ldHdvcmsgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZE9kYk5ldHdvcmtBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gT2RiTmV0d29ya0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBvZGItbmV0d29yayBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VPZGJOZXR3b3JrQXJuKGFybjogc3RyaW5nKTogT2RiT2RiTmV0d29ya0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gT2RiTmV0d29ya0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBvZGItbmV0d29yayBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRvZGJOZXR3b3JrSWQ6IG1hdGNoLmdyb3VwcyEub2RiTmV0d29ya0lkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIG9kYi1wZWVyaW5nLWNvbm5lY3Rpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgb2RiUGVlcmluZ0Nvbm5lY3Rpb24ocHJvcHM6IE9kYk9kYlBlZXJpbmdDb25uZWN0aW9uQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9kYjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpvZGItcGVlcmluZy1jb25uZWN0aW9uLyR7cHJvcHMub2RiUGVlcmluZ0Nvbm5lY3Rpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgb2RiLXBlZXJpbmctY29ubmVjdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkT2RiUGVlcmluZ0Nvbm5lY3Rpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gT2RiUGVlcmluZ0Nvbm5lY3Rpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgb2RiLXBlZXJpbmctY29ubmVjdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VPZGJQZWVyaW5nQ29ubmVjdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogT2RiT2RiUGVlcmluZ0Nvbm5lY3Rpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE9kYlBlZXJpbmdDb25uZWN0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG9kYi1wZWVyaW5nLWNvbm5lY3Rpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0b2RiUGVlcmluZ0Nvbm5lY3Rpb25JZDogbWF0Y2guZ3JvdXBzIS5vZGJQZWVyaW5nQ29ubmVjdGlvbklkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIG9kYi5cbiAqL1xuZXhwb3J0IGNsYXNzIE9kYk9wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBY2NlcHRNYXJrZXRwbGFjZVJlZ2lzdHJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFjY2VwdE1hcmtldHBsYWNlUmVnaXN0cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpBY2NlcHRNYXJrZXRwbGFjZVJlZ2lzdHJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBc3NvY2lhdGVJYW1Sb2xlVG9SZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZUlhbVJvbGVUb1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpBc3NvY2lhdGVJYW1Sb2xlVG9SZXNvdXJjZVwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFzc29jaWF0ZVZpcnR1YWxNYWNoaW5lc1RvRXhhZGJWbUNsdXN0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVWaXJ0dWFsTWFjaGluZXNUb0V4YWRiVm1DbHVzdGVyOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2U6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkNyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZVwiLFxuXHRcdFwib2RiOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cDogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6Q3JlYXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZVdhbGxldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZVdhbGxldDogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6Q3JlYXRlQXV0b25vbW91c0RhdGFiYXNlV2FsbGV0XCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpDcmVhdGVDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJcIixcblx0XHRcIm9kYjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpDcmVhdGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZVwiLFxuXHRcdFwib2RiOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNsb3VkVm1DbHVzdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2xvdWRWbUNsdXN0ZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkNyZWF0ZUNsb3VkVm1DbHVzdGVyXCIsXG5cdFx0XCJvZGI6Q3JlYXRlRGJOb2RlXCIsXG5cdFx0XCJvZGI6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRXhhZGJWbUNsdXN0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeGFkYlZtQ2x1c3Rlcjogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHQ6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkNyZWF0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHRcIixcblx0XHRcIm9kYjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVPZGJOZXR3b3JrIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlT2RiTmV0d29yazogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6Q3JlYXRlT2RiTmV0d29ya1wiLFxuXHRcdFwib2RiOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZU9kYlBlZXJpbmdDb25uZWN0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkNyZWF0ZU9kYlBlZXJpbmdDb25uZWN0aW9uXCIsXG5cdFx0XCJvZGI6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQXV0b25vbW91c0RhdGFiYXNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQXV0b25vbW91c0RhdGFiYXNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpEZWxldGVBdXRvbm9tb3VzRGF0YWJhc2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpEZWxldGVBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpEZWxldGVDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6RGVsZXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ2xvdWRWbUNsdXN0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDbG91ZFZtQ2x1c3Rlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6RGVsZXRlQ2xvdWRWbUNsdXN0ZXJcIixcblx0XHRcIm9kYjpEZWxldGVEYk5vZGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRXhhZGJWbUNsdXN0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFeGFkYlZtQ2x1c3Rlcjogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHQ6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkRlbGV0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlT2RiTmV0d29yayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU9kYk5ldHdvcms6IHN0cmluZ1tdID0gW1wib2RiOkRlbGV0ZU9kYk5ldHdvcmtcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZU9kYlBlZXJpbmdDb25uZWN0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb246IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkRlbGV0ZU9kYlBlZXJpbmdDb25uZWN0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Fzc29jaWF0ZUlhbVJvbGVGcm9tUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVJYW1Sb2xlRnJvbVJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpEaXNhc3NvY2lhdGVJYW1Sb2xlRnJvbVJlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Fzc29jaWF0ZVZpcnR1YWxNYWNoaW5lc0Zyb21FeGFkYlZtQ2x1c3RlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Fzc29jaWF0ZVZpcnR1YWxNYWNoaW5lc0Zyb21FeGFkYlZtQ2x1c3Rlcjogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRmFpbG92ZXJBdXRvbm9tb3VzRGF0YWJhc2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBGYWlsb3ZlckF1dG9ub21vdXNEYXRhYmFzZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6RmFpbG92ZXJBdXRvbm9tb3VzRGF0YWJhc2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QXV0b25vbW91c0RhdGFiYXNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRBdXRvbm9tb3VzRGF0YWJhc2U6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkdldEF1dG9ub21vdXNEYXRhYmFzZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cDogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6R2V0QXV0b25vbW91c0RhdGFiYXNlQmFja3VwXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEF1dG9ub21vdXNEYXRhYmFzZVdhbGxldERldGFpbHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEF1dG9ub21vdXNEYXRhYmFzZVdhbGxldERldGFpbHM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkdldEF1dG9ub21vdXNEYXRhYmFzZVdhbGxldERldGFpbHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkdldENsb3VkQXV0b25vbW91c1ZtQ2x1c3RlclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmU6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkdldENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlVW5hbGxvY2F0ZWRSZXNvdXJjZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlVW5hbGxvY2F0ZWRSZXNvdXJjZXM6IHN0cmluZ1tdID1cblx0XHRbXCJvZGI6R2V0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVVbmFsbG9jYXRlZFJlc291cmNlc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q2xvdWRWbUNsdXN0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENsb3VkVm1DbHVzdGVyOiBzdHJpbmdbXSA9IFtcIm9kYjpHZXRDbG91ZFZtQ2x1c3RlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGJOb2RlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXREYk5vZGU6IHN0cmluZ1tdID0gW1wib2RiOkdldERiTm9kZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RGJTZXJ2ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldERiU2VydmVyOiBzdHJpbmdbXSA9IFtcIm9kYjpHZXREYlNlcnZlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RXhhZGJWbUNsdXN0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEV4YWRiVm1DbHVzdGVyOiBzdHJpbmdbXSA9IFtcIm9kYjpHZXRFeGFkYlZtQ2x1c3RlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RXhhc2NhbGVEYlN0b3JhZ2VWYXVsdDogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6R2V0RXhhc2NhbGVEYlN0b3JhZ2VWYXVsdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRPY2lPbmJvYXJkaW5nU3RhdHVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRPY2lPbmJvYXJkaW5nU3RhdHVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpHZXRPY2lPbmJvYXJkaW5nU3RhdHVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE9kYk5ldHdvcmsgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE9kYk5ldHdvcms6IHN0cmluZ1tdID0gW1wib2RiOkdldE9kYk5ldHdvcmtcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE9kYlBlZXJpbmdDb25uZWN0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRPZGJQZWVyaW5nQ29ubmVjdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6R2V0T2RiUGVlcmluZ0Nvbm5lY3Rpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgSW5pdGlhbGl6ZVNlcnZpY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBJbml0aWFsaXplU2VydmljZTogc3RyaW5nW10gPSBbXCJvZGI6SW5pdGlhbGl6ZVNlcnZpY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cHM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBdXRvbm9tb3VzRGF0YWJhc2VDaGFyYWN0ZXJTZXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEF1dG9ub21vdXNEYXRhYmFzZUNoYXJhY3RlclNldHM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VDaGFyYWN0ZXJTZXRzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBdXRvbm9tb3VzRGF0YWJhc2VDbG9uZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXV0b25vbW91c0RhdGFiYXNlQ2xvbmVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpMaXN0QXV0b25vbW91c0RhdGFiYXNlQ2xvbmVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBdXRvbm9tb3VzRGF0YWJhc2VQZWVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBdXRvbm9tb3VzRGF0YWJhc2VQZWVyczogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6TGlzdEF1dG9ub21vdXNEYXRhYmFzZVBlZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBdXRvbm9tb3VzRGF0YWJhc2VWZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBdXRvbm9tb3VzRGF0YWJhc2VWZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6TGlzdEF1dG9ub21vdXNEYXRhYmFzZVZlcnNpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBdXRvbm9tb3VzRGF0YWJhc2VzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEF1dG9ub21vdXNEYXRhYmFzZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBdXRvbm9tb3VzVmlydHVhbE1hY2hpbmVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEF1dG9ub21vdXNWaXJ0dWFsTWFjaGluZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkxpc3RBdXRvbm9tb3VzVmlydHVhbE1hY2hpbmVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcnM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkxpc3RDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpMaXN0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDbG91ZFZtQ2x1c3RlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2xvdWRWbUNsdXN0ZXJzOiBzdHJpbmdbXSA9IFtcIm9kYjpMaXN0Q2xvdWRWbUNsdXN0ZXJzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGJOb2RlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REYk5vZGVzOiBzdHJpbmdbXSA9IFtcIm9kYjpMaXN0RGJOb2Rlc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERiU2VydmVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REYlNlcnZlcnM6IHN0cmluZ1tdID0gW1wib2RiOkxpc3REYlNlcnZlcnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REYlN5c3RlbVNoYXBlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REYlN5c3RlbVNoYXBlczogc3RyaW5nW10gPSBbXCJvZGI6TGlzdERiU3lzdGVtU2hhcGVzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RXhhZGJWbUNsdXN0ZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV4YWRiVm1DbHVzdGVyczogc3RyaW5nW10gPSBbXCJvZGI6TGlzdEV4YWRiVm1DbHVzdGVyc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEV4YXNjYWxlRGJTdG9yYWdlVmF1bHRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV4YXNjYWxlRGJTdG9yYWdlVmF1bHRzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpMaXN0RXhhc2NhbGVEYlN0b3JhZ2VWYXVsdHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEZsZXhDb21wb25lbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZsZXhDb21wb25lbnRzOiBzdHJpbmdbXSA9IFtcIm9kYjpMaXN0RmxleENvbXBvbmVudHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RHaU1pbm9yVmVyc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0R2lNaW5vclZlcnNpb25zOiBzdHJpbmdbXSA9IFtcIm9kYjpMaXN0R2lNaW5vclZlcnNpb25zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0R2lWZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RHaVZlcnNpb25zOiBzdHJpbmdbXSA9IFtcIm9kYjpMaXN0R2lWZXJzaW9uc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdE9kYk5ldHdvcmtzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE9kYk5ldHdvcmtzOiBzdHJpbmdbXSA9IFtcIm9kYjpMaXN0T2RiTmV0d29ya3NcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RPZGJQZWVyaW5nQ29ubmVjdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0T2RiUGVlcmluZ0Nvbm5lY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpMaXN0T2RiUGVlcmluZ0Nvbm5lY3Rpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTeXN0ZW1WZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTeXN0ZW1WZXJzaW9uczogc3RyaW5nW10gPSBbXCJvZGI6TGlzdFN5c3RlbVZlcnNpb25zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJvZGI6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVib290QXV0b25vbW91c0RhdGFiYXNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVib290QXV0b25vbW91c0RhdGFiYXNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpSZWJvb3RBdXRvbm9tb3VzRGF0YWJhc2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVib290RGJOb2RlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVib290RGJOb2RlOiBzdHJpbmdbXSA9IFtcIm9kYjpSZWJvb3REYk5vZGVcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlc3RvcmVBdXRvbm9tb3VzRGF0YWJhc2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZXN0b3JlQXV0b25vbW91c0RhdGFiYXNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpSZXN0b3JlQXV0b25vbW91c0RhdGFiYXNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFNocmlua0F1dG9ub21vdXNEYXRhYmFzZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNocmlua0F1dG9ub21vdXNEYXRhYmFzZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6U2hyaW5rQXV0b25vbW91c0RhdGFiYXNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0QXV0b25vbW91c0RhdGFiYXNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRBdXRvbm9tb3VzRGF0YWJhc2U6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOlN0YXJ0QXV0b25vbW91c0RhdGFiYXNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0RGJOb2RlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnREYk5vZGU6IHN0cmluZ1tdID0gW1wib2RiOlN0YXJ0RGJOb2RlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wQXV0b25vbW91c0RhdGFiYXNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcEF1dG9ub21vdXNEYXRhYmFzZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6U3RvcEF1dG9ub21vdXNEYXRhYmFzZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wRGJOb2RlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcERiTm9kZTogc3RyaW5nW10gPSBbXCJvZGI6U3RvcERiTm9kZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3dpdGNob3ZlckF1dG9ub21vdXNEYXRhYmFzZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN3aXRjaG92ZXJBdXRvbm9tb3VzRGF0YWJhc2U6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOlN3aXRjaG92ZXJBdXRvbm9tb3VzRGF0YWJhc2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJvZGI6VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcIm9kYjpVbnRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVBdXRvbm9tb3VzRGF0YWJhc2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBdXRvbm9tb3VzRGF0YWJhc2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJvZGI6VXBkYXRlQXV0b25vbW91c0RhdGFiYXNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cDogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6VXBkYXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmU6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOlVwZGF0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUV4YWRiVm1DbHVzdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXhhZGJWbUNsdXN0ZXI6IHN0cmluZ1tdID0gW1wib2RiOlVwZGF0ZUV4YWRiVm1DbHVzdGVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdDogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6VXBkYXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVPZGJOZXR3b3JrIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlT2RiTmV0d29yazogc3RyaW5nW10gPSBbXCJvZGI6VXBkYXRlT2RiTmV0d29ya1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVPZGJQZWVyaW5nQ29ubmVjdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6VXBkYXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb25cIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIG9kYi5cbiAqL1xuZXhwb3J0IGNsYXNzIE9kYkNvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQXV0b25vbW91c0RhdGFiYXNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlckNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUNsb3VkVm1DbHVzdGVyIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNsb3VkVm1DbHVzdGVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVFeGFkYlZtQ2x1c3RlciBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeGFkYlZtQ2x1c3RlckNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVPZGJOZXR3b3JrIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU9kYk5ldHdvcmtDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZU9kYlBlZXJpbmdDb25uZWN0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU9kYlBlZXJpbmdDb25uZWN0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVbnRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxufVxuIl19
978
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2RiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9vZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCwwQ0FBMEM7QUFDMUMsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsVUFBVTs7QUFBdkIsZ0NBaVVDOzs7QUFoVUEsOEJBQThCO0FBQ2QseUJBQWMsR0FBRyxLQUFLLENBQUM7QUFFdkMsZ0RBQWdEO0FBQ2hDLHdDQUE2QixHQUM1QyxtQ0FBbUMsQ0FBQztBQUNyQyw2Q0FBNkM7QUFDN0IscUNBQTBCLEdBQUcsZ0NBQWdDLENBQUM7QUFDOUUsMkRBQTJEO0FBQzNDLG1EQUF3QyxHQUN2RCw4Q0FBOEMsQ0FBQztBQUNoRCwyQ0FBMkM7QUFDM0IsbUNBQXdCLEdBQUcsOEJBQThCLENBQUM7QUFDMUUsaURBQWlEO0FBQ2pDLHlDQUE4QixHQUM3QyxvQ0FBb0MsQ0FBQztBQUN0QyxpREFBaUQ7QUFDakMseUNBQThCLEdBQzdDLG9DQUFvQyxDQUFDO0FBQ3RDLGlEQUFpRDtBQUNqQyx5Q0FBOEIsR0FDN0Msb0NBQW9DLENBQUM7QUFDdEMsbURBQW1EO0FBQ25DLDJDQUFnQyxHQUMvQyxzQ0FBc0MsQ0FBQztBQUN4Qyx1Q0FBdUM7QUFDdkIsK0JBQW9CLEdBQUcsMEJBQTBCLENBQUM7QUFDbEUsK0JBQStCO0FBQ2YsdUJBQVksR0FBRyxrQkFBa0IsQ0FBQztBQUNsRCx1Q0FBdUM7QUFDdkIsK0JBQW9CLEdBQUcsMEJBQTBCLENBQUM7QUFDbEUsK0NBQStDO0FBQy9CLHVDQUE0QixHQUMzQyxrQ0FBa0MsQ0FBQztBQUNwQyxtQ0FBbUM7QUFDbkIsMkJBQWdCLEdBQUcsc0JBQXNCLENBQUM7QUFDMUQsbUNBQW1DO0FBQ25CLDJCQUFnQixHQUFHLHNCQUFzQixDQUFDO0FBQzFELDZD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QUFDRixvRUFBb0U7QUFDcEQsK0NBQWlDLEdBQWE7SUFDN0QsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsNEVBQTRFO0FBQzVELHVEQUF5QyxHQUFhO0lBQ3JFLDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLGdFQUFnRTtBQUNoRCwyQ0FBNkIsR0FBYTtJQUN6RCwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiwwRUFBMEU7QUFDMUQscURBQXVDLEdBQWE7SUFDbkUsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsbUVBQW1FO0FBQ25ELDhDQUFnQyxHQUFhO0lBQzVELDJCQUEyQjtDQUMzQixDQUFDO0FBQ0YsMkRBQTJEO0FBQzNDLHNDQUF3QixHQUFhO0lBQ3BELDBCQUEwQjtJQUMxQiwyQkFBMkI7SUFDM0IsYUFBYTtDQUNiLENBQUM7QUFDRiw2REFBNkQ7QUFDN0Msd0NBQTBCLEdBQWE7SUFDdEQsMkJBQTJCO0lBQzNCLGFBQWE7Q0FDYixDQUFDO0FBRUYsdURBQXVEO0FBQ3ZDLDZCQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFDN0Qsd0RBQXdEO0FBQ3hDLDhCQUFnQixHQUFHLDJCQUEyQixDQUFDO0FBQy9ELGlEQUFpRDtBQUNqQywwQkFBWSxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL29kYi5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgb2RiIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBPZGJBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwib2RiXCI7XG5cblx0LyoqIFtXcml0ZV0gb2RiOkFjY2VwdE1hcmtldHBsYWNlUmVnaXN0cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBBY2NlcHRNYXJrZXRwbGFjZVJlZ2lzdHJhdGlvbiA9XG5cdFx0XCJvZGI6QWNjZXB0TWFya2V0cGxhY2VSZWdpc3RyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2RiOkFzc29jaWF0ZUlhbVJvbGVUb1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVJYW1Sb2xlVG9SZXNvdXJjZSA9IFwib2RiOkFzc29jaWF0ZUlhbVJvbGVUb1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpBc3NvY2lhdGVWaXJ0dWFsTWFjaGluZXNUb0V4YWRiVm1DbHVzdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVWaXJ0dWFsTWFjaGluZXNUb0V4YWRiVm1DbHVzdGVyID1cblx0XHRcIm9kYjpBc3NvY2lhdGVWaXJ0dWFsTWFjaGluZXNUb0V4YWRiVm1DbHVzdGVyXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZSA9IFwib2RiOkNyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6Q3JlYXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXAgPVxuXHRcdFwib2RiOkNyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cFwiO1xuXHQvKiogW1dyaXRlXSBvZGI6Q3JlYXRlQXV0b25vbW91c0RhdGFiYXNlV2FsbGV0ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2VXYWxsZXQgPVxuXHRcdFwib2RiOkNyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZVdhbGxldFwiO1xuXHQvKiogW1dyaXRlXSBvZGI6Q3JlYXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXIgPVxuXHRcdFwib2RiOkNyZWF0ZUNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlclwiO1xuXHQvKiogW1dyaXRlXSBvZGI6Q3JlYXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlID1cblx0XHRcIm9kYjpDcmVhdGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6Q3JlYXRlQ2xvdWRWbUNsdXN0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNsb3VkVm1DbHVzdGVyID0gXCJvZGI6Q3JlYXRlQ2xvdWRWbUNsdXN0ZXJcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkNyZWF0ZURiTm9kZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGJOb2RlID0gXCJvZGI6Q3JlYXRlRGJOb2RlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpDcmVhdGVFeGFkYlZtQ2x1c3RlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXhhZGJWbUNsdXN0ZXIgPSBcIm9kYjpDcmVhdGVFeGFkYlZtQ2x1c3RlclwiO1xuXHQvKiogW1dyaXRlXSBvZGI6Q3JlYXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCA9XG5cdFx0XCJvZGI6Q3JlYXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdFwiO1xuXHQvKiogW1dyaXRlXSBvZGI6Q3JlYXRlR3JhbnRTaGFyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlR3JhbnRTaGFyZSA9IFwib2RiOkNyZWF0ZUdyYW50U2hhcmVcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkNyZWF0ZU9kYk5ldHdvcmsgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU9kYk5ldHdvcmsgPSBcIm9kYjpDcmVhdGVPZGJOZXR3b3JrXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpDcmVhdGVPZGJQZWVyaW5nQ29ubmVjdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb24gPSBcIm9kYjpDcmVhdGVPZGJQZWVyaW5nQ29ubmVjdGlvblwiO1xuXHQvKiogW1dyaXRlXSBvZGI6Q3JlYXRlT3V0Ym91bmRJbnRlZ3JhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlT3V0Ym91bmRJbnRlZ3JhdGlvbiA9IFwib2RiOkNyZWF0ZU91dGJvdW5kSW50ZWdyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gb2RiOkRlbGV0ZUF1dG9ub21vdXNEYXRhYmFzZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQXV0b25vbW91c0RhdGFiYXNlID0gXCJvZGI6RGVsZXRlQXV0b25vbW91c0RhdGFiYXNlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpEZWxldGVBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cCA9XG5cdFx0XCJvZGI6RGVsZXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpEZWxldGVDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlciA9XG5cdFx0XCJvZGI6RGVsZXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpEZWxldGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUgPVxuXHRcdFwib2RiOkRlbGV0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpEZWxldGVDbG91ZFZtQ2x1c3RlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2xvdWRWbUNsdXN0ZXIgPSBcIm9kYjpEZWxldGVDbG91ZFZtQ2x1c3RlclwiO1xuXHQvKiogW1dyaXRlXSBvZGI6RGVsZXRlRGJOb2RlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEYk5vZGUgPSBcIm9kYjpEZWxldGVEYk5vZGVcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkRlbGV0ZUV4YWRiVm1DbHVzdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFeGFkYlZtQ2x1c3RlciA9IFwib2RiOkRlbGV0ZUV4YWRiVm1DbHVzdGVyXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpEZWxldGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0ID1cblx0XHRcIm9kYjpEZWxldGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0XCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpEZWxldGVHcmFudFNoYXJlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVHcmFudFNoYXJlID0gXCJvZGI6RGVsZXRlR3JhbnRTaGFyZVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6RGVsZXRlT2RiTmV0d29yayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlT2RiTmV0d29yayA9IFwib2RiOkRlbGV0ZU9kYk5ldHdvcmtcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkRlbGV0ZU9kYlBlZXJpbmdDb25uZWN0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVPZGJQZWVyaW5nQ29ubmVjdGlvbiA9IFwib2RiOkRlbGV0ZU9kYlBlZXJpbmdDb25uZWN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpEZWxldGVSZXNvdXJjZVBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVzb3VyY2VQb2xpY3kgPSBcIm9kYjpEZWxldGVSZXNvdXJjZVBvbGljeVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6RGlzYXNzb2NpYXRlSWFtUm9sZUZyb21SZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlSWFtUm9sZUZyb21SZXNvdXJjZSA9XG5cdFx0XCJvZGI6RGlzYXNzb2NpYXRlSWFtUm9sZUZyb21SZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6RGlzYXNzb2NpYXRlVmlydHVhbE1hY2hpbmVzRnJvbUV4YWRiVm1DbHVzdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVWaXJ0dWFsTWFjaGluZXNGcm9tRXhhZGJWbUNsdXN0ZXIgPVxuXHRcdFwib2RiOkRpc2Fzc29jaWF0ZVZpcnR1YWxNYWNoaW5lc0Zyb21FeGFkYlZtQ2x1c3RlclwiO1xuXHQvKiogW1dyaXRlXSBvZGI6RmFpbG92ZXJBdXRvbm9tb3VzRGF0YWJhc2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IEZhaWxvdmVyQXV0b25vbW91c0RhdGFiYXNlID0gXCJvZGI6RmFpbG92ZXJBdXRvbm9tb3VzRGF0YWJhc2VcIjtcblx0LyoqIFtSZWFkXSBvZGI6R2V0QXV0b25vbW91c0RhdGFiYXNlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBdXRvbm9tb3VzRGF0YWJhc2UgPSBcIm9kYjpHZXRBdXRvbm9tb3VzRGF0YWJhc2VcIjtcblx0LyoqIFtSZWFkXSBvZGI6R2V0QXV0b25vbW91c0RhdGFiYXNlQmFja3VwICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXAgPVxuXHRcdFwib2RiOkdldEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cFwiO1xuXHQvKiogW1JlYWRdIG9kYjpHZXRBdXRvbm9tb3VzRGF0YWJhc2VXYWxsZXREZXRhaWxzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBdXRvbm9tb3VzRGF0YWJhc2VXYWxsZXREZXRhaWxzID1cblx0XHRcIm9kYjpHZXRBdXRvbm9tb3VzRGF0YWJhc2VXYWxsZXREZXRhaWxzXCI7XG5cdC8qKiBbUmVhZF0gb2RiOkdldENsb3VkQXV0b25vbW91c1ZtQ2x1c3RlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyID1cblx0XHRcIm9kYjpHZXRDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJcIjtcblx0LyoqIFtSZWFkXSBvZGI6R2V0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlID1cblx0XHRcIm9kYjpHZXRDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZVwiO1xuXHQvKiogW1JlYWRdIG9kYjpHZXRDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZVVuYWxsb2NhdGVkUmVzb3VyY2VzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZVVuYWxsb2NhdGVkUmVzb3VyY2VzID1cblx0XHRcIm9kYjpHZXRDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZVVuYWxsb2NhdGVkUmVzb3VyY2VzXCI7XG5cdC8qKiBbUmVhZF0gb2RiOkdldENsb3VkVm1DbHVzdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDbG91ZFZtQ2x1c3RlciA9IFwib2RiOkdldENsb3VkVm1DbHVzdGVyXCI7XG5cdC8qKiBbUmVhZF0gb2RiOkdldERiTm9kZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RGJOb2RlID0gXCJvZGI6R2V0RGJOb2RlXCI7XG5cdC8qKiBbUmVhZF0gb2RiOkdldERiU2VydmVyICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXREYlNlcnZlciA9IFwib2RiOkdldERiU2VydmVyXCI7XG5cdC8qKiBbUmVhZF0gb2RiOkdldEV4YWRiVm1DbHVzdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFeGFkYlZtQ2x1c3RlciA9IFwib2RiOkdldEV4YWRiVm1DbHVzdGVyXCI7XG5cdC8qKiBbUmVhZF0gb2RiOkdldEV4YXNjYWxlRGJTdG9yYWdlVmF1bHQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEV4YXNjYWxlRGJTdG9yYWdlVmF1bHQgPVxuXHRcdFwib2RiOkdldEV4YXNjYWxlRGJTdG9yYWdlVmF1bHRcIjtcblx0LyoqIFtSZWFkXSBvZGI6R2V0T2NpT25ib2FyZGluZ1N0YXR1cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0T2NpT25ib2FyZGluZ1N0YXR1cyA9IFwib2RiOkdldE9jaU9uYm9hcmRpbmdTdGF0dXNcIjtcblx0LyoqIFtSZWFkXSBvZGI6R2V0T2RiTmV0d29yayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0T2RiTmV0d29yayA9IFwib2RiOkdldE9kYk5ldHdvcmtcIjtcblx0LyoqIFtSZWFkXSBvZGI6R2V0T2RiUGVlcmluZ0Nvbm5lY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE9kYlBlZXJpbmdDb25uZWN0aW9uID0gXCJvZGI6R2V0T2RiUGVlcmluZ0Nvbm5lY3Rpb25cIjtcblx0LyoqIFtSZWFkXSBvZGI6R2V0UmVzb3VyY2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlc291cmNlUG9saWN5ID0gXCJvZGI6R2V0UmVzb3VyY2VQb2xpY3lcIjtcblx0LyoqIFtXcml0ZV0gb2RiOkluaXRpYWxpemVTZXJ2aWNlICovXG5cdHN0YXRpYyByZWFkb25seSBJbml0aWFsaXplU2VydmljZSA9IFwib2RiOkluaXRpYWxpemVTZXJ2aWNlXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXV0b25vbW91c0RhdGFiYXNlQmFja3VwcyA9XG5cdFx0XCJvZGI6TGlzdEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cHNcIjtcblx0LyoqIFtMaXN0XSBvZGI6TGlzdEF1dG9ub21vdXNEYXRhYmFzZUNoYXJhY3RlclNldHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBdXRvbm9tb3VzRGF0YWJhc2VDaGFyYWN0ZXJTZXRzID1cblx0XHRcIm9kYjpMaXN0QXV0b25vbW91c0RhdGFiYXNlQ2hhcmFjdGVyU2V0c1wiO1xuXHQvKiogW0xpc3RdIG9kYjpMaXN0QXV0b25vbW91c0RhdGFiYXNlQ2xvbmVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXV0b25vbW91c0RhdGFiYXNlQ2xvbmVzID1cblx0XHRcIm9kYjpMaXN0QXV0b25vbW91c0RhdGFiYXNlQ2xvbmVzXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VQZWVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEF1dG9ub21vdXNEYXRhYmFzZVBlZXJzID1cblx0XHRcIm9kYjpMaXN0QXV0b25vbW91c0RhdGFiYXNlUGVlcnNcIjtcblx0LyoqIFtMaXN0XSBvZGI6TGlzdEF1dG9ub21vdXNEYXRhYmFzZVZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXV0b25vbW91c0RhdGFiYXNlVmVyc2lvbnMgPVxuXHRcdFwib2RiOkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VWZXJzaW9uc1wiO1xuXHQvKiogW0xpc3RdIG9kYjpMaXN0QXV0b25vbW91c0RhdGFiYXNlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEF1dG9ub21vdXNEYXRhYmFzZXMgPSBcIm9kYjpMaXN0QXV0b25vbW91c0RhdGFiYXNlc1wiO1xuXHQvKiogW0xpc3RdIG9kYjpMaXN0QXV0b25vbW91c1ZpcnR1YWxNYWNoaW5lcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEF1dG9ub21vdXNWaXJ0dWFsTWFjaGluZXMgPVxuXHRcdFwib2RiOkxpc3RBdXRvbm9tb3VzVmlydHVhbE1hY2hpbmVzXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVycyA9XG5cdFx0XCJvZGI6TGlzdENsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcnNcIjtcblx0LyoqIFtMaXN0XSBvZGI6TGlzdENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlcyA9XG5cdFx0XCJvZGI6TGlzdENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlc1wiO1xuXHQvKiogW0xpc3RdIG9kYjpMaXN0Q2xvdWRWbUNsdXN0ZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2xvdWRWbUNsdXN0ZXJzID0gXCJvZGI6TGlzdENsb3VkVm1DbHVzdGVyc1wiO1xuXHQvKiogW0xpc3RdIG9kYjpMaXN0RGJOb2RlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERiTm9kZXMgPSBcIm9kYjpMaXN0RGJOb2Rlc1wiO1xuXHQvKiogW0xpc3RdIG9kYjpMaXN0RGJTZXJ2ZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGJTZXJ2ZXJzID0gXCJvZGI6TGlzdERiU2VydmVyc1wiO1xuXHQvKiogW0xpc3RdIG9kYjpMaXN0RGJTeXN0ZW1TaGFwZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REYlN5c3RlbVNoYXBlcyA9IFwib2RiOkxpc3REYlN5c3RlbVNoYXBlc1wiO1xuXHQvKiogW0xpc3RdIG9kYjpMaXN0RXhhZGJWbUNsdXN0ZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXhhZGJWbUNsdXN0ZXJzID0gXCJvZGI6TGlzdEV4YWRiVm1DbHVzdGVyc1wiO1xuXHQvKiogW0xpc3RdIG9kYjpMaXN0RXhhc2NhbGVEYlN0b3JhZ2VWYXVsdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFeGFzY2FsZURiU3RvcmFnZVZhdWx0cyA9XG5cdFx0XCJvZGI6TGlzdEV4YXNjYWxlRGJTdG9yYWdlVmF1bHRzXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RGbGV4Q29tcG9uZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZsZXhDb21wb25lbnRzID0gXCJvZGI6TGlzdEZsZXhDb21wb25lbnRzXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RHaU1pbm9yVmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RHaU1pbm9yVmVyc2lvbnMgPSBcIm9kYjpMaXN0R2lNaW5vclZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RHaVZlcnNpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0R2lWZXJzaW9ucyA9IFwib2RiOkxpc3RHaVZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RPZGJOZXR3b3JrcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE9kYk5ldHdvcmtzID0gXCJvZGI6TGlzdE9kYk5ldHdvcmtzXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RPZGJQZWVyaW5nQ29ubmVjdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RPZGJQZWVyaW5nQ29ubmVjdGlvbnMgPSBcIm9kYjpMaXN0T2RiUGVlcmluZ0Nvbm5lY3Rpb25zXCI7XG5cdC8qKiBbTGlzdF0gb2RiOkxpc3RTeXN0ZW1WZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN5c3RlbVZlcnNpb25zID0gXCJvZGI6TGlzdFN5c3RlbVZlcnNpb25zXCI7XG5cdC8qKiBbUmVhZF0gb2RiOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcIm9kYjpMaXN0VGFnc0ZvclJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpQdXRSZXNvdXJjZVBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVzb3VyY2VQb2xpY3kgPSBcIm9kYjpQdXRSZXNvdXJjZVBvbGljeVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6UmVib290QXV0b25vbW91c0RhdGFiYXNlICovXG5cdHN0YXRpYyByZWFkb25seSBSZWJvb3RBdXRvbm9tb3VzRGF0YWJhc2UgPSBcIm9kYjpSZWJvb3RBdXRvbm9tb3VzRGF0YWJhc2VcIjtcblx0LyoqIFtXcml0ZV0gb2RiOlJlYm9vdERiTm9kZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVib290RGJOb2RlID0gXCJvZGI6UmVib290RGJOb2RlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpSZXN0b3JlQXV0b25vbW91c0RhdGFiYXNlICovXG5cdHN0YXRpYyByZWFkb25seSBSZXN0b3JlQXV0b25vbW91c0RhdGFiYXNlID0gXCJvZGI6UmVzdG9yZUF1dG9ub21vdXNEYXRhYmFzZVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6U2hyaW5rQXV0b25vbW91c0RhdGFiYXNlICovXG5cdHN0YXRpYyByZWFkb25seSBTaHJpbmtBdXRvbm9tb3VzRGF0YWJhc2UgPSBcIm9kYjpTaHJpbmtBdXRvbm9tb3VzRGF0YWJhc2VcIjtcblx0LyoqIFtXcml0ZV0gb2RiOlN0YXJ0QXV0b25vbW91c0RhdGFiYXNlICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydEF1dG9ub21vdXNEYXRhYmFzZSA9IFwib2RiOlN0YXJ0QXV0b25vbW91c0RhdGFiYXNlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpTdGFydERiTm9kZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnREYk5vZGUgPSBcIm9kYjpTdGFydERiTm9kZVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6U3RvcEF1dG9ub21vdXNEYXRhYmFzZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcEF1dG9ub21vdXNEYXRhYmFzZSA9IFwib2RiOlN0b3BBdXRvbm9tb3VzRGF0YWJhc2VcIjtcblx0LyoqIFtXcml0ZV0gb2RiOlN0b3BEYk5vZGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BEYk5vZGUgPSBcIm9kYjpTdG9wRGJOb2RlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpTd2l0Y2hvdmVyQXV0b25vbW91c0RhdGFiYXNlICovXG5cdHN0YXRpYyByZWFkb25seSBTd2l0Y2hvdmVyQXV0b25vbW91c0RhdGFiYXNlID1cblx0XHRcIm9kYjpTd2l0Y2hvdmVyQXV0b25vbW91c0RhdGFiYXNlXCI7XG5cdC8qKiBbVGFnZ2luZ10gb2RiOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwib2RiOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbVGFnZ2luZ10gb2RiOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcIm9kYjpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpVcGRhdGVBdXRvbm9tb3VzRGF0YWJhc2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUF1dG9ub21vdXNEYXRhYmFzZSA9IFwib2RiOlVwZGF0ZUF1dG9ub21vdXNEYXRhYmFzZVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6VXBkYXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXAgPVxuXHRcdFwib2RiOlVwZGF0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cFwiO1xuXHQvKiogW1dyaXRlXSBvZGI6VXBkYXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlID1cblx0XHRcIm9kYjpVcGRhdGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZVwiO1xuXHQvKiogW1dyaXRlXSBvZGI6VXBkYXRlRXhhZGJWbUNsdXN0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV4YWRiVm1DbHVzdGVyID0gXCJvZGI6VXBkYXRlRXhhZGJWbUNsdXN0ZXJcIjtcblx0LyoqIFtXcml0ZV0gb2RiOlVwZGF0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHQgPVxuXHRcdFwib2RiOlVwZGF0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHRcIjtcblx0LyoqIFtXcml0ZV0gb2RiOlVwZGF0ZUdyYW50U2hhcmUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUdyYW50U2hhcmUgPSBcIm9kYjpVcGRhdGVHcmFudFNoYXJlXCI7XG5cdC8qKiBbV3JpdGVdIG9kYjpVcGRhdGVPZGJOZXR3b3JrICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVPZGJOZXR3b3JrID0gXCJvZGI6VXBkYXRlT2RiTmV0d29ya1wiO1xuXHQvKiogW1dyaXRlXSBvZGI6VXBkYXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU9kYlBlZXJpbmdDb25uZWN0aW9uID0gXCJvZGI6VXBkYXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb25cIjtcblx0LyoqIFtXcml0ZV0gb2RiOlVwZGF0ZU91dGJvdW5kSW50ZWdyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU91dGJvdW5kSW50ZWdyYXRpb24gPSBcIm9kYjpVcGRhdGVPdXRib3VuZEludGVncmF0aW9uXCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0T2RiQWN0aW9ucy5hY3Rpb25HZXRBdXRvbm9tb3VzRGF0YWJhc2UsXG5cdFx0T2RiQWN0aW9ucy5hY3Rpb25HZXRBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXAsXG5cdFx0T2RiQWN0aW9ucy5hY3Rpb25HZXRBdXRvbm9tb3VzRGF0YWJhc2VXYWxsZXREZXRhaWxzLFxuXHRcdE9kYkFjdGlvbnMuYWN0aW9uR2V0Q2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyLFxuXHRcdE9kYkFjdGlvbnMuYWN0aW9uR2V0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUsXG5cdFx0T2RiQWN0aW9ucy5hY3Rpb25HZXRDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZVVuYWxsb2NhdGVkUmVzb3VyY2VzLFxuXHRcdE9kYkFjdGlvbnMuYWN0aW9uR2V0Q2xvdWRWbUNsdXN0ZXIsXG5cdFx0T2RiQWN0aW9ucy5hY3Rpb25HZXREYk5vZGUsXG5cdFx0T2RiQWN0aW9ucy5hY3Rpb25HZXREYlNlcnZlcixcblx0XHRPZGJBY3Rpb25zLmFjdGlvbkdldEV4YWRiVm1DbHVzdGVyLFxuXHRcdE9kYkFjdGlvbnMuYWN0aW9uR2V0RXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCxcblx0XHRPZGJBY3Rpb25zLmFjdGlvbkdldE9jaU9uYm9hcmRpbmdTdGF0dXMsXG5cdFx0T2RiQWN0aW9ucy5hY3Rpb25HZXRPZGJOZXR3b3JrLFxuXHRcdE9kYkFjdGlvbnMuYWN0aW9uR2V0T2RiUGVlcmluZ0Nvbm5lY3Rpb24sXG5cdFx0T2RiQWN0aW9ucy5hY3Rpb25HZXRSZXNvdXJjZVBvbGljeSxcblx0XHRPZGJBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0T2RiQWN0aW9ucy5BY2NlcHRNYXJrZXRwbGFjZVJlZ2lzdHJhdGlvbixcblx0XHRPZGJBY3Rpb25zLkFzc29jaWF0ZUlhbVJvbGVUb1Jlc291cmNlLFxuXHRcdE9kYkFjdGlvbnMuQXNzb2NpYXRlVmlydHVhbE1hY2hpbmVzVG9FeGFkYlZtQ2x1c3Rlcixcblx0XHRPZGJBY3Rpb25zLkNyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZSxcblx0XHRPZGJBY3Rpb25zLkNyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cCxcblx0XHRPZGJBY3Rpb25zLkNyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZVdhbGxldCxcblx0XHRPZGJBY3Rpb25zLkNyZWF0ZUNsb3VkQXV0b25vbW91c1ZtQ2x1c3Rlcixcblx0XHRPZGJBY3Rpb25zLkNyZWF0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlLFxuXHRcdE9kYkFjdGlvbnMuQ3JlYXRlQ2xvdWRWbUNsdXN0ZXIsXG5cdFx0T2RiQWN0aW9ucy5DcmVhdGVEYk5vZGUsXG5cdFx0T2RiQWN0aW9ucy5DcmVhdGVFeGFkYlZtQ2x1c3Rlcixcblx0XHRPZGJBY3Rpb25zLkNyZWF0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHQsXG5cdFx0T2RiQWN0aW9ucy5DcmVhdGVHcmFudFNoYXJlLFxuXHRcdE9kYkFjdGlvbnMuQ3JlYXRlT2RiTmV0d29yayxcblx0XHRPZGJBY3Rpb25zLkNyZWF0ZU9kYlBlZXJpbmdDb25uZWN0aW9uLFxuXHRcdE9kYkFjdGlvbnMuQ3JlYXRlT3V0Ym91bmRJbnRlZ3JhdGlvbixcblx0XHRPZGJBY3Rpb25zLkRlbGV0ZUF1dG9ub21vdXNEYXRhYmFzZSxcblx0XHRPZGJBY3Rpb25zLkRlbGV0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cCxcblx0XHRPZGJBY3Rpb25zLkRlbGV0ZUNsb3VkQXV0b25vbW91c1ZtQ2x1c3Rlcixcblx0XHRPZGJBY3Rpb25zLkRlbGV0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlLFxuXHRcdE9kYkFjdGlvbnMuRGVsZXRlQ2xvdWRWbUNsdXN0ZXIsXG5cdFx0T2RiQWN0aW9ucy5EZWxldGVEYk5vZGUsXG5cdFx0T2RiQWN0aW9ucy5EZWxldGVFeGFkYlZtQ2x1c3Rlcixcblx0XHRPZGJBY3Rpb25zLkRlbGV0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHQsXG5cdFx0T2RiQWN0aW9ucy5EZWxldGVHcmFudFNoYXJlLFxuXHRcdE9kYkFjdGlvbnMuRGVsZXRlT2RiTmV0d29yayxcblx0XHRPZGJBY3Rpb25zLkRlbGV0ZU9kYlBlZXJpbmdDb25uZWN0aW9uLFxuXHRcdE9kYkFjdGlvbnMuRGVsZXRlUmVzb3VyY2VQb2xpY3ksXG5cdFx0T2RiQWN0aW9ucy5EaXNhc3NvY2lhdGVJYW1Sb2xlRnJvbVJlc291cmNlLFxuXHRcdE9kYkFjdGlvbnMuRGlzYXNzb2NpYXRlVmlydHVhbE1hY2hpbmVzRnJvbUV4YWRiVm1DbHVzdGVyLFxuXHRcdE9kYkFjdGlvbnMuRmFpbG92ZXJBdXRvbm9tb3VzRGF0YWJhc2UsXG5cdFx0T2RiQWN0aW9ucy5Jbml0aWFsaXplU2VydmljZSxcblx0XHRPZGJBY3Rpb25zLlB1dFJlc291cmNlUG9saWN5LFxuXHRcdE9kYkFjdGlvbnMuUmVib290QXV0b25vbW91c0RhdGFiYXNlLFxuXHRcdE9kYkFjdGlvbnMuUmVib290RGJOb2RlLFxuXHRcdE9kYkFjdGlvbnMuUmVzdG9yZUF1dG9ub21vdXNEYXRhYmFzZSxcblx0XHRPZGJBY3Rpb25zLlNocmlua0F1dG9ub21vdXNEYXRhYmFzZSxcblx0XHRPZGJBY3Rpb25zLlN0YXJ0QXV0b25vbW91c0RhdGFiYXNlLFxuXHRcdE9kYkFjdGlvbnMuU3RhcnREYk5vZGUsXG5cdFx0T2RiQWN0aW9ucy5TdG9wQXV0b25vbW91c0RhdGFiYXNlLFxuXHRcdE9kYkFjdGlvbnMuU3RvcERiTm9kZSxcblx0XHRPZGJBY3Rpb25zLlN3aXRjaG92ZXJBdXRvbm9tb3VzRGF0YWJhc2UsXG5cdFx0T2RiQWN0aW9ucy5VcGRhdGVBdXRvbm9tb3VzRGF0YWJhc2UsXG5cdFx0T2RiQWN0aW9ucy5VcGRhdGVBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXAsXG5cdFx0T2RiQWN0aW9ucy5VcGRhdGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZSxcblx0XHRPZGJBY3Rpb25zLlVwZGF0ZUV4YWRiVm1DbHVzdGVyLFxuXHRcdE9kYkFjdGlvbnMuVXBkYXRlRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdCxcblx0XHRPZGJBY3Rpb25zLlVwZGF0ZUdyYW50U2hhcmUsXG5cdFx0T2RiQWN0aW9ucy5VcGRhdGVPZGJOZXR3b3JrLFxuXHRcdE9kYkFjdGlvbnMuVXBkYXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb24sXG5cdFx0T2RiQWN0aW9ucy5VcGRhdGVPdXRib3VuZEludGVncmF0aW9uLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRPZGJBY3Rpb25zLkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBzLFxuXHRcdE9kYkFjdGlvbnMuTGlzdEF1dG9ub21vdXNEYXRhYmFzZUNoYXJhY3RlclNldHMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0QXV0b25vbW91c0RhdGFiYXNlQ2xvbmVzLFxuXHRcdE9kYkFjdGlvbnMuTGlzdEF1dG9ub21vdXNEYXRhYmFzZVBlZXJzLFxuXHRcdE9kYkFjdGlvbnMuTGlzdEF1dG9ub21vdXNEYXRhYmFzZVZlcnNpb25zLFxuXHRcdE9kYkFjdGlvbnMuTGlzdEF1dG9ub21vdXNEYXRhYmFzZXMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0QXV0b25vbW91c1ZpcnR1YWxNYWNoaW5lcyxcblx0XHRPZGJBY3Rpb25zLkxpc3RDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJzLFxuXHRcdE9kYkFjdGlvbnMuTGlzdENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlcyxcblx0XHRPZGJBY3Rpb25zLkxpc3RDbG91ZFZtQ2x1c3RlcnMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0RGJOb2Rlcyxcblx0XHRPZGJBY3Rpb25zLkxpc3REYlNlcnZlcnMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0RGJTeXN0ZW1TaGFwZXMsXG5cdFx0T2RiQWN0aW9ucy5MaXN0RXhhZGJWbUNsdXN0ZXJzLFxuXHRcdE9kYkFjdGlvbnMuTGlzdEV4YXNjYWxlRGJTdG9yYWdlVmF1bHRzLFxuXHRcdE9kYkFjdGlvbnMuTGlzdEZsZXhDb21wb25lbnRzLFxuXHRcdE9kYkFjdGlvbnMuTGlzdEdpTWlub3JWZXJzaW9ucyxcblx0XHRPZGJBY3Rpb25zLkxpc3RHaVZlcnNpb25zLFxuXHRcdE9kYkFjdGlvbnMuTGlzdE9kYk5ldHdvcmtzLFxuXHRcdE9kYkFjdGlvbnMuTGlzdE9kYlBlZXJpbmdDb25uZWN0aW9ucyxcblx0XHRPZGJBY3Rpb25zLkxpc3RTeXN0ZW1WZXJzaW9ucyxcblx0XTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0T2RiQWN0aW9ucy5UYWdSZXNvdXJjZSxcblx0XHRPZGJBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBhdXRvbm9tb3VzLWRhdGFiYXNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJBdXRvbm9tb3VzRGF0YWJhc2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQXV0b25vbW91c0RhdGFiYXNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGF1dG9ub21vdXNEYXRhYmFzZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgYXV0b25vbW91cy1kYXRhYmFzZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2RiQXV0b25vbW91c0RhdGFiYXNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBBdXRvbm9tb3VzRGF0YWJhc2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGF1dG9ub21vdXNEYXRhYmFzZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBhdXRvbm9tb3VzLWRhdGFiYXNlLWJhY2t1cCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2RiQXV0b25vbW91c0RhdGFiYXNlQmFja3VwQXJuUHJvcHMge1xuXHQvKiogVGhlIEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBhdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGF1dG9ub21vdXMtZGF0YWJhc2UtYmFja3VwIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYXV0b25vbW91c0RhdGFiYXNlQmFja3VwSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGNsb3VkLWF1dG9ub21vdXMtdm0tY2x1c3RlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2RiQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyQXJuUHJvcHMge1xuXHQvKiogVGhlIENsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGNsb3VkLWF1dG9ub21vdXMtdm0tY2x1c3RlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2RiQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjbG91ZC1leGFkYXRhLWluZnJhc3RydWN0dXJlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUFyblByb3BzIHtcblx0LyoqIFRoZSBDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY2xvdWQtZXhhZGF0YS1pbmZyYXN0cnVjdHVyZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2RiQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBjbG91ZC12bS1jbHVzdGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJDbG91ZFZtQ2x1c3RlckFyblByb3BzIHtcblx0LyoqIFRoZSBDbG91ZFZtQ2x1c3RlcklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjbG91ZFZtQ2x1c3RlcklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgY2xvdWQtdm0tY2x1c3RlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2RiQ2xvdWRWbUNsdXN0ZXJBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENsb3VkVm1DbHVzdGVySWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjbG91ZFZtQ2x1c3RlcklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBkYi1ub2RlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJEQk5vZGVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGJOb2RlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRiTm9kZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGItbm9kZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2RiREJOb2RlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEYk5vZGVJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRiTm9kZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBleGFkYi12bS1jbHVzdGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJFeGFkYlZtQ2x1c3RlckFyblByb3BzIHtcblx0LyoqIFRoZSBFeGFkYlZtQ2x1c3RlcklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBleGFkYlZtQ2x1c3RlcklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZXhhZGItdm0tY2x1c3RlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2RiRXhhZGJWbUNsdXN0ZXJBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEV4YWRiVm1DbHVzdGVySWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBleGFkYlZtQ2x1c3RlcklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBleGFzY2FsZS1kYi1zdG9yYWdlLXZhdWx0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJFeGFzY2FsZURCU3RvcmFnZVZhdWx0QXJuUHJvcHMge1xuXHQvKiogVGhlIEV4YXNjYWxlRGJTdG9yYWdlVmF1bHRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZXhhc2NhbGVEQlN0b3JhZ2VWYXVsdElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZXhhc2NhbGUtZGItc3RvcmFnZS12YXVsdCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2RiRXhhc2NhbGVEQlN0b3JhZ2VWYXVsdEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRXhhc2NhbGVEYlN0b3JhZ2VWYXVsdElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZXhhc2NhbGVEQlN0b3JhZ2VWYXVsdElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBvZGItbmV0d29yayBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2RiT2RiTmV0d29ya0FyblByb3BzIHtcblx0LyoqIFRoZSBPZGJOZXR3b3JrSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IG9kYk5ldHdvcmtJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIG9kYi1uZXR3b3JrIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJPZGJOZXR3b3JrQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBPZGJOZXR3b3JrSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBvZGJOZXR3b3JrSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIG9kYi1wZWVyaW5nLWNvbm5lY3Rpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9kYk9kYlBlZXJpbmdDb25uZWN0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIE9kYlBlZXJpbmdDb25uZWN0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IG9kYlBlZXJpbmdDb25uZWN0aW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBvZGItcGVlcmluZy1jb25uZWN0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGJPZGJQZWVyaW5nQ29ubmVjdGlvbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgT2RiUGVlcmluZ0Nvbm5lY3Rpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IG9kYlBlZXJpbmdDb25uZWN0aW9uSWQ6IHN0cmluZztcbn1cblxuY29uc3QgQXV0b25vbW91c0RhdGFiYXNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9kYjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmF1dG9ub21vdXMtZGF0YWJhc2VcXC8oPzxhdXRvbm9tb3VzRGF0YWJhc2VJZD5bXjovP10rKSQvO1xuY29uc3QgQXV0b25vbW91c0RhdGFiYXNlQmFja3VwQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9kYjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmF1dG9ub21vdXMtZGF0YWJhc2UtYmFja3VwXFwvKD88YXV0b25vbW91c0RhdGFiYXNlQmFja3VwSWQ+W146Lz9dKykkLztcbmNvbnN0IENsb3VkQXV0b25vbW91c1ZtQ2x1c3RlckFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvZGI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjbG91ZC1hdXRvbm9tb3VzLXZtLWNsdXN0ZXJcXC8oPzxjbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJJZD5bXjovP10rKSQvO1xuY29uc3QgQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6b2RiOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y2xvdWQtZXhhZGF0YS1pbmZyYXN0cnVjdHVyZVxcLyg/PGNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlSWQ+W146Lz9dKykkLztcbmNvbnN0IENsb3VkVm1DbHVzdGVyQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9kYjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmNsb3VkLXZtLWNsdXN0ZXJcXC8oPzxjbG91ZFZtQ2x1c3RlcklkPlteOi8/XSspJC87XG5jb25zdCBEQk5vZGVBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6b2RiOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGItbm9kZVxcLyg/PGRiTm9kZUlkPlteOi8/XSspJC87XG5jb25zdCBFeGFkYlZtQ2x1c3RlckFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvZGI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpleGFkYi12bS1jbHVzdGVyXFwvKD88ZXhhZGJWbUNsdXN0ZXJJZD5bXjovP10rKSQvO1xuY29uc3QgRXhhc2NhbGVEQlN0b3JhZ2VWYXVsdEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvZGI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpleGFzY2FsZS1kYi1zdG9yYWdlLXZhdWx0XFwvKD88ZXhhc2NhbGVEQlN0b3JhZ2VWYXVsdElkPlteOi8/XSspJC87XG5jb25zdCBPZGJOZXR3b3JrQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOm9kYjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOm9kYi1uZXR3b3JrXFwvKD88b2RiTmV0d29ya0lkPlteOi8/XSspJC87XG5jb25zdCBPZGJQZWVyaW5nQ29ubmVjdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpvZGI6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpvZGItcGVlcmluZy1jb25uZWN0aW9uXFwvKD88b2RiUGVlcmluZ0Nvbm5lY3Rpb25JZD5bXjovP10rKSQvO1xuXG4vKipcbiAqIEFSTiBidWlsZGVycywgdmFsaWRhdG9ycywgYW5kIHBhcnNlcnMgZm9yIG9kYiByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBPZGJSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGF1dG9ub21vdXMtZGF0YWJhc2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYXV0b25vbW91c0RhdGFiYXNlKHByb3BzOiBPZGJBdXRvbm9tb3VzRGF0YWJhc2VBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06b2RiOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmF1dG9ub21vdXMtZGF0YWJhc2UvJHtwcm9wcy5hdXRvbm9tb3VzRGF0YWJhc2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgYXV0b25vbW91cy1kYXRhYmFzZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQXV0b25vbW91c0RhdGFiYXNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEF1dG9ub21vdXNEYXRhYmFzZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBhdXRvbm9tb3VzLWRhdGFiYXNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUF1dG9ub21vdXNEYXRhYmFzZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogT2RiQXV0b25vbW91c0RhdGFiYXNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBdXRvbm9tb3VzRGF0YWJhc2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXV0b25vbW91cy1kYXRhYmFzZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRhdXRvbm9tb3VzRGF0YWJhc2VJZDogbWF0Y2guZ3JvdXBzIS5hdXRvbm9tb3VzRGF0YWJhc2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBhdXRvbm9tb3VzLWRhdGFiYXNlLWJhY2t1cCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBhdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXAoXG5cdFx0cHJvcHM6IE9kYkF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cEFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9kYjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTphdXRvbm9tb3VzLWRhdGFiYXNlLWJhY2t1cC8ke3Byb3BzLmF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBhdXRvbm9tb3VzLWRhdGFiYXNlLWJhY2t1cCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQXV0b25vbW91c0RhdGFiYXNlQmFja3VwQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBhdXRvbm9tb3VzLWRhdGFiYXNlLWJhY2t1cCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9kYkF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQXV0b25vbW91c0RhdGFiYXNlQmFja3VwQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGF1dG9ub21vdXMtZGF0YWJhc2UtYmFja3VwIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cElkOiBtYXRjaC5ncm91cHMhLmF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNsb3VkLWF1dG9ub21vdXMtdm0tY2x1c3RlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBjbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXIoXG5cdFx0cHJvcHM6IE9kYkNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlckFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9kYjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjbG91ZC1hdXRvbm9tb3VzLXZtLWNsdXN0ZXIvJHtwcm9wcy5jbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY2xvdWQtYXV0b25vbW91cy12bS1jbHVzdGVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGNsb3VkLWF1dG9ub21vdXMtdm0tY2x1c3RlciBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9kYkNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlckFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNsb3VkLWF1dG9ub21vdXMtdm0tY2x1c3RlciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJJZDogbWF0Y2guZ3JvdXBzIS5jbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXJJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBjbG91ZC1leGFkYXRhLWluZnJhc3RydWN0dXJlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlKFxuXHRcdHByb3BzOiBPZGJDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9kYjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjbG91ZC1leGFkYXRhLWluZnJhc3RydWN0dXJlLyR7cHJvcHMuY2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY2xvdWQtZXhhZGF0YS1pbmZyYXN0cnVjdHVyZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY2xvdWQtZXhhZGF0YS1pbmZyYXN0cnVjdHVyZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogT2RiQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNsb3VkLWV4YWRhdGEtaW5mcmFzdHJ1Y3R1cmUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVJZDogbWF0Y2guZ3JvdXBzIS5jbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGNsb3VkLXZtLWNsdXN0ZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY2xvdWRWbUNsdXN0ZXIocHJvcHM6IE9kYkNsb3VkVm1DbHVzdGVyQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9kYjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjbG91ZC12bS1jbHVzdGVyLyR7cHJvcHMuY2xvdWRWbUNsdXN0ZXJJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY2xvdWQtdm0tY2x1c3RlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ2xvdWRWbUNsdXN0ZXJBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ2xvdWRWbUNsdXN0ZXJBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY2xvdWQtdm0tY2x1c3RlciBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDbG91ZFZtQ2x1c3RlckFybihhcm46IHN0cmluZyk6IE9kYkNsb3VkVm1DbHVzdGVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDbG91ZFZtQ2x1c3RlckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjbG91ZC12bS1jbHVzdGVyIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNsb3VkVm1DbHVzdGVySWQ6IG1hdGNoLmdyb3VwcyEuY2xvdWRWbUNsdXN0ZXJJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBkYi1ub2RlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGRiTm9kZShwcm9wczogT2RiREJOb2RlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9kYjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkYi1ub2RlLyR7cHJvcHMuZGJOb2RlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRiLW5vZGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERCTm9kZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBEQk5vZGVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZGItbm9kZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEQk5vZGVBcm4oYXJuOiBzdHJpbmcpOiBPZGJEQk5vZGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IERCTm9kZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkYi1ub2RlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRiTm9kZUlkOiBtYXRjaC5ncm91cHMhLmRiTm9kZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGV4YWRiLXZtLWNsdXN0ZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZXhhZGJWbUNsdXN0ZXIocHJvcHM6IE9kYkV4YWRiVm1DbHVzdGVyQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Om9kYjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpleGFkYi12bS1jbHVzdGVyLyR7cHJvcHMuZXhhZGJWbUNsdXN0ZXJJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZXhhZGItdm0tY2x1c3RlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRXhhZGJWbUNsdXN0ZXJBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRXhhZGJWbUNsdXN0ZXJBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgZXhhZGItdm0tY2x1c3RlciBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VFeGFkYlZtQ2x1c3RlckFybihhcm46IHN0cmluZyk6IE9kYkV4YWRiVm1DbHVzdGVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBFeGFkYlZtQ2x1c3RlckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBleGFkYi12bS1jbHVzdGVyIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGV4YWRiVm1DbHVzdGVySWQ6IG1hdGNoLmdyb3VwcyEuZXhhZGJWbUNsdXN0ZXJJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBleGFzY2FsZS1kYi1zdG9yYWdlLXZhdWx0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGV4YXNjYWxlREJTdG9yYWdlVmF1bHQoXG5cdFx0cHJvcHM6IE9kYkV4YXNjYWxlREJTdG9yYWdlVmF1bHRBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpvZGI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZXhhc2NhbGUtZGItc3RvcmFnZS12YXVsdC8ke3Byb3BzLmV4YXNjYWxlREJTdG9yYWdlVmF1bHRJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgZXhhc2NhbGUtZGItc3RvcmFnZS12YXVsdCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRXhhc2NhbGVEQlN0b3JhZ2VWYXVsdEFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBFeGFzY2FsZURCU3RvcmFnZVZhdWx0QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGV4YXNjYWxlLWRiLXN0b3JhZ2UtdmF1bHQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRXhhc2NhbGVEQlN0b3JhZ2VWYXVsdEFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogT2RiRXhhc2NhbGVEQlN0b3JhZ2VWYXVsdEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRXhhc2NhbGVEQlN0b3JhZ2VWYXVsdEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBleGFzY2FsZS1kYi1zdG9yYWdlLXZhdWx0IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGV4YXNjYWxlREJTdG9yYWdlVmF1bHRJZDogbWF0Y2guZ3JvdXBzIS5leGFzY2FsZURCU3RvcmFnZVZhdWx0SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgb2RiLW5ldHdvcmsgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgb2RiTmV0d29yayhwcm9wczogT2RiT2RiTmV0d29ya0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpvZGI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06b2RiLW5ldHdvcmsvJHtwcm9wcy5vZGJOZXR3b3JrSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIG9kYi1uZXR3b3JrIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRPZGJOZXR3b3JrQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE9kYk5ldHdvcmtBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgb2RiLW5ldHdvcmsgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlT2RiTmV0d29ya0Fybihhcm46IHN0cmluZyk6IE9kYk9kYk5ldHdvcmtBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE9kYk5ldHdvcmtBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgb2RiLW5ldHdvcmsgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0b2RiTmV0d29ya0lkOiBtYXRjaC5ncm91cHMhLm9kYk5ldHdvcmtJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBvZGItcGVlcmluZy1jb25uZWN0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIG9kYlBlZXJpbmdDb25uZWN0aW9uKHByb3BzOiBPZGJPZGJQZWVyaW5nQ29ubmVjdGlvbkFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpvZGI6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06b2RiLXBlZXJpbmctY29ubmVjdGlvbi8ke3Byb3BzLm9kYlBlZXJpbmdDb25uZWN0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIG9kYi1wZWVyaW5nLWNvbm5lY3Rpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZE9kYlBlZXJpbmdDb25uZWN0aW9uQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE9kYlBlZXJpbmdDb25uZWN0aW9uQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIG9kYi1wZWVyaW5nLWNvbm5lY3Rpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlT2RiUGVlcmluZ0Nvbm5lY3Rpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IE9kYk9kYlBlZXJpbmdDb25uZWN0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBPZGJQZWVyaW5nQ29ubmVjdGlvbkFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBvZGItcGVlcmluZy1jb25uZWN0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdG9kYlBlZXJpbmdDb25uZWN0aW9uSWQ6IG1hdGNoLmdyb3VwcyEub2RiUGVlcmluZ0Nvbm5lY3Rpb25JZCxcblx0XHR9O1xuXHR9XG59XG5cbi8qKlxuICogQVBJIG9wZXJhdGlvbiB0byByZXF1aXJlZCBJQU0gYWN0aW9ucyBtYXBwaW5nIGZvciBvZGIuXG4gKi9cbmV4cG9ydCBjbGFzcyBPZGJPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWNjZXB0TWFya2V0cGxhY2VSZWdpc3RyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBY2NlcHRNYXJrZXRwbGFjZVJlZ2lzdHJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6QWNjZXB0TWFya2V0cGxhY2VSZWdpc3RyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQXNzb2NpYXRlSWFtUm9sZVRvUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVJYW1Sb2xlVG9SZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6QXNzb2NpYXRlSWFtUm9sZVRvUmVzb3VyY2VcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBc3NvY2lhdGVWaXJ0dWFsTWFjaGluZXNUb0V4YWRiVm1DbHVzdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlVmlydHVhbE1hY2hpbmVzVG9FeGFkYlZtQ2x1c3Rlcjogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQXV0b25vbW91c0RhdGFiYXNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQXV0b25vbW91c0RhdGFiYXNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2VcIixcblx0XHRcIm9kYjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXA6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkNyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2VXYWxsZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2VXYWxsZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkNyZWF0ZUF1dG9ub21vdXNEYXRhYmFzZVdhbGxldFwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNsb3VkQXV0b25vbW91c1ZtQ2x1c3Rlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6Q3JlYXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyXCIsXG5cdFx0XCJvZGI6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6Q3JlYXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVcIixcblx0XHRcIm9kYjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVDbG91ZFZtQ2x1c3RlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNsb3VkVm1DbHVzdGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpDcmVhdGVDbG91ZFZtQ2x1c3RlclwiLFxuXHRcdFwib2RiOkNyZWF0ZURiTm9kZVwiLFxuXHRcdFwib2RiOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUV4YWRiVm1DbHVzdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXhhZGJWbUNsdXN0ZXI6IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0OiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpDcmVhdGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0XCIsXG5cdFx0XCJvZGI6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlT2RiTmV0d29yayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU9kYk5ldHdvcms6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkNyZWF0ZU9kYk5ldHdvcmtcIixcblx0XHRcIm9kYjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVPZGJQZWVyaW5nQ29ubmVjdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU9kYlBlZXJpbmdDb25uZWN0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpDcmVhdGVPZGJQZWVyaW5nQ29ubmVjdGlvblwiLFxuXHRcdFwib2RiOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUF1dG9ub21vdXNEYXRhYmFzZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUF1dG9ub21vdXNEYXRhYmFzZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6RGVsZXRlQXV0b25vbW91c0RhdGFiYXNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cDogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6RGVsZXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNsb3VkQXV0b25vbW91c1ZtQ2x1c3RlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUNsb3VkQXV0b25vbW91c1ZtQ2x1c3Rlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6RGVsZXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmU6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkRlbGV0ZUNsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUNsb3VkVm1DbHVzdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ2xvdWRWbUNsdXN0ZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkRlbGV0ZUNsb3VkVm1DbHVzdGVyXCIsXG5cdFx0XCJvZGI6RGVsZXRlRGJOb2RlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUV4YWRiVm1DbHVzdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRXhhZGJWbUNsdXN0ZXI6IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0OiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpEZWxldGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZU9kYk5ldHdvcmsgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVPZGJOZXR3b3JrOiBzdHJpbmdbXSA9IFtcIm9kYjpEZWxldGVPZGJOZXR3b3JrXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVPZGJQZWVyaW5nQ29ubmVjdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU9kYlBlZXJpbmdDb25uZWN0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpEZWxldGVPZGJQZWVyaW5nQ29ubmVjdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEaXNhc3NvY2lhdGVJYW1Sb2xlRnJvbVJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlSWFtUm9sZUZyb21SZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6RGlzYXNzb2NpYXRlSWFtUm9sZUZyb21SZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEaXNhc3NvY2lhdGVWaXJ0dWFsTWFjaGluZXNGcm9tRXhhZGJWbUNsdXN0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVWaXJ0dWFsTWFjaGluZXNGcm9tRXhhZGJWbUNsdXN0ZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkRpc2Fzc29jaWF0ZVZpcnR1YWxNYWNoaW5lc0Zyb21FeGFkYlZtQ2x1c3RlclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBGYWlsb3ZlckF1dG9ub21vdXNEYXRhYmFzZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEZhaWxvdmVyQXV0b25vbW91c0RhdGFiYXNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpGYWlsb3ZlckF1dG9ub21vdXNEYXRhYmFzZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRBdXRvbm9tb3VzRGF0YWJhc2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEF1dG9ub21vdXNEYXRhYmFzZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6R2V0QXV0b25vbW91c0RhdGFiYXNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0QXV0b25vbW91c0RhdGFiYXNlQmFja3VwOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpHZXRBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QXV0b25vbW91c0RhdGFiYXNlV2FsbGV0RGV0YWlscyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0QXV0b25vbW91c0RhdGFiYXNlV2FsbGV0RGV0YWlsczogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6R2V0QXV0b25vbW91c0RhdGFiYXNlV2FsbGV0RGV0YWlsc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENsb3VkQXV0b25vbW91c1ZtQ2x1c3Rlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6R2V0Q2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6R2V0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVVbmFsbG9jYXRlZFJlc291cmNlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVVbmFsbG9jYXRlZFJlc291cmNlczogc3RyaW5nW10gPVxuXHRcdFtcIm9kYjpHZXRDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZVVuYWxsb2NhdGVkUmVzb3VyY2VzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDbG91ZFZtQ2x1c3RlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q2xvdWRWbUNsdXN0ZXI6IHN0cmluZ1tdID0gW1wib2RiOkdldENsb3VkVm1DbHVzdGVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREYk5vZGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldERiTm9kZTogc3RyaW5nW10gPSBbXCJvZGI6R2V0RGJOb2RlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREYlNlcnZlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RGJTZXJ2ZXI6IHN0cmluZ1tdID0gW1wib2RiOkdldERiU2VydmVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRFeGFkYlZtQ2x1c3RlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RXhhZGJWbUNsdXN0ZXI6IHN0cmluZ1tdID0gW1wib2RiOkdldEV4YWRiVm1DbHVzdGVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRFeGFzY2FsZURiU3RvcmFnZVZhdWx0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRFeGFzY2FsZURiU3RvcmFnZVZhdWx0OiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpHZXRFeGFzY2FsZURiU3RvcmFnZVZhdWx0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE9jaU9uYm9hcmRpbmdTdGF0dXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE9jaU9uYm9hcmRpbmdTdGF0dXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkdldE9jaU9uYm9hcmRpbmdTdGF0dXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0T2RiTmV0d29yayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0T2RiTmV0d29yazogc3RyaW5nW10gPSBbXCJvZGI6R2V0T2RiTmV0d29ya1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0T2RiUGVlcmluZ0Nvbm5lY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE9kYlBlZXJpbmdDb25uZWN0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpHZXRPZGJQZWVyaW5nQ29ubmVjdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbml0aWFsaXplU2VydmljZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEluaXRpYWxpemVTZXJ2aWNlOiBzdHJpbmdbXSA9IFtcIm9kYjpJbml0aWFsaXplU2VydmljZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXV0b25vbW91c0RhdGFiYXNlQmFja3Vwczogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6TGlzdEF1dG9ub21vdXNEYXRhYmFzZUJhY2t1cHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEF1dG9ub21vdXNEYXRhYmFzZUNoYXJhY3RlclNldHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXV0b25vbW91c0RhdGFiYXNlQ2hhcmFjdGVyU2V0czogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6TGlzdEF1dG9ub21vdXNEYXRhYmFzZUNoYXJhY3RlclNldHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEF1dG9ub21vdXNEYXRhYmFzZUNsb25lcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBdXRvbm9tb3VzRGF0YWJhc2VDbG9uZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkxpc3RBdXRvbm9tb3VzRGF0YWJhc2VDbG9uZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEF1dG9ub21vdXNEYXRhYmFzZVBlZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEF1dG9ub21vdXNEYXRhYmFzZVBlZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpMaXN0QXV0b25vbW91c0RhdGFiYXNlUGVlcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEF1dG9ub21vdXNEYXRhYmFzZVZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEF1dG9ub21vdXNEYXRhYmFzZVZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpMaXN0QXV0b25vbW91c0RhdGFiYXNlVmVyc2lvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEF1dG9ub21vdXNEYXRhYmFzZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXV0b25vbW91c0RhdGFiYXNlczogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6TGlzdEF1dG9ub21vdXNEYXRhYmFzZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEF1dG9ub21vdXNWaXJ0dWFsTWFjaGluZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXV0b25vbW91c1ZpcnR1YWxNYWNoaW5lczogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6TGlzdEF1dG9ub21vdXNWaXJ0dWFsTWFjaGluZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyczogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6TGlzdENsb3VkQXV0b25vbW91c1ZtQ2x1c3RlcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENsb3VkRXhhZGF0YUluZnJhc3RydWN0dXJlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkxpc3RDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENsb3VkVm1DbHVzdGVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDbG91ZFZtQ2x1c3RlcnM6IHN0cmluZ1tdID0gW1wib2RiOkxpc3RDbG91ZFZtQ2x1c3RlcnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REYk5vZGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERiTm9kZXM6IHN0cmluZ1tdID0gW1wib2RiOkxpc3REYk5vZGVzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGJTZXJ2ZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERiU2VydmVyczogc3RyaW5nW10gPSBbXCJvZGI6TGlzdERiU2VydmVyc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdERiU3lzdGVtU2hhcGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERiU3lzdGVtU2hhcGVzOiBzdHJpbmdbXSA9IFtcIm9kYjpMaXN0RGJTeXN0ZW1TaGFwZXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RFeGFkYlZtQ2x1c3RlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXhhZGJWbUNsdXN0ZXJzOiBzdHJpbmdbXSA9IFtcIm9kYjpMaXN0RXhhZGJWbUNsdXN0ZXJzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RXhhc2NhbGVEYlN0b3JhZ2VWYXVsdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXhhc2NhbGVEYlN0b3JhZ2VWYXVsdHM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkxpc3RFeGFzY2FsZURiU3RvcmFnZVZhdWx0c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RmxleENvbXBvbmVudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RmxleENvbXBvbmVudHM6IHN0cmluZ1tdID0gW1wib2RiOkxpc3RGbGV4Q29tcG9uZW50c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEdpTWlub3JWZXJzaW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RHaU1pbm9yVmVyc2lvbnM6IHN0cmluZ1tdID0gW1wib2RiOkxpc3RHaU1pbm9yVmVyc2lvbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RHaVZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEdpVmVyc2lvbnM6IHN0cmluZ1tdID0gW1wib2RiOkxpc3RHaVZlcnNpb25zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0T2RiTmV0d29ya3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0T2RiTmV0d29ya3M6IHN0cmluZ1tdID0gW1wib2RiOkxpc3RPZGJOZXR3b3Jrc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdE9kYlBlZXJpbmdDb25uZWN0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RPZGJQZWVyaW5nQ29ubmVjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOkxpc3RPZGJQZWVyaW5nQ29ubmVjdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFN5c3RlbVZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFN5c3RlbVZlcnNpb25zOiBzdHJpbmdbXSA9IFtcIm9kYjpMaXN0U3lzdGVtVmVyc2lvbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcIm9kYjpMaXN0VGFnc0ZvclJlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZWJvb3RBdXRvbm9tb3VzRGF0YWJhc2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZWJvb3RBdXRvbm9tb3VzRGF0YWJhc2U6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOlJlYm9vdEF1dG9ub21vdXNEYXRhYmFzZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZWJvb3REYk5vZGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZWJvb3REYk5vZGU6IHN0cmluZ1tdID0gW1wib2RiOlJlYm9vdERiTm9kZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVzdG9yZUF1dG9ub21vdXNEYXRhYmFzZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlc3RvcmVBdXRvbm9tb3VzRGF0YWJhc2U6IHN0cmluZ1tdID0gW1xuXHRcdFwib2RiOlJlc3RvcmVBdXRvbm9tb3VzRGF0YWJhc2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU2hyaW5rQXV0b25vbW91c0RhdGFiYXNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2hyaW5rQXV0b25vbW91c0RhdGFiYXNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpTaHJpbmtBdXRvbm9tb3VzRGF0YWJhc2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRBdXRvbm9tb3VzRGF0YWJhc2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydEF1dG9ub21vdXNEYXRhYmFzZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6U3RhcnRBdXRvbm9tb3VzRGF0YWJhc2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnREYk5vZGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydERiTm9kZTogc3RyaW5nW10gPSBbXCJvZGI6U3RhcnREYk5vZGVcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BBdXRvbm9tb3VzRGF0YWJhc2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wQXV0b25vbW91c0RhdGFiYXNlOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpTdG9wQXV0b25vbW91c0RhdGFiYXNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BEYk5vZGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wRGJOb2RlOiBzdHJpbmdbXSA9IFtcIm9kYjpTdG9wRGJOb2RlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTd2l0Y2hvdmVyQXV0b25vbW91c0RhdGFiYXNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3dpdGNob3ZlckF1dG9ub21vdXNEYXRhYmFzZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6U3dpdGNob3ZlckF1dG9ub21vdXNEYXRhYmFzZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcIm9kYjpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wib2RiOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUF1dG9ub21vdXNEYXRhYmFzZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUF1dG9ub21vdXNEYXRhYmFzZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcIm9kYjpVcGRhdGVBdXRvbm9tb3VzRGF0YWJhc2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpVcGRhdGVBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZTogc3RyaW5nW10gPSBbXG5cdFx0XCJvZGI6VXBkYXRlQ2xvdWRFeGFkYXRhSW5mcmFzdHJ1Y3R1cmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRXhhZGJWbUNsdXN0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVFeGFkYlZtQ2x1c3Rlcjogc3RyaW5nW10gPSBbXCJvZGI6VXBkYXRlRXhhZGJWbUNsdXN0ZXJcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0OiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpVcGRhdGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZU9kYk5ldHdvcmsgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVPZGJOZXR3b3JrOiBzdHJpbmdbXSA9IFtcIm9kYjpVcGRhdGVPZGJOZXR3b3JrXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVPZGJQZWVyaW5nQ29ubmVjdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU9kYlBlZXJpbmdDb25uZWN0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcIm9kYjpVcGRhdGVPZGJQZWVyaW5nQ29ubmVjdGlvblwiLFxuXHRdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3Igb2RiLlxuICovXG5leHBvcnQgY2xhc3MgT2RiQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQXV0b25vbW91c0RhdGFiYXNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVBdXRvbm9tb3VzRGF0YWJhc2VCYWNrdXAgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQXV0b25vbW91c0RhdGFiYXNlQmFja3VwQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVDbG91ZEF1dG9ub21vdXNWbUNsdXN0ZXIgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2xvdWRBdXRvbm9tb3VzVm1DbHVzdGVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDbG91ZEV4YWRhdGFJbmZyYXN0cnVjdHVyZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ2xvdWRWbUNsdXN0ZXIgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ2xvdWRWbUNsdXN0ZXJDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUV4YWRiVm1DbHVzdGVyIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4YWRiVm1DbHVzdGVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVFeGFzY2FsZURiU3RvcmFnZVZhdWx0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4YXNjYWxlRGJTdG9yYWdlVmF1bHRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZU9kYk5ldHdvcmsgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlT2RiTmV0d29ya0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlT2RiUGVlcmluZ0Nvbm5lY3Rpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVxdWVzdFRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVzb3VyY2VUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6VGFnS2V5c2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFnS2V5cyh2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJhd3M6VGFnS2V5c1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG59XG4iXX0=