@igo2/geo 1.13.0 → 1.13.2

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 (466) 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/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +2 -2
  7. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +2 -2
  8. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +2 -2
  9. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +1 -1
  10. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +2 -2
  11. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +2 -2
  12. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +2 -2
  13. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +1 -1
  14. package/esm2020/lib/catalog/catalog.module.mjs +1 -1
  15. package/esm2020/lib/catalog/index.mjs +1 -1
  16. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +1 -1
  17. package/esm2020/lib/catalog/shared/catalog.enum.mjs +1 -1
  18. package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
  19. package/esm2020/lib/catalog/shared/catalog.service.mjs +1 -1
  20. package/esm2020/lib/catalog/shared/index.mjs +1 -1
  21. package/esm2020/lib/datasource/datasource.module.mjs +1 -1
  22. package/esm2020/lib/datasource/index.mjs +1 -1
  23. package/esm2020/lib/datasource/shared/capabilities.service.mjs +22 -17
  24. package/esm2020/lib/datasource/shared/datasource.service.mjs +1 -1
  25. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  26. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  27. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
  28. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
  29. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
  30. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +1 -1
  31. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  32. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +1 -1
  33. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +1 -1
  34. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  35. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +1 -1
  36. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  37. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
  38. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  39. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
  40. package/esm2020/lib/datasource/shared/datasources/index.mjs +1 -1
  41. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
  42. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
  43. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
  44. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
  45. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
  46. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
  47. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  48. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
  49. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  50. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  51. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  52. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
  53. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +1 -1
  54. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  55. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  56. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
  57. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  58. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
  59. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  60. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
  61. package/esm2020/lib/datasource/shared/index.mjs +1 -1
  62. package/esm2020/lib/datasource/shared/options/index.mjs +1 -1
  63. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +1 -1
  64. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +1 -1
  65. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +1 -1
  66. package/esm2020/lib/datasource/shared/options/options.service.mjs +1 -1
  67. package/esm2020/lib/datasource/utils/esri-style-generator.mjs +1 -1
  68. package/esm2020/lib/datasource/utils/index.mjs +1 -1
  69. package/esm2020/lib/datasource/utils/tilegrid.mjs +1 -1
  70. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +2 -2
  71. package/esm2020/lib/directions/directions-buttons/index.mjs +1 -1
  72. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +2 -2
  73. package/esm2020/lib/directions/directions-inputs/index.mjs +1 -1
  74. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +2 -2
  75. package/esm2020/lib/directions/directions-results/index.mjs +1 -1
  76. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
  77. package/esm2020/lib/directions/directions-sources/directions-source.mjs +1 -1
  78. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
  79. package/esm2020/lib/directions/directions-sources/index.mjs +1 -1
  80. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
  81. package/esm2020/lib/directions/directions.component.mjs +2 -2
  82. package/esm2020/lib/directions/directions.module.mjs +1 -1
  83. package/esm2020/lib/directions/index.mjs +1 -1
  84. package/esm2020/lib/directions/shared/directions-source.service.mjs +1 -1
  85. package/esm2020/lib/directions/shared/directions.enum.mjs +1 -1
  86. package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
  87. package/esm2020/lib/directions/shared/directions.service.mjs +1 -1
  88. package/esm2020/lib/directions/shared/directions.utils.mjs +1 -1
  89. package/esm2020/lib/directions/shared/index.mjs +1 -1
  90. package/esm2020/lib/directions/shared/store.mjs +1 -1
  91. package/esm2020/lib/download/download-button/download-button.component.mjs +2 -2
  92. package/esm2020/lib/download/download-button/index.mjs +1 -1
  93. package/esm2020/lib/download/download.module.mjs +1 -1
  94. package/esm2020/lib/download/index.mjs +1 -1
  95. package/esm2020/lib/download/shared/download.interface.mjs +1 -1
  96. package/esm2020/lib/download/shared/download.service.mjs +1 -1
  97. package/esm2020/lib/download/shared/index.mjs +1 -1
  98. package/esm2020/lib/draw/draw/draw-popup.component.mjs +5 -5
  99. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +2 -2
  100. package/esm2020/lib/draw/draw/draw.component.mjs +384 -273
  101. package/esm2020/lib/draw/draw/draw.module.mjs +19 -15
  102. package/esm2020/lib/draw/drawingTool.module.mjs +1 -1
  103. package/esm2020/lib/draw/index.mjs +1 -1
  104. package/esm2020/lib/draw/shared/draw-icon.service.mjs +1 -1
  105. package/esm2020/lib/draw/shared/draw-style.service.mjs +35 -18
  106. package/esm2020/lib/draw/shared/draw.enum.mjs +1 -1
  107. package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
  108. package/esm2020/lib/draw/shared/draw.utils.mjs +1 -1
  109. package/esm2020/lib/draw/shared/index.mjs +1 -1
  110. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +52 -27
  111. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +1 -1
  112. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +1 -1
  113. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +2 -2
  114. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +1 -1
  115. package/esm2020/lib/feature/feature.module.mjs +1 -1
  116. package/esm2020/lib/feature/index.mjs +1 -1
  117. package/esm2020/lib/feature/shared/feature.enums.mjs +1 -1
  118. package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
  119. package/esm2020/lib/feature/shared/feature.utils.mjs +4 -5
  120. package/esm2020/lib/feature/shared/index.mjs +1 -1
  121. package/esm2020/lib/feature/shared/store.mjs +14 -2
  122. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  123. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
  124. package/esm2020/lib/feature/shared/strategies/index.mjs +1 -1
  125. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +1 -1
  126. package/esm2020/lib/feature/shared/strategies/loading.mjs +1 -1
  127. package/esm2020/lib/feature/shared/strategies/selection.mjs +1 -1
  128. package/esm2020/lib/feature/shared/strategies.utils.mjs +1 -1
  129. package/esm2020/lib/filter/filter.module.mjs +2 -2
  130. package/esm2020/lib/filter/index.mjs +1 -1
  131. package/esm2020/lib/filter/ogc-filter-button/index.mjs +1 -1
  132. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +2 -2
  133. package/esm2020/lib/filter/ogc-filter-form/index.mjs +1 -1
  134. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +3 -3
  135. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +1 -1
  136. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +3 -3
  137. package/esm2020/lib/filter/ogc-filter-time/index.mjs +1 -1
  138. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +2 -2
  139. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +3 -3
  140. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +1 -1
  141. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +2 -2
  142. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +1 -1
  143. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +44 -39
  144. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +1 -1
  145. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +1 -1
  146. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +23 -10
  147. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +1 -1
  148. package/esm2020/lib/filter/shared/index.mjs +1 -1
  149. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +1 -1
  150. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +1 -1
  151. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  152. package/esm2020/lib/filter/shared/ogc-filter.mjs +1 -1
  153. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +1 -1
  154. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +1 -1
  155. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +1 -1
  156. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +1 -1
  157. package/esm2020/lib/filter/shared/time-filter.enum.mjs +1 -1
  158. package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
  159. package/esm2020/lib/filter/shared/time-filter.service.mjs +1 -1
  160. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +1 -1
  161. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +2 -2
  162. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +1 -1
  163. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +2 -2
  164. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +1 -1
  165. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -2
  166. package/esm2020/lib/filter/time-filter-button/index.mjs +1 -1
  167. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
  168. package/esm2020/lib/filter/time-filter-form/index.mjs +1 -1
  169. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +2 -2
  170. package/esm2020/lib/filter/time-filter-item/index.mjs +1 -1
  171. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
  172. package/esm2020/lib/filter/time-filter-list/index.mjs +1 -1
  173. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +1 -1
  174. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
  175. package/esm2020/lib/geo.module.mjs +1 -1
  176. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +1 -1
  177. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +2 -2
  178. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +1 -1
  179. package/esm2020/lib/geometry/geometry.module.mjs +1 -1
  180. package/esm2020/lib/geometry/index.mjs +1 -1
  181. package/esm2020/lib/geometry/shared/controls/draw.mjs +1 -1
  182. package/esm2020/lib/geometry/shared/controls/index.mjs +1 -1
  183. package/esm2020/lib/geometry/shared/controls/modify.mjs +1 -1
  184. package/esm2020/lib/geometry/shared/controls/slice.mjs +1 -1
  185. package/esm2020/lib/geometry/shared/geometry.errors.mjs +1 -1
  186. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  187. package/esm2020/lib/geometry/shared/geometry.utils.mjs +1 -1
  188. package/esm2020/lib/geometry/shared/index.mjs +1 -1
  189. package/esm2020/lib/import-export/export-button/export-button.component.mjs +2 -2
  190. package/esm2020/lib/import-export/export-button/index.mjs +1 -1
  191. package/esm2020/lib/import-export/import-export/import-export.component.mjs +98 -68
  192. package/esm2020/lib/import-export/import-export/index.mjs +1 -1
  193. package/esm2020/lib/import-export/import-export.module.mjs +6 -3
  194. package/esm2020/lib/import-export/index.mjs +1 -1
  195. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +1 -1
  196. package/esm2020/lib/import-export/shared/export.errors.mjs +1 -1
  197. package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
  198. package/esm2020/lib/import-export/shared/export.service.mjs +1 -1
  199. package/esm2020/lib/import-export/shared/export.type.mjs +1 -1
  200. package/esm2020/lib/import-export/shared/export.utils.mjs +1 -1
  201. package/esm2020/lib/import-export/shared/import.errors.mjs +1 -1
  202. package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
  203. package/esm2020/lib/import-export/shared/import.service.mjs +1 -1
  204. package/esm2020/lib/import-export/shared/import.utils.mjs +3 -2
  205. package/esm2020/lib/import-export/shared/index.mjs +1 -1
  206. package/esm2020/lib/import-export/style-list/index.mjs +1 -1
  207. package/esm2020/lib/import-export/style-list/style-list.interface.mjs +1 -1
  208. package/esm2020/lib/import-export/style-list/style-list.module.mjs +1 -1
  209. package/esm2020/lib/import-export/style-list/style-list.provider.mjs +1 -1
  210. package/esm2020/lib/import-export/style-list/style-list.service.mjs +1 -1
  211. package/esm2020/lib/layer/index.mjs +2 -1
  212. package/esm2020/lib/layer/layer-item/index.mjs +1 -1
  213. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +2 -2
  214. package/esm2020/lib/layer/layer-legend/index.mjs +1 -1
  215. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +28 -22
  216. package/esm2020/lib/layer/layer-legend-item/index.mjs +1 -1
  217. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +2 -2
  218. package/esm2020/lib/layer/layer-legend-list/index.mjs +1 -1
  219. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +1 -1
  220. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +2 -2
  221. package/esm2020/lib/layer/layer-list/index.mjs +1 -1
  222. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +1 -1
  223. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +47 -28
  224. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +1 -1
  225. package/esm2020/lib/layer/layer-list-tool/index.mjs +1 -1
  226. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +5 -5
  227. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +1 -1
  228. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
  229. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
  230. package/esm2020/lib/layer/layer.module.mjs +19 -7
  231. package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
  232. package/esm2020/lib/layer/shared/index.mjs +1 -1
  233. package/esm2020/lib/layer/shared/layer.enums.mjs +1 -1
  234. package/esm2020/lib/layer/shared/layer.service.mjs +1 -1
  235. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  236. package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
  237. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  238. package/esm2020/lib/layer/shared/layers/image-layer.mjs +1 -1
  239. package/esm2020/lib/layer/shared/layers/index.mjs +1 -1
  240. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +1 -1
  241. package/esm2020/lib/layer/shared/layers/layer.mjs +1 -1
  242. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  243. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +1 -1
  244. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  245. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +4 -1
  246. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  247. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
  248. package/esm2020/lib/layer/shared/style.service.mjs +1 -1
  249. package/esm2020/lib/layer/shared/vector-style.interface.mjs +1 -1
  250. package/esm2020/lib/layer/style-modal/index.mjs +2 -0
  251. package/esm2020/lib/layer/style-modal/style-modal.component.mjs +288 -0
  252. package/esm2020/lib/layer/track-feature-button/index.mjs +1 -1
  253. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +2 -2
  254. package/esm2020/lib/layer/utils/image-watcher.mjs +1 -1
  255. package/esm2020/lib/layer/utils/index.mjs +1 -1
  256. package/esm2020/lib/layer/utils/layer.utils.mjs +1 -1
  257. package/esm2020/lib/layer/utils/outputLegend.mjs +1 -1
  258. package/esm2020/lib/layer/utils/tile-watcher.mjs +1 -1
  259. package/esm2020/lib/layer/utils/vector-watcher.mjs +1 -1
  260. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +1 -1
  261. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +2 -2
  262. package/esm2020/lib/map/baselayers-switcher/index.mjs +1 -1
  263. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +2 -2
  264. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +21 -18
  265. package/esm2020/lib/map/geolocate-button/index.mjs +1 -1
  266. package/esm2020/lib/map/index.mjs +1 -1
  267. package/esm2020/lib/map/info-section/index.mjs +1 -1
  268. package/esm2020/lib/map/info-section/info-section.component.mjs +2 -2
  269. package/esm2020/lib/map/map-browser/index.mjs +1 -1
  270. package/esm2020/lib/map/map-browser/map-browser.component.mjs +2 -2
  271. package/esm2020/lib/map/map-center/index.mjs +1 -1
  272. package/esm2020/lib/map/map-center/map-center.component.mjs +2 -2
  273. package/esm2020/lib/map/map.module.mjs +1 -1
  274. package/esm2020/lib/map/menu-button/index.mjs +1 -1
  275. package/esm2020/lib/map/menu-button/menu-button.component.mjs +2 -2
  276. package/esm2020/lib/map/offline-button/index.mjs +1 -1
  277. package/esm2020/lib/map/offline-button/offline-button.component.mjs +2 -2
  278. package/esm2020/lib/map/rotation-button/index.mjs +1 -1
  279. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +41 -62
  280. package/esm2020/lib/map/shared/controllers/controller.mjs +1 -1
  281. package/esm2020/lib/map/shared/controllers/geolocation.mjs +1 -1
  282. package/esm2020/lib/map/shared/controllers/index.mjs +1 -1
  283. package/esm2020/lib/map/shared/controllers/view.mjs +11 -2
  284. package/esm2020/lib/map/shared/hover-feature.directive.mjs +10 -13
  285. package/esm2020/lib/map/shared/index.mjs +1 -1
  286. package/esm2020/lib/map/shared/linkedLayers.utils.mjs +3 -3
  287. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +1 -1
  288. package/esm2020/lib/map/shared/map.enums.mjs +1 -1
  289. package/esm2020/lib/map/shared/map.interface.mjs +1 -1
  290. package/esm2020/lib/map/shared/map.mjs +2 -1
  291. package/esm2020/lib/map/shared/map.service.mjs +1 -1
  292. package/esm2020/lib/map/shared/map.utils.mjs +1 -1
  293. package/esm2020/lib/map/shared/mapOffline.directive.mjs +1 -1
  294. package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
  295. package/esm2020/lib/map/shared/projection.service.mjs +1 -1
  296. package/esm2020/lib/map/shared/projection.utils.mjs +1 -1
  297. package/esm2020/lib/map/swipe-control/index.mjs +1 -1
  298. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +2 -2
  299. package/esm2020/lib/map/utils/layer-watcher.mjs +1 -1
  300. package/esm2020/lib/map/wake-lock-button/index.mjs +1 -1
  301. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +2 -2
  302. package/esm2020/lib/map/zoom-button/index.mjs +1 -1
  303. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +2 -2
  304. package/esm2020/lib/measure/index.mjs +1 -1
  305. package/esm2020/lib/measure/measure.module.mjs +1 -1
  306. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +1 -1
  307. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +2 -2
  308. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +2 -2
  309. package/esm2020/lib/measure/measurer/measurer.component.mjs +2 -2
  310. package/esm2020/lib/measure/measurer/measurer.module.mjs +1 -1
  311. package/esm2020/lib/measure/shared/index.mjs +1 -1
  312. package/esm2020/lib/measure/shared/measure.enum.mjs +1 -1
  313. package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
  314. package/esm2020/lib/measure/shared/measure.utils.mjs +1 -1
  315. package/esm2020/lib/metadata/index.mjs +1 -1
  316. package/esm2020/lib/metadata/metadata-button/index.mjs +1 -1
  317. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +3 -3
  318. package/esm2020/lib/metadata/metadata.module.mjs +1 -1
  319. package/esm2020/lib/metadata/shared/index.mjs +1 -1
  320. package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
  321. package/esm2020/lib/metadata/shared/metadata.service.mjs +1 -1
  322. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +76 -0
  323. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +1 -1
  324. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  325. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +7 -1
  326. package/esm2020/lib/offline/geoDB/index.mjs +2 -1
  327. package/esm2020/lib/offline/index.mjs +1 -1
  328. package/esm2020/lib/offline/shared/geo-network.service.mjs +1 -1
  329. package/esm2020/lib/offline/shared/index.mjs +1 -1
  330. package/esm2020/lib/overlay/index.mjs +1 -1
  331. package/esm2020/lib/overlay/overlay.module.mjs +1 -1
  332. package/esm2020/lib/overlay/shared/index.mjs +1 -1
  333. package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +1 -1
  334. package/esm2020/lib/overlay/shared/overlay.directive.mjs +1 -1
  335. package/esm2020/lib/overlay/shared/overlay.enum.mjs +1 -1
  336. package/esm2020/lib/overlay/shared/overlay.mjs +1 -1
  337. package/esm2020/lib/overlay/shared/overlay.service.mjs +1 -1
  338. package/esm2020/lib/overlay/shared/overlay.utils.mjs +1 -1
  339. package/esm2020/lib/print/index.mjs +1 -1
  340. package/esm2020/lib/print/print/print.component.mjs +2 -2
  341. package/esm2020/lib/print/print-form/index.mjs +1 -1
  342. package/esm2020/lib/print/print-form/print-form.component.mjs +2 -2
  343. package/esm2020/lib/print/print.module.mjs +1 -1
  344. package/esm2020/lib/print/shared/index.mjs +1 -1
  345. package/esm2020/lib/print/shared/print.interface.mjs +1 -1
  346. package/esm2020/lib/print/shared/print.service.mjs +1 -1
  347. package/esm2020/lib/print/shared/print.type.mjs +1 -1
  348. package/esm2020/lib/query/index.mjs +1 -1
  349. package/esm2020/lib/query/query.module.mjs +1 -1
  350. package/esm2020/lib/query/shared/index.mjs +1 -1
  351. package/esm2020/lib/query/shared/query-search-source.mjs +1 -1
  352. package/esm2020/lib/query/shared/query-search-source.providers.mjs +1 -1
  353. package/esm2020/lib/query/shared/query.directive.mjs +1 -1
  354. package/esm2020/lib/query/shared/query.enums.mjs +1 -1
  355. package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
  356. package/esm2020/lib/query/shared/query.service.mjs +4 -1
  357. package/esm2020/lib/query/shared/query.utils.mjs +1 -1
  358. package/esm2020/lib/search/index.mjs +1 -1
  359. package/esm2020/lib/search/search-bar/search-bar.component.mjs +16 -14
  360. package/esm2020/lib/search/search-bar/search-bar.module.mjs +1 -1
  361. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +1 -1
  362. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +2 -2
  363. package/esm2020/lib/search/search-results/search-results-item.component.mjs +2 -2
  364. package/esm2020/lib/search/search-results/search-results.component.mjs +2 -2
  365. package/esm2020/lib/search/search-results/search-results.module.mjs +1 -1
  366. package/esm2020/lib/search/search-selector/search-selector.component.mjs +2 -2
  367. package/esm2020/lib/search/search-selector/search-selector.module.mjs +1 -1
  368. package/esm2020/lib/search/search-settings/search-settings.component.mjs +2 -2
  369. package/esm2020/lib/search/search-settings/search-settings.module.mjs +1 -1
  370. package/esm2020/lib/search/search.module.mjs +1 -1
  371. package/esm2020/lib/search/shared/index.mjs +1 -1
  372. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +1 -1
  373. package/esm2020/lib/search/shared/search-source-service.providers.mjs +1 -1
  374. package/esm2020/lib/search/shared/search-source.service.mjs +1 -1
  375. package/esm2020/lib/search/shared/search.enums.mjs +1 -1
  376. package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
  377. package/esm2020/lib/search/shared/search.service.mjs +1 -1
  378. package/esm2020/lib/search/shared/search.utils.mjs +13 -1
  379. package/esm2020/lib/search/shared/sources/cadastre.mjs +1 -1
  380. package/esm2020/lib/search/shared/sources/cadastre.providers.mjs +1 -1
  381. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  382. package/esm2020/lib/search/shared/sources/coordinates.mjs +1 -1
  383. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +1 -1
  384. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  385. package/esm2020/lib/search/shared/sources/icherche.mjs +1 -1
  386. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +1 -1
  387. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  388. package/esm2020/lib/search/shared/sources/ilayer.mjs +1 -1
  389. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +1 -1
  390. package/esm2020/lib/search/shared/sources/index.mjs +1 -1
  391. package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
  392. package/esm2020/lib/search/shared/sources/nominatim.mjs +2 -2
  393. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +1 -1
  394. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
  395. package/esm2020/lib/search/shared/sources/source.mjs +1 -1
  396. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  397. package/esm2020/lib/search/shared/sources/storedqueries.mjs +1 -1
  398. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
  399. package/esm2020/lib/toast/index.mjs +1 -1
  400. package/esm2020/lib/toast/toast.component.mjs +2 -2
  401. package/esm2020/lib/toast/toast.module.mjs +1 -1
  402. package/esm2020/lib/utils/commonVectorStyle.interface.mjs +1 -1
  403. package/esm2020/lib/utils/commonVectorStyle.mjs +1 -1
  404. package/esm2020/lib/utils/googleLinks.mjs +1 -1
  405. package/esm2020/lib/utils/id-generator.mjs +1 -1
  406. package/esm2020/lib/utils/index.mjs +1 -1
  407. package/esm2020/lib/utils/osmLinks.mjs +1 -1
  408. package/esm2020/lib/wkt/index.mjs +1 -1
  409. package/esm2020/lib/wkt/shared/index.mjs +1 -1
  410. package/esm2020/lib/wkt/shared/wkt.service.mjs +15 -15
  411. package/esm2020/lib/wkt/wkt.module.mjs +1 -1
  412. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +2 -2
  413. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +1 -1
  414. package/esm2020/lib/workspace/confirmation-popup/index.mjs +1 -1
  415. package/esm2020/lib/workspace/index.mjs +1 -1
  416. package/esm2020/lib/workspace/shared/edition-workspace.mjs +8 -6
  417. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +9 -4
  418. package/esm2020/lib/workspace/shared/feature-workspace.mjs +1 -1
  419. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +1 -1
  420. package/esm2020/lib/workspace/shared/index.mjs +1 -1
  421. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +1 -1
  422. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +1 -1
  423. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +1 -1
  424. package/esm2020/lib/workspace/shared/workspace.utils.mjs +1 -1
  425. package/esm2020/lib/workspace/widgets/index.mjs +1 -1
  426. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
  427. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +1 -1
  428. package/esm2020/lib/workspace/widgets/widgets.mjs +1 -1
  429. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +1 -1
  430. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +1 -1
  431. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +1 -1
  432. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +1 -1
  433. package/esm2020/lib/workspace/workspace.module.mjs +1 -1
  434. package/esm2020/public_api.mjs +1 -1
  435. package/fesm2015/igo2-geo.mjs +4313 -3672
  436. package/fesm2015/igo2-geo.mjs.map +1 -1
  437. package/fesm2020/igo2-geo.mjs +4530 -3916
  438. package/fesm2020/igo2-geo.mjs.map +1 -1
  439. package/lib/draw/draw/draw-popup.component.d.ts +0 -3
  440. package/lib/draw/draw/draw.component.d.ts +71 -50
  441. package/lib/draw/draw/draw.module.d.ts +13 -10
  442. package/lib/draw/shared/draw-style.service.d.ts +7 -1
  443. package/lib/draw/shared/draw.interface.d.ts +4 -0
  444. package/lib/feature/feature-details/feature-details.component.d.ts +4 -0
  445. package/lib/feature/shared/store.d.ts +1 -0
  446. package/lib/import-export/import-export/import-export.component.d.ts +2 -0
  447. package/lib/import-export/import-export.module.d.ts +1 -1
  448. package/lib/layer/index.d.ts +1 -0
  449. package/lib/layer/layer-list/layer-list.component.d.ts +3 -4
  450. package/lib/layer/layer.module.d.ts +20 -18
  451. package/lib/layer/shared/layers/layer.interface.d.ts +1 -0
  452. package/lib/layer/shared/layers/vector-layer.d.ts +2 -1
  453. package/lib/layer/style-modal/index.d.ts +1 -0
  454. package/lib/layer/style-modal/style-modal.component.d.ts +42 -0
  455. package/lib/map/geolocate-button/geolocate-button.component.d.ts +3 -1
  456. package/lib/map/rotation-button/rotation-button.component.d.ts +11 -12
  457. package/lib/map/shared/controllers/view.d.ts +6 -1
  458. package/lib/map/shared/hover-feature.directive.d.ts +0 -5
  459. package/lib/map/shared/map.interface.d.ts +2 -1
  460. package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +13 -0
  461. package/lib/offline/geoDB/geoDB.interface.d.ts +10 -1
  462. package/lib/offline/geoDB/geoDB.service.d.ts +3 -1
  463. package/lib/offline/geoDB/index.d.ts +1 -0
  464. package/ngcc.config.js +3 -3
  465. package/package.json +8 -8
  466. package/style/geo.theming.scss +12 -12
@@ -202,4 +202,4 @@ export class WMSDataSource extends DataSource {
202
202
  }
203
203
  onUnwatch() { }
204
204
  }
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXMtZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGdCQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBRWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFLMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCx3QkFBd0IsRUFDekIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsTUFBTSxPQUFPLGFBQWMsU0FBUSxVQUFVO0lBc0MzQyxZQUNTLE9BQTZCLEVBQzFCLFVBQXNCO1FBRWhDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhSLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFKekIsZ0JBQVcsR0FBdUMsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFPeEYsTUFBTSxZQUFZLEdBQVEsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUV6QyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxZQUFZLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUN2QixZQUFZLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztRQUNsQyxZQUFZLENBQUMsY0FBYyxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFF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dEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xTb3VyY2VJbWFnZVdNUyBmcm9tICdvbC9zb3VyY2UvSW1hZ2VXTVMnO1xuXG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi9kYXRhc291cmNlJztcbmltcG9ydCB7IExlZ2VuZCB9IGZyb20gJy4vZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV01TRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3dtcy1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXRlNTZXJ2aWNlIH0gZnJvbSAnLi93ZnMuc2VydmljZSc7XG5cbmltcG9ydCB7IE9nY0ZpbHRlcldyaXRlciB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlcic7XG5pbXBvcnQgeyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMsIE9nY0ZpbHRlcnNPcHRpb25zLCBPZ2NGaWx0ZXJEdXJpbmdPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBRdWVyeUh0bWxUYXJnZXQgfSBmcm9tICcuLi8uLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkuZW51bXMnO1xuaW1wb3J0IHtcbiAgZm9ybWF0V0ZTUXVlcnlTdHJpbmcsXG4gIGNoZWNrV2ZzUGFyYW1zLFxuICBkZWZhdWx0RmllbGROYW1lR2VvbWV0cnlcbn0gZnJvbSAnLi93bXMtd2ZzLnV0aWxzJztcblxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XG5pbXBvcnQgeyBMZWdlbmRNYXBWaWV3T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucywgVGltZUZpbHRlck9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvc2hhcmVkL3RpbWUtZmlsdGVyLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBXTVNEYXRhU291cmNlIGV4dGVuZHMgRGF0YVNvdXJjZSB7XG4gIHB1YmxpYyBvbDogb2xTb3VyY2VJbWFnZVdNUztcblxuICBnZXQgcGFyYW1zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5wYXJhbXMgYXMgYW55O1xuICB9XG5cbiAgZ2V0IHF1ZXJ5VGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucyBhcyBhbnkpLnF1ZXJ5VGl0bGVcbiAgICAgID8gKHRoaXMub3B0aW9ucyBhcyBhbnkpLnF1ZXJ5VGl0bGVcbiAgICAgIDogJ3RpdGxlJztcbiAgfVxuXG4gIGdldCBtYXBMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5vcHRpb25zIGFzIGFueSkubWFwTGFiZWw7XG4gIH1cblxuICBnZXQgcXVlcnlIdG1sVGFyZ2V0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLm9wdGlvbnMgYXMgYW55KS5xdWVyeUh0bWxUYXJnZXRcbiAgICAgID8gKHRoaXMub3B0aW9ucyBhcyBhbnkpLnF1ZXJ5SHRtbFRhcmdldFxuICAgICAgOiBRdWVyeUh0bWxUYXJnZXQuQkxBTks7XG4gIH1cblxuICBzZXQgb2djRmlsdGVycyh2YWx1ZTogT2djRmlsdGVyc09wdGlvbnMpIHtcbiAgICAodGhpcy5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucykub2djRmlsdGVycyA9IHZhbHVlO1xuICB9XG4gIGdldCBvZ2NGaWx0ZXJzKCk6IE9nY0ZpbHRlcnNPcHRpb25zIHtcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucyBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpLm9nY0ZpbHRlcnM7XG4gIH1cblxuICBzZXQgdGltZUZpbHRlcih2YWx1ZTogVGltZUZpbHRlck9wdGlvbnMgKSB7XG4gICAgKHRoaXMub3B0aW9ucyBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zKS50aW1lRmlsdGVyID0gdmFsdWU7XG4gIH1cbiAgZ2V0IHRpbWVGaWx0ZXIoKTogVGltZUZpbHRlck9wdGlvbnMge1xuICAgIHJldHVybiAodGhpcy5vcHRpb25zIGFzIFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpLnRpbWVGaWx0ZXI7XG4gIH1cbiAgcmVhZG9ubHkgdGltZUZpbHRlciQ6IEJlaGF2aW9yU3ViamVjdDxUaW1lRmlsdGVyT3B0aW9ucz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zLFxuICAgIHByb3RlY3RlZCB3ZnNTZXJ2aWNlOiBXRlNTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIGNvbnN0IHNvdXJjZVBhcmFtczogYW55ID0gb3B0aW9ucy5wYXJhbXM7XG5cbiAgICBjb25zdCBkcGkgPSBzb3VyY2VQYXJhbXMuRFBJIHx8IDk2O1xuICAgIHNvdXJjZVBhcmFtcy5EUEkgPSBkcGk7XG4gICAgc291cmNlUGFyYW1zLk1BUF9SRVNPTFVUSU9OID0gZHBpO1xuICAgIHNvdXJjZVBhcmFtcy5GT1JNQVRfT1BUSU9OUyA9ICdkcGk6JyArIGRwaTtcblxuICAgIGlmIChvcHRpb25zLnJlZnJlc2hJbnRlcnZhbFNlYyAmJiBvcHRpb25zLnJlZnJlc2hJbnRlcnZhbFNlYyA+IDApIHtcbiAgICAgIHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICB9LCBvcHRpb25zLnJlZnJlc2hJbnRlcnZhbFNlYyAqIDEwMDApOyAvLyBDb252ZXJ0IHNlY29uZHMgdG8gTVNcbiAgICB9XG5cbiAgICBsZXQgZmllbGROYW1lR2VvbWV0cnkgPSBkZWZhdWx0RmllbGROYW1lR2VvbWV0cnk7XG5cbiAgICAvLyAjIyMjICAgU1RBUlQgaWYgcGFyYW1zV0ZTXG4gICAgaWYgKG9wdGlvbnMucGFyYW1zV0ZTKSB7XG4gICAgICBjb25zdCB3ZnNDaGVja3VwID0gY2hlY2tXZnNQYXJhbXMob3B0aW9ucywgJ3dtcycpO1xuICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKG9wdGlvbnMucGFyYW1zV0ZTLCB3ZnNDaGVja3VwLnBhcmFtc1dGUyk7XG5cbiAgICAgIGZpZWxkTmFtZUdlb21ldHJ5ID1cbiAgICAgICAgb3B0aW9ucy5wYXJhbXNXRlMuZmllbGROYW1lR2VvbWV0cnkgfHwgZmllbGROYW1lR2VvbWV0cnk7XG5cbiAgICAgIG9wdGlvbnMuZG93bmxvYWQgPSBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zLmRvd25sb2FkLCB7XG4gICAgICAgIGR5bmFtaWNVcmw6IHRoaXMuYnVpbGREeW5hbWljRG93bmxvYWRVcmxGcm9tUGFyYW1zV0ZTKG9wdGlvbnMpXG4gICAgICB9KTtcbiAgICB9IC8vICAjIyMjICAgRU5EICBpZiBwYXJhbXNXRlNcblxuICAgIGlmICghb3B0aW9ucy5zb3VyY2VGaWVsZHMgfHwgb3B0aW9ucy5zb3VyY2VGaWVsZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICBvcHRpb25zLnNvdXJjZUZpZWxkcyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zLnNvdXJjZUZpZWxkcy5mb3JFYWNoKHNvdXJjZUZpZWxkID0+IHtcbiAgICAgICAgc291cmNlRmllbGQuYWxpYXMgPSBzb3VyY2VGaWVsZC5hbGlhc1xuICAgICAgICAgID8gc291cmNlRmllbGQuYWxpYXNcbiAgICAgICAgICA6IHNvdXJjZUZpZWxkLm5hbWU7XG4gICAgICAgIC8vIHRvIGFsbG93IG9ubHkgYSBsaXN0IG9mIHNvdXJjZWZpZWxkIHdpdGggbmFtZXNcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBpbml0T2djRmlsdGVycyA9IChvcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucylcbiAgICAgIC5vZ2NGaWx0ZXJzO1xuICAgIGNvbnN0IG9nY0ZpbHRlcldyaXRlciA9IG5ldyBPZ2NGaWx0ZXJXcml0ZXIoKTtcblxuICAgIGlmICghaW5pdE9nY0ZpbHRlcnMpIHtcbiAgICAgIChvcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucykub2djRmlsdGVycyA9IG9nY0ZpbHRlcldyaXRlci5kZWZpbmVPZ2NGaWx0ZXJzRGVmYXVsdE9wdGlvbnMoXG4gICAgICAgIGluaXRPZ2NGaWx0ZXJzLFxuICAgICAgICBmaWVsZE5hbWVHZW9tZXRyeSxcbiAgICAgICAgJ3dtcydcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluaXRPZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA9IChpbml0T2djRmlsdGVycy5wdXNoQnV0dG9ucyB8fCBpbml0T2djRmlsdGVycy5jaGVja2JveGVzXG4gICAgICAgIHx8IGluaXRPZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucyB8fCBpbml0T2djRmlsdGVycy5zZWxlY3QgfHwgaW5pdE9nY0ZpbHRlcnMuYXV0b2NvbXBsZXRlKVxuICAgICAgICA/IGZhbHNlXG4gICAgICAgIDogdHJ1ZTtcbiAgICAgIGlmIChpbml0T2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnMgJiYgaW5pdE9nY0ZpbHRlcnMuZmlsdGVycykge1xuICAgICAgICAgIGNvbnN0IGZpbHRlckR1cmluZyA9IGluaXRPZ2NGaWx0ZXJzLmZpbHRlcnMgYXMgT2djRmlsdGVyRHVyaW5nT3B0aW9ucztcbiAgICAgICAgICBpZihmaWx0ZXJEdXJpbmcuY2FsZW5kYXJNb2RlWWVhcikge1xuICAgICAgICAgICAgaW5pdE9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLnB1c2hCdXR0b25zKXtcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMucHVzaEJ1dHRvbnMuc2VsZWN0b3JUeXBlID0gJ3B1c2hCdXR0b24nO1xuICAgICAgfVxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLmNoZWNrYm94ZXMpe1xuICAgICAgICBpbml0T2djRmlsdGVycy5jaGVja2JveGVzLnNlbGVjdG9yVHlwZSA9ICdjaGVja2JveCc7XG4gICAgICB9XG4gICAgICBpZiAoaW5pdE9nY0ZpbHRlcnMucmFkaW9CdXR0b25zKXtcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMucmFkaW9CdXR0b25zLnNlbGVjdG9yVHlwZSA9ICdyYWRpb0J1dHRvbic7XG4gICAgICB9XG4gICAgICBpZiAoaW5pdE9nY0ZpbHRlcnMuc2VsZWN0KXtcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMuc2VsZWN0LnNlbGVjdG9yVHlwZSA9ICdzZWxlY3QnO1xuICAgICAgfVxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLmF1dG9jb21wbGV0ZSl7XG4gICAgICAgIGluaXRPZ2NGaWx0ZXJzLmF1dG9jb21wbGV0ZS5zZWxlY3RvclR5cGUgPSAnYXV0b2NvbXBsZXRlJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBzb3VyY2VQYXJhbXMuTEFZRVJTLnNwbGl0KCcsJykubGVuZ3RoID4gMSAmJlxuICAgICAgaW5pdE9nY0ZpbHRlcnMgJiZcbiAgICAgIGluaXRPZ2NGaWx0ZXJzLmVuYWJsZWRcbiAgICApIHtcbiAgICAgIGNvbnNvbGUubG9nKCcqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJyk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgJ0JFIENBUkVGVUxMLCBZT1VSIFdNUyBMQVlFUlMgKCcgK1xuICAgICAgICAgIHNvdXJjZVBhcmFtcy5MQVlFUlMgK1xuICAgICAgICAgICcpIE1VU1QgU0hBUkUgVEhFIFNBTUUgRklFTERTIFRPIEFMTE9XIG9nY0ZpbHRlcnMgVE8gV09SSyAhISAnXG4gICAgICApO1xuICAgICAgY29uc29sZS5sb2coJyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKionKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBvcHRpb25zLnBhcmFtc1dGUyAmJlxuICAgICAgaW5pdE9nY0ZpbHRlcnMgJiZcbiAgICAgIGluaXRPZ2NGaWx0ZXJzLmVuYWJsZWQgJiZcbiAgICAgIGluaXRPZ2NGaWx0ZXJzLmVkaXRhYmxlICYmXG4gICAgICAob3B0aW9ucy5zb3VyY2VGaWVsZHMgfHwgW10pLmZpbHRlcihzZiA9PiAhc2YudmFsdWVzKS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLndmc1NlcnZpY2UuZ2V0U291cmNlRmllbGRzRnJvbVdGUyhvcHRpb25zKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWx0ZXJRdWVyeVN0cmluZyA9IG9nY0ZpbHRlcldyaXRlci5oYW5kbGVPZ2NGaWx0ZXJzQXBwbGllZFZhbHVlKFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGZpZWxkTmFtZUdlb21ldHJ5XG4gICAgKTtcbiAgICBzb3VyY2VQYXJhbXMuRklMVEVSID0gZmlsdGVyUXVlcnlTdHJpbmc7XG4gICAgdGhpcy5zZXRPZ2NGaWx0ZXJzKGluaXRPZ2NGaWx0ZXJzLCB0cnVlKTtcblxuICAgIGNvbnN0IHRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMgPSAob3B0aW9ucyBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zKTtcbiAgICBpZiAoXG4gICAgICB0aW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zPy50aW1lRmlsdGVyYWJsZSAmJlxuICAgICAgdGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucz8udGltZUZpbHRlcikge1xuICAgICAgdGhpcy5zZXRUaW1lRmlsdGVyKHRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMudGltZUZpbHRlciwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLm9sLnVwZGF0ZVBhcmFtcyh7IGlnb1JlZnJlc2g6IE1hdGgucmFuZG9tKCkgfSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRHluYW1pY0Rvd25sb2FkVXJsRnJvbVBhcmFtc1dGUyhhc1dGU0RhdGFTb3VyY2VPcHRpb25zKSB7XG4gICAgY29uc3QgcXVlcnlTdHJpbmdWYWx1ZXMgPSBmb3JtYXRXRlNRdWVyeVN0cmluZyhhc1dGU0RhdGFTb3VyY2VPcHRpb25zKTtcbiAgICBjb25zdCBkb3dubG9hZFVybCA9IHF1ZXJ5U3RyaW5nVmFsdWVzLmZpbmQoZiA9PiBmLm5hbWUgPT09ICdnZXRmZWF0dXJlJylcbiAgICAgIC52YWx1ZTtcbiAgICByZXR1cm4gZG93bmxvYWRVcmw7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlT2xTb3VyY2UoKTogb2xTb3VyY2VJbWFnZVdNUyB7XG4gICAgcmV0dXJuIG5ldyBvbFNvdXJjZUltYWdlV01TKE9iamVjdC5hc3NpZ24oe3JhdGlvOiAxfSwgdGhpcy5vcHRpb25zKSk7XG4gIH1cblxuICBzZXRPZ2NGaWx0ZXJzKG9nY0ZpbHRlcnM6IE9nY0ZpbHRlcnNPcHRpb25zLCB0cmlnZ2VyRXZlbnQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHRoaXMub2djRmlsdGVycyA9IG9nY0ZpbHRlcnM7XG4gICAgaWYgKHRyaWdnZXJFdmVudCkge1xuICAgICAgdGhpcy5vbC5ub3RpZnkoJ29nY0ZpbHRlcnMnLCB0aGlzLm9nY0ZpbHRlcnMpO1xuICAgIH1cbiAgfVxuXG4gIHNldFRpbWVGaWx0ZXIodGltZUZpbHRlcjogVGltZUZpbHRlck9wdGlvbnMsIHRyaWdnZXJFdmVudDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgdGhpcy50aW1lRmlsdGVyID0gdGltZUZpbHRlcjtcbiAgICBpZiAodHJpZ2dlckV2ZW50KSB7XG4gICAgICB0aGlzLnRpbWVGaWx0ZXIkLm5leHQodGhpcy50aW1lRmlsdGVyKTtcbiAgICAgIHRoaXMub2wubm90aWZ5KCd0aW1lRmlsdGVyJywgdGhpcy5vZ2NGaWx0ZXJzKTtcbiAgICB9XG4gIH1cblxuICBnZXRMZWdlbmQoc3R5bGU/OiBzdHJpbmcsIHZpZXc/OiBMZWdlbmRNYXBWaWV3T3B0aW9ucyk6IExlZ2VuZFtdIHtcbiAgICBsZXQgbGVnZW5kID0gc3VwZXIuZ2V0TGVnZW5kKCk7XG4gICAgaWYgKGxlZ2VuZC5sZW5ndGggPiAwICYmIChzdHlsZSA9PT0gdW5kZWZpbmVkICYmICF2aWV3Py5zY2FsZSkpIHtcbiAgICAgIHJldHVybiBsZWdlbmQ7XG4gICAgfVxuXG4gICAgbGV0IGNvbnRlbnREZXBlbmRlbnQgPSBmYWxzZTtcbiAgICBsZXQgcHJvalBhcmFtO1xuXG4gICAgaWYgKHZpZXc/LnNpemUgJiYgdmlldz8uZXh0ZW50ICYmIHZpZXc/LnByb2plY3Rpb24gJiYgdGhpcy5vcHRpb25zLmNvbnRlbnREZXBlbmRlbnRMZWdlbmQpIHtcbiAgICAgIHByb2pQYXJhbSA9IHRoaXMucGFyYW1zLlZFUlNJT04gPT09ICcxLjMuMCcgfHwgdGhpcy5wYXJhbXMuVkVSU0lPTiA9PT0gdW5kZWZpbmVkID8gJ0NSUycgOiAnU1JTJztcbiAgICAgIGNvbnRlbnREZXBlbmRlbnQgPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHNvdXJjZVBhcmFtcyA9IHRoaXMucGFyYW1zO1xuXG4gICAgbGV0IGxheWVycyA9IFtdO1xuICAgIGlmIChzb3VyY2VQYXJhbXMuTEFZRVJTICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGxheWVycyA9IHNvdXJjZVBhcmFtcy5MQVlFUlMuc3BsaXQoJywnKTtcbiAgICB9XG5cbiAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5vcHRpb25zLnVybC5yZXBsYWNlKC9cXD8kLywgJycpO1xuICAgIGNvbnN0IHBhcmFtcyA9IFtcbiAgICAgICdSRVFVRVNUPUdldExlZ2VuZEdyYXBoaWMnLFxuICAgICAgJ1NFUlZJQ0U9V01TJyxcbiAgICAgICdGT1JNQVQ9aW1hZ2UvcG5nJyxcbiAgICAgICdTTERfVkVSU0lPTj0xLjEuMCcsXG4gICAgICBgVkVSU0lPTj0ke3NvdXJjZVBhcmFtcy5WRVJTSU9OIHx8ICcxLjMuMCd9YFxuICAgIF07XG4gICAgaWYgKHN0eWxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcy5wdXNoKGBTVFlMRT0ke3N0eWxlfWApO1xuICAgIH1cbiAgICBpZiAodmlldz8uc2NhbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGFyYW1zLnB1c2goYFNDQUxFPSR7dmlldy5zY2FsZX1gKTtcbiAgICB9XG4gICAgaWYgKGNvbnRlbnREZXBlbmRlbnQpIHtcbiAgICAgIHBhcmFtcy5wdXNoKGBXSURUSD0ke3ZpZXcuc2l6ZVswXX1gKTtcbiAgICAgIHBhcmFtcy5wdXNoKGBIRUlHSFQ9JHt2aWV3LnNpemVbMV19YCk7XG4gICAgICBwYXJhbXMucHVzaChgQkJPWD0ke3ZpZXcuZXh0ZW50LmpvaW4oJywnKX1gKTtcbiAgICAgIHBhcmFtcy5wdXNoKGAke3Byb2pQYXJhbX09JHt2aWV3LnByb2plY3Rpb259YCk7XG4gICAgfVxuXG4gICAgbGVnZW5kID0gbGF5ZXJzLm1hcCgobGF5ZXI6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgc2VwYXJhdG9yID0gYmFzZVVybC5tYXRjaCgvXFw/LykgPyAnJicgOiAnPyc7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB1cmw6IGAke2Jhc2VVcmx9JHtzZXBhcmF0b3J9JHtwYXJhbXMuam9pbignJicpfSZMQVlFUj0ke2xheWVyfWAsXG4gICAgICAgIHRpdGxlOiBsYXllcnMubGVuZ3RoID4gMSA/IGxheWVyIDogdW5kZWZpbmVkLFxuICAgICAgICBjdXJyZW50U3R5bGU6IHN0eWxlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBzdHlsZSBhcyBzdHJpbmdcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbGVnZW5kO1xuICB9XG5cbiAgcHVibGljIG9uVW53YXRjaCgpIHt9XG59XG4iXX0=
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXMtZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGdCQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBRWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFLMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCx3QkFBd0IsRUFDekIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsTUFBTSxPQUFPLGFBQWMsU0FBUSxVQUFVO0lBc0MzQyxZQUNTLE9BQTZCLEVBQzFCLFVBQXNCO1FBRWhDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhSLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFKekIsZ0JBQVcsR0FBdUMsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFPeEYsTUFBTSxZQUFZLEdBQVEsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUV6QyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxZQUFZLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUN2QixZQUFZLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztRQUNsQyxZQUFZLENBQUMsY0FBYyxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFF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dEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xTb3VyY2VJbWFnZVdNUyBmcm9tICdvbC9zb3VyY2UvSW1hZ2VXTVMnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4vZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IExlZ2VuZCB9IGZyb20gJy4vZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgV0ZTU2VydmljZSB9IGZyb20gJy4vd2ZzLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgT2djRmlsdGVyV3JpdGVyIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyJztcclxuaW1wb3J0IHsgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zLCBPZ2NGaWx0ZXJzT3B0aW9ucywgT2djRmlsdGVyRHVyaW5nT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBRdWVyeUh0bWxUYXJnZXQgfSBmcm9tICcuLi8uLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkuZW51bXMnO1xyXG5pbXBvcnQge1xyXG4gIGZvcm1hdFdGU1F1ZXJ5U3RyaW5nLFxyXG4gIGNoZWNrV2ZzUGFyYW1zLFxyXG4gIGRlZmF1bHRGaWVsZE5hbWVHZW9tZXRyeVxyXG59IGZyb20gJy4vd21zLXdmcy51dGlscyc7XHJcblxyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuaW1wb3J0IHsgTGVnZW5kTWFwVmlld09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zLCBUaW1lRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvdGltZS1maWx0ZXIuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBXTVNEYXRhU291cmNlIGV4dGVuZHMgRGF0YVNvdXJjZSB7XHJcbiAgcHVibGljIG9sOiBvbFNvdXJjZUltYWdlV01TO1xyXG5cclxuICBnZXQgcGFyYW1zKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnBhcmFtcyBhcyBhbnk7XHJcbiAgfVxyXG5cclxuICBnZXQgcXVlcnlUaXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICh0aGlzLm9wdGlvbnMgYXMgYW55KS5xdWVyeVRpdGxlXHJcbiAgICAgID8gKHRoaXMub3B0aW9ucyBhcyBhbnkpLnF1ZXJ5VGl0bGVcclxuICAgICAgOiAndGl0bGUnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1hcExhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucyBhcyBhbnkpLm1hcExhYmVsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHF1ZXJ5SHRtbFRhcmdldCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICh0aGlzLm9wdGlvbnMgYXMgYW55KS5xdWVyeUh0bWxUYXJnZXRcclxuICAgICAgPyAodGhpcy5vcHRpb25zIGFzIGFueSkucXVlcnlIdG1sVGFyZ2V0XHJcbiAgICAgIDogUXVlcnlIdG1sVGFyZ2V0LkJMQU5LO1xyXG4gIH1cclxuXHJcbiAgc2V0IG9nY0ZpbHRlcnModmFsdWU6IE9nY0ZpbHRlcnNPcHRpb25zKSB7XHJcbiAgICAodGhpcy5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucykub2djRmlsdGVycyA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgb2djRmlsdGVycygpOiBPZ2NGaWx0ZXJzT3B0aW9ucyB7XHJcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucyBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpLm9nY0ZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICBzZXQgdGltZUZpbHRlcih2YWx1ZTogVGltZUZpbHRlck9wdGlvbnMgKSB7XHJcbiAgICAodGhpcy5vcHRpb25zIGFzIFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpLnRpbWVGaWx0ZXIgPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IHRpbWVGaWx0ZXIoKTogVGltZUZpbHRlck9wdGlvbnMge1xyXG4gICAgcmV0dXJuICh0aGlzLm9wdGlvbnMgYXMgVGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucykudGltZUZpbHRlcjtcclxuICB9XHJcbiAgcmVhZG9ubHkgdGltZUZpbHRlciQ6IEJlaGF2aW9yU3ViamVjdDxUaW1lRmlsdGVyT3B0aW9ucz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgcHJvdGVjdGVkIHdmc1NlcnZpY2U6IFdGU1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgY29uc3Qgc291cmNlUGFyYW1zOiBhbnkgPSBvcHRpb25zLnBhcmFtcztcclxuXHJcbiAgICBjb25zdCBkcGkgPSBzb3VyY2VQYXJhbXMuRFBJIHx8IDk2O1xyXG4gICAgc291cmNlUGFyYW1zLkRQSSA9IGRwaTtcclxuICAgIHNvdXJjZVBhcmFtcy5NQVBfUkVTT0xVVElPTiA9IGRwaTtcclxuICAgIHNvdXJjZVBhcmFtcy5GT1JNQVRfT1BUSU9OUyA9ICdkcGk6JyArIGRwaTtcclxuXHJcbiAgICBpZiAob3B0aW9ucy5yZWZyZXNoSW50ZXJ2YWxTZWMgJiYgb3B0aW9ucy5yZWZyZXNoSW50ZXJ2YWxTZWMgPiAwKSB7XHJcbiAgICAgIHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgfSwgb3B0aW9ucy5yZWZyZXNoSW50ZXJ2YWxTZWMgKiAxMDAwKTsgLy8gQ29udmVydCBzZWNvbmRzIHRvIE1TXHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGZpZWxkTmFtZUdlb21ldHJ5ID0gZGVmYXVsdEZpZWxkTmFtZUdlb21ldHJ5O1xyXG5cclxuICAgIC8vICMjIyMgICBTVEFSVCBpZiBwYXJhbXNXRlNcclxuICAgIGlmIChvcHRpb25zLnBhcmFtc1dGUykge1xyXG4gICAgICBjb25zdCB3ZnNDaGVja3VwID0gY2hlY2tXZnNQYXJhbXMob3B0aW9ucywgJ3dtcycpO1xyXG4gICAgICBPYmplY3RVdGlscy5tZXJnZURlZXAob3B0aW9ucy5wYXJhbXNXRlMsIHdmc0NoZWNrdXAucGFyYW1zV0ZTKTtcclxuXHJcbiAgICAgIGZpZWxkTmFtZUdlb21ldHJ5ID1cclxuICAgICAgICBvcHRpb25zLnBhcmFtc1dGUy5maWVsZE5hbWVHZW9tZXRyeSB8fCBmaWVsZE5hbWVHZW9tZXRyeTtcclxuXHJcbiAgICAgIG9wdGlvbnMuZG93bmxvYWQgPSBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zLmRvd25sb2FkLCB7XHJcbiAgICAgICAgZHluYW1pY1VybDogdGhpcy5idWlsZER5bmFtaWNEb3dubG9hZFVybEZyb21QYXJhbXNXRlMob3B0aW9ucylcclxuICAgICAgfSk7XHJcbiAgICB9IC8vICAjIyMjICAgRU5EICBpZiBwYXJhbXNXRlNcclxuXHJcbiAgICBpZiAoIW9wdGlvbnMuc291cmNlRmllbGRzIHx8IG9wdGlvbnMuc291cmNlRmllbGRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBvcHRpb25zLnNvdXJjZUZpZWxkcyA9IFtdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgb3B0aW9ucy5zb3VyY2VGaWVsZHMuZm9yRWFjaChzb3VyY2VGaWVsZCA9PiB7XHJcbiAgICAgICAgc291cmNlRmllbGQuYWxpYXMgPSBzb3VyY2VGaWVsZC5hbGlhc1xyXG4gICAgICAgICAgPyBzb3VyY2VGaWVsZC5hbGlhc1xyXG4gICAgICAgICAgOiBzb3VyY2VGaWVsZC5uYW1lO1xyXG4gICAgICAgIC8vIHRvIGFsbG93IG9ubHkgYSBsaXN0IG9mIHNvdXJjZWZpZWxkIHdpdGggbmFtZXNcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpbml0T2djRmlsdGVycyA9IChvcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucylcclxuICAgICAgLm9nY0ZpbHRlcnM7XHJcbiAgICBjb25zdCBvZ2NGaWx0ZXJXcml0ZXIgPSBuZXcgT2djRmlsdGVyV3JpdGVyKCk7XHJcblxyXG4gICAgaWYgKCFpbml0T2djRmlsdGVycykge1xyXG4gICAgICAob3B0aW9ucyBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMpLm9nY0ZpbHRlcnMgPSBvZ2NGaWx0ZXJXcml0ZXIuZGVmaW5lT2djRmlsdGVyc0RlZmF1bHRPcHRpb25zKFxyXG4gICAgICAgIGluaXRPZ2NGaWx0ZXJzLFxyXG4gICAgICAgIGZpZWxkTmFtZUdlb21ldHJ5LFxyXG4gICAgICAgICd3bXMnXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpbml0T2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnMgPSAoaW5pdE9nY0ZpbHRlcnMucHVzaEJ1dHRvbnMgfHwgaW5pdE9nY0ZpbHRlcnMuY2hlY2tib3hlc1xyXG4gICAgICAgIHx8IGluaXRPZ2NGaWx0ZXJzLnJhZGlvQnV0dG9ucyB8fCBpbml0T2djRmlsdGVycy5zZWxlY3QgfHwgaW5pdE9nY0ZpbHRlcnMuYXV0b2NvbXBsZXRlKVxyXG4gICAgICAgID8gZmFsc2VcclxuICAgICAgICA6IHRydWU7XHJcbiAgICAgIGlmIChpbml0T2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnMgJiYgaW5pdE9nY0ZpbHRlcnMuZmlsdGVycykge1xyXG4gICAgICAgICAgY29uc3QgZmlsdGVyRHVyaW5nID0gaW5pdE9nY0ZpbHRlcnMuZmlsdGVycyBhcyBPZ2NGaWx0ZXJEdXJpbmdPcHRpb25zO1xyXG4gICAgICAgICAgaWYoZmlsdGVyRHVyaW5nLmNhbGVuZGFyTW9kZVllYXIpIHtcclxuICAgICAgICAgICAgaW5pdE9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLnB1c2hCdXR0b25zKXtcclxuICAgICAgICBpbml0T2djRmlsdGVycy5wdXNoQnV0dG9ucy5zZWxlY3RvclR5cGUgPSAncHVzaEJ1dHRvbic7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLmNoZWNrYm94ZXMpe1xyXG4gICAgICAgIGluaXRPZ2NGaWx0ZXJzLmNoZWNrYm94ZXMuc2VsZWN0b3JUeXBlID0gJ2NoZWNrYm94JztcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW5pdE9nY0ZpbHRlcnMucmFkaW9CdXR0b25zKXtcclxuICAgICAgICBpbml0T2djRmlsdGVycy5yYWRpb0J1dHRvbnMuc2VsZWN0b3JUeXBlID0gJ3JhZGlvQnV0dG9uJztcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW5pdE9nY0ZpbHRlcnMuc2VsZWN0KXtcclxuICAgICAgICBpbml0T2djRmlsdGVycy5zZWxlY3Quc2VsZWN0b3JUeXBlID0gJ3NlbGVjdCc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGluaXRPZ2NGaWx0ZXJzLmF1dG9jb21wbGV0ZSl7XHJcbiAgICAgICAgaW5pdE9nY0ZpbHRlcnMuYXV0b2NvbXBsZXRlLnNlbGVjdG9yVHlwZSA9ICdhdXRvY29tcGxldGUnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBzb3VyY2VQYXJhbXMuTEFZRVJTLnNwbGl0KCcsJykubGVuZ3RoID4gMSAmJlxyXG4gICAgICBpbml0T2djRmlsdGVycyAmJlxyXG4gICAgICBpbml0T2djRmlsdGVycy5lbmFibGVkXHJcbiAgICApIHtcclxuICAgICAgY29uc29sZS5sb2coJyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKionKTtcclxuICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgJ0JFIENBUkVGVUxMLCBZT1VSIFdNUyBMQVlFUlMgKCcgK1xyXG4gICAgICAgICAgc291cmNlUGFyYW1zLkxBWUVSUyArXHJcbiAgICAgICAgICAnKSBNVVNUIFNIQVJFIFRIRSBTQU1FIEZJRUxEUyBUTyBBTExPVyBvZ2NGaWx0ZXJzIFRPIFdPUksgISEgJ1xyXG4gICAgICApO1xyXG4gICAgICBjb25zb2xlLmxvZygnKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKicpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgb3B0aW9ucy5wYXJhbXNXRlMgJiZcclxuICAgICAgaW5pdE9nY0ZpbHRlcnMgJiZcclxuICAgICAgaW5pdE9nY0ZpbHRlcnMuZW5hYmxlZCAmJlxyXG4gICAgICBpbml0T2djRmlsdGVycy5lZGl0YWJsZSAmJlxyXG4gICAgICAob3B0aW9ucy5zb3VyY2VGaWVsZHMgfHwgW10pLmZpbHRlcihzZiA9PiAhc2YudmFsdWVzKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMud2ZzU2VydmljZS5nZXRTb3VyY2VGaWVsZHNGcm9tV0ZTKG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpbHRlclF1ZXJ5U3RyaW5nID0gb2djRmlsdGVyV3JpdGVyLmhhbmRsZU9nY0ZpbHRlcnNBcHBsaWVkVmFsdWUoXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGZpZWxkTmFtZUdlb21ldHJ5XHJcbiAgICApO1xyXG4gICAgc291cmNlUGFyYW1zLkZJTFRFUiA9IGZpbHRlclF1ZXJ5U3RyaW5nO1xyXG4gICAgdGhpcy5zZXRPZ2NGaWx0ZXJzKGluaXRPZ2NGaWx0ZXJzLCB0cnVlKTtcclxuXHJcbiAgICBjb25zdCB0aW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zID0gKG9wdGlvbnMgYXMgVGltZUZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucyk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnM/LnRpbWVGaWx0ZXJhYmxlICYmXHJcbiAgICAgIHRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnM/LnRpbWVGaWx0ZXIpIHtcclxuICAgICAgdGhpcy5zZXRUaW1lRmlsdGVyKHRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMudGltZUZpbHRlciwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCkge1xyXG4gICAgdGhpcy5vbC51cGRhdGVQYXJhbXMoeyBpZ29SZWZyZXNoOiBNYXRoLnJhbmRvbSgpIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZER5bmFtaWNEb3dubG9hZFVybEZyb21QYXJhbXNXRlMoYXNXRlNEYXRhU291cmNlT3B0aW9ucykge1xyXG4gICAgY29uc3QgcXVlcnlTdHJpbmdWYWx1ZXMgPSBmb3JtYXRXRlNRdWVyeVN0cmluZyhhc1dGU0RhdGFTb3VyY2VPcHRpb25zKTtcclxuICAgIGNvbnN0IGRvd25sb2FkVXJsID0gcXVlcnlTdHJpbmdWYWx1ZXMuZmluZChmID0+IGYubmFtZSA9PT0gJ2dldGZlYXR1cmUnKVxyXG4gICAgICAudmFsdWU7XHJcbiAgICByZXR1cm4gZG93bmxvYWRVcmw7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY3JlYXRlT2xTb3VyY2UoKTogb2xTb3VyY2VJbWFnZVdNUyB7XHJcbiAgICByZXR1cm4gbmV3IG9sU291cmNlSW1hZ2VXTVMoT2JqZWN0LmFzc2lnbih7cmF0aW86IDF9LCB0aGlzLm9wdGlvbnMpKTtcclxuICB9XHJcblxyXG4gIHNldE9nY0ZpbHRlcnMob2djRmlsdGVyczogT2djRmlsdGVyc09wdGlvbnMsIHRyaWdnZXJFdmVudDogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLm9nY0ZpbHRlcnMgPSBvZ2NGaWx0ZXJzO1xyXG4gICAgaWYgKHRyaWdnZXJFdmVudCkge1xyXG4gICAgICB0aGlzLm9sLm5vdGlmeSgnb2djRmlsdGVycycsIHRoaXMub2djRmlsdGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRUaW1lRmlsdGVyKHRpbWVGaWx0ZXI6IFRpbWVGaWx0ZXJPcHRpb25zLCB0cmlnZ2VyRXZlbnQ6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgdGhpcy50aW1lRmlsdGVyID0gdGltZUZpbHRlcjtcclxuICAgIGlmICh0cmlnZ2VyRXZlbnQpIHtcclxuICAgICAgdGhpcy50aW1lRmlsdGVyJC5uZXh0KHRoaXMudGltZUZpbHRlcik7XHJcbiAgICAgIHRoaXMub2wubm90aWZ5KCd0aW1lRmlsdGVyJywgdGhpcy5vZ2NGaWx0ZXJzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldExlZ2VuZChzdHlsZT86IHN0cmluZywgdmlldz86IExlZ2VuZE1hcFZpZXdPcHRpb25zKTogTGVnZW5kW10ge1xyXG4gICAgbGV0IGxlZ2VuZCA9IHN1cGVyLmdldExlZ2VuZCgpO1xyXG4gICAgaWYgKGxlZ2VuZC5sZW5ndGggPiAwICYmIChzdHlsZSA9PT0gdW5kZWZpbmVkICYmICF2aWV3Py5zY2FsZSkpIHtcclxuICAgICAgcmV0dXJuIGxlZ2VuZDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY29udGVudERlcGVuZGVudCA9IGZhbHNlO1xyXG4gICAgbGV0IHByb2pQYXJhbTtcclxuXHJcbiAgICBpZiAodmlldz8uc2l6ZSAmJiB2aWV3Py5leHRlbnQgJiYgdmlldz8ucHJvamVjdGlvbiAmJiB0aGlzLm9wdGlvbnMuY29udGVudERlcGVuZGVudExlZ2VuZCkge1xyXG4gICAgICBwcm9qUGFyYW0gPSB0aGlzLnBhcmFtcy5WRVJTSU9OID09PSAnMS4zLjAnIHx8IHRoaXMucGFyYW1zLlZFUlNJT04gPT09IHVuZGVmaW5lZCA/ICdDUlMnIDogJ1NSUyc7XHJcbiAgICAgIGNvbnRlbnREZXBlbmRlbnQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNvdXJjZVBhcmFtcyA9IHRoaXMucGFyYW1zO1xyXG5cclxuICAgIGxldCBsYXllcnMgPSBbXTtcclxuICAgIGlmIChzb3VyY2VQYXJhbXMuTEFZRVJTICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgbGF5ZXJzID0gc291cmNlUGFyYW1zLkxBWUVSUy5zcGxpdCgnLCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLm9wdGlvbnMudXJsLnJlcGxhY2UoL1xcPyQvLCAnJyk7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBbXHJcbiAgICAgICdSRVFVRVNUPUdldExlZ2VuZEdyYXBoaWMnLFxyXG4gICAgICAnU0VSVklDRT1XTVMnLFxyXG4gICAgICAnRk9STUFUPWltYWdlL3BuZycsXHJcbiAgICAgICdTTERfVkVSU0lPTj0xLjEuMCcsXHJcbiAgICAgIGBWRVJTSU9OPSR7c291cmNlUGFyYW1zLlZFUlNJT04gfHwgJzEuMy4wJ31gXHJcbiAgICBdO1xyXG4gICAgaWYgKHN0eWxlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcGFyYW1zLnB1c2goYFNUWUxFPSR7c3R5bGV9YCk7XHJcbiAgICB9XHJcbiAgICBpZiAodmlldz8uc2NhbGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBwYXJhbXMucHVzaChgU0NBTEU9JHt2aWV3LnNjYWxlfWApO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbnRlbnREZXBlbmRlbnQpIHtcclxuICAgICAgcGFyYW1zLnB1c2goYFdJRFRIPSR7dmlldy5zaXplWzBdfWApO1xyXG4gICAgICBwYXJhbXMucHVzaChgSEVJR0hUPSR7dmlldy5zaXplWzFdfWApO1xyXG4gICAgICBwYXJhbXMucHVzaChgQkJPWD0ke3ZpZXcuZXh0ZW50LmpvaW4oJywnKX1gKTtcclxuICAgICAgcGFyYW1zLnB1c2goYCR7cHJvalBhcmFtfT0ke3ZpZXcucHJvamVjdGlvbn1gKTtcclxuICAgIH1cclxuXHJcbiAgICBsZWdlbmQgPSBsYXllcnMubWFwKChsYXllcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNlcGFyYXRvciA9IGJhc2VVcmwubWF0Y2goL1xcPy8pID8gJyYnIDogJz8nO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHVybDogYCR7YmFzZVVybH0ke3NlcGFyYXRvcn0ke3BhcmFtcy5qb2luKCcmJyl9JkxBWUVSPSR7bGF5ZXJ9YCxcclxuICAgICAgICB0aXRsZTogbGF5ZXJzLmxlbmd0aCA+IDEgPyBsYXllciA6IHVuZGVmaW5lZCxcclxuICAgICAgICBjdXJyZW50U3R5bGU6IHN0eWxlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBzdHlsZSBhcyBzdHJpbmdcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBsZWdlbmQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25VbndhdGNoKCkge31cclxufVxyXG4iXX0=
@@ -204,4 +204,4 @@ export function getFormatFromOptions(options) {
204
204
  }
205
205
  return new olFormatCls();
206
206
  }
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLXdmcy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy13ZnMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXBFLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxVQUFVLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFHeEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLE9BQTZCLEVBQzdCLE1BQU0sRUFDTixJQUFrQixFQUNsQixVQUE2QixFQUM3QixXQUFxQjtJQUNyQixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3BDLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLE9B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TyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXRlNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd2ZzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93bXMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT2djRmlsdGVyc09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9nY0ZpbHRlcldyaXRlciB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlcic7XG5cbmltcG9ydCAqIGFzIE9sRm9ybWF0IGZyb20gJ29sL2Zvcm1hdCc7XG5pbXBvcnQgb2xGb3JtYXRHTUwyIGZyb20gJ29sL2Zvcm1hdC9HTUwyJztcbmltcG9ydCBvbEZvcm1hdEdNTDMgZnJvbSAnb2wvZm9ybWF0L0dNTDMnO1xuaW1wb3J0IG9sRm9ybWF0R01MMzIgZnJvbSAnb2wvZm9ybWF0L0dNTDMyJztcbmltcG9ydCBvbEZvcm1hdE9TTVhNTCBmcm9tICdvbC9mb3JtYXQvT1NNWE1MJztcbmltcG9ydCBvbFByb2plY3Rpb24gZnJvbSAnb2wvcHJvai9Qcm9qZWN0aW9uJztcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRFcHNnID0gJ0VQU0c6Mzg1Nyc7XG5leHBvcnQgY29uc3QgZGVmYXVsdE1heEZlYXR1cmVzID0gNTAwMDtcbmV4cG9ydCBjb25zdCBkZWZhdWx0V2ZzVmVyc2lvbiA9ICcyLjAuMCc7XG5leHBvcnQgY29uc3QgZGVmYXVsdEZpZWxkTmFtZUdlb21ldHJ5ID0gJ2dlb21ldHJ5JztcbmV4cG9ydCBjb25zdCBnbWxSZWdleCA9IG5ldyBSZWdFeHAoLyguKik/Z21sKC4qKT8vZ2kpO1xuZXhwb3J0IGNvbnN0IGpzb25SZWdleCA9IG5ldyBSZWdFeHAoLyguKik/anNvbiguKik/L2dpKTtcblxuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGJ1aWxkIHRoZSBXRlMgVVJMIGJhc2VkIG9uIHRoZSBsYXllciBwcm9wZXJ0eS5cbiAqIEBwYXJhbSBvcHRpb25zICBXRlNEYXRhU291cmNlT3B0aW9ucyBUaGUgY29tbW9uIHdmcyBkYXRhc291cmNlIG9wdGlvbnMgaW50ZXJmYWNlXG4gKiBAcGFyYW0gZXh0ZW50ICBBbiBleHRlbnQgbGlrZSBhcnJheSBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuICogQHBhcmFtIHByb2ogIG9sUHJvamVjdGlvblxuICogQHBhcmFtIG9nY0ZpbHRlcnMgIE9nY0ZpbHRlcnNPcHRpb25zXG4gKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGRhdGFzb3VyY2Ugb3B0aW9ucywgYmFzZWQgb24gZmlsdGVyIGFuZCB2aWV3c1xuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRVcmwoXG4gIG9wdGlvbnM6IFdGU0RhdGFTb3VyY2VPcHRpb25zLFxuICBleHRlbnQsXG4gIHByb2o6IG9sUHJvamVjdGlvbixcbiAgb2djRmlsdGVyczogT2djRmlsdGVyc09wdGlvbnMsXG4gIHJhbmRvbVBhcmFtPzogYm9vbGVhbik6IHN0cmluZyB7XG4gIGNvbnN0IHBhcmFtc1dGUyA9IG9wdGlvbnMucGFyYW1zV0ZTO1xuICBjb25zdCBxdWVyeVN0cmluZ1ZhbHVlcyA9IGZvcm1hdFdGU1F1ZXJ5U3RyaW5nKG9wdGlvbnMsIHVuZGVmaW5lZCwgb3B0aW9ucy5wYXJhbXNXRlMuc3JzTmFtZSk7XG4gIGxldCBpZ29GaWx0ZXJzO1xuICBpZiAob2djRmlsdGVycyAmJiBvZ2NGaWx0ZXJzLmVuYWJsZWQpIHtcbiAgICBpZ29GaWx0ZXJzID0gb2djRmlsdGVycy5maWx0ZXJzO1xuICB9XG4gIGNvbnN0IG9nY0ZpbHRlcldyaXRlciA9IG5ldyBPZ2NGaWx0ZXJXcml0ZXIoKTtcbiAgY29uc3QgZmlsdGVyT3JCb3ggPSBvZ2NGaWx0ZXJXcml0ZXIuYnVpbGRGaWx0ZXIoaWdvRmlsdGVycywgZXh0ZW50LCBwcm9qLCBvZ2NGaWx0ZXJzLmdlb21ldHJ5TmFtZSwgb3B0aW9ucyk7XG4gIGxldCBmaWx0ZXJPclB1c2ggPSBvZ2NGaWx0ZXJXcml0ZXIuaGFuZGxlT2djRmlsdGVyc0FwcGxpZWRWYWx1ZShvcHRpb25zLCBvZ2NGaWx0ZXJzLmdlb21ldHJ5TmFtZSwgZXh0ZW50LCBwcm9qKTtcblxuICBsZXQgcHJlZml4ID0gJ2ZpbHRlcic7XG4gIGlmICghZmlsdGVyT3JQdXNoKSB7XG4gICAgcHJlZml4ID0gJ2Jib3gnO1xuICAgIGZpbHRlck9yUHVzaCA9IGV4dGVudC5qb2luKCcsJykgKyAnLCcgKyBwcm9qLmdldENvZGUoKTtcbiAgfVxuXG4gIHBhcmFtc1dGUy54bWxGaWx0ZXIgPSBvZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA/IGZpbHRlck9yQm94IDogYCR7cHJlZml4fT0ke2ZpbHRlck9yUHVzaH1gO1xuICBsZXQgYmFzZVVybCA9IHF1ZXJ5U3RyaW5nVmFsdWVzLmZpbmQoZiA9PiBmLm5hbWUgPT09ICdnZXRmZWF0dXJlJykudmFsdWU7XG4gIGNvbnN0IHBhdHRlcm5GaWx0ZXIgPSAvKGZpbHRlcnxiYm94KT0uKi9naTtcbiAgYmFzZVVybCA9IHBhdHRlcm5GaWx0ZXIudGVzdChwYXJhbXNXRlMueG1sRmlsdGVyKSA/IGAke2Jhc2VVcmx9JiR7cGFyYW1zV0ZTLnhtbEZpbHRlcn1gIDogYmFzZVVybDtcbiAgb3B0aW9ucy5kb3dubG9hZCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMuZG93bmxvYWQsIHsgZHluYW1pY1VybDogYmFzZVVybCB9KTtcbiAgaWYgKHJhbmRvbVBhcmFtKSB7XG4gICAgYmFzZVVybCArPSBgJCZfdCR7bmV3IERhdGUoKS5nZXRUaW1lKCl9YDtcbiAgfVxuICByZXR1cm4gYmFzZVVybC5yZXBsYWNlKC8mJi9nLCAnJicpO1xufVxuXG5cbi8qKlxuICogVGhpcyBtZXRob2QgYnVpbGQvc3RhbmRhcmRpemUgV0ZTIGNhbGwgcXVlcnkgcGFyYW1zIGJhc2VkIG9uIHRoZSBsYXllciBwcm9wZXJ0eS5cbiAqIEBwYXJhbSB3ZnNEYXRhU291cmNlT3B0aW9ucyAgV0ZTRGF0YVNvdXJjZU9wdGlvbnMgVGhlIGNvbW1vbiB3ZnMgZGF0YXNvdXJjZSBvcHRpb25zIGludGVyZmFjZVxuICogQHBhcmFtIGNvdW50ICBOdW1iZXI6IFVzZWQgdG8gY29udHJvbCB0aGUgbnVtYmVyIG9mIGZlYXR1cmUuIFVzZWQgdG8gYnlwYXNzIHdoZSB3ZnMgZGF0YXNvdXJjZSBvcHRpb25zIGludGVyZmFjZSAobWF4RmVhdHVyZXMpXG4gKiBAcGFyYW0gZXBzZyAgU3RyaW5nOiBVc2VkIHRvIGNvbnRyb2wgdGhlIEVQU0cgY29kZSAoZXM6ICdFUFNHMzg1NycpLiBVc2VkIHRvIGJ5cGFzcyB3aGUgd2ZzIGRhdGFzb3VyY2Ugb3B0aW9ucyBpbnRlcmZhY2UgKHNyc05hbWUpXG4gKiBAcGFyYW0gcHJvcGVydGllcyAgU3RyaW5nOiBVc2VkIHRvIGNvbnRyb2wgdGhlIHF1ZXJpZWQgZmllbGRzICAoV0ZTIHNlcnZpY2UpLlxuICogQHJldHVybnMgQW4gYXJyYXkgYXJyYXkgb2Yge25hbWU6ICcnLCB2YWx1ZTogJyd9IG9mIHByZWRlZmluZWQgcXVlcnkgcGFyYW1zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0V0ZTUXVlcnlTdHJpbmcoXG4gIGRhdGFTb3VyY2VPcHRpb25zOiBXRlNEYXRhU291cmNlT3B0aW9ucyB8IFdNU0RhdGFTb3VyY2VPcHRpb25zLFxuICBjb3VudD86IG51bWJlcixcbiAgZXBzZz86IHN0cmluZyxcbiAgcHJvcGVydGllcz86IHN0cmluZyxcbiAgc3RhcnRJbmRleDogbnVtYmVyID0gMCxcbiAgZm9yY2VEZWZhdWx0T3V0cHV0Rm9ybWF0OiBib29sZWFuID0gZmFsc2Vcbik6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSB7XG4gIGNvbnN0IHZlcnNpb25XZnMyMDAgPSAnMi4wLjAnOyAvLyBub3QgdGhlIHNhbWUgdXNhZ2UgYXMgZGVmYXVsdFdmc1ZlcnNpb24uXG4gIGNvbnN0IHVybCA9IGRhdGFTb3VyY2VPcHRpb25zLnVybFdmcztcbiAgY29uc3QgcGFyYW1zV0ZTID0gZGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTO1xuICBjb25zdCBlZmZlY3RpdmVDb3VudCA9IGNvdW50IHx8IGRlZmF1bHRNYXhGZWF0dXJlcztcbiAgY29uc3QgZWZmZWN0aXZlU3RhcnRJbmRleCA9IHBhcmFtc1dGUy52ZXJzaW9uID09PSB2ZXJzaW9uV2ZzMjAwID8gYHN0YXJ0SW5kZXg9JHtzdGFydEluZGV4fWAgOiAnJztcbiAgY29uc3QgZXBzZ0NvZGUgPSBlcHNnIHx8IGRlZmF1bHRFcHNnO1xuICBsZXQgb3V0cHV0Rm9ybWF0ID0gcGFyYW1zV0ZTLm91dHB1dEZvcm1hdFxuICAgID8gYG91dHB1dEZvcm1hdD0ke3BhcmFtc1dGUy5vdXRwdXRGb3JtYXR9YFxuICAgIDogJyc7XG4gIGxldCB2ZXJzaW9uID0gcGFyYW1zV0ZTLnZlcnNpb25cbiAgICA/IGB2ZXJzaW9uPSR7cGFyYW1zV0ZTLnZlcnNpb259YFxuICAgIDogYHZlcnNpb249JHtkZWZhdWx0V2ZzVmVyc2lvbn1gO1xuICBjb25zdCBwYXJhbVR5cGVuYW1lID1cbiAgICBwYXJhbXNXRlMudmVyc2lvbiA9PT0gdmVyc2lvbldmczIwMCA/ICd0eXBlbmFtZXMnIDogJ3R5cGVuYW1lJztcbiAgY29uc3QgZmVhdHVyZVR5cGVzID0gYCR7cGFyYW1UeXBlbmFtZX09JHtwYXJhbXNXRlMuZmVhdHVyZVR5cGVzfWA7XG4gIGNvbnN0IHBhcmFtTWF4RmVhdHVyZXMgPVxuICAgIHBhcmFtc1dGUy52ZXJzaW9uID09PSB2ZXJzaW9uV2ZzMjAwID8gJ2NvdW50JyA6ICdtYXhGZWF0dXJlcyc7XG4gIGxldCBjbnQgPSBjb3VudFxuICAgID8gYCR7cGFyYW1NYXhGZWF0dXJlc309JHtlZmZlY3RpdmVDb3VudH1gXG4gICAgOiBwYXJhbXNXRlMubWF4RmVhdHVyZXNcbiAgICA/IGAke3BhcmFtTWF4RmVhdHVyZXN9PSR7cGFyYW1zV0ZTLm1heEZlYXR1cmVzfWBcbiAgICA6IGAke3BhcmFtTWF4RmVhdHVyZXN9PSR7ZWZmZWN0aXZlQ291bnR9YDtcbiAgaWYgKGZvcmNlRGVmYXVsdE91dHB1dEZvcm1hdCkge1xuICAgICAgb3V0cHV0Rm9ybWF0ID0gJyc7XG4gICAgICB2ZXJzaW9uID0gJ3ZlcnNpb249MS4xLjAnO1xuICAgICAgY250ID0gY250LnJlcGxhY2UoJ2NvdW50JywgJ21heEZlYXR1cmVzJyk7XG4gICAgfVxuXG4gIGNvbnN0IHNycyA9IGVwc2dcbiAgICA/IGBzcnNuYW1lPSR7ZXBzZ0NvZGV9YFxuICAgIDogcGFyYW1zV0ZTLnNyc05hbWVcbiAgICA/ICdzcnNuYW1lPScgKyBwYXJhbXNXRlMuc3JzTmFtZVxuICAgIDogYHNyc25hbWU9JHtlcHNnQ29kZX1gO1xuXG4gIGxldCBwcm9wZXJ0eU5hbWUgPSAnJztcbiAgbGV0IHZhbHVlUmVmZXJlbmNlID0gJyc7XG4gIGlmIChwcm9wZXJ0aWVzKSB7XG4gICAgcHJvcGVydHlOYW1lID0gYHByb3BlcnR5TmFtZT0ke3Byb3BlcnRpZXN9YDtcbiAgICB2YWx1ZVJlZmVyZW5jZSA9IGB2YWx1ZVJlZmVyZW5jZT0ke3Byb3BlcnRpZXN9YDtcbiAgfVxuICBjb25zdCBzb3VyY2VGaWVsZHMgPSBkYXRhU291cmNlT3B0aW9ucy5zb3VyY2VGaWVsZHM7XG4gIGlmICghcHJvcGVydHlOYW1lICYmIHNvdXJjZUZpZWxkcyAmJiBzb3VyY2VGaWVsZHMubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGZpZWxkc05hbWVzID0gW107XG4gICAgZGF0YVNvdXJjZU9wdGlvbnMuc291cmNlRmllbGRzLmZvckVhY2goc291cmNlZmllbGQgPT4ge1xuICAgICAgZmllbGRzTmFtZXMucHVzaChzb3VyY2VmaWVsZC5uYW1lKTtcbiAgICB9KTtcbiAgICBwcm9wZXJ0eU5hbWUgPSBgcHJvcGVydHlOYW1lPSR7ZmllbGRzTmFtZXMuam9pbignLCcpfSwke1xuICAgICAgcGFyYW1zV0ZTLmZpZWxkTmFtZUdlb21ldHJ5XG4gICAgfWA7XG4gIH1cblxuICBjb25zdCBzZXBhcmF0b3IgPSB1cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJztcbiAgY29uc3QgZ2V0Q2FwYWJpbGl0aWVzID0gYCR7dXJsfSR7c2VwYXJhdG9yfXNlcnZpY2U9V0ZTJnJlcXVlc3Q9R2V0Q2FwYWJpbGl0aWVzJiR7dmVyc2lvbn1gO1xuICBsZXQgZ2V0RmVhdHVyZSA9IGAke3VybH0ke3NlcGFyYXRvcn1zZXJ2aWNlPVdGUyZyZXF1ZXN0PUdldEZlYXR1cmUmJHt2ZXJzaW9ufSYke2ZlYXR1cmVUeXBlc30mYDtcbiAgZ2V0RmVhdHVyZSArPSBgJHtvdXRwdXRGb3JtYXR9JiR7c3JzfSYke2NudH0mJHtwcm9wZXJ0eU5hbWV9JiR7ZWZmZWN0aXZlU3RhcnRJbmRleH1gO1xuXG4gIGxldCBnZXRwcm9wZXJ0eXZhbHVlID0gYCR7dXJsfT9zZXJ2aWNlPVdGUyZyZXF1ZXN0PUdldFByb3BlcnR5VmFsdWUmdmVyc2lvbj0ke3ZlcnNpb25XZnMyMDB9JiR7ZmVhdHVyZVR5cGVzfSZgO1xuICBnZXRwcm9wZXJ0eXZhbHVlICs9IGAmJHtjbnR9JiR7dmFsdWVSZWZlcmVuY2V9YDtcblxuICByZXR1cm4gW1xuICAgIHsgbmFtZTogJ291dHB1dGZvcm1hdCcsIHZhbHVlOiBvdXRwdXRGb3JtYXQgfSxcbiAgICB7IG5hbWU6ICd2ZXJzaW9uJywgdmFsdWU6IHZlcnNpb24gfSxcbiAgICB7IG5hbWU6ICd0eXBlbmFtZScsIHZhbHVlOiBmZWF0dXJlVHlwZXMgfSxcbiAgICB7IG5hbWU6ICdjb3VudCcsIHZhbHVlOiBjbnQgfSxcbiAgICB7IG5hbWU6ICdzcnNuYW1lJywgdmFsdWU6IHNycyB9LFxuICAgIHsgbmFtZTogJ3Byb3BlcnR5bmFtZScsIHZhbHVlOiBwcm9wZXJ0eU5hbWUgfSxcbiAgICB7IG5hbWU6ICd2YWx1ZXJlZmVyZW5jZScsIHZhbHVlOiB2YWx1ZVJlZmVyZW5jZSB9LFxuICAgIHsgbmFtZTogJ2dldGNhcGFiaWxpdGllcycsIHZhbHVlOiBnZXRDYXBhYmlsaXRpZXMucmVwbGFjZSgvJiYvZywgJyYnKSB9LFxuICAgIHsgbmFtZTogJ2dldGZlYXR1cmUnLCB2YWx1ZTogZ2V0RmVhdHVyZS5yZXBsYWNlKC8mJi9nLCAnJicpIH0sXG4gICAgeyBuYW1lOiAnZ2V0cHJvcGVydHl2YWx1ZScsIHZhbHVlOiBnZXRwcm9wZXJ0eXZhbHVlLnJlcGxhY2UoLyYmL2csICcmJykgfVxuICBdO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlL01vZGlmeSBsYXllcidzIHdmcyBvcHRpb25zIGJhc2VkIG9uIDpcbiAqIDEtIGFuIE9wZW5sYXllcnMncyBpc3N1ZSB3aXRoIEdNTCBwcm92aWRlZCBmcm9tIFdGUy4gUmVmZXIgdG9cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVubGF5ZXJzL29wZW5sYXllcnMvcHVsbC82NDAwXG4gKiAyLSBTZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIG9wdGlvbmFscyBwYXJhbWV0ZXJzLlxuICogQHBhcmFtIHdmc0RhdGFTb3VyY2VPcHRpb25zICBXRlNEYXRhU291cmNlT3B0aW9ucyBUaGUgY29tbW9uIHdmcyBkYXRhc291cmNlIG9wdGlvbnMgaW50ZXJmYWNlXG4gKiBAcmV0dXJucyBBbiBhcnJheSBhcnJheSBvZiB7bmFtZTogJycsIHZhbHVlOiAnJ30gb2YgcHJlZGVmaW5lZCBxdWVyeSBwYXJhbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1dmc1BhcmFtcyh3ZnNEYXRhU291cmNlT3B0aW9ucywgc3JjVHlwZT86IHN0cmluZykge1xuICBpZiAoc3JjVHlwZSAmJiBzcmNUeXBlID09PSAnd2ZzJykge1xuICAgIC8vIHJlYXNzaWduYXRpb24gb2YgcGFyYW1zIHRvIHBhcmFtc1dGUyBhbmQgdXJsIHRvIHVybFdGUyB0byBoYXZlIGEgY29tbW9uIGludGVyZmFjZSB3aXRoIHdtcy13ZnMgZGF0YXNvdXJjZXNcbiAgICB3ZnNEYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlMgPSB3ZnNEYXRhU291cmNlT3B0aW9ucy5wYXJhbXM7XG4gIH1cblxuICBjb25zdCBwYXJhbXNXRlMgPSB3ZnNEYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlM7XG4gIHdmc0RhdGFTb3VyY2VPcHRpb25zLnVybFdmcyA9XG4gICAgd2ZzRGF0YVNvdXJjZU9wdGlvbnMudXJsV2ZzIHx8IHdmc0RhdGFTb3VyY2VPcHRpb25zLnVybDtcblxuICBwYXJhbXNXRlMudmVyc2lvbiA9IHBhcmFtc1dGUy52ZXJzaW9uIHx8IGRlZmF1bHRXZnNWZXJzaW9uO1xuICBwYXJhbXNXRlMuZmllbGROYW1lR2VvbWV0cnkgPVxuICAgIHBhcmFtc1dGUy5maWVsZE5hbWVHZW9tZXRyeSB8fCBkZWZhdWx0RmllbGROYW1lR2VvbWV0cnk7XG4gIHBhcmFtc1dGUy5tYXhGZWF0dXJlcyA9IHBhcmFtc1dGUy5tYXhGZWF0dXJlcyB8fCBkZWZhdWx0TWF4RmVhdHVyZXM7XG5cbiAgbGV0IG91dHB1dEZvcm1hdDtcbiAgaWYgKHBhcmFtc1dGUy5vdXRwdXRGb3JtYXQpIHtcbiAgICBvdXRwdXRGb3JtYXQgPSBwYXJhbXNXRlMub3V0cHV0Rm9ybWF0O1xuICB9XG5cbiAgaWYgKGdtbFJlZ2V4LnRlc3Qob3V0cHV0Rm9ybWF0KSB8fCAhb3V0cHV0Rm9ybWF0KSB7XG4gICAgcGFyYW1zV0ZTLnZlcnNpb24gPSAnMS4xLjAnO1xuICB9XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB3ZnNEYXRhU291cmNlT3B0aW9ucyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtYXRGcm9tT3B0aW9ucyhcbiAgb3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfCBXTVNEYXRhU291cmNlT3B0aW9uc1xuKSB7XG4gIGNvbnN0IHdmc09wdGlvbnMgPSBvcHRpb25zIGFzIFdGU0RhdGFTb3VyY2VPcHRpb25zO1xuXG4gIGxldCBvbEZvcm1hdENscztcbiAgY29uc3Qgb3V0cHV0Rm9ybWF0ID0gd2ZzT3B0aW9ucy5wYXJhbXNXRlMub3V0cHV0Rm9ybWF0XG4gICAgPyB3ZnNPcHRpb25zLnBhcmFtc1dGUy5vdXRwdXRGb3JtYXRcbiAgICA6IHVuZGVmaW5lZDtcblxuICBpZiAoIW91dHB1dEZvcm1hdCkge1xuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuV0ZTO1xuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcbiAgfVxuXG4gIGlmIChPbEZvcm1hdFtvdXRwdXRGb3JtYXRdKSB7XG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdFtvdXRwdXRGb3JtYXRdO1xuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnZ21sMicpKSB7XG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5XRlM7XG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh7IC4uLndmc09wdGlvbnMuZm9ybWF0T3B0aW9ucywgLi4uwqB7IGdtbEZvcm1hdDogb2xGb3JtYXRHTUwyIH19KTtcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnZ21sMzInKSkge1xuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuV0ZTO1xuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMoeyAuLi53ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMsIC4uLsKgeyBnbWxGb3JtYXQ6IG9sRm9ybWF0R01MMzIgfX0pO1xuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdnbWwzJykpIHtcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LldGUztcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHsgLi4ud2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zLCAuLi7CoHsgZ21sRm9ybWF0OiBvbEZvcm1hdEdNTDMgfX0pO1xuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCd0b3BvanNvbicpKSB7XG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5Ub3BvSlNPTjtcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2dlb2pzb24nKSkge1xuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuR2VvSlNPTjtcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2Vzcmlqc29uJykpIHtcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LkVzcmlKU09OO1xuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnanNvbicpKSB7XG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5HZW9KU09OO1xuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnZ3B4JykpIHtcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LkdQWDtcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ1dLVCcpKSB7XG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5XS1Q7XG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdvc214bWwnKSkge1xuICAgIG9sRm9ybWF0Q2xzID0gb2xGb3JtYXRPU01YTUw7XG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdrbWwnKSkge1xuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuS01MO1xuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgb2xGb3JtYXRDbHMoKTtcbn1cbiJdfQ==
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLXdmcy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy13ZnMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXBFLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxVQUFVLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFHeEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLE9BQTZCLEVBQzdCLE1BQU0sRUFDTixJQUFrQixFQUNsQixVQUE2QixFQUM3QixXQUFxQjtJQUNyQixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3BDLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLE9B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TyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXRlNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd2ZzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgV01TRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3dtcy1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE9nY0ZpbHRlcnNPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE9nY0ZpbHRlcldyaXRlciB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlcic7XHJcblxyXG5pbXBvcnQgKiBhcyBPbEZvcm1hdCBmcm9tICdvbC9mb3JtYXQnO1xyXG5pbXBvcnQgb2xGb3JtYXRHTUwyIGZyb20gJ29sL2Zvcm1hdC9HTUwyJztcclxuaW1wb3J0IG9sRm9ybWF0R01MMyBmcm9tICdvbC9mb3JtYXQvR01MMyc7XHJcbmltcG9ydCBvbEZvcm1hdEdNTDMyIGZyb20gJ29sL2Zvcm1hdC9HTUwzMic7XHJcbmltcG9ydCBvbEZvcm1hdE9TTVhNTCBmcm9tICdvbC9mb3JtYXQvT1NNWE1MJztcclxuaW1wb3J0IG9sUHJvamVjdGlvbiBmcm9tICdvbC9wcm9qL1Byb2plY3Rpb24nO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRFcHNnID0gJ0VQU0c6Mzg1Nyc7XHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0TWF4RmVhdHVyZXMgPSA1MDAwO1xyXG5leHBvcnQgY29uc3QgZGVmYXVsdFdmc1ZlcnNpb24gPSAnMi4wLjAnO1xyXG5leHBvcnQgY29uc3QgZGVmYXVsdEZpZWxkTmFtZUdlb21ldHJ5ID0gJ2dlb21ldHJ5JztcclxuZXhwb3J0IGNvbnN0IGdtbFJlZ2V4ID0gbmV3IFJlZ0V4cCgvKC4qKT9nbWwoLiopPy9naSk7XHJcbmV4cG9ydCBjb25zdCBqc29uUmVnZXggPSBuZXcgUmVnRXhwKC8oLiopP2pzb24oLiopPy9naSk7XHJcblxyXG5cclxuLyoqXHJcbiAqIFRoaXMgbWV0aG9kIGJ1aWxkIHRoZSBXRlMgVVJMIGJhc2VkIG9uIHRoZSBsYXllciBwcm9wZXJ0eS5cclxuICogQHBhcmFtIG9wdGlvbnMgIFdGU0RhdGFTb3VyY2VPcHRpb25zIFRoZSBjb21tb24gd2ZzIGRhdGFzb3VyY2Ugb3B0aW9ucyBpbnRlcmZhY2VcclxuICogQHBhcmFtIGV4dGVudCAgQW4gZXh0ZW50IGxpa2UgYXJyYXkgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1cclxuICogQHBhcmFtIHByb2ogIG9sUHJvamVjdGlvblxyXG4gKiBAcGFyYW0gb2djRmlsdGVycyAgT2djRmlsdGVyc09wdGlvbnNcclxuICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBkYXRhc291cmNlIG9wdGlvbnMsIGJhc2VkIG9uIGZpbHRlciBhbmQgdmlld3NcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBidWlsZFVybChcclxuICBvcHRpb25zOiBXRlNEYXRhU291cmNlT3B0aW9ucyxcclxuICBleHRlbnQsXHJcbiAgcHJvajogb2xQcm9qZWN0aW9uLFxyXG4gIG9nY0ZpbHRlcnM6IE9nY0ZpbHRlcnNPcHRpb25zLFxyXG4gIHJhbmRvbVBhcmFtPzogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgY29uc3QgcGFyYW1zV0ZTID0gb3B0aW9ucy5wYXJhbXNXRlM7XHJcbiAgY29uc3QgcXVlcnlTdHJpbmdWYWx1ZXMgPSBmb3JtYXRXRlNRdWVyeVN0cmluZyhvcHRpb25zLCB1bmRlZmluZWQsIG9wdGlvbnMucGFyYW1zV0ZTLnNyc05hbWUpO1xyXG4gIGxldCBpZ29GaWx0ZXJzO1xyXG4gIGlmIChvZ2NGaWx0ZXJzICYmIG9nY0ZpbHRlcnMuZW5hYmxlZCkge1xyXG4gICAgaWdvRmlsdGVycyA9IG9nY0ZpbHRlcnMuZmlsdGVycztcclxuICB9XHJcbiAgY29uc3Qgb2djRmlsdGVyV3JpdGVyID0gbmV3IE9nY0ZpbHRlcldyaXRlcigpO1xyXG4gIGNvbnN0IGZpbHRlck9yQm94ID0gb2djRmlsdGVyV3JpdGVyLmJ1aWxkRmlsdGVyKGlnb0ZpbHRlcnMsIGV4dGVudCwgcHJvaiwgb2djRmlsdGVycy5nZW9tZXRyeU5hbWUsIG9wdGlvbnMpO1xyXG4gIGxldCBmaWx0ZXJPclB1c2ggPSBvZ2NGaWx0ZXJXcml0ZXIuaGFuZGxlT2djRmlsdGVyc0FwcGxpZWRWYWx1ZShvcHRpb25zLCBvZ2NGaWx0ZXJzLmdlb21ldHJ5TmFtZSwgZXh0ZW50LCBwcm9qKTtcclxuXHJcbiAgbGV0IHByZWZpeCA9ICdmaWx0ZXInO1xyXG4gIGlmICghZmlsdGVyT3JQdXNoKSB7XHJcbiAgICBwcmVmaXggPSAnYmJveCc7XHJcbiAgICBmaWx0ZXJPclB1c2ggPSBleHRlbnQuam9pbignLCcpICsgJywnICsgcHJvai5nZXRDb2RlKCk7XHJcbiAgfVxyXG5cclxuICBwYXJhbXNXRlMueG1sRmlsdGVyID0gb2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnMgPyBmaWx0ZXJPckJveCA6IGAke3ByZWZpeH09JHtmaWx0ZXJPclB1c2h9YDtcclxuICBsZXQgYmFzZVVybCA9IHF1ZXJ5U3RyaW5nVmFsdWVzLmZpbmQoZiA9PiBmLm5hbWUgPT09ICdnZXRmZWF0dXJlJykudmFsdWU7XHJcbiAgY29uc3QgcGF0dGVybkZpbHRlciA9IC8oZmlsdGVyfGJib3gpPS4qL2dpO1xyXG4gIGJhc2VVcmwgPSBwYXR0ZXJuRmlsdGVyLnRlc3QocGFyYW1zV0ZTLnhtbEZpbHRlcikgPyBgJHtiYXNlVXJsfSYke3BhcmFtc1dGUy54bWxGaWx0ZXJ9YCA6IGJhc2VVcmw7XHJcbiAgb3B0aW9ucy5kb3dubG9hZCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMuZG93bmxvYWQsIHsgZHluYW1pY1VybDogYmFzZVVybCB9KTtcclxuICBpZiAocmFuZG9tUGFyYW0pIHtcclxuICAgIGJhc2VVcmwgKz0gYCQmX3Qke25ldyBEYXRlKCkuZ2V0VGltZSgpfWA7XHJcbiAgfVxyXG4gIHJldHVybiBiYXNlVXJsLnJlcGxhY2UoLyYmL2csICcmJyk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGhpcyBtZXRob2QgYnVpbGQvc3RhbmRhcmRpemUgV0ZTIGNhbGwgcXVlcnkgcGFyYW1zIGJhc2VkIG9uIHRoZSBsYXllciBwcm9wZXJ0eS5cclxuICogQHBhcmFtIHdmc0RhdGFTb3VyY2VPcHRpb25zICBXRlNEYXRhU291cmNlT3B0aW9ucyBUaGUgY29tbW9uIHdmcyBkYXRhc291cmNlIG9wdGlvbnMgaW50ZXJmYWNlXHJcbiAqIEBwYXJhbSBjb3VudCAgTnVtYmVyOiBVc2VkIHRvIGNvbnRyb2wgdGhlIG51bWJlciBvZiBmZWF0dXJlLiBVc2VkIHRvIGJ5cGFzcyB3aGUgd2ZzIGRhdGFzb3VyY2Ugb3B0aW9ucyBpbnRlcmZhY2UgKG1heEZlYXR1cmVzKVxyXG4gKiBAcGFyYW0gZXBzZyAgU3RyaW5nOiBVc2VkIHRvIGNvbnRyb2wgdGhlIEVQU0cgY29kZSAoZXM6ICdFUFNHMzg1NycpLiBVc2VkIHRvIGJ5cGFzcyB3aGUgd2ZzIGRhdGFzb3VyY2Ugb3B0aW9ucyBpbnRlcmZhY2UgKHNyc05hbWUpXHJcbiAqIEBwYXJhbSBwcm9wZXJ0aWVzICBTdHJpbmc6IFVzZWQgdG8gY29udHJvbCB0aGUgcXVlcmllZCBmaWVsZHMgIChXRlMgc2VydmljZSkuXHJcbiAqIEByZXR1cm5zIEFuIGFycmF5IGFycmF5IG9mIHtuYW1lOiAnJywgdmFsdWU6ICcnfSBvZiBwcmVkZWZpbmVkIHF1ZXJ5IHBhcmFtcy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRXRlNRdWVyeVN0cmluZyhcclxuICBkYXRhU291cmNlT3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfCBXTVNEYXRhU291cmNlT3B0aW9ucyxcclxuICBjb3VudD86IG51bWJlcixcclxuICBlcHNnPzogc3RyaW5nLFxyXG4gIHByb3BlcnRpZXM/OiBzdHJpbmcsXHJcbiAgc3RhcnRJbmRleDogbnVtYmVyID0gMCxcclxuICBmb3JjZURlZmF1bHRPdXRwdXRGb3JtYXQ6IGJvb2xlYW4gPSBmYWxzZVxyXG4pOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10ge1xyXG4gIGNvbnN0IHZlcnNpb25XZnMyMDAgPSAnMi4wLjAnOyAvLyBub3QgdGhlIHNhbWUgdXNhZ2UgYXMgZGVmYXVsdFdmc1ZlcnNpb24uXHJcbiAgY29uc3QgdXJsID0gZGF0YVNvdXJjZU9wdGlvbnMudXJsV2ZzO1xyXG4gIGNvbnN0IHBhcmFtc1dGUyA9IGRhdGFTb3VyY2VPcHRpb25zLnBhcmFtc1dGUztcclxuICBjb25zdCBlZmZlY3RpdmVDb3VudCA9IGNvdW50IHx8IGRlZmF1bHRNYXhGZWF0dXJlcztcclxuICBjb25zdCBlZmZlY3RpdmVTdGFydEluZGV4ID0gcGFyYW1zV0ZTLnZlcnNpb24gPT09IHZlcnNpb25XZnMyMDAgPyBgc3RhcnRJbmRleD0ke3N0YXJ0SW5kZXh9YCA6ICcnO1xyXG4gIGNvbnN0IGVwc2dDb2RlID0gZXBzZyB8fCBkZWZhdWx0RXBzZztcclxuICBsZXQgb3V0cHV0Rm9ybWF0ID0gcGFyYW1zV0ZTLm91dHB1dEZvcm1hdFxyXG4gICAgPyBgb3V0cHV0Rm9ybWF0PSR7cGFyYW1zV0ZTLm91dHB1dEZvcm1hdH1gXHJcbiAgICA6ICcnO1xyXG4gIGxldCB2ZXJzaW9uID0gcGFyYW1zV0ZTLnZlcnNpb25cclxuICAgID8gYHZlcnNpb249JHtwYXJhbXNXRlMudmVyc2lvbn1gXHJcbiAgICA6IGB2ZXJzaW9uPSR7ZGVmYXVsdFdmc1ZlcnNpb259YDtcclxuICBjb25zdCBwYXJhbVR5cGVuYW1lID1cclxuICAgIHBhcmFtc1dGUy52ZXJzaW9uID09PSB2ZXJzaW9uV2ZzMjAwID8gJ3R5cGVuYW1lcycgOiAndHlwZW5hbWUnO1xyXG4gIGNvbnN0IGZlYXR1cmVUeXBlcyA9IGAke3BhcmFtVHlwZW5hbWV9PSR7cGFyYW1zV0ZTLmZlYXR1cmVUeXBlc31gO1xyXG4gIGNvbnN0IHBhcmFtTWF4RmVhdHVyZXMgPVxyXG4gICAgcGFyYW1zV0ZTLnZlcnNpb24gPT09IHZlcnNpb25XZnMyMDAgPyAnY291bnQnIDogJ21heEZlYXR1cmVzJztcclxuICBsZXQgY250ID0gY291bnRcclxuICAgID8gYCR7cGFyYW1NYXhGZWF0dXJlc309JHtlZmZlY3RpdmVDb3VudH1gXHJcbiAgICA6IHBhcmFtc1dGUy5tYXhGZWF0dXJlc1xyXG4gICAgPyBgJHtwYXJhbU1heEZlYXR1cmVzfT0ke3BhcmFtc1dGUy5tYXhGZWF0dXJlc31gXHJcbiAgICA6IGAke3BhcmFtTWF4RmVhdHVyZXN9PSR7ZWZmZWN0aXZlQ291bnR9YDtcclxuICBpZiAoZm9yY2VEZWZhdWx0T3V0cHV0Rm9ybWF0KSB7XHJcbiAgICAgIG91dHB1dEZvcm1hdCA9ICcnO1xyXG4gICAgICB2ZXJzaW9uID0gJ3ZlcnNpb249MS4xLjAnO1xyXG4gICAgICBjbnQgPSBjbnQucmVwbGFjZSgnY291bnQnLCAnbWF4RmVhdHVyZXMnKTtcclxuICAgIH1cclxuXHJcbiAgY29uc3Qgc3JzID0gZXBzZ1xyXG4gICAgPyBgc3JzbmFtZT0ke2Vwc2dDb2RlfWBcclxuICAgIDogcGFyYW1zV0ZTLnNyc05hbWVcclxuICAgID8gJ3Nyc25hbWU9JyArIHBhcmFtc1dGUy5zcnNOYW1lXHJcbiAgICA6IGBzcnNuYW1lPSR7ZXBzZ0NvZGV9YDtcclxuXHJcbiAgbGV0IHByb3BlcnR5TmFtZSA9ICcnO1xyXG4gIGxldCB2YWx1ZVJlZmVyZW5jZSA9ICcnO1xyXG4gIGlmIChwcm9wZXJ0aWVzKSB7XHJcbiAgICBwcm9wZXJ0eU5hbWUgPSBgcHJvcGVydHlOYW1lPSR7cHJvcGVydGllc31gO1xyXG4gICAgdmFsdWVSZWZlcmVuY2UgPSBgdmFsdWVSZWZlcmVuY2U9JHtwcm9wZXJ0aWVzfWA7XHJcbiAgfVxyXG4gIGNvbnN0IHNvdXJjZUZpZWxkcyA9IGRhdGFTb3VyY2VPcHRpb25zLnNvdXJjZUZpZWxkcztcclxuICBpZiAoIXByb3BlcnR5TmFtZSAmJiBzb3VyY2VGaWVsZHMgJiYgc291cmNlRmllbGRzLmxlbmd0aCA+IDApIHtcclxuICAgIGNvbnN0IGZpZWxkc05hbWVzID0gW107XHJcbiAgICBkYXRhU291cmNlT3B0aW9ucy5zb3VyY2VGaWVsZHMuZm9yRWFjaChzb3VyY2VmaWVsZCA9PiB7XHJcbiAgICAgIGZpZWxkc05hbWVzLnB1c2goc291cmNlZmllbGQubmFtZSk7XHJcbiAgICB9KTtcclxuICAgIHByb3BlcnR5TmFtZSA9IGBwcm9wZXJ0eU5hbWU9JHtmaWVsZHNOYW1lcy5qb2luKCcsJyl9LCR7XHJcbiAgICAgIHBhcmFtc1dGUy5maWVsZE5hbWVHZW9tZXRyeVxyXG4gICAgfWA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBzZXBhcmF0b3IgPSB1cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJztcclxuICBjb25zdCBnZXRDYXBhYmlsaXRpZXMgPSBgJHt1cmx9JHtzZXBhcmF0b3J9c2VydmljZT1XRlMmcmVxdWVzdD1HZXRDYXBhYmlsaXRpZXMmJHt2ZXJzaW9ufWA7XHJcbiAgbGV0IGdldEZlYXR1cmUgPSBgJHt1cmx9JHtzZXBhcmF0b3J9c2VydmljZT1XRlMmcmVxdWVzdD1HZXRGZWF0dXJlJiR7dmVyc2lvbn0mJHtmZWF0dXJlVHlwZXN9JmA7XHJcbiAgZ2V0RmVhdHVyZSArPSBgJHtvdXRwdXRGb3JtYXR9JiR7c3JzfSYke2NudH0mJHtwcm9wZXJ0eU5hbWV9JiR7ZWZmZWN0aXZlU3RhcnRJbmRleH1gO1xyXG5cclxuICBsZXQgZ2V0cHJvcGVydHl2YWx1ZSA9IGAke3VybH0/c2VydmljZT1XRlMmcmVxdWVzdD1HZXRQcm9wZXJ0eVZhbHVlJnZlcnNpb249JHt2ZXJzaW9uV2ZzMjAwfSYke2ZlYXR1cmVUeXBlc30mYDtcclxuICBnZXRwcm9wZXJ0eXZhbHVlICs9IGAmJHtjbnR9JiR7dmFsdWVSZWZlcmVuY2V9YDtcclxuXHJcbiAgcmV0dXJuIFtcclxuICAgIHsgbmFtZTogJ291dHB1dGZvcm1hdCcsIHZhbHVlOiBvdXRwdXRGb3JtYXQgfSxcclxuICAgIHsgbmFtZTogJ3ZlcnNpb24nLCB2YWx1ZTogdmVyc2lvbiB9LFxyXG4gICAgeyBuYW1lOiAndHlwZW5hbWUnLCB2YWx1ZTogZmVhdHVyZVR5cGVzIH0sXHJcbiAgICB7IG5hbWU6ICdjb3VudCcsIHZhbHVlOiBjbnQgfSxcclxuICAgIHsgbmFtZTogJ3Nyc25hbWUnLCB2YWx1ZTogc3JzIH0sXHJcbiAgICB7IG5hbWU6ICdwcm9wZXJ0eW5hbWUnLCB2YWx1ZTogcHJvcGVydHlOYW1lIH0sXHJcbiAgICB7IG5hbWU6ICd2YWx1ZXJlZmVyZW5jZScsIHZhbHVlOiB2YWx1ZVJlZmVyZW5jZSB9LFxyXG4gICAgeyBuYW1lOiAnZ2V0Y2FwYWJpbGl0aWVzJywgdmFsdWU6IGdldENhcGFiaWxpdGllcy5yZXBsYWNlKC8mJi9nLCAnJicpIH0sXHJcbiAgICB7IG5hbWU6ICdnZXRmZWF0dXJlJywgdmFsdWU6IGdldEZlYXR1cmUucmVwbGFjZSgvJiYvZywgJyYnKSB9LFxyXG4gICAgeyBuYW1lOiAnZ2V0cHJvcGVydHl2YWx1ZScsIHZhbHVlOiBnZXRwcm9wZXJ0eXZhbHVlLnJlcGxhY2UoLyYmL2csICcmJykgfVxyXG4gIF07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBWYWxpZGF0ZS9Nb2RpZnkgbGF5ZXIncyB3ZnMgb3B0aW9ucyBiYXNlZCBvbiA6XHJcbiAqIDEtIGFuIE9wZW5sYXllcnMncyBpc3N1ZSB3aXRoIEdNTCBwcm92aWRlZCBmcm9tIFdGUy4gUmVmZXIgdG9cclxuICogaHR0cHM6Ly9naXRodWIuY29tL29wZW5sYXllcnMvb3BlbmxheWVycy9wdWxsLzY0MDBcclxuICogMi0gU2V0IGRlZmF1bHQgdmFsdWVzIGZvciBvcHRpb25hbHMgcGFyYW1ldGVycy5cclxuICogQHBhcmFtIHdmc0RhdGFTb3VyY2VPcHRpb25zICBXRlNEYXRhU291cmNlT3B0aW9ucyBUaGUgY29tbW9uIHdmcyBkYXRhc291cmNlIG9wdGlvbnMgaW50ZXJmYWNlXHJcbiAqIEByZXR1cm5zIEFuIGFycmF5IGFycmF5IG9mIHtuYW1lOiAnJywgdmFsdWU6ICcnfSBvZiBwcmVkZWZpbmVkIHF1ZXJ5IHBhcmFtcy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjaGVja1dmc1BhcmFtcyh3ZnNEYXRhU291cmNlT3B0aW9ucywgc3JjVHlwZT86IHN0cmluZykge1xyXG4gIGlmIChzcmNUeXBlICYmIHNyY1R5cGUgPT09ICd3ZnMnKSB7XHJcbiAgICAvLyByZWFzc2lnbmF0aW9uIG9mIHBhcmFtcyB0byBwYXJhbXNXRlMgYW5kIHVybCB0byB1cmxXRlMgdG8gaGF2ZSBhIGNvbW1vbiBpbnRlcmZhY2Ugd2l0aCB3bXMtd2ZzIGRhdGFzb3VyY2VzXHJcbiAgICB3ZnNEYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlMgPSB3ZnNEYXRhU291cmNlT3B0aW9ucy5wYXJhbXM7XHJcbiAgfVxyXG5cclxuICBjb25zdCBwYXJhbXNXRlMgPSB3ZnNEYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlM7XHJcbiAgd2ZzRGF0YVNvdXJjZU9wdGlvbnMudXJsV2ZzID1cclxuICAgIHdmc0RhdGFTb3VyY2VPcHRpb25zLnVybFdmcyB8fCB3ZnNEYXRhU291cmNlT3B0aW9ucy51cmw7XHJcblxyXG4gIHBhcmFtc1dGUy52ZXJzaW9uID0gcGFyYW1zV0ZTLnZlcnNpb24gfHwgZGVmYXVsdFdmc1ZlcnNpb247XHJcbiAgcGFyYW1zV0ZTLmZpZWxkTmFtZUdlb21ldHJ5ID1cclxuICAgIHBhcmFtc1dGUy5maWVsZE5hbWVHZW9tZXRyeSB8fCBkZWZhdWx0RmllbGROYW1lR2VvbWV0cnk7XHJcbiAgcGFyYW1zV0ZTLm1heEZlYXR1cmVzID0gcGFyYW1zV0ZTLm1heEZlYXR1cmVzIHx8IGRlZmF1bHRNYXhGZWF0dXJlcztcclxuXHJcbiAgbGV0IG91dHB1dEZvcm1hdDtcclxuICBpZiAocGFyYW1zV0ZTLm91dHB1dEZvcm1hdCkge1xyXG4gICAgb3V0cHV0Rm9ybWF0ID0gcGFyYW1zV0ZTLm91dHB1dEZvcm1hdDtcclxuICB9XHJcblxyXG4gIGlmIChnbWxSZWdleC50ZXN0KG91dHB1dEZvcm1hdCkgfHwgIW91dHB1dEZvcm1hdCkge1xyXG4gICAgcGFyYW1zV0ZTLnZlcnNpb24gPSAnMS4xLjAnO1xyXG4gIH1cclxuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgd2ZzRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0RnJvbU9wdGlvbnMoXHJcbiAgb3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfCBXTVNEYXRhU291cmNlT3B0aW9uc1xyXG4pIHtcclxuICBjb25zdCB3ZnNPcHRpb25zID0gb3B0aW9ucyBhcyBXRlNEYXRhU291cmNlT3B0aW9ucztcclxuXHJcbiAgbGV0IG9sRm9ybWF0Q2xzO1xyXG4gIGNvbnN0IG91dHB1dEZvcm1hdCA9IHdmc09wdGlvbnMucGFyYW1zV0ZTLm91dHB1dEZvcm1hdFxyXG4gICAgPyB3ZnNPcHRpb25zLnBhcmFtc1dGUy5vdXRwdXRGb3JtYXRcclxuICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICBpZiAoIW91dHB1dEZvcm1hdCkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5XRlM7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBpZiAoT2xGb3JtYXRbb3V0cHV0Rm9ybWF0XSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdFtvdXRwdXRGb3JtYXRdO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2dtbDInKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5XRlM7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHsgLi4ud2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zLCAuLi7CoHsgZ21sRm9ybWF0OiBvbEZvcm1hdEdNTDIgfX0pO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2dtbDMyJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuV0ZTO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh7IC4uLndmc09wdGlvbnMuZm9ybWF0T3B0aW9ucywgLi4uwqB7IGdtbEZvcm1hdDogb2xGb3JtYXRHTUwzMiB9fSk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnZ21sMycpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LldGUztcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMoeyAuLi53ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMsIC4uLsKgeyBnbWxGb3JtYXQ6IG9sRm9ybWF0R01MMyB9fSk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgndG9wb2pzb24nKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5Ub3BvSlNPTjtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdnZW9qc29uJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuR2VvSlNPTjtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdlc3JpanNvbicpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LkVzcmlKU09OO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2pzb24nKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5HZW9KU09OO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2dweCcpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LkdQWDtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdXS1QnKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5XS1Q7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnb3NteG1sJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gb2xGb3JtYXRPU01YTUw7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgna21sJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuS01MO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG5ldyBvbEZvcm1hdENscygpO1xyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid210cy1kYXRhc291cmNlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtdHMtZGF0YXNvdXJjZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvbFNvdXJjZVdNVFMgZnJvbSAnb2wvc291cmNlL1dNVFMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2RhdGFzb3VyY2UuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBXTVRTRGF0YVNvdXJjZU9wdGlvbnMgZXh0ZW5kcyBEYXRhU291cmNlT3B0aW9ucyB7XG4gIC8vIHR5cGU/OiAnd210cyc7XG4gIHByb2plY3Rpb24/OiBzdHJpbmc7XG4gIGxheWVyOiBzdHJpbmc7XG4gIHN0eWxlPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBmb3JtYXQ/OiBzdHJpbmc7XG4gIG1hdHJpeFNldD86IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xuICB1cmxzPzogc3RyaW5nW107XG4gIG9sPzogb2xTb3VyY2VXTVRTO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid210cy1kYXRhc291cmNlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtdHMtZGF0YXNvdXJjZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvbFNvdXJjZVdNVFMgZnJvbSAnb2wvc291cmNlL1dNVFMnO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXTVRTRGF0YVNvdXJjZU9wdGlvbnMgZXh0ZW5kcyBEYXRhU291cmNlT3B0aW9ucyB7XHJcbiAgLy8gdHlwZT86ICd3bXRzJztcclxuICBwcm9qZWN0aW9uPzogc3RyaW5nO1xyXG4gIGxheWVyOiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBzdHJpbmc7XHJcbiAgdmVyc2lvbj86IHN0cmluZztcclxuICBmb3JtYXQ/OiBzdHJpbmc7XHJcbiAgbWF0cml4U2V0Pzogc3RyaW5nO1xyXG4gIHVybD86IHN0cmluZztcclxuICB1cmxzPzogc3RyaW5nW107XHJcbiAgb2w/OiBvbFNvdXJjZVdNVFM7XHJcbn1cclxuIl19
@@ -13,4 +13,4 @@ export class WMTSDataSource extends DataSource {
13
13
  }
14
14
  onUnwatch() { }
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid210cy1kYXRhc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd210cy1kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBSTVDLFlBQVksT0FBOEI7UUFDeEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFUyxjQUFjO1FBQ3RCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ2pDO1lBQ0UsUUFBUSxFQUFFLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBb0IsQ0FBQztTQUNuRSxFQUNELElBQUksQ0FBQyxPQUFPLENBQ0YsQ0FBQztRQUViLE9BQU8sSUFBSSxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLFNBQVMsS0FBSSxDQUFDO0NBRXRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ29sL3NvdXJjZS9XTVRTJztcbmltcG9ydCBvbFNvdXJjZVdNVFMgZnJvbSAnb2wvc291cmNlL1dNVFMnO1xuXG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0VGlsZUdyaWQgfSBmcm9tICcuLi8uLi91dGlscy90aWxlZ3JpZCc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi9kYXRhc291cmNlJztcbmltcG9ydCB7IFdNVFNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd210cy1kYXRhc291cmNlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBXTVRTRGF0YVNvdXJjZSBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBwdWJsaWMgb3B0aW9uczogV01UU0RhdGFTb3VyY2VPcHRpb25zO1xuICBwdWJsaWMgb2w6IG9sU291cmNlV01UUztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBXTVRTRGF0YVNvdXJjZU9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVPbFNvdXJjZSgpOiBvbFNvdXJjZVdNVFMge1xuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKFxuICAgICAge1xuICAgICAgICB0aWxlR3JpZDogY3JlYXRlRGVmYXVsdFRpbGVHcmlkKHRoaXMub3B0aW9ucy5wcm9qZWN0aW9uIGFzIHN0cmluZylcbiAgICAgIH0sXG4gICAgICB0aGlzLm9wdGlvbnNcbiAgICApIGFzIE9wdGlvbnM7XG5cbiAgICByZXR1cm4gbmV3IG9sU291cmNlV01UUyhzb3VyY2VPcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBvblVud2F0Y2goKSB7fVxuXG59XG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid210cy1kYXRhc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd210cy1kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBSTVDLFlBQVksT0FBOEI7UUFDeEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFUyxjQUFjO1FBQ3RCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ2pDO1lBQ0UsUUFBUSxFQUFFLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBb0IsQ0FBQztTQUNuRSxFQUNELElBQUksQ0FBQyxPQUFPLENBQ0YsQ0FBQztRQUViLE9BQU8sSUFBSSxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLFNBQVMsS0FBSSxDQUFDO0NBRXRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ29sL3NvdXJjZS9XTVRTJztcclxuaW1wb3J0IG9sU291cmNlV01UUyBmcm9tICdvbC9zb3VyY2UvV01UUyc7XHJcblxyXG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0VGlsZUdyaWQgfSBmcm9tICcuLi8uLi91dGlscy90aWxlZ3JpZCc7XHJcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuL2RhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBXTVRTRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3dtdHMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFdNVFNEYXRhU291cmNlIGV4dGVuZHMgRGF0YVNvdXJjZSB7XHJcbiAgcHVibGljIG9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9ucztcclxuICBwdWJsaWMgb2w6IG9sU291cmNlV01UUztcclxuXHJcbiAgY29uc3RydWN0b3Iob3B0aW9uczogV01UU0RhdGFTb3VyY2VPcHRpb25zKSB7XHJcbiAgICBzdXBlcihvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjcmVhdGVPbFNvdXJjZSgpOiBvbFNvdXJjZVdNVFMge1xyXG4gICAgY29uc3Qgc291cmNlT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgIHtcclxuICAgICAgICB0aWxlR3JpZDogY3JlYXRlRGVmYXVsdFRpbGVHcmlkKHRoaXMub3B0aW9ucy5wcm9qZWN0aW9uIGFzIHN0cmluZylcclxuICAgICAgfSxcclxuICAgICAgdGhpcy5vcHRpb25zXHJcbiAgICApIGFzIE9wdGlvbnM7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBvbFNvdXJjZVdNVFMoc291cmNlT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25VbndhdGNoKCkge31cclxuXHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHl6LWRhdGFzb3VyY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMveHl6LWRhdGFzb3VyY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xTb3VyY2VYWVogZnJvbSAnb2wvc291cmNlL1hZWic7XG5pbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFhZWkRhdGFTb3VyY2VPcHRpb25zIGV4dGVuZHMgRGF0YVNvdXJjZU9wdGlvbnMge1xuICAvLyB0eXBlPzogJ3h5eic7XG4gIHByb2plY3Rpb24/OiBzdHJpbmc7XG4gIG9sPzogb2xTb3VyY2VYWVo7XG4gIHVybD86IHN0cmluZztcbiAgdXJscz86IHN0cmluZ1tdO1xuICBwYXRoT2ZmbGluZT86IHN0cmluZztcbiAgZXhjbHVkZUF0dHJpYnV0ZT86IEFycmF5PHN0cmluZz47XG4gIGV4Y2x1ZGVBdHRyaWJ1dGVPZmZsaW5lPzogQXJyYXk8c3RyaW5nPjtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHl6LWRhdGFzb3VyY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMveHl6LWRhdGFzb3VyY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xTb3VyY2VYWVogZnJvbSAnb2wvc291cmNlL1hZWic7XHJcbmltcG9ydCB7IERhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9kYXRhc291cmNlLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFhZWkRhdGFTb3VyY2VPcHRpb25zIGV4dGVuZHMgRGF0YVNvdXJjZU9wdGlvbnMge1xyXG4gIC8vIHR5cGU/OiAneHl6JztcclxuICBwcm9qZWN0aW9uPzogc3RyaW5nO1xyXG4gIG9sPzogb2xTb3VyY2VYWVo7XHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIHVybHM/OiBzdHJpbmdbXTtcclxuICBwYXRoT2ZmbGluZT86IHN0cmluZztcclxuICBleGNsdWRlQXR0cmlidXRlPzogQXJyYXk8c3RyaW5nPjtcclxuICBleGNsdWRlQXR0cmlidXRlT2ZmbGluZT86IEFycmF5PHN0cmluZz47XHJcbn1cclxuIl19
@@ -6,4 +6,4 @@ export class XYZDataSource extends DataSource {
6
6
  }
7
7
  onUnwatch() { }
8
8
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHl6LWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy94eXotZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFdBQVcsTUFBTSxlQUFlLENBQUM7QUFFeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUcxQyxNQUFNLE9BQU8sYUFBYyxTQUFRLFVBQVU7SUFJakMsY0FBYztRQUN0QixPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sU0FBUyxLQUFJLENBQUM7Q0FFdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xTb3VyY2VYWVogZnJvbSAnb2wvc291cmNlL1hZWic7XG5cbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuL2RhdGFzb3VyY2UnO1xuaW1wb3J0IHsgWFlaRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3h5ei1kYXRhc291cmNlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBYWVpEYXRhU291cmNlIGV4dGVuZHMgRGF0YVNvdXJjZSB7XG4gIHB1YmxpYyBvcHRpb25zOiBYWVpEYXRhU291cmNlT3B0aW9ucztcbiAgcHVibGljIG9sOiBvbFNvdXJjZVhZWjtcblxuICBwcm90ZWN0ZWQgY3JlYXRlT2xTb3VyY2UoKTogb2xTb3VyY2VYWVoge1xuICAgIHJldHVybiBuZXcgb2xTb3VyY2VYWVoodGhpcy5vcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBvblVud2F0Y2goKSB7fVxuXG59XG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHl6LWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy94eXotZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFdBQVcsTUFBTSxlQUFlLENBQUM7QUFFeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUcxQyxNQUFNLE9BQU8sYUFBYyxTQUFRLFVBQVU7SUFJakMsY0FBYztRQUN0QixPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sU0FBUyxLQUFJLENBQUM7Q0FFdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xTb3VyY2VYWVogZnJvbSAnb2wvc291cmNlL1hZWic7XHJcblxyXG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi9kYXRhc291cmNlJztcclxuaW1wb3J0IHsgWFlaRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3h5ei1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgWFlaRGF0YVNvdXJjZSBleHRlbmRzIERhdGFTb3VyY2Uge1xyXG4gIHB1YmxpYyBvcHRpb25zOiBYWVpEYXRhU291cmNlT3B0aW9ucztcclxuICBwdWJsaWMgb2w6IG9sU291cmNlWFlaO1xyXG5cclxuICBwcm90ZWN0ZWQgY3JlYXRlT2xTb3VyY2UoKTogb2xTb3VyY2VYWVoge1xyXG4gICAgcmV0dXJuIG5ldyBvbFNvdXJjZVhZWih0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uVW53YXRjaCgpIHt9XHJcblxyXG59XHJcbiJdfQ==
@@ -2,4 +2,4 @@ export * from './datasources';
2
2
  export * from './datasource.service';
3
3
  export * from './capabilities.service';
4
4
  export * from './options';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGFzb3VyY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXNvdXJjZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY2FwYWJpbGl0aWVzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vcHRpb25zJztcbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGFzb3VyY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRhc291cmNlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhcGFiaWxpdGllcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9vcHRpb25zJztcclxuIl19
@@ -2,4 +2,4 @@ export * from './options.service';
2
2
  export * from './options-api.service';
3
3
  export * from './options-api.interface';
4
4
  export * from './options-api.providers';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9vcHRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL29wdGlvbnMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL29wdGlvbnMtYXBpLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vcHRpb25zLWFwaS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9vcHRpb25zLWFwaS5wcm92aWRlcnMnO1xuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9vcHRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL29wdGlvbnMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucy1hcGkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucy1hcGkuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9vcHRpb25zLWFwaS5wcm92aWRlcnMnO1xyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1hcGkuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvb3B0aW9ucy9vcHRpb25zLWFwaS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uc0FwaU9wdGlvbnMge1xuICB1cmw/OiBzdHJpbmc7XG4gIHByb3ZpZGVDb250ZXh0VXJpPzogYm9vbGVhbjtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1hcGkuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvb3B0aW9ucy9vcHRpb25zLWFwaS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT3B0aW9uc0FwaU9wdGlvbnMge1xyXG4gIHVybD86IHN0cmluZztcclxuICBwcm92aWRlQ29udGV4dFVyaT86IGJvb2xlYW47XHJcbn1cclxuIl19
@@ -12,4 +12,4 @@ export function provideOptionsApi() {
12
12
  deps: [HttpClient, ConfigService]
13
13
  };
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1hcGkucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvb3B0aW9ucy9vcHRpb25zLWFwaS5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsSUFBZ0IsRUFDaEIsYUFBNEI7SUFFNUIsT0FBTyxJQUFJLGlCQUFpQixDQUMxQixJQUFJLEVBQ0osYUFBYSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FDdEMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCO0lBQy9CLE9BQU87UUFDTCxPQUFPLEVBQUUsY0FBYztRQUN2QixVQUFVLEVBQUUsaUJBQWlCO1FBQzdCLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUM7S0FDbEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5cbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3B0aW9uc0FwaVNlcnZpY2UgfSBmcm9tICcuL29wdGlvbnMtYXBpLnNlcnZpY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gb3B0aW9uc0FwaUZhY3RvcnkoXG4gIGh0dHA6IEh0dHBDbGllbnQsXG4gIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2Vcbikge1xuICByZXR1cm4gbmV3IE9wdGlvbnNBcGlTZXJ2aWNlKFxuICAgIGh0dHAsXG4gICAgY29uZmlnU2VydmljZS5nZXRDb25maWcoJ29wdGlvbnNBcGknKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVPcHRpb25zQXBpKCkge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IE9wdGlvbnNTZXJ2aWNlLFxuICAgIHVzZUZhY3Rvcnk6IG9wdGlvbnNBcGlGYWN0b3J5LFxuICAgIGRlcHM6IFtIdHRwQ2xpZW50LCBDb25maWdTZXJ2aWNlXVxuICB9O1xufVxuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1hcGkucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvb3B0aW9ucy9vcHRpb25zLWFwaS5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsSUFBZ0IsRUFDaEIsYUFBNEI7SUFFNUIsT0FBTyxJQUFJLGlCQUFpQixDQUMxQixJQUFJLEVBQ0osYUFBYSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FDdEMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCO0lBQy9CLE9BQU87UUFDTCxPQUFPLEVBQUUsY0FBYztRQUN2QixVQUFVLEVBQUUsaUJBQWlCO1FBQzdCLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUM7S0FDbEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuL29wdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IE9wdGlvbnNBcGlTZXJ2aWNlIH0gZnJvbSAnLi9vcHRpb25zLWFwaS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBvcHRpb25zQXBpRmFjdG9yeShcclxuICBodHRwOiBIdHRwQ2xpZW50LFxyXG4gIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2VcclxuKSB7XHJcbiAgcmV0dXJuIG5ldyBPcHRpb25zQXBpU2VydmljZShcclxuICAgIGh0dHAsXHJcbiAgICBjb25maWdTZXJ2aWNlLmdldENvbmZpZygnb3B0aW9uc0FwaScpLFxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlT3B0aW9uc0FwaSgpIHtcclxuICByZXR1cm4ge1xyXG4gICAgcHJvdmlkZTogT3B0aW9uc1NlcnZpY2UsXHJcbiAgICB1c2VGYWN0b3J5OiBvcHRpb25zQXBpRmFjdG9yeSxcclxuICAgIGRlcHM6IFtIdHRwQ2xpZW50LCBDb25maWdTZXJ2aWNlXVxyXG4gIH07XHJcbn1cclxuIl19
@@ -78,4 +78,4 @@ OptionsApiService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Option
78
78
  type: Inject,
79
79
  args: ['options']
80
80
  }] }]; }, null); })();
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL29wdGlvbnMvb3B0aW9ucy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFNbkQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGNBQWM7SUFJbkQsWUFDVSxJQUFnQixFQUNMLFVBQTZCLEVBQUU7UUFFbEQsS0FBSyxFQUFFLENBQUM7UUFIQSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBSXhCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQy9FLENBQUM7SUFFRCxhQUFhLENBQ1gsV0FBaUMsRUFDakMsa0JBQTJCO1FBRTNCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLEVBQTBCLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzFCLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7Z0JBQ3RCLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRztnQkFDcEIsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTTthQUNsQztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksa0JBQWtCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ2hELE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN6QyxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUNqQixHQUFHLENBQ0QsQ0FBQyxHQUdBLEVBQUUsRUFBRTtZQUNILElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFO2dCQUM5QixPQUFPLEVBQTBCLENBQUM7YUFDbkM7WUFDRCxJQUFJLEdBQUcsQ0FBQyxZQUFZLEVBQUU7Z0JBQ3BCLEdBQUcsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQzthQUM5RDtZQUNELE9BQU8sR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUMzQixDQUFDLENBQ0YsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUdELG9CQUFvQixDQUNsQixXQUE2RyxFQUM3RyxrQkFBMkI7UUFFM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTyxFQUFFLENBQUMsRUFBc0MsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDMUIsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtnQkFDdEIsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHO2dCQUNwQixNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUs7YUFDMUI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLGtCQUFrQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNoRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztTQUN2RDtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDekMsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDLElBQUksQ0FDakIsR0FBRyxDQUNELENBQUMsR0FHQSxFQUFFLEVBQUU7WUFDSCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRTtnQkFDOUIsT0FBTyxFQUFzRyxDQUFDO2FBQy9HO1lBQ0QsSUFBSSxHQUFHLENBQUMsWUFBWSxFQUFFO2dCQUNwQixHQUFHLENBQUMsYUFBYSxDQUFDLHVCQUF1QixHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7YUFDOUQ7WUFDRCxPQUFPLEdBQUcsQ0FBQyxhQUFhLENBQUM7UUFDM0IsQ0FBQyxDQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7O2tGQTlGVSxpQkFBaUIsMENBTWxCLFNBQVM7dUVBTlIsaUJBQWlCLFdBQWpCLGlCQUFpQixtQkFGaEIsTUFBTTt1RkFFUCxpQkFBaUI7Y0FIN0IsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COztzQkFPSSxNQUFNO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXG4gIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICBXTVNEYXRhU291cmNlT3B0aW9uc1xufSBmcm9tICcuLi9kYXRhc291cmNlcyc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4vb3B0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE9wdGlvbnNBcGlPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zLWFwaS5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBPcHRpb25zQXBpU2VydmljZSBleHRlbmRzIE9wdGlvbnNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB1cmxBcGk6IHN0cmluZztcbiAgcHJpdmF0ZSBwcm92aWRlQ29udGV4dFVyaTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQEluamVjdCgnb3B0aW9ucycpIG9wdGlvbnM6IE9wdGlvbnNBcGlPcHRpb25zID0ge31cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnVybEFwaSA9IG9wdGlvbnMudXJsIHx8IHRoaXMudXJsQXBpO1xuICAgIHRoaXMucHJvdmlkZUNvbnRleHRVcmkgPSBvcHRpb25zLnByb3ZpZGVDb250ZXh0VXJpIHx8IHRoaXMucHJvdmlkZUNvbnRleHRVcmk7XG4gIH1cblxuICBnZXRXTVNPcHRpb25zKFxuICAgIGJhc2VPcHRpb25zOiBXTVNEYXRhU291cmNlT3B0aW9ucyxcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxXTVNEYXRhU291cmNlT3B0aW9ucz4ge1xuICAgIGlmICghdGhpcy51cmxBcGkpIHtcbiAgICAgIHJldHVybiBvZih7fSBhcyBXTVNEYXRhU291cmNlT3B0aW9ucyk7XG4gICAgfVxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XG4gICAgICBmcm9tT2JqZWN0OiB7XG4gICAgICAgIHR5cGU6IGJhc2VPcHRpb25zLnR5cGUsXG4gICAgICAgIHVybDogYmFzZU9wdGlvbnMudXJsLFxuICAgICAgICBsYXllcnM6IGJhc2VPcHRpb25zLnBhcmFtcy5MQVlFUlNcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChkZXRhaWxlZENvbnRleHRVcmkgJiYgdGhpcy5wcm92aWRlQ29udGV4dFVyaSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnY29udGV4dCcsIGRldGFpbGVkQ29udGV4dFVyaSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdCA9IHRoaXMuaHR0cC5nZXQodGhpcy51cmxBcGksIHtcbiAgICAgIHBhcmFtc1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlcXVlc3QucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKHJlczoge1xuICAgICAgICAgIHNvdXJjZU9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zO1xuICAgICAgICAgIGxheWVyT3B0aW9uczogeyBba2V5czogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgICAgIH0pID0+IHtcbiAgICAgICAgICBpZiAoIXJlcyB8fCAhcmVzLnNvdXJjZU9wdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB7fSBhcyBXTVNEYXRhU291cmNlT3B0aW9ucztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlcy5sYXllck9wdGlvbnMpIHtcbiAgICAgICAgICAgIHJlcy5zb3VyY2VPcHRpb25zLl9sYXllck9wdGlvbnNGcm9tU291cmNlID0gcmVzLmxheWVyT3B0aW9ucztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlcy5zb3VyY2VPcHRpb25zO1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfVxuXG5cbiAgZ2V0QXJjZ2lzUmVzdE9wdGlvbnMoXG4gICAgYmFzZU9wdGlvbnM6IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM+IHtcbiAgICBpZiAoIXRoaXMudXJsQXBpKSB7XG4gICAgICByZXR1cm4gb2Yoe30gYXMgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMpO1xuICAgIH1cbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgZnJvbU9iamVjdDoge1xuICAgICAgICB0eXBlOiBiYXNlT3B0aW9ucy50eXBlLFxuICAgICAgICB1cmw6IGJhc2VPcHRpb25zLnVybCxcbiAgICAgICAgbGF5ZXJzOiBiYXNlT3B0aW9ucy5sYXllclxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGRldGFpbGVkQ29udGV4dFVyaSAmJiB0aGlzLnByb3ZpZGVDb250ZXh0VXJpKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdjb250ZXh0JywgZGV0YWlsZWRDb250ZXh0VXJpKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5odHRwLmdldCh0aGlzLnVybEFwaSwge1xuICAgICAgcGFyYW1zXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVxdWVzdC5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAocmVzOiB7XG4gICAgICAgICAgc291cmNlT3B0aW9uczogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zO1xuICAgICAgICAgIGxheWVyT3B0aW9uczogeyBba2V5czogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgICAgIH0pID0+IHtcbiAgICAgICAgICBpZiAoIXJlcyB8fCAhcmVzLnNvdXJjZU9wdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB7fSBhcyBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXMubGF5ZXJPcHRpb25zKSB7XG4gICAgICAgICAgICByZXMuc291cmNlT3B0aW9ucy5fbGF5ZXJPcHRpb25zRnJvbVNvdXJjZSA9IHJlcy5sYXllck9wdGlvbnM7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXMuc291cmNlT3B0aW9ucztcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL29wdGlvbnMvb3B0aW9ucy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFNbkQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGNBQWM7SUFJbkQsWUFDVSxJQUFnQixFQUNMLFVBQTZCLEVBQUU7UUFFbEQsS0FBSyxFQUFFLENBQUM7UUFIQSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBSXhCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQy9FLENBQUM7SUFFRCxhQUFhLENBQ1gsV0FBaUMsRUFDakMsa0JBQTJCO1FBRTNCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLEVBQTBCLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzFCLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7Z0JBQ3RCLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRztnQkFDcEIsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTTthQUNsQztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksa0JBQWtCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ2hELE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN6QyxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUNqQixHQUFHLENBQ0QsQ0FBQyxHQUdBLEVBQUUsRUFBRTtZQUNILElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFO2dCQUM5QixPQUFPLEVBQTBCLENBQUM7YUFDbkM7WUFDRCxJQUFJLEdBQUcsQ0FBQyxZQUFZLEVBQUU7Z0JBQ3BCLEdBQUcsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQzthQUM5RDtZQUNELE9BQU8sR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUMzQixDQUFDLENBQ0YsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUdELG9CQUFvQixDQUNsQixXQUE2RyxFQUM3RyxrQkFBMkI7UUFFM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTyxFQUFFLENBQUMsRUFBc0MsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDMUIsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtnQkFDdEIsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHO2dCQUNwQixNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUs7YUFDMUI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLGtCQUFrQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNoRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztTQUN2RDtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDekMsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDLElBQUksQ0FDakIsR0FBRyxDQUNELENBQUMsR0FHQSxFQUFFLEVBQUU7WUFDSCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRTtnQkFDOUIsT0FBTyxFQUFzRyxDQUFDO2FBQy9HO1lBQ0QsSUFBSSxHQUFHLENBQUMsWUFBWSxFQUFFO2dCQUNwQixHQUFHLENBQUMsYUFBYSxDQUFDLHVCQUF1QixHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7YUFDOUQ7WUFDRCxPQUFPLEdBQUcsQ0FBQyxhQUFhLENBQUM7UUFDM0IsQ0FBQyxDQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7O2tGQTlGVSxpQkFBaUIsMENBTWxCLFNBQVM7dUVBTlIsaUJBQWlCLFdBQWpCLGlCQUFpQixtQkFGaEIsTUFBTTt1RkFFUCxpQkFBaUI7Y0FIN0IsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COztzQkFPSSxNQUFNO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVNEYXRhU291cmNlT3B0aW9uc1xyXG59IGZyb20gJy4uL2RhdGFzb3VyY2VzJztcclxuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuL29wdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IE9wdGlvbnNBcGlPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zLWFwaS5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgT3B0aW9uc0FwaVNlcnZpY2UgZXh0ZW5kcyBPcHRpb25zU2VydmljZSB7XHJcbiAgcHJpdmF0ZSB1cmxBcGk6IHN0cmluZztcclxuICBwcml2YXRlIHByb3ZpZGVDb250ZXh0VXJpOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIEBJbmplY3QoJ29wdGlvbnMnKSBvcHRpb25zOiBPcHRpb25zQXBpT3B0aW9ucyA9IHt9XHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy51cmxBcGkgPSBvcHRpb25zLnVybCB8fCB0aGlzLnVybEFwaTtcclxuICAgIHRoaXMucHJvdmlkZUNvbnRleHRVcmkgPSBvcHRpb25zLnByb3ZpZGVDb250ZXh0VXJpIHx8IHRoaXMucHJvdmlkZUNvbnRleHRVcmk7XHJcbiAgfVxyXG5cclxuICBnZXRXTVNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxXTVNEYXRhU291cmNlT3B0aW9ucz4ge1xyXG4gICAgaWYgKCF0aGlzLnVybEFwaSkge1xyXG4gICAgICByZXR1cm4gb2Yoe30gYXMgV01TRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgZnJvbU9iamVjdDoge1xyXG4gICAgICAgIHR5cGU6IGJhc2VPcHRpb25zLnR5cGUsXHJcbiAgICAgICAgdXJsOiBiYXNlT3B0aW9ucy51cmwsXHJcbiAgICAgICAgbGF5ZXJzOiBiYXNlT3B0aW9ucy5wYXJhbXMuTEFZRVJTXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChkZXRhaWxlZENvbnRleHRVcmkgJiYgdGhpcy5wcm92aWRlQ29udGV4dFVyaSkge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdjb250ZXh0JywgZGV0YWlsZWRDb250ZXh0VXJpKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5odHRwLmdldCh0aGlzLnVybEFwaSwge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZXF1ZXN0LnBpcGUoXHJcbiAgICAgIG1hcChcclxuICAgICAgICAocmVzOiB7XHJcbiAgICAgICAgICBzb3VyY2VPcHRpb25zOiBXTVNEYXRhU291cmNlT3B0aW9ucztcclxuICAgICAgICAgIGxheWVyT3B0aW9uczogeyBba2V5czogc3RyaW5nXTogc3RyaW5nIH07XHJcbiAgICAgICAgfSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFyZXMgfHwgIXJlcy5zb3VyY2VPcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7fSBhcyBXTVNEYXRhU291cmNlT3B0aW9ucztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXMubGF5ZXJPcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHJlcy5zb3VyY2VPcHRpb25zLl9sYXllck9wdGlvbnNGcm9tU291cmNlID0gcmVzLmxheWVyT3B0aW9ucztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiByZXMuc291cmNlT3B0aW9ucztcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QXJjZ2lzUmVzdE9wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM+IHtcclxuICAgIGlmICghdGhpcy51cmxBcGkpIHtcclxuICAgICAgcmV0dXJuIG9mKHt9IGFzIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zKTtcclxuICAgIH1cclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICB0eXBlOiBiYXNlT3B0aW9ucy50eXBlLFxyXG4gICAgICAgIHVybDogYmFzZU9wdGlvbnMudXJsLFxyXG4gICAgICAgIGxheWVyczogYmFzZU9wdGlvbnMubGF5ZXJcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGRldGFpbGVkQ29udGV4dFVyaSAmJiB0aGlzLnByb3ZpZGVDb250ZXh0VXJpKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2NvbnRleHQnLCBkZXRhaWxlZENvbnRleHRVcmkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLmh0dHAuZ2V0KHRoaXMudXJsQXBpLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHJlcXVlc3QucGlwZShcclxuICAgICAgbWFwKFxyXG4gICAgICAgIChyZXM6IHtcclxuICAgICAgICAgIHNvdXJjZU9wdGlvbnM6IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucztcclxuICAgICAgICAgIGxheWVyT3B0aW9uczogeyBba2V5czogc3RyaW5nXTogc3RyaW5nIH07XHJcbiAgICAgICAgfSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFyZXMgfHwgIXJlcy5zb3VyY2VPcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7fSBhcyBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocmVzLmxheWVyT3B0aW9ucykge1xyXG4gICAgICAgICAgICByZXMuc291cmNlT3B0aW9ucy5fbGF5ZXJPcHRpb25zRnJvbVNvdXJjZSA9IHJlcy5sYXllck9wdGlvbnM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gcmVzLnNvdXJjZU9wdGlvbnM7XHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,3 +1,3 @@
1
1
  export class OptionsService {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvb3B0aW9ucy9vcHRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxPQUFnQixjQUFjO0NBU25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXG4gIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICBXTVNEYXRhU291cmNlT3B0aW9uc1xufSBmcm9tICcuLi9kYXRhc291cmNlcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPcHRpb25zU2VydmljZSB7XG4gIGFic3RyYWN0IGdldFdNU09wdGlvbnMoXG4gICAgX2Jhc2VPcHRpb25zOiBXTVNEYXRhU291cmNlT3B0aW9ucyxcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxXTVNEYXRhU291cmNlT3B0aW9ucz47XG4gIGFic3RyYWN0IGdldEFyY2dpc1Jlc3RPcHRpb25zKFxuICAgIF9iYXNlT3B0aW9uczogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucz47XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvb3B0aW9ucy9vcHRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxPQUFnQixjQUFjO0NBU25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVNEYXRhU291cmNlT3B0aW9uc1xyXG59IGZyb20gJy4uL2RhdGFzb3VyY2VzJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPcHRpb25zU2VydmljZSB7XHJcbiAgYWJzdHJhY3QgZ2V0V01TT3B0aW9ucyhcclxuICAgIF9iYXNlT3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPFdNU0RhdGFTb3VyY2VPcHRpb25zPjtcclxuICBhYnN0cmFjdCBnZXRBcmNnaXNSZXN0T3B0aW9ucyhcclxuICAgIF9iYXNlT3B0aW9uczogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM+O1xyXG59XHJcbiJdfQ==
@@ -354,4 +354,4 @@ export class EsriStyleGenerator {
354
354
  }
355
355
  }
356
356
  }
357
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNyaS1zdHlsZS1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3V0aWxzL2Vzcmktc3R5bGUtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE1BQU0sT0FBTyxrQkFBa0I7SUFJN0I7UUFDRSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7UUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsa0JBQWtCLENBQUMsZUFBZSxDQUFDO1FBQzlELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDLGVBQWUsQ0FBQztRQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7UUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsa0JBQWtCLENBQUMsY0FBYyxDQUFDO1FBQzVELElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQUs7UUFDL0IsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFD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QUFRLENBQ3JCLENBQUM7UUFDRixJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRTtZQUNsQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLFNBQVMsQ0FBQyxZQUFZLEVBQUU7WUFDMUIsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQzFELFNBQVMsQ0FBQyxZQUFZLEVBQ3RCLFFBQVEsQ0FDVCxDQUFDO1lBQ0YsY0FBYyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztTQUNwRTtRQUNELElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDL0IsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1gsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRTtvQkFDN0IsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO29CQUNoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO3dCQUN2RCxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7d0JBQ2pFLElBQUksTUFBTSxFQUFFOzRCQUNWLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3lCQUNoQztxQkFDRjtvQkFDRCxPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQyxDQUFDO1lBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNOO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb2xzdHlsZSBmcm9tICdvbC9zdHlsZSc7XG5pbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XG5cbmV4cG9ydCBjbGFzcyBFc3JpU3R5bGVHZW5lcmF0b3Ige1xuICBwdWJsaWMgX2NvbnZlcnRlcnM6IGFueTtcbiAgcHVibGljIF9yZW5kZXJlcnM6IGFueTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9jb252ZXJ0ZXJzID0ge307XG4gICAgdGhpcy5fY29udmVydGVycy5lc3JpUE1TID0gRXNyaVN0eWxlR2VuZXJhdG9yLl9jb252ZXJ0RXNyaVBNUztcbiAgICB0aGlzLl9jb252ZXJ0ZXJzLmVzcmlTRlMgPSBFc3JpU3R5bGVHZW5lcmF0b3IuX2NvbnZlcnRFc3JpU0ZTO1xuICAgIHRoaXMuX2NvbnZlcnRlcnMuZXNyaVNMUyA9IEVzcmlTdHlsZUdlbmVyYXRvci5fY29udmVydEVzcmlTTFM7XG4gICAgdGhpcy5fY29udmVydGVycy5lc3JpU01TID0gRXNyaVN0eWxlR2VuZXJhdG9yLl9jb252ZXJ0RXNyaVNNUztcbiAgICB0aGlzLl9jb252ZXJ0ZXJzLmVzcmlUUyA9IEVzcmlTdHlsZUdlbmVyYXRvci5fY29udmVydEVzcmlUUztcbiAgICB0aGlzLl9yZW5kZXJlcnMgPSB7fTtcbiAgICB0aGlzLl9yZW5kZXJlcnMudW5pcXVlVmFsdWUgPSB0aGlzLl9yZW5kZXJVbmlxdWVWYWx1ZTtcbiAgICB0aGlzLl9yZW5kZXJlcnMuc2ltcGxlID0gdGhpcy5fcmVuZGVyU2ltcGxlO1xuICAgIHRoaXMuX3JlbmRlcmVycy5jbGFzc0JyZWFrcyA9IHRoaXMuX3JlbmRlckNsYXNzQnJlYWtzO1xuICB9XG4gIHN0YXRpYyBfY29udmVydFBvaW50VG9QaXhlbChwb2ludCkge1xuICAgIHJldHVybiBwb2ludCAvIDAuNzU7XG4gIH1cbiAgc3RhdGljIF90cmFuc2Zvcm1Db2xvcihjb2xvcik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdIHtcbiAgICAvLyBhbHBoYSBjaGFubmVsIGlzIGRpZmZlcmVudCwgcnVucyBmcm9tIDAtMjU1IGJ1dCBpbiBvbDMgZnJvbSAwLTFcbiAgICByZXR1cm4gW2NvbG9yWzBdLCBjb2xvclsxXSwgY29sb3JbMl0sIGNvbG9yWzNdIC8gMjU1XTtcbiAgfVxuXG4gIHN0YXRpYyBfZ2V0UmVzb2x1dGlvbkZvclNjYWxlKHNjYWxlLCB1bml0cykge1xuICAgIGNvbnN0IGRwaSA9IDk2O1xuICAgIGNvbnN0IG1wdSA9IG9scHJvai5NRVRFUlNfUEVSX1VOSVRbdW5pdHNdO1xuICAgIGNvbnN0IGluY2hlc1Blck1ldGVyID0gMzkuMzcwMTtcbiAgICByZXR1cm4gcGFyc2VGbG9hdChzY2FsZSkgLyAobXB1ICogaW5jaGVzUGVyTWV0ZXIgKiBkcGkpO1xuICB9XG5cbiAgLyogY29udmVydCBhbiBFc3JpIFRleHQgU3ltYm9sICovXG4gIHN0YXRpYyBfY29udmVydEVzcmlUUyhzeW1ib2wpIHtcbiAgICBjb25zdCByb3RhdGlvbiA9IEVzcmlTdHlsZUdlbmVyYXRvci5fdHJhbnNmb3JtQW5nbGUoc3ltYm9sLmFuZ2xlKTtcbiAgICBjb25zdCB0ZXh0ID0gc3ltYm9sLnRleHQgIT09IHVuZGVmaW5lZCA/IHN5bWJvbC50ZXh0IDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBuZXcgb2xzdHlsZS5TdHlsZSh7XG4gICAgICB0ZXh0OiBuZXcgb2xzdHlsZS5UZXh0KHtcbiAgICAgICAgZmlsbDogbmV3IG9sc3R5bGUuRmlsbCh7XG4gICAgICAgICAgY29sb3I6IEVzcmlTdHlsZUdlbmVyYXRvci5fdHJhbnNmb3JtQ29sb3Ioc3ltYm9sLmNvbG9yKVxuICAgICAgICB9KSxcbiAgICAgICAgZm9udDpcbiAgICAgICAgICBzeW1ib2wuZm9udC5zdHlsZSArXG4gICAgICAgICAgJyAnICtcbiAgICAgICAgICBzeW1ib2wuZm9udC53ZWlnaHQgK1xuICAgICAgICAgICcgJyArXG4gICAgICAgICAgc3ltYm9sLmZvbnQuc2l6ZSArXG4gICAgICAgICAgJyBweCAnICtcbiAgICAgICAgICBzeW1ib2wuZm9udC5mYW1pbHksXG4gICAgICAgIHRleHRCYXNlbGluZTogc3ltYm9sLnZlcnRpY2FsQWxpZ25tZW50LFxuICAgICAgICB0ZXh0QWxpZ246IHN5bWJvbC5ob3Jpem9udGFsQWxpZ25tZW50LFxuICAgICAgICBvZmZzZXRYOiBFc3JpU3R5bGVHZW5lcmF0b3IuX2NvbnZlcnRQb2ludFRvUGl4ZWwoc3ltYm9sLnhvZmZzZXQpLFxuICAgICAgICBvZmZzZXRZOiBFc3JpU3R5bGVHZW5lcmF0b3IuX2NvbnZlcnRQb2ludFRvUGl4ZWwoc3ltYm9sLnlvZmZzZXQpLFxuICAgICAgICByb3RhdGlvbixcbiAgICAgICAgdGV4dFxuICAgICAgfSlcbiAgICB9KTtcbiAgfVxuICAvKiBjb252ZXJ0IGFuIEVzcmkgUGljdHVyZSBNYXJrZXIgU3ltYm9sICovXG4gIHN0YXRpYyBfY29udmVydEVzcmlQTVMoc3ltYm9sKSB7XG4gICAgY29uc3Qgc3JjID0gJ2RhdGE6JyArIHN5bWJvbC5jb250ZW50VHlwZSArICc7YmFzZTY0LCAnICsgc3ltYm9sLmltYWdlRGF0YTtcbiAgICBjb25zdCByb3RhdGlvbiA9IEVzcmlTdHlsZUdlbmVyYXRvci5fdHJhbnNmb3JtQW5nbGUoc3ltYm9sLmFuZ2xlKTtcblxuICAgIHJldHVybiBuZXcgb2xzdHlsZS5TdHlsZSh7XG4gICAgICBpbWFnZTogbmV3IG9sc3R5bGUuSWNvbih7XG4gICAgICAgIHNyYyxcbiAgICAgICAgcm90YXRpb25cbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cbiAgLyogY29udmVydCBhbiBFc3JpIFNpbXBsZSBGaWxsIFN5bWJvbCAqL1xuICBzdGF0aWMgX2NvbnZlcnRFc3JpU0ZTKHN5bWJvbCkge1xuICAgIC8vIHRoZXJlIGlzIG5vIHN1cHBvcnQgaW4gb3BlbmxheWVycyBjdXJyZW50bHkgZm9yIGZpbGwgcGF0dGVybnMsIHNvIHN0eWxlIGlzIG5vdCBpbnRlcnByZXRlZFxuICAgIGNvbnN0IGZpbGwgPSBuZXcgb2xzdHlsZS5GaWxsKHtcbiAgICAgIGNvbG9yOiBFc3JpU3R5bGVHZW5lcmF0b3IuX3RyYW5zZm9ybUNvbG9yKHN5bWJvbC5jb2xvcilcbiAgICB9KTtcbiAgICBjb25zdCBzdHJva2UgPSBzeW1ib2wub3V0bGluZVxuICAgICAgPyBFc3JpU3R5bGVHZW5lcmF0b3IuX2NvbnZlcnRPdXRsaW5lKHN5bWJvbC5vdXRsaW5lKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0eWxlKHtcbiAgICAgIGZpbGwsXG4gICAgICBzdHJva2VcbiAgICB9KTtcbiAgfVxuICBzdGF0aWMgX2NvbnZlcnRPdXRsaW5lKG91dGxpbmUpIHtcbiAgICBsZXQgbGluZURhc2g7XG4gICAgY29uc3QgY29sb3IgPSBFc3JpU3R5bGVHZW5lcmF0b3IuX3RyYW5zZm9ybUNvbG9yKG91dGxpbmUuY29sb3IpO1xuICAgIGlmIChvdXRsaW5lLnN0eWxlID09PSAnZXNyaVNMU0Rhc2gnKSB7XG4gICAgICBsaW5lRGFzaCA9IFs1XTtcbiAgICB9IGVsc2UgaWYgKG91dGxpbmUuc3R5bGUgPT09ICdlc3JpU0xTRGFzaERvdCcpIHtcbiAgICAgIGxpbmVEYXNoID0gWzUsIDUsIDEsIDJdO1xuICAgIH0gZWxzZSBpZiAob3V0bGluZS5zdHlsZSA9PT0gJ2VzcmlTTFNEYXNoRG90RG90Jykge1xuICAgICAgbGluZURhc2ggPSBbNSwgNSwgMSwgMiwgMSwgMl07XG4gICAgfSBlbHNlIGlmIChvdXRsaW5lLnN0eWxlID09PSAnZXNyaVNMU0RvdCcpIHtcbiAgICAgIGxpbmVEYXNoID0gWzEsIDJdO1xuICAgIH0gZWxzZSBpZiAob3V0bGluZS5zdHlsZSA9PT0gJ2VzcmlTTFNOdWxsJykge1xuICAgICAgLy8gbGluZSBub3QgdmlzaWJsZSwgbWFrZSBjb2xvciBmdWxseSB0cmFuc3BhcmVudFxuICAgICAgY29sb3JbM10gPSAwO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IG9sc3R5bGUuU3Ryb2tlKHtcbiAgICAgIGNvbG9yLFxuICAgICAgbGluZURhc2gsXG4gICAgICB3aWR0aDogRXNyaVN0eWxlR2VuZXJhdG9yLl9jb252ZXJ0UG9pbnRUb1BpeGVsKG91dGxpbmUud2lkdGgpXG4gICAgfSk7XG4gIH1cbiAgLyogY29udmVydCBhbiBFc3JpIFNpbXBsZSBMaW5lIFN5bWJvbCAqL1xuICBzdGF0aWMgX2NvbnZlcnRFc3JpU0xTKHN5bWJvbCkge1xuICAgIHJldHVybiBuZXcgb2xzdHlsZS5TdHlsZSh7XG4gICAgICBzdHJva2U6IEVzcmlTdHlsZUdlbmVyYXRvci5fY29udmVydE91dGxpbmUoc3ltYm9sKVxuICAgIH0pO1xuICB9XG4gIHN0YXRpYyBfdHJhbnNmb3JtQW5nbGUoYW5nbGUpIHtcbiAgICBpZiAoYW5nbGUgPT09IDAgfHwgYW5nbGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgbm9ybWFsUmFkID0gKGFuZ2xlICogTWF0aC5QSSkgLyAxODA7XG4gICAgY29uc3Qgb2wzUmFkID0gLW5vcm1hbFJhZCArIE1hdGguUEkgLyAyO1xuICAgIGlmIChvbDNSYWQgPCAwKSB7XG4gICAgICByZXR1cm4gMiAqIE1hdGguUEkgKyBvbDNSYWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvbDNSYWQ7XG4gICAgfVxuICB9XG4gIC8qIGNvbnZlcnQgYW4gRXNyaSBTaW1wbGUgTWFya2VyIFN5bWJvbCAqL1xuICBzdGF0aWMgX2NvbnZlcnRFc3JpU01TKHN5bWJvbCkge1xuICAgIGNvbnN0IGZpbGwgPSBuZXcgb2xzdHlsZS5GaWxsKHtcbiAgICAgIGNvbG9yOiBFc3JpU3R5bGVHZW5lcmF0b3IuX3RyYW5zZm9ybUNvbG9yKHN5bWJvbC5jb2xvcilcbiAgICB9KTtcbiAgICBjb25zdCBzdHJva2UgPSBzeW1ib2wub3V0bGluZVxuICAgICAgPyBFc3JpU3R5bGVHZW5lcmF0b3IuX2NvbnZlcnRPdXRsaW5lKHN5bWJvbC5vdXRsaW5lKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcmFkaXVzID0gRXNyaVN0eWxlR2VuZXJhdG9yLl9jb252ZXJ0UG9pbnRUb1BpeGVsKHN5bWJvbC5zaXplKSAvIDI7XG4gICAgY29uc3Qgcm90YXRpb24gPSBFc3JpU3R5bGVHZW5lcmF0b3IuX3RyYW5zZm9ybUFuZ2xlKHN5bWJvbC5hbmdsZSk7XG4gICAgaWYgKHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTVNDaXJjbGUnKSB7XG4gICAgICByZXR1cm4gbmV3IG9sc3R5bGUuU3R5bGUoe1xuICAgICAgICBpbWFnZTogbmV3IG9sc3R5bGUuQ2lyY2xlKHtcbiAgICAgICAgICByYWRpdXMsXG4gICAgICAgICAgZmlsbCxcbiAgICAgICAgICBzdHJva2VcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoc3ltYm9sLnN0eWxlID09PSAnZXNyaVNNU0Nyb3NzJykge1xuICAgICAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0eWxlKHtcbiAgICAgICAgaW1hZ2U6IG5ldyBvbHN0eWxlLlJlZ3VsYXJTaGFwZSh7XG4gICAgICAgICAgZmlsbCxcbiAgICAgICAgICBzdHJva2UsXG4gICAgICAgICAgcG9pbnRzOiA0LFxuICAgICAgICAgIHJhZGl1cyxcbiAgICAgICAgICByYWRpdXMyOiAwLFxuICAgICAgICAgIGFuZ2xlOiAwLFxuICAgICAgICAgIHJvdGF0aW9uXG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTVNEaWFtb25kJykge1xuICAgICAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0eWxlKHtcbiAgICAgICAgaW1hZ2U6IG5ldyBvbHN0eWxlLlJlZ3VsYXJTaGFwZSh7XG4gICAgICAgICAgZmlsbCxcbiAgICAgICAgICBzdHJva2UsXG4gICAgICAgICAgcG9pbnRzOiA0LFxuICAgICAgICAgIHJhZGl1cyxcbiAgICAgICAgICByb3RhdGlvblxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChzeW1ib2wuc3R5bGUgPT09ICdlc3JpU01TU3F1YXJlJykge1xuICAgICAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0eWxlKHtcbiAgICAgICAgaW1hZ2U6IG5ldyBvbHN0eWxlLlJlZ3VsYXJTaGFwZSh7XG4gICAgICAgICAgZmlsbCxcbiAgICAgICAgICBzdHJva2UsXG4gICAgICAgICAgcG9pbnRzOiA0LFxuICAgICAgICAgIHJhZGl1cyxcbiAgICAgICAgICBhbmdsZTogTWF0aC5QSSAvIDQsXG4gICAgICAgICAgcm90YXRpb25cbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoc3ltYm9sLnN0eWxlID09PSAnZXNyaVNNU1gnKSB7XG4gICAgICByZXR1cm4gbmV3IG9sc3R5bGUuU3R5bGUoe1xuICAgICAgICBpbWFnZTogbmV3IG9sc3R5bGUuUmVndWxhclNoYXBlKHtcbiAgICAgICAgICBmaWxsLFxuICAgICAgICAgIHN0cm9rZSxcbiAgICAgICAgICBwb2ludHM6IDQsXG4gICAgICAgICAgcmFkaXVzLFxuICAgICAgICAgIHJhZGl1czI6IDAsXG4gICAgICAgICAgYW5nbGU6IE1hdGguUEkgLyA0LFxuICAgICAgICAgIHJvdGF0aW9uXG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTVNUcmlhbmdsZScpIHtcbiAgICAgIHJldHVybiBuZXcgb2xzdHlsZS5TdHlsZSh7XG4gICAgICAgIGltYWdlOiBuZXcgb2xzdHlsZS5SZWd1bGFyU2hhcGUoe1xuICAgICAgICAgIGZpbGwsXG4gICAgICAgICAgc3Ryb2tlLFxuICAgICAgICAgIHBvaW50czogMyxcbiAgICAgICAgICByYWRpdXMsXG4gICAgICAgICAgYW5nbGU6IDAsXG4gICAgICAgICAgcm90YXRpb25cbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIF9jb252ZXJ0TGFiZWxpbmdJbmZvKGxhYmVsaW5nSW5mbywgbWFwVW5pdHMpIHtcbiAgICBjb25zdCBzdHlsZXMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMCwgaWkgPSBsYWJlbGluZ0luZm8ubGVuZ3RoOyBpIDwgaWk7ICsraSkge1xuICAgICAgY29uc3QgbGFiZWxFeHByZXNzaW9uID0gbGFiZWxpbmdJbmZvW2ldLmxhYmVsRXhwcmVzc2lvbjtcbiAgICAgIC8vIG9ubHkgbGltaXRlZCBzdXBwb3J0IGZvciBsYWJlbCBleHByZXNzaW9uc1xuICAgICAgY29uc3QgZmllbGQgPSBsYWJlbEV4cHJlc3Npb24uc3Vic3RyKFxuICAgICAgICBsYWJlbEV4cHJlc3Npb24uaW5kZXhPZignWycpICsgMSxcbiAgICAgICAgbGFiZWxFeHByZXNzaW9uLmluZGV4T2YoJ10nKSAtIDFcbiAgICAgICk7XG4gICAgICBjb25zdCBzeW1ib2wgPSBsYWJlbGluZ0luZm9baV0uc3ltYm9sO1xuICAgICAgY29uc3QgbWF4U2NhbGUgPSBsYWJlbGluZ0luZm9baV0ubWF4U2NhbGU7XG4gICAgICBjb25zdCBtaW5TY2FsZSA9IGxhYmVsaW5nSW5mb1tpXS5taW5TY2FsZTtcbiAgICAgIGxldCBtaW5SZXNvbHV0aW9uID0gbnVsbDtcbiAgICAgIGlmIChtYXhTY2FsZSAhPT0gMCkge1xuICAgICAgICBtaW5SZXNvbHV0aW9uID0gRXNyaVN0eWxlR2VuZXJhdG9yLl9nZXRSZXNvbHV0aW9uRm9yU2NhbGUoXG4gICAgICAgICAgbWF4U2NhbGUsXG4gICAgICAgICAgbWFwVW5pdHNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGxldCBtYXhSZXNvbHV0aW9uID0gbnVsbDtcbiAgICAgIGlmIChtaW5TY2FsZSAhPT0gMCkge1xuICAgICAgICBtYXhSZXNvbHV0aW9uID0gRXNyaVN0eWxlR2VuZXJhdG9yLl9nZXRSZXNvbHV0aW9uRm9yU2NhbGUoXG4gICAgICAgICAgbWluU2NhbGUsXG4gICAgICAgICAgbWFwVW5pdHNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5fY29udmVydGVyc1tzeW1ib2wudHlwZV0uY2FsbCh0aGlzLCBzeW1ib2wpO1xuICAgICAgc3R5bGVzLnB1c2goXG4gICAgICAgICgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGZlYXR1cmUsIHJlc29sdXRpb24pIHtcbiAgICAgICAgICAgIGxldCB2aXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLm1pblJlc29sdXRpb24gIT09IG51bGwgJiYgdGhpcy5tYXhSZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHZpc2libGUgPVxuICAgICAgICAgICAgICAgIHJlc29sdXRpb24gPCB0aGlzLm1heFJlc29sdXRpb24gJiZcbiAgICAgICAgICAgICAgICByZXNvbHV0aW9uID49IHRoaXMubWluUmVzb2x1dGlvbjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5taW5SZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHZpc2libGUgPSByZXNvbHV0aW9uID49IHRoaXMubWluUmVzb2x1dGlvbjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5tYXhSZXNvbHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHZpc2libGUgPSByZXNvbHV0aW9uIDwgdGhpcy5tYXhSZXNvbHV0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmZWF0dXJlLmdldCh0aGlzLmZpZWxkKTtcbiAgICAgICAgICAgICAgdGhpcy5zdHlsZS5nZXRUZXh0KCkuc2V0VGV4dCh2YWx1ZSk7XG4gICAgICAgICAgICAgIHJldHVybiBbdGhpcy5zdHlsZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfSkoKS5iaW5kKHtcbiAgICAgICAgICBtaW5SZXNvbHV0aW9uLFxuICAgICAgICAgIG1heFJlc29sdXRpb24sXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgc3R5bGVcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBzdHlsZXM7XG4gIH1cblxuICBfcmVuZGVyU2ltcGxlKHJlbmRlcmVyKSB7XG4gICAgY29uc3Qgc3R5bGUgPSB0aGlzLl9jb252ZXJ0ZXJzW3JlbmRlcmVyLnN5bWJvbC50eXBlXS5jYWxsKFxuICAgICAgdGhpcyxcbiAgICAgIHJlbmRlcmVyLnN5bWJvbFxuICAgICk7XG4gICAgcmV0dXJuICgoKSA9PiB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICByZXR1cm4gW3N0eWxlXTtcbiAgICAgIH07XG4gICAgfSkoKTtcbiAgfVxuICBfcmVuZGVyQ2xhc3NCcmVha3MocmVuZGVyZXIpIHtcbiAgICBjb25zdCBkZWZhdWx0U3ltYm9sID0gcmVuZGVyZXIuZGVmYXVsdFN5bWJvbDtcbiAgICBjb25zdCBkZWZhdWx0U3R5bGUgPSB0aGlzLl9jb252ZXJ0ZXJzW2RlZmF1bHRTeW1ib2wudHlwZV0uY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICBkZWZhdWx0U3ltYm9sXG4gICAgKTtcbiAgICBjb25zdCBmaWVsZCA9IHJlbmRlcmVyLmZpZWxkO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMCwgaWkgPSByZW5kZXJlci5jbGFzc0JyZWFrSW5mb3MubGVuZ3RoOyBpIDwgaWk7ICsraSkge1xuICAgICAgY29uc3QgY2xhc3NCcmVha0luZm8gPSByZW5kZXJlci5jbGFzc0JyZWFrSW5mb3NbaV07XG4gICAgICBsZXQgbWluO1xuICAgICAgaWYgKFxuICAgICAgICBjbGFzc0JyZWFrSW5mby5jbGFzc01pblZhbHVlID09PSBudWxsIHx8XG4gICAgICAgIGNsYXNzQnJlYWtJbmZvLmNsYXNzTWluVmFsdWUgPT09IHVuZGVmaW5lZFxuICAgICAgKSB7XG4gICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgbWluID0gcmVuZGVyZXIubWluVmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWluID0gcmVuZGVyZXIuY2xhc3NCcmVha0luZm9zW2kgLSAxXS5jbGFzc01heFZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtaW4gPSBjbGFzc0JyZWFrSW5mby5jbGFzc01pblZhbHVlO1xuICAgICAgfVxuICAgICAgY29uc3QgbWF4ID0gY2xhc3NCcmVha0luZm8uY2xhc3NNYXhWYWx1ZTtcbiAgICAgIGNvbnN0IHN5bWJvbCA9IGNsYXNzQnJlYWtJbmZvLnN5bWJvbDtcbiAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5fY29udmVydGVyc1tzeW1ib2wudHlwZV0uY2FsbCh0aGlzLCBzeW1ib2wpO1xuICAgICAgY2xhc3Nlcy5wdXNoKHsgbWluLCBtYXgsIHN0eWxlIH0pO1xuICAgIH1cbiAgICByZXR1cm4gKCgpID0+IHtcbiAgICAgIHJldHVybiAoZmVhdHVyZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGZlYXR1cmUuZ2V0KGZpZWxkKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGlpID0gY2xhc3Nlcy5sZW5ndGg7IGkgPCBpaTsgKytpKSB7XG4gICAgICAgICAgbGV0IGNvbmRpdGlvbjtcbiAgICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgY29uZGl0aW9uID0gdmFsdWUgPj0gY2xhc3Nlc1tpXS5taW4gJiYgdmFsdWUgPD0gY2xhc3Nlc1tpXS5tYXg7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IHZhbHVlID4gY2xhc3Nlc1tpXS5taW4gJiYgdmFsdWUgPD0gY2xhc3Nlc1tpXS5tYXg7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjb25kaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBbY2xhc3Nlc1tpXS5zdHlsZV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbZGVmYXVsdFN0eWxlXTtcbiAgICAgIH07XG4gICAgfSkoKTtcbiAgfVxuICBfcmVuZGVyVW5pcXVlVmFsdWUocmVuZGVyZXIpIHtcbiAgICBjb25zdCBkZWZhdWx0U3ltYm9sID0gcmVuZGVyZXIuZGVmYXVsdFN5bWJvbDtcbiAgICBsZXQgZGVmYXVsdFN0eWxlID0gW107XG4gICAgaWYgKGRlZmF1bHRTeW1ib2wpIHtcbiAgICAgIGRlZmF1bHRTdHlsZSA9IFtcbiAgICAgICAgdGhpcy5fY29udmVydGVyc1tkZWZhdWx0U3ltYm9sLnR5cGVdLmNhbGwodGhpcywgZGVmYXVsdFN5bWJvbClcbiAgICAgIF07XG4gICAgfVxuICAgIGNvbnN0IGZpZWxkID0gcmVuZGVyZXIuZmllbGQxO1xuICAgIGNvbnN0IGluZm9zID0gcmVuZGVyZXIudW5pcXVlVmFsdWVJbmZvcztcbiAgICBjb25zdCBtZSA9IHRoaXM7XG4gICAgcmV0dXJuICgoKSA9PiB7XG4gICAgICBjb25zdCBoYXNoID0ge307XG4gICAgICBmb3IgKGxldCBpID0gMCwgaWkgPSBpbmZvcy5sZW5ndGg7IGkgPCBpaTsgKytpKSB7XG4gICAgICAgIGNvbnN0IGluZm8gPSBpbmZvc1tpXTtcbiAgICAgICAgY29uc3Qgc3ltYm9sID0gaW5mby5zeW1ib2w7XG4gICAgICAgIGhhc2hbaW5mby52YWx1ZV0gPSBbbWUuX2NvbnZlcnRlcnNbc3ltYm9sLnR5cGVdLmNhbGwobWUsIHN5bWJvbCldO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKGZlYXR1cmUpID0+IHtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBoYXNoW2ZlYXR1cmUuZ2V0KGZpZWxkKV07XG4gICAgICAgIHJldHVybiBzdHlsZSA/IHN0eWxlIDogZGVmYXVsdFN0eWxlO1xuICAgICAgfTtcbiAgICB9KSgpO1xuICB9XG4gIGdlbmVyYXRlU3R5bGUobGF5ZXJJbmZvLCBtYXBVbml0cykge1xuICAgIGNvbnN0IGRyYXdpbmdJbmZvID0gbGF5ZXJJbmZvLmRyYXdpbmdJbmZvO1xuICAgIGxldCBzdHlsZUZ1bmN0aW9ucyA9IFtdO1xuICAgIGNvbnN0IGRyYXdpbmdJbmZvU3R5bGUgPSB0aGlzLl9yZW5kZXJlcnNbZHJhd2luZ0luZm8ucmVuZGVyZXIudHlwZV0uY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICBkcmF3aW5nSW5mby5yZW5kZXJlclxuICAgICk7XG4gICAgaWYgKGRyYXdpbmdJbmZvU3R5bGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc3R5bGVGdW5jdGlvbnMucHVzaChkcmF3aW5nSW5mb1N0eWxlKTtcbiAgICB9XG4gICAgaWYgKGxheWVySW5mby5sYWJlbGluZ0luZm8pIHtcbiAgICAgIGNvbnN0IGxhYmVsaW5nSW5mb1N0eWxlRnVuY3Rpb25zID0gdGhpcy5fY29udmVydExhYmVsaW5nSW5mbyhcbiAgICAgICAgbGF5ZXJJbmZvLmxhYmVsaW5nSW5mbyxcbiAgICAgICAgbWFwVW5pdHNcbiAgICAgICk7XG4gICAgICBzdHlsZUZ1bmN0aW9ucyA9IHN0eWxlRnVuY3Rpb25zLmNvbmNhdChsYWJlbGluZ0luZm9TdHlsZUZ1bmN0aW9ucyk7XG4gICAgfVxuICAgIGlmIChzdHlsZUZ1bmN0aW9ucy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiBzdHlsZUZ1bmN0aW9uc1swXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4ge1xuICAgICAgICAgIGxldCBzdHlsZXMgPSBbXTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMCwgaWkgPSBzdHlsZUZ1bmN0aW9ucy5sZW5ndGg7IGkgPCBpaTsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBzdHlsZUZ1bmN0aW9uc1tpXS5jYWxsKG51bGwsIGZlYXR1cmUsIHJlc29sdXRpb24pO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICBzdHlsZXMgPSBzdHlsZXMuY29uY2F0KHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgICAgIH07XG4gICAgICB9KSgpO1xuICAgIH1cbiAgfVxufVxuIl19
357
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNyaS1zdHlsZS1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3V0aWxzL2Vzcmktc3R5bGUtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE1BQU0sT0FBTyxrQkFBa0I7SUFJN0I7UUFDRSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7UUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsa0JBQWtCLENBQUMsZUFBZSxDQUFDO1FBQzlELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDLGVBQWUsQ0FBQztRQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7UUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsa0JBQWtCLENBQUMsY0FBYyxDQUFDO1FBQzVELElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQUs7UUFDL0IsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFD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QUFRLENBQ3JCLENBQUM7UUFDRixJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRTtZQUNsQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLFNBQVMsQ0FBQyxZQUFZLEVBQUU7WUFDMUIsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQzFELFNBQVMsQ0FBQyxZQUFZLEVBQ3RCLFFBQVEsQ0FDVCxDQUFDO1lBQ0YsY0FBYyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztTQUNwRTtRQUNELElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDL0IsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1gsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRTtvQkFDN0IsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO29CQUNoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO3dCQUN2RCxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7d0JBQ2pFLElBQUksTUFBTSxFQUFFOzRCQUNWLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3lCQUNoQztxQkFDRjtvQkFDRCxPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQyxDQUFDO1lBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNOO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb2xzdHlsZSBmcm9tICdvbC9zdHlsZSc7XHJcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc3JpU3R5bGVHZW5lcmF0b3Ige1xyXG4gIHB1YmxpYyBfY29udmVydGVyczogYW55O1xyXG4gIHB1YmxpYyBfcmVuZGVyZXJzOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fY29udmVydGVycyA9IHt9O1xyXG4gICAgdGhpcy5fY29udmVydGVycy5lc3JpUE1TID0gRXNyaVN0eWxlR2VuZXJhdG9yLl9jb252ZXJ0RXNyaVBNUztcclxuICAgIHRoaXMuX2NvbnZlcnRlcnMuZXNyaVNGUyA9IEVzcmlTdHlsZUdlbmVyYXRvci5fY29udmVydEVzcmlTRlM7XHJcbiAgICB0aGlzLl9jb252ZXJ0ZXJzLmVzcmlTTFMgPSBFc3JpU3R5bGVHZW5lcmF0b3IuX2NvbnZlcnRFc3JpU0xTO1xyXG4gICAgdGhpcy5fY29udmVydGVycy5lc3JpU01TID0gRXNyaVN0eWxlR2VuZXJhdG9yLl9jb252ZXJ0RXNyaVNNUztcclxuICAgIHRoaXMuX2NvbnZlcnRlcnMuZXNyaVRTID0gRXNyaVN0eWxlR2VuZXJhdG9yLl9jb252ZXJ0RXNyaVRTO1xyXG4gICAgdGhpcy5fcmVuZGVyZXJzID0ge307XHJcbiAgICB0aGlzLl9yZW5kZXJlcnMudW5pcXVlVmFsdWUgPSB0aGlzLl9yZW5kZXJVbmlxdWVWYWx1ZTtcclxuICAgIHRoaXMuX3JlbmRlcmVycy5zaW1wbGUgPSB0aGlzLl9yZW5kZXJTaW1wbGU7XHJcbiAgICB0aGlzLl9yZW5kZXJlcnMuY2xhc3NCcmVha3MgPSB0aGlzLl9yZW5kZXJDbGFzc0JyZWFrcztcclxuICB9XHJcbiAgc3RhdGljIF9jb252ZXJ0UG9pbnRUb1BpeGVsKHBvaW50KSB7XHJcbiAgICByZXR1cm4gcG9pbnQgLyAwLjc1O1xyXG4gIH1cclxuICBzdGF0aWMgX3RyYW5zZm9ybUNvbG9yKGNvbG9yKTogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0ge1xyXG4gICAgLy8gYWxwaGEgY2hhbm5lbCBpcyBkaWZmZXJlbnQsIHJ1bnMgZnJvbSAwLTI1NSBidXQgaW4gb2wzIGZyb20gMC0xXHJcbiAgICByZXR1cm4gW2NvbG9yWzBdLCBjb2xvclsxXSwgY29sb3JbMl0sIGNvbG9yWzNdIC8gMjU1XTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBfZ2V0UmVzb2x1dGlvbkZvclNjYWxlKHNjYWxlLCB1bml0cykge1xyXG4gICAgY29uc3QgZHBpID0gOTY7XHJcbiAgICBjb25zdCBtcHUgPSBvbHByb2ouTUVURVJTX1BFUl9VTklUW3VuaXRzXTtcclxuICAgIGNvbnN0IGluY2hlc1Blck1ldGVyID0gMzkuMzcwMTtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KHNjYWxlKSAvIChtcHUgKiBpbmNoZXNQZXJNZXRlciAqIGRwaSk7XHJcbiAgfVxyXG5cclxuICAvKiBjb252ZXJ0IGFuIEVzcmkgVGV4dCBTeW1ib2wgKi9cclxuICBzdGF0aWMgX2NvbnZlcnRFc3JpVFMoc3ltYm9sKSB7XHJcbiAgICBjb25zdCByb3RhdGlvbiA9IEVzcmlTdHlsZUdlbmVyYXRvci5fdHJhbnNmb3JtQW5nbGUoc3ltYm9sLmFuZ2xlKTtcclxuICAgIGNvbnN0IHRleHQgPSBzeW1ib2wudGV4dCAhPT0gdW5kZWZpbmVkID8gc3ltYm9sLnRleHQgOiB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gbmV3IG9sc3R5bGUuU3R5bGUoe1xyXG4gICAgICB0ZXh0OiBuZXcgb2xzdHlsZS5UZXh0KHtcclxuICAgICAgICBmaWxsOiBuZXcgb2xzdHlsZS5GaWxsKHtcclxuICAgICAgICAgIGNvbG9yOiBFc3JpU3R5bGVHZW5lcmF0b3IuX3RyYW5zZm9ybUNvbG9yKHN5bWJvbC5jb2xvcilcclxuICAgICAgICB9KSxcclxuICAgICAgICBmb250OlxyXG4gICAgICAgICAgc3ltYm9sLmZvbnQuc3R5bGUgK1xyXG4gICAgICAgICAgJyAnICtcclxuICAgICAgICAgIHN5bWJvbC5mb250LndlaWdodCArXHJcbiAgICAgICAgICAnICcgK1xyXG4gICAgICAgICAgc3ltYm9sLmZvbnQuc2l6ZSArXHJcbiAgICAgICAgICAnIHB4ICcgK1xyXG4gICAgICAgICAgc3ltYm9sLmZvbnQuZmFtaWx5LFxyXG4gICAgICAgIHRleHRCYXNlbGluZTogc3ltYm9sLnZlcnRpY2FsQWxpZ25tZW50LFxyXG4gICAgICAgIHRleHRBbGlnbjogc3ltYm9sLmhvcml6b250YWxBbGlnbm1lbnQsXHJcbiAgICAgICAgb2Zmc2V0WDogRXNyaVN0eWxlR2VuZXJhdG9yLl9jb252ZXJ0UG9pbnRUb1BpeGVsKHN5bWJvbC54b2Zmc2V0KSxcclxuICAgICAgICBvZmZzZXRZOiBFc3JpU3R5bGVHZW5lcmF0b3IuX2NvbnZlcnRQb2ludFRvUGl4ZWwoc3ltYm9sLnlvZmZzZXQpLFxyXG4gICAgICAgIHJvdGF0aW9uLFxyXG4gICAgICAgIHRleHRcclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKiBjb252ZXJ0IGFuIEVzcmkgUGljdHVyZSBNYXJrZXIgU3ltYm9sICovXHJcbiAgc3RhdGljIF9jb252ZXJ0RXNyaVBNUyhzeW1ib2wpIHtcclxuICAgIGNvbnN0IHNyYyA9ICdkYXRhOicgKyBzeW1ib2wuY29udGVudFR5cGUgKyAnO2Jhc2U2NCwgJyArIHN5bWJvbC5pbWFnZURhdGE7XHJcbiAgICBjb25zdCByb3RhdGlvbiA9IEVzcmlTdHlsZUdlbmVyYXRvci5fdHJhbnNmb3JtQW5nbGUoc3ltYm9sLmFuZ2xlKTtcclxuXHJcbiAgICByZXR1cm4gbmV3IG9sc3R5bGUuU3R5bGUoe1xyXG4gICAgICBpbWFnZTogbmV3IG9sc3R5bGUuSWNvbih7XHJcbiAgICAgICAgc3JjLFxyXG4gICAgICAgIHJvdGF0aW9uXHJcbiAgICAgIH0pXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyogY29udmVydCBhbiBFc3JpIFNpbXBsZSBGaWxsIFN5bWJvbCAqL1xyXG4gIHN0YXRpYyBfY29udmVydEVzcmlTRlMoc3ltYm9sKSB7XHJcbiAgICAvLyB0aGVyZSBpcyBubyBzdXBwb3J0IGluIG9wZW5sYXllcnMgY3VycmVudGx5IGZvciBmaWxsIHBhdHRlcm5zLCBzbyBzdHlsZSBpcyBub3QgaW50ZXJwcmV0ZWRcclxuICAgIGNvbnN0IGZpbGwgPSBuZXcgb2xzdHlsZS5GaWxsKHtcclxuICAgICAgY29sb3I6IEVzcmlTdHlsZUdlbmVyYXRvci5fdHJhbnNmb3JtQ29sb3Ioc3ltYm9sLmNvbG9yKVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBzdHJva2UgPSBzeW1ib2wub3V0bGluZVxyXG4gICAgICA/IEVzcmlTdHlsZUdlbmVyYXRvci5fY29udmVydE91dGxpbmUoc3ltYm9sLm91dGxpbmUpXHJcbiAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0eWxlKHtcclxuICAgICAgZmlsbCxcclxuICAgICAgc3Ryb2tlXHJcbiAgICB9KTtcclxuICB9XHJcbiAgc3RhdGljIF9jb252ZXJ0T3V0bGluZShvdXRsaW5lKSB7XHJcbiAgICBsZXQgbGluZURhc2g7XHJcbiAgICBjb25zdCBjb2xvciA9IEVzcmlTdHlsZUdlbmVyYXRvci5fdHJhbnNmb3JtQ29sb3Iob3V0bGluZS5jb2xvcik7XHJcbiAgICBpZiAob3V0bGluZS5zdHlsZSA9PT0gJ2VzcmlTTFNEYXNoJykge1xyXG4gICAgICBsaW5lRGFzaCA9IFs1XTtcclxuICAgIH0gZWxzZSBpZiAob3V0bGluZS5zdHlsZSA9PT0gJ2VzcmlTTFNEYXNoRG90Jykge1xyXG4gICAgICBsaW5lRGFzaCA9IFs1LCA1LCAxLCAyXTtcclxuICAgIH0gZWxzZSBpZiAob3V0bGluZS5zdHlsZSA9PT0gJ2VzcmlTTFNEYXNoRG90RG90Jykge1xyXG4gICAgICBsaW5lRGFzaCA9IFs1LCA1LCAxLCAyLCAxLCAyXTtcclxuICAgIH0gZWxzZSBpZiAob3V0bGluZS5zdHlsZSA9PT0gJ2VzcmlTTFNEb3QnKSB7XHJcbiAgICAgIGxpbmVEYXNoID0gWzEsIDJdO1xyXG4gICAgfSBlbHNlIGlmIChvdXRsaW5lLnN0eWxlID09PSAnZXNyaVNMU051bGwnKSB7XHJcbiAgICAgIC8vIGxpbmUgbm90IHZpc2libGUsIG1ha2UgY29sb3IgZnVsbHkgdHJhbnNwYXJlbnRcclxuICAgICAgY29sb3JbM10gPSAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0cm9rZSh7XHJcbiAgICAgIGNvbG9yLFxyXG4gICAgICBsaW5lRGFzaCxcclxuICAgICAgd2lkdGg6IEVzcmlTdHlsZUdlbmVyYXRvci5fY29udmVydFBvaW50VG9QaXhlbChvdXRsaW5lLndpZHRoKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qIGNvbnZlcnQgYW4gRXNyaSBTaW1wbGUgTGluZSBTeW1ib2wgKi9cclxuICBzdGF0aWMgX2NvbnZlcnRFc3JpU0xTKHN5bWJvbCkge1xyXG4gICAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0eWxlKHtcclxuICAgICAgc3Ryb2tlOiBFc3JpU3R5bGVHZW5lcmF0b3IuX2NvbnZlcnRPdXRsaW5lKHN5bWJvbClcclxuICAgIH0pO1xyXG4gIH1cclxuICBzdGF0aWMgX3RyYW5zZm9ybUFuZ2xlKGFuZ2xlKSB7XHJcbiAgICBpZiAoYW5nbGUgPT09IDAgfHwgYW5nbGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgbm9ybWFsUmFkID0gKGFuZ2xlICogTWF0aC5QSSkgLyAxODA7XHJcbiAgICBjb25zdCBvbDNSYWQgPSAtbm9ybWFsUmFkICsgTWF0aC5QSSAvIDI7XHJcbiAgICBpZiAob2wzUmFkIDwgMCkge1xyXG4gICAgICByZXR1cm4gMiAqIE1hdGguUEkgKyBvbDNSYWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gb2wzUmFkO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKiBjb252ZXJ0IGFuIEVzcmkgU2ltcGxlIE1hcmtlciBTeW1ib2wgKi9cclxuICBzdGF0aWMgX2NvbnZlcnRFc3JpU01TKHN5bWJvbCkge1xyXG4gICAgY29uc3QgZmlsbCA9IG5ldyBvbHN0eWxlLkZpbGwoe1xyXG4gICAgICBjb2xvcjogRXNyaVN0eWxlR2VuZXJhdG9yLl90cmFuc2Zvcm1Db2xvcihzeW1ib2wuY29sb3IpXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHN0cm9rZSA9IHN5bWJvbC5vdXRsaW5lXHJcbiAgICAgID8gRXNyaVN0eWxlR2VuZXJhdG9yLl9jb252ZXJ0T3V0bGluZShzeW1ib2wub3V0bGluZSlcclxuICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCByYWRpdXMgPSBFc3JpU3R5bGVHZW5lcmF0b3IuX2NvbnZlcnRQb2ludFRvUGl4ZWwoc3ltYm9sLnNpemUpIC8gMjtcclxuICAgIGNvbnN0IHJvdGF0aW9uID0gRXNyaVN0eWxlR2VuZXJhdG9yLl90cmFuc2Zvcm1BbmdsZShzeW1ib2wuYW5nbGUpO1xyXG4gICAgaWYgKHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTVNDaXJjbGUnKSB7XHJcbiAgICAgIHJldHVybiBuZXcgb2xzdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgaW1hZ2U6IG5ldyBvbHN0eWxlLkNpcmNsZSh7XHJcbiAgICAgICAgICByYWRpdXMsXHJcbiAgICAgICAgICBmaWxsLFxyXG4gICAgICAgICAgc3Ryb2tlXHJcbiAgICAgICAgfSlcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTVNDcm9zcycpIHtcclxuICAgICAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0eWxlKHtcclxuICAgICAgICBpbWFnZTogbmV3IG9sc3R5bGUuUmVndWxhclNoYXBlKHtcclxuICAgICAgICAgIGZpbGwsXHJcbiAgICAgICAgICBzdHJva2UsXHJcbiAgICAgICAgICBwb2ludHM6IDQsXHJcbiAgICAgICAgICByYWRpdXMsXHJcbiAgICAgICAgICByYWRpdXMyOiAwLFxyXG4gICAgICAgICAgYW5nbGU6IDAsXHJcbiAgICAgICAgICByb3RhdGlvblxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzeW1ib2wuc3R5bGUgPT09ICdlc3JpU01TRGlhbW9uZCcpIHtcclxuICAgICAgcmV0dXJuIG5ldyBvbHN0eWxlLlN0eWxlKHtcclxuICAgICAgICBpbWFnZTogbmV3IG9sc3R5bGUuUmVndWxhclNoYXBlKHtcclxuICAgICAgICAgIGZpbGwsXHJcbiAgICAgICAgICBzdHJva2UsXHJcbiAgICAgICAgICBwb2ludHM6IDQsXHJcbiAgICAgICAgICByYWRpdXMsXHJcbiAgICAgICAgICByb3RhdGlvblxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzeW1ib2wuc3R5bGUgPT09ICdlc3JpU01TU3F1YXJlJykge1xyXG4gICAgICByZXR1cm4gbmV3IG9sc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgIGltYWdlOiBuZXcgb2xzdHlsZS5SZWd1bGFyU2hhcGUoe1xyXG4gICAgICAgICAgZmlsbCxcclxuICAgICAgICAgIHN0cm9rZSxcclxuICAgICAgICAgIHBvaW50czogNCxcclxuICAgICAgICAgIHJhZGl1cyxcclxuICAgICAgICAgIGFuZ2xlOiBNYXRoLlBJIC8gNCxcclxuICAgICAgICAgIHJvdGF0aW9uXHJcbiAgICAgICAgfSlcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTVNYJykge1xyXG4gICAgICByZXR1cm4gbmV3IG9sc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgIGltYWdlOiBuZXcgb2xzdHlsZS5SZWd1bGFyU2hhcGUoe1xyXG4gICAgICAgICAgZmlsbCxcclxuICAgICAgICAgIHN0cm9rZSxcclxuICAgICAgICAgIHBvaW50czogNCxcclxuICAgICAgICAgIHJhZGl1cyxcclxuICAgICAgICAgIHJhZGl1czI6IDAsXHJcbiAgICAgICAgICBhbmdsZTogTWF0aC5QSSAvIDQsXHJcbiAgICAgICAgICByb3RhdGlvblxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChzeW1ib2wuc3R5bGUgPT09ICdlc3JpU01TVHJpYW5nbGUnKSB7XHJcbiAgICAgIHJldHVybiBuZXcgb2xzdHlsZS5TdHlsZSh7XHJcbiAgICAgICAgaW1hZ2U6IG5ldyBvbHN0eWxlLlJlZ3VsYXJTaGFwZSh7XHJcbiAgICAgICAgICBmaWxsLFxyXG4gICAgICAgICAgc3Ryb2tlLFxyXG4gICAgICAgICAgcG9pbnRzOiAzLFxyXG4gICAgICAgICAgcmFkaXVzLFxyXG4gICAgICAgICAgYW5nbGU6IDAsXHJcbiAgICAgICAgICByb3RhdGlvblxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX2NvbnZlcnRMYWJlbGluZ0luZm8obGFiZWxpbmdJbmZvLCBtYXBVbml0cykge1xyXG4gICAgY29uc3Qgc3R5bGVzID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMCwgaWkgPSBsYWJlbGluZ0luZm8ubGVuZ3RoOyBpIDwgaWk7ICsraSkge1xyXG4gICAgICBjb25zdCBsYWJlbEV4cHJlc3Npb24gPSBsYWJlbGluZ0luZm9baV0ubGFiZWxFeHByZXNzaW9uO1xyXG4gICAgICAvLyBvbmx5IGxpbWl0ZWQgc3VwcG9ydCBmb3IgbGFiZWwgZXhwcmVzc2lvbnNcclxuICAgICAgY29uc3QgZmllbGQgPSBsYWJlbEV4cHJlc3Npb24uc3Vic3RyKFxyXG4gICAgICAgIGxhYmVsRXhwcmVzc2lvbi5pbmRleE9mKCdbJykgKyAxLFxyXG4gICAgICAgIGxhYmVsRXhwcmVzc2lvbi5pbmRleE9mKCddJykgLSAxXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IHN5bWJvbCA9IGxhYmVsaW5nSW5mb1tpXS5zeW1ib2w7XHJcbiAgICAgIGNvbnN0IG1heFNjYWxlID0gbGFiZWxpbmdJbmZvW2ldLm1heFNjYWxlO1xyXG4gICAgICBjb25zdCBtaW5TY2FsZSA9IGxhYmVsaW5nSW5mb1tpXS5taW5TY2FsZTtcclxuICAgICAgbGV0IG1pblJlc29sdXRpb24gPSBudWxsO1xyXG4gICAgICBpZiAobWF4U2NhbGUgIT09IDApIHtcclxuICAgICAgICBtaW5SZXNvbHV0aW9uID0gRXNyaVN0eWxlR2VuZXJhdG9yLl9nZXRSZXNvbHV0aW9uRm9yU2NhbGUoXHJcbiAgICAgICAgICBtYXhTY2FsZSxcclxuICAgICAgICAgIG1hcFVuaXRzXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbWF4UmVzb2x1dGlvbiA9IG51bGw7XHJcbiAgICAgIGlmIChtaW5TY2FsZSAhPT0gMCkge1xyXG4gICAgICAgIG1heFJlc29sdXRpb24gPSBFc3JpU3R5bGVHZW5lcmF0b3IuX2dldFJlc29sdXRpb25Gb3JTY2FsZShcclxuICAgICAgICAgIG1pblNjYWxlLFxyXG4gICAgICAgICAgbWFwVW5pdHNcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5fY29udmVydGVyc1tzeW1ib2wudHlwZV0uY2FsbCh0aGlzLCBzeW1ib2wpO1xyXG4gICAgICBzdHlsZXMucHVzaChcclxuICAgICAgICAoKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGZlYXR1cmUsIHJlc29sdXRpb24pIHtcclxuICAgICAgICAgICAgbGV0IHZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5taW5SZXNvbHV0aW9uICE9PSBudWxsICYmIHRoaXMubWF4UmVzb2x1dGlvbiAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIHZpc2libGUgPVxyXG4gICAgICAgICAgICAgICAgcmVzb2x1dGlvbiA8IHRoaXMubWF4UmVzb2x1dGlvbiAmJlxyXG4gICAgICAgICAgICAgICAgcmVzb2x1dGlvbiA+PSB0aGlzLm1pblJlc29sdXRpb247XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5taW5SZXNvbHV0aW9uICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgdmlzaWJsZSA9IHJlc29sdXRpb24gPj0gdGhpcy5taW5SZXNvbHV0aW9uO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWF4UmVzb2x1dGlvbiAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIHZpc2libGUgPSByZXNvbHV0aW9uIDwgdGhpcy5tYXhSZXNvbHV0aW9uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh2aXNpYmxlKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmZWF0dXJlLmdldCh0aGlzLmZpZWxkKTtcclxuICAgICAgICAgICAgICB0aGlzLnN0eWxlLmdldFRleHQoKS5zZXRUZXh0KHZhbHVlKTtcclxuICAgICAgICAgICAgICByZXR1cm4gW3RoaXMuc3R5bGVdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pKCkuYmluZCh7XHJcbiAgICAgICAgICBtaW5SZXNvbHV0aW9uLFxyXG4gICAgICAgICAgbWF4UmVzb2x1dGlvbixcclxuICAgICAgICAgIGZpZWxkLFxyXG4gICAgICAgICAgc3R5bGVcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0eWxlcztcclxuICB9XHJcblxyXG4gIF9yZW5kZXJTaW1wbGUocmVuZGVyZXIpIHtcclxuICAgIGNvbnN0IHN0eWxlID0gdGhpcy5fY29udmVydGVyc1tyZW5kZXJlci5zeW1ib2wudHlwZV0uY2FsbChcclxuICAgICAgdGhpcyxcclxuICAgICAgcmVuZGVyZXIuc3ltYm9sXHJcbiAgICApO1xyXG4gICAgcmV0dXJuICgoKSA9PiB7XHJcbiAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIFtzdHlsZV07XHJcbiAgICAgIH07XHJcbiAgICB9KSgpO1xyXG4gIH1cclxuICBfcmVuZGVyQ2xhc3NCcmVha3MocmVuZGVyZXIpIHtcclxuICAgIGNvbnN0IGRlZmF1bHRTeW1ib2wgPSByZW5kZXJlci5kZWZhdWx0U3ltYm9sO1xyXG4gICAgY29uc3QgZGVmYXVsdFN0eWxlID0gdGhpcy5fY29udmVydGVyc1tkZWZhdWx0U3ltYm9sLnR5cGVdLmNhbGwoXHJcbiAgICAgIHRoaXMsXHJcbiAgICAgIGRlZmF1bHRTeW1ib2xcclxuICAgICk7XHJcbiAgICBjb25zdCBmaWVsZCA9IHJlbmRlcmVyLmZpZWxkO1xyXG4gICAgY29uc3QgY2xhc3NlcyA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDAsIGlpID0gcmVuZGVyZXIuY2xhc3NCcmVha0luZm9zLmxlbmd0aDsgaSA8IGlpOyArK2kpIHtcclxuICAgICAgY29uc3QgY2xhc3NCcmVha0luZm8gPSByZW5kZXJlci5jbGFzc0JyZWFrSW5mb3NbaV07XHJcbiAgICAgIGxldCBtaW47XHJcbiAgICAgIGlmIChcclxuICAgICAgICBjbGFzc0JyZWFrSW5mby5jbGFzc01pblZhbHVlID09PSBudWxsIHx8XHJcbiAgICAgICAgY2xhc3NCcmVha0luZm8uY2xhc3NNaW5WYWx1ZSA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICkge1xyXG4gICAgICAgIGlmIChpID09PSAwKSB7XHJcbiAgICAgICAgICBtaW4gPSByZW5kZXJlci5taW5WYWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbWluID0gcmVuZGVyZXIuY2xhc3NCcmVha0luZm9zW2kgLSAxXS5jbGFzc01heFZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBtaW4gPSBjbGFzc0JyZWFrSW5mby5jbGFzc01pblZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG1heCA9IGNsYXNzQnJlYWtJbmZvLmNsYXNzTWF4VmFsdWU7XHJcbiAgICAgIGNvbnN0IHN5bWJvbCA9IGNsYXNzQnJlYWtJbmZvLnN5bWJvbDtcclxuICAgICAgY29uc3Qgc3R5bGUgPSB0aGlzLl9jb252ZXJ0ZXJzW3N5bWJvbC50eXBlXS5jYWxsKHRoaXMsIHN5bWJvbCk7XHJcbiAgICAgIGNsYXNzZXMucHVzaCh7IG1pbiwgbWF4LCBzdHlsZSB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiAoKCkgPT4ge1xyXG4gICAgICByZXR1cm4gKGZlYXR1cmUpID0+IHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IGZlYXR1cmUuZ2V0KGZpZWxkKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMCwgaWkgPSBjbGFzc2VzLmxlbmd0aDsgaSA8IGlpOyArK2kpIHtcclxuICAgICAgICAgIGxldCBjb25kaXRpb247XHJcbiAgICAgICAgICBpZiAoaSA9PT0gMCkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB2YWx1ZSA+PSBjbGFzc2VzW2ldLm1pbiAmJiB2YWx1ZSA8PSBjbGFzc2VzW2ldLm1heDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IHZhbHVlID4gY2xhc3Nlc1tpXS5taW4gJiYgdmFsdWUgPD0gY2xhc3Nlc1tpXS5tYXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoY29uZGl0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbY2xhc3Nlc1tpXS5zdHlsZV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBbZGVmYXVsdFN0eWxlXTtcclxuICAgICAgfTtcclxuICAgIH0pKCk7XHJcbiAgfVxyXG4gIF9yZW5kZXJVbmlxdWVWYWx1ZShyZW5kZXJlcikge1xyXG4gICAgY29uc3QgZGVmYXVsdFN5bWJvbCA9IHJlbmRlcmVyLmRlZmF1bHRTeW1ib2w7XHJcbiAgICBsZXQgZGVmYXVsdFN0eWxlID0gW107XHJcbiAgICBpZiAoZGVmYXVsdFN5bWJvbCkge1xyXG4gICAgICBkZWZhdWx0U3R5bGUgPSBbXHJcbiAgICAgICAgdGhpcy5fY29udmVydGVyc1tkZWZhdWx0U3ltYm9sLnR5cGVdLmNhbGwodGhpcywgZGVmYXVsdFN5bWJvbClcclxuICAgICAgXTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZpZWxkID0gcmVuZGVyZXIuZmllbGQxO1xyXG4gICAgY29uc3QgaW5mb3MgPSByZW5kZXJlci51bmlxdWVWYWx1ZUluZm9zO1xyXG4gICAgY29uc3QgbWUgPSB0aGlzO1xyXG4gICAgcmV0dXJuICgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGhhc2ggPSB7fTtcclxuICAgICAgZm9yIChsZXQgaSA9IDAsIGlpID0gaW5mb3MubGVuZ3RoOyBpIDwgaWk7ICsraSkge1xyXG4gICAgICAgIGNvbnN0IGluZm8gPSBpbmZvc1tpXTtcclxuICAgICAgICBjb25zdCBzeW1ib2wgPSBpbmZvLnN5bWJvbDtcclxuICAgICAgICBoYXNoW2luZm8udmFsdWVdID0gW21lLl9jb252ZXJ0ZXJzW3N5bWJvbC50eXBlXS5jYWxsKG1lLCBzeW1ib2wpXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIChmZWF0dXJlKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBoYXNoW2ZlYXR1cmUuZ2V0KGZpZWxkKV07XHJcbiAgICAgICAgcmV0dXJuIHN0eWxlID8gc3R5bGUgOiBkZWZhdWx0U3R5bGU7XHJcbiAgICAgIH07XHJcbiAgICB9KSgpO1xyXG4gIH1cclxuICBnZW5lcmF0ZVN0eWxlKGxheWVySW5mbywgbWFwVW5pdHMpIHtcclxuICAgIGNvbnN0IGRyYXdpbmdJbmZvID0gbGF5ZXJJbmZvLmRyYXdpbmdJbmZvO1xyXG4gICAgbGV0IHN0eWxlRnVuY3Rpb25zID0gW107XHJcbiAgICBjb25zdCBkcmF3aW5nSW5mb1N0eWxlID0gdGhpcy5fcmVuZGVyZXJzW2RyYXdpbmdJbmZvLnJlbmRlcmVyLnR5cGVdLmNhbGwoXHJcbiAgICAgIHRoaXMsXHJcbiAgICAgIGRyYXdpbmdJbmZvLnJlbmRlcmVyXHJcbiAgICApO1xyXG4gICAgaWYgKGRyYXdpbmdJbmZvU3R5bGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBzdHlsZUZ1bmN0aW9ucy5wdXNoKGRyYXdpbmdJbmZvU3R5bGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKGxheWVySW5mby5sYWJlbGluZ0luZm8pIHtcclxuICAgICAgY29uc3QgbGFiZWxpbmdJbmZvU3R5bGVGdW5jdGlvbnMgPSB0aGlzLl9jb252ZXJ0TGFiZWxpbmdJbmZvKFxyXG4gICAgICAgIGxheWVySW5mby5sYWJlbGluZ0luZm8sXHJcbiAgICAgICAgbWFwVW5pdHNcclxuICAgICAgKTtcclxuICAgICAgc3R5bGVGdW5jdGlvbnMgPSBzdHlsZUZ1bmN0aW9ucy5jb25jYXQobGFiZWxpbmdJbmZvU3R5bGVGdW5jdGlvbnMpO1xyXG4gICAgfVxyXG4gICAgaWYgKHN0eWxlRnVuY3Rpb25zLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICByZXR1cm4gc3R5bGVGdW5jdGlvbnNbMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IHtcclxuICAgICAgICAgIGxldCBzdHlsZXMgPSBbXTtcclxuICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBpaSA9IHN0eWxlRnVuY3Rpb25zLmxlbmd0aDsgaSA8IGlpOyArK2kpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gc3R5bGVGdW5jdGlvbnNbaV0uY2FsbChudWxsLCBmZWF0dXJlLCByZXNvbHV0aW9uKTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgIHN0eWxlcyA9IHN0eWxlcy5jb25jYXQocmVzdWx0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHN0eWxlcztcclxuICAgICAgICB9O1xyXG4gICAgICB9KSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,3 +1,3 @@
1
1
  export * from './esri-style-generator';
2
2
  export * from './tilegrid';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Vzcmktc3R5bGUtZ2VuZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdGlsZWdyaWQnO1xuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Vzcmktc3R5bGUtZ2VuZXJhdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi90aWxlZ3JpZCc7XHJcbiJdfQ==
@@ -17,4 +17,4 @@ export function createDefaultTileGrid(epsg) {
17
17
  matrixIds
18
18
  });
19
19
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZWdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3V0aWxzL3RpbGVncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFDTCxVQUFVLElBQUksZ0JBQWdCLEVBQzlCLFFBQVEsSUFBSSxjQUFjLEVBQzNCLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxJQUFhO0lBQ2pELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRSxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDcEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtRQUMzQixXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbEI7SUFFRCxPQUFPLElBQUksY0FBYyxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQztRQUMxQyxXQUFXO1FBQ1gsU0FBUztLQUNWLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xUaWxlR3JpZFdNVFMgZnJvbSAnb2wvdGlsZWdyaWQvV01UUyc7XG5pbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQge1xuICBnZXRUb3BMZWZ0IGFzIGV4dGVudEdldFRvcExlZnQsXG4gIGdldFdpZHRoIGFzIGV4dGVudEdldFdpZHRoXG59IGZyb20gJ29sL2V4dGVudC5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0VGlsZUdyaWQoZXBzZz86IHN0cmluZyk6IG9sVGlsZUdyaWRXTVRTIHtcbiAgY29uc3QgcHJvamVjdGlvbiA9IGVwc2cgPyBvbHByb2ouZ2V0KGVwc2cpIDogb2xwcm9qLmdldCgnRVBTRzozODU3Jyk7XG4gIGNvbnN0IHByb2plY3Rpb25FeHRlbnQgPSBwcm9qZWN0aW9uLmdldEV4dGVudCgpO1xuICBjb25zdCBzaXplID0gZXh0ZW50R2V0V2lkdGgocHJvamVjdGlvbkV4dGVudCkgLyAyNTY7XG4gIGNvbnN0IHJlc29sdXRpb25zID0gbmV3IEFycmF5KDIwKTtcbiAgY29uc3QgbWF0cml4SWRzID0gbmV3IEFycmF5KDIwKTtcbiAgZm9yIChsZXQgeiA9IDA7IHogPCAyMDsgKyt6KSB7XG4gICAgcmVzb2x1dGlvbnNbel0gPSBzaXplIC8gTWF0aC5wb3coMiwgeik7XG4gICAgbWF0cml4SWRzW3pdID0gejtcbiAgfVxuXG4gIHJldHVybiBuZXcgb2xUaWxlR3JpZFdNVFMoe1xuICAgIG9yaWdpbjogZXh0ZW50R2V0VG9wTGVmdChwcm9qZWN0aW9uRXh0ZW50KSxcbiAgICByZXNvbHV0aW9ucyxcbiAgICBtYXRyaXhJZHNcbiAgfSk7XG59XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZWdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3V0aWxzL3RpbGVncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFDTCxVQUFVLElBQUksZ0JBQWdCLEVBQzlCLFFBQVEsSUFBSSxjQUFjLEVBQzNCLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxJQUFhO0lBQ2pELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRSxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDcEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtRQUMzQixXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbEI7SUFFRCxPQUFPLElBQUksY0FBYyxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQztRQUMxQyxXQUFXO1FBQ1gsU0FBUztLQUNWLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xUaWxlR3JpZFdNVFMgZnJvbSAnb2wvdGlsZWdyaWQvV01UUyc7XHJcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcclxuaW1wb3J0IHtcclxuICBnZXRUb3BMZWZ0IGFzIGV4dGVudEdldFRvcExlZnQsXHJcbiAgZ2V0V2lkdGggYXMgZXh0ZW50R2V0V2lkdGhcclxufSBmcm9tICdvbC9leHRlbnQuanMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRUaWxlR3JpZChlcHNnPzogc3RyaW5nKTogb2xUaWxlR3JpZFdNVFMge1xyXG4gIGNvbnN0IHByb2plY3Rpb24gPSBlcHNnID8gb2xwcm9qLmdldChlcHNnKSA6IG9scHJvai5nZXQoJ0VQU0c6Mzg1NycpO1xyXG4gIGNvbnN0IHByb2plY3Rpb25FeHRlbnQgPSBwcm9qZWN0aW9uLmdldEV4dGVudCgpO1xyXG4gIGNvbnN0IHNpemUgPSBleHRlbnRHZXRXaWR0aChwcm9qZWN0aW9uRXh0ZW50KSAvIDI1NjtcclxuICBjb25zdCByZXNvbHV0aW9ucyA9IG5ldyBBcnJheSgyMCk7XHJcbiAgY29uc3QgbWF0cml4SWRzID0gbmV3IEFycmF5KDIwKTtcclxuICBmb3IgKGxldCB6ID0gMDsgeiA8IDIwOyArK3opIHtcclxuICAgIHJlc29sdXRpb25zW3pdID0gc2l6ZSAvIE1hdGgucG93KDIsIHopO1xyXG4gICAgbWF0cml4SWRzW3pdID0gejtcclxuICB9XHJcblxyXG4gIHJldHVybiBuZXcgb2xUaWxlR3JpZFdNVFMoe1xyXG4gICAgb3JpZ2luOiBleHRlbnRHZXRUb3BMZWZ0KHByb2plY3Rpb25FeHRlbnQpLFxyXG4gICAgcmVzb2x1dGlvbnMsXHJcbiAgICBtYXRyaXhJZHNcclxuICB9KTtcclxufVxyXG4iXX0=