@cdk_utils/iam 1.15.0 → 1.17.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 (467) hide show
  1. package/.jsii +11513 -8625
  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 +4 -4
  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 +4 -4
  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.d.ts +2 -0
  108. package/lib/generated/services/cognito-idp.js +14 -7
  109. package/lib/generated/services/cognito-sync.js +3 -3
  110. package/lib/generated/services/comprehend.js +4 -4
  111. package/lib/generated/services/comprehendmedical.js +3 -3
  112. package/lib/generated/services/compute-optimizer.js +3 -3
  113. package/lib/generated/services/config.js +4 -4
  114. package/lib/generated/services/connect-campaigns.js +4 -4
  115. package/lib/generated/services/connect.d.ts +8 -0
  116. package/lib/generated/services/connect.js +25 -7
  117. package/lib/generated/services/consoleapp.js +2 -2
  118. package/lib/generated/services/consolidatedbilling.js +1 -1
  119. package/lib/generated/services/controlcatalog.js +3 -3
  120. package/lib/generated/services/controltower.js +4 -4
  121. package/lib/generated/services/cost-optimization-hub.js +2 -2
  122. package/lib/generated/services/cur.js +4 -4
  123. package/lib/generated/services/customer-verification.js +1 -1
  124. package/lib/generated/services/databrew.js +4 -4
  125. package/lib/generated/services/dataexchange.js +4 -4
  126. package/lib/generated/services/datapipeline.js +4 -4
  127. package/lib/generated/services/datasync.js +4 -4
  128. package/lib/generated/services/datazone.js +4 -4
  129. package/lib/generated/services/dax.js +4 -4
  130. package/lib/generated/services/dbqms.js +1 -1
  131. package/lib/generated/services/deadline.js +4 -4
  132. package/lib/generated/services/detective.js +4 -4
  133. package/lib/generated/services/devicefarm.js +4 -4
  134. package/lib/generated/services/devops-guru.js +4 -4
  135. package/lib/generated/services/directconnect.js +4 -4
  136. package/lib/generated/services/discovery.js +3 -3
  137. package/lib/generated/services/dlm.js +4 -4
  138. package/lib/generated/services/dms.js +4 -4
  139. package/lib/generated/services/docdb-elastic.js +4 -4
  140. package/lib/generated/services/drs.js +4 -4
  141. package/lib/generated/services/ds-data.js +4 -4
  142. package/lib/generated/services/ds.js +4 -4
  143. package/lib/generated/services/dsql.js +4 -4
  144. package/lib/generated/services/dynamodb.js +4 -4
  145. package/lib/generated/services/ebs.js +4 -4
  146. package/lib/generated/services/ec2-instance-connect.js +4 -4
  147. package/lib/generated/services/ec2.d.ts +103 -0
  148. package/lib/generated/services/ec2.js +179 -21
  149. package/lib/generated/services/ec2messages.js +2 -2
  150. package/lib/generated/services/ecr-public.js +4 -4
  151. package/lib/generated/services/ecr.js +4 -4
  152. package/lib/generated/services/ecs-mcp.js +1 -1
  153. package/lib/generated/services/ecs.js +4 -4
  154. package/lib/generated/services/eks-auth.js +4 -4
  155. package/lib/generated/services/eks-mcp.js +1 -1
  156. package/lib/generated/services/eks.js +4 -4
  157. package/lib/generated/services/elasticache.js +4 -4
  158. package/lib/generated/services/elasticbeanstalk.js +4 -4
  159. package/lib/generated/services/elasticfilesystem.js +4 -4
  160. package/lib/generated/services/elasticloadbalancing.js +4 -4
  161. package/lib/generated/services/elasticmapreduce.js +4 -4
  162. package/lib/generated/services/elastictranscoder.js +2 -2
  163. package/lib/generated/services/elemental-activations.js +1 -1
  164. package/lib/generated/services/elemental-appliances-software.js +2 -2
  165. package/lib/generated/services/elemental-inference.js +4 -4
  166. package/lib/generated/services/elemental-support-cases.js +3 -3
  167. package/lib/generated/services/elemental-support-content.js +1 -1
  168. package/lib/generated/services/emr-containers.js +4 -4
  169. package/lib/generated/services/emr-serverless.js +4 -4
  170. package/lib/generated/services/entityresolution.js +4 -4
  171. package/lib/generated/services/es.js +4 -4
  172. package/lib/generated/services/events.js +4 -4
  173. package/lib/generated/services/eventsbilltoaws.js +3 -3
  174. package/lib/generated/services/evidently.js +3 -3
  175. package/lib/generated/services/evs.js +4 -4
  176. package/lib/generated/services/execute-api.js +4 -4
  177. package/lib/generated/services/finops-agent.js +1 -1
  178. package/lib/generated/services/finspace-api.js +3 -3
  179. package/lib/generated/services/finspace.js +4 -4
  180. package/lib/generated/services/firehose.js +4 -4
  181. package/lib/generated/services/fis.js +4 -4
  182. package/lib/generated/services/fms.js +4 -4
  183. package/lib/generated/services/forecast.js +4 -4
  184. package/lib/generated/services/frauddetector.js +4 -4
  185. package/lib/generated/services/freertos.js +3 -3
  186. package/lib/generated/services/freetier.js +2 -2
  187. package/lib/generated/services/fsx.js +4 -4
  188. package/lib/generated/services/gamelift.js +4 -4
  189. package/lib/generated/services/gameliftstreams.js +4 -4
  190. package/lib/generated/services/geo-maps.js +3 -3
  191. package/lib/generated/services/geo-places.js +3 -3
  192. package/lib/generated/services/geo-routes.js +3 -3
  193. package/lib/generated/services/geo.js +4 -4
  194. package/lib/generated/services/glacier.js +4 -4
  195. package/lib/generated/services/globalaccelerator.js +4 -4
  196. package/lib/generated/services/glue.js +4 -4
  197. package/lib/generated/services/grafana.js +4 -4
  198. package/lib/generated/services/greengrass.js +4 -4
  199. package/lib/generated/services/groundstation.js +4 -4
  200. package/lib/generated/services/groundtruthlabeling.js +1 -1
  201. package/lib/generated/services/guardduty.d.ts +132 -0
  202. package/lib/generated/services/guardduty.js +151 -5
  203. package/lib/generated/services/health-agent.js +4 -4
  204. package/lib/generated/services/health.js +4 -4
  205. package/lib/generated/services/healthlake.js +4 -4
  206. package/lib/generated/services/honeycode.js +2 -2
  207. package/lib/generated/services/iam.js +4 -4
  208. package/lib/generated/services/identity-sync.js +2 -2
  209. package/lib/generated/services/identitystore-auth.js +1 -1
  210. package/lib/generated/services/identitystore.js +4 -4
  211. package/lib/generated/services/imagebuilder.js +9 -6
  212. package/lib/generated/services/importexport.js +2 -2
  213. package/lib/generated/services/inspector-scan.js +2 -2
  214. package/lib/generated/services/inspector.js +2 -2
  215. package/lib/generated/services/inspector2-telemetry.js +1 -1
  216. package/lib/generated/services/inspector2.js +4 -4
  217. package/lib/generated/services/interconnect.js +4 -4
  218. package/lib/generated/services/internetmonitor.js +4 -4
  219. package/lib/generated/services/invoicing.js +4 -4
  220. package/lib/generated/services/iot-device-tester.js +1 -1
  221. package/lib/generated/services/iot.js +4 -4
  222. package/lib/generated/services/iotanalytics.js +3 -3
  223. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  224. package/lib/generated/services/iotevents.js +3 -3
  225. package/lib/generated/services/iotfleethub.js +3 -3
  226. package/lib/generated/services/iotfleetwise.js +4 -4
  227. package/lib/generated/services/iotjobsdata.js +4 -4
  228. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  229. package/lib/generated/services/iotsitewise.js +4 -4
  230. package/lib/generated/services/iottwinmaker.js +4 -4
  231. package/lib/generated/services/iotwireless.js +4 -4
  232. package/lib/generated/services/iq-permission.js +2 -2
  233. package/lib/generated/services/iq.js +2 -2
  234. package/lib/generated/services/ivs.js +4 -4
  235. package/lib/generated/services/ivschat.js +4 -4
  236. package/lib/generated/services/kafka-cluster.js +3 -3
  237. package/lib/generated/services/kafka.js +4 -4
  238. package/lib/generated/services/kafkaconnect.js +4 -4
  239. package/lib/generated/services/kendra-ranking.js +4 -4
  240. package/lib/generated/services/kendra.js +4 -4
  241. package/lib/generated/services/kinesis.d.ts +51 -0
  242. package/lib/generated/services/kinesis.js +58 -9
  243. package/lib/generated/services/kinesisanalytics.js +4 -4
  244. package/lib/generated/services/kinesisvideo.js +4 -4
  245. package/lib/generated/services/kms.js +4 -4
  246. package/lib/generated/services/lakeformation.js +3 -3
  247. package/lib/generated/services/lambda.js +4 -4
  248. package/lib/generated/services/launchwizard.js +4 -4
  249. package/lib/generated/services/lex.js +4 -4
  250. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  251. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  252. package/lib/generated/services/license-manager.js +4 -4
  253. package/lib/generated/services/lightsail.d.ts +2 -0
  254. package/lib/generated/services/lightsail.js +7 -5
  255. package/lib/generated/services/logs.js +4 -4
  256. package/lib/generated/services/lookoutequipment.js +4 -4
  257. package/lib/generated/services/lookoutmetrics.js +3 -3
  258. package/lib/generated/services/lookoutvision.js +3 -3
  259. package/lib/generated/services/m2.js +4 -4
  260. package/lib/generated/services/machinelearning.js +3 -3
  261. package/lib/generated/services/macie2.js +4 -4
  262. package/lib/generated/services/managedblockchain-query.js +2 -2
  263. package/lib/generated/services/managedblockchain.js +4 -4
  264. package/lib/generated/services/mapcredits.js +2 -2
  265. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  266. package/lib/generated/services/mechanicalturk.js +2 -2
  267. package/lib/generated/services/mediaconnect.js +4 -4
  268. package/lib/generated/services/mediaconvert.js +4 -4
  269. package/lib/generated/services/mediaimport.js +1 -1
  270. package/lib/generated/services/medialive.js +4 -4
  271. package/lib/generated/services/mediapackage-vod.js +4 -4
  272. package/lib/generated/services/mediapackage.js +4 -4
  273. package/lib/generated/services/mediapackagev2.js +4 -4
  274. package/lib/generated/services/mediastore.js +4 -4
  275. package/lib/generated/services/mediatailor.js +4 -4
  276. package/lib/generated/services/medical-imaging.js +4 -4
  277. package/lib/generated/services/memorydb.js +4 -4
  278. package/lib/generated/services/mgh.js +4 -4
  279. package/lib/generated/services/mgn.js +4 -4
  280. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  281. package/lib/generated/services/migrationhub-strategy.js +2 -2
  282. package/lib/generated/services/mobileanalytics.js +1 -1
  283. package/lib/generated/services/mobiletargeting.js +4 -4
  284. package/lib/generated/services/monitron.js +3 -3
  285. package/lib/generated/services/mpa.js +4 -4
  286. package/lib/generated/services/mq.js +4 -4
  287. package/lib/generated/services/neptune-db.js +4 -4
  288. package/lib/generated/services/neptune-graph.js +4 -4
  289. package/lib/generated/services/network-firewall.js +4 -4
  290. package/lib/generated/services/network-security-director.js +1 -1
  291. package/lib/generated/services/networkflowmonitor.js +4 -4
  292. package/lib/generated/services/networkmanager-chat.js +1 -1
  293. package/lib/generated/services/networkmanager.js +4 -4
  294. package/lib/generated/services/networkmonitor.js +4 -4
  295. package/lib/generated/services/nimble.js +3 -3
  296. package/lib/generated/services/notifications-contacts.js +4 -4
  297. package/lib/generated/services/notifications.js +4 -4
  298. package/lib/generated/services/nova-act.js +3 -3
  299. package/lib/generated/services/oam.js +4 -4
  300. package/lib/generated/services/observabilityadmin.js +4 -4
  301. package/lib/generated/services/odb.d.ts +2 -0
  302. package/lib/generated/services/odb.js +7 -5
  303. package/lib/generated/services/omics.js +4 -4
  304. package/lib/generated/services/one.js +3 -3
  305. package/lib/generated/services/opensearch.js +3 -3
  306. package/lib/generated/services/opsworks-cm.js +2 -2
  307. package/lib/generated/services/opsworks.js +2 -2
  308. package/lib/generated/services/organizations.js +4 -4
  309. package/lib/generated/services/osis.js +4 -4
  310. package/lib/generated/services/outposts.js +4 -4
  311. package/lib/generated/services/panorama.js +3 -3
  312. package/lib/generated/services/partnercentral-account-management.js +2 -2
  313. package/lib/generated/services/partnercentral.js +4 -4
  314. package/lib/generated/services/payment-cryptography.js +4 -4
  315. package/lib/generated/services/payments.js +3 -3
  316. package/lib/generated/services/pca-connector-ad.js +4 -4
  317. package/lib/generated/services/pca-connector-scep.js +4 -4
  318. package/lib/generated/services/pcs.js +4 -4
  319. package/lib/generated/services/personalize.js +4 -4
  320. package/lib/generated/services/pi.js +4 -4
  321. package/lib/generated/services/pipes.js +4 -4
  322. package/lib/generated/services/polly.js +3 -3
  323. package/lib/generated/services/pricing.js +2 -2
  324. package/lib/generated/services/pricingplanmanager.js +3 -3
  325. package/lib/generated/services/private-networks.js +3 -3
  326. package/lib/generated/services/profile.js +4 -4
  327. package/lib/generated/services/proton.js +4 -4
  328. package/lib/generated/services/purchase-orders.js +3 -3
  329. package/lib/generated/services/q.js +3 -3
  330. package/lib/generated/services/qapps.js +4 -4
  331. package/lib/generated/services/qbusiness.js +4 -4
  332. package/lib/generated/services/qdeveloper.js +3 -3
  333. package/lib/generated/services/qldb.js +3 -3
  334. package/lib/generated/services/quicksight.d.ts +55 -0
  335. package/lib/generated/services/quicksight.js +59 -6
  336. package/lib/generated/services/ram.js +4 -4
  337. package/lib/generated/services/rbin.js +4 -4
  338. package/lib/generated/services/rds-data.js +4 -4
  339. package/lib/generated/services/rds-db.js +2 -2
  340. package/lib/generated/services/rds.js +4 -4
  341. package/lib/generated/services/redshift-data.js +4 -4
  342. package/lib/generated/services/redshift-serverless.js +4 -4
  343. package/lib/generated/services/redshift.js +4 -4
  344. package/lib/generated/services/refactor-spaces.js +4 -4
  345. package/lib/generated/services/rekognition.js +4 -4
  346. package/lib/generated/services/repostspace.js +4 -4
  347. package/lib/generated/services/researchstudio.js +1 -1
  348. package/lib/generated/services/resiliencehub.js +4 -4
  349. package/lib/generated/services/resource-explorer-2.js +4 -4
  350. package/lib/generated/services/resource-explorer.js +1 -1
  351. package/lib/generated/services/resource-groups.js +4 -4
  352. package/lib/generated/services/rhelkb.js +1 -1
  353. package/lib/generated/services/robomaker.js +3 -3
  354. package/lib/generated/services/rolesanywhere.js +4 -4
  355. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  356. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  357. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  358. package/lib/generated/services/route53.js +4 -4
  359. package/lib/generated/services/route53domains.js +2 -2
  360. package/lib/generated/services/route53globalresolver.js +4 -4
  361. package/lib/generated/services/route53profiles.js +4 -4
  362. package/lib/generated/services/route53resolver.js +4 -4
  363. package/lib/generated/services/rtbfabric.js +4 -4
  364. package/lib/generated/services/rum.js +4 -4
  365. package/lib/generated/services/s3-object-lambda.js +3 -3
  366. package/lib/generated/services/s3-outposts.js +4 -4
  367. package/lib/generated/services/s3.js +4 -4
  368. package/lib/generated/services/s3express.js +3 -3
  369. package/lib/generated/services/s3files.js +4 -4
  370. package/lib/generated/services/s3tables.js +4 -4
  371. package/lib/generated/services/s3vectors.js +4 -4
  372. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  373. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  374. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  375. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  376. package/lib/generated/services/sagemaker.d.ts +2 -0
  377. package/lib/generated/services/sagemaker.js +7 -5
  378. package/lib/generated/services/savingsplans.js +4 -4
  379. package/lib/generated/services/scheduler.js +4 -4
  380. package/lib/generated/services/schemas.js +4 -4
  381. package/lib/generated/services/scn.js +4 -4
  382. package/lib/generated/services/sdb.js +3 -3
  383. package/lib/generated/services/secretsmanager.js +4 -4
  384. package/lib/generated/services/security-ir.js +4 -4
  385. package/lib/generated/services/securityagent.js +4 -4
  386. package/lib/generated/services/securityhub.js +4 -4
  387. package/lib/generated/services/securitylake.js +4 -4
  388. package/lib/generated/services/serverlessrepo.js +4 -4
  389. package/lib/generated/services/servicecatalog.js +4 -4
  390. package/lib/generated/services/servicediscovery.js +4 -4
  391. package/lib/generated/services/serviceextract.js +1 -1
  392. package/lib/generated/services/servicequotas.js +4 -4
  393. package/lib/generated/services/ses.d.ts +8 -0
  394. package/lib/generated/services/ses.js +13 -5
  395. package/lib/generated/services/shield.js +4 -4
  396. package/lib/generated/services/signer.js +4 -4
  397. package/lib/generated/services/signin.js +4 -4
  398. package/lib/generated/services/simspaceweaver.js +3 -3
  399. package/lib/generated/services/sms-voice.js +4 -4
  400. package/lib/generated/services/sms.js +1 -1
  401. package/lib/generated/services/snow-device-management.js +4 -4
  402. package/lib/generated/services/snowball.js +2 -2
  403. package/lib/generated/services/sns.js +4 -4
  404. package/lib/generated/services/social-messaging.js +4 -4
  405. package/lib/generated/services/sqlworkbench.js +3 -3
  406. package/lib/generated/services/sqs.js +4 -4
  407. package/lib/generated/services/ssm-contacts.js +4 -4
  408. package/lib/generated/services/ssm-guiconnect.js +2 -2
  409. package/lib/generated/services/ssm-incidents.js +4 -4
  410. package/lib/generated/services/ssm-quicksetup.js +4 -4
  411. package/lib/generated/services/ssm-sap.js +4 -4
  412. package/lib/generated/services/ssm.js +4 -4
  413. package/lib/generated/services/ssmmessages.js +2 -2
  414. package/lib/generated/services/sso-directory.js +1 -1
  415. package/lib/generated/services/sso-oauth.js +3 -3
  416. package/lib/generated/services/sso.js +4 -4
  417. package/lib/generated/services/states.js +4 -4
  418. package/lib/generated/services/storagegateway.js +4 -4
  419. package/lib/generated/services/sts.js +4 -4
  420. package/lib/generated/services/support-console.js +1 -1
  421. package/lib/generated/services/support.js +2 -2
  422. package/lib/generated/services/supportapp.js +2 -2
  423. package/lib/generated/services/supportauthz.js +4 -4
  424. package/lib/generated/services/supportplans.js +1 -1
  425. package/lib/generated/services/sustainability.js +2 -2
  426. package/lib/generated/services/swf.js +4 -4
  427. package/lib/generated/services/synthetics.js +4 -4
  428. package/lib/generated/services/tag.js +2 -2
  429. package/lib/generated/services/tax.js +2 -2
  430. package/lib/generated/services/textract.js +4 -4
  431. package/lib/generated/services/thinclient.js +4 -4
  432. package/lib/generated/services/timestream-influxdb.js +4 -4
  433. package/lib/generated/services/timestream.js +4 -4
  434. package/lib/generated/services/tiros.js +1 -1
  435. package/lib/generated/services/tnb.js +4 -4
  436. package/lib/generated/services/transcribe.js +4 -4
  437. package/lib/generated/services/transfer.js +4 -4
  438. package/lib/generated/services/transform-custom.js +3 -3
  439. package/lib/generated/services/transform.js +3 -3
  440. package/lib/generated/services/translate.js +4 -4
  441. package/lib/generated/services/trustedadvisor.js +3 -3
  442. package/lib/generated/services/ts.js +3 -3
  443. package/lib/generated/services/user-subscriptions.js +2 -2
  444. package/lib/generated/services/uxc.js +2 -2
  445. package/lib/generated/services/vendor-insights.js +3 -3
  446. package/lib/generated/services/verified-access.js +1 -1
  447. package/lib/generated/services/verifiedpermissions.js +4 -4
  448. package/lib/generated/services/voiceid.js +4 -4
  449. package/lib/generated/services/vpc-lattice-svcs.js +3 -3
  450. package/lib/generated/services/vpc-lattice.js +4 -4
  451. package/lib/generated/services/vpce.js +2 -2
  452. package/lib/generated/services/waf-regional.js +4 -4
  453. package/lib/generated/services/waf.js +4 -4
  454. package/lib/generated/services/wafv2.js +4 -4
  455. package/lib/generated/services/wam.js +1 -1
  456. package/lib/generated/services/wellarchitected.js +4 -4
  457. package/lib/generated/services/wickr.js +4 -4
  458. package/lib/generated/services/wisdom.js +4 -4
  459. package/lib/generated/services/workdocs.js +3 -3
  460. package/lib/generated/services/worklink.js +3 -3
  461. package/lib/generated/services/workmail.js +4 -4
  462. package/lib/generated/services/workmailmessageflow.js +3 -3
  463. package/lib/generated/services/workspaces-instances.js +4 -4
  464. package/lib/generated/services/workspaces-web.js +4 -4
  465. package/lib/generated/services/workspaces.js +4 -4
  466. package/lib/generated/services/xray.js +4 -4
  467. package/package.json +1 -1
@@ -16,7 +16,7 @@ class GuardDutyActions {
16
16
  }
17
17
  exports.GuardDutyActions = GuardDutyActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- GuardDutyActions[_a] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyActions", version: "1.15.0" };
19
+ GuardDutyActions[_a] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyActions", version: "1.17.0" };
20
20
  /** The IAM service prefix. */
21
21
  GuardDutyActions.SERVICE_PREFIX = "guardduty";
22
22
  /** [Write] guardduty:AcceptAdministratorInvitation */
@@ -25,6 +25,10 @@ GuardDutyActions.AcceptAdministratorInvitation = "guardduty:AcceptAdministratorI
25
25
  GuardDutyActions.AcceptInvitation = "guardduty:AcceptInvitation";
26
26
  /** [Write] guardduty:ArchiveFindings */
27
27
  GuardDutyActions.ArchiveFindings = "guardduty:ArchiveFindings";
28
+ /** [Write] guardduty:CreateCustomDetectionRuleAssociation */
29
+ GuardDutyActions.CreateCustomDetectionRuleAssociation = "guardduty:CreateCustomDetectionRuleAssociation";
30
+ /** [Write] guardduty:CreateCustomDetectionRuleOrgConfiguration */
31
+ GuardDutyActions.CreateCustomDetectionRuleOrgConfiguration = "guardduty:CreateCustomDetectionRuleOrgConfiguration";
28
32
  /** [Write] guardduty:CreateDetector */
29
33
  GuardDutyActions.CreateDetector = "guardduty:CreateDetector";
30
34
  /** [Write] guardduty:CreateFilter */
@@ -49,6 +53,10 @@ GuardDutyActions.CreateThreatIntelSet = "guardduty:CreateThreatIntelSet";
49
53
  GuardDutyActions.CreateTrustedEntitySet = "guardduty:CreateTrustedEntitySet";
50
54
  /** [Write] guardduty:DeclineInvitations */
51
55
  GuardDutyActions.DeclineInvitations = "guardduty:DeclineInvitations";
56
+ /** [Write] guardduty:DeleteCustomDetectionRuleAssociation */
57
+ GuardDutyActions.DeleteCustomDetectionRuleAssociation = "guardduty:DeleteCustomDetectionRuleAssociation";
58
+ /** [Write] guardduty:DeleteCustomDetectionRuleOrgConfiguration */
59
+ GuardDutyActions.DeleteCustomDetectionRuleOrgConfiguration = "guardduty:DeleteCustomDetectionRuleOrgConfiguration";
52
60
  /** [Write] guardduty:DeleteDetector */
53
61
  GuardDutyActions.DeleteDetector = "guardduty:DeleteDetector";
54
62
  /** [Write] guardduty:DeleteFilter */
@@ -89,6 +97,12 @@ GuardDutyActions.EnableOrganizationAdminAccount = "guardduty:EnableOrganizationA
89
97
  GuardDutyActions.actionGetAdministratorAccount = "guardduty:GetAdministratorAccount";
90
98
  /** [Read] guardduty:GetCoverageStatistics */
91
99
  GuardDutyActions.actionGetCoverageStatistics = "guardduty:GetCoverageStatistics";
100
+ /** [Read] guardduty:GetCustomDetectionRule */
101
+ GuardDutyActions.actionGetCustomDetectionRule = "guardduty:GetCustomDetectionRule";
102
+ /** [Read] guardduty:GetCustomDetectionRuleAssociation */
103
+ GuardDutyActions.actionGetCustomDetectionRuleAssociation = "guardduty:GetCustomDetectionRuleAssociation";
104
+ /** [Read] guardduty:GetCustomDetectionRuleOrgConfiguration */
105
+ GuardDutyActions.actionGetCustomDetectionRuleOrgConfiguration = "guardduty:GetCustomDetectionRuleOrgConfiguration";
92
106
  /** [Read] guardduty:GetDetector */
93
107
  GuardDutyActions.actionGetDetector = "guardduty:GetDetector";
94
108
  /** [Read] guardduty:GetFilter */
@@ -131,6 +145,12 @@ GuardDutyActions.actionGetUsageStatistics = "guardduty:GetUsageStatistics";
131
145
  GuardDutyActions.InviteMembers = "guardduty:InviteMembers";
132
146
  /** [List] guardduty:ListCoverage */
133
147
  GuardDutyActions.ListCoverage = "guardduty:ListCoverage";
148
+ /** [List] guardduty:ListCustomDetectionRuleAssociations */
149
+ GuardDutyActions.ListCustomDetectionRuleAssociations = "guardduty:ListCustomDetectionRuleAssociations";
150
+ /** [List] guardduty:ListCustomDetectionRuleOrgConfigurations */
151
+ GuardDutyActions.ListCustomDetectionRuleOrgConfigurations = "guardduty:ListCustomDetectionRuleOrgConfigurations";
152
+ /** [List] guardduty:ListCustomDetectionRules */
153
+ GuardDutyActions.ListCustomDetectionRules = "guardduty:ListCustomDetectionRules";
134
154
  /** [List] guardduty:ListDetectors */
135
155
  GuardDutyActions.ListDetectors = "guardduty:ListDetectors";
136
156
  /** [List] guardduty:ListFilters */
@@ -177,6 +197,10 @@ GuardDutyActions.TagResource = "guardduty:TagResource";
177
197
  GuardDutyActions.UnarchiveFindings = "guardduty:UnarchiveFindings";
178
198
  /** [Tagging] guardduty:UntagResource */
179
199
  GuardDutyActions.UntagResource = "guardduty:UntagResource";
200
+ /** [Write] guardduty:UpdateCustomDetectionRuleAssociation */
201
+ GuardDutyActions.UpdateCustomDetectionRuleAssociation = "guardduty:UpdateCustomDetectionRuleAssociation";
202
+ /** [Write] guardduty:UpdateCustomDetectionRuleOrgConfiguration */
203
+ GuardDutyActions.UpdateCustomDetectionRuleOrgConfiguration = "guardduty:UpdateCustomDetectionRuleOrgConfiguration";
180
204
  /** [Write] guardduty:UpdateDetector */
181
205
  GuardDutyActions.UpdateDetector = "guardduty:UpdateDetector";
182
206
  /** [Write] guardduty:UpdateFilter */
@@ -208,6 +232,9 @@ GuardDutyActions.AllReadActions = [
208
232
  GuardDutyActions.DescribePublishingDestination,
209
233
  GuardDutyActions.actionGetAdministratorAccount,
210
234
  GuardDutyActions.actionGetCoverageStatistics,
235
+ GuardDutyActions.actionGetCustomDetectionRule,
236
+ GuardDutyActions.actionGetCustomDetectionRuleAssociation,
237
+ GuardDutyActions.actionGetCustomDetectionRuleOrgConfiguration,
211
238
  GuardDutyActions.actionGetDetector,
212
239
  GuardDutyActions.actionGetFilter,
213
240
  GuardDutyActions.actionGetFindings,
@@ -234,6 +261,8 @@ GuardDutyActions.AllWriteActions = [
234
261
  GuardDutyActions.AcceptAdministratorInvitation,
235
262
  GuardDutyActions.AcceptInvitation,
236
263
  GuardDutyActions.ArchiveFindings,
264
+ GuardDutyActions.CreateCustomDetectionRuleAssociation,
265
+ GuardDutyActions.CreateCustomDetectionRuleOrgConfiguration,
237
266
  GuardDutyActions.CreateDetector,
238
267
  GuardDutyActions.CreateFilter,
239
268
  GuardDutyActions.CreateIPSet,
@@ -246,6 +275,8 @@ GuardDutyActions.AllWriteActions = [
246
275
  GuardDutyActions.CreateThreatIntelSet,
247
276
  GuardDutyActions.CreateTrustedEntitySet,
248
277
  GuardDutyActions.DeclineInvitations,
278
+ GuardDutyActions.DeleteCustomDetectionRuleAssociation,
279
+ GuardDutyActions.DeleteCustomDetectionRuleOrgConfiguration,
249
280
  GuardDutyActions.DeleteDetector,
250
281
  GuardDutyActions.DeleteFilter,
251
282
  GuardDutyActions.DeleteIPSet,
@@ -268,6 +299,8 @@ GuardDutyActions.AllWriteActions = [
268
299
  GuardDutyActions.StartMonitoringMembers,
269
300
  GuardDutyActions.StopMonitoringMembers,
270
301
  GuardDutyActions.UnarchiveFindings,
302
+ GuardDutyActions.UpdateCustomDetectionRuleAssociation,
303
+ GuardDutyActions.UpdateCustomDetectionRuleOrgConfiguration,
271
304
  GuardDutyActions.UpdateDetector,
272
305
  GuardDutyActions.UpdateFilter,
273
306
  GuardDutyActions.UpdateFindingsFeedback,
@@ -284,6 +317,9 @@ GuardDutyActions.AllWriteActions = [
284
317
  /** All list-level actions. */
285
318
  GuardDutyActions.AllListActions = [
286
319
  GuardDutyActions.ListCoverage,
320
+ GuardDutyActions.ListCustomDetectionRuleAssociations,
321
+ GuardDutyActions.ListCustomDetectionRuleOrgConfigurations,
322
+ GuardDutyActions.ListCustomDetectionRules,
287
323
  GuardDutyActions.ListDetectors,
288
324
  GuardDutyActions.ListFilters,
289
325
  GuardDutyActions.ListFindings,
@@ -306,6 +342,8 @@ GuardDutyActions.AllTaggingActions = [
306
342
  GuardDutyActions.TagResource,
307
343
  GuardDutyActions.UntagResource,
308
344
  ];
345
+ const CustomdetectionruleArnRegex = /^arn:(?<partition>[^:]+):guardduty::aws:detection-rule\/custom\/(?<ruleId>[^:/?]+)$/;
346
+ const CustomdetectionruleassociationArnRegex = /^arn:(?<partition>[^:]+):guardduty:(?<region>[^:]*):(?<account>[^:]*):detection-rule\/custom\/(?<ruleId>[^:/?]+)\/association\/(?<associationId>[^:/?]+)$/;
309
347
  const DetectorArnRegex = /^arn:(?<partition>[^:]+):guardduty:(?<region>[^:]*):(?<account>[^:]*):detector\/(?<detectorId>[^:/?]+)$/;
310
348
  const FilterArnRegex = /^arn:(?<partition>[^:]+):guardduty:(?<region>[^:]*):(?<account>[^:]*):detector\/(?<detectorId>[^:/?]+)\/filter\/(?<filterName>[^:/?]+)$/;
311
349
  const IpsetArnRegex = /^arn:(?<partition>[^:]+):guardduty:(?<region>[^:]*):(?<account>[^:]*):detector\/(?<detectorId>[^:/?]+)\/ipset\/(?<ipSetId>[^:/?]+)$/;
@@ -318,6 +356,63 @@ const TrustedentitysetArnRegex = /^arn:(?<partition>[^:]+):guardduty:(?<region>[
318
356
  * ARN builders, validators, and parsers for guardduty resources.
319
357
  */
320
358
  class GuardDutyResources {
359
+ /**
360
+ * Builds an ARN for the customdetectionrule resource.
361
+ */
362
+ static customdetectionrule(props) {
363
+ return `arn:${props.partition ?? "aws"}:guardduty::aws:detection-rule/custom/${props.ruleId}`;
364
+ }
365
+ /**
366
+ * Validates whether a string is a valid ARN for the customdetectionrule resource.
367
+ */
368
+ static isValidCustomdetectionruleArn(arn) {
369
+ return CustomdetectionruleArnRegex.test(arn);
370
+ }
371
+ /**
372
+ * Parses a customdetectionrule ARN into its components.
373
+ * @throws Error if the ARN does not match the expected format.
374
+ */
375
+ static parseCustomdetectionruleArn(arn) {
376
+ const match = CustomdetectionruleArnRegex.exec(arn);
377
+ if (!match?.groups) {
378
+ throw new Error(`Invalid customdetectionrule ARN: ${arn}`);
379
+ }
380
+ return {
381
+ partition: match.groups.partition,
382
+ region: match.groups.region,
383
+ account: match.groups.account,
384
+ ruleId: match.groups.ruleId,
385
+ };
386
+ }
387
+ /**
388
+ * Builds an ARN for the customdetectionruleassociation resource.
389
+ */
390
+ static customdetectionruleassociation(props) {
391
+ return `arn:${props.partition ?? "aws"}:guardduty:${props.region ?? "*"}:${props.account ?? "*"}:detection-rule/custom/${props.ruleId}/association/${props.associationId}`;
392
+ }
393
+ /**
394
+ * Validates whether a string is a valid ARN for the customdetectionruleassociation resource.
395
+ */
396
+ static isValidCustomdetectionruleassociationArn(arn) {
397
+ return CustomdetectionruleassociationArnRegex.test(arn);
398
+ }
399
+ /**
400
+ * Parses a customdetectionruleassociation ARN into its components.
401
+ * @throws Error if the ARN does not match the expected format.
402
+ */
403
+ static parseCustomdetectionruleassociationArn(arn) {
404
+ const match = CustomdetectionruleassociationArnRegex.exec(arn);
405
+ if (!match?.groups) {
406
+ throw new Error(`Invalid customdetectionruleassociation ARN: ${arn}`);
407
+ }
408
+ return {
409
+ partition: match.groups.partition,
410
+ region: match.groups.region,
411
+ account: match.groups.account,
412
+ ruleId: match.groups.ruleId,
413
+ associationId: match.groups.associationId,
414
+ };
415
+ }
321
416
  /**
322
417
  * Builds an ARN for the detector resource.
323
418
  */
@@ -551,7 +646,7 @@ class GuardDutyResources {
551
646
  }
552
647
  exports.GuardDutyResources = GuardDutyResources;
553
648
  _b = JSII_RTTI_SYMBOL_1;
554
- GuardDutyResources[_b] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyResources", version: "1.15.0" };
649
+ GuardDutyResources[_b] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyResources", version: "1.17.0" };
555
650
  /**
556
651
  * API operation to required IAM actions mapping for guardduty.
557
652
  */
@@ -559,7 +654,7 @@ class GuardDutyOperations {
559
654
  }
560
655
  exports.GuardDutyOperations = GuardDutyOperations;
561
656
  _c = JSII_RTTI_SYMBOL_1;
562
- GuardDutyOperations[_c] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyOperations", version: "1.15.0" };
657
+ GuardDutyOperations[_c] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyOperations", version: "1.17.0" };
563
658
  /** IAM actions required for the AcceptAdministratorInvitation API call. */
564
659
  GuardDutyOperations.AcceptAdministratorInvitation = [
565
660
  "guardduty:AcceptAdministratorInvitation",
@@ -568,6 +663,15 @@ GuardDutyOperations.AcceptAdministratorInvitation = [
568
663
  GuardDutyOperations.AcceptInvitation = ["guardduty:AcceptInvitation"];
569
664
  /** IAM actions required for the ArchiveFindings API call. */
570
665
  GuardDutyOperations.ArchiveFindings = ["guardduty:ArchiveFindings"];
666
+ /** IAM actions required for the CreateCustomDetectionRuleAssociation API call. */
667
+ GuardDutyOperations.CreateCustomDetectionRuleAssociation = [
668
+ "guardduty:CreateCustomDetectionRuleAssociation",
669
+ "guardduty:TagResource",
670
+ ];
671
+ /** IAM actions required for the CreateCustomDetectionRuleOrgConfiguration API call. */
672
+ GuardDutyOperations.CreateCustomDetectionRuleOrgConfiguration = [
673
+ "guardduty:CreateCustomDetectionRuleOrgConfiguration",
674
+ ];
571
675
  /** IAM actions required for the CreateDetector API call. */
572
676
  GuardDutyOperations.CreateDetector = [
573
677
  "guardduty:CreateDetector",
@@ -623,6 +727,14 @@ GuardDutyOperations.CreateTrustedEntitySet = [
623
727
  GuardDutyOperations.DeclineInvitations = [
624
728
  "guardduty:DeclineInvitations",
625
729
  ];
730
+ /** IAM actions required for the DeleteCustomDetectionRuleAssociation API call. */
731
+ GuardDutyOperations.DeleteCustomDetectionRuleAssociation = [
732
+ "guardduty:DeleteCustomDetectionRuleAssociation",
733
+ ];
734
+ /** IAM actions required for the DeleteCustomDetectionRuleOrgConfiguration API call. */
735
+ GuardDutyOperations.DeleteCustomDetectionRuleOrgConfiguration = [
736
+ "guardduty:DeleteCustomDetectionRuleOrgConfiguration",
737
+ ];
626
738
  /** IAM actions required for the DeleteDetector API call. */
627
739
  GuardDutyOperations.DeleteDetector = ["guardduty:DeleteDetector"];
628
740
  /** IAM actions required for the DeleteFilter API call. */
@@ -693,6 +805,18 @@ GuardDutyOperations.opGetAdministratorAccount = [
693
805
  GuardDutyOperations.opGetCoverageStatistics = [
694
806
  "guardduty:GetCoverageStatistics",
695
807
  ];
808
+ /** IAM actions required for the GetCustomDetectionRule API call. */
809
+ GuardDutyOperations.opGetCustomDetectionRule = [
810
+ "guardduty:GetCustomDetectionRule",
811
+ ];
812
+ /** IAM actions required for the GetCustomDetectionRuleAssociation API call. */
813
+ GuardDutyOperations.opGetCustomDetectionRuleAssociation = [
814
+ "guardduty:GetCustomDetectionRuleAssociation",
815
+ ];
816
+ /** IAM actions required for the GetCustomDetectionRuleOrgConfiguration API call. */
817
+ GuardDutyOperations.opGetCustomDetectionRuleOrgConfiguration = [
818
+ "guardduty:GetCustomDetectionRuleOrgConfiguration",
819
+ ];
696
820
  /** IAM actions required for the GetDetector API call. */
697
821
  GuardDutyOperations.opGetDetector = ["guardduty:GetDetector"];
698
822
  /** IAM actions required for the GetFilter API call. */
@@ -757,6 +881,18 @@ GuardDutyOperations.opGetUsageStatistics = [
757
881
  GuardDutyOperations.InviteMembers = ["guardduty:InviteMembers"];
758
882
  /** IAM actions required for the ListCoverage API call. */
759
883
  GuardDutyOperations.ListCoverage = ["guardduty:ListCoverage"];
884
+ /** IAM actions required for the ListCustomDetectionRuleAssociations API call. */
885
+ GuardDutyOperations.ListCustomDetectionRuleAssociations = [
886
+ "guardduty:ListCustomDetectionRuleAssociations",
887
+ ];
888
+ /** IAM actions required for the ListCustomDetectionRuleOrgConfigurations API call. */
889
+ GuardDutyOperations.ListCustomDetectionRuleOrgConfigurations = [
890
+ "guardduty:ListCustomDetectionRuleOrgConfigurations",
891
+ ];
892
+ /** IAM actions required for the ListCustomDetectionRules API call. */
893
+ GuardDutyOperations.ListCustomDetectionRules = [
894
+ "guardduty:ListCustomDetectionRules",
895
+ ];
760
896
  /** IAM actions required for the ListDetectors API call. */
761
897
  GuardDutyOperations.ListDetectors = ["guardduty:ListDetectors"];
762
898
  /** IAM actions required for the ListFilters API call. */
@@ -826,6 +962,14 @@ GuardDutyOperations.TagResource = ["guardduty:TagResource"];
826
962
  GuardDutyOperations.UnarchiveFindings = ["guardduty:UnarchiveFindings"];
827
963
  /** IAM actions required for the UntagResource API call. */
828
964
  GuardDutyOperations.UntagResource = ["guardduty:UntagResource"];
965
+ /** IAM actions required for the UpdateCustomDetectionRuleAssociation API call. */
966
+ GuardDutyOperations.UpdateCustomDetectionRuleAssociation = [
967
+ "guardduty:UpdateCustomDetectionRuleAssociation",
968
+ ];
969
+ /** IAM actions required for the UpdateCustomDetectionRuleOrgConfiguration API call. */
970
+ GuardDutyOperations.UpdateCustomDetectionRuleOrgConfiguration = [
971
+ "guardduty:UpdateCustomDetectionRuleOrgConfiguration",
972
+ ];
829
973
  /** IAM actions required for the UpdateDetector API call. */
830
974
  GuardDutyOperations.UpdateDetector = ["guardduty:UpdateDetector"];
831
975
  /** IAM actions required for the UpdateFilter API call. */
@@ -894,7 +1038,9 @@ class GuardDutyConditions {
894
1038
  }
895
1039
  exports.GuardDutyConditions = GuardDutyConditions;
896
1040
  _d = JSII_RTTI_SYMBOL_1;
897
- GuardDutyConditions[_d] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyConditions", version: "1.15.0" };
1041
+ GuardDutyConditions[_d] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyConditions", version: "1.17.0" };
1042
+ /** Condition keys applicable to the CreateCustomDetectionRuleAssociation action. */
1043
+ GuardDutyConditions.CreateCustomDetectionRuleAssociationConditionKeys = ["aws:RequestTag/${TagKey}", "aws:TagKeys"];
898
1044
  /** Condition keys applicable to the CreateDetector action. */
899
1045
  GuardDutyConditions.CreateDetectorConditionKeys = [
900
1046
  "aws:RequestTag/${TagKey}",
@@ -953,4 +1099,4 @@ GuardDutyConditions.AWS_REQUEST_TAG = "aws:RequestTag/${TagKey}";
953
1099
  GuardDutyConditions.AWS_RESOURCE_TAG = "aws:ResourceTag/${TagKey}";
954
1100
  /** Condition key: aws:TagKeys (ArrayOfString) */
955
1101
  GuardDutyConditions.AWS_TAG_KEYS = "aws:TagKeys";
956
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhcmRkdXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9ndWFyZGR1dHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxnREFBZ0Q7QUFDaEQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsZ0JBQWdCOztBQUE3Qiw0Q0E2VEM7OztBQTVUQSw4QkFBOEI7QUFDZCwrQkFBYyxHQUFHLFdBQVcsQ0FBQztBQUU3QyxzREFBc0Q7QUFDdEMsOENBQTZCLEdBQzVDLHlDQUF5QyxDQUFDO0FBQzNDLHlDQUF5QztBQUN6QixpQ0FBZ0IsR0FBRyw0QkFBNEIsQ0FBQztBQUNoRSx3Q0FBd0M7QUFDeEIsZ0NBQWUsR0FBRywyQkFBMkIsQ0FBQztBQUM5RCx1Q0FBdUM7QUFDdkIsK0JBQWMsR0FBRywwQkFBMEIsQ0FBQztBQUM1RCxxQ0FBcUM7QUFDckIsNkJBQVksR0FBRyx3QkFBd0IsQ0FBQztBQUN4RCxvQ0FBb0M7QUFDcEIsNEJBQVcsR0FBRyx1QkFBdUIsQ0FBQztBQUN0RCw0Q0FBNEM7QUFDNUIsb0NBQW1CLEdBQUcsK0JBQStCLENBQUM7QUFDdEUsb0RBQW9EO0FBQ3BDLDRDQUEyQixHQUMxQyx1Q0FBdUMsQ0FBQztBQUN6QyxzQ0FBc0M7QUFDdEIsOEJBQWEsR0FBRyx5QkFBeUIsQ0FBQztBQUMxRCxvREFBb0Q7QUFDcEMsNENBQTJCLEdBQzFDLHVDQUF1QyxDQUFDO0FBQ3pDLDZDQUE2QztBQUM3QixxQ0FBb0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUN4RSw4Q0FBOEM7QUFDOUIsc0NBQXFCLEdBQUcsaUNBQWlDLENBQUM7QUFDMUUsNkNBQTZDO0FBQzdCLHFDQUFvQixHQUFHLGdDQUFnQyxDQUFDO0FBQ3hFLCtDQUErQztBQUMvQix1Q0FBc0IsR0FBRyxrQ0FBa0MsQ0FBQztB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Q0FBMEIsR0FBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRXZFLHVEQUF1RDtBQUN2QyxtQ0FBZSxHQUFHLDBCQUEwQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4QyxvQ0FBZ0IsR0FBRywyQkFBMkIsQ0FBQztBQUMvRCxpREFBaUQ7QUFDakMsZ0NBQVksR0FBRyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9ndWFyZGR1dHkuanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIGd1YXJkZHV0eSBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgR3VhcmREdXR5QWN0aW9ucyB7XG5cdC8qKiBUaGUgSUFNIHNlcnZpY2UgcHJlZml4LiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9QUkVGSVggPSBcImd1YXJkZHV0eVwiO1xuXG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpBY2NlcHRBZG1pbmlzdHJhdG9ySW52aXRhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWNjZXB0QWRtaW5pc3RyYXRvckludml0YXRpb24gPVxuXHRcdFwiZ3VhcmRkdXR5OkFjY2VwdEFkbWluaXN0cmF0b3JJbnZpdGF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpBY2NlcHRJbnZpdGF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBBY2NlcHRJbnZpdGF0aW9uID0gXCJndWFyZGR1dHk6QWNjZXB0SW52aXRhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6QXJjaGl2ZUZpbmRpbmdzICovXG5cdHN0YXRpYyByZWFkb25seSBBcmNoaXZlRmluZGluZ3MgPSBcImd1YXJkZHV0eTpBcmNoaXZlRmluZGluZ3NcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkNyZWF0ZURldGVjdG9yICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEZXRlY3RvciA9IFwiZ3VhcmRkdXR5OkNyZWF0ZURldGVjdG9yXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpDcmVhdGVGaWx0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUZpbHRlciA9IFwiZ3VhcmRkdXR5OkNyZWF0ZUZpbHRlclwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6Q3JlYXRlSVBTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUlQU2V0ID0gXCJndWFyZGR1dHk6Q3JlYXRlSVBTZXRcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkNyZWF0ZUludmVzdGlnYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUludmVzdGlnYXRpb24gPSBcImd1YXJkZHV0eTpDcmVhdGVJbnZlc3RpZ2F0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpDcmVhdGVNYWx3YXJlUHJvdGVjdGlvblBsYW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhbiA9XG5cdFx0XCJndWFyZGR1dHk6Q3JlYXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpDcmVhdGVNZW1iZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVNZW1iZXJzID0gXCJndWFyZGR1dHk6Q3JlYXRlTWVtYmVyc1wiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6Q3JlYXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVQdWJsaXNoaW5nRGVzdGluYXRpb24gPVxuXHRcdFwiZ3VhcmRkdXR5OkNyZWF0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvblwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6Q3JlYXRlU2FtcGxlRmluZGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNhbXBsZUZpbmRpbmdzID0gXCJndWFyZGR1dHk6Q3JlYXRlU2FtcGxlRmluZGluZ3NcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkNyZWF0ZVRocmVhdEVudGl0eVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGhyZWF0RW50aXR5U2V0ID0gXCJndWFyZGR1dHk6Q3JlYXRlVGhyZWF0RW50aXR5U2V0XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpDcmVhdGVUaHJlYXRJbnRlbFNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGhyZWF0SW50ZWxTZXQgPSBcImd1YXJkZHV0eTpDcmVhdGVUaHJlYXRJbnRlbFNldFwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6Q3JlYXRlVHJ1c3RlZEVudGl0eVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVHJ1c3RlZEVudGl0eVNldCA9IFwiZ3VhcmRkdXR5OkNyZWF0ZVRydXN0ZWRFbnRpdHlTZXRcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkRlY2xpbmVJbnZpdGF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVjbGluZUludml0YXRpb25zID0gXCJndWFyZGR1dHk6RGVjbGluZUludml0YXRpb25zXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEZWxldGVEZXRlY3RvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGV0ZWN0b3IgPSBcImd1YXJkZHV0eTpEZWxldGVEZXRlY3RvclwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6RGVsZXRlRmlsdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGaWx0ZXIgPSBcImd1YXJkZHV0eTpEZWxldGVGaWx0ZXJcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkRlbGV0ZUlQU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVJUFNldCA9IFwiZ3VhcmRkdXR5OkRlbGV0ZUlQU2V0XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEZWxldGVJbnZpdGF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSW52aXRhdGlvbnMgPSBcImd1YXJkZHV0eTpEZWxldGVJbnZpdGF0aW9uc1wiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6RGVsZXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVNYWx3YXJlUHJvdGVjdGlvblBsYW4gPVxuXHRcdFwiZ3VhcmRkdXR5OkRlbGV0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhblwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6RGVsZXRlTWVtYmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTWVtYmVycyA9IFwiZ3VhcmRkdXR5OkRlbGV0ZU1lbWJlcnNcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkRlbGV0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uID1cblx0XHRcImd1YXJkZHV0eTpEZWxldGVQdWJsaXNoaW5nRGVzdGluYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkRlbGV0ZVRocmVhdEVudGl0eVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlVGhyZWF0RW50aXR5U2V0ID0gXCJndWFyZGR1dHk6RGVsZXRlVGhyZWF0RW50aXR5U2V0XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEZWxldGVUaHJlYXRJbnRlbFNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlVGhyZWF0SW50ZWxTZXQgPSBcImd1YXJkZHV0eTpEZWxldGVUaHJlYXRJbnRlbFNldFwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6RGVsZXRlVHJ1c3RlZEVudGl0eVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlVHJ1c3RlZEVudGl0eVNldCA9IFwiZ3VhcmRkdXR5OkRlbGV0ZVRydXN0ZWRFbnRpdHlTZXRcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6RGVzY3JpYmVNYWx3YXJlU2NhbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTWFsd2FyZVNjYW5zID0gXCJndWFyZGR1dHk6RGVzY3JpYmVNYWx3YXJlU2NhbnNcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6RGVzY3JpYmVPcmdhbml6YXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZU9yZ2FuaXphdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZ3VhcmRkdXR5OkRlc2NyaWJlT3JnYW5pemF0aW9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpEZXNjcmliZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVQdWJsaXNoaW5nRGVzdGluYXRpb24gPVxuXHRcdFwiZ3VhcmRkdXR5OkRlc2NyaWJlUHVibGlzaGluZ0Rlc3RpbmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEaXNhYmxlT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50ICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhYmxlT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50ID1cblx0XHRcImd1YXJkZHV0eTpEaXNhYmxlT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEaXNhc3NvY2lhdGVGcm9tQWRtaW5pc3RyYXRvckFjY291bnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Fzc29jaWF0ZUZyb21BZG1pbmlzdHJhdG9yQWNjb3VudCA9XG5cdFx0XCJndWFyZGR1dHk6RGlzYXNzb2NpYXRlRnJvbUFkbWluaXN0cmF0b3JBY2NvdW50XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEaXNhc3NvY2lhdGVGcm9tTWFzdGVyQWNjb3VudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlRnJvbU1hc3RlckFjY291bnQgPVxuXHRcdFwiZ3VhcmRkdXR5OkRpc2Fzc29jaWF0ZUZyb21NYXN0ZXJBY2NvdW50XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEaXNhc3NvY2lhdGVNZW1iZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVNZW1iZXJzID0gXCJndWFyZGR1dHk6RGlzYXNzb2NpYXRlTWVtYmVyc1wiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6RW5hYmxlT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50ICovXG5cdHN0YXRpYyByZWFkb25seSBFbmFibGVPcmdhbml6YXRpb25BZG1pbkFjY291bnQgPVxuXHRcdFwiZ3VhcmRkdXR5OkVuYWJsZU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudFwiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpHZXRBZG1pbmlzdHJhdG9yQWNjb3VudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWRtaW5pc3RyYXRvckFjY291bnQgPVxuXHRcdFwiZ3VhcmRkdXR5OkdldEFkbWluaXN0cmF0b3JBY2NvdW50XCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldENvdmVyYWdlU3RhdGlzdGljcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q292ZXJhZ2VTdGF0aXN0aWNzID1cblx0XHRcImd1YXJkZHV0eTpHZXRDb3ZlcmFnZVN0YXRpc3RpY3NcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0RGV0ZWN0b3IgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERldGVjdG9yID0gXCJndWFyZGR1dHk6R2V0RGV0ZWN0b3JcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0RmlsdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGaWx0ZXIgPSBcImd1YXJkZHV0eTpHZXRGaWx0ZXJcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0RmluZGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZpbmRpbmdzID0gXCJndWFyZGR1dHk6R2V0RmluZGluZ3NcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0RmluZGluZ3NTdGF0aXN0aWNzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGaW5kaW5nc1N0YXRpc3RpY3MgPVxuXHRcdFwiZ3VhcmRkdXR5OkdldEZpbmRpbmdzU3RhdGlzdGljc1wiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpHZXRJUFNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SVBTZXQgPSBcImd1YXJkZHV0eTpHZXRJUFNldFwiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpHZXRJbnZlc3RpZ2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRJbnZlc3RpZ2F0aW9uID0gXCJndWFyZGR1dHk6R2V0SW52ZXN0aWdhdGlvblwiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpHZXRJbnZpdGF0aW9uc0NvdW50ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRJbnZpdGF0aW9uc0NvdW50ID0gXCJndWFyZGR1dHk6R2V0SW52aXRhdGlvbnNDb3VudFwiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpHZXRNYWx3YXJlUHJvdGVjdGlvblBsYW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE1hbHdhcmVQcm90ZWN0aW9uUGxhbiA9XG5cdFx0XCJndWFyZGR1dHk6R2V0TWFsd2FyZVByb3RlY3Rpb25QbGFuXCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldE1hbHdhcmVTY2FuICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRNYWx3YXJlU2NhbiA9IFwiZ3VhcmRkdXR5OkdldE1hbHdhcmVTY2FuXCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldE1hbHdhcmVTY2FuU2V0dGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE1hbHdhcmVTY2FuU2V0dGluZ3MgPVxuXHRcdFwiZ3VhcmRkdXR5OkdldE1hbHdhcmVTY2FuU2V0dGluZ3NcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0TWFzdGVyQWNjb3VudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TWFzdGVyQWNjb3VudCA9IFwiZ3VhcmRkdXR5OkdldE1hc3RlckFjY291bnRcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0TWVtYmVyRGV0ZWN0b3JzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRNZW1iZXJEZXRlY3RvcnMgPSBcImd1YXJkZHV0eTpHZXRNZW1iZXJEZXRlY3RvcnNcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0TWVtYmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TWVtYmVycyA9IFwiZ3VhcmRkdXR5OkdldE1lbWJlcnNcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0T3JnYW5pemF0aW9uU3RhdGlzdGljcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0T3JnYW5pemF0aW9uU3RhdGlzdGljcyA9XG5cdFx0XCJndWFyZGR1dHk6R2V0T3JnYW5pemF0aW9uU3RhdGlzdGljc1wiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpHZXRSZW1haW5pbmdGcmVlVHJpYWxEYXlzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZW1haW5pbmdGcmVlVHJpYWxEYXlzID1cblx0XHRcImd1YXJkZHV0eTpHZXRSZW1haW5pbmdGcmVlVHJpYWxEYXlzXCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldFRocmVhdEVudGl0eVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VGhyZWF0RW50aXR5U2V0ID0gXCJndWFyZGR1dHk6R2V0VGhyZWF0RW50aXR5U2V0XCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldFRocmVhdEludGVsU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRUaHJlYXRJbnRlbFNldCA9IFwiZ3VhcmRkdXR5OkdldFRocmVhdEludGVsU2V0XCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldFRydXN0ZWRFbnRpdHlTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRydXN0ZWRFbnRpdHlTZXQgPSBcImd1YXJkZHV0eTpHZXRUcnVzdGVkRW50aXR5U2V0XCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldFVzYWdlU3RhdGlzdGljcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VXNhZ2VTdGF0aXN0aWNzID0gXCJndWFyZGR1dHk6R2V0VXNhZ2VTdGF0aXN0aWNzXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpJbnZpdGVNZW1iZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBJbnZpdGVNZW1iZXJzID0gXCJndWFyZGR1dHk6SW52aXRlTWVtYmVyc1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0Q292ZXJhZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb3ZlcmFnZSA9IFwiZ3VhcmRkdXR5Okxpc3RDb3ZlcmFnZVwiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0RGV0ZWN0b3JzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGV0ZWN0b3JzID0gXCJndWFyZGR1dHk6TGlzdERldGVjdG9yc1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0RmlsdGVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZpbHRlcnMgPSBcImd1YXJkZHV0eTpMaXN0RmlsdGVyc1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0RmluZGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGaW5kaW5ncyA9IFwiZ3VhcmRkdXR5Okxpc3RGaW5kaW5nc1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0SVBTZXRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SVBTZXRzID0gXCJndWFyZGR1dHk6TGlzdElQU2V0c1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0SW52ZXN0aWdhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbnZlc3RpZ2F0aW9ucyA9IFwiZ3VhcmRkdXR5Okxpc3RJbnZlc3RpZ2F0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0SW52aXRhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbnZpdGF0aW9ucyA9IFwiZ3VhcmRkdXR5Okxpc3RJbnZpdGF0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0TWFsd2FyZVByb3RlY3Rpb25QbGFucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1hbHdhcmVQcm90ZWN0aW9uUGxhbnMgPVxuXHRcdFwiZ3VhcmRkdXR5Okxpc3RNYWx3YXJlUHJvdGVjdGlvblBsYW5zXCI7XG5cdC8qKiBbTGlzdF0gZ3VhcmRkdXR5Okxpc3RNYWx3YXJlU2NhbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNYWx3YXJlU2NhbnMgPSBcImd1YXJkZHV0eTpMaXN0TWFsd2FyZVNjYW5zXCI7XG5cdC8qKiBbTGlzdF0gZ3VhcmRkdXR5Okxpc3RNZW1iZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWVtYmVycyA9IFwiZ3VhcmRkdXR5Okxpc3RNZW1iZXJzXCI7XG5cdC8qKiBbTGlzdF0gZ3VhcmRkdXR5Okxpc3RPcmdhbml6YXRpb25BZG1pbkFjY291bnRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0T3JnYW5pemF0aW9uQWRtaW5BY2NvdW50cyA9XG5cdFx0XCJndWFyZGR1dHk6TGlzdE9yZ2FuaXphdGlvbkFkbWluQWNjb3VudHNcIjtcblx0LyoqIFtMaXN0XSBndWFyZGR1dHk6TGlzdFB1Ymxpc2hpbmdEZXN0aW5hdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RQdWJsaXNoaW5nRGVzdGluYXRpb25zID1cblx0XHRcImd1YXJkZHV0eTpMaXN0UHVibGlzaGluZ0Rlc3RpbmF0aW9uc1wiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJndWFyZGR1dHk6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0VGhyZWF0RW50aXR5U2V0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRocmVhdEVudGl0eVNldHMgPSBcImd1YXJkZHV0eTpMaXN0VGhyZWF0RW50aXR5U2V0c1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0VGhyZWF0SW50ZWxTZXRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGhyZWF0SW50ZWxTZXRzID0gXCJndWFyZGR1dHk6TGlzdFRocmVhdEludGVsU2V0c1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0VHJ1c3RlZEVudGl0eVNldHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUcnVzdGVkRW50aXR5U2V0cyA9IFwiZ3VhcmRkdXR5Okxpc3RUcnVzdGVkRW50aXR5U2V0c1wiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6U2VuZE9iamVjdE1hbHdhcmVTY2FuICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kT2JqZWN0TWFsd2FyZVNjYW4gPSBcImd1YXJkZHV0eTpTZW5kT2JqZWN0TWFsd2FyZVNjYW5cIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlNlbmRTZWN1cml0eVRlbGVtZXRyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZFNlY3VyaXR5VGVsZW1ldHJ5ID0gXCJndWFyZGR1dHk6U2VuZFNlY3VyaXR5VGVsZW1ldHJ5XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpTdGFydE1hbHdhcmVTY2FuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydE1hbHdhcmVTY2FuID0gXCJndWFyZGR1dHk6U3RhcnRNYWx3YXJlU2NhblwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6U3RhcnRNb25pdG9yaW5nTWVtYmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRNb25pdG9yaW5nTWVtYmVycyA9IFwiZ3VhcmRkdXR5OlN0YXJ0TW9uaXRvcmluZ01lbWJlcnNcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlN0b3BNb25pdG9yaW5nTWVtYmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcE1vbml0b3JpbmdNZW1iZXJzID0gXCJndWFyZGR1dHk6U3RvcE1vbml0b3JpbmdNZW1iZXJzXCI7XG5cdC8qKiBbVGFnZ2luZ10gZ3VhcmRkdXR5OlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwiZ3VhcmRkdXR5OlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpVbmFyY2hpdmVGaW5kaW5ncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW5hcmNoaXZlRmluZGluZ3MgPSBcImd1YXJkZHV0eTpVbmFyY2hpdmVGaW5kaW5nc1wiO1xuXHQvKiogW1RhZ2dpbmddIGd1YXJkZHV0eTpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJndWFyZGR1dHk6VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6VXBkYXRlRGV0ZWN0b3IgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZURldGVjdG9yID0gXCJndWFyZGR1dHk6VXBkYXRlRGV0ZWN0b3JcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlVwZGF0ZUZpbHRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRmlsdGVyID0gXCJndWFyZGR1dHk6VXBkYXRlRmlsdGVyXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpVcGRhdGVGaW5kaW5nc0ZlZWRiYWNrICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGaW5kaW5nc0ZlZWRiYWNrID0gXCJndWFyZGR1dHk6VXBkYXRlRmluZGluZ3NGZWVkYmFja1wiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6VXBkYXRlSVBTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUlQU2V0ID0gXCJndWFyZGR1dHk6VXBkYXRlSVBTZXRcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlVwZGF0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuID1cblx0XHRcImd1YXJkZHV0eTpVcGRhdGVNYWx3YXJlUHJvdGVjdGlvblBsYW5cIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlVwZGF0ZU1hbHdhcmVTY2FuU2V0dGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1hbHdhcmVTY2FuU2V0dGluZ3MgPVxuXHRcdFwiZ3VhcmRkdXR5OlVwZGF0ZU1hbHdhcmVTY2FuU2V0dGluZ3NcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlVwZGF0ZU1lbWJlckRldGVjdG9ycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWVtYmVyRGV0ZWN0b3JzID0gXCJndWFyZGR1dHk6VXBkYXRlTWVtYmVyRGV0ZWN0b3JzXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpVcGRhdGVPcmdhbml6YXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVPcmdhbml6YXRpb25Db25maWd1cmF0aW9uID1cblx0XHRcImd1YXJkZHV0eTpVcGRhdGVPcmdhbml6YXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpVcGRhdGVQdWJsaXNoaW5nRGVzdGluYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbiA9XG5cdFx0XCJndWFyZGR1dHk6VXBkYXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpVcGRhdGVUaHJlYXRFbnRpdHlTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRocmVhdEVudGl0eVNldCA9IFwiZ3VhcmRkdXR5OlVwZGF0ZVRocmVhdEVudGl0eVNldFwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6VXBkYXRlVGhyZWF0SW50ZWxTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRocmVhdEludGVsU2V0ID0gXCJndWFyZGR1dHk6VXBkYXRlVGhyZWF0SW50ZWxTZXRcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlVwZGF0ZVRydXN0ZWRFbnRpdHlTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRydXN0ZWRFbnRpdHlTZXQgPSBcImd1YXJkZHV0eTpVcGRhdGVUcnVzdGVkRW50aXR5U2V0XCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5EZXNjcmliZU1hbHdhcmVTY2Fucyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRlc2NyaWJlT3JnYW5pemF0aW9uQ29uZmlndXJhdGlvbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRlc2NyaWJlUHVibGlzaGluZ0Rlc3RpbmF0aW9uLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0QWRtaW5pc3RyYXRvckFjY291bnQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRDb3ZlcmFnZVN0YXRpc3RpY3MsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXREZXRlY3Rvcixcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldEZpbHRlcixcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldEZpbmRpbmdzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0RmluZGluZ3NTdGF0aXN0aWNzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0SVBTZXQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRJbnZlc3RpZ2F0aW9uLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0SW52aXRhdGlvbnNDb3VudCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldE1hbHdhcmVQcm90ZWN0aW9uUGxhbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldE1hbHdhcmVTY2FuLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0TWFsd2FyZVNjYW5TZXR0aW5ncyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldE1hc3RlckFjY291bnQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRNZW1iZXJEZXRlY3RvcnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRNZW1iZXJzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0T3JnYW5pemF0aW9uU3RhdGlzdGljcyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldFJlbWFpbmluZ0ZyZWVUcmlhbERheXMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRUaHJlYXRFbnRpdHlTZXQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRUaHJlYXRJbnRlbFNldCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldFRydXN0ZWRFbnRpdHlTZXQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRVc2FnZVN0YXRpc3RpY3MsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEd1YXJkRHV0eUFjdGlvbnMuQWNjZXB0QWRtaW5pc3RyYXRvckludml0YXRpb24sXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5BY2NlcHRJbnZpdGF0aW9uLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuQXJjaGl2ZUZpbmRpbmdzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuQ3JlYXRlRGV0ZWN0b3IsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5DcmVhdGVGaWx0ZXIsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5DcmVhdGVJUFNldCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkNyZWF0ZUludmVzdGlnYXRpb24sXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5DcmVhdGVNYWx3YXJlUHJvdGVjdGlvblBsYW4sXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5DcmVhdGVNZW1iZXJzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuQ3JlYXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuQ3JlYXRlU2FtcGxlRmluZGluZ3MsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5DcmVhdGVUaHJlYXRFbnRpdHlTZXQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5DcmVhdGVUaHJlYXRJbnRlbFNldCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkNyZWF0ZVRydXN0ZWRFbnRpdHlTZXQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5EZWNsaW5lSW52aXRhdGlvbnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5EZWxldGVEZXRlY3Rvcixcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRlbGV0ZUZpbHRlcixcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRlbGV0ZUlQU2V0LFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuRGVsZXRlSW52aXRhdGlvbnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5EZWxldGVNYWx3YXJlUHJvdGVjdGlvblBsYW4sXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5EZWxldGVNZW1iZXJzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuRGVsZXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuRGVsZXRlVGhyZWF0RW50aXR5U2V0LFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuRGVsZXRlVGhyZWF0SW50ZWxTZXQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5EZWxldGVUcnVzdGVkRW50aXR5U2V0LFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuRGlzYWJsZU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRpc2Fzc29jaWF0ZUZyb21BZG1pbmlzdHJhdG9yQWNjb3VudCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRpc2Fzc29jaWF0ZUZyb21NYXN0ZXJBY2NvdW50LFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuRGlzYXNzb2NpYXRlTWVtYmVycyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkVuYWJsZU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkludml0ZU1lbWJlcnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5TZW5kT2JqZWN0TWFsd2FyZVNjYW4sXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5TZW5kU2VjdXJpdHlUZWxlbWV0cnksXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5TdGFydE1hbHdhcmVTY2FuLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuU3RhcnRNb25pdG9yaW5nTWVtYmVycyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLlN0b3BNb25pdG9yaW5nTWVtYmVycyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLlVuYXJjaGl2ZUZpbmRpbmdzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuVXBkYXRlRGV0ZWN0b3IsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5VcGRhdGVGaWx0ZXIsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5VcGRhdGVGaW5kaW5nc0ZlZWRiYWNrLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuVXBkYXRlSVBTZXQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5VcGRhdGVNYWx3YXJlUHJvdGVjdGlvblBsYW4sXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5VcGRhdGVNYWx3YXJlU2NhblNldHRpbmdzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuVXBkYXRlTWVtYmVyRGV0ZWN0b3JzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuVXBkYXRlT3JnYW5pemF0aW9uQ29uZmlndXJhdGlvbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLlVwZGF0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLlVwZGF0ZVRocmVhdEVudGl0eVNldCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLlVwZGF0ZVRocmVhdEludGVsU2V0LFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuVXBkYXRlVHJ1c3RlZEVudGl0eVNldCxcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0Q292ZXJhZ2UsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0RGV0ZWN0b3JzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdEZpbHRlcnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0RmluZGluZ3MsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0SVBTZXRzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdEludmVzdGlnYXRpb25zLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdEludml0YXRpb25zLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdE1hbHdhcmVQcm90ZWN0aW9uUGxhbnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0TWFsd2FyZVNjYW5zLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdE1lbWJlcnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0T3JnYW5pemF0aW9uQWRtaW5BY2NvdW50cyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkxpc3RQdWJsaXNoaW5nRGVzdGluYXRpb25zLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdFRocmVhdEVudGl0eVNldHMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0VGhyZWF0SW50ZWxTZXRzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdFRydXN0ZWRFbnRpdHlTZXRzLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRHdWFyZER1dHlBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuVW50YWdSZXNvdXJjZSxcblx0XTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGRldGVjdG9yIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHdWFyZER1dHlEZXRlY3RvckFyblByb3BzIHtcblx0LyoqIFRoZSBEZXRlY3RvcklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkZXRlY3RvcklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgZGV0ZWN0b3IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJkRHV0eURldGVjdG9yQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEZXRlY3RvcklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGV0ZWN0b3JJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZmlsdGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHdWFyZER1dHlGaWx0ZXJBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGV0ZWN0b3JJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGV0ZWN0b3JJZDogc3RyaW5nO1xuXHQvKiogVGhlIEZpbHRlck5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGZpbHRlck5hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBmaWx0ZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJkRHV0eUZpbHRlckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRGV0ZWN0b3JJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRldGVjdG9ySWQ6IHN0cmluZztcblx0LyoqIFRoZSBGaWx0ZXJOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZmlsdGVyTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgaXBzZXQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJkRHV0eUlwc2V0QXJuUHJvcHMge1xuXHQvKiogVGhlIERldGVjdG9ySWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRldGVjdG9ySWQ6IHN0cmluZztcblx0LyoqIFRoZSBJUFNldElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBpcFNldElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgaXBzZXQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJkRHV0eUlwc2V0QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEZXRlY3RvcklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGV0ZWN0b3JJZDogc3RyaW5nO1xuXHQvKiogVGhlIElQU2V0SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBpcFNldElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBtYWx3YXJlcHJvdGVjdGlvbnBsYW4gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJkRHV0eU1hbHdhcmVwcm90ZWN0aW9ucGxhbkFyblByb3BzIHtcblx0LyoqIFRoZSBNYWx3YXJlUHJvdGVjdGlvblBsYW5JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbWFsd2FyZVByb3RlY3Rpb25QbGFuSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBtYWx3YXJlcHJvdGVjdGlvbnBsYW4gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJkRHV0eU1hbHdhcmVwcm90ZWN0aW9ucGxhbkFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgTWFsd2FyZVByb3RlY3Rpb25QbGFuSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBtYWx3YXJlUHJvdGVjdGlvblBsYW5JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgcHVibGlzaGluZ0Rlc3RpbmF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHdWFyZER1dHlQdWJsaXNoaW5nRGVzdGluYXRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGV0ZWN0b3JJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGV0ZWN0b3JJZDogc3RyaW5nO1xuXHQvKiogVGhlIFB1Ymxpc2hpbmdEZXN0aW5hdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBwdWJsaXNoaW5nRGVzdGluYXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHB1Ymxpc2hpbmdEZXN0aW5hdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5UHVibGlzaGluZ0Rlc3RpbmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEZXRlY3RvcklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGV0ZWN0b3JJZDogc3RyaW5nO1xuXHQvKiogVGhlIFB1Ymxpc2hpbmdEZXN0aW5hdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcHVibGlzaGluZ0Rlc3RpbmF0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHRocmVhdGVudGl0eXNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5VGhyZWF0ZW50aXR5c2V0QXJuUHJvcHMge1xuXHQvKiogVGhlIERldGVjdG9ySWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRldGVjdG9ySWQ6IHN0cmluZztcblx0LyoqIFRoZSBUaHJlYXRFbnRpdHlTZXRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdGhyZWF0RW50aXR5U2V0SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSB0aHJlYXRlbnRpdHlzZXQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJkRHV0eVRocmVhdGVudGl0eXNldEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRGV0ZWN0b3JJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRldGVjdG9ySWQ6IHN0cmluZztcblx0LyoqIFRoZSBUaHJlYXRFbnRpdHlTZXRJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHRocmVhdEVudGl0eVNldElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSB0aHJlYXRpbnRlbHNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5VGhyZWF0aW50ZWxzZXRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGV0ZWN0b3JJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGV0ZWN0b3JJZDogc3RyaW5nO1xuXHQvKiogVGhlIFRocmVhdEludGVsU2V0SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHRocmVhdEludGVsU2V0SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSB0aHJlYXRpbnRlbHNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5VGhyZWF0aW50ZWxzZXRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERldGVjdG9ySWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkZXRlY3RvcklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVGhyZWF0SW50ZWxTZXRJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHRocmVhdEludGVsU2V0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHRydXN0ZWRlbnRpdHlzZXQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJkRHV0eVRydXN0ZWRlbnRpdHlzZXRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGV0ZWN0b3JJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGV0ZWN0b3JJZDogc3RyaW5nO1xuXHQvKiogVGhlIFRydXN0ZWRFbnRpdHlTZXRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdHJ1c3RlZEVudGl0eVNldElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgdHJ1c3RlZGVudGl0eXNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5VHJ1c3RlZGVudGl0eXNldEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRGV0ZWN0b3JJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRldGVjdG9ySWQ6IHN0cmluZztcblx0LyoqIFRoZSBUcnVzdGVkRW50aXR5U2V0SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB0cnVzdGVkRW50aXR5U2V0SWQ6IHN0cmluZztcbn1cblxuY29uc3QgRGV0ZWN0b3JBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3VhcmRkdXR5Oig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGV0ZWN0b3JcXC8oPzxkZXRlY3RvcklkPlteOi8/XSspJC87XG5jb25zdCBGaWx0ZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3VhcmRkdXR5Oig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGV0ZWN0b3JcXC8oPzxkZXRlY3RvcklkPlteOi8/XSspXFwvZmlsdGVyXFwvKD88ZmlsdGVyTmFtZT5bXjovP10rKSQvO1xuY29uc3QgSXBzZXRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3VhcmRkdXR5Oig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGV0ZWN0b3JcXC8oPzxkZXRlY3RvcklkPlteOi8/XSspXFwvaXBzZXRcXC8oPzxpcFNldElkPlteOi8/XSspJC87XG5jb25zdCBNYWx3YXJlcHJvdGVjdGlvbnBsYW5Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3VhcmRkdXR5Oig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6bWFsd2FyZS1wcm90ZWN0aW9uLXBsYW5cXC8oPzxtYWx3YXJlUHJvdGVjdGlvblBsYW5JZD5bXjovP10rKSQvO1xuY29uc3QgUHVibGlzaGluZ0Rlc3RpbmF0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmd1YXJkZHV0eTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRldGVjdG9yXFwvKD88ZGV0ZWN0b3JJZD5bXjovP10rKVxcL3B1Ymxpc2hpbmdkZXN0aW5hdGlvblxcLyg/PHB1Ymxpc2hpbmdEZXN0aW5hdGlvbklkPlteOi8/XSspJC87XG5jb25zdCBUaHJlYXRlbnRpdHlzZXRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3VhcmRkdXR5Oig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGV0ZWN0b3JcXC8oPzxkZXRlY3RvcklkPlteOi8/XSspXFwvdGhyZWF0ZW50aXR5c2V0XFwvKD88dGhyZWF0RW50aXR5U2V0SWQ+W146Lz9dKykkLztcbmNvbnN0IFRocmVhdGludGVsc2V0QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmd1YXJkZHV0eTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRldGVjdG9yXFwvKD88ZGV0ZWN0b3JJZD5bXjovP10rKVxcL3RocmVhdGludGVsc2V0XFwvKD88dGhyZWF0SW50ZWxTZXRJZD5bXjovP10rKSQvO1xuY29uc3QgVHJ1c3RlZGVudGl0eXNldEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpndWFyZGR1dHk6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkZXRlY3RvclxcLyg/PGRldGVjdG9ySWQ+W146Lz9dKylcXC90cnVzdGVkZW50aXR5c2V0XFwvKD88dHJ1c3RlZEVudGl0eVNldElkPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3IgZ3VhcmRkdXR5IHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEd1YXJkRHV0eVJlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZGV0ZWN0b3IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGV0ZWN0b3IocHJvcHM6IEd1YXJkRHV0eURldGVjdG9yQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omd1YXJkZHV0eToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkZXRlY3Rvci8ke3Byb3BzLmRldGVjdG9ySWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRldGVjdG9yIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREZXRlY3RvckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBEZXRlY3RvckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkZXRlY3RvciBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEZXRlY3RvckFybihhcm46IHN0cmluZyk6IEd1YXJkRHV0eURldGVjdG9yQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEZXRlY3RvckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkZXRlY3RvciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkZXRlY3RvcklkOiBtYXRjaC5ncm91cHMhLmRldGVjdG9ySWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZmlsdGVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGZpbHRlcihwcm9wczogR3VhcmREdXR5RmlsdGVyQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omd1YXJkZHV0eToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkZXRlY3Rvci8ke3Byb3BzLmRldGVjdG9ySWR9L2ZpbHRlci8ke3Byb3BzLmZpbHRlck5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGZpbHRlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRmlsdGVyQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEZpbHRlckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBmaWx0ZXIgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRmlsdGVyQXJuKGFybjogc3RyaW5nKTogR3VhcmREdXR5RmlsdGVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBGaWx0ZXJBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZmlsdGVyIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRldGVjdG9ySWQ6IG1hdGNoLmdyb3VwcyEuZGV0ZWN0b3JJZCxcblx0XHRcdGZpbHRlck5hbWU6IG1hdGNoLmdyb3VwcyEuZmlsdGVyTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBpcHNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpcHNldChwcm9wczogR3VhcmREdXR5SXBzZXRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3VhcmRkdXR5OiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRldGVjdG9yLyR7cHJvcHMuZGV0ZWN0b3JJZH0vaXBzZXQvJHtwcm9wcy5pcFNldElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBpcHNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSXBzZXRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSXBzZXRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgaXBzZXQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlSXBzZXRBcm4oYXJuOiBzdHJpbmcpOiBHdWFyZER1dHlJcHNldEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSXBzZXRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaXBzZXQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGV0ZWN0b3JJZDogbWF0Y2guZ3JvdXBzIS5kZXRlY3RvcklkLFxuXHRcdFx0aXBTZXRJZDogbWF0Y2guZ3JvdXBzIS5pcFNldElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIG1hbHdhcmVwcm90ZWN0aW9ucGxhbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBtYWx3YXJlcHJvdGVjdGlvbnBsYW4oXG5cdFx0cHJvcHM6IEd1YXJkRHV0eU1hbHdhcmVwcm90ZWN0aW9ucGxhbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omd1YXJkZHV0eToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTptYWx3YXJlLXByb3RlY3Rpb24tcGxhbi8ke3Byb3BzLm1hbHdhcmVQcm90ZWN0aW9uUGxhbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBtYWx3YXJlcHJvdGVjdGlvbnBsYW4gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZE1hbHdhcmVwcm90ZWN0aW9ucGxhbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBNYWx3YXJlcHJvdGVjdGlvbnBsYW5Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgbWFsd2FyZXByb3RlY3Rpb25wbGFuIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZU1hbHdhcmVwcm90ZWN0aW9ucGxhbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3VhcmREdXR5TWFsd2FyZXByb3RlY3Rpb25wbGFuQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBNYWx3YXJlcHJvdGVjdGlvbnBsYW5Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbWFsd2FyZXByb3RlY3Rpb25wbGFuIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdG1hbHdhcmVQcm90ZWN0aW9uUGxhbklkOiBtYXRjaC5ncm91cHMhLm1hbHdhcmVQcm90ZWN0aW9uUGxhbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHB1Ymxpc2hpbmdEZXN0aW5hdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBwdWJsaXNoaW5nRGVzdGluYXRpb24oXG5cdFx0cHJvcHM6IEd1YXJkRHV0eVB1Ymxpc2hpbmdEZXN0aW5hdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omd1YXJkZHV0eToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkZXRlY3Rvci8ke3Byb3BzLmRldGVjdG9ySWR9L3B1Ymxpc2hpbmdkZXN0aW5hdGlvbi8ke3Byb3BzLnB1Ymxpc2hpbmdEZXN0aW5hdGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBwdWJsaXNoaW5nRGVzdGluYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFB1Ymxpc2hpbmdEZXN0aW5hdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBQdWJsaXNoaW5nRGVzdGluYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgcHVibGlzaGluZ0Rlc3RpbmF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3VhcmREdXR5UHVibGlzaGluZ0Rlc3RpbmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBQdWJsaXNoaW5nRGVzdGluYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcHVibGlzaGluZ0Rlc3RpbmF0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRldGVjdG9ySWQ6IG1hdGNoLmdyb3VwcyEuZGV0ZWN0b3JJZCxcblx0XHRcdHB1Ymxpc2hpbmdEZXN0aW5hdGlvbklkOiBtYXRjaC5ncm91cHMhLnB1Ymxpc2hpbmdEZXN0aW5hdGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHRocmVhdGVudGl0eXNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB0aHJlYXRlbnRpdHlzZXQocHJvcHM6IEd1YXJkRHV0eVRocmVhdGVudGl0eXNldEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpndWFyZGR1dHk6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZGV0ZWN0b3IvJHtwcm9wcy5kZXRlY3RvcklkfS90aHJlYXRlbnRpdHlzZXQvJHtwcm9wcy50aHJlYXRFbnRpdHlTZXRJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgdGhyZWF0ZW50aXR5c2V0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRUaHJlYXRlbnRpdHlzZXRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gVGhyZWF0ZW50aXR5c2V0QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHRocmVhdGVudGl0eXNldCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VUaHJlYXRlbnRpdHlzZXRBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEd1YXJkRHV0eVRocmVhdGVudGl0eXNldEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gVGhyZWF0ZW50aXR5c2V0QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRocmVhdGVudGl0eXNldCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkZXRlY3RvcklkOiBtYXRjaC5ncm91cHMhLmRldGVjdG9ySWQsXG5cdFx0XHR0aHJlYXRFbnRpdHlTZXRJZDogbWF0Y2guZ3JvdXBzIS50aHJlYXRFbnRpdHlTZXRJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB0aHJlYXRpbnRlbHNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB0aHJlYXRpbnRlbHNldChwcm9wczogR3VhcmREdXR5VGhyZWF0aW50ZWxzZXRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3VhcmRkdXR5OiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRldGVjdG9yLyR7cHJvcHMuZGV0ZWN0b3JJZH0vdGhyZWF0aW50ZWxzZXQvJHtwcm9wcy50aHJlYXRJbnRlbFNldElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSB0aHJlYXRpbnRlbHNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkVGhyZWF0aW50ZWxzZXRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gVGhyZWF0aW50ZWxzZXRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgdGhyZWF0aW50ZWxzZXQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlVGhyZWF0aW50ZWxzZXRBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEd1YXJkRHV0eVRocmVhdGludGVsc2V0QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBUaHJlYXRpbnRlbHNldEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0aHJlYXRpbnRlbHNldCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkZXRlY3RvcklkOiBtYXRjaC5ncm91cHMhLmRldGVjdG9ySWQsXG5cdFx0XHR0aHJlYXRJbnRlbFNldElkOiBtYXRjaC5ncm91cHMhLnRocmVhdEludGVsU2V0SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgdHJ1c3RlZGVudGl0eXNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB0cnVzdGVkZW50aXR5c2V0KHByb3BzOiBHdWFyZER1dHlUcnVzdGVkZW50aXR5c2V0QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omd1YXJkZHV0eToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkZXRlY3Rvci8ke3Byb3BzLmRldGVjdG9ySWR9L3RydXN0ZWRlbnRpdHlzZXQvJHtwcm9wcy50cnVzdGVkRW50aXR5U2V0SWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHRydXN0ZWRlbnRpdHlzZXQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFRydXN0ZWRlbnRpdHlzZXRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gVHJ1c3RlZGVudGl0eXNldEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSB0cnVzdGVkZW50aXR5c2V0IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVRydXN0ZWRlbnRpdHlzZXRBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEd1YXJkRHV0eVRydXN0ZWRlbnRpdHlzZXRBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFRydXN0ZWRlbnRpdHlzZXRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdHJ1c3RlZGVudGl0eXNldCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkZXRlY3RvcklkOiBtYXRjaC5ncm91cHMhLmRldGVjdG9ySWQsXG5cdFx0XHR0cnVzdGVkRW50aXR5U2V0SWQ6IG1hdGNoLmdyb3VwcyEudHJ1c3RlZEVudGl0eVNldElkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGd1YXJkZHV0eS5cbiAqL1xuZXhwb3J0IGNsYXNzIEd1YXJkRHV0eU9wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBY2NlcHRBZG1pbmlzdHJhdG9ySW52aXRhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFjY2VwdEFkbWluaXN0cmF0b3JJbnZpdGF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpBY2NlcHRBZG1pbmlzdHJhdG9ySW52aXRhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBY2NlcHRJbnZpdGF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWNjZXB0SW52aXRhdGlvbjogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6QWNjZXB0SW52aXRhdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQXJjaGl2ZUZpbmRpbmdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXJjaGl2ZUZpbmRpbmdzOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpBcmNoaXZlRmluZGluZ3NcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZURldGVjdG9yIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGV0ZWN0b3I6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkNyZWF0ZURldGVjdG9yXCIsXG5cdFx0XCJndWFyZGR1dHk6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRmlsdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRmlsdGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpDcmVhdGVGaWx0ZXJcIixcblx0XHRcImd1YXJkZHV0eTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVJUFNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUlQU2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpDcmVhdGVJUFNldFwiLFxuXHRcdFwiZ3VhcmRkdXR5OlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUludmVzdGlnYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJbnZlc3RpZ2F0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpDcmVhdGVJbnZlc3RpZ2F0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhbjogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6Q3JlYXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImd1YXJkZHV0eTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVNZW1iZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTWVtYmVyczogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6Q3JlYXRlTWVtYmVyc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpDcmVhdGVQdWJsaXNoaW5nRGVzdGluYXRpb25cIixcblx0XHRcImd1YXJkZHV0eTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTYW1wbGVGaW5kaW5ncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNhbXBsZUZpbmRpbmdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpDcmVhdGVTYW1wbGVGaW5kaW5nc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVUaHJlYXRFbnRpdHlTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVUaHJlYXRFbnRpdHlTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkNyZWF0ZVRocmVhdEVudGl0eVNldFwiLFxuXHRcdFwiZ3VhcmRkdXR5OlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVRocmVhdEludGVsU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGhyZWF0SW50ZWxTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkNyZWF0ZVRocmVhdEludGVsU2V0XCIsXG5cdFx0XCJndWFyZGR1dHk6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlVHJ1c3RlZEVudGl0eVNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRydXN0ZWRFbnRpdHlTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkNyZWF0ZVRydXN0ZWRFbnRpdHlTZXRcIixcblx0XHRcImd1YXJkZHV0eTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWNsaW5lSW52aXRhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWNsaW5lSW52aXRhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkRlY2xpbmVJbnZpdGF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVEZXRlY3RvciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURldGVjdG9yOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpEZWxldGVEZXRlY3RvclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRmlsdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRmlsdGVyOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpEZWxldGVGaWx0ZXJcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUlQU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSVBTZXQ6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OkRlbGV0ZUlQU2V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVJbnZpdGF0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUludml0YXRpb25zOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpEZWxldGVJbnZpdGF0aW9uc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpEZWxldGVNYWx3YXJlUHJvdGVjdGlvblBsYW5cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTWVtYmVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU1lbWJlcnM6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OkRlbGV0ZU1lbWJlcnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6RGVsZXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVRocmVhdEVudGl0eVNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRocmVhdEVudGl0eVNldDogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6RGVsZXRlVGhyZWF0RW50aXR5U2V0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVRocmVhdEludGVsU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlVGhyZWF0SW50ZWxTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkRlbGV0ZVRocmVhdEludGVsU2V0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVRydXN0ZWRFbnRpdHlTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVUcnVzdGVkRW50aXR5U2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpEZWxldGVUcnVzdGVkRW50aXR5U2V0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlTWFsd2FyZVNjYW5zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVNYWx3YXJlU2NhbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkRlc2NyaWJlTWFsd2FyZVNjYW5zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlT3JnYW5pemF0aW9uQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlT3JnYW5pemF0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6RGVzY3JpYmVPcmdhbml6YXRpb25Db25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUHVibGlzaGluZ0Rlc3RpbmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVQdWJsaXNoaW5nRGVzdGluYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkRlc2NyaWJlUHVibGlzaGluZ0Rlc3RpbmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2FibGVPcmdhbml6YXRpb25BZG1pbkFjY291bnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhYmxlT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpEaXNhYmxlT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Fzc29jaWF0ZUZyb21BZG1pbmlzdHJhdG9yQWNjb3VudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Fzc29jaWF0ZUZyb21BZG1pbmlzdHJhdG9yQWNjb3VudDogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6RGlzYXNzb2NpYXRlRnJvbUFkbWluaXN0cmF0b3JBY2NvdW50XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Fzc29jaWF0ZUZyb21NYXN0ZXJBY2NvdW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlRnJvbU1hc3RlckFjY291bnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkRpc2Fzc29jaWF0ZUZyb21NYXN0ZXJBY2NvdW50XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Fzc29jaWF0ZU1lbWJlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVNZW1iZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpEaXNhc3NvY2lhdGVNZW1iZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEVuYWJsZU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEVuYWJsZU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudDogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6RW5hYmxlT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEFkbWluaXN0cmF0b3JBY2NvdW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRBZG1pbmlzdHJhdG9yQWNjb3VudDogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6R2V0QWRtaW5pc3RyYXRvckFjY291bnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q292ZXJhZ2VTdGF0aXN0aWNzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDb3ZlcmFnZVN0YXRpc3RpY3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkdldENvdmVyYWdlU3RhdGlzdGljc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREZXRlY3RvciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RGV0ZWN0b3I6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OkdldERldGVjdG9yXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRGaWx0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEZpbHRlcjogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6R2V0RmlsdGVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRGaW5kaW5ncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RmluZGluZ3M6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OkdldEZpbmRpbmdzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRGaW5kaW5nc1N0YXRpc3RpY3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEZpbmRpbmdzU3RhdGlzdGljczogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6R2V0RmluZGluZ3NTdGF0aXN0aWNzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldElQU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRJUFNldDogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6R2V0SVBTZXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEludmVzdGlnYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEludmVzdGlnYXRpb246IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OkdldEludmVzdGlnYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEludml0YXRpb25zQ291bnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEludml0YXRpb25zQ291bnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkdldEludml0YXRpb25zQ291bnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TWFsd2FyZVByb3RlY3Rpb25QbGFuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRNYWx3YXJlUHJvdGVjdGlvblBsYW46IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkdldE1hbHdhcmVQcm90ZWN0aW9uUGxhblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRNYWx3YXJlU2NhbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TWFsd2FyZVNjYW46IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OkdldE1hbHdhcmVTY2FuXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRNYWx3YXJlU2NhblNldHRpbmdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRNYWx3YXJlU2NhblNldHRpbmdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpHZXRNYWx3YXJlU2NhblNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE1hc3RlckFjY291bnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE1hc3RlckFjY291bnQ6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OkdldE1hc3RlckFjY291bnRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE1lbWJlckRldGVjdG9ycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TWVtYmVyRGV0ZWN0b3JzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpHZXRNZW1iZXJEZXRlY3RvcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TWVtYmVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TWVtYmVyczogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6R2V0TWVtYmVyc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0T3JnYW5pemF0aW9uU3RhdGlzdGljcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0T3JnYW5pemF0aW9uU3RhdGlzdGljczogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6R2V0T3JnYW5pemF0aW9uU3RhdGlzdGljc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZW1haW5pbmdGcmVlVHJpYWxEYXlzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZW1haW5pbmdGcmVlVHJpYWxEYXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpHZXRSZW1haW5pbmdGcmVlVHJpYWxEYXlzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFRocmVhdEVudGl0eVNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0VGhyZWF0RW50aXR5U2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpHZXRUaHJlYXRFbnRpdHlTZXRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0VGhyZWF0SW50ZWxTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFRocmVhdEludGVsU2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpHZXRUaHJlYXRJbnRlbFNldFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRUcnVzdGVkRW50aXR5U2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRUcnVzdGVkRW50aXR5U2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpHZXRUcnVzdGVkRW50aXR5U2V0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFVzYWdlU3RhdGlzdGljcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0VXNhZ2VTdGF0aXN0aWNzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpHZXRVc2FnZVN0YXRpc3RpY3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgSW52aXRlTWVtYmVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEludml0ZU1lbWJlcnM6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5Okludml0ZU1lbWJlcnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDb3ZlcmFnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb3ZlcmFnZTogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6TGlzdENvdmVyYWdlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGV0ZWN0b3JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERldGVjdG9yczogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6TGlzdERldGVjdG9yc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEZpbHRlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RmlsdGVyczogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6TGlzdEZpbHRlcnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGaW5kaW5ncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGaW5kaW5nczogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6TGlzdEZpbmRpbmdzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SVBTZXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdElQU2V0czogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6TGlzdElQU2V0c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEludmVzdGlnYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEludmVzdGlnYXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpMaXN0SW52ZXN0aWdhdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEludml0YXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEludml0YXRpb25zOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpMaXN0SW52aXRhdGlvbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNYWx3YXJlUHJvdGVjdGlvblBsYW5zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1hbHdhcmVQcm90ZWN0aW9uUGxhbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5Okxpc3RNYWx3YXJlUHJvdGVjdGlvblBsYW5zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNYWx3YXJlU2NhbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWFsd2FyZVNjYW5zOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpMaXN0TWFsd2FyZVNjYW5zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0TWVtYmVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNZW1iZXJzOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpMaXN0TWVtYmVyc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdE9yZ2FuaXphdGlvbkFkbWluQWNjb3VudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0T3JnYW5pemF0aW9uQWRtaW5BY2NvdW50czogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6TGlzdE9yZ2FuaXphdGlvbkFkbWluQWNjb3VudHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFB1Ymxpc2hpbmdEZXN0aW5hdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UHVibGlzaGluZ0Rlc3RpbmF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6TGlzdFB1Ymxpc2hpbmdEZXN0aW5hdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3NGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5Okxpc3RUYWdzRm9yUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRocmVhdEVudGl0eVNldHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGhyZWF0RW50aXR5U2V0czogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6TGlzdFRocmVhdEVudGl0eVNldHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRocmVhdEludGVsU2V0cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUaHJlYXRJbnRlbFNldHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5Okxpc3RUaHJlYXRJbnRlbFNldHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRydXN0ZWRFbnRpdHlTZXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRydXN0ZWRFbnRpdHlTZXRzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpMaXN0VHJ1c3RlZEVudGl0eVNldHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU2VuZE9iamVjdE1hbHdhcmVTY2FuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZE9iamVjdE1hbHdhcmVTY2FuOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpTZW5kT2JqZWN0TWFsd2FyZVNjYW5cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRNYWx3YXJlU2NhbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0TWFsd2FyZVNjYW46IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJndWFyZGR1dHk6U3RhcnRNYWx3YXJlU2NhblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydE1vbml0b3JpbmdNZW1iZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRNb25pdG9yaW5nTWVtYmVyczogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6U3RhcnRNb25pdG9yaW5nTWVtYmVyc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wTW9uaXRvcmluZ01lbWJlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wTW9uaXRvcmluZ01lbWJlcnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OlN0b3BNb25pdG9yaW5nTWVtYmVyc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW5hcmNoaXZlRmluZGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbmFyY2hpdmVGaW5kaW5nczogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6VW5hcmNoaXZlRmluZGluZ3NcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpVbnRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVEZXRlY3RvciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZURldGVjdG9yOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpVcGRhdGVEZXRlY3RvclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRmlsdGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRmlsdGVyOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpVcGRhdGVGaWx0ZXJcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUZpbmRpbmdzRmVlZGJhY2sgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGaW5kaW5nc0ZlZWRiYWNrOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpVcGRhdGVGaW5kaW5nc0ZlZWRiYWNrXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUlQU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlSVBTZXQ6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OlVwZGF0ZUlQU2V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVNYWx3YXJlUHJvdGVjdGlvblBsYW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVNYWx3YXJlUHJvdGVjdGlvblBsYW46IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJndWFyZGR1dHk6VXBkYXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZU1hbHdhcmVTY2FuU2V0dGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVNYWx3YXJlU2NhblNldHRpbmdzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpVcGRhdGVNYWx3YXJlU2NhblNldHRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZU1lbWJlckRldGVjdG9ycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1lbWJlckRldGVjdG9yczogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6VXBkYXRlTWVtYmVyRGV0ZWN0b3JzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZU9yZ2FuaXphdGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVPcmdhbml6YXRpb25Db25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpVcGRhdGVPcmdhbml6YXRpb25Db25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6VXBkYXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVRocmVhdEVudGl0eVNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRocmVhdEVudGl0eVNldDogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6VXBkYXRlVGhyZWF0RW50aXR5U2V0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVRocmVhdEludGVsU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlVGhyZWF0SW50ZWxTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OlVwZGF0ZVRocmVhdEludGVsU2V0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVRydXN0ZWRFbnRpdHlTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUcnVzdGVkRW50aXR5U2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpVcGRhdGVUcnVzdGVkRW50aXR5U2V0XCIsXG5cdF07XG59XG5cbi8qKlxuICogQ29uZGl0aW9uIGtleSBjb25zdGFudHMgYW5kIGJ1aWxkZXJzIGZvciBndWFyZGR1dHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBHdWFyZER1dHlDb25kaXRpb25zIHtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZURldGVjdG9yIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURldGVjdG9yQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVGaWx0ZXIgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRmlsdGVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVJUFNldCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJUFNldENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlVGhyZWF0RW50aXR5U2V0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRocmVhdEVudGl0eVNldENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlVGhyZWF0SW50ZWxTZXQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGhyZWF0SW50ZWxTZXRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVRydXN0ZWRFbnRpdHlTZXQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVHJ1c3RlZEVudGl0eVNldENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiYXdzOlRhZ0tleXNcIl07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxufVxuIl19
1102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhcmRkdXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9ndWFyZGR1dHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxnREFBZ0Q7QUFDaEQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsZ0JBQWdCOztBQUE3Qiw0Q0E2V0M7OztBQTVXQSw4QkFBOEI7QUFDZCwrQkFBYyxHQUFHLFdBQVcsQ0FBQztBQUU3QyxzREFBc0Q7QUFDdEMsOENBQTZCLEdBQzVDLHlDQUF5QyxDQUFDO0FBQzNDLHlDQUF5QztBQUN6QixpQ0FBZ0IsR0FBRyw0QkFBNEIsQ0FBQztBQUNoRSx3Q0FBd0M7QUFDeEIsZ0NBQWUsR0FBRywyQkFBMkIsQ0FBQztBQUM5RCw2REFBNkQ7QUFDN0MscURBQW9DLEdBQ25ELGdEQUFnRCxDQUFDO0FBQ2xELGtFQUFrRTtBQUNsRCwwREFBeUMsR0FDeEQscURBQXFELENBQUM7QUFDdkQsdUNBQXVDO0FBQ3ZCLCtCQUFjLEdBQUcsMEJBQTBCLENBQUM7QUFDNUQscUNBQXFDO0FBQ3JCLDZCQUFZLEdBQUcsd0JBQXdCLENBQUM7QUFDeEQsb0NBQW9DO0FBQ3BCLDRCQUFXLEdBQUcsdUJBQXVCLENBQUM7QUFDdEQsNENBQTRDO0FBQzVCLG9DQUFtQixHQUFHLCtCQUErQixDQUFDO0FBQ3RFLG9EQUFvRDtBQUNwQyw0Q0FBMkIsR0FDMUMsdUNBQXVDLENBQUM7QUFDekMsc0NBQXNDO0FBQ3RCLDhCQUFhLEdBQUcseUJBQXlCLENBQUM7QUFDMUQsb0RBQW9EO0FBQ3BDLDRDQUEyQixHQUMxQyx1Q0FBdUMsQ0FBQztBQUN6Qyw2Q0FBNkM7QUFDN0IscUNBQW9CLEdBQUcsZ0NBQWdDLENBQUM7QUFDeEUsOENBQThDO0FBQzlCLHNDQUFxQixHQUFHLGlDQUFpQyxDQUFD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MkI7SUFDM0IsYUFBYTtDQUNiLENBQUM7QUFDRixxRUFBcUU7QUFDckQsc0RBQWtDLEdBQWE7SUFDOUQsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELHFEQUFpQyxHQUFhO0lBQzdELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLHNFQUFzRTtBQUN0RCx1REFBbUMsR0FBYTtJQUMvRCwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsMkRBQTJEO0FBQzNDLDRDQUF3QixHQUFhO0lBQ3BELDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDZEQUE2RDtBQUM3Qyw4Q0FBMEIsR0FBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRXZFLHVEQUF1RDtBQUN2QyxtQ0FBZSxHQUFHLDBCQUEwQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4QyxvQ0FBZ0IsR0FBRywyQkFBMkIsQ0FBQztBQUMvRCxpREFBaUQ7QUFDakMsZ0NBQVksR0FBRyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9ndWFyZGR1dHkuanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIGd1YXJkZHV0eSBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgR3VhcmREdXR5QWN0aW9ucyB7XG5cdC8qKiBUaGUgSUFNIHNlcnZpY2UgcHJlZml4LiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9QUkVGSVggPSBcImd1YXJkZHV0eVwiO1xuXG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpBY2NlcHRBZG1pbmlzdHJhdG9ySW52aXRhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWNjZXB0QWRtaW5pc3RyYXRvckludml0YXRpb24gPVxuXHRcdFwiZ3VhcmRkdXR5OkFjY2VwdEFkbWluaXN0cmF0b3JJbnZpdGF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpBY2NlcHRJbnZpdGF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBBY2NlcHRJbnZpdGF0aW9uID0gXCJndWFyZGR1dHk6QWNjZXB0SW52aXRhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6QXJjaGl2ZUZpbmRpbmdzICovXG5cdHN0YXRpYyByZWFkb25seSBBcmNoaXZlRmluZGluZ3MgPSBcImd1YXJkZHV0eTpBcmNoaXZlRmluZGluZ3NcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkNyZWF0ZUN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZUFzc29jaWF0aW9uID1cblx0XHRcImd1YXJkZHV0eTpDcmVhdGVDdXN0b21EZXRlY3Rpb25SdWxlQXNzb2NpYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkNyZWF0ZUN1c3RvbURldGVjdGlvblJ1bGVPcmdDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDdXN0b21EZXRlY3Rpb25SdWxlT3JnQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJndWFyZGR1dHk6Q3JlYXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZU9yZ0NvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkNyZWF0ZURldGVjdG9yICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEZXRlY3RvciA9IFwiZ3VhcmRkdXR5OkNyZWF0ZURldGVjdG9yXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpDcmVhdGVGaWx0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUZpbHRlciA9IFwiZ3VhcmRkdXR5OkNyZWF0ZUZpbHRlclwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6Q3JlYXRlSVBTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUlQU2V0ID0gXCJndWFyZGR1dHk6Q3JlYXRlSVBTZXRcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkNyZWF0ZUludmVzdGlnYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUludmVzdGlnYXRpb24gPSBcImd1YXJkZHV0eTpDcmVhdGVJbnZlc3RpZ2F0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpDcmVhdGVNYWx3YXJlUHJvdGVjdGlvblBsYW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhbiA9XG5cdFx0XCJndWFyZGR1dHk6Q3JlYXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpDcmVhdGVNZW1iZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVNZW1iZXJzID0gXCJndWFyZGR1dHk6Q3JlYXRlTWVtYmVyc1wiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6Q3JlYXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVQdWJsaXNoaW5nRGVzdGluYXRpb24gPVxuXHRcdFwiZ3VhcmRkdXR5OkNyZWF0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvblwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6Q3JlYXRlU2FtcGxlRmluZGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNhbXBsZUZpbmRpbmdzID0gXCJndWFyZGR1dHk6Q3JlYXRlU2FtcGxlRmluZGluZ3NcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkNyZWF0ZVRocmVhdEVudGl0eVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGhyZWF0RW50aXR5U2V0ID0gXCJndWFyZGR1dHk6Q3JlYXRlVGhyZWF0RW50aXR5U2V0XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpDcmVhdGVUaHJlYXRJbnRlbFNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGhyZWF0SW50ZWxTZXQgPSBcImd1YXJkZHV0eTpDcmVhdGVUaHJlYXRJbnRlbFNldFwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6Q3JlYXRlVHJ1c3RlZEVudGl0eVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVHJ1c3RlZEVudGl0eVNldCA9IFwiZ3VhcmRkdXR5OkNyZWF0ZVRydXN0ZWRFbnRpdHlTZXRcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkRlY2xpbmVJbnZpdGF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVjbGluZUludml0YXRpb25zID0gXCJndWFyZGR1dHk6RGVjbGluZUludml0YXRpb25zXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEZWxldGVDdXN0b21EZXRlY3Rpb25SdWxlQXNzb2NpYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbiA9XG5cdFx0XCJndWFyZGR1dHk6RGVsZXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZUFzc29jaWF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEZWxldGVDdXN0b21EZXRlY3Rpb25SdWxlT3JnQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZU9yZ0NvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZ3VhcmRkdXR5OkRlbGV0ZUN1c3RvbURldGVjdGlvblJ1bGVPcmdDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEZWxldGVEZXRlY3RvciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGV0ZWN0b3IgPSBcImd1YXJkZHV0eTpEZWxldGVEZXRlY3RvclwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6RGVsZXRlRmlsdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGaWx0ZXIgPSBcImd1YXJkZHV0eTpEZWxldGVGaWx0ZXJcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkRlbGV0ZUlQU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVJUFNldCA9IFwiZ3VhcmRkdXR5OkRlbGV0ZUlQU2V0XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEZWxldGVJbnZpdGF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSW52aXRhdGlvbnMgPSBcImd1YXJkZHV0eTpEZWxldGVJbnZpdGF0aW9uc1wiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6RGVsZXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVNYWx3YXJlUHJvdGVjdGlvblBsYW4gPVxuXHRcdFwiZ3VhcmRkdXR5OkRlbGV0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhblwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6RGVsZXRlTWVtYmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTWVtYmVycyA9IFwiZ3VhcmRkdXR5OkRlbGV0ZU1lbWJlcnNcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkRlbGV0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uID1cblx0XHRcImd1YXJkZHV0eTpEZWxldGVQdWJsaXNoaW5nRGVzdGluYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OkRlbGV0ZVRocmVhdEVudGl0eVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlVGhyZWF0RW50aXR5U2V0ID0gXCJndWFyZGR1dHk6RGVsZXRlVGhyZWF0RW50aXR5U2V0XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEZWxldGVUaHJlYXRJbnRlbFNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlVGhyZWF0SW50ZWxTZXQgPSBcImd1YXJkZHV0eTpEZWxldGVUaHJlYXRJbnRlbFNldFwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6RGVsZXRlVHJ1c3RlZEVudGl0eVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlVHJ1c3RlZEVudGl0eVNldCA9IFwiZ3VhcmRkdXR5OkRlbGV0ZVRydXN0ZWRFbnRpdHlTZXRcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6RGVzY3JpYmVNYWx3YXJlU2NhbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTWFsd2FyZVNjYW5zID0gXCJndWFyZGR1dHk6RGVzY3JpYmVNYWx3YXJlU2NhbnNcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6RGVzY3JpYmVPcmdhbml6YXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZU9yZ2FuaXphdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZ3VhcmRkdXR5OkRlc2NyaWJlT3JnYW5pemF0aW9uQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpEZXNjcmliZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVQdWJsaXNoaW5nRGVzdGluYXRpb24gPVxuXHRcdFwiZ3VhcmRkdXR5OkRlc2NyaWJlUHVibGlzaGluZ0Rlc3RpbmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEaXNhYmxlT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50ICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhYmxlT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50ID1cblx0XHRcImd1YXJkZHV0eTpEaXNhYmxlT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEaXNhc3NvY2lhdGVGcm9tQWRtaW5pc3RyYXRvckFjY291bnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Fzc29jaWF0ZUZyb21BZG1pbmlzdHJhdG9yQWNjb3VudCA9XG5cdFx0XCJndWFyZGR1dHk6RGlzYXNzb2NpYXRlRnJvbUFkbWluaXN0cmF0b3JBY2NvdW50XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEaXNhc3NvY2lhdGVGcm9tTWFzdGVyQWNjb3VudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlRnJvbU1hc3RlckFjY291bnQgPVxuXHRcdFwiZ3VhcmRkdXR5OkRpc2Fzc29jaWF0ZUZyb21NYXN0ZXJBY2NvdW50XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpEaXNhc3NvY2lhdGVNZW1iZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVNZW1iZXJzID0gXCJndWFyZGR1dHk6RGlzYXNzb2NpYXRlTWVtYmVyc1wiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6RW5hYmxlT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50ICovXG5cdHN0YXRpYyByZWFkb25seSBFbmFibGVPcmdhbml6YXRpb25BZG1pbkFjY291bnQgPVxuXHRcdFwiZ3VhcmRkdXR5OkVuYWJsZU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudFwiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpHZXRBZG1pbmlzdHJhdG9yQWNjb3VudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWRtaW5pc3RyYXRvckFjY291bnQgPVxuXHRcdFwiZ3VhcmRkdXR5OkdldEFkbWluaXN0cmF0b3JBY2NvdW50XCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldENvdmVyYWdlU3RhdGlzdGljcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q292ZXJhZ2VTdGF0aXN0aWNzID1cblx0XHRcImd1YXJkZHV0eTpHZXRDb3ZlcmFnZVN0YXRpc3RpY3NcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0Q3VzdG9tRGV0ZWN0aW9uUnVsZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q3VzdG9tRGV0ZWN0aW9uUnVsZSA9XG5cdFx0XCJndWFyZGR1dHk6R2V0Q3VzdG9tRGV0ZWN0aW9uUnVsZVwiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpHZXRDdXN0b21EZXRlY3Rpb25SdWxlQXNzb2NpYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbiA9XG5cdFx0XCJndWFyZGR1dHk6R2V0Q3VzdG9tRGV0ZWN0aW9uUnVsZUFzc29jaWF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldEN1c3RvbURldGVjdGlvblJ1bGVPcmdDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDdXN0b21EZXRlY3Rpb25SdWxlT3JnQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJndWFyZGR1dHk6R2V0Q3VzdG9tRGV0ZWN0aW9uUnVsZU9yZ0NvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0RGV0ZWN0b3IgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERldGVjdG9yID0gXCJndWFyZGR1dHk6R2V0RGV0ZWN0b3JcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0RmlsdGVyICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGaWx0ZXIgPSBcImd1YXJkZHV0eTpHZXRGaWx0ZXJcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0RmluZGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZpbmRpbmdzID0gXCJndWFyZGR1dHk6R2V0RmluZGluZ3NcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0RmluZGluZ3NTdGF0aXN0aWNzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGaW5kaW5nc1N0YXRpc3RpY3MgPVxuXHRcdFwiZ3VhcmRkdXR5OkdldEZpbmRpbmdzU3RhdGlzdGljc1wiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpHZXRJUFNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0SVBTZXQgPSBcImd1YXJkZHV0eTpHZXRJUFNldFwiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpHZXRJbnZlc3RpZ2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRJbnZlc3RpZ2F0aW9uID0gXCJndWFyZGR1dHk6R2V0SW52ZXN0aWdhdGlvblwiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpHZXRJbnZpdGF0aW9uc0NvdW50ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRJbnZpdGF0aW9uc0NvdW50ID0gXCJndWFyZGR1dHk6R2V0SW52aXRhdGlvbnNDb3VudFwiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpHZXRNYWx3YXJlUHJvdGVjdGlvblBsYW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE1hbHdhcmVQcm90ZWN0aW9uUGxhbiA9XG5cdFx0XCJndWFyZGR1dHk6R2V0TWFsd2FyZVByb3RlY3Rpb25QbGFuXCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldE1hbHdhcmVTY2FuICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRNYWx3YXJlU2NhbiA9IFwiZ3VhcmRkdXR5OkdldE1hbHdhcmVTY2FuXCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldE1hbHdhcmVTY2FuU2V0dGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE1hbHdhcmVTY2FuU2V0dGluZ3MgPVxuXHRcdFwiZ3VhcmRkdXR5OkdldE1hbHdhcmVTY2FuU2V0dGluZ3NcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0TWFzdGVyQWNjb3VudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TWFzdGVyQWNjb3VudCA9IFwiZ3VhcmRkdXR5OkdldE1hc3RlckFjY291bnRcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0TWVtYmVyRGV0ZWN0b3JzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRNZW1iZXJEZXRlY3RvcnMgPSBcImd1YXJkZHV0eTpHZXRNZW1iZXJEZXRlY3RvcnNcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0TWVtYmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TWVtYmVycyA9IFwiZ3VhcmRkdXR5OkdldE1lbWJlcnNcIjtcblx0LyoqIFtSZWFkXSBndWFyZGR1dHk6R2V0T3JnYW5pemF0aW9uU3RhdGlzdGljcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0T3JnYW5pemF0aW9uU3RhdGlzdGljcyA9XG5cdFx0XCJndWFyZGR1dHk6R2V0T3JnYW5pemF0aW9uU3RhdGlzdGljc1wiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpHZXRSZW1haW5pbmdGcmVlVHJpYWxEYXlzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZW1haW5pbmdGcmVlVHJpYWxEYXlzID1cblx0XHRcImd1YXJkZHV0eTpHZXRSZW1haW5pbmdGcmVlVHJpYWxEYXlzXCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldFRocmVhdEVudGl0eVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VGhyZWF0RW50aXR5U2V0ID0gXCJndWFyZGR1dHk6R2V0VGhyZWF0RW50aXR5U2V0XCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldFRocmVhdEludGVsU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRUaHJlYXRJbnRlbFNldCA9IFwiZ3VhcmRkdXR5OkdldFRocmVhdEludGVsU2V0XCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldFRydXN0ZWRFbnRpdHlTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRydXN0ZWRFbnRpdHlTZXQgPSBcImd1YXJkZHV0eTpHZXRUcnVzdGVkRW50aXR5U2V0XCI7XG5cdC8qKiBbUmVhZF0gZ3VhcmRkdXR5OkdldFVzYWdlU3RhdGlzdGljcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VXNhZ2VTdGF0aXN0aWNzID0gXCJndWFyZGR1dHk6R2V0VXNhZ2VTdGF0aXN0aWNzXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpJbnZpdGVNZW1iZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBJbnZpdGVNZW1iZXJzID0gXCJndWFyZGR1dHk6SW52aXRlTWVtYmVyc1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0Q292ZXJhZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb3ZlcmFnZSA9IFwiZ3VhcmRkdXR5Okxpc3RDb3ZlcmFnZVwiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0Q3VzdG9tRGV0ZWN0aW9uUnVsZUFzc29jaWF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbnMgPVxuXHRcdFwiZ3VhcmRkdXR5Okxpc3RDdXN0b21EZXRlY3Rpb25SdWxlQXNzb2NpYXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gZ3VhcmRkdXR5Okxpc3RDdXN0b21EZXRlY3Rpb25SdWxlT3JnQ29uZmlndXJhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDdXN0b21EZXRlY3Rpb25SdWxlT3JnQ29uZmlndXJhdGlvbnMgPVxuXHRcdFwiZ3VhcmRkdXR5Okxpc3RDdXN0b21EZXRlY3Rpb25SdWxlT3JnQ29uZmlndXJhdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBndWFyZGR1dHk6TGlzdEN1c3RvbURldGVjdGlvblJ1bGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q3VzdG9tRGV0ZWN0aW9uUnVsZXMgPVxuXHRcdFwiZ3VhcmRkdXR5Okxpc3RDdXN0b21EZXRlY3Rpb25SdWxlc1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0RGV0ZWN0b3JzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGV0ZWN0b3JzID0gXCJndWFyZGR1dHk6TGlzdERldGVjdG9yc1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0RmlsdGVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZpbHRlcnMgPSBcImd1YXJkZHV0eTpMaXN0RmlsdGVyc1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0RmluZGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGaW5kaW5ncyA9IFwiZ3VhcmRkdXR5Okxpc3RGaW5kaW5nc1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0SVBTZXRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SVBTZXRzID0gXCJndWFyZGR1dHk6TGlzdElQU2V0c1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0SW52ZXN0aWdhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbnZlc3RpZ2F0aW9ucyA9IFwiZ3VhcmRkdXR5Okxpc3RJbnZlc3RpZ2F0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0SW52aXRhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RJbnZpdGF0aW9ucyA9IFwiZ3VhcmRkdXR5Okxpc3RJbnZpdGF0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0TWFsd2FyZVByb3RlY3Rpb25QbGFucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1hbHdhcmVQcm90ZWN0aW9uUGxhbnMgPVxuXHRcdFwiZ3VhcmRkdXR5Okxpc3RNYWx3YXJlUHJvdGVjdGlvblBsYW5zXCI7XG5cdC8qKiBbTGlzdF0gZ3VhcmRkdXR5Okxpc3RNYWx3YXJlU2NhbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNYWx3YXJlU2NhbnMgPSBcImd1YXJkZHV0eTpMaXN0TWFsd2FyZVNjYW5zXCI7XG5cdC8qKiBbTGlzdF0gZ3VhcmRkdXR5Okxpc3RNZW1iZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWVtYmVycyA9IFwiZ3VhcmRkdXR5Okxpc3RNZW1iZXJzXCI7XG5cdC8qKiBbTGlzdF0gZ3VhcmRkdXR5Okxpc3RPcmdhbml6YXRpb25BZG1pbkFjY291bnRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0T3JnYW5pemF0aW9uQWRtaW5BY2NvdW50cyA9XG5cdFx0XCJndWFyZGR1dHk6TGlzdE9yZ2FuaXphdGlvbkFkbWluQWNjb3VudHNcIjtcblx0LyoqIFtMaXN0XSBndWFyZGR1dHk6TGlzdFB1Ymxpc2hpbmdEZXN0aW5hdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RQdWJsaXNoaW5nRGVzdGluYXRpb25zID1cblx0XHRcImd1YXJkZHV0eTpMaXN0UHVibGlzaGluZ0Rlc3RpbmF0aW9uc1wiO1xuXHQvKiogW1JlYWRdIGd1YXJkZHV0eTpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJndWFyZGR1dHk6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0VGhyZWF0RW50aXR5U2V0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRocmVhdEVudGl0eVNldHMgPSBcImd1YXJkZHV0eTpMaXN0VGhyZWF0RW50aXR5U2V0c1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0VGhyZWF0SW50ZWxTZXRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGhyZWF0SW50ZWxTZXRzID0gXCJndWFyZGR1dHk6TGlzdFRocmVhdEludGVsU2V0c1wiO1xuXHQvKiogW0xpc3RdIGd1YXJkZHV0eTpMaXN0VHJ1c3RlZEVudGl0eVNldHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUcnVzdGVkRW50aXR5U2V0cyA9IFwiZ3VhcmRkdXR5Okxpc3RUcnVzdGVkRW50aXR5U2V0c1wiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6U2VuZE9iamVjdE1hbHdhcmVTY2FuICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kT2JqZWN0TWFsd2FyZVNjYW4gPSBcImd1YXJkZHV0eTpTZW5kT2JqZWN0TWFsd2FyZVNjYW5cIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlNlbmRTZWN1cml0eVRlbGVtZXRyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZFNlY3VyaXR5VGVsZW1ldHJ5ID0gXCJndWFyZGR1dHk6U2VuZFNlY3VyaXR5VGVsZW1ldHJ5XCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpTdGFydE1hbHdhcmVTY2FuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydE1hbHdhcmVTY2FuID0gXCJndWFyZGR1dHk6U3RhcnRNYWx3YXJlU2NhblwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6U3RhcnRNb25pdG9yaW5nTWVtYmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRNb25pdG9yaW5nTWVtYmVycyA9IFwiZ3VhcmRkdXR5OlN0YXJ0TW9uaXRvcmluZ01lbWJlcnNcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlN0b3BNb25pdG9yaW5nTWVtYmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcE1vbml0b3JpbmdNZW1iZXJzID0gXCJndWFyZGR1dHk6U3RvcE1vbml0b3JpbmdNZW1iZXJzXCI7XG5cdC8qKiBbVGFnZ2luZ10gZ3VhcmRkdXR5OlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwiZ3VhcmRkdXR5OlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpVbmFyY2hpdmVGaW5kaW5ncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW5hcmNoaXZlRmluZGluZ3MgPSBcImd1YXJkZHV0eTpVbmFyY2hpdmVGaW5kaW5nc1wiO1xuXHQvKiogW1RhZ2dpbmddIGd1YXJkZHV0eTpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJndWFyZGR1dHk6VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6VXBkYXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZUFzc29jaWF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDdXN0b21EZXRlY3Rpb25SdWxlQXNzb2NpYXRpb24gPVxuXHRcdFwiZ3VhcmRkdXR5OlVwZGF0ZUN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6VXBkYXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZU9yZ0NvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUN1c3RvbURldGVjdGlvblJ1bGVPcmdDb25maWd1cmF0aW9uID1cblx0XHRcImd1YXJkZHV0eTpVcGRhdGVDdXN0b21EZXRlY3Rpb25SdWxlT3JnQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6VXBkYXRlRGV0ZWN0b3IgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZURldGVjdG9yID0gXCJndWFyZGR1dHk6VXBkYXRlRGV0ZWN0b3JcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlVwZGF0ZUZpbHRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRmlsdGVyID0gXCJndWFyZGR1dHk6VXBkYXRlRmlsdGVyXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpVcGRhdGVGaW5kaW5nc0ZlZWRiYWNrICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGaW5kaW5nc0ZlZWRiYWNrID0gXCJndWFyZGR1dHk6VXBkYXRlRmluZGluZ3NGZWVkYmFja1wiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6VXBkYXRlSVBTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUlQU2V0ID0gXCJndWFyZGR1dHk6VXBkYXRlSVBTZXRcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlVwZGF0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuID1cblx0XHRcImd1YXJkZHV0eTpVcGRhdGVNYWx3YXJlUHJvdGVjdGlvblBsYW5cIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlVwZGF0ZU1hbHdhcmVTY2FuU2V0dGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1hbHdhcmVTY2FuU2V0dGluZ3MgPVxuXHRcdFwiZ3VhcmRkdXR5OlVwZGF0ZU1hbHdhcmVTY2FuU2V0dGluZ3NcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlVwZGF0ZU1lbWJlckRldGVjdG9ycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWVtYmVyRGV0ZWN0b3JzID0gXCJndWFyZGR1dHk6VXBkYXRlTWVtYmVyRGV0ZWN0b3JzXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpVcGRhdGVPcmdhbml6YXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVPcmdhbml6YXRpb25Db25maWd1cmF0aW9uID1cblx0XHRcImd1YXJkZHV0eTpVcGRhdGVPcmdhbml6YXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpVcGRhdGVQdWJsaXNoaW5nRGVzdGluYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbiA9XG5cdFx0XCJndWFyZGR1dHk6VXBkYXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGd1YXJkZHV0eTpVcGRhdGVUaHJlYXRFbnRpdHlTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRocmVhdEVudGl0eVNldCA9IFwiZ3VhcmRkdXR5OlVwZGF0ZVRocmVhdEVudGl0eVNldFwiO1xuXHQvKiogW1dyaXRlXSBndWFyZGR1dHk6VXBkYXRlVGhyZWF0SW50ZWxTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRocmVhdEludGVsU2V0ID0gXCJndWFyZGR1dHk6VXBkYXRlVGhyZWF0SW50ZWxTZXRcIjtcblx0LyoqIFtXcml0ZV0gZ3VhcmRkdXR5OlVwZGF0ZVRydXN0ZWRFbnRpdHlTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRydXN0ZWRFbnRpdHlTZXQgPSBcImd1YXJkZHV0eTpVcGRhdGVUcnVzdGVkRW50aXR5U2V0XCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5EZXNjcmliZU1hbHdhcmVTY2Fucyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRlc2NyaWJlT3JnYW5pemF0aW9uQ29uZmlndXJhdGlvbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRlc2NyaWJlUHVibGlzaGluZ0Rlc3RpbmF0aW9uLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0QWRtaW5pc3RyYXRvckFjY291bnQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRDb3ZlcmFnZVN0YXRpc3RpY3MsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRDdXN0b21EZXRlY3Rpb25SdWxlLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0Q3VzdG9tRGV0ZWN0aW9uUnVsZUFzc29jaWF0aW9uLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0Q3VzdG9tRGV0ZWN0aW9uUnVsZU9yZ0NvbmZpZ3VyYXRpb24sXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXREZXRlY3Rvcixcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldEZpbHRlcixcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldEZpbmRpbmdzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0RmluZGluZ3NTdGF0aXN0aWNzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0SVBTZXQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRJbnZlc3RpZ2F0aW9uLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0SW52aXRhdGlvbnNDb3VudCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldE1hbHdhcmVQcm90ZWN0aW9uUGxhbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldE1hbHdhcmVTY2FuLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0TWFsd2FyZVNjYW5TZXR0aW5ncyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldE1hc3RlckFjY291bnQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRNZW1iZXJEZXRlY3RvcnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRNZW1iZXJzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuYWN0aW9uR2V0T3JnYW5pemF0aW9uU3RhdGlzdGljcyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldFJlbWFpbmluZ0ZyZWVUcmlhbERheXMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRUaHJlYXRFbnRpdHlTZXQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRUaHJlYXRJbnRlbFNldCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLmFjdGlvbkdldFRydXN0ZWRFbnRpdHlTZXQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5hY3Rpb25HZXRVc2FnZVN0YXRpc3RpY3MsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEd1YXJkRHV0eUFjdGlvbnMuQWNjZXB0QWRtaW5pc3RyYXRvckludml0YXRpb24sXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5BY2NlcHRJbnZpdGF0aW9uLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuQXJjaGl2ZUZpbmRpbmdzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuQ3JlYXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZUFzc29jaWF0aW9uLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuQ3JlYXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZU9yZ0NvbmZpZ3VyYXRpb24sXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5DcmVhdGVEZXRlY3Rvcixcblx0XHRHdWFyZER1dHlBY3Rpb25zLkNyZWF0ZUZpbHRlcixcblx0XHRHdWFyZER1dHlBY3Rpb25zLkNyZWF0ZUlQU2V0LFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuQ3JlYXRlSW52ZXN0aWdhdGlvbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLkNyZWF0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLkNyZWF0ZU1lbWJlcnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5DcmVhdGVQdWJsaXNoaW5nRGVzdGluYXRpb24sXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5DcmVhdGVTYW1wbGVGaW5kaW5ncyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkNyZWF0ZVRocmVhdEVudGl0eVNldCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkNyZWF0ZVRocmVhdEludGVsU2V0LFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuQ3JlYXRlVHJ1c3RlZEVudGl0eVNldCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRlY2xpbmVJbnZpdGF0aW9ucyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRlbGV0ZUN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRlbGV0ZUN1c3RvbURldGVjdGlvblJ1bGVPcmdDb25maWd1cmF0aW9uLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuRGVsZXRlRGV0ZWN0b3IsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5EZWxldGVGaWx0ZXIsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5EZWxldGVJUFNldCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRlbGV0ZUludml0YXRpb25zLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuRGVsZXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuRGVsZXRlTWVtYmVycyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRlbGV0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRlbGV0ZVRocmVhdEVudGl0eVNldCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRlbGV0ZVRocmVhdEludGVsU2V0LFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuRGVsZXRlVHJ1c3RlZEVudGl0eVNldCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRpc2FibGVPcmdhbml6YXRpb25BZG1pbkFjY291bnQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5EaXNhc3NvY2lhdGVGcm9tQWRtaW5pc3RyYXRvckFjY291bnQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5EaXNhc3NvY2lhdGVGcm9tTWFzdGVyQWNjb3VudCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkRpc2Fzc29jaWF0ZU1lbWJlcnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5FbmFibGVPcmdhbml6YXRpb25BZG1pbkFjY291bnQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5JbnZpdGVNZW1iZXJzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuU2VuZE9iamVjdE1hbHdhcmVTY2FuLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuU2VuZFNlY3VyaXR5VGVsZW1ldHJ5LFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuU3RhcnRNYWx3YXJlU2Nhbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLlN0YXJ0TW9uaXRvcmluZ01lbWJlcnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5TdG9wTW9uaXRvcmluZ01lbWJlcnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5VbmFyY2hpdmVGaW5kaW5ncyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLlVwZGF0ZUN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLlVwZGF0ZUN1c3RvbURldGVjdGlvblJ1bGVPcmdDb25maWd1cmF0aW9uLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuVXBkYXRlRGV0ZWN0b3IsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5VcGRhdGVGaWx0ZXIsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5VcGRhdGVGaW5kaW5nc0ZlZWRiYWNrLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuVXBkYXRlSVBTZXQsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5VcGRhdGVNYWx3YXJlUHJvdGVjdGlvblBsYW4sXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5VcGRhdGVNYWx3YXJlU2NhblNldHRpbmdzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuVXBkYXRlTWVtYmVyRGV0ZWN0b3JzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuVXBkYXRlT3JnYW5pemF0aW9uQ29uZmlndXJhdGlvbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLlVwZGF0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbixcblx0XHRHdWFyZER1dHlBY3Rpb25zLlVwZGF0ZVRocmVhdEVudGl0eVNldCxcblx0XHRHdWFyZER1dHlBY3Rpb25zLlVwZGF0ZVRocmVhdEludGVsU2V0LFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuVXBkYXRlVHJ1c3RlZEVudGl0eVNldCxcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0Q292ZXJhZ2UsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0Q3VzdG9tRGV0ZWN0aW9uUnVsZUFzc29jaWF0aW9ucyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkxpc3RDdXN0b21EZXRlY3Rpb25SdWxlT3JnQ29uZmlndXJhdGlvbnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0Q3VzdG9tRGV0ZWN0aW9uUnVsZXMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0RGV0ZWN0b3JzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdEZpbHRlcnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0RmluZGluZ3MsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0SVBTZXRzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdEludmVzdGlnYXRpb25zLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdEludml0YXRpb25zLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdE1hbHdhcmVQcm90ZWN0aW9uUGxhbnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0TWFsd2FyZVNjYW5zLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdE1lbWJlcnMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0T3JnYW5pemF0aW9uQWRtaW5BY2NvdW50cyxcblx0XHRHdWFyZER1dHlBY3Rpb25zLkxpc3RQdWJsaXNoaW5nRGVzdGluYXRpb25zLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdFRocmVhdEVudGl0eVNldHMsXG5cdFx0R3VhcmREdXR5QWN0aW9ucy5MaXN0VGhyZWF0SW50ZWxTZXRzLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuTGlzdFRydXN0ZWRFbnRpdHlTZXRzLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRHdWFyZER1dHlBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdEd1YXJkRHV0eUFjdGlvbnMuVW50YWdSZXNvdXJjZSxcblx0XTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGN1c3RvbWRldGVjdGlvbnJ1bGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJkRHV0eUN1c3RvbWRldGVjdGlvbnJ1bGVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUnVsZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBydWxlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBjdXN0b21kZXRlY3Rpb25ydWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHdWFyZER1dHlDdXN0b21kZXRlY3Rpb25ydWxlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSdWxlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBydWxlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIGN1c3RvbWRldGVjdGlvbnJ1bGVhc3NvY2lhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5Q3VzdG9tZGV0ZWN0aW9ucnVsZWFzc29jaWF0aW9uQXJuUHJvcHMge1xuXHQvKiogVGhlIFJ1bGVJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcnVsZUlkOiBzdHJpbmc7XG5cdC8qKiBUaGUgQXNzb2NpYXRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgYXNzb2NpYXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGN1c3RvbWRldGVjdGlvbnJ1bGVhc3NvY2lhdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5Q3VzdG9tZGV0ZWN0aW9ucnVsZWFzc29jaWF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSdWxlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBydWxlSWQ6IHN0cmluZztcblx0LyoqIFRoZSBBc3NvY2lhdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYXNzb2NpYXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgZGV0ZWN0b3IgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJkRHV0eURldGVjdG9yQXJuUHJvcHMge1xuXHQvKiogVGhlIERldGVjdG9ySWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRldGVjdG9ySWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBkZXRlY3RvciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5RGV0ZWN0b3JBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERldGVjdG9ySWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkZXRlY3RvcklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBmaWx0ZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJkRHV0eUZpbHRlckFyblByb3BzIHtcblx0LyoqIFRoZSBEZXRlY3RvcklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkZXRlY3RvcklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgRmlsdGVyTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZmlsdGVyTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIGZpbHRlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5RmlsdGVyQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEZXRlY3RvcklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGV0ZWN0b3JJZDogc3RyaW5nO1xuXHQvKiogVGhlIEZpbHRlck5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBmaWx0ZXJOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBpcHNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5SXBzZXRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGV0ZWN0b3JJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGV0ZWN0b3JJZDogc3RyaW5nO1xuXHQvKiogVGhlIElQU2V0SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGlwU2V0SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBpcHNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5SXBzZXRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERldGVjdG9ySWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkZXRlY3RvcklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgSVBTZXRJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGlwU2V0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIG1hbHdhcmVwcm90ZWN0aW9ucGxhbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5TWFsd2FyZXByb3RlY3Rpb25wbGFuQXJuUHJvcHMge1xuXHQvKiogVGhlIE1hbHdhcmVQcm90ZWN0aW9uUGxhbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBtYWx3YXJlUHJvdGVjdGlvblBsYW5JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIG1hbHdhcmVwcm90ZWN0aW9ucGxhbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5TWFsd2FyZXByb3RlY3Rpb25wbGFuQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBNYWx3YXJlUHJvdGVjdGlvblBsYW5JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IG1hbHdhcmVQcm90ZWN0aW9uUGxhbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBwdWJsaXNoaW5nRGVzdGluYXRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEd1YXJkRHV0eVB1Ymxpc2hpbmdEZXN0aW5hdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBEZXRlY3RvcklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkZXRlY3RvcklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgUHVibGlzaGluZ0Rlc3RpbmF0aW9uSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHB1Ymxpc2hpbmdEZXN0aW5hdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgcHVibGlzaGluZ0Rlc3RpbmF0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHdWFyZER1dHlQdWJsaXNoaW5nRGVzdGluYXRpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERldGVjdG9ySWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkZXRlY3RvcklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgUHVibGlzaGluZ0Rlc3RpbmF0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBwdWJsaXNoaW5nRGVzdGluYXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgdGhyZWF0ZW50aXR5c2V0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHdWFyZER1dHlUaHJlYXRlbnRpdHlzZXRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGV0ZWN0b3JJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGV0ZWN0b3JJZDogc3RyaW5nO1xuXHQvKiogVGhlIFRocmVhdEVudGl0eVNldElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB0aHJlYXRFbnRpdHlTZXRJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHRocmVhdGVudGl0eXNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5VGhyZWF0ZW50aXR5c2V0QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEZXRlY3RvcklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGV0ZWN0b3JJZDogc3RyaW5nO1xuXHQvKiogVGhlIFRocmVhdEVudGl0eVNldElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdGhyZWF0RW50aXR5U2V0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIHRocmVhdGludGVsc2V0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHdWFyZER1dHlUaHJlYXRpbnRlbHNldEFyblByb3BzIHtcblx0LyoqIFRoZSBEZXRlY3RvcklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkZXRlY3RvcklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVGhyZWF0SW50ZWxTZXRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgdGhyZWF0SW50ZWxTZXRJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIHRocmVhdGludGVsc2V0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHdWFyZER1dHlUaHJlYXRpbnRlbHNldEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRGV0ZWN0b3JJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRldGVjdG9ySWQ6IHN0cmluZztcblx0LyoqIFRoZSBUaHJlYXRJbnRlbFNldElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdGhyZWF0SW50ZWxTZXRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgdHJ1c3RlZGVudGl0eXNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmREdXR5VHJ1c3RlZGVudGl0eXNldEFyblByb3BzIHtcblx0LyoqIFRoZSBEZXRlY3RvcklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkZXRlY3RvcklkOiBzdHJpbmc7XG5cdC8qKiBUaGUgVHJ1c3RlZEVudGl0eVNldElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB0cnVzdGVkRW50aXR5U2V0SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSB0cnVzdGVkZW50aXR5c2V0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHdWFyZER1dHlUcnVzdGVkZW50aXR5c2V0QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEZXRlY3RvcklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGV0ZWN0b3JJZDogc3RyaW5nO1xuXHQvKiogVGhlIFRydXN0ZWRFbnRpdHlTZXRJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHRydXN0ZWRFbnRpdHlTZXRJZDogc3RyaW5nO1xufVxuXG5jb25zdCBDdXN0b21kZXRlY3Rpb25ydWxlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmd1YXJkZHV0eTo6YXdzOmRldGVjdGlvbi1ydWxlXFwvY3VzdG9tXFwvKD88cnVsZUlkPlteOi8/XSspJC87XG5jb25zdCBDdXN0b21kZXRlY3Rpb25ydWxlYXNzb2NpYXRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3VhcmRkdXR5Oig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGV0ZWN0aW9uLXJ1bGVcXC9jdXN0b21cXC8oPzxydWxlSWQ+W146Lz9dKylcXC9hc3NvY2lhdGlvblxcLyg/PGFzc29jaWF0aW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IERldGVjdG9yQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmd1YXJkZHV0eTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRldGVjdG9yXFwvKD88ZGV0ZWN0b3JJZD5bXjovP10rKSQvO1xuY29uc3QgRmlsdGVyQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmd1YXJkZHV0eTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRldGVjdG9yXFwvKD88ZGV0ZWN0b3JJZD5bXjovP10rKVxcL2ZpbHRlclxcLyg/PGZpbHRlck5hbWU+W146Lz9dKykkLztcbmNvbnN0IElwc2V0QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmd1YXJkZHV0eTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRldGVjdG9yXFwvKD88ZGV0ZWN0b3JJZD5bXjovP10rKVxcL2lwc2V0XFwvKD88aXBTZXRJZD5bXjovP10rKSQvO1xuY29uc3QgTWFsd2FyZXByb3RlY3Rpb25wbGFuQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmd1YXJkZHV0eTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOm1hbHdhcmUtcHJvdGVjdGlvbi1wbGFuXFwvKD88bWFsd2FyZVByb3RlY3Rpb25QbGFuSWQ+W146Lz9dKykkLztcbmNvbnN0IFB1Ymxpc2hpbmdEZXN0aW5hdGlvbkFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpndWFyZGR1dHk6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkZXRlY3RvclxcLyg/PGRldGVjdG9ySWQ+W146Lz9dKylcXC9wdWJsaXNoaW5nZGVzdGluYXRpb25cXC8oPzxwdWJsaXNoaW5nRGVzdGluYXRpb25JZD5bXjovP10rKSQvO1xuY29uc3QgVGhyZWF0ZW50aXR5c2V0QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmd1YXJkZHV0eTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRldGVjdG9yXFwvKD88ZGV0ZWN0b3JJZD5bXjovP10rKVxcL3RocmVhdGVudGl0eXNldFxcLyg/PHRocmVhdEVudGl0eVNldElkPlteOi8/XSspJC87XG5jb25zdCBUaHJlYXRpbnRlbHNldEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpndWFyZGR1dHk6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpkZXRlY3RvclxcLyg/PGRldGVjdG9ySWQ+W146Lz9dKylcXC90aHJlYXRpbnRlbHNldFxcLyg/PHRocmVhdEludGVsU2V0SWQ+W146Lz9dKykkLztcbmNvbnN0IFRydXN0ZWRlbnRpdHlzZXRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3VhcmRkdXR5Oig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGV0ZWN0b3JcXC8oPzxkZXRlY3RvcklkPlteOi8/XSspXFwvdHJ1c3RlZGVudGl0eXNldFxcLyg/PHRydXN0ZWRFbnRpdHlTZXRJZD5bXjovP10rKSQvO1xuXG4vKipcbiAqIEFSTiBidWlsZGVycywgdmFsaWRhdG9ycywgYW5kIHBhcnNlcnMgZm9yIGd1YXJkZHV0eSByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBHdWFyZER1dHlSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIGN1c3RvbWRldGVjdGlvbnJ1bGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY3VzdG9tZGV0ZWN0aW9ucnVsZShcblx0XHRwcm9wczogR3VhcmREdXR5Q3VzdG9tZGV0ZWN0aW9ucnVsZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omd1YXJkZHV0eTo6YXdzOmRldGVjdGlvbi1ydWxlL2N1c3RvbS8ke3Byb3BzLnJ1bGVJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgY3VzdG9tZGV0ZWN0aW9ucnVsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ3VzdG9tZGV0ZWN0aW9ucnVsZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDdXN0b21kZXRlY3Rpb25ydWxlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIGN1c3RvbWRldGVjdGlvbnJ1bGUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ3VzdG9tZGV0ZWN0aW9ucnVsZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3VhcmREdXR5Q3VzdG9tZGV0ZWN0aW9ucnVsZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ3VzdG9tZGV0ZWN0aW9ucnVsZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjdXN0b21kZXRlY3Rpb25ydWxlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJ1bGVJZDogbWF0Y2guZ3JvdXBzIS5ydWxlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgY3VzdG9tZGV0ZWN0aW9ucnVsZWFzc29jaWF0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGN1c3RvbWRldGVjdGlvbnJ1bGVhc3NvY2lhdGlvbihcblx0XHRwcm9wczogR3VhcmREdXR5Q3VzdG9tZGV0ZWN0aW9ucnVsZWFzc29jaWF0aW9uQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3VhcmRkdXR5OiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRldGVjdGlvbi1ydWxlL2N1c3RvbS8ke3Byb3BzLnJ1bGVJZH0vYXNzb2NpYXRpb24vJHtwcm9wcy5hc3NvY2lhdGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBjdXN0b21kZXRlY3Rpb25ydWxlYXNzb2NpYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEN1c3RvbWRldGVjdGlvbnJ1bGVhc3NvY2lhdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDdXN0b21kZXRlY3Rpb25ydWxlYXNzb2NpYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgY3VzdG9tZGV0ZWN0aW9ucnVsZWFzc29jaWF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUN1c3RvbWRldGVjdGlvbnJ1bGVhc3NvY2lhdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3VhcmREdXR5Q3VzdG9tZGV0ZWN0aW9ucnVsZWFzc29jaWF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDdXN0b21kZXRlY3Rpb25ydWxlYXNzb2NpYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY3VzdG9tZGV0ZWN0aW9ucnVsZWFzc29jaWF0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJ1bGVJZDogbWF0Y2guZ3JvdXBzIS5ydWxlSWQsXG5cdFx0XHRhc3NvY2lhdGlvbklkOiBtYXRjaC5ncm91cHMhLmFzc29jaWF0aW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZGV0ZWN0b3IgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGV0ZWN0b3IocHJvcHM6IEd1YXJkRHV0eURldGVjdG9yQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omd1YXJkZHV0eToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkZXRlY3Rvci8ke3Byb3BzLmRldGVjdG9ySWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGRldGVjdG9yIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREZXRlY3RvckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBEZXRlY3RvckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBkZXRlY3RvciBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEZXRlY3RvckFybihhcm46IHN0cmluZyk6IEd1YXJkRHV0eURldGVjdG9yQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEZXRlY3RvckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkZXRlY3RvciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkZXRlY3RvcklkOiBtYXRjaC5ncm91cHMhLmRldGVjdG9ySWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgZmlsdGVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGZpbHRlcihwcm9wczogR3VhcmREdXR5RmlsdGVyQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omd1YXJkZHV0eToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkZXRlY3Rvci8ke3Byb3BzLmRldGVjdG9ySWR9L2ZpbHRlci8ke3Byb3BzLmZpbHRlck5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIGZpbHRlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRmlsdGVyQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEZpbHRlckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBmaWx0ZXIgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRmlsdGVyQXJuKGFybjogc3RyaW5nKTogR3VhcmREdXR5RmlsdGVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBGaWx0ZXJBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZmlsdGVyIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRldGVjdG9ySWQ6IG1hdGNoLmdyb3VwcyEuZGV0ZWN0b3JJZCxcblx0XHRcdGZpbHRlck5hbWU6IG1hdGNoLmdyb3VwcyEuZmlsdGVyTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBpcHNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpcHNldChwcm9wczogR3VhcmREdXR5SXBzZXRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3VhcmRkdXR5OiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRldGVjdG9yLyR7cHJvcHMuZGV0ZWN0b3JJZH0vaXBzZXQvJHtwcm9wcy5pcFNldElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBpcHNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSXBzZXRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSXBzZXRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgaXBzZXQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlSXBzZXRBcm4oYXJuOiBzdHJpbmcpOiBHdWFyZER1dHlJcHNldEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSXBzZXRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaXBzZXQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZGV0ZWN0b3JJZDogbWF0Y2guZ3JvdXBzIS5kZXRlY3RvcklkLFxuXHRcdFx0aXBTZXRJZDogbWF0Y2guZ3JvdXBzIS5pcFNldElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIG1hbHdhcmVwcm90ZWN0aW9ucGxhbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBtYWx3YXJlcHJvdGVjdGlvbnBsYW4oXG5cdFx0cHJvcHM6IEd1YXJkRHV0eU1hbHdhcmVwcm90ZWN0aW9ucGxhbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omd1YXJkZHV0eToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTptYWx3YXJlLXByb3RlY3Rpb24tcGxhbi8ke3Byb3BzLm1hbHdhcmVQcm90ZWN0aW9uUGxhbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBtYWx3YXJlcHJvdGVjdGlvbnBsYW4gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZE1hbHdhcmVwcm90ZWN0aW9ucGxhbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBNYWx3YXJlcHJvdGVjdGlvbnBsYW5Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgbWFsd2FyZXByb3RlY3Rpb25wbGFuIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZU1hbHdhcmVwcm90ZWN0aW9ucGxhbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3VhcmREdXR5TWFsd2FyZXByb3RlY3Rpb25wbGFuQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBNYWx3YXJlcHJvdGVjdGlvbnBsYW5Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbWFsd2FyZXByb3RlY3Rpb25wbGFuIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdG1hbHdhcmVQcm90ZWN0aW9uUGxhbklkOiBtYXRjaC5ncm91cHMhLm1hbHdhcmVQcm90ZWN0aW9uUGxhbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHB1Ymxpc2hpbmdEZXN0aW5hdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBwdWJsaXNoaW5nRGVzdGluYXRpb24oXG5cdFx0cHJvcHM6IEd1YXJkRHV0eVB1Ymxpc2hpbmdEZXN0aW5hdGlvbkFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omd1YXJkZHV0eToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkZXRlY3Rvci8ke3Byb3BzLmRldGVjdG9ySWR9L3B1Ymxpc2hpbmdkZXN0aW5hdGlvbi8ke3Byb3BzLnB1Ymxpc2hpbmdEZXN0aW5hdGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBwdWJsaXNoaW5nRGVzdGluYXRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFB1Ymxpc2hpbmdEZXN0aW5hdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBQdWJsaXNoaW5nRGVzdGluYXRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgcHVibGlzaGluZ0Rlc3RpbmF0aW9uIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3VhcmREdXR5UHVibGlzaGluZ0Rlc3RpbmF0aW9uQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBQdWJsaXNoaW5nRGVzdGluYXRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcHVibGlzaGluZ0Rlc3RpbmF0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRldGVjdG9ySWQ6IG1hdGNoLmdyb3VwcyEuZGV0ZWN0b3JJZCxcblx0XHRcdHB1Ymxpc2hpbmdEZXN0aW5hdGlvbklkOiBtYXRjaC5ncm91cHMhLnB1Ymxpc2hpbmdEZXN0aW5hdGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIHRocmVhdGVudGl0eXNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB0aHJlYXRlbnRpdHlzZXQocHJvcHM6IEd1YXJkRHV0eVRocmVhdGVudGl0eXNldEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpndWFyZGR1dHk6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZGV0ZWN0b3IvJHtwcm9wcy5kZXRlY3RvcklkfS90aHJlYXRlbnRpdHlzZXQvJHtwcm9wcy50aHJlYXRFbnRpdHlTZXRJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgdGhyZWF0ZW50aXR5c2V0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRUaHJlYXRlbnRpdHlzZXRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gVGhyZWF0ZW50aXR5c2V0QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIHRocmVhdGVudGl0eXNldCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VUaHJlYXRlbnRpdHlzZXRBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEd1YXJkRHV0eVRocmVhdGVudGl0eXNldEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gVGhyZWF0ZW50aXR5c2V0QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRocmVhdGVudGl0eXNldCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkZXRlY3RvcklkOiBtYXRjaC5ncm91cHMhLmRldGVjdG9ySWQsXG5cdFx0XHR0aHJlYXRFbnRpdHlTZXRJZDogbWF0Y2guZ3JvdXBzIS50aHJlYXRFbnRpdHlTZXRJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSB0aHJlYXRpbnRlbHNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB0aHJlYXRpbnRlbHNldChwcm9wczogR3VhcmREdXR5VGhyZWF0aW50ZWxzZXRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3VhcmRkdXR5OiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRldGVjdG9yLyR7cHJvcHMuZGV0ZWN0b3JJZH0vdGhyZWF0aW50ZWxzZXQvJHtwcm9wcy50aHJlYXRJbnRlbFNldElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSB0aHJlYXRpbnRlbHNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkVGhyZWF0aW50ZWxzZXRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gVGhyZWF0aW50ZWxzZXRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgdGhyZWF0aW50ZWxzZXQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlVGhyZWF0aW50ZWxzZXRBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEd1YXJkRHV0eVRocmVhdGludGVsc2V0QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBUaHJlYXRpbnRlbHNldEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0aHJlYXRpbnRlbHNldCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkZXRlY3RvcklkOiBtYXRjaC5ncm91cHMhLmRldGVjdG9ySWQsXG5cdFx0XHR0aHJlYXRJbnRlbFNldElkOiBtYXRjaC5ncm91cHMhLnRocmVhdEludGVsU2V0SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgdHJ1c3RlZGVudGl0eXNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB0cnVzdGVkZW50aXR5c2V0KHByb3BzOiBHdWFyZER1dHlUcnVzdGVkZW50aXR5c2V0QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omd1YXJkZHV0eToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkZXRlY3Rvci8ke3Byb3BzLmRldGVjdG9ySWR9L3RydXN0ZWRlbnRpdHlzZXQvJHtwcm9wcy50cnVzdGVkRW50aXR5U2V0SWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIHRydXN0ZWRlbnRpdHlzZXQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFRydXN0ZWRlbnRpdHlzZXRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gVHJ1c3RlZGVudGl0eXNldEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSB0cnVzdGVkZW50aXR5c2V0IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVRydXN0ZWRlbnRpdHlzZXRBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEd1YXJkRHV0eVRydXN0ZWRlbnRpdHlzZXRBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFRydXN0ZWRlbnRpdHlzZXRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdHJ1c3RlZGVudGl0eXNldCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkZXRlY3RvcklkOiBtYXRjaC5ncm91cHMhLmRldGVjdG9ySWQsXG5cdFx0XHR0cnVzdGVkRW50aXR5U2V0SWQ6IG1hdGNoLmdyb3VwcyEudHJ1c3RlZEVudGl0eVNldElkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGd1YXJkZHV0eS5cbiAqL1xuZXhwb3J0IGNsYXNzIEd1YXJkRHV0eU9wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBY2NlcHRBZG1pbmlzdHJhdG9ySW52aXRhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFjY2VwdEFkbWluaXN0cmF0b3JJbnZpdGF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpBY2NlcHRBZG1pbmlzdHJhdG9ySW52aXRhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBY2NlcHRJbnZpdGF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWNjZXB0SW52aXRhdGlvbjogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6QWNjZXB0SW52aXRhdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQXJjaGl2ZUZpbmRpbmdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXJjaGl2ZUZpbmRpbmdzOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpBcmNoaXZlRmluZGluZ3NcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6Q3JlYXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZUFzc29jaWF0aW9uXCIsXG5cdFx0XCJndWFyZGR1dHk6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZU9yZ0NvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDdXN0b21EZXRlY3Rpb25SdWxlT3JnQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6Q3JlYXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZU9yZ0NvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRGV0ZWN0b3IgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEZXRlY3Rvcjogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6Q3JlYXRlRGV0ZWN0b3JcIixcblx0XHRcImd1YXJkZHV0eTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVGaWx0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVGaWx0ZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkNyZWF0ZUZpbHRlclwiLFxuXHRcdFwiZ3VhcmRkdXR5OlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUlQU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlSVBTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkNyZWF0ZUlQU2V0XCIsXG5cdFx0XCJndWFyZGR1dHk6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlSW52ZXN0aWdhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUludmVzdGlnYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkNyZWF0ZUludmVzdGlnYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpDcmVhdGVNYWx3YXJlUHJvdGVjdGlvblBsYW5cIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZ3VhcmRkdXR5OlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZU1lbWJlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVNZW1iZXJzOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpDcmVhdGVNZW1iZXJzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVQdWJsaXNoaW5nRGVzdGluYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVQdWJsaXNoaW5nRGVzdGluYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkNyZWF0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvblwiLFxuXHRcdFwiZ3VhcmRkdXR5OlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVNhbXBsZUZpbmRpbmdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU2FtcGxlRmluZGluZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkNyZWF0ZVNhbXBsZUZpbmRpbmdzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVRocmVhdEVudGl0eVNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRocmVhdEVudGl0eVNldDogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6Q3JlYXRlVGhyZWF0RW50aXR5U2V0XCIsXG5cdFx0XCJndWFyZGR1dHk6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlVGhyZWF0SW50ZWxTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVUaHJlYXRJbnRlbFNldDogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6Q3JlYXRlVGhyZWF0SW50ZWxTZXRcIixcblx0XHRcImd1YXJkZHV0eTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVUcnVzdGVkRW50aXR5U2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVHJ1c3RlZEVudGl0eVNldDogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6Q3JlYXRlVHJ1c3RlZEVudGl0eVNldFwiLFxuXHRcdFwiZ3VhcmRkdXR5OlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlY2xpbmVJbnZpdGF0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlY2xpbmVJbnZpdGF0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6RGVjbGluZUludml0YXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6RGVsZXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZUFzc29jaWF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUN1c3RvbURldGVjdGlvblJ1bGVPcmdDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZU9yZ0NvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkRlbGV0ZUN1c3RvbURldGVjdGlvblJ1bGVPcmdDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZURldGVjdG9yIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGV0ZWN0b3I6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OkRlbGV0ZURldGVjdG9yXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVGaWx0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVGaWx0ZXI6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OkRlbGV0ZUZpbHRlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlSVBTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVJUFNldDogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6RGVsZXRlSVBTZXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUludml0YXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSW52aXRhdGlvbnM6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OkRlbGV0ZUludml0YXRpb25zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVNYWx3YXJlUHJvdGVjdGlvblBsYW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVNYWx3YXJlUHJvdGVjdGlvblBsYW46IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkRlbGV0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVNZW1iZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTWVtYmVyczogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6RGVsZXRlTWVtYmVyc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpEZWxldGVQdWJsaXNoaW5nRGVzdGluYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlVGhyZWF0RW50aXR5U2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlVGhyZWF0RW50aXR5U2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpEZWxldGVUaHJlYXRFbnRpdHlTZXRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlVGhyZWF0SW50ZWxTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVUaHJlYXRJbnRlbFNldDogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6RGVsZXRlVGhyZWF0SW50ZWxTZXRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlVHJ1c3RlZEVudGl0eVNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVRydXN0ZWRFbnRpdHlTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkRlbGV0ZVRydXN0ZWRFbnRpdHlTZXRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVNYWx3YXJlU2NhbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZU1hbHdhcmVTY2Fuczogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6RGVzY3JpYmVNYWx3YXJlU2NhbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVPcmdhbml6YXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVPcmdhbml6YXRpb25Db25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpEZXNjcmliZU9yZ2FuaXphdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVQdWJsaXNoaW5nRGVzdGluYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6RGVzY3JpYmVQdWJsaXNoaW5nRGVzdGluYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzYWJsZU9yZ2FuaXphdGlvbkFkbWluQWNjb3VudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2FibGVPcmdhbml6YXRpb25BZG1pbkFjY291bnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkRpc2FibGVPcmdhbml6YXRpb25BZG1pbkFjY291bnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzYXNzb2NpYXRlRnJvbUFkbWluaXN0cmF0b3JBY2NvdW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlRnJvbUFkbWluaXN0cmF0b3JBY2NvdW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpEaXNhc3NvY2lhdGVGcm9tQWRtaW5pc3RyYXRvckFjY291bnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzYXNzb2NpYXRlRnJvbU1hc3RlckFjY291bnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVGcm9tTWFzdGVyQWNjb3VudDogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6RGlzYXNzb2NpYXRlRnJvbU1hc3RlckFjY291bnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzYXNzb2NpYXRlTWVtYmVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Fzc29jaWF0ZU1lbWJlcnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkRpc2Fzc29jaWF0ZU1lbWJlcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRW5hYmxlT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRW5hYmxlT3JnYW5pemF0aW9uQWRtaW5BY2NvdW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpFbmFibGVPcmdhbml6YXRpb25BZG1pbkFjY291bnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QWRtaW5pc3RyYXRvckFjY291bnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEFkbWluaXN0cmF0b3JBY2NvdW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpHZXRBZG1pbmlzdHJhdG9yQWNjb3VudFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDb3ZlcmFnZVN0YXRpc3RpY3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldENvdmVyYWdlU3RhdGlzdGljczogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6R2V0Q292ZXJhZ2VTdGF0aXN0aWNzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEN1c3RvbURldGVjdGlvblJ1bGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEN1c3RvbURldGVjdGlvblJ1bGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkdldEN1c3RvbURldGVjdGlvblJ1bGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q3VzdG9tRGV0ZWN0aW9uUnVsZUFzc29jaWF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDdXN0b21EZXRlY3Rpb25SdWxlQXNzb2NpYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkdldEN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRDdXN0b21EZXRlY3Rpb25SdWxlT3JnQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q3VzdG9tRGV0ZWN0aW9uUnVsZU9yZ0NvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkdldEN1c3RvbURldGVjdGlvblJ1bGVPcmdDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldERldGVjdG9yIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXREZXRlY3Rvcjogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6R2V0RGV0ZWN0b3JcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEZpbHRlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RmlsdGVyOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpHZXRGaWx0ZXJcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEZpbmRpbmdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGaW5kaW5nczogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6R2V0RmluZGluZ3NcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEZpbmRpbmdzU3RhdGlzdGljcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RmluZGluZ3NTdGF0aXN0aWNzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpHZXRGaW5kaW5nc1N0YXRpc3RpY3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SVBTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldElQU2V0OiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpHZXRJUFNldFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SW52ZXN0aWdhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0SW52ZXN0aWdhdGlvbjogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6R2V0SW52ZXN0aWdhdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0SW52aXRhdGlvbnNDb3VudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0SW52aXRhdGlvbnNDb3VudDogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6R2V0SW52aXRhdGlvbnNDb3VudFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRNYWx3YXJlUHJvdGVjdGlvblBsYW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE1hbHdhcmVQcm90ZWN0aW9uUGxhbjogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6R2V0TWFsd2FyZVByb3RlY3Rpb25QbGFuXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE1hbHdhcmVTY2FuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRNYWx3YXJlU2Nhbjogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6R2V0TWFsd2FyZVNjYW5cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE1hbHdhcmVTY2FuU2V0dGluZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE1hbHdhcmVTY2FuU2V0dGluZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkdldE1hbHdhcmVTY2FuU2V0dGluZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TWFzdGVyQWNjb3VudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TWFzdGVyQWNjb3VudDogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6R2V0TWFzdGVyQWNjb3VudFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TWVtYmVyRGV0ZWN0b3JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRNZW1iZXJEZXRlY3RvcnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkdldE1lbWJlckRldGVjdG9yc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRNZW1iZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRNZW1iZXJzOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpHZXRNZW1iZXJzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRPcmdhbml6YXRpb25TdGF0aXN0aWNzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRPcmdhbml6YXRpb25TdGF0aXN0aWNzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpHZXRPcmdhbml6YXRpb25TdGF0aXN0aWNzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJlbWFpbmluZ0ZyZWVUcmlhbERheXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlbWFpbmluZ0ZyZWVUcmlhbERheXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkdldFJlbWFpbmluZ0ZyZWVUcmlhbERheXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0VGhyZWF0RW50aXR5U2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRUaHJlYXRFbnRpdHlTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkdldFRocmVhdEVudGl0eVNldFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRUaHJlYXRJbnRlbFNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0VGhyZWF0SW50ZWxTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkdldFRocmVhdEludGVsU2V0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFRydXN0ZWRFbnRpdHlTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFRydXN0ZWRFbnRpdHlTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkdldFRydXN0ZWRFbnRpdHlTZXRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0VXNhZ2VTdGF0aXN0aWNzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRVc2FnZVN0YXRpc3RpY3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OkdldFVzYWdlU3RhdGlzdGljc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbnZpdGVNZW1iZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSW52aXRlTWVtYmVyczogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6SW52aXRlTWVtYmVyc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvdmVyYWdlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvdmVyYWdlOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpMaXN0Q292ZXJhZ2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDdXN0b21EZXRlY3Rpb25SdWxlQXNzb2NpYXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5Okxpc3RDdXN0b21EZXRlY3Rpb25SdWxlQXNzb2NpYXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDdXN0b21EZXRlY3Rpb25SdWxlT3JnQ29uZmlndXJhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q3VzdG9tRGV0ZWN0aW9uUnVsZU9yZ0NvbmZpZ3VyYXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpMaXN0Q3VzdG9tRGV0ZWN0aW9uUnVsZU9yZ0NvbmZpZ3VyYXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDdXN0b21EZXRlY3Rpb25SdWxlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDdXN0b21EZXRlY3Rpb25SdWxlczogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6TGlzdEN1c3RvbURldGVjdGlvblJ1bGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REZXRlY3RvcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGV0ZWN0b3JzOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpMaXN0RGV0ZWN0b3JzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RmlsdGVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RGaWx0ZXJzOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpMaXN0RmlsdGVyc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEZpbmRpbmdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZpbmRpbmdzOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpMaXN0RmluZGluZ3NcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RJUFNldHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SVBTZXRzOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpMaXN0SVBTZXRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SW52ZXN0aWdhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW52ZXN0aWdhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5Okxpc3RJbnZlc3RpZ2F0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0SW52aXRhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW52aXRhdGlvbnM6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5Okxpc3RJbnZpdGF0aW9uc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdE1hbHdhcmVQcm90ZWN0aW9uUGxhbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWFsd2FyZVByb3RlY3Rpb25QbGFuczogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6TGlzdE1hbHdhcmVQcm90ZWN0aW9uUGxhbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdE1hbHdhcmVTY2FucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNYWx3YXJlU2NhbnM6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5Okxpc3RNYWx3YXJlU2NhbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNZW1iZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdE1lbWJlcnM6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5Okxpc3RNZW1iZXJzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0T3JnYW5pemF0aW9uQWRtaW5BY2NvdW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RPcmdhbml6YXRpb25BZG1pbkFjY291bnRzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpMaXN0T3JnYW5pemF0aW9uQWRtaW5BY2NvdW50c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UHVibGlzaGluZ0Rlc3RpbmF0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RQdWJsaXNoaW5nRGVzdGluYXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpMaXN0UHVibGlzaGluZ0Rlc3RpbmF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGhyZWF0RW50aXR5U2V0cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUaHJlYXRFbnRpdHlTZXRzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpMaXN0VGhyZWF0RW50aXR5U2V0c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGhyZWF0SW50ZWxTZXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRocmVhdEludGVsU2V0czogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6TGlzdFRocmVhdEludGVsU2V0c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VHJ1c3RlZEVudGl0eVNldHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VHJ1c3RlZEVudGl0eVNldHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5Okxpc3RUcnVzdGVkRW50aXR5U2V0c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTZW5kT2JqZWN0TWFsd2FyZVNjYW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kT2JqZWN0TWFsd2FyZVNjYW46IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OlNlbmRPYmplY3RNYWx3YXJlU2NhblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydE1hbHdhcmVTY2FuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRNYWx3YXJlU2Nhbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImd1YXJkZHV0eTpTdGFydE1hbHdhcmVTY2FuXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0TW9uaXRvcmluZ01lbWJlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydE1vbml0b3JpbmdNZW1iZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpTdGFydE1vbml0b3JpbmdNZW1iZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BNb25pdG9yaW5nTWVtYmVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BNb25pdG9yaW5nTWVtYmVyczogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6U3RvcE1vbml0b3JpbmdNZW1iZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OlRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVbmFyY2hpdmVGaW5kaW5ncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVuYXJjaGl2ZUZpbmRpbmdzOiBzdHJpbmdbXSA9IFtcImd1YXJkZHV0eTpVbmFyY2hpdmVGaW5kaW5nc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6VXBkYXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZUFzc29jaWF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUN1c3RvbURldGVjdGlvblJ1bGVPcmdDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZU9yZ0NvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OlVwZGF0ZUN1c3RvbURldGVjdGlvblJ1bGVPcmdDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZURldGVjdG9yIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRGV0ZWN0b3I6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OlVwZGF0ZURldGVjdG9yXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVGaWx0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGaWx0ZXI6IHN0cmluZ1tdID0gW1wiZ3VhcmRkdXR5OlVwZGF0ZUZpbHRlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRmluZGluZ3NGZWVkYmFjayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZpbmRpbmdzRmVlZGJhY2s6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OlVwZGF0ZUZpbmRpbmdzRmVlZGJhY2tcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlSVBTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVJUFNldDogc3RyaW5nW10gPSBbXCJndWFyZGR1dHk6VXBkYXRlSVBTZXRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhbjogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImd1YXJkZHV0eTpVcGRhdGVNYWx3YXJlUHJvdGVjdGlvblBsYW5cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTWFsd2FyZVNjYW5TZXR0aW5ncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1hbHdhcmVTY2FuU2V0dGluZ3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OlVwZGF0ZU1hbHdhcmVTY2FuU2V0dGluZ3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTWVtYmVyRGV0ZWN0b3JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTWVtYmVyRGV0ZWN0b3JzOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpVcGRhdGVNZW1iZXJEZXRlY3RvcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlT3JnYW5pemF0aW9uQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU9yZ2FuaXphdGlvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OlVwZGF0ZU9yZ2FuaXphdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpVcGRhdGVQdWJsaXNoaW5nRGVzdGluYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlVGhyZWF0RW50aXR5U2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlVGhyZWF0RW50aXR5U2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcImd1YXJkZHV0eTpVcGRhdGVUaHJlYXRFbnRpdHlTZXRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlVGhyZWF0SW50ZWxTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVUaHJlYXRJbnRlbFNldDogc3RyaW5nW10gPSBbXG5cdFx0XCJndWFyZGR1dHk6VXBkYXRlVGhyZWF0SW50ZWxTZXRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlVHJ1c3RlZEVudGl0eVNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVRydXN0ZWRFbnRpdHlTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3VhcmRkdXR5OlVwZGF0ZVRydXN0ZWRFbnRpdHlTZXRcIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGd1YXJkZHV0eS5cbiAqL1xuZXhwb3J0IGNsYXNzIEd1YXJkRHV0eUNvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQ3VzdG9tRGV0ZWN0aW9uUnVsZUFzc29jaWF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUN1c3RvbURldGVjdGlvblJ1bGVBc3NvY2lhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID1cblx0XHRbXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIiwgXCJhd3M6VGFnS2V5c1wiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZURldGVjdG9yIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURldGVjdG9yQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVGaWx0ZXIgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRmlsdGVyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVJUFNldCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVJUFNldENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlTWFsd2FyZVByb3RlY3Rpb25QbGFuIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1hbHdhcmVQcm90ZWN0aW9uUGxhbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUHVibGlzaGluZ0Rlc3RpbmF0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVB1Ymxpc2hpbmdEZXN0aW5hdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlVGhyZWF0RW50aXR5U2V0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVRocmVhdEVudGl0eVNldENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlVGhyZWF0SW50ZWxTZXQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVGhyZWF0SW50ZWxTZXRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVRydXN0ZWRFbnRpdHlTZXQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVHJ1c3RlZEVudGl0eVNldENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1wiYXdzOlRhZ0tleXNcIl07XG5cblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxufVxuIl19