@sumaris-net/ngx-components 2.6.4 → 2.6.6-rc1

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 (232) hide show
  1. package/doc/changelog.md +6 -0
  2. package/esm2020/public_api.mjs +12 -2
  3. package/esm2020/src/app/admin/services/filter/person.filter.mjs +1 -1
  4. package/esm2020/src/app/admin/services/person.service.mjs +9 -1
  5. package/esm2020/src/app/admin/users/users.mjs +73 -67
  6. package/esm2020/src/app/core/account/account.page.mjs +1 -1
  7. package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +44 -8
  8. package/esm2020/src/app/core/form/entity/editor.class.mjs +7 -7
  9. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +4 -3
  10. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +6 -3
  11. package/esm2020/src/app/core/form/form.class.mjs +7 -2
  12. package/esm2020/src/app/core/form/form.utils.mjs +4 -1
  13. package/esm2020/src/app/core/form/properties/properties.table.mjs +1 -1
  14. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +2 -2
  15. package/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +2 -2
  16. package/esm2020/src/app/core/graphql/graphql.service.mjs +6 -2
  17. package/esm2020/src/app/core/graphql/graphql.utils.mjs +1 -1
  18. package/esm2020/src/app/core/home/home.mjs +12 -10
  19. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +3 -2
  20. package/esm2020/src/app/core/menu/menu.component.mjs +80 -171
  21. package/esm2020/src/app/core/menu/menu.model.mjs +219 -7
  22. package/esm2020/src/app/core/menu/menu.module.mjs +27 -14
  23. package/esm2020/src/app/core/menu/menu.service.mjs +610 -11
  24. package/esm2020/src/app/core/menu/sub-menu-tab.directive.mjs +98 -0
  25. package/esm2020/src/app/core/menu/testing/menu-other.testing.mjs +48 -0
  26. package/esm2020/src/app/core/menu/testing/menu.testing.mjs +121 -0
  27. package/esm2020/src/app/core/menu/testing/menu.testing.module.mjs +79 -0
  28. package/esm2020/src/app/core/peer/select-peer.modal.mjs +3 -2
  29. package/esm2020/src/app/core/register/register-confirm.page.mjs +3 -3
  30. package/esm2020/src/app/core/register/register.form.mjs +21 -19
  31. package/esm2020/src/app/core/services/account.service.mjs +9 -15
  32. package/esm2020/src/app/core/services/base-entity-service.class.mjs +1 -1
  33. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +2 -4
  34. package/esm2020/src/app/core/services/config.service.mjs +23 -22
  35. package/esm2020/src/app/core/services/crypto.service.mjs +14 -21
  36. package/esm2020/src/app/core/services/local-settings.service.mjs +12 -1
  37. package/esm2020/src/app/core/services/model/account.model.mjs +27 -2
  38. package/esm2020/src/app/core/services/model/config.model.mjs +1 -1
  39. package/esm2020/src/app/core/services/model/department.model.mjs +1 -1
  40. package/esm2020/src/app/core/services/model/entity.decorators.mjs +1 -1
  41. package/esm2020/src/app/core/services/model/entity.model.mjs +20 -35
  42. package/esm2020/src/app/core/services/model/filter.model.mjs +3 -1
  43. package/esm2020/src/app/core/services/model/peer.model.mjs +1 -1
  44. package/esm2020/src/app/core/services/model/person.model.mjs +5 -1
  45. package/esm2020/src/app/core/services/model/referential.model.mjs +3 -3
  46. package/esm2020/src/app/core/services/model/token.model.mjs +1 -1
  47. package/esm2020/src/app/core/services/model/tree-item-entity.model.mjs +199 -0
  48. package/esm2020/src/app/core/services/network.service.mjs +12 -8
  49. package/esm2020/src/app/core/services/network.utils.mjs +1 -1
  50. package/esm2020/src/app/core/services/platform.service.mjs +15 -16
  51. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +10 -10
  52. package/esm2020/src/app/core/services/testing/referential-filter.model.mjs +1 -1
  53. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +3 -3
  54. package/esm2020/src/app/core/settings/settings.page.mjs +2 -2
  55. package/esm2020/src/app/core/table/async-table.class.mjs +4 -3
  56. package/esm2020/src/app/core/table/entities-async-table-datasource.class.mjs +1 -1
  57. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +1 -1
  58. package/esm2020/src/app/core/table/table-select-columns.component.mjs +1 -1
  59. package/esm2020/src/app/core/table/table.class.mjs +19 -14
  60. package/esm2020/src/app/core/table/table.utils.mjs +6 -3
  61. package/esm2020/src/app/core/table/testing/table.testing.mjs +3 -2
  62. package/esm2020/src/app/shared/audio/audio.mjs +5 -5
  63. package/esm2020/src/app/shared/capacitor/plugins.mjs +1 -1
  64. package/esm2020/src/app/shared/dates.mjs +3 -1
  65. package/esm2020/src/app/shared/debug/debug.component.mjs +1 -1
  66. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +5 -4
  67. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +1 -1
  68. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +1 -1
  69. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +1 -1
  70. package/esm2020/src/app/shared/events.mjs +2 -1
  71. package/esm2020/src/app/shared/file/csv.utils.mjs +12 -14
  72. package/esm2020/src/app/shared/file/file.utils.mjs +2 -2
  73. package/esm2020/src/app/shared/file/images.utils.mjs +2 -2
  74. package/esm2020/src/app/shared/file/json.utils.mjs +3 -3
  75. package/esm2020/src/app/shared/file/uri.utils.mjs +2 -1
  76. package/esm2020/src/app/shared/form/field.component.mjs +28 -3
  77. package/esm2020/src/app/shared/forms.mjs +48 -30
  78. package/esm2020/src/app/shared/functions.mjs +7 -2
  79. package/esm2020/src/app/shared/geolocation/geolocation.utils.mjs +1 -1
  80. package/esm2020/src/app/shared/help/help.modal.mjs +1 -1
  81. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +9 -6
  82. package/esm2020/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +1 -1
  83. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +1 -1
  84. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +2 -2
  85. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +1 -1
  86. package/esm2020/src/app/shared/interceptors/progess.interceptor.mjs +1 -1
  87. package/esm2020/src/app/shared/logging/logger.model.mjs +1 -1
  88. package/esm2020/src/app/shared/logging/logging-service.class.mjs +2 -2
  89. package/esm2020/src/app/shared/logging/logging-service.config.mjs +1 -1
  90. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +10 -10
  91. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +4 -6
  92. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +1 -1
  93. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +8 -3
  94. package/esm2020/src/app/shared/material/badge/badge.test.mjs +2 -2
  95. package/esm2020/src/app/shared/material/chips/material.chips.mjs +9 -10
  96. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
  97. package/esm2020/src/app/shared/material/datetime/material.date.mjs +2 -2
  98. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +3 -3
  99. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +3 -3
  100. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +1 -1
  101. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +1 -1
  102. package/esm2020/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +1 -1
  103. package/esm2020/src/app/shared/material/duration/material.duration.mjs +3 -3
  104. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +5 -4
  105. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +1 -1
  106. package/esm2020/src/app/shared/material/material.animations.mjs +41 -2
  107. package/esm2020/src/app/shared/material/material.testing.module.mjs +2 -2
  108. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +1 -1
  109. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +1 -1
  110. package/esm2020/src/app/shared/modules.mjs +2 -1
  111. package/esm2020/src/app/shared/named-filter/named-filter.model.mjs +1 -1
  112. package/esm2020/src/app/shared/observables.mjs +3 -2
  113. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +3 -1
  114. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +1 -1
  115. package/esm2020/src/app/shared/pipes/form.pipes.mjs +1 -1
  116. package/esm2020/src/app/shared/pipes/property.pipes.mjs +1 -1
  117. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +1 -1
  118. package/esm2020/src/app/shared/platforms.mjs +1 -1
  119. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +3 -1
  120. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +5 -6
  121. package/esm2020/src/app/shared/services/startable-service.class.mjs +1 -1
  122. package/esm2020/src/app/shared/services/translate-context.service.mjs +11 -13
  123. package/esm2020/src/app/shared/services/validator-service.class.mjs +1 -1
  124. package/esm2020/src/app/shared/shared-routing.module.mjs +2 -1
  125. package/esm2020/src/app/shared/shared.testing.module.mjs +16 -8
  126. package/esm2020/src/app/shared/storage/storage-explorer.component.mjs +3 -3
  127. package/esm2020/src/app/shared/storage/storage-explorer.module.mjs +5 -18
  128. package/esm2020/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +35 -0
  129. package/esm2020/src/app/shared/storage/storage-explorer.testing.module.mjs +33 -0
  130. package/esm2020/src/app/shared/storage/storage.service.mjs +3 -3
  131. package/esm2020/src/app/shared/storage/storage.utils.mjs +1 -1
  132. package/esm2020/src/app/shared/testing/observable.test.mjs +2 -2
  133. package/esm2020/src/app/shared/testing/tests.page.mjs +1 -1
  134. package/esm2020/src/app/shared/toast/toast.testing.mjs +1 -1
  135. package/esm2020/src/app/shared/toast/toasts.mjs +2 -2
  136. package/esm2020/src/app/shared/toolbar/toolbar.mjs +1 -1
  137. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +2 -1
  138. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +1 -1
  139. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +5 -5
  140. package/esm2020/src/app/shared/validator/validators.mjs +10 -3
  141. package/esm2020/src/app/shared/version/versions.mjs +2 -2
  142. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +2 -2
  143. package/esm2020/src/app/social/job/progression/job-progression.model.mjs +1 -1
  144. package/esm2020/src/app/social/job/progression/job-progression.service.mjs +1 -1
  145. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +1 -1
  146. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +3 -3
  147. package/esm2020/src/app/social/message/message.form.mjs +11 -8
  148. package/esm2020/src/app/social/message/message.modal.mjs +1 -1
  149. package/esm2020/src/app/social/message/message.model.mjs +1 -1
  150. package/esm2020/src/app/social/message/message.service.mjs +2 -2
  151. package/esm2020/src/app/social/social.module.mjs +2 -2
  152. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +5 -5
  153. package/esm2020/src/app/social/user-event/testing/user-event.testing.model.mjs +1 -1
  154. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +1 -1
  155. package/esm2020/src/app/social/user-event/user-event.model.mjs +1 -1
  156. package/esm2020/src/app/social/user-event/user-event.service.mjs +4 -3
  157. package/fesm2015/sumaris-net.ngx-components.mjs +2758 -1263
  158. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  159. package/fesm2020/sumaris-net.ngx-components.mjs +2687 -1223
  160. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  161. package/package.json +8 -9
  162. package/public_api.d.ts +11 -1
  163. package/src/app/admin/services/person.service.d.ts +5 -0
  164. package/src/app/admin/users/users.d.ts +4 -2
  165. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +14 -2
  166. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +1 -0
  167. package/src/app/core/form/form.class.d.ts +2 -0
  168. package/src/app/core/form/form.utils.d.ts +4 -1
  169. package/src/app/core/form/text-popover/text-popover.component.d.ts +2 -1
  170. package/src/app/core/graphql/graphql.service.d.ts +5 -4
  171. package/src/app/core/graphql/graphql.utils.d.ts +2 -2
  172. package/src/app/core/home/home.d.ts +11 -10
  173. package/src/app/core/install/install-upgrade-card.component.d.ts +3 -2
  174. package/src/app/core/menu/menu.component.d.ts +29 -26
  175. package/src/app/core/menu/menu.model.d.ts +123 -6
  176. package/src/app/core/menu/menu.module.d.ts +8 -4
  177. package/src/app/core/menu/menu.service.d.ts +76 -5
  178. package/src/app/core/menu/sub-menu-tab.directive.d.ts +29 -0
  179. package/src/app/core/menu/testing/menu-other.testing.d.ts +15 -0
  180. package/src/app/core/menu/testing/menu.testing.d.ts +43 -0
  181. package/src/app/core/menu/testing/menu.testing.module.d.ts +12 -0
  182. package/src/app/core/peer/select-peer.modal.d.ts +4 -3
  183. package/src/app/core/register/register.form.d.ts +3 -2
  184. package/src/app/core/services/account.service.d.ts +4 -3
  185. package/src/app/core/services/config.service.d.ts +5 -3
  186. package/src/app/core/services/crypto.service.d.ts +7 -7
  187. package/src/app/core/services/local-settings.service.d.ts +1 -0
  188. package/src/app/core/services/model/account.model.d.ts +7 -1
  189. package/src/app/core/services/model/entity.model.d.ts +5 -8
  190. package/src/app/core/services/model/filter.model.d.ts +2 -0
  191. package/src/app/core/services/model/person.model.d.ts +1 -0
  192. package/src/app/core/services/model/tree-item-entity.model.d.ts +53 -0
  193. package/src/app/core/services/network.service.d.ts +4 -3
  194. package/src/app/core/services/platform.service.d.ts +4 -5
  195. package/src/app/core/services/storage/entities-storage.service.d.ts +3 -3
  196. package/src/app/core/settings/settings.page.d.ts +5 -5
  197. package/src/app/core/table/async-table.class.d.ts +1 -0
  198. package/src/app/core/table/table.class.d.ts +5 -1
  199. package/src/app/core/table/testing/table.testing.d.ts +1 -0
  200. package/src/app/shared/dates.d.ts +2 -0
  201. package/src/app/shared/events.d.ts +1 -0
  202. package/src/app/shared/file/uri.utils.d.ts +1 -0
  203. package/src/app/shared/form/field.component.d.ts +1 -0
  204. package/src/app/shared/forms.d.ts +4 -1
  205. package/src/app/shared/functions.d.ts +1 -0
  206. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -0
  207. package/src/app/shared/material/badge/badge.directive.d.ts +1 -1
  208. package/src/app/shared/material/datetime/material.dateshort.d.ts +1 -1
  209. package/src/app/shared/material/latlong/material.latlong.d.ts +1 -0
  210. package/src/app/shared/material/material.animations.d.ts +2 -0
  211. package/src/app/shared/modules.d.ts +1 -0
  212. package/src/app/shared/observables.d.ts +1 -0
  213. package/src/app/shared/pipes/translate-context.pipe.d.ts +1 -1
  214. package/src/app/shared/services/memory-entity-service.class.d.ts +2 -0
  215. package/src/app/shared/services/startable-observable-service.class.d.ts +1 -1
  216. package/src/app/shared/services/translate-context.service.d.ts +2 -2
  217. package/src/app/shared/services/validator-service.class.d.ts +1 -0
  218. package/src/app/shared/shared-routing.module.d.ts +1 -0
  219. package/src/app/shared/shared.testing.module.d.ts +3 -2
  220. package/src/app/shared/storage/storage-explorer.component.d.ts +2 -2
  221. package/src/app/shared/storage/storage-explorer.module.d.ts +5 -8
  222. package/src/app/shared/storage/storage-explorer.testing-routing.module.d.ts +9 -0
  223. package/src/app/shared/storage/storage-explorer.testing.module.d.ts +10 -0
  224. package/src/app/shared/storage/storage.service.d.ts +0 -1
  225. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +1 -0
  226. package/src/app/shared/validator/validators.d.ts +4 -0
  227. package/src/app/social/user-event/user-event.model.d.ts +1 -2
  228. package/src/assets/i18n/en-US.json +1 -0
  229. package/src/assets/i18n/en.json +1 -0
  230. package/src/assets/i18n/fr.json +10 -1
  231. package/src/assets/manifest.json +1 -1
  232. package/src/theme/_ngx-components.scss +2 -1
@@ -17,17 +17,15 @@ export class TranslateContextService {
17
17
  return of();
18
18
  // Observe the first key, then add other
19
19
  return this.get(key[0])
20
- .pipe(map(translation => {
21
- return key.slice(1) // Skip 1, because we already have it
22
- .reduce((map, k) => {
23
- map[k] = this.instant(k, context);
24
- return map;
25
- },
26
- // Init with the first value
27
- {
28
- [key[0]]: translation
29
- });
30
- }));
20
+ .pipe(map(translation => key.slice(1) // Skip 1, because we already have it
21
+ .reduce((map, k) => {
22
+ map[k] = this.instant(k, context);
23
+ return map;
24
+ },
25
+ // Init with the first value
26
+ {
27
+ [key[0]]: translation
28
+ })));
31
29
  }
32
30
  // Compute a contextual i18n key, using the context as suffix
33
31
  const contextualKeys = this.contextualKeys(key, context);
@@ -89,7 +87,7 @@ export class TranslateContextService {
89
87
  }
90
88
  findFirstValid(keys, translations) {
91
89
  // For eac contextual key: try to find translation, then use the first valid
92
- for (let key of keys) {
90
+ for (const key of keys) {
93
91
  if (translations[key] !== key)
94
92
  return translations[key];
95
93
  }
@@ -102,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
102
100
  type: Injectable,
103
101
  args: [{ providedIn: 'root' }]
104
102
  }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzL3RyYW5zbGF0ZS1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsR0FBRyxFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUMsTUFBTSxjQUFjLENBQUM7OztBQUlsRSxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQ1ksU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFFdkMsQ0FBQztJQUdELEdBQUcsQ0FBQyxHQUFvQixFQUFFLE9BQWdCLEVBQUUsaUJBQTBCO1FBQ3BFLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFFL0UsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtnQkFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzdCLHdDQUF3QztZQUN4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNwQixJQUFJLENBQUMsR0FBRyxDQUNQLFdBQVcsQ0FBQyxFQUFFO2dCQUNSLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7cUJBQ3RELE1BQU0sQ0FBQyxD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RTtZQUMxQixPQUFPLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQztTQUN6QjtRQUVELDZEQUE2RDtRQUM3RCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ3BCLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFjLEVBQUUsWUFBdUM7UUFDNUUsNEVBQTRFO1FBQzVFLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUc7Z0JBQUUsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDekQ7UUFDRCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO0lBQy9FLENBQUM7O29IQTFHVSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQURYLE1BQU07MkZBQ2xCLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7bWFwLCBtZXJnZU1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2lzTmlsLCBpc05pbE9yQmxhbmssIGlzTm90TmlsT3JCbGFua30gZnJvbSAnLi4vZnVuY3Rpb25zJztcblxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVDb250ZXh0U2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZVxuICApIHtcbiAgfVxuXG5cbiAgZ2V0KGtleTogc3RyaW5nfHN0cmluZ1tdLCBjb250ZXh0Pzogc3RyaW5nLCBpbnRlcnBvbGF0ZVBhcmFtcz86IE9iamVjdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgLy8gTm8gY29udGV4dDogZG8gYSBub3JtYWwgdHJhbnNsYXRlXG4gICAgaWYgKCFrZXkgfHwgIWlzTmlsKGNvbnRleHQpKSByZXR1cm4gdGhpcy50cmFuc2xhdGUuZ2V0KGtleSwgaW50ZXJwb2xhdGVQYXJhbXMpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5KSkge1xuICAgICAgaWYgKCFrZXkubGVuZ3RoKSByZXR1cm4gb2YoKTtcbiAgICAgIC8vIE9ic2VydmUgdGhlIGZpcnN0IGtleSwgdGhlbiBhZGQgb3RoZXJcbiAgICAgIHJldHVybiB0aGlzLmdldChrZXlbMF0pXG4gICAgICAgIC5waXBlKG1hcChcbiAgICAgICAgICB0cmFuc2xhdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGtleS5zbGljZSgxKSAvLyBTa2lwIDEsIGJlY2F1c2Ugd2UgYWxyZWFkeSBoYXZlIGl0XG4gICAgICAgICAgICAgICAgICAucmVkdWNlKChtYXAsIGspID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbWFwW2tdID0gdGhpcy5pbnN0YW50KGssIGNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFwO1xuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIC8vIEluaXQgd2l0aCB0aGUgZmlyc3QgdmFsdWVcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgW2tleVswXV06IHRyYW5zbGF0aW9uXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIENvbXB1dGUgYSBjb250ZXh0dWFsIGkxOG4ga2V5LCB1c2luZyB0aGUgY29udGV4dCBhcyBzdWZmaXhcbiAgICBjb25zdCBjb250ZXh0dWFsS2V5cyA9IHRoaXMuY29udGV4dHVhbEtleXMoa2V5LCBjb250ZXh0KTtcblxuICAgIC8vIFJldHVybiB0aGUgY29udGV4dHVhbCB0cmFuc2xhdGlvbiwgb3IgZGVmYXVsdCBvZiBub3QgZXhpc3RzXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldChjb250ZXh0dWFsS2V5cywgaW50ZXJwb2xhdGVQYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHRyYW5zbGF0aW9ucyA9PiB0aGlzLmZpbmRGaXJzdFZhbGlkKGNvbnRleHR1YWxLZXlzLCB0cmFuc2xhdGlvbnMpKVxuICAgICAgKTtcbiAgfVxuXG4gIGluc3RhbnQoa2V5OiBzdHJpbmd8c3RyaW5nW10sIGNvbnRleHQ/OiBzdHJpbmcsIGludGVycG9sYXRlUGFyYW1zPzogT2JqZWN0KTogYW55IHtcbiAgICAvLyBObyBjb250ZXh0OiBkbyBhIG5vcm1hbCB0cmFuc2xhdGVcbiAgICBpZiAoIWtleSB8fCBpc05pbE9yQmxhbmsoY29udGV4dCkpIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGtleSwgaW50ZXJwb2xhdGVQYXJhbXMpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5KSkge1xuICAgICAgcmV0dXJuIGtleS5yZWR1Y2UoKG1hcCwgaykgPT4ge1xuICAgICAgICBtYXBba10gPSB0aGlzLmluc3RhbnQoaywgY29udGV4dCk7XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgICB9LCB7fSk7XG4gICAgfVxuXG4gICAgLy8gQ29tcHV0ZSBhIGNvbnRleHR1YWwgaTE4biBrZXksIHVzaW5nIHRoZSBjb250ZXh0IGFzIHN1ZmZpeFxuICAgIGNvbnN0IGNvbnRleHR1YWxLZXlzID0gdGhpcy5jb250ZXh0dWFsS2V5cyhrZXksIGNvbnRleHQpO1xuICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoY29udGV4dHVhbEtleXMsIGludGVycG9sYXRlUGFyYW1zKTtcblxuICAgIHJldHVybiB0aGlzLmZpbmRGaXJzdFZhbGlkKGNvbnRleHR1YWxLZXlzLCB0cmFuc2xhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgY29udGV4dHVhbCBpMThuIGtleXMsIHVzaW5nIHRoZSBjb250ZXh0IGFzIHN1ZmZpeC48YnI+XG4gICAqIFN1ZmZpeCBjYW4gYmUgc2ltcGxlIG5hbWUgKGxpa2UgJ2FhYScgLSB3aWxsIHJldHVybiBbJzxrZXk+LmFhYSddKSBvciBjb21wbGV4ZSAobGlrZSAnYWFhLmJiYicgLSB3aWxsIHJldHVybiBbJzxrZXk+LmFhYS5iYmInLCAnPGtleT4uYWFhJ11cbiAgICpcbiAgICogQHBhcmFtIGtleVxuICAgKiBAcGFyYW0gY29udGV4dFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29udGV4dHVhbEtleXMoa2V5OiBzdHJpbmcsIGNvbnRleHQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gY29udGV4dC5zcGxpdCgnLicpXG4gICAgICAuZmlsdGVyKGlzTm90TmlsT3JCbGFuaylcbiAgICAgIC5yZWR1Y2UoKHJlcywgaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBpbmhlcml0ZWRDb250ZXh0ID0gcmVzLmxlbmd0aCA+IDAgPyAocmVzW3Jlcy5sZW5ndGggLSAxXSArICcuJykgOiAnJztcbiAgICAgICAgcmV0dXJuIHJlcy5jb25jYXQoIGluaGVyaXRlZENvbnRleHQgKyBpdGVtKVxuICAgICAgfSwgW10pXG4gICAgICAucmV2ZXJzZSgpIC8vIFN0YXJ0IHdpdGggY2hpbGRyZW4sIGVuZHMgd2l0aCBwYXJlbnQga2V5XG4gICAgICAubWFwKGNvbnRleHRJdGVtID0+IHRoaXMuY29udGV4dHVhbEtleShrZXksIGNvbnRleHRJdGVtKSlcbiAgICAgIC5jb25jYXQoa2V5KVxuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgYSBjb250ZXh0dWFsIGkxOG4ga2V5LCB1c2luZyB0aGUgY29udGV4dCBhcyBzdWZmaXhcbiAgICpcbiAgICogQHBhcmFtIGtleVxuICAgKiBAcGFyYW0gY29udGV4dFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29udGV4dHVhbEtleShrZXk6IHN0cmluZywgY29udGV4dDogc3RyaW5nKTogc3RyaW5nIHtcblxuICAgIC8vIEFwcGVuZCBhIGRvdCBvbiBjb250ZXh0IGlmIG1pc3NpbmdcbiAgICBpZiAoIWNvbnRleHQuZW5kc1dpdGgoJy4nKSkge1xuICAgICAgY29udGV4dCA9IGNvbnRleHQgKyAnLic7XG4gICAgfVxuXG4gICAgLy8gQ29tcHV0ZSBhIGNvbnRleHR1YWwgaTE4biBrZXksIHVzaW5nIHRoZSBjb250ZXh0IGFzIHN1ZmZpeFxuICAgIGNvbnN0IHBhcnRzID0ga2V5LnNwbGl0KCcuJyk7XG4gICAgcmV0dXJuIChwYXJ0cy5sZW5ndGggPT09IDEpXG4gICAgICA/IGAke2NvbnRleHR9JHtrZXl9YFxuICAgICAgOiBwYXJ0cy5zbGljZSgwLCBwYXJ0cy5sZW5ndGggLSAxKS5jb25jYXQoY29udGV4dCArIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdKS5qb2luKCcuJyk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRGaXJzdFZhbGlkKGtleXM6IHN0cmluZ1tdLCB0cmFuc2xhdGlvbnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiBzdHJpbmcge1xuICAgIC8vIEZvciBlYWMgY29udGV4dHVhbCBrZXk6IHRyeSB0byBmaW5kIHRyYW5zbGF0aW9uLCB0aGVuIHVzZSB0aGUgZmlyc3QgdmFsaWRcbiAgICBmb3IgKGxldCBrZXkgb2Yga2V5cykge1xuICAgICAgaWYgKHRyYW5zbGF0aW9uc1trZXldICE9PSBrZXkpIHJldHVybiB0cmFuc2xhdGlvbnNba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIHRyYW5zbGF0aW9uc1trZXlzW2tleXMubGVuZ3RoLTFdXTsgLy8gUmV0dXJuIHRoZSBsYXN0IGtleXMgdHJhbnNsYXRpb25cbiAgfVxufVxuIl19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3NlcnZpY2VzL3RyYW5zbGF0ZS1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUMsTUFBTSxjQUFjLENBQUM7OztBQUlsRSxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQ1ksU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFFdkMsQ0FBQztJQUdELEdBQUcsQ0FBQyxHQUFvQixFQUFFLE9BQWdCLEVBQUUsaUJBQXVCO1FBQ2pFLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFFL0UsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtnQkFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQzdCLHdDQUF3QztZQUN4QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNwQixJQUFJLENBQUMsR0FBRyxDQUNQLFdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7aUJBQ3hELE1BQU0sQ0FBQyxDQUFDLEdB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QUcsR0FBRyxDQUFDO1NBQ3pCO1FBRUQsNkRBQTZEO1FBQzdELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDcEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRU8sY0FBYyxDQUFDLElBQWMsRUFBRSxZQUF1QztRQUM1RSw0RUFBNEU7UUFDNUUsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDdEIsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRztnQkFBRSxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6RDtRQUNELE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUM7SUFDL0UsQ0FBQzs7b0hBeEdVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRFgsTUFBTTsyRkFDbEIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtpc05pbCwgaXNOaWxPckJsYW5rLCBpc05vdE5pbE9yQmxhbmt9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlQ29udGV4dFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gIH1cblxuXG4gIGdldChrZXk6IHN0cmluZ3xzdHJpbmdbXSwgY29udGV4dD86IHN0cmluZywgaW50ZXJwb2xhdGVQYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIE5vIGNvbnRleHQ6IGRvIGEgbm9ybWFsIHRyYW5zbGF0ZVxuICAgIGlmICgha2V5IHx8ICFpc05pbChjb250ZXh0KSkgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldChrZXksIGludGVycG9sYXRlUGFyYW1zKTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGtleSkpIHtcbiAgICAgIGlmICgha2V5Lmxlbmd0aCkgcmV0dXJuIG9mKCk7XG4gICAgICAvLyBPYnNlcnZlIHRoZSBmaXJzdCBrZXksIHRoZW4gYWRkIG90aGVyXG4gICAgICByZXR1cm4gdGhpcy5nZXQoa2V5WzBdKVxuICAgICAgICAucGlwZShtYXAoXG4gICAgICAgICAgdHJhbnNsYXRpb24gPT4ga2V5LnNsaWNlKDEpIC8vIFNraXAgMSwgYmVjYXVzZSB3ZSBhbHJlYWR5IGhhdmUgaXRcbiAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKG1hcCwgaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBtYXBba10gPSB0aGlzLmluc3RhbnQoaywgY29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXA7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgLy8gSW5pdCB3aXRoIHRoZSBmaXJzdCB2YWx1ZVxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBba2V5WzBdXTogdHJhbnNsYXRpb25cbiAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIENvbXB1dGUgYSBjb250ZXh0dWFsIGkxOG4ga2V5LCB1c2luZyB0aGUgY29udGV4dCBhcyBzdWZmaXhcbiAgICBjb25zdCBjb250ZXh0dWFsS2V5cyA9IHRoaXMuY29udGV4dHVhbEtleXMoa2V5LCBjb250ZXh0KTtcblxuICAgIC8vIFJldHVybiB0aGUgY29udGV4dHVhbCB0cmFuc2xhdGlvbiwgb3IgZGVmYXVsdCBvZiBub3QgZXhpc3RzXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmdldChjb250ZXh0dWFsS2V5cywgaW50ZXJwb2xhdGVQYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHRyYW5zbGF0aW9ucyA9PiB0aGlzLmZpbmRGaXJzdFZhbGlkKGNvbnRleHR1YWxLZXlzLCB0cmFuc2xhdGlvbnMpKVxuICAgICAgKTtcbiAgfVxuXG4gIGluc3RhbnQoa2V5OiBzdHJpbmd8c3RyaW5nW10sIGNvbnRleHQ/OiBzdHJpbmcsIGludGVycG9sYXRlUGFyYW1zPzogYW55KTogYW55IHtcbiAgICAvLyBObyBjb250ZXh0OiBkbyBhIG5vcm1hbCB0cmFuc2xhdGVcbiAgICBpZiAoIWtleSB8fCBpc05pbE9yQmxhbmsoY29udGV4dCkpIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGtleSwgaW50ZXJwb2xhdGVQYXJhbXMpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5KSkge1xuICAgICAgcmV0dXJuIGtleS5yZWR1Y2UoKG1hcCwgaykgPT4ge1xuICAgICAgICBtYXBba10gPSB0aGlzLmluc3RhbnQoaywgY29udGV4dCk7XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgICB9LCB7fSk7XG4gICAgfVxuXG4gICAgLy8gQ29tcHV0ZSBhIGNvbnRleHR1YWwgaTE4biBrZXksIHVzaW5nIHRoZSBjb250ZXh0IGFzIHN1ZmZpeFxuICAgIGNvbnN0IGNvbnRleHR1YWxLZXlzID0gdGhpcy5jb250ZXh0dWFsS2V5cyhrZXksIGNvbnRleHQpO1xuICAgIGNvbnN0IHRyYW5zbGF0aW9ucyA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoY29udGV4dHVhbEtleXMsIGludGVycG9sYXRlUGFyYW1zKTtcblxuICAgIHJldHVybiB0aGlzLmZpbmRGaXJzdFZhbGlkKGNvbnRleHR1YWxLZXlzLCB0cmFuc2xhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgY29udGV4dHVhbCBpMThuIGtleXMsIHVzaW5nIHRoZSBjb250ZXh0IGFzIHN1ZmZpeC48YnI+XG4gICAqIFN1ZmZpeCBjYW4gYmUgc2ltcGxlIG5hbWUgKGxpa2UgJ2FhYScgLSB3aWxsIHJldHVybiBbJzxrZXk+LmFhYSddKSBvciBjb21wbGV4ZSAobGlrZSAnYWFhLmJiYicgLSB3aWxsIHJldHVybiBbJzxrZXk+LmFhYS5iYmInLCAnPGtleT4uYWFhJ11cbiAgICpcbiAgICogQHBhcmFtIGtleVxuICAgKiBAcGFyYW0gY29udGV4dFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29udGV4dHVhbEtleXMoa2V5OiBzdHJpbmcsIGNvbnRleHQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gY29udGV4dC5zcGxpdCgnLicpXG4gICAgICAuZmlsdGVyKGlzTm90TmlsT3JCbGFuaylcbiAgICAgIC5yZWR1Y2UoKHJlcywgaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBpbmhlcml0ZWRDb250ZXh0ID0gcmVzLmxlbmd0aCA+IDAgPyAocmVzW3Jlcy5sZW5ndGggLSAxXSArICcuJykgOiAnJztcbiAgICAgICAgcmV0dXJuIHJlcy5jb25jYXQoIGluaGVyaXRlZENvbnRleHQgKyBpdGVtKTtcbiAgICAgIH0sIFtdKVxuICAgICAgLnJldmVyc2UoKSAvLyBTdGFydCB3aXRoIGNoaWxkcmVuLCBlbmRzIHdpdGggcGFyZW50IGtleVxuICAgICAgLm1hcChjb250ZXh0SXRlbSA9PiB0aGlzLmNvbnRleHR1YWxLZXkoa2V5LCBjb250ZXh0SXRlbSkpXG4gICAgICAuY29uY2F0KGtleSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZSBhIGNvbnRleHR1YWwgaTE4biBrZXksIHVzaW5nIHRoZSBjb250ZXh0IGFzIHN1ZmZpeFxuICAgKlxuICAgKiBAcGFyYW0ga2V5XG4gICAqIEBwYXJhbSBjb250ZXh0XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb250ZXh0dWFsS2V5KGtleTogc3RyaW5nLCBjb250ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuXG4gICAgLy8gQXBwZW5kIGEgZG90IG9uIGNvbnRleHQgaWYgbWlzc2luZ1xuICAgIGlmICghY29udGV4dC5lbmRzV2l0aCgnLicpKSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dCArICcuJztcbiAgICB9XG5cbiAgICAvLyBDb21wdXRlIGEgY29udGV4dHVhbCBpMThuIGtleSwgdXNpbmcgdGhlIGNvbnRleHQgYXMgc3VmZml4XG4gICAgY29uc3QgcGFydHMgPSBrZXkuc3BsaXQoJy4nKTtcbiAgICByZXR1cm4gKHBhcnRzLmxlbmd0aCA9PT0gMSlcbiAgICAgID8gYCR7Y29udGV4dH0ke2tleX1gXG4gICAgICA6IHBhcnRzLnNsaWNlKDAsIHBhcnRzLmxlbmd0aCAtIDEpLmNvbmNhdChjb250ZXh0ICsgcGFydHNbcGFydHMubGVuZ3RoIC0gMV0pLmpvaW4oJy4nKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEZpcnN0VmFsaWQoa2V5czogc3RyaW5nW10sIHRyYW5zbGF0aW9uczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgLy8gRm9yIGVhYyBjb250ZXh0dWFsIGtleTogdHJ5IHRvIGZpbmQgdHJhbnNsYXRpb24sIHRoZW4gdXNlIHRoZSBmaXJzdCB2YWxpZFxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgIGlmICh0cmFuc2xhdGlvbnNba2V5XSAhPT0ga2V5KSByZXR1cm4gdHJhbnNsYXRpb25zW2tleV07XG4gICAgfVxuICAgIHJldHVybiB0cmFuc2xhdGlvbnNba2V5c1trZXlzLmxlbmd0aC0xXV07IC8vIFJldHVybiB0aGUgbGFzdCBrZXlzIHRyYW5zbGF0aW9uXG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy92YWxpZGF0b3Itc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtWYWxpZGF0b3JTZXJ2aWNlfSBmcm9tICdAZS1pcy9uZ3gtbWF0ZXJpYWwtdGFibGUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGludGVyZmFjZSBJVmFsaWRhdG9yU2VydmljZTxUPiBleHRlbmRzIFZhbGlkYXRvclNlcnZpY2Uge1xuXG4gIGdldEZvcm1Hcm91cChkYXRhPzogVCk6IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgZXJyb3JzIGZyb20gYSBjb250cm9sc1xuICAgKiBAcGFyYW0gY29udHJvbCBhbnkgY29udHJvbCwgb3IgRm9ybUdyb3VwLCBvciBGb3JtQXJyYXlcbiAgICovXG4gIGdldEkxOG5Gb3JtRXJyb3JzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHN0cmluZ1tdO1xuXG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy92YWxpZGF0b3Itc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtWYWxpZGF0b3JTZXJ2aWNlfSBmcm9tICdAZS1pcy9uZ3gtbWF0ZXJpYWwtdGFibGUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGludGVyZmFjZSBJVmFsaWRhdG9yU2VydmljZTxUPiBleHRlbmRzIFZhbGlkYXRvclNlcnZpY2Uge1xuXG4gIGdldEZvcm1Hcm91cChkYXRhPzogVCk6IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgZXJyb3JzIGZyb20gYSBjb250cm9sc1xuICAgKlxuICAgKiBAcGFyYW0gY29udHJvbCBhbnkgY29udHJvbCwgb3IgRm9ybUdyb3VwLCBvciBGb3JtQXJyYXlcbiAgICovXG4gIGdldEkxOG5Gb3JtRXJyb3JzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHN0cmluZ1tdO1xuXG59XG4iXX0=
@@ -9,6 +9,7 @@ export class CustomReuseStrategy extends IonicRouteStrategy {
9
9
  * Force to reuse the route when:
10
10
  * - path change from [/new] -> [/:id]
11
11
  * - or path change from [/new] -> [/new?id=:id]
12
+ *
12
13
  * @param future
13
14
  * @param curr
14
15
  */
@@ -67,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
67
68
  ]
68
69
  }]
69
70
  }], ctorParameters: function () { return []; } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBeUIsa0JBQWtCLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7O0FBSTVDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFFekQ7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLENBQUMsTUFBOEIsRUFBRSxJQUE0QjtRQUMzRSxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRW5ELHNCQUFzQjtRQUN0QixJQUFJLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzNFLDhDQUE4QztZQUM5QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDO1lBRTNGLDRCQUE0QjtZQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEtBQUs7Z0JBQy9DLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxpQ0FBaUM7Z0JBQ3RHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMseUJBQXlCO1lBRXZELDJCQUEyQjtZQUMzQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEtBQUs7Z0JBQ25ELENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxpQ0FBaUM7Z0JBQzFHLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMseUJBQXlCO1lBRXpELGdEQUFnRDtZQUNoRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDdEIscURBQXFEO2dCQUNyRCxJQUFJLE1BQU0sS0FBSyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEtBQUssSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFO29CQUNqSixPQUFPLElBQUksQ0FBQztpQkFDYjtnQkFFRCxtREFBbUQ7Z0JBQ25ELE9BQU8sUUFBUSxLQUFLLEtBQUssSUFBSSxRQUFRLEtBQUssTUFBTSxDQUFDO2FBQ2xEO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O2dIQXhDVSxtQkFBbUI7b0hBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVOztBQXFEWCxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCO1FBQ0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O2dIQUpVLG1CQUFtQjtpSEFBbkIsbUJBQW1CLFlBUDVCLFlBQVk7aUhBT0gsbUJBQW1CLGFBTG5CO1FBQ1QsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFO1FBQzlELEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRTtLQUNoRSxZQUxDLFlBQVk7MkZBT0gsbUJBQW1CO2tCQVQvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7d0JBQzlELEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRTtxQkFDaEU7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVSZXVzZVN0cmF0ZWd5LCBSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0lvbmljUm91dGVTdHJhdGVneX0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtDb21wb25lbnREaXJ0eUd1YXJkfSBmcm9tICcuL2d1YXJkL2NvbXBvbmVudC1kaXJ0eS5ndWFyZCc7XG5pbXBvcnQge2lzTmlsLCBpc05vdE5pbH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDdXN0b21SZXVzZVN0cmF0ZWd5IGV4dGVuZHMgSW9uaWNSb3V0ZVN0cmF0ZWd5IHtcblxuICAvKipcbiAgICogRm9yY2UgdG8gcmV1c2UgdGhlIHJvdXRlIHdoZW46XG4gICAqICAtIHBhdGggY2hhbmdlIGZyb20gWy9uZXddIC0+IFsvOmlkXVxuICAgKiAgLSBvciBwYXRoIGNoYW5nZSBmcm9tIFsvbmV3XSAtPiBbL25ldz9pZD06aWRdXG4gICAqIEBwYXJhbSBmdXR1cmVcbiAgICogQHBhcmFtIGN1cnJcbiAgICovXG4gIHNob3VsZFJldXNlUm91dGUoZnV0dXJlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBjdXJyOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmV1c2UgPSBzdXBlci5zaG91bGRSZXVzZVJvdXRlKGZ1dHVyZSwgY3Vycik7XG5cbiAgICAvLyBJcyBzYW0gcm91dGUgY29uZmlnXG4gICAgaWYgKCFyZXVzZSAmJiBmdXR1cmUucm91dGVDb25maWcgJiYgZnV0dXJlLnJvdXRlQ29uZmlnID09PSBjdXJyLnJvdXRlQ29uZmlnKSB7XG4gICAgICAvLyBSZWFkIHRoZSBwYXJhbWV0ZXIgbmFtZSwgd2hlcmUgaWQgaXMgc3RvcmVkXG4gICAgICBjb25zdCBwYXRoSWRQYXJhbSA9IGZ1dHVyZS5yb3V0ZUNvbmZpZy5kYXRhICYmIGZ1dHVyZS5yb3V0ZUNvbmZpZy5kYXRhLnBhdGhJZFBhcmFtIHx8ICdpZCc7XG5cbiAgICAgIC8vIFJlYWQgdGhlIGN1cnJlbnQgcm91dGUgaWRcbiAgICAgIGNvbnN0IGN1cnJJZCA9IGN1cnIucGFyYW1zW3BhdGhJZFBhcmFtXSA9PT0gJ25ldydcbiAgICAgICAgPyAoY3Vyci5xdWVyeVBhcmFtc1twYXRoSWRQYXJhbV0gfHwgY3Vyci5xdWVyeVBhcmFtc1snaWQnXSB8fCAnbmV3JykgLy8gZS5nLiBwYXRoIGxpa2UgJy9uZXcvP2lkPTxJRD4nXG4gICAgICAgIDogY3Vyci5wYXJhbXNbcGF0aElkUGFyYW1dOyAvLyBlLmcuIHBhdGggbGlrZSAnLzxJRD4nXG5cbiAgICAgIC8vIFJlYWQgdGhlIGZ1dHVyZSByb3V0ZSBpZFxuICAgICAgY29uc3QgZnV0dXJlSWQgPSBmdXR1cmUucGFyYW1zW3BhdGhJZFBhcmFtXSA9PT0gJ25ldydcbiAgICAgICAgPyAoZnV0dXJlLnF1ZXJ5UGFyYW1zW3BhdGhJZFBhcmFtXSB8fCBmdXR1cmUucXVlcnlQYXJhbXNbJ2lkJ10gfHwgJ25ldycpIC8vIGUuZy4gcGF0aCBsaWtlICcvbmV3Lz9pZD08SUQ+J1xuICAgICAgICA6IGZ1dHVyZS5wYXJhbXNbcGF0aElkUGFyYW1dOyAvLyBlLmcuIHBhdGggbGlrZSAnLzxJRD4nXG5cbiAgICAgIC8vIFJldXNlIGlmIHNhbWUgSUQsIHVzaW5nIGEgZnV0dXJlSWQsIGlmIGV4aXN0c1xuICAgICAgaWYgKGlzTm90TmlsKGZ1dHVyZUlkKSkge1xuICAgICAgICAvLyBBbGxvdyByZXVzZSB3aGVuIGNoYW5naW5nIGZyb20gL25ldyB0byAvbmV3P2lkPTppZFxuICAgICAgICBpZiAoY3VycklkID09PSAnbmV3JyAmJiBpc05pbChjdXJyLnF1ZXJ5UGFyYW1zW3BhdGhJZFBhcmFtXSkgJiYgZnV0dXJlLnBhcmFtc1twYXRoSWRQYXJhbV0gPT09ICduZXcnICYmIGlzTm90TmlsKGZ1dHVyZS5xdWVyeVBhcmFtc1twYXRoSWRQYXJhbV0pKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBbGxvdyByZXVzZSBzYW1lIGlkLCBleHBlY3Qgd2hlbiBleHBlY3RlZCAnL25ldydcbiAgICAgICAgcmV0dXJuIGZ1dHVyZUlkICE9PSAnbmV3JyAmJiBmdXR1cmVJZCA9PT0gY3VycklkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXVzZTtcbiAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgUm91dGVyTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogUm91dGVSZXVzZVN0cmF0ZWd5LCB1c2VDbGFzczogQ3VzdG9tUmV1c2VTdHJhdGVneSB9LFxuICAgIHsgcHJvdmlkZTogQ29tcG9uZW50RGlydHlHdWFyZCwgdXNlQ2xhc3M6IENvbXBvbmVudERpcnR5R3VhcmQgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZFJvdXRpbmdNb2R1bGUge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnNvbGUuZGVidWcoJ1tzaGFyZWQtcm91dGluZ10gQ3JlYXRpbmcgbW9kdWxlLi4uJyk7XG4gIH1cbn1cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBeUIsa0JBQWtCLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7O0FBSTVDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFFekQ7Ozs7Ozs7T0FPRztJQUNILGdCQUFnQixDQUFDLE1BQThCLEVBQUUsSUFBNEI7UUFDM0UsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVuRCxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMzRSw4Q0FBOEM7WUFDOUMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztZQUUzRiw0QkFBNEI7WUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLO2dCQUMvQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsaUNBQWlDO2dCQUN0RyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtZQUV2RCwyQkFBMkI7WUFDM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLO2dCQUNuRCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsaUNBQWlDO2dCQUMxRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtZQUV6RCxnREFBZ0Q7WUFDaEQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3RCLHFEQUFxRDtnQkFDckQsSUFBSSxNQUFNLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRTtvQkFDakosT0FBTyxJQUFJLENBQUM7aUJBQ2I7Z0JBRUQsbURBQW1EO2dCQUNuRCxPQUFPLFFBQVEsS0FBSyxLQUFLLElBQUksUUFBUSxLQUFLLE1BQU0sQ0FBQzthQUNsRDtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztnSEF6Q1UsbUJBQW1CO29IQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7QUFzRFgsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QjtRQUNFLE9BQU8sQ0FBQyxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUN2RCxDQUFDOztnSEFKVSxtQkFBbUI7aUhBQW5CLG1CQUFtQixZQVA1QixZQUFZO2lIQU9ILG1CQUFtQixhQUxuQjtRQUNULEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRTtRQUM5RCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7S0FDaEUsWUFMQyxZQUFZOzJGQU9ILG1CQUFtQjtrQkFUL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFO3dCQUM5RCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7cUJBQ2hFO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlUmV1c2VTdHJhdGVneSwgUm91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtJb25pY1JvdXRlU3RyYXRlZ3l9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7Q29tcG9uZW50RGlydHlHdWFyZH0gZnJvbSAnLi9ndWFyZC9jb21wb25lbnQtZGlydHkuZ3VhcmQnO1xuaW1wb3J0IHtpc05pbCwgaXNOb3ROaWx9IGZyb20gJy4vZnVuY3Rpb25zJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmV1c2VTdHJhdGVneSBleHRlbmRzIElvbmljUm91dGVTdHJhdGVneSB7XG5cbiAgLyoqXG4gICAqIEZvcmNlIHRvIHJldXNlIHRoZSByb3V0ZSB3aGVuOlxuICAgKiAgLSBwYXRoIGNoYW5nZSBmcm9tIFsvbmV3XSAtPiBbLzppZF1cbiAgICogIC0gb3IgcGF0aCBjaGFuZ2UgZnJvbSBbL25ld10gLT4gWy9uZXc/aWQ9OmlkXVxuICAgKlxuICAgKiBAcGFyYW0gZnV0dXJlXG4gICAqIEBwYXJhbSBjdXJyXG4gICAqL1xuICBzaG91bGRSZXVzZVJvdXRlKGZ1dHVyZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgY3VycjogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJldXNlID0gc3VwZXIuc2hvdWxkUmV1c2VSb3V0ZShmdXR1cmUsIGN1cnIpO1xuXG4gICAgLy8gSXMgc2FtIHJvdXRlIGNvbmZpZ1xuICAgIGlmICghcmV1c2UgJiYgZnV0dXJlLnJvdXRlQ29uZmlnICYmIGZ1dHVyZS5yb3V0ZUNvbmZpZyA9PT0gY3Vyci5yb3V0ZUNvbmZpZykge1xuICAgICAgLy8gUmVhZCB0aGUgcGFyYW1ldGVyIG5hbWUsIHdoZXJlIGlkIGlzIHN0b3JlZFxuICAgICAgY29uc3QgcGF0aElkUGFyYW0gPSBmdXR1cmUucm91dGVDb25maWcuZGF0YSAmJiBmdXR1cmUucm91dGVDb25maWcuZGF0YS5wYXRoSWRQYXJhbSB8fCAnaWQnO1xuXG4gICAgICAvLyBSZWFkIHRoZSBjdXJyZW50IHJvdXRlIGlkXG4gICAgICBjb25zdCBjdXJySWQgPSBjdXJyLnBhcmFtc1twYXRoSWRQYXJhbV0gPT09ICduZXcnXG4gICAgICAgID8gKGN1cnIucXVlcnlQYXJhbXNbcGF0aElkUGFyYW1dIHx8IGN1cnIucXVlcnlQYXJhbXNbJ2lkJ10gfHwgJ25ldycpIC8vIGUuZy4gcGF0aCBsaWtlICcvbmV3Lz9pZD08SUQ+J1xuICAgICAgICA6IGN1cnIucGFyYW1zW3BhdGhJZFBhcmFtXTsgLy8gZS5nLiBwYXRoIGxpa2UgJy88SUQ+J1xuXG4gICAgICAvLyBSZWFkIHRoZSBmdXR1cmUgcm91dGUgaWRcbiAgICAgIGNvbnN0IGZ1dHVyZUlkID0gZnV0dXJlLnBhcmFtc1twYXRoSWRQYXJhbV0gPT09ICduZXcnXG4gICAgICAgID8gKGZ1dHVyZS5xdWVyeVBhcmFtc1twYXRoSWRQYXJhbV0gfHwgZnV0dXJlLnF1ZXJ5UGFyYW1zWydpZCddIHx8ICduZXcnKSAvLyBlLmcuIHBhdGggbGlrZSAnL25ldy8/aWQ9PElEPidcbiAgICAgICAgOiBmdXR1cmUucGFyYW1zW3BhdGhJZFBhcmFtXTsgLy8gZS5nLiBwYXRoIGxpa2UgJy88SUQ+J1xuXG4gICAgICAvLyBSZXVzZSBpZiBzYW1lIElELCB1c2luZyBhIGZ1dHVyZUlkLCBpZiBleGlzdHNcbiAgICAgIGlmIChpc05vdE5pbChmdXR1cmVJZCkpIHtcbiAgICAgICAgLy8gQWxsb3cgcmV1c2Ugd2hlbiBjaGFuZ2luZyBmcm9tIC9uZXcgdG8gL25ldz9pZD06aWRcbiAgICAgICAgaWYgKGN1cnJJZCA9PT0gJ25ldycgJiYgaXNOaWwoY3Vyci5xdWVyeVBhcmFtc1twYXRoSWRQYXJhbV0pICYmIGZ1dHVyZS5wYXJhbXNbcGF0aElkUGFyYW1dID09PSAnbmV3JyAmJiBpc05vdE5pbChmdXR1cmUucXVlcnlQYXJhbXNbcGF0aElkUGFyYW1dKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWxsb3cgcmV1c2Ugc2FtZSBpZCwgZXhwZWN0IHdoZW4gZXhwZWN0ZWQgJy9uZXcnXG4gICAgICAgIHJldHVybiBmdXR1cmVJZCAhPT0gJ25ldycgJiYgZnV0dXJlSWQgPT09IGN1cnJJZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmV1c2U7XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFJvdXRlck1vZHVsZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IFJvdXRlUmV1c2VTdHJhdGVneSwgdXNlQ2xhc3M6IEN1c3RvbVJldXNlU3RyYXRlZ3kgfSxcbiAgICB7IHByb3ZpZGU6IENvbXBvbmVudERpcnR5R3VhcmQsIHVzZUNsYXNzOiBDb21wb25lbnREaXJ0eUd1YXJkIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWRSb3V0aW5nTW9kdWxlIHtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbc2hhcmVkLXJvdXRpbmddIENyZWF0aW5nIG1vZHVsZS4uLicpO1xuICB9XG59XG4iXX0=
@@ -7,7 +7,8 @@ import { UploadFileTestingModule } from './upload-file/testing/upload-file.testi
7
7
  import { ImageGalleryTestingModule } from './image/gallery/testing/gallery.testing.module';
8
8
  import { IonicModule } from '@ionic/angular';
9
9
  import { AudioTestingModule } from './audio/audio.testing.module';
10
- import { SHARED_STORAGE_TESTING_PAGES, StorageExplorerModule } from './storage/storage-explorer.module';
10
+ import { SHARED_STORAGE_TESTING_PAGES, StorageExplorerTestingModule } from './storage/storage-explorer.testing.module';
11
+ import { MenuTestingModule } from '../core/menu/testing/menu.testing.module';
11
12
  import * as i0 from "@angular/core";
12
13
  import * as i1 from "@ngx-translate/core";
13
14
  export const SHARED_TESTING_PAGES = [
@@ -17,6 +18,7 @@ export const SHARED_TESTING_PAGES = [
17
18
  { label: 'Toast', page: '/testing/shared/toast' },
18
19
  { label: 'File upload', page: '/testing/shared/upload-file' },
19
20
  { label: 'Sound & Vibration', page: '/testing/shared/audio' },
21
+ { label: 'Menu', page: '/testing/shared/menu' },
20
22
  ...SHARED_STORAGE_TESTING_PAGES,
21
23
  ];
22
24
  export class SharedTestingModule {
@@ -30,14 +32,16 @@ SharedTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
30
32
  UploadFileTestingModule,
31
33
  ImageGalleryTestingModule,
32
34
  AudioTestingModule,
33
- StorageExplorerModule], exports: [
35
+ StorageExplorerTestingModule,
36
+ MenuTestingModule], exports: [
34
37
  // Testing sub-modules
35
38
  MaterialTestingModule,
36
39
  ToastTestingModule,
37
40
  UploadFileTestingModule,
38
41
  ImageGalleryTestingModule,
39
42
  AudioTestingModule,
40
- StorageExplorerModule] });
43
+ StorageExplorerTestingModule,
44
+ MenuTestingModule] });
41
45
  SharedTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SharedTestingModule, imports: [CommonModule,
42
46
  IonicModule,
43
47
  TranslateModule.forChild(),
@@ -47,14 +51,16 @@ SharedTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
47
51
  UploadFileTestingModule,
48
52
  ImageGalleryTestingModule,
49
53
  AudioTestingModule,
50
- StorageExplorerModule,
54
+ StorageExplorerTestingModule,
55
+ MenuTestingModule,
51
56
  // Testing sub-modules
52
57
  MaterialTestingModule,
53
58
  ToastTestingModule,
54
59
  UploadFileTestingModule,
55
60
  ImageGalleryTestingModule,
56
61
  AudioTestingModule,
57
- StorageExplorerModule] });
62
+ StorageExplorerTestingModule,
63
+ MenuTestingModule] });
58
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SharedTestingModule, decorators: [{
59
65
  type: NgModule,
60
66
  args: [{
@@ -68,7 +74,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
68
74
  UploadFileTestingModule,
69
75
  ImageGalleryTestingModule,
70
76
  AudioTestingModule,
71
- StorageExplorerModule
77
+ StorageExplorerTestingModule,
78
+ MenuTestingModule,
72
79
  ],
73
80
  exports: [
74
81
  // Testing sub-modules
@@ -77,8 +84,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
77
84
  UploadFileTestingModule,
78
85
  ImageGalleryTestingModule,
79
86
  AudioTestingModule,
80
- StorageExplorerModule
87
+ StorageExplorerTestingModule,
88
+ MenuTestingModule,
81
89
  ]
82
90
  }]
83
91
  }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLnRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLnRlc3RpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSw2QkFBNkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUV6RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLDRCQUE0QixFQUFFLHFCQUFxQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7OztBQUV0RyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBa0I7SUFDakQsR0FBRyw2QkFBNkI7SUFFaEMsRUFBQyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQztJQUNqRCxFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFDO0lBQ3pELEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUM7SUFDL0MsRUFBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSw2QkFBNkIsRUFBQztJQUMzRCxFQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUM7SUFFM0QsR0FBRyw0QkFBNEI7Q0FDaEMsQ0FBQztBQTBCRixNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsWUF0QjVCLFlBQVk7UUFDWixXQUFXO1FBR1gsc0JBQXNCO1FBQ3RCLHFCQUFxQjtRQUNyQixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixrQkFBa0I7UUFDbEIscUJBQXFCO1FBR3JCLHNCQUFzQjtRQUN0QixxQkFBcUI7UUFDckIsa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtpSEFHWixtQkFBbUIsWUF0QjVCLFlBQVk7UUFDWixXQUFXO1FBQ1gsZUFBZSxDQUFDLFFBQVEsRUFBRTtRQUUxQixzQkFBc0I7UUFDdEIscUJBQXFCO1FBQ3JCLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFHckIsc0JBQXNCO1FBQ3RCLHFCQUFxQjtRQUNyQixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixrQkFBa0I7UUFDbEIscUJBQXFCOzJGQUdaLG1CQUFtQjtrQkF4Qi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxlQUFlLENBQUMsUUFBUSxFQUFFO3dCQUUxQixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsa0JBQWtCO3dCQUNsQixxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsa0JBQWtCO3dCQUNsQixxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TWF0ZXJpYWxUZXN0aW5nTW9kdWxlLCBTSEFSRURfTUFURVJJQUxfVEVTVElOR19QQUdFU30gZnJvbSAnLi9tYXRlcmlhbC9tYXRlcmlhbC50ZXN0aW5nLm1vZHVsZSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1RvYXN0VGVzdGluZ01vZHVsZX0gZnJvbSAnLi90b2FzdC90b2FzdC50ZXN0aW5nLm1vZHVsZSc7XG5pbXBvcnQge1VwbG9hZEZpbGVUZXN0aW5nTW9kdWxlfSBmcm9tICcuL3VwbG9hZC1maWxlL3Rlc3RpbmcvdXBsb2FkLWZpbGUudGVzdGluZy5tb2R1bGUnO1xuaW1wb3J0IHtUZXN0aW5nUGFnZX0gZnJvbSAnLi90ZXN0aW5nL3Rlc3RzLnBhZ2UnO1xuaW1wb3J0IHtJbWFnZUdhbGxlcnlUZXN0aW5nTW9kdWxlfSBmcm9tICcuL2ltYWdlL2dhbGxlcnkvdGVzdGluZy9nYWxsZXJ5LnRlc3RpbmcubW9kdWxlJztcbmltcG9ydCB7SW9uaWNNb2R1bGV9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7QXVkaW9UZXN0aW5nTW9kdWxlfSBmcm9tICcuL2F1ZGlvL2F1ZGlvLnRlc3RpbmcubW9kdWxlJztcbmltcG9ydCB7U0hBUkVEX1NUT1JBR0VfVEVTVElOR19QQUdFUywgU3RvcmFnZUV4cGxvcmVyTW9kdWxlfSBmcm9tICcuL3N0b3JhZ2Uvc3RvcmFnZS1leHBsb3Jlci5tb2R1bGUnO1xuXG5leHBvcnQgY29uc3QgU0hBUkVEX1RFU1RJTkdfUEFHRVM6IFRlc3RpbmdQYWdlW10gPSBbXG4gIC4uLlNIQVJFRF9NQVRFUklBTF9URVNUSU5HX1BBR0VTLFxuXG4gIHtsYWJlbDogJ1NoYXJlZCBvdGhlciBjb21wb25lbnRzJywgZGl2aWRlcjogdHJ1ZX0sXG4gIHtsYWJlbDogJ0ltYWdlIGdhbGxlcnknLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL2dhbGxlcnknfSxcbiAge2xhYmVsOiAnVG9hc3QnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL3RvYXN0J30sXG4gIHtsYWJlbDogJ0ZpbGUgdXBsb2FkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC91cGxvYWQtZmlsZSd9LFxuICB7bGFiZWw6ICdTb3VuZCAmIFZpYnJhdGlvbicsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvYXVkaW8nfSxcblxuICAuLi5TSEFSRURfU1RPUkFHRV9URVNUSU5HX1BBR0VTLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJb25pY01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcblxuICAgIC8vIFRlc3Rpbmcgc3ViLW1vZHVsZXNcbiAgICBNYXRlcmlhbFRlc3RpbmdNb2R1bGUsXG4gICAgVG9hc3RUZXN0aW5nTW9kdWxlLFxuICAgIFVwbG9hZEZpbGVUZXN0aW5nTW9kdWxlLFxuICAgIEltYWdlR2FsbGVyeVRlc3RpbmdNb2R1bGUsXG4gICAgQXVkaW9UZXN0aW5nTW9kdWxlLFxuICAgIFN0b3JhZ2VFeHBsb3Jlck1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgLy8gVGVzdGluZyBzdWItbW9kdWxlc1xuICAgIE1hdGVyaWFsVGVzdGluZ01vZHVsZSxcbiAgICBUb2FzdFRlc3RpbmdNb2R1bGUsXG4gICAgVXBsb2FkRmlsZVRlc3RpbmdNb2R1bGUsXG4gICAgSW1hZ2VHYWxsZXJ5VGVzdGluZ01vZHVsZSxcbiAgICBBdWRpb1Rlc3RpbmdNb2R1bGUsXG4gICAgU3RvcmFnZUV4cGxvcmVyTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkVGVzdGluZ01vZHVsZSB7XG59XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLnRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2hhcmVkLnRlc3RpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSw2QkFBNkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUV6RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLDRCQUE0QixFQUFFLDRCQUE0QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDckgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMENBQTBDLENBQUM7OztBQUUzRSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBa0I7SUFDakQsR0FBRyw2QkFBNkI7SUFFaEMsRUFBQyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQztJQUNqRCxFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFDO0lBQ3pELEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUM7SUFDL0MsRUFBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSw2QkFBNkIsRUFBQztJQUMzRCxFQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUM7SUFDM0QsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBQztJQUU3QyxHQUFHLDRCQUE0QjtDQUNoQyxDQUFDO0FBNEJGLE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQixZQXhCNUIsWUFBWTtRQUNaLFdBQVc7UUFHWCxzQkFBc0I7UUFDdEIscUJBQXFCO1FBQ3JCLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQiw0QkFBNEI7UUFDNUIsaUJBQWlCO1FBR2pCLHNCQUFzQjtRQUN0QixxQkFBcUI7UUFDckIsa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsa0JBQWtCO1FBQ2xCLDRCQUE0QjtRQUM1QixpQkFBaUI7aUhBR1IsbUJBQW1CLFlBeEI1QixZQUFZO1FBQ1osV0FBVztRQUNYLGVBQWUsQ0FBQyxRQUFRLEVBQUU7UUFFMUIsc0JBQXNCO1FBQ3RCLHFCQUFxQjtRQUNyQixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6QixrQkFBa0I7UUFDbEIsNEJBQTRCO1FBQzVCLGlCQUFpQjtRQUdqQixzQkFBc0I7UUFDdEIscUJBQXFCO1FBQ3JCLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQiw0QkFBNEI7UUFDNUIsaUJBQWlCOzJGQUdSLG1CQUFtQjtrQkExQi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxlQUFlLENBQUMsUUFBUSxFQUFFO3dCQUUxQixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsa0JBQWtCO3dCQUNsQiw0QkFBNEI7d0JBQzVCLGlCQUFpQjtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHNCQUFzQjt3QkFDdEIscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixrQkFBa0I7d0JBQ2xCLDRCQUE0Qjt3QkFDNUIsaUJBQWlCO3FCQUNsQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge01hdGVyaWFsVGVzdGluZ01vZHVsZSwgU0hBUkVEX01BVEVSSUFMX1RFU1RJTkdfUEFHRVN9IGZyb20gJy4vbWF0ZXJpYWwvbWF0ZXJpYWwudGVzdGluZy5tb2R1bGUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtUb2FzdFRlc3RpbmdNb2R1bGV9IGZyb20gJy4vdG9hc3QvdG9hc3QudGVzdGluZy5tb2R1bGUnO1xuaW1wb3J0IHtVcGxvYWRGaWxlVGVzdGluZ01vZHVsZX0gZnJvbSAnLi91cGxvYWQtZmlsZS90ZXN0aW5nL3VwbG9hZC1maWxlLnRlc3RpbmcubW9kdWxlJztcbmltcG9ydCB7VGVzdGluZ1BhZ2V9IGZyb20gJy4vdGVzdGluZy90ZXN0cy5wYWdlJztcbmltcG9ydCB7SW1hZ2VHYWxsZXJ5VGVzdGluZ01vZHVsZX0gZnJvbSAnLi9pbWFnZS9nYWxsZXJ5L3Rlc3RpbmcvZ2FsbGVyeS50ZXN0aW5nLm1vZHVsZSc7XG5pbXBvcnQge0lvbmljTW9kdWxlfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0F1ZGlvVGVzdGluZ01vZHVsZX0gZnJvbSAnLi9hdWRpby9hdWRpby50ZXN0aW5nLm1vZHVsZSc7XG5pbXBvcnQge1NIQVJFRF9TVE9SQUdFX1RFU1RJTkdfUEFHRVMsIFN0b3JhZ2VFeHBsb3JlclRlc3RpbmdNb2R1bGV9IGZyb20gJy4vc3RvcmFnZS9zdG9yYWdlLWV4cGxvcmVyLnRlc3RpbmcubW9kdWxlJztcbmltcG9ydCB7TWVudVRlc3RpbmdNb2R1bGV9IGZyb20gJy4uL2NvcmUvbWVudS90ZXN0aW5nL21lbnUudGVzdGluZy5tb2R1bGUnO1xuXG5leHBvcnQgY29uc3QgU0hBUkVEX1RFU1RJTkdfUEFHRVM6IFRlc3RpbmdQYWdlW10gPSBbXG4gIC4uLlNIQVJFRF9NQVRFUklBTF9URVNUSU5HX1BBR0VTLFxuXG4gIHtsYWJlbDogJ1NoYXJlZCBvdGhlciBjb21wb25lbnRzJywgZGl2aWRlcjogdHJ1ZX0sXG4gIHtsYWJlbDogJ0ltYWdlIGdhbGxlcnknLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL2dhbGxlcnknfSxcbiAge2xhYmVsOiAnVG9hc3QnLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL3RvYXN0J30sXG4gIHtsYWJlbDogJ0ZpbGUgdXBsb2FkJywgcGFnZTogJy90ZXN0aW5nL3NoYXJlZC91cGxvYWQtZmlsZSd9LFxuICB7bGFiZWw6ICdTb3VuZCAmIFZpYnJhdGlvbicsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvYXVkaW8nfSxcbiAge2xhYmVsOiAnTWVudScsIHBhZ2U6ICcvdGVzdGluZy9zaGFyZWQvbWVudSd9LFxuXG4gIC4uLlNIQVJFRF9TVE9SQUdFX1RFU1RJTkdfUEFHRVMsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuXG4gICAgLy8gVGVzdGluZyBzdWItbW9kdWxlc1xuICAgIE1hdGVyaWFsVGVzdGluZ01vZHVsZSxcbiAgICBUb2FzdFRlc3RpbmdNb2R1bGUsXG4gICAgVXBsb2FkRmlsZVRlc3RpbmdNb2R1bGUsXG4gICAgSW1hZ2VHYWxsZXJ5VGVzdGluZ01vZHVsZSxcbiAgICBBdWRpb1Rlc3RpbmdNb2R1bGUsXG4gICAgU3RvcmFnZUV4cGxvcmVyVGVzdGluZ01vZHVsZSxcbiAgICBNZW51VGVzdGluZ01vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIC8vIFRlc3Rpbmcgc3ViLW1vZHVsZXNcbiAgICBNYXRlcmlhbFRlc3RpbmdNb2R1bGUsXG4gICAgVG9hc3RUZXN0aW5nTW9kdWxlLFxuICAgIFVwbG9hZEZpbGVUZXN0aW5nTW9kdWxlLFxuICAgIEltYWdlR2FsbGVyeVRlc3RpbmdNb2R1bGUsXG4gICAgQXVkaW9UZXN0aW5nTW9kdWxlLFxuICAgIFN0b3JhZ2VFeHBsb3JlclRlc3RpbmdNb2R1bGUsXG4gICAgTWVudVRlc3RpbmdNb2R1bGUsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkVGVzdGluZ01vZHVsZSB7XG59XG4iXX0=
@@ -147,7 +147,7 @@ export class StorageExplorerComponent {
147
147
  }
148
148
  else if (typeof value === 'object') {
149
149
  let total;
150
- if (value?.type && value?.type == 'object') {
150
+ if (value?.type && value?.type === 'object') {
151
151
  const nestedValue = JSON.parse(value.value);
152
152
  total = (Array.isArray(nestedValue)) ? nestedValue.length : (Object.keys(nestedValue).length > 0 ? 1 : 0);
153
153
  }
@@ -234,7 +234,7 @@ export class StorageExplorerComponent {
234
234
  }
235
235
  }
236
236
  StorageExplorerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StorageExplorerComponent, deps: [{ token: i1.Platform }, { token: i1.ToastController }, { token: i1.AlertController }, { token: i2.TranslateService }, { token: i3.MomentDateAdapter }, { token: i0.ChangeDetectorRef }, { token: APP_STORAGE }, { token: ENVIRONMENT }, { token: APP_DEBUG_DATA_SERVICE, optional: true }, { token: APP_STORAGE_EXPLORER_PROTECTED_KEYS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
237
- StorageExplorerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: StorageExplorerComponent, selector: "app-storage-explorer", inputs: { mobile: "mobile", showSendButton: "showSendButton" }, viewQueries: [{ propertyName: "sendDataModal", first: true, predicate: ["sendDataModal"], descendants: true }, { propertyName: "viewDataModal", first: true, predicate: ["viewDataModal"], descendants: true }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-title>Storage Explorer</ion-title>\n\n <ion-buttons slot=\"end\">\n <!-- Refresh -->\n <button mat-icon-button\n [title]=\"'COMMON.BTN_REFRESH'|translate\"\n (click)=\"refresh()\">\n <mat-icon>refresh</mat-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-no-padding\">\n\n\n <ion-grid class=\"ion-padding list-istorage\">\n <ion-row>\n <ion-col size=\"12\" size-lg=\"6\" class=\"mat-header-cell\">\n <ion-label translate>REFERENTIAL.LABEL</ion-label>\n </ion-col>\n <ion-col class=\"mat-header-cell\">\n <ion-label translate>REFERENTIAL.TYPE</ion-label>\n </ion-col>\n <ion-col class=\"mat-header-cell ion-text-start\">\n <ion-label>Nb</ion-label>\n </ion-col>\n <ion-col class=\"mat-header-cell\" size=\"auto\" >\n </ion-col>\n </ion-row>\n\n\n <ion-row class=\"mat-row\" *rxFor=\"let item of $items; trackBy: trackByFn; odd as odd;\"\n [class.odd]=\"odd\" >\n <ion-col size=\"12\" size-lg=\"6\">\n <ion-label class=\"ion-text-wrap mat-cell\"><b>{{ item.key }}</b></ion-label>\n </ion-col>\n <ion-col class=\" mat-cell\">\n <ion-label>{{ item.type }}</ion-label>\n </ion-col>\n <ion-col class=\" mat-cell\">\n <ion-label>{{ item.total }}</ion-label>\n </ion-col>\n <ion-col size=\"auto mat-cell\">\n <ion-buttons>\n\n <ion-button color=\"primary\" (click)=\"viewDataClick($event, item.key)\"\n [title]=\"'COMMON.BTN_PREVIEW'|translate\">\n <mat-icon slot=\"icon-only\" [attr.aria-label]=\"'COMMON.BTN_PREVIEW'|translate\">remove_red_eye</mat-icon>\n </ion-button>\n <ion-button *ngIf=\"showSendButton\"\n color=\"primary\"\n (click)=\"sendDataClick($event, item.key)\"\n [title]=\"'COMMON.BTN_SEND'|translate\">\n <mat-icon slot=\"icon-only\" [attr.aria-label]=\"'COMMON.BTN_SEND'|translate\">send</mat-icon>\n </ion-button>\n </ion-buttons>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n\n <ng-container *ngIf=\"$loading|async; else noResult\">\n <ion-item>\n <ion-skeleton-text animated></ion-skeleton-text>\n </ion-item>\n </ng-container>\n\n <ng-template #noResult>\n <ion-item *ngIf=\"$items|async|isEmptyArray\">\n <ion-text color=\"danger\"\n class=\"text-italic\"\n [innerHTML]=\"'COMMON.NO_RESULT' | translate\">\n </ion-text>\n </ion-item>\n </ng-template>\n\n</ion-content>\n\n\n<ion-modal #sendDataModal>\n <ng-template>\n <ion-content class=\"ion-padding\">\n <ion-item lines=\"none\" translate>CONFIRM.SEND_DEBUG_DATA</ion-item>\n </ion-content>\n <ion-footer>\n <ion-toolbar>\n\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n\n <!-- buttons -->\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"sendDataModal.dismiss()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n\n <ion-button fill=\"solid\" (click)=\"sendDataModal.dismiss(null, 'send')\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n </ion-footer>\n </ng-template>\n</ion-modal>\n\n<ion-modal #viewDataModal class=\"modal-large view-modal\">\n <ng-template>\n <ion-content class=\"ion-no-padding\" scroll-y=\"true\">\n <!-- display logs-->\n <ng-container *ngIf=\"logs; else otherKey\">\n <ion-grid>\n <ion-row *ngFor=\"let log of logs\"\n [style.color]=\"levelToColor(log.level)\">\n <ion-col size=\"2\" class=\"ion-text-start\">\n {{log.date|dateFormat: {time: true} }}\n </ion-col>\n <ion-col size=\"2\" class=\"ion-text-start\">\n {{levelToString(log.level)}}\n </ion-col>\n <ion-col size=\"2\" class=\"ion-text-start\">\n {{log.loggerName}}\n </ion-col>\n <ion-col size=\"12\" size-lg=\"6\" class=\"ion-text-wrap\">\n {{ log.message }}\n </ion-col>\n </ion-row>\n </ion-grid>\n </ng-container>\n <ng-template #otherKey>\n <div class=\"ion-padding\">\n <pre>{{data}}</pre>\n </div>\n </ng-template>\n </ion-content>\n\n <ion-footer>\n <ion-toolbar>\n\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n\n <!-- buttons -->\n <ion-col size=\"auto\">\n\n <ion-button fill=\"clear\" color=\"danger\"\n (click)=\"clear(key)\">\n <mat-icon slot=\"start\">delete</mat-icon>\n <ion-label translate>COMMON.BTN_CLEAR</ion-label>\n </ion-button>\n <ion-button fill=\"clear\"\n (click)=\"copyToClipboard(key)\">\n <mat-icon slot=\"start\">content_copy</mat-icon>\n <ion-label translate>COMMON.BTN_COPY</ion-label>\n </ion-button>\n\n <ion-button fill=\"clear\"\n *ngIf=\"!mobile\"\n (click)=\"downloadAsJson(key)\">\n <mat-icon slot=\"start\">download</mat-icon>\n <ion-label translate>COMMON.BTN_DOWNLOAD</ion-label>\n </ion-button>\n\n <ion-button fill=\"solid\" color=\"tertiary\" (click)=\"viewDataModal.dismiss()\">\n <ion-label translate>COMMON.BTN_CLOSE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n </ion-footer>\n </ng-template>\n</ion-modal>\n", styles: ["ion-grid.list-istorage{--ion-grid-column-padding: 5px}ion-grid.list-istorage ion-row{align-items:center}ion-grid.list-istorage ion-row.mat-header-row{height:40px}ion-grid.list-istorage ion-row.mat-header-row ion-col{vertical-align:center}ion-grid.list-istorage ion-row.computed ion-col ion-label,ion-grid.list-istorage ion-row ion-label.computed{color:var(--ion-color-primary-tint)!important;font-style:italic!important}ion-grid.list-istorage ion-row.odd{background-color:var(--ion-color-light)}ion-grid.list-istorage ion-row ion-col{padding:var(--ion-grid-column-padding)}ion-grid.list-istorage ion-row ion-col ion-label{vertical-align:center}.view-modal pre{overflow-x:auto;white-space:pre-wrap;word-wrap:break-word}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.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: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.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: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonModal, selector: "ion-modal", inputs: ["animated", "keepContentsMounted", "backdropBreakpoint", "backdropDismiss", "breakpoints", "canDismiss", "cssClass", "enterAnimation", "event", "handle", "handleBehavior", "initialBreakpoint", "isOpen", "keyboardClose", "leaveAnimation", "mode", "presentingElement", "showBackdrop", "translucent", "trigger"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i5.RxFor, selector: "[rxFor][rxForOf]", inputs: ["rxForOf", "rxForTemplate", "rxForStrategy", "rxForParent", "rxForPatchZone", "rxForTrackBy", "rxForRenderCallback"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.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: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.DateFormatPipe, name: "dateFormat" }, { kind: "pipe", type: i9.EmptyArrayPipe, name: "isEmptyArray" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
237
+ StorageExplorerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: StorageExplorerComponent, selector: "app-storage-explorer", inputs: { mobile: "mobile", showSendButton: "showSendButton" }, viewQueries: [{ propertyName: "sendDataModal", first: true, predicate: ["sendDataModal"], descendants: true }, { propertyName: "viewDataModal", first: true, predicate: ["viewDataModal"], descendants: true }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-title>Storage Explorer</ion-title>\n\n <ion-buttons slot=\"end\">\n <!-- Refresh -->\n <button mat-icon-button\n [title]=\"'COMMON.BTN_REFRESH'|translate\"\n (click)=\"refresh()\">\n <mat-icon>refresh</mat-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-no-padding\">\n\n\n <ion-grid class=\"ion-padding list-istorage\">\n <ion-row>\n <ion-col size=\"12\" size-lg=\"6\" class=\"mat-header-cell\">\n <ion-label translate>REFERENTIAL.LABEL</ion-label>\n </ion-col>\n <ion-col class=\"mat-header-cell\">\n <ion-label translate>REFERENTIAL.TYPE</ion-label>\n </ion-col>\n <ion-col class=\"mat-header-cell ion-text-start\">\n <ion-label>Nb</ion-label>\n </ion-col>\n <ion-col class=\"mat-header-cell\" size=\"auto\" >\n </ion-col>\n </ion-row>\n\n\n <ion-row class=\"mat-row\" *rxFor=\"let item of $items; trackBy: trackByFn; odd as odd;\"\n [class.odd]=\"odd\" >\n <ion-col size=\"12\" size-lg=\"6\">\n <ion-label class=\"ion-text-wrap mat-cell\"><b>{{ item.key }}</b></ion-label>\n </ion-col>\n <ion-col class=\" mat-cell\">\n <ion-label>{{ item.type }}</ion-label>\n </ion-col>\n <ion-col class=\" mat-cell\">\n <ion-label>{{ item.total }}</ion-label>\n </ion-col>\n <ion-col size=\"auto mat-cell\">\n <ion-buttons>\n\n <ion-button color=\"primary\" (click)=\"viewDataClick($event, item.key)\"\n [title]=\"'COMMON.BTN_PREVIEW'|translate\">\n <mat-icon slot=\"icon-only\" [attr.aria-label]=\"'COMMON.BTN_PREVIEW'|translate\">remove_red_eye</mat-icon>\n </ion-button>\n <ion-button *ngIf=\"showSendButton\"\n color=\"primary\"\n (click)=\"sendDataClick($event, item.key)\"\n [title]=\"'COMMON.BTN_SEND'|translate\">\n <mat-icon slot=\"icon-only\" [attr.aria-label]=\"'COMMON.BTN_SEND'|translate\">send</mat-icon>\n </ion-button>\n </ion-buttons>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n\n <ng-container *ngIf=\"$loading|async; else noResult\">\n <ion-item>\n <ion-skeleton-text animated></ion-skeleton-text>\n </ion-item>\n </ng-container>\n\n <ng-template #noResult>\n <ion-item *ngIf=\"$items|async|isEmptyArray\">\n <ion-text color=\"danger\"\n class=\"text-italic\"\n [innerHTML]=\"'COMMON.NO_RESULT' | translate\">\n </ion-text>\n </ion-item>\n </ng-template>\n\n</ion-content>\n\n\n<ion-modal #sendDataModal>\n <ng-template>\n <ion-content class=\"ion-padding\">\n <ion-item lines=\"none\" translate>CONFIRM.SEND_DEBUG_DATA</ion-item>\n </ion-content>\n <ion-footer>\n <ion-toolbar>\n\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n\n <!-- buttons -->\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"sendDataModal.dismiss()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n\n <ion-button fill=\"solid\" (click)=\"sendDataModal.dismiss(null, 'send')\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n </ion-footer>\n </ng-template>\n</ion-modal>\n\n<ion-modal #viewDataModal class=\"modal-large view-modal\">\n <ng-template>\n <ion-content class=\"ion-no-padding\" scroll-y=\"true\">\n <!-- display logs-->\n <ng-container *ngIf=\"logs; else otherKey\">\n <ion-grid>\n <ion-row *ngFor=\"let log of logs\"\n [style.color]=\"levelToColor(log.level)\">\n <ion-col size=\"2\" class=\"ion-text-start\">\n {{log.date|dateFormat: {time: true} }}\n </ion-col>\n <ion-col size=\"2\" class=\"ion-text-start\">\n {{levelToString(log.level)}}\n </ion-col>\n <ion-col size=\"2\" class=\"ion-text-start\">\n {{log.loggerName}}\n </ion-col>\n <ion-col size=\"12\" size-lg=\"6\" class=\"ion-text-wrap\">\n {{ log.message }}\n </ion-col>\n </ion-row>\n </ion-grid>\n </ng-container>\n <ng-template #otherKey>\n <div class=\"ion-padding\">\n <pre>{{data}}</pre>\n </div>\n </ng-template>\n </ion-content>\n\n <ion-footer>\n <ion-toolbar>\n\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n\n <!-- buttons -->\n <ion-col size=\"auto\">\n\n <ion-button fill=\"clear\" color=\"danger\"\n (click)=\"clear(key)\">\n <mat-icon slot=\"start\">delete</mat-icon>\n <ion-label translate>COMMON.BTN_CLEAR</ion-label>\n </ion-button>\n <ion-button fill=\"clear\"\n (click)=\"copyToClipboard(key)\">\n <mat-icon slot=\"start\">content_copy</mat-icon>\n <ion-label translate>COMMON.BTN_COPY</ion-label>\n </ion-button>\n\n <ion-button fill=\"clear\"\n *ngIf=\"!mobile\"\n (click)=\"downloadAsJson(key)\">\n <mat-icon slot=\"start\">download</mat-icon>\n <ion-label translate>COMMON.BTN_DOWNLOAD</ion-label>\n </ion-button>\n\n <ion-button fill=\"solid\" color=\"tertiary\" (click)=\"viewDataModal.dismiss()\">\n <ion-label translate>COMMON.BTN_CLOSE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n </ion-footer>\n </ng-template>\n</ion-modal>\n", styles: ["ion-grid.list-istorage{--ion-grid-column-padding: 5px}ion-grid.list-istorage ion-row{align-items:center}ion-grid.list-istorage ion-row.mat-header-row{height:40px}ion-grid.list-istorage ion-row.mat-header-row ion-col{vertical-align:center}ion-grid.list-istorage ion-row.computed ion-col ion-label,ion-grid.list-istorage ion-row ion-label.computed{color:var(--ion-color-primary-tint)!important;font-style:italic!important}ion-grid.list-istorage ion-row.odd{background-color:var(--ion-color-light)}ion-grid.list-istorage ion-row ion-col{padding:var(--ion-grid-column-padding)}ion-grid.list-istorage ion-row ion-col ion-label{vertical-align:center}.view-modal pre{overflow-x:auto;white-space:pre-wrap;word-wrap:break-word}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.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: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.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: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonModal, selector: "ion-modal" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.RxFor, selector: "[rxFor][rxForOf]", inputs: ["rxForOf", "rxForTemplate", "rxForStrategy", "rxForParent", "rxForPatchZone", "rxForTrackBy", "rxForRenderCallback"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.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: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.DateFormatPipe, name: "dateFormat" }, { kind: "pipe", type: i9.EmptyArrayPipe, name: "isEmptyArray" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
238
238
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StorageExplorerComponent, decorators: [{
239
239
  type: Component,
240
240
  args: [{ selector: 'app-storage-explorer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-header>\n <ion-toolbar color=\"primary\">\n <ion-title>Storage Explorer</ion-title>\n\n <ion-buttons slot=\"end\">\n <!-- Refresh -->\n <button mat-icon-button\n [title]=\"'COMMON.BTN_REFRESH'|translate\"\n (click)=\"refresh()\">\n <mat-icon>refresh</mat-icon>\n </button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-no-padding\">\n\n\n <ion-grid class=\"ion-padding list-istorage\">\n <ion-row>\n <ion-col size=\"12\" size-lg=\"6\" class=\"mat-header-cell\">\n <ion-label translate>REFERENTIAL.LABEL</ion-label>\n </ion-col>\n <ion-col class=\"mat-header-cell\">\n <ion-label translate>REFERENTIAL.TYPE</ion-label>\n </ion-col>\n <ion-col class=\"mat-header-cell ion-text-start\">\n <ion-label>Nb</ion-label>\n </ion-col>\n <ion-col class=\"mat-header-cell\" size=\"auto\" >\n </ion-col>\n </ion-row>\n\n\n <ion-row class=\"mat-row\" *rxFor=\"let item of $items; trackBy: trackByFn; odd as odd;\"\n [class.odd]=\"odd\" >\n <ion-col size=\"12\" size-lg=\"6\">\n <ion-label class=\"ion-text-wrap mat-cell\"><b>{{ item.key }}</b></ion-label>\n </ion-col>\n <ion-col class=\" mat-cell\">\n <ion-label>{{ item.type }}</ion-label>\n </ion-col>\n <ion-col class=\" mat-cell\">\n <ion-label>{{ item.total }}</ion-label>\n </ion-col>\n <ion-col size=\"auto mat-cell\">\n <ion-buttons>\n\n <ion-button color=\"primary\" (click)=\"viewDataClick($event, item.key)\"\n [title]=\"'COMMON.BTN_PREVIEW'|translate\">\n <mat-icon slot=\"icon-only\" [attr.aria-label]=\"'COMMON.BTN_PREVIEW'|translate\">remove_red_eye</mat-icon>\n </ion-button>\n <ion-button *ngIf=\"showSendButton\"\n color=\"primary\"\n (click)=\"sendDataClick($event, item.key)\"\n [title]=\"'COMMON.BTN_SEND'|translate\">\n <mat-icon slot=\"icon-only\" [attr.aria-label]=\"'COMMON.BTN_SEND'|translate\">send</mat-icon>\n </ion-button>\n </ion-buttons>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n\n <ng-container *ngIf=\"$loading|async; else noResult\">\n <ion-item>\n <ion-skeleton-text animated></ion-skeleton-text>\n </ion-item>\n </ng-container>\n\n <ng-template #noResult>\n <ion-item *ngIf=\"$items|async|isEmptyArray\">\n <ion-text color=\"danger\"\n class=\"text-italic\"\n [innerHTML]=\"'COMMON.NO_RESULT' | translate\">\n </ion-text>\n </ion-item>\n </ng-template>\n\n</ion-content>\n\n\n<ion-modal #sendDataModal>\n <ng-template>\n <ion-content class=\"ion-padding\">\n <ion-item lines=\"none\" translate>CONFIRM.SEND_DEBUG_DATA</ion-item>\n </ion-content>\n <ion-footer>\n <ion-toolbar>\n\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n\n <!-- buttons -->\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"sendDataModal.dismiss()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n\n <ion-button fill=\"solid\" (click)=\"sendDataModal.dismiss(null, 'send')\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n </ion-footer>\n </ng-template>\n</ion-modal>\n\n<ion-modal #viewDataModal class=\"modal-large view-modal\">\n <ng-template>\n <ion-content class=\"ion-no-padding\" scroll-y=\"true\">\n <!-- display logs-->\n <ng-container *ngIf=\"logs; else otherKey\">\n <ion-grid>\n <ion-row *ngFor=\"let log of logs\"\n [style.color]=\"levelToColor(log.level)\">\n <ion-col size=\"2\" class=\"ion-text-start\">\n {{log.date|dateFormat: {time: true} }}\n </ion-col>\n <ion-col size=\"2\" class=\"ion-text-start\">\n {{levelToString(log.level)}}\n </ion-col>\n <ion-col size=\"2\" class=\"ion-text-start\">\n {{log.loggerName}}\n </ion-col>\n <ion-col size=\"12\" size-lg=\"6\" class=\"ion-text-wrap\">\n {{ log.message }}\n </ion-col>\n </ion-row>\n </ion-grid>\n </ng-container>\n <ng-template #otherKey>\n <div class=\"ion-padding\">\n <pre>{{data}}</pre>\n </div>\n </ng-template>\n </ion-content>\n\n <ion-footer>\n <ion-toolbar>\n\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n\n <!-- buttons -->\n <ion-col size=\"auto\">\n\n <ion-button fill=\"clear\" color=\"danger\"\n (click)=\"clear(key)\">\n <mat-icon slot=\"start\">delete</mat-icon>\n <ion-label translate>COMMON.BTN_CLEAR</ion-label>\n </ion-button>\n <ion-button fill=\"clear\"\n (click)=\"copyToClipboard(key)\">\n <mat-icon slot=\"start\">content_copy</mat-icon>\n <ion-label translate>COMMON.BTN_COPY</ion-label>\n </ion-button>\n\n <ion-button fill=\"clear\"\n *ngIf=\"!mobile\"\n (click)=\"downloadAsJson(key)\">\n <mat-icon slot=\"start\">download</mat-icon>\n <ion-label translate>COMMON.BTN_DOWNLOAD</ion-label>\n </ion-button>\n\n <ion-button fill=\"solid\" color=\"tertiary\" (click)=\"viewDataModal.dismiss()\">\n <ion-label translate>COMMON.BTN_CLOSE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n </ion-footer>\n </ng-template>\n</ion-modal>\n", styles: ["ion-grid.list-istorage{--ion-grid-column-padding: 5px}ion-grid.list-istorage ion-row{align-items:center}ion-grid.list-istorage ion-row.mat-header-row{height:40px}ion-grid.list-istorage ion-row.mat-header-row ion-col{vertical-align:center}ion-grid.list-istorage ion-row.computed ion-col ion-label,ion-grid.list-istorage ion-row ion-label.computed{color:var(--ion-color-primary-tint)!important;font-style:italic!important}ion-grid.list-istorage ion-row.odd{background-color:var(--ion-color-light)}ion-grid.list-istorage ion-row ion-col{padding:var(--ion-grid-column-padding)}ion-grid.list-istorage ion-row ion-col ion-label{vertical-align:center}.view-modal pre{overflow-x:auto;white-space:pre-wrap;word-wrap:break-word}\n"] }]
@@ -265,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
265
265
  type: ViewChild,
266
266
  args: ['viewDataModal']
267
267
  }] } });
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1leHBsb3Jlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zdG9yYWdlL3N0b3JhZ2UtZXhwbG9yZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc3RvcmFnZS9zdG9yYWdlLWV4cGxvcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFaEosT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsZUFBZSxFQUFFLHlCQUF5QixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDMUYsT0FBTyxFQUFDLFdBQVcsRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxzQkFBc0IsRUFBb0IsTUFBTSw4QkFBOEIsQ0FBQztBQUV2RixPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQWMsV0FBVyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFNLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztB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Q0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFN0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRWpCLENBQUM7SUFHUyxTQUFTLENBQUMsS0FBYSxFQUFFLElBQXFCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRVMsWUFBWSxDQUFDLEtBQWU7UUFDcEMsT0FBTyxtQkFBbUIsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQzVELENBQUM7O3FIQTlQVSx3QkFBd0IsME1BeUJ6QixXQUFXLGFBQ1gsV0FBVyxhQUNDLHNCQUFzQiw2QkFDdEIsbUNBQW1DO3lHQTVCOUMsd0JBQXdCLDZVQ25DckMsNjFMQStLQTsyRkQ1SWEsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNOzswQkEyQjVDLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCOzswQkFDekMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQ0FBbUM7NENBakJoRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFc0IsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNFLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBbGVydENvbnRyb2xsZXIsIElvbk1vZGFsLCBQbGF0Zm9ybSwgVG9hc3RDb250cm9sbGVyfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2lzTm90TmlsT3JCbGFuaywgcmVtb3ZlRHVwbGljYXRlc0Zyb21BcnJheSwgc2xlZXAsIHRvQm9vbGVhbn0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7QVBQX1NUT1JBR0UsIElTdG9yYWdlfSBmcm9tICcuL3N0b3JhZ2UudXRpbHMnO1xuaW1wb3J0IHtBUFBfREVCVUdfREFUQV9TRVJWSUNFLCBJRGVidWdEYXRhU2VydmljZX0gZnJvbSAnLi4vZGVidWcvZGVidWctc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtUb2FzdHN9IGZyb20gJy4uL3RvYXN0L3RvYXN0cyc7XG5pbXBvcnQge0pzb25VdGlsc30gZnJvbSAnLi4vZmlsZS9qc29uLnV0aWxzJztcbmltcG9ydCB7Q2xpcGJvYXJkfSBmcm9tICdAY2FwYWNpdG9yL2NsaXBib2FyZCc7XG5pbXBvcnQge0Vudmlyb25tZW50LCBFTlZJUk9OTUVOVH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7TG9nLCBMb2dVdGlsc30gZnJvbSAnLi4vbG9nZ2luZy9sb2dnZXIubW9kZWwnO1xuaW1wb3J0IHtNb21lbnREYXRlQWRhcHRlcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuaW1wb3J0IHtEQVRFX0lTT19QQVRURVJOfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtMb2dMZXZlbH0gZnJvbSAnLi4vbG9nZ2luZy9sb2ctbGV2ZWwubW9kZWwnO1xuaW1wb3J0IHtEYXRlVXRpbHN9IGZyb20gJy4uL2RhdGVzJztcbmltcG9ydCB7QWxlcnRzfSBmcm9tICcuLi9hbGVydHMnO1xuaW1wb3J0IHtGaWxlc1V0aWxzfSBmcm9tICcuLi9maWxlL2ZpbGUudXRpbHMnO1xuXG50eXBlIFN0b3JhZ2VJdGVtSW5mbyA9IHtcbiAga2V5OiBzdHJpbmc7XG4gIHR5cGU6ICdhcnJheScgfCAnb2JqZWN0JyB8ICdzdHJpbmcnIHwgJ251bWJlcic7XG4gIHRvdGFsOiBudW1iZXI7XG59O1xuXG5cbmV4cG9ydCBjb25zdCBBUFBfU1RPUkFHRV9FWFBMT1JFUl9QUk9URUNURURfS0VZUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmdbXT4oJ1N0b3JhZ2VFeHBsb3JlclByb3RlY3RlZEtleXMnKTtcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc3RvcmFnZS1leHBsb3JlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdG9yYWdlLWV4cGxvcmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RvcmFnZS1leHBsb3Jlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTdG9yYWdlRXhwbG9yZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByaXZhdGUgX2xvZ1ByZWZpeCA9ICdbc3RvcmFnZS1leHBsb3Jlcl0gJztcbiAgcHJvdGVjdGVkICRsb2FkaW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJvdGVjdGVkICRpdGVtcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3RvcmFnZUl0ZW1JbmZvW10+KFtdKTtcbiAgcHJvdGVjdGVkIF9sb2dLZXk6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgZGF0YTogYW55O1xuICBwcm90ZWN0ZWQgbG9nczogTG9nW107XG4gIHByb3RlY3RlZCBrZXk6IHN0cmluZztcblxuICBASW5wdXQoKSBtb2JpbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3dTZW5kQnV0dG9uOiBib29sZWFuO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbmREYXRhTW9kYWwnKSBzZW5kRGF0YU1vZGFsOiBJb25Nb2RhbDtcbiAgQFZpZXdDaGlsZCgndmlld0RhdGFNb2RhbCcpIHZpZXdEYXRhTW9kYWw6IElvbk1vZGFsO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICBwcm90ZWN0ZWQgdG9hc3RDb250cm9sbGVyOiBUb2FzdENvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIGFsZXJ0Q3RybDogQWxlcnRDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGRhdGVBZGFwdGVyOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICBwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoQVBQX1NUT1JBR0UpIHByb3RlY3RlZCByZWFkb25seSBzdG9yYWdlOiBJU3RvcmFnZSxcbiAgICBASW5qZWN0KEVOVklST05NRU5UKSBwcm90ZWN0ZWQgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX0RFQlVHX0RBVEFfU0VSVklDRSkgcHJvdGVjdGVkIHJlYWRvbmx5IGRlYnVnRGF0YVNlcnZpY2U6IElEZWJ1Z0RhdGFTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX1NUT1JBR0VfRVhQTE9SRVJfUFJPVEVDVEVEX0tFWVMpIHByaXZhdGUgcmVhZG9ubHkgX3Byb3RlY3RlZEtleXM6IHN0cmluZ1tdXG4gICkge1xuICAgIHRoaXMuX3Byb3RlY3RlZEtleXMgPSByZW1vdmVEdXBsaWNhdGVzRnJvbUFycmF5KFsuLi4odGhpcy5fcHJvdGVjdGVkS2V5cyB8fCBbXSksICdzZWNrZXknLCAndG9rZW4nXSk7XG4gICAgdGhpcy5fbG9nS2V5ID0gZW52aXJvbm1lbnQubG9nZ2luZz8ubG9jYWxTdG9yYWdlQXBwZW5kZXI/LmxvY2FsU3RvcmFnZUtleSB8fCAnbG9nJztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2hvd1NlbmRCdXR0b24gPSB0b0Jvb2xlYW4odGhpcy5zaG93U2VuZEJ1dHRvbiwgdHJ1ZSkgJiYgISF0aGlzLmRlYnVnRGF0YVNlcnZpY2U7XG4gICAgdGhpcy5tb2JpbGUgPSB0b0Jvb2xlYW4odGhpcy5tb2JpbGUsIHRoaXMucGxhdGZvcm0uaXMoJ21vYmlsZScpKTtcblxuICAgIHRoaXMuc3RvcmFnZS5yZWFkeSgpXG4gICAgICAudGhlbigoKSA9PiB0aGlzLnN0YXJ0KCkpXG4gIH1cblxuICBhc3luYyBzZW5kRGF0YUNsaWNrKGV2ZW50OiBFdmVudCwga2V5OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuZGVidWdEYXRhU2VydmljZSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1DYW5ub3Qgc2VuZCBkZWJ1ZyBkYXRhOiBtaXNzaW5nIHByb3ZpZGVyIGZvciAnQVBQX0RFQlVHX0RBVEFfU0VSVklDRSdgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZW5kRGF0YU1vZGFsLnByZXNlbnQoKTtcblxuICAgIGNvbnN0IHtkYXRhLCByb2xlfSA9IGF3YWl0IHRoaXMuc2VuZERhdGFNb2RhbC5vbkRpZERpc21pc3MoKTtcbiAgICBpZiAocm9sZSA9PT0gJ3NlbmQnKSB7XG4gICAgICB0aGlzLnNlbmREYXRhKGtleSlcbiAgICB9XG4gIH1cblxuICBhc3luYyB2aWV3RGF0YUNsaWNrKGV2ZW50OiBFdmVudCwga2V5OnN0cmluZykge1xuICAgIGlmICgha2V5KSByZXR1cm47IC8vIHNraXBcblxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMua2V5ID0ga2V5O1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXQoa2V5KTtcbiAgICAgIGlmICh0aGlzLl9sb2dLZXkgPT09IGtleSkge1xuICAgICAgICBjb25zdCBsb2dzID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICB0aGlzLmxvZ3MgPSBMb2dVdGlscy5mcm9tT2JqZWN0cyhsb2dzKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLnRvU3RyaW5nKGtleSwgZGF0YSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMudmlld0RhdGFNb2RhbC5wcmVzZW50KCk7XG5cbiAgICAgIGF3YWl0IHRoaXMudmlld0RhdGFNb2RhbC5vbldpbGxEaXNtaXNzKCk7XG5cbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICAvLyBGb3JnZXQgdGhlIGRhdGFcbiAgICAgIHRoaXMuZGF0YSA9IG51bGw7XG4gICAgICB0aGlzLmxvZ3MgPSBudWxsO1xuICAgICAgdGhpcy5rZXkgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNlbmREYXRhKGtleTogc3RyaW5nKSB7XG4gICAgaWYgKCFrZXkgfHwgIXRoaXMuZGVidWdEYXRhU2VydmljZSkgcmV0dXJuOyAvLyBTa2lwXG5cbiAgICBjb25zdCByYXdWYWx1ZSA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXQoa2V5KTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5kZWJ1Z0RhdGFTZXJ2aWNlLnNlbmREZWJ1Z0RhdGEocmF3VmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGF3YWl0IFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2VcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENvbmZpcm0gbWVzc2FnZSB3YXMgc2VudFxuICAgIGF3YWl0IFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwge1xuICAgICAgdHlwZTogJ2luZm8nLFxuICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnU09DSUFMLklORk8uTUVTU0FHRV9TRU5UJylcbiAgICB9KTtcbiAgfVxuXG5cbiAgYXN5bmMgZG93bmxvYWRBc0pzb24oa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAoIWtleSkgcmV0dXJuOyAvLyBza2lwXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXQoa2V5KTtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy50b1N0cmluZyhrZXksIGRhdGEpO1xuXG4gICAgaWYgKGtleSA9PT0gdGhpcy5fbG9nS2V5KSB7XG4gICAgICBGaWxlc1V0aWxzLndyaXRlVGV4dFRvRmlsZShjb250ZW50LCB7ZmlsZW5hbWU6IGAke2tleX0udHh0YH0pO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgSnNvblV0aWxzLmV4cG9ydFRvRmlsZShjb250ZW50LCB7ZmlsZW5hbWU6IGAke2tleX0uanNvbmB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjb3B5VG9DbGlwYm9hcmQoa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAoIWtleSkgcmV0dXJuOyAvLyBza2lwXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXQoa2V5KTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZXh0ID0gdGhpcy50b1N0cmluZyhrZXksIGRhdGEpO1xuXG4gICAgICBhd2FpdCBDbGlwYm9hcmQud3JpdGUoe1xuICAgICAgICBzdHJpbmc6IHRleHQsXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCB7XG4gICAgICAgIHR5cGU6ICdpbmZvJywgbWVzc2FnZTogJ0lORk8uQ09QWV9TVUNDRUVEJ1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNvcHlpbmcgdGV4dCB0byBjbGlwYm9hcmQnLCBlcnJvcik7XG4gICAgfVxuICB9XG5cblxuICBwcm90ZWN0ZWQgYXN5bmMgc3RhcnQoKSB7XG4gICAgY29uc3QgaXRlbXMgPSBbXTtcbiAgICB0aGlzLnN0b3JhZ2UuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuXG4gICAgICBpZiAodGhpcy5fcHJvdGVjdGVkS2V5cy5pbmNsdWRlcyhrZXkpKSByZXR1cm47IC8vIFNraXAgcHJvdGVjdGVkIGtleXNcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgIGtleSxcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIHRvdGFsOiB2YWx1ZS5sZW5ndGhcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgbGV0IHRvdGFsO1xuICAgICAgICBpZiAodmFsdWU/LnR5cGUgJiYgdmFsdWU/LnR5cGUgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBjb25zdCBuZXN0ZWRWYWx1ZSA9IEpTT04ucGFyc2UodmFsdWUudmFsdWUpO1xuICAgICAgICAgIHRvdGFsID0gKEFycmF5LmlzQXJyYXkobmVzdGVkVmFsdWUpKSA/IG5lc3RlZFZhbHVlLmxlbmd0aCA6IChPYmplY3Qua2V5cyhuZXN0ZWRWYWx1ZSkubGVuZ3RoID4gMCA/IDEgOiAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0b3RhbCA9IE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPiAwID8gMSA6IDA7XG4gICAgICAgIH1cbiAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAga2V5LFxuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHRvdGFsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdHlwZSA9ICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSA/ICdudW1iZXInIDogJ3N0cmluZyc7XG4gICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgIGtleSxcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHRvdGFsOiBpc05vdE5pbE9yQmxhbmsodmFsdWUpID8gMSA6IDBcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgdGhpcy4kaXRlbXMubmV4dChpdGVtcyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLiRsb2FkaW5nLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlZnJlc2goKSB7XG4gICAgaWYgKHRoaXMuJGxvYWRpbmcudmFsdWUpIHJldHVybjsgLy8gU0tpcCBpZiBsb2FkaW5nXG5cbiAgICB0aGlzLiRsb2FkaW5nLm5leHQodHJ1ZSk7XG4gICAgYXdhaXQgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvU3RyaW5nKGtleTogc3RyaW5nLCBkYXRhOiBhbnksIGh0bWw/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBpZiAoa2V5PT09IHRoaXMuX2xvZ0tleSkge1xuICAgICAgbGV0IGRhdGVUaW1lUGF0dGVybiA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0NPTU1PTi5EQVRFX1RJTUVfU0VDT05EU19QQVRURVJOJyk7XG4gICAgICBpZiAoZGF0ZVRpbWVQYXR0ZXJuID09PSAnQ09NTU9OLkRBVEVfVElNRV9TRUNPTkRTX1BBVFRFUk4nKSB7XG4gICAgICAgIGRhdGVUaW1lUGF0dGVybiA9IERBVEVfSVNPX1BBVFRFUk47XG4gICAgICB9XG4gICAgICBjb25zdCBsb2dzID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgcmV0dXJuIHRoaXMudG9Mb2dzKGRhdGEpLm1hcChsb2cgPT5cbiAgICAgICAgW1xuICAgICAgICAgIHRoaXMuZGF0ZUFkYXB0ZXIuZm9ybWF0KGxvZy5kYXRlLCBkYXRlVGltZVBhdHRlcm4pLFxuICAgICAgICAgIExvZ1V0aWxzLmxldmVsVG9TdHJpbmcobG9nLmxldmVsKSxcbiAgICAgICAgICBsb2cubG9nZ2VyTmFtZSArICdcXHQnLFxuICAgICAgICAgIGxvZy5tZXNzYWdlXG4gICAgICAgIF0uam9pbignXFx0JylcbiAgICAgICkuam9pbignXFxuJyk7XG4gICAgfVxuXG4gICAgLy8gRm9yY2Ugc2V0dGluZ3MgdG8gYmUgaW5kZW50XG4gICAgaWYgKGtleSA9PT0gJ3NldHRpbmdzJykge1xuICAgICAgZGF0YSA9ICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpID8gZGF0YSA6IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBjYXNlXG4gICAgcmV0dXJuICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpID8gZGF0YSA6IEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvTG9ncyhkYXRhOiBhbnkpOiBMb2dbXSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGxvZ3MgPSBBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YVxuICAgICAgICA6IChkYXRhID8gSlNPTi5wYXJzZShkYXRhKSA6IFtdKTtcbiAgICAgIHJldHVybiBMb2dVdGlscy5mcm9tT2JqZWN0cyhsb2dzKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgcmV0dXJuIFt7XG4gICAgICAgIGxvZ2dlck5hbWU6ICdzdG9yYWdlLWV4cGxvcmVyJyxcbiAgICAgICAgbGV2ZWw6IExvZ0xldmVsLkZBVEFMLFxuICAgICAgICBtZXNzYWdlOiBlcnI/Lm1lc3NhZ2UgfHwgSlNPTi5zdHJpbmdpZnkoZXJyKSxcbiAgICAgICAgZGF0ZTogRGF0ZVV0aWxzLm1vbWVudCgpXG4gICAgICB9XVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjbGVhcihrZXk6IHN0cmluZykge1xuXG4gICAgY29uc3QgY29uZmlybWVkID0gYXdhaXQgQWxlcnRzLmFza0FjdGlvbkNvbmZpcm1hdGlvbih0aGlzLmFsZXJ0Q3RybCwgdGhpcy50cmFuc2xhdGUsIHRydWUpO1xuICAgIGlmICghY29uZmlybWVkKSByZXR1cm47XG5cbiAgICB0aGlzLmxvZ3MgPSBbXTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgYXdhaXQgc2xlZXAoNjUwKTtcblxuICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5yZW1vdmUoa2V5KTtcblxuICAgIHRoaXMudmlld0RhdGFNb2RhbC5kaXNtaXNzKCk7XG5cbiAgICB0aGlzLnJlZnJlc2goKTtcblxuICB9XG5cblxuICBwcm90ZWN0ZWQgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IFN0b3JhZ2VJdGVtSW5mbyk6IGFueSB7XG4gICAgcmV0dXJuIGl0ZW0ua2V5O1xuICB9XG5cbiAgcHJvdGVjdGVkIGxldmVsVG9Db2xvcihsZXZlbDogTG9nTGV2ZWwpOiBzdHJpbmcge1xuICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7TG9nVXRpbHMubGV2ZWxUb0NvbG9yKGxldmVsKX0pYDtcbiAgfVxuICBwcm90ZWN0ZWQgbGV2ZWxUb1N0cmluZyA9IExvZ1V0aWxzLmxldmVsVG9TdHJpbmc7XG59XG4iLCI8aW9uLWhlYWRlcj5cbiAgPGlvbi10b29sYmFyIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgIDxpb24tdGl0bGU+U3RvcmFnZSBFeHBsb3JlcjwvaW9uLXRpdGxlPlxuXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgIDwhLS0gUmVmcmVzaCAtLT5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInQ09NTU9OLkJUTl9SRUZSRVNIJ3x0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVmcmVzaCgpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1oZWFkZXI+XG5cbjxpb24tY29udGVudCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCI+XG5cblxuICA8aW9uLWdyaWQgY2xhc3M9XCJpb24tcGFkZGluZyBsaXN0LWlzdG9yYWdlXCI+XG4gICAgPGlvbi1yb3c+XG4gICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplLWxnPVwiNlwiIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCI+XG4gICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPlJFRkVSRU5USUFMLkxBQkVMPC9pb24tbGFiZWw+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgICA8aW9uLWNvbCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPlxuICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5SRUZFUkVOVElBTC5UWVBFPC9pb24tbGFiZWw+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgICA8aW9uLWNvbCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbCBpb24tdGV4dC1zdGFydFwiPlxuICAgICAgICA8aW9uLWxhYmVsPk5iPC9pb24tbGFiZWw+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgICA8aW9uLWNvbCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiIHNpemU9XCJhdXRvXCIgPlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cblxuXG4gICAgPGlvbi1yb3cgY2xhc3M9XCJtYXQtcm93XCIgKnJ4Rm9yPVwibGV0IGl0ZW0gb2YgJGl0ZW1zOyB0cmFja0J5OiB0cmFja0J5Rm47IG9kZCBhcyBvZGQ7XCJcbiAgICAgICAgICAgICBbY2xhc3Mub2RkXT1cIm9kZFwiID5cbiAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemUtbGc9XCI2XCI+XG4gICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJpb24tdGV4dC13cmFwIG1hdC1jZWxsXCI+PGI+e3sgaXRlbS5rZXkgfX08L2I+PC9pb24tbGFiZWw+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgICA8aW9uLWNvbCBjbGFzcz1cIiBtYXQtY2VsbFwiPlxuICAgICAgICA8aW9uLWxhYmVsPnt7IGl0ZW0udHlwZSB9fTwvaW9uLWxhYmVsPlxuICAgICAgPC9pb24tY29sPlxuICAgICAgPGlvbi1jb2wgY2xhc3M9XCIgbWF0LWNlbGxcIj5cbiAgICAgICAgPGlvbi1sYWJlbD57eyBpdGVtLnRvdGFsIH19PC9pb24tbGFiZWw+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgICA8aW9uLWNvbCBzaXplPVwiYXV0byBtYXQtY2VsbFwiPlxuICAgICAgICA8aW9uLWJ1dHRvbnM+XG5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwidmlld0RhdGFDbGljaygkZXZlbnQsIGl0ZW0ua2V5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidDT01NT04uQlROX1BSRVZJRVcnfHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidDT01NT04uQlROX1BSRVZJRVcnfHRyYW5zbGF0ZVwiPnJlbW92ZV9yZWRfZXllPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPGlvbi1idXR0b24gKm5nSWY9XCJzaG93U2VuZEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VuZERhdGFDbGljaygkZXZlbnQsIGl0ZW0ua2V5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidDT01NT04uQlROX1NFTkQnfHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidDT01NT04uQlROX1NFTkQnfHRyYW5zbGF0ZVwiPnNlbmQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gIDwvaW9uLWdyaWQ+XG5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiJGxvYWRpbmd8YXN5bmM7IGVsc2Ugbm9SZXN1bHRcIj5cbiAgICA8aW9uLWl0ZW0+XG4gICAgICA8aW9uLXNrZWxldG9uLXRleHQgYW5pbWF0ZWQ+PC9pb24tc2tlbGV0b24tdGV4dD5cbiAgICA8L2lvbi1pdGVtPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI25vUmVzdWx0PlxuICAgIDxpb24taXRlbSAqbmdJZj1cIiRpdGVtc3xhc3luY3xpc0VtcHR5QXJyYXlcIj5cbiAgICAgIDxpb24tdGV4dCBjb2xvcj1cImRhbmdlclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWl0YWxpY1wiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCInQ09NTU9OLk5PX1JFU1VMVCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgIDwvaW9uLXRleHQ+XG4gICAgPC9pb24taXRlbT5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuPC9pb24tY29udGVudD5cblxuXG48aW9uLW1vZGFsICNzZW5kRGF0YU1vZGFsPlxuICA8bmctdGVtcGxhdGU+XG4gICAgPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIiB0cmFuc2xhdGU+Q09ORklSTS5TRU5EX0RFQlVHX0RBVEE8L2lvbi1pdGVtPlxuICAgIDwvaW9uLWNvbnRlbnQ+XG4gICAgPGlvbi1mb290ZXI+XG4gICAgICA8aW9uLXRvb2xiYXI+XG5cbiAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tbm8tcGFkZGluZ1wiIG5vd3JhcD5cbiAgICAgICAgICA8aW9uLWNvbD48L2lvbi1jb2w+XG5cbiAgICAgICAgICA8IS0tIGJ1dHRvbnMgLS0+XG4gICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFya1wiIChjbGljayk9XCJzZW5kRGF0YU1vZGFsLmRpc21pc3MoKVwiPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX0NBTkNFTDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwic29saWRcIiAoY2xpY2spPVwic2VuZERhdGFNb2RhbC5kaXNtaXNzKG51bGwsICdzZW5kJylcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fVkFMSURBVEU8L2lvbi1sYWJlbD5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgIDwvaW9uLXJvdz5cbiAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24tZm9vdGVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9pb24tbW9kYWw+XG5cbjxpb24tbW9kYWwgI3ZpZXdEYXRhTW9kYWwgY2xhc3M9XCJtb2RhbC1sYXJnZSB2aWV3LW1vZGFsXCI+XG4gIDxuZy10ZW1wbGF0ZT5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tbm8tcGFkZGluZ1wiIHNjcm9sbC15PVwidHJ1ZVwiPlxuICAgICAgPCEtLSBkaXNwbGF5IGxvZ3MtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2dzOyBlbHNlIG90aGVyS2V5XCI+XG4gICAgICAgIDxpb24tZ3JpZD5cbiAgICAgICAgICA8aW9uLXJvdyAqbmdGb3I9XCJsZXQgbG9nIG9mIGxvZ3NcIlxuICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJsZXZlbFRvQ29sb3IobG9nLmxldmVsKVwiPlxuICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjJcIiBjbGFzcz1cImlvbi10ZXh0LXN0YXJ0XCI+XG4gICAgICAgICAgICAgIHt7bG9nLmRhdGV8ZGF0ZUZvcm1hdDoge3RpbWU6IHRydWV9IH19XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMlwiIGNsYXNzPVwiaW9uLXRleHQtc3RhcnRcIj5cbiAgICAgICAgICAgICAge3tsZXZlbFRvU3RyaW5nKGxvZy5sZXZlbCl9fVxuICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjJcIiBjbGFzcz1cImlvbi10ZXh0LXN0YXJ0XCI+XG4gICAgICAgICAgICAgIHt7bG9nLmxvZ2dlck5hbWV9fVxuICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCIgc2l6ZS1sZz1cIjZcIiBjbGFzcz1cImlvbi10ZXh0LXdyYXBcIj5cbiAgICAgICAgICAgICAge3sgbG9nLm1lc3NhZ2UgfX1cbiAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICA8L2lvbi1yb3c+XG4gICAgICAgIDwvaW9uLWdyaWQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjb3RoZXJLZXk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgIDxwcmU+e3tkYXRhfX08L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaW9uLWNvbnRlbnQ+XG5cbiAgICA8aW9uLWZvb3Rlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cblxuICAgICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgbm93cmFwPlxuICAgICAgICAgIDxpb24tY29sPjwvaW9uLWNvbD5cblxuICAgICAgICAgIDwhLS0gYnV0dG9ucyAtLT5cbiAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPlxuXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoa2V5KVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gc2xvdD1cInN0YXJ0XCI+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+Q09NTU9OLkJUTl9DTEVBUjwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoa2V5KVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gc2xvdD1cInN0YXJ0XCI+Y29udGVudF9jb3B5PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+Q09NTU9OLkJUTl9DT1BZPC9pb24tbGFiZWw+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFtb2JpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkQXNKc29uKGtleSlcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uIHNsb3Q9XCJzdGFydFwiPmRvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+Q09NTU9OLkJUTl9ET1dOTE9BRDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwic29saWRcIiBjb2xvcj1cInRlcnRpYXJ5XCIgKGNsaWNrKT1cInZpZXdEYXRhTW9kYWwuZGlzbWlzcygpXCI+XG4gICAgICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fQ0xPU0U8L2lvbi1sYWJlbD5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgIDwvaW9uLXJvdz5cbiAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24tZm9vdGVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9pb24tbW9kYWw+XG4iXX0=
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1leHBsb3Jlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zdG9yYWdlL3N0b3JhZ2UtZXhwbG9yZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc3RvcmFnZS9zdG9yYWdlLWV4cGxvcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFaEosT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsZUFBZSxFQUFFLHlCQUF5QixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDMUYsT0FBTyxFQUFDLFdBQVcsRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxzQkFBc0IsRUFBb0IsTUFBTSw4QkFBOEIsQ0FBQztBQUV2RixPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQWMsV0FBVyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFNLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXRELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztB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Q0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFN0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRWpCLENBQUM7SUFHUyxTQUFTLENBQUMsS0FBYSxFQUFFLElBQXFCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRVMsWUFBWSxDQUFDLEtBQWU7UUFDcEMsT0FBTyxtQkFBbUIsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQzVELENBQUM7O3FIQTlQVSx3QkFBd0IsME1BeUJ6QixXQUFXLGFBQ1gsV0FBVyxhQUNDLHNCQUFzQiw2QkFDdEIsbUNBQW1DO3lHQTVCOUMsd0JBQXdCLDZVQ25DckMsNjFMQStLQTsyRkQ1SWEsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNOzswQkEyQjVDLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCOzswQkFDekMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQ0FBbUM7NENBakJoRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFc0IsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQUNFLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBbGVydENvbnRyb2xsZXIsIElvbk1vZGFsLCBQbGF0Zm9ybSwgVG9hc3RDb250cm9sbGVyfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2lzTm90TmlsT3JCbGFuaywgcmVtb3ZlRHVwbGljYXRlc0Zyb21BcnJheSwgc2xlZXAsIHRvQm9vbGVhbn0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7QVBQX1NUT1JBR0UsIElTdG9yYWdlfSBmcm9tICcuL3N0b3JhZ2UudXRpbHMnO1xuaW1wb3J0IHtBUFBfREVCVUdfREFUQV9TRVJWSUNFLCBJRGVidWdEYXRhU2VydmljZX0gZnJvbSAnLi4vZGVidWcvZGVidWctc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtUb2FzdHN9IGZyb20gJy4uL3RvYXN0L3RvYXN0cyc7XG5pbXBvcnQge0pzb25VdGlsc30gZnJvbSAnLi4vZmlsZS9qc29uLnV0aWxzJztcbmltcG9ydCB7Q2xpcGJvYXJkfSBmcm9tICdAY2FwYWNpdG9yL2NsaXBib2FyZCc7XG5pbXBvcnQge0Vudmlyb25tZW50LCBFTlZJUk9OTUVOVH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcbmltcG9ydCB7TG9nLCBMb2dVdGlsc30gZnJvbSAnLi4vbG9nZ2luZy9sb2dnZXIubW9kZWwnO1xuaW1wb3J0IHtNb21lbnREYXRlQWRhcHRlcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuaW1wb3J0IHtEQVRFX0lTT19QQVRURVJOfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtMb2dMZXZlbH0gZnJvbSAnLi4vbG9nZ2luZy9sb2ctbGV2ZWwubW9kZWwnO1xuaW1wb3J0IHtEYXRlVXRpbHN9IGZyb20gJy4uL2RhdGVzJztcbmltcG9ydCB7QWxlcnRzfSBmcm9tICcuLi9hbGVydHMnO1xuaW1wb3J0IHtGaWxlc1V0aWxzfSBmcm9tICcuLi9maWxlL2ZpbGUudXRpbHMnO1xuXG5pbnRlcmZhY2UgU3RvcmFnZUl0ZW1JbmZvIHtcbiAga2V5OiBzdHJpbmc7XG4gIHR5cGU6ICdhcnJheScgfCAnb2JqZWN0JyB8ICdzdHJpbmcnIHwgJ251bWJlcic7XG4gIHRvdGFsOiBudW1iZXI7XG59XG5cblxuZXhwb3J0IGNvbnN0IEFQUF9TVE9SQUdFX0VYUExPUkVSX1BST1RFQ1RFRF9LRVlTID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZ1tdPignU3RvcmFnZUV4cGxvcmVyUHJvdGVjdGVkS2V5cycpO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zdG9yYWdlLWV4cGxvcmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0b3JhZ2UtZXhwbG9yZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdG9yYWdlLWV4cGxvcmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VFeHBsb3JlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHJpdmF0ZSBfbG9nUHJlZml4ID0gJ1tzdG9yYWdlLWV4cGxvcmVyXSAnO1xuICBwcm90ZWN0ZWQgJGxvYWRpbmcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwcm90ZWN0ZWQgJGl0ZW1zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTdG9yYWdlSXRlbUluZm9bXT4oW10pO1xuICBwcm90ZWN0ZWQgX2xvZ0tleTogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBkYXRhOiBhbnk7XG4gIHByb3RlY3RlZCBsb2dzOiBMb2dbXTtcbiAgcHJvdGVjdGVkIGtleTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIG1vYmlsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgc2hvd1NlbmRCdXR0b246IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnc2VuZERhdGFNb2RhbCcpIHNlbmREYXRhTW9kYWw6IElvbk1vZGFsO1xuICBAVmlld0NoaWxkKCd2aWV3RGF0YU1vZGFsJykgdmlld0RhdGFNb2RhbDogSW9uTW9kYWw7XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgIHByb3RlY3RlZCB0b2FzdENvbnRyb2xsZXI6IFRvYXN0Q29udHJvbGxlcixcbiAgICBwcm90ZWN0ZWQgYWxlcnRDdHJsOiBBbGVydENvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZGF0ZUFkYXB0ZXI6IE1vbWVudERhdGVBZGFwdGVyLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChBUFBfU1RPUkFHRSkgcHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JhZ2U6IElTdG9yYWdlLFxuICAgIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByb3RlY3RlZCByZWFkb25seSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBUFBfREVCVUdfREFUQV9TRVJWSUNFKSBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVidWdEYXRhU2VydmljZTogSURlYnVnRGF0YVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBUFBfU1RPUkFHRV9FWFBMT1JFUl9QUk9URUNURURfS0VZUykgcHJpdmF0ZSByZWFkb25seSBfcHJvdGVjdGVkS2V5czogc3RyaW5nW11cbiAgKSB7XG4gICAgdGhpcy5fcHJvdGVjdGVkS2V5cyA9IHJlbW92ZUR1cGxpY2F0ZXNGcm9tQXJyYXkoWy4uLih0aGlzLl9wcm90ZWN0ZWRLZXlzIHx8IFtdKSwgJ3NlY2tleScsICd0b2tlbiddKTtcbiAgICB0aGlzLl9sb2dLZXkgPSBlbnZpcm9ubWVudC5sb2dnaW5nPy5sb2NhbFN0b3JhZ2VBcHBlbmRlcj8ubG9jYWxTdG9yYWdlS2V5IHx8ICdsb2cnO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zaG93U2VuZEJ1dHRvbiA9IHRvQm9vbGVhbih0aGlzLnNob3dTZW5kQnV0dG9uLCB0cnVlKSAmJiAhIXRoaXMuZGVidWdEYXRhU2VydmljZTtcbiAgICB0aGlzLm1vYmlsZSA9IHRvQm9vbGVhbih0aGlzLm1vYmlsZSwgdGhpcy5wbGF0Zm9ybS5pcygnbW9iaWxlJykpO1xuXG4gICAgdGhpcy5zdG9yYWdlLnJlYWR5KClcbiAgICAgIC50aGVuKCgpID0+IHRoaXMuc3RhcnQoKSk7XG4gIH1cblxuICBhc3luYyBzZW5kRGF0YUNsaWNrKGV2ZW50OiBFdmVudCwga2V5OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuZGVidWdEYXRhU2VydmljZSkge1xuICAgICAgY29uc29sZS53YXJuKGAke3RoaXMuX2xvZ1ByZWZpeH1DYW5ub3Qgc2VuZCBkZWJ1ZyBkYXRhOiBtaXNzaW5nIHByb3ZpZGVyIGZvciAnQVBQX0RFQlVHX0RBVEFfU0VSVklDRSdgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZW5kRGF0YU1vZGFsLnByZXNlbnQoKTtcblxuICAgIGNvbnN0IHtkYXRhLCByb2xlfSA9IGF3YWl0IHRoaXMuc2VuZERhdGFNb2RhbC5vbkRpZERpc21pc3MoKTtcbiAgICBpZiAocm9sZSA9PT0gJ3NlbmQnKSB7XG4gICAgICB0aGlzLnNlbmREYXRhKGtleSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdmlld0RhdGFDbGljayhldmVudDogRXZlbnQsIGtleTogc3RyaW5nKSB7XG4gICAgaWYgKCFrZXkpIHJldHVybjsgLy8gc2tpcFxuXG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5rZXkgPSBrZXk7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldChrZXkpO1xuICAgICAgaWYgKHRoaXMuX2xvZ0tleSA9PT0ga2V5KSB7XG4gICAgICAgIGNvbnN0IGxvZ3MgPSBBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgIHRoaXMubG9ncyA9IExvZ1V0aWxzLmZyb21PYmplY3RzKGxvZ3MpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMudG9TdHJpbmcoa2V5LCBkYXRhKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy52aWV3RGF0YU1vZGFsLnByZXNlbnQoKTtcblxuICAgICAgYXdhaXQgdGhpcy52aWV3RGF0YU1vZGFsLm9uV2lsbERpc21pc3MoKTtcblxuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIC8vIEZvcmdldCB0aGUgZGF0YVxuICAgICAgdGhpcy5kYXRhID0gbnVsbDtcbiAgICAgIHRoaXMubG9ncyA9IG51bGw7XG4gICAgICB0aGlzLmtleSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2VuZERhdGEoa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAoIWtleSB8fCAhdGhpcy5kZWJ1Z0RhdGFTZXJ2aWNlKSByZXR1cm47IC8vIFNraXBcblxuICAgIGNvbnN0IHJhd1ZhbHVlID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldChrZXkpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmRlYnVnRGF0YVNlcnZpY2Uuc2VuZERlYnVnRGF0YShyYXdWYWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYXdhaXQgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCB7XG4gICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZVxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ29uZmlybSBtZXNzYWdlIHdhcyBzZW50XG4gICAgYXdhaXQgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCB7XG4gICAgICB0eXBlOiAnaW5mbycsXG4gICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdTT0NJQUwuSU5GTy5NRVNTQUdFX1NFTlQnKVxuICAgIH0pO1xuICB9XG5cblxuICBhc3luYyBkb3dubG9hZEFzSnNvbihrZXk6IHN0cmluZykge1xuICAgIGlmICgha2V5KSByZXR1cm47IC8vIHNraXBcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldChrZXkpO1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnRvU3RyaW5nKGtleSwgZGF0YSk7XG5cbiAgICBpZiAoa2V5ID09PSB0aGlzLl9sb2dLZXkpIHtcbiAgICAgIEZpbGVzVXRpbHMud3JpdGVUZXh0VG9GaWxlKGNvbnRlbnQsIHtmaWxlbmFtZTogYCR7a2V5fS50eHRgfSk7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICBKc29uVXRpbHMuZXhwb3J0VG9GaWxlKGNvbnRlbnQsIHtmaWxlbmFtZTogYCR7a2V5fS5qc29uYH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNvcHlUb0NsaXBib2FyZChrZXk6IHN0cmluZykge1xuICAgIGlmICgha2V5KSByZXR1cm47IC8vIHNraXBcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldChrZXkpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRleHQgPSB0aGlzLnRvU3RyaW5nKGtleSwgZGF0YSk7XG5cbiAgICAgIGF3YWl0IENsaXBib2FyZC53cml0ZSh7XG4gICAgICAgIHN0cmluZzogdGV4dCxcbiAgICAgIH0pO1xuXG4gICAgICBhd2FpdCBUb2FzdHMuc2hvdyh0aGlzLnRvYXN0Q29udHJvbGxlciwgdGhpcy50cmFuc2xhdGUsIHtcbiAgICAgICAgdHlwZTogJ2luZm8nLCBtZXNzYWdlOiAnSU5GTy5DT1BZX1NVQ0NFRUQnXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgY29weWluZyB0ZXh0IHRvIGNsaXBib2FyZCcsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuXG4gIHByb3RlY3RlZCBhc3luYyBzdGFydCgpIHtcbiAgICBjb25zdCBpdGVtcyA9IFtdO1xuICAgIHRoaXMuc3RvcmFnZS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG5cbiAgICAgIGlmICh0aGlzLl9wcm90ZWN0ZWRLZXlzLmluY2x1ZGVzKGtleSkpIHJldHVybjsgLy8gU2tpcCBwcm90ZWN0ZWQga2V5c1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAga2V5LFxuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgdG90YWw6IHZhbHVlLmxlbmd0aFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBsZXQgdG90YWw7XG4gICAgICAgIGlmICh2YWx1ZT8udHlwZSAmJiB2YWx1ZT8udHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBjb25zdCBuZXN0ZWRWYWx1ZSA9IEpTT04ucGFyc2UodmFsdWUudmFsdWUpO1xuICAgICAgICAgIHRvdGFsID0gKEFycmF5LmlzQXJyYXkobmVzdGVkVmFsdWUpKSA/IG5lc3RlZFZhbHVlLmxlbmd0aCA6IChPYmplY3Qua2V5cyhuZXN0ZWRWYWx1ZSkubGVuZ3RoID4gMCA/IDEgOiAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0b3RhbCA9IE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPiAwID8gMSA6IDA7XG4gICAgICAgIH1cbiAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAga2V5LFxuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHRvdGFsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdHlwZSA9ICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSA/ICdudW1iZXInIDogJ3N0cmluZyc7XG4gICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgIGtleSxcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHRvdGFsOiBpc05vdE5pbE9yQmxhbmsodmFsdWUpID8gMSA6IDBcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuJGl0ZW1zLm5leHQoaXRlbXMpO1xuICAgIH0pO1xuXG4gICAgdGhpcy4kbG9hZGluZy5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZWZyZXNoKCkge1xuICAgIGlmICh0aGlzLiRsb2FkaW5nLnZhbHVlKSByZXR1cm47IC8vIFNLaXAgaWYgbG9hZGluZ1xuXG4gICAgdGhpcy4kbG9hZGluZy5uZXh0KHRydWUpO1xuICAgIGF3YWl0IHRoaXMuc3RhcnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b1N0cmluZyhrZXk6IHN0cmluZywgZGF0YTogYW55LCBodG1sPzogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgaWYgKGtleT09PSB0aGlzLl9sb2dLZXkpIHtcbiAgICAgIGxldCBkYXRlVGltZVBhdHRlcm4gPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdDT01NT04uREFURV9USU1FX1NFQ09ORFNfUEFUVEVSTicpO1xuICAgICAgaWYgKGRhdGVUaW1lUGF0dGVybiA9PT0gJ0NPTU1PTi5EQVRFX1RJTUVfU0VDT05EU19QQVRURVJOJykge1xuICAgICAgICBkYXRlVGltZVBhdHRlcm4gPSBEQVRFX0lTT19QQVRURVJOO1xuICAgICAgfVxuICAgICAgY29uc3QgbG9ncyA9IEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgIHJldHVybiB0aGlzLnRvTG9ncyhkYXRhKS5tYXAobG9nID0+XG4gICAgICAgIFtcbiAgICAgICAgICB0aGlzLmRhdGVBZGFwdGVyLmZvcm1hdChsb2cuZGF0ZSwgZGF0ZVRpbWVQYXR0ZXJuKSxcbiAgICAgICAgICBMb2dVdGlscy5sZXZlbFRvU3RyaW5nKGxvZy5sZXZlbCksXG4gICAgICAgICAgbG9nLmxvZ2dlck5hbWUgKyAnXFx0JyxcbiAgICAgICAgICBsb2cubWVzc2FnZVxuICAgICAgICBdLmpvaW4oJ1xcdCcpXG4gICAgICApLmpvaW4oJ1xcbicpO1xuICAgIH1cblxuICAgIC8vIEZvcmNlIHNldHRpbmdzIHRvIGJlIGluZGVudFxuICAgIGlmIChrZXkgPT09ICdzZXR0aW5ncycpIHtcbiAgICAgIGRhdGEgPSAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSA/IGRhdGEgOiBKU09OLnBhcnNlKGRhdGEpO1xuICAgIH1cblxuICAgIC8vIERlZmF1bHQgY2FzZVxuICAgIHJldHVybiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSA/IGRhdGEgOiBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b0xvZ3MoZGF0YTogYW55KTogTG9nW10ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBsb2dzID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGFcbiAgICAgICAgOiAoZGF0YSA/IEpTT04ucGFyc2UoZGF0YSkgOiBbXSk7XG4gICAgICByZXR1cm4gTG9nVXRpbHMuZnJvbU9iamVjdHMobG9ncyk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgIHJldHVybiBbe1xuICAgICAgICBsb2dnZXJOYW1lOiAnc3RvcmFnZS1leHBsb3JlcicsXG4gICAgICAgIGxldmVsOiBMb2dMZXZlbC5GQVRBTCxcbiAgICAgICAgbWVzc2FnZTogZXJyPy5tZXNzYWdlIHx8IEpTT04uc3RyaW5naWZ5KGVyciksXG4gICAgICAgIGRhdGU6IERhdGVVdGlscy5tb21lbnQoKVxuICAgICAgfV07XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGNsZWFyKGtleTogc3RyaW5nKSB7XG5cbiAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCBBbGVydHMuYXNrQWN0aW9uQ29uZmlybWF0aW9uKHRoaXMuYWxlcnRDdHJsLCB0aGlzLnRyYW5zbGF0ZSwgdHJ1ZSk7XG4gICAgaWYgKCFjb25maXJtZWQpIHJldHVybjtcblxuICAgIHRoaXMubG9ncyA9IFtdO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG5cbiAgICBhd2FpdCBzbGVlcCg2NTApO1xuXG4gICAgYXdhaXQgdGhpcy5zdG9yYWdlLnJlbW92ZShrZXkpO1xuXG4gICAgdGhpcy52aWV3RGF0YU1vZGFsLmRpc21pc3MoKTtcblxuICAgIHRoaXMucmVmcmVzaCgpO1xuXG4gIH1cblxuXG4gIHByb3RlY3RlZCB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogU3RvcmFnZUl0ZW1JbmZvKTogYW55IHtcbiAgICByZXR1cm4gaXRlbS5rZXk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbGV2ZWxUb0NvbG9yKGxldmVsOiBMb2dMZXZlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHtMb2dVdGlscy5sZXZlbFRvQ29sb3IobGV2ZWwpfSlgO1xuICB9XG4gIHByb3RlY3RlZCBsZXZlbFRvU3RyaW5nID0gTG9nVXRpbHMubGV2ZWxUb1N0cmluZztcbn1cbiIsIjxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXIgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgPGlvbi10aXRsZT5TdG9yYWdlIEV4cGxvcmVyPC9pb24tdGl0bGU+XG5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgPCEtLSBSZWZyZXNoIC0tPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgW3RpdGxlXT1cIidDT01NT04uQlROX1JFRlJFU0gnfHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZWZyZXNoKClcIj5cbiAgICAgICAgPG1hdC1pY29uPnJlZnJlc2g8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIj5cblxuXG4gIDxpb24tZ3JpZCBjbGFzcz1cImlvbi1wYWRkaW5nIGxpc3QtaXN0b3JhZ2VcIj5cbiAgICA8aW9uLXJvdz5cbiAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemUtbGc9XCI2XCIgY2xhc3M9XCJtYXQtaGVhZGVyLWNlbGxcIj5cbiAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+UkVGRVJFTlRJQUwuTEFCRUw8L2lvbi1sYWJlbD5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDxpb24tY29sIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCI+XG4gICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPlJFRkVSRU5USUFMLlRZUEU8L2lvbi1sYWJlbD5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDxpb24tY29sIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsIGlvbi10ZXh0LXN0YXJ0XCI+XG4gICAgICAgIDxpb24tbGFiZWw+TmI8L2lvbi1sYWJlbD5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDxpb24tY29sIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCIgc2l6ZT1cImF1dG9cIiA+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuXG5cbiAgICA8aW9uLXJvdyBjbGFzcz1cIm1hdC1yb3dcIiAqcnhGb3I9XCJsZXQgaXRlbSBvZiAkaXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlGbjsgb2RkIGFzIG9kZDtcIlxuICAgICAgICAgICAgIFtjbGFzcy5vZGRdPVwib2RkXCIgPlxuICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCIgc2l6ZS1sZz1cIjZcIj5cbiAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImlvbi10ZXh0LXdyYXAgbWF0LWNlbGxcIj48Yj57eyBpdGVtLmtleSB9fTwvYj48L2lvbi1sYWJlbD5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDxpb24tY29sIGNsYXNzPVwiIG1hdC1jZWxsXCI+XG4gICAgICAgIDxpb24tbGFiZWw+e3sgaXRlbS50eXBlIH19PC9pb24tbGFiZWw+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgICA8aW9uLWNvbCBjbGFzcz1cIiBtYXQtY2VsbFwiPlxuICAgICAgICA8aW9uLWxhYmVsPnt7IGl0ZW0udG90YWwgfX08L2lvbi1sYWJlbD5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvIG1hdC1jZWxsXCI+XG4gICAgICAgIDxpb24tYnV0dG9ucz5cblxuICAgICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJ2aWV3RGF0YUNsaWNrKCRldmVudCwgaXRlbS5rZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0NPTU1PTi5CVE5fUFJFVklFVyd8dHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gc2xvdD1cImljb24tb25seVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NPTU1PTi5CVE5fUFJFVklFVyd8dHJhbnNsYXRlXCI+cmVtb3ZlX3JlZF9leWU8L21hdC1pY29uPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cInNob3dTZW5kQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZW5kRGF0YUNsaWNrKCRldmVudCwgaXRlbS5rZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0NPTU1PTi5CVE5fU0VORCd8dHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gc2xvdD1cImljb24tb25seVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NPTU1PTi5CVE5fU0VORCd8dHJhbnNsYXRlXCI+c2VuZDwvbWF0LWljb24+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cbiAgPC9pb24tZ3JpZD5cblxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIkbG9hZGluZ3xhc3luYzsgZWxzZSBub1Jlc3VsdFwiPlxuICAgIDxpb24taXRlbT5cbiAgICAgIDxpb24tc2tlbGV0b24tdGV4dCBhbmltYXRlZD48L2lvbi1za2VsZXRvbi10ZXh0PlxuICAgIDwvaW9uLWl0ZW0+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbm9SZXN1bHQ+XG4gICAgPGlvbi1pdGVtICpuZ0lmPVwiJGl0ZW1zfGFzeW5jfGlzRW1wdHlBcnJheVwiPlxuICAgICAgPGlvbi10ZXh0IGNvbG9yPVwiZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtaXRhbGljXCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIidDT01NT04uTk9fUkVTVUxUJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgPC9pb24tdGV4dD5cbiAgICA8L2lvbi1pdGVtPlxuICA8L25nLXRlbXBsYXRlPlxuXG48L2lvbi1jb250ZW50PlxuXG5cbjxpb24tbW9kYWwgI3NlbmREYXRhTW9kYWw+XG4gIDxuZy10ZW1wbGF0ZT5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiIHRyYW5zbGF0ZT5DT05GSVJNLlNFTkRfREVCVUdfREFUQTwvaW9uLWl0ZW0+XG4gICAgPC9pb24tY29udGVudD5cbiAgICA8aW9uLWZvb3Rlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cblxuICAgICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgbm93cmFwPlxuICAgICAgICAgIDxpb24tY29sPjwvaW9uLWNvbD5cblxuICAgICAgICAgIDwhLS0gYnV0dG9ucyAtLT5cbiAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgKGNsaWNrKT1cInNlbmREYXRhTW9kYWwuZGlzbWlzcygpXCI+XG4gICAgICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fQ0FOQ0VMPC9pb24tbGFiZWw+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJzb2xpZFwiIChjbGljayk9XCJzZW5kRGF0YU1vZGFsLmRpc21pc3MobnVsbCwgJ3NlbmQnKVwiIGNvbG9yPVwidGVydGlhcnlcIj5cbiAgICAgICAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+Q09NTU9OLkJUTl9WQUxJREFURTwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgPC9pb24tcm93PlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1mb290ZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2lvbi1tb2RhbD5cblxuPGlvbi1tb2RhbCAjdmlld0RhdGFNb2RhbCBjbGFzcz1cIm1vZGFsLWxhcmdlIHZpZXctbW9kYWxcIj5cbiAgPG5nLXRlbXBsYXRlPlxuICAgIDxpb24tY29udGVudCBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgc2Nyb2xsLXk9XCJ0cnVlXCI+XG4gICAgICA8IS0tIGRpc3BsYXkgbG9ncy0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvZ3M7IGVsc2Ugb3RoZXJLZXlcIj5cbiAgICAgICAgPGlvbi1ncmlkPlxuICAgICAgICAgIDxpb24tcm93ICpuZ0Zvcj1cImxldCBsb2cgb2YgbG9nc1wiXG4gICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImxldmVsVG9Db2xvcihsb2cubGV2ZWwpXCI+XG4gICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMlwiIGNsYXNzPVwiaW9uLXRleHQtc3RhcnRcIj5cbiAgICAgICAgICAgICAge3tsb2cuZGF0ZXxkYXRlRm9ybWF0OiB7dGltZTogdHJ1ZX0gfX1cbiAgICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIyXCIgY2xhc3M9XCJpb24tdGV4dC1zdGFydFwiPlxuICAgICAgICAgICAgICB7e2xldmVsVG9TdHJpbmcobG9nLmxldmVsKX19XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMlwiIGNsYXNzPVwiaW9uLXRleHQtc3RhcnRcIj5cbiAgICAgICAgICAgICAge3tsb2cubG9nZ2VyTmFtZX19XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplLWxnPVwiNlwiIGNsYXNzPVwiaW9uLXRleHQtd3JhcFwiPlxuICAgICAgICAgICAgICB7eyBsb2cubWVzc2FnZSB9fVxuICAgICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICAgIDwvaW9uLXJvdz5cbiAgICAgICAgPC9pb24tZ3JpZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNvdGhlcktleT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICAgICAgPHByZT57e2RhdGF9fTwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pb24tY29udGVudD5cblxuICAgIDxpb24tZm9vdGVyPlxuICAgICAgPGlvbi10b29sYmFyPlxuXG4gICAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIiBub3dyYXA+XG4gICAgICAgICAgPGlvbi1jb2w+PC9pb24tY29sPlxuXG4gICAgICAgICAgPCEtLSBidXR0b25zIC0tPlxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhcihrZXkpXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBzbG90PVwic3RhcnRcIj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX0NMRUFSPC9pb24tbGFiZWw+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvcHlUb0NsaXBib2FyZChrZXkpXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBzbG90PVwic3RhcnRcIj5jb250ZW50X2NvcHk8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX0NPUFk8L2lvbi1sYWJlbD5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIW1vYmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRBc0pzb24oa2V5KVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gc2xvdD1cInN0YXJ0XCI+ZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX0RPV05MT0FEPC9pb24tbGFiZWw+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJzb2xpZFwiIGNvbG9yPVwidGVydGlhcnlcIiAoY2xpY2spPVwidmlld0RhdGFNb2RhbC5kaXNtaXNzKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+Q09NTU9OLkJUTl9DTE9TRTwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgPC9pb24tcm93PlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1mb290ZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2lvbi1tb2RhbD5cbiJdfQ==
@@ -1,7 +1,6 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { StorageExplorerComponent } from './storage-explorer.component';
4
- import { RouterModule } from '@angular/router';
5
4
  import { TranslateModule } from '@ngx-translate/core';
6
5
  import { ForModule } from '@rx-angular/template/for';
7
6
  import { IonicModule } from '@ionic/angular';
@@ -9,30 +8,19 @@ import { SharedPipesModule } from '../pipes/pipes.module';
9
8
  import { SharedMaterialModule } from '../material/material.module';
10
9
  import * as i0 from "@angular/core";
11
10
  import * as i1 from "@ngx-translate/core";
12
- import * as i2 from "@angular/router";
13
- export const SHARED_STORAGE_TESTING_PAGES = [
14
- { label: 'Storage explorer', page: '/testing/shared/storage' }
15
- ];
16
- const routes = [
17
- {
18
- path: 'storage',
19
- pathMatch: 'full',
20
- component: StorageExplorerComponent,
21
- }
22
- ];
23
11
  export class StorageExplorerModule {
24
12
  }
25
13
  StorageExplorerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StorageExplorerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
14
  StorageExplorerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: StorageExplorerModule, declarations: [StorageExplorerComponent], imports: [IonicModule,
27
- CommonModule, i1.TranslateModule, i2.RouterModule, ForModule,
15
+ CommonModule,
16
+ ForModule, i1.TranslateModule,
28
17
  // Other shared modules
29
18
  SharedPipesModule,
30
19
  SharedMaterialModule], exports: [StorageExplorerComponent] });
31
20
  StorageExplorerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StorageExplorerModule, imports: [IonicModule,
32
21
  CommonModule,
33
- TranslateModule.forChild(),
34
- RouterModule.forChild(routes),
35
22
  ForModule,
23
+ TranslateModule.forChild(),
36
24
  // Other shared modules
37
25
  SharedPipesModule,
38
26
  SharedMaterialModule] });
@@ -42,9 +30,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
42
30
  imports: [
43
31
  IonicModule,
44
32
  CommonModule,
45
- TranslateModule.forChild(),
46
- RouterModule.forChild(routes),
47
33
  ForModule,
34
+ TranslateModule.forChild(),
48
35
  // Other shared modules
49
36
  SharedPipesModule,
50
37
  SharedMaterialModule
@@ -57,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
57
44
  ]
58
45
  }]
59
46
  }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1leHBsb3Jlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zdG9yYWdlL3N0b3JhZ2UtZXhwbG9yZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQUVqRSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBa0I7SUFDekQsRUFBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFDO0NBQzdELENBQUM7QUFFRixNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxTQUFTO1FBQ2YsU0FBUyxFQUFFLE1BQU07UUFDakIsU0FBUyxFQUFFLHdCQUF3QjtLQUNwQztDQUNGLENBQUM7QUFzQkYsTUFBTSxPQUFPLHFCQUFxQjs7a0hBQXJCLHFCQUFxQjttSEFBckIscUJBQXFCLGlCQU45Qix3QkFBd0IsYUFYeEIsV0FBVztRQUNYLFlBQVksdUNBR1osU0FBUztRQUVULHVCQUF1QjtRQUN2QixpQkFBaUI7UUFDakIsb0JBQW9CLGFBTXBCLHdCQUF3QjttSEFHZixxQkFBcUIsWUFqQjlCLFdBQVc7UUFDWCxZQUFZO1FBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtRQUMxQixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUM3QixTQUFTO1FBRVQsdUJBQXVCO1FBQ3ZCLGlCQUFpQjtRQUNqQixvQkFBb0I7MkZBU1gscUJBQXFCO2tCQW5CakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBQzFCLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO3dCQUM3QixTQUFTO3dCQUVULHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQixvQkFBb0I7cUJBQ3JCO29CQUNELFlBQVksRUFBRTt3QkFDWix3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCx3QkFBd0I7cUJBQ3pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7U3RvcmFnZUV4cGxvcmVyQ29tcG9uZW50fSBmcm9tICcuL3N0b3JhZ2UtZXhwbG9yZXIuY29tcG9uZW50JztcbmltcG9ydCB7Um91dGVyTW9kdWxlLCBSb3V0ZXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0Zvck1vZHVsZX0gZnJvbSAnQHJ4LWFuZ3VsYXIvdGVtcGxhdGUvZm9yJztcbmltcG9ydCB7SW9uaWNNb2R1bGV9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7U2hhcmVkUGlwZXNNb2R1bGV9IGZyb20gJy4uL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5pbXBvcnQge1Rlc3RpbmdQYWdlfSBmcm9tICcuLi90ZXN0aW5nL3Rlc3RzLnBhZ2UnO1xuaW1wb3J0IHtTaGFyZWRNYXRlcmlhbE1vZHVsZX0gZnJvbSAnLi4vbWF0ZXJpYWwvbWF0ZXJpYWwubW9kdWxlJztcblxuZXhwb3J0IGNvbnN0IFNIQVJFRF9TVE9SQUdFX1RFU1RJTkdfUEFHRVM6IFRlc3RpbmdQYWdlW10gPSBbXG4gIHtsYWJlbDogJ1N0b3JhZ2UgZXhwbG9yZXInLCBwYWdlOiAnL3Rlc3Rpbmcvc2hhcmVkL3N0b3JhZ2UnfVxuXTtcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnc3RvcmFnZScsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgY29tcG9uZW50OiBTdG9yYWdlRXhwbG9yZXJDb21wb25lbnQsXG4gIH1cbl07XG5cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIElvbmljTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKSxcbiAgICBGb3JNb2R1bGUsXG5cbiAgICAvLyBPdGhlciBzaGFyZWQgbW9kdWxlc1xuICAgIFNoYXJlZFBpcGVzTW9kdWxlLFxuICAgIFNoYXJlZE1hdGVyaWFsTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFN0b3JhZ2VFeHBsb3JlckNvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFN0b3JhZ2VFeHBsb3JlckNvbXBvbmVudCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTdG9yYWdlRXhwbG9yZXJNb2R1bGUgeyB9XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1leHBsb3Jlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zdG9yYWdlL3N0b3JhZ2UtZXhwbG9yZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDOzs7QUFxQmpFLE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixpQkFOOUIsd0JBQXdCLGFBVnhCLFdBQVc7UUFDWCxZQUFZO1FBQ1osU0FBUztRQUdULHVCQUF1QjtRQUN2QixpQkFBaUI7UUFDakIsb0JBQW9CLGFBTXBCLHdCQUF3QjttSEFHZixxQkFBcUIsWUFoQjlCLFdBQVc7UUFDWCxZQUFZO1FBQ1osU0FBUztRQUNULGVBQWUsQ0FBQyxRQUFRLEVBQUU7UUFFMUIsdUJBQXVCO1FBQ3ZCLGlCQUFpQjtRQUNqQixvQkFBb0I7MkZBU1gscUJBQXFCO2tCQWxCakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsZUFBZSxDQUFDLFFBQVEsRUFBRTt3QkFFMUIsdUJBQXVCO3dCQUN2QixpQkFBaUI7d0JBQ2pCLG9CQUFvQjtxQkFDckI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHdCQUF3QjtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHdCQUF3QjtxQkFDekI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtTdG9yYWdlRXhwbG9yZXJDb21wb25lbnR9IGZyb20gJy4vc3RvcmFnZS1leHBsb3Jlci5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtGb3JNb2R1bGV9IGZyb20gJ0ByeC1hbmd1bGFyL3RlbXBsYXRlL2Zvcic7XG5pbXBvcnQge0lvbmljTW9kdWxlfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge1NoYXJlZFBpcGVzTW9kdWxlfSBmcm9tICcuLi9waXBlcy9waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHtTaGFyZWRNYXRlcmlhbE1vZHVsZX0gZnJvbSAnLi4vbWF0ZXJpYWwvbWF0ZXJpYWwubW9kdWxlJztcblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvck1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcblxuICAgIC8vIE90aGVyIHNoYXJlZCBtb2R1bGVzXG4gICAgU2hhcmVkUGlwZXNNb2R1bGUsXG4gICAgU2hhcmVkTWF0ZXJpYWxNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU3RvcmFnZUV4cGxvcmVyQ29tcG9uZW50LFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU3RvcmFnZUV4cGxvcmVyQ29tcG9uZW50LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VFeHBsb3Jlck1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { RouterModule } from '@angular/router';
4
+ import { StorageExplorerModule } from './storage-explorer.module';
5
+ import { StorageExplorerComponent } from './storage-explorer.component';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/router";
8
+ const routes = [
9
+ {
10
+ path: '',
11
+ pathMatch: 'full',
12
+ component: StorageExplorerComponent
13
+ }
14
+ ];
15
+ export class StorageExplorerTestingRoutingModule {
16
+ }
17
+ StorageExplorerTestingRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StorageExplorerTestingRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
+ StorageExplorerTestingRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: StorageExplorerTestingRoutingModule, imports: [CommonModule, i1.RouterModule, StorageExplorerModule], exports: [RouterModule] });
19
+ StorageExplorerTestingRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StorageExplorerTestingRoutingModule, imports: [CommonModule,
20
+ RouterModule.forChild(routes),
21
+ StorageExplorerModule, RouterModule] });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: StorageExplorerTestingRoutingModule, decorators: [{
23
+ type: NgModule,
24
+ args: [{
25
+ imports: [
26
+ CommonModule,
27
+ RouterModule.forChild(routes),
28
+ StorageExplorerModule
29
+ ],
30
+ exports: [
31
+ RouterModule
32
+ ]
33
+ }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1leHBsb3Jlci50ZXN0aW5nLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc3RvcmFnZS9zdG9yYWdlLWV4cGxvcmVyLnRlc3Rpbmctcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDOzs7QUFFdEUsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLFNBQVMsRUFBRSx3QkFBd0I7S0FDcEM7Q0FDRixDQUFDO0FBYUYsTUFBTSxPQUFPLG1DQUFtQzs7Z0lBQW5DLG1DQUFtQztpSUFBbkMsbUNBQW1DLFlBUjVDLFlBQVksbUJBRVoscUJBQXFCLGFBR3JCLFlBQVk7aUlBR0gsbUNBQW1DLFlBUjVDLFlBQVk7UUFDWixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUM3QixxQkFBcUIsRUFHckIsWUFBWTsyRkFHSCxtQ0FBbUM7a0JBVi9DLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7d0JBQzdCLHFCQUFxQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7U3RvcmFnZUV4cGxvcmVyTW9kdWxlfSBmcm9tICcuL3N0b3JhZ2UtZXhwbG9yZXIubW9kdWxlJztcbmltcG9ydCB7U3RvcmFnZUV4cGxvcmVyQ29tcG9uZW50fSBmcm9tICcuL3N0b3JhZ2UtZXhwbG9yZXIuY29tcG9uZW50JztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICBjb21wb25lbnQ6IFN0b3JhZ2VFeHBsb3JlckNvbXBvbmVudFxuICB9XG5dO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyksXG4gICAgU3RvcmFnZUV4cGxvcmVyTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBSb3V0ZXJNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTdG9yYWdlRXhwbG9yZXJUZXN0aW5nUm91dGluZ01vZHVsZSB7IH1cbiJdfQ==