@microsoft/terraform-cdk-constructs 1.10.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/.jsii +51855 -36874
  2. package/API.md +62102 -40530
  3. package/README.md +15 -0
  4. package/docs/azure-api-version-update-pipeline.md +271 -0
  5. package/lib/azure-actiongroup/lib/action-group.d.ts +3 -3
  6. package/lib/azure-actiongroup/lib/action-group.js +5 -5
  7. package/lib/azure-actiongroup/test/action-group.integ.d.ts +1 -1
  8. package/lib/azure-actiongroup/test/action-group.integ.js +5 -5
  9. package/lib/azure-actiongroup/test/action-group.spec.js +9 -9
  10. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +3 -3
  11. package/lib/azure-activitylogalert/lib/activity-log-alert.js +5 -5
  12. package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +1 -1
  13. package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +6 -6
  14. package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +9 -9
  15. package/lib/azure-aks/lib/aks-cluster.d.ts +6 -6
  16. package/lib/azure-aks/lib/aks-cluster.js +8 -8
  17. package/lib/azure-aks/test/aks-cluster.integ.d.ts +1 -1
  18. package/lib/azure-aks/test/aks-cluster.integ.js +5 -5
  19. package/lib/azure-aks/test/aks-cluster.spec.js +12 -12
  20. package/lib/azure-applicationinsights/lib/application-insights.d.ts +6 -6
  21. package/lib/azure-applicationinsights/lib/application-insights.js +8 -8
  22. package/lib/azure-applicationinsights/test/application-insights.integ.d.ts +1 -1
  23. package/lib/azure-applicationinsights/test/application-insights.integ.js +6 -6
  24. package/lib/azure-applicationinsights/test/application-insights.spec.js +5 -5
  25. package/lib/azure-containerapps/lib/container-app-environment.d.ts +8 -8
  26. package/lib/azure-containerapps/lib/container-app-environment.js +10 -10
  27. package/lib/azure-containerapps/lib/container-app.d.ts +9 -9
  28. package/lib/azure-containerapps/lib/container-app.js +11 -11
  29. package/lib/azure-containerapps/lib/container-apps-job-schemas.d.ts +8 -0
  30. package/lib/azure-containerapps/lib/container-apps-job-schemas.js +179 -0
  31. package/lib/azure-containerapps/lib/container-apps-job.d.ts +128 -0
  32. package/lib/azure-containerapps/lib/container-apps-job.js +81 -0
  33. package/lib/azure-containerapps/lib/index.d.ts +2 -0
  34. package/lib/azure-containerapps/lib/index.js +3 -1
  35. package/lib/azure-containerapps/test/container-app-environment.integ.d.ts +1 -1
  36. package/lib/azure-containerapps/test/container-app-environment.integ.js +5 -5
  37. package/lib/azure-containerapps/test/container-app-environment.spec.js +19 -19
  38. package/lib/azure-containerapps/test/container-app.integ.d.ts +1 -1
  39. package/lib/azure-containerapps/test/container-app.integ.js +5 -5
  40. package/lib/azure-containerapps/test/container-app.spec.js +30 -30
  41. package/lib/azure-containerapps/test/container-apps-job.integ.d.ts +6 -0
  42. package/lib/azure-containerapps/test/container-apps-job.integ.js +95 -0
  43. package/lib/azure-containerapps/test/container-apps-job.spec.d.ts +1 -0
  44. package/lib/azure-containerapps/test/container-apps-job.spec.js +261 -0
  45. package/lib/azure-containerregistry/lib/container-registry.d.ts +6 -6
  46. package/lib/azure-containerregistry/lib/container-registry.js +8 -8
  47. package/lib/azure-containerregistry/test/container-registry.integ.d.ts +1 -1
  48. package/lib/azure-containerregistry/test/container-registry.integ.js +5 -5
  49. package/lib/azure-containerregistry/test/container-registry.spec.js +11 -11
  50. package/lib/azure-cosmosdb/lib/cosmos-db.d.ts +6 -6
  51. package/lib/azure-cosmosdb/lib/cosmos-db.js +8 -8
  52. package/lib/azure-cosmosdb/test/cosmos-db.integ.d.ts +1 -1
  53. package/lib/azure-cosmosdb/test/cosmos-db.integ.js +5 -5
  54. package/lib/azure-cosmosdb/test/cosmos-db.spec.js +11 -11
  55. package/lib/azure-dataexplorer/index.d.ts +1 -0
  56. package/lib/azure-dataexplorer/index.js +18 -0
  57. package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.d.ts +5 -0
  58. package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.js +131 -0
  59. package/lib/azure-dataexplorer/lib/data-explorer-cluster.d.ts +54 -0
  60. package/lib/azure-dataexplorer/lib/data-explorer-cluster.js +91 -0
  61. package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.d.ts +5 -0
  62. package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.js +78 -0
  63. package/lib/azure-dataexplorer/lib/data-explorer-database.d.ts +24 -0
  64. package/lib/azure-dataexplorer/lib/data-explorer-database.js +68 -0
  65. package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.d.ts +5 -0
  66. package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.js +94 -0
  67. package/lib/azure-dataexplorer/lib/data-explorer-table.d.ts +25 -0
  68. package/lib/azure-dataexplorer/lib/data-explorer-table.js +62 -0
  69. package/lib/azure-dataexplorer/lib/index.d.ts +6 -0
  70. package/lib/azure-dataexplorer/lib/index.js +23 -0
  71. package/lib/azure-dataexplorer/test/data-explorer.integ.d.ts +1 -0
  72. package/lib/azure-dataexplorer/test/data-explorer.integ.js +78 -0
  73. package/lib/azure-dataexplorer/test/data-explorer.spec.d.ts +1 -0
  74. package/lib/azure-dataexplorer/test/data-explorer.spec.js +248 -0
  75. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +3 -3
  76. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +5 -5
  77. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +9 -9
  78. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +7 -7
  79. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +9 -9
  80. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +4 -4
  81. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +6 -6
  82. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +4 -4
  83. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +6 -6
  84. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +1 -1
  85. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +5 -5
  86. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +11 -11
  87. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +14 -14
  88. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +12 -12
  89. package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +8 -8
  90. package/lib/azure-dnsresolver/lib/dns-resolver.js +10 -10
  91. package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +6 -6
  92. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +8 -8
  93. package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +7 -7
  94. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +9 -9
  95. package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +1 -1
  96. package/lib/azure-dnsresolver/test/dns-resolver.integ.js +5 -5
  97. package/lib/azure-dnsresolver/test/dns-resolver.spec.js +11 -11
  98. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +1 -1
  99. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +5 -5
  100. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +12 -12
  101. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +1 -1
  102. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +5 -5
  103. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +9 -9
  104. package/lib/azure-dnszone/lib/dns-zone.d.ts +6 -6
  105. package/lib/azure-dnszone/lib/dns-zone.js +8 -8
  106. package/lib/azure-dnszone/lib/records/dns-records.d.ts +31 -31
  107. package/lib/azure-dnszone/lib/records/dns-records.js +42 -42
  108. package/lib/azure-dnszone/test/dns-records.integ.d.ts +1 -1
  109. package/lib/azure-dnszone/test/dns-records.integ.js +5 -5
  110. package/lib/azure-dnszone/test/dns-records.spec.js +57 -57
  111. package/lib/azure-dnszone/test/dns-zone.integ.d.ts +1 -1
  112. package/lib/azure-dnszone/test/dns-zone.integ.js +5 -5
  113. package/lib/azure-dnszone/test/dns-zone.spec.js +11 -11
  114. package/lib/azure-eventgrideventsubscription/index.d.ts +1 -0
  115. package/lib/azure-eventgrideventsubscription/index.js +18 -0
  116. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.d.ts +5 -0
  117. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.js +151 -0
  118. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.d.ts +59 -0
  119. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.js +67 -0
  120. package/lib/azure-eventgrideventsubscription/lib/index.d.ts +2 -0
  121. package/lib/azure-eventgrideventsubscription/lib/index.js +19 -0
  122. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.d.ts +1 -0
  123. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.js +100 -0
  124. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.d.ts +1 -0
  125. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.js +242 -0
  126. package/lib/azure-eventgridsystemtopic/index.d.ts +1 -0
  127. package/lib/azure-eventgridsystemtopic/index.js +18 -0
  128. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.d.ts +5 -0
  129. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.js +164 -0
  130. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.d.ts +46 -0
  131. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.js +68 -0
  132. package/lib/azure-eventgridsystemtopic/lib/index.d.ts +2 -0
  133. package/lib/azure-eventgridsystemtopic/lib/index.js +19 -0
  134. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.d.ts +1 -0
  135. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.js +64 -0
  136. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.d.ts +1 -0
  137. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.js +241 -0
  138. package/lib/azure-eventhub/index.d.ts +7 -0
  139. package/lib/azure-eventhub/index.js +24 -0
  140. package/lib/azure-eventhub/lib/event-hub-namespace.d.ts +204 -0
  141. package/lib/azure-eventhub/lib/event-hub-namespace.js +178 -0
  142. package/lib/azure-eventhub/lib/event-hub-schemas.d.ts +63 -0
  143. package/lib/azure-eventhub/lib/event-hub-schemas.js +370 -0
  144. package/lib/azure-eventhub/lib/event-hub.d.ts +153 -0
  145. package/lib/azure-eventhub/lib/event-hub.js +171 -0
  146. package/lib/azure-eventhub/lib/index.d.ts +6 -0
  147. package/lib/azure-eventhub/lib/index.js +23 -0
  148. package/lib/azure-eventhub/test/event-hub.integ.d.ts +9 -0
  149. package/lib/azure-eventhub/test/event-hub.integ.js +113 -0
  150. package/lib/azure-eventhub/test/event-hub.spec.d.ts +8 -0
  151. package/lib/azure-eventhub/test/event-hub.spec.js +438 -0
  152. package/lib/azure-functionapp/lib/function-app.d.ts +6 -6
  153. package/lib/azure-functionapp/lib/function-app.js +8 -8
  154. package/lib/azure-functionapp/test/function-app.integ.d.ts +1 -1
  155. package/lib/azure-functionapp/test/function-app.integ.js +5 -5
  156. package/lib/azure-functionapp/test/function-app.spec.js +12 -12
  157. package/lib/azure-keyvault/lib/key-vault.d.ts +6 -6
  158. package/lib/azure-keyvault/lib/key-vault.js +8 -8
  159. package/lib/azure-keyvault/test/key-vault.integ.d.ts +1 -1
  160. package/lib/azure-keyvault/test/key-vault.integ.js +5 -5
  161. package/lib/azure-keyvault/test/key-vault.spec.js +11 -11
  162. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +1 -1
  163. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +3 -3
  164. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +1 -1
  165. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +6 -6
  166. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +6 -6
  167. package/lib/azure-metricalert/lib/metric-alert.d.ts +3 -3
  168. package/lib/azure-metricalert/lib/metric-alert.js +5 -5
  169. package/lib/azure-metricalert/test/metric-alert.integ.d.ts +1 -1
  170. package/lib/azure-metricalert/test/metric-alert.integ.js +5 -5
  171. package/lib/azure-metricalert/test/metric-alert.spec.js +9 -9
  172. package/lib/azure-networkinterface/lib/network-interface.d.ts +5 -5
  173. package/lib/azure-networkinterface/lib/network-interface.js +7 -7
  174. package/lib/azure-networkinterface/test/network-interface.integ.d.ts +1 -1
  175. package/lib/azure-networkinterface/test/network-interface.integ.js +5 -5
  176. package/lib/azure-networkinterface/test/network-interface.spec.js +11 -11
  177. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +6 -6
  178. package/lib/azure-networksecuritygroup/lib/network-security-group.js +8 -8
  179. package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +1 -1
  180. package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +5 -5
  181. package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +12 -12
  182. package/lib/azure-networkwatcher/lib/network-watcher.d.ts +1 -1
  183. package/lib/azure-networkwatcher/lib/network-watcher.js +3 -3
  184. package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +1 -1
  185. package/lib/azure-networkwatcher/test/network-watcher.integ.js +6 -6
  186. package/lib/azure-networkwatcher/test/network-watcher.spec.js +6 -6
  187. package/lib/azure-policyassignment/lib/policy-assignment.d.ts +3 -3
  188. package/lib/azure-policyassignment/lib/policy-assignment.js +5 -5
  189. package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +1 -1
  190. package/lib/azure-policyassignment/test/policy-assignment.integ.js +5 -5
  191. package/lib/azure-policyassignment/test/policy-assignment.spec.js +12 -12
  192. package/lib/azure-policydefinition/lib/policy-definition.d.ts +3 -3
  193. package/lib/azure-policydefinition/lib/policy-definition.js +5 -5
  194. package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +1 -1
  195. package/lib/azure-policydefinition/test/policy-definition.integ.js +5 -5
  196. package/lib/azure-policydefinition/test/policy-definition.spec.js +19 -19
  197. package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +1 -1
  198. package/lib/azure-policysetdefinition/lib/policy-set-definition.js +3 -3
  199. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +1 -1
  200. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +6 -6
  201. package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +6 -6
  202. package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +10 -10
  203. package/lib/azure-privatednszone/lib/private-dns-zone.js +12 -12
  204. package/lib/azure-privatednszone/lib/records/private-dns-records.d.ts +25 -25
  205. package/lib/azure-privatednszone/lib/records/private-dns-records.js +34 -34
  206. package/lib/azure-privatednszone/test/private-dns-records.integ.d.ts +1 -1
  207. package/lib/azure-privatednszone/test/private-dns-records.integ.js +5 -5
  208. package/lib/azure-privatednszone/test/private-dns-records.spec.js +49 -49
  209. package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +1 -1
  210. package/lib/azure-privatednszone/test/private-dns-zone.integ.js +5 -5
  211. package/lib/azure-privatednszone/test/private-dns-zone.spec.js +12 -12
  212. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +6 -6
  213. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +8 -8
  214. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +1 -1
  215. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +5 -5
  216. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +12 -12
  217. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +5 -5
  218. package/lib/azure-publicipaddress/lib/public-ip-address.js +7 -7
  219. package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +1 -1
  220. package/lib/azure-publicipaddress/test/public-ip-address.integ.js +6 -6
  221. package/lib/azure-publicipaddress/test/public-ip-address.spec.js +11 -11
  222. package/lib/azure-resourcegroup/lib/resource-group.d.ts +5 -5
  223. package/lib/azure-resourcegroup/lib/resource-group.js +7 -7
  224. package/lib/azure-resourcegroup/test/resource-group.integ.d.ts +1 -1
  225. package/lib/azure-resourcegroup/test/resource-group.integ.js +5 -5
  226. package/lib/azure-resourcegroup/test/resource-group.spec.js +14 -14
  227. package/lib/azure-roleassignment/lib/role-assignment.d.ts +3 -3
  228. package/lib/azure-roleassignment/lib/role-assignment.js +5 -5
  229. package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +1 -1
  230. package/lib/azure-roleassignment/test/role-assignment.integ.js +5 -5
  231. package/lib/azure-roleassignment/test/role-assignment.spec.js +12 -12
  232. package/lib/azure-roledefinition/lib/role-definition.d.ts +3 -3
  233. package/lib/azure-roledefinition/lib/role-definition.js +5 -5
  234. package/lib/azure-roledefinition/test/role-definition.integ.d.ts +1 -1
  235. package/lib/azure-roledefinition/test/role-definition.integ.js +5 -5
  236. package/lib/azure-roledefinition/test/role-definition.spec.js +12 -12
  237. package/lib/azure-sreagent/lib/sre-agent.d.ts +8 -8
  238. package/lib/azure-sreagent/lib/sre-agent.js +10 -10
  239. package/lib/azure-sreagent/test/sre-agent.integ.d.ts +1 -1
  240. package/lib/azure-sreagent/test/sre-agent.integ.js +5 -5
  241. package/lib/azure-sreagent/test/sre-agent.spec.js +11 -11
  242. package/lib/azure-staticwebapp/lib/static-web-app.d.ts +6 -6
  243. package/lib/azure-staticwebapp/lib/static-web-app.js +8 -8
  244. package/lib/azure-staticwebapp/test/static-web-app.integ.d.ts +1 -1
  245. package/lib/azure-staticwebapp/test/static-web-app.integ.js +6 -6
  246. package/lib/azure-staticwebapp/test/static-web-app.spec.js +12 -12
  247. package/lib/azure-storageaccount/lib/storage-account.d.ts +6 -6
  248. package/lib/azure-storageaccount/lib/storage-account.js +8 -8
  249. package/lib/azure-storageaccount/test/storage-account.integ.d.ts +1 -1
  250. package/lib/azure-storageaccount/test/storage-account.integ.js +5 -5
  251. package/lib/azure-storageaccount/test/storage-account.spec.js +11 -11
  252. package/lib/azure-storageblobcontainer/index.d.ts +1 -0
  253. package/lib/azure-storageblobcontainer/index.js +18 -0
  254. package/lib/azure-storageblobcontainer/lib/index.d.ts +2 -0
  255. package/lib/azure-storageblobcontainer/lib/index.js +19 -0
  256. package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.d.ts +5 -0
  257. package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.js +108 -0
  258. package/lib/azure-storageblobcontainer/lib/storage-blob-container.d.ts +37 -0
  259. package/lib/azure-storageblobcontainer/lib/storage-blob-container.js +63 -0
  260. package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.d.ts +1 -0
  261. package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.js +60 -0
  262. package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.d.ts +1 -0
  263. package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.js +172 -0
  264. package/lib/azure-subnet/lib/subnet.d.ts +3 -3
  265. package/lib/azure-subnet/lib/subnet.js +5 -5
  266. package/lib/azure-subnet/test/subnet.integ.d.ts +1 -1
  267. package/lib/azure-subnet/test/subnet.integ.js +5 -5
  268. package/lib/azure-subnet/test/subnet.spec.js +9 -9
  269. package/lib/azure-userassignedidentity/index.d.ts +1 -0
  270. package/lib/azure-userassignedidentity/index.js +18 -0
  271. package/lib/azure-userassignedidentity/lib/index.d.ts +2 -0
  272. package/lib/azure-userassignedidentity/lib/index.js +19 -0
  273. package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.d.ts +8 -0
  274. package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.js +107 -0
  275. package/lib/azure-userassignedidentity/lib/user-assigned-identity.d.ts +37 -0
  276. package/lib/azure-userassignedidentity/lib/user-assigned-identity.js +85 -0
  277. package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.d.ts +1 -0
  278. package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.js +64 -0
  279. package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.d.ts +1 -0
  280. package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.js +241 -0
  281. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +6 -6
  282. package/lib/azure-virtualmachine/lib/virtual-machine.js +8 -8
  283. package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +1 -1
  284. package/lib/azure-virtualmachine/test/virtual-machine.integ.js +5 -5
  285. package/lib/azure-virtualmachine/test/virtual-machine.spec.js +17 -17
  286. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +6 -6
  287. package/lib/azure-virtualnetwork/lib/virtual-network.js +8 -8
  288. package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +1 -1
  289. package/lib/azure-virtualnetwork/test/virtual-network.integ.js +5 -5
  290. package/lib/azure-virtualnetwork/test/virtual-network.spec.js +12 -12
  291. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +5 -5
  292. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +7 -7
  293. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.d.ts +1 -1
  294. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.js +5 -5
  295. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.spec.js +13 -13
  296. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.d.ts +5 -5
  297. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +7 -7
  298. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.d.ts +1 -1
  299. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.js +5 -5
  300. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.spec.js +20 -20
  301. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +4 -4
  302. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +6 -6
  303. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.d.ts +4 -4
  304. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +6 -6
  305. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.d.ts +4 -4
  306. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +6 -6
  307. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +4 -4
  308. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +6 -6
  309. package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +4 -4
  310. package/lib/azure-virtualnetworkmanager/lib/network-group.js +6 -6
  311. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +4 -4
  312. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +6 -6
  313. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +4 -4
  314. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +6 -6
  315. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +4 -4
  316. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +6 -6
  317. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +7 -7
  318. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +9 -9
  319. package/lib/azure-virtualnetworkmanager/test/ipam-pool-static-cidr.spec.js +17 -17
  320. package/lib/azure-virtualnetworkmanager/test/ipam-pool.spec.js +15 -15
  321. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +1 -1
  322. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +5 -5
  323. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +57 -57
  324. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +72 -7
  325. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +147 -8
  326. package/lib/azure-vmss/lib/vmss-schemas.d.ts +195 -0
  327. package/lib/azure-vmss/lib/vmss-schemas.js +33 -1
  328. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +1 -1
  329. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +5 -5
  330. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +474 -12
  331. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +6 -6
  332. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +7 -7
  333. package/lib/core-azure/lib/azapi/azapi-resource.js +6 -6
  334. package/lib/core-azure/lib/azapi/azapi-resource.spec.js +7 -7
  335. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +12 -12
  336. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +15 -15
  337. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +35 -35
  338. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +58 -58
  339. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +25 -25
  340. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +49 -49
  341. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +13 -13
  342. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +22 -22
  343. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +24 -24
  344. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +40 -40
  345. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +44 -44
  346. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +72 -72
  347. package/lib/core-azure/lib/azapi/providers-azapi/index.js +2 -2
  348. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +2 -2
  349. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +54 -54
  350. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +86 -86
  351. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +65 -65
  352. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +102 -102
  353. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +25 -25
  354. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +62 -62
  355. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +36 -36
  356. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +69 -69
  357. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
  358. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  359. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  360. package/lib/index.d.ts +26 -0
  361. package/lib/index.js +28 -2
  362. package/lib/testing/index.d.ts +1 -1
  363. package/lib/testing/index.js +25 -8
  364. package/lib/testing/lib/cleanup.js +1 -1
  365. package/lib/testing/lib/metadata.js +12 -4
  366. package/lib/testing/lib/naming.js +57 -1
  367. package/package.json +10 -22
  368. package/scripts/azure-version-updater/create-issue.ts +189 -0
  369. package/scripts/azure-version-updater/discover.ts +382 -0
  370. package/scripts/azure-version-updater/spec-mapping.ts +164 -0
  371. package/scripts/azure-version-updater/tsconfig.json +11 -0
  372. package/setup.js +2 -2
@@ -65,12 +65,30 @@ export interface IPConfigurationSubnet {
65
65
  export interface PublicIPDnsSettings {
66
66
  readonly domainNameLabel: string;
67
67
  }
68
+ /**
69
+ * Public IP tag for routing preference configuration
70
+ */
71
+ export interface PublicIPTag {
72
+ readonly ipTagType: string;
73
+ readonly tag: string;
74
+ }
75
+ /**
76
+ * Public IP address SKU for VMSS public IP configuration
77
+ */
78
+ export interface VmssPublicIPAddressSku {
79
+ readonly name?: string;
80
+ readonly tier?: string;
81
+ }
68
82
  /**
69
83
  * Public IP address configuration properties
70
84
  */
71
85
  export interface PublicIPAddressConfigurationProperties {
72
86
  readonly idleTimeoutInMinutes?: number;
73
87
  readonly dnsSettings?: PublicIPDnsSettings;
88
+ readonly ipTags?: PublicIPTag[];
89
+ readonly publicIPPrefix?: ResourceReference;
90
+ readonly publicIPAddressVersion?: string;
91
+ readonly deleteOption?: string;
74
92
  }
75
93
  /**
76
94
  * Public IP address configuration
@@ -78,6 +96,7 @@ export interface PublicIPAddressConfigurationProperties {
78
96
  export interface PublicIPAddressConfiguration {
79
97
  readonly name: string;
80
98
  readonly properties?: PublicIPAddressConfigurationProperties;
99
+ readonly sku?: VmssPublicIPAddressSku;
81
100
  }
82
101
  /**
83
102
  * Resource reference with ID
@@ -121,6 +140,10 @@ export interface NetworkInterfaceConfigurationProperties {
121
140
  readonly networkSecurityGroup?: NetworkSecurityGroupReference;
122
141
  readonly ipConfigurations: IPConfiguration[];
123
142
  readonly dnsSettings?: NetworkInterfaceDnsSettings;
143
+ readonly deleteOption?: string;
144
+ readonly disableTcpStateTracking?: boolean;
145
+ readonly auxiliaryMode?: string;
146
+ readonly auxiliarySku?: string;
124
147
  }
125
148
  /**
126
149
  * Network interface configuration for VMSS
@@ -164,6 +187,10 @@ export interface VMExtensionProperties {
164
187
  readonly autoUpgradeMinorVersion?: boolean;
165
188
  readonly settings?: any;
166
189
  readonly protectedSettings?: any;
190
+ readonly provisionAfterExtensions?: string[];
191
+ readonly enableAutomaticUpgrade?: boolean;
192
+ readonly suppressFailures?: boolean;
193
+ readonly forceUpdateTag?: string;
167
194
  }
168
195
  /**
169
196
  * VM extension
@@ -177,6 +204,7 @@ export interface VMExtension {
177
204
  */
178
205
  export interface ExtensionProfile {
179
206
  readonly extensions?: VMExtension[];
207
+ readonly extensionsTimeBudget?: string;
180
208
  }
181
209
  /**
182
210
  * Terminate notification profile
@@ -190,6 +218,56 @@ export interface TerminateNotificationProfile {
190
218
  */
191
219
  export interface ScheduledEventsProfile {
192
220
  readonly terminateNotificationProfile?: TerminateNotificationProfile;
221
+ readonly osImageNotificationProfile?: OSImageNotificationProfile;
222
+ }
223
+ /**
224
+ * OS image notification profile for scheduled events
225
+ */
226
+ export interface OSImageNotificationProfile {
227
+ readonly notBeforeTimeout?: string;
228
+ readonly enable?: boolean;
229
+ }
230
+ /**
231
+ * Gallery application reference
232
+ */
233
+ export interface GalleryApplication {
234
+ readonly packageReferenceId: string;
235
+ readonly configurationReference?: string;
236
+ readonly order?: number;
237
+ readonly tags?: string;
238
+ readonly treatFailureAsDeploymentFailure?: boolean;
239
+ readonly enableAutomaticUpgrade?: boolean;
240
+ }
241
+ /**
242
+ * Application profile for gallery applications
243
+ */
244
+ export interface ApplicationProfile {
245
+ readonly galleryApplications?: GalleryApplication[];
246
+ }
247
+ /**
248
+ * Capacity reservation profile reference
249
+ */
250
+ export interface CapacityReservationProfile {
251
+ readonly capacityReservationGroup?: ResourceReference;
252
+ }
253
+ /**
254
+ * Hardware profile for VM size properties
255
+ */
256
+ export interface VmssHardwareProfile {
257
+ readonly vmSizeProperties?: VmSizeProperties;
258
+ }
259
+ /**
260
+ * VM size properties for constrained vCPU configurations
261
+ */
262
+ export interface VmSizeProperties {
263
+ readonly vCPUsAvailable?: number;
264
+ readonly vCPUsPerCore?: number;
265
+ }
266
+ /**
267
+ * Service artifact reference for shared image gallery
268
+ */
269
+ export interface ServiceArtifactReference {
270
+ readonly id: string;
193
271
  }
194
272
  /**
195
273
  * OS Profile for Virtual Machine Scale Set
@@ -222,6 +300,11 @@ export interface VirtualMachineScaleSetVMProfile {
222
300
  readonly evictionPolicy?: string;
223
301
  readonly billingProfile?: VirtualMachineBillingProfile;
224
302
  readonly scheduledEventsProfile?: ScheduledEventsProfile;
303
+ readonly userData?: string;
304
+ readonly applicationProfile?: ApplicationProfile;
305
+ readonly capacityReservation?: CapacityReservationProfile;
306
+ readonly hardwareProfile?: VmssHardwareProfile;
307
+ readonly serviceArtifactReference?: ServiceArtifactReference;
225
308
  }
226
309
  /**
227
310
  * Automatic repairs policy
@@ -365,6 +448,43 @@ export interface HostGroupReference {
365
448
  */
366
449
  export interface AdditionalCapabilities {
367
450
  readonly ultraSSDEnabled?: boolean;
451
+ readonly hibernationEnabled?: boolean;
452
+ }
453
+ /**
454
+ * Spot restore policy for restoring evicted spot instances
455
+ */
456
+ export interface SpotRestorePolicy {
457
+ readonly enabled?: boolean;
458
+ readonly restoreTimeout?: string;
459
+ }
460
+ /**
461
+ * Priority mix policy for mixing spot and regular VMs
462
+ */
463
+ export interface PriorityMixPolicy {
464
+ readonly baseRegularPriorityCount?: number;
465
+ readonly regularPriorityPercentageAboveBase?: number;
466
+ }
467
+ /**
468
+ * Resilience VM deletion policy for zone rebalancing
469
+ */
470
+ export interface ResilienceVMDeletionPolicy {
471
+ readonly enabled?: boolean;
472
+ }
473
+ /**
474
+ * Automatic zone rebalancing policy
475
+ */
476
+ export interface AutomaticZoneRebalancingPolicy {
477
+ readonly enabled?: boolean;
478
+ readonly rebalanceStrategy?: string;
479
+ readonly rebalanceBehavior?: string;
480
+ }
481
+ /**
482
+ * Resiliency policy for zone-level failure handling
483
+ */
484
+ export interface ResiliencyPolicy {
485
+ readonly resilientVMCreationPolicy?: ResilienceVMDeletionPolicy;
486
+ readonly resilientVMDeletionPolicy?: ResilienceVMDeletionPolicy;
487
+ readonly automaticZoneRebalancingPolicy?: AutomaticZoneRebalancingPolicy;
368
488
  }
369
489
  /**
370
490
  * Properties for the Virtual Machine Scale Set
@@ -394,6 +514,10 @@ export interface VirtualMachineScaleSetProps {
394
514
  readonly proximityPlacementGroup?: ProximityPlacementGroupReference;
395
515
  readonly hostGroup?: HostGroupReference;
396
516
  readonly additionalCapabilities?: AdditionalCapabilities;
517
+ readonly spotRestorePolicy?: SpotRestorePolicy;
518
+ readonly priorityMixPolicy?: PriorityMixPolicy;
519
+ readonly resiliencyPolicy?: ResiliencyPolicy;
520
+ readonly constrainedMaximumCapacity?: boolean;
397
521
  readonly monitoring?: any;
398
522
  readonly ignoreChanges?: string[];
399
523
  readonly enableMigrationAnalysis?: boolean;
@@ -417,6 +541,10 @@ export interface VirtualMachineScaleSetBodyProperties {
417
541
  readonly proximityPlacementGroup?: ProximityPlacementGroupReference;
418
542
  readonly hostGroup?: HostGroupReference;
419
543
  readonly additionalCapabilities?: AdditionalCapabilities;
544
+ readonly spotRestorePolicy?: SpotRestorePolicy;
545
+ readonly priorityMixPolicy?: PriorityMixPolicy;
546
+ readonly resiliencyPolicy?: ResiliencyPolicy;
547
+ readonly constrainedMaximumCapacity?: boolean;
420
548
  }
421
549
  /**
422
550
  * The resource body interface for Azure VMSS API calls
@@ -470,3 +598,70 @@ export declare const ALL_VMSS_VERSIONS: VersionConfig[];
470
598
  * Resource type constant
471
599
  */
472
600
  export declare const VMSS_TYPE = "Microsoft.Compute/virtualMachineScaleSets";
601
+ /**
602
+ * Options for extension helper methods
603
+ *
604
+ * Provides common configuration options used by the convenience methods
605
+ * for creating VM extension configurations.
606
+ *
607
+ * @stability stable
608
+ */
609
+ export interface ExtensionHelperOptions {
610
+ /**
611
+ * The version of the extension handler to use
612
+ */
613
+ readonly typeHandlerVersion?: string;
614
+ /**
615
+ * Whether to automatically upgrade the minor version of the extension
616
+ * @default true
617
+ */
618
+ readonly autoUpgradeMinorVersion?: boolean;
619
+ /**
620
+ * Whether to enable automatic upgrade of the extension
621
+ */
622
+ readonly enableAutomaticUpgrade?: boolean;
623
+ /**
624
+ * Whether to suppress failures from the extension
625
+ */
626
+ readonly suppressFailures?: boolean;
627
+ /**
628
+ * A tag to force the extension to re-run
629
+ */
630
+ readonly forceUpdateTag?: string;
631
+ /**
632
+ * Array of extension names that this extension must be provisioned after
633
+ */
634
+ readonly provisionAfterExtensions?: string[];
635
+ /**
636
+ * Additional settings for the extension
637
+ */
638
+ readonly settings?: any;
639
+ /**
640
+ * Additional protected settings for the extension
641
+ */
642
+ readonly protectedSettings?: any;
643
+ }
644
+ /**
645
+ * Options for the Application Health extension helper method
646
+ *
647
+ * @stability stable
648
+ */
649
+ export interface HealthExtensionOptions extends ExtensionHelperOptions {
650
+ /**
651
+ * The request path for HTTP/HTTPS health probes
652
+ * @example "/"
653
+ */
654
+ readonly requestPath?: string;
655
+ /**
656
+ * The interval in seconds between health probes
657
+ */
658
+ readonly intervalInSeconds?: number;
659
+ /**
660
+ * The number of consecutive probes before marking unhealthy
661
+ */
662
+ readonly numberOfProbes?: number;
663
+ /**
664
+ * The grace period in seconds after VM provisioning before health probes begin
665
+ */
666
+ readonly gracePeriod?: number;
667
+ }
@@ -164,6 +164,26 @@ exports.COMMON_VMSS_PROPERTIES = {
164
164
  required: false,
165
165
  description: "Additional capabilities like Ultra SSD",
166
166
  },
167
+ spotRestorePolicy: {
168
+ dataType: version_interfaces_1.PropertyType.OBJECT,
169
+ required: false,
170
+ description: "Spot restore policy for restoring evicted spot instances",
171
+ },
172
+ priorityMixPolicy: {
173
+ dataType: version_interfaces_1.PropertyType.OBJECT,
174
+ required: false,
175
+ description: "Priority mix policy for mixing spot and regular VMs",
176
+ },
177
+ resiliencyPolicy: {
178
+ dataType: version_interfaces_1.PropertyType.OBJECT,
179
+ required: false,
180
+ description: "Resiliency policy for zone-level failure handling",
181
+ },
182
+ constrainedMaximumCapacity: {
183
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
184
+ required: false,
185
+ description: "Whether the VMSS should be constrained to the maximum capacity",
186
+ },
167
187
  ignoreChanges: {
168
188
  dataType: version_interfaces_1.PropertyType.ARRAY,
169
189
  required: false,
@@ -208,6 +228,10 @@ exports.VMSS_SCHEMA_2025_01_02 = {
208
228
  "proximityPlacementGroup",
209
229
  "hostGroup",
210
230
  "additionalCapabilities",
231
+ "spotRestorePolicy",
232
+ "priorityMixPolicy",
233
+ "resiliencyPolicy",
234
+ "constrainedMaximumCapacity",
211
235
  "ignoreChanges",
212
236
  ],
213
237
  deprecated: [],
@@ -270,6 +294,10 @@ exports.VMSS_SCHEMA_2025_02_01 = {
270
294
  "proximityPlacementGroup",
271
295
  "hostGroup",
272
296
  "additionalCapabilities",
297
+ "spotRestorePolicy",
298
+ "priorityMixPolicy",
299
+ "resiliencyPolicy",
300
+ "constrainedMaximumCapacity",
273
301
  "ignoreChanges",
274
302
  ],
275
303
  deprecated: [],
@@ -332,6 +360,10 @@ exports.VMSS_SCHEMA_2025_04_01 = {
332
360
  "proximityPlacementGroup",
333
361
  "hostGroup",
334
362
  "additionalCapabilities",
363
+ "spotRestorePolicy",
364
+ "priorityMixPolicy",
365
+ "resiliencyPolicy",
366
+ "constrainedMaximumCapacity",
335
367
  "ignoreChanges",
336
368
  ],
337
369
  deprecated: [],
@@ -441,4 +473,4 @@ exports.ALL_VMSS_VERSIONS = [
441
473
  * Resource type constant
442
474
  */
443
475
  exports.VMSS_TYPE = "Microsoft.Compute/virtualMachineScaleSets";
444
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm1zcy1zY2hlbWFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXZtc3MvbGliL3Ztc3Mtc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQW1CSCwyR0FPNEU7QUFvZTVFLGdGQUFnRjtBQUNoRiw4QkFBOEI7QUFDOUIsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBMEM7SUFDM0UsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFDVCxzRUFBc0U7UUFDeEUsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7Z0JBQ3JDLE9BQU8sRUFBRSxxREFBcUQ7YUFDL0Q7WUFDRDtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsYUFBYTtnQkFDMUMsS0FBSyxFQUFFLGFBQWE7Z0JBQ3BCLE9BQU8sRUFBRSwwREFBMEQ7YUFDcEU7U0FDRjtLQUNGO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsS0FBSztRQUNmLFlBQVksRUFBRSxFQUFFO1FBQ2hCLFdBQVcsRUFDVCxnRUFBZ0U7UUFDbEUsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFVBQVU7Z0JBQ3ZDLEtBQUssRUFBRSxpQ0FBWSxDQUFDLE1BQU07Z0JBQzFCLE9BQU8sRUFBRSxvREFBb0Q7YUFDOUQ7U0FDRjtLQUNGO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSwyQ0FBMkM7UUFDeEQsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7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QUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLHVCQUF1QixHQUFrQjtJQUNwRCxPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUsOEJBQXNCO0lBQzlCLFlBQVksRUFBRSx3Q0FBbUIsQ0FBQyxNQUFNO0lBQ3hDLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLGVBQWUsRUFBRSxFQUFFO0lBQ25CLGNBQWMsRUFBRSxpQ0FBaUM7SUFDakQsU0FBUyxFQUFFO1FBQ1Q7WUFDRSxVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsMERBQTBEO1lBQ3ZFLFFBQVEsRUFBRSxLQUFLO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLGlCQUFpQixHQUFvQjtJQUNoRCwrQkFBdUI7SUFDdkIsK0JBQXVCO0lBQ3ZCLCtCQUF1QjtDQUN4QixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLFNBQVMsR0FBRywyQ0FBMkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQVBJIHNjaGVtYXMgZm9yIEF6dXJlIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRzIChWTVNTKSBhY3Jvc3MgYWxsIHN1cHBvcnRlZCB2ZXJzaW9uc1xuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBjb21wbGV0ZSBBUEkgc2NoZW1hcyBmb3IgTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVTY2FsZVNldHNcbiAqIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy4gVGhlIHNjaGVtYXMgYXJlIHVzZWQgYnkgdGhlIEF6YXBpUmVzb3VyY2VcbiAqIGZyYW1ld29yayBmb3IgdmFsaWRhdGlvbiwgdHJhbnNmb3JtYXRpb24sIGFuZCB2ZXJzaW9uIG1hbmFnZW1lbnQuXG4gKlxuICogQVBJIFZlcnNpb25zIHZlcmlmaWVkIGZyb20gQXp1cmUgUkVTVCBBUEkgU3BlY2lmaWNhdGlvbnM6XG4gKiAtIDIwMjUtMDEtMDI6IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9henVyZS1yZXN0LWFwaS1zcGVjcy8uLi4vMjAyNS0wMS0wMi92aXJ0dWFsTWFjaGluZVNjYWxlU2V0cy5qc29uXG4gKiAtIDIwMjUtMDItMDE6IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9henVyZS1yZXN0LWFwaS1zcGVjcy8uLi4vMjAyNS0wMi0wMS92aXJ0dWFsTWFjaGluZVNjYWxlU2V0cy5qc29uXG4gKiAtIDIwMjUtMDQtMDE6IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9henVyZS1yZXN0LWFwaS1zcGVjcy8uLi4vMjAyNS0wNC0wMS92aXJ0dWFsTWFjaGluZVNjYWxlU2V0cy5qc29uXG4gKi9cblxuaW1wb3J0IHsgTmV0d29ya0ludGVyZmFjZURuc1NldHRpbmdzIH0gZnJvbSBcIi4uLy4uL2F6dXJlLW5ldHdvcmtpbnRlcmZhY2UvbGliL25ldHdvcmstaW50ZXJmYWNlXCI7XG5pbXBvcnQge1xuICBWaXJ0dWFsTWFjaGluZUhhcmR3YXJlUHJvZmlsZSxcbiAgVmlydHVhbE1hY2hpbmVTdG9yYWdlUHJvZmlsZSxcbiAgVmlydHVhbE1hY2hpbmVJZGVudGl0eSxcbiAgVmlydHVhbE1hY2hpbmVQbGFuLFxuICBWaXJ0dWFsTWFjaGluZURpYWdub3N0aWNzUHJvZmlsZSxcbiAgVmlydHVhbE1hY2hpbmVTZWN1cml0eVByb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lQmlsbGluZ1Byb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lSW1hZ2VSZWZlcmVuY2UsXG4gIFZpcnR1YWxNYWNoaW5lT1NEaXNrLFxuICBWaXJ0dWFsTWFjaGluZURhdGFEaXNrLFxuICBWaXJ0dWFsTWFjaGluZUxpbnV4Q29uZmlndXJhdGlvbixcbiAgVmlydHVhbE1hY2hpbmVXaW5kb3dzQ29uZmlndXJhdGlvbixcbiAgVmlydHVhbE1hY2hpbmVCb290RGlhZ25vc3RpY3MsXG4gIFZpcnR1YWxNYWNoaW5lVWVmaVNldHRpbmdzLFxufSBmcm9tIFwiLi4vLi4vYXp1cmUtdmlydHVhbG1hY2hpbmUvbGliL3ZpcnR1YWwtbWFjaGluZS1zY2hlbWFzXCI7XG5pbXBvcnQge1xuICBBcGlTY2hlbWEsXG4gIFByb3BlcnR5RGVmaW5pdGlvbixcbiAgUHJvcGVydHlUeXBlLFxuICBWYWxpZGF0aW9uUnVsZVR5cGUsXG4gIFZlcnNpb25Db25maWcsXG4gIFZlcnNpb25TdXBwb3J0TGV2ZWwsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLy8gSW1wb3J0IGFuZCByZXVzZSBWTSBpbnRlcmZhY2VzIGZvciBjb2RlIHJldXNlXG5cbi8vIFJlLWV4cG9ydCBWTSBpbnRlcmZhY2VzIGZvciBleHRlcm5hbCB1c2VcbmV4cG9ydCB0eXBlIHtcbiAgVmlydHVhbE1hY2hpbmVIYXJkd2FyZVByb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lU3RvcmFnZVByb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lSWRlbnRpdHksXG4gIFZpcnR1YWxNYWNoaW5lUGxhbixcbiAgVmlydHVhbE1hY2hpbmVEaWFnbm9zdGljc1Byb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lU2VjdXJpdHlQcm9maWxlLFxuICBWaXJ0dWFsTWFjaGluZUJpbGxpbmdQcm9maWxlLFxuICBWaXJ0dWFsTWFjaGluZUltYWdlUmVmZXJlbmNlLFxuICBWaXJ0dWFsTWFjaGluZU9TRGlzayxcbiAgVmlydHVhbE1hY2hpbmVEYXRhRGlzayxcbiAgVmlydHVhbE1hY2hpbmVMaW51eENvbmZpZ3VyYXRpb24sXG4gIFZpcnR1YWxNYWNoaW5lV2luZG93c0NvbmZpZ3VyYXRpb24sXG4gIFZpcnR1YWxNYWNoaW5lQm9vdERpYWdub3N0aWNzLFxuICBWaXJ0dWFsTWFjaGluZVVlZmlTZXR0aW5ncyxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUWVBFU0NSSVBUIElOVEVSRkFDRVMgRk9SIFZNU1MtU1BFQ0lGSUMgT0JKRUNUU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBTS1UgZm9yIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbE1hY2hpbmVTY2FsZVNldFNrdSB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdGllcj86IHN0cmluZztcbiAgcmVhZG9ubHkgY2FwYWNpdHk/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVXBncmFkZSBwb2xpY3kgbW9kZSB0eXBlXG4gKi9cbmV4cG9ydCB0eXBlIFVwZ3JhZGVQb2xpY3lNb2RlID0gXCJBdXRvbWF0aWNcIiB8IFwiTWFudWFsXCIgfCBcIlJvbGxpbmdcIjtcblxuLyoqXG4gKiBSb2xsaW5nIHVwZ3JhZGUgcG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9sbGluZ1VwZ3JhZGVQb2xpY3kge1xuICByZWFkb25seSBtYXhCYXRjaEluc3RhbmNlUGVyY2VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgbWF4VW5oZWFsdGh5SW5zdGFuY2VQZXJjZW50PzogbnVtYmVyO1xuICByZWFkb25seSBtYXhVbmhlYWx0aHlVcGdyYWRlZEluc3RhbmNlUGVyY2VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgcGF1c2VUaW1lQmV0d2VlbkJhdGNoZXM/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuYWJsZUNyb3NzWm9uZVVwZ3JhZGU/OiBib29sZWFuO1xuICByZWFkb25seSBwcmlvcml0aXplVW5oZWFsdGh5SW5zdGFuY2VzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBdXRvbWF0aWMgT1MgdXBncmFkZSBwb2xpY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvbWF0aWNPU1VwZ3JhZGVQb2xpY3kge1xuICByZWFkb25seSBlbmFibGVBdXRvbWF0aWNPU1VwZ3JhZGU/OiBib29sZWFuO1xuICByZWFkb25seSBkaXNhYmxlQXV0b21hdGljUm9sbGJhY2s/OiBib29sZWFuO1xuICByZWFkb25seSB1c2VSb2xsaW5nVXBncmFkZVBvbGljeT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVXBncmFkZSBwb2xpY3kgZm9yIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbE1hY2hpbmVTY2FsZVNldFVwZ3JhZGVQb2xpY3kge1xuICByZWFkb25seSBtb2RlPzogVXBncmFkZVBvbGljeU1vZGU7XG4gIHJlYWRvbmx5IHJvbGxpbmdVcGdyYWRlUG9saWN5PzogUm9sbGluZ1VwZ3JhZGVQb2xpY3k7XG4gIHJlYWRvbmx5IGF1dG9tYXRpY09TVXBncmFkZVBvbGljeT86IEF1dG9tYXRpY09TVXBncmFkZVBvbGljeTtcbn1cblxuLyoqXG4gKiBJUCBjb25maWd1cmF0aW9uIHN1Ym5ldCByZWZlcmVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUENvbmZpZ3VyYXRpb25TdWJuZXQge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEROUyBzZXR0aW5ncyBmb3IgcHVibGljIElQXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGljSVBEbnNTZXR0aW5ncyB7XG4gIHJlYWRvbmx5IGRvbWFpbk5hbWVMYWJlbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFB1YmxpYyBJUCBhZGRyZXNzIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFB1YmxpY0lQQWRkcmVzc0NvbmZpZ3VyYXRpb25Qcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgaWRsZVRpbWVvdXRJbk1pbnV0ZXM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGRuc1NldHRpbmdzPzogUHVibGljSVBEbnNTZXR0aW5ncztcbn1cblxuLyoqXG4gKiBQdWJsaWMgSVAgYWRkcmVzcyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGljSVBBZGRyZXNzQ29uZmlndXJhdGlvbiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IFB1YmxpY0lQQWRkcmVzc0NvbmZpZ3VyYXRpb25Qcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIFJlc291cmNlIHJlZmVyZW5jZSB3aXRoIElEXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VSZWZlcmVuY2Uge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIElQIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElQQ29uZmlndXJhdGlvblByb3BlcnRpZXMge1xuICByZWFkb25seSBzdWJuZXQ/OiBJUENvbmZpZ3VyYXRpb25TdWJuZXQ7XG4gIHJlYWRvbmx5IHByaW1hcnk/OiBib29sZWFuO1xuICByZWFkb25seSBwdWJsaWNJUEFkZHJlc3NDb25maWd1cmF0aW9uPzogUHVibGljSVBBZGRyZXNzQ29uZmlndXJhdGlvbjtcbiAgcmVhZG9ubHkgcHJpdmF0ZUlQQWRkcmVzc1ZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwcGxpY2F0aW9uR2F0ZXdheUJhY2tlbmRBZGRyZXNzUG9vbHM/OiBSZXNvdXJjZVJlZmVyZW5jZVtdO1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJCYWNrZW5kQWRkcmVzc1Bvb2xzPzogUmVzb3VyY2VSZWZlcmVuY2VbXTtcbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VySW5ib3VuZE5hdFBvb2xzPzogUmVzb3VyY2VSZWZlcmVuY2VbXTtcbn1cblxuLyoqXG4gKiBOZXR3b3JrIGludGVyZmFjZSBJUCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBDb25maWd1cmF0aW9uIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogSVBDb25maWd1cmF0aW9uUHJvcGVydGllcztcbn1cblxuLyoqXG4gKiBOZXR3b3JrIHNlY3VyaXR5IGdyb3VwIHJlZmVyZW5jZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtTZWN1cml0eUdyb3VwUmVmZXJlbmNlIHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBOZXR3b3JrIGludGVyZmFjZSBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAqIFVzZXMgTmV0d29ya0ludGVyZmFjZURuc1NldHRpbmdzIGZyb20gYXp1cmUtbmV0d29ya2ludGVyZmFjZSBmb3IgY29uc2lzdGVuY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrSW50ZXJmYWNlQ29uZmlndXJhdGlvblByb3BlcnRpZXMge1xuICByZWFkb25seSBwcmltYXJ5PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW5hYmxlQWNjZWxlcmF0ZWROZXR3b3JraW5nPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW5hYmxlSVBGb3J3YXJkaW5nPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbmV0d29ya1NlY3VyaXR5R3JvdXA/OiBOZXR3b3JrU2VjdXJpdHlHcm91cFJlZmVyZW5jZTtcbiAgcmVhZG9ubHkgaXBDb25maWd1cmF0aW9uczogSVBDb25maWd1cmF0aW9uW107XG4gIHJlYWRvbmx5IGRuc1NldHRpbmdzPzogTmV0d29ya0ludGVyZmFjZURuc1NldHRpbmdzO1xufVxuXG4vKipcbiAqIE5ldHdvcmsgaW50ZXJmYWNlIGNvbmZpZ3VyYXRpb24gZm9yIFZNU1NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrSW50ZXJmYWNlQ29uZmlndXJhdGlvbiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IE5ldHdvcmtJbnRlcmZhY2VDb25maWd1cmF0aW9uUHJvcGVydGllcztcbn1cblxuLyoqXG4gKiBIZWFsdGggcHJvYmUgcmVmZXJlbmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVhbHRoUHJvYmVSZWZlcmVuY2Uge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE5ldHdvcmsgcHJvZmlsZSBmb3IgVk1TUyAoZGlmZmVyZW50IGZyb20gVk0pXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbE1hY2hpbmVTY2FsZVNldE5ldHdvcmtQcm9maWxlIHtcbiAgcmVhZG9ubHkgbmV0d29ya0ludGVyZmFjZUNvbmZpZ3VyYXRpb25zPzogTmV0d29ya0ludGVyZmFjZUNvbmZpZ3VyYXRpb25bXTtcbiAgcmVhZG9ubHkgaGVhbHRoUHJvYmU/OiBIZWFsdGhQcm9iZVJlZmVyZW5jZTtcbiAgLyoqXG4gICAqIFRoZSBBUEkgdmVyc2lvbiB0byB1c2UgZm9yIG5ldHdvcmsgaW50ZXJmYWNlIGNvbmZpZ3VyYXRpb25zXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgYXV0b21hdGljYWxseSBzZXQgdG8gdGhlIGxhdGVzdCBOZXR3b3JrIEludGVyZmFjZSBBUEkgdmVyc2lvblxuICAgKiB3aGVuIG9yY2hlc3RyYXRpb25Nb2RlIGlzIFwiRmxleGlibGVcIiBhbmQgbmV0d29ya0ludGVyZmFjZUNvbmZpZ3VyYXRpb25zIGFyZSBzcGVjaWZpZWQuXG4gICAqXG4gICAqIFlvdSBjYW4gZXhwbGljaXRseSBwcm92aWRlIGEgdmVyc2lvbiBpZiB5b3UgbmVlZCB0byBwaW4gdG8gYSBzcGVjaWZpYyBBUEkgdmVyc2lvbi5cbiAgICpcbiAgICogQGV4YW1wbGUgXCIyMDI0LTEwLTAxXCJcbiAgICogQGRlZmF1bHRWYWx1ZSBMYXRlc3QgTmV0d29yayBJbnRlcmZhY2UgQVBJIHZlcnNpb24gKGF1dG8tcmVzb2x2ZWQpXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrQXBpVmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBFeHRlbnNpb24gcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZNRXh0ZW5zaW9uUHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IHB1Ymxpc2hlcjogc3RyaW5nO1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR5cGVIYW5kbGVyVmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBhdXRvVXBncmFkZU1pbm9yVmVyc2lvbj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHNldHRpbmdzPzogYW55O1xuICByZWFkb25seSBwcm90ZWN0ZWRTZXR0aW5ncz86IGFueTtcbn1cblxuLyoqXG4gKiBWTSBleHRlbnNpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWTUV4dGVuc2lvbiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IFZNRXh0ZW5zaW9uUHJvcGVydGllcztcbn1cblxuLyoqXG4gKiBFeHRlbnNpb24gcHJvZmlsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvblByb2ZpbGUge1xuICByZWFkb25seSBleHRlbnNpb25zPzogVk1FeHRlbnNpb25bXTtcbn1cblxuLyoqXG4gKiBUZXJtaW5hdGUgbm90aWZpY2F0aW9uIHByb2ZpbGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXJtaW5hdGVOb3RpZmljYXRpb25Qcm9maWxlIHtcbiAgcmVhZG9ubHkgbm90QmVmb3JlVGltZW91dD86IHN0cmluZztcbiAgcmVhZG9ubHkgZW5hYmxlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTY2hlZHVsZWQgZXZlbnRzIHByb2ZpbGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZWRFdmVudHNQcm9maWxlIHtcbiAgcmVhZG9ubHkgdGVybWluYXRlTm90aWZpY2F0aW9uUHJvZmlsZT86IFRlcm1pbmF0ZU5vdGlmaWNhdGlvblByb2ZpbGU7XG59XG5cbi8qKlxuICogT1MgUHJvZmlsZSBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFxuICogVk1TUyB1c2VzIGNvbXB1dGVyTmFtZVByZWZpeCBpbnN0ZWFkIG9mIGNvbXB1dGVyTmFtZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRPU1Byb2ZpbGUge1xuICByZWFkb25seSBjb21wdXRlck5hbWVQcmVmaXg/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFkbWluVXNlcm5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFkbWluUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGN1c3RvbURhdGE/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdpbmRvd3NDb25maWd1cmF0aW9uPzogVmlydHVhbE1hY2hpbmVXaW5kb3dzQ29uZmlndXJhdGlvbjtcbiAgcmVhZG9ubHkgbGludXhDb25maWd1cmF0aW9uPzogVmlydHVhbE1hY2hpbmVMaW51eENvbmZpZ3VyYXRpb247XG4gIHJlYWRvbmx5IHNlY3JldHM/OiBhbnlbXTtcbiAgcmVhZG9ubHkgYWxsb3dFeHRlbnNpb25PcGVyYXRpb25zPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcmVxdWlyZUd1ZXN0UHJvdmlzaW9uU2lnbmFsPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBWTSBwcm9maWxlIGZvciB0aGUgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFxuICogV3JhcHMgVk0gY29uZmlndXJhdGlvbiBhbmQgcmV1c2VzIFZNIGludGVyZmFjZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0Vk1Qcm9maWxlIHtcbiAgcmVhZG9ubHkgb3NQcm9maWxlPzogVmlydHVhbE1hY2hpbmVTY2FsZVNldE9TUHJvZmlsZTtcbiAgcmVhZG9ubHkgc3RvcmFnZVByb2ZpbGU/OiBWaXJ0dWFsTWFjaGluZVN0b3JhZ2VQcm9maWxlO1xuICByZWFkb25seSBuZXR3b3JrUHJvZmlsZT86IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXROZXR3b3JrUHJvZmlsZTtcbiAgcmVhZG9ubHkgc2VjdXJpdHlQcm9maWxlPzogVmlydHVhbE1hY2hpbmVTZWN1cml0eVByb2ZpbGU7XG4gIHJlYWRvbmx5IGRpYWdub3N0aWNzUHJvZmlsZT86IFZpcnR1YWxNYWNoaW5lRGlhZ25vc3RpY3NQcm9maWxlO1xuICByZWFkb25seSBleHRlbnNpb25Qcm9maWxlPzogRXh0ZW5zaW9uUHJvZmlsZTtcbiAgcmVhZG9ubHkgbGljZW5zZVR5cGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByaW9yaXR5Pzogc3RyaW5nO1xuICByZWFkb25seSBldmljdGlvblBvbGljeT86IHN0cmluZztcbiAgcmVhZG9ubHkgYmlsbGluZ1Byb2ZpbGU/OiBWaXJ0dWFsTWFjaGluZUJpbGxpbmdQcm9maWxlO1xuICByZWFkb25seSBzY2hlZHVsZWRFdmVudHNQcm9maWxlPzogU2NoZWR1bGVkRXZlbnRzUHJvZmlsZTtcbn1cblxuLyoqXG4gKiBBdXRvbWF0aWMgcmVwYWlycyBwb2xpY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvbWF0aWNSZXBhaXJzUG9saWN5IHtcbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGdyYWNlUGVyaW9kPzogc3RyaW5nO1xuICByZWFkb25seSByZXBhaXJBY3Rpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogU2NhbGUtaW4gcG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbE1hY2hpbmVTY2FsZVNldFNjYWxlSW5Qb2xpY3kge1xuICByZWFkb25seSBydWxlcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBmb3JjZURlbGV0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcmNoZXN0cmF0aW9uIG1vZGUgdHlwZVxuICovXG5leHBvcnQgdHlwZSBPcmNoZXN0cmF0aW9uTW9kZSA9IFwiVW5pZm9ybVwiIHwgXCJGbGV4aWJsZVwiO1xuXG4vKipcbiAqIFNjYWxpbmcgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRTY2FsaW5nQ29uZmlndXJhdGlvbiB7XG4gIHJlYWRvbmx5IG92ZXJwcm92aXNpb24/OiBib29sZWFuO1xuICByZWFkb25seSBkb05vdFJ1bkV4dGVuc2lvbnNPbk92ZXJwcm92aXNpb25lZFZNcz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHNpbmdsZVBsYWNlbWVudEdyb3VwPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgem9uZUJhbGFuY2U/OiBib29sZWFuO1xuICByZWFkb25seSBwbGF0Zm9ybUZhdWx0RG9tYWluQ291bnQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0IG1vbml0b3JpbmdcbiAqXG4gKiBUaGlzIGludGVyZmFjZSBwcm92aWRlcyBvcHRpb25zIGZvciBjb25maWd1cmluZyBtb25pdG9yaW5nIGFsZXJ0cyBhbmQgZGlhZ25vc3RpY1xuICogc2V0dGluZ3MgZm9yIFZNU1MgcmVzb3VyY2VzLiBBbGwgcHJvcGVydGllcyBhcmUgSlNJSS1jb21wbGlhbnQgZm9yIG11bHRpLWxhbmd1YWdlIHN1cHBvcnQuXG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWbXNzTW9uaXRvcmluZ09wdGlvbnMge1xuICAvKipcbiAgICogQ1BVIHVzYWdlIHRocmVzaG9sZCBwZXJjZW50YWdlIGZvciB0cmlnZ2VyaW5nIGFsZXJ0c1xuICAgKlxuICAgKiBWTVNTIHVzZXMgYSBsb3dlciBkZWZhdWx0IHRocmVzaG9sZCAoNzUlKSBjb21wYXJlZCB0byBzaW5nbGUgVk1zICg4MCUpXG4gICAqIHRvIGFsbG93IGhlYWRyb29tIGZvciBzY2FsaW5nIG9wZXJhdGlvbnMgYmVmb3JlIHJlYWNoaW5nIHNhdHVyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IDc1XG4gICAqL1xuICByZWFkb25seSBjcHVUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEF2YWlsYWJsZSBtZW1vcnkgdGhyZXNob2xkIGluIGJ5dGVzIGZvciB0cmlnZ2VyaW5nIGFsZXJ0c1xuICAgKlxuICAgKiBXaGVuIGF2YWlsYWJsZSBtZW1vcnkgZHJvcHMgYmVsb3cgdGhpcyB0aHJlc2hvbGQsIGFuIGFsZXJ0IHdpbGwgYmUgdHJpZ2dlcmVkLlxuICAgKiBEZWZhdWx0IGlzIDFHQiAoMTA3Mzc0MTgyNCBieXRlcykuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwNzM3NDE4MjRcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeVRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogRGlzayBxdWV1ZSBkZXB0aCB0aHJlc2hvbGQgZm9yIHRyaWdnZXJpbmcgYWxlcnRzXG4gICAqXG4gICAqIEhpZ2ggZGlzayBxdWV1ZSBkZXB0aCBjYW4gaW5kaWNhdGUgZGlzayBwZXJmb3JtYW5jZSBib3R0bGVuZWNrcy5cbiAgICpcbiAgICogQGRlZmF1bHQgMzJcbiAgICovXG4gIHJlYWRvbmx5IGRpc2tRdWV1ZVRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgQ1BVIHVzYWdlIGFsZXJ0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUNwdUFsZXJ0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgbWVtb3J5IHVzYWdlIGFsZXJ0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZU1lbW9yeUFsZXJ0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgZGlzayBxdWV1ZSBkZXB0aCBhbGVydFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVEaXNrUXVldWVBbGVydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIFZNU1MgZGVsZXRpb24gYWN0aXZpdHkgbG9nIGFsZXJ0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZURlbGV0aW9uQWxlcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXZlcml0eSBsZXZlbCBmb3IgQ1BVIHVzYWdlIGFsZXJ0c1xuICAgKlxuICAgKiAtIDA6IENyaXRpY2FsXG4gICAqIC0gMTogRXJyb3JcbiAgICogLSAyOiBXYXJuaW5nXG4gICAqIC0gMzogSW5mb3JtYXRpb25hbFxuICAgKiAtIDQ6IFZlcmJvc2VcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgY3B1QWxlcnRTZXZlcml0eT86IDAgfCAxIHwgMiB8IDMgfCA0O1xuXG4gIC8qKlxuICAgKiBTZXZlcml0eSBsZXZlbCBmb3IgbWVtb3J5IHVzYWdlIGFsZXJ0c1xuICAgKlxuICAgKiAtIDA6IENyaXRpY2FsXG4gICAqIC0gMTogRXJyb3JcbiAgICogLSAyOiBXYXJuaW5nXG4gICAqIC0gMzogSW5mb3JtYXRpb25hbFxuICAgKiAtIDQ6IFZlcmJvc2VcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5QWxlcnRTZXZlcml0eT86IDAgfCAxIHwgMiB8IDMgfCA0O1xuXG4gIC8qKlxuICAgKiBTZXZlcml0eSBsZXZlbCBmb3IgZGlzayBxdWV1ZSBkZXB0aCBhbGVydHNcbiAgICpcbiAgICogLSAwOiBDcml0aWNhbFxuICAgKiAtIDE6IEVycm9yXG4gICAqIC0gMjogV2FybmluZ1xuICAgKiAtIDM6IEluZm9ybWF0aW9uYWxcbiAgICogLSA0OiBWZXJib3NlXG4gICAqXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IGRpc2tRdWV1ZUFsZXJ0U2V2ZXJpdHk/OiAwIHwgMSB8IDIgfCAzIHwgNDtcbn1cblxuLyoqXG4gKiBQcm94aW1pdHkgcGxhY2VtZW50IGdyb3VwIHJlZmVyZW5jZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3hpbWl0eVBsYWNlbWVudEdyb3VwUmVmZXJlbmNlIHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBIb3N0IGdyb3VwIHJlZmVyZW5jZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RHcm91cFJlZmVyZW5jZSB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQWRkaXRpb25hbCBjYXBhYmlsaXRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRpdGlvbmFsQ2FwYWJpbGl0aWVzIHtcbiAgcmVhZG9ubHkgdWx0cmFTU0RFbmFibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRQcm9wcyB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkPzogc3RyaW5nO1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcmVhZG9ubHkgYXBpVmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgc2t1OiBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0U2t1O1xuICByZWFkb25seSBpZGVudGl0eT86IFZpcnR1YWxNYWNoaW5lSWRlbnRpdHk7XG4gIHJlYWRvbmx5IHpvbmVzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHBsYW4/OiBWaXJ0dWFsTWFjaGluZVBsYW47XG4gIHJlYWRvbmx5IHVwZ3JhZGVQb2xpY3k/OiBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0VXBncmFkZVBvbGljeTtcbiAgcmVhZG9ubHkgdmlydHVhbE1hY2hpbmVQcm9maWxlPzogVmlydHVhbE1hY2hpbmVTY2FsZVNldFZNUHJvZmlsZTtcbiAgcmVhZG9ubHkgb3JjaGVzdHJhdGlvbk1vZGU/OiBPcmNoZXN0cmF0aW9uTW9kZTtcbiAgcmVhZG9ubHkgb3ZlcnByb3Zpc2lvbj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRvTm90UnVuRXh0ZW5zaW9uc09uT3ZlcnByb3Zpc2lvbmVkVk1zPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc2luZ2xlUGxhY2VtZW50R3JvdXA/OiBib29sZWFuO1xuICByZWFkb25seSB6b25lQmFsYW5jZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHBsYXRmb3JtRmF1bHREb21haW5Db3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgYXV0b21hdGljUmVwYWlyc1BvbGljeT86IEF1dG9tYXRpY1JlcGFpcnNQb2xpY3k7XG4gIHJlYWRvbmx5IHNjYWxlSW5Qb2xpY3k/OiBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0U2NhbGVJblBvbGljeTtcbiAgcmVhZG9ubHkgcHJveGltaXR5UGxhY2VtZW50R3JvdXA/OiBQcm94aW1pdHlQbGFjZW1lbnRHcm91cFJlZmVyZW5jZTtcbiAgcmVhZG9ubHkgaG9zdEdyb3VwPzogSG9zdEdyb3VwUmVmZXJlbmNlO1xuICByZWFkb25seSBhZGRpdGlvbmFsQ2FwYWJpbGl0aWVzPzogQWRkaXRpb25hbENhcGFiaWxpdGllcztcbiAgcmVhZG9ubHkgbW9uaXRvcmluZz86IGFueTtcbiAgcmVhZG9ubHkgaWdub3JlQ2hhbmdlcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBlbmFibGVNaWdyYXRpb25BbmFseXNpcz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGVuYWJsZVZhbGlkYXRpb24/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVUcmFuc2Zvcm1hdGlvbj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQm9keSBwcm9wZXJ0aWVzIGZvciBWTVNTXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbE1hY2hpbmVTY2FsZVNldEJvZHlQcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgdXBncmFkZVBvbGljeT86IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRVcGdyYWRlUG9saWN5O1xuICByZWFkb25seSB2aXJ0dWFsTWFjaGluZVByb2ZpbGU/OiBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0Vk1Qcm9maWxlO1xuICByZWFkb25seSBvcmNoZXN0cmF0aW9uTW9kZT86IE9yY2hlc3RyYXRpb25Nb2RlO1xuICByZWFkb25seSBvdmVycHJvdmlzaW9uPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZG9Ob3RSdW5FeHRlbnNpb25zT25PdmVycHJvdmlzaW9uZWRWTXM/OiBib29sZWFuO1xuICByZWFkb25seSBzaW5nbGVQbGFjZW1lbnRHcm91cD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHpvbmVCYWxhbmNlPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcGxhdGZvcm1GYXVsdERvbWFpbkNvdW50PzogbnVtYmVyO1xuICByZWFkb25seSBhdXRvbWF0aWNSZXBhaXJzUG9saWN5PzogQXV0b21hdGljUmVwYWlyc1BvbGljeTtcbiAgcmVhZG9ubHkgc2NhbGVJblBvbGljeT86IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRTY2FsZUluUG9saWN5O1xuICByZWFkb25seSBwcm94aW1pdHlQbGFjZW1lbnRHcm91cD86IFByb3hpbWl0eVBsYWNlbWVudEdyb3VwUmVmZXJlbmNlO1xuICByZWFkb25seSBob3N0R3JvdXA/OiBIb3N0R3JvdXBSZWZlcmVuY2U7XG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxDYXBhYmlsaXRpZXM/OiBBZGRpdGlvbmFsQ2FwYWJpbGl0aWVzO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBib2R5IGludGVyZmFjZSBmb3IgQXp1cmUgVk1TUyBBUEkgY2FsbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0Qm9keSB7XG4gIHJlYWRvbmx5IGxvY2F0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICByZWFkb25seSBza3U6IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRTa3U7XG4gIHJlYWRvbmx5IGlkZW50aXR5PzogVmlydHVhbE1hY2hpbmVJZGVudGl0eTtcbiAgcmVhZG9ubHkgem9uZXM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgcGxhbj86IFZpcnR1YWxNYWNoaW5lUGxhbjtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogVmlydHVhbE1hY2hpbmVTY2FsZVNldEJvZHlQcm9wZXJ0aWVzO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ09NTU9OIFBST1BFUlRZIERFRklOSVRJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENvbW1vbiBwcm9wZXJ0eSBkZWZpbml0aW9ucyBzaGFyZWQgYWNyb3NzIGFsbCBWTVNTIHZlcnNpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBDT01NT05fVk1TU19QUk9QRVJUSUVTOiB7IFtrZXk6IHN0cmluZ106IFByb3BlcnR5RGVmaW5pdGlvbiB9ID0ge1xuICBsb2NhdGlvbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgQXp1cmUgcmVnaW9uIHdoZXJlIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0IHdpbGwgYmUgY3JlYXRlZFwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldHNcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXlthLXowLTldKyRcIixcbiAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBtdXN0IGNvbnRhaW4gb25seSBsb3dlcmNhc2UgbGV0dGVycyBhbmQgbnVtYmVyc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0YWdzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZToge30sXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIkEgZGljdGlvbmFyeSBvZiB0YWdzIHRvIGFwcGx5IHRvIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0XCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgICAgICBtZXNzYWdlOiBcIlRhZ3MgbXVzdCBiZSBhbiBvYmplY3Qgd2l0aCBzdHJpbmcga2V5LXZhbHVlIHBhaXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG5hbWU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0IG5hbWUgaXMgcmVxdWlyZWRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXlthLXpBLVowLTldKFthLXpBLVowLTktXXswLDYyfVthLXpBLVowLTldKT8kXCIsXG4gICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgXCJWTVNTIG5hbWUgbXVzdCBiZSAxLTY0IGNoYXJhY3RlcnMsIHN0YXJ0IGFuZCBlbmQgd2l0aCBhbHBoYW51bWVyaWMsIGFuZCBjYW4gY29udGFpbiBoeXBoZW5zXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHNrdToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBTS1UgY29uZmlndXJhdGlvbiBmb3IgdGhlIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiU0tVIGlzIHJlcXVpcmVkIGZvciBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0c1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBpZGVudGl0eToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRcIixcbiAgfSxcbiAgem9uZXM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJBdmFpbGFiaWxpdHkgem9uZXMgZm9yIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0XCIsXG4gIH0sXG4gIHBsYW46IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiUGxhbiBpbmZvcm1hdGlvbiBmb3IgbWFya2V0cGxhY2UgaW1hZ2VzXCIsXG4gIH0sXG4gIHVwZ3JhZGVQb2xpY3k6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIHVwZ3JhZGUgcG9saWN5IGZvciB0aGUgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFwiLFxuICB9LFxuICB2aXJ0dWFsTWFjaGluZVByb2ZpbGU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIHZpcnR1YWwgbWFjaGluZSBwcm9maWxlIGZvciB0aGUgc2NhbGUgc2V0XCIsXG4gIH0sXG4gIG9yY2hlc3RyYXRpb25Nb2RlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgb3JjaGVzdHJhdGlvbiBtb2RlIGZvciB0aGUgc2NhbGUgc2V0IChVbmlmb3JtIG9yIEZsZXhpYmxlKVwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTogXCJeKFVuaWZvcm18RmxleGlibGUpJFwiLFxuICAgICAgICBtZXNzYWdlOiBcIk9yY2hlc3RyYXRpb24gbW9kZSBtdXN0IGJlICdVbmlmb3JtJyBvciAnRmxleGlibGUnXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG92ZXJwcm92aXNpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgdG8gb3ZlcnByb3Zpc2lvbiBWTXMgaW4gdGhlIHNjYWxlIHNldFwiLFxuICB9LFxuICBkb05vdFJ1bkV4dGVuc2lvbnNPbk92ZXJwcm92aXNpb25lZFZNczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiV2hldGhlciB0byBza2lwIGV4dGVuc2lvbnMgb24gb3ZlcnByb3Zpc2lvbmVkIFZNc1wiLFxuICB9LFxuICBzaW5nbGVQbGFjZW1lbnRHcm91cDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiV2hldGhlciB0byB1c2UgYSBzaW5nbGUgcGxhY2VtZW50IGdyb3VwXCIsXG4gIH0sXG4gIHpvbmVCYWxhbmNlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIHRvIGJhbGFuY2UgVk1zIGFjcm9zcyB6b25lc1wiLFxuICB9LFxuICBwbGF0Zm9ybUZhdWx0RG9tYWluQ291bnQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk5VTUJFUixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIG51bWJlciBvZiBmYXVsdCBkb21haW5zIHRvIHVzZVwiLFxuICB9LFxuICBhdXRvbWF0aWNSZXBhaXJzUG9saWN5OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBhdXRvbWF0aWMgcmVwYWlycyBwb2xpY3kgZm9yIHRoZSBzY2FsZSBzZXRcIixcbiAgfSxcbiAgc2NhbGVJblBvbGljeToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgc2NhbGUtaW4gcG9saWN5IGZvciB0aGUgc2NhbGUgc2V0XCIsXG4gIH0sXG4gIHByb3hpbWl0eVBsYWNlbWVudEdyb3VwOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlJlZmVyZW5jZSB0byBhIHByb3hpbWl0eSBwbGFjZW1lbnQgZ3JvdXBcIixcbiAgfSxcbiAgaG9zdEdyb3VwOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlJlZmVyZW5jZSB0byBhIGRlZGljYXRlZCBob3N0IGdyb3VwXCIsXG4gIH0sXG4gIGFkZGl0aW9uYWxDYXBhYmlsaXRpZXM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiQWRkaXRpb25hbCBjYXBhYmlsaXRpZXMgbGlrZSBVbHRyYSBTU0RcIixcbiAgfSxcbiAgaWdub3JlQ2hhbmdlczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIkFycmF5IG9mIHByb3BlcnR5IG5hbWVzIHRvIGlnbm9yZSBkdXJpbmcgdXBkYXRlc1wiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgICAgICBtZXNzYWdlOiBcIklnbm9yZUNoYW5nZXMgbXVzdCBiZSBhbiBhcnJheSBvZiBzdHJpbmdzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVSU0lPTi1TUEVDSUZJQyBTQ0hFTUFTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEFQSSBTY2hlbWEgZm9yIFZNU1MgdmVyc2lvbiAyMDI1LTAxLTAyXG4gKi9cbmV4cG9ydCBjb25zdCBWTVNTX1NDSEVNQV8yMDI1XzAxXzAyOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZVNjYWxlU2V0c1wiLFxuICB2ZXJzaW9uOiBcIjIwMjUtMDEtMDJcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9WTVNTX1BST1BFUlRJRVMsXG4gIH0sXG4gIHJlcXVpcmVkOiBbXCJsb2NhdGlvblwiLCBcIm5hbWVcIiwgXCJza3VcIl0sXG4gIG9wdGlvbmFsOiBbXG4gICAgXCJ0YWdzXCIsXG4gICAgXCJpZGVudGl0eVwiLFxuICAgIFwiem9uZXNcIixcbiAgICBcInBsYW5cIixcbiAgICBcInVwZ3JhZGVQb2xpY3lcIixcbiAgICBcInZpcnR1YWxNYWNoaW5lUHJvZmlsZVwiLFxuICAgIFwib3JjaGVzdHJhdGlvbk1vZGVcIixcbiAgICBcIm92ZXJwcm92aXNpb25cIixcbiAgICBcImRvTm90UnVuRXh0ZW5zaW9uc09uT3ZlcnByb3Zpc2lvbmVkVk1zXCIsXG4gICAgXCJzaW5nbGVQbGFjZW1lbnRHcm91cFwiLFxuICAgIFwiem9uZUJhbGFuY2VcIixcbiAgICBcInBsYXRmb3JtRmF1bHREb21haW5Db3VudFwiLFxuICAgIFwiYXV0b21hdGljUmVwYWlyc1BvbGljeVwiLFxuICAgIFwic2NhbGVJblBvbGljeVwiLFxuICAgIFwicHJveGltaXR5UGxhY2VtZW50R3JvdXBcIixcbiAgICBcImhvc3RHcm91cFwiLFxuICAgIFwiYWRkaXRpb25hbENhcGFiaWxpdGllc1wiLFxuICAgIFwiaWdub3JlQ2hhbmdlc1wiLFxuICBdLFxuICBkZXByZWNhdGVkOiBbXSxcbiAgdHJhbnNmb3JtYXRpb25SdWxlczoge30sXG4gIHZhbGlkYXRpb25SdWxlczogW1xuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcImxvY2F0aW9uXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcIm5hbWVcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTmFtZSBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJza3VcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiU0tVIGlzIHJlcXVpcmVkIGZvciBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBBUEkgU2NoZW1hIGZvciBWTVNTIHZlcnNpb24gMjAyNS0wMi0wMVxuICovXG5leHBvcnQgY29uc3QgVk1TU19TQ0hFTUFfMjAyNV8wMl8wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVTY2FsZVNldHNcIixcbiAgdmVyc2lvbjogXCIyMDI1LTAyLTAxXCIsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5DT01NT05fVk1TU19QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibG9jYXRpb25cIiwgXCJuYW1lXCIsIFwic2t1XCJdLFxuICBvcHRpb25hbDogW1xuICAgIFwidGFnc1wiLFxuICAgIFwiaWRlbnRpdHlcIixcbiAgICBcInpvbmVzXCIsXG4gICAgXCJwbGFuXCIsXG4gICAgXCJ1cGdyYWRlUG9saWN5XCIsXG4gICAgXCJ2aXJ0dWFsTWFjaGluZVByb2ZpbGVcIixcbiAgICBcIm9yY2hlc3RyYXRpb25Nb2RlXCIsXG4gICAgXCJvdmVycHJvdmlzaW9uXCIsXG4gICAgXCJkb05vdFJ1bkV4dGVuc2lvbnNPbk92ZXJwcm92aXNpb25lZFZNc1wiLFxuICAgIFwic2luZ2xlUGxhY2VtZW50R3JvdXBcIixcbiAgICBcInpvbmVCYWxhbmNlXCIsXG4gICAgXCJwbGF0Zm9ybUZhdWx0RG9tYWluQ291bnRcIixcbiAgICBcImF1dG9tYXRpY1JlcGFpcnNQb2xpY3lcIixcbiAgICBcInNjYWxlSW5Qb2xpY3lcIixcbiAgICBcInByb3hpbWl0eVBsYWNlbWVudEdyb3VwXCIsXG4gICAgXCJob3N0R3JvdXBcIixcbiAgICBcImFkZGl0aW9uYWxDYXBhYmlsaXRpZXNcIixcbiAgICBcImlnbm9yZUNoYW5nZXNcIixcbiAgXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJsb2NhdGlvblwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJuYW1lXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIk5hbWUgaXMgcmVxdWlyZWQgZm9yIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwic2t1XCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIlNLVSBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgVk1TUyB2ZXJzaW9uIDIwMjUtMDQtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IFZNU1NfU0NIRU1BXzIwMjVfMDRfMDE6IEFwaVNjaGVtYSA9IHtcbiAgcmVzb3VyY2VUeXBlOiBcIk1pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lU2NhbGVTZXRzXCIsXG4gIHZlcnNpb246IFwiMjAyNS0wNC0wMVwiLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLi4uQ09NTU9OX1ZNU1NfUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFtcImxvY2F0aW9uXCIsIFwibmFtZVwiLCBcInNrdVwiXSxcbiAgb3B0aW9uYWw6IFtcbiAgICBcInRhZ3NcIixcbiAgICBcImlkZW50aXR5XCIsXG4gICAgXCJ6b25lc1wiLFxuICAgIFwicGxhblwiLFxuICAgIFwidXBncmFkZVBvbGljeVwiLFxuICAgIFwidmlydHVhbE1hY2hpbmVQcm9maWxlXCIsXG4gICAgXCJvcmNoZXN0cmF0aW9uTW9kZVwiLFxuICAgIFwib3ZlcnByb3Zpc2lvblwiLFxuICAgIFwiZG9Ob3RSdW5FeHRlbnNpb25zT25PdmVycHJvdmlzaW9uZWRWTXNcIixcbiAgICBcInNpbmdsZVBsYWNlbWVudEdyb3VwXCIsXG4gICAgXCJ6b25lQmFsYW5jZVwiLFxuICAgIFwicGxhdGZvcm1GYXVsdERvbWFpbkNvdW50XCIsXG4gICAgXCJhdXRvbWF0aWNSZXBhaXJzUG9saWN5XCIsXG4gICAgXCJzY2FsZUluUG9saWN5XCIsXG4gICAgXCJwcm94aW1pdHlQbGFjZW1lbnRHcm91cFwiLFxuICAgIFwiaG9zdEdyb3VwXCIsXG4gICAgXCJhZGRpdGlvbmFsQ2FwYWJpbGl0aWVzXCIsXG4gICAgXCJpZ25vcmVDaGFuZ2VzXCIsXG4gIF0sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibG9jYXRpb25cIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibmFtZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkIGZvciBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcInNrdVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJTS1UgaXMgcmVxdWlyZWQgZm9yIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVSU0lPTiBDT05GSUdVUkFUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIFZNU1MgMjAyNS0wMS0wMlxuICovXG5leHBvcnQgY29uc3QgVk1TU19WRVJTSU9OXzIwMjVfMDFfMDI6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyNS0wMS0wMlwiLFxuICBzY2hlbWE6IFZNU1NfU0NIRU1BXzIwMjVfMDFfMDIsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjUtMDEtMDJcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3Mvdm1zcy9taWdyYXRpb24tMjAyNS0wMS0wMlwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcImFkZGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJJbml0aWFsIHJlbGVhc2Ugd2l0aCBjb21wcmVoZW5zaXZlIFZNU1MgZmVhdHVyZXNcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIFZNU1MgMjAyNS0wMi0wMVxuICovXG5leHBvcnQgY29uc3QgVk1TU19WRVJTSU9OXzIwMjVfMDJfMDE6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyNS0wMi0wMVwiLFxuICBzY2hlbWE6IFZNU1NfU0NIRU1BXzIwMjVfMDJfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjUtMDItMDFcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3Mvdm1zcy9taWdyYXRpb24tMjAyNS0wMi0wMVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcInVwZGF0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkVuaGFuY2VkIG9yY2hlc3RyYXRpb24gYW5kIHNjYWxpbmcgZmVhdHVyZXNcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIFZNU1MgMjAyNS0wNC0wMVxuICovXG5leHBvcnQgY29uc3QgVk1TU19WRVJTSU9OXzIwMjVfMDRfMDE6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyNS0wNC0wMVwiLFxuICBzY2hlbWE6IFZNU1NfU0NIRU1BXzIwMjVfMDRfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjUtMDQtMDFcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3Mvdm1zcy9taWdyYXRpb24tMjAyNS0wNC0wMVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcInVwZGF0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkxhdGVzdCBBUEkgdmVyc2lvbiB3aXRoIG5ld2VzdCBmZWF0dXJlcyBhbmQgaW1wcm92ZW1lbnRzXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogQWxsIHN1cHBvcnRlZCBWTVNTIHZlcnNpb25zIGZvciByZWdpc3RyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IEFMTF9WTVNTX1ZFUlNJT05TOiBWZXJzaW9uQ29uZmlnW10gPSBbXG4gIFZNU1NfVkVSU0lPTl8yMDI1XzAxXzAyLFxuICBWTVNTX1ZFUlNJT05fMjAyNV8wMl8wMSxcbiAgVk1TU19WRVJTSU9OXzIwMjVfMDRfMDEsXG5dO1xuXG4vKipcbiAqIFJlc291cmNlIHR5cGUgY29uc3RhbnRcbiAqL1xuZXhwb3J0IGNvbnN0IFZNU1NfVFlQRSA9IFwiTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVTY2FsZVNldHNcIjtcbiJdfQ==
476
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm1zcy1zY2hlbWFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXZtc3MvbGliL3Ztc3Mtc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQW1CSCwyR0FPNEU7QUFrbkI1RSxnRkFBZ0Y7QUFDaEYsOEJBQThCO0FBQzlCLGdGQUFnRjtBQUVoRjs7R0FFRztBQUNVLFFBQUEsc0JBQXNCLEdBQTBDO0lBQzNFLFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQ1Qsc0VBQXNFO1FBQ3hFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO2dCQUNyQyxPQUFPLEVBQUUscURBQXFEO2FBQy9EO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLGFBQWE7Z0JBQzFDLEtBQUssRUFBRSxhQUFhO2dCQUNwQixPQUFPLEVBQUUsMERBQTBEO2FBQ3BFO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixZQUFZLEVBQUUsRUFBRTtRQUNoQixXQUFXLEVBQ1QsZ0VBQWdFO1FBQ2xFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxVQUFVO2dCQUN2QyxLQUFLLEVBQUUsaUNBQVksQ0FBQyxNQUFNO2dCQUMxQixPQUFPLEVBQUUsb0RBQW9EO2FBQzlEO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUsMkNBQTJDO1FBQ3hELFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFR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QUFpQixHQUFvQjtJQUNoRCwrQkFBdUI7SUFDdkIsK0JBQXVCO0lBQ3ZCLCtCQUF1QjtDQUN4QixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLFNBQVMsR0FBRywyQ0FBMkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQVBJIHNjaGVtYXMgZm9yIEF6dXJlIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRzIChWTVNTKSBhY3Jvc3MgYWxsIHN1cHBvcnRlZCB2ZXJzaW9uc1xuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBjb21wbGV0ZSBBUEkgc2NoZW1hcyBmb3IgTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVTY2FsZVNldHNcbiAqIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy4gVGhlIHNjaGVtYXMgYXJlIHVzZWQgYnkgdGhlIEF6YXBpUmVzb3VyY2VcbiAqIGZyYW1ld29yayBmb3IgdmFsaWRhdGlvbiwgdHJhbnNmb3JtYXRpb24sIGFuZCB2ZXJzaW9uIG1hbmFnZW1lbnQuXG4gKlxuICogQVBJIFZlcnNpb25zIHZlcmlmaWVkIGZyb20gQXp1cmUgUkVTVCBBUEkgU3BlY2lmaWNhdGlvbnM6XG4gKiAtIDIwMjUtMDEtMDI6IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9henVyZS1yZXN0LWFwaS1zcGVjcy8uLi4vMjAyNS0wMS0wMi92aXJ0dWFsTWFjaGluZVNjYWxlU2V0cy5qc29uXG4gKiAtIDIwMjUtMDItMDE6IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9henVyZS1yZXN0LWFwaS1zcGVjcy8uLi4vMjAyNS0wMi0wMS92aXJ0dWFsTWFjaGluZVNjYWxlU2V0cy5qc29uXG4gKiAtIDIwMjUtMDQtMDE6IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9henVyZS1yZXN0LWFwaS1zcGVjcy8uLi4vMjAyNS0wNC0wMS92aXJ0dWFsTWFjaGluZVNjYWxlU2V0cy5qc29uXG4gKi9cblxuaW1wb3J0IHsgTmV0d29ya0ludGVyZmFjZURuc1NldHRpbmdzIH0gZnJvbSBcIi4uLy4uL2F6dXJlLW5ldHdvcmtpbnRlcmZhY2UvbGliL25ldHdvcmstaW50ZXJmYWNlXCI7XG5pbXBvcnQge1xuICBWaXJ0dWFsTWFjaGluZUhhcmR3YXJlUHJvZmlsZSxcbiAgVmlydHVhbE1hY2hpbmVTdG9yYWdlUHJvZmlsZSxcbiAgVmlydHVhbE1hY2hpbmVJZGVudGl0eSxcbiAgVmlydHVhbE1hY2hpbmVQbGFuLFxuICBWaXJ0dWFsTWFjaGluZURpYWdub3N0aWNzUHJvZmlsZSxcbiAgVmlydHVhbE1hY2hpbmVTZWN1cml0eVByb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lQmlsbGluZ1Byb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lSW1hZ2VSZWZlcmVuY2UsXG4gIFZpcnR1YWxNYWNoaW5lT1NEaXNrLFxuICBWaXJ0dWFsTWFjaGluZURhdGFEaXNrLFxuICBWaXJ0dWFsTWFjaGluZUxpbnV4Q29uZmlndXJhdGlvbixcbiAgVmlydHVhbE1hY2hpbmVXaW5kb3dzQ29uZmlndXJhdGlvbixcbiAgVmlydHVhbE1hY2hpbmVCb290RGlhZ25vc3RpY3MsXG4gIFZpcnR1YWxNYWNoaW5lVWVmaVNldHRpbmdzLFxufSBmcm9tIFwiLi4vLi4vYXp1cmUtdmlydHVhbG1hY2hpbmUvbGliL3ZpcnR1YWwtbWFjaGluZS1zY2hlbWFzXCI7XG5pbXBvcnQge1xuICBBcGlTY2hlbWEsXG4gIFByb3BlcnR5RGVmaW5pdGlvbixcbiAgUHJvcGVydHlUeXBlLFxuICBWYWxpZGF0aW9uUnVsZVR5cGUsXG4gIFZlcnNpb25Db25maWcsXG4gIFZlcnNpb25TdXBwb3J0TGV2ZWwsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLy8gSW1wb3J0IGFuZCByZXVzZSBWTSBpbnRlcmZhY2VzIGZvciBjb2RlIHJldXNlXG5cbi8vIFJlLWV4cG9ydCBWTSBpbnRlcmZhY2VzIGZvciBleHRlcm5hbCB1c2VcbmV4cG9ydCB0eXBlIHtcbiAgVmlydHVhbE1hY2hpbmVIYXJkd2FyZVByb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lU3RvcmFnZVByb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lSWRlbnRpdHksXG4gIFZpcnR1YWxNYWNoaW5lUGxhbixcbiAgVmlydHVhbE1hY2hpbmVEaWFnbm9zdGljc1Byb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lU2VjdXJpdHlQcm9maWxlLFxuICBWaXJ0dWFsTWFjaGluZUJpbGxpbmdQcm9maWxlLFxuICBWaXJ0dWFsTWFjaGluZUltYWdlUmVmZXJlbmNlLFxuICBWaXJ0dWFsTWFjaGluZU9TRGlzayxcbiAgVmlydHVhbE1hY2hpbmVEYXRhRGlzayxcbiAgVmlydHVhbE1hY2hpbmVMaW51eENvbmZpZ3VyYXRpb24sXG4gIFZpcnR1YWxNYWNoaW5lV2luZG93c0NvbmZpZ3VyYXRpb24sXG4gIFZpcnR1YWxNYWNoaW5lQm9vdERpYWdub3N0aWNzLFxuICBWaXJ0dWFsTWFjaGluZVVlZmlTZXR0aW5ncyxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUWVBFU0NSSVBUIElOVEVSRkFDRVMgRk9SIFZNU1MtU1BFQ0lGSUMgT0JKRUNUU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBTS1UgZm9yIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbE1hY2hpbmVTY2FsZVNldFNrdSB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdGllcj86IHN0cmluZztcbiAgcmVhZG9ubHkgY2FwYWNpdHk/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVXBncmFkZSBwb2xpY3kgbW9kZSB0eXBlXG4gKi9cbmV4cG9ydCB0eXBlIFVwZ3JhZGVQb2xpY3lNb2RlID0gXCJBdXRvbWF0aWNcIiB8IFwiTWFudWFsXCIgfCBcIlJvbGxpbmdcIjtcblxuLyoqXG4gKiBSb2xsaW5nIHVwZ3JhZGUgcG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9sbGluZ1VwZ3JhZGVQb2xpY3kge1xuICByZWFkb25seSBtYXhCYXRjaEluc3RhbmNlUGVyY2VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgbWF4VW5oZWFsdGh5SW5zdGFuY2VQZXJjZW50PzogbnVtYmVyO1xuICByZWFkb25seSBtYXhVbmhlYWx0aHlVcGdyYWRlZEluc3RhbmNlUGVyY2VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgcGF1c2VUaW1lQmV0d2VlbkJhdGNoZXM/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuYWJsZUNyb3NzWm9uZVVwZ3JhZGU/OiBib29sZWFuO1xuICByZWFkb25seSBwcmlvcml0aXplVW5oZWFsdGh5SW5zdGFuY2VzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBdXRvbWF0aWMgT1MgdXBncmFkZSBwb2xpY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvbWF0aWNPU1VwZ3JhZGVQb2xpY3kge1xuICByZWFkb25seSBlbmFibGVBdXRvbWF0aWNPU1VwZ3JhZGU/OiBib29sZWFuO1xuICByZWFkb25seSBkaXNhYmxlQXV0b21hdGljUm9sbGJhY2s/OiBib29sZWFuO1xuICByZWFkb25seSB1c2VSb2xsaW5nVXBncmFkZVBvbGljeT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVXBncmFkZSBwb2xpY3kgZm9yIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbE1hY2hpbmVTY2FsZVNldFVwZ3JhZGVQb2xpY3kge1xuICByZWFkb25seSBtb2RlPzogVXBncmFkZVBvbGljeU1vZGU7XG4gIHJlYWRvbmx5IHJvbGxpbmdVcGdyYWRlUG9saWN5PzogUm9sbGluZ1VwZ3JhZGVQb2xpY3k7XG4gIHJlYWRvbmx5IGF1dG9tYXRpY09TVXBncmFkZVBvbGljeT86IEF1dG9tYXRpY09TVXBncmFkZVBvbGljeTtcbn1cblxuLyoqXG4gKiBJUCBjb25maWd1cmF0aW9uIHN1Ym5ldCByZWZlcmVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUENvbmZpZ3VyYXRpb25TdWJuZXQge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEROUyBzZXR0aW5ncyBmb3IgcHVibGljIElQXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGljSVBEbnNTZXR0aW5ncyB7XG4gIHJlYWRvbmx5IGRvbWFpbk5hbWVMYWJlbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFB1YmxpYyBJUCB0YWcgZm9yIHJvdXRpbmcgcHJlZmVyZW5jZSBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGljSVBUYWcge1xuICByZWFkb25seSBpcFRhZ1R5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgdGFnOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHVibGljIElQIGFkZHJlc3MgU0tVIGZvciBWTVNTIHB1YmxpYyBJUCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVm1zc1B1YmxpY0lQQWRkcmVzc1NrdSB7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRpZXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHVibGljIElQIGFkZHJlc3MgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGljSVBBZGRyZXNzQ29uZmlndXJhdGlvblByb3BlcnRpZXMge1xuICByZWFkb25seSBpZGxlVGltZW91dEluTWludXRlcz86IG51bWJlcjtcbiAgcmVhZG9ubHkgZG5zU2V0dGluZ3M/OiBQdWJsaWNJUERuc1NldHRpbmdzO1xuICByZWFkb25seSBpcFRhZ3M/OiBQdWJsaWNJUFRhZ1tdO1xuICByZWFkb25seSBwdWJsaWNJUFByZWZpeD86IFJlc291cmNlUmVmZXJlbmNlO1xuICByZWFkb25seSBwdWJsaWNJUEFkZHJlc3NWZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSBkZWxldGVPcHRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHVibGljIElQIGFkZHJlc3MgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFB1YmxpY0lQQWRkcmVzc0NvbmZpZ3VyYXRpb24ge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM/OiBQdWJsaWNJUEFkZHJlc3NDb25maWd1cmF0aW9uUHJvcGVydGllcztcbiAgcmVhZG9ubHkgc2t1PzogVm1zc1B1YmxpY0lQQWRkcmVzc1NrdTtcbn1cblxuLyoqXG4gKiBSZXNvdXJjZSByZWZlcmVuY2Ugd2l0aCBJRFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUmVmZXJlbmNlIHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBJUCBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUENvbmZpZ3VyYXRpb25Qcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgc3VibmV0PzogSVBDb25maWd1cmF0aW9uU3VibmV0O1xuICByZWFkb25seSBwcmltYXJ5PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcHVibGljSVBBZGRyZXNzQ29uZmlndXJhdGlvbj86IFB1YmxpY0lQQWRkcmVzc0NvbmZpZ3VyYXRpb247XG4gIHJlYWRvbmx5IHByaXZhdGVJUEFkZHJlc3NWZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSBhcHBsaWNhdGlvbkdhdGV3YXlCYWNrZW5kQWRkcmVzc1Bvb2xzPzogUmVzb3VyY2VSZWZlcmVuY2VbXTtcbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyQmFja2VuZEFkZHJlc3NQb29scz86IFJlc291cmNlUmVmZXJlbmNlW107XG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlckluYm91bmROYXRQb29scz86IFJlc291cmNlUmVmZXJlbmNlW107XG59XG5cbi8qKlxuICogTmV0d29yayBpbnRlcmZhY2UgSVAgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIElQQ29uZmlndXJhdGlvbiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IElQQ29uZmlndXJhdGlvblByb3BlcnRpZXM7XG59XG5cbi8qKlxuICogTmV0d29yayBzZWN1cml0eSBncm91cCByZWZlcmVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrU2VjdXJpdHlHcm91cFJlZmVyZW5jZSB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogTmV0d29yayBpbnRlcmZhY2UgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzXG4gKiBVc2VzIE5ldHdvcmtJbnRlcmZhY2VEbnNTZXR0aW5ncyBmcm9tIGF6dXJlLW5ldHdvcmtpbnRlcmZhY2UgZm9yIGNvbnNpc3RlbmN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZUNvbmZpZ3VyYXRpb25Qcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgcHJpbWFyeT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGVuYWJsZUFjY2VsZXJhdGVkTmV0d29ya2luZz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGVuYWJsZUlQRm9yd2FyZGluZz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG5ldHdvcmtTZWN1cml0eUdyb3VwPzogTmV0d29ya1NlY3VyaXR5R3JvdXBSZWZlcmVuY2U7XG4gIHJlYWRvbmx5IGlwQ29uZmlndXJhdGlvbnM6IElQQ29uZmlndXJhdGlvbltdO1xuICByZWFkb25seSBkbnNTZXR0aW5ncz86IE5ldHdvcmtJbnRlcmZhY2VEbnNTZXR0aW5ncztcbiAgcmVhZG9ubHkgZGVsZXRlT3B0aW9uPzogc3RyaW5nO1xuICByZWFkb25seSBkaXNhYmxlVGNwU3RhdGVUcmFja2luZz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGF1eGlsaWFyeU1vZGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGF1eGlsaWFyeVNrdT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBOZXR3b3JrIGludGVyZmFjZSBjb25maWd1cmF0aW9uIGZvciBWTVNTXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZUNvbmZpZ3VyYXRpb24ge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM/OiBOZXR3b3JrSW50ZXJmYWNlQ29uZmlndXJhdGlvblByb3BlcnRpZXM7XG59XG5cbi8qKlxuICogSGVhbHRoIHByb2JlIHJlZmVyZW5jZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhlYWx0aFByb2JlUmVmZXJlbmNlIHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBOZXR3b3JrIHByb2ZpbGUgZm9yIFZNU1MgKGRpZmZlcmVudCBmcm9tIFZNKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpcnR1YWxNYWNoaW5lU2NhbGVTZXROZXR3b3JrUHJvZmlsZSB7XG4gIHJlYWRvbmx5IG5ldHdvcmtJbnRlcmZhY2VDb25maWd1cmF0aW9ucz86IE5ldHdvcmtJbnRlcmZhY2VDb25maWd1cmF0aW9uW107XG4gIHJlYWRvbmx5IGhlYWx0aFByb2JlPzogSGVhbHRoUHJvYmVSZWZlcmVuY2U7XG4gIC8qKlxuICAgKiBUaGUgQVBJIHZlcnNpb24gdG8gdXNlIGZvciBuZXR3b3JrIGludGVyZmFjZSBjb25maWd1cmF0aW9uc1xuICAgKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIGF1dG9tYXRpY2FsbHkgc2V0IHRvIHRoZSBsYXRlc3QgTmV0d29yayBJbnRlcmZhY2UgQVBJIHZlcnNpb25cbiAgICogd2hlbiBvcmNoZXN0cmF0aW9uTW9kZSBpcyBcIkZsZXhpYmxlXCIgYW5kIG5ldHdvcmtJbnRlcmZhY2VDb25maWd1cmF0aW9ucyBhcmUgc3BlY2lmaWVkLlxuICAgKlxuICAgKiBZb3UgY2FuIGV4cGxpY2l0bHkgcHJvdmlkZSBhIHZlcnNpb24gaWYgeW91IG5lZWQgdG8gcGluIHRvIGEgc3BlY2lmaWMgQVBJIHZlcnNpb24uXG4gICAqXG4gICAqIEBleGFtcGxlIFwiMjAyNC0xMC0wMVwiXG4gICAqIEBkZWZhdWx0VmFsdWUgTGF0ZXN0IE5ldHdvcmsgSW50ZXJmYWNlIEFQSSB2ZXJzaW9uIChhdXRvLXJlc29sdmVkKVxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya0FwaVZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRXh0ZW5zaW9uIHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWTUV4dGVuc2lvblByb3BlcnRpZXMge1xuICByZWFkb25seSBwdWJsaXNoZXI6IHN0cmluZztcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICByZWFkb25seSB0eXBlSGFuZGxlclZlcnNpb246IHN0cmluZztcbiAgcmVhZG9ubHkgYXV0b1VwZ3JhZGVNaW5vclZlcnNpb24/OiBib29sZWFuO1xuICByZWFkb25seSBzZXR0aW5ncz86IGFueTtcbiAgcmVhZG9ubHkgcHJvdGVjdGVkU2V0dGluZ3M/OiBhbnk7XG4gIHJlYWRvbmx5IHByb3Zpc2lvbkFmdGVyRXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xuICByZWFkb25seSBlbmFibGVBdXRvbWF0aWNVcGdyYWRlPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc3VwcHJlc3NGYWlsdXJlcz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGZvcmNlVXBkYXRlVGFnPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFZNIGV4dGVuc2lvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZNRXh0ZW5zaW9uIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogVk1FeHRlbnNpb25Qcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIEV4dGVuc2lvbiBwcm9maWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uUHJvZmlsZSB7XG4gIHJlYWRvbmx5IGV4dGVuc2lvbnM/OiBWTUV4dGVuc2lvbltdO1xuICByZWFkb25seSBleHRlbnNpb25zVGltZUJ1ZGdldD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUZXJtaW5hdGUgbm90aWZpY2F0aW9uIHByb2ZpbGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXJtaW5hdGVOb3RpZmljYXRpb25Qcm9maWxlIHtcbiAgcmVhZG9ubHkgbm90QmVmb3JlVGltZW91dD86IHN0cmluZztcbiAgcmVhZG9ubHkgZW5hYmxlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTY2hlZHVsZWQgZXZlbnRzIHByb2ZpbGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZWRFdmVudHNQcm9maWxlIHtcbiAgcmVhZG9ubHkgdGVybWluYXRlTm90aWZpY2F0aW9uUHJvZmlsZT86IFRlcm1pbmF0ZU5vdGlmaWNhdGlvblByb2ZpbGU7XG4gIHJlYWRvbmx5IG9zSW1hZ2VOb3RpZmljYXRpb25Qcm9maWxlPzogT1NJbWFnZU5vdGlmaWNhdGlvblByb2ZpbGU7XG59XG5cbi8qKlxuICogT1MgaW1hZ2Ugbm90aWZpY2F0aW9uIHByb2ZpbGUgZm9yIHNjaGVkdWxlZCBldmVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPU0ltYWdlTm90aWZpY2F0aW9uUHJvZmlsZSB7XG4gIHJlYWRvbmx5IG5vdEJlZm9yZVRpbWVvdXQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuYWJsZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogR2FsbGVyeSBhcHBsaWNhdGlvbiByZWZlcmVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYWxsZXJ5QXBwbGljYXRpb24ge1xuICByZWFkb25seSBwYWNrYWdlUmVmZXJlbmNlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY29uZmlndXJhdGlvblJlZmVyZW5jZT86IHN0cmluZztcbiAgcmVhZG9ubHkgb3JkZXI/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHRhZ3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRyZWF0RmFpbHVyZUFzRGVwbG95bWVudEZhaWx1cmU/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVBdXRvbWF0aWNVcGdyYWRlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBcHBsaWNhdGlvbiBwcm9maWxlIGZvciBnYWxsZXJ5IGFwcGxpY2F0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uUHJvZmlsZSB7XG4gIHJlYWRvbmx5IGdhbGxlcnlBcHBsaWNhdGlvbnM/OiBHYWxsZXJ5QXBwbGljYXRpb25bXTtcbn1cblxuLyoqXG4gKiBDYXBhY2l0eSByZXNlcnZhdGlvbiBwcm9maWxlIHJlZmVyZW5jZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhcGFjaXR5UmVzZXJ2YXRpb25Qcm9maWxlIHtcbiAgcmVhZG9ubHkgY2FwYWNpdHlSZXNlcnZhdGlvbkdyb3VwPzogUmVzb3VyY2VSZWZlcmVuY2U7XG59XG5cbi8qKlxuICogSGFyZHdhcmUgcHJvZmlsZSBmb3IgVk0gc2l6ZSBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVm1zc0hhcmR3YXJlUHJvZmlsZSB7XG4gIHJlYWRvbmx5IHZtU2l6ZVByb3BlcnRpZXM/OiBWbVNpemVQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIFZNIHNpemUgcHJvcGVydGllcyBmb3IgY29uc3RyYWluZWQgdkNQVSBjb25maWd1cmF0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZtU2l6ZVByb3BlcnRpZXMge1xuICByZWFkb25seSB2Q1BVc0F2YWlsYWJsZT86IG51bWJlcjtcbiAgcmVhZG9ubHkgdkNQVXNQZXJDb3JlPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFNlcnZpY2UgYXJ0aWZhY3QgcmVmZXJlbmNlIGZvciBzaGFyZWQgaW1hZ2UgZ2FsbGVyeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VBcnRpZmFjdFJlZmVyZW5jZSB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT1MgUHJvZmlsZSBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFxuICogVk1TUyB1c2VzIGNvbXB1dGVyTmFtZVByZWZpeCBpbnN0ZWFkIG9mIGNvbXB1dGVyTmFtZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRPU1Byb2ZpbGUge1xuICByZWFkb25seSBjb21wdXRlck5hbWVQcmVmaXg/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFkbWluVXNlcm5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFkbWluUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGN1c3RvbURhdGE/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdpbmRvd3NDb25maWd1cmF0aW9uPzogVmlydHVhbE1hY2hpbmVXaW5kb3dzQ29uZmlndXJhdGlvbjtcbiAgcmVhZG9ubHkgbGludXhDb25maWd1cmF0aW9uPzogVmlydHVhbE1hY2hpbmVMaW51eENvbmZpZ3VyYXRpb247XG4gIHJlYWRvbmx5IHNlY3JldHM/OiBhbnlbXTtcbiAgcmVhZG9ubHkgYWxsb3dFeHRlbnNpb25PcGVyYXRpb25zPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcmVxdWlyZUd1ZXN0UHJvdmlzaW9uU2lnbmFsPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBWTSBwcm9maWxlIGZvciB0aGUgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFxuICogV3JhcHMgVk0gY29uZmlndXJhdGlvbiBhbmQgcmV1c2VzIFZNIGludGVyZmFjZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0Vk1Qcm9maWxlIHtcbiAgcmVhZG9ubHkgb3NQcm9maWxlPzogVmlydHVhbE1hY2hpbmVTY2FsZVNldE9TUHJvZmlsZTtcbiAgcmVhZG9ubHkgc3RvcmFnZVByb2ZpbGU/OiBWaXJ0dWFsTWFjaGluZVN0b3JhZ2VQcm9maWxlO1xuICByZWFkb25seSBuZXR3b3JrUHJvZmlsZT86IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXROZXR3b3JrUHJvZmlsZTtcbiAgcmVhZG9ubHkgc2VjdXJpdHlQcm9maWxlPzogVmlydHVhbE1hY2hpbmVTZWN1cml0eVByb2ZpbGU7XG4gIHJlYWRvbmx5IGRpYWdub3N0aWNzUHJvZmlsZT86IFZpcnR1YWxNYWNoaW5lRGlhZ25vc3RpY3NQcm9maWxlO1xuICByZWFkb25seSBleHRlbnNpb25Qcm9maWxlPzogRXh0ZW5zaW9uUHJvZmlsZTtcbiAgcmVhZG9ubHkgbGljZW5zZVR5cGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByaW9yaXR5Pzogc3RyaW5nO1xuICByZWFkb25seSBldmljdGlvblBvbGljeT86IHN0cmluZztcbiAgcmVhZG9ubHkgYmlsbGluZ1Byb2ZpbGU/OiBWaXJ0dWFsTWFjaGluZUJpbGxpbmdQcm9maWxlO1xuICByZWFkb25seSBzY2hlZHVsZWRFdmVudHNQcm9maWxlPzogU2NoZWR1bGVkRXZlbnRzUHJvZmlsZTtcbiAgcmVhZG9ubHkgdXNlckRhdGE/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwcGxpY2F0aW9uUHJvZmlsZT86IEFwcGxpY2F0aW9uUHJvZmlsZTtcbiAgcmVhZG9ubHkgY2FwYWNpdHlSZXNlcnZhdGlvbj86IENhcGFjaXR5UmVzZXJ2YXRpb25Qcm9maWxlO1xuICByZWFkb25seSBoYXJkd2FyZVByb2ZpbGU/OiBWbXNzSGFyZHdhcmVQcm9maWxlO1xuICByZWFkb25seSBzZXJ2aWNlQXJ0aWZhY3RSZWZlcmVuY2U/OiBTZXJ2aWNlQXJ0aWZhY3RSZWZlcmVuY2U7XG59XG5cbi8qKlxuICogQXV0b21hdGljIHJlcGFpcnMgcG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b21hdGljUmVwYWlyc1BvbGljeSB7XG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuICByZWFkb25seSBncmFjZVBlcmlvZD86IHN0cmluZztcbiAgcmVhZG9ubHkgcmVwYWlyQWN0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNjYWxlLWluIHBvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRTY2FsZUluUG9saWN5IHtcbiAgcmVhZG9ubHkgcnVsZXM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgZm9yY2VEZWxldGlvbj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3JjaGVzdHJhdGlvbiBtb2RlIHR5cGVcbiAqL1xuZXhwb3J0IHR5cGUgT3JjaGVzdHJhdGlvbk1vZGUgPSBcIlVuaWZvcm1cIiB8IFwiRmxleGlibGVcIjtcblxuLyoqXG4gKiBTY2FsaW5nIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0U2NhbGluZ0NvbmZpZ3VyYXRpb24ge1xuICByZWFkb25seSBvdmVycHJvdmlzaW9uPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZG9Ob3RSdW5FeHRlbnNpb25zT25PdmVycHJvdmlzaW9uZWRWTXM/OiBib29sZWFuO1xuICByZWFkb25seSBzaW5nbGVQbGFjZW1lbnRHcm91cD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHpvbmVCYWxhbmNlPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcGxhdGZvcm1GYXVsdERvbWFpbkNvdW50PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldCBtb25pdG9yaW5nXG4gKlxuICogVGhpcyBpbnRlcmZhY2UgcHJvdmlkZXMgb3B0aW9ucyBmb3IgY29uZmlndXJpbmcgbW9uaXRvcmluZyBhbGVydHMgYW5kIGRpYWdub3N0aWNcbiAqIHNldHRpbmdzIGZvciBWTVNTIHJlc291cmNlcy4gQWxsIHByb3BlcnRpZXMgYXJlIEpTSUktY29tcGxpYW50IGZvciBtdWx0aS1sYW5ndWFnZSBzdXBwb3J0LlxuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVm1zc01vbml0b3JpbmdPcHRpb25zIHtcbiAgLyoqXG4gICAqIENQVSB1c2FnZSB0aHJlc2hvbGQgcGVyY2VudGFnZSBmb3IgdHJpZ2dlcmluZyBhbGVydHNcbiAgICpcbiAgICogVk1TUyB1c2VzIGEgbG93ZXIgZGVmYXVsdCB0aHJlc2hvbGQgKDc1JSkgY29tcGFyZWQgdG8gc2luZ2xlIFZNcyAoODAlKVxuICAgKiB0byBhbGxvdyBoZWFkcm9vbSBmb3Igc2NhbGluZyBvcGVyYXRpb25zIGJlZm9yZSByZWFjaGluZyBzYXR1cmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCA3NVxuICAgKi9cbiAgcmVhZG9ubHkgY3B1VGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBdmFpbGFibGUgbWVtb3J5IHRocmVzaG9sZCBpbiBieXRlcyBmb3IgdHJpZ2dlcmluZyBhbGVydHNcbiAgICpcbiAgICogV2hlbiBhdmFpbGFibGUgbWVtb3J5IGRyb3BzIGJlbG93IHRoaXMgdGhyZXNob2xkLCBhbiBhbGVydCB3aWxsIGJlIHRyaWdnZXJlZC5cbiAgICogRGVmYXVsdCBpcyAxR0IgKDEwNzM3NDE4MjQgYnl0ZXMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxMDczNzQxODI0XG4gICAqL1xuICByZWFkb25seSBtZW1vcnlUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERpc2sgcXVldWUgZGVwdGggdGhyZXNob2xkIGZvciB0cmlnZ2VyaW5nIGFsZXJ0c1xuICAgKlxuICAgKiBIaWdoIGRpc2sgcXVldWUgZGVwdGggY2FuIGluZGljYXRlIGRpc2sgcGVyZm9ybWFuY2UgYm90dGxlbmVja3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IDMyXG4gICAqL1xuICByZWFkb25seSBkaXNrUXVldWVUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIENQVSB1c2FnZSBhbGVydFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVDcHVBbGVydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIG1lbW9yeSB1c2FnZSBhbGVydFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVNZW1vcnlBbGVydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIGRpc2sgcXVldWUgZGVwdGggYWxlcnRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlRGlza1F1ZXVlQWxlcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBWTVNTIGRlbGV0aW9uIGFjdGl2aXR5IGxvZyBhbGVydFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVEZWxldGlvbkFsZXJ0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V2ZXJpdHkgbGV2ZWwgZm9yIENQVSB1c2FnZSBhbGVydHNcbiAgICpcbiAgICogLSAwOiBDcml0aWNhbFxuICAgKiAtIDE6IEVycm9yXG4gICAqIC0gMjogV2FybmluZ1xuICAgKiAtIDM6IEluZm9ybWF0aW9uYWxcbiAgICogLSA0OiBWZXJib3NlXG4gICAqXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IGNwdUFsZXJ0U2V2ZXJpdHk/OiAwIHwgMSB8IDIgfCAzIHwgNDtcblxuICAvKipcbiAgICogU2V2ZXJpdHkgbGV2ZWwgZm9yIG1lbW9yeSB1c2FnZSBhbGVydHNcbiAgICpcbiAgICogLSAwOiBDcml0aWNhbFxuICAgKiAtIDE6IEVycm9yXG4gICAqIC0gMjogV2FybmluZ1xuICAgKiAtIDM6IEluZm9ybWF0aW9uYWxcbiAgICogLSA0OiBWZXJib3NlXG4gICAqXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeUFsZXJ0U2V2ZXJpdHk/OiAwIHwgMSB8IDIgfCAzIHwgNDtcblxuICAvKipcbiAgICogU2V2ZXJpdHkgbGV2ZWwgZm9yIGRpc2sgcXVldWUgZGVwdGggYWxlcnRzXG4gICAqXG4gICAqIC0gMDogQ3JpdGljYWxcbiAgICogLSAxOiBFcnJvclxuICAgKiAtIDI6IFdhcm5pbmdcbiAgICogLSAzOiBJbmZvcm1hdGlvbmFsXG4gICAqIC0gNDogVmVyYm9zZVxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSBkaXNrUXVldWVBbGVydFNldmVyaXR5PzogMCB8IDEgfCAyIHwgMyB8IDQ7XG59XG5cbi8qKlxuICogUHJveGltaXR5IHBsYWNlbWVudCBncm91cCByZWZlcmVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm94aW1pdHlQbGFjZW1lbnRHcm91cFJlZmVyZW5jZSB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSG9zdCBncm91cCByZWZlcmVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3N0R3JvdXBSZWZlcmVuY2Uge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkaXRpb25hbENhcGFiaWxpdGllcyB7XG4gIHJlYWRvbmx5IHVsdHJhU1NERW5hYmxlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGhpYmVybmF0aW9uRW5hYmxlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogU3BvdCByZXN0b3JlIHBvbGljeSBmb3IgcmVzdG9yaW5nIGV2aWN0ZWQgc3BvdCBpbnN0YW5jZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcG90UmVzdG9yZVBvbGljeSB7XG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuICByZWFkb25seSByZXN0b3JlVGltZW91dD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcmlvcml0eSBtaXggcG9saWN5IGZvciBtaXhpbmcgc3BvdCBhbmQgcmVndWxhciBWTXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmlvcml0eU1peFBvbGljeSB7XG4gIHJlYWRvbmx5IGJhc2VSZWd1bGFyUHJpb3JpdHlDb3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgcmVndWxhclByaW9yaXR5UGVyY2VudGFnZUFib3ZlQmFzZT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXNpbGllbmNlIFZNIGRlbGV0aW9uIHBvbGljeSBmb3Igem9uZSByZWJhbGFuY2luZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc2lsaWVuY2VWTURlbGV0aW9uUG9saWN5IHtcbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQXV0b21hdGljIHpvbmUgcmViYWxhbmNpbmcgcG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b21hdGljWm9uZVJlYmFsYW5jaW5nUG9saWN5IHtcbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHJlYmFsYW5jZVN0cmF0ZWd5Pzogc3RyaW5nO1xuICByZWFkb25seSByZWJhbGFuY2VCZWhhdmlvcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNpbGllbmN5IHBvbGljeSBmb3Igem9uZS1sZXZlbCBmYWlsdXJlIGhhbmRsaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzaWxpZW5jeVBvbGljeSB7XG4gIHJlYWRvbmx5IHJlc2lsaWVudFZNQ3JlYXRpb25Qb2xpY3k/OiBSZXNpbGllbmNlVk1EZWxldGlvblBvbGljeTtcbiAgcmVhZG9ubHkgcmVzaWxpZW50Vk1EZWxldGlvblBvbGljeT86IFJlc2lsaWVuY2VWTURlbGV0aW9uUG9saWN5O1xuICByZWFkb25seSBhdXRvbWF0aWNab25lUmViYWxhbmNpbmdQb2xpY3k/OiBBdXRvbWF0aWNab25lUmViYWxhbmNpbmdQb2xpY3k7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0UHJvcHMge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxvY2F0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXBJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHJlYWRvbmx5IGFwaVZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNrdTogVmlydHVhbE1hY2hpbmVTY2FsZVNldFNrdTtcbiAgcmVhZG9ubHkgaWRlbnRpdHk/OiBWaXJ0dWFsTWFjaGluZUlkZW50aXR5O1xuICByZWFkb25seSB6b25lcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBwbGFuPzogVmlydHVhbE1hY2hpbmVQbGFuO1xuICByZWFkb25seSB1cGdyYWRlUG9saWN5PzogVmlydHVhbE1hY2hpbmVTY2FsZVNldFVwZ3JhZGVQb2xpY3k7XG4gIHJlYWRvbmx5IHZpcnR1YWxNYWNoaW5lUHJvZmlsZT86IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRWTVByb2ZpbGU7XG4gIHJlYWRvbmx5IG9yY2hlc3RyYXRpb25Nb2RlPzogT3JjaGVzdHJhdGlvbk1vZGU7XG4gIHJlYWRvbmx5IG92ZXJwcm92aXNpb24/OiBib29sZWFuO1xuICByZWFkb25seSBkb05vdFJ1bkV4dGVuc2lvbnNPbk92ZXJwcm92aXNpb25lZFZNcz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHNpbmdsZVBsYWNlbWVudEdyb3VwPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgem9uZUJhbGFuY2U/OiBib29sZWFuO1xuICByZWFkb25seSBwbGF0Zm9ybUZhdWx0RG9tYWluQ291bnQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGF1dG9tYXRpY1JlcGFpcnNQb2xpY3k/OiBBdXRvbWF0aWNSZXBhaXJzUG9saWN5O1xuICByZWFkb25seSBzY2FsZUluUG9saWN5PzogVmlydHVhbE1hY2hpbmVTY2FsZVNldFNjYWxlSW5Qb2xpY3k7XG4gIHJlYWRvbmx5IHByb3hpbWl0eVBsYWNlbWVudEdyb3VwPzogUHJveGltaXR5UGxhY2VtZW50R3JvdXBSZWZlcmVuY2U7XG4gIHJlYWRvbmx5IGhvc3RHcm91cD86IEhvc3RHcm91cFJlZmVyZW5jZTtcbiAgcmVhZG9ubHkgYWRkaXRpb25hbENhcGFiaWxpdGllcz86IEFkZGl0aW9uYWxDYXBhYmlsaXRpZXM7XG4gIHJlYWRvbmx5IHNwb3RSZXN0b3JlUG9saWN5PzogU3BvdFJlc3RvcmVQb2xpY3k7XG4gIHJlYWRvbmx5IHByaW9yaXR5TWl4UG9saWN5PzogUHJpb3JpdHlNaXhQb2xpY3k7XG4gIHJlYWRvbmx5IHJlc2lsaWVuY3lQb2xpY3k/OiBSZXNpbGllbmN5UG9saWN5O1xuICByZWFkb25seSBjb25zdHJhaW5lZE1heGltdW1DYXBhY2l0eT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG1vbml0b3Jpbmc/OiBhbnk7XG4gIHJlYWRvbmx5IGlnbm9yZUNoYW5nZXM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgZW5hYmxlTWlncmF0aW9uQW5hbHlzaXM/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVWYWxpZGF0aW9uPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW5hYmxlVHJhbnNmb3JtYXRpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEJvZHkgcHJvcGVydGllcyBmb3IgVk1TU1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRCb2R5UHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IHVwZ3JhZGVQb2xpY3k/OiBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0VXBncmFkZVBvbGljeTtcbiAgcmVhZG9ubHkgdmlydHVhbE1hY2hpbmVQcm9maWxlPzogVmlydHVhbE1hY2hpbmVTY2FsZVNldFZNUHJvZmlsZTtcbiAgcmVhZG9ubHkgb3JjaGVzdHJhdGlvbk1vZGU/OiBPcmNoZXN0cmF0aW9uTW9kZTtcbiAgcmVhZG9ubHkgb3ZlcnByb3Zpc2lvbj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRvTm90UnVuRXh0ZW5zaW9uc09uT3ZlcnByb3Zpc2lvbmVkVk1zPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc2luZ2xlUGxhY2VtZW50R3JvdXA/OiBib29sZWFuO1xuICByZWFkb25seSB6b25lQmFsYW5jZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHBsYXRmb3JtRmF1bHREb21haW5Db3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgYXV0b21hdGljUmVwYWlyc1BvbGljeT86IEF1dG9tYXRpY1JlcGFpcnNQb2xpY3k7XG4gIHJlYWRvbmx5IHNjYWxlSW5Qb2xpY3k/OiBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0U2NhbGVJblBvbGljeTtcbiAgcmVhZG9ubHkgcHJveGltaXR5UGxhY2VtZW50R3JvdXA/OiBQcm94aW1pdHlQbGFjZW1lbnRHcm91cFJlZmVyZW5jZTtcbiAgcmVhZG9ubHkgaG9zdEdyb3VwPzogSG9zdEdyb3VwUmVmZXJlbmNlO1xuICByZWFkb25seSBhZGRpdGlvbmFsQ2FwYWJpbGl0aWVzPzogQWRkaXRpb25hbENhcGFiaWxpdGllcztcbiAgcmVhZG9ubHkgc3BvdFJlc3RvcmVQb2xpY3k/OiBTcG90UmVzdG9yZVBvbGljeTtcbiAgcmVhZG9ubHkgcHJpb3JpdHlNaXhQb2xpY3k/OiBQcmlvcml0eU1peFBvbGljeTtcbiAgcmVhZG9ubHkgcmVzaWxpZW5jeVBvbGljeT86IFJlc2lsaWVuY3lQb2xpY3k7XG4gIHJlYWRvbmx5IGNvbnN0cmFpbmVkTWF4aW11bUNhcGFjaXR5PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgYm9keSBpbnRlcmZhY2UgZm9yIEF6dXJlIFZNU1MgQVBJIGNhbGxzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbE1hY2hpbmVTY2FsZVNldEJvZHkge1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcmVhZG9ubHkgc2t1OiBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0U2t1O1xuICByZWFkb25seSBpZGVudGl0eT86IFZpcnR1YWxNYWNoaW5lSWRlbnRpdHk7XG4gIHJlYWRvbmx5IHpvbmVzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHBsYW4/OiBWaXJ0dWFsTWFjaGluZVBsYW47XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM6IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRCb2R5UHJvcGVydGllcztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTU1PTiBQUk9QRVJUWSBERUZJTklUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb21tb24gcHJvcGVydHkgZGVmaW5pdGlvbnMgc2hhcmVkIGFjcm9zcyBhbGwgVk1TUyB2ZXJzaW9uc1xuICovXG5leHBvcnQgY29uc3QgQ09NTU9OX1ZNU1NfUFJPUEVSVElFUzogeyBba2V5OiBzdHJpbmddOiBQcm9wZXJ0eURlZmluaXRpb24gfSA9IHtcbiAgbG9jYXRpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIEF6dXJlIHJlZ2lvbiB3aGVyZSB0aGUgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldCB3aWxsIGJlIGNyZWF0ZWRcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRzXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl5bYS16MC05XSskXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gbXVzdCBjb250YWluIG9ubHkgbG93ZXJjYXNlIGxldHRlcnMgYW5kIG51bWJlcnNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdGFnczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IHt9LFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJBIGRpY3Rpb25hcnkgb2YgdGFncyB0byBhcHBseSB0byB0aGUgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICAgICAgbWVzc2FnZTogXCJUYWdzIG11c3QgYmUgYW4gb2JqZWN0IHdpdGggc3RyaW5nIGtleS12YWx1ZSBwYWlyc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBuYW1lOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldCBuYW1lIGlzIHJlcXVpcmVkXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl5bYS16QS1aMC05XShbYS16QS1aMC05LV17MCw2Mn1bYS16QS1aMC05XSk/JFwiLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiVk1TUyBuYW1lIG11c3QgYmUgMS02NCBjaGFyYWN0ZXJzLCBzdGFydCBhbmQgZW5kIHdpdGggYWxwaGFudW1lcmljLCBhbmQgY2FuIGNvbnRhaW4gaHlwaGVuc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBza3U6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgU0tVIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0XCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIlNLVSBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldHNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgaWRlbnRpdHk6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0XCIsXG4gIH0sXG4gIHpvbmVzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5BUlJBWSxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiQXZhaWxhYmlsaXR5IHpvbmVzIGZvciB0aGUgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFwiLFxuICB9LFxuICBwbGFuOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlBsYW4gaW5mb3JtYXRpb24gZm9yIG1hcmtldHBsYWNlIGltYWdlc1wiLFxuICB9LFxuICB1cGdyYWRlUG9saWN5OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSB1cGdyYWRlIHBvbGljeSBmb3IgdGhlIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRcIixcbiAgfSxcbiAgdmlydHVhbE1hY2hpbmVQcm9maWxlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSB2aXJ0dWFsIG1hY2hpbmUgcHJvZmlsZSBmb3IgdGhlIHNjYWxlIHNldFwiLFxuICB9LFxuICBvcmNoZXN0cmF0aW9uTW9kZToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIG9yY2hlc3RyYXRpb24gbW9kZSBmb3IgdGhlIHNjYWxlIHNldCAoVW5pZm9ybSBvciBGbGV4aWJsZSlcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXihVbmlmb3JtfEZsZXhpYmxlKSRcIixcbiAgICAgICAgbWVzc2FnZTogXCJPcmNoZXN0cmF0aW9uIG1vZGUgbXVzdCBiZSAnVW5pZm9ybScgb3IgJ0ZsZXhpYmxlJ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBvdmVycHJvdmlzaW9uOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIHRvIG92ZXJwcm92aXNpb24gVk1zIGluIHRoZSBzY2FsZSBzZXRcIixcbiAgfSxcbiAgZG9Ob3RSdW5FeHRlbnNpb25zT25PdmVycHJvdmlzaW9uZWRWTXM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgdG8gc2tpcCBleHRlbnNpb25zIG9uIG92ZXJwcm92aXNpb25lZCBWTXNcIixcbiAgfSxcbiAgc2luZ2xlUGxhY2VtZW50R3JvdXA6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgdG8gdXNlIGEgc2luZ2xlIHBsYWNlbWVudCBncm91cFwiLFxuICB9LFxuICB6b25lQmFsYW5jZToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiV2hldGhlciB0byBiYWxhbmNlIFZNcyBhY3Jvc3Mgem9uZXNcIixcbiAgfSxcbiAgcGxhdGZvcm1GYXVsdERvbWFpbkNvdW50OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5OVU1CRVIsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBudW1iZXIgb2YgZmF1bHQgZG9tYWlucyB0byB1c2VcIixcbiAgfSxcbiAgYXV0b21hdGljUmVwYWlyc1BvbGljeToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgYXV0b21hdGljIHJlcGFpcnMgcG9saWN5IGZvciB0aGUgc2NhbGUgc2V0XCIsXG4gIH0sXG4gIHNjYWxlSW5Qb2xpY3k6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIHNjYWxlLWluIHBvbGljeSBmb3IgdGhlIHNjYWxlIHNldFwiLFxuICB9LFxuICBwcm94aW1pdHlQbGFjZW1lbnRHcm91cDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJSZWZlcmVuY2UgdG8gYSBwcm94aW1pdHkgcGxhY2VtZW50IGdyb3VwXCIsXG4gIH0sXG4gIGhvc3RHcm91cDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJSZWZlcmVuY2UgdG8gYSBkZWRpY2F0ZWQgaG9zdCBncm91cFwiLFxuICB9LFxuICBhZGRpdGlvbmFsQ2FwYWJpbGl0aWVzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIkFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzIGxpa2UgVWx0cmEgU1NEXCIsXG4gIH0sXG4gIHNwb3RSZXN0b3JlUG9saWN5OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlNwb3QgcmVzdG9yZSBwb2xpY3kgZm9yIHJlc3RvcmluZyBldmljdGVkIHNwb3QgaW5zdGFuY2VzXCIsXG4gIH0sXG4gIHByaW9yaXR5TWl4UG9saWN5OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlByaW9yaXR5IG1peCBwb2xpY3kgZm9yIG1peGluZyBzcG90IGFuZCByZWd1bGFyIFZNc1wiLFxuICB9LFxuICByZXNpbGllbmN5UG9saWN5OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlJlc2lsaWVuY3kgcG9saWN5IGZvciB6b25lLWxldmVsIGZhaWx1cmUgaGFuZGxpbmdcIixcbiAgfSxcbiAgY29uc3RyYWluZWRNYXhpbXVtQ2FwYWNpdHk6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJXaGV0aGVyIHRoZSBWTVNTIHNob3VsZCBiZSBjb25zdHJhaW5lZCB0byB0aGUgbWF4aW11bSBjYXBhY2l0eVwiLFxuICB9LFxuICBpZ25vcmVDaGFuZ2VzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5BUlJBWSxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiQXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgdG8gaWdub3JlIGR1cmluZyB1cGRhdGVzXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgICAgIG1lc3NhZ2U6IFwiSWdub3JlQ2hhbmdlcyBtdXN0IGJlIGFuIGFycmF5IG9mIHN0cmluZ3NcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OLVNQRUNJRklDIFNDSEVNQVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgVk1TUyB2ZXJzaW9uIDIwMjUtMDEtMDJcbiAqL1xuZXhwb3J0IGNvbnN0IFZNU1NfU0NIRU1BXzIwMjVfMDFfMDI6IEFwaVNjaGVtYSA9IHtcbiAgcmVzb3VyY2VUeXBlOiBcIk1pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lU2NhbGVTZXRzXCIsXG4gIHZlcnNpb246IFwiMjAyNS0wMS0wMlwiLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLi4uQ09NTU9OX1ZNU1NfUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFtcImxvY2F0aW9uXCIsIFwibmFtZVwiLCBcInNrdVwiXSxcbiAgb3B0aW9uYWw6IFtcbiAgICBcInRhZ3NcIixcbiAgICBcImlkZW50aXR5XCIsXG4gICAgXCJ6b25lc1wiLFxuICAgIFwicGxhblwiLFxuICAgIFwidXBncmFkZVBvbGljeVwiLFxuICAgIFwidmlydHVhbE1hY2hpbmVQcm9maWxlXCIsXG4gICAgXCJvcmNoZXN0cmF0aW9uTW9kZVwiLFxuICAgIFwib3ZlcnByb3Zpc2lvblwiLFxuICAgIFwiZG9Ob3RSdW5FeHRlbnNpb25zT25PdmVycHJvdmlzaW9uZWRWTXNcIixcbiAgICBcInNpbmdsZVBsYWNlbWVudEdyb3VwXCIsXG4gICAgXCJ6b25lQmFsYW5jZVwiLFxuICAgIFwicGxhdGZvcm1GYXVsdERvbWFpbkNvdW50XCIsXG4gICAgXCJhdXRvbWF0aWNSZXBhaXJzUG9saWN5XCIsXG4gICAgXCJzY2FsZUluUG9saWN5XCIsXG4gICAgXCJwcm94aW1pdHlQbGFjZW1lbnRHcm91cFwiLFxuICAgIFwiaG9zdEdyb3VwXCIsXG4gICAgXCJhZGRpdGlvbmFsQ2FwYWJpbGl0aWVzXCIsXG4gICAgXCJzcG90UmVzdG9yZVBvbGljeVwiLFxuICAgIFwicHJpb3JpdHlNaXhQb2xpY3lcIixcbiAgICBcInJlc2lsaWVuY3lQb2xpY3lcIixcbiAgICBcImNvbnN0cmFpbmVkTWF4aW11bUNhcGFjaXR5XCIsXG4gICAgXCJpZ25vcmVDaGFuZ2VzXCIsXG4gIF0sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibG9jYXRpb25cIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibmFtZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkIGZvciBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcInNrdVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJTS1UgaXMgcmVxdWlyZWQgZm9yIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIEFQSSBTY2hlbWEgZm9yIFZNU1MgdmVyc2lvbiAyMDI1LTAyLTAxXG4gKi9cbmV4cG9ydCBjb25zdCBWTVNTX1NDSEVNQV8yMDI1XzAyXzAxOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZVNjYWxlU2V0c1wiLFxuICB2ZXJzaW9uOiBcIjIwMjUtMDItMDFcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9WTVNTX1BST1BFUlRJRVMsXG4gIH0sXG4gIHJlcXVpcmVkOiBbXCJsb2NhdGlvblwiLCBcIm5hbWVcIiwgXCJza3VcIl0sXG4gIG9wdGlvbmFsOiBbXG4gICAgXCJ0YWdzXCIsXG4gICAgXCJpZGVudGl0eVwiLFxuICAgIFwiem9uZXNcIixcbiAgICBcInBsYW5cIixcbiAgICBcInVwZ3JhZGVQb2xpY3lcIixcbiAgICBcInZpcnR1YWxNYWNoaW5lUHJvZmlsZVwiLFxuICAgIFwib3JjaGVzdHJhdGlvbk1vZGVcIixcbiAgICBcIm92ZXJwcm92aXNpb25cIixcbiAgICBcImRvTm90UnVuRXh0ZW5zaW9uc09uT3ZlcnByb3Zpc2lvbmVkVk1zXCIsXG4gICAgXCJzaW5nbGVQbGFjZW1lbnRHcm91cFwiLFxuICAgIFwiem9uZUJhbGFuY2VcIixcbiAgICBcInBsYXRmb3JtRmF1bHREb21haW5Db3VudFwiLFxuICAgIFwiYXV0b21hdGljUmVwYWlyc1BvbGljeVwiLFxuICAgIFwic2NhbGVJblBvbGljeVwiLFxuICAgIFwicHJveGltaXR5UGxhY2VtZW50R3JvdXBcIixcbiAgICBcImhvc3RHcm91cFwiLFxuICAgIFwiYWRkaXRpb25hbENhcGFiaWxpdGllc1wiLFxuICAgIFwic3BvdFJlc3RvcmVQb2xpY3lcIixcbiAgICBcInByaW9yaXR5TWl4UG9saWN5XCIsXG4gICAgXCJyZXNpbGllbmN5UG9saWN5XCIsXG4gICAgXCJjb25zdHJhaW5lZE1heGltdW1DYXBhY2l0eVwiLFxuICAgIFwiaWdub3JlQ2hhbmdlc1wiLFxuICBdLFxuICBkZXByZWNhdGVkOiBbXSxcbiAgdHJhbnNmb3JtYXRpb25SdWxlczoge30sXG4gIHZhbGlkYXRpb25SdWxlczogW1xuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcImxvY2F0aW9uXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcIm5hbWVcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTmFtZSBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJza3VcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiU0tVIGlzIHJlcXVpcmVkIGZvciBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBBUEkgU2NoZW1hIGZvciBWTVNTIHZlcnNpb24gMjAyNS0wNC0wMVxuICovXG5leHBvcnQgY29uc3QgVk1TU19TQ0hFTUFfMjAyNV8wNF8wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVTY2FsZVNldHNcIixcbiAgdmVyc2lvbjogXCIyMDI1LTA0LTAxXCIsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5DT01NT05fVk1TU19QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibG9jYXRpb25cIiwgXCJuYW1lXCIsIFwic2t1XCJdLFxuICBvcHRpb25hbDogW1xuICAgIFwidGFnc1wiLFxuICAgIFwiaWRlbnRpdHlcIixcbiAgICBcInpvbmVzXCIsXG4gICAgXCJwbGFuXCIsXG4gICAgXCJ1cGdyYWRlUG9saWN5XCIsXG4gICAgXCJ2aXJ0dWFsTWFjaGluZVByb2ZpbGVcIixcbiAgICBcIm9yY2hlc3RyYXRpb25Nb2RlXCIsXG4gICAgXCJvdmVycHJvdmlzaW9uXCIsXG4gICAgXCJkb05vdFJ1bkV4dGVuc2lvbnNPbk92ZXJwcm92aXNpb25lZFZNc1wiLFxuICAgIFwic2luZ2xlUGxhY2VtZW50R3JvdXBcIixcbiAgICBcInpvbmVCYWxhbmNlXCIsXG4gICAgXCJwbGF0Zm9ybUZhdWx0RG9tYWluQ291bnRcIixcbiAgICBcImF1dG9tYXRpY1JlcGFpcnNQb2xpY3lcIixcbiAgICBcInNjYWxlSW5Qb2xpY3lcIixcbiAgICBcInByb3hpbWl0eVBsYWNlbWVudEdyb3VwXCIsXG4gICAgXCJob3N0R3JvdXBcIixcbiAgICBcImFkZGl0aW9uYWxDYXBhYmlsaXRpZXNcIixcbiAgICBcInNwb3RSZXN0b3JlUG9saWN5XCIsXG4gICAgXCJwcmlvcml0eU1peFBvbGljeVwiLFxuICAgIFwicmVzaWxpZW5jeVBvbGljeVwiLFxuICAgIFwiY29uc3RyYWluZWRNYXhpbXVtQ2FwYWNpdHlcIixcbiAgICBcImlnbm9yZUNoYW5nZXNcIixcbiAgXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJsb2NhdGlvblwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJuYW1lXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIk5hbWUgaXMgcmVxdWlyZWQgZm9yIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwic2t1XCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIlNLVSBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OIENPTkZJR1VSQVRJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFZlcnNpb24gY29uZmlndXJhdGlvbiBmb3IgVk1TUyAyMDI1LTAxLTAyXG4gKi9cbmV4cG9ydCBjb25zdCBWTVNTX1ZFUlNJT05fMjAyNV8wMV8wMjogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDI1LTAxLTAyXCIsXG4gIHNjaGVtYTogVk1TU19TQ0hFTUFfMjAyNV8wMV8wMixcbiAgc3VwcG9ydExldmVsOiBWZXJzaW9uU3VwcG9ydExldmVsLkFDVElWRSxcbiAgcmVsZWFzZURhdGU6IFwiMjAyNS0wMS0wMlwiLFxuICBkZXByZWNhdGlvbkRhdGU6IHVuZGVmaW5lZCxcbiAgc3Vuc2V0RGF0ZTogdW5kZWZpbmVkLFxuICBicmVha2luZ0NoYW5nZXM6IFtdLFxuICBtaWdyYXRpb25HdWlkZTogXCIvZG9jcy92bXNzL21pZ3JhdGlvbi0yMDI1LTAxLTAyXCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwiYWRkZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkluaXRpYWwgcmVsZWFzZSB3aXRoIGNvbXByZWhlbnNpdmUgVk1TUyBmZWF0dXJlc1wiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIFZlcnNpb24gY29uZmlndXJhdGlvbiBmb3IgVk1TUyAyMDI1LTAyLTAxXG4gKi9cbmV4cG9ydCBjb25zdCBWTVNTX1ZFUlNJT05fMjAyNV8wMl8wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDI1LTAyLTAxXCIsXG4gIHNjaGVtYTogVk1TU19TQ0hFTUFfMjAyNV8wMl8wMSxcbiAgc3VwcG9ydExldmVsOiBWZXJzaW9uU3VwcG9ydExldmVsLkFDVElWRSxcbiAgcmVsZWFzZURhdGU6IFwiMjAyNS0wMi0wMVwiLFxuICBkZXByZWNhdGlvbkRhdGU6IHVuZGVmaW5lZCxcbiAgc3Vuc2V0RGF0ZTogdW5kZWZpbmVkLFxuICBicmVha2luZ0NoYW5nZXM6IFtdLFxuICBtaWdyYXRpb25HdWlkZTogXCIvZG9jcy92bXNzL21pZ3JhdGlvbi0yMDI1LTAyLTAxXCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwidXBkYXRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiRW5oYW5jZWQgb3JjaGVzdHJhdGlvbiBhbmQgc2NhbGluZyBmZWF0dXJlc1wiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIFZlcnNpb24gY29uZmlndXJhdGlvbiBmb3IgVk1TUyAyMDI1LTA0LTAxXG4gKi9cbmV4cG9ydCBjb25zdCBWTVNTX1ZFUlNJT05fMjAyNV8wNF8wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDI1LTA0LTAxXCIsXG4gIHNjaGVtYTogVk1TU19TQ0hFTUFfMjAyNV8wNF8wMSxcbiAgc3VwcG9ydExldmVsOiBWZXJzaW9uU3VwcG9ydExldmVsLkFDVElWRSxcbiAgcmVsZWFzZURhdGU6IFwiMjAyNS0wNC0wMVwiLFxuICBkZXByZWNhdGlvbkRhdGU6IHVuZGVmaW5lZCxcbiAgc3Vuc2V0RGF0ZTogdW5kZWZpbmVkLFxuICBicmVha2luZ0NoYW5nZXM6IFtdLFxuICBtaWdyYXRpb25HdWlkZTogXCIvZG9jcy92bXNzL21pZ3JhdGlvbi0yMDI1LTA0LTAxXCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwidXBkYXRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiTGF0ZXN0IEFQSSB2ZXJzaW9uIHdpdGggbmV3ZXN0IGZlYXR1cmVzIGFuZCBpbXByb3ZlbWVudHNcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBBbGwgc3VwcG9ydGVkIFZNU1MgdmVyc2lvbnMgZm9yIHJlZ2lzdHJhdGlvblxuICovXG5leHBvcnQgY29uc3QgQUxMX1ZNU1NfVkVSU0lPTlM6IFZlcnNpb25Db25maWdbXSA9IFtcbiAgVk1TU19WRVJTSU9OXzIwMjVfMDFfMDIsXG4gIFZNU1NfVkVSU0lPTl8yMDI1XzAyXzAxLFxuICBWTVNTX1ZFUlNJT05fMjAyNV8wNF8wMSxcbl07XG5cbi8qKlxuICogUmVzb3VyY2UgdHlwZSBjb25zdGFudFxuICovXG5leHBvcnQgY29uc3QgVk1TU19UWVBFID0gXCJNaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZVNjYWxlU2V0c1wiO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSEVMUEVSIE1FVEhPRCBPUFRJT04gSU5URVJGQUNFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBleHRlbnNpb24gaGVscGVyIG1ldGhvZHNcbiAqXG4gKiBQcm92aWRlcyBjb21tb24gY29uZmlndXJhdGlvbiBvcHRpb25zIHVzZWQgYnkgdGhlIGNvbnZlbmllbmNlIG1ldGhvZHNcbiAqIGZvciBjcmVhdGluZyBWTSBleHRlbnNpb24gY29uZmlndXJhdGlvbnMuXG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25IZWxwZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBleHRlbnNpb24gaGFuZGxlciB0byB1c2VcbiAgICovXG4gIHJlYWRvbmx5IHR5cGVIYW5kbGVyVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBhdXRvbWF0aWNhbGx5IHVwZ3JhZGUgdGhlIG1pbm9yIHZlcnNpb24gb2YgdGhlIGV4dGVuc2lvblxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhdXRvVXBncmFkZU1pbm9yVmVyc2lvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGF1dG9tYXRpYyB1cGdyYWRlIG9mIHRoZSBleHRlbnNpb25cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUF1dG9tYXRpY1VwZ3JhZGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHN1cHByZXNzIGZhaWx1cmVzIGZyb20gdGhlIGV4dGVuc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgc3VwcHJlc3NGYWlsdXJlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgdGFnIHRvIGZvcmNlIHRoZSBleHRlbnNpb24gdG8gcmUtcnVuXG4gICAqL1xuICByZWFkb25seSBmb3JjZVVwZGF0ZVRhZz86IHN0cmluZztcblxuICAvKipcbiAgICogQXJyYXkgb2YgZXh0ZW5zaW9uIG5hbWVzIHRoYXQgdGhpcyBleHRlbnNpb24gbXVzdCBiZSBwcm92aXNpb25lZCBhZnRlclxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlzaW9uQWZ0ZXJFeHRlbnNpb25zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgc2V0dGluZ3MgZm9yIHRoZSBleHRlbnNpb25cbiAgICovXG4gIHJlYWRvbmx5IHNldHRpbmdzPzogYW55O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHByb3RlY3RlZCBzZXR0aW5ncyBmb3IgdGhlIGV4dGVuc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdGVjdGVkU2V0dGluZ3M/OiBhbnk7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIEFwcGxpY2F0aW9uIEhlYWx0aCBleHRlbnNpb24gaGVscGVyIG1ldGhvZFxuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVhbHRoRXh0ZW5zaW9uT3B0aW9ucyBleHRlbmRzIEV4dGVuc2lvbkhlbHBlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHJlcXVlc3QgcGF0aCBmb3IgSFRUUC9IVFRQUyBoZWFsdGggcHJvYmVzXG4gICAqIEBleGFtcGxlIFwiL1wiXG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGludGVydmFsIGluIHNlY29uZHMgYmV0d2VlbiBoZWFsdGggcHJvYmVzXG4gICAqL1xuICByZWFkb25seSBpbnRlcnZhbEluU2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBjb25zZWN1dGl2ZSBwcm9iZXMgYmVmb3JlIG1hcmtpbmcgdW5oZWFsdGh5XG4gICAqL1xuICByZWFkb25seSBudW1iZXJPZlByb2Jlcz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGdyYWNlIHBlcmlvZCBpbiBzZWNvbmRzIGFmdGVyIFZNIHByb3Zpc2lvbmluZyBiZWZvcmUgaGVhbHRoIHByb2JlcyBiZWdpblxuICAgKi9cbiAgcmVhZG9ubHkgZ3JhY2VQZXJpb2Q/OiBudW1iZXI7XG59XG4iXX0=
@@ -12,4 +12,4 @@
12
12
  *
13
13
  * Run with: npm run integration:nostream
14
14
  */
15
- import "cdktf/lib/testing/adapters/jest";
15
+ import "cdktn/lib/testing/adapters/jest";