@igo2/geo 17.0.0-next.5 → 17.0.0-next.7

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 (347) hide show
  1. package/assets/icons/cross_black_18px.svg +88 -88
  2. package/assets/icons/place_blue_36px.svg +55 -55
  3. package/assets/icons/place_green_36px.svg +55 -55
  4. package/assets/icons/place_red_36px.svg +55 -55
  5. package/assets/icons/place_yellow_36px.svg +55 -55
  6. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +8 -6
  7. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +9 -8
  8. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +3 -2
  9. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +4 -4
  10. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +6 -6
  11. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +36 -14
  12. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +5 -1
  13. package/esm2022/lib/catalog/catalog-library/index.mjs +2 -7
  14. package/esm2022/lib/catalog/catalog.module.mjs +13 -6
  15. package/esm2022/lib/catalog/index.mjs +2 -7
  16. package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
  17. package/esm2022/lib/catalog/shared/index.mjs +1 -1
  18. package/esm2022/lib/datasource/index.mjs +1 -1
  19. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
  20. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  21. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
  22. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  23. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
  24. package/esm2022/lib/datasource/shared/datasources/index.mjs +1 -1
  25. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  26. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  27. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
  28. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  29. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +5 -5
  30. package/esm2022/lib/directions/directions-buttons/index.mjs +1 -1
  31. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +5 -5
  32. package/esm2022/lib/directions/directions-inputs/index.mjs +1 -1
  33. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +5 -5
  34. package/esm2022/lib/directions/directions-results/index.mjs +1 -1
  35. package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +5 -2
  36. package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
  37. package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +8 -1
  38. package/esm2022/lib/directions/directions-sources/index.mjs +1 -1
  39. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +67 -36
  40. package/esm2022/lib/directions/directions.component.mjs +72 -18
  41. package/esm2022/lib/directions/directions.module.mjs +4 -10
  42. package/esm2022/lib/directions/directions.provider.mjs +16 -0
  43. package/esm2022/lib/directions/index.mjs +2 -1
  44. package/esm2022/lib/directions/shared/directions-source.service.mjs +1 -1
  45. package/esm2022/lib/directions/shared/directions.enum.mjs +1 -1
  46. package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
  47. package/esm2022/lib/directions/shared/directions.service.mjs +11 -19
  48. package/esm2022/lib/directions/shared/directions.utils.mjs +22 -22
  49. package/esm2022/lib/directions/shared/index.mjs +1 -1
  50. package/esm2022/lib/directions/shared/store.mjs +2 -2
  51. package/esm2022/lib/download/download-button/download-button.component.mjs +5 -5
  52. package/esm2022/lib/download/download-button/index.mjs +1 -1
  53. package/esm2022/lib/download/index.mjs +1 -1
  54. package/esm2022/lib/download/shared/download.interface.mjs +1 -1
  55. package/esm2022/lib/download/shared/index.mjs +1 -1
  56. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +4 -4
  57. package/esm2022/lib/draw/draw/draw-popup.component.mjs +4 -4
  58. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +8 -5
  59. package/esm2022/lib/draw/draw/draw.component.mjs +7 -7
  60. package/esm2022/lib/draw/index.mjs +1 -1
  61. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  62. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +7 -6
  63. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +10 -4
  64. package/esm2022/lib/feature/feature-details/index.mjs +2 -7
  65. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +3 -3
  66. package/esm2022/lib/feature/feature.module.mjs +13 -6
  67. package/esm2022/lib/feature/index.mjs +2 -7
  68. package/esm2022/lib/feature/shared/feature.enums.mjs +1 -1
  69. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  70. package/esm2022/lib/feature/shared/feature.utils.mjs +2 -2
  71. package/esm2022/lib/feature/shared/store.mjs +2 -2
  72. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +2 -2
  73. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +2 -2
  74. package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +2 -2
  75. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +2 -2
  76. package/esm2022/lib/feature/shared/strategies/loading.mjs +2 -2
  77. package/esm2022/lib/feature/shared/strategies/search.mjs +2 -2
  78. package/esm2022/lib/feature/shared/strategies/selection.mjs +2 -2
  79. package/esm2022/lib/filter/filter.module.mjs +4 -4
  80. package/esm2022/lib/filter/index.mjs +2 -36
  81. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +6 -6
  82. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +5 -5
  83. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +7 -7
  84. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +7 -7
  85. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +19 -21
  86. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +2 -2
  87. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +6 -6
  88. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +5 -5
  89. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  90. package/esm2022/lib/filter/shared/ogc-filter.mjs +46 -3
  91. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +6 -6
  92. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +5 -5
  93. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +6 -6
  94. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +6 -6
  95. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +10 -10
  96. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +6 -6
  97. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
  98. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +1 -1
  99. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +6 -6
  100. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +5 -1
  101. package/esm2022/lib/geometry/geometry-form-field/index.mjs +3 -8
  102. package/esm2022/lib/geometry/shared/controls/draw.mjs +1 -1
  103. package/esm2022/lib/geometry/shared/controls/index.mjs +1 -1
  104. package/esm2022/lib/geometry/shared/controls/slice.mjs +1 -1
  105. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  106. package/esm2022/lib/geometry/shared/index.mjs +1 -1
  107. package/esm2022/lib/import-export/export-button/export-button.component.mjs +5 -5
  108. package/esm2022/lib/import-export/export-button/index.mjs +1 -1
  109. package/esm2022/lib/import-export/import-export/import-export.component.mjs +8 -6
  110. package/esm2022/lib/import-export/import-export/index.mjs +1 -1
  111. package/esm2022/lib/import-export/import-export.module.mjs +6 -1
  112. package/esm2022/lib/import-export/index.mjs +2 -9
  113. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +4 -3
  114. package/esm2022/lib/import-export/shared/export.errors.mjs +1 -1
  115. package/esm2022/lib/import-export/shared/export.service.mjs +8 -2
  116. package/esm2022/lib/import-export/shared/export.utils.mjs +2 -2
  117. package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
  118. package/esm2022/lib/import-export/shared/index.mjs +1 -1
  119. package/esm2022/lib/layer/index.mjs +2 -19
  120. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +5 -5
  121. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +8 -6
  122. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +5 -5
  123. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +26 -19
  124. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +6 -6
  125. package/esm2022/lib/layer/layer.module.mjs +12 -1
  126. package/esm2022/lib/layer/shared/layers/index.mjs +1 -1
  127. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  128. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +1 -1
  129. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +5 -5
  130. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +5 -5
  131. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +9 -9
  132. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +4 -4
  133. package/esm2022/lib/map/index.mjs +1 -32
  134. package/esm2022/lib/map/map.module.mjs +34 -34
  135. package/esm2022/lib/map/menu-button/menu-button.component.mjs +5 -5
  136. package/esm2022/lib/map/offline-button/offline-button.component.mjs +5 -5
  137. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +5 -5
  138. package/esm2022/lib/map/shared/hover-feature.directive.mjs +2 -2
  139. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +8 -8
  140. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +4 -4
  141. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +4 -4
  142. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +4 -4
  143. package/esm2022/lib/measure/measurer/measurer.component.mjs +6 -6
  144. package/esm2022/lib/measure/shared/index.mjs +1 -1
  145. package/esm2022/lib/metadata/index.mjs +2 -6
  146. package/esm2022/lib/metadata/metadata-button/index.mjs +1 -1
  147. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +7 -7
  148. package/esm2022/lib/metadata/metadata.module.mjs +5 -1
  149. package/esm2022/lib/metadata/shared/index.mjs +1 -1
  150. package/esm2022/lib/metadata/shared/metadata.service.mjs +1 -1
  151. package/esm2022/lib/offline/geoDB/index.mjs +1 -1
  152. package/esm2022/lib/offline/shared/index.mjs +1 -1
  153. package/esm2022/lib/overlay/index.mjs +1 -1
  154. package/esm2022/lib/print/index.mjs +1 -1
  155. package/esm2022/lib/print/print-form/index.mjs +1 -1
  156. package/esm2022/lib/print/print-form/print-form.component.mjs +4 -4
  157. package/esm2022/lib/print/shared/index.mjs +1 -1
  158. package/esm2022/lib/print/shared/print.service.mjs +85 -76
  159. package/esm2022/lib/query/index.mjs +1 -1
  160. package/esm2022/lib/query/shared/index.mjs +2 -1
  161. package/esm2022/lib/query/shared/query.directive.mjs +1 -1
  162. package/esm2022/lib/query/shared/query.enums.mjs +1 -1
  163. package/esm2022/lib/query/shared/query.interfaces.mjs +1 -1
  164. package/esm2022/lib/search/index.mjs +2 -13
  165. package/esm2022/lib/search/search-bar/search-bar.component.mjs +9 -6
  166. package/esm2022/lib/search/search-results/index.mjs +2 -7
  167. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +5 -5
  168. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +10 -8
  169. package/esm2022/lib/search/search-results/search-results-item.component.mjs +5 -4
  170. package/esm2022/lib/search/search-results/search-results.component.mjs +7 -5
  171. package/esm2022/lib/search/search-results/search-results.directive.mjs +7 -0
  172. package/esm2022/lib/search/search-selector/search-selector.component.mjs +5 -5
  173. package/esm2022/lib/search/search-settings/search-settings.component.mjs +5 -5
  174. package/esm2022/lib/search/search.module.mjs +15 -1
  175. package/esm2022/lib/search/shared/index.mjs +2 -1
  176. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +2 -2
  177. package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
  178. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  179. package/esm2022/lib/search/shared/search.provider.mjs +20 -0
  180. package/esm2022/lib/search/shared/search.service.mjs +29 -10
  181. package/esm2022/lib/search/shared/search.utils.mjs +2 -2
  182. package/esm2022/lib/search/shared/sources/cadastre.mjs +2 -2
  183. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +8 -1
  184. package/esm2022/lib/search/shared/sources/coordinates.mjs +2 -2
  185. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +11 -1
  186. package/esm2022/lib/search/shared/sources/icherche-icons.mjs +32 -0
  187. package/esm2022/lib/search/shared/sources/icherche.mjs +9 -4
  188. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +20 -1
  189. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +11 -1
  190. package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
  191. package/esm2022/lib/search/shared/sources/nominatim.mjs +2 -2
  192. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +8 -1
  193. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +13 -2
  194. package/esm2022/lib/search/shared/sources/source.mjs +1 -1
  195. package/esm2022/lib/search/shared/sources/storedqueries.mjs +3 -3
  196. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +14 -1
  197. package/esm2022/lib/search/shared/sources/workspace.mjs +2 -2
  198. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +8 -1
  199. package/esm2022/lib/style/shared/feature/feature-style.mjs +3 -2
  200. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +1 -1
  201. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +6 -6
  202. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +6 -6
  203. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +4 -4
  204. package/esm2022/lib/toast/index.mjs +1 -1
  205. package/esm2022/lib/toast/toast.component.mjs +6 -4
  206. package/esm2022/lib/wkt/index.mjs +1 -1
  207. package/esm2022/lib/wkt/shared/index.mjs +1 -1
  208. package/esm2022/lib/workspace/index.mjs +1 -1
  209. package/esm2022/lib/workspace/shared/edition-workspace.mjs +2 -2
  210. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +5 -4
  211. package/esm2022/lib/workspace/shared/feature-workspace.mjs +2 -2
  212. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +3 -2
  213. package/esm2022/lib/workspace/shared/index.mjs +1 -1
  214. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +2 -2
  215. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +3 -2
  216. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +3 -2
  217. package/esm2022/lib/workspace/shared/workspace.utils.mjs +3 -3
  218. package/esm2022/lib/workspace/widgets/index.mjs +1 -1
  219. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +1 -1
  220. package/esm2022/lib/workspace/widgets/widgets.mjs +2 -2
  221. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +3 -3
  222. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +1 -1
  223. package/esm2022/lib/workspace/workspace.module.mjs +2 -2
  224. package/fesm2022/igo2-geo.mjs +30424 -30117
  225. package/fesm2022/igo2-geo.mjs.map +1 -1
  226. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +2 -2
  227. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  228. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
  229. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +1 -1
  230. package/lib/catalog/catalog-library/catalog-library.component.d.ts +7 -2
  231. package/lib/catalog/catalog-library/catalog-library.module.d.ts +3 -0
  232. package/lib/catalog/catalog-library/index.d.ts +1 -3
  233. package/lib/catalog/catalog.module.d.ts +6 -3
  234. package/lib/catalog/index.d.ts +1 -2
  235. package/lib/catalog/shared/catalog.interface.d.ts +1 -1
  236. package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +2 -3
  237. package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +2 -3
  238. package/lib/datasource/shared/datasources/datasource.d.ts +1 -2
  239. package/lib/datasource/shared/datasources/feature-datasource.d.ts +2 -3
  240. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +2 -3
  241. package/lib/datasource/shared/datasources/websocket-datasource.d.ts +1 -2
  242. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +2 -3
  243. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +1 -2
  244. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -2
  245. package/lib/directions/directions-sources/directions-source.d.ts +7 -3
  246. package/lib/directions/directions-sources/directions-source.interface.d.ts +19 -6
  247. package/lib/directions/directions-sources/directions-source.provider.d.ts +2 -0
  248. package/lib/directions/directions-sources/osrm-directions-source.d.ts +19 -10
  249. package/lib/directions/directions.component.d.ts +15 -3
  250. package/lib/directions/directions.module.d.ts +5 -6
  251. package/lib/directions/directions.provider.d.ts +3 -0
  252. package/lib/directions/index.d.ts +1 -0
  253. package/lib/directions/shared/directions.interface.d.ts +2 -9
  254. package/lib/directions/shared/directions.service.d.ts +3 -2
  255. package/lib/directions/shared/directions.utils.d.ts +1 -1
  256. package/lib/directions/shared/store.d.ts +1 -1
  257. package/lib/draw/draw/draw-shorcuts.component.d.ts +2 -0
  258. package/lib/draw/draw/draw.component.d.ts +1 -1
  259. package/lib/environment/environment.interface.d.ts +2 -1
  260. package/lib/feature/feature-details/feature-details.component.d.ts +1 -1
  261. package/lib/feature/feature-details/feature-details.module.d.ts +3 -0
  262. package/lib/feature/feature-details/index.d.ts +1 -3
  263. package/lib/feature/feature-form/feature-form.component.d.ts +1 -2
  264. package/lib/feature/feature.module.d.ts +6 -3
  265. package/lib/feature/index.d.ts +1 -2
  266. package/lib/feature/shared/feature.interfaces.d.ts +1 -1
  267. package/lib/feature/shared/feature.utils.d.ts +1 -1
  268. package/lib/feature/shared/store.d.ts +1 -1
  269. package/lib/feature/shared/strategies/geo-properties.d.ts +1 -1
  270. package/lib/feature/shared/strategies/in-map-extent.d.ts +1 -1
  271. package/lib/feature/shared/strategies/in-map-resolution.d.ts +1 -1
  272. package/lib/feature/shared/strategies/loading-layer.d.ts +1 -1
  273. package/lib/feature/shared/strategies/loading.d.ts +1 -1
  274. package/lib/feature/shared/strategies/search.d.ts +1 -1
  275. package/lib/feature/shared/strategies/selection.d.ts +1 -1
  276. package/lib/filter/filter.module.d.ts +19 -0
  277. package/lib/filter/index.d.ts +1 -16
  278. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +1 -1
  279. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +3 -3
  280. package/lib/filter/shared/ogc-filter.d.ts +7 -0
  281. package/lib/filter/shared/ogc-filter.interface.d.ts +2 -3
  282. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +1 -1
  283. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +1 -1
  284. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +1 -1
  285. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -2
  286. package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +3 -0
  287. package/lib/geometry/geometry-form-field/index.d.ts +2 -4
  288. package/lib/geometry/shared/controls/draw.d.ts +4 -4
  289. package/lib/geometry/shared/controls/slice.d.ts +4 -4
  290. package/lib/geometry/shared/geometry.interfaces.d.ts +1 -1
  291. package/lib/import-export/import-export/import-export.component.d.ts +2 -2
  292. package/lib/import-export/import-export.module.d.ts +4 -0
  293. package/lib/import-export/index.d.ts +1 -4
  294. package/lib/import-export/shared/drop-geo-file.directive.d.ts +2 -1
  295. package/lib/import-export/shared/export.utils.d.ts +1 -1
  296. package/lib/import-export/shared/import.utils.d.ts +1 -1
  297. package/lib/layer/index.d.ts +1 -8
  298. package/lib/layer/layer-list/layer-list.component.d.ts +4 -1
  299. package/lib/layer/layer.module.d.ts +10 -0
  300. package/lib/layer/shared/layers/vector-layer.d.ts +3 -4
  301. package/lib/layer/shared/layers/vector-layer.interface.d.ts +1 -2
  302. package/lib/map/index.d.ts +0 -14
  303. package/lib/map/map.module.d.ts +32 -15
  304. package/lib/measure/measurer/measurer.component.d.ts +1 -1
  305. package/lib/metadata/index.d.ts +1 -2
  306. package/lib/metadata/metadata.module.d.ts +2 -0
  307. package/lib/print/shared/print.service.d.ts +11 -7
  308. package/lib/query/shared/index.d.ts +1 -0
  309. package/lib/query/shared/query.interfaces.d.ts +1 -2
  310. package/lib/search/index.d.ts +1 -5
  311. package/lib/search/search-bar/search-bar.component.d.ts +2 -1
  312. package/lib/search/search-results/index.d.ts +1 -3
  313. package/lib/search/search-results/search-results-add-button.component.d.ts +2 -2
  314. package/lib/search/search-results/search-results.component.d.ts +1 -1
  315. package/lib/search/search-results/search-results.directive.d.ts +3 -0
  316. package/lib/search/search.module.d.ts +8 -0
  317. package/lib/search/shared/index.d.ts +1 -0
  318. package/lib/search/shared/search-source.service.d.ts +1 -1
  319. package/lib/search/shared/search.interfaces.d.ts +12 -10
  320. package/lib/search/shared/search.provider.d.ts +8 -0
  321. package/lib/search/shared/search.service.d.ts +7 -2
  322. package/lib/search/shared/sources/cadastre.providers.d.ts +2 -0
  323. package/lib/search/shared/sources/coordinates.providers.d.ts +2 -0
  324. package/lib/search/shared/sources/icherche-icons.d.ts +7 -0
  325. package/lib/search/shared/sources/icherche.providers.d.ts +6 -12
  326. package/lib/search/shared/sources/ilayer.providers.d.ts +2 -0
  327. package/lib/search/shared/sources/nominatim.providers.d.ts +2 -0
  328. package/lib/search/shared/sources/source.d.ts +1 -1
  329. package/lib/search/shared/sources/source.interfaces.d.ts +16 -0
  330. package/lib/search/shared/sources/storedqueries.providers.d.ts +3 -0
  331. package/lib/search/shared/sources/workspace.providers.d.ts +2 -0
  332. package/lib/style/shared/vector/conversion.utils.d.ts +2 -3
  333. package/lib/toast/toast.component.d.ts +1 -1
  334. package/lib/workspace/shared/edition-workspace.d.ts +1 -1
  335. package/lib/workspace/shared/edition-workspace.service.d.ts +2 -1
  336. package/lib/workspace/shared/feature-workspace.d.ts +1 -1
  337. package/lib/workspace/shared/wfs-workspace.d.ts +1 -1
  338. package/lib/workspace/shared/workspace.utils.d.ts +2 -1
  339. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +2 -1
  340. package/lib/workspace/widgets/widgets.d.ts +1 -1
  341. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
  342. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
  343. package/lib/workspace/workspace.module.d.ts +1 -1
  344. package/locale/en.geo.json +6 -1
  345. package/locale/fr.geo.json +6 -1
  346. package/package.json +6 -6
  347. package/style/style.css +2 -1
@@ -3,7 +3,7 @@ import { Component, Input } from '@angular/core';
3
3
  import { MatButtonModule } from '@angular/material/button';
4
4
  import { MatIconModule } from '@angular/material/icon';
5
5
  import { MatTooltipModule } from '@angular/material/tooltip';
6
- import { TranslateModule } from '@ngx-translate/core';
6
+ import { IgoLanguageModule } from '@igo2/core/language';
7
7
  import { bearingToAzimuth } from '@turf/helpers';
8
8
  import { BehaviorSubject } from 'rxjs';
9
9
  import { IgoMap } from '../shared/map';
@@ -36,7 +36,7 @@ export class RotationButtonComponent {
36
36
  });
37
37
  }
38
38
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: RotationButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: RotationButtonComponent, isStandalone: true, selector: "igo-rotation-button", inputs: { map: "map", showIfNoRotation: "showIfNoRotation", color: "color" }, ngImport: i0, template: "<div\n *ngIf=\"((rotated$ | async) && !showIfNoRotation) || showIfNoRotation\"\n class=\"igo-rotation-button-container\"\n [matTooltip]=\"\n (rotated$ | async)\n ? ('igo.geo.mapButtons.resetRotation'\n | translate: { azimuth: azimuthRounded, rotation: rotationRounded })\n : ('igo.geo.mapButtons.tipRotation' | translate)\n \"\n matTooltipPosition=\"left\"\n>\n <button\n mat-icon-button\n matTooltipPosition=\"left\"\n [color]=\"color\"\n [disabled]=\"(rotated$ | async) === false\"\n (click)=\"map.viewController.resetRotation()\"\n >\n <mat-icon [ngStyle]=\"currentStyle$ | async\" svgIcon=\"navigation\">\n </mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-rotation-button-container{width:40px;background-color:#fff}:host .igo-rotation-button-container:hover{background-color:#efefef}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: RotationButtonComponent, isStandalone: true, selector: "igo-rotation-button", inputs: { map: "map", showIfNoRotation: "showIfNoRotation", color: "color" }, ngImport: i0, template: "<div\n *ngIf=\"((rotated$ | async) && !showIfNoRotation) || showIfNoRotation\"\n class=\"igo-rotation-button-container\"\n [matTooltip]=\"\n (rotated$ | async)\n ? ('igo.geo.mapButtons.resetRotation'\n | translate: { azimuth: azimuthRounded, rotation: rotationRounded })\n : ('igo.geo.mapButtons.tipRotation' | translate)\n \"\n matTooltipPosition=\"left\"\n>\n <button\n mat-icon-button\n matTooltipPosition=\"left\"\n [color]=\"color\"\n [disabled]=\"(rotated$ | async) === false\"\n (click)=\"map.viewController.resetRotation()\"\n >\n <mat-icon [ngStyle]=\"currentStyle$ | async\">navigation </mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-rotation-button-container{width:40px;background-color:#fff}:host .igo-rotation-button-container:hover{background-color:#efefef}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
40
40
  }
41
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: RotationButtonComponent, decorators: [{
42
42
  type: Component,
@@ -47,8 +47,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
47
47
  MatIconModule,
48
48
  NgStyle,
49
49
  AsyncPipe,
50
- TranslateModule
51
- ], template: "<div\n *ngIf=\"((rotated$ | async) && !showIfNoRotation) || showIfNoRotation\"\n class=\"igo-rotation-button-container\"\n [matTooltip]=\"\n (rotated$ | async)\n ? ('igo.geo.mapButtons.resetRotation'\n | translate: { azimuth: azimuthRounded, rotation: rotationRounded })\n : ('igo.geo.mapButtons.tipRotation' | translate)\n \"\n matTooltipPosition=\"left\"\n>\n <button\n mat-icon-button\n matTooltipPosition=\"left\"\n [color]=\"color\"\n [disabled]=\"(rotated$ | async) === false\"\n (click)=\"map.viewController.resetRotation()\"\n >\n <mat-icon [ngStyle]=\"currentStyle$ | async\" svgIcon=\"navigation\">\n </mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-rotation-button-container{width:40px;background-color:#fff}:host .igo-rotation-button-container:hover{background-color:#efefef}\n"] }]
50
+ IgoLanguageModule
51
+ ], template: "<div\n *ngIf=\"((rotated$ | async) && !showIfNoRotation) || showIfNoRotation\"\n class=\"igo-rotation-button-container\"\n [matTooltip]=\"\n (rotated$ | async)\n ? ('igo.geo.mapButtons.resetRotation'\n | translate: { azimuth: azimuthRounded, rotation: rotationRounded })\n : ('igo.geo.mapButtons.tipRotation' | translate)\n \"\n matTooltipPosition=\"left\"\n>\n <button\n mat-icon-button\n matTooltipPosition=\"left\"\n [color]=\"color\"\n [disabled]=\"(rotated$ | async) === false\"\n (click)=\"map.viewController.resetRotation()\"\n >\n <mat-icon [ngStyle]=\"currentStyle$ | async\">navigation </mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-rotation-button-container{width:40px;background-color:#fff}:host .igo-rotation-button-container:hover{background-color:#efefef}\n"] }]
52
52
  }], ctorParameters: () => [], propDecorators: { map: [{
53
53
  type: Input
54
54
  }], showIfNoRotation: [{
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
56
56
  }], color: [{
57
57
  type: Input
58
58
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm90YXRpb24tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9yb3RhdGlvbi1idXR0b24vcm90YXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9yb3RhdGlvbi1idXR0b24vcm90YXRpb24tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBb0IsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFpQnZDLE1BQU0sT0FBTyx1QkFBdUI7SUFDekIsUUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2pELGNBQWMsR0FBVyxDQUFDLENBQUM7SUFDM0IsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUMxQixhQUFhLEdBQUcsSUFBSSxlQUFlLENBQUs7UUFDL0MsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQyxDQUFDO0lBRU0sR0FBRyxDQUFTO0lBQ1osZ0JBQWdCLENBQVU7SUFDMUIsS0FBSyxDQUFTO0lBRXZCLGdCQUFlLENBQUM7SUFFaEIsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoRCxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUN0QixTQUFTLEVBQUUsU0FBUyxHQUFHLE9BQU8sR0FBRyxNQUFNO2FBQ3hDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBekJVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLDZKQzNCcEMsdXJCQXNCQSxzVURKSSxJQUFJLDRGQUNKLGdCQUFnQiw0VEFDaEIsZUFBZSwySUFDZixhQUFhLG9MQUNiLE9BQU8sc0VBQ1AsU0FBUyw2Q0FDVCxlQUFlOzsyRkFHTix1QkFBdUI7a0JBZm5DLFNBQVM7K0JBQ0UscUJBQXFCLGNBR25CLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxlQUFlO3FCQUNoQjt3REFVUSxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdJZiwgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGJlYXJpbmdUb0F6aW11dGggfSBmcm9tICdAdHVyZi9oZWxwZXJzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi9zaGFyZWQvbWFwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXJvdGF0aW9uLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yb3RhdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yb3RhdGlvbi1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBOZ1N0eWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBUcmFuc2xhdGVNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSb3RhdGlvbkJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICByZWFkb25seSByb3RhdGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgYXppbXV0aFJvdW5kZWQ6IG51bWJlciA9IDA7XG4gIHB1YmxpYyByb3RhdGlvblJvdW5kZWQ6IG51bWJlciA9IDA7XG4gIHJlYWRvbmx5IGN1cnJlbnRTdHlsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHt9Pih7XG4gICAgdHJhbnNmb3JtOiAncm90YXRlKDByYWQpJ1xuICB9KTtcblxuICBASW5wdXQoKSBtYXA6IElnb01hcDtcbiAgQElucHV0KCkgc2hvd0lmTm9Sb3RhdGlvbjogYm9vbGVhbjtcbiAgQElucHV0KCkgY29sb3I6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnJvdGF0aW9uJC5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgIGNvbnN0IHJhZGlhbnMgPSByIHx8IDA7XG4gICAgICBjb25zdCBkZWcgPSAocmFkaWFucyAqIDE4MCkgLyBNYXRoLlBJO1xuICAgICAgdGhpcy5yb3RhdGlvblJvdW5kZWQgPSBNYXRoLnJvdW5kKGRlZyk7XG4gICAgICB0aGlzLmF6aW11dGhSb3VuZGVkID0gTWF0aC5yb3VuZChiZWFyaW5nVG9BemltdXRoKGRlZyAqIC0xKSk7XG4gICAgICB0aGlzLmN1cnJlbnRTdHlsZSQubmV4dCh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgnICsgcmFkaWFucyArICdyYWQpJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLnJvdGF0ZWQkLm5leHQocmFkaWFucyAhPT0gMCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCIoKHJvdGF0ZWQkIHwgYXN5bmMpICYmICFzaG93SWZOb1JvdGF0aW9uKSB8fCBzaG93SWZOb1JvdGF0aW9uXCJcbiAgY2xhc3M9XCJpZ28tcm90YXRpb24tYnV0dG9uLWNvbnRhaW5lclwiXG4gIFttYXRUb29sdGlwXT1cIlxuICAgIChyb3RhdGVkJCB8IGFzeW5jKVxuICAgICAgPyAoJ2lnby5nZW8ubWFwQnV0dG9ucy5yZXNldFJvdGF0aW9uJ1xuICAgICAgICB8IHRyYW5zbGF0ZTogeyBhemltdXRoOiBhemltdXRoUm91bmRlZCwgcm90YXRpb246IHJvdGF0aW9uUm91bmRlZCB9KVxuICAgICAgOiAoJ2lnby5nZW8ubWFwQnV0dG9ucy50aXBSb3RhdGlvbicgfCB0cmFuc2xhdGUpXG4gIFwiXG4gIG1hdFRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxuPlxuICA8YnV0dG9uXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICBbZGlzYWJsZWRdPVwiKHJvdGF0ZWQkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgKGNsaWNrKT1cIm1hcC52aWV3Q29udHJvbGxlci5yZXNldFJvdGF0aW9uKClcIlxuICA+XG4gICAgPG1hdC1pY29uIFtuZ1N0eWxlXT1cImN1cnJlbnRTdHlsZSQgfCBhc3luY1wiIHN2Z0ljb249XCJuYXZpZ2F0aW9uXCI+XG4gICAgPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm90YXRpb24tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9yb3RhdGlvbi1idXR0b24vcm90YXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9yb3RhdGlvbi1idXR0b24vcm90YXRpb24tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBb0IsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQWlCdkMsTUFBTSxPQUFPLHVCQUF1QjtJQUN6QixRQUFRLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDakQsY0FBYyxHQUFXLENBQUMsQ0FBQztJQUMzQixlQUFlLEdBQVcsQ0FBQyxDQUFDO0lBQzFCLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBSztRQUMvQyxTQUFTLEVBQUUsY0FBYztLQUMxQixDQUFDLENBQUM7SUFFTSxHQUFHLENBQVM7SUFDWixnQkFBZ0IsQ0FBVTtJQUMxQixLQUFLLENBQVM7SUFFdkIsZ0JBQWUsQ0FBQztJQUVoQixrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2hELE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLFNBQVMsRUFBRSxTQUFTLEdBQUcsT0FBTyxHQUFHLE1BQU07YUFDeEMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0F6QlUsdUJBQXVCOzJGQUF2Qix1QkFBdUIsNkpDNUJwQyxxcUJBcUJBLHNVREZJLElBQUksNEZBQ0osZ0JBQWdCLDRUQUNoQixlQUFlLDJJQUNmLGFBQWEsb0xBQ2IsT0FBTyxzRUFDUCxTQUFTLDZDQUNULGlCQUFpQjs7MkZBR1IsdUJBQXVCO2tCQWZuQyxTQUFTOytCQUNFLHFCQUFxQixjQUduQixJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsaUJBQWlCO3FCQUNsQjt3REFVUSxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdJZiwgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBJZ29MYW5ndWFnZU1vZHVsZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuXG5pbXBvcnQgeyBiZWFyaW5nVG9BemltdXRoIH0gZnJvbSAnQHR1cmYvaGVscGVycyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vc2hhcmVkL21hcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1yb3RhdGlvbi1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcm90YXRpb24tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcm90YXRpb24tYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTmdTdHlsZSxcbiAgICBBc3luY1BpcGUsXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSb3RhdGlvbkJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICByZWFkb25seSByb3RhdGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgYXppbXV0aFJvdW5kZWQ6IG51bWJlciA9IDA7XG4gIHB1YmxpYyByb3RhdGlvblJvdW5kZWQ6IG51bWJlciA9IDA7XG4gIHJlYWRvbmx5IGN1cnJlbnRTdHlsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHt9Pih7XG4gICAgdHJhbnNmb3JtOiAncm90YXRlKDByYWQpJ1xuICB9KTtcblxuICBASW5wdXQoKSBtYXA6IElnb01hcDtcbiAgQElucHV0KCkgc2hvd0lmTm9Sb3RhdGlvbjogYm9vbGVhbjtcbiAgQElucHV0KCkgY29sb3I6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnJvdGF0aW9uJC5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgIGNvbnN0IHJhZGlhbnMgPSByIHx8IDA7XG4gICAgICBjb25zdCBkZWcgPSAocmFkaWFucyAqIDE4MCkgLyBNYXRoLlBJO1xuICAgICAgdGhpcy5yb3RhdGlvblJvdW5kZWQgPSBNYXRoLnJvdW5kKGRlZyk7XG4gICAgICB0aGlzLmF6aW11dGhSb3VuZGVkID0gTWF0aC5yb3VuZChiZWFyaW5nVG9BemltdXRoKGRlZyAqIC0xKSk7XG4gICAgICB0aGlzLmN1cnJlbnRTdHlsZSQubmV4dCh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgnICsgcmFkaWFucyArICdyYWQpJ1xuICAgICAgfSk7XG4gICAgICB0aGlzLnJvdGF0ZWQkLm5leHQocmFkaWFucyAhPT0gMCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCIoKHJvdGF0ZWQkIHwgYXN5bmMpICYmICFzaG93SWZOb1JvdGF0aW9uKSB8fCBzaG93SWZOb1JvdGF0aW9uXCJcbiAgY2xhc3M9XCJpZ28tcm90YXRpb24tYnV0dG9uLWNvbnRhaW5lclwiXG4gIFttYXRUb29sdGlwXT1cIlxuICAgIChyb3RhdGVkJCB8IGFzeW5jKVxuICAgICAgPyAoJ2lnby5nZW8ubWFwQnV0dG9ucy5yZXNldFJvdGF0aW9uJ1xuICAgICAgICB8IHRyYW5zbGF0ZTogeyBhemltdXRoOiBhemltdXRoUm91bmRlZCwgcm90YXRpb246IHJvdGF0aW9uUm91bmRlZCB9KVxuICAgICAgOiAoJ2lnby5nZW8ubWFwQnV0dG9ucy50aXBSb3RhdGlvbicgfCB0cmFuc2xhdGUpXG4gIFwiXG4gIG1hdFRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxuPlxuICA8YnV0dG9uXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICBbZGlzYWJsZWRdPVwiKHJvdGF0ZWQkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgKGNsaWNrKT1cIm1hcC52aWV3Q29udHJvbGxlci5yZXNldFJvdGF0aW9uKClcIlxuICA+XG4gICAgPG1hdC1pY29uIFtuZ1N0eWxlXT1cImN1cnJlbnRTdHlsZSQgfCBhc3luY1wiPm5hdmlnYXRpb24gPC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Directive, HostListener, Input, Self } from '@angular/core';
2
- import { EntityStore } from '@igo2/common';
2
+ import { EntityStore } from '@igo2/common/entity';
3
3
  import { MediaService } from '@igo2/core/media';
4
4
  import { SubjectStatus } from '@igo2/utils';
5
5
  import OlFeature from 'ol/Feature';
@@ -489,4 +489,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
489
489
  type: HostListener,
490
490
  args: ['mouseout']
491
491
  }] } });
492
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItZmVhdHVyZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvc2hhcmVkL2hvdmVyLWZlYXR1cmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFFbkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUVsQyxPQUFPLGFBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLGlCQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sYUFBYSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sa0JBQWtCLE1BQU0sc0JBQXNCLENBQUM7QUFHdEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFTLFdBQVcsRUFBbUIsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJB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RkExQkUsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUtHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFHTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcbmltcG9ydCB7IE1lZGlhU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbWVkaWEnO1xuaW1wb3J0IHsgU3ViamVjdFN0YXR1cyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IE9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbE1hcEJyb3dzZXJFdmVudCB9IGZyb20gJ29sL01hcEJyb3dzZXJFdmVudCc7XG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgKiBhcyBPbEdlb20gZnJvbSAnb2wvZ2VvbSc7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0IG9sTGF5ZXJWZWN0b3IgZnJvbSAnb2wvbGF5ZXIvVmVjdG9yJztcbmltcG9ydCBvbExheWVyVmVjdG9yVGlsZSBmcm9tICdvbC9sYXllci9WZWN0b3JUaWxlJztcbmltcG9ydCBSZW5kZXJGZWF0dXJlIGZyb20gJ29sL3JlbmRlci9GZWF0dXJlJztcbmltcG9ydCBvbFZlY3RvclRpbGVTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3RvclRpbGUnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2ZlYXR1cmUtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyB0cnlCaW5kU3RvcmVMYXllciB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUtc3RvcmUudXRpbHMnO1xuaW1wb3J0IHsgRmVhdHVyZU1vdGlvbiB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuZW51bXMnO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBGZWF0dXJlU3RvcmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBMYXllciwgVmVjdG9yTGF5ZXIsIFZlY3RvclRpbGVMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMnO1xuaW1wb3J0IHsgTWFwQnJvd3NlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21hcC9tYXAtYnJvd3Nlci9tYXAtYnJvd3Nlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xuaW1wb3J0IHsgaG92ZXJGZWF0dXJlTWFya2VyU3R5bGUgfSBmcm9tICcuLi8uLi9zdHlsZS9zaGFyZWQvZmVhdHVyZS9mZWF0dXJlLXN0eWxlJztcbmltcG9ydCB7IFN0eWxlQnlBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi9zdHlsZS9zaGFyZWQvdmVjdG9yL3ZlY3Rvci1zdHlsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3R5bGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3R5bGUvc3R5bGUtc2VydmljZS9zdHlsZS5zZXJ2aWNlJztcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBtYWtlcyB0aGUgbW91c2UgY29vcmRpbmF0ZSB0cmlnZ2VyIGEgcmV2ZXJzZSBzZWFyY2ggb24gYXZhaWxhYmxlIHNlYXJjaCBzb3VyY2VzLlxuICogVGhlIHNlYXJjaCByZXN1bHRzIGFyZSBwbGFjZWQgaW50byBhIGxhYmVsLCBvbiBhIGNyb3NzIGljb24sIHJlcHJlc2VudGluZyB0aGUgbW91c2UgY29vcmRpbmF0ZS5cbiAqIEJ5IGRlZmF1bHQsIG5vIHNlYXJjaCBzb3VyY2VzLiBDb25maWcgaW4gY29uZmlnIGZpbGUgbXVzdCBiZSBkZWZpbmVkLlxuICogdGhlIGxheWVyIGxldmVsLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbaWdvSG92ZXJGZWF0dXJlXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSG92ZXJGZWF0dXJlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgc3RvcmU6IEZlYXR1cmVTdG9yZTxGZWF0dXJlPjtcbiAgcHJpdmF0ZSBwb2ludGVySG92ZXJGZWF0dXJlU3RvcmU6IEVudGl0eVN0b3JlPE9sRmVhdHVyZTxPbEdlb21ldHJ5Pj4gPVxuICAgIG5ldyBFbnRpdHlTdG9yZTxPbEZlYXR1cmU8T2xHZW9tZXRyeT4+KFtdKTtcbiAgcHJpdmF0ZSBsYXN0VGltZW91dFJlcXVlc3Q7XG4gIHByaXZhdGUgc3RvcmUkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGxheWVycyQkOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBzZWxlY3Rpb25MYXllcjogb2xMYXllclZlY3RvclRpbGU7XG4gIHByaXZhdGUgc2VsZWN0aW9uTVZUID0ge307XG4gIHByaXZhdGUgbXZ0U3R5bGVPcHRpb25zOiBTdHlsZUJ5QXR0cmlidXRlO1xuXG4gIC8qKlxuICAgKiBMaXN0ZW5lciB0byB0aGUgcG9pbnRlciBtb3ZlIGV2ZW50XG4gICAqL1xuICBwcml2YXRlIHBvaW50ZXJNb3ZlTGlzdGVuZXI7XG5cbiAgcHJpdmF0ZSBzaW5nbGVDbGlja01hcExpc3RlbmVyO1xuXG4gIHByaXZhdGUgaG92ZXJGZWF0dXJlSWQ6IHN0cmluZyA9ICdob3ZlckZlYXR1cmVJZCc7XG4gIC8qKlxuICAgKiBUaGUgZGVsYXkgd2hlcmUgdGhlIG1vdXNlIG11c3QgYmUgbW90aW9ubGVzcyBiZWZvcmUgdHJpZ2dlciB0aGUgcmV2ZXJzZSBzZWFyY2hcbiAgICovXG4gIEBJbnB1dCgpIGlnb0hvdmVyRmVhdHVyZURlbGF5OiBudW1iZXIgPSAxMDAwO1xuXG4gIC8qKlxuICAgKiBJZiB0aGUgdXNlciBoYXMgZW5hYmxlZCBvciBub3QgdGhlIGRpcmVjdGl2ZVxuICAgKi9cbiAgQElucHV0KCkgaWdvSG92ZXJGZWF0dXJlRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3V0JylcbiAgbW91c2VvdXQoKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMubGFzdFRpbWVvdXRSZXF1ZXN0KTtcbiAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJR08gbWFwXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudC5tYXA7XG4gIH1cblxuICBnZXQgbWFwUHJvamVjdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jb21wb25lbnQubWFwIGFzIElnb01hcCkucHJvamVjdGlvbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgcHJpdmF0ZSBjb21wb25lbnQ6IE1hcEJyb3dzZXJDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBtZWRpYVNlcnZpY2U6IE1lZGlhU2VydmljZSxcbiAgICBwcml2YXRlIHN0eWxlU2VydmljZTogU3R5bGVTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogU3RhcnQgbGlzdGVuaW5nIHRvIHBvaW50ZXJtb3ZlIGFuZCByZXZlcnNlIHNlYXJjaCByZXN1bHRzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubWFwLnN0YXR1cyRcbiAgICAgIC5waXBlKGZpcnN0KChzdGF0dXMpID0+IHN0YXR1cyA9PT0gU3ViamVjdFN0YXR1cy5Eb25lKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlID0gbmV3IEZlYXR1cmVTdG9yZTxGZWF0dXJlPihbXSwgeyBtYXA6IHRoaXMubWFwIH0pO1xuICAgICAgICB0aGlzLmluaXRTdG9yZSgpO1xuICAgICAgICB0aGlzLmxpc3RlblRvTWFwUG9pbnRlck1vdmUoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb1BvaW50ZXJTdG9yZSgpO1xuICAgICAgICB0aGlzLmxpc3RlblRvTWFwQ2xpY2soKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gVG8gaGFuZGxlIGNvbnRleHQgY2hhbmdlIHdpdGhvdXQgdXNpbmcgdGhlIGNvbnRleHRTZXJ2aWNlLlxuICAgIHRoaXMubGF5ZXJzJCQgPSB0aGlzLm1hcC5sYXllcnMkLnN1YnNjcmliZSgobGF5ZXJzOiBMYXllcltdKSA9PiB7XG4gICAgICBpZiAodGhpcy5zdG9yZSAmJiAhbGF5ZXJzLmZpbmQoKGwpID0+IGwuaWQgPT09ICdob3ZlckZlYXR1cmVJZCcpKSB7XG4gICAgICAgIHRoaXMuaW5pdFN0b3JlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgcG9pbnRlciBwb3NpdGlvbiBzdG9yZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgaW5pdFN0b3JlKCkge1xuICAgIGNvbnN0IHN0b3JlID0gdGhpcy5zdG9yZTtcblxuICAgIGNvbnN0IGxheWVyID0gbmV3IFZlY3RvckxheWVyKHtcbiAgICAgIGlzSWdvSW50ZXJuYWxMYXllcjogdHJ1ZSxcbiAgICAgIGlkOiAnaG92ZXJGZWF0dXJlSWQnLFxuICAgICAgdGl0bGU6ICdob3ZlckZlYXR1cmUnLFxuICAgICAgekluZGV4OiA5MDAsXG4gICAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxuICAgICAgc2hvd0luTGF5ZXJMaXN0OiBmYWxzZSxcbiAgICAgIGV4cG9ydGFibGU6IGZhbHNlLFxuICAgICAgYnJvd3NhYmxlOiBmYWxzZSxcbiAgICAgIHN0eWxlOiBob3ZlckZlYXR1cmVNYXJrZXJTdHlsZVxuICAgIH0pO1xuICAgIHRyeUJpbmRTdG9yZUxheWVyKHN0b3JlLCBsYXllcik7XG5cbiAgICB0aGlzLnNlbGVjdGlvbkxheWVyID0gbmV3IG9sTGF5ZXJWZWN0b3JUaWxlKHtcbiAgICAgIG1hcDogdGhpcy5tYXAub2wsXG4gICAgICB6SW5kZXg6IDkwMSxcbiAgICAgIHJlbmRlck1vZGU6ICd2ZWN0b3InLFxuICAgICAgZGVjbHV0dGVyOiB0cnVlLFxuICAgICAgc291cmNlOiBuZXcgb2xWZWN0b3JUaWxlU291cmNlKHsgcHJvamVjdGlvbjogdGhpcy5tYXAucHJvamVjdGlvbiB9KSxcbiAgICAgIHN0eWxlOiAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4ge1xuICAgICAgICBpZiAodGhpcy5tdnRTdHlsZU9wdGlvbnMgJiYgZmVhdHVyZS5nZXRJZCgpIGluIHRoaXMuc2VsZWN0aW9uTVZUKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlSG92ZXJTdHlsZShcbiAgICAgICAgICAgIGZlYXR1cmUsXG4gICAgICAgICAgICB0aGlzLm12dFN0eWxlT3B0aW9ucyxcbiAgICAgICAgICAgIHJlc29sdXRpb25cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVIb3ZlclN0eWxlKFxuICAgIGZlYXR1cmU6IFJlbmRlckZlYXR1cmUgfCBPbEZlYXR1cmU8T2xHZW9tZXRyeT4sXG4gICAgaG92ZXJTdHlsZTogU3R5bGVCeUF0dHJpYnV0ZSxcbiAgICByZXNvbHV0aW9uOiBudW1iZXJcbiAgKSB7XG4gICAgY29uc3QgbG9jYWxIb3ZlclN0eWxlID0geyAuLi5ob3ZlclN0eWxlIH07XG4gICAgbGV0IGxhYmVsID0gaG92ZXJTdHlsZS5sYWJlbCA/IGhvdmVyU3R5bGUubGFiZWwuYXR0cmlidXRlIDogdW5kZWZpbmVkO1xuICAgIGxldCBoYXNMYWJlbFN0eWxlID0gaG92ZXJTdHlsZS5sYWJlbD8uc3R5bGUgPyB0cnVlIDogZmFsc2U7XG5cbiAgICBpZiAoIWZlYXR1cmUuZ2V0KCdfaXNMYWJlbCcpKSB7XG4gICAgICBsb2NhbEhvdmVyU3R5bGUubGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICBoYXNMYWJlbFN0eWxlID0gZmFsc2U7XG4gICAgICBsYWJlbCA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY2xlYXIgdGhlIHN0eWxlIGZvciBsYWJlbC4uLi5cbiAgICAgIGNvbnN0IHNpemUgPSBsb2NhbEhvdmVyU3R5bGUuZGF0YSA/IGxvY2FsSG92ZXJTdHlsZS5kYXRhLmxlbmd0aCA6IDA7XG4gICAgICBjb25zdCByYWRpdXMgPSBbXTtcbiAgICAgIGNvbnN0IHN0cm9rZSA9IFtdO1xuICAgICAgY29uc3Qgd2lkdGggPSBbXTtcbiAgICAgIGNvbnN0IGZpbGwgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7XG4gICAgICAgIHJhZGl1cy5wdXNoKDApO1xuICAgICAgICBzdHJva2UucHVzaCgncmdiYSgyNTUsIDI1NSwgMjU1LCAwKScpO1xuICAgICAgICB3aWR0aC5wdXNoKDApO1xuICAgICAgICBmaWxsLnB1c2goJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMCknKTtcbiAgICAgIH1cbiAgICAgIGxvY2FsSG92ZXJTdHlsZS5yYWRpdXMgPSByYWRpdXM7XG4gICAgICBsb2NhbEhvdmVyU3R5bGUuc3Ryb2tlID0gc3Ryb2tlO1xuICAgICAgbG9jYWxIb3ZlclN0eWxlLndpZHRoID0gd2lkdGg7XG4gICAgICBsb2NhbEhvdmVyU3R5bGUuZmlsbCA9IGZpbGw7XG4gICAgfVxuICAgIGlmICghaGFzTGFiZWxTdHlsZSAmJiBsYWJlbCkge1xuICAgICAgbG9jYWxIb3ZlclN0eWxlLmxhYmVsLnN0eWxlID0ge1xuICAgICAgICB0ZXh0QWxpZ246ICdsZWZ0JyxcbiAgICAgICAgdGV4dEJhc2VsaW5lOiAndG9wJyxcbiAgICAgICAgZm9udDogJzEycHggQ2FsaWJyaSxzYW5zLXNlcmlmJyxcbiAgICAgICAgZmlsbDogeyBjb2xvcjogJyMwMDAnIH0sXG4gICAgICAgIGJhY2tncm91bmRGaWxsOiB7IGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpJyB9LFxuICAgICAgICBiYWNrZ3JvdW5kU3Ryb2tlOiB7IGNvbG9yOiAncmdiYSgyMDAsIDIwMCwgMjAwLCAwLjc1KScsIHdpZHRoOiAyIH0sXG4gICAgICAgIHN0cm9rZTogeyBjb2xvcjogJyNmZmYnLCB3aWR0aDogMyB9LFxuICAgICAgICBvdmVyZmxvdzogdHJ1ZSxcbiAgICAgICAgb2Zmc2V0WDogMTAsXG4gICAgICAgIG9mZnNldFk6IDIwLFxuICAgICAgICBwYWRkaW5nOiBbMi41LCAyLjUsIDIuNSwgMi41XVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlQnlBdHRyaWJ1dGUoXG4gICAgICBmZWF0dXJlLFxuICAgICAgbG9jYWxIb3ZlclN0eWxlLFxuICAgICAgcmVzb2x1dGlvblxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCBsaXN0ZW5pbmcgdG8gcG9pbnRlcm1vdmUgYW5kIHJldmVyc2Ugc2VhcmNoIHJlc3VsdHMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bmxpc3RlblRvTWFwUG9pbnRlck1vdmUoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlVG9Qb2ludGVyU3RvcmUoKTtcbiAgICB0aGlzLnVubGlzdGVuVG9NYXBTaW5nbGVDbGljaygpO1xuICAgIHRoaXMubGF5ZXJzJCQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gcG9pbnRlcm1vdmUgcmVzdWx0IHN0b3JlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgc3Vic2NyaWJlVG9Qb2ludGVyU3RvcmUoKSB7XG4gICAgdGhpcy5zdG9yZSQkID0gdGhpcy5wb2ludGVySG92ZXJGZWF0dXJlU3RvcmUuZW50aXRpZXMkLnN1YnNjcmliZShcbiAgICAgIChyZXN1bHRzVW5kZXJQb2ludGVyUG9zaXRpb24pID0+IHtcbiAgICAgICAgdGhpcy5hZGRGZWF0dXJlT3ZlcmxheShyZXN1bHRzVW5kZXJQb2ludGVyUG9zaXRpb24pO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogT24gbWFwIHBvaW50ZXJtb3ZlXG4gICAqL1xuICBwcml2YXRlIGxpc3RlblRvTWFwUG9pbnRlck1vdmUoKSB7XG4gICAgdGhpcy5wb2ludGVyTW92ZUxpc3RlbmVyID0gdGhpcy5tYXAub2wub24oXG4gICAgICAncG9pbnRlcm1vdmUnLFxuICAgICAgKGV2ZW50OiBPbE1hcEJyb3dzZXJFdmVudDxhbnk+KSA9PiB0aGlzLm9uTWFwRXZlbnQoZXZlbnQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBtYXAgc2luZ2xlY2xpY2tcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9NYXBDbGljaygpIHtcbiAgICB0aGlzLnNpbmdsZUNsaWNrTWFwTGlzdGVuZXIgPSB0aGlzLm1hcC5vbC5vbihcbiAgICAgICdzaW5nbGVjbGljaycsXG4gICAgICAoZXZlbnQ6IE9sTWFwQnJvd3NlckV2ZW50PGFueT4pID0+IHRoaXMub25NYXBTaW5nbGVDbGlja0V2ZW50KGV2ZW50KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8gcG9pbnRlciBzdG9yZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB1bnN1YnNjcmliZVRvUG9pbnRlclN0b3JlKCkge1xuICAgIHRoaXMuc3RvcmUkJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgbGlzdGVuaW5nIGZvciBtYXAgcG9pbnRlcm1vdmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHVubGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpIHtcbiAgICB1bkJ5S2V5KHRoaXMucG9pbnRlck1vdmVMaXN0ZW5lcik7XG4gICAgdGhpcy5wb2ludGVyTW92ZUxpc3RlbmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgbGlzdGVuaW5nIGZvciBtYXAgc2luZ2xlY2xpY2tcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHVubGlzdGVuVG9NYXBTaW5nbGVDbGljaygpIHtcbiAgICB1bkJ5S2V5KHRoaXMuc2luZ2xlQ2xpY2tNYXBMaXN0ZW5lcik7XG4gICAgdGhpcy5zaW5nbGVDbGlja01hcExpc3RlbmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXIgY2xlYXIgbGF5ZXIgb24gc2luZ2xlY2xpY2suXG4gICAqIEBwYXJhbSBldmVudCBPTCBtYXAgYnJvd3NlciBzaW5nbGVjbGljayBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBvbk1hcFNpbmdsZUNsaWNrRXZlbnQoZXZlbnQ6IE9sTWFwQnJvd3NlckV2ZW50PGFueT4pIHtcbiAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIGhvdmVyIHdoZW4gdGhlIG1vdXNlIGlzIG1vdGlvbmxlc3MgZHVyaW5nIHRoZSBkZWZpbmVkIGRlbGF5IChwb2ludGVyTW92ZURlbGF5KS5cbiAgICogQHBhcmFtIGV2ZW50IE9MIG1hcCBicm93c2VyIHBvaW50ZXIgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgb25NYXBFdmVudChldmVudDogT2xNYXBCcm93c2VyRXZlbnQ8YW55Pikge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LmRyYWdnaW5nIHx8XG4gICAgICAhdGhpcy5pZ29Ib3ZlckZlYXR1cmVFbmFibGVkIHx8XG4gICAgICB0aGlzLm1lZGlhU2VydmljZS5pc1RvdWNoU2NyZWVuKClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xlYXJMYXllcigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHRoaXMubGFzdFRpbWVvdXRSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gY2FuY2VsIHRpbWVvdXQgd2hlbiB0aGUgbW91c2UgbW92ZXNcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmxhc3RUaW1lb3V0UmVxdWVzdCk7XG4gICAgfVxuICAgIGxldCBtYXhpbXVtWmluZGV4ID0gLUluZmluaXR5O1xuICAgIGxldCB0b3BNb3N0T2xMYXllcjtcbiAgICBjb25zdCBwaXhlbCA9IHRoaXMubWFwLm9sLmdldFBpeGVsRnJvbUNvb3JkaW5hdGUoZXZlbnQuY29vcmRpbmF0ZSk7XG4gICAgdGhpcy5sYXN0VGltZW91dFJlcXVlc3QgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vIHJldHJpZXZlIHRoZSB0b3Btb3N0IGxheWVyIHdpdGggZmVhdHVyZSB0byBvbmx5IGFwcGx5IHRoZSBob3ZlciBvbiB0aGlzIGxheWVyLlxuICAgICAgdGhpcy5tYXAub2wuZm9yRWFjaEZlYXR1cmVBdFBpeGVsKFxuICAgICAgICBwaXhlbCxcbiAgICAgICAgKG1hcEZlYXR1cmU6IFJlbmRlckZlYXR1cmUgfCBPbEZlYXR1cmU8T2xHZW9tZXRyeT4sIGxheWVyT0w6IGFueSkgPT4ge1xuICAgICAgICAgIGlmICghbGF5ZXJPTCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBpZ29MYXllciA9IHRoaXMubWFwLmdldExheWVyQnlPbFVJZCgobGF5ZXJPTCBhcyBhbnkpLm9sX3VpZCk7XG4gICAgICAgICAgaWYgKCF0aGlzLmNhblByb2Nlc3NIb3ZlcihpZ29MYXllciBhcyBhbnkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpZ29MYXllci56SW5kZXggPD0gbWF4aW11bVppbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtYXhpbXVtWmluZGV4ID0gaWdvTGF5ZXIuekluZGV4O1xuICAgICAgICAgIHRvcE1vc3RPbExheWVyID0gbGF5ZXJPTDtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGhpdFRvbGVyYW5jZTogMTAsXG4gICAgICAgICAgbGF5ZXJGaWx0ZXI6IChvbExheWVyKSA9PlxuICAgICAgICAgICAgb2xMYXllciBpbnN0YW5jZW9mIG9sTGF5ZXJWZWN0b3IgfHxcbiAgICAgICAgICAgIG9sTGF5ZXIgaW5zdGFuY2VvZiBvbExheWVyVmVjdG9yVGlsZVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgaWYgKCF0b3BNb3N0T2xMYXllcikge1xuICAgICAgICAvLyBUbyBjbGVhciBsYWJlbFxuICAgICAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcbiAgICAgICAgdGhpcy5wb2ludGVySG92ZXJGZWF0dXJlU3RvcmUuY2xlYXIoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm1hcC5vbC5mb3JFYWNoRmVhdHVyZUF0UGl4ZWwoXG4gICAgICAgIHBpeGVsLFxuICAgICAgICAobWFwRmVhdHVyZTogUmVuZGVyRmVhdHVyZSB8IE9sRmVhdHVyZTxPbEdlb21ldHJ5PiwgbGF5ZXJPTDogYW55KSA9PiB7XG4gICAgICAgICAgLy8gVG8gYXZvaWQgZmxhc2hpbmcgZmVhdHVyZVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG1hcEZlYXR1cmUuZ2V0KCdob3ZlclN1bW1hcnknKSA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBtYXBGZWF0dXJlLmdldFByb3BlcnRpZXMoKSAhPT1cbiAgICAgICAgICAgICAgdGhpcy5wb2ludGVySG92ZXJGZWF0dXJlU3RvcmUuYWxsKClbMF0/LmdldFByb3BlcnRpZXMoKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5jbGVhckxheWVyKCk7XG4gICAgICAgICAgICBsZXQgaWdvTGF5ZXI7XG4gICAgICAgICAgICBpZiAobGF5ZXJPTCBpbnN0YW5jZW9mIG9sTGF5ZXJWZWN0b3IpIHtcbiAgICAgICAgICAgICAgY29uc3QgbXlMYXllclZlY3RvciA9IHRoaXMubWFwLmdldExheWVyQnlPbFVJZChcbiAgICAgICAgICAgICAgICAobGF5ZXJPTCBhcyBhbnkpLm9sX3VpZFxuICAgICAgICAgICAgICApIGFzIFZlY3RvckxheWVyO1xuICAgICAgICAgICAgICBpZiAoIXRoaXMuY2FuUHJvY2Vzc0hvdmVyKG15TGF5ZXJWZWN0b3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGxldCBsb2NhbE9sRmVhdHVyZSA9IHRoaXMuaGFuZGxlUmVuZGVyRmVhdHVyZShtYXBGZWF0dXJlKTtcbiAgICAgICAgICAgICAgdGhpcy5zZXRMYXllclN0eWxlRnJvbU9wdGlvbnMobXlMYXllclZlY3RvciwgbG9jYWxPbEZlYXR1cmUpO1xuICAgICAgICAgICAgICBjb25zdCBmZWF0dXJlc1RvTG9hZCA9IFtsb2NhbE9sRmVhdHVyZV07XG4gICAgICAgICAgICAgIGxvY2FsT2xGZWF0dXJlLnNldCgnX2lzTGFiZWwnLCBmYWxzZSk7XG4gICAgICAgICAgICAgIGNvbnN0IG15TGFiZWxPbEZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKCk7XG4gICAgICAgICAgICAgIG15TGFiZWxPbEZlYXR1cmUuc2V0UHJvcGVydGllcyhsb2NhbE9sRmVhdHVyZS5nZXRQcm9wZXJ0aWVzKCkpO1xuICAgICAgICAgICAgICBjb25zdCBsYWJlbEdlb20gPVxuICAgICAgICAgICAgICAgIGxvY2FsT2xGZWF0dXJlLmdldEdlb21ldHJ5KCkuZ2V0VHlwZSgpID09PSAnUG9pbnQnXG4gICAgICAgICAgICAgICAgICA/IGxvY2FsT2xGZWF0dXJlLmdldEdlb21ldHJ5KClcbiAgICAgICAgICAgICAgICAgIDogbmV3IE9sR2VvbS5Qb2ludChldmVudC5jb29yZGluYXRlKTtcbiAgICAgICAgICAgICAgbXlMYWJlbE9sRmVhdHVyZS5zZXRHZW9tZXRyeShsYWJlbEdlb20pO1xuICAgICAgICAgICAgICBteUxhYmVsT2xGZWF0dXJlLnNldElkKGxvY2FsT2xGZWF0dXJlLmdldElkKCkpO1xuICAgICAgICAgICAgICBteUxhYmVsT2xGZWF0dXJlLnNldCgnX2lzTGFiZWwnLCB0cnVlKTtcbiAgICAgICAgICAgICAgdGhpcy5zZXRMYXllclN0eWxlRnJvbU9wdGlvbnMobXlMYXllclZlY3RvciwgbXlMYWJlbE9sRmVhdHVyZSk7XG4gICAgICAgICAgICAgIGZlYXR1cmVzVG9Mb2FkLnB1c2gobXlMYWJlbE9sRmVhdHVyZSk7XG4gICAgICAgICAgICAgIHRoaXMucG9pbnRlckhvdmVyRmVhdHVyZVN0b3JlLmxvYWQoZmVhdHVyZXNUb0xvYWQpO1xuICAgICAgICAgICAgICBpZ29MYXllciA9IG15TGF5ZXJWZWN0b3I7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxheWVyT0wgaW5zdGFuY2VvZiBvbExheWVyVmVjdG9yVGlsZSkge1xuICAgICAgICAgICAgICBjb25zdCBteUxheWVyVmVjdG9yVGlsZSA9IHRoaXMubWFwLmdldExheWVyQnlPbFVJZChcbiAgICAgICAgICAgICAgICAobGF5ZXJPTCBhcyBhbnkpLm9sX3VpZFxuICAgICAgICAgICAgICApIGFzIFZlY3RvclRpbGVMYXllcjtcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmNhblByb2Nlc3NIb3ZlcihteUxheWVyVmVjdG9yVGlsZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG15TGF5ZXJWZWN0b3JUaWxlPy5vcHRpb25zPy5pZ29TdHlsZT8uc3R5bGVCeUF0dHJpYnV0ZVxuICAgICAgICAgICAgICAgICAgPy5ob3ZlclN0eWxlXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMubXZ0U3R5bGVPcHRpb25zID1cbiAgICAgICAgICAgICAgICAgIG15TGF5ZXJWZWN0b3JUaWxlLm9wdGlvbnMuaWdvU3R5bGUuc3R5bGVCeUF0dHJpYnV0ZS5ob3ZlclN0eWxlO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKG15TGF5ZXJWZWN0b3JUaWxlPy5vcHRpb25zPy5pZ29TdHlsZT8uaG92ZXJTdHlsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubXZ0U3R5bGVPcHRpb25zID1cbiAgICAgICAgICAgICAgICAgIG15TGF5ZXJWZWN0b3JUaWxlLm9wdGlvbnMuaWdvU3R5bGUuaG92ZXJTdHlsZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkxheWVyLnNldFNvdXJjZShsYXllck9MLmdldFNvdXJjZSgpKTtcbiAgICAgICAgICAgICAgbGF5ZXJPTFxuICAgICAgICAgICAgICAgIC5nZXRGZWF0dXJlcyhldmVudC5waXhlbClcbiAgICAgICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAgIChtdnRGZWF0dXJlczogKFJlbmRlckZlYXR1cmUgfCBPbEZlYXR1cmU8T2xHZW9tZXRyeT4pW10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtdnRGZWF0dXJlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1WVCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTGF5ZXIuY2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJMYXllcigpO1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmZWF0dXJlID0gbXZ0RmVhdHVyZXNbMF07XG4gICAgICAgICAgICAgICAgICAgIGlmICghZmVhdHVyZSkge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJMYXllcigpO1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYWxPbEZlYXR1cmUgPSB0aGlzLmhhbmRsZVJlbmRlckZlYXR1cmUoZmVhdHVyZSk7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsT2xGZWF0dXJlLnNldCgnX2lzTGFiZWwnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG15TGFiZWxPbEZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKCk7XG4gICAgICAgICAgICAgICAgICAgIG15TGFiZWxPbEZlYXR1cmUuc2V0UHJvcGVydGllcyhcbiAgICAgICAgICAgICAgICAgICAgICBsb2NhbE9sRmVhdHVyZS5nZXRQcm9wZXJ0aWVzKClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWxHZW9tID1cbiAgICAgICAgICAgICAgICAgICAgICBsb2NhbE9sRmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSA9PT0gJ1BvaW50J1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbE9sRmVhdHVyZS5nZXRHZW9tZXRyeSgpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG5ldyBPbEdlb20uUG9pbnQoZXZlbnQuY29vcmRpbmF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIG15TGFiZWxPbEZlYXR1cmUuc2V0R2VvbWV0cnkobGFiZWxHZW9tKTtcbiAgICAgICAgICAgICAgICAgICAgbXlMYWJlbE9sRmVhdHVyZS5zZXRJZChsb2NhbE9sRmVhdHVyZS5nZXRJZCgpKTtcbiAgICAgICAgICAgICAgICAgICAgbXlMYWJlbE9sRmVhdHVyZS5zZXQoJ19pc0xhYmVsJywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TGF5ZXJTdHlsZUZyb21PcHRpb25zKFxuICAgICAgICAgICAgICAgICAgICAgIG15TGF5ZXJWZWN0b3JUaWxlLFxuICAgICAgICAgICAgICAgICAgICAgIG15TGFiZWxPbEZlYXR1cmVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb2ludGVySG92ZXJGZWF0dXJlU3RvcmUubG9hZChbbXlMYWJlbE9sRmVhdHVyZV0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1WVFtmZWF0dXJlLmdldElkKCldID0gbG9jYWxPbEZlYXR1cmU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTGF5ZXIuY2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlnb0xheWVyID0gbXlMYXllclZlY3RvclRpbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaGl0VG9sZXJhbmNlOiAxMCxcbiAgICAgICAgICBsYXllckZpbHRlcjogKG9sTGF5ZXIpID0+IG9sTGF5ZXIgPT09IHRvcE1vc3RPbExheWVyXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSwgdGhpcy5pZ29Ib3ZlckZlYXR1cmVEZWxheSk7XG4gIH1cblxuICBjYW5Qcm9jZXNzSG92ZXIoaWdvTGF5ZXI6IFZlY3RvckxheWVyIHwgVmVjdG9yVGlsZUxheWVyKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpZ29MYXllcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWlnb0xheWVyLnZpc2libGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFpZ29MYXllci5vcHRpb25zKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIWlnb0xheWVyLm9wdGlvbnMuaWdvU3R5bGU/LnN0eWxlQnlBdHRyaWJ1dGUgJiZcbiAgICAgICFpZ29MYXllci5vcHRpb25zLmlnb1N0eWxlPy5ob3ZlclN0eWxlXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgaWdvTGF5ZXIub3B0aW9ucy5pZ29TdHlsZT8uc3R5bGVCeUF0dHJpYnV0ZSAmJlxuICAgICAgIWlnb0xheWVyLm9wdGlvbnMuaWdvU3R5bGU/LnN0eWxlQnlBdHRyaWJ1dGUuaG92ZXJTdHlsZSAmJlxuICAgICAgIWlnb0xheWVyLm9wdGlvbnMuaWdvU3R5bGU/LmhvdmVyU3R5bGVcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBoYW5kbGVSZW5kZXJGZWF0dXJlKFxuICAgIGZlYXR1cmU6IFJlbmRlckZlYXR1cmUgfCBPbEZlYXR1cmU8T2xHZW9tZXRyeT5cbiAgKTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+IHtcbiAgICBsZXQgbG9jYWxGZWF0dXJlOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT47XG4gICAgaWYgKGZlYXR1cmUgaW5zdGFuY2VvZiBSZW5kZXJGZWF0dXJlKSB7XG4gICAgICBsb2NhbEZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKHtcbiAgICAgICAgZ2VvbWV0cnk6IHRoaXMuZ2V0R2VvbWV0cnkoZmVhdHVyZSlcbiAgICAgIH0pO1xuICAgICAgbG9jYWxGZWF0dXJlLnNldElkKGZlYXR1cmUuZ2V0SWQoKSk7XG4gICAgfSBlbHNlIGlmIChmZWF0dXJlIGluc3RhbmNlb2YgT2xGZWF0dXJlKSB7XG4gICAgICBsb2NhbEZlYXR1cmUgPSBmZWF0dXJlO1xuICAgIH1cbiAgICBsb2NhbEZlYXR1cmUuc2V0UHJvcGVydGllcyhmZWF0dXJlLmdldFByb3BlcnRpZXMoKSk7XG4gICAgcmV0dXJuIGxvY2FsRmVhdHVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBmZWF0dXJlIHRvIHRoZSBwb2ludGVyIHN0b3JlXG4gICAqIEBwYXJhbSB0ZXh0IHN0cmluZ1xuICAgKi9cbiAgcHJpdmF0ZSBhZGRGZWF0dXJlT3ZlcmxheShob3ZlckVudGl0eTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10pIHtcbiAgICBpZiAoaG92ZXJFbnRpdHkubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gaG92ZXJFbnRpdHlbMF07XG4gICAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcbiAgICAgIGNvbnN0IGZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKHtcbiAgICAgICAgZ2VvbWV0cnk6IHJlc3VsdC5nZXRHZW9tZXRyeSgpLFxuICAgICAgICBtZXRhOiB7IGlkOiB0aGlzLmhvdmVyRmVhdHVyZUlkIH0sXG4gICAgICAgIGhvdmVyU3VtbWFyeTogdGhpcy5nZXRIb3ZlclN1bW1hcnkocmVzdWx0LmdldFByb3BlcnRpZXMoKSlcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnN0b3JlLnNldExheWVyT2xGZWF0dXJlcyhbZmVhdHVyZV0sIEZlYXR1cmVNb3Rpb24uTm9uZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRMYXllclN0eWxlRnJvbU9wdGlvbnMoXG4gICAgaWdvTGF5ZXI6IFZlY3RvckxheWVyIHwgVmVjdG9yVGlsZUxheWVyLFxuICAgIGZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PlxuICApIHtcbiAgICBjb25zdCByZXNvbHV0aW9uID0gdGhpcy5zdG9yZS5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0UmVzb2x1dGlvbigpO1xuICAgIGlmIChpZ29MYXllcj8ub3B0aW9ucz8uaWdvU3R5bGU/LnN0eWxlQnlBdHRyaWJ1dGU/LmhvdmVyU3R5bGUpIHtcbiAgICAgIHRoaXMuc3RvcmUubGF5ZXIub2wuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuY3JlYXRlSG92ZXJTdHlsZShcbiAgICAgICAgICBmZWF0dXJlLFxuICAgICAgICAgIGlnb0xheWVyLm9wdGlvbnMuaWdvU3R5bGUuc3R5bGVCeUF0dHJpYnV0ZS5ob3ZlclN0eWxlLFxuICAgICAgICAgIHJlc29sdXRpb25cbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGlnb0xheWVyPy5vcHRpb25zPy5pZ29TdHlsZT8uaG92ZXJTdHlsZSkge1xuICAgICAgdGhpcy5zdG9yZS5sYXllci5vbC5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5jcmVhdGVIb3ZlclN0eWxlKFxuICAgICAgICAgIGZlYXR1cmUsXG4gICAgICAgICAgaWdvTGF5ZXIub3B0aW9ucy5pZ29TdHlsZS5ob3ZlclN0eWxlLFxuICAgICAgICAgIHJlc29sdXRpb25cbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEhvdmVyU3VtbWFyeShwcm9wZXJ0aWVzKTogc3RyaW5nIHtcbiAgICBsZXQgc3VtbWFyeSA9ICcnO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BlcnRpZXMpKSB7XG4gICAgICBpZiAoIWtleS5zdGFydHNXaXRoKCdfJykgJiYga2V5ICE9PSAnZ2VvbWV0cnknKSB7XG4gICAgICAgIHN1bW1hcnkgKz0gYCR7a2V5fTogJHt2YWx1ZX1gICsgJ1xcbic7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdW1tYXJ5Lmxlbmd0aCA+PSAyID8gc3VtbWFyeS5zbGljZSgwLCAtMikgOiBzdW1tYXJ5O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRHZW9tZXRyeShmZWF0dXJlKTogT2xHZW9tLkdlb21ldHJ5IHtcbiAgICBsZXQgZ2VvbTtcbiAgICBpZiAoIWZlYXR1cmUuZ2V0T3JpZW50ZWRGbGF0Q29vcmRpbmF0ZXMpIHtcbiAgICAgIGdlb20gPSBmZWF0dXJlLmdldEdlb21ldHJ5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvb3JkcyA9IGZlYXR1cmUuZ2V0T3JpZW50ZWRGbGF0Q29vcmRpbmF0ZXMoKTtcbiAgICAgIGNvbnN0IGZsYXRDb29yZHMgPSBbXTtcblxuICAgICAgY29vcmRzLmZvckVhY2goKGMsIGlkeCkgPT4ge1xuICAgICAgICBpZiAoaWR4ICUgMiA9PT0gMCkge1xuICAgICAgICAgIGZsYXRDb29yZHMucHVzaChbXG4gICAgICAgICAgICBwYXJzZUZsb2F0KGNvb3Jkc1tpZHhdKSxcbiAgICAgICAgICAgIHBhcnNlRmxvYXQoY29vcmRzW2lkeCArIDFdKVxuICAgICAgICAgIF0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gVE9ETzogdGVzdCBNdWx0aVhcbiAgICAgIHN3aXRjaCAoZmVhdHVyZS5nZXRUeXBlKCkpIHtcbiAgICAgICAgY2FzZSAnUG9pbnQnOlxuICAgICAgICAgIGdlb20gPSBuZXcgT2xHZW9tLlBvaW50KGZsYXRDb29yZHMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdQb2x5Z29uJzpcbiAgICAgICAgICBnZW9tID0gbmV3IE9sR2VvbS5Qb2x5Z29uKFtmbGF0Q29vcmRzXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0xpbmVTdHJpbmcnOlxuICAgICAgICAgIGdlb20gPSBuZXcgT2xHZW9tLkxpbmVTdHJpbmcoW2ZsYXRDb29yZHNdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZ2VvbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgcG9pbnRlciBzdG9yZSBmZWF0dXJlc1xuICAgKi9cbiAgcHJpdmF0ZSBjbGVhckxheWVyKCkge1xuICAgIHRoaXMuc2VsZWN0aW9uTVZUID0ge307XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTGF5ZXIpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGF5ZXIuY2hhbmdlZCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdG9yZSkge1xuICAgICAgdGhpcy5zdG9yZS5jbGVhckxheWVyKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
492
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItZmVhdHVyZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvc2hhcmVkL2hvdmVyLWZlYXR1cmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUVuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8saUJBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxhQUFhLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxrQkFBa0IsTUFBTSxzQkFBc0IsQ0FBQztBQUd0RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQVMsV0FBVyxFQUFtQixNQUFNLDJCQUEyQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxt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OytGQTFCRSxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBS0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICdAaWdvMi9jb21tb24vZW50aXR5JztcbmltcG9ydCB7IE1lZGlhU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbWVkaWEnO1xuaW1wb3J0IHsgU3ViamVjdFN0YXR1cyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IE9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbE1hcEJyb3dzZXJFdmVudCB9IGZyb20gJ29sL01hcEJyb3dzZXJFdmVudCc7XG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgKiBhcyBPbEdlb20gZnJvbSAnb2wvZ2VvbSc7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0IG9sTGF5ZXJWZWN0b3IgZnJvbSAnb2wvbGF5ZXIvVmVjdG9yJztcbmltcG9ydCBvbExheWVyVmVjdG9yVGlsZSBmcm9tICdvbC9sYXllci9WZWN0b3JUaWxlJztcbmltcG9ydCBSZW5kZXJGZWF0dXJlIGZyb20gJ29sL3JlbmRlci9GZWF0dXJlJztcbmltcG9ydCBvbFZlY3RvclRpbGVTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3RvclRpbGUnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2ZlYXR1cmUtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyB0cnlCaW5kU3RvcmVMYXllciB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUtc3RvcmUudXRpbHMnO1xuaW1wb3J0IHsgRmVhdHVyZU1vdGlvbiB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuZW51bXMnO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBGZWF0dXJlU3RvcmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBMYXllciwgVmVjdG9yTGF5ZXIsIFZlY3RvclRpbGVMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMnO1xuaW1wb3J0IHsgTWFwQnJvd3NlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21hcC9tYXAtYnJvd3Nlci9tYXAtYnJvd3Nlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xuaW1wb3J0IHsgaG92ZXJGZWF0dXJlTWFya2VyU3R5bGUgfSBmcm9tICcuLi8uLi9zdHlsZS9zaGFyZWQvZmVhdHVyZS9mZWF0dXJlLXN0eWxlJztcbmltcG9ydCB7IFN0eWxlQnlBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi9zdHlsZS9zaGFyZWQvdmVjdG9yL3ZlY3Rvci1zdHlsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3R5bGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3R5bGUvc3R5bGUtc2VydmljZS9zdHlsZS5zZXJ2aWNlJztcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBtYWtlcyB0aGUgbW91c2UgY29vcmRpbmF0ZSB0cmlnZ2VyIGEgcmV2ZXJzZSBzZWFyY2ggb24gYXZhaWxhYmxlIHNlYXJjaCBzb3VyY2VzLlxuICogVGhlIHNlYXJjaCByZXN1bHRzIGFyZSBwbGFjZWQgaW50byBhIGxhYmVsLCBvbiBhIGNyb3NzIGljb24sIHJlcHJlc2VudGluZyB0aGUgbW91c2UgY29vcmRpbmF0ZS5cbiAqIEJ5IGRlZmF1bHQsIG5vIHNlYXJjaCBzb3VyY2VzLiBDb25maWcgaW4gY29uZmlnIGZpbGUgbXVzdCBiZSBkZWZpbmVkLlxuICogdGhlIGxheWVyIGxldmVsLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbaWdvSG92ZXJGZWF0dXJlXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSG92ZXJGZWF0dXJlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgc3RvcmU6IEZlYXR1cmVTdG9yZTxGZWF0dXJlPjtcbiAgcHJpdmF0ZSBwb2ludGVySG92ZXJGZWF0dXJlU3RvcmU6IEVudGl0eVN0b3JlPE9sRmVhdHVyZTxPbEdlb21ldHJ5Pj4gPVxuICAgIG5ldyBFbnRpdHlTdG9yZTxPbEZlYXR1cmU8T2xHZW9tZXRyeT4+KFtdKTtcbiAgcHJpdmF0ZSBsYXN0VGltZW91dFJlcXVlc3Q7XG4gIHByaXZhdGUgc3RvcmUkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGxheWVycyQkOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBzZWxlY3Rpb25MYXllcjogb2xMYXllclZlY3RvclRpbGU7XG4gIHByaXZhdGUgc2VsZWN0aW9uTVZUID0ge307XG4gIHByaXZhdGUgbXZ0U3R5bGVPcHRpb25zOiBTdHlsZUJ5QXR0cmlidXRlO1xuXG4gIC8qKlxuICAgKiBMaXN0ZW5lciB0byB0aGUgcG9pbnRlciBtb3ZlIGV2ZW50XG4gICAqL1xuICBwcml2YXRlIHBvaW50ZXJNb3ZlTGlzdGVuZXI7XG5cbiAgcHJpdmF0ZSBzaW5nbGVDbGlja01hcExpc3RlbmVyO1xuXG4gIHByaXZhdGUgaG92ZXJGZWF0dXJlSWQ6IHN0cmluZyA9ICdob3ZlckZlYXR1cmVJZCc7XG4gIC8qKlxuICAgKiBUaGUgZGVsYXkgd2hlcmUgdGhlIG1vdXNlIG11c3QgYmUgbW90aW9ubGVzcyBiZWZvcmUgdHJpZ2dlciB0aGUgcmV2ZXJzZSBzZWFyY2hcbiAgICovXG4gIEBJbnB1dCgpIGlnb0hvdmVyRmVhdHVyZURlbGF5OiBudW1iZXIgPSAxMDAwO1xuXG4gIC8qKlxuICAgKiBJZiB0aGUgdXNlciBoYXMgZW5hYmxlZCBvciBub3QgdGhlIGRpcmVjdGl2ZVxuICAgKi9cbiAgQElucHV0KCkgaWdvSG92ZXJGZWF0dXJlRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3V0JylcbiAgbW91c2VvdXQoKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMubGFzdFRpbWVvdXRSZXF1ZXN0KTtcbiAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJR08gbWFwXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudC5tYXA7XG4gIH1cblxuICBnZXQgbWFwUHJvamVjdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jb21wb25lbnQubWFwIGFzIElnb01hcCkucHJvamVjdGlvbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgcHJpdmF0ZSBjb21wb25lbnQ6IE1hcEJyb3dzZXJDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBtZWRpYVNlcnZpY2U6IE1lZGlhU2VydmljZSxcbiAgICBwcml2YXRlIHN0eWxlU2VydmljZTogU3R5bGVTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogU3RhcnQgbGlzdGVuaW5nIHRvIHBvaW50ZXJtb3ZlIGFuZCByZXZlcnNlIHNlYXJjaCByZXN1bHRzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubWFwLnN0YXR1cyRcbiAgICAgIC5waXBlKGZpcnN0KChzdGF0dXMpID0+IHN0YXR1cyA9PT0gU3ViamVjdFN0YXR1cy5Eb25lKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlID0gbmV3IEZlYXR1cmVTdG9yZTxGZWF0dXJlPihbXSwgeyBtYXA6IHRoaXMubWFwIH0pO1xuICAgICAgICB0aGlzLmluaXRTdG9yZSgpO1xuICAgICAgICB0aGlzLmxpc3RlblRvTWFwUG9pbnRlck1vdmUoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb1BvaW50ZXJTdG9yZSgpO1xuICAgICAgICB0aGlzLmxpc3RlblRvTWFwQ2xpY2soKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gVG8gaGFuZGxlIGNvbnRleHQgY2hhbmdlIHdpdGhvdXQgdXNpbmcgdGhlIGNvbnRleHRTZXJ2aWNlLlxuICAgIHRoaXMubGF5ZXJzJCQgPSB0aGlzLm1hcC5sYXllcnMkLnN1YnNjcmliZSgobGF5ZXJzOiBMYXllcltdKSA9PiB7XG4gICAgICBpZiAodGhpcy5zdG9yZSAmJiAhbGF5ZXJzLmZpbmQoKGwpID0+IGwuaWQgPT09ICdob3ZlckZlYXR1cmVJZCcpKSB7XG4gICAgICAgIHRoaXMuaW5pdFN0b3JlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgcG9pbnRlciBwb3NpdGlvbiBzdG9yZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgaW5pdFN0b3JlKCkge1xuICAgIGNvbnN0IHN0b3JlID0gdGhpcy5zdG9yZTtcblxuICAgIGNvbnN0IGxheWVyID0gbmV3IFZlY3RvckxheWVyKHtcbiAgICAgIGlzSWdvSW50ZXJuYWxMYXllcjogdHJ1ZSxcbiAgICAgIGlkOiAnaG92ZXJGZWF0dXJlSWQnLFxuICAgICAgdGl0bGU6ICdob3ZlckZlYXR1cmUnLFxuICAgICAgekluZGV4OiA5MDAsXG4gICAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxuICAgICAgc2hvd0luTGF5ZXJMaXN0OiBmYWxzZSxcbiAgICAgIGV4cG9ydGFibGU6IGZhbHNlLFxuICAgICAgYnJvd3NhYmxlOiBmYWxzZSxcbiAgICAgIHN0eWxlOiBob3ZlckZlYXR1cmVNYXJrZXJTdHlsZVxuICAgIH0pO1xuICAgIHRyeUJpbmRTdG9yZUxheWVyKHN0b3JlLCBsYXllcik7XG5cbiAgICB0aGlzLnNlbGVjdGlvbkxheWVyID0gbmV3IG9sTGF5ZXJWZWN0b3JUaWxlKHtcbiAgICAgIG1hcDogdGhpcy5tYXAub2wsXG4gICAgICB6SW5kZXg6IDkwMSxcbiAgICAgIHJlbmRlck1vZGU6ICd2ZWN0b3InLFxuICAgICAgZGVjbHV0dGVyOiB0cnVlLFxuICAgICAgc291cmNlOiBuZXcgb2xWZWN0b3JUaWxlU291cmNlKHsgcHJvamVjdGlvbjogdGhpcy5tYXAucHJvamVjdGlvbiB9KSxcbiAgICAgIHN0eWxlOiAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4ge1xuICAgICAgICBpZiAodGhpcy5tdnRTdHlsZU9wdGlvbnMgJiYgZmVhdHVyZS5nZXRJZCgpIGluIHRoaXMuc2VsZWN0aW9uTVZUKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlSG92ZXJTdHlsZShcbiAgICAgICAgICAgIGZlYXR1cmUsXG4gICAgICAgICAgICB0aGlzLm12dFN0eWxlT3B0aW9ucyxcbiAgICAgICAgICAgIHJlc29sdXRpb25cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVIb3ZlclN0eWxlKFxuICAgIGZlYXR1cmU6IFJlbmRlckZlYXR1cmUgfCBPbEZlYXR1cmU8T2xHZW9tZXRyeT4sXG4gICAgaG92ZXJTdHlsZTogU3R5bGVCeUF0dHJpYnV0ZSxcbiAgICByZXNvbHV0aW9uOiBudW1iZXJcbiAgKSB7XG4gICAgY29uc3QgbG9jYWxIb3ZlclN0eWxlID0geyAuLi5ob3ZlclN0eWxlIH07XG4gICAgbGV0IGxhYmVsID0gaG92ZXJTdHlsZS5sYWJlbCA/IGhvdmVyU3R5bGUubGFiZWwuYXR0cmlidXRlIDogdW5kZWZpbmVkO1xuICAgIGxldCBoYXNMYWJlbFN0eWxlID0gaG92ZXJTdHlsZS5sYWJlbD8uc3R5bGUgPyB0cnVlIDogZmFsc2U7XG5cbiAgICBpZiAoIWZlYXR1cmUuZ2V0KCdfaXNMYWJlbCcpKSB7XG4gICAgICBsb2NhbEhvdmVyU3R5bGUubGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICBoYXNMYWJlbFN0eWxlID0gZmFsc2U7XG4gICAgICBsYWJlbCA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY2xlYXIgdGhlIHN0eWxlIGZvciBsYWJlbC4uLi5cbiAgICAgIGNvbnN0IHNpemUgPSBsb2NhbEhvdmVyU3R5bGUuZGF0YSA/IGxvY2FsSG92ZXJTdHlsZS5kYXRhLmxlbmd0aCA6IDA7XG4gICAgICBjb25zdCByYWRpdXMgPSBbXTtcbiAgICAgIGNvbnN0IHN0cm9rZSA9IFtdO1xuICAgICAgY29uc3Qgd2lkdGggPSBbXTtcbiAgICAgIGNvbnN0IGZpbGwgPSBbXTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7XG4gICAgICAgIHJhZGl1cy5wdXNoKDApO1xuICAgICAgICBzdHJva2UucHVzaCgncmdiYSgyNTUsIDI1NSwgMjU1LCAwKScpO1xuICAgICAgICB3aWR0aC5wdXNoKDApO1xuICAgICAgICBmaWxsLnB1c2goJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMCknKTtcbiAgICAgIH1cbiAgICAgIGxvY2FsSG92ZXJTdHlsZS5yYWRpdXMgPSByYWRpdXM7XG4gICAgICBsb2NhbEhvdmVyU3R5bGUuc3Ryb2tlID0gc3Ryb2tlO1xuICAgICAgbG9jYWxIb3ZlclN0eWxlLndpZHRoID0gd2lkdGg7XG4gICAgICBsb2NhbEhvdmVyU3R5bGUuZmlsbCA9IGZpbGw7XG4gICAgfVxuICAgIGlmICghaGFzTGFiZWxTdHlsZSAmJiBsYWJlbCkge1xuICAgICAgbG9jYWxIb3ZlclN0eWxlLmxhYmVsLnN0eWxlID0ge1xuICAgICAgICB0ZXh0QWxpZ246ICdsZWZ0JyxcbiAgICAgICAgdGV4dEJhc2VsaW5lOiAndG9wJyxcbiAgICAgICAgZm9udDogJzEycHggQ2FsaWJyaSxzYW5zLXNlcmlmJyxcbiAgICAgICAgZmlsbDogeyBjb2xvcjogJyMwMDAnIH0sXG4gICAgICAgIGJhY2tncm91bmRGaWxsOiB7IGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpJyB9LFxuICAgICAgICBiYWNrZ3JvdW5kU3Ryb2tlOiB7IGNvbG9yOiAncmdiYSgyMDAsIDIwMCwgMjAwLCAwLjc1KScsIHdpZHRoOiAyIH0sXG4gICAgICAgIHN0cm9rZTogeyBjb2xvcjogJyNmZmYnLCB3aWR0aDogMyB9LFxuICAgICAgICBvdmVyZmxvdzogdHJ1ZSxcbiAgICAgICAgb2Zmc2V0WDogMTAsXG4gICAgICAgIG9mZnNldFk6IDIwLFxuICAgICAgICBwYWRkaW5nOiBbMi41LCAyLjUsIDIuNSwgMi41XVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlQnlBdHRyaWJ1dGUoXG4gICAgICBmZWF0dXJlLFxuICAgICAgbG9jYWxIb3ZlclN0eWxlLFxuICAgICAgcmVzb2x1dGlvblxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCBsaXN0ZW5pbmcgdG8gcG9pbnRlcm1vdmUgYW5kIHJldmVyc2Ugc2VhcmNoIHJlc3VsdHMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bmxpc3RlblRvTWFwUG9pbnRlck1vdmUoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlVG9Qb2ludGVyU3RvcmUoKTtcbiAgICB0aGlzLnVubGlzdGVuVG9NYXBTaW5nbGVDbGljaygpO1xuICAgIHRoaXMubGF5ZXJzJCQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gcG9pbnRlcm1vdmUgcmVzdWx0IHN0b3JlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgc3Vic2NyaWJlVG9Qb2ludGVyU3RvcmUoKSB7XG4gICAgdGhpcy5zdG9yZSQkID0gdGhpcy5wb2ludGVySG92ZXJGZWF0dXJlU3RvcmUuZW50aXRpZXMkLnN1YnNjcmliZShcbiAgICAgIChyZXN1bHRzVW5kZXJQb2ludGVyUG9zaXRpb24pID0+IHtcbiAgICAgICAgdGhpcy5hZGRGZWF0dXJlT3ZlcmxheShyZXN1bHRzVW5kZXJQb2ludGVyUG9zaXRpb24pO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogT24gbWFwIHBvaW50ZXJtb3ZlXG4gICAqL1xuICBwcml2YXRlIGxpc3RlblRvTWFwUG9pbnRlck1vdmUoKSB7XG4gICAgdGhpcy5wb2ludGVyTW92ZUxpc3RlbmVyID0gdGhpcy5tYXAub2wub24oXG4gICAgICAncG9pbnRlcm1vdmUnLFxuICAgICAgKGV2ZW50OiBPbE1hcEJyb3dzZXJFdmVudDxhbnk+KSA9PiB0aGlzLm9uTWFwRXZlbnQoZXZlbnQpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBtYXAgc2luZ2xlY2xpY2tcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9NYXBDbGljaygpIHtcbiAgICB0aGlzLnNpbmdsZUNsaWNrTWFwTGlzdGVuZXIgPSB0aGlzLm1hcC5vbC5vbihcbiAgICAgICdzaW5nbGVjbGljaycsXG4gICAgICAoZXZlbnQ6IE9sTWFwQnJvd3NlckV2ZW50PGFueT4pID0+IHRoaXMub25NYXBTaW5nbGVDbGlja0V2ZW50KGV2ZW50KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8gcG9pbnRlciBzdG9yZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB1bnN1YnNjcmliZVRvUG9pbnRlclN0b3JlKCkge1xuICAgIHRoaXMuc3RvcmUkJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgbGlzdGVuaW5nIGZvciBtYXAgcG9pbnRlcm1vdmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHVubGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpIHtcbiAgICB1bkJ5S2V5KHRoaXMucG9pbnRlck1vdmVMaXN0ZW5lcik7XG4gICAgdGhpcy5wb2ludGVyTW92ZUxpc3RlbmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgbGlzdGVuaW5nIGZvciBtYXAgc2luZ2xlY2xpY2tcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHVubGlzdGVuVG9NYXBTaW5nbGVDbGljaygpIHtcbiAgICB1bkJ5S2V5KHRoaXMuc2luZ2xlQ2xpY2tNYXBMaXN0ZW5lcik7XG4gICAgdGhpcy5zaW5nbGVDbGlja01hcExpc3RlbmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXIgY2xlYXIgbGF5ZXIgb24gc2luZ2xlY2xpY2suXG4gICAqIEBwYXJhbSBldmVudCBPTCBtYXAgYnJvd3NlciBzaW5nbGVjbGljayBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBvbk1hcFNpbmdsZUNsaWNrRXZlbnQoZXZlbnQ6IE9sTWFwQnJvd3NlckV2ZW50PGFueT4pIHtcbiAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIGhvdmVyIHdoZW4gdGhlIG1vdXNlIGlzIG1vdGlvbmxlc3MgZHVyaW5nIHRoZSBkZWZpbmVkIGRlbGF5IChwb2ludGVyTW92ZURlbGF5KS5cbiAgICogQHBhcmFtIGV2ZW50IE9MIG1hcCBicm93c2VyIHBvaW50ZXIgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgb25NYXBFdmVudChldmVudDogT2xNYXBCcm93c2VyRXZlbnQ8YW55Pikge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LmRyYWdnaW5nIHx8XG4gICAgICAhdGhpcy5pZ29Ib3ZlckZlYXR1cmVFbmFibGVkIHx8XG4gICAgICB0aGlzLm1lZGlhU2VydmljZS5pc1RvdWNoU2NyZWVuKClcbiAgICApIHtcbiAgICAgIHRoaXMuY2xlYXJMYXllcigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHRoaXMubGFzdFRpbWVvdXRSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gY2FuY2VsIHRpbWVvdXQgd2hlbiB0aGUgbW91c2UgbW92ZXNcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmxhc3RUaW1lb3V0UmVxdWVzdCk7XG4gICAgfVxuICAgIGxldCBtYXhpbXVtWmluZGV4ID0gLUluZmluaXR5O1xuICAgIGxldCB0b3BNb3N0T2xMYXllcjtcbiAgICBjb25zdCBwaXhlbCA9IHRoaXMubWFwLm9sLmdldFBpeGVsRnJvbUNvb3JkaW5hdGUoZXZlbnQuY29vcmRpbmF0ZSk7XG4gICAgdGhpcy5sYXN0VGltZW91dFJlcXVlc3QgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vIHJldHJpZXZlIHRoZSB0b3Btb3N0IGxheWVyIHdpdGggZmVhdHVyZSB0byBvbmx5IGFwcGx5IHRoZSBob3ZlciBvbiB0aGlzIGxheWVyLlxuICAgICAgdGhpcy5tYXAub2wuZm9yRWFjaEZlYXR1cmVBdFBpeGVsKFxuICAgICAgICBwaXhlbCxcbiAgICAgICAgKG1hcEZlYXR1cmU6IFJlbmRlckZlYXR1cmUgfCBPbEZlYXR1cmU8T2xHZW9tZXRyeT4sIGxheWVyT0w6IGFueSkgPT4ge1xuICAgICAgICAgIGlmICghbGF5ZXJPTCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBpZ29MYXllciA9IHRoaXMubWFwLmdldExheWVyQnlPbFVJZCgobGF5ZXJPTCBhcyBhbnkpLm9sX3VpZCk7XG4gICAgICAgICAgaWYgKCF0aGlzLmNhblByb2Nlc3NIb3ZlcihpZ29MYXllciBhcyBhbnkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpZ29MYXllci56SW5kZXggPD0gbWF4aW11bVppbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtYXhpbXVtWmluZGV4ID0gaWdvTGF5ZXIuekluZGV4O1xuICAgICAgICAgIHRvcE1vc3RPbExheWVyID0gbGF5ZXJPTDtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGhpdFRvbGVyYW5jZTogMTAsXG4gICAgICAgICAgbGF5ZXJGaWx0ZXI6IChvbExheWVyKSA9PlxuICAgICAgICAgICAgb2xMYXllciBpbnN0YW5jZW9mIG9sTGF5ZXJWZWN0b3IgfHxcbiAgICAgICAgICAgIG9sTGF5ZXIgaW5zdGFuY2VvZiBvbExheWVyVmVjdG9yVGlsZVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgaWYgKCF0b3BNb3N0T2xMYXllcikge1xuICAgICAgICAvLyBUbyBjbGVhciBsYWJlbFxuICAgICAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcbiAgICAgICAgdGhpcy5wb2ludGVySG92ZXJGZWF0dXJlU3RvcmUuY2xlYXIoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm1hcC5vbC5mb3JFYWNoRmVhdHVyZUF0UGl4ZWwoXG4gICAgICAgIHBpeGVsLFxuICAgICAgICAobWFwRmVhdHVyZTogUmVuZGVyRmVhdHVyZSB8IE9sRmVhdHVyZTxPbEdlb21ldHJ5PiwgbGF5ZXJPTDogYW55KSA9PiB7XG4gICAgICAgICAgLy8gVG8gYXZvaWQgZmxhc2hpbmcgZmVhdHVyZVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG1hcEZlYXR1cmUuZ2V0KCdob3ZlclN1bW1hcnknKSA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBtYXBGZWF0dXJlLmdldFByb3BlcnRpZXMoKSAhPT1cbiAgICAgICAgICAgICAgdGhpcy5wb2ludGVySG92ZXJGZWF0dXJlU3RvcmUuYWxsKClbMF0/LmdldFByb3BlcnRpZXMoKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5jbGVhckxheWVyKCk7XG4gICAgICAgICAgICBsZXQgaWdvTGF5ZXI7XG4gICAgICAgICAgICBpZiAobGF5ZXJPTCBpbnN0YW5jZW9mIG9sTGF5ZXJWZWN0b3IpIHtcbiAgICAgICAgICAgICAgY29uc3QgbXlMYXllclZlY3RvciA9IHRoaXMubWFwLmdldExheWVyQnlPbFVJZChcbiAgICAgICAgICAgICAgICAobGF5ZXJPTCBhcyBhbnkpLm9sX3VpZFxuICAgICAgICAgICAgICApIGFzIFZlY3RvckxheWVyO1xuICAgICAgICAgICAgICBpZiAoIXRoaXMuY2FuUHJvY2Vzc0hvdmVyKG15TGF5ZXJWZWN0b3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGxldCBsb2NhbE9sRmVhdHVyZSA9IHRoaXMuaGFuZGxlUmVuZGVyRmVhdHVyZShtYXBGZWF0dXJlKTtcbiAgICAgICAgICAgICAgdGhpcy5zZXRMYXllclN0eWxlRnJvbU9wdGlvbnMobXlMYXllclZlY3RvciwgbG9jYWxPbEZlYXR1cmUpO1xuICAgICAgICAgICAgICBjb25zdCBmZWF0dXJlc1RvTG9hZCA9IFtsb2NhbE9sRmVhdHVyZV07XG4gICAgICAgICAgICAgIGxvY2FsT2xGZWF0dXJlLnNldCgnX2lzTGFiZWwnLCBmYWxzZSk7XG4gICAgICAgICAgICAgIGNvbnN0IG15TGFiZWxPbEZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKCk7XG4gICAgICAgICAgICAgIG15TGFiZWxPbEZlYXR1cmUuc2V0UHJvcGVydGllcyhsb2NhbE9sRmVhdHVyZS5nZXRQcm9wZXJ0aWVzKCkpO1xuICAgICAgICAgICAgICBjb25zdCBsYWJlbEdlb20gPVxuICAgICAgICAgICAgICAgIGxvY2FsT2xGZWF0dXJlLmdldEdlb21ldHJ5KCkuZ2V0VHlwZSgpID09PSAnUG9pbnQnXG4gICAgICAgICAgICAgICAgICA/IGxvY2FsT2xGZWF0dXJlLmdldEdlb21ldHJ5KClcbiAgICAgICAgICAgICAgICAgIDogbmV3IE9sR2VvbS5Qb2ludChldmVudC5jb29yZGluYXRlKTtcbiAgICAgICAgICAgICAgbXlMYWJlbE9sRmVhdHVyZS5zZXRHZW9tZXRyeShsYWJlbEdlb20pO1xuICAgICAgICAgICAgICBteUxhYmVsT2xGZWF0dXJlLnNldElkKGxvY2FsT2xGZWF0dXJlLmdldElkKCkpO1xuICAgICAgICAgICAgICBteUxhYmVsT2xGZWF0dXJlLnNldCgnX2lzTGFiZWwnLCB0cnVlKTtcbiAgICAgICAgICAgICAgdGhpcy5zZXRMYXllclN0eWxlRnJvbU9wdGlvbnMobXlMYXllclZlY3RvciwgbXlMYWJlbE9sRmVhdHVyZSk7XG4gICAgICAgICAgICAgIGZlYXR1cmVzVG9Mb2FkLnB1c2gobXlMYWJlbE9sRmVhdHVyZSk7XG4gICAgICAgICAgICAgIHRoaXMucG9pbnRlckhvdmVyRmVhdHVyZVN0b3JlLmxvYWQoZmVhdHVyZXNUb0xvYWQpO1xuICAgICAgICAgICAgICBpZ29MYXllciA9IG15TGF5ZXJWZWN0b3I7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxheWVyT0wgaW5zdGFuY2VvZiBvbExheWVyVmVjdG9yVGlsZSkge1xuICAgICAgICAgICAgICBjb25zdCBteUxheWVyVmVjdG9yVGlsZSA9IHRoaXMubWFwLmdldExheWVyQnlPbFVJZChcbiAgICAgICAgICAgICAgICAobGF5ZXJPTCBhcyBhbnkpLm9sX3VpZFxuICAgICAgICAgICAgICApIGFzIFZlY3RvclRpbGVMYXllcjtcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmNhblByb2Nlc3NIb3ZlcihteUxheWVyVmVjdG9yVGlsZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG15TGF5ZXJWZWN0b3JUaWxlPy5vcHRpb25zPy5pZ29TdHlsZT8uc3R5bGVCeUF0dHJpYnV0ZVxuICAgICAgICAgICAgICAgICAgPy5ob3ZlclN0eWxlXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMubXZ0U3R5bGVPcHRpb25zID1cbiAgICAgICAgICAgICAgICAgIG15TGF5ZXJWZWN0b3JUaWxlLm9wdGlvbnMuaWdvU3R5bGUuc3R5bGVCeUF0dHJpYnV0ZS5ob3ZlclN0eWxlO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKG15TGF5ZXJWZWN0b3JUaWxlPy5vcHRpb25zPy5pZ29TdHlsZT8uaG92ZXJTdHlsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubXZ0U3R5bGVPcHRpb25zID1cbiAgICAgICAgICAgICAgICAgIG15TGF5ZXJWZWN0b3JUaWxlLm9wdGlvbnMuaWdvU3R5bGUuaG92ZXJTdHlsZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkxheWVyLnNldFNvdXJjZShsYXllck9MLmdldFNvdXJjZSgpKTtcbiAgICAgICAgICAgICAgbGF5ZXJPTFxuICAgICAgICAgICAgICAgIC5nZXRGZWF0dXJlcyhldmVudC5waXhlbClcbiAgICAgICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAgIChtdnRGZWF0dXJlczogKFJlbmRlckZlYXR1cmUgfCBPbEZlYXR1cmU8T2xHZW9tZXRyeT4pW10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtdnRGZWF0dXJlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1WVCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTGF5ZXIuY2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJMYXllcigpO1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmZWF0dXJlID0gbXZ0RmVhdHVyZXNbMF07XG4gICAgICAgICAgICAgICAgICAgIGlmICghZmVhdHVyZSkge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJMYXllcigpO1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYWxPbEZlYXR1cmUgPSB0aGlzLmhhbmRsZVJlbmRlckZlYXR1cmUoZmVhdHVyZSk7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsT2xGZWF0dXJlLnNldCgnX2lzTGFiZWwnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG15TGFiZWxPbEZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKCk7XG4gICAgICAgICAgICAgICAgICAgIG15TGFiZWxPbEZlYXR1cmUuc2V0UHJvcGVydGllcyhcbiAgICAgICAgICAgICAgICAgICAgICBsb2NhbE9sRmVhdHVyZS5nZXRQcm9wZXJ0aWVzKClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWxHZW9tID1cbiAgICAgICAgICAgICAgICAgICAgICBsb2NhbE9sRmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSA9PT0gJ1BvaW50J1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBsb2NhbE9sRmVhdHVyZS5nZXRHZW9tZXRyeSgpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG5ldyBPbEdlb20uUG9pbnQoZXZlbnQuY29vcmRpbmF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIG15TGFiZWxPbEZlYXR1cmUuc2V0R2VvbWV0cnkobGFiZWxHZW9tKTtcbiAgICAgICAgICAgICAgICAgICAgbXlMYWJlbE9sRmVhdHVyZS5zZXRJZChsb2NhbE9sRmVhdHVyZS5nZXRJZCgpKTtcbiAgICAgICAgICAgICAgICAgICAgbXlMYWJlbE9sRmVhdHVyZS5zZXQoJ19pc0xhYmVsJywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TGF5ZXJTdHlsZUZyb21PcHRpb25zKFxuICAgICAgICAgICAgICAgICAgICAgIG15TGF5ZXJWZWN0b3JUaWxlLFxuICAgICAgICAgICAgICAgICAgICAgIG15TGFiZWxPbEZlYXR1cmVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb2ludGVySG92ZXJGZWF0dXJlU3RvcmUubG9hZChbbXlMYWJlbE9sRmVhdHVyZV0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1WVFtmZWF0dXJlLmdldElkKCldID0gbG9jYWxPbEZlYXR1cmU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTGF5ZXIuY2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlnb0xheWVyID0gbXlMYXllclZlY3RvclRpbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaGl0VG9sZXJhbmNlOiAxMCxcbiAgICAgICAgICBsYXllckZpbHRlcjogKG9sTGF5ZXIpID0+IG9sTGF5ZXIgPT09IHRvcE1vc3RPbExheWVyXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSwgdGhpcy5pZ29Ib3ZlckZlYXR1cmVEZWxheSk7XG4gIH1cblxuICBjYW5Qcm9jZXNzSG92ZXIoaWdvTGF5ZXI6IFZlY3RvckxheWVyIHwgVmVjdG9yVGlsZUxheWVyKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpZ29MYXllcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWlnb0xheWVyLnZpc2libGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFpZ29MYXllci5vcHRpb25zKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIWlnb0xheWVyLm9wdGlvbnMuaWdvU3R5bGU/LnN0eWxlQnlBdHRyaWJ1dGUgJiZcbiAgICAgICFpZ29MYXllci5vcHRpb25zLmlnb1N0eWxlPy5ob3ZlclN0eWxlXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgaWdvTGF5ZXIub3B0aW9ucy5pZ29TdHlsZT8uc3R5bGVCeUF0dHJpYnV0ZSAmJlxuICAgICAgIWlnb0xheWVyLm9wdGlvbnMuaWdvU3R5bGU/LnN0eWxlQnlBdHRyaWJ1dGUuaG92ZXJTdHlsZSAmJlxuICAgICAgIWlnb0xheWVyLm9wdGlvbnMuaWdvU3R5bGU/LmhvdmVyU3R5bGVcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBoYW5kbGVSZW5kZXJGZWF0dXJlKFxuICAgIGZlYXR1cmU6IFJlbmRlckZlYXR1cmUgfCBPbEZlYXR1cmU8T2xHZW9tZXRyeT5cbiAgKTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+IHtcbiAgICBsZXQgbG9jYWxGZWF0dXJlOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT47XG4gICAgaWYgKGZlYXR1cmUgaW5zdGFuY2VvZiBSZW5kZXJGZWF0dXJlKSB7XG4gICAgICBsb2NhbEZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKHtcbiAgICAgICAgZ2VvbWV0cnk6IHRoaXMuZ2V0R2VvbWV0cnkoZmVhdHVyZSlcbiAgICAgIH0pO1xuICAgICAgbG9jYWxGZWF0dXJlLnNldElkKGZlYXR1cmUuZ2V0SWQoKSk7XG4gICAgfSBlbHNlIGlmIChmZWF0dXJlIGluc3RhbmNlb2YgT2xGZWF0dXJlKSB7XG4gICAgICBsb2NhbEZlYXR1cmUgPSBmZWF0dXJlO1xuICAgIH1cbiAgICBsb2NhbEZlYXR1cmUuc2V0UHJvcGVydGllcyhmZWF0dXJlLmdldFByb3BlcnRpZXMoKSk7XG4gICAgcmV0dXJuIGxvY2FsRmVhdHVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBmZWF0dXJlIHRvIHRoZSBwb2ludGVyIHN0b3JlXG4gICAqIEBwYXJhbSB0ZXh0IHN0cmluZ1xuICAgKi9cbiAgcHJpdmF0ZSBhZGRGZWF0dXJlT3ZlcmxheShob3ZlckVudGl0eTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10pIHtcbiAgICBpZiAoaG92ZXJFbnRpdHkubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gaG92ZXJFbnRpdHlbMF07XG4gICAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcbiAgICAgIGNvbnN0IGZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKHtcbiAgICAgICAgZ2VvbWV0cnk6IHJlc3VsdC5nZXRHZW9tZXRyeSgpLFxuICAgICAgICBtZXRhOiB7IGlkOiB0aGlzLmhvdmVyRmVhdHVyZUlkIH0sXG4gICAgICAgIGhvdmVyU3VtbWFyeTogdGhpcy5nZXRIb3ZlclN1bW1hcnkocmVzdWx0LmdldFByb3BlcnRpZXMoKSlcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnN0b3JlLnNldExheWVyT2xGZWF0dXJlcyhbZmVhdHVyZV0sIEZlYXR1cmVNb3Rpb24uTm9uZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRMYXllclN0eWxlRnJvbU9wdGlvbnMoXG4gICAgaWdvTGF5ZXI6IFZlY3RvckxheWVyIHwgVmVjdG9yVGlsZUxheWVyLFxuICAgIGZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PlxuICApIHtcbiAgICBjb25zdCByZXNvbHV0aW9uID0gdGhpcy5zdG9yZS5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0UmVzb2x1dGlvbigpO1xuICAgIGlmIChpZ29MYXllcj8ub3B0aW9ucz8uaWdvU3R5bGU/LnN0eWxlQnlBdHRyaWJ1dGU/LmhvdmVyU3R5bGUpIHtcbiAgICAgIHRoaXMuc3RvcmUubGF5ZXIub2wuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMuY3JlYXRlSG92ZXJTdHlsZShcbiAgICAgICAgICBmZWF0dXJlLFxuICAgICAgICAgIGlnb0xheWVyLm9wdGlvbnMuaWdvU3R5bGUuc3R5bGVCeUF0dHJpYnV0ZS5ob3ZlclN0eWxlLFxuICAgICAgICAgIHJlc29sdXRpb25cbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGlnb0xheWVyPy5vcHRpb25zPy5pZ29TdHlsZT8uaG92ZXJTdHlsZSkge1xuICAgICAgdGhpcy5zdG9yZS5sYXllci5vbC5zZXRTdHlsZShcbiAgICAgICAgdGhpcy5jcmVhdGVIb3ZlclN0eWxlKFxuICAgICAgICAgIGZlYXR1cmUsXG4gICAgICAgICAgaWdvTGF5ZXIub3B0aW9ucy5pZ29TdHlsZS5ob3ZlclN0eWxlLFxuICAgICAgICAgIHJlc29sdXRpb25cbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEhvdmVyU3VtbWFyeShwcm9wZXJ0aWVzKTogc3RyaW5nIHtcbiAgICBsZXQgc3VtbWFyeSA9ICcnO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BlcnRpZXMpKSB7XG4gICAgICBpZiAoIWtleS5zdGFydHNXaXRoKCdfJykgJiYga2V5ICE9PSAnZ2VvbWV0cnknKSB7XG4gICAgICAgIHN1bW1hcnkgKz0gYCR7a2V5fTogJHt2YWx1ZX1gICsgJ1xcbic7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdW1tYXJ5Lmxlbmd0aCA+PSAyID8gc3VtbWFyeS5zbGljZSgwLCAtMikgOiBzdW1tYXJ5O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRHZW9tZXRyeShmZWF0dXJlKTogT2xHZW9tLkdlb21ldHJ5IHtcbiAgICBsZXQgZ2VvbTtcbiAgICBpZiAoIWZlYXR1cmUuZ2V0T3JpZW50ZWRGbGF0Q29vcmRpbmF0ZXMpIHtcbiAgICAgIGdlb20gPSBmZWF0dXJlLmdldEdlb21ldHJ5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvb3JkcyA9IGZlYXR1cmUuZ2V0T3JpZW50ZWRGbGF0Q29vcmRpbmF0ZXMoKTtcbiAgICAgIGNvbnN0IGZsYXRDb29yZHMgPSBbXTtcblxuICAgICAgY29vcmRzLmZvckVhY2goKGMsIGlkeCkgPT4ge1xuICAgICAgICBpZiAoaWR4ICUgMiA9PT0gMCkge1xuICAgICAgICAgIGZsYXRDb29yZHMucHVzaChbXG4gICAgICAgICAgICBwYXJzZUZsb2F0KGNvb3Jkc1tpZHhdKSxcbiAgICAgICAgICAgIHBhcnNlRmxvYXQoY29vcmRzW2lkeCArIDFdKVxuICAgICAgICAgIF0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gVE9ETzogdGVzdCBNdWx0aVhcbiAgICAgIHN3aXRjaCAoZmVhdHVyZS5nZXRUeXBlKCkpIHtcbiAgICAgICAgY2FzZSAnUG9pbnQnOlxuICAgICAgICAgIGdlb20gPSBuZXcgT2xHZW9tLlBvaW50KGZsYXRDb29yZHMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdQb2x5Z29uJzpcbiAgICAgICAgICBnZW9tID0gbmV3IE9sR2VvbS5Qb2x5Z29uKFtmbGF0Q29vcmRzXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0xpbmVTdHJpbmcnOlxuICAgICAgICAgIGdlb20gPSBuZXcgT2xHZW9tLkxpbmVTdHJpbmcoW2ZsYXRDb29yZHNdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZ2VvbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgcG9pbnRlciBzdG9yZSBmZWF0dXJlc1xuICAgKi9cbiAgcHJpdmF0ZSBjbGVhckxheWVyKCkge1xuICAgIHRoaXMuc2VsZWN0aW9uTVZUID0ge307XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTGF5ZXIpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGF5ZXIuY2hhbmdlZCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdG9yZSkge1xuICAgICAgdGhpcy5zdG9yZS5jbGVhckxheWVyKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -3,9 +3,9 @@ import { Component, Input } from '@angular/core';
3
3
  import { MatButtonModule } from '@angular/material/button';
4
4
  import { MatIconModule } from '@angular/material/icon';
5
5
  import { MatTooltipModule } from '@angular/material/tooltip';
6
+ import { IgoLanguageModule } from '@igo2/core/language';
6
7
  import { StorageService } from '@igo2/core/storage';
7
8
  import { userAgent } from '@igo2/utils';
8
- import { TranslateModule } from '@ngx-translate/core';
9
9
  import NoSleep from 'nosleep.js';
10
10
  import { BehaviorSubject } from 'rxjs';
11
11
  import * as i0 from "@angular/core";
@@ -33,7 +33,7 @@ export class WakeLockButtonComponent {
33
33
  this.storageService.set('wakeLockEnabled', value);
34
34
  }
35
35
  noSleep;
36
- icon$ = new BehaviorSubject('sleep');
36
+ icon$ = new BehaviorSubject('bedtime');
37
37
  visible = false;
38
38
  constructor(storageService) {
39
39
  this.storageService = storageService;
@@ -65,7 +65,7 @@ export class WakeLockButtonComponent {
65
65
  enableWakeLock() {
66
66
  this.noSleep.enable();
67
67
  this.enabled = true;
68
- this.icon$.next('sleep-off');
68
+ this.icon$.next('bedtime_off');
69
69
  }
70
70
  /**
71
71
  * Let display sleep
@@ -73,7 +73,7 @@ export class WakeLockButtonComponent {
73
73
  disableWakeLock() {
74
74
  this.noSleep.disable();
75
75
  this.enabled = false;
76
- this.icon$.next('sleep');
76
+ this.icon$.next('bedtime');
77
77
  }
78
78
  toggleWakeLock() {
79
79
  if (this.enabled) {
@@ -84,7 +84,7 @@ export class WakeLockButtonComponent {
84
84
  }
85
85
  }
86
86
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: WakeLockButtonComponent, deps: [{ token: i1.StorageService }], target: i0.ɵɵFactoryTarget.Component });
87
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: WakeLockButtonComponent, isStandalone: true, selector: "igo-wake-lock-button", inputs: { color: "color", enabled: "enabled" }, ngImport: i0, template: "<div class=\"igo-wake-lock-button-container\">\n <button\n [color]=\"color\"\n mat-icon-button\n [matTooltip]=\"\n enabled\n ? ('igo.geo.mapButtons.preventScreenLock' | translate)\n : ('igo.geo.mapButtons.letScreenLock' | translate)\n \"\n matTooltipPosition=\"left\"\n (click)=\"toggleWakeLock()\"\n >\n <mat-icon svgIcon=\"{{ icon$ | async }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-wake-lock-button-container{width:40px;background-color:#fff}:host .igo-wake-lock-button-container:hover{background-color:#efefef}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
87
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: WakeLockButtonComponent, isStandalone: true, selector: "igo-wake-lock-button", inputs: { color: "color", enabled: "enabled" }, ngImport: i0, template: "<div class=\"igo-wake-lock-button-container\">\n <button\n [color]=\"color\"\n mat-icon-button\n [matTooltip]=\"\n enabled\n ? ('igo.geo.mapButtons.preventScreenLock' | translate)\n : ('igo.geo.mapButtons.letScreenLock' | translate)\n \"\n matTooltipPosition=\"left\"\n (click)=\"toggleWakeLock()\"\n >\n <mat-icon>{{ icon$ | async }}</mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-wake-lock-button-container{width:40px;background-color:#fff}:host .igo-wake-lock-button-container:hover{background-color:#efefef}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
88
88
  }
89
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: WakeLockButtonComponent, decorators: [{
90
90
  type: Component,
@@ -93,11 +93,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
93
93
  MatTooltipModule,
94
94
  MatIconModule,
95
95
  AsyncPipe,
96
- TranslateModule
97
- ], template: "<div class=\"igo-wake-lock-button-container\">\n <button\n [color]=\"color\"\n mat-icon-button\n [matTooltip]=\"\n enabled\n ? ('igo.geo.mapButtons.preventScreenLock' | translate)\n : ('igo.geo.mapButtons.letScreenLock' | translate)\n \"\n matTooltipPosition=\"left\"\n (click)=\"toggleWakeLock()\"\n >\n <mat-icon svgIcon=\"{{ icon$ | async }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-wake-lock-button-container{width:40px;background-color:#fff}:host .igo-wake-lock-button-container:hover{background-color:#efefef}\n"] }]
96
+ IgoLanguageModule
97
+ ], template: "<div class=\"igo-wake-lock-button-container\">\n <button\n [color]=\"color\"\n mat-icon-button\n [matTooltip]=\"\n enabled\n ? ('igo.geo.mapButtons.preventScreenLock' | translate)\n : ('igo.geo.mapButtons.letScreenLock' | translate)\n \"\n matTooltipPosition=\"left\"\n (click)=\"toggleWakeLock()\"\n >\n <mat-icon>{{ icon$ | async }}</mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-wake-lock-button-container{width:40px;background-color:#fff}:host .igo-wake-lock-button-container:hover{background-color:#efefef}\n"] }]
98
98
  }], ctorParameters: () => [{ type: i1.StorageService }], propDecorators: { color: [{
99
99
  type: Input
100
100
  }], enabled: [{
101
101
  type: Input
102
102
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FrZS1sb2NrLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvd2FrZS1sb2NrLWJ1dHRvbi93YWtlLWxvY2stYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC93YWtlLWxvY2stYnV0dG9uL3dha2UtbG9jay1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sT0FBTyxNQUFNLFlBQVksQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBZ0J2Qzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFjZDtJQWJYLEtBQUssR0FBVyxTQUFTLENBQUM7SUFDbkMsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBWSxDQUFDO0lBQy9ELENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTyxPQUFPLENBQVU7SUFDaEIsS0FBSyxHQUE0QixJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRXZCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNoRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsTUFBTSxxQkFBcUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1lBQ2hELEVBQUUsRUFBRSxJQUFJO1lBQ1IsSUFBSSxFQUFFLEtBQUs7WUFDWCxNQUFNLEVBQUUsS0FBSztZQUNiLE9BQU8sRUFBRSxJQUFJO1lBQ2IsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUMsQ0FBQztRQUNILElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssY0FBYztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRDs7T0FFRztJQUNLLGVBQWU7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQzt1R0E3RFUsdUJBQXVCOzJGQUF2Qix1QkFBdUIsZ0lDcENwQyx5YUFlQSx1VURJSSxlQUFlLDJJQUNmLGdCQUFnQiw0VEFDaEIsYUFBYSwrS0FDYixTQUFTLDZDQUNULGVBQWU7OzJGQWFOLHVCQUF1QjtrQkF2Qm5DLFNBQVM7K0JBQ0Usc0JBQXNCLGNBR3BCLElBQUksV0FDUDt3QkFDUCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixTQUFTO3dCQUNULGVBQWU7cUJBQ2hCO21GQWFRLEtBQUs7c0JBQWIsS0FBSztnQkFFRixPQUFPO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL3N0b3JhZ2UnO1xuaW1wb3J0IHsgdXNlckFnZW50IH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCBOb1NsZWVwIGZyb20gJ25vc2xlZXAuanMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby13YWtlLWxvY2stYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dha2UtbG9jay1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93YWtlLWxvY2stYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBUcmFuc2xhdGVNb2R1bGVcbiAgXVxufSlcblxuLyoqXG4gKiBQcmV2ZW50IGRpc3BsYXkgc2xlZXAgYW5kIGVuYWJsZSB3YWtlIGxvY2sgaW4gYWxsIEFuZHJvaWQgYW5kIGlPUyB3ZWIgYnJvd3NlcnMuXG4gKiBPbiBpT1MsIHRoZSBXYWtlIExvY2sgQVBJIGlzIG5vdCBzdXBwb3J0ZWRcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9TY3JlZW5fV2FrZV9Mb2NrX0FQSVxuICogT24gbm90IHN1cHBvcnRlZCBicm93c2VyLCBhIGZha2UgdmlkZW8gaXMgdXNlZCB0byBrZWVwIHRoZSBzY3JlZW4gb3Blbi5cbiAqXG4gKiBUT0RPOiBXaGVuIHRoZSBBUEkgd2lsbCBiZSBzdXBwb3J0ZWQgYnkgZXZlcnkgYnJvd3NlciwgV2Ugc2hvdWxkIHJlbW92ZSB0aGUgTm9TbGVlcC5qcyBkZXBlbmRlbmN5XG4gKiBhbmQgcmVwbGFjZSBpdCBieSBhIFdha2VMb2NrIEFQSSBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFdha2VMb2NrQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29sb3I6IHN0cmluZyA9ICdwcmltYXJ5JztcbiAgQElucHV0KClcbiAgZ2V0IGVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCd3YWtlTG9ja0VuYWJsZWQnKSBhcyBib29sZWFuO1xuICB9XG4gIHNldCBlbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoJ3dha2VMb2NrRW5hYmxlZCcsIHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9TbGVlcDogTm9TbGVlcDtcbiAgcmVhZG9ubHkgaWNvbiQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnc2xlZXAnKTtcbiAgcHVibGljIHZpc2libGUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSkge1xuICAgIHRoaXMubm9TbGVlcCA9IG5ldyBOb1NsZWVwKCk7XG4gICAgY29uc3Qgbm9uV2FrZUxvY2tBcGlCcm93c2VyID0gdXNlckFnZW50LnNhdGlzZmllcyh7XG4gICAgICBpZTogJz4wJyxcbiAgICAgIGVkZ2U6ICc8ODQnLFxuICAgICAgY2hyb21lOiAnPDg0JyxcbiAgICAgIGZpcmVmb3g6ICc+MCcsXG4gICAgICBvcGVyYTogJzw3MCcsXG4gICAgICBzYWZhcmk6ICc+MCdcbiAgICB9KTtcbiAgICBpZiAobm9uV2FrZUxvY2tBcGlCcm93c2VyKSB7XG4gICAgICB0aGlzLmRpc2FibGVXYWtlTG9jaygpO1xuICAgICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHtcbiAgICAgICAgdGhpcy5kaXNhYmxlV2FrZUxvY2soKTtcbiAgICAgICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5lbmFibGVkID8gdGhpcy5lbmFibGVXYWtlTG9jaygpIDogdGhpcy5kaXNhYmxlV2FrZUxvY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IGRpc3BsYXkgc2xlZXAgYW5kIGVuYWJsZSB3YWtlIGxvY2sgaW4gYWxsIEFuZHJvaWQgYW5kIGlPUyB3ZWIgYnJvd3NlcnMuXG4gICAqIE9uIGlPUywgdGhlIFdha2UgTG9jayBBUEkgaXMgbm90IHN1cHBvcnRlZFxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvU2NyZWVuX1dha2VfTG9ja19BUElcbiAgICogT24gbm90IHN1cHBvcnRlZCBicm93c2VyLCBhIGZha2UgdmlkZW8gaXMgdXNlZCB0byBrZWVwIHRoZSBzY3JlZW4gb3Blbi5cbiAgICovXG4gIHByaXZhdGUgZW5hYmxlV2FrZUxvY2soKSB7XG4gICAgdGhpcy5ub1NsZWVwLmVuYWJsZSgpO1xuICAgIHRoaXMuZW5hYmxlZCA9IHRydWU7XG4gICAgdGhpcy5pY29uJC5uZXh0KCdzbGVlcC1vZmYnKTtcbiAgfVxuICAvKipcbiAgICogTGV0IGRpc3BsYXkgc2xlZXBcbiAgICovXG4gIHByaXZhdGUgZGlzYWJsZVdha2VMb2NrKCkge1xuICAgIHRoaXMubm9TbGVlcC5kaXNhYmxlKCk7XG4gICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XG4gICAgdGhpcy5pY29uJC5uZXh0KCdzbGVlcCcpO1xuICB9XG5cbiAgdG9nZ2xlV2FrZUxvY2soKSB7XG4gICAgaWYgKHRoaXMuZW5hYmxlZCkge1xuICAgICAgdGhpcy5kaXNhYmxlV2FrZUxvY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbmFibGVXYWtlTG9jaygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlnby13YWtlLWxvY2stYnV0dG9uLWNvbnRhaW5lclwiPlxuICA8YnV0dG9uXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICBbbWF0VG9vbHRpcF09XCJcbiAgICAgIGVuYWJsZWRcbiAgICAgICAgPyAoJ2lnby5nZW8ubWFwQnV0dG9ucy5wcmV2ZW50U2NyZWVuTG9jaycgfCB0cmFuc2xhdGUpXG4gICAgICAgIDogKCdpZ28uZ2VvLm1hcEJ1dHRvbnMubGV0U2NyZWVuTG9jaycgfCB0cmFuc2xhdGUpXG4gICAgXCJcbiAgICBtYXRUb29sdGlwUG9zaXRpb249XCJsZWZ0XCJcbiAgICAoY2xpY2spPVwidG9nZ2xlV2FrZUxvY2soKVwiXG4gID5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cInt7IGljb24kIHwgYXN5bmMgfX1cIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FrZS1sb2NrLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvd2FrZS1sb2NrLWJ1dHRvbi93YWtlLWxvY2stYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC93YWtlLWxvY2stYnV0dG9uL3dha2UtbG9jay1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEMsT0FBTyxPQUFPLE1BQU0sWUFBWSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFnQnZDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQWNkO0lBYlgsS0FBSyxHQUFXLFNBQVMsQ0FBQztJQUNuQyxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFZLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQWM7UUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLE9BQU8sQ0FBVTtJQUNoQixLQUFLLEdBQTRCLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFdkIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ2hELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixNQUFNLHFCQUFxQixHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7WUFDaEQsRUFBRSxFQUFFLElBQUk7WUFDUixJQUFJLEVBQUUsS0FBSztZQUNYLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUN2QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNEOztPQUVHO0lBQ0ssZUFBZTtRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO3VHQTdEVSx1QkFBdUI7MkZBQXZCLHVCQUF1QixnSUNwQ3BDLDRaQWVBLHVVRElJLGVBQWUsMklBQ2YsZ0JBQWdCLDRUQUNoQixhQUFhLCtLQUNiLFNBQVMsNkNBQ1QsaUJBQWlCOzsyRkFhUix1QkFBdUI7a0JBdkJuQyxTQUFTOytCQUNFLHNCQUFzQixjQUdwQixJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxpQkFBaUI7cUJBQ2xCO21GQWFRLEtBQUs7c0JBQWIsS0FBSztnQkFFRixPQUFPO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9zdG9yYWdlJztcbmltcG9ydCB7IHVzZXJBZ2VudCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IE5vU2xlZXAgZnJvbSAnbm9zbGVlcC5qcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXdha2UtbG9jay1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vd2FrZS1sb2NrLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dha2UtbG9jay1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIElnb0xhbmd1YWdlTW9kdWxlXG4gIF1cbn0pXG5cbi8qKlxuICogUHJldmVudCBkaXNwbGF5IHNsZWVwIGFuZCBlbmFibGUgd2FrZSBsb2NrIGluIGFsbCBBbmRyb2lkIGFuZCBpT1Mgd2ViIGJyb3dzZXJzLlxuICogT24gaU9TLCB0aGUgV2FrZSBMb2NrIEFQSSBpcyBub3Qgc3VwcG9ydGVkXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvU2NyZWVuX1dha2VfTG9ja19BUElcbiAqIE9uIG5vdCBzdXBwb3J0ZWQgYnJvd3NlciwgYSBmYWtlIHZpZGVvIGlzIHVzZWQgdG8ga2VlcCB0aGUgc2NyZWVuIG9wZW4uXG4gKlxuICogVE9ETzogV2hlbiB0aGUgQVBJIHdpbGwgYmUgc3VwcG9ydGVkIGJ5IGV2ZXJ5IGJyb3dzZXIsIFdlIHNob3VsZCByZW1vdmUgdGhlIE5vU2xlZXAuanMgZGVwZW5kZW5jeVxuICogYW5kIHJlcGxhY2UgaXQgYnkgYSBXYWtlTG9jayBBUEkgaW1wbGVtZW50YXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBXYWtlTG9ja0J1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmcgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpXG4gIGdldCBlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnd2FrZUxvY2tFbmFibGVkJykgYXMgYm9vbGVhbjtcbiAgfVxuICBzZXQgZW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KCd3YWtlTG9ja0VuYWJsZWQnLCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIG5vU2xlZXA6IE5vU2xlZXA7XG4gIHJlYWRvbmx5IGljb24kOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoJ2JlZHRpbWUnKTtcbiAgcHVibGljIHZpc2libGUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSkge1xuICAgIHRoaXMubm9TbGVlcCA9IG5ldyBOb1NsZWVwKCk7XG4gICAgY29uc3Qgbm9uV2FrZUxvY2tBcGlCcm93c2VyID0gdXNlckFnZW50LnNhdGlzZmllcyh7XG4gICAgICBpZTogJz4wJyxcbiAgICAgIGVkZ2U6ICc8ODQnLFxuICAgICAgY2hyb21lOiAnPDg0JyxcbiAgICAgIGZpcmVmb3g6ICc+MCcsXG4gICAgICBvcGVyYTogJzw3MCcsXG4gICAgICBzYWZhcmk6ICc+MCdcbiAgICB9KTtcbiAgICBpZiAobm9uV2FrZUxvY2tBcGlCcm93c2VyKSB7XG4gICAgICB0aGlzLmRpc2FibGVXYWtlTG9jaygpO1xuICAgICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHtcbiAgICAgICAgdGhpcy5kaXNhYmxlV2FrZUxvY2soKTtcbiAgICAgICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5lbmFibGVkID8gdGhpcy5lbmFibGVXYWtlTG9jaygpIDogdGhpcy5kaXNhYmxlV2FrZUxvY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IGRpc3BsYXkgc2xlZXAgYW5kIGVuYWJsZSB3YWtlIGxvY2sgaW4gYWxsIEFuZHJvaWQgYW5kIGlPUyB3ZWIgYnJvd3NlcnMuXG4gICAqIE9uIGlPUywgdGhlIFdha2UgTG9jayBBUEkgaXMgbm90IHN1cHBvcnRlZFxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvU2NyZWVuX1dha2VfTG9ja19BUElcbiAgICogT24gbm90IHN1cHBvcnRlZCBicm93c2VyLCBhIGZha2UgdmlkZW8gaXMgdXNlZCB0byBrZWVwIHRoZSBzY3JlZW4gb3Blbi5cbiAgICovXG4gIHByaXZhdGUgZW5hYmxlV2FrZUxvY2soKSB7XG4gICAgdGhpcy5ub1NsZWVwLmVuYWJsZSgpO1xuICAgIHRoaXMuZW5hYmxlZCA9IHRydWU7XG4gICAgdGhpcy5pY29uJC5uZXh0KCdiZWR0aW1lX29mZicpO1xuICB9XG4gIC8qKlxuICAgKiBMZXQgZGlzcGxheSBzbGVlcFxuICAgKi9cbiAgcHJpdmF0ZSBkaXNhYmxlV2FrZUxvY2soKSB7XG4gICAgdGhpcy5ub1NsZWVwLmRpc2FibGUoKTtcbiAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmljb24kLm5leHQoJ2JlZHRpbWUnKTtcbiAgfVxuXG4gIHRvZ2dsZVdha2VMb2NrKCkge1xuICAgIGlmICh0aGlzLmVuYWJsZWQpIHtcbiAgICAgIHRoaXMuZGlzYWJsZVdha2VMb2NrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW5hYmxlV2FrZUxvY2soKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpZ28td2FrZS1sb2NrLWJ1dHRvbi1jb250YWluZXJcIj5cbiAgPGJ1dHRvblxuICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgW21hdFRvb2x0aXBdPVwiXG4gICAgICBlbmFibGVkXG4gICAgICAgID8gKCdpZ28uZ2VvLm1hcEJ1dHRvbnMucHJldmVudFNjcmVlbkxvY2snIHwgdHJhbnNsYXRlKVxuICAgICAgICA6ICgnaWdvLmdlby5tYXBCdXR0b25zLmxldFNjcmVlbkxvY2snIHwgdHJhbnNsYXRlKVxuICAgIFwiXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZVdha2VMb2NrKClcIlxuICA+XG4gICAgPG1hdC1pY29uPnt7IGljb24kIHwgYXN5bmMgfX08L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -2,7 +2,7 @@ import { Component, Input } from '@angular/core';
2
2
  import { MatButtonModule } from '@angular/material/button';
3
3
  import { MatIconModule } from '@angular/material/icon';
4
4
  import { MatTooltipModule } from '@angular/material/tooltip';
5
- import { TranslateModule } from '@ngx-translate/core';
5
+ import { IgoLanguageModule } from '@igo2/core/language';
6
6
  import { IgoMap } from '../shared/map';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/material/button";
@@ -23,14 +23,14 @@ export class ZoomButtonComponent {
23
23
  }
24
24
  constructor() { }
25
25
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ZoomButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: ZoomButtonComponent, isStandalone: true, selector: "igo-zoom-button", inputs: { map: "map", color: "color" }, ngImport: i0, template: "<div class=\"igo-zoom-button-container\">\n <button\n mat-icon-button\n [matTooltip]=\"'igo.geo.mapButtons.zoomIn' | translate: { zoom: zoom + 1 }\"\n matTooltipPosition=\"left\"\n [color]=\"color\"\n [disabled]=\"zoom >= maxZoom\"\n (click)=\"map.viewController.zoomIn()\"\n >\n <mat-icon svgIcon=\"plus\"></mat-icon>\n </button>\n\n <button\n mat-icon-button\n [matTooltip]=\"'igo.geo.mapButtons.zoomOut' | translate: { zoom: zoom - 1 }\"\n matTooltipPosition=\"left\"\n [color]=\"color\"\n [disabled]=\"zoom <= minZoom\"\n (click)=\"map.viewController.zoomOut()\"\n >\n <mat-icon svgIcon=\"minus\"></mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-zoom-button-container{width:40px}:host .igo-zoom-button-container button{background-color:#fff}:host .igo-zoom-button-container button:hover{background-color:#efefef}:host .igo-zoom-button-container button:first-child{margin-bottom:2px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: ZoomButtonComponent, isStandalone: true, selector: "igo-zoom-button", inputs: { map: "map", color: "color" }, ngImport: i0, template: "<div class=\"igo-zoom-button-container\">\n <button\n mat-icon-button\n [matTooltip]=\"'igo.geo.mapButtons.zoomIn' | translate: { zoom: zoom + 1 }\"\n matTooltipPosition=\"left\"\n [color]=\"color\"\n [disabled]=\"zoom >= maxZoom\"\n (click)=\"map.viewController.zoomIn()\"\n >\n <mat-icon>add</mat-icon>\n </button>\n\n <button\n mat-icon-button\n [matTooltip]=\"'igo.geo.mapButtons.zoomOut' | translate: { zoom: zoom - 1 }\"\n matTooltipPosition=\"left\"\n [color]=\"color\"\n [disabled]=\"zoom <= minZoom\"\n (click)=\"map.viewController.zoomOut()\"\n >\n <mat-icon>remove</mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-zoom-button-container{width:40px}:host .igo-zoom-button-container button{background-color:#fff}:host .igo-zoom-button-container button:hover{background-color:#efefef}:host .igo-zoom-button-container button:first-child{margin-bottom:2px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
27
27
  }
28
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ZoomButtonComponent, decorators: [{
29
29
  type: Component,
30
- args: [{ selector: 'igo-zoom-button', standalone: true, imports: [MatButtonModule, MatTooltipModule, MatIconModule, TranslateModule], template: "<div class=\"igo-zoom-button-container\">\n <button\n mat-icon-button\n [matTooltip]=\"'igo.geo.mapButtons.zoomIn' | translate: { zoom: zoom + 1 }\"\n matTooltipPosition=\"left\"\n [color]=\"color\"\n [disabled]=\"zoom >= maxZoom\"\n (click)=\"map.viewController.zoomIn()\"\n >\n <mat-icon svgIcon=\"plus\"></mat-icon>\n </button>\n\n <button\n mat-icon-button\n [matTooltip]=\"'igo.geo.mapButtons.zoomOut' | translate: { zoom: zoom - 1 }\"\n matTooltipPosition=\"left\"\n [color]=\"color\"\n [disabled]=\"zoom <= minZoom\"\n (click)=\"map.viewController.zoomOut()\"\n >\n <mat-icon svgIcon=\"minus\"></mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-zoom-button-container{width:40px}:host .igo-zoom-button-container button{background-color:#fff}:host .igo-zoom-button-container button:hover{background-color:#efefef}:host .igo-zoom-button-container button:first-child{margin-bottom:2px}\n"] }]
30
+ args: [{ selector: 'igo-zoom-button', standalone: true, imports: [MatButtonModule, MatTooltipModule, MatIconModule, IgoLanguageModule], template: "<div class=\"igo-zoom-button-container\">\n <button\n mat-icon-button\n [matTooltip]=\"'igo.geo.mapButtons.zoomIn' | translate: { zoom: zoom + 1 }\"\n matTooltipPosition=\"left\"\n [color]=\"color\"\n [disabled]=\"zoom >= maxZoom\"\n (click)=\"map.viewController.zoomIn()\"\n >\n <mat-icon>add</mat-icon>\n </button>\n\n <button\n mat-icon-button\n [matTooltip]=\"'igo.geo.mapButtons.zoomOut' | translate: { zoom: zoom - 1 }\"\n matTooltipPosition=\"left\"\n [color]=\"color\"\n [disabled]=\"zoom <= minZoom\"\n (click)=\"map.viewController.zoomOut()\"\n >\n <mat-icon>remove</mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-zoom-button-container{width:40px}:host .igo-zoom-button-container button{background-color:#fff}:host .igo-zoom-button-container button:hover{background-color:#efefef}:host .igo-zoom-button-container button:first-child{margin-bottom:2px}\n"] }]
31
31
  }], ctorParameters: () => [], propDecorators: { map: [{
32
32
  type: Input
33
33
  }], color: [{
34
34
  type: Input
35
35
  }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWFwL3pvb20tYnV0dG9uL3pvb20tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC96b29tLWJ1dHRvbi96b29tLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFTdkMsTUFBTSxPQUFPLG1CQUFtQjtJQUNyQixHQUFHLENBQVM7SUFFWixLQUFLLENBQVM7SUFFdkIsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsZ0JBQWUsQ0FBQzt1R0FqQkwsbUJBQW1COzJGQUFuQixtQkFBbUIsbUhDaEJoQyw0cUJBdUJBLGtiRFRZLGVBQWUsMklBQUUsZ0JBQWdCLDRUQUFFLGFBQWEsbUxBQUUsZUFBZTs7MkZBRWhFLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FHZixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQzt3REFHbkUsR0FBRztzQkFBWCxLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi9zaGFyZWQvbWFwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXpvb20tYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3pvb20tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vem9vbS1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdEJ1dHRvbk1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBab29tQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XG5cbiAgQElucHV0KCkgY29sb3I6IHN0cmluZztcblxuICBnZXQgem9vbSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5nZXRab29tKCk7XG4gIH1cblxuICBnZXQgbWluWm9vbSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5vbFZpZXcuZ2V0TWluWm9vbSgpIHx8IDE7XG4gIH1cblxuICBnZXQgbWF4Wm9vbSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5vbFZpZXcuZ2V0TWF4Wm9vbSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7fVxufVxuIiwiPGRpdiBjbGFzcz1cImlnby16b29tLWJ1dHRvbi1jb250YWluZXJcIj5cbiAgPGJ1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLm1hcEJ1dHRvbnMuem9vbUluJyB8IHRyYW5zbGF0ZTogeyB6b29tOiB6b29tICsgMSB9XCJcbiAgICBtYXRUb29sdGlwUG9zaXRpb249XCJsZWZ0XCJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgIFtkaXNhYmxlZF09XCJ6b29tID49IG1heFpvb21cIlxuICAgIChjbGljayk9XCJtYXAudmlld0NvbnRyb2xsZXIuem9vbUluKClcIlxuICA+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJwbHVzXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLm1hcEJ1dHRvbnMuem9vbU91dCcgfCB0cmFuc2xhdGU6IHsgem9vbTogem9vbSAtIDEgfVwiXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICBbZGlzYWJsZWRdPVwiem9vbSA8PSBtaW5ab29tXCJcbiAgICAoY2xpY2spPVwibWFwLnZpZXdDb250cm9sbGVyLnpvb21PdXQoKVwiXG4gID5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm1pbnVzXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWFwL3pvb20tYnV0dG9uL3pvb20tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC96b29tLWJ1dHRvbi96b29tLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVN2QyxNQUFNLE9BQU8sbUJBQW1CO0lBQ3JCLEdBQUcsQ0FBUztJQUVaLEtBQUssQ0FBUztJQUV2QixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxnQkFBZSxDQUFDO3VHQWpCTCxtQkFBbUI7MkZBQW5CLG1CQUFtQixtSENoQmhDLGtwQkF1QkEsa2JEVFksZUFBZSwySUFBRSxnQkFBZ0IsNFRBQUUsYUFBYSxtTEFBRSxpQkFBaUI7OzJGQUVsRSxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBR2YsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQzt3REFHckUsR0FBRztzQkFBWCxLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5cbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uL3NoYXJlZC9tYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tem9vbS1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vem9vbS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi96b29tLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0QnV0dG9uTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBJZ29MYW5ndWFnZU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgWm9vbUJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xuXG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmc7XG5cbiAgZ2V0IHpvb20oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuZ2V0Wm9vbSgpO1xuICB9XG5cbiAgZ2V0IG1pblpvb20oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIub2xWaWV3LmdldE1pblpvb20oKSB8fCAxO1xuICB9XG5cbiAgZ2V0IG1heFpvb20oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIub2xWaWV3LmdldE1heFpvb20oKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJpZ28tem9vbS1idXR0b24tY29udGFpbmVyXCI+XG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5tYXBCdXR0b25zLnpvb21JbicgfCB0cmFuc2xhdGU6IHsgem9vbTogem9vbSArIDEgfVwiXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICBbZGlzYWJsZWRdPVwiem9vbSA+PSBtYXhab29tXCJcbiAgICAoY2xpY2spPVwibWFwLnZpZXdDb250cm9sbGVyLnpvb21JbigpXCJcbiAgPlxuICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8ubWFwQnV0dG9ucy56b29tT3V0JyB8IHRyYW5zbGF0ZTogeyB6b29tOiB6b29tIC0gMSB9XCJcbiAgICBtYXRUb29sdGlwUG9zaXRpb249XCJsZWZ0XCJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgIFtkaXNhYmxlZF09XCJ6b29tIDw9IG1pblpvb21cIlxuICAgIChjbGljayk9XCJtYXAudmlld0NvbnRyb2xsZXIuem9vbU91dCgpXCJcbiAgPlxuICAgIDxtYXQtaWNvbj5yZW1vdmU8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -1,7 +1,7 @@
1
1
  import { NgIf } from '@angular/common';
2
2
  import { Component, Inject } from '@angular/core';
3
3
  import { MAT_DIALOG_DATA, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';
4
- import { TranslateModule } from '@ngx-translate/core';
4
+ import { IgoLanguageModule } from '@igo2/core/language';
5
5
  import { MeasureAreaUnit, MeasureLengthUnit } from '../shared/measure.enum';
6
6
  import { MeasureFormatPipe } from './measure-format.pipe';
7
7
  import * as i0 from "@angular/core";
@@ -20,7 +20,7 @@ export class MeasurerDialogComponent {
20
20
  this.dialogRef.close();
21
21
  }
22
22
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MeasurerDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
23
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: MeasurerDialogComponent, isStandalone: true, selector: "igo-measurer-dialog", ngImport: i0, template: "<h3 mat-dialog-title>{{ 'igo.geo.measure.dialog.title' | translate }}</h3>\n<div mat-dialog-content>\n <table *ngIf=\"data.length > 0\" class=\"mat-typography\">\n <thead>\n <tr>\n <th colspan=\"2\">\n {{ 'igo.geo.measure.dialog.length.title' | translate }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>{{ data.length | measureFormat: measureLengthUnit.Meters }}</td>\n <td>{{ 'igo.geo.measure.dialog.lengthInMeters' | translate }}</td>\n </tr>\n <tr>\n <td>\n {{ data.length | measureFormat: measureLengthUnit.Kilometers }}\n </td>\n <td>{{ 'igo.geo.measure.dialog.lengthInKilometers' | translate }}</td>\n </tr>\n <tr>\n <td>{{ data.length | measureFormat: measureLengthUnit.Miles }}</td>\n <td>{{ 'igo.geo.measure.dialog.lengthInMiles' | translate }}</td>\n </tr>\n <tr>\n <td>{{ data.length | measureFormat: measureLengthUnit.Feet }}</td>\n <td>{{ 'igo.geo.measure.dialog.lengthInFeet' | translate }}</td>\n </tr>\n </tbody>\n </table>\n\n <table *ngIf=\"data.area > 0\" class=\"mat-typography\">\n <thead>\n <tr>\n <th colspan=\"2\">\n {{ 'igo.geo.measure.dialog.area.title' | translate }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>{{ data.area | measureFormat: measureAreaUnit.SquareMeters }}</td>\n <td>{{ 'igo.geo.measure.dialog.areaInSquareMeters' | translate }}</td>\n </tr>\n <tr>\n <td>\n {{ data.area | measureFormat: measureAreaUnit.SquareKilometers }}\n </td>\n <td>\n {{ 'igo.geo.measure.dialog.areaInSquareKilometers' | translate }}\n </td>\n </tr>\n <tr>\n <td>{{ data.area | measureFormat: measureAreaUnit.SquareMiles }}</td>\n <td>{{ 'igo.geo.measure.dialog.areaInSquareMiles' | translate }}</td>\n </tr>\n <tr>\n <td>{{ data.area | measureFormat: measureAreaUnit.Acres }}</td>\n <td>{{ 'igo.geo.measure.dialog.areaInAcres' | translate }}</td>\n </tr>\n <tr>\n <td>{{ data.area | measureFormat: measureAreaUnit.Hectares }}</td>\n <td>{{ 'igo.geo.measure.dialog.areaInHectares' | translate }}</td>\n </tr>\n <tr>\n <td>{{ 'igo.geo.measure.dialog.perimeterInMeters' | translate }}</td>\n <td>{{ data.perimeter | measureFormat: measureLengthUnit.Meters }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [":host{font-family:Roboto,Helvetica Neue,sans-serif}h3{text-align:center;margin:0}table{width:100%;padding:10px}table tbody tr td:last-child{padding-left:10px}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: MeasureFormatPipe, name: "measureFormat" }] });
23
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: MeasurerDialogComponent, isStandalone: true, selector: "igo-measurer-dialog", ngImport: i0, template: "<h3 mat-dialog-title>{{ 'igo.geo.measure.dialog.title' | translate }}</h3>\n<div mat-dialog-content>\n <table *ngIf=\"data.length > 0\" class=\"mat-typography\">\n <thead>\n <tr>\n <th colspan=\"2\">\n {{ 'igo.geo.measure.dialog.length.title' | translate }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>{{ data.length | measureFormat: measureLengthUnit.Meters }}</td>\n <td>{{ 'igo.geo.measure.dialog.lengthInMeters' | translate }}</td>\n </tr>\n <tr>\n <td>\n {{ data.length | measureFormat: measureLengthUnit.Kilometers }}\n </td>\n <td>{{ 'igo.geo.measure.dialog.lengthInKilometers' | translate }}</td>\n </tr>\n <tr>\n <td>{{ data.length | measureFormat: measureLengthUnit.Miles }}</td>\n <td>{{ 'igo.geo.measure.dialog.lengthInMiles' | translate }}</td>\n </tr>\n <tr>\n <td>{{ data.length | measureFormat: measureLengthUnit.Feet }}</td>\n <td>{{ 'igo.geo.measure.dialog.lengthInFeet' | translate }}</td>\n </tr>\n </tbody>\n </table>\n\n <table *ngIf=\"data.area > 0\" class=\"mat-typography\">\n <thead>\n <tr>\n <th colspan=\"2\">\n {{ 'igo.geo.measure.dialog.area.title' | translate }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>{{ data.area | measureFormat: measureAreaUnit.SquareMeters }}</td>\n <td>{{ 'igo.geo.measure.dialog.areaInSquareMeters' | translate }}</td>\n </tr>\n <tr>\n <td>\n {{ data.area | measureFormat: measureAreaUnit.SquareKilometers }}\n </td>\n <td>\n {{ 'igo.geo.measure.dialog.areaInSquareKilometers' | translate }}\n </td>\n </tr>\n <tr>\n <td>{{ data.area | measureFormat: measureAreaUnit.SquareMiles }}</td>\n <td>{{ 'igo.geo.measure.dialog.areaInSquareMiles' | translate }}</td>\n </tr>\n <tr>\n <td>{{ data.area | measureFormat: measureAreaUnit.Acres }}</td>\n <td>{{ 'igo.geo.measure.dialog.areaInAcres' | translate }}</td>\n </tr>\n <tr>\n <td>{{ data.area | measureFormat: measureAreaUnit.Hectares }}</td>\n <td>{{ 'igo.geo.measure.dialog.areaInHectares' | translate }}</td>\n </tr>\n <tr>\n <td>{{ 'igo.geo.measure.dialog.perimeterInMeters' | translate }}</td>\n <td>{{ data.perimeter | measureFormat: measureLengthUnit.Meters }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [":host{font-family:Roboto,Helvetica Neue,sans-serif}h3{text-align:center;margin:0}table{width:100%;padding:10px}table tbody tr td:last-child{padding-left:10px}\n"], dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: MeasureFormatPipe, name: "measureFormat" }] });
24
24
  }
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MeasurerDialogComponent, decorators: [{
26
26
  type: Component,
@@ -28,11 +28,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
28
28
  MatDialogTitle,
29
29
  MatDialogContent,
30
30
  NgIf,
31
- TranslateModule,
31
+ IgoLanguageModule,
32
32
  MeasureFormatPipe
33
33
  ], template: "<h3 mat-dialog-title>{{ 'igo.geo.measure.dialog.title' | translate }}</h3>\n<div mat-dialog-content>\n <table *ngIf=\"data.length > 0\" class=\"mat-typography\">\n <thead>\n <tr>\n <th colspan=\"2\">\n {{ 'igo.geo.measure.dialog.length.title' | translate }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>{{ data.length | measureFormat: measureLengthUnit.Meters }}</td>\n <td>{{ 'igo.geo.measure.dialog.lengthInMeters' | translate }}</td>\n </tr>\n <tr>\n <td>\n {{ data.length | measureFormat: measureLengthUnit.Kilometers }}\n </td>\n <td>{{ 'igo.geo.measure.dialog.lengthInKilometers' | translate }}</td>\n </tr>\n <tr>\n <td>{{ data.length | measureFormat: measureLengthUnit.Miles }}</td>\n <td>{{ 'igo.geo.measure.dialog.lengthInMiles' | translate }}</td>\n </tr>\n <tr>\n <td>{{ data.length | measureFormat: measureLengthUnit.Feet }}</td>\n <td>{{ 'igo.geo.measure.dialog.lengthInFeet' | translate }}</td>\n </tr>\n </tbody>\n </table>\n\n <table *ngIf=\"data.area > 0\" class=\"mat-typography\">\n <thead>\n <tr>\n <th colspan=\"2\">\n {{ 'igo.geo.measure.dialog.area.title' | translate }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>{{ data.area | measureFormat: measureAreaUnit.SquareMeters }}</td>\n <td>{{ 'igo.geo.measure.dialog.areaInSquareMeters' | translate }}</td>\n </tr>\n <tr>\n <td>\n {{ data.area | measureFormat: measureAreaUnit.SquareKilometers }}\n </td>\n <td>\n {{ 'igo.geo.measure.dialog.areaInSquareKilometers' | translate }}\n </td>\n </tr>\n <tr>\n <td>{{ data.area | measureFormat: measureAreaUnit.SquareMiles }}</td>\n <td>{{ 'igo.geo.measure.dialog.areaInSquareMiles' | translate }}</td>\n </tr>\n <tr>\n <td>{{ data.area | measureFormat: measureAreaUnit.Acres }}</td>\n <td>{{ 'igo.geo.measure.dialog.areaInAcres' | translate }}</td>\n </tr>\n <tr>\n <td>{{ data.area | measureFormat: measureAreaUnit.Hectares }}</td>\n <td>{{ 'igo.geo.measure.dialog.areaInHectares' | translate }}</td>\n </tr>\n <tr>\n <td>{{ 'igo.geo.measure.dialog.perimeterInMeters' | translate }}</td>\n <td>{{ data.perimeter | measureFormat: measureLengthUnit.Meters }}</td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [":host{font-family:Roboto,Helvetica Neue,sans-serif}h3{text-align:center;margin:0}table{width:100%;padding:10px}table tbody tr td:last-child{padding-left:10px}\n"] }]
34
34
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
35
35
  type: Inject,
36
36
  args: [MAT_DIALOG_DATA]
37
37
  }] }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhc3VyZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21lYXN1cmUvbWVhc3VyZXIvbWVhc3VyZXItZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21lYXN1cmUvbWVhc3VyZXIvbWVhc3VyZXItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osY0FBYyxFQUNmLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQWUxRCxNQUFNLE9BQU8sdUJBQXVCO0lBTXpCO0lBQ3lCO0lBTmxDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFFbEMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7SUFFdEMsWUFDUyxTQUFnRCxFQUN2QixJQUF3QjtRQURqRCxjQUFTLEdBQVQsU0FBUyxDQUF1QztRQUN2QixTQUFJLEdBQUosSUFBSSxDQUFvQjtJQUN2RCxDQUFDO0lBRUosU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzt1R0FaVSx1QkFBdUIsOENBT3hCLGVBQWU7MkZBUGQsdUJBQXVCLCtFQzVCcEMsazlFQXdFQSwwTkRuREksY0FBYywrSEFDZCxnQkFBZ0IseUdBQ2hCLElBQUksNEZBQ0osZUFBZSx1RkFDZixpQkFBaUI7OzJGQUdSLHVCQUF1QjtrQkFibkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsSUFBSSxXQUNQO3dCQUNQLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixJQUFJO3dCQUNKLGVBQWU7d0JBQ2YsaUJBQWlCO3FCQUNsQjs7MEJBU0UsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTUFUX0RJQUxPR19EQVRBLFxuICBNYXREaWFsb2dDb250ZW50LFxuICBNYXREaWFsb2dSZWYsXG4gIE1hdERpYWxvZ1RpdGxlXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBNZWFzdXJlQXJlYVVuaXQsIE1lYXN1cmVMZW5ndGhVbml0IH0gZnJvbSAnLi4vc2hhcmVkL21lYXN1cmUuZW51bSc7XG5pbXBvcnQgeyBNZWFzdXJlckRpYWxvZ0RhdGEgfSBmcm9tICcuLi9zaGFyZWQvbWVhc3VyZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1lYXN1cmVGb3JtYXRQaXBlIH0gZnJvbSAnLi9tZWFzdXJlLWZvcm1hdC5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLW1lYXN1cmVyLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnbWVhc3VyZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVhc3VyZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXREaWFsb2dUaXRsZSxcbiAgICBNYXREaWFsb2dDb250ZW50LFxuICAgIE5nSWYsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1lYXN1cmVGb3JtYXRQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTWVhc3VyZXJEaWFsb2dDb21wb25lbnQge1xuICBtZWFzdXJlQXJlYVVuaXQgPSBNZWFzdXJlQXJlYVVuaXQ7XG5cbiAgbWVhc3VyZUxlbmd0aFVuaXQgPSBNZWFzdXJlTGVuZ3RoVW5pdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8TWVhc3VyZXJEaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogTWVhc3VyZXJEaWFsb2dEYXRhXG4gICkge31cblxuICBvbk5vQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxufVxuIiwiPGgzIG1hdC1kaWFsb2ctdGl0bGU+e3sgJ2lnby5nZW8ubWVhc3VyZS5kaWFsb2cudGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oMz5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxuICA8dGFibGUgKm5nSWY9XCJkYXRhLmxlbmd0aCA+IDBcIiBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggY29sc3Bhbj1cIjJcIj5cbiAgICAgICAgICB7eyAnaWdvLmdlby5tZWFzdXJlLmRpYWxvZy5sZW5ndGgudGl0bGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gICAgPHRib2R5PlxuICAgICAgPHRyPlxuICAgICAgICA8dGQ+e3sgZGF0YS5sZW5ndGggfCBtZWFzdXJlRm9ybWF0OiBtZWFzdXJlTGVuZ3RoVW5pdC5NZXRlcnMgfX08L3RkPlxuICAgICAgICA8dGQ+e3sgJ2lnby5nZW8ubWVhc3VyZS5kaWFsb2cubGVuZ3RoSW5NZXRlcnMnIHwgdHJhbnNsYXRlIH19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICB7eyBkYXRhLmxlbmd0aCB8IG1lYXN1cmVGb3JtYXQ6IG1lYXN1cmVMZW5ndGhVbml0LktpbG9tZXRlcnMgfX1cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkPnt7ICdpZ28uZ2VvLm1lYXN1cmUuZGlhbG9nLmxlbmd0aEluS2lsb21ldGVycycgfCB0cmFuc2xhdGUgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPnt7IGRhdGEubGVuZ3RoIHwgbWVhc3VyZUZvcm1hdDogbWVhc3VyZUxlbmd0aFVuaXQuTWlsZXMgfX08L3RkPlxuICAgICAgICA8dGQ+e3sgJ2lnby5nZW8ubWVhc3VyZS5kaWFsb2cubGVuZ3RoSW5NaWxlcycgfCB0cmFuc2xhdGUgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPnt7IGRhdGEubGVuZ3RoIHwgbWVhc3VyZUZvcm1hdDogbWVhc3VyZUxlbmd0aFVuaXQuRmVldCB9fTwvdGQ+XG4gICAgICAgIDx0ZD57eyAnaWdvLmdlby5tZWFzdXJlLmRpYWxvZy5sZW5ndGhJbkZlZXQnIHwgdHJhbnNsYXRlIH19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cblxuICA8dGFibGUgKm5nSWY9XCJkYXRhLmFyZWEgPiAwXCIgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxuICAgIDx0aGVhZD5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoIGNvbHNwYW49XCIyXCI+XG4gICAgICAgICAge3sgJ2lnby5nZW8ubWVhc3VyZS5kaWFsb2cuYXJlYS50aXRsZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgICA8dGJvZHk+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZD57eyBkYXRhLmFyZWEgfCBtZWFzdXJlRm9ybWF0OiBtZWFzdXJlQXJlYVVuaXQuU3F1YXJlTWV0ZXJzIH19PC90ZD5cbiAgICAgICAgPHRkPnt7ICdpZ28uZ2VvLm1lYXN1cmUuZGlhbG9nLmFyZWFJblNxdWFyZU1ldGVycycgfCB0cmFuc2xhdGUgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIHt7IGRhdGEuYXJlYSB8IG1lYXN1cmVGb3JtYXQ6IG1lYXN1cmVBcmVhVW5pdC5TcXVhcmVLaWxvbWV0ZXJzIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICB7eyAnaWdvLmdlby5tZWFzdXJlLmRpYWxvZy5hcmVhSW5TcXVhcmVLaWxvbWV0ZXJzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPnt7IGRhdGEuYXJlYSB8IG1lYXN1cmVGb3JtYXQ6IG1lYXN1cmVBcmVhVW5pdC5TcXVhcmVNaWxlcyB9fTwvdGQ+XG4gICAgICAgIDx0ZD57eyAnaWdvLmdlby5tZWFzdXJlLmRpYWxvZy5hcmVhSW5TcXVhcmVNaWxlcycgfCB0cmFuc2xhdGUgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPnt7IGRhdGEuYXJlYSB8IG1lYXN1cmVGb3JtYXQ6IG1lYXN1cmVBcmVhVW5pdC5BY3JlcyB9fTwvdGQ+XG4gICAgICAgIDx0ZD57eyAnaWdvLmdlby5tZWFzdXJlLmRpYWxvZy5hcmVhSW5BY3JlcycgfCB0cmFuc2xhdGUgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPnt7IGRhdGEuYXJlYSB8IG1lYXN1cmVGb3JtYXQ6IG1lYXN1cmVBcmVhVW5pdC5IZWN0YXJlcyB9fTwvdGQ+XG4gICAgICAgIDx0ZD57eyAnaWdvLmdlby5tZWFzdXJlLmRpYWxvZy5hcmVhSW5IZWN0YXJlcycgfCB0cmFuc2xhdGUgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPnt7ICdpZ28uZ2VvLm1lYXN1cmUuZGlhbG9nLnBlcmltZXRlckluTWV0ZXJzJyB8IHRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgIDx0ZD57eyBkYXRhLnBlcmltZXRlciB8IG1lYXN1cmVGb3JtYXQ6IG1lYXN1cmVMZW5ndGhVbml0Lk1ldGVycyB9fTwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvdGJvZHk+XG4gIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhc3VyZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21lYXN1cmUvbWVhc3VyZXIvbWVhc3VyZXItZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21lYXN1cmUvbWVhc3VyZXIvbWVhc3VyZXItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osY0FBYyxFQUNmLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBZTFELE1BQU0sT0FBTyx1QkFBdUI7SUFNekI7SUFDeUI7SUFObEMsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQUVsQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUV0QyxZQUNTLFNBQWdELEVBQ3ZCLElBQXdCO1FBRGpELGNBQVMsR0FBVCxTQUFTLENBQXVDO1FBQ3ZCLFNBQUksR0FBSixJQUFJLENBQW9CO0lBQ3ZELENBQUM7SUFFSixTQUFTO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO3VHQVpVLHVCQUF1Qiw4Q0FPeEIsZUFBZTsyRkFQZCx1QkFBdUIsK0VDNUJwQyxrOUVBd0VBLDBORG5ESSxjQUFjLCtIQUNkLGdCQUFnQix5R0FDaEIsSUFBSSw0RkFDSixpQkFBaUIsdUZBQ2pCLGlCQUFpQjs7MkZBR1IsdUJBQXVCO2tCQWJuQyxTQUFTOytCQUNFLHFCQUFxQixjQUduQixJQUFJLFdBQ1A7d0JBQ1AsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLElBQUk7d0JBQ0osaUJBQWlCO3dCQUNqQixpQkFBaUI7cUJBQ2xCOzswQkFTRSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBNQVRfRElBTE9HX0RBVEEsXG4gIE1hdERpYWxvZ0NvbnRlbnQsXG4gIE1hdERpYWxvZ1JlZixcbiAgTWF0RGlhbG9nVGl0bGVcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcblxuaW1wb3J0IHsgTWVhc3VyZUFyZWFVbml0LCBNZWFzdXJlTGVuZ3RoVW5pdCB9IGZyb20gJy4uL3NoYXJlZC9tZWFzdXJlLmVudW0nO1xuaW1wb3J0IHsgTWVhc3VyZXJEaWFsb2dEYXRhIH0gZnJvbSAnLi4vc2hhcmVkL21lYXN1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNZWFzdXJlRm9ybWF0UGlwZSB9IGZyb20gJy4vbWVhc3VyZS1mb3JtYXQucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1tZWFzdXJlci1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJ21lYXN1cmVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lYXN1cmVyLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0RGlhbG9nVGl0bGUsXG4gICAgTWF0RGlhbG9nQ29udGVudCxcbiAgICBOZ0lmLFxuICAgIElnb0xhbmd1YWdlTW9kdWxlLFxuICAgIE1lYXN1cmVGb3JtYXRQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTWVhc3VyZXJEaWFsb2dDb21wb25lbnQge1xuICBtZWFzdXJlQXJlYVVuaXQgPSBNZWFzdXJlQXJlYVVuaXQ7XG5cbiAgbWVhc3VyZUxlbmd0aFVuaXQgPSBNZWFzdXJlTGVuZ3RoVW5pdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8TWVhc3VyZXJEaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogTWVhc3VyZXJEaWFsb2dEYXRhXG4gICkge31cblxuICBvbk5vQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxufVxuIiwiPGgzIG1hdC1kaWFsb2ctdGl0bGU+e3sgJ2lnby5nZW8ubWVhc3VyZS5kaWFsb2cudGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oMz5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxuICA8dGFibGUgKm5nSWY9XCJkYXRhLmxlbmd0aCA+IDBcIiBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggY29sc3Bhbj1cIjJcIj5cbiAgICAgICAgICB7eyAnaWdvLmdlby5tZWFzdXJlLmRpYWxvZy5sZW5ndGgudGl0bGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gICAgPHRib2R5PlxuICAgICAgPHRyPlxuICAgICAgICA8dGQ+e3sgZGF0YS5sZW5ndGggfCBtZWFzdXJlRm9ybWF0OiBtZWFzdXJlTGVuZ3RoVW5pdC5NZXRlcnMgfX08L3RkPlxuICAgICAgICA8dGQ+e3sgJ2lnby5nZW8ubWVhc3VyZS5kaWFsb2cubGVuZ3RoSW5NZXRlcnMnIHwgdHJhbnNsYXRlIH19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICB7eyBkYXRhLmxlbmd0aCB8IG1lYXN1cmVGb3JtYXQ6IG1lYXN1cmVMZW5ndGhVbml0LktpbG9tZXRlcnMgfX1cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkPnt7ICdpZ28uZ2VvLm1lYXN1cmUuZGlhbG9nLmxlbmd0aEluS2lsb21ldGVycycgfCB0cmFuc2xhdGUgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPnt7IGRhdGEubGVuZ3RoIHwgbWVhc3VyZUZvcm1hdDogbWVhc3VyZUxlbmd0aFVuaXQuTWlsZXMgfX08L3RkPlxuICAgICAgICA8dGQ+e3sgJ2lnby5nZW8ubWVhc3VyZS5kaWFsb2cubGVuZ3RoSW5NaWxlcycgfCB0cmFuc2xhdGUgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPnt7IGRhdGEubGVuZ3RoIHwgbWVhc3VyZUZvcm1hdDogbWVhc3VyZUxlbmd0aFVuaXQuRmVldCB9fTwvdGQ+XG4gICAgICAgIDx0ZD57eyAnaWdvLmdlby5tZWFzdXJlLmRpYWxvZy5sZW5ndGhJbkZlZXQnIHwgdHJhbnNsYXRlIH19PC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cblxuICA8dGFibGUgKm5nSWY9XCJkYXRhLmFyZWEgPiAwXCIgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxuICAgIDx0aGVhZD5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoIGNvbHNwYW49XCIyXCI+XG4gICAgICAgICAge3sgJ2lnby5nZW8ubWVhc3VyZS5kaWFsb2cuYXJlYS50aXRsZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgICA8dGJvZHk+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZD57eyBkYXRhLmFyZWEgfCBtZWFzdXJlRm9ybWF0OiBtZWFzdXJlQXJlYVVuaXQuU3F1YXJlTWV0ZXJzIH19PC90ZD5cbiAgICAgICAgPHRkPnt7ICdpZ28uZ2VvLm1lYXN1cmUuZGlhbG9nLmFyZWFJblNxdWFyZU1ldGVycycgfCB0cmFuc2xhdGUgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIHt7IGRhdGEuYXJlYSB8IG1lYXN1cmVGb3JtYXQ6IG1lYXN1cmVBcmVhVW5pdC5TcXVhcmVLaWxvbWV0ZXJzIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICB7eyAnaWdvLmdlby5tZWFzdXJlLmRpYWxvZy5hcmVhSW5TcXVhcmVLaWxvbWV0ZXJzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPnt7IGRhdGEuYXJlYSB8IG1lYXN1cmVGb3JtYXQ6IG1lYXN1cmVBcmVhVW5pdC5TcXVhcmVNaWxlcyB9fTwvdGQ+XG4gICAgICAgIDx0ZD57eyAnaWdvLmdlby5tZWFzdXJlLmRpYWxvZy5hcmVhSW5TcXVhcmVNaWxlcycgfCB0cmFuc2xhdGUgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPnt7IGRhdGEuYXJlYSB8IG1lYXN1cmVGb3JtYXQ6IG1lYXN1cmVBcmVhVW5pdC5BY3JlcyB9fTwvdGQ+XG4gICAgICAgIDx0ZD57eyAnaWdvLmdlby5tZWFzdXJlLmRpYWxvZy5hcmVhSW5BY3JlcycgfCB0cmFuc2xhdGUgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPnt7IGRhdGEuYXJlYSB8IG1lYXN1cmVGb3JtYXQ6IG1lYXN1cmVBcmVhVW5pdC5IZWN0YXJlcyB9fTwvdGQ+XG4gICAgICAgIDx0ZD57eyAnaWdvLmdlby5tZWFzdXJlLmRpYWxvZy5hcmVhSW5IZWN0YXJlcycgfCB0cmFuc2xhdGUgfX08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRkPnt7ICdpZ28uZ2VvLm1lYXN1cmUuZGlhbG9nLnBlcmltZXRlckluTWV0ZXJzJyB8IHRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgIDx0ZD57eyBkYXRhLnBlcmltZXRlciB8IG1lYXN1cmVGb3JtYXQ6IG1lYXN1cmVMZW5ndGhVbml0Lk1ldGVycyB9fTwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvdGJvZHk+XG4gIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==