@sumaris-net/ngx-components 4.0.0-rc6 → 4.0.0-rc8

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 (293) hide show
  1. package/esm2022/public_api.mjs +5 -2
  2. package/esm2022/src/app/admin/admin-routing.module.mjs +4 -4
  3. package/esm2022/src/app/admin/admin.module.mjs +4 -4
  4. package/esm2022/src/app/admin/services/person.service.mjs +3 -3
  5. package/esm2022/src/app/admin/services/validator/person.validator.mjs +3 -3
  6. package/esm2022/src/app/admin/users/users.mjs +15 -24
  7. package/esm2022/src/app/admin/users/users.module.mjs +4 -4
  8. package/esm2022/src/app/core/about/about.modal.mjs +3 -3
  9. package/esm2022/src/app/core/about/about.module.mjs +4 -4
  10. package/esm2022/src/app/core/account/account.module.mjs +4 -4
  11. package/esm2022/src/app/core/account/account.page.mjs +21 -19
  12. package/esm2022/src/app/core/account/new-token.modal.mjs +3 -3
  13. package/esm2022/src/app/core/account/token.table.mjs +3 -3
  14. package/esm2022/src/app/core/auth/auth.form.mjs +3 -3
  15. package/esm2022/src/app/core/auth/auth.modal.mjs +3 -3
  16. package/esm2022/src/app/core/auth/auth.module.mjs +4 -4
  17. package/esm2022/src/app/core/core.module.mjs +4 -4
  18. package/esm2022/src/app/core/core.testing.module.mjs +4 -4
  19. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +4 -4
  20. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +4 -4
  21. package/esm2022/src/app/core/form/entity/editor.class.mjs +15 -10
  22. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +3 -3
  23. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +15 -9
  24. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +5 -5
  25. package/esm2022/src/app/core/form/entity/entity.module.mjs +4 -4
  26. package/esm2022/src/app/core/form/form.class.mjs +3 -3
  27. package/esm2022/src/app/core/form/form.module.mjs +4 -4
  28. package/esm2022/src/app/core/form/list/list.form.mjs +3 -3
  29. package/esm2022/src/app/core/form/list/list.module.mjs +4 -4
  30. package/esm2022/src/app/core/form/properties/properties.form.mjs +3 -3
  31. package/esm2022/src/app/core/form/properties/properties.module.mjs +4 -4
  32. package/esm2022/src/app/core/form/properties/properties.table.mjs +6 -6
  33. package/esm2022/src/app/core/form/properties/property.validator.mjs +3 -3
  34. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +3 -3
  35. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +4 -4
  36. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +3 -3
  37. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +4 -4
  38. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +6 -6
  39. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +6 -11
  40. package/esm2022/src/app/core/graphql/graphql.module.mjs +4 -4
  41. package/esm2022/src/app/core/graphql/graphql.service.mjs +9 -5
  42. package/esm2022/src/app/core/home/home.mjs +5 -6
  43. package/esm2022/src/app/core/home/home.module.mjs +4 -4
  44. package/esm2022/src/app/core/icon/icon.component.mjs +3 -3
  45. package/esm2022/src/app/core/icon/icon.module.mjs +4 -4
  46. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +3 -3
  47. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +4 -4
  48. package/esm2022/src/app/core/menu/menu.component.mjs +14 -10
  49. package/esm2022/src/app/core/menu/menu.module.mjs +4 -4
  50. package/esm2022/src/app/core/menu/menu.service.mjs +11 -5
  51. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +3 -3
  52. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +3 -3
  53. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +3 -3
  54. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +4 -4
  55. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +3 -3
  56. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +4 -4
  57. package/esm2022/src/app/core/peer/select-peer.modal.mjs +3 -3
  58. package/esm2022/src/app/core/peer/select-peer.module.mjs +4 -4
  59. package/esm2022/src/app/core/register/register-confirm.page.mjs +3 -3
  60. package/esm2022/src/app/core/register/register.form.mjs +3 -3
  61. package/esm2022/src/app/core/register/register.modal.mjs +3 -3
  62. package/esm2022/src/app/core/register/register.module.mjs +4 -4
  63. package/esm2022/src/app/core/services/account.service.mjs +50 -23
  64. package/esm2022/src/app/core/services/auth-guard.service.mjs +3 -3
  65. package/esm2022/src/app/core/services/base-entity-service.class.mjs +3 -3
  66. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +3 -3
  67. package/esm2022/src/app/core/services/config/core.config.mjs +7 -7
  68. package/esm2022/src/app/core/services/config.service.mjs +3 -3
  69. package/esm2022/src/app/core/services/crypto.service.mjs +3 -3
  70. package/esm2022/src/app/core/services/local-settings.service.mjs +3 -3
  71. package/esm2022/src/app/core/services/model/referential.model.mjs +5 -2
  72. package/esm2022/src/app/core/services/network.service.mjs +3 -3
  73. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +8 -8
  74. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +4 -4
  75. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +4 -4
  76. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +8 -8
  77. package/esm2022/src/app/core/services/platform.service.mjs +20 -10
  78. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +3 -3
  79. package/esm2022/src/app/core/services/testing/referential.validator.mjs +3 -3
  80. package/esm2022/src/app/core/services/validator/account.validator.mjs +3 -3
  81. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +3 -3
  82. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +3 -3
  83. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +3 -3
  84. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +3 -3
  85. package/esm2022/src/app/core/settings/settings.module.mjs +4 -4
  86. package/esm2022/src/app/core/settings/settings.page.mjs +3 -3
  87. package/esm2022/src/app/core/table/actions-column.component.mjs +3 -3
  88. package/esm2022/src/app/core/table/async-table.class.mjs +3 -3
  89. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +3 -3
  90. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +3 -3
  91. package/esm2022/src/app/core/table/memory-table.class.mjs +3 -3
  92. package/esm2022/src/app/core/table/table-select-columns.component.mjs +3 -3
  93. package/esm2022/src/app/core/table/table.class.mjs +3 -3
  94. package/esm2022/src/app/core/table/table.module.mjs +4 -4
  95. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +3 -3
  96. package/esm2022/src/app/core/table/testing/table.testing.mjs +3 -3
  97. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +4 -4
  98. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +3 -3
  99. package/esm2022/src/app/core/table/testing/table2.testing.mjs +3 -3
  100. package/esm2022/src/app/shared/audio/audio.mjs +3 -3
  101. package/esm2022/src/app/shared/audio/audio.testing.mjs +3 -3
  102. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +4 -4
  103. package/esm2022/src/app/shared/capacitor/keyboard.mjs +3 -3
  104. package/esm2022/src/app/shared/debug/debug.component.mjs +3 -3
  105. package/esm2022/src/app/shared/debug/debug.module.mjs +4 -4
  106. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +3 -3
  107. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +3 -3
  108. package/esm2022/src/app/shared/directives/directives.module.mjs +4 -4
  109. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +3 -3
  110. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +3 -3
  111. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
  112. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +3 -3
  113. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  114. package/esm2022/src/app/shared/file/file.service.mjs +3 -3
  115. package/esm2022/src/app/shared/form/field.component.mjs +3 -3
  116. package/esm2022/src/app/shared/form/loading-spinner.mjs +3 -3
  117. package/esm2022/src/app/shared/gesture/gesture-config.mjs +3 -3
  118. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +3 -3
  119. package/esm2022/src/app/shared/help/help.modal.mjs +3 -3
  120. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +3 -3
  121. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +3 -3
  122. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +4 -4
  123. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +4 -4
  124. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +4 -4
  125. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +3 -3
  126. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +3 -3
  127. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +4 -4
  128. package/esm2022/src/app/shared/image/image.module.mjs +4 -4
  129. package/esm2022/src/app/shared/image/image.service.mjs +3 -3
  130. package/esm2022/src/app/shared/logging/logging-service.class.mjs +3 -3
  131. package/esm2022/src/app/shared/logging/logging-service.module.mjs +4 -4
  132. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +6 -6
  133. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +4 -4
  134. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
  135. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +3 -3
  136. package/esm2022/src/app/shared/material/badge/badge.module.mjs +4 -4
  137. package/esm2022/src/app/shared/material/badge/badge.test.mjs +3 -3
  138. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +4 -4
  139. package/esm2022/src/app/shared/material/boolean/material-boolean2.mjs +3 -3
  140. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +3 -3
  141. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +3 -3
  142. package/esm2022/src/app/shared/material/chips/chips.module.mjs +4 -4
  143. package/esm2022/src/app/shared/material/chips/material.chips.mjs +3 -3
  144. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
  145. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +4 -4
  146. package/esm2022/src/app/shared/material/datetime/material.date.mjs +6 -6
  147. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +3 -3
  148. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +3 -3
  149. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +6 -5
  150. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +7 -6
  151. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +3 -3
  152. package/esm2022/src/app/shared/material/duration/duration.module.mjs +4 -4
  153. package/esm2022/src/app/shared/material/duration/material.duration.mjs +3 -3
  154. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +3 -3
  155. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +3 -3
  156. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +4 -4
  157. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +3 -3
  158. package/esm2022/src/app/shared/material/material.module.mjs +14 -9
  159. package/esm2022/src/app/shared/material/material.testing.module.mjs +16 -5
  160. package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +3 -3
  161. package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +3 -3
  162. package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +3 -3
  163. package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +3 -3
  164. package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +3 -3
  165. package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +3 -3
  166. package/esm2022/src/app/shared/material/numpad/numpad.module.mjs +4 -4
  167. package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +3 -3
  168. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +3 -3
  169. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +3 -3
  170. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +3 -3
  171. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +4 -4
  172. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +3 -3
  173. package/esm2022/src/app/shared/material/testing/common.test.mjs +3 -3
  174. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +31 -0
  175. package/esm2022/src/app/shared/material/text/text-form.component.mjs +97 -0
  176. package/esm2022/src/app/shared/material/text/text-form.module.mjs +63 -0
  177. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +19 -9
  178. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +4 -4
  179. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +3 -3
  180. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +24 -24
  181. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +3 -3
  182. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +4 -4
  183. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +6 -6
  184. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +4 -4
  185. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +4 -4
  186. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +3 -3
  187. package/esm2022/src/app/shared/pipes/form.pipes.mjs +18 -18
  188. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +4 -4
  189. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +9 -9
  190. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +12 -12
  191. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +6 -6
  192. package/esm2022/src/app/shared/pipes/math.pipes.mjs +12 -12
  193. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +3 -3
  194. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +4 -4
  195. package/esm2022/src/app/shared/pipes/pipes.module.mjs +4 -4
  196. package/esm2022/src/app/shared/pipes/property.pipes.mjs +7 -7
  197. package/esm2022/src/app/shared/pipes/string.pipes.mjs +30 -30
  198. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +8 -8
  199. package/esm2022/src/app/shared/pipes/types.pipes.mjs +12 -12
  200. package/esm2022/src/app/shared/rx-state.module.mjs +4 -4
  201. package/esm2022/src/app/shared/services/entity-service.class.mjs +1 -1
  202. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +6 -6
  203. package/esm2022/src/app/shared/services/progress-bar.service.mjs +3 -3
  204. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +3 -3
  205. package/esm2022/src/app/shared/services/startable-service.class.mjs +5 -5
  206. package/esm2022/src/app/shared/services/translate-context.service.mjs +3 -3
  207. package/esm2022/src/app/shared/shared-routing.module.mjs +7 -7
  208. package/esm2022/src/app/shared/shared.module.mjs +29 -13
  209. package/esm2022/src/app/shared/shared.testing.module.mjs +4 -4
  210. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +3 -3
  211. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +4 -4
  212. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +4 -4
  213. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +4 -4
  214. package/esm2022/src/app/shared/storage/storage.service.mjs +3 -3
  215. package/esm2022/src/app/shared/testing/observable.test.mjs +3 -3
  216. package/esm2022/src/app/shared/testing/tests.page.mjs +3 -3
  217. package/esm2022/src/app/shared/toast/toast.testing.mjs +3 -3
  218. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +4 -4
  219. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +3 -3
  220. package/esm2022/src/app/shared/toolbar/toolbar.mjs +4 -4
  221. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +4 -4
  222. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +3 -3
  223. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +4 -4
  224. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +3 -3
  225. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +3 -3
  226. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +3 -3
  227. package/esm2022/src/app/social/job/job.module.mjs +4 -4
  228. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +3 -3
  229. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +3 -3
  230. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +3 -3
  231. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +3 -3
  232. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +3 -3
  233. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +3 -3
  234. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +4 -4
  235. package/esm2022/src/app/social/message/message.form.mjs +58 -6
  236. package/esm2022/src/app/social/message/message.modal.mjs +20 -12
  237. package/esm2022/src/app/social/message/message.model.mjs +5 -1
  238. package/esm2022/src/app/social/message/message.module.mjs +9 -22
  239. package/esm2022/src/app/social/message/message.service.mjs +32 -10
  240. package/esm2022/src/app/social/social.module.mjs +4 -4
  241. package/esm2022/src/app/social/social.testing.module.mjs +4 -4
  242. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +3 -3
  243. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +3 -3
  244. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +3 -3
  245. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +4 -4
  246. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +3 -3
  247. package/esm2022/src/app/social/user-event/user-event.module.mjs +4 -4
  248. package/esm2022/src/app/social/user-event/user-event.service.mjs +39 -25
  249. package/esm2022/src/environments/environment.class.mjs +3 -1
  250. package/esm2022/src/environments/environment.loader.mjs +83 -0
  251. package/esm2022/src/environments/environment.mjs +18 -15
  252. package/fesm2022/sumaris-net.ngx-components.mjs +6719 -6387
  253. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  254. package/package.json +25 -3
  255. package/public_api.d.ts +4 -1
  256. package/src/app/core/account/account.page.d.ts +3 -2
  257. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +1 -1
  258. package/src/app/core/form/entity/editor.class.d.ts +1 -1
  259. package/src/app/core/form/entity/entity-editor.class.d.ts +10 -6
  260. package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
  261. package/src/app/core/form/text-popover/text-popover.component.d.ts +1 -1
  262. package/src/app/core/form/text-popover/text-popover.module.d.ts +4 -5
  263. package/src/app/core/menu/menu.component.d.ts +6 -2
  264. package/src/app/core/menu/menu.service.d.ts +2 -0
  265. package/src/app/core/services/account.service.d.ts +4 -0
  266. package/src/app/core/services/config/core.config.d.ts +2 -2
  267. package/src/app/core/services/model/referential.model.d.ts +2 -1
  268. package/src/app/shared/inputs.d.ts +1 -1
  269. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -1
  270. package/src/app/shared/material/material.module.d.ts +2 -1
  271. package/src/app/shared/material/material.testing.module.d.ts +14 -13
  272. package/src/app/shared/material/text/testing/text-form.testing.d.ts +13 -0
  273. package/src/app/{core/form/text-popover → shared/material/text}/text-form.component.d.ts +2 -2
  274. package/src/app/shared/material/text/text-form.module.d.ts +16 -0
  275. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +4 -1
  276. package/src/app/shared/services/entity-service.class.d.ts +1 -1
  277. package/src/app/shared/services/memory-entity-service.class.d.ts +3 -1
  278. package/src/app/shared/shared.module.d.ts +5 -3
  279. package/src/app/social/message/message.form.d.ts +8 -2
  280. package/src/app/social/message/message.modal.d.ts +5 -1
  281. package/src/app/social/message/message.model.d.ts +2 -0
  282. package/src/app/social/message/message.module.d.ts +2 -1
  283. package/src/app/social/message/message.service.d.ts +8 -3
  284. package/src/app/social/user-event/user-event.service.d.ts +5 -0
  285. package/src/assets/environments/environment-test.json +6 -0
  286. package/src/assets/i18n/en-US.json +25 -23
  287. package/src/assets/i18n/en.json +25 -23
  288. package/src/assets/i18n/fr.json +8 -5
  289. package/src/assets/manifest.json +1 -1
  290. package/src/environments/environment.class.d.ts +1 -0
  291. package/src/environments/environment.loader.d.ts +26 -0
  292. package/src/theme/_ngx-components.table.scss +1 -1
  293. package/esm2022/src/app/core/form/text-popover/text-form.component.mjs +0 -97
@@ -5,11 +5,11 @@ import { RxPush } from '@rx-angular/template/push';
5
5
  import { RxLet } from '@rx-angular/template/let';
6
6
  import * as i0 from "@angular/core";
7
7
  export class RxStateModule {
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: RxStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: RxStateModule, imports: [RxPush, RxFor, RxIf, RxLet], exports: [RxPush, RxFor, RxIf, RxLet] });
10
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: RxStateModule });
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: RxStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: RxStateModule, imports: [RxPush, RxFor, RxIf, RxLet], exports: [RxPush, RxFor, RxIf, RxLet] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: RxStateModule });
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: RxStateModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: RxStateModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  imports: [
@@ -4,4 +4,4 @@ export function mergeLoadResult(res1, res2) {
4
4
  total: ((res1.total || res1.data?.length || 0) + (res2.total || res2.data?.length || 0))
5
5
  };
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwSEEsTUFBTSxVQUFVLGVBQWUsQ0FBSSxJQUFtQixFQUFFLElBQW1CO0lBQ3pFLE9BQU87UUFDTCxJQUFJLEVBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDN0MsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztLQUN6RixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ZldGNoUG9saWN5LCBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3l9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHtTb3J0RGlyZWN0aW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7RW1wdHlPYmplY3R9IGZyb20gJy4uLy4uL2NvcmUvZ3JhcGhxbC9ncmFwaHFsLnV0aWxzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBhZ2Uge1xuICBvZmZzZXQ6IG51bWJlcjtcbiAgc2l6ZTogbnVtYmVyO1xuICBzb3J0Qnk/OiBzdHJpbmc7XG4gIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uO1xufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIEZldGNoTW9yZUZuPFIsIFYgPSBFbXB0eU9iamVjdD4gPSAodmFyaWFibGVzPzogVikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIExvYWRSZXN1bHQ8VD4ge1xuICBkYXRhOiBUW107XG4gIHRvdGFsPzogbnVtYmVyO1xuICBlcnJvcnM/OiBhbnlbXTtcbiAgZmV0Y2hNb3JlPzogRmV0Y2hNb3JlRm48TG9hZFJlc3VsdDxUPj47XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgU3VnZ2VzdEZuPFQsIEY+ID0gKHZhbHVlOiBhbnksIGZpbHRlcj86IEYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0Qnk/OiBzdHJpbmd8a2V5b2YgVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0cz86IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hQb2xpY3k6IEZldGNoUG9saWN5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSA9PiBQcm9taXNlPFRbXSB8IExvYWRSZXN1bHQ8VD4+O1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3VnZ2VzdFNlcnZpY2U8VCwgRj4ge1xuICBzdWdnZXN0OiBTdWdnZXN0Rm48VCwgRj47XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgRmlsdGVyRm48VD4gPSAoZGF0YTogVCkgPT4gYm9vbGVhbjtcbmV4cG9ydCBkZWNsYXJlIHR5cGUgRmlsdGVyRm5GYWN0b3J5PFQsIEY+ID0gKGZpbHRlcjogRikgPT4gRmlsdGVyRm48VD47XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMge1xuICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xuICB0cmFzaD86IGJvb2xlYW47XG4gIHRvRW50aXR5PzogYm9vbGVhbjtcbiAgcXVlcnk/OiBhbnk7XG4gIHZhcmlhYmxlcz86IGFueTtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdHlTZXJ2aWNlV2F0Y2hPcHRpb25zIHtcbiAgZmV0Y2hQb2xpY3k/OiBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3k7XG4gIHRyYXNoPzogYm9vbGVhbjtcbiAgdG9FbnRpdHk/OiBib29sZWFuO1xuICBxdWVyeT86IGFueTtcbiAgdmFyaWFibGVzPzogYW55O1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRW50aXR5U2VydmljZUxpc3RlbkNoYW5nZXNPcHRpb25zIHtcbiAgaW50ZXJ2YWw/OiBudW1iZXI7XG4gIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3k7XG4gIHRvRW50aXR5PzogYm9vbGVhbjtcbiAgcXVlcnk/OiBhbnk7XG4gIHZhcmlhYmxlcz86IGFueTtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSUVudGl0eVNlcnZpY2U8XG4gIFQsXG4gIElEID0gYW55LFxuICBMTyA9IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucz4ge1xuXG4gIGxvYWQoXG4gICAgaWQ6IElELFxuICAgIG9wdHM/OiBMT1xuICApOiBQcm9taXNlPFQ+O1xuXG4gIGNhblVzZXJXcml0ZShkYXRhOiBULCBvcHRzPzogYW55KTogYm9vbGVhbjtcblxuICBzYXZlKGRhdGE6IFQsIG9wdHM/OiBhbnkpOiBQcm9taXNlPFQ+O1xuXG4gIGRlbGV0ZShkYXRhOiBULCBvcHRzPzogYW55KTogUHJvbWlzZTxhbnk+O1xuXG4gIGxpc3RlbkNoYW5nZXMoaWQ6IElELCBvcHRzPzogYW55KTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zIGV4dGVuZHMgRW50aXR5U2VydmljZUxvYWRPcHRpb25zIHtcbiAgd2l0aFRvdGFsPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucyBleHRlbmRzIEVudGl0eVNlcnZpY2VXYXRjaE9wdGlvbnMge1xuICB3aXRoVG90YWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSUVudGl0aWVzU2VydmljZTxULCBGLCBPIGV4dGVuZHMgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zID0gRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zPiB7XG5cbiAgd2F0Y2hBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXI/OiBQYXJ0aWFsPEY+LFxuICAgIG9wdGlvbnM/OiBPXG4gICk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj47XG5cbiAgLy8gVE9ET1xuICAvKndhdGNoUGFnZShcbiAgICBwYWdlOiBQYWdlPFQ+LFxuICAgIGZpbHRlcj86IEYsXG4gICAgb3B0aW9ucz86IE9cbiAgKTogT2JzZXJ2YWJsZTxMb2FkUmVzdWx0PFQ+PjsqL1xuXG4gIHNhdmVBbGwoZGF0YTogVFtdLCBvcHRzPzogYW55KTogUHJvbWlzZTxUW10+O1xuXG4gIGRlbGV0ZUFsbChkYXRhOiBUW10sIG9wdHM/OiBhbnkpOiBQcm9taXNlPGFueT47XG5cbiAgYXNGaWx0ZXIoZmlsdGVyOiBQYXJ0aWFsPEY+KTogRjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBMb2FkUmVzdWx0QnlQYWdlRm48VD4gPSAob2Zmc2V0OiBudW1iZXIsIHNpemU6IG51bWJlcikgPT4gUHJvbWlzZTxMb2FkUmVzdWx0PFQ+PjtcblxuZXhwb3J0IGludGVyZmFjZSBJRW50aXR5RnVsbFNlcnZpY2U8VCwgSUQsIEYsIE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMgJiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnM+XG4gIGV4dGVuZHMgSUVudGl0eVNlcnZpY2U8VCwgSUQsIE8+LCBJRW50aXRpZXNTZXJ2aWNlPFQsIEYsIE8+ICB7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlTG9hZFJlc3VsdDxUPihyZXMxOiBMb2FkUmVzdWx0PFQ+LCByZXMyOiBMb2FkUmVzdWx0PFQ+KTogTG9hZFJlc3VsdDxUPiB7XG4gIHJldHVybiB7XG4gICAgZGF0YSA6IChyZXMxLmRhdGEgfHwgW10pLmNvbmNhdCguLi5yZXMyLmRhdGEpLFxuICAgIHRvdGFsOiAoKHJlczEudG90YWwgfHwgcmVzMS5kYXRhPy5sZW5ndGggfHwgMCkgKyAocmVzMi50b3RhbCB8fCByZXMyLmRhdGE/Lmxlbmd0aCB8fCAwKSlcbiAgfTtcbn1cbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwSEEsTUFBTSxVQUFVLGVBQWUsQ0FBSSxJQUFtQixFQUFFLElBQW1CO0lBQ3pFLE9BQU87UUFDTCxJQUFJLEVBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDN0MsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztLQUN6RixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZldGNoUG9saWN5LCBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3kgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IEVtcHR5T2JqZWN0IH0gZnJvbSAnLi4vLi4vY29yZS9ncmFwaHFsL2dyYXBocWwudXRpbHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUGFnZSB7XG4gIG9mZnNldDogbnVtYmVyO1xuICBzaXplOiBudW1iZXI7XG4gIHNvcnRCeT86IHN0cmluZztcbiAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb247XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgRmV0Y2hNb3JlRm48UiwgViA9IEVtcHR5T2JqZWN0PiA9ICh2YXJpYWJsZXM/OiBWKSA9PiBQcm9taXNlPFI+O1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTG9hZFJlc3VsdDxUPiB7XG4gIGRhdGE6IFRbXTtcbiAgdG90YWw/OiBudW1iZXI7XG4gIGVycm9ycz86IGFueVtdO1xuICBmZXRjaE1vcmU/OiBGZXRjaE1vcmVGbjxMb2FkUmVzdWx0PFQ+Pjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTdWdnZXN0Rm48VCwgRj4gPSAodmFsdWU6IGFueSwgZmlsdGVyPzogRixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeT86IHN0cmluZ3xrZXlvZiBULFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRzPzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSA9PiBQcm9taXNlPFRbXSB8IExvYWRSZXN1bHQ8VD4+O1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3VnZ2VzdFNlcnZpY2U8VCwgRj4ge1xuICBzdWdnZXN0OiBTdWdnZXN0Rm48VCwgRj47XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgRmlsdGVyRm48VD4gPSAoZGF0YTogVCkgPT4gYm9vbGVhbjtcbmV4cG9ydCBkZWNsYXJlIHR5cGUgRmlsdGVyRm5GYWN0b3J5PFQsIEY+ID0gKGZpbHRlcjogRikgPT4gRmlsdGVyRm48VD47XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMge1xuICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xuICB0cmFzaD86IGJvb2xlYW47XG4gIHRvRW50aXR5PzogYm9vbGVhbjtcbiAgcXVlcnk/OiBhbnk7XG4gIHZhcmlhYmxlcz86IGFueTtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdHlTZXJ2aWNlV2F0Y2hPcHRpb25zIHtcbiAgZmV0Y2hQb2xpY3k/OiBXYXRjaFF1ZXJ5RmV0Y2hQb2xpY3k7XG4gIHRyYXNoPzogYm9vbGVhbjtcbiAgdG9FbnRpdHk/OiBib29sZWFuO1xuICBxdWVyeT86IGFueTtcbiAgdmFyaWFibGVzPzogYW55O1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRW50aXR5U2VydmljZUxpc3RlbkNoYW5nZXNPcHRpb25zIHtcbiAgaW50ZXJ2YWw/OiBudW1iZXI7XG4gIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3k7XG4gIHRvRW50aXR5PzogYm9vbGVhbjtcbiAgcXVlcnk/OiBhbnk7XG4gIHZhcmlhYmxlcz86IGFueTtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSUVudGl0eVNlcnZpY2U8XG4gIFQsXG4gIElEID0gYW55LFxuICBMTyA9IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucz4ge1xuXG4gIGxvYWQoXG4gICAgaWQ6IElELFxuICAgIG9wdHM/OiBMT1xuICApOiBQcm9taXNlPFQ+O1xuXG4gIGNhblVzZXJXcml0ZShkYXRhOiBULCBvcHRzPzogYW55KTogYm9vbGVhbjtcblxuICBzYXZlKGRhdGE6IFQsIG9wdHM/OiBhbnkpOiBQcm9taXNlPFQ+O1xuXG4gIGRlbGV0ZShkYXRhOiBULCBvcHRzPzogYW55KTogUHJvbWlzZTxhbnk+O1xuXG4gIGxpc3RlbkNoYW5nZXMoaWQ6IElELCBvcHRzPzogYW55KTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zIGV4dGVuZHMgRW50aXR5U2VydmljZUxvYWRPcHRpb25zIHtcbiAgd2l0aFRvdGFsPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucyBleHRlbmRzIEVudGl0eVNlcnZpY2VXYXRjaE9wdGlvbnMge1xuICB3aXRoVG90YWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSUVudGl0aWVzU2VydmljZTxULCBGLCBPIGV4dGVuZHMgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zID0gRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zPiB7XG5cbiAgd2F0Y2hBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXI/OiBQYXJ0aWFsPEY+LFxuICAgIG9wdGlvbnM/OiBPXG4gICk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj47XG5cbiAgLy8gVE9ET1xuICAvKndhdGNoUGFnZShcbiAgICBwYWdlOiBQYWdlPFQ+LFxuICAgIGZpbHRlcj86IEYsXG4gICAgb3B0aW9ucz86IE9cbiAgKTogT2JzZXJ2YWJsZTxMb2FkUmVzdWx0PFQ+PjsqL1xuXG4gIHNhdmVBbGwoZGF0YTogVFtdLCBvcHRzPzogYW55KTogUHJvbWlzZTxUW10+O1xuXG4gIGRlbGV0ZUFsbChkYXRhOiBUW10sIG9wdHM/OiBhbnkpOiBQcm9taXNlPGFueT47XG5cbiAgYXNGaWx0ZXIoZmlsdGVyOiBQYXJ0aWFsPEY+KTogRjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBMb2FkUmVzdWx0QnlQYWdlRm48VD4gPSAob2Zmc2V0OiBudW1iZXIsIHNpemU6IG51bWJlcikgPT4gUHJvbWlzZTxMb2FkUmVzdWx0PFQ+PjtcblxuZXhwb3J0IGludGVyZmFjZSBJRW50aXR5RnVsbFNlcnZpY2U8VCwgSUQsIEYsIE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMgJiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnM+XG4gIGV4dGVuZHMgSUVudGl0eVNlcnZpY2U8VCwgSUQsIE8+LCBJRW50aXRpZXNTZXJ2aWNlPFQsIEYsIE8+ICB7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlTG9hZFJlc3VsdDxUPihyZXMxOiBMb2FkUmVzdWx0PFQ+LCByZXMyOiBMb2FkUmVzdWx0PFQ+KTogTG9hZFJlc3VsdDxUPiB7XG4gIHJldHVybiB7XG4gICAgZGF0YSA6IChyZXMxLmRhdGEgfHwgW10pLmNvbmNhdCguLi5yZXMyLmRhdGEpLFxuICAgIHRvdGFsOiAoKHJlczEudG90YWwgfHwgcmVzMS5kYXRhPy5sZW5ndGggfHwgMCkgKyAocmVzMi50b3RhbCB8fCByZXMyLmRhdGE/Lmxlbmd0aCB8fCAwKSlcbiAgfTtcbn1cbiJdfQ==
@@ -174,7 +174,7 @@ export class InMemoryEntitiesService extends StartableObservableService {
174
174
  const res = { data, total };
175
175
  const nextOffset = size > 0 ? (offset || 0) + size : total;
176
176
  if (nextOffset < total) {
177
- res.fetchMore = () => this.loadAll(nextOffset, size, sortBy, sortDirection, filter, opts)
177
+ res.fetchMore = () => this.loadAll(nextOffset, size, sortBy, sortDirection, filter, { ...opts, updateHiddenData: false })
178
178
  .then(res => {
179
179
  // Update hidden data (remove new fetched item)
180
180
  if (res.data?.length) {
@@ -187,7 +187,7 @@ export class InMemoryEntitiesService extends StartableObservableService {
187
187
  }
188
188
  finally {
189
189
  // Remember hidden data
190
- if (offset === 0) {
190
+ if (opts?.updateHiddenData !== false) {
191
191
  this._hiddenData = !excludedDataByPagination ? excludedDataByFilter : excludedDataByFilter.concat(...excludedDataByPagination);
192
192
  }
193
193
  }
@@ -338,10 +338,10 @@ export class InMemoryEntitiesService extends StartableObservableService {
338
338
  this.savingSubject.next(false);
339
339
  }
340
340
  }
341
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: InMemoryEntitiesService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
342
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: InMemoryEntitiesService, usesInheritance: true, ngImport: i0 });
341
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: InMemoryEntitiesService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
342
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.6", type: InMemoryEntitiesService, usesInheritance: true, ngImport: i0 });
343
343
  }
344
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: InMemoryEntitiesService, decorators: [{
344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: InMemoryEntitiesService, decorators: [{
345
345
  type: Directive
346
346
  }], ctorParameters: () => [{ type: undefined }, { type: undefined }, { type: undefined }] });
347
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvbWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUc1RSxPQUFPLEVBQUMsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxXQUFXLEVBQVUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDdkYsT0FBTyxFQUFDLGlCQUFpQixFQUFpQixNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDOztBQWNoRixXQUFXO0FBRVgsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyx1QkFLWCxTQUFRLDBCQUFvQztJQW1DaEM7SUFDQTtJQWpDWixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRU4sV0FBVyxHQUFRLElBQUksQ0FBQztJQUV2QixZQUFZLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFM0MsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3BELE9BQU8sQ0FBcUU7SUFDNUUsT0FBTyxDQUFvQztJQUMzQyxTQUFTLENBQW9DO0lBQzdDLFNBQVMsQ0FBNEI7SUFDckMsZ0JBQWdCLENBQXdCO0lBQ3hDLGtCQUFrQixDQUE0QjtJQUcvRCxJQUFJLEtBQUssQ0FBQyxJQUFTO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFDWSxRQUFvQixFQUNwQixVQUFzQixFQUNoQyxPQUE4QztRQUU5QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFKRixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFJaEMsT0FBTyxHQUFHO1lBQ1IsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2pCLEdBQUcsT0FBTztTQUNYLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFNLENBQUM7WUFDckMsSUFBSSxNQUFNLFlBQVksWUFBWSxFQUFFO2dCQUNsQyxPQUFPLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUM1QjtZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxDQUFDLHFEQUFxRDtRQUV6RixJQUFJLENBQUMsa0JBQWtCLEdBQUc7WUFDeEIsR0FBRyxPQUFPLENBQUMsaUJBQWlCO1NBQzdCLENBQUM7SUFDSixDQUFDO0lBRVMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFVO1FBQ2xDLElBQUksQ0FBQyxJQUFJO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQzNFLElBQUksSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFUyxLQUFLLENBQUMsUUFBUTtRQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVM7UUFDaEIsNkJBQTZCO1FBQzdCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQiw4QkFBOEI7WUFDOUIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM3QjtZQUVELCtCQUErQjtZQUMvQix1RkFBdUY7WUFDdkYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN2QjtRQUNELDhEQUE4RDthQUN6RDtZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FDWCxNQUFjLEVBQ2QsSUFBWSxFQUNaLE1BQWUsRUFDZixhQUE2QixFQUM3QixNQUFVLEVBQ1YsSUFBaUM7UUFHakMsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQzVDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0VBQStFLENBQUMsQ0FBQztTQUMvRjtRQUVELElBQUk7WUFDRix3QkFBd0I7WUFDeEIsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFbkIsa0RBQWtEO1lBQ2xELE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsNEJBQTRCLEVBQUMsQ0FBQyxDQUFDO1NBQ3RFO1FBQ0QsT0FBTyxHQUFHLEVBQUU7WUFDViwyQ0FBMkM7WUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDNUU7UUFFRCxtQ0FBbUM7UUFDbkMsSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBRW5DLE1BQU0sb0JBQW9CLEdBQVEsRUFBRSxDQUFDO1FBQ3JDLElBQUksd0JBQTZCLENBQUM7UUFFbEMsSUFBSTtZQUNGLElBQUksWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUM5QixPQUFPLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUM7YUFDN0I7WUFFRCxhQUFhO1lBQ2IsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFFO1lBRTlELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNqQztZQUVELHdDQUF3QztZQUN4QyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixDQUFDLENBQUM7WUFFdkQsMkJBQTJCO1lBQzNCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFFMUIsd0NBQXdDO1lBQ3hDLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtnQkFDZCx3QkFBd0IsR0FBRyxJQUFJLENBQUM7Z0JBQ2hDLE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBQyxDQUFDO2FBQzFCO1lBRUQsMENBQTBDO1lBQzFDLElBQUksTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFFZCxrQ0FBa0M7Z0JBQ2xDLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQ3pCLHdCQUF3QixHQUFHLElBQUksQ0FBQztvQkFDaEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztpQkFDWDtxQkFDSTtvQkFDSCx3QkFBd0IsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQ3RFLDRCQUE0Qjt3QkFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7d0JBQzVELHNCQUFzQjt3QkFDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQztvQkFFNUIsSUFBSSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDbEQsNEJBQTRCO3dCQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQzt3QkFDbkMsc0JBQXNCO3dCQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDeEI7YUFDRjtZQUVELGdCQUFnQjtpQkFDWCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUM7Z0JBQ2hCLHdCQUF3QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUM1QjtZQUVELFlBQVk7aUJBQ1AsSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUM7Z0JBQ25CLGdCQUFnQjthQUNqQjtZQUVELDJFQUEyRTtZQUMzRSwyREFBMkQ7WUFDM0QsSUFBSSxJQUFJLEtBQUssWUFBWSxFQUFFO2dCQUN6QixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3JCO1lBRUQsTUFBTSxHQUFHLEdBQWtCLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBQyxDQUFDO1lBRXpDLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzNELElBQUksVUFBVSxHQUFHLEtBQUssRUFBRTtnQkFDdEIsR0FBRyxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDO3FCQUN0RixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ1YsK0NBQStDO29CQUMvQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO3dCQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3FCQUMvRTtvQkFDRCxPQUFPLEdBQUcsQ0FBQztnQkFDYixDQUFDLENBQUMsQ0FBQzthQUNOO1lBRUQsT0FBTyxHQUFHLENBQUM7U0FDWjtnQkFDTztZQUNOLHVCQUF1QjtZQUN2QixJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxHQUFHLHdCQUF3QixDQUFDLENBQUM7YUFDaEk7U0FDRjtJQUNILENBQUM7SUFFRCxRQUFRLENBQ04sTUFBYyxFQUNkLElBQVksRUFDWixNQUFlLEVBQ2YsYUFBNkIsRUFDN0IsVUFBYyxFQUNkLE9BQWE7UUFHYixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFN0IsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixJQUFJO1FBQ0gsa0NBQWtDO1FBQ2xDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUMsRUFDdkcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUNoQixRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFDckYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLHFDQUFxQztRQUN2RCxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUM1QixDQUFDO0lBQ04sQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBUyxFQUFFLE9BQWE7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztRQUV2RyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEIsSUFBSTtZQUVGLHNCQUFzQjtZQUN0QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUNuQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUUxQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2xCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxZQUFZLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7YUFDckQ7WUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTyxJQUFJLENBQUM7U0FDYjtnQkFDTztZQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLFlBQWlCLEVBQUUsT0FBYTtRQUM5QyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztRQUV2RixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEIsSUFBSTtZQUNGLGlDQUFpQztZQUNqQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDckcsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUNyRCxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUU7Z0JBQ25CLElBQUksR0FBRyxXQUFXLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7U0FDRjtnQkFDTztZQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsSUFBUyxFQUFFLE1BQWUsRUFBRSxhQUE2QjtRQUM1RCxrRUFBa0U7UUFDbEUsTUFBTSxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUM7UUFDeEIsNENBQTRDO1FBQzVDLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDO1FBRW5ELG1CQUFtQjtRQUNuQixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWtCO1FBQ3pCLE9BQU8saUJBQWlCLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQWMsRUFBRSxNQUFjO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDM0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFLLEVBQUUsRUFBSztRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRCxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCwrQkFBK0I7SUFDL0Isa0RBQWtEO0lBQ2xELElBQUk7SUFFSjs7Ozs7T0FLRztJQUNILElBQUksS0FBSztRQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQXFCO1FBQ2xDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRTtZQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRTtZQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCw2QkFBNkI7SUFFbkIsTUFBTSxDQUFDLElBQVMsRUFBRSxPQUFVLEVBQUUsVUFBZTtRQUVyRCwwREFBMEQ7UUFDMUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RSxJQUFJLFFBQVEsRUFBRTtZQUNaLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUV4QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNuQixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUM7b0JBQ2pCLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7O29CQUV6QixVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxZQUFZLENBQUM7U0FDckI7UUFFRCxxQkFBcUI7UUFDckIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRVMsT0FBTztRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzFCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1gsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMxQixPQUFPLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRVMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFxQjtRQUNuRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUc7WUFDaEIsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUMzQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUM3RCxTQUFTLEVBQUUsS0FBSztnQkFDaEIsR0FBRyxJQUFJO2FBQ1IsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQzt1R0FsYVUsdUJBQXVCOzJGQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRm5DLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgbWVyZ2UsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHRha2VVbnRpbCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2lzRW1wdHlBcnJheSwgaXNOaWwsIGlzTm90RW1wdHlBcnJheSwgaXNOb3ROaWx9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQge0VudGl0aWVzU2VydmljZUxvYWRPcHRpb25zLCBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMsIEZpbHRlckZuLCBGaWx0ZXJGbkZhY3RvcnksIElFbnRpdGllc1NlcnZpY2UsIExvYWRSZXN1bHR9IGZyb20gJy4vZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHtTb3J0RGlyZWN0aW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7RGlyZWN0aXZlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbnRpdHlVdGlscywgSUVudGl0eX0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtFbnRpdHlGaWx0ZXIsIEVudGl0eUZpbHRlclV0aWxzfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2ZpbHRlci5tb2RlbCc7XG5pbXBvcnQge2ZpcnN0RmFsc2VQcm9taXNlLCBXYWl0Rm9yT3B0aW9uc30gZnJvbSAnLi4vb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtTdGFydGFibGVPYnNlcnZhYmxlU2VydmljZX0gZnJvbSAnLi9zdGFydGFibGUtb2JzZXJ2YWJsZS1zZXJ2aWNlLmNsYXNzJztcblxuZXhwb3J0IGludGVyZmFjZSBJbk1lbW9yeUVudGl0aWVzU2VydmljZU9wdGlvbnM8VCwgRj4ge1xuICBvblNvcnQ/OiAoZGF0YTogVFtdLCBzb3J0Qnk/OiBzdHJpbmcsIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uKSA9PiBUW107XG4gIG9uTG9hZD86IChkYXRhOiBUW10pID0+IFRbXSB8IFByb21pc2U8VFtdPjtcbiAgb25TYXZlPzogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBlcXVhbHM/OiAoZDE6IFQsIGQyOiBUKSA9PiBib29sZWFuO1xuXG4gIGZpbHRlckZuRmFjdG9yeT86IEZpbHRlckZuRmFjdG9yeTxULCBGPjtcbiAgZmlsdGVyRm4/OiBGaWx0ZXJGbjxUPjtcblxuICBzb3J0QnlSZXBsYWNlbWVudD86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8vIEBkeW5hbWljXG5ARGlyZWN0aXZlKClcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIEluTWVtb3J5RW50aXRpZXNTZXJ2aWNlPFxuICBUIGV4dGVuZHMgSUVudGl0eTxULCBJRD4sXG4gIEYgPSBhbnksXG4gIElEID0gbnVtYmVyLFxuICBPIGV4dGVuZHMgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zID0gRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zPlxuICBleHRlbmRzIFN0YXJ0YWJsZU9ic2VydmFibGVTZXJ2aWNlPFRbXSwgVFtdPlxuICBpbXBsZW1lbnRzIElFbnRpdGllc1NlcnZpY2U8VCwgRiwgTz4sIE9uRGVzdHJveSB7XG5cbiAgZGVidWcgPSBmYWxzZTtcblxuICBwcml2YXRlIF9oaWRkZW5EYXRhOiBUW10gPSBudWxsO1xuXG4gIHJlYWRvbmx5IGRpcnR5U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2F2aW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zb3J0Rm46IChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pID0+IFRbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb25Mb2FkOiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIHByaXZhdGUgcmVhZG9ubHkgX29uU2F2ZUZuOiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VxdWFsc0ZuOiAoZDE6IFQsIGQyOiBUKSA9PiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maWx0ZXJGbkZhY3Rvcnk6IEZpbHRlckZuRmFjdG9yeTxULCBGPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfc29ydEJ5UmVwbGFjZW1lbnQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cblxuICBzZXQgdmFsdWUoZGF0YTogVFtdKSB7XG4gICAgdGhpcy5zZXRWYWx1ZShkYXRhKTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTdWJqZWN0LmdldFZhbHVlKCk7XG4gIH1cblxuICBnZXQgc2F2aW5nKCk6IGJvb2xlYW57XG4gICAgcmV0dXJuIHRoaXMuc2F2aW5nU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIGdldCBkaXJ0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXJ0eVN1YmplY3QudmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZGF0YVR5cGU6IG5ldygpID0+IFQsXG4gICAgcHJvdGVjdGVkIGZpbHRlclR5cGU6IG5ldygpID0+IEYsXG4gICAgb3B0aW9ucz86IEluTWVtb3J5RW50aXRpZXNTZXJ2aWNlT3B0aW9uczxULCBGPlxuICApIHtcbiAgICBzdXBlcihudWxsKTtcbiAgICBvcHRpb25zID0ge1xuICAgICAgb25Tb3J0OiB0aGlzLnNvcnQsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfTtcblxuICAgIHRoaXMuX3NvcnRGbiA9IG9wdGlvbnMub25Tb3J0O1xuICAgIHRoaXMuX29uTG9hZCA9IG9wdGlvbnMub25Mb2FkO1xuICAgIHRoaXMuX29uU2F2ZUZuID0gb3B0aW9ucy5vblNhdmU7XG4gICAgdGhpcy5fZXF1YWxzRm4gPSBvcHRpb25zLmVxdWFscztcbiAgICB0aGlzLl9maWx0ZXJGbkZhY3RvcnkgPSBvcHRpb25zLmZpbHRlckZuRmFjdG9yeSB8fCAoKGYpID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuYXNGaWx0ZXIoZikgYXMgRjtcbiAgICAgIGlmIChmaWx0ZXIgaW5zdGFuY2VvZiBFbnRpdHlGaWx0ZXIpIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlci5hc0ZpbHRlckZuKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pO1xuICAgIHRoaXMuX3N0YXJ0QnlSZWFkeUZ1bmN0aW9uID0gZmFsc2U7IC8vIE5lZWQgc2V0VmFsdWUoKSB0byBiZSBjYWxsZWQsIHRvIHN0YXJ0IHRoZSBzZXJ2aWNlXG5cbiAgICB0aGlzLl9zb3J0QnlSZXBsYWNlbWVudCA9IHtcbiAgICAgIC4uLm9wdGlvbnMuc29ydEJ5UmVwbGFjZW1lbnRcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG5nT25TdGFydChkYXRhPzogVFtdKTogUHJvbWlzZTxUW10+IHtcbiAgICBpZiAoIWRhdGEpIHRocm93IG5ldyBFcnJvcignTWlzc2luZyByZXF1aXJlZCBkYXRhLCB0byBzdGFydCB0aGlzIHNlcnZpY2UnKTtcbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW21lbW9yeS1kYXRhLXNlcnZpY2VdIFN0YXJ0aW5nLi4uJyk7XG4gICAgdGhpcy5faGlkZGVuRGF0YSA9IFtdO1xuICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbmdPblN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoJ1ttZW1vcnktZGF0YS1zZXJ2aWNlXSBTdG9wcGluZy4uLicpO1xuICAgIHRoaXMuX2hpZGRlbkRhdGEgPSBudWxsO1xuICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN0b3AoKTtcbiAgfVxuXG4gIHNldFZhbHVlKGRhdGE6IFRbXSkge1xuICAgIC8vIElmIHNlcnZpY2UgYWxyZWFkeSBzdGFydGVkXG4gICAgaWYgKHRoaXMuc3RhcnRlZCkge1xuICAgICAgLy8gVXBkYXRlIHRoZSBkYXRhLCBpZiBjaGFuZ2VkXG4gICAgICBpZiAodGhpcy5kYXRhU3ViamVjdC52YWx1ZSAhPT0gZGF0YSkge1xuICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gW107XG4gICAgICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dChkYXRhKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzZXQgZGlydHkgYW5kIHNhdmluZyBzdGF0ZVxuICAgICAgLy8gKEZpeCBPYnNCaW8gaXNzdWUgb24gc2FtcGxlcyB0YWJsZSA6IHN0aWxsIGRpcnR5IGFmdGVyIHNldHRpbmcgdGhlIHNhbWUgdmFsdWUgYWdhaW4pXG4gICAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgICB0aGlzLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgfVxuICAgIC8vIElmIHNlcnZpY2Ugbm90IHN0YXJ0ZWQgeWV0LCB0aGVuIHN0YXJ0IGl0LCB1c2luZyBnaXZlbiBkYXRhXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnN0YXJ0KGRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxvYWRBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXI/OiBGLFxuICAgIG9wdHM/OiBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uc1xuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8VD4+IHtcblxuICAgIG9mZnNldCA9IG9mZnNldCA+PSAwID8gb2Zmc2V0IDogMDtcbiAgICBzaXplID0gc2l6ZSA+PSAwID8gc2l6ZSA6IC0xO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxEYXRhID0gdGhpcy5kYXRhU3ViamVjdC52YWx1ZTtcbiAgICBpZiAoaXNOaWwob3JpZ2luYWxEYXRhKSkge1xuICAgICAgY29uc29sZS53YXJuKCdbbWVtb3J5LWRhdGEtc2VydmljZV0gQ2Fubm90IGxvYWQgYWxsOiBubyB2YWx1ZSBzZXQuIFdpbGwgcmV0dXJuIGVtcHR5IHJlc3VsdCcpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAvLyBXYWl0IHNlcnZpY2UgaXMgcmVhZHlcbiAgICAgIGF3YWl0IHRoaXMucmVhZHkoKTtcblxuICAgICAgLy8gV2FpdCB3aGlsZSBidXN5IChlLmcuIHdoZW4gc2F2aW5nLCBvciBkZWxldGluZylcbiAgICAgIGF3YWl0IHRoaXMud2FpdElkbGUoe3N0b3BFcnJvcjogZmFsc2UgLyphdm9pZCBlcnJvciB3aGVuIHN0b3BwZWQqL30pO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBTaG91bGQgYmUgYSBzdG9wIGVycm9yOiBsb2cgYW5kIGNvbnRpbnVlXG4gICAgICBpZiAoIXRoaXMuc3RvcHBlZCkgY29uc29sZS5lcnJvcignVW5leHBlY3RlZCBlcnJvciwgd2hpbGUgd2FpdGluZyA6JywgZXJyKTtcbiAgICB9XG5cbiAgICAvLyBNYWtlIHN1cmUgc2VydmljZSBpcyBub3Qgc3RvcHBlZFxuICAgIGlmICh0aGlzLnN0b3BwZWQpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBleGNsdWRlZERhdGFCeUZpbHRlcjogVFtdID0gW107XG4gICAgbGV0IGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbjogVFtdO1xuXG4gICAgdHJ5IHtcbiAgICAgIGlmIChpc0VtcHR5QXJyYXkob3JpZ2luYWxEYXRhKSkge1xuICAgICAgICByZXR1cm4ge2RhdGE6IFtdLCB0b3RhbDogMH07XG4gICAgICB9XG5cbiAgICAgIC8vIEFwcGx5IHNvcnRcbiAgICAgIGxldCBkYXRhID0gdGhpcy5fc29ydEZuKG9yaWdpbmFsRGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKSA7XG5cbiAgICAgIGlmICh0aGlzLl9vbkxvYWQpIHtcbiAgICAgICAgZGF0YSA9IGF3YWl0IHRoaXMuX29uTG9hZChkYXRhKTtcbiAgICAgIH1cblxuICAgICAgLy8gQXBwbHkgZmlsdGVyICh3aWxsIHVwZGF0ZSBoaWRkZW5EYXRhKVxuICAgICAgZGF0YSA9IHRoaXMuZmlsdGVyKGRhdGEsIGZpbHRlciwgZXhjbHVkZWREYXRhQnlGaWx0ZXIpO1xuXG4gICAgICAvLyBDb21wdXRlIHRoZSB0b3RhbCBsZW5ndGhcbiAgICAgIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XG5cbiAgICAgIC8vIElmIHBhZ2Ugc2l6ZT0wIChlLmcuIG9ubHkgbmVlZCB0b3RhbClcbiAgICAgIGlmIChzaXplID09PSAwKSB7XG4gICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgIHJldHVybiB7ZGF0YTogW10sIHRvdGFsfTtcbiAgICAgIH1cblxuICAgICAgLy8gU2xpY2UgaW4gYSBwYWdlICh1c2luZyBvZmZzZXQgYW5kIHNpemUpXG4gICAgICBpZiAob2Zmc2V0ID4gMCkge1xuXG4gICAgICAgIC8vIE9mZnNldCBhZnRlciB0aGUgZW5kOiBubyByZXN1bHRcbiAgICAgICAgaWYgKG9mZnNldCA+PSBkYXRhLmxlbmd0aCkge1xuICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgICAgZGF0YSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IChzaXplID4gMCAmJiAoKG9mZnNldCArIHNpemUpIDwgZGF0YS5sZW5ndGgpKVxuICAgICAgICAgICAgLy8gU2xpY2UgdXNpbmcgbGltaXQgdG8gc2l6ZVxuICAgICAgICAgICAgPyBkYXRhLnNsaWNlKDAsIG9mZnNldCAtMSkuY29uY2F0KGRhdGEuc2xpY2Uob2Zmc2V0ICsgc2l6ZSkpXG4gICAgICAgICAgICAvLyBTbGljZSB3aXRob3V0IGxpbWl0XG4gICAgICAgICAgICA6IGRhdGEuc2xpY2UoMCwgb2Zmc2V0LTEpO1xuXG4gICAgICAgICAgZGF0YSA9IChzaXplID4gMCAmJiAoKG9mZnNldCArIHNpemUpIDwgZGF0YS5sZW5ndGgpKVxuICAgICAgICAgICAgLy8gU2xpY2UgdXNpbmcgbGltaXQgdG8gc2l6ZVxuICAgICAgICAgICAgPyBkYXRhLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgc2l6ZSlcbiAgICAgICAgICAgIC8vIFNsaWNlIHdpdGhvdXQgbGltaXRcbiAgICAgICAgICAgIDogZGF0YS5zbGljZShvZmZzZXQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEFwcGx5IGEgbGltaXRcbiAgICAgIGVsc2UgaWYgKHNpemUgPiAwKXtcbiAgICAgICAgZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID0gZGF0YS5zbGljZShzaXplKTtcbiAgICAgICAgZGF0YSA9IGRhdGEuc2xpY2UoMCwgc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE5vIGxpbWl0OlxuICAgICAgZWxzZSBpZiAoc2l6ZSA9PT0gLTEpe1xuICAgICAgICAvLyBLZWVwIGFsbCBkYXRhXG4gICAgICB9XG5cbiAgICAgIC8vIC8hXFwgSWYgYWxyZWFkeSBvYnNlcnZlZCwgdGhlbiBhbHdheXMgY3JlYXRlIGEgY29weSBvZiB0aGUgb3JpZ2luYWwgYXJyYXlcbiAgICAgIC8vIEJlY2F1c2UgZGF0YXNvdXJjZSB3aWxsIG9ubHkgdXBkYXRlIGlmIHRoZSBhcnJheSBjaGFuZ2VkXG4gICAgICBpZiAoZGF0YSA9PT0gb3JpZ2luYWxEYXRhKSB7XG4gICAgICAgIGRhdGEgPSBkYXRhLnNsaWNlKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlczogTG9hZFJlc3VsdDxUPiA9IHtkYXRhLCB0b3RhbH07XG5cbiAgICAgIGNvbnN0IG5leHRPZmZzZXQgPSBzaXplID4gMCA/IChvZmZzZXQgfHwgMCkgKyBzaXplIDogdG90YWw7XG4gICAgICBpZiAobmV4dE9mZnNldCA8IHRvdGFsKSB7XG4gICAgICAgIHJlcy5mZXRjaE1vcmUgPSAoKSA9PiB0aGlzLmxvYWRBbGwobmV4dE9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIG9wdHMpXG4gICAgICAgICAgLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBoaWRkZW4gZGF0YSAocmVtb3ZlIG5ldyBmZXRjaGVkIGl0ZW0pXG4gICAgICAgICAgICBpZiAocmVzLmRhdGE/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gdGhpcy5faGlkZGVuRGF0YT8uZmlsdGVyKGl0ZW0gPT4gIXJlcy5kYXRhLmluY2x1ZGVzKGl0ZW0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgLy8gUmVtZW1iZXIgaGlkZGVuIGRhdGFcbiAgICAgIGlmIChvZmZzZXQgPT09IDApIHtcbiAgICAgICAgdGhpcy5faGlkZGVuRGF0YSA9ICFleGNsdWRlZERhdGFCeVBhZ2luYXRpb24gPyBleGNsdWRlZERhdGFCeUZpbHRlciA6IGV4Y2x1ZGVkRGF0YUJ5RmlsdGVyLmNvbmNhdCguLi5leGNsdWRlZERhdGFCeVBhZ2luYXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHdhdGNoQWxsKFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIHNpemU6IG51bWJlcixcbiAgICBzb3J0Qnk/OiBzdHJpbmcsXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgZmlsdGVyRGF0YT86IEYsXG4gICAgb3B0aW9ucz86IGFueVxuICApOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+IHtcblxuICAgIG9mZnNldCA9IG9mZnNldCA+PSAwID8gb2Zmc2V0IDogMDtcbiAgICBzaXplID0gc2l6ZSA+PSAwID8gc2l6ZSA6IC0xO1xuXG4gICAgcmV0dXJuIHRoaXMuZGF0YVN1YmplY3RcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBXYXJuIGlmIHdhaXRpbmcgdmFsdWUgdG8gYmUgc2V0XG4gICAgICAgIHRhcCgoZGF0YSkgPT4gdGhpcy5kZWJ1ZyAmJiAhZGF0YSAmJiBjb25zb2xlLmRlYnVnKCdbbWVtb3J5LWRhdGEtc2VydmljZV0gV2FpdGluZyB2YWx1ZSB0byBiZSBzZXQuLi4nKSksXG4gICAgICAgIGZpbHRlcihpc05vdE5pbCksXG4gICAgICAgIG1lcmdlTWFwKF8gPT4gdGhpcy5sb2FkQWxsKG9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXJEYXRhLCBvcHRpb25zKSksXG4gICAgICAgIGZpbHRlcihpc05vdE5pbCksIC8vIFNraXAgbm8gcmVzdWx0IChlLmcuIHdoZW4gc3RvcHBlZClcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuc3RvcFN1YmplY3QpXG4gICAgICApO1xuICB9XG5cbiAgYXN5bmMgc2F2ZUFsbChkYXRhOiBUW10sIG9wdGlvbnM/OiBhbnkpOiBQcm9taXNlPFRbXT4ge1xuICAgIGlmICghdGhpcy5kYXRhU3ViamVjdC52YWx1ZSkgdGhyb3cgbmV3IEVycm9yKCdbbWVtb3J5LXNlcnZpY2VdIENvdWxkIG5vdCBzYXZlLCBiZWNhdXNlIHZhbHVlIG5vdCBzZXQnKTtcblxuICAgIHRoaXMubWFya0FzU2F2aW5nKCk7XG5cbiAgICB0cnkge1xuXG4gICAgICAvLyBSZXN0b3JlIGhpZGRlbiBkYXRhXG4gICAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHRoaXMuX2hpZGRlbkRhdGEpKVxuICAgICAgICBkYXRhID0gZGF0YS5jb25jYXQoLi4udGhpcy5faGlkZGVuRGF0YSk7XG5cbiAgICAgIGlmICh0aGlzLl9vblNhdmVGbikge1xuICAgICAgICBjb25zdCByZXMgPSB0aGlzLl9vblNhdmVGbihkYXRhKTtcbiAgICAgICAgZGF0YSA9ICgocmVzIGluc3RhbmNlb2YgUHJvbWlzZSkpID8gYXdhaXQgcmVzIDogcmVzO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQoZGF0YSk7XG4gICAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsKGRhdGFUb1JlbW92ZTogVFtdLCBvcHRpb25zPzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBsZXQgZGF0YSA9IHRoaXMuZGF0YVN1YmplY3QudmFsdWU7XG4gICAgaWYgKCFkYXRhKSB0aHJvdyBuZXcgRXJyb3IoJ1ttZW1vcnktc2VydmljZV0gQ291bGQgbm90IGRlbGV0ZSwgYmVjYXVzZSB2YWx1ZSBub3Qgc2V0Jyk7XG5cbiAgICB0aGlzLm1hcmtBc1NhdmluZygpO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlbW92ZSBkZWxldGVkIGl0ZW0sIGZyb20gZGF0YVxuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSBkYXRhLmZpbHRlcihlbnRpdHkgPT4ge1xuICAgICAgICBjb25zdCByZW1vdmVkID0gZGF0YVRvUmVtb3ZlLmZpbmRJbmRleChlbnRpdHlUb1JlbW92ZSA9PiB0aGlzLmVxdWFscyhlbnRpdHlUb1JlbW92ZSwgZW50aXR5KSkgIT09IC0xO1xuICAgICAgICByZXR1cm4gIXJlbW92ZWQ7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGRlbGV0ZUNvdW50ID0gZGF0YS5sZW5ndGggLSB1cGRhdGVkRGF0YS5sZW5ndGg7XG4gICAgICBpZiAoZGVsZXRlQ291bnQgPiAwKSB7XG4gICAgICAgIGRhdGEgPSB1cGRhdGVkRGF0YTtcbiAgICAgICAgdGhpcy5kYXRhU3ViamVjdC5uZXh0KGRhdGEpO1xuICAgICAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgdGhpcy5tYXJrQXNTYXZlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHNvcnQoZGF0YTogVFtdLCBzb3J0Qnk/OiBzdHJpbmcsIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uKTogVFtdIHtcbiAgICAvLyBNYWtlIHN1cmUgdG8gZmlsbCBzb3J0QnkgQkVGT1JFIGNoZWNraW5nIGluIHRoZSByZXBsYWNlbWVudCBtYXBcbiAgICBzb3J0QnkgPSBzb3J0QnkgfHwgJ2lkJztcbiAgICAvLyBSZXBsYWNlIHNvcnRCeSwgdXNpbmcgdGhlIHJlcGxhY2VtZW50IG1hcFxuICAgIHNvcnRCeSA9IHRoaXMuX3NvcnRCeVJlcGxhY2VtZW50W3NvcnRCeV0gfHwgc29ydEJ5O1xuXG4gICAgLy8gRXhlY3V0ZSB0aGUgc29ydFxuICAgIHJldHVybiBFbnRpdHlVdGlscy5zb3J0KGRhdGEsIHNvcnRCeSwgc29ydERpcmVjdGlvbik7XG4gIH1cblxuICBhc0ZpbHRlcihzb3VyY2U6IFBhcnRpYWw8Rj4pOiBGIHtcbiAgICByZXR1cm4gRW50aXR5RmlsdGVyVXRpbHMuZnJvbU9iamVjdChzb3VyY2UsIHRoaXMuZmlsdGVyVHlwZSk7XG4gIH1cblxuICBhZGRTb3J0QnlSZXBsYWNlbWVudChzb3VyY2U6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zb3J0QnlSZXBsYWNlbWVudFtzb3VyY2VdID0gdGFyZ2V0O1xuICB9XG5cbiAgZXF1YWxzKGQxOiBULCBkMjogVCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9lcXVhbHNGbikgcmV0dXJuIHRoaXMuX2VxdWFsc0ZuKGQxLCBkMik7XG4gICAgcmV0dXJuIGQxICYmIGQxLmVxdWFscyA/IGQxLmVxdWFscyhkMikgOiBFbnRpdHlVdGlscy5lcXVhbHMoZDEsIGQyLCAnaWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3VudCBkYXRhIHN0b3JlZCBieSB0aGUgc2VydmljZSAod2l0aG91dCBoaWRkZW4gZGF0YSkuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRzXG4gICAqL1xuICAvLyBnZXQgdmlzaWJsZUNvdW50KCk6IG51bWJlciB7XG4gIC8vICAgcmV0dXJuICh0aGlzLmRhdGFTdWJqZWN0LnZhbHVlPy5sZW5ndGggfHwgMCk7XG4gIC8vIH1cblxuICAvKipcbiAgICogQ291bnQgZGF0YSBzdG9yZWQgYnkgdGhlIHNlcnZpY2UgKHdpdGhvdXQgaGlkZGVuIGRhdGEpLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0c1xuICAgKiBAZGVwcmVjYXRlZCBUT0RPIFBsZWFzZSByZW5hbWUgdGhpcyBnZXR0ZXIgaW50byB2aXNpYmxlQ291bnQgKGFuZCBjcmVhdGUgY291bnQgPSBoaWRkZW5Db3VudCArIHZpc2libGVDb3VudClcbiAgICovXG4gIGdldCBjb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5kYXRhU3ViamVjdC52YWx1ZT8ubGVuZ3RoIHx8IDApO1xuICB9XG5cbiAgZ2V0IGhpZGRlbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZGRlbkRhdGE/Lmxlbmd0aCB8fCAwO1xuICB9XG5cbiAgYXN5bmMgd2FpdElkbGUob3B0cz86IFdhaXRGb3JPcHRpb25zKSB7XG4gICAgYXdhaXQgdGhpcy53YWl0V2hpbGVTYXZpbmcob3B0cyk7XG4gIH1cblxuICBtYXJrQXNEaXJ0eSgpIHtcbiAgICBpZiAoIXRoaXMuZGlydHlTdWJqZWN0LnZhbHVlKSB7XG4gICAgICB0aGlzLmRpcnR5U3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG1hcmtBc1ByaXN0aW5lKCkge1xuICAgIGlmICh0aGlzLmRpcnR5U3ViamVjdC52YWx1ZSkge1xuICAgICAgdGhpcy5kaXJ0eVN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgZmlsdGVyKGRhdGE6IFRbXSwgX2ZpbHRlcjogRiwgaGlkZGVuRGF0YTogVFtdKTogVFtdIHtcblxuICAgIC8vIGlmIGZpbHRlciBpcyBEYXRhRmlsdGVyIGluc3RhbmNlLCB1c2UgaXRzIHRlc3QgZnVuY3Rpb25cbiAgICBjb25zdCBmaWx0ZXJGbiA9IHRoaXMuX2ZpbHRlckZuRmFjdG9yeSAmJiB0aGlzLl9maWx0ZXJGbkZhY3RvcnkoX2ZpbHRlcik7XG4gICAgaWYgKGZpbHRlckZuKSB7XG4gICAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSBbXTtcblxuICAgICAgZGF0YS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKGZpbHRlckZuKHZhbHVlKSlcbiAgICAgICAgICBmaWx0ZXJlZERhdGEucHVzaCh2YWx1ZSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICBoaWRkZW5EYXRhLnB1c2godmFsdWUpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XG4gICAgfVxuXG4gICAgLy8gZGVmYXVsdCwgbm8gZmlsdGVyXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29ubmVjdCgpOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU3ViamVjdC5waXBlKFxuICAgICAgbWFwKChkYXRhKSA9PiB7XG4gICAgICAgIGRhdGEgPSBkYXRhIHx8IFtdO1xuICAgICAgICBjb25zdCB0b3RhbCA9IGRhdGEubGVuZ3RoO1xuICAgICAgICByZXR1cm4ge2RhdGEsIHRvdGFsfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB3YWl0V2hpbGVTYXZpbmcob3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc2F2aW5nKSAge1xuICAgICAgcmV0dXJuIGZpcnN0RmFsc2VQcm9taXNlKHRoaXMuc2F2aW5nU3ViamVjdCwge1xuICAgICAgICBzdG9wOiBvcHRzPy5zdG9wIHx8IG1lcmdlKHRoaXMuc3RvcFN1YmplY3QsIHRoaXMuZGF0YVN1YmplY3QpLCAvLyBTdG9wIGlmIGRlc3Ryb3llZCBvciBuZXcgZGF0YSBSZWNlaXZlZFxuICAgICAgICBzdG9wRXJyb3I6IGZhbHNlLCAvLyBBdm9pZCBlcnJvciB3aGVuIHN0b3BwZWRcbiAgICAgICAgLi4ub3B0c1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc1NhdmluZygpIHtcbiAgICBpZiAoIXRoaXMuc2F2aW5nU3ViamVjdC52YWx1ZSkge1xuICAgICAgdGhpcy5zYXZpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc1NhdmVkKCkge1xuICAgIGlmICh0aGlzLnNhdmluZ1N1YmplY3QudmFsdWUpIHtcbiAgICAgIHRoaXMuc2F2aW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuXG59XG4iXX0=
347
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvbWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQVU5RSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQVcsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQWNsRixXQUFXO0FBRVgsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyx1QkFLWCxTQUFRLDBCQUFvQztJQW1DaEM7SUFDQTtJQWpDWixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRU4sV0FBVyxHQUFRLElBQUksQ0FBQztJQUV2QixZQUFZLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFM0MsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3BELE9BQU8sQ0FBcUU7SUFDNUUsT0FBTyxDQUFvQztJQUMzQyxTQUFTLENBQW9DO0lBQzdDLFNBQVMsQ0FBNEI7SUFDckMs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QUFXLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNYLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDMUIsT0FBTyxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVTLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBcUI7UUFDbkQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFHO1lBQ2hCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDM0MsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDN0QsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLEdBQUcsSUFBSTthQUNSLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVTLFdBQVc7UUFDbkIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRTtZQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUM7dUdBbGFVLHVCQUF1QjsyRkFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUZuQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGlzRW1wdHlBcnJheSwgaXNOaWwsIGlzTm90RW1wdHlBcnJheSwgaXNOb3ROaWwgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtcbiAgRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMsXG4gIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucyxcbiAgRmlsdGVyRm4sXG4gIEZpbHRlckZuRmFjdG9yeSxcbiAgSUVudGl0aWVzU2VydmljZSxcbiAgTG9hZFJlc3VsdCxcbn0gZnJvbSAnLi9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW50aXR5VXRpbHMsIElFbnRpdHkgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdHlGaWx0ZXIsIEVudGl0eUZpbHRlclV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHsgZmlyc3RGYWxzZVByb21pc2UsIFdhaXRGb3JPcHRpb25zIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHsgU3RhcnRhYmxlT2JzZXJ2YWJsZVNlcnZpY2UgfSBmcm9tICcuL3N0YXJ0YWJsZS1vYnNlcnZhYmxlLXNlcnZpY2UuY2xhc3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluTWVtb3J5RW50aXRpZXNTZXJ2aWNlT3B0aW9uczxULCBGPiB7XG4gIG9uU29ydD86IChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pID0+IFRbXTtcbiAgb25Mb2FkPzogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBvblNhdmU/OiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIGVxdWFscz86IChkMTogVCwgZDI6IFQpID0+IGJvb2xlYW47XG5cbiAgZmlsdGVyRm5GYWN0b3J5PzogRmlsdGVyRm5GYWN0b3J5PFQsIEY+O1xuICBmaWx0ZXJGbj86IEZpbHRlckZuPFQ+O1xuXG4gIHNvcnRCeVJlcGxhY2VtZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgSW5NZW1vcnlFbnRpdGllc1NlcnZpY2U8XG4gIFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPixcbiAgRiA9IGFueSxcbiAgSUQgPSBudW1iZXIsXG4gIE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMgPSBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM+XG4gIGV4dGVuZHMgU3RhcnRhYmxlT2JzZXJ2YWJsZVNlcnZpY2U8VFtdLCBUW10+XG4gIGltcGxlbWVudHMgSUVudGl0aWVzU2VydmljZTxULCBGLCBPPiwgT25EZXN0cm95IHtcblxuICBkZWJ1ZyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2hpZGRlbkRhdGE6IFRbXSA9IG51bGw7XG5cbiAgcmVhZG9ubHkgZGlydHlTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzYXZpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NvcnRGbjogKGRhdGE6IFRbXSwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbikgPT4gVFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vbkxvYWQ6IChkYXRhOiBUW10pID0+IFRbXSB8IFByb21pc2U8VFtdPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfb25TYXZlRm46IChkYXRhOiBUW10pID0+IFRbXSB8IFByb21pc2U8VFtdPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfZXF1YWxzRm46IChkMTogVCwgZDI6IFQpID0+IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlckZuRmFjdG9yeTogRmlsdGVyRm5GYWN0b3J5PFQsIEY+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9zb3J0QnlSZXBsYWNlbWVudDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuXG4gIHNldCB2YWx1ZShkYXRhOiBUW10pIHtcbiAgICB0aGlzLnNldFZhbHVlKGRhdGEpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVN1YmplY3QuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBzYXZpbmcoKTogYm9vbGVhbntcbiAgICByZXR1cm4gdGhpcy5zYXZpbmdTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpcnR5U3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBkYXRhVHlwZTogbmV3KCkgPT4gVCxcbiAgICBwcm90ZWN0ZWQgZmlsdGVyVHlwZTogbmV3KCkgPT4gRixcbiAgICBvcHRpb25zPzogSW5NZW1vcnlFbnRpdGllc1NlcnZpY2VPcHRpb25zPFQsIEY+XG4gICkge1xuICAgIHN1cGVyKG51bGwpO1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICBvblNvcnQ6IHRoaXMuc29ydCxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9O1xuXG4gICAgdGhpcy5fc29ydEZuID0gb3B0aW9ucy5vblNvcnQ7XG4gICAgdGhpcy5fb25Mb2FkID0gb3B0aW9ucy5vbkxvYWQ7XG4gICAgdGhpcy5fb25TYXZlRm4gPSBvcHRpb25zLm9uU2F2ZTtcbiAgICB0aGlzLl9lcXVhbHNGbiA9IG9wdGlvbnMuZXF1YWxzO1xuICAgIHRoaXMuX2ZpbHRlckZuRmFjdG9yeSA9IG9wdGlvbnMuZmlsdGVyRm5GYWN0b3J5IHx8ICgoZikgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5hc0ZpbHRlcihmKSBhcyBGO1xuICAgICAgaWYgKGZpbHRlciBpbnN0YW5jZW9mIEVudGl0eUZpbHRlcikge1xuICAgICAgICByZXR1cm4gZmlsdGVyLmFzRmlsdGVyRm4oKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSk7XG4gICAgdGhpcy5fc3RhcnRCeVJlYWR5RnVuY3Rpb24gPSBmYWxzZTsgLy8gTmVlZCBzZXRWYWx1ZSgpIHRvIGJlIGNhbGxlZCwgdG8gc3RhcnQgdGhlIHNlcnZpY2VcblxuICAgIHRoaXMuX3NvcnRCeVJlcGxhY2VtZW50ID0ge1xuICAgICAgLi4ub3B0aW9ucy5zb3J0QnlSZXBsYWNlbWVudFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbmdPblN0YXJ0KGRhdGE/OiBUW10pOiBQcm9taXNlPFRbXT4ge1xuICAgIGlmICghZGF0YSkgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHJlcXVpcmVkIGRhdGEsIHRvIHN0YXJ0IHRoaXMgc2VydmljZScpO1xuICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKCdbbWVtb3J5LWRhdGEtc2VydmljZV0gU3RhcnRpbmcuLi4nKTtcbiAgICB0aGlzLl9oaWRkZW5EYXRhID0gW107XG4gICAgdGhpcy5tYXJrQXNTYXZlZCgpO1xuICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBuZ09uU3RvcCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW21lbW9yeS1kYXRhLXNlcnZpY2VdIFN0b3BwaW5nLi4uJyk7XG4gICAgdGhpcy5faGlkZGVuRGF0YSA9IG51bGw7XG4gICAgdGhpcy5tYXJrQXNTYXZlZCgpO1xuICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3RvcCgpO1xuICB9XG5cbiAgc2V0VmFsdWUoZGF0YTogVFtdKSB7XG4gICAgLy8gSWYgc2VydmljZSBhbHJlYWR5IHN0YXJ0ZWRcbiAgICBpZiAodGhpcy5zdGFydGVkKSB7XG4gICAgICAvLyBVcGRhdGUgdGhlIGRhdGEsIGlmIGNoYW5nZWRcbiAgICAgIGlmICh0aGlzLmRhdGFTdWJqZWN0LnZhbHVlICE9PSBkYXRhKSB7XG4gICAgICAgIHRoaXMuX2hpZGRlbkRhdGEgPSBbXTtcbiAgICAgICAgdGhpcy5kYXRhU3ViamVjdC5uZXh0KGRhdGEpO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXNldCBkaXJ0eSBhbmQgc2F2aW5nIHN0YXRlXG4gICAgICAvLyAoRml4IE9ic0JpbyBpc3N1ZSBvbiBzYW1wbGVzIHRhYmxlIDogc3RpbGwgZGlydHkgYWZ0ZXIgc2V0dGluZyB0aGUgc2FtZSB2YWx1ZSBhZ2FpbilcbiAgICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcbiAgICB9XG4gICAgLy8gSWYgc2VydmljZSBub3Qgc3RhcnRlZCB5ZXQsIHRoZW4gc3RhcnQgaXQsIHVzaW5nIGdpdmVuIGRhdGFcbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuc3RhcnQoZGF0YSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9hZEFsbChcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc29ydEJ5Pzogc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIGZpbHRlcj86IEYsXG4gICAgb3B0cz86IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zICYge3VwZGF0ZUhpZGRlbkRhdGE/OiBib29sZWFufVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8VD4+IHtcblxuICAgIG9mZnNldCA9IG9mZnNldCA+PSAwID8gb2Zmc2V0IDogMDtcbiAgICBzaXplID0gc2l6ZSA+PSAwID8gc2l6ZSA6IC0xO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxEYXRhID0gdGhpcy5kYXRhU3ViamVjdC52YWx1ZTtcbiAgICBpZiAoaXNOaWwob3JpZ2luYWxEYXRhKSkge1xuICAgICAgY29uc29sZS53YXJuKCdbbWVtb3J5LWRhdGEtc2VydmljZV0gQ2Fubm90IGxvYWQgYWxsOiBubyB2YWx1ZSBzZXQuIFdpbGwgcmV0dXJuIGVtcHR5IHJlc3VsdCcpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAvLyBXYWl0IHNlcnZpY2UgaXMgcmVhZHlcbiAgICAgIGF3YWl0IHRoaXMucmVhZHkoKTtcblxuICAgICAgLy8gV2FpdCB3aGlsZSBidXN5IChlLmcuIHdoZW4gc2F2aW5nLCBvciBkZWxldGluZylcbiAgICAgIGF3YWl0IHRoaXMud2FpdElkbGUoe3N0b3BFcnJvcjogZmFsc2UgLyphdm9pZCBlcnJvciB3aGVuIHN0b3BwZWQqL30pO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBTaG91bGQgYmUgYSBzdG9wIGVycm9yOiBsb2cgYW5kIGNvbnRpbnVlXG4gICAgICBpZiAoIXRoaXMuc3RvcHBlZCkgY29uc29sZS5lcnJvcignVW5leHBlY3RlZCBlcnJvciwgd2hpbGUgd2FpdGluZyA6JywgZXJyKTtcbiAgICB9XG5cbiAgICAvLyBNYWtlIHN1cmUgc2VydmljZSBpcyBub3Qgc3RvcHBlZFxuICAgIGlmICh0aGlzLnN0b3BwZWQpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBleGNsdWRlZERhdGFCeUZpbHRlcjogVFtdID0gW107XG4gICAgbGV0IGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbjogVFtdO1xuXG4gICAgdHJ5IHtcbiAgICAgIGlmIChpc0VtcHR5QXJyYXkob3JpZ2luYWxEYXRhKSkge1xuICAgICAgICByZXR1cm4ge2RhdGE6IFtdLCB0b3RhbDogMH07XG4gICAgICB9XG5cbiAgICAgIC8vIEFwcGx5IHNvcnRcbiAgICAgIGxldCBkYXRhID0gdGhpcy5fc29ydEZuKG9yaWdpbmFsRGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKSA7XG5cbiAgICAgIGlmICh0aGlzLl9vbkxvYWQpIHtcbiAgICAgICAgZGF0YSA9IGF3YWl0IHRoaXMuX29uTG9hZChkYXRhKTtcbiAgICAgIH1cblxuICAgICAgLy8gQXBwbHkgZmlsdGVyICh3aWxsIHVwZGF0ZSBoaWRkZW5EYXRhKVxuICAgICAgZGF0YSA9IHRoaXMuZmlsdGVyKGRhdGEsIGZpbHRlciwgZXhjbHVkZWREYXRhQnlGaWx0ZXIpO1xuXG4gICAgICAvLyBDb21wdXRlIHRoZSB0b3RhbCBsZW5ndGhcbiAgICAgIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XG5cbiAgICAgIC8vIElmIHBhZ2Ugc2l6ZT0wIChlLmcuIG9ubHkgbmVlZCB0b3RhbClcbiAgICAgIGlmIChzaXplID09PSAwKSB7XG4gICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgIHJldHVybiB7ZGF0YTogW10sIHRvdGFsfTtcbiAgICAgIH1cblxuICAgICAgLy8gU2xpY2UgaW4gYSBwYWdlICh1c2luZyBvZmZzZXQgYW5kIHNpemUpXG4gICAgICBpZiAob2Zmc2V0ID4gMCkge1xuXG4gICAgICAgIC8vIE9mZnNldCBhZnRlciB0aGUgZW5kOiBubyByZXN1bHRcbiAgICAgICAgaWYgKG9mZnNldCA+PSBkYXRhLmxlbmd0aCkge1xuICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgICAgZGF0YSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IChzaXplID4gMCAmJiAoKG9mZnNldCArIHNpemUpIDwgZGF0YS5sZW5ndGgpKVxuICAgICAgICAgICAgLy8gU2xpY2UgdXNpbmcgbGltaXQgdG8gc2l6ZVxuICAgICAgICAgICAgPyBkYXRhLnNsaWNlKDAsIG9mZnNldCAtMSkuY29uY2F0KGRhdGEuc2xpY2Uob2Zmc2V0ICsgc2l6ZSkpXG4gICAgICAgICAgICAvLyBTbGljZSB3aXRob3V0IGxpbWl0XG4gICAgICAgICAgICA6IGRhdGEuc2xpY2UoMCwgb2Zmc2V0LTEpO1xuXG4gICAgICAgICAgZGF0YSA9IChzaXplID4gMCAmJiAoKG9mZnNldCArIHNpemUpIDwgZGF0YS5sZW5ndGgpKVxuICAgICAgICAgICAgLy8gU2xpY2UgdXNpbmcgbGltaXQgdG8gc2l6ZVxuICAgICAgICAgICAgPyBkYXRhLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgc2l6ZSlcbiAgICAgICAgICAgIC8vIFNsaWNlIHdpdGhvdXQgbGltaXRcbiAgICAgICAgICAgIDogZGF0YS5zbGljZShvZmZzZXQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEFwcGx5IGEgbGltaXRcbiAgICAgIGVsc2UgaWYgKHNpemUgPiAwKXtcbiAgICAgICAgZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID0gZGF0YS5zbGljZShzaXplKTtcbiAgICAgICAgZGF0YSA9IGRhdGEuc2xpY2UoMCwgc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE5vIGxpbWl0OlxuICAgICAgZWxzZSBpZiAoc2l6ZSA9PT0gLTEpe1xuICAgICAgICAvLyBLZWVwIGFsbCBkYXRhXG4gICAgICB9XG5cbiAgICAgIC8vIC8hXFwgSWYgYWxyZWFkeSBvYnNlcnZlZCwgdGhlbiBhbHdheXMgY3JlYXRlIGEgY29weSBvZiB0aGUgb3JpZ2luYWwgYXJyYXlcbiAgICAgIC8vIEJlY2F1c2UgZGF0YXNvdXJjZSB3aWxsIG9ubHkgdXBkYXRlIGlmIHRoZSBhcnJheSBjaGFuZ2VkXG4gICAgICBpZiAoZGF0YSA9PT0gb3JpZ2luYWxEYXRhKSB7XG4gICAgICAgIGRhdGEgPSBkYXRhLnNsaWNlKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlczogTG9hZFJlc3VsdDxUPiA9IHtkYXRhLCB0b3RhbH07XG5cbiAgICAgIGNvbnN0IG5leHRPZmZzZXQgPSBzaXplID4gMCA/IChvZmZzZXQgfHwgMCkgKyBzaXplIDogdG90YWw7XG4gICAgICBpZiAobmV4dE9mZnNldCA8IHRvdGFsKSB7XG4gICAgICAgIHJlcy5mZXRjaE1vcmUgPSAoKSA9PiB0aGlzLmxvYWRBbGwobmV4dE9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIHsuLi5vcHRzLCB1cGRhdGVIaWRkZW5EYXRhOiBmYWxzZX0pXG4gICAgICAgICAgLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBoaWRkZW4gZGF0YSAocmVtb3ZlIG5ldyBmZXRjaGVkIGl0ZW0pXG4gICAgICAgICAgICBpZiAocmVzLmRhdGE/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gdGhpcy5faGlkZGVuRGF0YT8uZmlsdGVyKGl0ZW0gPT4gIXJlcy5kYXRhLmluY2x1ZGVzKGl0ZW0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgLy8gUmVtZW1iZXIgaGlkZGVuIGRhdGFcbiAgICAgIGlmIChvcHRzPy51cGRhdGVIaWRkZW5EYXRhICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLl9oaWRkZW5EYXRhID0gIWV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA/IGV4Y2x1ZGVkRGF0YUJ5RmlsdGVyIDogZXhjbHVkZWREYXRhQnlGaWx0ZXIuY29uY2F0KC4uLmV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgd2F0Y2hBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXJEYXRhPzogRixcbiAgICBvcHRpb25zPzogYW55XG4gICk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj4ge1xuXG4gICAgb2Zmc2V0ID0gb2Zmc2V0ID49IDAgPyBvZmZzZXQgOiAwO1xuICAgIHNpemUgPSBzaXplID49IDAgPyBzaXplIDogLTE7XG5cbiAgICByZXR1cm4gdGhpcy5kYXRhU3ViamVjdFxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIFdhcm4gaWYgd2FpdGluZyB2YWx1ZSB0byBiZSBzZXRcbiAgICAgICAgdGFwKChkYXRhKSA9PiB0aGlzLmRlYnVnICYmICFkYXRhICYmIGNvbnNvbGUuZGVidWcoJ1ttZW1vcnktZGF0YS1zZXJ2aWNlXSBXYWl0aW5nIHZhbHVlIHRvIGJlIHNldC4uLicpKSxcbiAgICAgICAgZmlsdGVyKGlzTm90TmlsKSxcbiAgICAgICAgbWVyZ2VNYXAoXyA9PiB0aGlzLmxvYWRBbGwob2Zmc2V0LCBzaXplLCBzb3J0QnksIHNvcnREaXJlY3Rpb24sIGZpbHRlckRhdGEsIG9wdGlvbnMpKSxcbiAgICAgICAgZmlsdGVyKGlzTm90TmlsKSwgLy8gU2tpcCBubyByZXN1bHQgKGUuZy4gd2hlbiBzdG9wcGVkKVxuICAgICAgICB0YWtlVW50aWwodGhpcy5zdG9wU3ViamVjdClcbiAgICAgICk7XG4gIH1cblxuICBhc3luYyBzYXZlQWxsKGRhdGE6IFRbXSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8VFtdPiB7XG4gICAgaWYgKCF0aGlzLmRhdGFTdWJqZWN0LnZhbHVlKSB0aHJvdyBuZXcgRXJyb3IoJ1ttZW1vcnktc2VydmljZV0gQ291bGQgbm90IHNhdmUsIGJlY2F1c2UgdmFsdWUgbm90IHNldCcpO1xuXG4gICAgdGhpcy5tYXJrQXNTYXZpbmcoKTtcblxuICAgIHRyeSB7XG5cbiAgICAgIC8vIFJlc3RvcmUgaGlkZGVuIGRhdGFcbiAgICAgIGlmIChpc05vdEVtcHR5QXJyYXkodGhpcy5faGlkZGVuRGF0YSkpXG4gICAgICAgIGRhdGEgPSBkYXRhLmNvbmNhdCguLi50aGlzLl9oaWRkZW5EYXRhKTtcblxuICAgICAgaWYgKHRoaXMuX29uU2F2ZUZuKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuX29uU2F2ZUZuKGRhdGEpO1xuICAgICAgICBkYXRhID0gKChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSkgPyBhd2FpdCByZXMgOiByZXM7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGF0YVN1YmplY3QubmV4dChkYXRhKTtcbiAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIHRoaXMubWFya0FzU2F2ZWQoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGVBbGwoZGF0YVRvUmVtb3ZlOiBUW10sIG9wdGlvbnM/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGxldCBkYXRhID0gdGhpcy5kYXRhU3ViamVjdC52YWx1ZTtcbiAgICBpZiAoIWRhdGEpIHRocm93IG5ldyBFcnJvcignW21lbW9yeS1zZXJ2aWNlXSBDb3VsZCBub3QgZGVsZXRlLCBiZWNhdXNlIHZhbHVlIG5vdCBzZXQnKTtcblxuICAgIHRoaXMubWFya0FzU2F2aW5nKCk7XG5cbiAgICB0cnkge1xuICAgICAgLy8gUmVtb3ZlIGRlbGV0ZWQgaXRlbSwgZnJvbSBkYXRhXG4gICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IGRhdGEuZmlsdGVyKGVudGl0eSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBkYXRhVG9SZW1vdmUuZmluZEluZGV4KGVudGl0eVRvUmVtb3ZlID0+IHRoaXMuZXF1YWxzKGVudGl0eVRvUmVtb3ZlLCBlbnRpdHkpKSAhPT0gLTE7XG4gICAgICAgIHJldHVybiAhcmVtb3ZlZDtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZGVsZXRlQ291bnQgPSBkYXRhLmxlbmd0aCAtIHVwZGF0ZWREYXRhLmxlbmd0aDtcbiAgICAgIGlmIChkZWxldGVDb3VudCA+IDApIHtcbiAgICAgICAgZGF0YSA9IHVwZGF0ZWREYXRhO1xuICAgICAgICB0aGlzLmRhdGFTdWJqZWN0Lm5leHQoZGF0YSk7XG4gICAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICB0aGlzLm1hcmtBc1NhdmVkKCk7XG4gICAgfVxuICB9XG5cbiAgc29ydChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pOiBUW10ge1xuICAgIC8vIE1ha2Ugc3VyZSB0byBmaWxsIHNvcnRCeSBCRUZPUkUgY2hlY2tpbmcgaW4gdGhlIHJlcGxhY2VtZW50IG1hcFxuICAgIHNvcnRCeSA9IHNvcnRCeSB8fCAnaWQnO1xuICAgIC8vIFJlcGxhY2Ugc29ydEJ5LCB1c2luZyB0aGUgcmVwbGFjZW1lbnQgbWFwXG4gICAgc29ydEJ5ID0gdGhpcy5fc29ydEJ5UmVwbGFjZW1lbnRbc29ydEJ5XSB8fCBzb3J0Qnk7XG5cbiAgICAvLyBFeGVjdXRlIHRoZSBzb3J0XG4gICAgcmV0dXJuIEVudGl0eVV0aWxzLnNvcnQoZGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKTtcbiAgfVxuXG4gIGFzRmlsdGVyKHNvdXJjZTogUGFydGlhbDxGPik6IEYge1xuICAgIHJldHVybiBFbnRpdHlGaWx0ZXJVdGlscy5mcm9tT2JqZWN0KHNvdXJjZSwgdGhpcy5maWx0ZXJUeXBlKTtcbiAgfVxuXG4gIGFkZFNvcnRCeVJlcGxhY2VtZW50KHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykge1xuICAgIHRoaXMuX3NvcnRCeVJlcGxhY2VtZW50W3NvdXJjZV0gPSB0YXJnZXQ7XG4gIH1cblxuICBlcXVhbHMoZDE6IFQsIGQyOiBUKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2VxdWFsc0ZuKSByZXR1cm4gdGhpcy5fZXF1YWxzRm4oZDEsIGQyKTtcbiAgICByZXR1cm4gZDEgJiYgZDEuZXF1YWxzID8gZDEuZXF1YWxzKGQyKSA6IEVudGl0eVV0aWxzLmVxdWFscyhkMSwgZDIsICdpZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvdW50IGRhdGEgc3RvcmVkIGJ5IHRoZSBzZXJ2aWNlICh3aXRob3V0IGhpZGRlbiBkYXRhKS5cbiAgICpcbiAgICogQHBhcmFtIG9wdHNcbiAgICovXG4gIC8vIGdldCB2aXNpYmxlQ291bnQoKTogbnVtYmVyIHtcbiAgLy8gICByZXR1cm4gKHRoaXMuZGF0YVN1YmplY3QudmFsdWU/Lmxlbmd0aCB8fCAwKTtcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiBDb3VudCBkYXRhIHN0b3JlZCBieSB0aGUgc2VydmljZSAod2l0aG91dCBoaWRkZW4gZGF0YSkuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRzXG4gICAqIEBkZXByZWNhdGVkIFRPRE8gUGxlYXNlIHJlbmFtZSB0aGlzIGdldHRlciBpbnRvIHZpc2libGVDb3VudCAoYW5kIGNyZWF0ZSBjb3VudCA9IGhpZGRlbkNvdW50ICsgdmlzaWJsZUNvdW50KVxuICAgKi9cbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLmRhdGFTdWJqZWN0LnZhbHVlPy5sZW5ndGggfHwgMCk7XG4gIH1cblxuICBnZXQgaGlkZGVuQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5faGlkZGVuRGF0YT8ubGVuZ3RoIHx8IDA7XG4gIH1cblxuICBhc3luYyB3YWl0SWRsZShvcHRzPzogV2FpdEZvck9wdGlvbnMpIHtcbiAgICBhd2FpdCB0aGlzLndhaXRXaGlsZVNhdmluZyhvcHRzKTtcbiAgfVxuXG4gIG1hcmtBc0RpcnR5KCkge1xuICAgIGlmICghdGhpcy5kaXJ0eVN1YmplY3QudmFsdWUpIHtcbiAgICAgIHRoaXMuZGlydHlTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgbWFya0FzUHJpc3RpbmUoKSB7XG4gICAgaWYgKHRoaXMuZGlydHlTdWJqZWN0LnZhbHVlKSB7XG4gICAgICB0aGlzLmRpcnR5U3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCBmaWx0ZXIoZGF0YTogVFtdLCBfZmlsdGVyOiBGLCBoaWRkZW5EYXRhOiBUW10pOiBUW10ge1xuXG4gICAgLy8gaWYgZmlsdGVyIGlzIERhdGFGaWx0ZXIgaW5zdGFuY2UsIHVzZSBpdHMgdGVzdCBmdW5jdGlvblxuICAgIGNvbnN0IGZpbHRlckZuID0gdGhpcy5fZmlsdGVyRm5GYWN0b3J5ICYmIHRoaXMuX2ZpbHRlckZuRmFjdG9yeShfZmlsdGVyKTtcbiAgICBpZiAoZmlsdGVyRm4pIHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IFtdO1xuXG4gICAgICBkYXRhLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICBpZiAoZmlsdGVyRm4odmFsdWUpKVxuICAgICAgICAgIGZpbHRlcmVkRGF0YS5wdXNoKHZhbHVlKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGhpZGRlbkRhdGEucHVzaCh2YWx1ZSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGZpbHRlcmVkRGF0YTtcbiAgICB9XG5cbiAgICAvLyBkZWZhdWx0LCBubyBmaWx0ZXJcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25uZWN0KCk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTdWJqZWN0LnBpcGUoXG4gICAgICBtYXAoKGRhdGEpID0+IHtcbiAgICAgICAgZGF0YSA9IGRhdGEgfHwgW107XG4gICAgICAgIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XG4gICAgICAgIHJldHVybiB7ZGF0YSwgdG90YWx9O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHdhaXRXaGlsZVNhdmluZyhvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zYXZpbmcpICB7XG4gICAgICByZXR1cm4gZmlyc3RGYWxzZVByb21pc2UodGhpcy5zYXZpbmdTdWJqZWN0LCB7XG4gICAgICAgIHN0b3A6IG9wdHM/LnN0b3AgfHwgbWVyZ2UodGhpcy5zdG9wU3ViamVjdCwgdGhpcy5kYXRhU3ViamVjdCksIC8vIFN0b3AgaWYgZGVzdHJveWVkIG9yIG5ldyBkYXRhIFJlY2VpdmVkXG4gICAgICAgIHN0b3BFcnJvcjogZmFsc2UsIC8vIEF2b2lkIGVycm9yIHdoZW4gc3RvcHBlZFxuICAgICAgICAuLi5vcHRzXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0FzU2F2aW5nKCkge1xuICAgIGlmICghdGhpcy5zYXZpbmdTdWJqZWN0LnZhbHVlKSB7XG4gICAgICB0aGlzLnNhdmluZ1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0FzU2F2ZWQoKSB7XG4gICAgaWYgKHRoaXMuc2F2aW5nU3ViamVjdC52YWx1ZSkge1xuICAgICAgdGhpcy5zYXZpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG5cbn1cbiJdfQ==
@@ -21,10 +21,10 @@ export class ProgressBarService {
21
21
  this.onProgressChanged.emit(null);
22
22
  }
23
23
  }
24
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ProgressBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
25
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ProgressBarService, providedIn: 'root' });
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ProgressBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
25
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ProgressBarService, providedIn: 'root' });
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ProgressBarService, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ProgressBarService, decorators: [{
28
28
  type: Injectable,
29
29
  args: [{ providedIn: 'root' }]
30
30
  }] });
@@ -110,10 +110,10 @@ export class StartableObservableService {
110
110
  ngOnStop() {
111
111
  // Can be overwritten by subclasses
112
112
  }
113
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StartableObservableService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
114
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: StartableObservableService, ngImport: i0 });
113
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: StartableObservableService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
114
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.6", type: StartableObservableService, ngImport: i0 });
115
115
  }
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StartableObservableService, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: StartableObservableService, decorators: [{
117
117
  type: Directive
118
118
  }], ctorParameters: () => [{ type: undefined, decorators: [{
119
119
  type: Optional
@@ -74,7 +74,7 @@ export class StartableService {
74
74
  }
75
75
  async restart(opts) {
76
76
  if (this._startPromise)
77
- await this._startPromise; // Wait end of previous loading
77
+ await this._startPromise; // Wait end of previous start, if running
78
78
  if (this._started)
79
79
  await this.stop(); // Then stop if started
80
80
  return this.start(opts); // Then start again
@@ -102,12 +102,12 @@ export class StartableService {
102
102
  ngOnStop() {
103
103
  // Can be overwritten by subclasses
104
104
  }
105
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StartableService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
106
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: StartableService, ngImport: i0 });
105
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: StartableService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
106
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.6", type: StartableService, ngImport: i0 });
107
107
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StartableService, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: StartableService, decorators: [{
109
109
  type: Directive
110
110
  }], ctorParameters: () => [{ type: undefined, decorators: [{
111
111
  type: Optional
112
112
  }] }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRhYmxlLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9zdGFydGFibGUtc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBU3pDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFTO0lBQzFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQztXQUN6QyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssVUFBVSxDQUFDO1dBQ3RDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FDekM7QUFDTCxDQUFDO0FBR0QsTUFBTSxPQUFnQixnQkFBZ0I7SUFFM0IsWUFBWSxHQUFHLElBQUksT0FBTyxFQUFLLENBQUM7SUFDaEMsV0FBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFakMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNmLHFCQUFxQixHQUFHLElBQUksQ0FBQyxDQUFDLHNDQUFzQztJQUNwRSxLQUFLLEdBQU0sSUFBSSxDQUFDO0lBRWxCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsYUFBYSxHQUFlLElBQUksQ0FBQztJQUNqQyxrQkFBa0IsR0FBdUIsSUFBSSxDQUFDO0lBQzlDLGFBQWEsR0FBaUIsSUFBSSxDQUFDO0lBRTNDLFlBQ2MsbUJBQW1EO1FBRS9ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxtQkFBbUI7WUFDM0MsQ0FBQyxDQUFD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RSxDQUFDLENBQUMsdUJBQXVCO1FBQzdELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtJQUM5QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDL0MsQ0FBQztJQUVTLG9CQUFvQixDQUFDLEdBQWlCO1FBQzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFUyxzQkFBc0IsQ0FBQyxHQUFpQjtRQUNoRCxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFUyxRQUFRO1FBQ2hCLG1DQUFtQztJQUNyQyxDQUFDO3VHQTdHbUIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRHJDLFNBQVM7OzBCQWdCTCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN0YXJ0YWJsZVNlcnZpY2U8VCA9IGFueT4ge1xuICBzdGFydGVkOiBib29sZWFuO1xuICBzdGFydCgpOiBQcm9taXNlPFQ+O1xuICBzdG9wKCk6IFByb21pc2U8dm9pZD47XG4gIHJlYWR5KCk6IFByb21pc2U8VD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YXJ0YWJsZVNlcnZpY2UoZGF0YTogYW55KTogZGF0YSBpcyBJU3RhcnRhYmxlU2VydmljZSB7XG4gIHJldHVybiAodHlwZW9mIGRhdGE/Llsnc3RhcnQnXSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAmJiAodHlwZW9mIGRhdGE/Llsnc3RvcCddID09PSAnZnVuY3Rpb24nKVxuICAgICYmICh0eXBlb2YgZGF0YT8uWydyZWFkeSddID09PSAnZnVuY3Rpb24nKVxuICAgIDtcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RhcnRhYmxlU2VydmljZTxUID0gYW55LCBPID0gYW55PiBpbXBsZW1lbnRzIElTdGFydGFibGVTZXJ2aWNlPFQ+IHtcblxuICByZWFkb25seSBzdGFydFN1YmplY3QgPSBuZXcgU3ViamVjdDxUPigpO1xuICByZWFkb25seSBzdG9wU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJvdGVjdGVkIF9kZWJ1ZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX3N0YXJ0QnlSZWFkeUZ1bmN0aW9uID0gdHJ1ZTsgLy8gc2hvdWxkIHN0YXJ0IHdoZW4gY2FsbGluZyByZWFkeSgpID9cbiAgcHJvdGVjdGVkIF9kYXRhOiBUID0gbnVsbDtcblxuICBwcml2YXRlIF9zdGFydGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX3N0YXJ0UHJvbWlzZTogUHJvbWlzZTxUPiA9IG51bGw7XG4gIHByaXZhdGUgX3N0YXJ0UHJlcmVxdWlzaXRlOiAoKSA9PiBQcm9taXNlPGFueT4gPSBudWxsO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHByZXJlcXVpc2l0ZVNlcnZpY2U/OiB7IHJlYWR5OiAoKSA9PiBQcm9taXNlPGFueT4gfVxuICApIHtcbiAgICB0aGlzLl9zdGFydFByZXJlcXVpc2l0ZSA9IHByZXJlcXVpc2l0ZVNlcnZpY2VcbiAgICAgID8gKCkgPT4gcHJlcmVxdWlzaXRlU2VydmljZS5yZWFkeSgpXG4gICAgICA6ICgpID0+IFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgc3RhcnQob3B0cz86IE8pOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAodGhpcy5fc3RhcnRQcm9taXNlKSByZXR1cm4gdGhpcy5fc3RhcnRQcm9taXNlO1xuICAgIGlmICh0aGlzLl9zdGFydGVkKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2RhdGEpO1xuXG4gICAgdGhpcy5fc3RhcnRQcm9taXNlID0gdGhpcy5fc3RhcnRQcmVyZXF1aXNpdGUoKVxuICAgICAgLnRoZW4oKCkgPT4gdGhpcy5uZ09uU3RhcnQob3B0cykpXG4gICAgICAudGhlbihkYXRhID0+IHtcbiAgICAgICAgdGhpcy5fZGF0YSA9IGRhdGE7XG5cbiAgICAgICAgdGhpcy5fc3RhcnRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IHVuZGVmaW5lZDtcblxuICAgICAgICB0aGlzLnN0YXJ0U3ViamVjdC5uZXh0KGRhdGEpO1xuXG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc3RvcHBlZCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBhIHNlcnZpY2U6ICcgKyAoZXJyICYmIGVyci5tZXNzYWdlIHx8IGVyciksIGVycik7XG4gICAgICAgICAgdGhpcy5fc3RhcnRQcm9taXNlID0gbnVsbDtcbiAgICAgICAgICB0aGlzLl9zdGFydGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRQcm9taXNlO1xuICB9XG5cbiAgcmVhZHkoKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0ZWQpIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fZGF0YSk7XG4gICAgaWYgKHRoaXMuX3N0YXJ0UHJvbWlzZSkgcmV0dXJuIHRoaXMuX3N0YXJ0UHJvbWlzZTtcbiAgICBpZiAodGhpcy5fc3RhcnRCeVJlYWR5RnVuY3Rpb24pIHJldHVybiB0aGlzLnN0YXJ0KCk7XG5cbiAgICByZXR1cm4gdGhpcy5zdGFydFN1YmplY3RcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnN0b3BTdWJqZWN0KSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIHN0b3AoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgIGF3YWl0IHRoaXMubmdPblN0b3AoKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHN0b3AgYSBzZXJ2aWNlOiAnICsgKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpLCBlcnIpO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX2RhdGEgPSBudWxsO1xuICAgICAgdGhpcy5fc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5fc3RhcnRQcm9taXNlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zdG9wU3ViamVjdC5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVzdGFydChvcHRzPzogTyk6IFByb21pc2U8VD4ge1xuICAgIGlmICh0aGlzLl9zdGFydFByb21pc2UpIGF3YWl0IHRoaXMuX3N0YXJ0UHJvbWlzZTsgLy8gV2FpdCBlbmQgb2YgcHJldmlvdXMgbG9hZGluZ1xuICAgIGlmICh0aGlzLl9zdGFydGVkKSBhd2FpdCB0aGlzLnN0b3AoKTsgLy8gVGhlbiBzdG9wIGlmIHN0YXJ0ZWRcbiAgICByZXR1cm4gdGhpcy5zdGFydChvcHRzKTsgLy8gVGhlbiBzdGFydCBhZ2FpblxuICB9XG5cbiAgZ2V0IHN0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQ7XG4gIH1cblxuICBnZXQgc3RhcnRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fc3RhcnRQcm9taXNlO1xuICB9XG5cbiAgZ2V0IHN0b3BwZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9zdGFydGVkICYmICF0aGlzLl9zdGFydFByb21pc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVnaXN0ZXJTdWJzY3JpcHRpb24oc3ViOiBTdWJzY3JpcHRpb24pIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSB0aGlzLl9zdWJzY3JpcHRpb24gfHwgbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3ViKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bnJlZ2lzdGVyU3Vic2NyaXB0aW9uKHN1YjogU3Vic2NyaXB0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uPy5yZW1vdmUoc3ViKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1bnN1YnNjcmliZSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZ09uU3RvcCgpOiBQcm9taXNlPHZvaWQ+IHwgdm9pZCB7XG4gICAgLy8gQ2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHN1YmNsYXNzZXNcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBuZ09uU3RhcnQob3B0cz86IE8pOiBQcm9taXNlPFQ+O1xufVxuIl19
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnRhYmxlLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9zdGFydGFibGUtc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBU3pDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFTO0lBQzFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQztXQUN6QyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssVUFBVSxDQUFDO1dBQ3RDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FDekM7QUFDTCxDQUFDO0FBR0QsTUFBTSxPQUFnQixnQkFBZ0I7SUFFM0IsWUFBWSxHQUFHLElBQUksT0FBTyxFQUFLLENBQUM7SUFDaEMsV0FBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFakMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNmLHFCQUFxQixHQUFHLElBQUksQ0FBQyxDQUFDLHNDQUFzQztJQUNwRSxLQUFLLEdBQU0sSUFBSSxDQUFDO0lBRWxCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsYUFBYSxHQUFlLElBQUksQ0FBQztJQUNqQyxrQkFBa0IsR0FBdUIsSUFBSSxDQUFDO0lBQzlDLGFBQWEsR0FBaUIsSUFBSSxDQUFDO0lBRTNDLFlBQ2MsbUJBQW1EO1FBRS9ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxtQkFBbUI7WUFDM0MsQ0FBQyxDQUFD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RSxDQUFDLENBQUMsdUJBQXVCO1FBQzdELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtJQUM5QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDL0MsQ0FBQztJQUVTLG9CQUFvQixDQUFDLEdBQWlCO1FBQzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFUyxzQkFBc0IsQ0FBQyxHQUFpQjtRQUNoRCxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFUyxRQUFRO1FBQ2hCLG1DQUFtQztJQUNyQyxDQUFDO3VHQTdHbUIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRHJDLFNBQVM7OzBCQWdCTCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1N1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTdGFydGFibGVTZXJ2aWNlPFQgPSBhbnk+IHtcbiAgc3RhcnRlZDogYm9vbGVhbjtcbiAgc3RhcnQoKTogUHJvbWlzZTxUPjtcbiAgc3RvcCgpOiBQcm9taXNlPHZvaWQ+O1xuICByZWFkeSgpOiBQcm9taXNlPFQ+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGFydGFibGVTZXJ2aWNlKGRhdGE6IGFueSk6IGRhdGEgaXMgSVN0YXJ0YWJsZVNlcnZpY2Uge1xuICByZXR1cm4gKHR5cGVvZiBkYXRhPy5bJ3N0YXJ0J10gPT09ICdmdW5jdGlvbicpXG4gICAgJiYgKHR5cGVvZiBkYXRhPy5bJ3N0b3AnXSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAmJiAodHlwZW9mIGRhdGE/LlsncmVhZHknXSA9PT0gJ2Z1bmN0aW9uJylcbiAgICA7XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0YXJ0YWJsZVNlcnZpY2U8VCA9IGFueSwgTyA9IGFueT4gaW1wbGVtZW50cyBJU3RhcnRhYmxlU2VydmljZTxUPiB7XG5cbiAgcmVhZG9ubHkgc3RhcnRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8VD4oKTtcbiAgcmVhZG9ubHkgc3RvcFN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByb3RlY3RlZCBfZGVidWcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9zdGFydEJ5UmVhZHlGdW5jdGlvbiA9IHRydWU7IC8vIHNob3VsZCBzdGFydCB3aGVuIGNhbGxpbmcgcmVhZHkoKSA/XG4gIHByb3RlY3RlZCBfZGF0YTogVCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfc3RhcnRlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9zdGFydFByb21pc2U6IFByb21pc2U8VD4gPSBudWxsO1xuICBwcml2YXRlIF9zdGFydFByZXJlcXVpc2l0ZTogKCkgPT4gUHJvbWlzZTxhbnk+ID0gbnVsbDtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBwcmVyZXF1aXNpdGVTZXJ2aWNlPzogeyByZWFkeTogKCkgPT4gUHJvbWlzZTxhbnk+IH1cbiAgKSB7XG4gICAgdGhpcy5fc3RhcnRQcmVyZXF1aXNpdGUgPSBwcmVyZXF1aXNpdGVTZXJ2aWNlXG4gICAgICA/ICgpID0+IHByZXJlcXVpc2l0ZVNlcnZpY2UucmVhZHkoKVxuICAgICAgOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHN0YXJ0KG9wdHM/OiBPKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0UHJvbWlzZSkgcmV0dXJuIHRoaXMuX3N0YXJ0UHJvbWlzZTtcbiAgICBpZiAodGhpcy5fc3RhcnRlZCkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9kYXRhKTtcblxuICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IHRoaXMuX3N0YXJ0UHJlcmVxdWlzaXRlKClcbiAgICAgIC50aGVuKCgpID0+IHRoaXMubmdPblN0YXJ0KG9wdHMpKVxuICAgICAgLnRoZW4oZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuXG4gICAgICAgIHRoaXMuX3N0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9zdGFydFByb21pc2UgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGhpcy5zdGFydFN1YmplY3QubmV4dChkYXRhKTtcblxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnN0b3BwZWQpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgYSBzZXJ2aWNlOiAnICsgKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpLCBlcnIpO1xuICAgICAgICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IG51bGw7XG4gICAgICAgICAgdGhpcy5fc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0UHJvbWlzZTtcbiAgfVxuXG4gIHJlYWR5KCk6IFByb21pc2U8VD4ge1xuICAgIGlmICh0aGlzLl9zdGFydGVkKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2RhdGEpO1xuICAgIGlmICh0aGlzLl9zdGFydFByb21pc2UpIHJldHVybiB0aGlzLl9zdGFydFByb21pc2U7XG4gICAgaWYgKHRoaXMuX3N0YXJ0QnlSZWFkeUZ1bmN0aW9uKSByZXR1cm4gdGhpcy5zdGFydCgpO1xuXG4gICAgcmV0dXJuIHRoaXMuc3RhcnRTdWJqZWN0XG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5zdG9wU3ViamVjdCkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBzdG9wKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICBhd2FpdCB0aGlzLm5nT25TdG9wKCk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdG9wIGEgc2VydmljZTogJyArIChlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyKSwgZXJyKTtcbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICB0aGlzLl9kYXRhID0gbnVsbDtcbiAgICAgIHRoaXMuX3N0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RvcFN1YmplY3QubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlc3RhcnQob3B0cz86IE8pOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAodGhpcy5fc3RhcnRQcm9taXNlKSBhd2FpdCB0aGlzLl9zdGFydFByb21pc2U7IC8vIFdhaXQgZW5kIG9mIHByZXZpb3VzIHN0YXJ0LCBpZiBydW5uaW5nXG4gICAgaWYgKHRoaXMuX3N0YXJ0ZWQpIGF3YWl0IHRoaXMuc3RvcCgpOyAvLyBUaGVuIHN0b3AgaWYgc3RhcnRlZFxuICAgIHJldHVybiB0aGlzLnN0YXJ0KG9wdHMpOyAvLyBUaGVuIHN0YXJ0IGFnYWluXG4gIH1cblxuICBnZXQgc3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRlZDtcbiAgfVxuXG4gIGdldCBzdGFydGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9zdGFydFByb21pc2U7XG4gIH1cblxuICBnZXQgc3RvcHBlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuX3N0YXJ0ZWQgJiYgIXRoaXMuX3N0YXJ0UHJvbWlzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWdpc3RlclN1YnNjcmlwdGlvbihzdWI6IFN1YnNjcmlwdGlvbikge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuX3N1YnNjcmlwdGlvbiB8fCBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChzdWIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVucmVnaXN0ZXJTdWJzY3JpcHRpb24oc3ViOiBTdWJzY3JpcHRpb24pOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnJlbW92ZShzdWIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVuc3Vic2NyaWJlKCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5nT25TdG9wKCk6IFByb21pc2U8dm9pZD4gfCB2b2lkIHtcbiAgICAvLyBDYW4gYmUgb3ZlcndyaXR0ZW4gYnkgc3ViY2xhc3Nlc1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IG5nT25TdGFydChvcHRzPzogTyk6IFByb21pc2U8VD47XG59XG4iXX0=
@@ -94,10 +94,10 @@ export class TranslateContextService {
94
94
  }
95
95
  return translations[keys[keys.length - 1]]; // Return the last keys translation
96
96
  }
97
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TranslateContextService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
98
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TranslateContextService, providedIn: 'root' });
97
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TranslateContextService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
98
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TranslateContextService, providedIn: 'root' });
99
99
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TranslateContextService, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TranslateContextService, decorators: [{
101
101
  type: Injectable,
102
102
  args: [{ providedIn: 'root' }]
103
103
  }], ctorParameters: () => [{ type: i1.TranslateService }] });
@@ -39,24 +39,24 @@ export class CustomReuseStrategy extends IonicRouteStrategy {
39
39
  }
40
40
  return reuse;
41
41
  }
42
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: CustomReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
43
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: CustomReuseStrategy });
42
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: CustomReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
43
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: CustomReuseStrategy });
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: CustomReuseStrategy, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: CustomReuseStrategy, decorators: [{
46
46
  type: Injectable
47
47
  }] });
48
48
  export class SharedRoutingModule {
49
49
  constructor() {
50
50
  console.debug('[shared-routing] Creating module...');
51
51
  }
52
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SharedRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
53
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: SharedRoutingModule, imports: [RouterModule] });
54
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SharedRoutingModule, providers: [
52
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SharedRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
53
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: SharedRoutingModule, imports: [RouterModule] });
54
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SharedRoutingModule, providers: [
55
55
  { provide: RouteReuseStrategy, useClass: CustomReuseStrategy },
56
56
  { provide: ComponentDirtyGuard, useClass: ComponentDirtyGuard }
57
57
  ], imports: [RouterModule] });
58
58
  }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SharedRoutingModule, decorators: [{
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SharedRoutingModule, decorators: [{
60
60
  type: NgModule,
61
61
  args: [{
62
62
  imports: [
@@ -1,4 +1,4 @@
1
- import { NgModule } from '@angular/core';
1
+ import { APP_INITIALIZER, NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { SharedMaterialModule } from './material/material.module';
4
4
  import { ReactiveFormsModule } from '@angular/forms';
@@ -6,6 +6,7 @@ import { TranslateModule, TranslateService } from '@ngx-translate/core';
6
6
  import { IonicModule } from '@ionic/angular';
7
7
  import { DateFormatService } from './pipes/date-format.pipe';
8
8
  import { DateFromNowPipe } from './pipes/date-from-now.pipe';
9
+ import { MAT_PAGINATOR_DEFAULT_OPTIONS, MatPaginatorIntl } from '@angular/material/paginator';
9
10
  import { MatPaginatorI18n } from './material/paginator/material.paginator-i18n';
10
11
  import { ColorPickerModule } from 'ngx-color-picker';
11
12
  import { AppFormField } from './form/field.component';
@@ -14,6 +15,8 @@ import { FullscreenOverlayContainer, Overlay, OverlayContainer } from '@angular/
14
15
  import { SharedHotkeysModule } from './hotkeys/shared-hotkeys.module';
15
16
  import { FileService } from './file/file.service';
16
17
  import { DragDropModule } from '@angular/cdk/drag-drop';
18
+ import { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MAT_AUTOCOMPLETE_SCROLL_STRATEGY } from '@angular/material/autocomplete';
19
+ import { MAT_SELECT_SCROLL_STRATEGY } from '@angular/material/select';
17
20
  import { SharedDirectivesModule } from './directives/directives.module';
18
21
  import { SharedPipesModule } from './pipes/pipes.module';
19
22
  import { AppLoadingSpinner } from './form/loading-spinner';
@@ -23,7 +26,6 @@ import { HighlightPipe } from './pipes/highlight.pipe';
23
26
  import { NumberFormatPipe } from './pipes/number-format.pipe';
24
27
  import { MarkdownModule } from 'ngx-markdown';
25
28
  import { AppHelpModal } from './help/help.modal';
26
- import { ENVIRONMENT } from '../../environments/environment.class';
27
29
  import { TranslateContextService } from './services/translate-context.service';
28
30
  import { MatStepperIntl } from '@angular/material/stepper';
29
31
  import { MatStepperI18n } from './material/stepper/material.stepper-i18n';
@@ -35,22 +37,36 @@ import { StorageService } from './storage/storage.service';
35
37
  import { SharedToolbarModule } from './toolbar/toolbar.module';
36
38
  import { NgxJdenticonModule } from 'ngx-jdenticon';
37
39
  import { SharedNamedFilterModule } from './named-filter/named-filter.module';
38
- import { MAT_PAGINATOR_DEFAULT_OPTIONS, MatPaginatorIntl } from '@angular/material/paginator';
39
- import { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MAT_AUTOCOMPLETE_SCROLL_STRATEGY } from '@angular/material/autocomplete';
40
- import { MAT_SELECT_SCROLL_STRATEGY } from '@angular/material/select';
40
+ import { EnvironmentLoader } from '../../environments/environment.loader';
41
+ import { ENVIRONMENT } from '../../environments/environment.class';
41
42
  import { RxStateModule } from './rx-state.module';
42
43
  import * as i0 from "@angular/core";
43
44
  export function scrollFactory(overlay) {
44
45
  return () => overlay.scrollStrategies.close();
45
46
  }
46
47
  export class SharedModule {
47
- static forRoot(environment) {
48
+ static forRoot(config) {
48
49
  console.debug('[shared] Creating module (root)');
49
50
  return {
50
51
  ngModule: SharedModule,
51
52
  providers: [
52
- // Define environment token if provided. Can be defined elsewhere (see Quadrige)
53
- ...(environment ? [{ provide: ENVIRONMENT, useValue: environment }] : []),
53
+ // Load environment (if a loader has been defined)
54
+ ...(config?.loader ? [
55
+ config.loader,
56
+ {
57
+ provide: APP_INITIALIZER,
58
+ deps: [EnvironmentLoader],
59
+ useFactory: (loader) => () => loader.load(),
60
+ multi: true,
61
+ },
62
+ {
63
+ provide: ENVIRONMENT,
64
+ deps: [EnvironmentLoader, APP_INITIALIZER],
65
+ useFactory: (loader) => {
66
+ return loader.get();
67
+ },
68
+ },
69
+ ] : []),
54
70
  // { provide: StorageService, useClass: StorageService, deps: [ENVIRONMENT]},
55
71
  { provide: APP_STORAGE, useExisting: StorageService },
56
72
  StorageService,
@@ -82,8 +98,8 @@ export class SharedModule {
82
98
  ]
83
99
  };
84
100
  }
85
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
86
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: SharedModule, declarations: [
101
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
102
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: SharedModule, declarations: [
87
103
  // Components
88
104
  AppFormField,
89
105
  AppLoadingSpinner,
@@ -127,7 +143,7 @@ export class SharedModule {
127
143
  UploadFileComponent,
128
144
  UploadFilePopover,
129
145
  SharedTestsPage] });
130
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SharedModule, imports: [CommonModule,
146
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SharedModule, imports: [CommonModule,
131
147
  IonicModule,
132
148
  ReactiveFormsModule,
133
149
  TranslateModule,
@@ -158,7 +174,7 @@ export class SharedModule {
158
174
  SharedToolbarModule,
159
175
  SharedNamedFilterModule] });
160
176
  }
161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SharedModule, decorators: [{
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SharedModule, decorators: [{
162
178
  type: NgModule,
163
179
  args: [{
164
180
  imports: [
@@ -214,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
214
230
  ]
215
231
  }]
216
232
  }] });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBc0IsMEJBQTBCLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEgsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMs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QWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFFYixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQix1QkFBdUI7d0JBRXZCLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGVBQWU7cUJBQ2hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7U2hhcmVkTWF0ZXJpYWxNb2R1bGV9IGZyb20gJy4vbWF0ZXJpYWwvbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtJb25pY01vZHVsZX0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtEYXRlRm9ybWF0U2VydmljZX0gZnJvbSAnLi9waXBlcy9kYXRlLWZvcm1hdC5waXBlJztcbmltcG9ydCB7RGF0ZUZyb21Ob3dQaXBlfSBmcm9tICcuL3BpcGVzL2RhdGUtZnJvbS1ub3cucGlwZSc7XG5pbXBvcnQge01hdFBhZ2luYXRvckkxOG59IGZyb20gJy4vbWF0ZXJpYWwvcGFnaW5hdG9yL21hdGVyaWFsLnBhZ2luYXRvci1pMThuJztcbmltcG9ydCB7Q29sb3JQaWNrZXJNb2R1bGV9IGZyb20gJ25neC1jb2xvci1waWNrZXInO1xuaW1wb3J0IHtBcHBGb3JtRmllbGR9IGZyb20gJy4vZm9ybS9maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtBdWRpb1Byb3ZpZGVyfSBmcm9tICcuL2F1ZGlvL2F1ZGlvJztcbmltcG9ydCB7Q2xvc2VTY3JvbGxTdHJhdGVneSwgRnVsbHNjcmVlbk92ZXJsYXlDb250YWluZXIsIE92ZXJsYXksIE92ZXJsYXlDb250YWluZXJ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7U2hhcmVkSG90a2V5c01vZHVsZX0gZnJvbSAnLi9ob3RrZXlzL3NoYXJlZC1ob3RrZXlzLm1vZHVsZSc7XG5pbXBvcnQge0ZpbGVTZXJ2aWNlfSBmcm9tICcuL2ZpbGUvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7RHJhZ0Ryb3BNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtTaGFyZWREaXJlY3RpdmVzTW9kdWxlfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGlyZWN0aXZlcy5tb2R1bGUnO1xuaW1wb3J0IHtTaGFyZWRQaXBlc01vZHVsZX0gZnJvbSAnLi9waXBlcy9waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHtBcHBMb2FkaW5nU3Bpbm5lcn0gZnJvbSAnLi9mb3JtL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQge0RhdGVEaWZmRHVyYXRpb25QaXBlfSBmcm9tICcuL3BpcGVzL2RhdGUtZGlmZi1kdXJhdGlvbi5waXBlJztcbmltcG9ydCB7TGF0aXR1ZGVGb3JtYXRQaXBlLCBMYXRMb25nRm9ybWF0UGlwZSwgTG9uZ2l0dWRlRm9ybWF0UGlwZX0gZnJvbSAnLi9waXBlcy9sYXRsb25nLWZvcm1hdC5waXBlJztcbmltcG9ydCB7SGlnaGxpZ2h0UGlwZX0gZnJvbSAnLi9waXBlcy9oaWdobGlnaHQucGlwZSc7XG5pbXBvcnQge051bWJlckZvcm1hdFBpcGV9IGZyb20gJy4vcGlwZXMvbnVtYmVyLWZvcm1hdC5waXBlJztcbmltcG9ydCB7TWFya2Rvd25Nb2R1bGV9IGZyb20gJ25neC1tYXJrZG93bic7XG5pbXBvcnQge0FwcEhlbHBNb2RhbH0gZnJvbSAnLi9oZWxwL2hlbHAubW9kYWwnO1xuaW1wb3J0IHtFbnZpcm9ubWVudCwgRU5WSVJPTk1FTlR9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5pbXBvcnQge1RyYW5zbGF0ZUNvbnRleHRTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzL3RyYW5zbGF0ZS1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHtNYXRTdGVwcGVySW50bH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XG5pbXBvcnQge01hdFN0ZXBwZXJJMThufSBmcm9tICcuL21hdGVyaWFsL3N0ZXBwZXIvbWF0ZXJpYWwuc3RlcHBlci1pMThuJztcbmltcG9ydCB7VXBsb2FkRmlsZUNvbXBvbmVudH0gZnJvbSAnLi91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtVcGxvYWRGaWxlUG9wb3Zlcn0gZnJvbSAnLi91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS1wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1NoYXJlZFRlc3RzUGFnZX0gZnJvbSAnLi90ZXN0aW5nL3Rlc3RzLnBhZ2UnO1xuaW1wb3J0IHtBUFBfU1RPUkFHRX0gZnJvbSAnLi9zdG9yYWdlL3N0b3JhZ2UudXRpbHMnO1xuaW1wb3J0IHtTdG9yYWdlU2VydmljZX0gZnJvbSAnLi9zdG9yYWdlL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQge1NoYXJlZFRvb2xiYXJNb2R1bGV9IGZyb20gJy4vdG9vbGJhci90b29sYmFyLm1vZHVsZSc7XG5pbXBvcnQge05neEpkZW50aWNvbk1vZHVsZX0gZnJvbSAnbmd4LWpkZW50aWNvbic7XG5pbXBvcnQge1NoYXJlZE5hbWVkRmlsdGVyTW9kdWxlfSBmcm9tICcuL25hbWVkLWZpbHRlci9uYW1lZC1maWx0ZXIubW9kdWxlJztcbmltcG9ydCB7TUFUX1BBR0lOQVRPUl9ERUZBVUxUX09QVElPTlMsIE1hdFBhZ2luYXRvckludGx9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQge01BVF9BVVRPQ09NUExFVEVfREVGQVVMVF9PUFRJT05TLCBNQVRfQVVUT0NPTVBMRVRFX1NDUk9MTF9TVFJBVEVHWX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7TUFUX1NFTEVDVF9TQ1JPTExfU1RSQVRFR1l9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQge1J4U3RhdGVNb2R1bGV9IGZyb20gJy4vcngtc3RhdGUubW9kdWxlJztcblxuXG5leHBvcnQgZnVuY3Rpb24gc2Nyb2xsRmFjdG9yeShvdmVybGF5OiBPdmVybGF5KTogKCkgPT4gQ2xvc2VTY3JvbGxTdHJhdGVneSB7XG4gIHJldHVybiAoKSA9PiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25pY01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBDb2xvclBpY2tlck1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBNYXJrZG93bk1vZHVsZSxcbiAgICBSeFN0YXRlTW9kdWxlLFxuXG4gICAgLy8gU3ViIG1vZHVsZXNcbiAgICBTaGFyZWRNYXRlcmlhbE1vZHVsZSxcbiAgICBTaGFyZWREaXJlY3RpdmVzTW9kdWxlLFxuICAgIFNoYXJlZFBpcGVzTW9kdWxlLFxuICAgIFNoYXJlZEhvdGtleXNNb2R1bGUsXG4gICAgU2hhcmVkVG9vbGJhck1vZHVsZSxcbiAgICBTaGFyZWROYW1lZEZpbHRlck1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICAvLyBDb21wb25lbnRzXG4gICAgQXBwRm9ybUZpZWxkLFxuICAgIEFwcExvYWRpbmdTcGlubmVyLFxuICAgIEFwcEhlbHBNb2RhbCxcbiAgICBVcGxvYWRGaWxlQ29tcG9uZW50LFxuICAgIFVwbG9hZEZpbGVQb3BvdmVyLFxuICAgIFNoYXJlZFRlc3RzUGFnZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25pY01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBDb2xvclBpY2tlck1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBNYXJrZG93bk1vZHVsZSxcbiAgICBOZ3hKZGVudGljb25Nb2R1bGUsXG4gICAgUnhTdGF0ZU1vZHVsZSxcblxuICAgIC8vIFN1Yi1tb2R1bGVzXG4gICAgU2hhcmVkTWF0ZXJpYWxNb2R1bGUsXG4gICAgU2hhcmVkRGlyZWN0aXZlc01vZHVsZSxcbiAgICBTaGFyZWRQaXBlc01vZHVsZSxcbiAgICBTaGFyZWRIb3RrZXlzTW9kdWxlLFxuICAgIFNoYXJlZFRvb2xiYXJNb2R1bGUsXG4gICAgU2hhcmVkTmFtZWRGaWx0ZXJNb2R1bGUsXG5cbiAgICAvLyBDb21wb25lbnRzXG4gICAgQXBwRm9ybUZpZWxkLFxuICAgIEFwcExvYWRpbmdTcGlubmVyLFxuICAgIEFwcEhlbHBNb2RhbCxcbiAgICBVcGxvYWRGaWxlQ29tcG9uZW50LFxuICAgIFVwbG9hZEZpbGVQb3BvdmVyLFxuICAgIFNoYXJlZFRlc3RzUGFnZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZE1vZHVsZSB7XG5cbiAgc3RhdGljIGZvclJvb3QoZW52aXJvbm1lbnQ/OiBFbnZpcm9ubWVudCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8U2hhcmVkTW9kdWxlPiB7XG4gICAgY29uc29sZS5kZWJ1ZygnW3NoYXJlZF0gQ3JlYXRpbmcgbW9kdWxlIChyb290KScpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBTaGFyZWRNb2R1bGUsXG5cbiAgICAgIHByb3ZpZGVyczogW1xuXG4gICAgICAgIC8vIERlZmluZSBlbnZpcm9ubWVudCB0b2tlbiBpZiBwcm92aWRlZC4gQ2FuIGJlIGRlZmluZWQgZWxzZXdoZXJlIChzZWUgUXVhZHJpZ2UpXG4gICAgICAgIC4uLihlbnZpcm9ubWVudCA/IFt7cHJvdmlkZTogRU5WSVJPTk1FTlQsIHVzZVZhbHVlOiBlbnZpcm9ubWVudH1dIDogW10pLFxuICAgICAgICAvLyB7IHByb3ZpZGU6IFN0b3JhZ2VTZXJ2aWNlLCB1c2VDbGFzczogU3RvcmFnZVNlcnZpY2UsIGRlcHM6IFtFTlZJUk9OTUVOVF19LFxuICAgICAgICB7cHJvdmlkZTogQVBQX1NUT1JBR0UsIHVzZUV4aXN0aW5nOiBTdG9yYWdlU2VydmljZX0sXG5cbiAgICAgICAgU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgIEF1ZGlvUHJvdmlkZXIsXG4gICAgICAgIEZpbGVTZXJ2aWNlLFxuICAgICAgICBUcmFuc2xhdGVDb250ZXh0U2VydmljZSxcbiAgICAgICAgRGF0ZUZvcm1hdFNlcnZpY2UsXG5cbiAgICAgICAgLy8gRXhwb3J0IFBpcGVzIGFzIHByb3ZpZGVyc1xuICAgICAgICBEYXRlRnJvbU5vd1BpcGUsXG4gICAgICAgIERhdGVEaWZmRHVyYXRpb25QaXBlLFxuICAgICAgICBMYXRMb25nRm9ybWF0UGlwZSxcbiAgICAgICAgTGF0aXR1ZGVGb3JtYXRQaXBlLFxuICAgICAgICBMb25naXR1ZGVGb3JtYXRQaXBlLFxuICAgICAgICBIaWdobGlnaHRQaXBlLFxuICAgICAgICBOdW1iZXJGb3JtYXRQaXBlLFxuXG4gICAgICAgIHtwcm92aWRlOiBPdmVybGF5Q29udGFpbmVyLCB1c2VDbGFzczogRnVsbHNjcmVlbk92ZXJsYXlDb250YWluZXJ9LFxuICAgICAgICB7cHJvdmlkZTogTUFUX1BBR0lOQVRPUl9ERUZBVUxUX09QVElPTlMsIHVzZVZhbHVlOiB7IGZvcm1GaWVsZEFwcGVhcmFuY2U6ICdmaWxsJyB9fSxcbiAgICAgICAge3Byb3ZpZGU6IE1hdFBhZ2luYXRvckludGwsIHVzZUNsYXNzOiBNYXRQYWdpbmF0b3JJMThuLCBkZXBzOiBbVHJhbnNsYXRlU2VydmljZV19LFxuICAgICAgICB7cHJvdmlkZTogTWF0U3RlcHBlckludGwsIHVzZUNsYXNzOiBNYXRTdGVwcGVySTE4biwgZGVwczogW1RyYW5zbGF0ZVNlcnZpY2VdfSxcblxuICAgICAgICAvLyBGSVhNRTogdHJ5IHRvIGZvcmNlIGEgY3VzdG9tIG92ZXJsYXkgZm9yIGF1dG9jb21wbGV0ZSwgYmVjYXVzZSBvZiB0aGVyZSBpcyBhIGJ1ZyB3aGVuIHVzaW5nIGluc2lkZSBhbiBpb25pYyBtb2RhbFxuICAgICAgICAvL3sgcHJvdmlkZTogT3ZlcmxheSwgdXNlQ2xhc3M6IE92ZXJsYXl9LFxuICAgICAgICB7cHJvdmlkZTogTUFUX0FVVE9DT01QTEVURV9TQ1JPTExfU1RSQVRFR1ksIHVzZUZhY3Rvcnk6IHNjcm9sbEZhY3RvcnksIGRlcHM6IFtPdmVybGF5XX0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBNQVRfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUywgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgIGF1dG9BY3RpdmVGaXJzdE9wdGlvbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge3Byb3ZpZGU6IE1BVF9TRUxFQ1RfU0NST0xMX1NUUkFURUdZLCB1c2VGYWN0b3J5OiBzY3JvbGxGYWN0b3J5LCBkZXBzOiBbT3ZlcmxheV19XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBdUIsUUFBUSxFQUFXLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsNkJBQTZCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQXNCLDBCQUEwQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNo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O1lBQ25CLG1CQUFtQjtZQUNuQix1QkFBdUI7OzJGQVdkLFlBQVk7a0JBeER4QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGFBQWE7d0JBRWIsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3FCQUN4QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osYUFBYTt3QkFDYixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUViLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFFdkIsYUFBYTt3QkFDYixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FQUF9JTklUSUFMSVpFUiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtTaGFyZWRNYXRlcmlhbE1vZHVsZX0gZnJvbSAnLi9tYXRlcmlhbC9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0lvbmljTW9kdWxlfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0RhdGVGb3JtYXRTZXJ2aWNlfSBmcm9tICcuL3BpcGVzL2RhdGUtZm9ybWF0LnBpcGUnO1xuaW1wb3J0IHtEYXRlRnJvbU5vd1BpcGV9IGZyb20gJy4vcGlwZXMvZGF0ZS1mcm9tLW5vdy5waXBlJztcbmltcG9ydCB7TUFUX1BBR0lOQVRPUl9ERUZBVUxUX09QVElPTlMsIE1hdFBhZ2luYXRvckludGx9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQge01hdFBhZ2luYXRvckkxOG59IGZyb20gJy4vbWF0ZXJpYWwvcGFnaW5hdG9yL21hdGVyaWFsLnBhZ2luYXRvci1pMThuJztcbmltcG9ydCB7Q29sb3JQaWNrZXJNb2R1bGV9IGZyb20gJ25neC1jb2xvci1waWNrZXInO1xuaW1wb3J0IHtBcHBGb3JtRmllbGR9IGZyb20gJy4vZm9ybS9maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtBdWRpb1Byb3ZpZGVyfSBmcm9tICcuL2F1ZGlvL2F1ZGlvJztcbmltcG9ydCB7Q2xvc2VTY3JvbGxTdHJhdGVneSwgRnVsbHNjcmVlbk92ZXJsYXlDb250YWluZXIsIE92ZXJsYXksIE92ZXJsYXlDb250YWluZXJ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7U2hhcmVkSG90a2V5c01vZHVsZX0gZnJvbSAnLi9ob3RrZXlzL3NoYXJlZC1ob3RrZXlzLm1vZHVsZSc7XG5pbXBvcnQge0ZpbGVTZXJ2aWNlfSBmcm9tICcuL2ZpbGUvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7RHJhZ0Ryb3BNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtNQVRfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUywgTUFUX0FVVE9DT01QTEVURV9TQ1JPTExfU1RSQVRFR1l9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQge01BVF9TRUxFQ1RfU0NST0xMX1NUUkFURUdZfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHtTaGFyZWREaXJlY3RpdmVzTW9kdWxlfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGlyZWN0aXZlcy5tb2R1bGUnO1xuaW1wb3J0IHtTaGFyZWRQaXBlc01vZHVsZX0gZnJvbSAnLi9waXBlcy9waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHtBcHBMb2FkaW5nU3Bpbm5lcn0gZnJvbSAnLi9mb3JtL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQge0RhdGVEaWZmRHVyYXRpb25QaXBlfSBmcm9tICcuL3BpcGVzL2RhdGUtZGlmZi1kdXJhdGlvbi5waXBlJztcbmltcG9ydCB7TGF0aXR1ZGVGb3JtYXRQaXBlLCBMYXRMb25nRm9ybWF0UGlwZSwgTG9uZ2l0dWRlRm9ybWF0UGlwZX0gZnJvbSAnLi9waXBlcy9sYXRsb25nLWZvcm1hdC5waXBlJztcbmltcG9ydCB7SGlnaGxpZ2h0UGlwZX0gZnJvbSAnLi9waXBlcy9oaWdobGlnaHQucGlwZSc7XG5pbXBvcnQge051bWJlckZvcm1hdFBpcGV9IGZyb20gJy4vcGlwZXMvbnVtYmVyLWZvcm1hdC5waXBlJztcbmltcG9ydCB7TWFya2Rvd25Nb2R1bGV9IGZyb20gJ25neC1tYXJrZG93bic7XG5pbXBvcnQge0FwcEhlbHBNb2RhbH0gZnJvbSAnLi9oZWxwL2hlbHAubW9kYWwnO1xuaW1wb3J0IHtUcmFuc2xhdGVDb250ZXh0U2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlcy90cmFuc2xhdGUtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7TWF0U3RlcHBlckludGx9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xuaW1wb3J0IHtNYXRTdGVwcGVySTE4bn0gZnJvbSAnLi9tYXRlcmlhbC9zdGVwcGVyL21hdGVyaWFsLnN0ZXBwZXItaTE4bic7XG5pbXBvcnQge1VwbG9hZEZpbGVDb21wb25lbnR9IGZyb20gJy4vdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUuY29tcG9uZW50JztcbmltcG9ydCB7VXBsb2FkRmlsZVBvcG92ZXJ9IGZyb20gJy4vdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUtcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHtTaGFyZWRUZXN0c1BhZ2V9IGZyb20gJy4vdGVzdGluZy90ZXN0cy5wYWdlJztcbmltcG9ydCB7QVBQX1NUT1JBR0V9IGZyb20gJy4vc3RvcmFnZS9zdG9yYWdlLnV0aWxzJztcbmltcG9ydCB7U3RvcmFnZVNlcnZpY2V9IGZyb20gJy4vc3RvcmFnZS9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHtTaGFyZWRUb29sYmFyTW9kdWxlfSBmcm9tICcuL3Rvb2xiYXIvdG9vbGJhci5tb2R1bGUnO1xuaW1wb3J0IHtOZ3hKZGVudGljb25Nb2R1bGV9IGZyb20gJ25neC1qZGVudGljb24nO1xuaW1wb3J0IHtTaGFyZWROYW1lZEZpbHRlck1vZHVsZX0gZnJvbSAnLi9uYW1lZC1maWx0ZXIvbmFtZWQtZmlsdGVyLm1vZHVsZSc7XG5pbXBvcnQge0Vudmlyb25tZW50TG9hZGVyfSBmcm9tICcuLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQubG9hZGVyJztcbmltcG9ydCB7RU5WSVJPTk1FTlR9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5pbXBvcnQge1J4U3RhdGVNb2R1bGV9IGZyb20gJy4vcngtc3RhdGUubW9kdWxlJztcblxuXG5leHBvcnQgZnVuY3Rpb24gc2Nyb2xsRmFjdG9yeShvdmVybGF5OiBPdmVybGF5KTogKCkgPT4gQ2xvc2VTY3JvbGxTdHJhdGVneSB7XG4gIHJldHVybiAoKSA9PiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRNb2R1bGVDb25maWcge1xuICBsb2FkZXI/OiBQcm92aWRlcjtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25pY01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBDb2xvclBpY2tlck1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBNYXJrZG93bk1vZHVsZSxcbiAgICBSeFN0YXRlTW9kdWxlLFxuXG4gICAgLy8gU3ViIG1vZHVsZXNcbiAgICBTaGFyZWRNYXRlcmlhbE1vZHVsZSxcbiAgICBTaGFyZWREaXJlY3RpdmVzTW9kdWxlLFxuICAgIFNoYXJlZFBpcGVzTW9kdWxlLFxuICAgIFNoYXJlZEhvdGtleXNNb2R1bGUsXG4gICAgU2hhcmVkVG9vbGJhck1vZHVsZSxcbiAgICBTaGFyZWROYW1lZEZpbHRlck1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICAvLyBDb21wb25lbnRzXG4gICAgQXBwRm9ybUZpZWxkLFxuICAgIEFwcExvYWRpbmdTcGlubmVyLFxuICAgIEFwcEhlbHBNb2RhbCxcbiAgICBVcGxvYWRGaWxlQ29tcG9uZW50LFxuICAgIFVwbG9hZEZpbGVQb3BvdmVyLFxuICAgIFNoYXJlZFRlc3RzUGFnZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25pY01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBDb2xvclBpY2tlck1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBNYXJrZG93bk1vZHVsZSxcbiAgICBOZ3hKZGVudGljb25Nb2R1bGUsXG4gICAgUnhTdGF0ZU1vZHVsZSxcblxuICAgIC8vIFN1Yi1tb2R1bGVzXG4gICAgU2hhcmVkTWF0ZXJpYWxNb2R1bGUsXG4gICAgU2hhcmVkRGlyZWN0aXZlc01vZHVsZSxcbiAgICBTaGFyZWRQaXBlc01vZHVsZSxcbiAgICBTaGFyZWRIb3RrZXlzTW9kdWxlLFxuICAgIFNoYXJlZFRvb2xiYXJNb2R1bGUsXG4gICAgU2hhcmVkTmFtZWRGaWx0ZXJNb2R1bGUsXG5cbiAgICAvLyBDb21wb25lbnRzXG4gICAgQXBwRm9ybUZpZWxkLFxuICAgIEFwcExvYWRpbmdTcGlubmVyLFxuICAgIEFwcEhlbHBNb2RhbCxcbiAgICBVcGxvYWRGaWxlQ29tcG9uZW50LFxuICAgIFVwbG9hZEZpbGVQb3BvdmVyLFxuICAgIFNoYXJlZFRlc3RzUGFnZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZE1vZHVsZSB7XG5cbiAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogU2hhcmVkTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxTaGFyZWRNb2R1bGU+IHtcbiAgICBjb25zb2xlLmRlYnVnKCdbc2hhcmVkXSBDcmVhdGluZyBtb2R1bGUgKHJvb3QpJyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFNoYXJlZE1vZHVsZSxcblxuICAgICAgcHJvdmlkZXJzOiBbXG5cbiAgICAgICAgLy8gTG9hZCBlbnZpcm9ubWVudCAoaWYgYSBsb2FkZXIgaGFzIGJlZW4gZGVmaW5lZClcbiAgICAgICAgLi4uKGNvbmZpZz8ubG9hZGVyID8gW1xuICAgICAgICAgIGNvbmZpZy5sb2FkZXIsXG5cbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgICBkZXBzOiBbRW52aXJvbm1lbnRMb2FkZXJdLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKGxvYWRlcjogRW52aXJvbm1lbnRMb2FkZXIpID0+ICgpID0+IGxvYWRlci5sb2FkKCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEVOVklST05NRU5ULFxuICAgICAgICAgICAgZGVwczogW0Vudmlyb25tZW50TG9hZGVyLCBBUFBfSU5JVElBTElaRVJdLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKGxvYWRlcjogRW52aXJvbm1lbnRMb2FkZXIpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGxvYWRlci5nZXQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSA6IFtdKSxcblxuICAgICAgICAvLyB7IHByb3ZpZGU6IFN0b3JhZ2VTZXJ2aWNlLCB1c2VDbGFzczogU3RvcmFnZVNlcnZpY2UsIGRlcHM6IFtFTlZJUk9OTUVOVF19LFxuICAgICAgICB7IHByb3ZpZGU6IEFQUF9TVE9SQUdFLCB1c2VFeGlzdGluZzogU3RvcmFnZVNlcnZpY2V9LFxuXG4gICAgICAgIFN0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICBBdWRpb1Byb3ZpZGVyLFxuICAgICAgICBGaWxlU2VydmljZSxcbiAgICAgICAgVHJhbnNsYXRlQ29udGV4dFNlcnZpY2UsXG4gICAgICAgIERhdGVGb3JtYXRTZXJ2aWNlLFxuXG4gICAgICAgIC8vIEV4cG9ydCBQaXBlcyBhcyBwcm92aWRlcnNcbiAgICAgICAgRGF0ZUZyb21Ob3dQaXBlLFxuICAgICAgICBEYXRlRGlmZkR1cmF0aW9uUGlwZSxcbiAgICAgICAgTGF0TG9uZ0Zvcm1hdFBpcGUsXG4gICAgICAgIExhdGl0dWRlRm9ybWF0UGlwZSxcbiAgICAgICAgTG9uZ2l0dWRlRm9ybWF0UGlwZSxcbiAgICAgICAgSGlnaGxpZ2h0UGlwZSxcbiAgICAgICAgTnVtYmVyRm9ybWF0UGlwZSxcblxuICAgICAgICB7cHJvdmlkZTogT3ZlcmxheUNvbnRhaW5lciwgdXNlQ2xhc3M6IEZ1bGxzY3JlZW5PdmVybGF5Q29udGFpbmVyfSxcbiAgICAgICAge3Byb3ZpZGU6IE1BVF9QQUdJTkFUT1JfREVGQVVMVF9PUFRJT05TLCB1c2VWYWx1ZTogeyBmb3JtRmllbGRBcHBlYXJhbmNlOiAnZmlsbCcgfX0sXG4gICAgICAgIHtwcm92aWRlOiBNYXRQYWdpbmF0b3JJbnRsLCB1c2VDbGFzczogTWF0UGFnaW5hdG9ySTE4biwgZGVwczogW1RyYW5zbGF0ZVNlcnZpY2VdfSxcbiAgICAgICAge3Byb3ZpZGU6IE1hdFN0ZXBwZXJJbnRsLCB1c2VDbGFzczogTWF0U3RlcHBlckkxOG4sIGRlcHM6IFtUcmFuc2xhdGVTZXJ2aWNlXX0sXG5cbiAgICAgICAgLy8gRklYTUU6IHRyeSB0byBmb3JjZSBhIGN1c3RvbSBvdmVybGF5IGZvciBhdXRvY29tcGxldGUsIGJlY2F1c2Ugb2YgdGhlcmUgaXMgYSBidWcgd2hlbiB1c2luZyBpbnNpZGUgYW4gaW9uaWMgbW9kYWxcbiAgICAgICAgLy97IHByb3ZpZGU6IE92ZXJsYXksIHVzZUNsYXNzOiBPdmVybGF5fSxcbiAgICAgICAge3Byb3ZpZGU6IE1BVF9BVVRPQ09NUExFVEVfU0NST0xMX1NUUkFURUdZLCB1c2VGYWN0b3J5OiBzY3JvbGxGYWN0b3J5LCBkZXBzOiBbT3ZlcmxheV19LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTUFUX0FVVE9DT01QTEVURV9ERUZBVUxUX09QVElPTlMsIHVzZVZhbHVlOiB7XG4gICAgICAgICAgICBhdXRvQWN0aXZlRmlyc3RPcHRpb246IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtwcm92aWRlOiBNQVRfU0VMRUNUX1NDUk9MTF9TVFJBVEVHWSwgdXNlRmFjdG9yeTogc2Nyb2xsRmFjdG9yeSwgZGVwczogW092ZXJsYXldfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -22,8 +22,8 @@ export const SHARED_TESTING_PAGES = [
22
22
  ...SHARED_STORAGE_TESTING_PAGES,
23
23
  ];
24
24
  export class SharedTestingModule {
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SharedTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: SharedTestingModule, imports: [CommonModule,
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SharedTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: SharedTestingModule, imports: [CommonModule,
27
27
  IonicModule, i1.TranslateModule,
28
28
  // Testing sub-modules
29
29
  MaterialTestingModule,
@@ -41,7 +41,7 @@ export class SharedTestingModule {
41
41
  AudioTestingModule,
42
42
  StorageExplorerTestingModule,
43
43
  MenuTestingModule] });
44
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SharedTestingModule, imports: [CommonModule,
44
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SharedTestingModule, imports: [CommonModule,
45
45
  IonicModule,
46
46
  TranslateModule.forChild(),
47
47
  // Testing sub-modules
@@ -61,7 +61,7 @@ export class SharedTestingModule {
61
61
  StorageExplorerTestingModule,
62
62
  MenuTestingModule] });
63
63
  }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SharedTestingModule, decorators: [{
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SharedTestingModule, decorators: [{
65
65
  type: NgModule,
66
66
  args: [{
67
67
  imports: [