@c8y/ngx-components 1021.38.0 → 1021.49.1

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 (528) hide show
  1. package/api/services.d.ts +1 -1
  2. package/api/services.d.ts.map +1 -1
  3. package/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.d.ts.map +1 -1
  4. package/connectivity/abstract-connectivity-tab.factory.d.ts +1 -1
  5. package/context-dashboard/add-dashboard.component.d.ts.map +1 -1
  6. package/context-dashboard/context-dashboard.model.d.ts +4 -2
  7. package/context-dashboard/context-dashboard.model.d.ts.map +1 -1
  8. package/context-dashboard/dashboard-detail.component.d.ts.map +1 -1
  9. package/context-dashboard/dashboard-manager/dashboard-manager.model.d.ts +1 -0
  10. package/context-dashboard/dashboard-manager/dashboard-manager.model.d.ts.map +1 -1
  11. package/context-dashboard/dashboard-manager/dashboard-manager.service.d.ts +0 -1
  12. package/context-dashboard/dashboard-manager/dashboard-manager.service.d.ts.map +1 -1
  13. package/context-dashboard/dashboard-manager/type-dashboards-list/type-dashboards-list.component.d.ts.map +1 -1
  14. package/context-dashboard/new-dashboard.guard.d.ts +1 -1
  15. package/context-dashboard/new-dashboard.guard.d.ts.map +1 -1
  16. package/core/action/action.component.d.ts +2 -1
  17. package/core/action/action.component.d.ts.map +1 -1
  18. package/core/action/action.model.d.ts +3 -2
  19. package/core/action/action.model.d.ts.map +1 -1
  20. package/core/breadcrumb/breadcrumb-item.component.d.ts +2 -1
  21. package/core/breadcrumb/breadcrumb-item.component.d.ts.map +1 -1
  22. package/core/breadcrumb/breadcrumb.model.d.ts +2 -1
  23. package/core/breadcrumb/breadcrumb.model.d.ts.map +1 -1
  24. package/core/common/ApplicationOptions.d.ts +1 -0
  25. package/core/common/ApplicationOptions.d.ts.map +1 -1
  26. package/core/common/empty-state/empty-state.component.d.ts +2 -1
  27. package/core/common/empty-state/empty-state.component.d.ts.map +1 -1
  28. package/core/common/get-group-icon.pipe.d.ts +2 -1
  29. package/core/common/get-group-icon.pipe.d.ts.map +1 -1
  30. package/core/common/group.service.d.ts +22 -7
  31. package/core/common/group.service.d.ts.map +1 -1
  32. package/core/common/icon.directive.d.ts +5 -5
  33. package/core/common/icon.directive.d.ts.map +1 -1
  34. package/core/common/service-registry.model.d.ts +2 -1
  35. package/core/common/service-registry.model.d.ts.map +1 -1
  36. package/core/data-grid/data-grid.model.d.ts +2 -1
  37. package/core/data-grid/data-grid.model.d.ts.map +1 -1
  38. package/core/docs/docs.models.d.ts +2 -1
  39. package/core/docs/docs.models.d.ts.map +1 -1
  40. package/core/docs/help-and-support-outlet/help-and-support-outlet.component.d.ts +5 -1
  41. package/core/docs/help-and-support-outlet/help-and-support-outlet.component.d.ts.map +1 -1
  42. package/core/docs/legal-notices-outlet/legal-notices-outlet.component.d.ts +5 -1
  43. package/core/docs/legal-notices-outlet/legal-notices-outlet.component.d.ts.map +1 -1
  44. package/core/docs/support-outlet/support-outlet.component.d.ts +5 -1
  45. package/core/docs/support-outlet/support-outlet.component.d.ts.map +1 -1
  46. package/core/forms/filter-input.component.d.ts +8 -3
  47. package/core/forms/filter-input.component.d.ts.map +1 -1
  48. package/core/list-group/list-item-action.component.d.ts +2 -1
  49. package/core/list-group/list-item-action.component.d.ts.map +1 -1
  50. package/core/list-group/list-item-icon.component.d.ts +2 -1
  51. package/core/list-group/list-item-icon.component.d.ts.map +1 -1
  52. package/core/login/login.service.d.ts.map +1 -1
  53. package/core/navigator/navigator-icon.component.d.ts +1 -1
  54. package/core/navigator/navigator-icon.component.d.ts.map +1 -1
  55. package/core/navigator/navigator-node-data.d.ts +2 -1
  56. package/core/navigator/navigator-node-data.d.ts.map +1 -1
  57. package/core/navigator/navigator-node.component.d.ts.map +1 -1
  58. package/core/navigator/navigator-node.d.ts +2 -1
  59. package/core/navigator/navigator-node.d.ts.map +1 -1
  60. package/core/plugins/plugins.model.d.ts +7 -2
  61. package/core/plugins/plugins.model.d.ts.map +1 -1
  62. package/core/plugins/plugins.service.d.ts.map +1 -1
  63. package/core/properties-list/properties-list.component.d.ts +2 -1
  64. package/core/properties-list/properties-list.component.d.ts.map +1 -1
  65. package/core/provider-configuration/model/dynamic-provider-config.model.d.ts +2 -2
  66. package/core/provider-configuration/model/dynamic-provider-config.model.d.ts.map +1 -1
  67. package/core/router/context-route.service.d.ts.map +1 -1
  68. package/core/router/router.model.d.ts +1 -1
  69. package/core/router/router.model.d.ts.map +1 -1
  70. package/core/router/scoped-context-route.service.d.ts.map +1 -1
  71. package/core/search/search.model.d.ts +2 -1
  72. package/core/search/search.model.d.ts.map +1 -1
  73. package/core/select/select-keyboard.service.d.ts +4 -0
  74. package/core/select/select-keyboard.service.d.ts.map +1 -1
  75. package/core/select/select.component.d.ts +14 -3
  76. package/core/select/select.component.d.ts.map +1 -1
  77. package/core/select-modal/select-modal.component.d.ts +2 -1
  78. package/core/select-modal/select-modal.component.d.ts.map +1 -1
  79. package/core/shared/core.model.d.ts +5 -1
  80. package/core/shared/core.model.d.ts.map +1 -1
  81. package/core/tabs/conditional-tabs-outlet.component.d.ts.map +1 -1
  82. package/core/tabs/tab.component.d.ts +3 -2
  83. package/core/tabs/tab.component.d.ts.map +1 -1
  84. package/core/tabs/tab.model.d.ts +10 -5
  85. package/core/tabs/tab.model.d.ts.map +1 -1
  86. package/core/tabs/tabs-outlet.component.d.ts +7 -4
  87. package/core/tabs/tabs-outlet.component.d.ts.map +1 -1
  88. package/core/user/user-menu-item.component.d.ts +2 -1
  89. package/core/user/user-menu-item.component.d.ts.map +1 -1
  90. package/core/user/user.model.d.ts +2 -1
  91. package/core/user/user.model.d.ts.map +1 -1
  92. package/core/wizard/wizard.model.d.ts +4 -3
  93. package/core/wizard/wizard.model.d.ts.map +1 -1
  94. package/data-grid-columns/asset-type/asset-type.cell-renderer.component.d.ts.map +1 -1
  95. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts +15 -46
  96. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.d.ts.map +1 -1
  97. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.d.ts +3 -0
  98. package/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.d.ts.map +1 -1
  99. package/datapoint-selector/datapoint-selection.model.d.ts +6 -7
  100. package/datapoint-selector/datapoint-selection.model.d.ts.map +1 -1
  101. package/datapoints-export-selector/datapoints-export-selector.model.d.ts +2 -1
  102. package/datapoints-export-selector/datapoints-export-selector.model.d.ts.map +1 -1
  103. package/device-grid/columns/icon.cell-renderer.component.d.ts +14 -0
  104. package/device-grid/columns/icon.cell-renderer.component.d.ts.map +1 -0
  105. package/device-grid/columns/index.d.ts +1 -0
  106. package/device-grid/columns/index.d.ts.map +1 -1
  107. package/device-grid/device-grid.component.d.ts.map +1 -1
  108. package/device-grid/device-grid.service.d.ts +0 -2
  109. package/device-grid/device-grid.service.d.ts.map +1 -1
  110. package/device-provisioned-certificates/c8y-ngx-components-device-provisioned-certificates.d.ts.map +1 -0
  111. package/device-provisioned-certificates/device-provisioned-certificates.guard.d.ts +11 -0
  112. package/device-provisioned-certificates/device-provisioned-certificates.guard.d.ts.map +1 -0
  113. package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts +13 -0
  114. package/device-provisioned-certificates/device-provisioned-certificates.module.d.ts.map +1 -0
  115. package/device-provisioned-certificates/device-provisioned-certificates.service.d.ts +13 -0
  116. package/device-provisioned-certificates/device-provisioned-certificates.service.d.ts.map +1 -0
  117. package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts +57 -0
  118. package/device-provisioned-certificates/device-tab-provisioned-certificates.component.d.ts.map +1 -0
  119. package/device-provisioned-certificates/index.d.ts +2 -0
  120. package/device-provisioned-certificates/index.d.ts.map +1 -0
  121. package/ecosystem/application-plugins/application-plugins.component.d.ts +4 -0
  122. package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
  123. package/ecosystem/application-plugins/application-plugins.module.d.ts +2 -2
  124. package/ecosystem/application-plugins/application-plugins.module.d.ts.map +1 -1
  125. package/ecosystem/application-plugins/index.d.ts +1 -0
  126. package/ecosystem/application-plugins/index.d.ts.map +1 -1
  127. package/ecosystem/application-plugins/install-plugin.component.d.ts +9 -11
  128. package/ecosystem/application-plugins/install-plugin.component.d.ts.map +1 -1
  129. package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts +12 -0
  130. package/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.d.ts.map +1 -0
  131. package/ecosystem/application-plugins/plugin-list-item.component.d.ts +8 -3
  132. package/ecosystem/application-plugins/plugin-list-item.component.d.ts.map +1 -1
  133. package/ecosystem/application-plugins/plugin-list.component.d.ts.map +1 -1
  134. package/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.d.ts.map +1 -1
  135. package/ecosystem/applications/application-list/application-list.component.d.ts +2 -2
  136. package/ecosystem/applications/application-list/application-list.component.d.ts.map +1 -1
  137. package/ecosystem/applications/install-from-package/install-from-package.component.d.ts.map +1 -1
  138. package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts +11 -0
  139. package/ecosystem/archived-confirm/archived-confirm-modal.component.d.ts.map +1 -0
  140. package/ecosystem/archived-confirm/archived-confirm.module.d.ts +10 -0
  141. package/ecosystem/archived-confirm/archived-confirm.module.d.ts.map +1 -0
  142. package/ecosystem/archived-confirm/c8y-ngx-components-ecosystem-archived-confirm.d.ts.map +1 -0
  143. package/ecosystem/archived-confirm/index.d.ts +3 -0
  144. package/ecosystem/archived-confirm/index.d.ts.map +1 -0
  145. package/ecosystem/ecosystem.module.d.ts +2 -1
  146. package/ecosystem/ecosystem.module.d.ts.map +1 -1
  147. package/ecosystem/features/feature-list.component.d.ts +2 -2
  148. package/ecosystem/features/feature-list.component.d.ts.map +1 -1
  149. package/ecosystem/microservices/microservice-list.component.d.ts +2 -2
  150. package/ecosystem/microservices/microservice-list.component.d.ts.map +1 -1
  151. package/ecosystem/packages/deploy-application/deploy-application.component.d.ts.map +1 -1
  152. package/ecosystem/packages/package-details/package-details.component.d.ts +7 -2
  153. package/ecosystem/packages/package-details/package-details.component.d.ts.map +1 -1
  154. package/ecosystem/packages/package-list/packages-list.component.d.ts +2 -2
  155. package/ecosystem/packages/package-list/packages-list.component.d.ts.map +1 -1
  156. package/ecosystem/shared/add-application.component.d.ts +2 -1
  157. package/ecosystem/shared/add-application.component.d.ts.map +1 -1
  158. package/ecosystem/shared/application-card.component.d.ts +4 -0
  159. package/ecosystem/shared/application-card.component.d.ts.map +1 -1
  160. package/ecosystem/shared/archived-filter/archived-filter.component.d.ts +12 -0
  161. package/ecosystem/shared/archived-filter/archived-filter.component.d.ts.map +1 -0
  162. package/ecosystem/shared/ecosystem.constants.d.ts +4 -0
  163. package/ecosystem/shared/ecosystem.constants.d.ts.map +1 -1
  164. package/ecosystem/shared/ecosystem.model.d.ts +5 -1
  165. package/ecosystem/shared/ecosystem.model.d.ts.map +1 -1
  166. package/ecosystem/shared/ecosystem.service.d.ts +7 -0
  167. package/ecosystem/shared/ecosystem.service.d.ts.map +1 -1
  168. package/ecosystem/shared/index.d.ts +1 -0
  169. package/ecosystem/shared/index.d.ts.map +1 -1
  170. package/ecosystem/shared/list-filters/list-filters.component.d.ts +14 -4
  171. package/ecosystem/shared/list-filters/list-filters.component.d.ts.map +1 -1
  172. package/ecosystem/shared/list-filters/list-filters.model.d.ts +8 -2
  173. package/ecosystem/shared/list-filters/list-filters.model.d.ts.map +1 -1
  174. package/ecosystem/shared/shared-ecosystem.module.d.ts +9 -8
  175. package/ecosystem/shared/shared-ecosystem.module.d.ts.map +1 -1
  176. package/ecosystem/shared/translate-package-label.pipe.d.ts +1 -1
  177. package/ecosystem/shared/translate-package-label.pipe.d.ts.map +1 -1
  178. package/esm2022/alarms/alarm-info.component.mjs +1 -1
  179. package/esm2022/api/services.mjs +2 -2
  180. package/esm2022/auth-configuration/sso-configuration/template-parts/access-mapping/access-mapping.component.mjs +10 -5
  181. package/esm2022/auth-configuration/sso-configuration/template-parts/user-data-mapping.component.mjs +4 -4
  182. package/esm2022/context-dashboard/add-dashboard.component.mjs +4 -2
  183. package/esm2022/context-dashboard/context-dashboard.model.mjs +3 -2
  184. package/esm2022/context-dashboard/context-dashboard.service.mjs +2 -2
  185. package/esm2022/context-dashboard/dashboard-detail.component.mjs +5 -3
  186. package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.model.mjs +1 -1
  187. package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.service.mjs +5 -15
  188. package/esm2022/context-dashboard/dashboard-manager/type-dashboards-list/type-dashboards-list.component.mjs +2 -2
  189. package/esm2022/context-dashboard/new-dashboard.guard.mjs +1 -1
  190. package/esm2022/core/action/action.component.mjs +1 -1
  191. package/esm2022/core/action/action.model.mjs +1 -1
  192. package/esm2022/core/bootstrap/bootstrap.component.mjs +1 -1
  193. package/esm2022/core/breadcrumb/breadcrumb-item.component.mjs +1 -1
  194. package/esm2022/core/breadcrumb/breadcrumb.model.mjs +1 -1
  195. package/esm2022/core/common/ApplicationOptions.mjs +1 -1
  196. package/esm2022/core/common/empty-state/empty-state.component.mjs +1 -1
  197. package/esm2022/core/common/get-group-icon.pipe.mjs +1 -1
  198. package/esm2022/core/common/group.service.mjs +2 -2
  199. package/esm2022/core/common/icon.directive.mjs +1 -1
  200. package/esm2022/core/common/service-registry.model.mjs +1 -1
  201. package/esm2022/core/data-grid/data-grid.model.mjs +1 -1
  202. package/esm2022/core/docs/docs.models.mjs +1 -1
  203. package/esm2022/core/docs/support-outlet/support-outlet.component.mjs +3 -3
  204. package/esm2022/core/forms/filter-input.component.mjs +22 -7
  205. package/esm2022/core/list-group/list-item-action.component.mjs +1 -1
  206. package/esm2022/core/list-group/list-item-icon.component.mjs +1 -1
  207. package/esm2022/core/login/credentials.component.mjs +2 -2
  208. package/esm2022/core/login/login.service.mjs +18 -7
  209. package/esm2022/core/navigator/navigator-node-data.mjs +1 -1
  210. package/esm2022/core/navigator/navigator-node.component.mjs +11 -2
  211. package/esm2022/core/navigator/navigator-node.mjs +1 -1
  212. package/esm2022/core/plugins/plugins.model.mjs +5 -1
  213. package/esm2022/core/plugins/plugins.service.mjs +6 -2
  214. package/esm2022/core/properties-list/properties-list.component.mjs +1 -1
  215. package/esm2022/core/provider-configuration/model/dynamic-provider-config.model.mjs +1 -1
  216. package/esm2022/core/router/context-route.service.mjs +4 -2
  217. package/esm2022/core/router/router.model.mjs +1 -1
  218. package/esm2022/core/router/scoped-context-route.service.mjs +4 -2
  219. package/esm2022/core/search/search.model.mjs +1 -1
  220. package/esm2022/core/select/select-keyboard.service.mjs +7 -3
  221. package/esm2022/core/select/select.component.mjs +36 -8
  222. package/esm2022/core/select-modal/select-modal.component.mjs +2 -2
  223. package/esm2022/core/shared/core.model.mjs +6 -2
  224. package/esm2022/core/tabs/conditional-tabs-outlet.component.mjs +4 -2
  225. package/esm2022/core/tabs/tab.component.mjs +1 -1
  226. package/esm2022/core/tabs/tab.model.mjs +1 -1
  227. package/esm2022/core/tabs/tabs-outlet.component.mjs +41 -12
  228. package/esm2022/core/user/user-menu-item.component.mjs +1 -1
  229. package/esm2022/core/user/user.model.mjs +1 -1
  230. package/esm2022/core/wizard/wizard.model.mjs +1 -1
  231. package/esm2022/data-grid-columns/asset-type/asset-type.cell-renderer.component.mjs +1 -1
  232. package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes-form.component.mjs +47 -22
  233. package/esm2022/datapoint-selector/datapoint-attributes-form/datapoint-attributes.model.mjs +1 -1
  234. package/esm2022/datapoint-selector/datapoint-selection.model.mjs +1 -1
  235. package/esm2022/datapoint-selector/datapoint-selector-list-item/datapoint-selector-list-item.component.mjs +3 -3
  236. package/esm2022/datapoints-export-selector/datapoints-export-selector.model.mjs +1 -1
  237. package/esm2022/device-grid/columns/icon.cell-renderer.component.mjs +42 -0
  238. package/esm2022/device-grid/columns/index.mjs +2 -1
  239. package/esm2022/device-grid/device-grid.component.mjs +3 -3
  240. package/esm2022/device-grid/device-grid.service.mjs +7 -25
  241. package/esm2022/device-provisioned-certificates/c8y-ngx-components-device-provisioned-certificates.mjs +5 -0
  242. package/esm2022/device-provisioned-certificates/device-provisioned-certificates.guard.mjs +28 -0
  243. package/esm2022/device-provisioned-certificates/device-provisioned-certificates.module.mjs +51 -0
  244. package/esm2022/device-provisioned-certificates/device-provisioned-certificates.service.mjs +31 -0
  245. package/esm2022/device-provisioned-certificates/device-tab-provisioned-certificates.component.mjs +76 -0
  246. package/esm2022/device-provisioned-certificates/index.mjs +2 -0
  247. package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +41 -39
  248. package/esm2022/ecosystem/application-plugins/application-plugins.module.mjs +8 -6
  249. package/esm2022/ecosystem/application-plugins/apps-to-update-remotes-select.component.mjs +1 -1
  250. package/esm2022/ecosystem/application-plugins/index.mjs +2 -1
  251. package/esm2022/ecosystem/application-plugins/install-plugin.component.mjs +18 -21
  252. package/esm2022/ecosystem/application-plugins/only-latest-filter/only-latest-filter.component.mjs +26 -0
  253. package/esm2022/ecosystem/application-plugins/plugin-list-item.component.mjs +14 -6
  254. package/esm2022/ecosystem/application-plugins/plugin-list.component.mjs +14 -12
  255. package/esm2022/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.mjs +7 -1
  256. package/esm2022/ecosystem/applications/application-list/application-list.component.mjs +1 -1
  257. package/esm2022/ecosystem/applications/install-from-package/install-from-package.component.mjs +6 -1
  258. package/esm2022/ecosystem/archived-confirm/archived-confirm-modal.component.mjs +22 -0
  259. package/esm2022/ecosystem/archived-confirm/archived-confirm.module.mjs +32 -0
  260. package/esm2022/ecosystem/archived-confirm/c8y-ngx-components-ecosystem-archived-confirm.mjs +5 -0
  261. package/esm2022/ecosystem/archived-confirm/index.mjs +3 -0
  262. package/esm2022/ecosystem/ecosystem.module.mjs +20 -16
  263. package/esm2022/ecosystem/features/feature-list.component.mjs +1 -1
  264. package/esm2022/ecosystem/microservices/microservice-list.component.mjs +1 -1
  265. package/esm2022/ecosystem/packages/deploy-application/deploy-application.component.mjs +6 -1
  266. package/esm2022/ecosystem/packages/package-details/package-details.component.mjs +13 -8
  267. package/esm2022/ecosystem/packages/package-list/packages-list.component.mjs +4 -4
  268. package/esm2022/ecosystem/shared/add-application.component.mjs +1 -1
  269. package/esm2022/ecosystem/shared/application-card.component.mjs +3 -3
  270. package/esm2022/ecosystem/shared/archived-filter/archived-filter.component.mjs +27 -0
  271. package/esm2022/ecosystem/shared/ecosystem.constants.mjs +5 -1
  272. package/esm2022/ecosystem/shared/ecosystem.model.mjs +7 -3
  273. package/esm2022/ecosystem/shared/ecosystem.service.mjs +26 -1
  274. package/esm2022/ecosystem/shared/index.mjs +2 -1
  275. package/esm2022/ecosystem/shared/list-filters/list-filters.component.mjs +75 -13
  276. package/esm2022/ecosystem/shared/list-filters/list-filters.model.mjs +1 -1
  277. package/esm2022/ecosystem/shared/shared-ecosystem.module.mjs +10 -5
  278. package/esm2022/ecosystem/shared/translate-package-label.pipe.mjs +3 -3
  279. package/esm2022/files-repository/files-repository.component.mjs +2 -2
  280. package/esm2022/files-repository/files-repository.service.mjs +5 -16
  281. package/esm2022/icon-selector/icon-selector.component.mjs +1 -1
  282. package/esm2022/icon-selector/icons/index.mjs +1 -1
  283. package/esm2022/operations/shared/status-option.model.mjs +1 -1
  284. package/esm2022/protocol-lwm2m/components/configuration/lwm2m-configuration.component.mjs +2 -2
  285. package/esm2022/protocol-opcua/opcua-auto-apply-settings.component.mjs +1 -1
  286. package/esm2022/register-device/bulk/bulk-device-registration-modal.component.mjs +17 -9
  287. package/esm2022/register-device/general/general-device-registration-button.component.mjs +3 -3
  288. package/esm2022/register-device/general/general-device-registration.component.mjs +109 -33
  289. package/esm2022/remote-access/configurations/c8y-ngx-components-remote-access-configurations.mjs +5 -0
  290. package/esm2022/remote-access/configurations/index.mjs +16 -0
  291. package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.mjs +218 -0
  292. package/esm2022/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.mjs +60 -0
  293. package/esm2022/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.mjs +36 -0
  294. package/esm2022/remote-access/data/c8y-ngx-components-remote-access-data.mjs +5 -0
  295. package/esm2022/remote-access/data/index.mjs +3 -0
  296. package/esm2022/remote-access/data/remote-access-protocol-provider.mjs +2 -0
  297. package/esm2022/remote-access/data/remote-access.service.mjs +200 -0
  298. package/esm2022/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.mjs +5 -0
  299. package/esm2022/remote-access/passthrough/index.mjs +36 -0
  300. package/esm2022/remote-access/shared/c8y-ngx-components-remote-access-shared.mjs +5 -0
  301. package/esm2022/remote-access/shared/index.mjs +3 -0
  302. package/esm2022/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.mjs +49 -0
  303. package/esm2022/remote-access/shared/ssh-key-input/ssh-key-input.component.mjs +87 -0
  304. package/esm2022/remote-access/ssh/c8y-ngx-components-remote-access-ssh.mjs +5 -0
  305. package/esm2022/remote-access/ssh/index.mjs +73 -0
  306. package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +5 -0
  307. package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/index.mjs +2 -0
  308. package/esm2022/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.mjs +104 -0
  309. package/esm2022/remote-access/telnet/c8y-ngx-components-remote-access-telnet.mjs +5 -0
  310. package/esm2022/remote-access/telnet/index.mjs +43 -0
  311. package/esm2022/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.mjs +5 -0
  312. package/esm2022/remote-access/terminal-viewer/index.mjs +2 -0
  313. package/esm2022/remote-access/terminal-viewer/shell-adapter.mjs +36 -0
  314. package/esm2022/remote-access/terminal-viewer/telnet-negotiator.mjs +96 -0
  315. package/esm2022/remote-access/terminal-viewer/terminal-viewer.component.mjs +101 -0
  316. package/esm2022/remote-access/vnc/c8y-ngx-components-remote-access-vnc.mjs +5 -0
  317. package/esm2022/remote-access/vnc/index.mjs +73 -0
  318. package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +5 -0
  319. package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/index.mjs +2 -0
  320. package/esm2022/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.mjs +59 -0
  321. package/esm2022/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +5 -0
  322. package/esm2022/remote-access/vnc/vnc-viewer/index.mjs +2 -0
  323. package/esm2022/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.mjs +57 -0
  324. package/esm2022/remote-access/vnc/vnc-viewer/vnc-viewer.component.mjs +158 -0
  325. package/esm2022/replace-device/replace-device-wizard/replace-device-wizard.model.mjs +1 -1
  326. package/esm2022/report-dashboard/report-dashboard-list.component.mjs +4 -3
  327. package/esm2022/repository/configuration/device-tab/device-configuration-list.component.mjs +1 -1
  328. package/esm2022/repository/shared/repository.model.mjs +1 -1
  329. package/esm2022/repository/shared/repository.service.mjs +3 -3
  330. package/esm2022/services/status-options/status-options.model.mjs +1 -1
  331. package/esm2022/sub-assets/group-info.component.mjs +1 -1
  332. package/esm2022/tenants/custom-properties/custom-properties.service.mjs +6 -2
  333. package/esm2022/translation-editor/data/translation-store.service.mjs +4 -3
  334. package/esm2022/trusted-certificates/list/trusted-certificate-list.component.mjs +35 -9
  335. package/esm2022/upgrade/bridge.service.mjs +16 -2
  336. package/esm2022/widgets/implementations/alarms/severity-icon.pipe.mjs +1 -1
  337. package/esm2022/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.mjs +3 -2
  338. package/esm2022/widgets/implementations/kpi/kpi-widget.model.mjs +1 -1
  339. package/fesm2022/c8y-ngx-components-alarms.mjs +1 -1
  340. package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
  341. package/fesm2022/c8y-ngx-components-api.mjs +3 -2
  342. package/fesm2022/c8y-ngx-components-api.mjs.map +1 -1
  343. package/fesm2022/c8y-ngx-components-auth-configuration.mjs +12 -7
  344. package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
  345. package/fesm2022/c8y-ngx-components-context-dashboard.mjs +15 -20
  346. package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
  347. package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
  348. package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
  349. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +48 -23
  350. package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
  351. package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
  352. package/fesm2022/c8y-ngx-components-device-grid.mjs +48 -28
  353. package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
  354. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +174 -0
  355. package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -0
  356. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +125 -105
  357. package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  358. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +57 -0
  359. package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs.map +1 -0
  360. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +147 -31
  361. package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  362. package/fesm2022/c8y-ngx-components-ecosystem.mjs +1452 -1414
  363. package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
  364. package/fesm2022/c8y-ngx-components-files-repository.mjs +5 -16
  365. package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
  366. package/fesm2022/c8y-ngx-components-icon-selector-icons.mjs.map +1 -1
  367. package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
  368. package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs +1 -1
  369. package/fesm2022/c8y-ngx-components-protocol-lwm2m-components-configuration.mjs.map +1 -1
  370. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +1 -1
  371. package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
  372. package/fesm2022/c8y-ngx-components-register-device.mjs +269 -188
  373. package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
  374. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +314 -0
  375. package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -0
  376. package/fesm2022/c8y-ngx-components-remote-access-data.mjs +206 -0
  377. package/fesm2022/c8y-ngx-components-remote-access-data.mjs.map +1 -0
  378. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +42 -0
  379. package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs.map +1 -0
  380. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +138 -0
  381. package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -0
  382. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +111 -0
  383. package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs.map +1 -0
  384. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +79 -0
  385. package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs.map +1 -0
  386. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +50 -0
  387. package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs.map +1 -0
  388. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +235 -0
  389. package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs.map +1 -0
  390. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +66 -0
  391. package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs.map +1 -0
  392. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +211 -0
  393. package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -0
  394. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +79 -0
  395. package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs.map +1 -0
  396. package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs.map +1 -1
  397. package/fesm2022/c8y-ngx-components-report-dashboard.mjs +3 -2
  398. package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
  399. package/fesm2022/c8y-ngx-components-repository-configuration.mjs +1 -1
  400. package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
  401. package/fesm2022/c8y-ngx-components-repository-shared.mjs +2 -2
  402. package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
  403. package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
  404. package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
  405. package/fesm2022/c8y-ngx-components-tenants.mjs +5 -1
  406. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  407. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -2
  408. package/fesm2022/c8y-ngx-components-translation-editor-data.mjs.map +1 -1
  409. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +43 -17
  410. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
  411. package/fesm2022/c8y-ngx-components-upgrade.mjs +16 -2
  412. package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
  413. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  414. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +2 -1
  415. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
  416. package/fesm2022/c8y-ngx-components.mjs +151 -38
  417. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  418. package/files-repository/files-repository.component.d.ts.map +1 -1
  419. package/files-repository/files-repository.service.d.ts +0 -2
  420. package/files-repository/files-repository.service.d.ts.map +1 -1
  421. package/icon-selector/icon-selector.component.d.ts +3 -2
  422. package/icon-selector/icon-selector.component.d.ts.map +1 -1
  423. package/icon-selector/icons/index.d.ts +1 -0
  424. package/icon-selector/icons/index.d.ts.map +1 -1
  425. package/locales/de.po +157 -5
  426. package/locales/es.po +157 -5
  427. package/locales/fr.po +157 -5
  428. package/locales/ja_JP.po +156 -5
  429. package/locales/ko.po +156 -5
  430. package/locales/locales.pot +156 -4
  431. package/locales/nl.po +157 -5
  432. package/locales/pl.po +159 -7
  433. package/locales/pt_BR.po +157 -5
  434. package/locales/zh_CN.po +156 -5
  435. package/locales/zh_TW.po +156 -5
  436. package/operations/shared/status-option.model.d.ts +2 -1
  437. package/operations/shared/status-option.model.d.ts.map +1 -1
  438. package/package.json +1 -1
  439. package/register-device/bulk/bulk-device-registration-modal.component.d.ts +6 -2
  440. package/register-device/bulk/bulk-device-registration-modal.component.d.ts.map +1 -1
  441. package/register-device/general/general-device-registration-button.component.d.ts +1 -1
  442. package/register-device/general/general-device-registration-button.component.d.ts.map +1 -1
  443. package/register-device/general/general-device-registration.component.d.ts +21 -7
  444. package/register-device/general/general-device-registration.component.d.ts.map +1 -1
  445. package/remote-access/configurations/c8y-ngx-components-remote-access-configurations.d.ts.map +1 -0
  446. package/remote-access/configurations/index.d.ts +3 -0
  447. package/remote-access/configurations/index.d.ts.map +1 -0
  448. package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts +34 -0
  449. package/remote-access/configurations/remote-access-configuration-list/remote-access-configuration-list.component.d.ts.map +1 -0
  450. package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts +17 -0
  451. package/remote-access/configurations/remote-access-configuration-list/remote-access-connect-button/remote-access-connect-button.component.d.ts.map +1 -0
  452. package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts +18 -0
  453. package/remote-access/configurations/remote-access-pick-protocol-modal/remote-access-pick-protocol-modal.component.d.ts.map +1 -0
  454. package/remote-access/data/c8y-ngx-components-remote-access-data.d.ts.map +1 -0
  455. package/remote-access/data/index.d.ts +3 -0
  456. package/remote-access/data/index.d.ts.map +1 -0
  457. package/remote-access/data/remote-access-protocol-provider.d.ts +21 -0
  458. package/remote-access/data/remote-access-protocol-provider.d.ts.map +1 -0
  459. package/remote-access/data/remote-access.service.d.ts +94 -0
  460. package/remote-access/data/remote-access.service.d.ts.map +1 -0
  461. package/remote-access/passthrough/c8y-ngx-components-remote-access-passthrough.d.ts.map +1 -0
  462. package/remote-access/passthrough/index.d.ts +17 -0
  463. package/remote-access/passthrough/index.d.ts.map +1 -0
  464. package/remote-access/shared/c8y-ngx-components-remote-access-shared.d.ts.map +1 -0
  465. package/remote-access/shared/index.d.ts +3 -0
  466. package/remote-access/shared/index.d.ts.map +1 -0
  467. package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts +37 -0
  468. package/remote-access/shared/remote-access-basic-endpoint-modal/remote-access-basic-endpoint-modal.component.d.ts.map +1 -0
  469. package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts +38 -0
  470. package/remote-access/shared/ssh-key-input/ssh-key-input.component.d.ts.map +1 -0
  471. package/remote-access/ssh/c8y-ngx-components-remote-access-ssh.d.ts.map +1 -0
  472. package/remote-access/ssh/index.d.ts +22 -0
  473. package/remote-access/ssh/index.d.ts.map +1 -0
  474. package/remote-access/ssh/remote-access-ssh-endpoint-modal/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.d.ts.map +1 -0
  475. package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts +2 -0
  476. package/remote-access/ssh/remote-access-ssh-endpoint-modal/index.d.ts.map +1 -0
  477. package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts +64 -0
  478. package/remote-access/ssh/remote-access-ssh-endpoint-modal/remote-access-ssh-endpoint-modal.component.d.ts.map +1 -0
  479. package/remote-access/telnet/c8y-ngx-components-remote-access-telnet.d.ts.map +1 -0
  480. package/remote-access/telnet/index.d.ts +17 -0
  481. package/remote-access/telnet/index.d.ts.map +1 -0
  482. package/remote-access/terminal-viewer/c8y-ngx-components-remote-access-terminal-viewer.d.ts.map +1 -0
  483. package/remote-access/terminal-viewer/index.d.ts +2 -0
  484. package/remote-access/terminal-viewer/index.d.ts.map +1 -0
  485. package/remote-access/terminal-viewer/shell-adapter.d.ts +14 -0
  486. package/remote-access/terminal-viewer/shell-adapter.d.ts.map +1 -0
  487. package/remote-access/terminal-viewer/telnet-negotiator.d.ts +13 -0
  488. package/remote-access/terminal-viewer/telnet-negotiator.d.ts.map +1 -0
  489. package/remote-access/terminal-viewer/terminal-viewer.component.d.ts +25 -0
  490. package/remote-access/terminal-viewer/terminal-viewer.component.d.ts.map +1 -0
  491. package/remote-access/vnc/c8y-ngx-components-remote-access-vnc.d.ts.map +1 -0
  492. package/remote-access/vnc/index.d.ts +22 -0
  493. package/remote-access/vnc/index.d.ts.map +1 -0
  494. package/remote-access/vnc/remote-access-vnc-endpoint-modal/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.d.ts.map +1 -0
  495. package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts +2 -0
  496. package/remote-access/vnc/remote-access-vnc-endpoint-modal/index.d.ts.map +1 -0
  497. package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts +46 -0
  498. package/remote-access/vnc/remote-access-vnc-endpoint-modal/remote-access-vnc-endpoint-modal.component.d.ts.map +1 -0
  499. package/remote-access/vnc/vnc-viewer/c8y-ngx-components-remote-access-vnc-vnc-viewer.d.ts.map +1 -0
  500. package/remote-access/vnc/vnc-viewer/index.d.ts +2 -0
  501. package/remote-access/vnc/vnc-viewer/index.d.ts.map +1 -0
  502. package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts +32 -0
  503. package/remote-access/vnc/vnc-viewer/vnc-credentials-prompt/vnc-credentials-prompt.component.d.ts.map +1 -0
  504. package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts +37 -0
  505. package/remote-access/vnc/vnc-viewer/vnc-viewer.component.d.ts.map +1 -0
  506. package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts +2 -1
  507. package/replace-device/replace-device-wizard/replace-device-wizard.model.d.ts.map +1 -1
  508. package/report-dashboard/report-dashboard-list.component.d.ts +29 -0
  509. package/report-dashboard/report-dashboard-list.component.d.ts.map +1 -1
  510. package/repository/shared/repository.model.d.ts +2 -1
  511. package/repository/shared/repository.model.d.ts.map +1 -1
  512. package/services/status-options/status-options.model.d.ts +2 -1
  513. package/services/status-options/status-options.model.d.ts.map +1 -1
  514. package/sub-assets/group-info.component.d.ts +2 -1
  515. package/sub-assets/group-info.component.d.ts.map +1 -1
  516. package/tenants/custom-properties/custom-properties.service.d.ts.map +1 -1
  517. package/translation-editor/data/translation-store.service.d.ts.map +1 -1
  518. package/trusted-certificates/list/trusted-certificate-list.component.d.ts +7 -2
  519. package/trusted-certificates/list/trusted-certificate-list.component.d.ts.map +1 -1
  520. package/upgrade/bridge.service.d.ts +5 -0
  521. package/upgrade/bridge.service.d.ts.map +1 -1
  522. package/widgets/implementations/alarms/severity-icon.pipe.d.ts.map +1 -1
  523. package/widgets/implementations/datapoints-table/datapoints-table-config/datapoints-table-config.component.d.ts.map +1 -1
  524. package/widgets/implementations/kpi/kpi-widget.model.d.ts +2 -1
  525. package/widgets/implementations/kpi/kpi-widget.model.d.ts.map +1 -1
  526. package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts +0 -10
  527. package/ecosystem/application-plugins/only-latest-plugin-version.pipe.d.ts.map +0 -1
  528. package/esm2022/ecosystem/application-plugins/only-latest-plugin-version.pipe.mjs +0 -20
@@ -145,11 +145,11 @@ export class ApplicationCardComponent {
145
145
  }
146
146
  }
147
147
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ApplicationCardComponent, deps: [{ token: i1.ApplicationService }, { token: i2.EcosystemService }, { token: i3.AlertService }, { token: i4.Router }, { token: i3.WizardModalService }, { token: i3.AlertService }, { token: i3.PluginsService }, { token: i3.GainsightService }], target: i0.ɵɵFactoryTarget.Component }); }
148
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ApplicationCardComponent, selector: "c8y-application-card", inputs: { app: "app", canEdit: "canEdit" }, outputs: { onAppDeleted: "onAppDeleted", onAppCloned: "onAppCloned" }, ngImport: i0, template: "<div\n class=\"card pointer card--d-col notFeature\"\n data-cy=\"application-card--extensions-list\"\n *ngIf=\"!isFeature\"\n>\n <div\n class=\"card-block text-center card-column-40\"\n data-cy=\"application-card--package-name\"\n (click)=\"detail()\"\n >\n <button\n class=\"card__ribbon btn-clean\"\n [attr.aria-label]=\"\n (app.label || app.manifest?.label | translatePackageLabel) +\n ': ' +\n (packageTypeLabels[packageType].tooltip | translate)\n \"\n tooltip=\"{{ packageTypeLabels[packageType].tooltip | translate }}\"\n placement=\"right\"\n type=\"button\"\n *ngIf=\"packageType !== PACKAGE_TYPE.CUSTOM\"\n [delay]=\"500\"\n >\n <span\n [ngClass]=\"{\n 'bg-info': packageType === PACKAGE_TYPE.COMMUNITY,\n 'bg-primary': packageType === PACKAGE_TYPE.OFFICIAL\n }\"\n >\n {{ app.label || app.manifest?.label | translatePackageLabel }}\n </span>\n </button>\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i\n c8yIcon=\"big-parcel\"\n *ngIf=\"isPackage\"\n ></i>\n <i\n c8yIcon=\"microchip\"\n *ngIf=\"isMicroservice\"\n ></i>\n <i\n c8yIcon=\"globe1\"\n *ngIf=\"isExternal\"\n ></i>\n </div>\n <div style=\"line-height: 1.3\">\n <p class=\"e2e-appCardName text-medium text-break-word\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <button\n class=\"btn-clean m-l-4\"\n [attr.aria-label]=\"'Update available' | translate\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n >\n <i\n class=\"text-warning icon-16\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n </p>\n </ng-container>\n <p\n class=\"small text-break-word\"\n *ngIf=\"app.manifest?.author\"\n >\n {{ app.manifest.author }}\n </p>\n </div>\n </div>\n <div\n class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\"\n (click)=\"detail()\"\n >\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0 text-break-word\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n {{ app.description || app.manifest?.description | translate }}\n </p>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0\"\n *ngIf=\"!app.description && !app.manifest?.description\"\n >\n <em class=\"text-muted\">{{ 'No description available.' | translate }}</em>\n </p>\n </div>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 d-flex card-column-20 text-center-grid flex-wrap gap-8\"\n >\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n ((isUnpacked ? UNPACKED_LABEL : appState?.label) | translate) +\n ': ' +\n (appState?.tooltip | translate)\n \"\n [tooltip]=\"appState?.tooltip | translate\"\n placement=\"top\"\n [delay]=\"500\"\n >\n <span\n class=\"label\"\n [ngClass]=\"appState?.class\"\n >\n {{ appState?.label | translate }}\n </span>\n </button>\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n (packageContentState?.label | translate) +\n ': ' +\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL) | translate\n \"\n [tooltip]=\"\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL\n ) | translate\n \"\n placement=\"top\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState?.class ? packageContentState?.class : 'label-danger'\"\n >\n {{\n packageContentState?.label || packageTypeLabels[PACKAGE_TYPE.UNKNOWN].label | translate\n }}\n </span>\n </button>\n </div>\n <div class=\"card-footer no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <div class=\"p-b-16 card-hidden-list\"></div>\n <button\n class=\"btn btn-sm btn-default\"\n [title]=\"openButtonTitle | translate\"\n type=\"button\"\n (click)=\"openApp(); $event.stopPropagation()\"\n *ngIf=\"canOpenInBrowser\"\n [disabled]=\"disableOpenInBrowser\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"external-link\"\n ></i>\n {{ 'Open' | translate }}\n </button>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n </div>\n <div class=\"p-r-40 card-hidden-grid\"></div>\n <div\n class=\"card-actions m-t-0\"\n *ngIf=\"canEdit || canOpenInBrowser || canDelete\"\n >\n <div\n class=\"dropdown\"\n #appCardDropdown=\"bs-dropdown\"\n dropdown\n [cdkTrapFocus]=\"appCardDropdown.isOpen\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n data-cy=\"application-card--settings-button\"\n type=\"button\"\n dropdownToggle\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n *dropdownMenu\n >\n <li *ngIf=\"canEdit\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n data-cy=\"application-card--edit-button\"\n (click)=\"detail()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"pencil\"\n ></i>\n {{ 'Edit' | translate }}\n </button>\n </li>\n <ng-container *c8yIfAllowed=\"['ROLE_APPLICATION_MANAGEMENT_ADMIN']\">\n <li>\n <button\n [title]=\"canDelete ? ('Delete' | translate) : (CANNOT_DELETE_HINT | translate)\"\n type=\"button\"\n data-cy=\"application-card--delete-button\"\n [disabled]=\"!canDelete\"\n (click)=\"delete()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"delete\"\n ></i>\n {{ 'Delete' | translate }}\n </button>\n </li>\n <li *ngIf=\"canClone\">\n <button\n [title]=\"'Clone`package,verb`' | translate\"\n type=\"button\"\n *ngIf=\"isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`package,verb`' | translate }}\n </button>\n <button\n [title]=\"'Clone`application,verb`' | translate\"\n type=\"button\"\n *ngIf=\"!isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`application,verb`' | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</div>\n\n<button\n class=\"card pointer card--d-col\"\n type=\"button\"\n (click)=\"detail()\"\n *ngIf=\"isFeature\"\n>\n <div class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i c8yIcon=\"tab\"></i>\n </div>\n <div>\n <p\n class=\"e2e-appCardName text-medium\"\n title=\"{{ app | humanizeAppName | async }}\"\n >\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div\n class=\"text-center-grid\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <span\n class=\"label\"\n [ngClass]=\"appState.class\"\n >\n {{ appState.label | translate }}\n </span>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState.class\"\n >\n {{ packageContentState.label | translate }}\n </span>\n </div>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n</button>\n", dependencies: [{ kind: "component", type: i3.AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.IfAllowedDirective, selector: "[c8yIfAllowed]", inputs: ["c8yIfAllowed", "c8yIfAllowedAllowAny"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i8.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.HumanizeAppNamePipe, name: "humanizeAppName" }, { kind: "pipe", type: i9.TranslatePackageLabelPipe, name: "translatePackageLabel" }] }); }
148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ApplicationCardComponent, selector: "c8y-application-card", inputs: { app: "app", canEdit: "canEdit" }, outputs: { onAppDeleted: "onAppDeleted", onAppCloned: "onAppCloned" }, ngImport: i0, template: "<div\n class=\"card pointer card--d-col notFeature\"\n data-cy=\"application-card--extensions-list\"\n *ngIf=\"!isFeature\"\n>\n <div\n class=\"card-block text-center card-column-40\"\n data-cy=\"application-card--package-name\"\n (click)=\"detail()\"\n >\n <button\n class=\"card__ribbon btn-clean\"\n [attr.aria-label]=\"\n (app.label || app.manifest?.label | translatePackageLabel) +\n ': ' +\n (packageTypeLabels[packageType].tooltip | translate)\n \"\n tooltip=\"{{ packageTypeLabels[packageType].tooltip | translate }}\"\n placement=\"right\"\n type=\"button\"\n *ngIf=\"packageType !== PACKAGE_TYPE.CUSTOM\"\n [delay]=\"500\"\n >\n <span\n [ngClass]=\"{\n 'bg-info': packageType === PACKAGE_TYPE.COMMUNITY,\n 'bg-primary': packageType === PACKAGE_TYPE.OFFICIAL,\n 'bg-warning': packageType === PACKAGE_TYPE.ARCHIVED\n }\"\n >\n {{ app.label || app.manifest?.label | translatePackageLabel }}\n </span>\n </button>\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i\n c8yIcon=\"big-parcel\"\n *ngIf=\"isPackage\"\n ></i>\n <i\n c8yIcon=\"microchip\"\n *ngIf=\"isMicroservice\"\n ></i>\n <i\n c8yIcon=\"globe1\"\n *ngIf=\"isExternal\"\n ></i>\n </div>\n <div style=\"line-height: 1.3\">\n <p class=\"e2e-appCardName text-medium text-break-word\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <button\n class=\"btn-clean m-l-4\"\n [attr.aria-label]=\"'Update available' | translate\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n >\n <i\n class=\"text-warning icon-16\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n </p>\n </ng-container>\n <p\n class=\"small text-break-word\"\n *ngIf=\"app.manifest?.author\"\n >\n {{ app.manifest.author }}\n </p>\n </div>\n </div>\n <div\n class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\"\n (click)=\"detail()\"\n >\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0 text-break-word\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n {{ app.description || app.manifest?.description | translate }}\n </p>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0\"\n *ngIf=\"!app.description && !app.manifest?.description\"\n >\n <em class=\"text-muted\">{{ 'No description available.' | translate }}</em>\n </p>\n </div>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 d-flex card-column-20 text-center-grid flex-wrap gap-8\"\n >\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n ((isUnpacked ? UNPACKED_LABEL : appState?.label) | translate) +\n ': ' +\n (appState?.tooltip | translate)\n \"\n [tooltip]=\"appState?.tooltip | translate\"\n placement=\"top\"\n [delay]=\"500\"\n >\n <span\n class=\"label\"\n [ngClass]=\"appState?.class\"\n >\n {{ appState?.label | translate }}\n </span>\n </button>\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n (packageContentState?.label | translate) +\n ': ' +\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL) | translate\n \"\n [tooltip]=\"\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL\n ) | translate\n \"\n placement=\"top\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState?.class ? packageContentState?.class : 'label-danger'\"\n >\n {{\n packageContentState?.label || packageTypeLabels[PACKAGE_TYPE.UNKNOWN].label | translate\n }}\n </span>\n </button>\n </div>\n <div class=\"card-footer no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <div class=\"p-b-16 card-hidden-list\"></div>\n <button\n class=\"btn btn-sm btn-default\"\n [title]=\"openButtonTitle | translate\"\n type=\"button\"\n (click)=\"openApp(); $event.stopPropagation()\"\n *ngIf=\"canOpenInBrowser\"\n [disabled]=\"disableOpenInBrowser\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"external-link\"\n ></i>\n {{ 'Open' | translate }}\n </button>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n </div>\n <div class=\"p-r-40 card-hidden-grid\"></div>\n <div\n class=\"card-actions m-t-0\"\n *ngIf=\"canEdit || canOpenInBrowser || canDelete\"\n >\n <div\n class=\"dropdown\"\n #appCardDropdown=\"bs-dropdown\"\n dropdown\n [cdkTrapFocus]=\"appCardDropdown.isOpen\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n data-cy=\"application-card--settings-button\"\n type=\"button\"\n dropdownToggle\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n *dropdownMenu\n >\n <li *ngIf=\"canEdit\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n data-cy=\"application-card--edit-button\"\n (click)=\"detail()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"pencil\"\n ></i>\n {{ 'Edit' | translate }}\n </button>\n </li>\n <ng-container *c8yIfAllowed=\"['ROLE_APPLICATION_MANAGEMENT_ADMIN']\">\n <li>\n <button\n [title]=\"canDelete ? ('Delete' | translate) : (CANNOT_DELETE_HINT | translate)\"\n type=\"button\"\n data-cy=\"application-card--delete-button\"\n [disabled]=\"!canDelete\"\n (click)=\"delete()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"delete\"\n ></i>\n {{ 'Delete' | translate }}\n </button>\n </li>\n <li *ngIf=\"canClone\">\n <button\n [title]=\"'Clone`package,verb`' | translate\"\n type=\"button\"\n *ngIf=\"isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`package,verb`' | translate }}\n </button>\n <button\n [title]=\"'Clone`application,verb`' | translate\"\n type=\"button\"\n *ngIf=\"!isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`application,verb`' | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</div>\n\n<button\n class=\"card pointer card--d-col\"\n type=\"button\"\n (click)=\"detail()\"\n *ngIf=\"isFeature\"\n>\n <div class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i c8yIcon=\"tab\"></i>\n </div>\n <div>\n <p\n class=\"e2e-appCardName text-medium\"\n title=\"{{ app | humanizeAppName | async }}\"\n >\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div\n class=\"text-center-grid\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <span\n class=\"label\"\n [ngClass]=\"appState.class\"\n >\n {{ appState.label | translate }}\n </span>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState.class\"\n >\n {{ packageContentState.label | translate }}\n </span>\n </div>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n</button>\n", dependencies: [{ kind: "component", type: i3.AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.IfAllowedDirective, selector: "[c8yIfAllowed]", inputs: ["c8yIfAllowed", "c8yIfAllowedAllowAny"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i8.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.HumanizeAppNamePipe, name: "humanizeAppName" }, { kind: "pipe", type: i9.TranslatePackageLabelPipe, name: "translatePackageLabel" }] }); }
149
149
  }
150
150
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ApplicationCardComponent, decorators: [{
151
151
  type: Component,
152
- args: [{ selector: 'c8y-application-card', template: "<div\n class=\"card pointer card--d-col notFeature\"\n data-cy=\"application-card--extensions-list\"\n *ngIf=\"!isFeature\"\n>\n <div\n class=\"card-block text-center card-column-40\"\n data-cy=\"application-card--package-name\"\n (click)=\"detail()\"\n >\n <button\n class=\"card__ribbon btn-clean\"\n [attr.aria-label]=\"\n (app.label || app.manifest?.label | translatePackageLabel) +\n ': ' +\n (packageTypeLabels[packageType].tooltip | translate)\n \"\n tooltip=\"{{ packageTypeLabels[packageType].tooltip | translate }}\"\n placement=\"right\"\n type=\"button\"\n *ngIf=\"packageType !== PACKAGE_TYPE.CUSTOM\"\n [delay]=\"500\"\n >\n <span\n [ngClass]=\"{\n 'bg-info': packageType === PACKAGE_TYPE.COMMUNITY,\n 'bg-primary': packageType === PACKAGE_TYPE.OFFICIAL\n }\"\n >\n {{ app.label || app.manifest?.label | translatePackageLabel }}\n </span>\n </button>\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i\n c8yIcon=\"big-parcel\"\n *ngIf=\"isPackage\"\n ></i>\n <i\n c8yIcon=\"microchip\"\n *ngIf=\"isMicroservice\"\n ></i>\n <i\n c8yIcon=\"globe1\"\n *ngIf=\"isExternal\"\n ></i>\n </div>\n <div style=\"line-height: 1.3\">\n <p class=\"e2e-appCardName text-medium text-break-word\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <button\n class=\"btn-clean m-l-4\"\n [attr.aria-label]=\"'Update available' | translate\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n >\n <i\n class=\"text-warning icon-16\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n </p>\n </ng-container>\n <p\n class=\"small text-break-word\"\n *ngIf=\"app.manifest?.author\"\n >\n {{ app.manifest.author }}\n </p>\n </div>\n </div>\n <div\n class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\"\n (click)=\"detail()\"\n >\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0 text-break-word\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n {{ app.description || app.manifest?.description | translate }}\n </p>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0\"\n *ngIf=\"!app.description && !app.manifest?.description\"\n >\n <em class=\"text-muted\">{{ 'No description available.' | translate }}</em>\n </p>\n </div>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 d-flex card-column-20 text-center-grid flex-wrap gap-8\"\n >\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n ((isUnpacked ? UNPACKED_LABEL : appState?.label) | translate) +\n ': ' +\n (appState?.tooltip | translate)\n \"\n [tooltip]=\"appState?.tooltip | translate\"\n placement=\"top\"\n [delay]=\"500\"\n >\n <span\n class=\"label\"\n [ngClass]=\"appState?.class\"\n >\n {{ appState?.label | translate }}\n </span>\n </button>\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n (packageContentState?.label | translate) +\n ': ' +\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL) | translate\n \"\n [tooltip]=\"\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL\n ) | translate\n \"\n placement=\"top\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState?.class ? packageContentState?.class : 'label-danger'\"\n >\n {{\n packageContentState?.label || packageTypeLabels[PACKAGE_TYPE.UNKNOWN].label | translate\n }}\n </span>\n </button>\n </div>\n <div class=\"card-footer no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <div class=\"p-b-16 card-hidden-list\"></div>\n <button\n class=\"btn btn-sm btn-default\"\n [title]=\"openButtonTitle | translate\"\n type=\"button\"\n (click)=\"openApp(); $event.stopPropagation()\"\n *ngIf=\"canOpenInBrowser\"\n [disabled]=\"disableOpenInBrowser\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"external-link\"\n ></i>\n {{ 'Open' | translate }}\n </button>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n </div>\n <div class=\"p-r-40 card-hidden-grid\"></div>\n <div\n class=\"card-actions m-t-0\"\n *ngIf=\"canEdit || canOpenInBrowser || canDelete\"\n >\n <div\n class=\"dropdown\"\n #appCardDropdown=\"bs-dropdown\"\n dropdown\n [cdkTrapFocus]=\"appCardDropdown.isOpen\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n data-cy=\"application-card--settings-button\"\n type=\"button\"\n dropdownToggle\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n *dropdownMenu\n >\n <li *ngIf=\"canEdit\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n data-cy=\"application-card--edit-button\"\n (click)=\"detail()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"pencil\"\n ></i>\n {{ 'Edit' | translate }}\n </button>\n </li>\n <ng-container *c8yIfAllowed=\"['ROLE_APPLICATION_MANAGEMENT_ADMIN']\">\n <li>\n <button\n [title]=\"canDelete ? ('Delete' | translate) : (CANNOT_DELETE_HINT | translate)\"\n type=\"button\"\n data-cy=\"application-card--delete-button\"\n [disabled]=\"!canDelete\"\n (click)=\"delete()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"delete\"\n ></i>\n {{ 'Delete' | translate }}\n </button>\n </li>\n <li *ngIf=\"canClone\">\n <button\n [title]=\"'Clone`package,verb`' | translate\"\n type=\"button\"\n *ngIf=\"isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`package,verb`' | translate }}\n </button>\n <button\n [title]=\"'Clone`application,verb`' | translate\"\n type=\"button\"\n *ngIf=\"!isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`application,verb`' | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</div>\n\n<button\n class=\"card pointer card--d-col\"\n type=\"button\"\n (click)=\"detail()\"\n *ngIf=\"isFeature\"\n>\n <div class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i c8yIcon=\"tab\"></i>\n </div>\n <div>\n <p\n class=\"e2e-appCardName text-medium\"\n title=\"{{ app | humanizeAppName | async }}\"\n >\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div\n class=\"text-center-grid\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <span\n class=\"label\"\n [ngClass]=\"appState.class\"\n >\n {{ appState.label | translate }}\n </span>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState.class\"\n >\n {{ packageContentState.label | translate }}\n </span>\n </div>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n</button>\n" }]
152
+ args: [{ selector: 'c8y-application-card', template: "<div\n class=\"card pointer card--d-col notFeature\"\n data-cy=\"application-card--extensions-list\"\n *ngIf=\"!isFeature\"\n>\n <div\n class=\"card-block text-center card-column-40\"\n data-cy=\"application-card--package-name\"\n (click)=\"detail()\"\n >\n <button\n class=\"card__ribbon btn-clean\"\n [attr.aria-label]=\"\n (app.label || app.manifest?.label | translatePackageLabel) +\n ': ' +\n (packageTypeLabels[packageType].tooltip | translate)\n \"\n tooltip=\"{{ packageTypeLabels[packageType].tooltip | translate }}\"\n placement=\"right\"\n type=\"button\"\n *ngIf=\"packageType !== PACKAGE_TYPE.CUSTOM\"\n [delay]=\"500\"\n >\n <span\n [ngClass]=\"{\n 'bg-info': packageType === PACKAGE_TYPE.COMMUNITY,\n 'bg-primary': packageType === PACKAGE_TYPE.OFFICIAL,\n 'bg-warning': packageType === PACKAGE_TYPE.ARCHIVED\n }\"\n >\n {{ app.label || app.manifest?.label | translatePackageLabel }}\n </span>\n </button>\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i\n c8yIcon=\"big-parcel\"\n *ngIf=\"isPackage\"\n ></i>\n <i\n c8yIcon=\"microchip\"\n *ngIf=\"isMicroservice\"\n ></i>\n <i\n c8yIcon=\"globe1\"\n *ngIf=\"isExternal\"\n ></i>\n </div>\n <div style=\"line-height: 1.3\">\n <p class=\"e2e-appCardName text-medium text-break-word\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <button\n class=\"btn-clean m-l-4\"\n [attr.aria-label]=\"'Update available' | translate\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n >\n <i\n class=\"text-warning icon-16\"\n c8yIcon=\"exclamation-triangle\"\n ></i>\n </button>\n </p>\n </ng-container>\n <p\n class=\"small text-break-word\"\n *ngIf=\"app.manifest?.author\"\n >\n {{ app.manifest.author }}\n </p>\n </div>\n </div>\n <div\n class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\"\n (click)=\"detail()\"\n >\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0 text-break-word\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n {{ app.description || app.manifest?.description | translate }}\n </p>\n <p\n class=\"small l-h-tight p-b-8 p-l-0 p-r-0\"\n *ngIf=\"!app.description && !app.manifest?.description\"\n >\n <em class=\"text-muted\">{{ 'No description available.' | translate }}</em>\n </p>\n </div>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 d-flex card-column-20 text-center-grid flex-wrap gap-8\"\n >\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n ((isUnpacked ? UNPACKED_LABEL : appState?.label) | translate) +\n ': ' +\n (appState?.tooltip | translate)\n \"\n [tooltip]=\"appState?.tooltip | translate\"\n placement=\"top\"\n [delay]=\"500\"\n >\n <span\n class=\"label\"\n [ngClass]=\"appState?.class\"\n >\n {{ appState?.label | translate }}\n </span>\n </button>\n <button\n class=\"btn-clean\"\n [attr.aria-label]=\"\n (packageContentState?.label | translate) +\n ': ' +\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL) | translate\n \"\n [tooltip]=\"\n (packageContentState?.tooltip\n ? packageContentState?.tooltip\n : PACKAGE_CONTENT_UNDETERMINED_LABEL\n ) | translate\n \"\n placement=\"top\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState?.class ? packageContentState?.class : 'label-danger'\"\n >\n {{\n packageContentState?.label || packageTypeLabels[PACKAGE_TYPE.UNKNOWN].label | translate\n }}\n </span>\n </button>\n </div>\n <div class=\"card-footer no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <div class=\"p-b-16 card-hidden-list\"></div>\n <button\n class=\"btn btn-sm btn-default\"\n [title]=\"openButtonTitle | translate\"\n type=\"button\"\n (click)=\"openApp(); $event.stopPropagation()\"\n *ngIf=\"canOpenInBrowser\"\n [disabled]=\"disableOpenInBrowser\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"external-link\"\n ></i>\n {{ 'Open' | translate }}\n </button>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n </div>\n <div class=\"p-r-40 card-hidden-grid\"></div>\n <div\n class=\"card-actions m-t-0\"\n *ngIf=\"canEdit || canOpenInBrowser || canDelete\"\n >\n <div\n class=\"dropdown\"\n #appCardDropdown=\"bs-dropdown\"\n dropdown\n [cdkTrapFocus]=\"appCardDropdown.isOpen\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n title=\"{{ 'Settings' | translate }}\"\n data-cy=\"application-card--settings-button\"\n type=\"button\"\n dropdownToggle\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n *dropdownMenu\n >\n <li *ngIf=\"canEdit\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n data-cy=\"application-card--edit-button\"\n (click)=\"detail()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"pencil\"\n ></i>\n {{ 'Edit' | translate }}\n </button>\n </li>\n <ng-container *c8yIfAllowed=\"['ROLE_APPLICATION_MANAGEMENT_ADMIN']\">\n <li>\n <button\n [title]=\"canDelete ? ('Delete' | translate) : (CANNOT_DELETE_HINT | translate)\"\n type=\"button\"\n data-cy=\"application-card--delete-button\"\n [disabled]=\"!canDelete\"\n (click)=\"delete()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"delete\"\n ></i>\n {{ 'Delete' | translate }}\n </button>\n </li>\n <li *ngIf=\"canClone\">\n <button\n [title]=\"'Clone`package,verb`' | translate\"\n type=\"button\"\n *ngIf=\"isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`package,verb`' | translate }}\n </button>\n <button\n [title]=\"'Clone`application,verb`' | translate\"\n type=\"button\"\n *ngIf=\"!isPackage\"\n (click)=\"clone()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"copy\"\n ></i>\n {{ 'Clone`application,verb`' | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</div>\n\n<button\n class=\"card pointer card--d-col\"\n type=\"button\"\n (click)=\"detail()\"\n *ngIf=\"isFeature\"\n>\n <div class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i c8yIcon=\"tab\"></i>\n </div>\n <div>\n <p\n class=\"e2e-appCardName text-medium\"\n title=\"{{ app | humanizeAppName | async }}\"\n >\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n class=\"text-warning m-l-4\"\n c8yIcon=\"exclamation-triangle\"\n [tooltip]=\"'Update available' | translate\"\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div\n class=\"text-center-grid\"\n *ngIf=\"app.description || app.manifest?.description\"\n >\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <span\n class=\"label\"\n [ngClass]=\"appState.class\"\n >\n {{ appState.label | translate }}\n </span>\n </div>\n <div\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n *ngIf=\"isPackage\"\n >\n <span\n class=\"label\"\n [ngClass]=\"packageContentState.class\"\n >\n {{ packageContentState.label | translate }}\n </span>\n </div>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n</button>\n" }]
153
153
  }], ctorParameters: () => [{ type: i1.ApplicationService }, { type: i2.EcosystemService }, { type: i3.AlertService }, { type: i4.Router }, { type: i3.WizardModalService }, { type: i3.AlertService }, { type: i3.PluginsService }, { type: i3.GainsightService }], propDecorators: { app: [{
154
154
  type: Input
155
155
  }], canEdit: [{
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
159
159
  }], onAppCloned: [{
160
160
  type: Output
161
161
  }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL2FwcGxpY2F0aW9uLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC9hcHBsaWNhdGlvbi1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBcUMsTUFBTSxhQUFhLENBQUM7QUFDcEYsT0FBTyxFQUNMLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsT0FBTyxFQUNQLFdBQVcsRUFDWCxjQUFjLEVBSWQsa0JBQWtCLEVBQ25CLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsU0FBUyxFQUFvQixtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7OztBQU16RixNQUFNLE9BQU8sd0JBQXdCO0lBeUJuQyxJQUFJLGVBQWU7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0I7WUFDL0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDakIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFZRCxZQUNVLGtCQUFzQyxFQUN0QyxnQkFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsTUFBYyxFQUNk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SUFBSSxDQUFDO2dCQUVQLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0NBQWdDLENBQ3BGLElBQUksQ0FBQywyQkFBMkIsRUFDaEMsUUFBUSxDQUNULENBQUM7Z0JBQ0YsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUMxQixJQUFJLENBQUMsd0JBQXdCLENBQzlCLENBQUM7WUFDSixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7b0JBQ3RDLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0EzTFUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsK0tDekJyQyxxNlRBb1VBOzsyRkQzU2Esd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLHNCQUFzQjs4UkFNdkIsR0FBRztzQkFBWCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXBwbGljYXRpb25TZXJ2aWNlLCBJQXBwbGljYXRpb24sIElBcHBsaWNhdGlvblZlcnNpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEdhaW5zaWdodFNlcnZpY2UsXG4gIGdldHRleHQsXG4gIFBhY2thZ2VUeXBlLFxuICBQbHVnaW5zU2VydmljZSxcbiAgV2l6YXJkLFxuICBXaXphcmRDb21wb25lbnQsXG4gIFdpemFyZENvbmZpZyxcbiAgV2l6YXJkTW9kYWxTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgTW9kYWxPcHRpb25zIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVjb3N5c3RlbVNlcnZpY2UgfSBmcm9tICcuL2Vjb3N5c3RlbS5zZXJ2aWNlJztcbmltcG9ydCB7IFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0gfSBmcm9tICcuL2Vjb3N5c3RlbS5tb2RlbCc7XG5pbXBvcnQgeyBEdXBsaWNhdGVBcHBsaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZHVwbGljYXRlLWFwcGxpY2F0aW9uL2R1cGxpY2F0ZS1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVBQX1NUQVRFLCBBcHBsaWNhdGlvblN0YXRlLCBQQUNLQUdFX1RZUEVfTEFCRUxTIH0gZnJvbSAnLi9lY29zeXN0ZW0uY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFwcGxpY2F0aW9uLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwbGljYXRpb24tY2FyZC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25DYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQ1VSUkVOVF9MT0NBVElPTiA9IGxvY2F0aW9uLmhyZWY7XG5cbiAgQElucHV0KCkgYXBwOiBJQXBwbGljYXRpb247XG4gIEBJbnB1dCgpIGNhbkVkaXQgPSB0cnVlO1xuICBAT3V0cHV0KCkgb25BcHBEZWxldGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkFwcENsb25lZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBhcHBTdGF0ZTogQXBwbGljYXRpb25TdGF0ZTtcbiAgcGFja2FnZUNvbnRlbnRTdGF0ZTogQXBwbGljYXRpb25TdGF0ZTtcbiAgcGFja2FnZVR5cGU6IFBhY2thZ2VUeXBlO1xuICBjYW5PcGVuSW5Ccm93c2VyOiBib29sZWFuO1xuICBkaXNhYmxlT3BlbkluQnJvd3NlcjogYm9vbGVhbjtcbiAgY2FuRGVsZXRlOiBib29sZWFuO1xuICBpc1BhY2thZ2U6IGJvb2xlYW47XG4gIGlzUGx1Z2luOiBib29sZWFuO1xuICBpc0ZlYXR1cmU6IGJvb2xlYW47XG4gIGlzRXh0ZXJuYWw6IGJvb2xlYW47XG4gIGlzTWljcm9zZXJ2aWNlOiBib29sZWFuO1xuICBjYW5DbG9uZTogYm9vbGVhbjtcbiAgaXNVbnBhY2tlZDogYm9vbGVhbjtcbiAgc2hvdWxkVXBncmFkZVBhY2thZ2U6IGJvb2xlYW47XG4gIGJsdWVwcmludEFwcGxpY2F0aW9uVmVyc2lvbjogSUFwcGxpY2F0aW9uVmVyc2lvbltdO1xuICBsYXRlc3RBcHBsaWNhdGlvblZlcnNpb246IElBcHBsaWNhdGlvblZlcnNpb247XG4gIGlzU2hvd1ZlcnNpb246IGJvb2xlYW47XG4gIGlzT3duZWRCeU1hbmFnZW1lbnRUZW5hbnQ6IGJvb2xlYW47XG4gIGdldCBvcGVuQnV0dG9uVGl0bGUoKSB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVPcGVuSW5Ccm93c2VyXG4gICAgICA/IGdldHRleHQoJ09wZW4nKVxuICAgICAgOiBnZXR0ZXh0KCdUaGlzIGFwcGxpY2F0aW9uIGlzIG92ZXJyaWRkZW4uJyk7XG4gIH1cblxuICByZWFkb25seSBwYWNrYWdlVHlwZUxhYmVscyA9IFBBQ0tBR0VfVFlQRV9MQUJFTFM7XG4gIHJlYWRvbmx5IFBBQ0tBR0VfVFlQRSA9IFBhY2thZ2VUeXBlO1xuICByZWFkb25seSBVTlBBQ0tFRF9MQUJFTCA9IEFQUF9TVEFURS5VTlBBQ0tFRC5sYWJlbDtcbiAgcmVhZG9ubHkgQ0FOTk9UX0RFTEVURV9ISU5UID0gZ2V0dGV4dChcbiAgICBgU3Vic2NyaWJlZCBvciBjdXJyZW50IGFwcGxpY2F0aW9ucyBjYW4ndCBiZSBkZWxldGVkLiBEZWxldGUgdGhlIGFwcGxpY2F0aW9uIG9uIHRoZSBwYXJlbnQgdGVuYW50IG9yIHVuc3Vic2NyaWJlIGl0IGZyb20gdGhlIGN1cnJlbnQuYFxuICApO1xuICByZWFkb25seSBQQUNLQUdFX0NPTlRFTlRfVU5ERVRFUk1JTkVEX0xBQkVMID0gZ2V0dGV4dChcbiAgICAnUGFja2FnZSBjb250ZW50cyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGVjb3N5c3RlbVNlcnZpY2U6IEVjb3N5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgd2l6YXJkTW9kYWxTZXJ2aWNlOiBXaXphcmRNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGx1Z2luU2VydmljZTogUGx1Z2luc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFwcFN0YXRlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldEFwcFN0YXRlKHRoaXMuYXBwKTtcbiAgICB0aGlzLmNhbk9wZW5JbkJyb3dzZXIgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuY2FuT3BlbkFwcEluQnJvd3Nlcih0aGlzLmFwcCk7XG4gICAgdGhpcy5wYWNrYWdlVHlwZSA9IHRoaXMucGx1Z2luU2VydmljZS5nZXRQYWNrYWdlVHlwZSh0aGlzLmFwcCk7XG4gICAgdGhpcy5kaXNhYmxlT3BlbkluQnJvd3NlciA9XG4gICAgICB0aGlzLmNhbk9wZW5JbkJyb3dzZXIgJiYgKGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5pc092ZXJ3cml0dGVuQnlDdXN0b21BcHAodGhpcy5hcHApKTtcbiAgICB0aGlzLmNhbkRlbGV0ZSA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5jYW5EZWxldGVBcHAodGhpcy5hcHApO1xuICAgIHRoaXMuaXNQYWNrYWdlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzUGFja2FnZSh0aGlzLmFwcCk7XG4gICAgdGhpcy5wYWNrYWdlQ29udGVudFN0YXRlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldFBhY2thZ2VDb250ZW50U3RhdGUodGhpcy5hcHApO1xuICAgIHRoaXMuaXNQbHVnaW4gPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNQbHVnaW4odGhpcy5hcHApO1xuICAgIHRoaXMuaXNGZWF0dXJlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzRmVhdHVyZSh0aGlzLmFwcCk7XG4gICAgdGhpcy5pc01pY3Jvc2VydmljZSA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5pc01pY3Jvc2VydmljZSh0aGlzLmFwcCk7XG4gICAgdGhpcy5pc0V4dGVybmFsID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzRXh0ZXJuYWwodGhpcy5hcHApO1xuICAgIHRoaXMuY2FuQ2xvbmUgPSAhdGhpcy5pc01pY3Jvc2VydmljZSAmJiAhdGhpcy5pc1BsdWdpbjtcbiAgICB0aGlzLmlzVW5wYWNrZWQgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNVbnBhY2tlZCh0aGlzLmFwcCk7XG4gICAgdGhpcy5pc1Nob3dWZXJzaW9uID0gdGhpcy5zaG91bGRTaG93VmVyc2lvbigpO1xuICAgIGF3YWl0IHRoaXMuYXBwbGljYXRpb25VcGRhdGVDaGVjaygpO1xuICB9XG5cbiAgc2hvdWxkU2hvd1ZlcnNpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy5hcHAubWFuaWZlc3Q/LnZlcnNpb247XG4gIH1cblxuICBkZXRhaWwoKSB7XG4gICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkVWRU5UUy5BUFBMSUNBVElPTl9DQVJELFxuICAgICAge1xuICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuQVBQTElDQVRJT05fQ0FSRCxcbiAgICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5BQ1RJT05TLkVESVQsXG4gICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICB9XG4gICAgKTtcblxuICAgIGlmICh0aGlzLmlzTWljcm9zZXJ2aWNlKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvZWNvc3lzdGVtL21pY3Jvc2VydmljZS9taWNyb3NlcnZpY2VzLyR7dGhpcy5hcHAuaWR9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNQYWNrYWdlKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvZWNvc3lzdGVtL2V4dGVuc2lvbi9leHRlbnNpb25zLyR7dGhpcy5hcHAuaWR9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNGZWF0dXJlKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvZWNvc3lzdGVtL2FwcGxpY2F0aW9uL2ZlYXR1cmVzLyR7dGhpcy5hcHAuaWR9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbnMvJHt0aGlzLmFwcC5pZH1gKTtcbiAgfVxuXG4gIG9wZW5BcHAoKSB7XG4gICAgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLm9wZW5BcHAodGhpcy5hcHApO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZGVsZXRlQXBwKHRoaXMuYXBwKTtcbiAgICAgIHRoaXMub25BcHBEZWxldGVkLmVtaXQoKTtcbiAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoXG4gICAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkVWRU5UUy5BUFBMSUNBVElPTl9DQVJELFxuICAgICAgICB7XG4gICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX0NBUkQsXG4gICAgICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5BQ1RJT05TLkRFTEVURSxcbiAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBpZiAoZXgpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoXG4gICAgICAgICAgUFJPRFVDVF9FWFBFUklFTkNFX0VDT1NZU1RFTS5BUFBMSUNBVElPTlMuRVZFTlRTLkFQUExJQ0FUSU9OX0NBUkQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX0NBUkQsXG4gICAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLlJFU1VMVFMuU0VSVkVSX0ZBSUxVUkUsXG4gICAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBjbG9uZSgpIHtcbiAgICBjb25zdCB3aXphcmRDb25maWc6IFdpemFyZENvbmZpZyA9IHtcbiAgICAgIGhlYWRlclRleHQ6ICdBZGQgQXBwbGljYXRpb24nLFxuICAgICAgaGVhZGVySWNvbjogJ2M4eS1hdG9tJ1xuICAgIH07XG5cbiAgICBjb25zdCBpbml0aWFsU3RhdGU6IFdpemFyZDxEdXBsaWNhdGVBcHBsaWNhdGlvbkNvbXBvbmVudD4gPSB7XG4gICAgICB3aXphcmRDb25maWcsXG4gICAgICBjb21wb25lbnRJbml0aWFsU3RhdGU6IHtcbiAgICAgICAgc2VsZWN0ZWRBcHA6IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5hcHApXG4gICAgICB9LFxuICAgICAgaWQ6ICdkdXBsaWNhdGVBcHBsaWNhdGlvbidcbiAgICB9O1xuXG4gICAgY29uc3QgbW9kYWxPcHRpb25zOiBNb2RhbE9wdGlvbnM8V2l6YXJkQ29tcG9uZW50PiA9IHsgaW5pdGlhbFN0YXRlIH07XG5cbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMud2l6YXJkTW9kYWxTZXJ2aWNlLnNob3cobW9kYWxPcHRpb25zKTtcbiAgICBtb2RhbFJlZi5jb250ZW50Lm9uQ2xvc2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMub25BcHBDbG9uZWQubmV4dCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkVWRU5UUy5BUFBMSUNBVElPTl9DQVJELFxuICAgICAge1xuICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuQVBQTElDQVRJT05fQ0FSRCxcbiAgICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5BQ1RJT05TLkNMT05FLFxuICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFwcGxpY2F0aW9uVXBkYXRlQ2hlY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuYXBwLm1hbmlmZXN0Py5zb3VyY2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuYmx1ZXByaW50QXBwbGljYXRpb25WZXJzaW9uID0gKFxuICAgICAgICAgIGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLmxpc3RWZXJzaW9ucyh0aGlzLmFwcC5tYW5pZmVzdD8uc291cmNlKVxuICAgICAgICApLmRhdGE7XG5cbiAgICAgICAgdGhpcy5sYXRlc3RBcHBsaWNhdGlvblZlcnNpb24gPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZ2V0QXBwbGljYXRpb25WZXJzaW9uT2JqZWN0QnlUYWcoXG4gICAgICAgICAgdGhpcy5ibHVlcHJpbnRBcHBsaWNhdGlvblZlcnNpb24sXG4gICAgICAgICAgJ2xhdGVzdCdcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zaG91bGRVcGdyYWRlUGFja2FnZSA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5zaG91bGRVcGdyYWRlUGFja2FnZShcbiAgICAgICAgICB0aGlzLmFwcC5tYW5pZmVzdD8udmVyc2lvbixcbiAgICAgICAgICB0aGlzLmxhdGVzdEFwcGxpY2F0aW9uVmVyc2lvblxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKCF0aGlzLmJsdWVwcmludEFwcGxpY2F0aW9uVmVyc2lvbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImNhcmQgcG9pbnRlciBjYXJkLS1kLWNvbCBub3RGZWF0dXJlXCJcbiAgZGF0YS1jeT1cImFwcGxpY2F0aW9uLWNhcmQtLWV4dGVuc2lvbnMtbGlzdFwiXG4gICpuZ0lmPVwiIWlzRmVhdHVyZVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNhcmQtYmxvY2sgdGV4dC1jZW50ZXIgY2FyZC1jb2x1bW4tNDBcIlxuICAgIGRhdGEtY3k9XCJhcHBsaWNhdGlvbi1jYXJkLS1wYWNrYWdlLW5hbWVcIlxuICAgIChjbGljayk9XCJkZXRhaWwoKVwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImNhcmRfX3JpYmJvbiBidG4tY2xlYW5cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgKGFwcC5sYWJlbCB8fCBhcHAubWFuaWZlc3Q/LmxhYmVsIHwgdHJhbnNsYXRlUGFja2FnZUxhYmVsKSArXG4gICAgICAgICc6ICcgK1xuICAgICAgICAocGFja2FnZVR5cGVMYWJlbHNbcGFja2FnZVR5cGVdLnRvb2x0aXAgfCB0cmFuc2xhdGUpXG4gICAgICBcIlxuICAgICAgdG9vbHRpcD1cInt7IHBhY2thZ2VUeXBlTGFiZWxzW3BhY2thZ2VUeXBlXS50b29sdGlwIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKm5nSWY9XCJwYWNrYWdlVHlwZSAhPT0gUEFDS0FHRV9UWVBFLkNVU1RPTVwiXG4gICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ2JnLWluZm8nOiBwYWNrYWdlVHlwZSA9PT0gUEFDS0FHRV9UWVBFLkNPTU1VTklUWSxcbiAgICAgICAgICAnYmctcHJpbWFyeSc6IHBhY2thZ2VUeXBlID09PSBQQUNLQUdFX1RZUEUuT0ZGSUNJQUxcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIHt7IGFwcC5sYWJlbCB8fCBhcHAubWFuaWZlc3Q/LmxhYmVsIHwgdHJhbnNsYXRlUGFja2FnZUxhYmVsIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYXBwaWNvblwiPlxuICAgICAgPGM4eS1hcHAtaWNvblxuICAgICAgICAqbmdJZj1cIiFpc1BhY2thZ2UgJiYgIWlzRmVhdHVyZSAmJiAhaXNNaWNyb3NlcnZpY2UgJiYgIWlzRXh0ZXJuYWxcIlxuICAgICAgICBbYXBwXT1cImFwcFwiXG4gICAgICAgIFtjb250ZXh0UGF0aF09XCJhcHAuY29udGV4dFBhdGhcIlxuICAgICAgICBbbmFtZV09XCJhcHAubmFtZVwiXG4gICAgICA+PC9jOHktYXBwLWljb24+XG4gICAgICA8aVxuICAgICAgICBjOHlJY29uPVwiYmlnLXBhcmNlbFwiXG4gICAgICAgICpuZ0lmPVwiaXNQYWNrYWdlXCJcbiAgICAgID48L2k+XG4gICAgICA8aVxuICAgICAgICBjOHlJY29uPVwibWljcm9jaGlwXCJcbiAgICAgICAgKm5nSWY9XCJpc01pY3Jvc2VydmljZVwiXG4gICAgICA+PC9pPlxuICAgICAgPGlcbiAgICAgICAgYzh5SWNvbj1cImdsb2JlMVwiXG4gICAgICAgICpuZ0lmPVwiaXNFeHRlcm5hbFwiXG4gICAgICA+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJsaW5lLWhlaWdodDogMS4zXCI+XG4gICAgICA8cCBjbGFzcz1cImUyZS1hcHBDYXJkTmFtZSB0ZXh0LW1lZGl1bSB0ZXh0LWJyZWFrLXdvcmRcIj5cbiAgICAgICAge3sgYXBwIHwgaHVtYW5pemVBcHBOYW1lIHwgYXN5bmMgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Nob3dWZXJzaW9uXCI+XG4gICAgICAgIDxwIGNsYXNzPVwic21hbGwgdGV4dC1tdXRlZFwiPlxuICAgICAgICAgIDxlbT57eyBhcHAubWFuaWZlc3QudmVyc2lvbiB9fTwvZW0+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJidG4tY2xlYW4gbS1sLTRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInVXBkYXRlIGF2YWlsYWJsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ1VwZGF0ZSBhdmFpbGFibGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvdWxkVXBncmFkZVBhY2thZ2UgJiYgaXNVbnBhY2tlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXdhcm5pbmcgaWNvbi0xNlwiXG4gICAgICAgICAgICAgIGM4eUljb249XCJleGNsYW1hdGlvbi10cmlhbmdsZVwiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3A+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxwXG4gICAgICAgIGNsYXNzPVwic21hbGwgdGV4dC1icmVhay13b3JkXCJcbiAgICAgICAgKm5nSWY9XCJhcHAubWFuaWZlc3Q/LmF1dGhvclwiXG4gICAgICA+XG4gICAgICAgIHt7IGFwcC5tYW5pZmVzdC5hdXRob3IgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNhcmQtYmxvY2sgcC0wIG5vLW1pbi1oZWlnaHQgY2FyZC0tZC1jb2wgY2FyZC1jb2x1bW4tODAgZmxleC1ncm93XCJcbiAgICAoY2xpY2spPVwiZGV0YWlsKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgbm8tbWluLWhlaWdodCBwLXQtMCBwLWItMCBjYXJkLWNvbHVtbi04MFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyLWdyaWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtYi04IGNhcmQtaGlkZGVuLWdyaWRcIj48L2Rpdj5cbiAgICAgICAgPHBcbiAgICAgICAgICBjbGFzcz1cInNtYWxsIGwtaC10aWdodCBwLWItOCBwLWwtMCBwLXItMCB0ZXh0LWJyZWFrLXdvcmRcIlxuICAgICAgICAgICpuZ0lmPVwiYXBwLmRlc2NyaXB0aW9uIHx8IGFwcC5tYW5pZmVzdD8uZGVzY3JpcHRpb25cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgYXBwLmRlc2NyaXB0aW9uIHx8IGFwcC5tYW5pZmVzdD8uZGVzY3JpcHRpb24gfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8cFxuICAgICAgICAgIGNsYXNzPVwic21hbGwgbC1oLXRpZ2h0IHAtYi04IHAtbC0wIHAtci0wXCJcbiAgICAgICAgICAqbmdJZj1cIiFhcHAuZGVzY3JpcHRpb24gJiYgIWFwcC5tYW5pZmVzdD8uZGVzY3JpcHRpb25cIlxuICAgICAgICA+XG4gICAgICAgICAgPGVtIGNsYXNzPVwidGV4dC1tdXRlZFwiPnt7ICdObyBkZXNjcmlwdGlvbiBhdmFpbGFibGUuJyB8IHRyYW5zbGF0ZSB9fTwvZW0+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FyZC1ibG9jayBuby1taW4taGVpZ2h0IHAtdC0wIHAtYi0wIGQtZmxleCBjYXJkLWNvbHVtbi0yMCB0ZXh0LWNlbnRlci1ncmlkIGZsZXgtd3JhcCBnYXAtOFwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0bi1jbGVhblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgKChpc1VucGFja2VkID8gVU5QQUNLRURfTEFCRUwgOiBhcHBTdGF0ZT8ubGFiZWwpIHwgdHJhbnNsYXRlKSArXG4gICAgICAgICAgJzogJyArXG4gICAgICAgICAgKGFwcFN0YXRlPy50b29sdGlwIHwgdHJhbnNsYXRlKVxuICAgICAgICBcIlxuICAgICAgICBbdG9vbHRpcF09XCJhcHBTdGF0ZT8udG9vbHRpcCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwibGFiZWxcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cImFwcFN0YXRlPy5jbGFzc1wiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBhcHBTdGF0ZT8ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuLWNsZWFuXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAocGFja2FnZUNvbnRlbnRTdGF0ZT8ubGFiZWwgfCB0cmFuc2xhdGUpICtcbiAgICAgICAgICAgICc6ICcgK1xuICAgICAgICAgICAgKHBhY2thZ2VDb250ZW50U3RhdGU/LnRvb2x0aXBcbiAgICAgICAgICAgICAgPyBwYWNrYWdlQ29udGVudFN0YXRlPy50b29sdGlwXG4gICAgICAgICAgICAgIDogUEFDS0FHRV9DT05URU5UX1VOREVURVJNSU5FRF9MQUJFTCkgfCB0cmFuc2xhdGVcbiAgICAgICAgXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiXG4gICAgICAgICAgKHBhY2thZ2VDb250ZW50U3RhdGU/LnRvb2x0aXBcbiAgICAgICAgICAgID8gcGFja2FnZUNvbnRlbnRTdGF0ZT8udG9vbHRpcFxuICAgICAgICAgICAgOiBQQUNLQUdFX0NPTlRFTlRfVU5ERVRFUk1JTkVEX0xBQkVMXG4gICAgICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgICAgICBcIlxuICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgICAqbmdJZj1cImlzUGFja2FnZVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwicGFja2FnZUNvbnRlbnRTdGF0ZT8uY2xhc3MgPyBwYWNrYWdlQ29udGVudFN0YXRlPy5jbGFzcyA6ICdsYWJlbC1kYW5nZXInXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICBwYWNrYWdlQ29udGVudFN0YXRlPy5sYWJlbCB8fCBwYWNrYWdlVHlwZUxhYmVsc1tQQUNLQUdFX1RZUEUuVU5LTk9XTl0ubGFiZWwgfCB0cmFuc2xhdGVcbiAgICAgICAgICB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgbm8tbWluLWhlaWdodCBwLXQtMCBwLWItMCBjYXJkLWNvbHVtbi0yMCB0ZXh0LWNlbnRlci1ncmlkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicC1iLTE2IGNhcmQtaGlkZGVuLWxpc3RcIj48L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgW3RpdGxlXT1cIm9wZW5CdXR0b25UaXRsZSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwib3BlbkFwcCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAqbmdJZj1cImNhbk9wZW5JbkJyb3dzZXJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZU9wZW5JbkJyb3dzZXJcIlxuICAgICAgPlxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwibS1yLTRcIlxuICAgICAgICAgIGM4eUljb249XCJleHRlcm5hbC1saW5rXCJcbiAgICAgICAgPjwvaT5cbiAgICAgICAge3sgJ09wZW4nIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLWItMzIgY2FyZC1oaWRkZW4tbGlzdFwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInAtci00MCBjYXJkLWhpZGRlbi1ncmlkXCI+PC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNhcmQtYWN0aW9ucyBtLXQtMFwiXG4gICAgKm5nSWY9XCJjYW5FZGl0IHx8IGNhbk9wZW5JbkJyb3dzZXIgfHwgY2FuRGVsZXRlXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZHJvcGRvd25cIlxuICAgICAgI2FwcENhcmREcm9wZG93bj1cImJzLWRyb3Bkb3duXCJcbiAgICAgIGRyb3Bkb3duXG4gICAgICBbY2RrVHJhcEZvY3VzXT1cImFwcENhcmREcm9wZG93bi5pc09wZW5cIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUgYzh5LWRyb3Bkb3duXCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnU2V0dGluZ3MnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgZGF0YS1jeT1cImFwcGxpY2F0aW9uLWNhcmQtLXNldHRpbmdzLWJ1dHRvblwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBkcm9wZG93blRvZ2dsZVxuICAgICAgPlxuICAgICAgICA8aSBjOHlJY29uPVwiZWxsaXBzaXMtdlwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPHVsXG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LXJpZ2h0XCJcbiAgICAgICAgKmRyb3Bkb3duTWVudVxuICAgICAgPlxuICAgICAgICA8bGkgKm5nSWY9XCJjYW5FZGl0XCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnRWRpdCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgZGF0YS1jeT1cImFwcGxpY2F0aW9uLWNhcmQtLWVkaXQtYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJkZXRhaWwoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJtLXItNFwiXG4gICAgICAgICAgICAgIGM4eUljb249XCJwZW5jaWxcIlxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgIHt7ICdFZGl0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bmctY29udGFpbmVyICpjOHlJZkFsbG93ZWQ9XCJbJ1JPTEVfQVBQTElDQVRJT05fTUFOQUdFTUVOVF9BRE1JTiddXCI+XG4gICAgICAgICAgPGxpPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBbdGl0bGVdPVwiY2FuRGVsZXRlID8gKCdEZWxldGUnIHwgdHJhbnNsYXRlKSA6IChDQU5OT1RfREVMRVRFX0hJTlQgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGRhdGEtY3k9XCJhcHBsaWNhdGlvbi1jYXJkLS1kZWxldGUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5EZWxldGVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwibS1yLTRcIlxuICAgICAgICAgICAgICAgIGM4eUljb249XCJkZWxldGVcIlxuICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICB7eyAnRGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICA8bGkgKm5nSWY9XCJjYW5DbG9uZVwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0Nsb25lYHBhY2thZ2UsdmVyYmAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXNQYWNrYWdlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb25lKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwibS1yLTRcIlxuICAgICAgICAgICAgICAgIGM4eUljb249XCJjb3B5XCJcbiAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAge3sgJ0Nsb25lYHBhY2thZ2UsdmVyYmAnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgW3RpdGxlXT1cIidDbG9uZWBhcHBsaWNhdGlvbix2ZXJiYCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaXNQYWNrYWdlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb25lKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwibS1yLTRcIlxuICAgICAgICAgICAgICAgIGM4eUljb249XCJjb3B5XCJcbiAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAge3sgJ0Nsb25lYGFwcGxpY2F0aW9uLHZlcmJgJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48YnV0dG9uXG4gIGNsYXNzPVwiY2FyZCBwb2ludGVyIGNhcmQtLWQtY29sXCJcbiAgdHlwZT1cImJ1dHRvblwiXG4gIChjbGljayk9XCJkZXRhaWwoKVwiXG4gICpuZ0lmPVwiaXNGZWF0dXJlXCJcbj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgdGV4dC1jZW50ZXIgY2FyZC1jb2x1bW4tNDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hcHBpY29uXCI+XG4gICAgICA8Yzh5LWFwcC1pY29uXG4gICAgICAgICpuZ0lmPVwiIWlzUGFja2FnZSAmJiAhaXNGZWF0dXJlICYmICFpc01pY3Jvc2VydmljZSAmJiAhaXNFeHRlcm5hbFwiXG4gICAgICAgIFthcHBdPVwiYXBwXCJcbiAgICAgICAgW2NvbnRleHRQYXRoXT1cImFwcC5jb250ZXh0UGF0aFwiXG4gICAgICAgIFtuYW1lXT1cImFwcC5uYW1lXCJcbiAgICAgID48L2M4eS1hcHAtaWNvbj5cbiAgICAgIDxpIGM4eUljb249XCJ0YWJcIj48L2k+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxwXG4gICAgICAgIGNsYXNzPVwiZTJlLWFwcENhcmROYW1lIHRleHQtbWVkaXVtXCJcbiAgICAgICAgdGl0bGU9XCJ7eyBhcHAgfCBodW1hbml6ZUFwcE5hbWUgfCBhc3luYyB9fVwiXG4gICAgICA+XG4gICAgICAgIHt7IGFwcCB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jIH19XG4gICAgICA8L3A+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaG93VmVyc2lvblwiPlxuICAgICAgICA8cCBjbGFzcz1cInNtYWxsIHRleHQtbXV0ZWRcIj5cbiAgICAgICAgICA8ZW0+e3sgYXBwLm1hbmlmZXN0LnZlcnNpb24gfX08L2VtPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtd2FybmluZyBtLWwtNFwiXG4gICAgICAgICAgICBjOHlJY29uPVwiZXhjbGFtYXRpb24tdHJpYW5nbGVcIlxuICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ1VwZGF0ZSBhdmFpbGFibGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvdWxkVXBncmFkZVBhY2thZ2UgJiYgaXNVbnBhY2tlZFwiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgPC9wPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBwLTAgbm8tbWluLWhlaWdodCBjYXJkLS1kLWNvbCBjYXJkLWNvbHVtbi04MCBmbGV4LWdyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBuby1taW4taGVpZ2h0IHAtdC0wIHAtYi0wIGNhcmQtY29sdW1uLTgwXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGV4dC1jZW50ZXItZ3JpZFwiXG4gICAgICAgICpuZ0lmPVwiYXBwLmRlc2NyaXB0aW9uIHx8IGFwcC5tYW5pZmVzdD8uZGVzY3JpcHRpb25cIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC1iLTggY2FyZC1oaWRkZW4tZ3JpZFwiPjwvZGl2PlxuICAgICAgICA8cCBjbGFzcz1cInNtYWxsIGwtaC10aWdodCBwLWItOCBwLWwtMCBwLXItMFwiPlxuICAgICAgICAgIHt7IGFwcC5kZXNjcmlwdGlvbiB8fCBhcHAubWFuaWZlc3Q/LmRlc2NyaXB0aW9uIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIG5vLW1pbi1oZWlnaHQgcC10LTAgcC1iLTAgY2FyZC1jb2x1bW4tMjAgdGV4dC1jZW50ZXItZ3JpZFwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImFwcFN0YXRlLmNsYXNzXCJcbiAgICAgID5cbiAgICAgICAge3sgYXBwU3RhdGUubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNhcmQtYmxvY2sgbm8tbWluLWhlaWdodCBwLXQtMCBwLWItMCBjYXJkLWNvbHVtbi0yMCB0ZXh0LWNlbnRlci1ncmlkXCJcbiAgICAgICpuZ0lmPVwiaXNQYWNrYWdlXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImxhYmVsXCJcbiAgICAgICAgW25nQ2xhc3NdPVwicGFja2FnZUNvbnRlbnRTdGF0ZS5jbGFzc1wiXG4gICAgICA+XG4gICAgICAgIHt7IHBhY2thZ2VDb250ZW50U3RhdGUubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicC1iLTMyIGNhcmQtaGlkZGVuLWxpc3RcIj48L2Rpdj5cbiAgPC9kaXY+XG48L2J1dHRvbj5cbiJdfQ==
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL2FwcGxpY2F0aW9uLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC9hcHBsaWNhdGlvbi1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBcUMsTUFBTSxhQUFhLENBQUM7QUFDcEYsT0FBTyxFQUNMLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsT0FBTyxFQUNQLFdBQVcsRUFDWCxjQUFjLEVBSWQsa0JBQWtCLEVBQ25CLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsU0FBUyxFQUFvQixtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7OztBQU16RixNQUFNLE9BQU8sd0JBQXdCO0lBeUJuQyxJQUFJLGVBQWU7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0I7WUFDL0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDakIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFZRCxZQUNVLGtCQUFzQyxFQUN0QyxnQkFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsTUFBYyxFQUNk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SUFBSSxDQUFDO2dCQUVQLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0NBQWdDLENBQ3BGLElBQUksQ0FBQywyQkFBMkIsRUFDaEMsUUFBUSxDQUNULENBQUM7Z0JBQ0YsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUMxQixJQUFJLENBQUMsd0JBQXdCLENBQzlCLENBQUM7WUFDSixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7b0JBQ3RDLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0EzTFUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsK0tDekJyQyxxK1RBcVVBOzsyRkQ1U2Esd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLHNCQUFzQjs4UkFNdkIsR0FBRztzQkFBWCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXBwbGljYXRpb25TZXJ2aWNlLCBJQXBwbGljYXRpb24sIElBcHBsaWNhdGlvblZlcnNpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEdhaW5zaWdodFNlcnZpY2UsXG4gIGdldHRleHQsXG4gIFBhY2thZ2VUeXBlLFxuICBQbHVnaW5zU2VydmljZSxcbiAgV2l6YXJkLFxuICBXaXphcmRDb21wb25lbnQsXG4gIFdpemFyZENvbmZpZyxcbiAgV2l6YXJkTW9kYWxTZXJ2aWNlXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgTW9kYWxPcHRpb25zIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVjb3N5c3RlbVNlcnZpY2UgfSBmcm9tICcuL2Vjb3N5c3RlbS5zZXJ2aWNlJztcbmltcG9ydCB7IFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0gfSBmcm9tICcuL2Vjb3N5c3RlbS5tb2RlbCc7XG5pbXBvcnQgeyBEdXBsaWNhdGVBcHBsaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZHVwbGljYXRlLWFwcGxpY2F0aW9uL2R1cGxpY2F0ZS1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVBQX1NUQVRFLCBBcHBsaWNhdGlvblN0YXRlLCBQQUNLQUdFX1RZUEVfTEFCRUxTIH0gZnJvbSAnLi9lY29zeXN0ZW0uY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFwcGxpY2F0aW9uLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwbGljYXRpb24tY2FyZC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25DYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQ1VSUkVOVF9MT0NBVElPTiA9IGxvY2F0aW9uLmhyZWY7XG5cbiAgQElucHV0KCkgYXBwOiBJQXBwbGljYXRpb247XG4gIEBJbnB1dCgpIGNhbkVkaXQgPSB0cnVlO1xuICBAT3V0cHV0KCkgb25BcHBEZWxldGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkFwcENsb25lZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBhcHBTdGF0ZTogQXBwbGljYXRpb25TdGF0ZTtcbiAgcGFja2FnZUNvbnRlbnRTdGF0ZTogQXBwbGljYXRpb25TdGF0ZTtcbiAgcGFja2FnZVR5cGU6IFBhY2thZ2VUeXBlO1xuICBjYW5PcGVuSW5Ccm93c2VyOiBib29sZWFuO1xuICBkaXNhYmxlT3BlbkluQnJvd3NlcjogYm9vbGVhbjtcbiAgY2FuRGVsZXRlOiBib29sZWFuO1xuICBpc1BhY2thZ2U6IGJvb2xlYW47XG4gIGlzUGx1Z2luOiBib29sZWFuO1xuICBpc0ZlYXR1cmU6IGJvb2xlYW47XG4gIGlzRXh0ZXJuYWw6IGJvb2xlYW47XG4gIGlzTWljcm9zZXJ2aWNlOiBib29sZWFuO1xuICBjYW5DbG9uZTogYm9vbGVhbjtcbiAgaXNVbnBhY2tlZDogYm9vbGVhbjtcbiAgc2hvdWxkVXBncmFkZVBhY2thZ2U6IGJvb2xlYW47XG4gIGJsdWVwcmludEFwcGxpY2F0aW9uVmVyc2lvbjogSUFwcGxpY2F0aW9uVmVyc2lvbltdO1xuICBsYXRlc3RBcHBsaWNhdGlvblZlcnNpb246IElBcHBsaWNhdGlvblZlcnNpb247XG4gIGlzU2hvd1ZlcnNpb246IGJvb2xlYW47XG4gIGlzT3duZWRCeU1hbmFnZW1lbnRUZW5hbnQ6IGJvb2xlYW47XG4gIGdldCBvcGVuQnV0dG9uVGl0bGUoKSB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVPcGVuSW5Ccm93c2VyXG4gICAgICA/IGdldHRleHQoJ09wZW4nKVxuICAgICAgOiBnZXR0ZXh0KCdUaGlzIGFwcGxpY2F0aW9uIGlzIG92ZXJyaWRkZW4uJyk7XG4gIH1cblxuICByZWFkb25seSBwYWNrYWdlVHlwZUxhYmVscyA9IFBBQ0tBR0VfVFlQRV9MQUJFTFM7XG4gIHJlYWRvbmx5IFBBQ0tBR0VfVFlQRSA9IFBhY2thZ2VUeXBlO1xuICByZWFkb25seSBVTlBBQ0tFRF9MQUJFTCA9IEFQUF9TVEFURS5VTlBBQ0tFRC5sYWJlbDtcbiAgcmVhZG9ubHkgQ0FOTk9UX0RFTEVURV9ISU5UID0gZ2V0dGV4dChcbiAgICBgU3Vic2NyaWJlZCBvciBjdXJyZW50IGFwcGxpY2F0aW9ucyBjYW4ndCBiZSBkZWxldGVkLiBEZWxldGUgdGhlIGFwcGxpY2F0aW9uIG9uIHRoZSBwYXJlbnQgdGVuYW50IG9yIHVuc3Vic2NyaWJlIGl0IGZyb20gdGhlIGN1cnJlbnQuYFxuICApO1xuICByZWFkb25seSBQQUNLQUdFX0NPTlRFTlRfVU5ERVRFUk1JTkVEX0xBQkVMID0gZ2V0dGV4dChcbiAgICAnUGFja2FnZSBjb250ZW50cyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGVjb3N5c3RlbVNlcnZpY2U6IEVjb3N5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgd2l6YXJkTW9kYWxTZXJ2aWNlOiBXaXphcmRNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGx1Z2luU2VydmljZTogUGx1Z2luc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFwcFN0YXRlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldEFwcFN0YXRlKHRoaXMuYXBwKTtcbiAgICB0aGlzLmNhbk9wZW5JbkJyb3dzZXIgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuY2FuT3BlbkFwcEluQnJvd3Nlcih0aGlzLmFwcCk7XG4gICAgdGhpcy5wYWNrYWdlVHlwZSA9IHRoaXMucGx1Z2luU2VydmljZS5nZXRQYWNrYWdlVHlwZSh0aGlzLmFwcCk7XG4gICAgdGhpcy5kaXNhYmxlT3BlbkluQnJvd3NlciA9XG4gICAgICB0aGlzLmNhbk9wZW5JbkJyb3dzZXIgJiYgKGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5pc092ZXJ3cml0dGVuQnlDdXN0b21BcHAodGhpcy5hcHApKTtcbiAgICB0aGlzLmNhbkRlbGV0ZSA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5jYW5EZWxldGVBcHAodGhpcy5hcHApO1xuICAgIHRoaXMuaXNQYWNrYWdlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzUGFja2FnZSh0aGlzLmFwcCk7XG4gICAgdGhpcy5wYWNrYWdlQ29udGVudFN0YXRlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldFBhY2thZ2VDb250ZW50U3RhdGUodGhpcy5hcHApO1xuICAgIHRoaXMuaXNQbHVnaW4gPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNQbHVnaW4odGhpcy5hcHApO1xuICAgIHRoaXMuaXNGZWF0dXJlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzRmVhdHVyZSh0aGlzLmFwcCk7XG4gICAgdGhpcy5pc01pY3Jvc2VydmljZSA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5pc01pY3Jvc2VydmljZSh0aGlzLmFwcCk7XG4gICAgdGhpcy5pc0V4dGVybmFsID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzRXh0ZXJuYWwodGhpcy5hcHApO1xuICAgIHRoaXMuY2FuQ2xvbmUgPSAhdGhpcy5pc01pY3Jvc2VydmljZSAmJiAhdGhpcy5pc1BsdWdpbjtcbiAgICB0aGlzLmlzVW5wYWNrZWQgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNVbnBhY2tlZCh0aGlzLmFwcCk7XG4gICAgdGhpcy5pc1Nob3dWZXJzaW9uID0gdGhpcy5zaG91bGRTaG93VmVyc2lvbigpO1xuICAgIGF3YWl0IHRoaXMuYXBwbGljYXRpb25VcGRhdGVDaGVjaygpO1xuICB9XG5cbiAgc2hvdWxkU2hvd1ZlcnNpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy5hcHAubWFuaWZlc3Q/LnZlcnNpb247XG4gIH1cblxuICBkZXRhaWwoKSB7XG4gICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkVWRU5UUy5BUFBMSUNBVElPTl9DQVJELFxuICAgICAge1xuICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuQVBQTElDQVRJT05fQ0FSRCxcbiAgICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5BQ1RJT05TLkVESVQsXG4gICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICB9XG4gICAgKTtcblxuICAgIGlmICh0aGlzLmlzTWljcm9zZXJ2aWNlKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvZWNvc3lzdGVtL21pY3Jvc2VydmljZS9taWNyb3NlcnZpY2VzLyR7dGhpcy5hcHAuaWR9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNQYWNrYWdlKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvZWNvc3lzdGVtL2V4dGVuc2lvbi9leHRlbnNpb25zLyR7dGhpcy5hcHAuaWR9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNGZWF0dXJlKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvZWNvc3lzdGVtL2FwcGxpY2F0aW9uL2ZlYXR1cmVzLyR7dGhpcy5hcHAuaWR9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbnMvJHt0aGlzLmFwcC5pZH1gKTtcbiAgfVxuXG4gIG9wZW5BcHAoKSB7XG4gICAgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLm9wZW5BcHAodGhpcy5hcHApO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZGVsZXRlQXBwKHRoaXMuYXBwKTtcbiAgICAgIHRoaXMub25BcHBEZWxldGVkLmVtaXQoKTtcbiAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoXG4gICAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkVWRU5UUy5BUFBMSUNBVElPTl9DQVJELFxuICAgICAgICB7XG4gICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX0NBUkQsXG4gICAgICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5BQ1RJT05TLkRFTEVURSxcbiAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBpZiAoZXgpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoXG4gICAgICAgICAgUFJPRFVDVF9FWFBFUklFTkNFX0VDT1NZU1RFTS5BUFBMSUNBVElPTlMuRVZFTlRTLkFQUExJQ0FUSU9OX0NBUkQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX0NBUkQsXG4gICAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLlJFU1VMVFMuU0VSVkVSX0ZBSUxVUkUsXG4gICAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBjbG9uZSgpIHtcbiAgICBjb25zdCB3aXphcmRDb25maWc6IFdpemFyZENvbmZpZyA9IHtcbiAgICAgIGhlYWRlclRleHQ6ICdBZGQgQXBwbGljYXRpb24nLFxuICAgICAgaGVhZGVySWNvbjogJ2M4eS1hdG9tJ1xuICAgIH07XG5cbiAgICBjb25zdCBpbml0aWFsU3RhdGU6IFdpemFyZDxEdXBsaWNhdGVBcHBsaWNhdGlvbkNvbXBvbmVudD4gPSB7XG4gICAgICB3aXphcmRDb25maWcsXG4gICAgICBjb21wb25lbnRJbml0aWFsU3RhdGU6IHtcbiAgICAgICAgc2VsZWN0ZWRBcHA6IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5hcHApXG4gICAgICB9LFxuICAgICAgaWQ6ICdkdXBsaWNhdGVBcHBsaWNhdGlvbidcbiAgICB9O1xuXG4gICAgY29uc3QgbW9kYWxPcHRpb25zOiBNb2RhbE9wdGlvbnM8V2l6YXJkQ29tcG9uZW50PiA9IHsgaW5pdGlhbFN0YXRlIH07XG5cbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMud2l6YXJkTW9kYWxTZXJ2aWNlLnNob3cobW9kYWxPcHRpb25zKTtcbiAgICBtb2RhbFJlZi5jb250ZW50Lm9uQ2xvc2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMub25BcHBDbG9uZWQubmV4dCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkVWRU5UUy5BUFBMSUNBVElPTl9DQVJELFxuICAgICAge1xuICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRV9FQ09TWVNURU0uQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuQVBQTElDQVRJT05fQ0FSRCxcbiAgICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNLkFQUExJQ0FUSU9OUy5BQ1RJT05TLkNMT05FLFxuICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFwcGxpY2F0aW9uVXBkYXRlQ2hlY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuYXBwLm1hbmlmZXN0Py5zb3VyY2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuYmx1ZXByaW50QXBwbGljYXRpb25WZXJzaW9uID0gKFxuICAgICAgICAgIGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLmxpc3RWZXJzaW9ucyh0aGlzLmFwcC5tYW5pZmVzdD8uc291cmNlKVxuICAgICAgICApLmRhdGE7XG5cbiAgICAgICAgdGhpcy5sYXRlc3RBcHBsaWNhdGlvblZlcnNpb24gPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZ2V0QXBwbGljYXRpb25WZXJzaW9uT2JqZWN0QnlUYWcoXG4gICAgICAgICAgdGhpcy5ibHVlcHJpbnRBcHBsaWNhdGlvblZlcnNpb24sXG4gICAgICAgICAgJ2xhdGVzdCdcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zaG91bGRVcGdyYWRlUGFja2FnZSA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5zaG91bGRVcGdyYWRlUGFja2FnZShcbiAgICAgICAgICB0aGlzLmFwcC5tYW5pZmVzdD8udmVyc2lvbixcbiAgICAgICAgICB0aGlzLmxhdGVzdEFwcGxpY2F0aW9uVmVyc2lvblxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKCF0aGlzLmJsdWVwcmludEFwcGxpY2F0aW9uVmVyc2lvbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImNhcmQgcG9pbnRlciBjYXJkLS1kLWNvbCBub3RGZWF0dXJlXCJcbiAgZGF0YS1jeT1cImFwcGxpY2F0aW9uLWNhcmQtLWV4dGVuc2lvbnMtbGlzdFwiXG4gICpuZ0lmPVwiIWlzRmVhdHVyZVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNhcmQtYmxvY2sgdGV4dC1jZW50ZXIgY2FyZC1jb2x1bW4tNDBcIlxuICAgIGRhdGEtY3k9XCJhcHBsaWNhdGlvbi1jYXJkLS1wYWNrYWdlLW5hbWVcIlxuICAgIChjbGljayk9XCJkZXRhaWwoKVwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImNhcmRfX3JpYmJvbiBidG4tY2xlYW5cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgKGFwcC5sYWJlbCB8fCBhcHAubWFuaWZlc3Q/LmxhYmVsIHwgdHJhbnNsYXRlUGFja2FnZUxhYmVsKSArXG4gICAgICAgICc6ICcgK1xuICAgICAgICAocGFja2FnZVR5cGVMYWJlbHNbcGFja2FnZVR5cGVdLnRvb2x0aXAgfCB0cmFuc2xhdGUpXG4gICAgICBcIlxuICAgICAgdG9vbHRpcD1cInt7IHBhY2thZ2VUeXBlTGFiZWxzW3BhY2thZ2VUeXBlXS50b29sdGlwIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKm5nSWY9XCJwYWNrYWdlVHlwZSAhPT0gUEFDS0FHRV9UWVBFLkNVU1RPTVwiXG4gICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ2JnLWluZm8nOiBwYWNrYWdlVHlwZSA9PT0gUEFDS0FHRV9UWVBFLkNPTU1VTklUWSxcbiAgICAgICAgICAnYmctcHJpbWFyeSc6IHBhY2thZ2VUeXBlID09PSBQQUNLQUdFX1RZUEUuT0ZGSUNJQUwsXG4gICAgICAgICAgJ2JnLXdhcm5pbmcnOiBwYWNrYWdlVHlwZSA9PT0gUEFDS0FHRV9UWVBFLkFSQ0hJVkVEXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICB7eyBhcHAubGFiZWwgfHwgYXBwLm1hbmlmZXN0Py5sYWJlbCB8IHRyYW5zbGF0ZVBhY2thZ2VMYWJlbCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWFwcGljb25cIj5cbiAgICAgIDxjOHktYXBwLWljb25cbiAgICAgICAgKm5nSWY9XCIhaXNQYWNrYWdlICYmICFpc0ZlYXR1cmUgJiYgIWlzTWljcm9zZXJ2aWNlICYmICFpc0V4dGVybmFsXCJcbiAgICAgICAgW2FwcF09XCJhcHBcIlxuICAgICAgICBbY29udGV4dFBhdGhdPVwiYXBwLmNvbnRleHRQYXRoXCJcbiAgICAgICAgW25hbWVdPVwiYXBwLm5hbWVcIlxuICAgICAgPjwvYzh5LWFwcC1pY29uPlxuICAgICAgPGlcbiAgICAgICAgYzh5SWNvbj1cImJpZy1wYXJjZWxcIlxuICAgICAgICAqbmdJZj1cImlzUGFja2FnZVwiXG4gICAgICA+PC9pPlxuICAgICAgPGlcbiAgICAgICAgYzh5SWNvbj1cIm1pY3JvY2hpcFwiXG4gICAgICAgICpuZ0lmPVwiaXNNaWNyb3NlcnZpY2VcIlxuICAgICAgPjwvaT5cbiAgICAgIDxpXG4gICAgICAgIGM4eUljb249XCJnbG9iZTFcIlxuICAgICAgICAqbmdJZj1cImlzRXh0ZXJuYWxcIlxuICAgICAgPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwibGluZS1oZWlnaHQ6IDEuM1wiPlxuICAgICAgPHAgY2xhc3M9XCJlMmUtYXBwQ2FyZE5hbWUgdGV4dC1tZWRpdW0gdGV4dC1icmVhay13b3JkXCI+XG4gICAgICAgIHt7IGFwcCB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jIH19XG4gICAgICA8L3A+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaG93VmVyc2lvblwiPlxuICAgICAgICA8cCBjbGFzcz1cInNtYWxsIHRleHQtbXV0ZWRcIj5cbiAgICAgICAgICA8ZW0+e3sgYXBwLm1hbmlmZXN0LnZlcnNpb24gfX08L2VtPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLWNsZWFuIG0tbC00XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1VwZGF0ZSBhdmFpbGFibGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cIidVcGRhdGUgYXZhaWxhYmxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3VsZFVwZ3JhZGVQYWNrYWdlICYmIGlzVW5wYWNrZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIGNsYXNzPVwidGV4dC13YXJuaW5nIGljb24tMTZcIlxuICAgICAgICAgICAgICBjOHlJY29uPVwiZXhjbGFtYXRpb24tdHJpYW5nbGVcIlxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9wPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8cFxuICAgICAgICBjbGFzcz1cInNtYWxsIHRleHQtYnJlYWstd29yZFwiXG4gICAgICAgICpuZ0lmPVwiYXBwLm1hbmlmZXN0Py5hdXRob3JcIlxuICAgICAgPlxuICAgICAgICB7eyBhcHAubWFuaWZlc3QuYXV0aG9yIH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjYXJkLWJsb2NrIHAtMCBuby1taW4taGVpZ2h0IGNhcmQtLWQtY29sIGNhcmQtY29sdW1uLTgwIGZsZXgtZ3Jvd1wiXG4gICAgKGNsaWNrKT1cImRldGFpbCgpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIG5vLW1pbi1oZWlnaHQgcC10LTAgcC1iLTAgY2FyZC1jb2x1bW4tODBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlci1ncmlkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLWItOCBjYXJkLWhpZGRlbi1ncmlkXCI+PC9kaXY+XG4gICAgICAgIDxwXG4gICAgICAgICAgY2xhc3M9XCJzbWFsbCBsLWgtdGlnaHQgcC1iLTggcC1sLTAgcC1yLTAgdGV4dC1icmVhay13b3JkXCJcbiAgICAgICAgICAqbmdJZj1cImFwcC5kZXNjcmlwdGlvbiB8fCBhcHAubWFuaWZlc3Q/LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGFwcC5kZXNjcmlwdGlvbiB8fCBhcHAubWFuaWZlc3Q/LmRlc2NyaXB0aW9uIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHBcbiAgICAgICAgICBjbGFzcz1cInNtYWxsIGwtaC10aWdodCBwLWItOCBwLWwtMCBwLXItMFwiXG4gICAgICAgICAgKm5nSWY9XCIhYXBwLmRlc2NyaXB0aW9uICYmICFhcHAubWFuaWZlc3Q/LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxlbSBjbGFzcz1cInRleHQtbXV0ZWRcIj57eyAnTm8gZGVzY3JpcHRpb24gYXZhaWxhYmxlLicgfCB0cmFuc2xhdGUgfX08L2VtPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNhcmQtYmxvY2sgbm8tbWluLWhlaWdodCBwLXQtMCBwLWItMCBkLWZsZXggY2FyZC1jb2x1bW4tMjAgdGV4dC1jZW50ZXItZ3JpZCBmbGV4LXdyYXAgZ2FwLThcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4tY2xlYW5cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICgoaXNVbnBhY2tlZCA/IFVOUEFDS0VEX0xBQkVMIDogYXBwU3RhdGU/LmxhYmVsKSB8IHRyYW5zbGF0ZSkgK1xuICAgICAgICAgICc6ICcgK1xuICAgICAgICAgIChhcHBTdGF0ZT8udG9vbHRpcCB8IHRyYW5zbGF0ZSlcbiAgICAgICAgXCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiYXBwU3RhdGU/LnRvb2x0aXAgfCB0cmFuc2xhdGVcIlxuICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImxhYmVsXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJhcHBTdGF0ZT8uY2xhc3NcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgYXBwU3RhdGU/LmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0bi1jbGVhblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgKHBhY2thZ2VDb250ZW50U3RhdGU/LmxhYmVsIHwgdHJhbnNsYXRlKSArXG4gICAgICAgICAgICAnOiAnICtcbiAgICAgICAgICAgIChwYWNrYWdlQ29udGVudFN0YXRlPy50b29sdGlwXG4gICAgICAgICAgICAgID8gcGFja2FnZUNvbnRlbnRTdGF0ZT8udG9vbHRpcFxuICAgICAgICAgICAgICA6IFBBQ0tBR0VfQ09OVEVOVF9VTkRFVEVSTUlORURfTEFCRUwpIHwgdHJhbnNsYXRlXG4gICAgICAgIFwiXG4gICAgICAgIFt0b29sdGlwXT1cIlxuICAgICAgICAgIChwYWNrYWdlQ29udGVudFN0YXRlPy50b29sdGlwXG4gICAgICAgICAgICA/IHBhY2thZ2VDb250ZW50U3RhdGU/LnRvb2x0aXBcbiAgICAgICAgICAgIDogUEFDS0FHRV9DT05URU5UX1VOREVURVJNSU5FRF9MQUJFTFxuICAgICAgICAgICkgfCB0cmFuc2xhdGVcbiAgICAgICAgXCJcbiAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgKm5nSWY9XCJpc1BhY2thZ2VcIlxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwibGFiZWxcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInBhY2thZ2VDb250ZW50U3RhdGU/LmNsYXNzID8gcGFja2FnZUNvbnRlbnRTdGF0ZT8uY2xhc3MgOiAnbGFiZWwtZGFuZ2VyJ1wiXG4gICAgICAgID5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgcGFja2FnZUNvbnRlbnRTdGF0ZT8ubGFiZWwgfHwgcGFja2FnZVR5cGVMYWJlbHNbUEFDS0FHRV9UWVBFLlVOS05PV05dLmxhYmVsIHwgdHJhbnNsYXRlXG4gICAgICAgICAgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIG5vLW1pbi1oZWlnaHQgcC10LTAgcC1iLTAgY2FyZC1jb2x1bW4tMjAgdGV4dC1jZW50ZXItZ3JpZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInAtYi0xNiBjYXJkLWhpZGRlbi1saXN0XCI+PC9kaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tZGVmYXVsdFwiXG4gICAgICAgIFt0aXRsZV09XCJvcGVuQnV0dG9uVGl0bGUgfCB0cmFuc2xhdGVcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cIm9wZW5BcHAoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgKm5nSWY9XCJjYW5PcGVuSW5Ccm93c2VyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVPcGVuSW5Ccm93c2VyXCJcbiAgICAgID5cbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgICAgICBjOHlJY29uPVwiZXh0ZXJuYWwtbGlua1wiXG4gICAgICAgID48L2k+XG4gICAgICAgIHt7ICdPcGVuJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8ZGl2IGNsYXNzPVwicC1iLTMyIGNhcmQtaGlkZGVuLWxpc3RcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJwLXItNDAgY2FyZC1oaWRkZW4tZ3JpZFwiPjwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjYXJkLWFjdGlvbnMgbS10LTBcIlxuICAgICpuZ0lmPVwiY2FuRWRpdCB8fCBjYW5PcGVuSW5Ccm93c2VyIHx8IGNhbkRlbGV0ZVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImRyb3Bkb3duXCJcbiAgICAgICNhcHBDYXJkRHJvcGRvd249XCJicy1kcm9wZG93blwiXG4gICAgICBkcm9wZG93blxuICAgICAgW2Nka1RyYXBGb2N1c109XCJhcHBDYXJkRHJvcGRvd24uaXNPcGVuXCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd24tdG9nZ2xlIGM4eS1kcm9wZG93blwiXG4gICAgICAgIHRpdGxlPVwie3sgJ1NldHRpbmdzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGRhdGEtY3k9XCJhcHBsaWNhdGlvbi1jYXJkLS1zZXR0aW5ncy1idXR0b25cIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgZHJvcGRvd25Ub2dnbGVcbiAgICAgID5cbiAgICAgICAgPGkgYzh5SWNvbj1cImVsbGlwc2lzLXZcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDx1bFxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodFwiXG4gICAgICAgICpkcm9wZG93bk1lbnVcbiAgICAgID5cbiAgICAgICAgPGxpICpuZ0lmPVwiY2FuRWRpdFwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ0VkaXQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIGRhdGEtY3k9XCJhcHBsaWNhdGlvbi1jYXJkLS1lZGl0LWJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZGV0YWlsKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIGNsYXNzPVwibS1yLTRcIlxuICAgICAgICAgICAgICBjOHlJY29uPVwicGVuY2lsXCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICB7eyAnRWRpdCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqYzh5SWZBbGxvd2VkPVwiWydST0xFX0FQUExJQ0FUSU9OX01BTkFHRU1FTlRfQURNSU4nXVwiPlxuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgW3RpdGxlXT1cImNhbkRlbGV0ZSA/ICgnRGVsZXRlJyB8IHRyYW5zbGF0ZSkgOiAoQ0FOTk9UX0RFTEVURV9ISU5UIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwiYXBwbGljYXRpb24tY2FyZC0tZGVsZXRlLWJ1dHRvblwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuRGVsZXRlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgICAgICAgICAgICBjOHlJY29uPVwiZGVsZXRlXCJcbiAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAge3sgJ0RlbGV0ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPGxpICpuZ0lmPVwiY2FuQ2xvbmVcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgW3RpdGxlXT1cIidDbG9uZWBwYWNrYWdlLHZlcmJgJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAqbmdJZj1cImlzUGFja2FnZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbG9uZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgICAgICAgICAgICBjOHlJY29uPVwiY29weVwiXG4gICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgIHt7ICdDbG9uZWBwYWNrYWdlLHZlcmJgJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInQ2xvbmVgYXBwbGljYXRpb24sdmVyYmAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWlzUGFja2FnZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbG9uZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgICAgICAgICAgICBjOHlJY29uPVwiY29weVwiXG4gICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgIHt7ICdDbG9uZWBhcHBsaWNhdGlvbix2ZXJiYCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGJ1dHRvblxuICBjbGFzcz1cImNhcmQgcG9pbnRlciBjYXJkLS1kLWNvbFwiXG4gIHR5cGU9XCJidXR0b25cIlxuICAoY2xpY2spPVwiZGV0YWlsKClcIlxuICAqbmdJZj1cImlzRmVhdHVyZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHRleHQtY2VudGVyIGNhcmQtY29sdW1uLTQwXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYXBwaWNvblwiPlxuICAgICAgPGM4eS1hcHAtaWNvblxuICAgICAgICAqbmdJZj1cIiFpc1BhY2thZ2UgJiYgIWlzRmVhdHVyZSAmJiAhaXNNaWNyb3NlcnZpY2UgJiYgIWlzRXh0ZXJuYWxcIlxuICAgICAgICBbYXBwXT1cImFwcFwiXG4gICAgICAgIFtjb250ZXh0UGF0aF09XCJhcHAuY29udGV4dFBhdGhcIlxuICAgICAgICBbbmFtZV09XCJhcHAubmFtZVwiXG4gICAgICA+PC9jOHktYXBwLWljb24+XG4gICAgICA8aSBjOHlJY29uPVwidGFiXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8cFxuICAgICAgICBjbGFzcz1cImUyZS1hcHBDYXJkTmFtZSB0ZXh0LW1lZGl1bVwiXG4gICAgICAgIHRpdGxlPVwie3sgYXBwIHwgaHVtYW5pemVBcHBOYW1lIHwgYXN5bmMgfX1cIlxuICAgICAgPlxuICAgICAgICB7eyBhcHAgfCBodW1hbml6ZUFwcE5hbWUgfCBhc3luYyB9fVxuICAgICAgPC9wPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd1ZlcnNpb25cIj5cbiAgICAgICAgPHAgY2xhc3M9XCJzbWFsbCB0ZXh0LW11dGVkXCI+XG4gICAgICAgICAgPGVtPnt7IGFwcC5tYW5pZmVzdC52ZXJzaW9uIH19PC9lbT5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXdhcm5pbmcgbS1sLTRcIlxuICAgICAgICAgICAgYzh5SWNvbj1cImV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cIidVcGRhdGUgYXZhaWxhYmxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3VsZFVwZ3JhZGVQYWNrYWdlICYmIGlzVW5wYWNrZWRcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgcC0wIG5vLW1pbi1oZWlnaHQgY2FyZC0tZC1jb2wgY2FyZC1jb2x1bW4tODAgZmxleC1ncm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgbm8tbWluLWhlaWdodCBwLXQtMCBwLWItMCBjYXJkLWNvbHVtbi04MFwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRleHQtY2VudGVyLWdyaWRcIlxuICAgICAgICAqbmdJZj1cImFwcC5kZXNjcmlwdGlvbiB8fCBhcHAubWFuaWZlc3Q/LmRlc2NyaXB0aW9uXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtYi04IGNhcmQtaGlkZGVuLWdyaWRcIj48L2Rpdj5cbiAgICAgICAgPHAgY2xhc3M9XCJzbWFsbCBsLWgtdGlnaHQgcC1iLTggcC1sLTAgcC1yLTBcIj5cbiAgICAgICAgICB7eyBhcHAuZGVzY3JpcHRpb24gfHwgYXBwLm1hbmlmZXN0Py5kZXNjcmlwdGlvbiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBuby1taW4taGVpZ2h0IHAtdC0wIHAtYi0wIGNhcmQtY29sdW1uLTIwIHRleHQtY2VudGVyLWdyaWRcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwibGFiZWxcIlxuICAgICAgICBbbmdDbGFzc109XCJhcHBTdGF0ZS5jbGFzc1wiXG4gICAgICA+XG4gICAgICAgIHt7IGFwcFN0YXRlLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjYXJkLWJsb2NrIG5vLW1pbi1oZWlnaHQgcC10LTAgcC1iLTAgY2FyZC1jb2x1bW4tMjAgdGV4dC1jZW50ZXItZ3JpZFwiXG4gICAgICAqbmdJZj1cImlzUGFja2FnZVwiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInBhY2thZ2VDb250ZW50U3RhdGUuY2xhc3NcIlxuICAgICAgPlxuICAgICAgICB7eyBwYWNrYWdlQ29udGVudFN0YXRlLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInAtYi0zMiBjYXJkLWhpZGRlbi1saXN0XCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9idXR0b24+XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { Component } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { gettext, PackageType } from '@c8y/ngx-components';
4
+ import { ListFiltersComponent } from '../list-filters/list-filters.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../list-filters/list-filters.component";
7
+ import * as i2 from "@angular/forms";
8
+ import * as i3 from "@c8y/ngx-components";
9
+ export class ArchivedFilterComponent {
10
+ constructor(filterComponent) {
11
+ this.filterComponent = filterComponent;
12
+ this.filterLabel = gettext('Show archived packages');
13
+ this.archivedFormControl = new FormControl();
14
+ this.filterComponent.formGroup.controls.custom.addControl(this.filterLabel, this.archivedFormControl);
15
+ filterComponent.customFilters.set(this.filterLabel, (appOrPlugin, enabled) => {
16
+ return (appOrPlugin.filterProps.type !== PackageType.ARCHIVED ||
17
+ (appOrPlugin.filterProps.type === PackageType.ARCHIVED && enabled));
18
+ });
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ArchivedFilterComponent, deps: [{ token: i1.ListFiltersComponent }], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ArchivedFilterComponent, selector: "c8y-archived-filter", ngImport: i0, template: "<label class=\"c8y-switch\">\n <input\n type=\"checkbox\"\n checked=\"checked\"\n [formControl]=\"archivedFormControl\"\n />\n <span></span>\n {{ 'Show archived packages' | translate }}\n</label>\n", dependencies: [{ kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ArchivedFilterComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'c8y-archived-filter', template: "<label class=\"c8y-switch\">\n <input\n type=\"checkbox\"\n checked=\"checked\"\n [formControl]=\"archivedFormControl\"\n />\n <span></span>\n {{ 'Show archived packages' | translate }}\n</label>\n" }]
26
+ }], ctorParameters: () => [{ type: i1.ListFiltersComponent }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZWQtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9zaGFyZWQvYXJjaGl2ZWQtZmlsdGVyL2FyY2hpdmVkLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL2FyY2hpdmVkLWZpbHRlci9hcmNoaXZlZC1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7QUFPOUUsTUFBTSxPQUFPLHVCQUF1QjtJQUlsQyxZQUFtQixlQUFxQztRQUFyQyxvQkFBZSxHQUFmLGVBQWUsQ0FBc0I7UUFGdkMsZ0JBQVcsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUcvRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBb0IsQ0FBQyxVQUFVLENBQ3RFLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxtQkFBbUIsQ0FDekIsQ0FBQztRQUNGLGVBQWUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUMvQixJQUFJLENBQUMsV0FBVyxFQUNoQixDQUFDLFdBQWtDLEVBQUUsT0FBZ0IsRUFBRSxFQUFFO1lBQ3ZELE9BQU8sQ0FDTCxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsUUFBUTtnQkFDckQsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxDQUNuRSxDQUFDO1FBQ0osQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOzhHQW5CVSx1QkFBdUI7a0dBQXZCLHVCQUF1QiwyRENWcEMsb05BU0E7OzJGRENhLHVCQUF1QjtrQkFKbkMsU0FBUzsrQkFDRSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBnZXR0ZXh0LCBQYWNrYWdlVHlwZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgTGlzdEZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuLi9saXN0LWZpbHRlcnMvbGlzdC1maWx0ZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJhYmxlQXBwT3JQbHVnaW4gfSBmcm9tICcuLi9saXN0LWZpbHRlcnMvbGlzdC1maWx0ZXJzLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFyY2hpdmVkLWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcmNoaXZlZC1maWx0ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFyY2hpdmVkRmlsdGVyQ29tcG9uZW50IHtcbiAgYXJjaGl2ZWRGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyTGFiZWwgPSBnZXR0ZXh0KCdTaG93IGFyY2hpdmVkIHBhY2thZ2VzJyk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGZpbHRlckNvbXBvbmVudDogTGlzdEZpbHRlcnNDb21wb25lbnQpIHtcbiAgICB0aGlzLmFyY2hpdmVkRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICAodGhpcy5maWx0ZXJDb21wb25lbnQuZm9ybUdyb3VwLmNvbnRyb2xzLmN1c3RvbSBhcyBGb3JtR3JvdXApLmFkZENvbnRyb2woXG4gICAgICB0aGlzLmZpbHRlckxhYmVsLFxuICAgICAgdGhpcy5hcmNoaXZlZEZvcm1Db250cm9sXG4gICAgKTtcbiAgICBmaWx0ZXJDb21wb25lbnQuY3VzdG9tRmlsdGVycy5zZXQoXG4gICAgICB0aGlzLmZpbHRlckxhYmVsLFxuICAgICAgKGFwcE9yUGx1Z2luOiBGaWx0ZXJhYmxlQXBwT3JQbHVnaW4sIGVuYWJsZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBhcHBPclBsdWdpbi5maWx0ZXJQcm9wcy50eXBlICE9PSBQYWNrYWdlVHlwZS5BUkNISVZFRCB8fFxuICAgICAgICAgIChhcHBPclBsdWdpbi5maWx0ZXJQcm9wcy50eXBlID09PSBQYWNrYWdlVHlwZS5BUkNISVZFRCAmJiBlbmFibGVkKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiIsIjxsYWJlbCBjbGFzcz1cImM4eS1zd2l0Y2hcIj5cbiAgPGlucHV0XG4gICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICBjaGVja2VkPVwiY2hlY2tlZFwiXG4gICAgW2Zvcm1Db250cm9sXT1cImFyY2hpdmVkRm9ybUNvbnRyb2xcIlxuICAvPlxuICA8c3Bhbj48L3NwYW4+XG4gIHt7ICdTaG93IGFyY2hpdmVkIHBhY2thZ2VzJyB8IHRyYW5zbGF0ZSB9fVxuPC9sYWJlbD5cbiJdfQ==
@@ -62,6 +62,10 @@ export const PACKAGE_TYPE_LABELS = {
62
62
  [PackageType.UNKNOWN]: {
63
63
  label: gettext('CUSTOM`Package maintained by an unknown source.`'),
64
64
  tooltip: gettext('Package maintainer unknown.')
65
+ },
66
+ [PackageType.ARCHIVED]: {
67
+ label: gettext('ARCHIVED`Package out of maintenance.`'),
68
+ tooltip: gettext('The package was marked by the author as archived.')
65
69
  }
66
70
  };
67
71
  export const packageProperties = [
@@ -95,4 +99,4 @@ export const packageProperties = [
95
99
  key: 'license'
96
100
  }
97
101
  ];
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9zaGFyZWQvZWNvc3lzdGVtLmNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQXNCLE1BQU0scUJBQXFCLENBQUM7QUFFL0UsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sQ0FDakMsMEpBQTBKLENBQzNKO0lBQ0QsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxDQUNuQyxpRUFBaUUsQ0FDbEU7SUFDRCxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FDdEMsdUhBQXVILENBQ3hIO0lBQ0QsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLENBQUMsNEJBQTRCLENBQUM7SUFDcEUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO0lBQy9FLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsT0FBTyxDQUFDLDRDQUE0QyxDQUFDO0lBQ3ZGLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxrREFBa0QsQ0FBQztJQUN4RixDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLE9BQU8sQ0FDOUMsbUZBQW1GLENBQ3BGO0lBQ0QsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsRUFBRSxPQUFPLENBQUMsOEJBQThCLENBQUM7SUFDakYsQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsRUFBRSxPQUFPLENBQ2hELDhIQUE4SCxDQUMvSDtJQUNELENBQUMsVUFBVSxDQUFDLGlCQUFp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LElBQUksRUFBRSxRQUFRLEVBQUUscUJBQXFCLENBQUM7S0FDaEY7SUFDRDtRQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQzFCLEdBQUcsRUFBRSxVQUFVO1FBQ2YsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUscUJBQXFCLENBQUM7S0FDaEY7SUFDRDtRQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3pCLEdBQUcsRUFBRSxTQUFTO0tBQ2Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVJST1JfVFlQRSB9IGZyb20gJy4vZWNvc3lzdGVtLm1vZGVsJztcbmltcG9ydCB7IGdldHRleHQsIFBhY2thZ2VUeXBlLCBQcm9wZXJ0aWVzTGlzdEl0ZW0gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VTID0ge1xuICBbRVJST1JfVFlQRS5BTFJFQURZX0VYSVNUXTogZ2V0dGV4dChcbiAgICAnQ291bGQgbm90IGRlcGxveSB0aGUgYXBwbGljYXRpb24sIGFzIGFuIGFwcGxpY2F0aW9uIHdpdGggdGhlIHNhbWUgbmFtZWBLRUVQX09SSUdJTkFMYCwgY29udGV4dC1wYXRoYEtFRVBfT1JJR0lOQUxgIG9yIGtleWBLRUVQX09SSUdJTkFMYCBleGlzdHMgYWxyZWFkeS4nXG4gICksXG4gIFtFUlJPUl9UWVBFLlRZUEVfVkFMSURBVElPTl06IGdldHRleHQoXG4gICAgJ1dyb25nIGZpbGUgZm9ybWF0LiBFeHBlY3RlZCBhICouemlwIGZpbGUgd2l0aCBhIHZhbGlkIG1hbmlmZXN0LidcbiAgKSxcbiAgW0VSUk9SX1RZUEUuQUxSRUFEWV9TVUJTQ1JJQkVEXTogZ2V0dGV4dChcbiAgICAnQ291bGQgbm90IHN1YnNjcmliZSB0byB0aGUgbWljcm9zZXJ2aWNlIGJlY2F1c2UgYW5vdGhlciBhcHBsaWNhdGlvbiB3aXRoIHRoZSBzYW1lIGNvbnRleHQgcGF0aCBpcyBhbHJlYWR5IHN1YnNjcmliZWQuJ1xuICApLFxuICBbRVJST1JfVFlQRS5OT19NQU5JRkVTVF9GSUxFXTogZ2V0dGV4dCgnQ291bGQgbm90IGZpbmQgYSBtYW5pZmVzdC4nKSxcbiAgW0VSUk9SX1RZUEUuSU5WQUxJRF9QQUNLQUdFXTogZ2V0dGV4dCgnWW91IGhhdmUgbm90IHVwbG9hZGVkIGEgdmFsaWQgcGFja2FnZS4nKSxcbiAgW0VSUk9SX1RZUEUuSU5WQUxJRF9BUFBMSUNBVElPTl06IGdldHRleHQoJ1lvdSBoYXZlIG5vdCB1cGxvYWRlZCBhIHZhbGlkIGFwcGxpY2F0aW9uLicpLFxuICBbRVJST1JfVFlQRS5JTlRFUk5BTF9FUlJPUl06IGdldHRleHQoJ0FuIGludGVybmFsIGVycm9yIG9jY3VycmVkLCB0cnkgdG8gdXBsb2FkIGFnYWluLicpLFxuICBbRVJST1JfVFlQRS5NSUNST1NFUlZJQ0VfTkFNRV9UT09fTE9OR106IGdldHRleHQoXG4gICAgJ01pY3Jvc2VydmljZSBuYW1lIFwie3sgbmFtZSB9fVwiIG11c3Qgbm90IGJlIGxvbmdlciB0aGFuIHt7IG1heENoYXJzIH19IGNoYXJhY3RlcnMuJ1xuICApLFxuICBbRVJST1JfVFlQRS5BUFBMSUNBVElPTl9DUkVBVElPTl9GQUlMRURdOiBnZXR0ZXh0KCdBcHBsaWNhdGlvbiBjcmVhdGlvbiBmYWlsZWQuJyksXG4gIFtFUlJPUl9UWVBFLktFWV9PUl9DT05URVhUX1BBVEhfTUlTTUFUQ0hdOiBnZXR0ZXh0KFxuICAgICdUaGUgXCJjb250ZXh0UGF0aGBLRUVQX09SSUdJTkFMYFwiIG9yIFwia2V5YEtFRVBfT1JJR0lOQUxgXCIgb2YgdGhlIHVwbG9hZGVkIGFyY2hpdmUgZG8gbm90IG1hdGNoIHdpdGggdGhlIGV4aXN0aW5nIGFwcGxpY2F0aW9uLidcbiAgKSxcbiAgW0VSUk9SX1RZUEUuVkVSU0lPTl9OT1RfRk9VTkRdOiBnZXR0ZXh0KCdUaGUgc2VsZWN0ZWQgdmVyc2lvbiB3YXMgbm90IGZvdW5kIG9uIHRoZSBzZXJ2ZXIuJylcbn07XG5cbmV4cG9ydCBjb25zdCBBUFBfU1RBVEUgPSB7XG4gIFNVQlNDUklCRUQ6IHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnU3Vic2NyaWJlZGBhcHBsaWNhdGlvbmAnKSxcbiAgICBjbGFzczogJ2xhYmVsLXByaW1hcnknLFxuICAgIHRvb2x0aXA6IGdldHRleHQoJ1Byb3ZpZGVkIGJ5IHBhcmVudCB0ZW5hbnQuJylcbiAgfSxcbiAgQ1VTVE9NOiB7XG4gICAgbGFiZWw6IGdldHRleHQoJ0N1c3RvbWBhcHBsaWNhdGlvbmAnKSxcbiAgICBjbGFzczogJ2xhYmVsLWluZm8nLFxuICAgIHRvb2x0aXA6IGdldHRleHQoJ01hbnVhbGx5IHVwbG9hZGVkIHRvIHRoZSBwbGF0Zm9ybS4nKVxuICB9LFxuICBFWFRFUk5BTDoge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdFeHRlcm5hbGBhcHBsaWNhdGlvbmAnKSxcbiAgICBjbGFzczogJ2xhYmVsLXdhcm5pbmcnLFxuICAgIHRvb2x0aXA6IGdldHRleHQoJ0FwcGxpY2F0aW9uIGhvc3RlZCBvdXRzaWRlIG9mIHRoZSBwbGF0Zm9ybS4nKVxuICB9LFxuICBVTlBBQ0tFRDoge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdVbnBhY2tlZGBhcHBsaWNhdGlvbmAnKSxcbiAgICBjbGFzczogJ2xhYmVsLXN1Y2Nlc3MnLFxuICAgIHRvb2x0aXA6IGdldHRleHQoJ0RlcGxveWVkIGZyb20gYSBwYWNrYWdlIGF2YWlsYWJsZSB1bmRlciBcIlBhY2thZ2VzXCIuJylcbiAgfSxcbiAgUEFDS0FHRV9CTFVFUFJJTlQ6IHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnQmx1ZXByaW50JyksXG4gICAgY2xhc3M6ICdsYWJlbC1zdWNjZXNzJyxcbiAgICB0b29sdGlwOiBnZXR0ZXh0KCdDb250YWlucyBhbiBhcHBsaWNhdGlvbiBhbmQgbWF5IGluY2x1ZGUgcGx1Z2lucy4nKVxuICB9LFxuICBQQUNLQUdFX1BMVUdJTjoge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdQbHVnaW5zJyksXG4gICAgY2xhc3M6ICdsYWJlbC1pbmZvJyxcbiAgICB0b29sdGlwOiBnZXR0ZXh0KCdDb250YWlucyBvbmx5IHBsdWdpbnMuJylcbiAgfSxcbiAgUEFDS0FHRV9VTktOT1dOOiB7XG4gICAgbGFiZWw6IGdldHRleHQoJ1Vua25vd25gcGFja2FnZS10eXBlYCcpLFxuICAgIGNsYXNzOiAnbGFiZWwtaW5mbycsXG4gICAgdG9vbHRpcDogZ2V0dGV4dCgnUGFja2FnZSBjb250ZW50cyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nKVxuICB9XG59O1xuXG5leHBvcnQgdHlwZSBBcHBsaWNhdGlvblN0YXRlID0gKHR5cGVvZiBBUFBfU1RBVEUpW2tleW9mIHR5cGVvZiBBUFBfU1RBVEVdO1xuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9UWVBFX0xBQkVMUyA9IHtcbiAgW1BhY2thZ2VUeXBlLkNPTU1VTklUWV06IHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnQ09NTVVOSVRZYFBhY2thZ2UgY3JlYXRlZCBieSB0aGUgZGV2ZWxvcGVyIGNvbW11bml0eS5gJyksXG4gICAgdG9vbHRpcDogZ2V0dGV4dCgnUGFja2FnZSBjcmVhdGVkIGJ5IHRoZSBkZXZlbG9wZXIgY29tbXVuaXR5LicpXG4gIH0sXG4gIFtQYWNrYWdlVHlwZS5PRkZJQ0lBTF06IHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnT0ZGSUNJQUxgUGFja2FnZSBtYWludGFpbmVkIGJ5IFNvZnR3YXJlIEFHLmAnKSxcbiAgICB0b29sdGlwOiBnZXR0ZXh0KCdQYWNrYWdlIG1haW50YWluZWQgYnkgU29mdHdhcmUgQUcuJylcbiAgfSxcbiAgW1BhY2thZ2VUeXBlLlVOS05PV05dOiB7XG4gICAgbGFiZWw6IGdldHRleHQoJ0NVU1RPTWBQYWNrYWdlIG1haW50YWluZWQgYnkgYW4gdW5rbm93biBzb3VyY2UuYCcpLFxuICAgIHRvb2x0aXA6IGdldHRleHQoJ1BhY2thZ2UgbWFpbnRhaW5lciB1bmtub3duLicpXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwYWNrYWdlUHJvcGVydGllczogUHJvcGVydGllc0xpc3RJdGVtW10gPSBbXG4gIHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnTGF0ZXN0IHZlcnNpb24nKSxcbiAgICBrZXk6ICd2ZXJzaW9uJ1xuICB9LFxuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ0F1dGhvcicpLFxuICAgIGtleTogJ2F1dGhvcidcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdLZXl3b3JkcycpLFxuICAgIGtleTogJ2tleXdvcmRzJ1xuICB9LFxuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ1NvdXJjZScpLFxuICAgIGtleTogJ3JlcG9zaXRvcnknLFxuICAgIHRyYW5zZm9ybTogKHJlcG9zaXRvcnk6IGFueSkgPT4gKHJlcG9zaXRvcnk/LnVybCA/IHJlcG9zaXRvcnkudXJsIDogcmVwb3NpdG9yeSksXG4gICAgdHlwZTogJ2xpbmsnLFxuICAgIGFjdGlvbjogKGUsIGxpbms6IHN0cmluZykgPT4gd2luZG93Lm9wZW4obGluaywgJ19ibGFuaycsICdub29wZW5lcixub3JlZmVycmVyJylcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdIb21lcGFnZScpLFxuICAgIGtleTogJ2hvbWVwYWdlJyxcbiAgICB0eXBlOiAnbGluaycsXG4gICAgYWN0aW9uOiAoZSwgbGluazogc3RyaW5nKSA9PiB3aW5kb3cub3BlbihsaW5rLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKVxuICB9LFxuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ0xpY2Vuc2UnKSxcbiAgICBrZXk6ICdsaWNlbnNlJ1xuICB9XG5dO1xuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9zaGFyZWQvZWNvc3lzdGVtLmNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQXNCLE1BQU0scUJBQXFCLENBQUM7QUFFL0UsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sQ0FDakMsMEpBQTBKLENBQzNKO0lBQ0QsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxDQUNuQyxpRUFBaUUsQ0FDbEU7SUFDRCxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FDdEMsdUhBQXVILENBQ3hIO0lBQ0QsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLENBQUMsNEJBQTRCLENBQUM7SUFDcEUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxDQUFDLHdDQUF3QyxDQUFDO0lBQy9FLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsT0FBTyxDQUFDLDRDQUE0QyxDQUFDO0lBQ3ZGLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxrREFBa0QsQ0FBQztJQUN4RixDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLE9BQU8sQ0FDOUMsbUZBQW1GLENBQ3BGO0lBQ0QsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsRUFBRSxPQUFPLENBQUMsOEJBQThCLENBQUM7SUFDakYsQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsRUFBRSxPQUFPLENBQ2hELDhIQUE4SCxDQUMvSDtJQUNELENBQUMsVUFBVSxDQUFDLGlCQUFp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RyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDL0UsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUscUJBQXFCLENBQUM7S0FDaEY7SUFDRDtRQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQzFCLEdBQUcsRUFBRSxVQUFVO1FBQ2YsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUscUJBQXFCLENBQUM7S0FDaEY7SUFDRDtRQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3pCLEdBQUcsRUFBRSxTQUFTO0tBQ2Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVJST1JfVFlQRSB9IGZyb20gJy4vZWNvc3lzdGVtLm1vZGVsJztcbmltcG9ydCB7IGdldHRleHQsIFBhY2thZ2VUeXBlLCBQcm9wZXJ0aWVzTGlzdEl0ZW0gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VTID0ge1xuICBbRVJST1JfVFlQRS5BTFJFQURZX0VYSVNUXTogZ2V0dGV4dChcbiAgICAnQ291bGQgbm90IGRlcGxveSB0aGUgYXBwbGljYXRpb24sIGFzIGFuIGFwcGxpY2F0aW9uIHdpdGggdGhlIHNhbWUgbmFtZWBLRUVQX09SSUdJTkFMYCwgY29udGV4dC1wYXRoYEtFRVBfT1JJR0lOQUxgIG9yIGtleWBLRUVQX09SSUdJTkFMYCBleGlzdHMgYWxyZWFkeS4nXG4gICksXG4gIFtFUlJPUl9UWVBFLlRZUEVfVkFMSURBVElPTl06IGdldHRleHQoXG4gICAgJ1dyb25nIGZpbGUgZm9ybWF0LiBFeHBlY3RlZCBhICouemlwIGZpbGUgd2l0aCBhIHZhbGlkIG1hbmlmZXN0LidcbiAgKSxcbiAgW0VSUk9SX1RZUEUuQUxSRUFEWV9TVUJTQ1JJQkVEXTogZ2V0dGV4dChcbiAgICAnQ291bGQgbm90IHN1YnNjcmliZSB0byB0aGUgbWljcm9zZXJ2aWNlIGJlY2F1c2UgYW5vdGhlciBhcHBsaWNhdGlvbiB3aXRoIHRoZSBzYW1lIGNvbnRleHQgcGF0aCBpcyBhbHJlYWR5IHN1YnNjcmliZWQuJ1xuICApLFxuICBbRVJST1JfVFlQRS5OT19NQU5JRkVTVF9GSUxFXTogZ2V0dGV4dCgnQ291bGQgbm90IGZpbmQgYSBtYW5pZmVzdC4nKSxcbiAgW0VSUk9SX1RZUEUuSU5WQUxJRF9QQUNLQUdFXTogZ2V0dGV4dCgnWW91IGhhdmUgbm90IHVwbG9hZGVkIGEgdmFsaWQgcGFja2FnZS4nKSxcbiAgW0VSUk9SX1RZUEUuSU5WQUxJRF9BUFBMSUNBVElPTl06IGdldHRleHQoJ1lvdSBoYXZlIG5vdCB1cGxvYWRlZCBhIHZhbGlkIGFwcGxpY2F0aW9uLicpLFxuICBbRVJST1JfVFlQRS5JTlRFUk5BTF9FUlJPUl06IGdldHRleHQoJ0FuIGludGVybmFsIGVycm9yIG9jY3VycmVkLCB0cnkgdG8gdXBsb2FkIGFnYWluLicpLFxuICBbRVJST1JfVFlQRS5NSUNST1NFUlZJQ0VfTkFNRV9UT09fTE9OR106IGdldHRleHQoXG4gICAgJ01pY3Jvc2VydmljZSBuYW1lIFwie3sgbmFtZSB9fVwiIG11c3Qgbm90IGJlIGxvbmdlciB0aGFuIHt7IG1heENoYXJzIH19IGNoYXJhY3RlcnMuJ1xuICApLFxuICBbRVJST1JfVFlQRS5BUFBMSUNBVElPTl9DUkVBVElPTl9GQUlMRURdOiBnZXR0ZXh0KCdBcHBsaWNhdGlvbiBjcmVhdGlvbiBmYWlsZWQuJyksXG4gIFtFUlJPUl9UWVBFLktFWV9PUl9DT05URVhUX1BBVEhfTUlTTUFUQ0hdOiBnZXR0ZXh0KFxuICAgICdUaGUgXCJjb250ZXh0UGF0aGBLRUVQX09SSUdJTkFMYFwiIG9yIFwia2V5YEtFRVBfT1JJR0lOQUxgXCIgb2YgdGhlIHVwbG9hZGVkIGFyY2hpdmUgZG8gbm90IG1hdGNoIHdpdGggdGhlIGV4aXN0aW5nIGFwcGxpY2F0aW9uLidcbiAgKSxcbiAgW0VSUk9SX1RZUEUuVkVSU0lPTl9OT1RfRk9VTkRdOiBnZXR0ZXh0KCdUaGUgc2VsZWN0ZWQgdmVyc2lvbiB3YXMgbm90IGZvdW5kIG9uIHRoZSBzZXJ2ZXIuJylcbn07XG5cbmV4cG9ydCBjb25zdCBBUFBfU1RBVEUgPSB7XG4gIFNVQlNDUklCRUQ6IHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnU3Vic2NyaWJlZGBhcHBsaWNhdGlvbmAnKSxcbiAgICBjbGFzczogJ2xhYmVsLXByaW1hcnknLFxuICAgIHRvb2x0aXA6IGdldHRleHQoJ1Byb3ZpZGVkIGJ5IHBhcmVudCB0ZW5hbnQuJylcbiAgfSxcbiAgQ1VTVE9NOiB7XG4gICAgbGFiZWw6IGdldHRleHQoJ0N1c3RvbWBhcHBsaWNhdGlvbmAnKSxcbiAgICBjbGFzczogJ2xhYmVsLWluZm8nLFxuICAgIHRvb2x0aXA6IGdldHRleHQoJ01hbnVhbGx5IHVwbG9hZGVkIHRvIHRoZSBwbGF0Zm9ybS4nKVxuICB9LFxuICBFWFRFUk5BTDoge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdFeHRlcm5hbGBhcHBsaWNhdGlvbmAnKSxcbiAgICBjbGFzczogJ2xhYmVsLXdhcm5pbmcnLFxuICAgIHRvb2x0aXA6IGdldHRleHQoJ0FwcGxpY2F0aW9uIGhvc3RlZCBvdXRzaWRlIG9mIHRoZSBwbGF0Zm9ybS4nKVxuICB9LFxuICBVTlBBQ0tFRDoge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdVbnBhY2tlZGBhcHBsaWNhdGlvbmAnKSxcbiAgICBjbGFzczogJ2xhYmVsLXN1Y2Nlc3MnLFxuICAgIHRvb2x0aXA6IGdldHRleHQoJ0RlcGxveWVkIGZyb20gYSBwYWNrYWdlIGF2YWlsYWJsZSB1bmRlciBcIlBhY2thZ2VzXCIuJylcbiAgfSxcbiAgUEFDS0FHRV9CTFVFUFJJTlQ6IHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnQmx1ZXByaW50JyksXG4gICAgY2xhc3M6ICdsYWJlbC1zdWNjZXNzJyxcbiAgICB0b29sdGlwOiBnZXR0ZXh0KCdDb250YWlucyBhbiBhcHBsaWNhdGlvbiBhbmQgbWF5IGluY2x1ZGUgcGx1Z2lucy4nKVxuICB9LFxuICBQQUNLQUdFX1BMVUdJTjoge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdQbHVnaW5zJyksXG4gICAgY2xhc3M6ICdsYWJlbC1pbmZvJyxcbiAgICB0b29sdGlwOiBnZXR0ZXh0KCdDb250YWlucyBvbmx5IHBsdWdpbnMuJylcbiAgfSxcbiAgUEFDS0FHRV9VTktOT1dOOiB7XG4gICAgbGFiZWw6IGdldHRleHQoJ1Vua25vd25gcGFja2FnZS10eXBlYCcpLFxuICAgIGNsYXNzOiAnbGFiZWwtaW5mbycsXG4gICAgdG9vbHRpcDogZ2V0dGV4dCgnUGFja2FnZSBjb250ZW50cyBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4nKVxuICB9XG59O1xuXG5leHBvcnQgdHlwZSBBcHBsaWNhdGlvblN0YXRlID0gKHR5cGVvZiBBUFBfU1RBVEUpW2tleW9mIHR5cGVvZiBBUFBfU1RBVEVdO1xuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9UWVBFX0xBQkVMUyA9IHtcbiAgW1BhY2thZ2VUeXBlLkNPTU1VTklUWV06IHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnQ09NTVVOSVRZYFBhY2thZ2UgY3JlYXRlZCBieSB0aGUgZGV2ZWxvcGVyIGNvbW11bml0eS5gJyksXG4gICAgdG9vbHRpcDogZ2V0dGV4dCgnUGFja2FnZSBjcmVhdGVkIGJ5IHRoZSBkZXZlbG9wZXIgY29tbXVuaXR5LicpXG4gIH0sXG4gIFtQYWNrYWdlVHlwZS5PRkZJQ0lBTF06IHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnT0ZGSUNJQUxgUGFja2FnZSBtYWludGFpbmVkIGJ5IFNvZnR3YXJlIEFHLmAnKSxcbiAgICB0b29sdGlwOiBnZXR0ZXh0KCdQYWNrYWdlIG1haW50YWluZWQgYnkgU29mdHdhcmUgQUcuJylcbiAgfSxcbiAgW1BhY2thZ2VUeXBlLlVOS05PV05dOiB7XG4gICAgbGFiZWw6IGdldHRleHQoJ0NVU1RPTWBQYWNrYWdlIG1haW50YWluZWQgYnkgYW4gdW5rbm93biBzb3VyY2UuYCcpLFxuICAgIHRvb2x0aXA6IGdldHRleHQoJ1BhY2thZ2UgbWFpbnRhaW5lciB1bmtub3duLicpXG4gIH0sXG4gIFtQYWNrYWdlVHlwZS5BUkNISVZFRF06IHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnQVJDSElWRURgUGFja2FnZSBvdXQgb2YgbWFpbnRlbmFuY2UuYCcpLFxuICAgIHRvb2x0aXA6IGdldHRleHQoJ1RoZSBwYWNrYWdlIHdhcyBtYXJrZWQgYnkgdGhlIGF1dGhvciBhcyBhcmNoaXZlZC4nKVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcGFja2FnZVByb3BlcnRpZXM6IFByb3BlcnRpZXNMaXN0SXRlbVtdID0gW1xuICB7XG4gICAgbGFiZWw6IGdldHRleHQoJ0xhdGVzdCB2ZXJzaW9uJyksXG4gICAga2V5OiAndmVyc2lvbidcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdBdXRob3InKSxcbiAgICBrZXk6ICdhdXRob3InXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnS2V5d29yZHMnKSxcbiAgICBrZXk6ICdrZXl3b3JkcydcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdTb3VyY2UnKSxcbiAgICBrZXk6ICdyZXBvc2l0b3J5JyxcbiAgICB0cmFuc2Zvcm06IChyZXBvc2l0b3J5OiBhbnkpID0+IChyZXBvc2l0b3J5Py51cmwgPyByZXBvc2l0b3J5LnVybCA6IHJlcG9zaXRvcnkpLFxuICAgIHR5cGU6ICdsaW5rJyxcbiAgICBhY3Rpb246IChlLCBsaW5rOiBzdHJpbmcpID0+IHdpbmRvdy5vcGVuKGxpbmssICdfYmxhbmsnLCAnbm9vcGVuZXIsbm9yZWZlcnJlcicpXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogZ2V0dGV4dCgnSG9tZXBhZ2UnKSxcbiAgICBrZXk6ICdob21lcGFnZScsXG4gICAgdHlwZTogJ2xpbmsnLFxuICAgIGFjdGlvbjogKGUsIGxpbms6IHN0cmluZykgPT4gd2luZG93Lm9wZW4obGluaywgJ19ibGFuaycsICdub29wZW5lcixub3JlZmVycmVyJylcbiAgfSxcbiAge1xuICAgIGxhYmVsOiBnZXR0ZXh0KCdMaWNlbnNlJyksXG4gICAga2V5OiAnbGljZW5zZSdcbiAgfVxuXTtcbiJdfQ==
@@ -6,6 +6,7 @@ export var EcosystemWizards;
6
6
  EcosystemWizards["PACKAGE_UPLOAD"] = "ecosystemPackageUpload";
7
7
  EcosystemWizards["BLUEPRINT_DEPLOYMENT"] = "ecosystemBlueprintDeployment";
8
8
  EcosystemWizards["LICENSE_CONFIRM"] = "ecosystemLicenseConfirm";
9
+ EcosystemWizards["ARCHIVED_CONFIRM"] = "ecosystemArchivedConfirm";
9
10
  })(EcosystemWizards || (EcosystemWizards = {}));
10
11
  export var ERROR_TYPE;
11
12
  (function (ERROR_TYPE) {
@@ -43,7 +44,8 @@ export const PRODUCT_EXPERIENCE_ECOSYSTEM = {
43
44
  PLUGIN_LIST: 'plugin-list',
44
45
  PACKAGE_VERSIONS: 'package-versions-list',
45
46
  UPDATE_PLUGIN_OF_APP: 'update-plugin-of-app',
46
- LIST_FILTERS: 'list-filters'
47
+ LIST_FILTERS: 'list-filters',
48
+ PACKAGE_DETAILS: 'package-details'
47
49
  },
48
50
  ACTIONS: {
49
51
  AVAILABILITY_CHANGE: 'availabilityChange',
@@ -63,7 +65,9 @@ export const PRODUCT_EXPERIENCE_ECOSYSTEM = {
63
65
  UPLOAD: 'upload',
64
66
  SET_FILTER_TERM: 'setFilterTerm',
65
67
  SET_PREDEFINED_FILTERS: 'setPredefinedFilters',
66
- RESET_FILTER: 'resetFilter'
68
+ RESET_FILTER: 'resetFilter',
69
+ INSTALL_PLUGINS_INITIATED: 'installPluginsInitiated',
70
+ DEPLOY_APPLICATION_INITIATED: 'deployApplicationInitiated'
67
71
  },
68
72
  RESULTS: {
69
73
  DEPLOYED: 'deployed',
@@ -76,4 +80,4 @@ export const PRODUCT_EXPERIENCE_ECOSYSTEM = {
76
80
  }
77
81
  }
78
82
  };
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC9lY29zeXN0ZW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsb0JBQW9CO0FBQ3BCLE1BQU0sQ0FBTixJQUFZLGdCQU1YO0FBTkQsV0FBWSxnQkFBZ0I7SUFDMUIscUVBQWlELENBQUE7SUFDakQsdUVBQW1ELENBQUE7SUFDbkQsNkRBQXlDLENBQUE7SUFDekMseUVBQXFELENBQUE7SUFDckQsK0RBQTJDLENBQUE7QUFDN0MsQ0FBQyxFQU5XLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFNM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxVQVlYO0FBWkQsV0FBWSxVQUFVO0lBQ3BCLGlEQUFtQyxDQUFBO0lBQ25DLHVEQUF5QyxDQUFBO0lBQ3pDLDZDQUErQixDQUFBO0lBQy9CLCtDQUFpQyxDQUFBO0lBQ2pDLG1EQUFxQyxDQUFBO0lBQ3JDLGlEQUFtQyxDQUFBO0lBQ25DLHlEQUEyQyxDQUFBO0lBQzNDLHVFQUF5RCxDQUFBO0lBQ3pELHlFQUEyRCxDQUFBO0lBQzNELDJFQUE2RCxDQUFBO0lBQzdELHFEQUF1QyxDQUFBO0FBQ3pDLENBQUMsRUFaVyxVQUFVLEtBQVYsVUFBVSxRQVlyQjtBQU9ELE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHO0lBQzFDLFlBQVksRUFBRTtRQUNaLE1BQU0sRUFBRTtZQUNOLFlBQVksRUFBRSxjQUFjO1lBQzVCLGdCQUFnQixFQUFFLGlCQUFpQjtZQUNuQyxzQkFBc0IsRUFBRSx1QkFBdUI7WUFDL0Msa0JBQWtCLEVBQUUsbUJBQW1CO1lBQ3ZDLHFCQUFxQixFQUFFLHNCQUFzQjtZQUM3QyxpQkFBaUIsRUFBRSxrQkFBa0I7WUFDckMsZUFBZSxFQUFFLGdCQUFnQjtZQUNqQyxnQkFBZ0IsRUFBRSxpQkFBaUI7WUFDbkMsV0FBVyxFQUFFLFlBQVk7U0FDMUI7UUFDRCxVQUFVLEVBQUU7WUFDVixnQkFBZ0IsRUFBRSxrQkFBa0I7WUFDcEMsbUJBQW1CLEVBQUUscUJBQXFCO1lBQzFDLHNCQUFzQixFQUFFLHdCQUF3QjtZQUNoRCxrQkFBa0IsRUFBRSxvQkFBb0I7WUFDeEMsZ0NBQWdDLEVBQUUsa0NBQWtDO1lBQ3BFLFdBQVcsRUFBRSxhQUFhO1lBQzFCLGdCQUFnQixFQUFFLHVCQUF1QjtZQUN6QyxvQkFBb0IsRUFBRSxzQkFBc0I7WUFDNUMsWUFBWSxFQUFFLGNBQWM7U0FDN0I7UUFDRCxPQUFPLEVBQUU7WUFDUCxtQkFBbUIsRUFBRSxvQkFBb0I7WUFDekMsTUFBTSxFQUFFLFFBQVE7WUFDaEIsS0FBSyxFQUFFLE9BQU87WUFDZCxxQkFBcUIsRUFBRSxxQkFBcUI7WUFDNUMsTUFBTSxFQUFFLFFBQVE7WUFDaEIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsa0JBQWtCLEVBQUUsbUJBQW1CO1lBQ3ZDLElBQUksRUFBRSxNQUFNO1lBQ1osY0FBYyxFQUFFLGVBQWU7WUFDL0IsZUFBZSxFQUFFLGdCQUFnQjtZQUNqQyxnQkFBZ0IsRUFBRSxpQkFBaUI7WUFDbkMsY0FBYyxFQUFFLGVBQWU7WUFDL0IsYUFBYSxFQUFFLGFBQWE7WUFDNUIsZ0JBQWdCLEVBQUUsaUJBQWlCO1lBQ25DLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLGVBQWUsRUFBRSxlQUFlO1lBQ2hDLHNCQUFzQixFQUFFLHNCQUFzQjtZQUM5QyxZQUFZLEVBQUUsYUFBYTtTQUM1QjtRQUNELE9BQU8sRUFBRTtZQUNQLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFVBQVUsRUFBRSxZQUFZO1lBQ3hCLGdCQUFnQixFQUFFLGlCQUFpQjtZQUNuQyxjQUFjLEVBQUUsZUFBZTtZQUMvQixzQkFBc0IsRUFBRSxzQkFBc0I7WUFDOUMsY0FBYyxFQUFFLGVBQWU7WUFDL0IsT0FBTyxFQUFFLFNBQVM7U0FDbkI7S0FDRjtDQUNPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblBsdWdpbiB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuXG4vKiogV2l6YXJkIHR5cGVzICAqL1xuZXhwb3J0IGVudW0gRWNvc3lzdGVtV2l6YXJkcyB7XG4gIEFQUExJQ0FUSU9OX1VQTE9BRCA9ICdlY29zeXN0ZW1BcHBsaWNhdGlvblVwbG9hZCcsXG4gIE1JQ1JPU0VSVklDRV9VUExPQUQgPSAnZWNvc3lzdGVtTWljcm9zZXJ2aWNlVXBsb2FkJyxcbiAgUEFDS0FHRV9VUExPQUQgPSAnZWNvc3lzdGVtUGFja2FnZVVwbG9hZCcsXG4gIEJMVUVQUklOVF9ERVBMT1lNRU5UID0gJ2Vjb3N5c3RlbUJsdWVwcmludERlcGxveW1lbnQnLFxuICBMSUNFTlNFX0NPTkZJUk0gPSAnZWNvc3lzdGVtTGljZW5zZUNvbmZpcm0nXG59XG5cbmV4cG9ydCBlbnVtIEVSUk9SX1RZUEUge1xuICBUWVBFX1ZBTElEQVRJT04gPSAnVFlQRV9WQUxJREFUSU9OJyxcbiAgQUxSRUFEWV9TVUJTQ1JJQkVEID0gJ0FMUkVBRFlfU1VCU0NSSUJFRCcsXG4gIEFMUkVBRFlfRVhJU1QgPSAnQUxSRUFEWV9FWElTVCcsXG4gIElOVEVSTkFMX0VSUk9SID0gJ0lOVEVSTkFMX0VSUk9SJyxcbiAgTk9fTUFOSUZFU1RfRklMRSA9ICdOT19NQU5JRkVTVF9GSUxFJyxcbiAgSU5WQUxJRF9QQUNLQUdFID0gJ0lOVkFMSURfUEFDS0FHRScsXG4gIElOVkFMSURfQVBQTElDQVRJT04gPSAnSU5WQUxJRF9BUFBMSUNBVElPTicsXG4gIE1JQ1JPU0VSVklDRV9OQU1FX1RPT19MT05HID0gJ01JQ1JPU0VSVklDRV9OQU1FX1RPT19MT05HJyxcbiAgQVBQTElDQVRJT05fQ1JFQVRJT05fRkFJTEVEID0gJ0FQUExJQ0FUSU9OX0NSRUFUSU9OX0ZBSUxFRCcsXG4gIEtFWV9PUl9DT05URVhUX1BBVEhfTUlTTUFUQ0ggPSAnS0VZX09SX0NPTlRFWFRfUEFUSF9NSVNNQVRDSCcsXG4gIFZFUlNJT05fTk9UX0ZPVU5EID0gJ1ZFUlNJT05fTk9UX0ZPVU5EJ1xufVxuXG5leHBvcnQgdHlwZSBMaWNlbnNlZEFwcGxpY2F0aW9uUGx1Z2luID0gUGljazxcbiAgQXBwbGljYXRpb25QbHVnaW4sXG4gICd0eXBlJyB8ICdsaWNlbnNlJyB8ICduYW1lJyB8ICd2ZXJzaW9uJyB8ICdjb250ZXh0UGF0aCdcbj47XG5cbmV4cG9ydCBjb25zdCBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNID0ge1xuICBBUFBMSUNBVElPTlM6IHtcbiAgICBFVkVOVFM6IHtcbiAgICAgIEFWQUlMQUJJTElUWTogJ2F2YWlsYWJpbGl0eScsXG4gICAgICBBUFBMSUNBVElPTl9DQVJEOiAnYXBwbGljYXRpb25DYXJkJyxcbiAgICAgIEFQUExJQ0FUSU9OX1BST1BFUlRJRVM6ICdhcHBsaWNhdGlvblByb3BlcnRpZXMnLFxuICAgICAgREVQTE9ZX0FQUExJQ0FUSU9OOiAnZGVwbG95QXBwbGljYXRpb24nLFxuICAgICAgRFVQTElDQVRFX0FQUExJQ0FUSU9OOiAnZHVwbGljYXRlQXBwbGljYXRpb24nLFxuICAgICAgSU5TVEFMTEVEX1BMVUdJTlM6ICdpbnN0YWxsZWRQbHVnaW5zJyxcbiAgICAgIFBBQ0tBR0VfUExVR0lOUzogJ3BhY2thZ2VQbHVnaW5zJyxcbiAgICAgIFBBQ0tBR0VfVkVSU0lPTlM6ICdwYWNrYWdlVmVyc2lvbnMnLFxuICAgICAgRklMVEVSX0xJU1Q6ICdmaWx0ZXJMaXN0J1xuICAgIH0sXG4gICAgQ09NUE9ORU5UUzoge1xuICAgICAgQVBQTElDQVRJT05fQ0FSRDogJ2FwcGxpY2F0aW9uLWNhcmQnLFxuICAgICAgQVBQTElDQVRJT05fUExVR0lOUzogJ2FwcGxpY2F0aW9uLXBsdWdpbnMnLFxuICAgICAgQVBQTElDQVRJT05fUFJPUEVSVElFUzogJ2FwcGxpY2F0aW9uLXByb3BlcnRpZXMnLFxuICAgICAgREVQTE9ZX0FQUExJQ0FUSU9OOiAnZGVwbG95LWFwcGxpY2F0aW9uJyxcbiAgICAgIERVUExJQ0FURV9BUFBMSUNBVElPTl9QUk9QRVJUSUVTOiAnZHVwbGljYXRlLWFwcGxpY2F0aW9uLXByb3BlcnRpZXMnLFxuICAgICAgUExVR0lOX0xJU1Q6ICdwbHVnaW4tbGlzdCcsXG4gICAgICBQQUNLQUdFX1ZFUlNJT05TOiAncGFja2FnZS12ZXJzaW9ucy1saXN0JyxcbiAgICAgIFVQREFURV9QTFVHSU5fT0ZfQVBQOiAndXBkYXRlLXBsdWdpbi1vZi1hcHAnLFxuICAgICAgTElTVF9GSUxURVJTOiAnbGlzdC1maWx0ZXJzJ1xuICAgIH0sXG4gICAgQUNUSU9OUzoge1xuICAgICAgQVZBSUxBQklMSVRZX0NIQU5HRTogJ2F2YWlsYWJpbGl0eUNoYW5nZScsXG4gICAgICBDQU5DRUw6ICdjYW5jZWwnLFxuICAgICAgQ0xPTkU6ICdjbG9uZScsXG4gICAgICBDSEFOR0VfUExVR0lOX1ZFUlNJT046ICdjaGFuZ2VQbHVnaW5WZXJzaW9uJyxcbiAgICAgIERFTEVURTogJ2RlbGV0ZScsXG4gICAgICBET1dOTE9BRDogJ2Rvd25sb2FkJyxcbiAgICAgIERFUExPWV9BUFBMSUNBVElPTjogJ2RlcGxveUFwcGxpY2F0aW9uJyxcbiAgICAgIEVESVQ6ICdlZGl0JyxcbiAgICAgIElOU1RBTExfUExVR0lOOiAnaW5zdGFsbFBsdWdpbicsXG4gICAgICBJTlNUQUxMX1BMVUdJTlM6ICdpbnN0YWxsUGx1Z2lucycsXG4gICAgICBVTklOU1RBTExfUExVR0lOOiAndW5pbnN0YWxsUGx1Z2luJyxcbiAgICAgIFNFTEVDVF9WRVJTSU9OOiAnc2VsZWN0VmVyc2lvbicsXG4gICAgICBTRVRfQVNfTEFURVNUOiAnc2V0QXNMYXRlc3QnLFxuICAgICAgVVBEQVRFX0FWQUlMQUJMRTogJ3VwZGF0ZUF2YWlsYWJsZScsXG4gICAgICBVUExPQUQ6ICd1cGxvYWQnLFxuICAgICAgU0VUX0ZJTFRFUl9URVJNOiAnc2V0RmlsdGVyVGVybScsXG4gICAgICBTRVRfUFJFREVGSU5FRF9GSUxURVJTOiAnc2V0UHJlZGVmaW5lZEZpbHRlcnMnLFxuICAgICAgUkVTRVRfRklMVEVSOiAncmVzZXRGaWx0ZXInXG4gICAgfSxcbiAgICBSRVNVTFRTOiB7XG4gICAgICBERVBMT1lFRDogJ2RlcGxveWVkJyxcbiAgICAgIERVUExJQ0FURUQ6ICdkdXBsaWNhdGVkJyxcbiAgICAgIFBMVUdJTl9JTlNUQUxMRUQ6ICdwbHVnaW5JbnN0YWxsZWQnLFxuICAgICAgUExVR0lOX1JFTU9WRUQ6ICdwbHVnaW5SZW1vdmVkJyxcbiAgICAgIFBMVUdJTl9WRVJTSU9OX0NIQU5HRUQ6ICdwbHVnaW5WZXJzaW9uQ2hhbmdlZCcsXG4gICAgICBTRVJWRVJfRkFJTFVSRTogJ3NlcnZlckZhaWx1cmUnLFxuICAgICAgU1VDQ0VTUzogJ3N1Y2Nlc3MnXG4gICAgfVxuICB9XG59IGFzIGNvbnN0O1xuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC9lY29zeXN0ZW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsb0JBQW9CO0FBQ3BCLE1BQU0sQ0FBTixJQUFZLGdCQU9YO0FBUEQsV0FBWSxnQkFBZ0I7SUFDMUIscUVBQWlELENBQUE7SUFDakQsdUVBQW1ELENBQUE7SUFDbkQsNkRBQXlDLENBQUE7SUFDekMseUVBQXFELENBQUE7SUFDckQsK0RBQTJDLENBQUE7SUFDM0MsaUVBQTZDLENBQUE7QUFDL0MsQ0FBQyxFQVBXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFPM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxVQVlYO0FBWkQsV0FBWSxVQUFVO0lBQ3BCLGlEQUFtQyxDQUFBO0lBQ25DLHVEQUF5QyxDQUFBO0lBQ3pDLDZDQUErQixDQUFBO0lBQy9CLCtDQUFpQyxDQUFBO0lBQ2pDLG1EQUFxQyxDQUFBO0lBQ3JDLGlEQUFtQyxDQUFBO0lBQ25DLHlEQUEyQyxDQUFBO0lBQzNDLHVFQUF5RCxDQUFBO0lBQ3pELHlFQUEyRCxDQUFBO0lBQzNELDJFQUE2RCxDQUFBO0lBQzdELHFEQUF1QyxDQUFBO0FBQ3pDLENBQUMsRUFaVyxVQUFVLEtBQVYsVUFBVSxRQVlyQjtBQU9ELE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHO0lBQzFDLFlBQVksRUFBRTtRQUNaLE1BQU0sRUFBRTtZQUNOLFlBQVksRUFBRSxjQUFjO1lBQzVCLGdCQUFnQixFQUFFLGlCQUFpQjtZQUNuQyxzQkFBc0IsRUFBRSx1QkFBdUI7WUFDL0Msa0JBQWtCLEVBQUUsbUJBQW1CO1lBQ3ZDLHFCQUFxQixFQUFFLHNCQUFzQjtZQUM3QyxpQkFBaUIsRUFBRSxrQkFBa0I7WUFDckMsZUFBZSxFQUFFLGdCQUFnQjtZQUNqQyxnQkFBZ0IsRUFBRSxpQkFBaUI7WUFDbkMsV0FBVyxFQUFFLFlBQVk7U0FDMUI7UUFDRCxVQUFVLEVBQUU7WUFDVixnQkFBZ0IsRUFBRSxrQkFBa0I7WUFDcEMsbUJBQW1CLEVBQUUscUJBQXFCO1lBQzFDLHNCQUFzQixFQUFFLHdCQUF3QjtZQUNoRCxrQkFBa0IsRUFBRSxvQkFBb0I7WUFDeEMsZ0NBQWdDLEVBQUUsa0NBQWtDO1lBQ3BFLFdBQVcsRUFBRSxhQUFhO1lBQzFCLGdCQUFnQixFQUFFLHVCQUF1QjtZQUN6QyxvQkFBb0IsRUFBRSxzQkFBc0I7WUFDNUMsWUFBWSxFQUFFLGNBQWM7WUFDNUIsZUFBZSxFQUFFLGlCQUFpQjtTQUNuQztRQUNELE9BQU8sRUFBRTtZQUNQLG1CQUFtQixFQUFFLG9CQUFvQjtZQUN6QyxNQUFNLEVBQUUsUUFBUTtZQUNoQixLQUFLLEVBQUUsT0FBTztZQUNkLHFCQUFxQixFQUFFLHFCQUFxQjtZQUM1QyxNQUFNLEVBQUUsUUFBUTtZQUNoQixRQUFRLEVBQUUsVUFBVTtZQUNwQixrQkFBa0IsRUFBRSxtQkFBbUI7WUFDdkMsSUFBSSxFQUFFLE1BQU07WUFDWixjQUFjLEVBQUUsZUFBZTtZQUMvQixlQUFlLEVBQUUsZ0JBQWdCO1lBQ2pDLGdCQUFnQixFQUFFLGlCQUFpQjtZQUNuQyxjQUFjLEVBQUUsZUFBZTtZQUMvQixhQUFhLEVBQUUsYUFBYTtZQUM1QixnQkFBZ0IsRUFBRSxpQkFBaUI7WUFDbkMsTUFBTSxFQUFFLFFBQVE7WUFDaEIsZUFBZSxFQUFFLGVBQWU7WUFDaEMsc0JBQXNCLEVBQUUsc0JBQXNCO1lBQzlDLFlBQVksRUFBRSxhQUFhO1lBQzNCLHlCQUF5QixFQUFFLHlCQUF5QjtZQUNwRCw0QkFBNEIsRUFBRSw0QkFBNEI7U0FDM0Q7UUFDRCxPQUFPLEVBQUU7WUFDUCxRQUFRLEVBQUUsVUFBVTtZQUNwQixVQUFVLEVBQUUsWUFBWTtZQUN4QixnQkFBZ0IsRUFBRSxpQkFBaUI7WUFDbkMsY0FBYyxFQUFFLGVBQWU7WUFDL0Isc0JBQXNCLEVBQUUsc0JBQXNCO1lBQzlDLGNBQWMsRUFBRSxlQUFlO1lBQy9CLE9BQU8sRUFBRSxTQUFTO1NBQ25CO0tBQ0Y7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25QbHVnaW4gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuLyoqIFdpemFyZCB0eXBlcyAgKi9cbmV4cG9ydCBlbnVtIEVjb3N5c3RlbVdpemFyZHMge1xuICBBUFBMSUNBVElPTl9VUExPQUQgPSAnZWNvc3lzdGVtQXBwbGljYXRpb25VcGxvYWQnLFxuICBNSUNST1NFUlZJQ0VfVVBMT0FEID0gJ2Vjb3N5c3RlbU1pY3Jvc2VydmljZVVwbG9hZCcsXG4gIFBBQ0tBR0VfVVBMT0FEID0gJ2Vjb3N5c3RlbVBhY2thZ2VVcGxvYWQnLFxuICBCTFVFUFJJTlRfREVQTE9ZTUVOVCA9ICdlY29zeXN0ZW1CbHVlcHJpbnREZXBsb3ltZW50JyxcbiAgTElDRU5TRV9DT05GSVJNID0gJ2Vjb3N5c3RlbUxpY2Vuc2VDb25maXJtJyxcbiAgQVJDSElWRURfQ09ORklSTSA9ICdlY29zeXN0ZW1BcmNoaXZlZENvbmZpcm0nXG59XG5cbmV4cG9ydCBlbnVtIEVSUk9SX1RZUEUge1xuICBUWVBFX1ZBTElEQVRJT04gPSAnVFlQRV9WQUxJREFUSU9OJyxcbiAgQUxSRUFEWV9TVUJTQ1JJQkVEID0gJ0FMUkVBRFlfU1VCU0NSSUJFRCcsXG4gIEFMUkVBRFlfRVhJU1QgPSAnQUxSRUFEWV9FWElTVCcsXG4gIElOVEVSTkFMX0VSUk9SID0gJ0lOVEVSTkFMX0VSUk9SJyxcbiAgTk9fTUFOSUZFU1RfRklMRSA9ICdOT19NQU5JRkVTVF9GSUxFJyxcbiAgSU5WQUxJRF9QQUNLQUdFID0gJ0lOVkFMSURfUEFDS0FHRScsXG4gIElOVkFMSURfQVBQTElDQVRJT04gPSAnSU5WQUxJRF9BUFBMSUNBVElPTicsXG4gIE1JQ1JPU0VSVklDRV9OQU1FX1RPT19MT05HID0gJ01JQ1JPU0VSVklDRV9OQU1FX1RPT19MT05HJyxcbiAgQVBQTElDQVRJT05fQ1JFQVRJT05fRkFJTEVEID0gJ0FQUExJQ0FUSU9OX0NSRUFUSU9OX0ZBSUxFRCcsXG4gIEtFWV9PUl9DT05URVhUX1BBVEhfTUlTTUFUQ0ggPSAnS0VZX09SX0NPTlRFWFRfUEFUSF9NSVNNQVRDSCcsXG4gIFZFUlNJT05fTk9UX0ZPVU5EID0gJ1ZFUlNJT05fTk9UX0ZPVU5EJ1xufVxuXG5leHBvcnQgdHlwZSBMaWNlbnNlZEFwcGxpY2F0aW9uUGx1Z2luID0gUGljazxcbiAgQXBwbGljYXRpb25QbHVnaW4sXG4gICd0eXBlJyB8ICdsaWNlbnNlJyB8ICduYW1lJyB8ICd2ZXJzaW9uJyB8ICdjb250ZXh0UGF0aCdcbj47XG5cbmV4cG9ydCBjb25zdCBQUk9EVUNUX0VYUEVSSUVOQ0VfRUNPU1lTVEVNID0ge1xuICBBUFBMSUNBVElPTlM6IHtcbiAgICBFVkVOVFM6IHtcbiAgICAgIEFWQUlMQUJJTElUWTogJ2F2YWlsYWJpbGl0eScsXG4gICAgICBBUFBMSUNBVElPTl9DQVJEOiAnYXBwbGljYXRpb25DYXJkJyxcbiAgICAgIEFQUExJQ0FUSU9OX1BST1BFUlRJRVM6ICdhcHBsaWNhdGlvblByb3BlcnRpZXMnLFxuICAgICAgREVQTE9ZX0FQUExJQ0FUSU9OOiAnZGVwbG95QXBwbGljYXRpb24nLFxuICAgICAgRFVQTElDQVRFX0FQUExJQ0FUSU9OOiAnZHVwbGljYXRlQXBwbGljYXRpb24nLFxuICAgICAgSU5TVEFMTEVEX1BMVUdJTlM6ICdpbnN0YWxsZWRQbHVnaW5zJyxcbiAgICAgIFBBQ0tBR0VfUExVR0lOUzogJ3BhY2thZ2VQbHVnaW5zJyxcbiAgICAgIFBBQ0tBR0VfVkVSU0lPTlM6ICdwYWNrYWdlVmVyc2lvbnMnLFxuICAgICAgRklMVEVSX0xJU1Q6ICdmaWx0ZXJMaXN0J1xuICAgIH0sXG4gICAgQ09NUE9ORU5UUzoge1xuICAgICAgQVBQTElDQVRJT05fQ0FSRDogJ2FwcGxpY2F0aW9uLWNhcmQnLFxuICAgICAgQVBQTElDQVRJT05fUExVR0lOUzogJ2FwcGxpY2F0aW9uLXBsdWdpbnMnLFxuICAgICAgQVBQTElDQVRJT05fUFJPUEVSVElFUzogJ2FwcGxpY2F0aW9uLXByb3BlcnRpZXMnLFxuICAgICAgREVQTE9ZX0FQUExJQ0FUSU9OOiAnZGVwbG95LWFwcGxpY2F0aW9uJyxcbiAgICAgIERVUExJQ0FURV9BUFBMSUNBVElPTl9QUk9QRVJUSUVTOiAnZHVwbGljYXRlLWFwcGxpY2F0aW9uLXByb3BlcnRpZXMnLFxuICAgICAgUExVR0lOX0xJU1Q6ICdwbHVnaW4tbGlzdCcsXG4gICAgICBQQUNLQUdFX1ZFUlNJT05TOiAncGFja2FnZS12ZXJzaW9ucy1saXN0JyxcbiAgICAgIFVQREFURV9QTFVHSU5fT0ZfQVBQOiAndXBkYXRlLXBsdWdpbi1vZi1hcHAnLFxuICAgICAgTElTVF9GSUxURVJTOiAnbGlzdC1maWx0ZXJzJyxcbiAgICAgIFBBQ0tBR0VfREVUQUlMUzogJ3BhY2thZ2UtZGV0YWlscydcbiAgICB9LFxuICAgIEFDVElPTlM6IHtcbiAgICAgIEFWQUlMQUJJTElUWV9DSEFOR0U6ICdhdmFpbGFiaWxpdHlDaGFuZ2UnLFxuICAgICAgQ0FOQ0VMOiAnY2FuY2VsJyxcbiAgICAgIENMT05FOiAnY2xvbmUnLFxuICAgICAgQ0hBTkdFX1BMVUdJTl9WRVJTSU9OOiAnY2hhbmdlUGx1Z2luVmVyc2lvbicsXG4gICAgICBERUxFVEU6ICdkZWxldGUnLFxuICAgICAgRE9XTkxPQUQ6ICdkb3dubG9hZCcsXG4gICAgICBERVBMT1lfQVBQTElDQVRJT046ICdkZXBsb3lBcHBsaWNhdGlvbicsXG4gICAgICBFRElUOiAnZWRpdCcsXG4gICAgICBJTlNUQUxMX1BMVUdJTjogJ2luc3RhbGxQbHVnaW4nLFxuICAgICAgSU5TVEFMTF9QTFVHSU5TOiAnaW5zdGFsbFBsdWdpbnMnLFxuICAgICAgVU5JTlNUQUxMX1BMVUdJTjogJ3VuaW5zdGFsbFBsdWdpbicsXG4gICAgICBTRUxFQ1RfVkVSU0lPTjogJ3NlbGVjdFZlcnNpb24nLFxuICAgICAgU0VUX0FTX0xBVEVTVDogJ3NldEFzTGF0ZXN0JyxcbiAgICAgIFVQREFURV9BVkFJTEFCTEU6ICd1cGRhdGVBdmFpbGFibGUnLFxuICAgICAgVVBMT0FEOiAndXBsb2FkJyxcbiAgICAgIFNFVF9GSUxURVJfVEVSTTogJ3NldEZpbHRlclRlcm0nLFxuICAgICAgU0VUX1BSRURFRklORURfRklMVEVSUzogJ3NldFByZWRlZmluZWRGaWx0ZXJzJyxcbiAgICAgIFJFU0VUX0ZJTFRFUjogJ3Jlc2V0RmlsdGVyJyxcbiAgICAgIElOU1RBTExfUExVR0lOU19JTklUSUFURUQ6ICdpbnN0YWxsUGx1Z2luc0luaXRpYXRlZCcsXG4gICAgICBERVBMT1lfQVBQTElDQVRJT05fSU5JVElBVEVEOiAnZGVwbG95QXBwbGljYXRpb25Jbml0aWF0ZWQnXG4gICAgfSxcbiAgICBSRVNVTFRTOiB7XG4gICAgICBERVBMT1lFRDogJ2RlcGxveWVkJyxcbiAgICAgIERVUExJQ0FURUQ6ICdkdXBsaWNhdGVkJyxcbiAgICAgIFBMVUdJTl9JTlNUQUxMRUQ6ICdwbHVnaW5JbnN0YWxsZWQnLFxuICAgICAgUExVR0lOX1JFTU9WRUQ6ICdwbHVnaW5SZW1vdmVkJyxcbiAgICAgIFBMVUdJTl9WRVJTSU9OX0NIQU5HRUQ6ICdwbHVnaW5WZXJzaW9uQ2hhbmdlZCcsXG4gICAgICBTRVJWRVJfRkFJTFVSRTogJ3NlcnZlckZhaWx1cmUnLFxuICAgICAgU1VDQ0VTUzogJ3N1Y2Nlc3MnXG4gICAgfVxuICB9XG59IGFzIGNvbnN0O1xuIl19