@sumaris-net/ngx-components 2.2.0 → 2.2.1-rc2

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 (237) hide show
  1. package/esm2020/src/app/admin/admin-routing.module.mjs +5 -5
  2. package/esm2020/src/app/admin/admin.module.mjs +5 -5
  3. package/esm2020/src/app/admin/services/person.service.mjs +4 -4
  4. package/esm2020/src/app/admin/services/validator/person.validator.mjs +4 -4
  5. package/esm2020/src/app/admin/users/users.mjs +4 -4
  6. package/esm2020/src/app/admin/users/users.module.mjs +5 -5
  7. package/esm2020/src/app/core/about/about.modal.mjs +4 -4
  8. package/esm2020/src/app/core/about/about.module.mjs +5 -5
  9. package/esm2020/src/app/core/account/account.module.mjs +5 -5
  10. package/esm2020/src/app/core/account/account.page.mjs +4 -4
  11. package/esm2020/src/app/core/auth/auth.form.mjs +4 -4
  12. package/esm2020/src/app/core/auth/auth.modal.mjs +4 -4
  13. package/esm2020/src/app/core/auth/auth.module.mjs +5 -5
  14. package/esm2020/src/app/core/core.module.mjs +5 -5
  15. package/esm2020/src/app/core/core.testing.module.mjs +5 -5
  16. package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +4 -4
  17. package/esm2020/src/app/core/form/buttons/form-buttons-bar.module.mjs +5 -5
  18. package/esm2020/src/app/core/form/entity/editor.class.mjs +7 -7
  19. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +4 -4
  20. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +4 -4
  21. package/esm2020/src/app/core/form/entity/entity-metadata.component.mjs +4 -4
  22. package/esm2020/src/app/core/form/entity/entity.module.mjs +5 -5
  23. package/esm2020/src/app/core/form/form.class.mjs +4 -4
  24. package/esm2020/src/app/core/form/form.module.mjs +5 -5
  25. package/esm2020/src/app/core/form/list/list.form.mjs +4 -4
  26. package/esm2020/src/app/core/form/list/list.module.mjs +5 -5
  27. package/esm2020/src/app/core/form/properties/properties.form.mjs +4 -4
  28. package/esm2020/src/app/core/form/properties/properties.module.mjs +5 -5
  29. package/esm2020/src/app/core/form/properties/property.validator.mjs +4 -4
  30. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +4 -4
  31. package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +5 -5
  32. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.mjs +4 -4
  33. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +5 -5
  34. package/esm2020/src/app/core/form/text-popover/text-form.component.mjs +4 -4
  35. package/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +4 -4
  36. package/esm2020/src/app/core/form/text-popover/text-popover.module.mjs +5 -5
  37. package/esm2020/src/app/core/graphql/graphql.module.mjs +5 -5
  38. package/esm2020/src/app/core/graphql/graphql.service.mjs +4 -4
  39. package/esm2020/src/app/core/home/home.mjs +4 -4
  40. package/esm2020/src/app/core/home/home.module.mjs +5 -5
  41. package/esm2020/src/app/core/icon/icon.component.mjs +4 -4
  42. package/esm2020/src/app/core/icon/icon.module.mjs +5 -5
  43. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +4 -4
  44. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +5 -5
  45. package/esm2020/src/app/core/menu/menu.component.mjs +4 -4
  46. package/esm2020/src/app/core/menu/menu.module.mjs +5 -5
  47. package/esm2020/src/app/core/menu/menu.service.mjs +4 -4
  48. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +4 -4
  49. package/esm2020/src/app/core/offline/update-offline-mode-card.module.mjs +5 -5
  50. package/esm2020/src/app/core/peer/select-peer.modal.mjs +4 -4
  51. package/esm2020/src/app/core/peer/select-peer.module.mjs +5 -5
  52. package/esm2020/src/app/core/register/register-confirm.page.mjs +4 -4
  53. package/esm2020/src/app/core/register/register.form.mjs +4 -4
  54. package/esm2020/src/app/core/register/register.modal.mjs +4 -4
  55. package/esm2020/src/app/core/register/register.module.mjs +5 -5
  56. package/esm2020/src/app/core/services/account.service.mjs +4 -4
  57. package/esm2020/src/app/core/services/auth-guard.service.mjs +4 -4
  58. package/esm2020/src/app/core/services/base-entity-service.class.mjs +4 -4
  59. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +4 -4
  60. package/esm2020/src/app/core/services/config.service.mjs +4 -4
  61. package/esm2020/src/app/core/services/crypto.service.mjs +4 -4
  62. package/esm2020/src/app/core/services/local-settings.service.mjs +4 -4
  63. package/esm2020/src/app/core/services/network.service.mjs +4 -4
  64. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +9 -9
  65. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +5 -5
  66. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +5 -5
  67. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +9 -9
  68. package/esm2020/src/app/core/services/platform.service.mjs +4 -4
  69. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +4 -4
  70. package/esm2020/src/app/core/services/testing/referential.validator.mjs +4 -4
  71. package/esm2020/src/app/core/services/validator/account.validator.mjs +4 -4
  72. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +4 -4
  73. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +4 -4
  74. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +4 -4
  75. package/esm2020/src/app/core/settings/settings.module.mjs +5 -5
  76. package/esm2020/src/app/core/settings/settings.page.mjs +4 -4
  77. package/esm2020/src/app/core/table/actions-column.component.mjs +4 -4
  78. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +4 -4
  79. package/esm2020/src/app/core/table/memory-table.class.mjs +4 -4
  80. package/esm2020/src/app/core/table/table-select-columns.component.mjs +4 -4
  81. package/esm2020/src/app/core/table/table.class.mjs +5 -5
  82. package/esm2020/src/app/core/table/table.module.mjs +5 -5
  83. package/esm2020/src/app/core/table/testing/table.testing.mjs +4 -4
  84. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +5 -5
  85. package/esm2020/src/app/shared/audio/audio.mjs +4 -4
  86. package/esm2020/src/app/shared/audio/audio.testing.mjs +4 -4
  87. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +5 -5
  88. package/esm2020/src/app/shared/capacitor/keyboard.mjs +4 -4
  89. package/esm2020/src/app/shared/debug/debug.component.mjs +4 -4
  90. package/esm2020/src/app/shared/debug/debug.module.mjs +5 -5
  91. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +4 -4
  92. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +4 -4
  93. package/esm2020/src/app/shared/directives/directives.module.mjs +5 -5
  94. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +4 -4
  95. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +4 -4
  96. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +4 -4
  97. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +4 -4
  98. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +5 -5
  99. package/esm2020/src/app/shared/file/file.service.mjs +4 -4
  100. package/esm2020/src/app/shared/form/field.component.mjs +4 -4
  101. package/esm2020/src/app/shared/form/loading-spinner.mjs +4 -4
  102. package/esm2020/src/app/shared/gesture/gesture-config.mjs +4 -4
  103. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +4 -4
  104. package/esm2020/src/app/shared/help/help.modal.mjs +4 -4
  105. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +4 -4
  106. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +4 -4
  107. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +5 -5
  108. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +8 -6
  109. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +5 -5
  110. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +4 -4
  111. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +5 -5
  112. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +5 -5
  113. package/esm2020/src/app/shared/image/image.module.mjs +5 -5
  114. package/esm2020/src/app/shared/image/image.service.mjs +4 -4
  115. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +4 -4
  116. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +5 -5
  117. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +4 -4
  118. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +4 -4
  119. package/esm2020/src/app/shared/material/badge/badge.module.mjs +5 -5
  120. package/esm2020/src/app/shared/material/badge/badge.test.mjs +4 -4
  121. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +5 -5
  122. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +4 -4
  123. package/esm2020/src/app/shared/material/chips/chips.module.mjs +5 -5
  124. package/esm2020/src/app/shared/material/chips/material.chips.mjs +4 -4
  125. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +4 -4
  126. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +5 -5
  127. package/esm2020/src/app/shared/material/datetime/material.date.mjs +4 -4
  128. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +4 -4
  129. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +4 -4
  130. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +4 -4
  131. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +4 -4
  132. package/esm2020/src/app/shared/material/duration/duration.module.mjs +5 -5
  133. package/esm2020/src/app/shared/material/duration/material.duration.mjs +4 -4
  134. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +4 -4
  135. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +5 -5
  136. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +4 -4
  137. package/esm2020/src/app/shared/material/material.module.mjs +5 -5
  138. package/esm2020/src/app/shared/material/material.testing.module.mjs +5 -5
  139. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +4 -4
  140. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +4 -4
  141. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +4 -4
  142. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +4 -4
  143. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +4 -4
  144. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +4 -4
  145. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +5 -5
  146. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +4 -4
  147. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +4 -4
  148. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +4 -4
  149. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +4 -4
  150. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +5 -5
  151. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +4 -4
  152. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +25 -25
  153. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +4 -4
  154. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +5 -5
  155. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +7 -7
  156. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +5 -5
  157. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +5 -5
  158. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +4 -4
  159. package/esm2020/src/app/shared/pipes/form.pipes.mjs +19 -19
  160. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +5 -5
  161. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +10 -10
  162. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +13 -13
  163. package/esm2020/src/app/shared/pipes/math.pipes.mjs +13 -13
  164. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +4 -4
  165. package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +5 -5
  166. package/esm2020/src/app/shared/pipes/pipes.module.mjs +5 -5
  167. package/esm2020/src/app/shared/pipes/property.pipes.mjs +8 -8
  168. package/esm2020/src/app/shared/pipes/string.pipes.mjs +22 -22
  169. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +9 -9
  170. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +4 -4
  171. package/esm2020/src/app/shared/services/progress-bar.service.mjs +4 -4
  172. package/esm2020/src/app/shared/services/storage/storage.service.mjs +4 -4
  173. package/esm2020/src/app/shared/services/translate-context.service.mjs +4 -4
  174. package/esm2020/src/app/shared/shared-routing.module.mjs +8 -8
  175. package/esm2020/src/app/shared/shared.module.mjs +5 -5
  176. package/esm2020/src/app/shared/shared.testing.module.mjs +5 -5
  177. package/esm2020/src/app/shared/testing/observable.test.mjs +4 -4
  178. package/esm2020/src/app/shared/testing/tests.page.mjs +4 -4
  179. package/esm2020/src/app/shared/toast/toast.testing.mjs +4 -4
  180. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +5 -5
  181. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +4 -4
  182. package/esm2020/src/app/shared/toolbar/toolbar.mjs +4 -4
  183. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +5 -5
  184. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +4 -4
  185. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +5 -5
  186. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +4 -4
  187. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +4 -4
  188. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +4 -4
  189. package/esm2020/src/app/social/job/job.module.mjs +5 -5
  190. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +4 -4
  191. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +4 -4
  192. package/esm2020/src/app/social/job/progression/job-progression.service.mjs +4 -4
  193. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +4 -4
  194. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +4 -4
  195. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +5 -5
  196. package/esm2020/src/app/social/message/message.form.mjs +4 -4
  197. package/esm2020/src/app/social/message/message.modal.mjs +4 -4
  198. package/esm2020/src/app/social/message/message.module.mjs +5 -5
  199. package/esm2020/src/app/social/message/message.service.mjs +4 -4
  200. package/esm2020/src/app/social/social.module.mjs +5 -5
  201. package/esm2020/src/app/social/social.testing.module.mjs +5 -5
  202. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +4 -4
  203. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +4 -4
  204. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +4 -4
  205. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +5 -5
  206. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +4 -4
  207. package/esm2020/src/app/social/user-event/user-event.module.mjs +5 -5
  208. package/esm2020/src/app/social/user-event/user-event.service.mjs +4 -4
  209. package/fesm2015/sumaris-net.ngx-components.mjs +803 -801
  210. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  211. package/fesm2020/sumaris-net.ngx-components.mjs +803 -801
  212. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  213. package/package.json +1 -1
  214. package/src/app/shared/image/gallery/image-gallery.component.d.ts +3 -1
  215. package/src/app/social/user-event/user-event.service.d.ts +1 -1
  216. package/plugins/clovelced-plugin-audiomanagement/README.md +0 -66
  217. package/plugins/cordova-plugin-camera/README.md +0 -703
  218. package/plugins/cordova-plugin-device/README.md +0 -309
  219. package/plugins/cordova-plugin-file/README.md +0 -848
  220. package/plugins/cordova-plugin-file-transfer/README.md +0 -598
  221. package/plugins/cordova-plugin-file-transfer/doc/de/README.md +0 -311
  222. package/plugins/cordova-plugin-file-transfer/doc/es/README.md +0 -311
  223. package/plugins/cordova-plugin-file-transfer/doc/fr/README.md +0 -270
  224. package/plugins/cordova-plugin-file-transfer/doc/it/README.md +0 -311
  225. package/plugins/cordova-plugin-file-transfer/doc/ja/README.md +0 -311
  226. package/plugins/cordova-plugin-file-transfer/doc/ko/README.md +0 -311
  227. package/plugins/cordova-plugin-file-transfer/doc/pl/README.md +0 -311
  228. package/plugins/cordova-plugin-file-transfer/doc/zh/README.md +0 -311
  229. package/plugins/cordova-plugin-ionic-keyboard/README.md +0 -220
  230. package/plugins/cordova-plugin-ionic-webview/README.md +0 -181
  231. package/plugins/cordova-plugin-media-capture/README.md +0 -626
  232. package/plugins/cordova-plugin-splashscreen/README.md +0 -387
  233. package/plugins/cordova-plugin-statusbar/README.md +0 -341
  234. package/plugins/cordova-plugin-telerik-imagepicker/README.md +0 -155
  235. package/plugins/cordova-plugin-whitelist/README.md +0 -185
  236. package/plugins/cordova-sqlite-storage/README.md +0 -1848
  237. package/plugins/integrator-cordova-plugin-downloader/README.md +0 -49
@@ -278,9 +278,9 @@ export class MenuComponent {
278
278
  this.cd.detectChanges();
279
279
  }
280
280
  }
281
- MenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: MenuComponent, deps: [{ token: i1.PlatformService }, { token: i2.AccountService }, { token: i3.Router }, { token: i4.MenuController }, { token: i4.ModalController }, { token: i4.AlertController }, { token: i5.TranslateService }, { token: i6.ConfigService }, { token: i0.ChangeDetectorRef }, { token: i7.MenuService }, { token: ENVIRONMENT }, { token: APP_MENU_OPTIONS, optional: true }, { token: APP_MENU_ITEMS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
282
- MenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: MenuComponent, selector: "app-menu", inputs: { id: "id", menuId: "menuId", side: "side", contentId: "contentId", logo: "logo", appName: "appName", appVersion: "appVersion" }, viewQueries: [{ propertyName: "splitPane", first: true, predicate: ["splitPane"], descendants: true, static: true }], ngImport: i0, template: "<ion-split-pane #splitPane [contentId]=\"contentId\" (swiperight)=\"onSwipeRight($event)\">\n\n <ion-menu [id]=\"id\" [menuId]=\"menuId\" [contentId]=\"contentId\">\n <ion-header>\n\n <ion-toolbar @fadeInAnimation *ngIf=\"isLogin; else notLogin\" class=\"ion-toolbar-top\">\n <ion-grid>\n <ion-row>\n <ion-col size=\"4\">\n <button type=\"button\" mat-flat-button\n class=\"user-avatar\" [class.primary]=\"!accountAvatar\"\n [style.background-image]=\"'url('+(accountAvatar||'./assets/img/person.png')+')'\"\n [routerLink]=\"['/account']\"\n routerDirection=\"root\"\n routerLinkActive=\"ion-color-primary\"\n (click)=\"close()\"\n [title]=\"'MENU.BTN_MY_ACCOUNT'|translate\">\n </button>\n </ion-col>\n <ion-col size=\"8\" class=\"user-logo\">\n <img *ngIf=\"logo\" src=\"{{logo}}\" [title]=\"'APP_NAME'|translate: {appName: appName}\" width=\"108px\"/>\n <span *ngIf=\"!logo\" style=\"width: 108px;\">{{appName}}</span>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-no-padding\">\n <ion-col>\n <button mat-button type=\"button\"\n [routerLink]=\"['/account']\"\n routerDirection=\"root\"\n routerLinkActive=\"ion-color-primary\"\n (click)=\"close()\"\n [title]=\"'MENU.BTN_MY_ACCOUNT'|translate\">\n <ion-label color=\"primary\" class=\"ion-text-wrap ion-text-start\">\n <h3 class=\"no-margin username\">\n <b>{{accountName}}</b>\n </h3>\n <h4>{{accountEmail}}</h4>\n </ion-label>\n </button>\n </ion-col>\n\n <!-- Insertion headerBottomRight -->\n <ion-col size=\"auto\">\n <ng-container *ngTemplateOutlet=\"headerBottomRight\"></ng-container>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-toolbar>\n\n <!-- User not logged -->\n <ng-template #notLogin>\n <mat-toolbar class=\"ion-padding\" @fadeInAnimation\n style=\"height: unset; display: block; margin: auto; text-align: center;\">\n <img *ngIf=\"logo\" src=\"{{logo}}\" [title]=\"'APP_NAME'|translate: {appName: appName}\" width=\"150px;\">\n <span *ngIf=\"!logo\" style=\"width: 150px\">{{appName}}</span>\n </mat-toolbar>\n </ng-template>\n </ion-header>\n\n <ion-content [class.has-user-header]=\"isLogin\">\n\n <ion-list lines=\"none\">\n <ion-menu-toggle auto-hide=\"false\"\n [class.flex-spacer]=\"item.cssClass == 'flex-spacer'\"\n *ngFor=\"let item of $items | async\">\n\n <!-- link -->\n <ion-item *ngIf=\"!loading && item.path\"\n @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}} text-1x\"\n tappable\n [routerLink]=\"item.path\"\n routerDirection=\"root\"\n routerLinkActive=\"selected\"\n [routerLinkActiveOptions]=\"{exact: (item.path === '/')}\">\n <ion-icon slot=\"start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item>\n\n <!-- action -->\n <ion-item *ngIf=\"!loading && item.action\"\n @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}} text-1x\"\n tappable\n (click)=\"doAction(item.action, $event)\">\n <ion-icon slot=\"start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item>\n\n <!-- divider -->\n <ion-item-divider @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}}\"\n *ngIf=\"!loading && !item.path && !item.action\">\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item-divider>\n\n </ion-menu-toggle>\n </ion-list>\n </ion-content>\n\n <ion-footer class=\"hidden-xs hidden-sm\">\n <ion-toolbar>\n\n <ion-buttons slot=\"start\">\n <ion-button mat-icon-button color=\"accent\" (click)=\"openAboutModal($event)\">\n <mat-icon slot=\"icon-only\">help_outline</mat-icon>\n </ion-button>\n </ion-buttons>\n\n <ion-title (click)=\"openAboutModal($event)\" color=\"medium\">\n {{'MENU.FOOTER_VERSION_ABOUT'| translate: {version: appVersion} }}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n <button mat-icon-button color=\"accent\" (click)=\"toggleSplitPaneShow($event)\"\n class=\"hidden-xs hidden-sm hidden-md\"\n [title]=\"(splitPane.when ? 'COMMON.BTN_HIDE_MENU' : 'COMMON.BTN_SHOW_MENU') |translate\">\n <mat-icon><span>{{splitPane.when ? '&#xab;' : '&#xbb;'}}</span></mat-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n </ion-footer>\n\n </ion-menu>\n\n <ng-content></ng-content>\n\n</ion-split-pane>\n\n<ng-template #headerBottomRight>\n <ng-content select=\"[headerBottomRight]\"></ng-content>\n</ng-template>\n", styles: ["ion-menu{--ion-item-background: transparent;--ion-item-divider-background: transparent;--ion-item-icon-color: var(--ion-color-primary-tint);--ion-item-text-color: var(--ion-color-primary-tint);--ion-item-background-selected: var(--ion-color-secondary100);--ion-item-text-color-selected: var(--ion-color-primary);--ion-item-icon-color-selected: var(--ion-color-primary);--ion-item-text-color-disable: var(--ion-color-medium);--ion-item-icon-color-disable: var(--ion-color-medium)}ion-menu ion-header ion-text{color:var(--ion-color-primary)}ion-menu ion-header .user-avatar{background-size:cover;background-repeat:no-repeat;background-position:center;background-color:var(--ion-color-secondary);border:solid 1px rgba(var(--ion-color-secondary-rgb),.5);overflow:hidden!important;font-size:var(--avatar-size, 60px)!important;line-height:var(--avatar-size, 60px);height:var(--avatar-size, 60px)!important;width:var(--avatar-size, 60px)!important;border-radius:50%;display:inline-block}ion-menu ion-header .user-avatar:hover{background-color:var(--ion-color-secondary-shade);border:solid 2px var(--ion-color-secondary-shade)}ion-menu ion-header .user-logo{text-align:right}ion-menu ion-header .user-logo img{max-width:120px;max-height:var(--avatar-size, 60px);width:auto}ion-menu ion-header .username{padding-top:0;margin-top:0;margin-bottom:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}ion-menu ion-header button[mat-button]{padding:0;text-align:start!important;width:100%}ion-menu .scroll-content{margin-top:79px!important}ion-menu .has-user-header .scroll-content{margin-top:188px!important}ion-menu ion-content.has-profile-header{--offset-top: 188px}ion-menu ion-content.no-profile-header{--offset-top: 79px}ion-menu ion-content ion-list{min-height:100%;display:flex;flex-direction:column;justify-content:flex-start}ion-menu ion-content ion-list ion-menu-toggle.flex-spacer{flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-end}ion-menu ion-content ion-list ion-item.primary{--ion-item-icon-color: var(--ion-color-primary-tint);--ion-item-text-color: var(--ion-color-primary-tint)}ion-menu ion-content ion-list ion-item.secondary{--ion-item-icon-color: var(--ion-color-secondary-tint);--ion-item-text-color: var(--ion-color-secondary-tint)}ion-menu ion-content ion-list ion-item.tertiary{--ion-item-icon-color: var(--ion-color-tertiary-tint);--ion-item-text-color: var(--ion-color-tertiary-tint)}ion-menu ion-content ion-list ion-item.danger{--ion-item-icon-color: var(--ion-color-danger-tint);--ion-item-text-color: var(--ion-color-danger-tint)}ion-menu ion-content ion-list ion-item.medium{--ion-item-icon-color: var(--ion-color-medium-shade);--ion-item-text-color: var(--ion-color-medium-shade)}ion-menu ion-content ion-list ion-item.dark{--ion-item-icon-color: var(--ion-color-dark-tint);--ion-item-text-color: var(--ion-color-dark-tint)}ion-menu ion-content ion-list ion-item mat-icon,ion-menu ion-content ion-list ion-item ion-icon{color:var(--ion-item-icon-color)!important;fill:currentColor;stroke:currentColor}ion-menu ion-content ion-list ion-item ion-text,ion-menu ion-content ion-list ion-item ion-label{color:var(--ion-item-text-color)!important}ion-menu ion-content ion-list ion-item.selected{background-color:var(--ion-item-background-selected)!important;--color-hover: var(--ion-item-background-selected) !important}ion-menu ion-content ion-list ion-item.selected mat-icon,ion-menu ion-content ion-list ion-item.selected ion-icon{color:var(--ion-item-icon-color-selected)!important;fill:currentColor;stroke:currentColor}ion-menu ion-content ion-list ion-item.selected ion-text,ion-menu ion-content ion-list ion-item.selected ion-label{color:var(--ion-item-text-color-selected)!important}ion-menu ion-content ion-list ion-item.selected:hover{--color-hover: var(--ion-item-background-selected) !important;--ion-item-icon-color-selected: var(--ion-item-icon-color) !important;--ion-item-text-color-selected: var(--ion-item-text-color) !important}ion-menu ion-footer{display:block!important}ion-menu ion-footer ion-toolbar ion-title{cursor:pointer;font-size:12pt;font-weight:400;text-align:center;padding:0 8px}ion-menu ion-footer ion-toolbar ion-button{--width: 40px}@media screen and (max-width: 767px){ion-menu ion-footer{display:none!important;visibility:hidden!important}}@media screen and (min-width: 768px){ion-menu ion-scroll{overflow-y:auto!important}ion-menu .user-avatar{font-size:var(--avatar-size, 80px)!important;line-height:var(--avatar-size, 80px);height:var(--avatar-size, 80px)!important;width:var(--avatar-size, 80px)!important}ion-menu .user-logo img{max-height:var(--avatar-size, 80px)}}\n"], dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i4.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i4.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i4.IonItemDivider, selector: "ion-item-divider", inputs: ["color", "mode", "sticky"] }, { kind: "component", type: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i4.IonMenu, selector: "ion-menu", inputs: ["contentId", "disabled", "maxEdgeStart", "menuId", "side", "swipeGesture", "type"] }, { kind: "component", type: i4.IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: i4.IonRow, selector: "ion-row" }, { kind: "component", type: i4.IonSplitPane, selector: "ion-split-pane", inputs: ["contentId", "disabled", "when"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i4.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]", inputs: ["routerDirection", "routerAnimation"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], animations: [fadeInAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
283
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: MenuComponent, decorators: [{
281
+ MenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: MenuComponent, deps: [{ token: i1.PlatformService }, { token: i2.AccountService }, { token: i3.Router }, { token: i4.MenuController }, { token: i4.ModalController }, { token: i4.AlertController }, { token: i5.TranslateService }, { token: i6.ConfigService }, { token: i0.ChangeDetectorRef }, { token: i7.MenuService }, { token: ENVIRONMENT }, { token: APP_MENU_OPTIONS, optional: true }, { token: APP_MENU_ITEMS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
282
+ MenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: MenuComponent, selector: "app-menu", inputs: { id: "id", menuId: "menuId", side: "side", contentId: "contentId", logo: "logo", appName: "appName", appVersion: "appVersion" }, viewQueries: [{ propertyName: "splitPane", first: true, predicate: ["splitPane"], descendants: true, static: true }], ngImport: i0, template: "<ion-split-pane #splitPane [contentId]=\"contentId\" (swiperight)=\"onSwipeRight($event)\">\n\n <ion-menu [id]=\"id\" [menuId]=\"menuId\" [contentId]=\"contentId\">\n <ion-header>\n\n <ion-toolbar @fadeInAnimation *ngIf=\"isLogin; else notLogin\" class=\"ion-toolbar-top\">\n <ion-grid>\n <ion-row>\n <ion-col size=\"4\">\n <button type=\"button\" mat-flat-button\n class=\"user-avatar\" [class.primary]=\"!accountAvatar\"\n [style.background-image]=\"'url('+(accountAvatar||'./assets/img/person.png')+')'\"\n [routerLink]=\"['/account']\"\n routerDirection=\"root\"\n routerLinkActive=\"ion-color-primary\"\n (click)=\"close()\"\n [title]=\"'MENU.BTN_MY_ACCOUNT'|translate\">\n </button>\n </ion-col>\n <ion-col size=\"8\" class=\"user-logo\">\n <img *ngIf=\"logo\" src=\"{{logo}}\" [title]=\"'APP_NAME'|translate: {appName: appName}\" width=\"108px\"/>\n <span *ngIf=\"!logo\" style=\"width: 108px;\">{{appName}}</span>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-no-padding\">\n <ion-col>\n <button mat-button type=\"button\"\n [routerLink]=\"['/account']\"\n routerDirection=\"root\"\n routerLinkActive=\"ion-color-primary\"\n (click)=\"close()\"\n [title]=\"'MENU.BTN_MY_ACCOUNT'|translate\">\n <ion-label color=\"primary\" class=\"ion-text-wrap ion-text-start\">\n <h3 class=\"no-margin username\">\n <b>{{accountName}}</b>\n </h3>\n <h4>{{accountEmail}}</h4>\n </ion-label>\n </button>\n </ion-col>\n\n <!-- Insertion headerBottomRight -->\n <ion-col size=\"auto\">\n <ng-container *ngTemplateOutlet=\"headerBottomRight\"></ng-container>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-toolbar>\n\n <!-- User not logged -->\n <ng-template #notLogin>\n <mat-toolbar class=\"ion-padding\" @fadeInAnimation\n style=\"height: unset; display: block; margin: auto; text-align: center;\">\n <img *ngIf=\"logo\" src=\"{{logo}}\" [title]=\"'APP_NAME'|translate: {appName: appName}\" width=\"150px;\">\n <span *ngIf=\"!logo\" style=\"width: 150px\">{{appName}}</span>\n </mat-toolbar>\n </ng-template>\n </ion-header>\n\n <ion-content [class.has-user-header]=\"isLogin\">\n\n <ion-list lines=\"none\">\n <ion-menu-toggle auto-hide=\"false\"\n [class.flex-spacer]=\"item.cssClass == 'flex-spacer'\"\n *ngFor=\"let item of $items | async\">\n\n <!-- link -->\n <ion-item *ngIf=\"!loading && item.path\"\n @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}} text-1x\"\n tappable\n [routerLink]=\"item.path\"\n routerDirection=\"root\"\n routerLinkActive=\"selected\"\n [routerLinkActiveOptions]=\"{exact: (item.path === '/')}\">\n <ion-icon slot=\"start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item>\n\n <!-- action -->\n <ion-item *ngIf=\"!loading && item.action\"\n @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}} text-1x\"\n tappable\n (click)=\"doAction(item.action, $event)\">\n <ion-icon slot=\"start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item>\n\n <!-- divider -->\n <ion-item-divider @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}}\"\n *ngIf=\"!loading && !item.path && !item.action\">\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item-divider>\n\n </ion-menu-toggle>\n </ion-list>\n </ion-content>\n\n <ion-footer class=\"hidden-xs hidden-sm\">\n <ion-toolbar>\n\n <ion-buttons slot=\"start\">\n <ion-button mat-icon-button color=\"accent\" (click)=\"openAboutModal($event)\">\n <mat-icon slot=\"icon-only\">help_outline</mat-icon>\n </ion-button>\n </ion-buttons>\n\n <ion-title (click)=\"openAboutModal($event)\" color=\"medium\">\n {{'MENU.FOOTER_VERSION_ABOUT'| translate: {version: appVersion} }}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n <button mat-icon-button color=\"accent\" (click)=\"toggleSplitPaneShow($event)\"\n class=\"hidden-xs hidden-sm hidden-md\"\n [title]=\"(splitPane.when ? 'COMMON.BTN_HIDE_MENU' : 'COMMON.BTN_SHOW_MENU') |translate\">\n <mat-icon><span>{{splitPane.when ? '&#xab;' : '&#xbb;'}}</span></mat-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n </ion-footer>\n\n </ion-menu>\n\n <ng-content></ng-content>\n\n</ion-split-pane>\n\n<ng-template #headerBottomRight>\n <ng-content select=\"[headerBottomRight]\"></ng-content>\n</ng-template>\n", styles: ["ion-menu{--ion-item-background: transparent;--ion-item-divider-background: transparent;--ion-item-icon-color: var(--ion-color-primary-tint);--ion-item-text-color: var(--ion-color-primary-tint);--ion-item-background-selected: var(--ion-color-secondary100);--ion-item-text-color-selected: var(--ion-color-primary);--ion-item-icon-color-selected: var(--ion-color-primary);--ion-item-text-color-disable: var(--ion-color-medium);--ion-item-icon-color-disable: var(--ion-color-medium)}ion-menu ion-header ion-text{color:var(--ion-color-primary)}ion-menu ion-header .user-avatar{background-size:cover;background-repeat:no-repeat;background-position:center;background-color:var(--ion-color-secondary);border:solid 1px rgba(var(--ion-color-secondary-rgb),.5);overflow:hidden!important;font-size:var(--avatar-size, 60px)!important;line-height:var(--avatar-size, 60px);height:var(--avatar-size, 60px)!important;width:var(--avatar-size, 60px)!important;border-radius:50%;display:inline-block}ion-menu ion-header .user-avatar:hover{background-color:var(--ion-color-secondary-shade);border:solid 2px var(--ion-color-secondary-shade)}ion-menu ion-header .user-logo{text-align:right}ion-menu ion-header .user-logo img{max-width:120px;max-height:var(--avatar-size, 60px);width:auto}ion-menu ion-header .username{padding-top:0;margin-top:0;margin-bottom:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}ion-menu ion-header button[mat-button]{padding:0;text-align:start!important;width:100%}ion-menu .scroll-content{margin-top:79px!important}ion-menu .has-user-header .scroll-content{margin-top:188px!important}ion-menu ion-content.has-profile-header{--offset-top: 188px}ion-menu ion-content.no-profile-header{--offset-top: 79px}ion-menu ion-content ion-list{min-height:100%;display:flex;flex-direction:column;justify-content:flex-start}ion-menu ion-content ion-list ion-menu-toggle.flex-spacer{flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-end}ion-menu ion-content ion-list ion-item.primary{--ion-item-icon-color: var(--ion-color-primary-tint);--ion-item-text-color: var(--ion-color-primary-tint)}ion-menu ion-content ion-list ion-item.secondary{--ion-item-icon-color: var(--ion-color-secondary-tint);--ion-item-text-color: var(--ion-color-secondary-tint)}ion-menu ion-content ion-list ion-item.tertiary{--ion-item-icon-color: var(--ion-color-tertiary-tint);--ion-item-text-color: var(--ion-color-tertiary-tint)}ion-menu ion-content ion-list ion-item.danger{--ion-item-icon-color: var(--ion-color-danger-tint);--ion-item-text-color: var(--ion-color-danger-tint)}ion-menu ion-content ion-list ion-item.medium{--ion-item-icon-color: var(--ion-color-medium-shade);--ion-item-text-color: var(--ion-color-medium-shade)}ion-menu ion-content ion-list ion-item.dark{--ion-item-icon-color: var(--ion-color-dark-tint);--ion-item-text-color: var(--ion-color-dark-tint)}ion-menu ion-content ion-list ion-item mat-icon,ion-menu ion-content ion-list ion-item ion-icon{color:var(--ion-item-icon-color)!important;fill:currentColor;stroke:currentColor}ion-menu ion-content ion-list ion-item ion-text,ion-menu ion-content ion-list ion-item ion-label{color:var(--ion-item-text-color)!important}ion-menu ion-content ion-list ion-item.selected{background-color:var(--ion-item-background-selected)!important;--color-hover: var(--ion-item-background-selected) !important}ion-menu ion-content ion-list ion-item.selected mat-icon,ion-menu ion-content ion-list ion-item.selected ion-icon{color:var(--ion-item-icon-color-selected)!important;fill:currentColor;stroke:currentColor}ion-menu ion-content ion-list ion-item.selected ion-text,ion-menu ion-content ion-list ion-item.selected ion-label{color:var(--ion-item-text-color-selected)!important}ion-menu ion-content ion-list ion-item.selected:hover{--color-hover: var(--ion-item-background-selected) !important;--ion-item-icon-color-selected: var(--ion-item-icon-color) !important;--ion-item-text-color-selected: var(--ion-item-text-color) !important}ion-menu ion-footer{display:block!important}ion-menu ion-footer ion-toolbar ion-title{cursor:pointer;font-size:12pt;font-weight:400;text-align:center;padding:0 8px}ion-menu ion-footer ion-toolbar ion-button{--width: 40px}@media screen and (max-width: 767px){ion-menu ion-footer{display:none!important;visibility:hidden!important}}@media screen and (min-width: 768px){ion-menu ion-scroll{overflow-y:auto!important}ion-menu .user-avatar{font-size:var(--avatar-size, 80px)!important;line-height:var(--avatar-size, 80px);height:var(--avatar-size, 80px)!important;width:var(--avatar-size, 80px)!important}ion-menu .user-logo img{max-height:var(--avatar-size, 80px)}}\n"], dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i4.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i4.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i4.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i4.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i4.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i4.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i4.IonItemDivider, selector: "ion-item-divider", inputs: ["color", "mode", "sticky"] }, { kind: "component", type: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i4.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i4.IonMenu, selector: "ion-menu", inputs: ["contentId", "disabled", "maxEdgeStart", "menuId", "side", "swipeGesture", "type"] }, { kind: "component", type: i4.IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: i4.IonRow, selector: "ion-row" }, { kind: "component", type: i4.IonSplitPane, selector: "ion-split-pane", inputs: ["contentId", "disabled", "when"] }, { kind: "component", type: i4.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i4.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i4.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]", inputs: ["routerDirection", "routerAnimation"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], animations: [fadeInAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
283
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: MenuComponent, decorators: [{
284
284
  type: Component,
285
285
  args: [{ selector: 'app-menu', animations: [fadeInAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-split-pane #splitPane [contentId]=\"contentId\" (swiperight)=\"onSwipeRight($event)\">\n\n <ion-menu [id]=\"id\" [menuId]=\"menuId\" [contentId]=\"contentId\">\n <ion-header>\n\n <ion-toolbar @fadeInAnimation *ngIf=\"isLogin; else notLogin\" class=\"ion-toolbar-top\">\n <ion-grid>\n <ion-row>\n <ion-col size=\"4\">\n <button type=\"button\" mat-flat-button\n class=\"user-avatar\" [class.primary]=\"!accountAvatar\"\n [style.background-image]=\"'url('+(accountAvatar||'./assets/img/person.png')+')'\"\n [routerLink]=\"['/account']\"\n routerDirection=\"root\"\n routerLinkActive=\"ion-color-primary\"\n (click)=\"close()\"\n [title]=\"'MENU.BTN_MY_ACCOUNT'|translate\">\n </button>\n </ion-col>\n <ion-col size=\"8\" class=\"user-logo\">\n <img *ngIf=\"logo\" src=\"{{logo}}\" [title]=\"'APP_NAME'|translate: {appName: appName}\" width=\"108px\"/>\n <span *ngIf=\"!logo\" style=\"width: 108px;\">{{appName}}</span>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-no-padding\">\n <ion-col>\n <button mat-button type=\"button\"\n [routerLink]=\"['/account']\"\n routerDirection=\"root\"\n routerLinkActive=\"ion-color-primary\"\n (click)=\"close()\"\n [title]=\"'MENU.BTN_MY_ACCOUNT'|translate\">\n <ion-label color=\"primary\" class=\"ion-text-wrap ion-text-start\">\n <h3 class=\"no-margin username\">\n <b>{{accountName}}</b>\n </h3>\n <h4>{{accountEmail}}</h4>\n </ion-label>\n </button>\n </ion-col>\n\n <!-- Insertion headerBottomRight -->\n <ion-col size=\"auto\">\n <ng-container *ngTemplateOutlet=\"headerBottomRight\"></ng-container>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </ion-toolbar>\n\n <!-- User not logged -->\n <ng-template #notLogin>\n <mat-toolbar class=\"ion-padding\" @fadeInAnimation\n style=\"height: unset; display: block; margin: auto; text-align: center;\">\n <img *ngIf=\"logo\" src=\"{{logo}}\" [title]=\"'APP_NAME'|translate: {appName: appName}\" width=\"150px;\">\n <span *ngIf=\"!logo\" style=\"width: 150px\">{{appName}}</span>\n </mat-toolbar>\n </ng-template>\n </ion-header>\n\n <ion-content [class.has-user-header]=\"isLogin\">\n\n <ion-list lines=\"none\">\n <ion-menu-toggle auto-hide=\"false\"\n [class.flex-spacer]=\"item.cssClass == 'flex-spacer'\"\n *ngFor=\"let item of $items | async\">\n\n <!-- link -->\n <ion-item *ngIf=\"!loading && item.path\"\n @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}} text-1x\"\n tappable\n [routerLink]=\"item.path\"\n routerDirection=\"root\"\n routerLinkActive=\"selected\"\n [routerLinkActiveOptions]=\"{exact: (item.path === '/')}\">\n <ion-icon slot=\"start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item>\n\n <!-- action -->\n <ion-item *ngIf=\"!loading && item.action\"\n @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}} text-1x\"\n tappable\n (click)=\"doAction(item.action, $event)\">\n <ion-icon slot=\"start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item>\n\n <!-- divider -->\n <ion-item-divider @fadeInAnimation\n class=\"{{item.cssClass}} {{item.color}}\"\n *ngIf=\"!loading && !item.path && !item.action\">\n <ion-label translate>{{item.title}}</ion-label>\n </ion-item-divider>\n\n </ion-menu-toggle>\n </ion-list>\n </ion-content>\n\n <ion-footer class=\"hidden-xs hidden-sm\">\n <ion-toolbar>\n\n <ion-buttons slot=\"start\">\n <ion-button mat-icon-button color=\"accent\" (click)=\"openAboutModal($event)\">\n <mat-icon slot=\"icon-only\">help_outline</mat-icon>\n </ion-button>\n </ion-buttons>\n\n <ion-title (click)=\"openAboutModal($event)\" color=\"medium\">\n {{'MENU.FOOTER_VERSION_ABOUT'| translate: {version: appVersion} }}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n <button mat-icon-button color=\"accent\" (click)=\"toggleSplitPaneShow($event)\"\n class=\"hidden-xs hidden-sm hidden-md\"\n [title]=\"(splitPane.when ? 'COMMON.BTN_HIDE_MENU' : 'COMMON.BTN_SHOW_MENU') |translate\">\n <mat-icon><span>{{splitPane.when ? '&#xab;' : '&#xbb;'}}</span></mat-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n </ion-footer>\n\n </ion-menu>\n\n <ng-content></ng-content>\n\n</ion-split-pane>\n\n<ng-template #headerBottomRight>\n <ng-content select=\"[headerBottomRight]\"></ng-content>\n</ng-template>\n", styles: ["ion-menu{--ion-item-background: transparent;--ion-item-divider-background: transparent;--ion-item-icon-color: var(--ion-color-primary-tint);--ion-item-text-color: var(--ion-color-primary-tint);--ion-item-background-selected: var(--ion-color-secondary100);--ion-item-text-color-selected: var(--ion-color-primary);--ion-item-icon-color-selected: var(--ion-color-primary);--ion-item-text-color-disable: var(--ion-color-medium);--ion-item-icon-color-disable: var(--ion-color-medium)}ion-menu ion-header ion-text{color:var(--ion-color-primary)}ion-menu ion-header .user-avatar{background-size:cover;background-repeat:no-repeat;background-position:center;background-color:var(--ion-color-secondary);border:solid 1px rgba(var(--ion-color-secondary-rgb),.5);overflow:hidden!important;font-size:var(--avatar-size, 60px)!important;line-height:var(--avatar-size, 60px);height:var(--avatar-size, 60px)!important;width:var(--avatar-size, 60px)!important;border-radius:50%;display:inline-block}ion-menu ion-header .user-avatar:hover{background-color:var(--ion-color-secondary-shade);border:solid 2px var(--ion-color-secondary-shade)}ion-menu ion-header .user-logo{text-align:right}ion-menu ion-header .user-logo img{max-width:120px;max-height:var(--avatar-size, 60px);width:auto}ion-menu ion-header .username{padding-top:0;margin-top:0;margin-bottom:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}ion-menu ion-header button[mat-button]{padding:0;text-align:start!important;width:100%}ion-menu .scroll-content{margin-top:79px!important}ion-menu .has-user-header .scroll-content{margin-top:188px!important}ion-menu ion-content.has-profile-header{--offset-top: 188px}ion-menu ion-content.no-profile-header{--offset-top: 79px}ion-menu ion-content ion-list{min-height:100%;display:flex;flex-direction:column;justify-content:flex-start}ion-menu ion-content ion-list ion-menu-toggle.flex-spacer{flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-end}ion-menu ion-content ion-list ion-item.primary{--ion-item-icon-color: var(--ion-color-primary-tint);--ion-item-text-color: var(--ion-color-primary-tint)}ion-menu ion-content ion-list ion-item.secondary{--ion-item-icon-color: var(--ion-color-secondary-tint);--ion-item-text-color: var(--ion-color-secondary-tint)}ion-menu ion-content ion-list ion-item.tertiary{--ion-item-icon-color: var(--ion-color-tertiary-tint);--ion-item-text-color: var(--ion-color-tertiary-tint)}ion-menu ion-content ion-list ion-item.danger{--ion-item-icon-color: var(--ion-color-danger-tint);--ion-item-text-color: var(--ion-color-danger-tint)}ion-menu ion-content ion-list ion-item.medium{--ion-item-icon-color: var(--ion-color-medium-shade);--ion-item-text-color: var(--ion-color-medium-shade)}ion-menu ion-content ion-list ion-item.dark{--ion-item-icon-color: var(--ion-color-dark-tint);--ion-item-text-color: var(--ion-color-dark-tint)}ion-menu ion-content ion-list ion-item mat-icon,ion-menu ion-content ion-list ion-item ion-icon{color:var(--ion-item-icon-color)!important;fill:currentColor;stroke:currentColor}ion-menu ion-content ion-list ion-item ion-text,ion-menu ion-content ion-list ion-item ion-label{color:var(--ion-item-text-color)!important}ion-menu ion-content ion-list ion-item.selected{background-color:var(--ion-item-background-selected)!important;--color-hover: var(--ion-item-background-selected) !important}ion-menu ion-content ion-list ion-item.selected mat-icon,ion-menu ion-content ion-list ion-item.selected ion-icon{color:var(--ion-item-icon-color-selected)!important;fill:currentColor;stroke:currentColor}ion-menu ion-content ion-list ion-item.selected ion-text,ion-menu ion-content ion-list ion-item.selected ion-label{color:var(--ion-item-text-color-selected)!important}ion-menu ion-content ion-list ion-item.selected:hover{--color-hover: var(--ion-item-background-selected) !important;--ion-item-icon-color-selected: var(--ion-item-icon-color) !important;--ion-item-text-color-selected: var(--ion-item-text-color) !important}ion-menu ion-footer{display:block!important}ion-menu ion-footer ion-toolbar ion-title{cursor:pointer;font-size:12pt;font-weight:400;text-align:center;padding:0 8px}ion-menu ion-footer ion-toolbar ion-button{--width: 40px}@media screen and (max-width: 767px){ion-menu ion-footer{display:none!important;visibility:hidden!important}}@media screen and (min-width: 768px){ion-menu ion-scroll{overflow-y:auto!important}ion-menu .user-avatar{font-size:var(--avatar-size, 80px)!important;line-height:var(--avatar-size, 80px);height:var(--avatar-size, 80px)!important;width:var(--avatar-size, 80px)!important}ion-menu .user-logo img{max-height:var(--avatar-size, 80px)}}\n"] }]
286
286
  }], ctorParameters: function () { return [{ type: i1.PlatformService }, { type: i2.AccountService }, { type: i3.Router }, { type: i4.MenuController }, { type: i4.ModalController }, { type: i4.AlertController }, { type: i5.TranslateService }, { type: i6.ConfigService }, { type: i0.ChangeDetectorRef }, { type: i7.MenuService }, { type: undefined, decorators: [{
@@ -314,4 +314,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
314
314
  type: ViewChild,
315
315
  args: ['splitPane', { static: true }]
316
316
  }] } });
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQU9oSixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFaEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBRTFFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFMUQsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxzQkFBc0IsRUFBaUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQVcsU0FBUyxFQUFjLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQUU1RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWEsV0FBVyxDQUFDLENBQUM7QUFDMUUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcs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QU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3QsIEluamVjdGlvblRva2VuLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWxlcnRDb250cm9sbGVyLCBJb25TcGxpdFBhbmUsIE1lbnVDb250cm9sbGVyLCBNb2RhbENvbnRyb2xsZXJ9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0FjY291bnR9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2FjY291bnQubW9kZWwnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9ufSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC9jb25maWcubW9kZWwnO1xuaW1wb3J0IHtBY2NvdW50U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvYWNjb3VudC5zZXJ2aWNlJztcbmltcG9ydCB7QWJvdXRNb2RhbH0gZnJvbSAnLi4vYWJvdXQvYWJvdXQubW9kYWwnO1xuXG5pbXBvcnQge2ZhZGVJbkFuaW1hdGlvbn0gZnJvbSAnLi4vLi4vc2hhcmVkL21hdGVyaWFsL21hdGVyaWFsLmFuaW1hdGlvbnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7aXNOb3ROaWxPckJsYW5rfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBtZXJnZU1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BsYXRmb3JtU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvcGxhdGZvcm0uc2VydmljZSc7XG5pbXBvcnQge0VOVklST05NRU5UfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuaW1wb3J0IHtERUZBVUxUX01FTlVfU0hPV19XSEVOLCBNZW51U2VydmljZSwgU3BsaXRQYW5lU2hvd1doZW59IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7TWVudUl0ZW0sIE1lbnVJdGVtcywgTWVudU9wdGlvbnN9IGZyb20gJy4vbWVudS5tb2RlbCc7XG5pbXBvcnQge0NPUkVfQ09ORklHX09QVElPTlN9IGZyb20gJy4uL3NlcnZpY2VzL2NvbmZpZy9jb3JlLmNvbmZpZyc7XG5pbXBvcnQge2ZpcnN0Tm90TmlsUHJvbWlzZX0gZnJvbSAnLi4vLi4vc2hhcmVkL29ic2VydmFibGVzJztcblxuZXhwb3J0IGNvbnN0IEFQUF9NRU5VX0lURU1TID0gbmV3IEluamVjdGlvblRva2VuPE1lbnVJdGVtW10+KCdtZW51SXRlbXMnKTtcbmV4cG9ydCBjb25zdCBBUFBfTUVOVV9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPE1lbnVPcHRpb25zPignbWVudU9wdGlvbnMnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJ21lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtmYWRlSW5BbmltYXRpb25dLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZWJ1ZzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIF9jb25maWc6IENvbmZpZ3VyYXRpb247XG5cbiAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuICBwdWJsaWMgaXNMb2dpbiA9IGZhbHNlO1xuICBhY2NvdW50TmFtZTogc3RyaW5nO1xuICBhY2NvdW50QXZhdGFyOiBzdHJpbmc7XG4gIGFjY291bnRFbWFpbDogc3RyaW5nO1xuXG4gICRpdGVtcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWVudUl0ZW1bXT4odW5kZWZpbmVkKTtcblxuICBASW5wdXQoKSBpZCA9ICdtZW51JztcbiAgQElucHV0KCkgbWVudUlkID0gJ2xlZnQnO1xuICBASW5wdXQoKSBzaWRlID0gJ2xlZnQnO1xuICBASW5wdXQoKSBjb250ZW50SWQgPSAnbWVudS1jb250ZW50JztcbiAgQElucHV0KCkgbG9nbzogc3RyaW5nO1xuICBASW5wdXQoKSBhcHBOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFwcFZlcnNpb246IHN0cmluZyA9IHRoaXMuZW52aXJvbm1lbnQudmVyc2lvbjtcblxuICBAVmlld0NoaWxkKCdzcGxpdFBhbmUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBzcGxpdFBhbmU6IElvblNwbGl0UGFuZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcGxhdGZvcm1TZXJ2aWNlOiBQbGF0Zm9ybVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGFjY291bnRTZXJ2aWNlOiBBY2NvdW50U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIG1lbnU6IE1lbnVDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBtb2RhbEN0cmw6IE1vZGFsQ29udHJvbGxlcixcbiAgICBwcm90ZWN0ZWQgYWxlcnRDb250cm9sbGVyOiBBbGVydENvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBtZW51U2VydmljZTogTWVudVNlcnZpY2UsXG4gICAgQEluamVjdChFTlZJUk9OTUVOVCkgcHJvdGVjdGVkIGVudmlyb25tZW50LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX01FTlVfT1BUSU9OUykgcHJvdGVjdGVkIG9wdGlvbnM6IE1lbnVPcHRpb25zLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX01FTlVfSVRFTVMpIHByb3RlY3RlZCBpdGVtczogTWVudUl0ZW1bXVxuICApIHtcblxuICAgIHRoaXMuX2RlYnVnID0gIWVudmlyb25tZW50LnByb2R1Y3Rpb247XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcblxuICAgIHRoaXMuc3BsaXRQYW5lLndoZW4gPSBhd2FpdCBmaXJzdE5vdE5pbFByb21pc2UodGhpcy5tZW51U2VydmljZS5zcGxpdFBhbmVXaGVuKTtcblxuICAgIC8vIFdhaXQgcGxhdGZvcm0gc3RhcnRlZFxuICAgIGF3YWl0IHRoaXMucGxhdGZvcm1TZXJ2aWNlLnJlYWR5KCk7XG5cbiAgICAvLyBMaXN0ZW4gdG8gbWVudSBzZXJ2aWNlIGV2ZW50XG4gICAgdGhpcy5tZW51U2VydmljZS5zcGxpdFBhbmVXaGVuXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5zZXRTcGxpdFBhbmVXaGVuKHZhbHVlKSk7XG4gICAgdGhpcy5tZW51U2VydmljZS5lbmFibGVkXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5lbmFibGUodmFsdWUpKTtcbiAgICB0aGlzLm1lbnVTZXJ2aWNlLm9wZW5lZFxuICAgICAgLy8gQXZvaWQgZHVwbGljYXRlZCBldmVudHNcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdmFsdWUgPyB0aGlzLm9wZW4oKSA6IHRoaXMuY2xvc2UoKSk7XG5cbiAgICAvLyBVcGRhdGUgY29tcG9uZW50IHdoZW4gcmVmcmVzaCBpcyBuZWVkICg9bG9naW4gZXZlbnRzIG9yIGNvbmZpZyBjaGFuZ2VkKVxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBtZXJnZShcbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5vbkxvZ2luLFxuICAgICAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2Uub25Mb2dvdXRcbiAgICAgICAgKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgLy8gV2FpdCBhY2NvdW50IHNlcnZpY2UgcmVhZHkgKGNhbiBiZSByZXN0YXJ0ZWQpXG4gICAgICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLmFjY291bnRTZXJ2aWNlLnJlYWR5KCkpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuYWNjb3VudFNlcnZpY2UuaXNMb2dpbigpKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgICApLFxuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YXAoY29uZmlnID0+IHRoaXMuX2NvbmZpZyA9IGNvbmZpZyksXG4gICAgICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLmFjY291bnRTZXJ2aWNlLnJlYWR5KCkpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuYWNjb3VudFNlcnZpY2UuaXNMb2dpbigpKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKGxvZ2luID0+IHtcbiAgICAgICAgICBpZiAobG9naW4pIHtcbiAgICAgICAgICAgIHRoaXMub25Mb2dpbih0aGlzLmFjY291bnRTZXJ2aWNlLmFjY291bnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uTG9nb3V0KHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkpO1xuICB9XG5cbiAgYXN5bmMgb25Mb2dpbihhY2NvdW50OiBBY2NvdW50KSB7XG4gICAgY29uc29sZS5pbmZvKCdbbWVudV0gVXBkYXRlIChsb2dpbiknKTtcbiAgICB0aGlzLmFjY291bnRBdmF0YXIgPSBhY2NvdW50LmF2YXRhcjtcbiAgICB0aGlzLmFjY291bnROYW1lID0gYWNjb3VudC5kaXNwbGF5TmFtZTtcbiAgICB0aGlzLmFjY291bnRFbWFpbCA9IGFjY291bnQuZW1haWw7XG4gICAgdGhpcy5pc0xvZ2luID0gdHJ1ZTtcbiAgICBhd2FpdCB0aGlzLnJlZnJlc2hNZW51SXRlbXMoKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgICB9LCA1MDApO1xuICB9XG5cbiAgYXN5bmMgb25Mb2dvdXQoc2tpcFJlZGlyZWN0PzogYm9vbGVhbikge1xuICAgIGlmICghc2tpcFJlZGlyZWN0KSB7XG4gICAgICBjb25zb2xlLmRlYnVnKCdbbWVudV0gTG9nb3V0Jyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc29sZS5kZWJ1ZygnW21lbnVdIFVwZGF0ZSAobG9nb3V0KScpO1xuICAgIH1cbiAgICB0aGlzLmlzTG9naW4gPSBmYWxzZTtcbiAgICB0aGlzLmFjY291bnRBdmF0YXIgPSBudWxsO1xuICAgIHRoaXMuYWNjb3VudEVtYWlsID0gbnVsbDtcbiAgICB0aGlzLmFjY291bnROYW1lID0gbnVsbDtcbiAgICBhd2FpdCB0aGlzLnJlZnJlc2hNZW51SXRlbXMoKTtcblxuICAgIC8vIFdhaXQgdGhlIGVuZCBvZiBmYWRlb3V0LCB0byByZXNldCB0aGUgYWNjb3VudFxuICAgIGlmICghc2tpcFJlZGlyZWN0KSB7XG4gICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJyddKTtcbiAgICB9XG5cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGFzeW5jIGxvZ291dCgpIHtcblxuICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IGF3YWl0IHRoaXMudHJhbnNsYXRlLmdldChbXG4gICAgICAnQVVUSC5MT0dPVVQuQ09ORklSTV9USVRMRScsXG4gICAgICAnQVVUSC5MT0dPVVQuQ09ORklSTV9NRVNTQUdFJyxcbiAgICAgICdDT01NT04uQlROX0NBTkNFTCcsXG4gICAgICAnQVVUSC5MT0dPVVQuQlROX0NPTkZJUk0nXG4gICAgXSkudG9Qcm9taXNlKCk7XG4gICAgY29uc3QgYWxlcnQgPSBhd2FpdCB0aGlzLmFsZXJ0Q29udHJvbGxlci5jcmVhdGUoe1xuICAgICAgaGVhZGVyOiB0cmFuc2xhdGlvbnNbJ0FVVEguTE9HT1VULkNPTkZJUk1fVElUTEUnXSxcbiAgICAgIG1lc3NhZ2U6IHRyYW5zbGF0aW9uc1snQVVUSC5MT0dPVVQuQ09ORklSTV9NRVNTQUdFJ10sXG4gICAgICBidXR0b25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiB0cmFuc2xhdGlvbnNbJ0NPTU1PTi5CVE5fQ0FOQ0VMJ10sXG4gICAgICAgICAgcm9sZTogJ2NhbmNlbCcsXG4gICAgICAgICAgY3NzQ2xhc3M6ICdzZWNvbmRhcnknXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiB0cmFuc2xhdGlvbnNbJ0FVVEguTE9HT1VULkJUTl9DT05GSVJNJ10sXG4gICAgICAgICAgY3NzQ2xhc3M6ICdpb24tY29sb3ItcHJpbWFyeScsXG4gICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5sb2dvdXQoKTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PlxuICAgICAgICAgICAgICAvLyBCYWNrIHRvIGhvbWVcbiAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7cmVwbGFjZVVybDogdHJ1ZSAvKiB3aWxsIGNsZWFyIHJvdXRlciBoaXN0b3J5ICovfSlcbiAgICAgICAgICAgICwgMTAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGF3YWl0IGFsZXJ0LnByZXNlbnQoKTtcbiAgfVxuXG4gIGFzeW5jIGVuYWJsZSh2YWx1ZTogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGVuYWJsZWQgPSBhd2FpdCB0aGlzLm1lbnUuaXNFbmFibGVkKHRoaXMubWVudUlkKTtcbiAgICBpZiAoZW5hYmxlZCAhPT0gdmFsdWUpIHtcbiAgICAgIGF3YWl0IHRoaXMubWVudS5lbmFibGUodmFsdWUsIHRoaXMubWVudUlkKTtcbiAgICAgIGlmICghdmFsdWUpIGF3YWl0IHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvcGVuKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnNvbGUuZGVidWcoJ1ttZW51XSBDaGVja2luZyBvcGVuIGV2ZW50Li4uJyk7XG4gICAgY29uc3Qgb3BlbmVkID0gYXdhaXQgdGhpcy5tZW51LmlzT3Blbih0aGlzLm1lbnVJZCk7XG4gICAgaWYgKCFvcGVuZWQpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoJ1ttZW51XSBPcGVuaW5nIG1lbnUnKTtcbiAgICAgIGF3YWl0IHRoaXMubWVudS5vcGVuKHRoaXMubWVudUlkKTtcbiAgICAgIC8vIFByb3BhZ2UgdG8gc2VydmljZVxuICAgICAgdGhpcy5tZW51U2VydmljZS5fbWFya0FzT3BlbmVkKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgY2xvc2UoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc29sZS5kZWJ1ZygnW21lbnVdIENoZWNraW5nIGNsb3NlIGV2ZW50Li4uJyk7XG4gICAgY29uc3Qgb3BlbmVkID0gYXdhaXQgdGhpcy5tZW51LmlzT3Blbih0aGlzLm1lbnVJZCk7XG4gICAgaWYgKG9wZW5lZCkge1xuICAgICAgY29uc29sZS5kZWJ1ZygnW21lbnVdIENsb3NpbmcgbWVudScpO1xuICAgICAgYXdhaXQgdGhpcy5tZW51LmNsb3NlKHRoaXMubWVudUlkKTtcbiAgICAgIC8vIFByb3BhZ2UgdG8gc2VydmljZVxuICAgICAgdGhpcy5tZW51U2VydmljZS5fbWFya0FzQ2xvc2VkKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgb3BlbkFib3V0TW9kYWwoZXZlbnQ/OiBFdmVudCkge1xuICAgIGNvbnN0IG1vZGFsID0gYXdhaXQgdGhpcy5tb2RhbEN0cmwuY3JlYXRlKHtjb21wb25lbnQ6IEFib3V0TW9kYWx9KTtcbiAgICByZXR1cm4gbW9kYWwucHJlc2VudCgpO1xuICB9XG5cbiAgYXN5bmMgc2V0U3BsaXRQYW5lV2hlbih2YWx1ZTogU3BsaXRQYW5lU2hvd1doZW4pIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbbWVudV0gQ2hlY2tpbmcgc3BsaXRQYW5lIHdoZW4uLi4nKTtcbiAgICBpZiAodGhpcy5zcGxpdFBhbmUud2hlbiAhPT0gdmFsdWUpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoJ1ttZW51XSBTZXQgc3BsaXRQYW5lIHdoZW4gdG8gJyArIHZhbHVlKTtcbiAgICAgIHRoaXMuc3BsaXRQYW5lLndoZW4gPSB2YWx1ZTtcbiAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAvLyBQcm9wYWdhdGUgdG8gdGhlIG1lbnUgc2VydmljZVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm1lbnVTZXJ2aWNlLnNldFNwbGl0UGFuZVNob3dXaGVuKHZhbHVlKSwgMjAwKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVTcGxpdFBhbmVTaG93KGV2ZW50PzogRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuO1xuICAgIGlmIChldmVudCkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmICh0aGlzLnNwbGl0UGFuZS53aGVuID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0U3BsaXRQYW5lV2hlbihERUZBVUxUX01FTlVfU0hPV19XSEVOKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0U3BsaXRQYW5lV2hlbihmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZG9BY3Rpb24oYWN0aW9uOiBzdHJpbmcsIGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuY2xvc2UoKTtcblxuICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICBjYXNlICdsb2dvdXQnOlxuICAgICAgICBhd2FpdCB0aGlzLmxvZ291dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Fib3V0JzpcbiAgICAgICAgYXdhaXQgdGhpcy5vcGVuQWJvdXRNb2RhbChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGFjdGlvbjogJyArIGFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgb25Td2lwZVJpZ2h0KGV2ZW50KSB7XG4gICAgLy8gU2tpcCwgaWYgbm90IGEgdmFsaWQgc3dpcGUgZXZlbnRcbiAgICBpZiAoIWV2ZW50IHx8IGV2ZW50LnBvaW50ZXJUeXBlICE9PSAndG91Y2gnIHx8IGV2ZW50LnZlbG9jaXR5IDwgMC40KSB7XG4gICAgICAvL2V2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gV2lsbCBvcGVuIHRoZSBsZWZ0IG1lbnUsIHNvIGNhbmNlbGxlZCB0aGlzIHN3aXBlIGV2ZW50XG4gICAgY29uc3Qgc3RhcnRYID0gIGV2ZW50LmNlbnRlci54IC0gZXZlbnQuZGlzdGFuY2U7XG4gICAgaWYgKHN0YXJ0WCA8PSA1MCkge1xuICAgICAgLy8gREVCVUdcbiAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlttZW51XSBDYW5jZWwgc3dpcGUgcmlnaHQsIGJlY2F1c2UgbmVhciB0aGUgbGVmdCBtZW51IHt4OiBcIiArIHN0YXJ0WCArIFwiLCB2ZWxvY2l0eTogXCIgKyBldmVudC52ZWxvY2l0eSArIFwifVwiKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gT0s6IGNvbnRpbnVlXG5cbiAgICAvLyBERUJVR1xuICAgIC8vY29uc29sZS5kZWJ1ZyhcIlttZW51XSBSZWNlaXZlZCBzd2lwZSByaWdodCB7eDogXCIgKyBzdGFydFggKyBcIiwgdmVsb2NpdHk6IFwiICsgZXZlbnQudmVsb2NpdHkgKyBcIn1cIik7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCByZWZyZXNoTWVudUl0ZW1zKCkge1xuICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW21lbnVdIFJlZnJlc2hpbmcgbWVudSBpdGVtcy4uLicpO1xuXG4gICAgbGV0IGl0ZW1zID0gdGhpcy5pdGVtcyB8fCBbXTtcblxuICAgIC8vIEluc2VydCBtZW51IGl0ZW1zLCBmcm9tIHRoZSBjb25maWdcbiAgICBjb25zdCBjb25maWdWYWx1ZTogc3RyaW5nID0gdGhpcy5fY29uZmlnICYmIHRoaXMuX2NvbmZpZy5nZXRQcm9wZXJ0eShDT1JFX0NPTkZJR19PUFRJT05TLk1FTlVfSVRFTVMpO1xuICAgIGlmIChpc05vdE5pbE9yQmxhbmsoY29uZmlnVmFsdWUpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb25maWdJdGVtcyA9IEpTT04ucGFyc2UoY29uZmlnVmFsdWUpO1xuICAgICAgICBpdGVtcyA9IChjb25maWdJdGVtcyB8fCBbXSkucmVkdWNlKChyZXMsIGl0ZW0pID0+IHtcbiAgICAgICAgICBpZiAoaXRlbS5hZnRlcikge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSByZXMuZmluZEluZGV4KGkgPT4gaS50aXRsZSA9PT0gaXRlbS5hZnRlcik7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXMuc2xpY2UoMCwgaW5kZXgrMSlcbiAgICAgICAgICAgICAgICAuY29uY2F0KGl0ZW0pXG4gICAgICAgICAgICAgICAgLmNvbmNhdChyZXMuc2xpY2UoaW5kZXgrMSkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdGVtLmJlZm9yZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSByZXMuZmluZEluZGV4KGkgPT4gaS50aXRsZSA9PT0gaXRlbS5iZWZvcmUpO1xuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICByZXR1cm4gcmVzLnNsaWNlKDAsIGluZGV4KVxuICAgICAgICAgICAgICAgIC5jb25jYXQoaXRlbSlcbiAgICAgICAgICAgICAgICAuY29uY2F0KHJlcy5zbGljZShpbmRleCkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXMuY29uY2F0KGl0ZW0pO1xuICAgICAgICB9LCBpdGVtcylcbiAgICAgIH1cbiAgICAgIGNhdGNoKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBbbWVudV0gSW52YWxpZCB2YWx1ZSBmb3Igb3B0aW9uICcke0NPUkVfQ09ORklHX09QVElPTlMuTUVOVV9JVEVNUy5rZXl9Jy4gRXhwZWN0ZWQgYW4gYXJyYXkgb2YgbWVudSBpdGVtYCwgZXJyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBvcHRzID0geyBpc0xvZ2luOiB0aGlzLmlzTG9naW4sIGRlYnVnOiB0aGlzLl9kZWJ1ZyB9O1xuICAgIGNvbnN0IGZpbHRlcmVkSXRlbXMgPSBpdGVtc1xuICAgICAgLmZpbHRlcihpdGVtID0+IE1lbnVJdGVtcy5jaGVja0lmVmlzaWJsZShpdGVtLCB0aGlzLmFjY291bnRTZXJ2aWNlLCB0aGlzLl9jb25maWcsIG9wdHMpKVxuICAgICAgLm1hcChpdGVtID0+IHtcbiAgICAgICAgLy8gUmVwbGFjZSB0aXRsZSB1c2luZyBwcm9wZXJ0aWVzXG4gICAgICAgIGlmIChpc05vdE5pbE9yQmxhbmsoaXRlbS50aXRsZVByb3BlcnR5KSAmJiB0aGlzLl9jb25maWcpIHtcbiAgICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMuX2NvbmZpZy5wcm9wZXJ0aWVzW2l0ZW0udGl0bGVQcm9wZXJ0eV07XG4gICAgICAgICAgaWYgKHRpdGxlKSByZXR1cm4geyAuLi5pdGVtLCB0aXRsZX07IC8vIENyZWF0ZSBhIGNvcHksIHRvIGtlZXAgdGhlIG9yaWdpbmFsIGl0ZW0udGl0bGVcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4kaXRlbXMubmV4dChmaWx0ZXJlZEl0ZW1zKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXRlY3RDaGFuZ2VzKCkge1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG5cbiIsIjxpb24tc3BsaXQtcGFuZSAjc3BsaXRQYW5lIFtjb250ZW50SWRdPVwiY29udGVudElkXCIgKHN3aXBlcmlnaHQpPVwib25Td2lwZVJpZ2h0KCRldmVudClcIj5cblxuICA8aW9uLW1lbnUgW2lkXT1cImlkXCIgW21lbnVJZF09XCJtZW51SWRcIiBbY29udGVudElkXT1cImNvbnRlbnRJZFwiPlxuICAgIDxpb24taGVhZGVyPlxuXG4gICAgICA8aW9uLXRvb2xiYXIgQGZhZGVJbkFuaW1hdGlvbiAqbmdJZj1cImlzTG9naW47IGVsc2Ugbm90TG9naW5cIiBjbGFzcz1cImlvbi10b29sYmFyLXRvcFwiPlxuICAgICAgICA8aW9uLWdyaWQ+XG4gICAgICAgICAgPGlvbi1yb3c+XG4gICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiNFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtZmxhdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXItYXZhdGFyXCIgW2NsYXNzLnByaW1hcnldPVwiIWFjY291bnRBdmF0YXJcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJysoYWNjb3VudEF2YXRhcnx8Jy4vYXNzZXRzL2ltZy9wZXJzb24ucG5nJykrJyknXCJcbiAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9hY2NvdW50J11cIlxuICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckRpcmVjdGlvbj1cInJvb3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJpb24tY29sb3ItcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInTUVOVS5CVE5fTVlfQUNDT1VOVCd8dHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjhcIiBjbGFzcz1cInVzZXItbG9nb1wiPlxuICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwibG9nb1wiIHNyYz1cInt7bG9nb319XCIgW3RpdGxlXT1cIidBUFBfTkFNRSd8dHJhbnNsYXRlOiB7YXBwTmFtZTogYXBwTmFtZX1cIiB3aWR0aD1cIjEwOHB4XCIvPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFsb2dvXCIgc3R5bGU9XCJ3aWR0aDogMTA4cHg7XCI+e3thcHBOYW1lfX08L3NwYW4+XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgPC9pb24tcm93PlxuICAgICAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICAgICAgICAgIDxpb24tY29sPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvYWNjb3VudCddXCJcbiAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJEaXJlY3Rpb249XCJyb290XCJcbiAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiaW9uLWNvbG9yLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ01FTlUuQlROX01ZX0FDQ09VTlQnfHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxpb24tbGFiZWwgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJpb24tdGV4dC13cmFwIGlvbi10ZXh0LXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJuby1tYXJnaW4gdXNlcm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGI+e3thY2NvdW50TmFtZX19PC9iPlxuICAgICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICAgIDxoND57e2FjY291bnRFbWFpbH19PC9oND5cbiAgICAgICAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG5cbiAgICAgICAgICAgIDwhLS0gSW5zZXJ0aW9uIGhlYWRlckJvdHRvbVJpZ2h0IC0tPlxuICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlckJvdHRvbVJpZ2h0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgPC9pb24tcm93PlxuICAgICAgICA8L2lvbi1ncmlkPlxuXG4gICAgICA8L2lvbi10b29sYmFyPlxuXG4gICAgICA8IS0tIFVzZXIgbm90IGxvZ2dlZCAtLT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9naW4+XG4gICAgICAgIDxtYXQtdG9vbGJhciBjbGFzcz1cImlvbi1wYWRkaW5nXCIgQGZhZGVJbkFuaW1hdGlvblxuICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IHVuc2V0OyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiBhdXRvOyB0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XG4gICAgICAgICAgPGltZyAqbmdJZj1cImxvZ29cIiBzcmM9XCJ7e2xvZ299fVwiIFt0aXRsZV09XCInQVBQX05BTUUnfHRyYW5zbGF0ZToge2FwcE5hbWU6IGFwcE5hbWV9XCIgd2lkdGg9XCIxNTBweDtcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFsb2dvXCIgc3R5bGU9XCJ3aWR0aDogMTUwcHhcIj57e2FwcE5hbWV9fTwvc3Bhbj5cbiAgICAgICAgPC9tYXQtdG9vbGJhcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pb24taGVhZGVyPlxuXG4gICAgPGlvbi1jb250ZW50IFtjbGFzcy5oYXMtdXNlci1oZWFkZXJdPVwiaXNMb2dpblwiPlxuXG4gICAgICA8aW9uLWxpc3QgbGluZXM9XCJub25lXCI+XG4gICAgICAgIDxpb24tbWVudS10b2dnbGUgYXV0by1oaWRlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mbGV4LXNwYWNlcl09XCJpdGVtLmNzc0NsYXNzID09ICdmbGV4LXNwYWNlcidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mICRpdGVtcyB8IGFzeW5jXCI+XG5cbiAgICAgICAgICA8IS0tIGxpbmsgLS0+XG4gICAgICAgICAgPGlvbi1pdGVtICpuZ0lmPVwiIWxvYWRpbmcgJiYgaXRlbS5wYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgQGZhZGVJbkFuaW1hdGlvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7aXRlbS5jc3NDbGFzc319IHt7aXRlbS5jb2xvcn19IHRleHQtMXhcIlxuICAgICAgICAgICAgICAgICAgICB0YXBwYWJsZVxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnBhdGhcIlxuICAgICAgICAgICAgICAgICAgICByb3V0ZXJEaXJlY3Rpb249XCJyb290XCJcbiAgICAgICAgICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cInNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cIntleGFjdDogKGl0ZW0ucGF0aCA9PT0gJy8nKX1cIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiAqbmdJZj1cIml0ZW0uaWNvblwiIFtuYW1lXT1cIml0ZW0uaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8bWF0LWljb24gc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJpdGVtLm1hdEljb25cIj57e2l0ZW0ubWF0SWNvbn19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPnt7aXRlbS50aXRsZX19PC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9pb24taXRlbT5cblxuICAgICAgICAgIDwhLS0gYWN0aW9uIC0tPlxuICAgICAgICAgIDxpb24taXRlbSAqbmdJZj1cIiFsb2FkaW5nICYmIGl0ZW0uYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgQGZhZGVJbkFuaW1hdGlvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7aXRlbS5jc3NDbGFzc319IHt7aXRlbS5jb2xvcn19IHRleHQtMXhcIlxuICAgICAgICAgICAgICAgICAgICB0YXBwYWJsZVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG9BY3Rpb24oaXRlbS5hY3Rpb24sICRldmVudClcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiAqbmdJZj1cIml0ZW0uaWNvblwiIFtuYW1lXT1cIml0ZW0uaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8bWF0LWljb24gc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJpdGVtLm1hdEljb25cIj57e2l0ZW0ubWF0SWNvbn19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPnt7aXRlbS50aXRsZX19PC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9pb24taXRlbT5cblxuICAgICAgICAgIDwhLS0gZGl2aWRlciAtLT5cbiAgICAgICAgICA8aW9uLWl0ZW0tZGl2aWRlciBAZmFkZUluQW5pbWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7e2l0ZW0uY3NzQ2xhc3N9fSB7e2l0ZW0uY29sb3J9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhbG9hZGluZyAmJiAhaXRlbS5wYXRoICYmICFpdGVtLmFjdGlvblwiPlxuICAgICAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+e3tpdGVtLnRpdGxlfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICA8L2lvbi1pdGVtLWRpdmlkZXI+XG5cbiAgICAgICAgPC9pb24tbWVudS10b2dnbGU+XG4gICAgICA8L2lvbi1saXN0PlxuICAgIDwvaW9uLWNvbnRlbnQ+XG5cbiAgICA8aW9uLWZvb3RlciBjbGFzcz1cImhpZGRlbi14cyBoaWRkZW4tc21cIj5cbiAgICAgIDxpb24tdG9vbGJhcj5cblxuICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cIm9wZW5BYm91dE1vZGFsKCRldmVudClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBzbG90PVwiaWNvbi1vbmx5XCI+aGVscF9vdXRsaW5lPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgICAgICAgPGlvbi10aXRsZSAoY2xpY2spPVwib3BlbkFib3V0TW9kYWwoJGV2ZW50KVwiIGNvbG9yPVwibWVkaXVtXCI+XG4gICAgICAgICAge3snTUVOVS5GT09URVJfVkVSU0lPTl9BQk9VVCd8IHRyYW5zbGF0ZToge3ZlcnNpb246IGFwcFZlcnNpb259IH19XG4gICAgICAgIDwvaW9uLXRpdGxlPlxuXG4gICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwidG9nZ2xlU3BsaXRQYW5lU2hvdygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGlkZGVuLXhzIGhpZGRlbi1zbSBoaWRkZW4tbWRcIlxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIihzcGxpdFBhbmUud2hlbiA/ICdDT01NT04uQlROX0hJREVfTUVOVScgOiAnQ09NTU9OLkJUTl9TSE9XX01FTlUnKSB8dHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+PHNwYW4+e3tzcGxpdFBhbmUud2hlbiA/ICcmI3hhYjsnIDogJyYjeGJiOyd9fTwvc3Bhbj48L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1mb290ZXI+XG5cbiAgPC9pb24tbWVudT5cblxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbjwvaW9uLXNwbGl0LXBhbmU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyQm90dG9tUmlnaHQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltoZWFkZXJCb3R0b21SaWdodF1cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQU9oSixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFaEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBRTFFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFMUQsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxzQkFBc0IsRUFBaUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQVcsU0FBUyxFQUFjLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQUU1RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWEsV0FBVyxDQUFDLENBQUM7QUFDMUUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcs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QU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3QsIEluamVjdGlvblRva2VuLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWxlcnRDb250cm9sbGVyLCBJb25TcGxpdFBhbmUsIE1lbnVDb250cm9sbGVyLCBNb2RhbENvbnRyb2xsZXJ9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0FjY291bnR9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL2FjY291bnQubW9kZWwnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9ufSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC9jb25maWcubW9kZWwnO1xuaW1wb3J0IHtBY2NvdW50U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvYWNjb3VudC5zZXJ2aWNlJztcbmltcG9ydCB7QWJvdXRNb2RhbH0gZnJvbSAnLi4vYWJvdXQvYWJvdXQubW9kYWwnO1xuXG5pbXBvcnQge2ZhZGVJbkFuaW1hdGlvbn0gZnJvbSAnLi4vLi4vc2hhcmVkL21hdGVyaWFsL21hdGVyaWFsLmFuaW1hdGlvbnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7aXNOb3ROaWxPckJsYW5rfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBtZXJnZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBtZXJnZU1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BsYXRmb3JtU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMvcGxhdGZvcm0uc2VydmljZSc7XG5pbXBvcnQge0VOVklST05NRU5UfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuaW1wb3J0IHtERUZBVUxUX01FTlVfU0hPV19XSEVOLCBNZW51U2VydmljZSwgU3BsaXRQYW5lU2hvd1doZW59IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7TWVudUl0ZW0sIE1lbnVJdGVtcywgTWVudU9wdGlvbnN9IGZyb20gJy4vbWVudS5tb2RlbCc7XG5pbXBvcnQge0NPUkVfQ09ORklHX09QVElPTlN9IGZyb20gJy4uL3NlcnZpY2VzL2NvbmZpZy9jb3JlLmNvbmZpZyc7XG5pbXBvcnQge2ZpcnN0Tm90TmlsUHJvbWlzZX0gZnJvbSAnLi4vLi4vc2hhcmVkL29ic2VydmFibGVzJztcblxuZXhwb3J0IGNvbnN0IEFQUF9NRU5VX0lURU1TID0gbmV3IEluamVjdGlvblRva2VuPE1lbnVJdGVtW10+KCdtZW51SXRlbXMnKTtcbmV4cG9ydCBjb25zdCBBUFBfTUVOVV9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPE1lbnVPcHRpb25zPignbWVudU9wdGlvbnMnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJ21lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtmYWRlSW5BbmltYXRpb25dLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZWJ1ZzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIF9jb25maWc6IENvbmZpZ3VyYXRpb247XG5cbiAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuICBwdWJsaWMgaXNMb2dpbiA9IGZhbHNlO1xuICBhY2NvdW50TmFtZTogc3RyaW5nO1xuICBhY2NvdW50QXZhdGFyOiBzdHJpbmc7XG4gIGFjY291bnRFbWFpbDogc3RyaW5nO1xuXG4gICRpdGVtcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWVudUl0ZW1bXT4odW5kZWZpbmVkKTtcblxuICBASW5wdXQoKSBpZCA9ICdtZW51JztcbiAgQElucHV0KCkgbWVudUlkID0gJ2xlZnQnO1xuICBASW5wdXQoKSBzaWRlID0gJ2xlZnQnO1xuICBASW5wdXQoKSBjb250ZW50SWQgPSAnbWVudS1jb250ZW50JztcbiAgQElucHV0KCkgbG9nbzogc3RyaW5nO1xuICBASW5wdXQoKSBhcHBOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFwcFZlcnNpb246IHN0cmluZyA9IHRoaXMuZW52aXJvbm1lbnQudmVyc2lvbjtcblxuICBAVmlld0NoaWxkKCdzcGxpdFBhbmUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBzcGxpdFBhbmU6IElvblNwbGl0UGFuZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcGxhdGZvcm1TZXJ2aWNlOiBQbGF0Zm9ybVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGFjY291bnRTZXJ2aWNlOiBBY2NvdW50U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIG1lbnU6IE1lbnVDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBtb2RhbEN0cmw6IE1vZGFsQ29udHJvbGxlcixcbiAgICBwcm90ZWN0ZWQgYWxlcnRDb250cm9sbGVyOiBBbGVydENvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBtZW51U2VydmljZTogTWVudVNlcnZpY2UsXG4gICAgQEluamVjdChFTlZJUk9OTUVOVCkgcHJvdGVjdGVkIGVudmlyb25tZW50LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX01FTlVfT1BUSU9OUykgcHJvdGVjdGVkIG9wdGlvbnM6IE1lbnVPcHRpb25zLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX01FTlVfSVRFTVMpIHByb3RlY3RlZCBpdGVtczogTWVudUl0ZW1bXVxuICApIHtcblxuICAgIHRoaXMuX2RlYnVnID0gIWVudmlyb25tZW50LnByb2R1Y3Rpb247XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcblxuICAgIHRoaXMuc3BsaXRQYW5lLndoZW4gPSBhd2FpdCBmaXJzdE5vdE5pbFByb21pc2UodGhpcy5tZW51U2VydmljZS5zcGxpdFBhbmVXaGVuKTtcblxuICAgIC8vIFdhaXQgcGxhdGZvcm0gc3RhcnRlZFxuICAgIGF3YWl0IHRoaXMucGxhdGZvcm1TZXJ2aWNlLnJlYWR5KCk7XG5cbiAgICAvLyBMaXN0ZW4gdG8gbWVudSBzZXJ2aWNlIGV2ZW50XG4gICAgdGhpcy5tZW51U2VydmljZS5zcGxpdFBhbmVXaGVuXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5zZXRTcGxpdFBhbmVXaGVuKHZhbHVlKSk7XG4gICAgdGhpcy5tZW51U2VydmljZS5lbmFibGVkXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5lbmFibGUodmFsdWUpKTtcbiAgICB0aGlzLm1lbnVTZXJ2aWNlLm9wZW5lZFxuICAgICAgLy8gQXZvaWQgZHVwbGljYXRlZCBldmVudHNcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdmFsdWUgPyB0aGlzLm9wZW4oKSA6IHRoaXMuY2xvc2UoKSk7XG5cbiAgICAvLyBVcGRhdGUgY29tcG9uZW50IHdoZW4gcmVmcmVzaCBpcyBuZWVkICg9bG9naW4gZXZlbnRzIG9yIGNvbmZpZyBjaGFuZ2VkKVxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBtZXJnZShcbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5vbkxvZ2luLFxuICAgICAgICAgIHRoaXMuYWNjb3VudFNlcnZpY2Uub25Mb2dvdXRcbiAgICAgICAgKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgLy8gV2FpdCBhY2NvdW50IHNlcnZpY2UgcmVhZHkgKGNhbiBiZSByZXN0YXJ0ZWQpXG4gICAgICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLmFjY291bnRTZXJ2aWNlLnJlYWR5KCkpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuYWNjb3VudFNlcnZpY2UuaXNMb2dpbigpKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgICApLFxuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YXAoY29uZmlnID0+IHRoaXMuX2NvbmZpZyA9IGNvbmZpZyksXG4gICAgICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLmFjY291bnRTZXJ2aWNlLnJlYWR5KCkpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHRoaXMuYWNjb3VudFNlcnZpY2UuaXNMb2dpbigpKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKGxvZ2luID0+IHtcbiAgICAgICAgICBpZiAobG9naW4pIHtcbiAgICAgICAgICAgIHRoaXMub25Mb2dpbih0aGlzLmFjY291bnRTZXJ2aWNlLmFjY291bnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9uTG9nb3V0KHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkpO1xuICB9XG5cbiAgYXN5bmMgb25Mb2dpbihhY2NvdW50OiBBY2NvdW50KSB7XG4gICAgY29uc29sZS5pbmZvKCdbbWVudV0gVXBkYXRlIChsb2dpbiknKTtcbiAgICB0aGlzLmFjY291bnRBdmF0YXIgPSBhY2NvdW50LmF2YXRhcjtcbiAgICB0aGlzLmFjY291bnROYW1lID0gYWNjb3VudC5kaXNwbGF5TmFtZTtcbiAgICB0aGlzLmFjY291bnRFbWFpbCA9IGFjY291bnQuZW1haWw7XG4gICAgdGhpcy5pc0xvZ2luID0gdHJ1ZTtcbiAgICBhd2FpdCB0aGlzLnJlZnJlc2hNZW51SXRlbXMoKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgICB9LCA1MDApO1xuICB9XG5cbiAgYXN5bmMgb25Mb2dvdXQoc2tpcFJlZGlyZWN0PzogYm9vbGVhbikge1xuICAgIGlmICghc2tpcFJlZGlyZWN0KSB7XG4gICAgICBjb25zb2xlLmRlYnVnKCdbbWVudV0gTG9nb3V0Jyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc29sZS5kZWJ1ZygnW21lbnVdIFVwZGF0ZSAobG9nb3V0KScpO1xuICAgIH1cbiAgICB0aGlzLmlzTG9naW4gPSBmYWxzZTtcbiAgICB0aGlzLmFjY291bnRBdmF0YXIgPSBudWxsO1xuICAgIHRoaXMuYWNjb3VudEVtYWlsID0gbnVsbDtcbiAgICB0aGlzLmFjY291bnROYW1lID0gbnVsbDtcbiAgICBhd2FpdCB0aGlzLnJlZnJlc2hNZW51SXRlbXMoKTtcblxuICAgIC8vIFdhaXQgdGhlIGVuZCBvZiBmYWRlb3V0LCB0byByZXNldCB0aGUgYWNjb3VudFxuICAgIGlmICghc2tpcFJlZGlyZWN0KSB7XG4gICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJyddKTtcbiAgICB9XG5cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGFzeW5jIGxvZ291dCgpIHtcblxuICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IGF3YWl0IHRoaXMudHJhbnNsYXRlLmdldChbXG4gICAgICAnQVVUSC5MT0dPVVQuQ09ORklSTV9USVRMRScsXG4gICAgICAnQVVUSC5MT0dPVVQuQ09ORklSTV9NRVNTQUdFJyxcbiAgICAgICdDT01NT04uQlROX0NBTkNFTCcsXG4gICAgICAnQVVUSC5MT0dPVVQuQlROX0NPTkZJUk0nXG4gICAgXSkudG9Qcm9taXNlKCk7XG4gICAgY29uc3QgYWxlcnQgPSBhd2FpdCB0aGlzLmFsZXJ0Q29udHJvbGxlci5jcmVhdGUoe1xuICAgICAgaGVhZGVyOiB0cmFuc2xhdGlvbnNbJ0FVVEguTE9HT1VULkNPTkZJUk1fVElUTEUnXSxcbiAgICAgIG1lc3NhZ2U6IHRyYW5zbGF0aW9uc1snQVVUSC5MT0dPVVQuQ09ORklSTV9NRVNTQUdFJ10sXG4gICAgICBidXR0b25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiB0cmFuc2xhdGlvbnNbJ0NPTU1PTi5CVE5fQ0FOQ0VMJ10sXG4gICAgICAgICAgcm9sZTogJ2NhbmNlbCcsXG4gICAgICAgICAgY3NzQ2xhc3M6ICdzZWNvbmRhcnknXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiB0cmFuc2xhdGlvbnNbJ0FVVEguTE9HT1VULkJUTl9DT05GSVJNJ10sXG4gICAgICAgICAgY3NzQ2xhc3M6ICdpb24tY29sb3ItcHJpbWFyeScsXG4gICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY2NvdW50U2VydmljZS5sb2dvdXQoKTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PlxuICAgICAgICAgICAgICAvLyBCYWNrIHRvIGhvbWVcbiAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7cmVwbGFjZVVybDogdHJ1ZSAvKiB3aWxsIGNsZWFyIHJvdXRlciBoaXN0b3J5ICovfSlcbiAgICAgICAgICAgICwgMTAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KTtcblxuICAgIGF3YWl0IGFsZXJ0LnByZXNlbnQoKTtcbiAgfVxuXG4gIGFzeW5jIGVuYWJsZSh2YWx1ZTogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGVuYWJsZWQgPSBhd2FpdCB0aGlzLm1lbnUuaXNFbmFibGVkKHRoaXMubWVudUlkKTtcbiAgICBpZiAoZW5hYmxlZCAhPT0gdmFsdWUpIHtcbiAgICAgIGF3YWl0IHRoaXMubWVudS5lbmFibGUodmFsdWUsIHRoaXMubWVudUlkKTtcbiAgICAgIGlmICghdmFsdWUpIGF3YWl0IHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvcGVuKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnNvbGUuZGVidWcoJ1ttZW51XSBDaGVja2luZyBvcGVuIGV2ZW50Li4uJyk7XG4gICAgY29uc3Qgb3BlbmVkID0gYXdhaXQgdGhpcy5tZW51LmlzT3Blbih0aGlzLm1lbnVJZCk7XG4gICAgaWYgKCFvcGVuZWQpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoJ1ttZW51XSBPcGVuaW5nIG1lbnUnKTtcbiAgICAgIGF3YWl0IHRoaXMubWVudS5vcGVuKHRoaXMubWVudUlkKTtcbiAgICAgIC8vIFByb3BhZ2UgdG8gc2VydmljZVxuICAgICAgdGhpcy5tZW51U2VydmljZS5fbWFya0FzT3BlbmVkKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgY2xvc2UoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc29sZS5kZWJ1ZygnW21lbnVdIENoZWNraW5nIGNsb3NlIGV2ZW50Li4uJyk7XG4gICAgY29uc3Qgb3BlbmVkID0gYXdhaXQgdGhpcy5tZW51LmlzT3Blbih0aGlzLm1lbnVJZCk7XG4gICAgaWYgKG9wZW5lZCkge1xuICAgICAgY29uc29sZS5kZWJ1ZygnW21lbnVdIENsb3NpbmcgbWVudScpO1xuICAgICAgYXdhaXQgdGhpcy5tZW51LmNsb3NlKHRoaXMubWVudUlkKTtcbiAgICAgIC8vIFByb3BhZ2UgdG8gc2VydmljZVxuICAgICAgdGhpcy5tZW51U2VydmljZS5fbWFya0FzQ2xvc2VkKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgb3BlbkFib3V0TW9kYWwoZXZlbnQ/OiBFdmVudCkge1xuICAgIGNvbnN0IG1vZGFsID0gYXdhaXQgdGhpcy5tb2RhbEN0cmwuY3JlYXRlKHtjb21wb25lbnQ6IEFib3V0TW9kYWx9KTtcbiAgICByZXR1cm4gbW9kYWwucHJlc2VudCgpO1xuICB9XG5cbiAgYXN5bmMgc2V0U3BsaXRQYW5lV2hlbih2YWx1ZTogU3BsaXRQYW5lU2hvd1doZW4pIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbbWVudV0gQ2hlY2tpbmcgc3BsaXRQYW5lIHdoZW4uLi4nKTtcbiAgICBpZiAodGhpcy5zcGxpdFBhbmUud2hlbiAhPT0gdmFsdWUpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoJ1ttZW51XSBTZXQgc3BsaXRQYW5lIHdoZW4gdG8gJyArIHZhbHVlKTtcbiAgICAgIHRoaXMuc3BsaXRQYW5lLndoZW4gPSB2YWx1ZTtcbiAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAvLyBQcm9wYWdhdGUgdG8gdGhlIG1lbnUgc2VydmljZVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm1lbnVTZXJ2aWNlLnNldFNwbGl0UGFuZVNob3dXaGVuKHZhbHVlKSwgMjAwKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVTcGxpdFBhbmVTaG93KGV2ZW50PzogRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgcmV0dXJuO1xuICAgIGlmIChldmVudCkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmICh0aGlzLnNwbGl0UGFuZS53aGVuID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0U3BsaXRQYW5lV2hlbihERUZBVUxUX01FTlVfU0hPV19XSEVOKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0U3BsaXRQYW5lV2hlbihmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZG9BY3Rpb24oYWN0aW9uOiBzdHJpbmcsIGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuY2xvc2UoKTtcblxuICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICBjYXNlICdsb2dvdXQnOlxuICAgICAgICBhd2FpdCB0aGlzLmxvZ291dCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Fib3V0JzpcbiAgICAgICAgYXdhaXQgdGhpcy5vcGVuQWJvdXRNb2RhbChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGFjdGlvbjogJyArIGFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgb25Td2lwZVJpZ2h0KGV2ZW50KSB7XG4gICAgLy8gU2tpcCwgaWYgbm90IGEgdmFsaWQgc3dpcGUgZXZlbnRcbiAgICBpZiAoIWV2ZW50IHx8IGV2ZW50LnBvaW50ZXJUeXBlICE9PSAndG91Y2gnIHx8IGV2ZW50LnZlbG9jaXR5IDwgMC40KSB7XG4gICAgICAvL2V2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gV2lsbCBvcGVuIHRoZSBsZWZ0IG1lbnUsIHNvIGNhbmNlbGxlZCB0aGlzIHN3aXBlIGV2ZW50XG4gICAgY29uc3Qgc3RhcnRYID0gIGV2ZW50LmNlbnRlci54IC0gZXZlbnQuZGlzdGFuY2U7XG4gICAgaWYgKHN0YXJ0WCA8PSA1MCkge1xuICAgICAgLy8gREVCVUdcbiAgICAgIC8vY29uc29sZS5kZWJ1ZyhcIlttZW51XSBDYW5jZWwgc3dpcGUgcmlnaHQsIGJlY2F1c2UgbmVhciB0aGUgbGVmdCBtZW51IHt4OiBcIiArIHN0YXJ0WCArIFwiLCB2ZWxvY2l0eTogXCIgKyBldmVudC52ZWxvY2l0eSArIFwifVwiKTtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gT0s6IGNvbnRpbnVlXG5cbiAgICAvLyBERUJVR1xuICAgIC8vY29uc29sZS5kZWJ1ZyhcIlttZW51XSBSZWNlaXZlZCBzd2lwZSByaWdodCB7eDogXCIgKyBzdGFydFggKyBcIiwgdmVsb2NpdHk6IFwiICsgZXZlbnQudmVsb2NpdHkgKyBcIn1cIik7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCByZWZyZXNoTWVudUl0ZW1zKCkge1xuICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW21lbnVdIFJlZnJlc2hpbmcgbWVudSBpdGVtcy4uLicpO1xuXG4gICAgbGV0IGl0ZW1zID0gdGhpcy5pdGVtcyB8fCBbXTtcblxuICAgIC8vIEluc2VydCBtZW51IGl0ZW1zLCBmcm9tIHRoZSBjb25maWdcbiAgICBjb25zdCBjb25maWdWYWx1ZTogc3RyaW5nID0gdGhpcy5fY29uZmlnICYmIHRoaXMuX2NvbmZpZy5nZXRQcm9wZXJ0eShDT1JFX0NPTkZJR19PUFRJT05TLk1FTlVfSVRFTVMpO1xuICAgIGlmIChpc05vdE5pbE9yQmxhbmsoY29uZmlnVmFsdWUpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb25maWdJdGVtcyA9IEpTT04ucGFyc2UoY29uZmlnVmFsdWUpO1xuICAgICAgICBpdGVtcyA9IChjb25maWdJdGVtcyB8fCBbXSkucmVkdWNlKChyZXMsIGl0ZW0pID0+IHtcbiAgICAgICAgICBpZiAoaXRlbS5hZnRlcikge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSByZXMuZmluZEluZGV4KGkgPT4gaS50aXRsZSA9PT0gaXRlbS5hZnRlcik7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXMuc2xpY2UoMCwgaW5kZXgrMSlcbiAgICAgICAgICAgICAgICAuY29uY2F0KGl0ZW0pXG4gICAgICAgICAgICAgICAgLmNvbmNhdChyZXMuc2xpY2UoaW5kZXgrMSkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdGVtLmJlZm9yZSkge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSByZXMuZmluZEluZGV4KGkgPT4gaS50aXRsZSA9PT0gaXRlbS5iZWZvcmUpO1xuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICByZXR1cm4gcmVzLnNsaWNlKDAsIGluZGV4KVxuICAgICAgICAgICAgICAgIC5jb25jYXQoaXRlbSlcbiAgICAgICAgICAgICAgICAuY29uY2F0KHJlcy5zbGljZShpbmRleCkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXMuY29uY2F0KGl0ZW0pO1xuICAgICAgICB9LCBpdGVtcylcbiAgICAgIH1cbiAgICAgIGNhdGNoKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBbbWVudV0gSW52YWxpZCB2YWx1ZSBmb3Igb3B0aW9uICcke0NPUkVfQ09ORklHX09QVElPTlMuTUVOVV9JVEVNUy5rZXl9Jy4gRXhwZWN0ZWQgYW4gYXJyYXkgb2YgbWVudSBpdGVtYCwgZXJyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBvcHRzID0geyBpc0xvZ2luOiB0aGlzLmlzTG9naW4sIGRlYnVnOiB0aGlzLl9kZWJ1ZyB9O1xuICAgIGNvbnN0IGZpbHRlcmVkSXRlbXMgPSBpdGVtc1xuICAgICAgLmZpbHRlcihpdGVtID0+IE1lbnVJdGVtcy5jaGVja0lmVmlzaWJsZShpdGVtLCB0aGlzLmFjY291bnRTZXJ2aWNlLCB0aGlzLl9jb25maWcsIG9wdHMpKVxuICAgICAgLm1hcChpdGVtID0+IHtcbiAgICAgICAgLy8gUmVwbGFjZSB0aXRsZSB1c2luZyBwcm9wZXJ0aWVzXG4gICAgICAgIGlmIChpc05vdE5pbE9yQmxhbmsoaXRlbS50aXRsZVByb3BlcnR5KSAmJiB0aGlzLl9jb25maWcpIHtcbiAgICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMuX2NvbmZpZy5wcm9wZXJ0aWVzW2l0ZW0udGl0bGVQcm9wZXJ0eV07XG4gICAgICAgICAgaWYgKHRpdGxlKSByZXR1cm4geyAuLi5pdGVtLCB0aXRsZX07IC8vIENyZWF0ZSBhIGNvcHksIHRvIGtlZXAgdGhlIG9yaWdpbmFsIGl0ZW0udGl0bGVcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy4kaXRlbXMubmV4dChmaWx0ZXJlZEl0ZW1zKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXRlY3RDaGFuZ2VzKCkge1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG5cbiIsIjxpb24tc3BsaXQtcGFuZSAjc3BsaXRQYW5lIFtjb250ZW50SWRdPVwiY29udGVudElkXCIgKHN3aXBlcmlnaHQpPVwib25Td2lwZVJpZ2h0KCRldmVudClcIj5cblxuICA8aW9uLW1lbnUgW2lkXT1cImlkXCIgW21lbnVJZF09XCJtZW51SWRcIiBbY29udGVudElkXT1cImNvbnRlbnRJZFwiPlxuICAgIDxpb24taGVhZGVyPlxuXG4gICAgICA8aW9uLXRvb2xiYXIgQGZhZGVJbkFuaW1hdGlvbiAqbmdJZj1cImlzTG9naW47IGVsc2Ugbm90TG9naW5cIiBjbGFzcz1cImlvbi10b29sYmFyLXRvcFwiPlxuICAgICAgICA8aW9uLWdyaWQ+XG4gICAgICAgICAgPGlvbi1yb3c+XG4gICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiNFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtZmxhdC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXItYXZhdGFyXCIgW2NsYXNzLnByaW1hcnldPVwiIWFjY291bnRBdmF0YXJcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJysoYWNjb3VudEF2YXRhcnx8Jy4vYXNzZXRzL2ltZy9wZXJzb24ucG5nJykrJyknXCJcbiAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9hY2NvdW50J11cIlxuICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckRpcmVjdGlvbj1cInJvb3RcIlxuICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbmtBY3RpdmU9XCJpb24tY29sb3ItcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInTUVOVS5CVE5fTVlfQUNDT1VOVCd8dHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjhcIiBjbGFzcz1cInVzZXItbG9nb1wiPlxuICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwibG9nb1wiIHNyYz1cInt7bG9nb319XCIgW3RpdGxlXT1cIidBUFBfTkFNRSd8dHJhbnNsYXRlOiB7YXBwTmFtZTogYXBwTmFtZX1cIiB3aWR0aD1cIjEwOHB4XCIvPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFsb2dvXCIgc3R5bGU9XCJ3aWR0aDogMTA4cHg7XCI+e3thcHBOYW1lfX08L3NwYW4+XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgPC9pb24tcm93PlxuICAgICAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICAgICAgICAgIDxpb24tY29sPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvYWNjb3VudCddXCJcbiAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJEaXJlY3Rpb249XCJyb290XCJcbiAgICAgICAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwiaW9uLWNvbG9yLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ01FTlUuQlROX01ZX0FDQ09VTlQnfHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxpb24tbGFiZWwgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJpb24tdGV4dC13cmFwIGlvbi10ZXh0LXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJuby1tYXJnaW4gdXNlcm5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGI+e3thY2NvdW50TmFtZX19PC9iPlxuICAgICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICAgIDxoND57e2FjY291bnRFbWFpbH19PC9oND5cbiAgICAgICAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG5cbiAgICAgICAgICAgIDwhLS0gSW5zZXJ0aW9uIGhlYWRlckJvdHRvbVJpZ2h0IC0tPlxuICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlckJvdHRvbVJpZ2h0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgPC9pb24tcm93PlxuICAgICAgICA8L2lvbi1ncmlkPlxuXG4gICAgICA8L2lvbi10b29sYmFyPlxuXG4gICAgICA8IS0tIFVzZXIgbm90IGxvZ2dlZCAtLT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9naW4+XG4gICAgICAgIDxtYXQtdG9vbGJhciBjbGFzcz1cImlvbi1wYWRkaW5nXCIgQGZhZGVJbkFuaW1hdGlvblxuICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IHVuc2V0OyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiBhdXRvOyB0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XG4gICAgICAgICAgPGltZyAqbmdJZj1cImxvZ29cIiBzcmM9XCJ7e2xvZ299fVwiIFt0aXRsZV09XCInQVBQX05BTUUnfHRyYW5zbGF0ZToge2FwcE5hbWU6IGFwcE5hbWV9XCIgd2lkdGg9XCIxNTBweDtcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFsb2dvXCIgc3R5bGU9XCJ3aWR0aDogMTUwcHhcIj57e2FwcE5hbWV9fTwvc3Bhbj5cbiAgICAgICAgPC9tYXQtdG9vbGJhcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pb24taGVhZGVyPlxuXG4gICAgPGlvbi1jb250ZW50IFtjbGFzcy5oYXMtdXNlci1oZWFkZXJdPVwiaXNMb2dpblwiPlxuXG4gICAgICA8aW9uLWxpc3QgbGluZXM9XCJub25lXCI+XG4gICAgICAgIDxpb24tbWVudS10b2dnbGUgYXV0by1oaWRlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mbGV4LXNwYWNlcl09XCJpdGVtLmNzc0NsYXNzID09ICdmbGV4LXNwYWNlcidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mICRpdGVtcyB8IGFzeW5jXCI+XG5cbiAgICAgICAgICA8IS0tIGxpbmsgLS0+XG4gICAgICAgICAgPGlvbi1pdGVtICpuZ0lmPVwiIWxvYWRpbmcgJiYgaXRlbS5wYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgQGZhZGVJbkFuaW1hdGlvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7aXRlbS5jc3NDbGFzc319IHt7aXRlbS5jb2xvcn19IHRleHQtMXhcIlxuICAgICAgICAgICAgICAgICAgICB0YXBwYWJsZVxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnBhdGhcIlxuICAgICAgICAgICAgICAgICAgICByb3V0ZXJEaXJlY3Rpb249XCJyb290XCJcbiAgICAgICAgICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZT1cInNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cIntleGFjdDogKGl0ZW0ucGF0aCA9PT0gJy8nKX1cIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiAqbmdJZj1cIml0ZW0uaWNvblwiIFtuYW1lXT1cIml0ZW0uaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8bWF0LWljb24gc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJpdGVtLm1hdEljb25cIj57e2l0ZW0ubWF0SWNvbn19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPnt7aXRlbS50aXRsZX19PC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9pb24taXRlbT5cblxuICAgICAgICAgIDwhLS0gYWN0aW9uIC0tPlxuICAgICAgICAgIDxpb24taXRlbSAqbmdJZj1cIiFsb2FkaW5nICYmIGl0ZW0uYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgQGZhZGVJbkFuaW1hdGlvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7aXRlbS5jc3NDbGFzc319IHt7aXRlbS5jb2xvcn19IHRleHQtMXhcIlxuICAgICAgICAgICAgICAgICAgICB0YXBwYWJsZVxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG9BY3Rpb24oaXRlbS5hY3Rpb24sICRldmVudClcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiAqbmdJZj1cIml0ZW0uaWNvblwiIFtuYW1lXT1cIml0ZW0uaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8bWF0LWljb24gc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJpdGVtLm1hdEljb25cIj57e2l0ZW0ubWF0SWNvbn19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPnt7aXRlbS50aXRsZX19PC9pb24tbGFiZWw+XG4gICAgICAgICAgPC9pb24taXRlbT5cblxuICAgICAgICAgIDwhLS0gZGl2aWRlciAtLT5cbiAgICAgICAgICA8aW9uLWl0ZW0tZGl2aWRlciBAZmFkZUluQW5pbWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7e2l0ZW0uY3NzQ2xhc3N9fSB7e2l0ZW0uY29sb3J9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhbG9hZGluZyAmJiAhaXRlbS5wYXRoICYmICFpdGVtLmFjdGlvblwiPlxuICAgICAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+e3tpdGVtLnRpdGxlfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICA8L2lvbi1pdGVtLWRpdmlkZXI+XG5cbiAgICAgICAgPC9pb24tbWVudS10b2dnbGU+XG4gICAgICA8L2lvbi1saXN0PlxuICAgIDwvaW9uLWNvbnRlbnQ+XG5cbiAgICA8aW9uLWZvb3RlciBjbGFzcz1cImhpZGRlbi14cyBoaWRkZW4tc21cIj5cbiAgICAgIDxpb24tdG9vbGJhcj5cblxuICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cIm9wZW5BYm91dE1vZGFsKCRldmVudClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBzbG90PVwiaWNvbi1vbmx5XCI+aGVscF9vdXRsaW5lPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgICAgICAgPGlvbi10aXRsZSAoY2xpY2spPVwib3BlbkFib3V0TW9kYWwoJGV2ZW50KVwiIGNvbG9yPVwibWVkaXVtXCI+XG4gICAgICAgICAge3snTUVOVS5GT09URVJfVkVSU0lPTl9BQk9VVCd8IHRyYW5zbGF0ZToge3ZlcnNpb246IGFwcFZlcnNpb259IH19XG4gICAgICAgIDwvaW9uLXRpdGxlPlxuXG4gICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwidG9nZ2xlU3BsaXRQYW5lU2hvdygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGlkZGVuLXhzIGhpZGRlbi1zbSBoaWRkZW4tbWRcIlxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIihzcGxpdFBhbmUud2hlbiA/ICdDT01NT04uQlROX0hJREVfTUVOVScgOiAnQ09NTU9OLkJUTl9TSE9XX01FTlUnKSB8dHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+PHNwYW4+e3tzcGxpdFBhbmUud2hlbiA/ICcmI3hhYjsnIDogJyYjeGJiOyd9fTwvc3Bhbj48L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1mb290ZXI+XG5cbiAgPC9pb24tbWVudT5cblxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbjwvaW9uLXNwbGl0LXBhbmU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyQm90dG9tUmlnaHQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltoZWFkZXJCb3R0b21SaWdodF1cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -7,8 +7,8 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "@ngx-translate/core";
8
8
  export class AppMenuModule {
9
9
  }
10
- AppMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- AppMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.8", ngImport: i0, type: AppMenuModule, declarations: [
10
+ AppMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ AppMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: AppMenuModule, declarations: [
12
12
  // Components
13
13
  MenuComponent], imports: [SharedModule,
14
14
  RouterModule, i1.TranslateModule], exports: [
@@ -16,12 +16,12 @@ AppMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
16
16
  TranslateModule,
17
17
  // Components
18
18
  MenuComponent] });
19
- AppMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppMenuModule, imports: [SharedModule,
19
+ AppMenuModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppMenuModule, imports: [SharedModule,
20
20
  RouterModule,
21
21
  TranslateModule.forChild(),
22
22
  // Modules
23
23
  TranslateModule] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppMenuModule, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppMenuModule, decorators: [{
25
25
  type: NgModule,
26
26
  args: [{
27
27
  imports: [
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
41
41
  ]
42
42
  }]
43
43
  }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvbWVudS9tZW51Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBb0I3QyxNQUFNLE9BQU8sYUFBYTs7MEdBQWIsYUFBYTsyR0FBYixhQUFhO1FBVnRCLGFBQWE7UUFDYixhQUFhLGFBUGIsWUFBWTtRQUNaLFlBQVk7UUFTWixVQUFVO1FBQ1YsZUFBZTtRQUNmLGFBQWE7UUFDYixhQUFhOzJHQUdKLGFBQWEsWUFoQnRCLFlBQVk7UUFDWixZQUFZO1FBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtRQVExQixVQUFVO1FBQ1YsZUFBZTsyRkFLTixhQUFhO2tCQWxCekIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGVBQWUsQ0FBQyxRQUFRLEVBQUU7cUJBQzNCO29CQUVELFlBQVksRUFBRTt3QkFDWixhQUFhO3dCQUNiLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGFBQWE7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2hhcmVkTW9kdWxlfSBmcm9tICcuLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQge01lbnVDb21wb25lbnR9IGZyb20gJy4vbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpXG4gIF0sXG5cbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgLy8gQ29tcG9uZW50c1xuICAgIE1lbnVDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIC8vIE1vZHVsZXNcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgLy8gQ29tcG9uZW50c1xuICAgIE1lbnVDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBNZW51TW9kdWxlIHtcblxufVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvbWVudS9tZW51Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBb0I3QyxNQUFNLE9BQU8sYUFBYTs7MkdBQWIsYUFBYTs0R0FBYixhQUFhO1FBVnRCLGFBQWE7UUFDYixhQUFhLGFBUGIsWUFBWTtRQUNaLFlBQVk7UUFTWixVQUFVO1FBQ1YsZUFBZTtRQUNmLGFBQWE7UUFDYixhQUFhOzRHQUdKLGFBQWEsWUFoQnRCLFlBQVk7UUFDWixZQUFZO1FBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtRQVExQixVQUFVO1FBQ1YsZUFBZTs0RkFLTixhQUFhO2tCQWxCekIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGVBQWUsQ0FBQyxRQUFRLEVBQUU7cUJBQzNCO29CQUVELFlBQVksRUFBRTt3QkFDWixhQUFhO3dCQUNiLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGFBQWE7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2hhcmVkTW9kdWxlfSBmcm9tICcuLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQge01lbnVDb21wb25lbnR9IGZyb20gJy4vbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpXG4gIF0sXG5cbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgLy8gQ29tcG9uZW50c1xuICAgIE1lbnVDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIC8vIE1vZHVsZXNcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgLy8gQ29tcG9uZW50c1xuICAgIE1lbnVDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBNZW51TW9kdWxlIHtcblxufVxuIl19
@@ -44,12 +44,12 @@ export class MenuService {
44
44
  this._$opened.next(false);
45
45
  }
46
46
  }
47
- MenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
48
- MenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: MenuService, providedIn: 'root' });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: MenuService, decorators: [{
47
+ MenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: MenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
48
+ MenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: MenuService, providedIn: 'root' });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: MenuService, decorators: [{
50
50
  type: Injectable,
51
51
  args: [{
52
52
  providedIn: 'root'
53
53
  }]
54
54
  }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL21lbnUvbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBYyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBSzFELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFzQixJQUFJLENBQUM7QUFLOUQsTUFBTSxPQUFPLFdBQVc7SUFIeEI7UUFLbUIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDbEMsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBb0Isc0JBQXNCLENBQUMsQ0FBQztRQUNqRixjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7S0E2Q2pFO0lBM0NDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBd0I7UUFDM0MsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xDO2FBQ0k7WUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7O3dHQWhEVSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuXG5leHBvcnQgdHlwZSBTcGxpdFBhbmVTaG93V2hlbiA9IGJvb2xlYW58J2xnJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX01FTlVfU0hPV19XSEVOOiBTcGxpdFBhbmVTaG93V2hlbiA9ICdsZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF8kdG9nZ2xlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgXyRvcGVuZWQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF8kc3BsaXRQYW5lV2hlbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3BsaXRQYW5lU2hvd1doZW4+KERFRkFVTFRfTUVOVV9TSE9XX1dIRU4pO1xuICBwcml2YXRlIHJlYWRvbmx5IF8kZW5hYmxlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgZ2V0IG9wZW5lZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fJG9wZW5lZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzcGxpdFBhbmVXaGVuKCk6IE9ic2VydmFibGU8U3BsaXRQYW5lU2hvd1doZW4+IHtcbiAgICByZXR1cm4gdGhpcy5fJHNwbGl0UGFuZVdoZW4uYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZW5hYmxlZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fJGVuYWJsZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5fJHRvZ2dsZWQubmV4dCgpO1xuICB9XG5cbiAgZW5hYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fJGVuYWJsZWQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzZXRTcGxpdFBhbmVTaG93V2hlbih2YWx1ZTogU3BsaXRQYW5lU2hvd1doZW4pIHtcbiAgICBpZiAodGhpcy5fJHNwbGl0UGFuZVdoZW4udmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl8kc3BsaXRQYW5lV2hlbi5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVTcGxpdFBhbmVXaGVuKCkge1xuICAgIGlmICh0aGlzLl8kc3BsaXRQYW5lV2hlbi52YWx1ZSAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuXyRzcGxpdFBhbmVXaGVuLm5leHQoZmFsc2UpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuXyRzcGxpdFBhbmVXaGVuLm5leHQoREVGQVVMVF9NRU5VX1NIT1dfV0hFTik7XG4gICAgfVxuICB9XG5cbiAgX21hcmtBc09wZW5lZCgpIHtcbiAgICB0aGlzLl8kb3BlbmVkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBfbWFya0FzQ2xvc2VkKCkge1xuICAgIHRoaXMuXyRvcGVuZWQubmV4dChmYWxzZSk7XG4gIH1cblxufVxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL21lbnUvbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBYyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBSzFELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFzQixJQUFJLENBQUM7QUFLOUQsTUFBTSxPQUFPLFdBQVc7SUFIeEI7UUFLbUIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDbEMsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBb0Isc0JBQXNCLENBQUMsQ0FBQztRQUNqRixjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7S0E2Q2pFO0lBM0NDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBd0I7UUFDM0MsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xDO2FBQ0k7WUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7O3lHQWhEVSxXQUFXOzZHQUFYLFdBQVcsY0FGVixNQUFNOzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuXG5leHBvcnQgdHlwZSBTcGxpdFBhbmVTaG93V2hlbiA9IGJvb2xlYW58J2xnJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX01FTlVfU0hPV19XSEVOOiBTcGxpdFBhbmVTaG93V2hlbiA9ICdsZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF8kdG9nZ2xlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgXyRvcGVuZWQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF8kc3BsaXRQYW5lV2hlbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3BsaXRQYW5lU2hvd1doZW4+KERFRkFVTFRfTUVOVV9TSE9XX1dIRU4pO1xuICBwcml2YXRlIHJlYWRvbmx5IF8kZW5hYmxlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgZ2V0IG9wZW5lZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fJG9wZW5lZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzcGxpdFBhbmVXaGVuKCk6IE9ic2VydmFibGU8U3BsaXRQYW5lU2hvd1doZW4+IHtcbiAgICByZXR1cm4gdGhpcy5fJHNwbGl0UGFuZVdoZW4uYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZW5hYmxlZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fJGVuYWJsZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5fJHRvZ2dsZWQubmV4dCgpO1xuICB9XG5cbiAgZW5hYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fJGVuYWJsZWQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBzZXRTcGxpdFBhbmVTaG93V2hlbih2YWx1ZTogU3BsaXRQYW5lU2hvd1doZW4pIHtcbiAgICBpZiAodGhpcy5fJHNwbGl0UGFuZVdoZW4udmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl8kc3BsaXRQYW5lV2hlbi5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVTcGxpdFBhbmVXaGVuKCkge1xuICAgIGlmICh0aGlzLl8kc3BsaXRQYW5lV2hlbi52YWx1ZSAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuXyRzcGxpdFBhbmVXaGVuLm5leHQoZmFsc2UpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuXyRzcGxpdFBhbmVXaGVuLm5leHQoREVGQVVMVF9NRU5VX1NIT1dfV0hFTik7XG4gICAgfVxuICB9XG5cbiAgX21hcmtBc09wZW5lZCgpIHtcbiAgICB0aGlzLl8kb3BlbmVkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBfbWFya0FzQ2xvc2VkKCkge1xuICAgIHRoaXMuXyRvcGVuZWQubmV4dChmYWxzZSk7XG4gIH1cblxufVxuIl19
@@ -12,9 +12,9 @@ export class AppUpdateOfflineModeCard {
12
12
  this.onUpdateClick.complete();
13
13
  }
14
14
  }
15
- AppUpdateOfflineModeCard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppUpdateOfflineModeCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- AppUpdateOfflineModeCard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: AppUpdateOfflineModeCard, selector: "app-update-offline-mode-card", inputs: { progressionMessage: "progressionMessage", progressionValue: "progressionValue" }, outputs: { onUpdateClick: "onUpdateClick" }, ngImport: i0, template: "\n<!-- Update offline feature card-->\n<ion-card color=\"accent\"\n class=\"main ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row *ngIf=\"!progressionValue; else progression\">\n <ion-col>\n <ion-text class=\"ion-text-wrap\" >\n <h4>\n <b [innerHTML]=\"'NETWORK.INFO.UPDATE_OFFLINE_MODE'| translate\"></b>\n </h4>\n <h3>\n <small [innerHTML]=\"'NETWORK.INFO.UPDATE_OFFLINE_MODE_HELP'|translate\"></small>\n </h3>\n </ion-text>\n </ion-col>\n\n <!-- Update button -->\n <ion-col size=\"auto\">\n <ion-button color=\"tertiary\" class=\"ion-float-end\"\n (click)=\"onUpdateClick.emit($event)\">\n <span translate>NETWORK.BTN_UPDATE</span>\n </ion-button>\n </ion-col>\n </ion-row>\n\n <ng-template #progression>\n <ion-row>\n <ion-col>\n <ion-text class=\"ion-text-wrap\" [innerHTML]=\"progressionMessage\"></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <ion-progress-bar [value]=\"progressionValue / 100\"></ion-progress-bar>\n </ion-col>\n </ion-row>\n </ng-template>\n </ion-grid>\n\n\n </ion-card-content>\n</ion-card>\n", styles: ["ion-text small{font-size:85%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], animations: [slideUpDownAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppUpdateOfflineModeCard, decorators: [{
15
+ AppUpdateOfflineModeCard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppUpdateOfflineModeCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ AppUpdateOfflineModeCard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: AppUpdateOfflineModeCard, selector: "app-update-offline-mode-card", inputs: { progressionMessage: "progressionMessage", progressionValue: "progressionValue" }, outputs: { onUpdateClick: "onUpdateClick" }, ngImport: i0, template: "\n<!-- Update offline feature card-->\n<ion-card color=\"accent\"\n class=\"main ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row *ngIf=\"!progressionValue; else progression\">\n <ion-col>\n <ion-text class=\"ion-text-wrap\" >\n <h4>\n <b [innerHTML]=\"'NETWORK.INFO.UPDATE_OFFLINE_MODE'| translate\"></b>\n </h4>\n <h3>\n <small [innerHTML]=\"'NETWORK.INFO.UPDATE_OFFLINE_MODE_HELP'|translate\"></small>\n </h3>\n </ion-text>\n </ion-col>\n\n <!-- Update button -->\n <ion-col size=\"auto\">\n <ion-button color=\"tertiary\" class=\"ion-float-end\"\n (click)=\"onUpdateClick.emit($event)\">\n <span translate>NETWORK.BTN_UPDATE</span>\n </ion-button>\n </ion-col>\n </ion-row>\n\n <ng-template #progression>\n <ion-row>\n <ion-col>\n <ion-text class=\"ion-text-wrap\" [innerHTML]=\"progressionMessage\"></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <ion-progress-bar [value]=\"progressionValue / 100\"></ion-progress-bar>\n </ion-col>\n </ion-row>\n </ng-template>\n </ion-grid>\n\n\n </ion-card-content>\n</ion-card>\n", styles: ["ion-text small{font-size:85%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], animations: [slideUpDownAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppUpdateOfflineModeCard, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'app-update-offline-mode-card', changeDetection: ChangeDetectionStrategy.OnPush, animations: [slideUpDownAnimation], template: "\n<!-- Update offline feature card-->\n<ion-card color=\"accent\"\n class=\"main ion-no-margin\"\n @slideUpDownAnimation>\n <ion-card-content class=\"ion-no-padding\">\n <ion-grid>\n <ion-row *ngIf=\"!progressionValue; else progression\">\n <ion-col>\n <ion-text class=\"ion-text-wrap\" >\n <h4>\n <b [innerHTML]=\"'NETWORK.INFO.UPDATE_OFFLINE_MODE'| translate\"></b>\n </h4>\n <h3>\n <small [innerHTML]=\"'NETWORK.INFO.UPDATE_OFFLINE_MODE_HELP'|translate\"></small>\n </h3>\n </ion-text>\n </ion-col>\n\n <!-- Update button -->\n <ion-col size=\"auto\">\n <ion-button color=\"tertiary\" class=\"ion-float-end\"\n (click)=\"onUpdateClick.emit($event)\">\n <span translate>NETWORK.BTN_UPDATE</span>\n </ion-button>\n </ion-col>\n </ion-row>\n\n <ng-template #progression>\n <ion-row>\n <ion-col>\n <ion-text class=\"ion-text-wrap\" [innerHTML]=\"progressionMessage\"></ion-text>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n <ion-progress-bar [value]=\"progressionValue / 100\"></ion-progress-bar>\n </ion-col>\n </ion-row>\n </ng-template>\n </ion-grid>\n\n\n </ion-card-content>\n</ion-card>\n", styles: ["ion-text small{font-size:85%}\n"] }]
20
20
  }], ctorParameters: function () { return []; }, propDecorators: { progressionMessage: [{
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
24
24
  }], onUpdateClick: [{
25
25
  type: Output
26
26
  }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW9mZmxpbmUtbW9kZS1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9vZmZsaW5lL3VwZGF0ZS1vZmZsaW5lLW1vZGUtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvb2ZmbGluZS91cGRhdGUtb2ZmbGluZS1tb2RlLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7QUFVL0UsTUFBTSxPQUFPLHdCQUF3QjtJQU1uQztRQUZVLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUlwRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7cUhBWlUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsNk1DWHJDLCszQ0E2Q0Esa2tERHBDYyxDQUFDLG9CQUFvQixDQUFDOzJGQUV2Qix3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UsOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMsb0JBQW9CLENBQUM7MEVBSXpCLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtzbGlkZVVwRG93bkFuaW1hdGlvbn0gZnJvbSAnLi4vLi4vc2hhcmVkL21hdGVyaWFsL21hdGVyaWFsLmFuaW1hdGlvbnMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11cGRhdGUtb2ZmbGluZS1tb2RlLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJ3VwZGF0ZS1vZmZsaW5lLW1vZGUtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwZGF0ZS1vZmZsaW5lLW1vZGUtY2FyZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgYW5pbWF0aW9uczogW3NsaWRlVXBEb3duQW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBVcGRhdGVPZmZsaW5lTW9kZUNhcmQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHByb2dyZXNzaW9uTWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKSBwcm9ncmVzc2lvblZhbHVlOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBvblVwZGF0ZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgKSB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uVXBkYXRlQ2xpY2suY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qIC0tIHByaXZhdGUgbWV0aG9kICAtLSAqL1xuXG59XG4iLCJcbjwhLS0gVXBkYXRlIG9mZmxpbmUgZmVhdHVyZSBjYXJkLS0+XG48aW9uLWNhcmQgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgIGNsYXNzPVwibWFpbiBpb24tbm8tbWFyZ2luXCJcbiAgICAgICAgICBAc2xpZGVVcERvd25BbmltYXRpb24+XG4gIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICA8aW9uLWdyaWQ+XG4gICAgICA8aW9uLXJvdyAqbmdJZj1cIiFwcm9ncmVzc2lvblZhbHVlOyBlbHNlIHByb2dyZXNzaW9uXCI+XG4gICAgICAgIDxpb24tY29sPlxuICAgICAgICAgIDxpb24tdGV4dCBjbGFzcz1cImlvbi10ZXh0LXdyYXBcIiA+XG4gICAgICAgICAgICA8aDQ+XG4gICAgICAgICAgICAgIDxiIFtpbm5lckhUTUxdPVwiJ05FVFdPUksuSU5GTy5VUERBVEVfT0ZGTElORV9NT0RFJ3wgdHJhbnNsYXRlXCI+PC9iPlxuICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgIDxoMz5cbiAgICAgICAgICAgICAgPHNtYWxsIFtpbm5lckhUTUxdPVwiJ05FVFdPUksuSU5GTy5VUERBVEVfT0ZGTElORV9NT0RFX0hFTFAnfHRyYW5zbGF0ZVwiPjwvc21hbGw+XG4gICAgICAgICAgICA8L2gzPlxuICAgICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICAgIDwvaW9uLWNvbD5cblxuICAgICAgICA8IS0tIFVwZGF0ZSBidXR0b24gLS0+XG4gICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJ0ZXJ0aWFyeVwiIGNsYXNzPVwiaW9uLWZsb2F0LWVuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVXBkYXRlQ2xpY2suZW1pdCgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8c3BhbiB0cmFuc2xhdGU+TkVUV09SSy5CVE5fVVBEQVRFPC9zcGFuPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgPC9pb24tcm93PlxuXG4gICAgICA8bmctdGVtcGxhdGUgI3Byb2dyZXNzaW9uPlxuICAgICAgICA8aW9uLXJvdz5cbiAgICAgICAgICA8aW9uLWNvbD5cbiAgICAgICAgICAgIDxpb24tdGV4dCBjbGFzcz1cImlvbi10ZXh0LXdyYXBcIiBbaW5uZXJIVE1MXT1cInByb2dyZXNzaW9uTWVzc2FnZVwiPjwvaW9uLXRleHQ+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8L2lvbi1yb3c+XG4gICAgICAgIDxpb24tcm93PlxuICAgICAgICAgIDxpb24tY29sPlxuICAgICAgICAgICAgPGlvbi1wcm9ncmVzcy1iYXIgW3ZhbHVlXT1cInByb2dyZXNzaW9uVmFsdWUgLyAxMDBcIj48L2lvbi1wcm9ncmVzcy1iYXI+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8L2lvbi1yb3c+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaW9uLWdyaWQ+XG5cblxuICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG48L2lvbi1jYXJkPlxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW9mZmxpbmUtbW9kZS1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9vZmZsaW5lL3VwZGF0ZS1vZmZsaW5lLW1vZGUtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvb2ZmbGluZS91cGRhdGUtb2ZmbGluZS1tb2RlLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7QUFVL0UsTUFBTSxPQUFPLHdCQUF3QjtJQU1uQztRQUZVLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUlwRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7c0hBWlUsd0JBQXdCOzBHQUF4Qix3QkFBd0IsNk1DWHJDLCszQ0E2Q0Esa2tERHBDYyxDQUFDLG9CQUFvQixDQUFDOzRGQUV2Qix3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UsOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMsb0JBQW9CLENBQUM7MEVBSXpCLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtzbGlkZVVwRG93bkFuaW1hdGlvbn0gZnJvbSAnLi4vLi4vc2hhcmVkL21hdGVyaWFsL21hdGVyaWFsLmFuaW1hdGlvbnMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11cGRhdGUtb2ZmbGluZS1tb2RlLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJ3VwZGF0ZS1vZmZsaW5lLW1vZGUtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwZGF0ZS1vZmZsaW5lLW1vZGUtY2FyZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgYW5pbWF0aW9uczogW3NsaWRlVXBEb3duQW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBVcGRhdGVPZmZsaW5lTW9kZUNhcmQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHByb2dyZXNzaW9uTWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKSBwcm9ncmVzc2lvblZhbHVlOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBvblVwZGF0ZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgKSB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uVXBkYXRlQ2xpY2suY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qIC0tIHByaXZhdGUgbWV0aG9kICAtLSAqL1xuXG59XG4iLCJcbjwhLS0gVXBkYXRlIG9mZmxpbmUgZmVhdHVyZSBjYXJkLS0+XG48aW9uLWNhcmQgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgIGNsYXNzPVwibWFpbiBpb24tbm8tbWFyZ2luXCJcbiAgICAgICAgICBAc2xpZGVVcERvd25BbmltYXRpb24+XG4gIDxpb24tY2FyZC1jb250ZW50IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cbiAgICA8aW9uLWdyaWQ+XG4gICAgICA8aW9uLXJvdyAqbmdJZj1cIiFwcm9ncmVzc2lvblZhbHVlOyBlbHNlIHByb2dyZXNzaW9uXCI+XG4gICAgICAgIDxpb24tY29sPlxuICAgICAgICAgIDxpb24tdGV4dCBjbGFzcz1cImlvbi10ZXh0LXdyYXBcIiA+XG4gICAgICAgICAgICA8aDQ+XG4gICAgICAgICAgICAgIDxiIFtpbm5lckhUTUxdPVwiJ05FVFdPUksuSU5GTy5VUERBVEVfT0ZGTElORV9NT0RFJ3wgdHJhbnNsYXRlXCI+PC9iPlxuICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgIDxoMz5cbiAgICAgICAgICAgICAgPHNtYWxsIFtpbm5lckhUTUxdPVwiJ05FVFdPUksuSU5GTy5VUERBVEVfT0ZGTElORV9NT0RFX0hFTFAnfHRyYW5zbGF0ZVwiPjwvc21hbGw+XG4gICAgICAgICAgICA8L2gzPlxuICAgICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICAgIDwvaW9uLWNvbD5cblxuICAgICAgICA8IS0tIFVwZGF0ZSBidXR0b24gLS0+XG4gICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJ0ZXJ0aWFyeVwiIGNsYXNzPVwiaW9uLWZsb2F0LWVuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVXBkYXRlQ2xpY2suZW1pdCgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8c3BhbiB0cmFuc2xhdGU+TkVUV09SSy5CVE5fVVBEQVRFPC9zcGFuPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgPC9pb24tcm93PlxuXG4gICAgICA8bmctdGVtcGxhdGUgI3Byb2dyZXNzaW9uPlxuICAgICAgICA8aW9uLXJvdz5cbiAgICAgICAgICA8aW9uLWNvbD5cbiAgICAgICAgICAgIDxpb24tdGV4dCBjbGFzcz1cImlvbi10ZXh0LXdyYXBcIiBbaW5uZXJIVE1MXT1cInByb2dyZXNzaW9uTWVzc2FnZVwiPjwvaW9uLXRleHQ+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8L2lvbi1yb3c+XG4gICAgICAgIDxpb24tcm93PlxuICAgICAgICAgIDxpb24tY29sPlxuICAgICAgICAgICAgPGlvbi1wcm9ncmVzcy1iYXIgW3ZhbHVlXT1cInByb2dyZXNzaW9uVmFsdWUgLyAxMDBcIj48L2lvbi1wcm9ncmVzcy1iYXI+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8L2lvbi1yb3c+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaW9uLWdyaWQ+XG5cblxuICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG48L2lvbi1jYXJkPlxuIl19
@@ -6,15 +6,15 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "@ngx-translate/core";
7
7
  export class AppUpdateOfflineModeCardModule {
8
8
  }
9
- AppUpdateOfflineModeCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppUpdateOfflineModeCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- AppUpdateOfflineModeCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.8", ngImport: i0, type: AppUpdateOfflineModeCardModule, declarations: [
9
+ AppUpdateOfflineModeCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppUpdateOfflineModeCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ AppUpdateOfflineModeCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: AppUpdateOfflineModeCardModule, declarations: [
11
11
  // Network
12
12
  AppUpdateOfflineModeCard], imports: [SharedModule, i1.TranslateModule], exports: [TranslateModule,
13
13
  // Components
14
14
  AppUpdateOfflineModeCard] });
15
- AppUpdateOfflineModeCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppUpdateOfflineModeCardModule, imports: [SharedModule,
15
+ AppUpdateOfflineModeCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppUpdateOfflineModeCardModule, imports: [SharedModule,
16
16
  TranslateModule.forChild(), TranslateModule] });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: AppUpdateOfflineModeCardModule, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AppUpdateOfflineModeCardModule, decorators: [{
18
18
  type: NgModule,
19
19
  args: [{
20
20
  imports: [
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
32
32
  ]
33
33
  }]
34
34
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW9mZmxpbmUtbW9kZS1jYXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9vZmZsaW5lL3VwZGF0ZS1vZmZsaW5lLW1vZGUtY2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7QUFtQnBELE1BQU0sT0FBTyw4QkFBOEI7OzJIQUE5Qiw4QkFBOEI7NEhBQTlCLDhCQUE4QjtRQVZ2QyxVQUFVO1FBQ1Ysd0JBQXdCLGFBTnhCLFlBQVksaUNBU1osZUFBZTtRQUVmLGFBQWE7UUFDYix3QkFBd0I7NEhBR2YsOEJBQThCLFlBZnZDLFlBQVk7UUFDWixlQUFlLENBQUMsUUFBUSxFQUFFLEVBUTFCLGVBQWU7MkZBTU4sOEJBQThCO2tCQWpCMUMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixlQUFlLENBQUMsUUFBUSxFQUFFO3FCQUMzQjtvQkFFRCxZQUFZLEVBQUU7d0JBQ1osVUFBVTt3QkFDVix3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUVmLGFBQWE7d0JBQ2Isd0JBQXdCO3FCQUN6QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTaGFyZWRNb2R1bGV9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7QXBwVXBkYXRlT2ZmbGluZU1vZGVDYXJkfSBmcm9tICcuL3VwZGF0ZS1vZmZsaW5lLW1vZGUtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgU2hhcmVkTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICBdLFxuXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIC8vIE5ldHdvcmtcbiAgICBBcHBVcGRhdGVPZmZsaW5lTW9kZUNhcmRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcblxuICAgIC8vIENvbXBvbmVudHNcbiAgICBBcHBVcGRhdGVPZmZsaW5lTW9kZUNhcmRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBVcGRhdGVPZmZsaW5lTW9kZUNhcmRNb2R1bGUge1xufVxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW9mZmxpbmUtbW9kZS1jYXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9vZmZsaW5lL3VwZGF0ZS1vZmZsaW5lLW1vZGUtY2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7QUFtQnBELE1BQU0sT0FBTyw4QkFBOEI7OzRIQUE5Qiw4QkFBOEI7NkhBQTlCLDhCQUE4QjtRQVZ2QyxVQUFVO1FBQ1Ysd0JBQXdCLGFBTnhCLFlBQVksaUNBU1osZUFBZTtRQUVmLGFBQWE7UUFDYix3QkFBd0I7NkhBR2YsOEJBQThCLFlBZnZDLFlBQVk7UUFDWixlQUFlLENBQUMsUUFBUSxFQUFFLEVBUTFCLGVBQWU7NEZBTU4sOEJBQThCO2tCQWpCMUMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixlQUFlLENBQUMsUUFBUSxFQUFFO3FCQUMzQjtvQkFFRCxZQUFZLEVBQUU7d0JBQ1osVUFBVTt3QkFDVix3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUVmLGFBQWE7d0JBQ2Isd0JBQXdCO3FCQUN6QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTaGFyZWRNb2R1bGV9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7QXBwVXBkYXRlT2ZmbGluZU1vZGVDYXJkfSBmcm9tICcuL3VwZGF0ZS1vZmZsaW5lLW1vZGUtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgU2hhcmVkTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICBdLFxuXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIC8vIE5ldHdvcmtcbiAgICBBcHBVcGRhdGVPZmZsaW5lTW9kZUNhcmRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcblxuICAgIC8vIENvbXBvbmVudHNcbiAgICBBcHBVcGRhdGVPZmZsaW5lTW9kZUNhcmRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBVcGRhdGVPZmZsaW5lTW9kZUNhcmRNb2R1bGUge1xufVxuIl19