@igo2/geo 1.9.0 → 1.10.0

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 (387) 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/bundles/igo2-geo.umd.js +3651 -2762
  7. package/bundles/igo2-geo.umd.js.map +1 -1
  8. package/esm2015/lib/catalog/catalog-browser/catalog-browser-group.component.js +2 -2
  9. package/esm2015/lib/catalog/catalog-browser/catalog-browser-layer.component.js +2 -2
  10. package/esm2015/lib/catalog/catalog-browser/catalog-browser.module.js +1 -1
  11. package/esm2015/lib/catalog/catalog-library/add-catalog-dialog.component.js +72 -53
  12. package/esm2015/lib/catalog/catalog-library/catalog-library.component.js +2 -1
  13. package/esm2015/lib/catalog/catalog.module.js +1 -1
  14. package/esm2015/lib/catalog/shared/catalog.abstract.js +1 -1
  15. package/esm2015/lib/catalog/shared/catalog.interface.js +1 -1
  16. package/esm2015/lib/catalog/shared/catalog.service.js +13 -3
  17. package/esm2015/lib/catalog/shared/index.js +1 -1
  18. package/esm2015/lib/datasource/datasource.module.js +1 -1
  19. package/esm2015/lib/datasource/index.js +1 -1
  20. package/esm2015/lib/datasource/shared/capabilities.service.js +4 -4
  21. package/esm2015/lib/datasource/shared/datasources/carto-datasource.interface.js +1 -1
  22. package/esm2015/lib/datasource/shared/datasources/carto-datasource.js +2 -2
  23. package/esm2015/lib/datasource/shared/datasources/cluster-datasource.js +1 -1
  24. package/esm2015/lib/datasource/shared/datasources/data.service.js +1 -1
  25. package/esm2015/lib/datasource/shared/datasources/datasource.interface.js +1 -1
  26. package/esm2015/lib/datasource/shared/datasources/datasource.js +1 -1
  27. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.interface.js +1 -1
  28. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.js +2 -2
  29. package/esm2015/lib/datasource/shared/datasources/osm-datasource.interface.js +1 -1
  30. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.interface.js +1 -1
  31. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.js +1 -1
  32. package/esm2015/lib/datasource/shared/datasources/wfs-datasource.interface.js +1 -1
  33. package/esm2015/lib/datasource/shared/datasources/wfs.service.js +1 -1
  34. package/esm2015/lib/datasource/shared/datasources/wms-wfs.utils.js +1 -1
  35. package/esm2015/lib/datasource/shared/datasources/wmts-datasource.interface.js +1 -1
  36. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.interface.js +1 -1
  37. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.js +1 -1
  38. package/esm2015/lib/datasource/shared/index.js +1 -1
  39. package/esm2015/lib/datasource/shared/options/index.js +1 -1
  40. package/esm2015/lib/datasource/shared/options/options-api.interface.js +1 -1
  41. package/esm2015/lib/datasource/shared/options/options-api.providers.js +1 -1
  42. package/esm2015/lib/datasource/shared/options/options-api.service.js +1 -1
  43. package/esm2015/lib/datasource/shared/options/options.service.js +1 -1
  44. package/esm2015/lib/datasource/utils/esri-style-generator.js +1 -1
  45. package/esm2015/lib/datasource/utils/index.js +1 -1
  46. package/esm2015/lib/datasource/utils/tilegrid.js +1 -1
  47. package/esm2015/lib/directions/directions-buttons/directions-buttons.component.js +223 -0
  48. package/esm2015/lib/directions/directions-buttons/index.js +2 -0
  49. package/esm2015/lib/directions/directions-inputs/directions-inputs.component.js +300 -0
  50. package/esm2015/lib/directions/directions-inputs/index.js +2 -0
  51. package/esm2015/lib/directions/directions-results/directions-results.component.js +204 -0
  52. package/esm2015/lib/directions/directions-results/index.js +2 -0
  53. package/esm2015/lib/directions/directions-sources/directions-source.interface.js +1 -1
  54. package/esm2015/lib/directions/directions-sources/directions-source.js +1 -1
  55. package/esm2015/lib/directions/directions-sources/directions-source.provider.js +1 -1
  56. package/esm2015/lib/directions/directions-sources/index.js +1 -1
  57. package/esm2015/lib/directions/directions-sources/osrm-directions-source.js +11 -2
  58. package/esm2015/lib/directions/directions.component.js +314 -0
  59. package/esm2015/lib/directions/directions.module.js +31 -10
  60. package/esm2015/lib/directions/index.js +5 -2
  61. package/esm2015/lib/directions/shared/directions-source.service.js +1 -1
  62. package/esm2015/lib/directions/shared/directions.enum.js +20 -3
  63. package/esm2015/lib/directions/shared/directions.interface.js +1 -1
  64. package/esm2015/lib/directions/shared/directions.service.js +1 -1
  65. package/esm2015/lib/directions/shared/directions.utils.js +507 -0
  66. package/esm2015/lib/directions/shared/index.js +3 -1
  67. package/esm2015/lib/directions/shared/store.js +24 -0
  68. package/esm2015/lib/download/download-button/download-button.component.js +1 -1
  69. package/esm2015/lib/download/download-button/index.js +1 -1
  70. package/esm2015/lib/download/download.module.js +1 -1
  71. package/esm2015/lib/download/index.js +1 -1
  72. package/esm2015/lib/download/shared/download.interface.js +1 -1
  73. package/esm2015/lib/download/shared/download.service.js +1 -1
  74. package/esm2015/lib/download/shared/index.js +1 -1
  75. package/esm2015/lib/draw/draw/draw-popup.component.js +6 -5
  76. package/esm2015/lib/draw/draw/draw.component.js +22 -17
  77. package/esm2015/lib/draw/shared/draw.utils.js +1 -1
  78. package/esm2015/lib/feature/feature-details/feature-details.directive.js +1 -1
  79. package/esm2015/lib/feature/feature-details/feature-details.module.js +1 -1
  80. package/esm2015/lib/feature/feature-form/feature-form.component.js +1 -1
  81. package/esm2015/lib/feature/feature-form/feature-form.module.js +1 -1
  82. package/esm2015/lib/feature/feature.module.js +1 -1
  83. package/esm2015/lib/feature/index.js +1 -1
  84. package/esm2015/lib/feature/shared/feature.enums.js +1 -1
  85. package/esm2015/lib/feature/shared/feature.interfaces.js +1 -1
  86. package/esm2015/lib/feature/shared/index.js +1 -1
  87. package/esm2015/lib/feature/shared/strategies/in-map-extent.js +1 -1
  88. package/esm2015/lib/feature/shared/strategies/in-map-resolution.js +1 -1
  89. package/esm2015/lib/feature/shared/strategies/index.js +1 -1
  90. package/esm2015/lib/feature/shared/strategies/loading-layer.js +1 -1
  91. package/esm2015/lib/feature/shared/strategies/loading.js +1 -1
  92. package/esm2015/lib/feature/shared/strategies/selection.js +5 -9
  93. package/esm2015/lib/feature/shared/strategies.utils.js +1 -1
  94. package/esm2015/lib/filter/filter.module.js +7 -4
  95. package/esm2015/lib/filter/ogc-filter-button/index.js +1 -1
  96. package/esm2015/lib/filter/ogc-filter-button/ogc-filter-button.component.js +1 -1
  97. package/esm2015/lib/filter/ogc-filter-form/index.js +1 -1
  98. package/esm2015/lib/filter/ogc-filter-form/ogc-filter-form.component.js +3 -3
  99. package/esm2015/lib/filter/ogc-filter-selection/ogc-filter-selection.component.js +1 -1
  100. package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time.component.js +240 -121
  101. package/esm2015/lib/filter/ogc-filterable-form/index.js +1 -1
  102. package/esm2015/lib/filter/ogc-filterable-item/index.js +1 -1
  103. package/esm2015/lib/filter/ogc-filterable-item/ogc-filterable-item.component.js +2 -2
  104. package/esm2015/lib/filter/ogc-filterable-list/index.js +1 -1
  105. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.js +1 -1
  106. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list.component.js +1 -1
  107. package/esm2015/lib/filter/shared/filterable-datasource.pipe.js +1 -1
  108. package/esm2015/lib/filter/shared/index.js +1 -1
  109. package/esm2015/lib/filter/shared/ogc-filter.enum.js +1 -1
  110. package/esm2015/lib/filter/shared/ogc-filter.interface.js +1 -1
  111. package/esm2015/lib/filter/shared/ogc-filter.js +1 -1
  112. package/esm2015/lib/filter/shared/ogc-filter.service.js +1 -1
  113. package/esm2015/lib/filter/shared/spatial-filter.enum.js +1 -1
  114. package/esm2015/lib/filter/shared/spatial-filter.interface.js +1 -1
  115. package/esm2015/lib/filter/shared/time-filter.enum.js +1 -1
  116. package/esm2015/lib/filter/shared/time-filter.interface.js +1 -1
  117. package/esm2015/lib/filter/shared/time-filter.service.js +1 -1
  118. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/index.js +1 -1
  119. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.js +185 -95
  120. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/index.js +1 -1
  121. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.js +1 -1
  122. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/index.js +1 -1
  123. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.js +1 -1
  124. package/esm2015/lib/filter/time-filter-button/index.js +1 -1
  125. package/esm2015/lib/filter/time-filter-button/time-filter-button.component.js +1 -1
  126. package/esm2015/lib/filter/time-filter-form/index.js +1 -1
  127. package/esm2015/lib/filter/time-filter-form/time-filter-form.component.js +1 -1
  128. package/esm2015/lib/filter/time-filter-item/index.js +1 -1
  129. package/esm2015/lib/filter/time-filter-item/time-filter-item.component.js +2 -2
  130. package/esm2015/lib/filter/time-filter-list/index.js +1 -1
  131. package/esm2015/lib/filter/time-filter-list/time-filter-list-binding.directive.js +1 -1
  132. package/esm2015/lib/filter/time-filter-list/time-filter-list.component.js +1 -1
  133. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field-input.component.js +3 -3
  134. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.component.js +1 -1
  135. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.module.js +1 -1
  136. package/esm2015/lib/geometry/geometry.module.js +1 -1
  137. package/esm2015/lib/geometry/index.js +1 -1
  138. package/esm2015/lib/geometry/shared/controls/draw.js +1 -1
  139. package/esm2015/lib/geometry/shared/controls/index.js +1 -1
  140. package/esm2015/lib/geometry/shared/geometry.errors.js +3 -3
  141. package/esm2015/lib/geometry/shared/index.js +1 -1
  142. package/esm2015/lib/import-export/export-button/export-button.component.js +1 -1
  143. package/esm2015/lib/import-export/export-button/index.js +1 -1
  144. package/esm2015/lib/import-export/import-export/import-export.component.js +179 -66
  145. package/esm2015/lib/import-export/import-export.module.js +1 -1
  146. package/esm2015/lib/import-export/index.js +1 -1
  147. package/esm2015/lib/import-export/shared/drop-geo-file.directive.js +1 -1
  148. package/esm2015/lib/import-export/shared/export.errors.js +1 -1
  149. package/esm2015/lib/import-export/shared/export.interface.js +1 -1
  150. package/esm2015/lib/import-export/shared/export.type.js +1 -1
  151. package/esm2015/lib/import-export/shared/export.utils.js +1 -1
  152. package/esm2015/lib/import-export/shared/import.interface.js +1 -1
  153. package/esm2015/lib/import-export/shared/import.service.js +1 -1
  154. package/esm2015/lib/import-export/shared/import.utils.js +1 -1
  155. package/esm2015/lib/import-export/shared/index.js +1 -1
  156. package/esm2015/lib/import-export/style-list/index.js +1 -1
  157. package/esm2015/lib/import-export/style-list/style-list.interface.js +1 -1
  158. package/esm2015/lib/import-export/style-list/style-list.module.js +1 -1
  159. package/esm2015/lib/import-export/style-list/style-list.provider.js +1 -1
  160. package/esm2015/lib/import-export/style-list/style-list.service.js +1 -1
  161. package/esm2015/lib/layer/index.js +1 -1
  162. package/esm2015/lib/layer/layer-item/index.js +1 -1
  163. package/esm2015/lib/layer/layer-item/layer-item.component.js +3 -3
  164. package/esm2015/lib/layer/layer-legend/index.js +1 -1
  165. package/esm2015/lib/layer/layer-legend/layer-legend.component.js +23 -16
  166. package/esm2015/lib/layer/layer-legend-item/index.js +1 -1
  167. package/esm2015/lib/layer/layer-legend-item/layer-legend-item.component.js +1 -1
  168. package/esm2015/lib/layer/layer-legend-list/index.js +1 -1
  169. package/esm2015/lib/layer/layer-legend-list/layer-legend-list-binding.directive.js +1 -1
  170. package/esm2015/lib/layer/layer-legend-list/layer-legend-list.component.js +5 -5
  171. package/esm2015/lib/layer/layer-list/index.js +1 -1
  172. package/esm2015/lib/layer/layer-list/layer-list-binding.directive.js +1 -1
  173. package/esm2015/lib/layer/layer-list/layer-list.component.js +44 -44
  174. package/esm2015/lib/layer/layer-list/layer-list.enum.js +1 -1
  175. package/esm2015/lib/layer/layer-list-tool/index.js +1 -1
  176. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.component.js +2 -2
  177. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.enum.js +1 -1
  178. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.interface.js +1 -1
  179. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.service.js +1 -1
  180. package/esm2015/lib/layer/layer.module.js +8 -5
  181. package/esm2015/lib/layer/shared/clusterParam.js +1 -1
  182. package/esm2015/lib/layer/shared/index.js +1 -1
  183. package/esm2015/lib/layer/shared/layer.enums.js +1 -1
  184. package/esm2015/lib/layer/shared/layer.service.js +20 -17
  185. package/esm2015/lib/layer/shared/layers/any-layer.interface.js +1 -1
  186. package/esm2015/lib/layer/shared/layers/any-layer.js +1 -1
  187. package/esm2015/lib/layer/shared/layers/image-layer.js +9 -4
  188. package/esm2015/lib/layer/shared/layers/index.js +1 -1
  189. package/esm2015/lib/layer/shared/layers/layer.js +15 -5
  190. package/esm2015/lib/layer/shared/layers/tile-layer.js +23 -3
  191. package/esm2015/lib/layer/shared/layers/vector-layer.interface.js +1 -1
  192. package/esm2015/lib/layer/shared/layers/vector-layer.js +20 -10
  193. package/esm2015/lib/layer/shared/layers/vectortile-layer.interface.js +1 -1
  194. package/esm2015/lib/layer/shared/layers/vectortile-layer.js +13 -3
  195. package/esm2015/lib/layer/shared/style.service.js +21 -16
  196. package/esm2015/lib/layer/shared/vector-style.interface.js +1 -1
  197. package/esm2015/lib/layer/track-feature-button/index.js +1 -1
  198. package/esm2015/lib/layer/track-feature-button/track-feature-button.component.js +1 -1
  199. package/esm2015/lib/layer/utils/index.js +2 -1
  200. package/esm2015/lib/layer/utils/layer.utils.js +11 -0
  201. package/esm2015/lib/layer/utils/layerSync-watcher.js +1 -1
  202. package/esm2015/lib/layer/utils/tile-watcher.js +1 -1
  203. package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.animation.js +1 -1
  204. package/esm2015/lib/map/baselayers-switcher/index.js +1 -1
  205. package/esm2015/lib/map/baselayers-switcher/mini-basemap.component.js +1 -1
  206. package/esm2015/lib/map/geolocate-button/geolocate-button.component.js +1 -1
  207. package/esm2015/lib/map/geolocate-button/index.js +1 -1
  208. package/esm2015/lib/map/index.js +2 -1
  209. package/esm2015/lib/map/map-browser/index.js +1 -1
  210. package/esm2015/lib/map/map-browser/map-browser.component.js +1 -1
  211. package/esm2015/lib/map/map.module.js +10 -5
  212. package/esm2015/lib/map/menu-button/index.js +2 -0
  213. package/esm2015/lib/map/menu-button/menu-button.component.js +66 -0
  214. package/esm2015/lib/map/offline-button/index.js +1 -1
  215. package/esm2015/lib/map/offline-button/offline-button.component.js +1 -1
  216. package/esm2015/lib/map/rotation-button/index.js +1 -1
  217. package/esm2015/lib/map/rotation-button/rotation-button.component.js +1 -1
  218. package/esm2015/lib/map/shared/controllers/index.js +1 -1
  219. package/esm2015/lib/map/shared/hover-feature.directive.js +231 -80
  220. package/esm2015/lib/map/shared/map-pointer-position.directive.js +3 -1
  221. package/esm2015/lib/map/shared/map.enums.js +1 -1
  222. package/esm2015/lib/map/shared/map.interface.js +1 -1
  223. package/esm2015/lib/map/shared/map.js +38 -16
  224. package/esm2015/lib/map/shared/map.service.js +1 -1
  225. package/esm2015/lib/map/shared/map.utils.js +7 -3
  226. package/esm2015/lib/map/shared/projection.service.js +1 -1
  227. package/esm2015/lib/map/shared/projection.utils.js +1 -1
  228. package/esm2015/lib/map/swipe-control/swipe-control.component.js +1 -1
  229. package/esm2015/lib/map/zoom-button/index.js +1 -1
  230. package/esm2015/lib/map/zoom-button/zoom-button.component.js +1 -1
  231. package/esm2015/lib/measure/index.js +1 -1
  232. package/esm2015/lib/measure/measure.module.js +1 -1
  233. package/esm2015/lib/measure/measurer/measure-format.pipe.js +1 -1
  234. package/esm2015/lib/measure/measurer/measurer-dialog.component.js +188 -176
  235. package/esm2015/lib/measure/measurer/measurer-item.component.js +17 -12
  236. package/esm2015/lib/measure/measurer/measurer.component.js +170 -69
  237. package/esm2015/lib/measure/measurer/measurer.module.js +13 -8
  238. package/esm2015/lib/measure/shared/index.js +1 -1
  239. package/esm2015/lib/measure/shared/measure.enum.js +1 -1
  240. package/esm2015/lib/measure/shared/measure.interfaces.js +1 -1
  241. package/esm2015/lib/measure/shared/measure.utils.js +1 -1
  242. package/esm2015/lib/metadata/index.js +1 -1
  243. package/esm2015/lib/metadata/metadata-button/index.js +1 -1
  244. package/esm2015/lib/metadata/shared/index.js +1 -1
  245. package/esm2015/lib/metadata/shared/metadata.service.js +1 -1
  246. package/esm2015/lib/overlay/index.js +1 -1
  247. package/esm2015/lib/overlay/overlay.module.js +1 -1
  248. package/esm2015/lib/overlay/shared/index.js +1 -1
  249. package/esm2015/lib/overlay/shared/overlay-marker-style.utils.js +2 -2
  250. package/esm2015/lib/overlay/shared/overlay.directive.js +1 -1
  251. package/esm2015/lib/overlay/shared/overlay.enum.js +1 -1
  252. package/esm2015/lib/overlay/shared/overlay.service.js +1 -1
  253. package/esm2015/lib/print/index.js +1 -1
  254. package/esm2015/lib/print/print-form/index.js +1 -1
  255. package/esm2015/lib/print/print.module.js +1 -1
  256. package/esm2015/lib/print/shared/index.js +1 -1
  257. package/esm2015/lib/print/shared/print.service.js +1 -1
  258. package/esm2015/lib/query/index.js +1 -1
  259. package/esm2015/lib/query/query.module.js +1 -1
  260. package/esm2015/lib/query/shared/index.js +1 -1
  261. package/esm2015/lib/query/shared/query-search-source.js +1 -1
  262. package/esm2015/lib/query/shared/query-search-source.providers.js +1 -1
  263. package/esm2015/lib/query/shared/query.directive.js +4 -4
  264. package/esm2015/lib/query/shared/query.enums.js +1 -1
  265. package/esm2015/lib/query/shared/query.interfaces.js +1 -1
  266. package/esm2015/lib/query/shared/query.service.js +24 -3
  267. package/esm2015/lib/query/shared/query.utils.js +19 -1
  268. package/esm2015/lib/search/index.js +1 -1
  269. package/esm2015/lib/search/search-bar/search-bar.component.js +2 -2
  270. package/esm2015/lib/search/search-bar/search-bar.module.js +1 -1
  271. package/esm2015/lib/search/search-bar/search-url-param.directive.js +1 -1
  272. package/esm2015/lib/search/search-results/search-results-add-button.component.js +2 -2
  273. package/esm2015/lib/search/search-results/search-results-item.component.js +1 -1
  274. package/esm2015/lib/search/search-results/search-results.component.js +1 -1
  275. package/esm2015/lib/search/search-results/search-results.module.js +1 -1
  276. package/esm2015/lib/search/search-selector/search-selector.component.js +1 -1
  277. package/esm2015/lib/search/search-selector/search-selector.module.js +1 -1
  278. package/esm2015/lib/search/search-settings/search-settings.module.js +1 -1
  279. package/esm2015/lib/search/shared/index.js +1 -1
  280. package/esm2015/lib/search/shared/search-pointer-summary.directive.js +17 -6
  281. package/esm2015/lib/search/shared/search-source-service.providers.js +1 -1
  282. package/esm2015/lib/search/shared/search-source.service.js +1 -1
  283. package/esm2015/lib/search/shared/search.enums.js +1 -1
  284. package/esm2015/lib/search/shared/search.interfaces.js +1 -1
  285. package/esm2015/lib/search/shared/search.utils.js +1 -1
  286. package/esm2015/lib/search/shared/sources/cadastre.js +9 -2
  287. package/esm2015/lib/search/shared/sources/coordinates.interfaces.js +1 -1
  288. package/esm2015/lib/search/shared/sources/coordinates.js +9 -2
  289. package/esm2015/lib/search/shared/sources/icherche.js +17 -4
  290. package/esm2015/lib/search/shared/sources/ilayer.interfaces.js +1 -1
  291. package/esm2015/lib/search/shared/sources/ilayer.js +9 -2
  292. package/esm2015/lib/search/shared/sources/index.js +1 -1
  293. package/esm2015/lib/search/shared/sources/nominatim.interfaces.js +1 -1
  294. package/esm2015/lib/search/shared/sources/nominatim.js +9 -2
  295. package/esm2015/lib/search/shared/sources/storedqueries.interfaces.js +1 -1
  296. package/esm2015/lib/search/shared/sources/storedqueries.js +20 -12
  297. package/esm2015/lib/toast/index.js +1 -1
  298. package/esm2015/lib/toast/toast.component.js +1 -1
  299. package/esm2015/lib/toast/toast.module.js +1 -1
  300. package/esm2015/lib/utils/commonVectorStyle.interface.js +1 -1
  301. package/esm2015/lib/utils/googleLinks.js +1 -1
  302. package/esm2015/lib/utils/osmLinks.js +1 -1
  303. package/esm2015/lib/wkt/index.js +1 -1
  304. package/esm2015/lib/wkt/shared/index.js +1 -1
  305. package/esm2015/lib/wkt/shared/wkt.service.js +15 -15
  306. package/esm2015/lib/wkt/wkt.module.js +1 -1
  307. package/esm2015/lib/workspace/index.js +1 -1
  308. package/esm2015/lib/workspace/shared/feature-workspace.js +1 -1
  309. package/esm2015/lib/workspace/shared/feature-workspace.service.js +1 -1
  310. package/esm2015/lib/workspace/shared/index.js +1 -1
  311. package/esm2015/lib/workspace/shared/wfs-workspace.js +1 -1
  312. package/esm2015/lib/workspace/shared/wfs-workspace.service.js +1 -1
  313. package/esm2015/lib/workspace/shared/wms-workspace.service.js +1 -1
  314. package/esm2015/lib/workspace/widgets/index.js +1 -1
  315. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.component.js +1 -1
  316. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.module.js +1 -1
  317. package/esm2015/lib/workspace/widgets/widgets.js +1 -1
  318. package/esm2015/lib/workspace/workspace-selector/workspace-selector.directive.js +1 -1
  319. package/esm2015/lib/workspace/workspace-selector/workspace-selector.module.js +1 -1
  320. package/esm2015/lib/workspace/workspace-updator/workspace-updator.directive.js +1 -1
  321. package/esm2015/lib/workspace/workspace-updator/workspace-updator.module.js +1 -1
  322. package/esm2015/lib/workspace/workspace.module.js +1 -1
  323. package/fesm2015/igo2-geo.js +3221 -2431
  324. package/fesm2015/igo2-geo.js.map +1 -1
  325. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +1 -1
  326. package/lib/datasource/shared/datasources/datasource.interface.d.ts +1 -0
  327. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +29 -0
  328. package/lib/directions/directions-buttons/index.d.ts +1 -0
  329. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +45 -0
  330. package/lib/directions/directions-inputs/index.d.ts +1 -0
  331. package/lib/directions/directions-results/directions-results.component.d.ts +30 -0
  332. package/lib/directions/directions-results/index.d.ts +1 -0
  333. package/lib/directions/directions-sources/directions-source.d.ts +2 -2
  334. package/lib/directions/directions-sources/osrm-directions-source.d.ts +2 -2
  335. package/lib/directions/directions.component.d.ts +55 -0
  336. package/lib/directions/directions.module.d.ts +19 -16
  337. package/lib/directions/index.d.ts +4 -1
  338. package/lib/directions/shared/directions.enum.d.ts +16 -2
  339. package/lib/directions/shared/directions.interface.d.ts +53 -3
  340. package/lib/directions/shared/directions.service.d.ts +3 -3
  341. package/lib/directions/shared/directions.utils.d.ts +42 -0
  342. package/lib/directions/shared/index.d.ts +2 -0
  343. package/lib/directions/shared/store.d.ts +18 -0
  344. package/lib/draw/draw/draw-popup.component.d.ts +6 -2
  345. package/lib/feature/shared/strategies/selection.d.ts +1 -0
  346. package/lib/filter/filter.module.d.ts +1 -1
  347. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +6 -1
  348. package/lib/filter/shared/ogc-filter.interface.d.ts +1 -0
  349. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +7 -2
  350. package/lib/import-export/import-export/import-export.component.d.ts +2 -0
  351. package/lib/import-export/shared/export.interface.d.ts +2 -1
  352. package/lib/layer/layer-legend/layer-legend.component.d.ts +0 -1
  353. package/lib/layer/layer.module.d.ts +1 -1
  354. package/lib/layer/shared/layer.service.d.ts +1 -1
  355. package/lib/layer/shared/layers/layer.d.ts +1 -0
  356. package/lib/layer/shared/layers/tile-layer.d.ts +10 -1
  357. package/lib/layer/shared/layers/vector-layer.interface.d.ts +1 -0
  358. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +1 -0
  359. package/lib/layer/shared/style.service.d.ts +4 -1
  360. package/lib/layer/shared/vector-style.interface.d.ts +9 -5
  361. package/lib/layer/utils/index.d.ts +1 -0
  362. package/lib/layer/utils/layer.utils.d.ts +2 -0
  363. package/lib/map/index.d.ts +1 -0
  364. package/lib/map/map.module.d.ts +8 -7
  365. package/lib/map/menu-button/index.d.ts +1 -0
  366. package/lib/map/menu-button/menu-button.component.d.ts +17 -0
  367. package/lib/map/shared/hover-feature.directive.d.ts +14 -5
  368. package/lib/map/shared/map.d.ts +2 -1
  369. package/lib/map/shared/map.interface.d.ts +1 -0
  370. package/lib/map/shared/map.utils.d.ts +1 -1
  371. package/lib/measure/measurer/measurer.component.d.ts +10 -0
  372. package/lib/measure/measurer/measurer.module.d.ts +4 -3
  373. package/lib/query/shared/query.interfaces.d.ts +2 -0
  374. package/lib/query/shared/query.service.d.ts +9 -1
  375. package/lib/query/shared/query.utils.d.ts +12 -0
  376. package/lib/search/shared/search-pointer-summary.directive.d.ts +6 -0
  377. package/lib/search/shared/search.interfaces.d.ts +1 -0
  378. package/ngcc.config.js +3 -3
  379. package/package.json +14 -13
  380. package/esm2015/lib/directions/directions-form/directions-form-binding.directive.js +0 -99
  381. package/esm2015/lib/directions/directions-form/directions-form.component.js +0 -1537
  382. package/esm2015/lib/directions/directions-form/directions-form.service.js +0 -26
  383. package/esm2015/lib/directions/directions-form/index.js +0 -4
  384. package/lib/directions/directions-form/directions-form-binding.directive.d.ts +0 -18
  385. package/lib/directions/directions-form/directions-form.component.d.ts +0 -137
  386. package/lib/directions/directions-form/directions-form.service.d.ts +0 -11
  387. package/lib/directions/directions-form/index.d.ts +0 -3
@@ -211,14 +211,14 @@ export class GeometryFormFieldInputComponent {
211
211
  /**
212
212
  * Implemented as part of ControlValueAccessor.
213
213
  */
214
- // tslint:disable-next-line:ban-types
214
+ // eslint-disable-next-line @typescript-eslint/ban-types
215
215
  registerOnChange(fn) {
216
216
  this.onChange = fn;
217
217
  }
218
218
  /**
219
219
  * Implemented as part of ControlValueAccessor.
220
220
  */
221
- // tslint:disable-next-line:ban-types
221
+ // eslint-disable-next-line @typescript-eslint/ban-types
222
222
  registerOnTouched(fn) {
223
223
  this.onTouched = fn;
224
224
  }
@@ -512,4 +512,4 @@ GeometryFormFieldInputComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ t
512
512
  }], radius: [{
513
513
  type: Input
514
514
  }] }); })();
515
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnktZm9ybS1maWVsZC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9nZW9tZXRyeS9nZW9tZXRyeS1mb3JtLWZpZWxkL2dlb21ldHJ5LWZvcm0tZmllbGQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZ2VvbWV0cnkvZ2VvbWV0cnktZm9ybS1maWVsZC9nZW9tZXRyeS1mb3JtLWZpZWxkLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLFFBQVEsRUFDUixJQUFJLEVBRUosdUJBQXVCLEVBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFDO0FBRzFDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLGFBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxLQUFLLE1BQU0sZUFBZSxDQUFDO0FBR2xDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLGFBQWEsRUFDYixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQXdCLE1BQU0sb0JBQW9CLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFPdEU7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8sK0JBQStCO0lBa00xQyxZQUNVLEtBQXdCLEVBQ0wsU0FBb0I7UUFEdkMsVUFB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LENBQUM7U0FDdEI7UUFDRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQyxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7OzhHQWppQlUsK0JBQStCO2tGQUEvQiwrQkFBK0I7UUNwRDVDLDZGQUEyQjs7dUZEb0RkLCtCQUErQjtjQUwzQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtnQkFDekMsV0FBVyxFQUFFLDRDQUE0QztnQkFDekQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7O3NCQXFNSSxRQUFROztzQkFBSSxJQUFJO3dCQTlLVixHQUFHO2tCQUFYLEtBQUs7WUFNRixZQUFZO2tCQURmLEtBQUs7WUFrQkcsU0FBUztrQkFBakIsS0FBSztZQUtHLE9BQU87a0JBQWYsS0FBSztZQU1GLG1CQUFtQjtrQkFEdEIsS0FBSztZQW9CRixvQkFBb0I7a0JBRHZCLEtBQUs7WUF5QkcsY0FBYztrQkFBdEIsS0FBSztZQU1GLFNBQVM7a0JBRFosS0FBSztZQWlDRixZQUFZO2tCQURmLEtBQUs7WUFVRixLQUFLO2tCQURSLEtBQUs7WUE0QkYsTUFBTTtrQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhd0NvbnRyb2xPcHRpb25zIH0gZnJvbSAnLi8uLi9zaGFyZWQvY29udHJvbHMvZHJhdyc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgKiBhcyBPbFN0eWxlIGZyb20gJ29sL3N0eWxlJztcbmltcG9ydCBPbEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xuaW1wb3J0IE9sR2VvbWV0cnkgZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeVR5cGUgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5VHlwZSc7XG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0IE9sVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xuaW1wb3J0IE9sVmVjdG9yTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVmVjdG9yJztcbmltcG9ydCBPbE92ZXJsYXkgZnJvbSAnb2wvT3ZlcmxheSc7XG5pbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgUG9pbnQgZnJvbSAnb2wvZ2VvbS9Qb2ludCc7XG5cbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcCc7XG5pbXBvcnQge1xuICBNZWFzdXJlTGVuZ3RoVW5pdCxcbiAgdXBkYXRlT2xHZW9tZXRyeU1pZHBvaW50cyxcbiAgZm9ybWF0TWVhc3VyZSxcbiAgbWVhc3VyZU9sR2VvbWV0cnlcbn0gZnJvbSAnLi4vLi4vbWVhc3VyZSc7XG5pbXBvcnQgeyBEcmF3Q29udHJvbCwgTW9kaWZ5Q29udHJvbCwgTW9kaWZ5Q29udHJvbE9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvY29udHJvbHMnO1xuaW1wb3J0IHsgY3JlYXRlRHJhd0ludGVyYWN0aW9uU3R5bGUgfSBmcm9tICcuLi9zaGFyZWQvZ2VvbWV0cnkudXRpbHMnO1xuaW1wb3J0IHsgR2VvSlNPTkdlb21ldHJ5IH0gZnJvbSAnLi4vc2hhcmVkL2dlb21ldHJ5LmludGVyZmFjZXMnO1xuaW1wb3J0IE9sQ2lyY2xlIGZyb20gJ29sL2dlb20vQ2lyY2xlJztcbmltcG9ydCBPbExpbmVTdHJpbmcgZnJvbSAnb2wvZ2VvbS9MaW5lU3RyaW5nJztcbmltcG9ydCBPbFBvaW50IGZyb20gJ29sL2dlb20vUG9pbnQnO1xuaW1wb3J0IE9sUG9seWdvbiBmcm9tICdvbC9nZW9tL1BvbHlnb24nO1xuXG4vKipcbiAqIFRoaXMgaW5wdXQgYWxsb3dzIGEgdXNlciB0byBkcmF3IGEgbmV3IGdlb21ldHJ5IG9yIHRvIGVkaXRcbiAqIGFuIGV4aXN0aW5nIG9uZSBvbiBhIG1hcC4gQSB0ZXh0IGlucHV0IGlzIGFsc28gZGlzcGxheWVkIGluIHRoZVxuICogZm9ybSB3aXRoIHNvbWUgaW5zdHJ1Y3Rpb25zLlxuICogVGhpcyBpcyBzdGlsbCBXSVAuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1nZW9tZXRyeS1mb3JtLWZpZWxkLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlb21ldHJ5LWZvcm0tZmllbGQtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBHZW9tZXRyeUZvcm1GaWVsZElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBwcml2YXRlIG9sT3ZlcmxheUxheWVyOiBPbFZlY3RvckxheWVyPE9sVmVjdG9yU291cmNlPE9sR2VvbWV0cnk+PjtcbiAgcHJpdmF0ZSBvbEdlb0pTT04gPSBuZXcgT2xHZW9KU09OKCk7XG4gIHByaXZhdGUgcmVhZHkgPSBmYWxzZTtcblxuICBwcml2YXRlIGRyYXdDb250cm9sOiBEcmF3Q29udHJvbDtcbiAgcHJpdmF0ZSBtb2RpZnlDb250cm9sOiBNb2RpZnlDb250cm9sO1xuICBwcml2YXRlIGRlZmF1bHREcmF3U3R5bGVSYWRpdXM6IG51bWJlcjtcbiAgcHJpdmF0ZSBvbEdlb21ldHJ5RW5kcyQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb2xHZW9tZXRyeUNoYW5nZXMkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG9sVG9vbHRpcCA9IHRoaXMuY3JlYXRlTWVhc3VyZVRvb2x0aXAoKTtcblxuICAvKipcbiAgICogQWN0aXZlIGNvbnRyb2xcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYWN0aXZlQ29udHJvbDogRHJhd0NvbnRyb2wgfCBNb2RpZnlDb250cm9sO1xuXG4gIC8qKlxuICAgKiBUaGUgbWFwIHRvIGRyYXcgdGhlIGdlb21ldHJ5IG9uXG4gICAqL1xuICBASW5wdXQoKSBtYXA6IElnb01hcDtcblxuICAvKipcbiAgICogVGhlIGdlb21ldHJ5IHR5cGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBnZW9tZXRyeVR5cGUodmFsdWU6IHR5cGVvZiBPbEdlb21ldHJ5VHlwZSkge1xuICAgIHRoaXMuX2dlb21ldHJ5VHlwZSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLnJlYWR5ID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGVhY3RpdmF0ZUNvbnRyb2woKTtcbiAgICB0aGlzLmNyZWF0ZURyYXdDb250cm9sKCk7XG4gICAgdGhpcy5kcmF3Q29udHJvbC5mcmVlaGFuZCQubmV4dCh0aGlzLmZyZWVoYW5kRHJhd0lzQWN0aXZlKTtcbiAgICB0aGlzLnRvZ2dsZUNvbnRyb2woKTtcbiAgfVxuICBnZXQgZ2VvbWV0cnlUeXBlKCk6IHR5cGVvZiBPbEdlb21ldHJ5VHlwZSB7IHJldHVybiB0aGlzLl9nZW9tZXRyeVR5cGU7IH1cbiAgcHJpdmF0ZSBfZ2VvbWV0cnlUeXBlOiB0eXBlb2YgT2xHZW9tZXRyeVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBkcmF3R3VpZGUgYXJvdW5kIHRoZSBtb3VzZSBwb2ludGVyIHRvIGhlbHAgZHJhd2luZ1xuICAgKi9cbiAgQElucHV0KCkgZHJhd0d1aWRlOiBudW1iZXIgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgbWVhc3VyZSB0b29sdGlwIHNob3VsZCBiZSBkaXNwbGF5ZWRcbiAgICovXG4gIEBJbnB1dCgpIG1lYXN1cmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciBkcmF3IGNvbnRyb2wgc2hvdWxkIGJlIGFjdGl2ZSBvciBub3RcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBkcmF3Q29udHJvbElzQWN0aXZlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZHJhd0NvbnRyb2xJc0FjdGl2ZTsgfVxuICBzZXQgZHJhd0NvbnRyb2xJc0FjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2RyYXdDb250cm9sSXNBY3RpdmUgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5yZWFkeSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kZWFjdGl2YXRlQ29udHJvbCgpO1xuICAgIGlmICghdGhpcy5fZHJhd0NvbnRyb2xJc0FjdGl2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRvZ2dsZUNvbnRyb2woKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfZHJhd0NvbnRyb2xJc0FjdGl2ZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgZnJlZWhhbmQgZHJhdyBjb250cm9sIHNob3VsZCBiZSBhY3RpdmUgb3Igbm90XG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgZnJlZWhhbmREcmF3SXNBY3RpdmUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9mcmVlaGFuZERyYXdJc0FjdGl2ZTsgfVxuICBzZXQgZnJlZWhhbmREcmF3SXNBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9mcmVlaGFuZERyYXdJc0FjdGl2ZSA9IHZhbHVlO1xuICAgIHRoaXMuZGVhY3RpdmF0ZUNvbnRyb2woKTtcblxuICAgIHRoaXMuY3JlYXRlRHJhd0NvbnRyb2woKTtcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeUNvbnRyb2woKTtcblxuICAgIHRoaXMuZHJhd0NvbnRyb2wuZnJlZWhhbmQkLm5leHQodGhpcy5mcmVlaGFuZERyYXdJc0FjdGl2ZSk7XG5cbiAgICBpZiAodGhpcy5yZWFkeSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZHJhd0NvbnRyb2xJc0FjdGl2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZUNvbnRyb2woKTtcbiAgfVxuICBwcml2YXRlIF9mcmVlaGFuZERyYXdJc0FjdGl2ZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29udHJvbCBvcHRpb25zXG4gICAqL1xuICBASW5wdXQoKSBjb250cm9sT3B0aW9uczoge1trZXk6IHN0cmluZ106IGFueX0gPSB7fTtcblxuICAvKipcbiAgICogU3R5bGUgZm9yIHRoZSBkcmF3IGNvbnRyb2wgKGFwcGxpZXMgd2hpbGUgdGhlIGdlb21ldHJ5IGlzIGJlaW5nIGRyYXduKVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRyYXdTdHlsZSh2YWx1ZTogT2xTdHlsZS5TdHlsZSB8ICgoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4gT2xTdHlsZS5TdHlsZSkgfCBPbFN0eWxlLkNpcmNsZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YWx1ZSA9IGNyZWF0ZURyYXdJbnRlcmFjdGlvblN0eWxlKCk7XG4gICAgfVxuICAgIHRoaXMuX2RyYXdTdHlsZSA9IHZhbHVlO1xuXG4gICAgY29uc3Qgb2xHdWlkZVN0eWxlID0gdGhpcy5nZXRHdWlkZVN0eWxlRnJvbURyYXdTdHlsZSh2YWx1ZSkgYXMgT2xTdHlsZS5DaXJjbGU7XG4gICAgaWYgKG9sR3VpZGVTdHlsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmRlZmF1bHREcmF3U3R5bGVSYWRpdXMgPSBvbEd1aWRlU3R5bGUuZ2V0UmFkaXVzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVmYXVsdERyYXdTdHlsZVJhZGl1cyA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVhZHkgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kZWFjdGl2YXRlQ29udHJvbCgpO1xuICAgIHRoaXMuY3JlYXRlRHJhd0NvbnRyb2woKTtcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeUNvbnRyb2woKTtcblxuICAgIHRoaXMuZHJhd0NvbnRyb2wuZnJlZWhhbmQkLm5leHQodGhpcy5mcmVlaGFuZERyYXdJc0FjdGl2ZSk7XG4gICAgdGhpcy50b2dnbGVDb250cm9sKCk7XG4gIH1cbiAgZ2V0IGRyYXdTdHlsZSgpOiBPbFN0eWxlLlN0eWxlIHwgKChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiBPbFN0eWxlLlN0eWxlKSB8IE9sU3R5bGUuQ2lyY2xlIHsgcmV0dXJuIHRoaXMuX2RyYXdTdHlsZTsgfVxuICBwcml2YXRlIF9kcmF3U3R5bGU6IE9sU3R5bGUuU3R5bGUgfCAoKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IE9sU3R5bGUuU3R5bGUpIHwgT2xTdHlsZS5DaXJjbGU7XG5cbiAgLyoqXG4gICAqIFN0eWxlIGZvciB0aGUgb3ZlcmxheSBsYXllciAoYXBwbGllcyBvbmNlIHRoZSBnZW9tZXRyeSBpcyBhZGRlZCB0byB0aGUgbWFwKVxuICAgKiBJZiBub3Qgc3BlY2lmaWVkLCBkcmF3U3R5bGUgYXBwbGllc1xuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IG92ZXJsYXlTdHlsZSh2YWx1ZTogT2xTdHlsZS5TdHlsZSB8ICgoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4gT2xTdHlsZS5TdHlsZSkgfCBPbFN0eWxlLkNpcmNsZSkgeyB0aGlzLl9vdmVybGF5U3R5bGUgPSB2YWx1ZTsgfVxuICBnZXQgb3ZlcmxheVN0eWxlKCk6IE9sU3R5bGUuU3R5bGUgfCAoKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IE9sU3R5bGUuU3R5bGUpIHwgT2xTdHlsZS5DaXJjbGUgeyByZXR1cm4gdGhpcy5fb3ZlcmxheVN0eWxlOyB9XG4gIHByaXZhdGUgX292ZXJsYXlTdHlsZTogT2xTdHlsZS5TdHlsZSB8ICgoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4gT2xTdHlsZS5TdHlsZSkgfCBPbFN0eWxlLkNpcmNsZTtcblxuICAvKipcbiAgICogVGhlIGdlb21ldHJ5IHZhbHVlIChHZW9KU09OKVxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbHVlOiBHZW9KU09OR2VvbWV0cnkpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLnJlYWR5ID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hZGRHZW9KU09OVG9PdmVybGF5KHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbE92ZXJsYXlTb3VyY2UuY2xlYXIodHJ1ZSk7XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMudG9nZ2xlQ29udHJvbCgpO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG4gIGdldCB2YWx1ZSgpOiBHZW9KU09OR2VvbWV0cnkgeyByZXR1cm4gdGhpcy5fdmFsdWU7IH1cbiAgcHJpdmF0ZSBfdmFsdWU6IEdlb0pTT05HZW9tZXRyeTtcblxuICAvKipcbiAgICogVGhlIHZlY3RvciBzb3VyY2UgdG8gYWRkIHRoZSBnZW9tZXRyeSB0b1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBvbE92ZXJsYXlTb3VyY2UoKTogT2xWZWN0b3JTb3VyY2U8T2xHZW9tZXRyeT4ge1xuICAgIHJldHVybiB0aGlzLm9sT3ZlcmxheUxheWVyLmdldFNvdXJjZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHJhZGl1cyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHRoaXMucmVhZHkgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLm1vZGlmeUNvbnRyb2wuZ2V0U291cmNlKCkpIHtcbiAgICAgIHRoaXMubW9kaWZ5Q29udHJvbC5nZXRTb3VyY2UoKS5yZWZyZXNoKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZyZWVoYW5kRHJhd0lzQWN0aXZlKSB7XG4gICAgICBsZXQgb2xNb2RpZnk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgb2xNb2RpZnkgPSB0aGlzLm1vZGlmeUNvbnRyb2wub2xNb2RpZnlJbnRlcmFjdGlvbjtcbiAgICAgICAgaWYgKG9sTW9kaWZ5KSB7XG4gICAgICAgICAgaWYgKG9sTW9kaWZ5LmZlYXR1cmVzXykge1xuICAgICAgICAgICAgb2xNb2RpZnkuZmVhdHVyZXNfLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLmFkZEdlb0pTT05Ub092ZXJsYXkodGhpcy52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbFxuICApIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gU2V0dGluZyB0aGUgdmFsdWUgYWNjZXNzb3IgZGlyZWN0bHkgKGluc3RlYWQgb2YgdXNpbmdcbiAgICAgIC8vIHRoZSBwcm92aWRlcnMpIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydC5cbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gb3ZlcmxheSBsYXllciwgYWRkIHRoZSBpbml0aWFsIGdlb21ldHJ5IHRvIGl0IChpZiBhbnkpXG4gICAqIGFuZCB0b2dnbGUgdGhlIHJpZ2h0IGludGVyYWN0aW9uLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmRyYXdTdHlsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmRyYXdTdHlsZSA9IGNyZWF0ZURyYXdJbnRlcmFjdGlvblN0eWxlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3ZlcmxheVN0eWxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub3ZlcmxheVN0eWxlID0gdGhpcy5kcmF3U3R5bGU7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRPbE92ZXJsYXlMYXllcigpO1xuICAgIHRoaXMuY3JlYXRlRHJhd0NvbnRyb2woKTtcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeUNvbnRyb2woKTtcblxuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmFkZEdlb0pTT05Ub092ZXJsYXkodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMudG9nZ2xlQ29udHJvbCgpO1xuXG4gICAgdGhpcy5yZWFkeSA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIG92ZXJsYXkgbGF5ZXIgYW5kIGFueSBpbnRlcmFjdGlvbiBhZGRlZCBieSB0aGlzIGNvbXBvbmVudC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBUaGlzIGlzIG1hbmRhdG9yeSB3aGVuIHRoZSBmb3JtIGNvbnRyb2wgaXMgcmV1c2VkIGFmdGVyXG4gICAgLy8gdGhpcyBjb21wb25lbnQgaGFzIGJlZW4gZGVzdHJveWVkLiBJdCBzZWVtcyBsaWtlIHRoZSBjb250cm9sXG4gICAgLy8ga2VlcHMgYSByZWZlcmVuY2UgdG8gdGhpcyBjb21wb25lbnQgZXZlbiBhZnRlciBpdCdzIGRlc3Ryb3llZFxuICAgIC8vIGFuZCBpdCBhdHRlbXB0cyB0byBzZXQgaXQncyB2YWx1ZVxuICAgIHRoaXMucmVhZHkgPSBmYWxzZTtcblxuICAgIHRoaXMuZGVhY3RpdmF0ZUNvbnRyb2woKTtcbiAgICB0aGlzLm9sT3ZlcmxheVNvdXJjZS5jbGVhcigpO1xuICAgIHRoaXMubWFwLm9sLnJlbW92ZUxheWVyKHRoaXMub2xPdmVybGF5TGF5ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6YmFuLXR5cGVzXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG4gIHByaXZhdGUgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmJhbi10eXBlc1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogRnVuY3Rpb24pIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG4gIHByaXZhdGUgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IEdlb0pTT05HZW9tZXRyeSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gb3ZlcmxheSBsYXllciB0byB0aGUgbWFwXG4gICAqL1xuICBwcml2YXRlIGFkZE9sT3ZlcmxheUxheWVyKCkge1xuICAgIHRoaXMub2xPdmVybGF5TGF5ZXIgPSBuZXcgT2xWZWN0b3JMYXllcih7XG4gICAgICBzb3VyY2U6IG5ldyBPbFZlY3RvclNvdXJjZSgpLFxuICAgICAgekluZGV4OiA1MDAsXG4gICAgICBzdHlsZTogbnVsbFxuICAgIH0pO1xuICAgIHRoaXMubWFwLm9sLmFkZExheWVyKHRoaXMub2xPdmVybGF5TGF5ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGRyYXcgY29udHJvbCBhbmQgc3Vic2NyaWJlIHRvIGl0J3MgZ2VvbWV0cnlcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlRHJhd0NvbnRyb2woKSB7XG4gICAgY29uc3QgY29udHJvbE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbnRyb2xPcHRpb25zLCB7XG4gICAgICBnZW9tZXRyeVR5cGU6IHRoaXMuZ2VvbWV0cnlUeXBlIHx8ICdQb2ludCcsXG4gICAgICBkcmF3aW5nTGF5ZXI6IHRoaXMub2xPdmVybGF5TGF5ZXIsXG4gICAgICBpbnRlcmFjdGlvblN0eWxlOiB0eXBlb2YgdGhpcy5kcmF3U3R5bGUgPT09ICdmdW5jdGlvbicgPyB0aGlzLmRyYXdTdHlsZSA6IChvbEZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PiwgcmVzb2x1dGlvbjogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5kcmF3U3R5bGU7XG4gICAgICAgIHRoaXMudXBkYXRlRHJhd1N0eWxlV2l0aERyYXdHdWlkZShzdHlsZSwgcmVzb2x1dGlvbik7XG4gICAgICAgIHJldHVybiBzdHlsZTtcbiAgICAgIH1cbiAgICB9KSBhcyBEcmF3Q29udHJvbE9wdGlvbnM7XG4gICAgdGhpcy5kcmF3Q29udHJvbCA9IG5ldyBEcmF3Q29udHJvbChjb250cm9sT3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbW9kaWZ5IGNvbnRyb2wgYW5kIHN1YnNjcmliZSB0byBpdCdzIGdlb21ldHJ5XG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZU1vZGlmeUNvbnRyb2woKSB7XG4gICAgY29uc3QgY29udHJvbE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbnRyb2xPcHRpb25zLCB7XG4gICAgICBsYXllcjogdGhpcy5vbE92ZXJsYXlMYXllcixcbiAgICAgIGRyYXdTdHlsZTogdHlwZW9mIHRoaXMuZHJhd1N0eWxlID09PSAnZnVuY3Rpb24nID8gdGhpcy5kcmF3U3R5bGUgOiAob2xGZWF0dXJlOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT4sIHJlc29sdXRpb246IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBzdHlsZSA9IHRoaXMuZHJhd1N0eWxlO1xuICAgICAgICB0aGlzLnVwZGF0ZURyYXdTdHlsZVdpdGhEcmF3R3VpZGUoc3R5bGUsIHJlc29sdXRpb24pO1xuICAgICAgICByZXR1cm4gc3R5bGU7XG4gICAgICB9XG4gICAgfSkgYXMgTW9kaWZ5Q29udHJvbE9wdGlvbnM7XG4gICAgdGhpcy5tb2RpZnlDb250cm9sID0gbmV3IE1vZGlmeUNvbnRyb2woY29udHJvbE9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgcHJvcGVyIGNvbnRyb2wgKGRyYXcgb3IgbW9kaWZ5KVxuICAgKi9cbiAgcHJpdmF0ZSB0b2dnbGVDb250cm9sKCkge1xuICAgIGxldCBhY3RpdmF0ZTtcbiAgICBpZiAoIXRoaXMudmFsdWUgJiYgdGhpcy5nZW9tZXRyeVR5cGUpIHtcbiAgICAgIGFjdGl2YXRlID0gdGhpcy5kcmF3Q29udHJvbDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWN0aXZhdGUgPSB0aGlzLm1vZGlmeUNvbnRyb2w7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGNvbnRyb2wgdGhhdCBzaG91bGQgYmUgYWN0aXZhdGVkXG4gICAgLy8gaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IGFjdGl2ZSBjb250cm9sLFxuICAgIC8vIGRlYWN0aXZhdGUgdGhlIGN1cnJlbnQgY29udHJvbCBhbmQgYWN0aXZhdGUgdGhlIG5ldyBvbmVcbiAgICAvLyBPdGhlcndpc2UsIGRvIG5vdGhpbmcgYW5kIGtlZXAgdGhlIGN1cnJlbnQgY29udHJvbCBhY3RpdmVcbiAgICBpZiAoYWN0aXZhdGUgIT09IHRoaXMuYWN0aXZlQ29udHJvbCkge1xuICAgICAgdGhpcy5kZWFjdGl2YXRlQ29udHJvbCgpO1xuICAgICAgdGhpcy5hY3RpdmF0ZUNvbnRyb2woYWN0aXZhdGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZSBhIGdpdmVuIGNvbnRyb2xcbiAgICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbFxuICAgKi9cbiAgcHJpdmF0ZSBhY3RpdmF0ZUNvbnRyb2woY29udHJvbDogRHJhd0NvbnRyb2wgfCBNb2RpZnlDb250cm9sKSB7XG4gICAgdGhpcy5hY3RpdmVDb250cm9sID0gY29udHJvbDtcbiAgICB0aGlzLm9sR2VvbWV0cnlFbmRzJCQgPSBjb250cm9sLmVuZCRcbiAgICAgIC5zdWJzY3JpYmUoKG9sR2VvbWV0cnk6IE9sR2VvbWV0cnkpID0+IHRoaXMub25PbEdlb21ldHJ5RW5kcyhvbEdlb21ldHJ5KSk7XG4gICAgaWYgKHRoaXMubWVhc3VyZSA9PT0gdHJ1ZSAmJiBjb250cm9sID09PSB0aGlzLmRyYXdDb250cm9sKSB7XG4gICAgICB0aGlzLm9sR2VvbWV0cnlDaGFuZ2VzJCQgPSBjb250cm9sLmNoYW5nZXMkXG4gICAgICAgIC5zdWJzY3JpYmUoKG9sR2VvbWV0cnk6IE9sUG9seWdvbiB8IE9sUG9pbnQgfCBPbExpbmVTdHJpbmcgfCBPbENpcmNsZSkgPT4gdGhpcy5vbk9sR2VvbWV0cnlDaGFuZ2VzKG9sR2VvbWV0cnkpKTtcbiAgICB9XG4gICAgY29udHJvbC5zZXRPbE1hcCh0aGlzLm1hcC5vbCwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlYWN0aXZhdGUgdGhlIGFjdGl2ZSBjb250cm9sXG4gICAqL1xuICBwcml2YXRlIGRlYWN0aXZhdGVDb250cm9sKCkge1xuICAgIHRoaXMucmVtb3ZlTWVhc3VyZVRvb2x0aXAoKTtcbiAgICBpZiAodGhpcy5hY3RpdmVDb250cm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZlQ29udHJvbC5zZXRPbE1hcCh1bmRlZmluZWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5vbEdlb21ldHJ5RW5kcyQkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub2xHZW9tZXRyeUVuZHMkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5vbEdlb21ldHJ5Q2hhbmdlcyQkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub2xHZW9tZXRyeUNoYW5nZXMkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZUNvbnRyb2wgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG1lYXN1cmVzIG9ic2VydmFibGVzIGFuZCBtYXAgdG9vbHRpcHNcbiAgICogQHBhcmFtIG9sR2VvbWV0cnkgT2wgbGluZXN0cmluZyBvciBwb2x5Z29uXG4gICAqL1xuICBwcml2YXRlIG9uT2xHZW9tZXRyeUVuZHMob2xHZW9tZXRyeTogT2xHZW9tZXRyeSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMucmVtb3ZlTWVhc3VyZVRvb2x0aXAoKTtcbiAgICB0aGlzLnNldE9sR2VvbWV0cnkob2xHZW9tZXRyeSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG1lYXN1cmVzIG9ic2VydmFibGVzIGFuZCBtYXAgdG9vbHRpcHNcbiAgICogQHBhcmFtIG9sR2VvbWV0cnkgT2wgbGluZXN0cmluZyBvciBwb2x5Z29uXG4gICAqL1xuICBwcml2YXRlIG9uT2xHZW9tZXRyeUNoYW5nZXMob2xHZW9tZXRyeTogT2xQb2x5Z29uIHwgT2xQb2ludCB8IE9sTGluZVN0cmluZyB8IE9sQ2lyY2xlKSB7XG4gICAgaWYgKG9sR2VvbWV0cnkuZ2V0VHlwZSgpICE9PSAnUG9pbnQnKSB7XG4gICAgICB0aGlzLnVwZGF0ZU1lYXN1cmVUb29sdGlwKG9sR2VvbWV0cnkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGRyYXdpbmcgZW5kcywgY29udmVydCB0aGUgb3V0cHV0IHZhbHVlIHRvIEdlb0pTT04gYW5kIGtlZXAgaXQuXG4gICAqIFJlc3RvcmUgdGhlIGRvdWJsZSBjbGljayBpbnRlcmFjdGlvbi5cbiAgICogQHBhcmFtIG9sR2VvbWV0cnkgT0wgZ2VvbWV0cnlcbiAgICovXG4gIHByaXZhdGUgc2V0T2xHZW9tZXRyeShvbEdlb21ldHJ5OiBPbEdlb21ldHJ5IHwgdW5kZWZpbmVkKSB7XG4gICAgbGV0IHZhbHVlO1xuICAgIGlmIChvbEdlb21ldHJ5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAob2xHZW9tZXRyeS5nZXRUeXBlKCkgPT09ICdDaXJjbGUnKSB7IC8vIEJlY2F1c2UgQ2lyY2xlIGRvZXNuJ3QgZXhpc3QgYXMgYSBHZW9KU09OIG9iamVjdFxuICAgICAgb2xHZW9tZXRyeSA9IHRoaXMuY2lyY2xlVG9Qb2ludChvbEdlb21ldHJ5KTtcbiAgICB9XG5cbiAgICB2YWx1ZSA9IHRoaXMub2xHZW9KU09OLndyaXRlR2VvbWV0cnlPYmplY3Qob2xHZW9tZXRyeSwge1xuICAgICAgZmVhdHVyZVByb2plY3Rpb246IHRoaXMubWFwLnByb2plY3Rpb24sXG4gICAgICBkYXRhUHJvamVjdGlvbjogJ0VQU0c6NDMyNidcbiAgICB9KTtcbiAgICBpZiAob2xHZW9tZXRyeS5nZXQoJ3JhZGl1cycpKSB7XG4gICAgICB2YWx1ZS5yYWRpdXMgPSBvbEdlb21ldHJ5LmdldCgncmFkaXVzJyk7XG4gICAgICBvbEdlb21ldHJ5LnNldCgncmFkaXVzJywgdmFsdWUucmFkaXVzKTtcbiAgICB9XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2lyY2xlVG9Qb2ludChvbEdlb21ldHJ5KSB7XG4gICAgY29uc3QgY2VudGVyID0gb2xHZW9tZXRyeS5nZXRDZW50ZXIoKTtcbiAgICBjb25zdCBjb29yZGluYXRlcyA9IG9scHJvai50cmFuc2Zvcm0oY2VudGVyLCB0aGlzLm1hcC5wcm9qZWN0aW9uLCAnRVBTRzo0MzI2Jyk7XG4gICAgY29uc3QgcmFkaXVzID0gTWF0aC5yb3VuZChvbEdlb21ldHJ5LmdldFJhZGl1cygpICogKE1hdGguY29zKChNYXRoLlBJIC8gMTgwKSAqIGNvb3JkaW5hdGVzWzFdKSkpO1xuXG4gICAgLy8gQ29udmVydCBpdCB0byBhIHBvaW50IG9iamVjdFxuICAgIG9sR2VvbWV0cnkgPSBuZXcgUG9pbnQoY2VudGVyKTtcbiAgICBvbEdlb21ldHJ5LnNldCgncmFkaXVzJywgcmFkaXVzLCB0cnVlKTtcbiAgICByZXR1cm4gb2xHZW9tZXRyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBHZW9KU09OIGdlb21ldHJ5IHRvIHRoZSBvdmVybGF5XG4gICAqIEBwYXJhbSBnZW9tZXRyeSBHZW9KU09OIGdlb21ldHJ5XG4gICAqL1xuICBwcml2YXRlIGFkZEdlb0pTT05Ub092ZXJsYXkoZ2VvbWV0cnk6IEdlb0pTT05HZW9tZXRyeSkge1xuICAgIGNvbnN0IG9sR2VvbWV0cnkgPSB0aGlzLm9sR2VvSlNPTi5yZWFkR2VvbWV0cnkoZ2VvbWV0cnksIHtcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcbiAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiB0aGlzLm1hcC5wcm9qZWN0aW9uXG4gICAgfSk7XG4gICAgY29uc3Qgb2xGZWF0dXJlID0gbmV3IE9sRmVhdHVyZSh7XG4gICAgICBnZW9tZXRyeTogb2xHZW9tZXRyeVxuICAgIH0pO1xuICAgIG9sRmVhdHVyZS5zZXRTdHlsZSh0aGlzLm92ZXJsYXlTdHlsZSBhcyBPbFN0eWxlLlN0eWxlKTtcbiAgICB0aGlzLm9sT3ZlcmxheVNvdXJjZS5jbGVhcigpO1xuICAgIHRoaXMub2xPdmVybGF5U291cmNlLmFkZEZlYXR1cmUob2xGZWF0dXJlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIG1lYXN1cmUgdG9vbHRpcFxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVNZWFzdXJlVG9vbHRpcCgpIHtcbiAgICByZXR1cm4gbmV3IE9sT3ZlcmxheSh7XG4gICAgICBlbGVtZW50OiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSxcbiAgICAgIG9mZnNldDogWy0zMCwgLTEwXSxcbiAgICAgIGNsYXNzTmFtZTogW1xuICAgICAgICAnaWdvLW1hcC10b29sdGlwJyxcbiAgICAgICAgJ2lnby1tYXAtdG9vbHRpcC1tZWFzdXJlJ1xuICAgICAgXS5qb2luKCcgJyksXG4gICAgICBzdG9wRXZlbnQ6IGZhbHNlXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBtZWFzdXJlIHRvb2x0aXAgb2YgYW4gT0wgZ2VvbWV0cnlcbiAgICogQHBhcmFtIG9sR2VvbWV0cnkgT0wgR2VvbWV0cnlcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlTWVhc3VyZVRvb2x0aXAob2xHZW9tZXRyeTogT2xQb2x5Z29uIHwgT2xQb2ludCB8IE9sTGluZVN0cmluZyB8IE9sQ2lyY2xlKSB7XG4gICAgY29uc3QgbWVhc3VyZSA9IG1lYXN1cmVPbEdlb21ldHJ5KG9sR2VvbWV0cnksIHRoaXMubWFwLnByb2plY3Rpb24pO1xuICAgIGNvbnN0IGxlbmd0aHMgPSBtZWFzdXJlLmxlbmd0aHM7XG4gICAgY29uc3QgbGFzdEluZGV4ID0gb2xHZW9tZXRyeS5nZXRUeXBlKCkgPT09ICdQb2x5Z29uJyA/IGxlbmd0aHMubGVuZ3RoIC0gMiA6IGxlbmd0aHMubGVuZ3RoIC0gMTtcbiAgICBjb25zdCBsYXN0TGVuZ3RoID0gbGVuZ3Roc1tsYXN0SW5kZXhdO1xuXG4gICAgY29uc3Qgb2xNaWRwb2ludHMgPSB1cGRhdGVPbEdlb21ldHJ5TWlkcG9pbnRzKG9sR2VvbWV0cnkpO1xuICAgIGNvbnN0IG9sTGFzdE1pZHBvaW50ID0gb2xNaWRwb2ludHNbbGFzdEluZGV4XTtcbiAgICBpZiAob2xNaWRwb2ludHMubGVuZ3RoID09PSAwIHx8IG9sTGFzdE1pZHBvaW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVtb3ZlTWVhc3VyZVRvb2x0aXAoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9sVG9vbHRpcC5zZXRQb3NpdGlvbihvbExhc3RNaWRwb2ludC5nZXRGbGF0Q29vcmRpbmF0ZXMoKSk7XG5cbiAgICBjb25zdCBpbm5lckh0bWwgPSBmb3JtYXRNZWFzdXJlKGxhc3RMZW5ndGgsIHtcbiAgICAgIGRlY2ltYWw6IDEsXG4gICAgICB1bml0OiBNZWFzdXJlTGVuZ3RoVW5pdC5NZXRlcnMsXG4gICAgICB1bml0QWJicjogdHJ1ZSxcbiAgICAgIGxvY2FsZTogJ2ZyJ1xuICAgIH0pO1xuICAgIHRoaXMub2xUb29sdGlwLmdldEVsZW1lbnQoKS5pbm5lckhUTUwgPSBpbm5lckh0bWw7XG4gICAgaWYgKHRoaXMub2xUb29sdGlwLmdldE1hcCgpID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubWFwLm9sLmFkZE92ZXJsYXkodGhpcy5vbFRvb2x0aXApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdGhlIG1lYXN1cmUgdG9vbHRpcCBmcm9tIHRoZSBtYXBcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlTWVhc3VyZVRvb2x0aXAoKSB7XG4gICAgaWYgKHRoaXMub2xUb29sdGlwLmdldE1hcCAmJiB0aGlzLm9sVG9vbHRpcC5nZXRNYXAoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm1hcC5vbC5yZW1vdmVPdmVybGF5KHRoaXMub2xUb29sdGlwKTtcbiAgICAgIHRoaXMub2xUb29sdGlwLnNldE1hcCh1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGp1c3QgdGhlIGRyYXcgc3R5bGUgd2l0aCB0aGUgc3BlY2lmaWVkIGRyYXcgZ3VpZGUgZGlzdGFuY2UsIGlmIHBvc3NpYmxlXG4gICAqIEBwYXJhbSBvbFN0eWxlIERyYXcgc3R5bGUgdG8gdXBkYXRlXG4gICAqIEBwYXJhbSByZXNvbHV0aW9uIFJlc29sdXRpb24gKHRvIG1ha2UgdGhlIHNjcmVlbiBzaXplIG9mIHN5bWJvbCBmaXQgdGhlIGRyYXdHdWlkZSB2YWx1ZSlcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlRHJhd1N0eWxlV2l0aERyYXdHdWlkZShcbiAgICBvbFN0eWxlOiBPbFN0eWxlLlN0eWxlIHxcbiAgICAoKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IE9sU3R5bGUuU3R5bGUpIHxcbiAgICBPbFN0eWxlLkNpcmNsZSxcbiAgICByZXNvbHV0aW9uOiBudW1iZXIpIHtcbiAgICBjb25zdCBvbEd1aWRlU3R5bGUgPSB0aGlzLmdldEd1aWRlU3R5bGVGcm9tRHJhd1N0eWxlKG9sU3R5bGUpIGFzIE9sU3R5bGUuQ2lyY2xlO1xuICAgIGlmIChvbEd1aWRlU3R5bGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRyYXdHdWlkZSA9IHRoaXMuZHJhd0d1aWRlO1xuICAgIGxldCByYWRpdXM7XG4gICAgaWYgKCFkcmF3R3VpZGUgfHwgZHJhd0d1aWRlIDwgMCkge1xuICAgICAgcmFkaXVzID0gdGhpcy5kZWZhdWx0RHJhd1N0eWxlUmFkaXVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByYWRpdXMgPSBkcmF3R3VpZGUgPiAwID8gZHJhd0d1aWRlIC8gcmVzb2x1dGlvbiA6IGRyYXdHdWlkZTtcbiAgICB9XG4gICAgb2xHdWlkZVN0eWxlLnNldFJhZGl1cyhyYWRpdXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2V0aGVyIGEgZ2l2ZW4gT3BlbiBMYXllcnMgc3R5bGUgaGFzIGEgcmFkaXVzIHByb3BlcnR5IHRoYXQgY2FuIGJlIHNldCAodXNlZCB0byBzZXQgZHJhdyBndWlkZSlcbiAgICogQHBhcmFtIG9sU3R5bGUgVGhlIHN0eWxlIG9uIHdoaWNoIHRvIHBlcmZvcm0gdGhlIGNoZWNrXG4gICAqL1xuICBwcml2YXRlIGlzU3R5bGVXaXRoUmFkaXVzKG9sU3R5bGUpIHtcbiAgICByZXR1cm4gdHlwZW9mIG9sU3R5bGUgIT09ICdmdW5jdGlvbicgJiYgb2xTdHlsZS5zZXRSYWRpdXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3ZXRoZXIgYSBnaXZlbiBPcGVuIExheWVycyBzdHlsZSBoYXMgYSByYWRpdXMgcHJvcGVydHkgdGhhdCBjYW4gYmUgc2V0ICh1c2VkIHRvIHNldCBkcmF3IGd1aWRlKVxuICAgKiBAcGFyYW0gb2xTdHlsZSBUaGUgc3R5bGUgb24gd2hpY2ggdG8gcGVyZm9ybSB0aGUgY2hlY2tcbiAgICovXG4gIHByaXZhdGUgZ2V0R3VpZGVTdHlsZUZyb21EcmF3U3R5bGUoXG4gICAgb2xTdHlsZTogT2xTdHlsZS5TdHlsZSB8ICgoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4gT2xTdHlsZS5TdHlsZSkgfCBPbFN0eWxlLkNpcmNsZSB8XG4gICAgT2xTdHlsZS5TdHlsZVtdIHwgKChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiBPbFN0eWxlLlN0eWxlKVtdIHwgT2xTdHlsZS5DaXJjbGVbXVxuICApIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvbFN0eWxlKSkge1xuICAgICAgb2xTdHlsZSA9IG9sU3R5bGVbMF07XG4gICAgfVxuICAgIGlmICh0aGlzLmlzU3R5bGVXaXRoUmFkaXVzKG9sU3R5bGUpKSB7XG4gICAgICByZXR1cm4gb2xTdHlsZTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlPjwvbmctdGVtcGxhdGU+Il19
515
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnktZm9ybS1maWVsZC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9nZW9tZXRyeS9nZW9tZXRyeS1mb3JtLWZpZWxkL2dlb21ldHJ5LWZvcm0tZmllbGQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZ2VvbWV0cnkvZ2VvbWV0cnktZm9ybS1maWVsZC9nZW9tZXRyeS1mb3JtLWZpZWxkLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLFFBQVEsRUFDUixJQUFJLEVBRUosdUJBQXVCLEVBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFDO0FBRzFDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLGFBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxLQUFLLE1BQU0sZUFBZSxDQUFDO0FBR2xDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLGFBQWEsRUFDYixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQXdCLE1BQU0sb0JBQW9CLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFPdEU7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8sK0JBQStCO0lBa00xQyxZQUNVLEtBQXdCLEVBQ0wsU0FBb0I7UUFEdkMsVUFB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LENBQUM7U0FDdEI7UUFDRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQyxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7OzhHQWppQlUsK0JBQStCO2tGQUEvQiwrQkFBK0I7UUNwRDVDLDZGQUEyQjs7dUZEb0RkLCtCQUErQjtjQUwzQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtnQkFDekMsV0FBVyxFQUFFLDRDQUE0QztnQkFDekQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7O3NCQXFNSSxRQUFROztzQkFBSSxJQUFJO3dCQTlLVixHQUFHO2tCQUFYLEtBQUs7WUFNRixZQUFZO2tCQURmLEtBQUs7WUFrQkcsU0FBUztrQkFBakIsS0FBSztZQUtHLE9BQU87a0JBQWYsS0FBSztZQU1GLG1CQUFtQjtrQkFEdEIsS0FBSztZQW9CRixvQkFBb0I7a0JBRHZCLEtBQUs7WUF5QkcsY0FBYztrQkFBdEIsS0FBSztZQU1GLFNBQVM7a0JBRFosS0FBSztZQWlDRixZQUFZO2tCQURmLEtBQUs7WUFVRixLQUFLO2tCQURSLEtBQUs7WUE0QkYsTUFBTTtrQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhd0NvbnRyb2xPcHRpb25zIH0gZnJvbSAnLi8uLi9zaGFyZWQvY29udHJvbHMvZHJhdyc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgKiBhcyBPbFN0eWxlIGZyb20gJ29sL3N0eWxlJztcbmltcG9ydCBPbEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xuaW1wb3J0IE9sR2VvbWV0cnkgZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeVR5cGUgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5VHlwZSc7XG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0IE9sVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xuaW1wb3J0IE9sVmVjdG9yTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVmVjdG9yJztcbmltcG9ydCBPbE92ZXJsYXkgZnJvbSAnb2wvT3ZlcmxheSc7XG5pbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgUG9pbnQgZnJvbSAnb2wvZ2VvbS9Qb2ludCc7XG5cbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcCc7XG5pbXBvcnQge1xuICBNZWFzdXJlTGVuZ3RoVW5pdCxcbiAgdXBkYXRlT2xHZW9tZXRyeU1pZHBvaW50cyxcbiAgZm9ybWF0TWVhc3VyZSxcbiAgbWVhc3VyZU9sR2VvbWV0cnlcbn0gZnJvbSAnLi4vLi4vbWVhc3VyZSc7XG5pbXBvcnQgeyBEcmF3Q29udHJvbCwgTW9kaWZ5Q29udHJvbCwgTW9kaWZ5Q29udHJvbE9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvY29udHJvbHMnO1xuaW1wb3J0IHsgY3JlYXRlRHJhd0ludGVyYWN0aW9uU3R5bGUgfSBmcm9tICcuLi9zaGFyZWQvZ2VvbWV0cnkudXRpbHMnO1xuaW1wb3J0IHsgR2VvSlNPTkdlb21ldHJ5IH0gZnJvbSAnLi4vc2hhcmVkL2dlb21ldHJ5LmludGVyZmFjZXMnO1xuaW1wb3J0IE9sQ2lyY2xlIGZyb20gJ29sL2dlb20vQ2lyY2xlJztcbmltcG9ydCBPbExpbmVTdHJpbmcgZnJvbSAnb2wvZ2VvbS9MaW5lU3RyaW5nJztcbmltcG9ydCBPbFBvaW50IGZyb20gJ29sL2dlb20vUG9pbnQnO1xuaW1wb3J0IE9sUG9seWdvbiBmcm9tICdvbC9nZW9tL1BvbHlnb24nO1xuXG4vKipcbiAqIFRoaXMgaW5wdXQgYWxsb3dzIGEgdXNlciB0byBkcmF3IGEgbmV3IGdlb21ldHJ5IG9yIHRvIGVkaXRcbiAqIGFuIGV4aXN0aW5nIG9uZSBvbiBhIG1hcC4gQSB0ZXh0IGlucHV0IGlzIGFsc28gZGlzcGxheWVkIGluIHRoZVxuICogZm9ybSB3aXRoIHNvbWUgaW5zdHJ1Y3Rpb25zLlxuICogVGhpcyBpcyBzdGlsbCBXSVAuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1nZW9tZXRyeS1mb3JtLWZpZWxkLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlb21ldHJ5LWZvcm0tZmllbGQtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBHZW9tZXRyeUZvcm1GaWVsZElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBwcml2YXRlIG9sT3ZlcmxheUxheWVyOiBPbFZlY3RvckxheWVyPE9sVmVjdG9yU291cmNlPE9sR2VvbWV0cnk+PjtcbiAgcHJpdmF0ZSBvbEdlb0pTT04gPSBuZXcgT2xHZW9KU09OKCk7XG4gIHByaXZhdGUgcmVhZHkgPSBmYWxzZTtcblxuICBwcml2YXRlIGRyYXdDb250cm9sOiBEcmF3Q29udHJvbDtcbiAgcHJpdmF0ZSBtb2RpZnlDb250cm9sOiBNb2RpZnlDb250cm9sO1xuICBwcml2YXRlIGRlZmF1bHREcmF3U3R5bGVSYWRpdXM6IG51bWJlcjtcbiAgcHJpdmF0ZSBvbEdlb21ldHJ5RW5kcyQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb2xHZW9tZXRyeUNoYW5nZXMkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG9sVG9vbHRpcCA9IHRoaXMuY3JlYXRlTWVhc3VyZVRvb2x0aXAoKTtcblxuICAvKipcbiAgICogQWN0aXZlIGNvbnRyb2xcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYWN0aXZlQ29udHJvbDogRHJhd0NvbnRyb2wgfCBNb2RpZnlDb250cm9sO1xuXG4gIC8qKlxuICAgKiBUaGUgbWFwIHRvIGRyYXcgdGhlIGdlb21ldHJ5IG9uXG4gICAqL1xuICBASW5wdXQoKSBtYXA6IElnb01hcDtcblxuICAvKipcbiAgICogVGhlIGdlb21ldHJ5IHR5cGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBnZW9tZXRyeVR5cGUodmFsdWU6IHR5cGVvZiBPbEdlb21ldHJ5VHlwZSkge1xuICAgIHRoaXMuX2dlb21ldHJ5VHlwZSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLnJlYWR5ID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGVhY3RpdmF0ZUNvbnRyb2woKTtcbiAgICB0aGlzLmNyZWF0ZURyYXdDb250cm9sKCk7XG4gICAgdGhpcy5kcmF3Q29udHJvbC5mcmVlaGFuZCQubmV4dCh0aGlzLmZyZWVoYW5kRHJhd0lzQWN0aXZlKTtcbiAgICB0aGlzLnRvZ2dsZUNvbnRyb2woKTtcbiAgfVxuICBnZXQgZ2VvbWV0cnlUeXBlKCk6IHR5cGVvZiBPbEdlb21ldHJ5VHlwZSB7IHJldHVybiB0aGlzLl9nZW9tZXRyeVR5cGU7IH1cbiAgcHJpdmF0ZSBfZ2VvbWV0cnlUeXBlOiB0eXBlb2YgT2xHZW9tZXRyeVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBkcmF3R3VpZGUgYXJvdW5kIHRoZSBtb3VzZSBwb2ludGVyIHRvIGhlbHAgZHJhd2luZ1xuICAgKi9cbiAgQElucHV0KCkgZHJhd0d1aWRlOiBudW1iZXIgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgbWVhc3VyZSB0b29sdGlwIHNob3VsZCBiZSBkaXNwbGF5ZWRcbiAgICovXG4gIEBJbnB1dCgpIG1lYXN1cmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciBkcmF3IGNvbnRyb2wgc2hvdWxkIGJlIGFjdGl2ZSBvciBub3RcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBkcmF3Q29udHJvbElzQWN0aXZlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZHJhd0NvbnRyb2xJc0FjdGl2ZTsgfVxuICBzZXQgZHJhd0NvbnRyb2xJc0FjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2RyYXdDb250cm9sSXNBY3RpdmUgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5yZWFkeSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kZWFjdGl2YXRlQ29udHJvbCgpO1xuICAgIGlmICghdGhpcy5fZHJhd0NvbnRyb2xJc0FjdGl2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRvZ2dsZUNvbnRyb2woKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfZHJhd0NvbnRyb2xJc0FjdGl2ZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgZnJlZWhhbmQgZHJhdyBjb250cm9sIHNob3VsZCBiZSBhY3RpdmUgb3Igbm90XG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgZnJlZWhhbmREcmF3SXNBY3RpdmUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9mcmVlaGFuZERyYXdJc0FjdGl2ZTsgfVxuICBzZXQgZnJlZWhhbmREcmF3SXNBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9mcmVlaGFuZERyYXdJc0FjdGl2ZSA9IHZhbHVlO1xuICAgIHRoaXMuZGVhY3RpdmF0ZUNvbnRyb2woKTtcblxuICAgIHRoaXMuY3JlYXRlRHJhd0NvbnRyb2woKTtcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeUNvbnRyb2woKTtcblxuICAgIHRoaXMuZHJhd0NvbnRyb2wuZnJlZWhhbmQkLm5leHQodGhpcy5mcmVlaGFuZERyYXdJc0FjdGl2ZSk7XG5cbiAgICBpZiAodGhpcy5yZWFkeSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZHJhd0NvbnRyb2xJc0FjdGl2ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZUNvbnRyb2woKTtcbiAgfVxuICBwcml2YXRlIF9mcmVlaGFuZERyYXdJc0FjdGl2ZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29udHJvbCBvcHRpb25zXG4gICAqL1xuICBASW5wdXQoKSBjb250cm9sT3B0aW9uczoge1trZXk6IHN0cmluZ106IGFueX0gPSB7fTtcblxuICAvKipcbiAgICogU3R5bGUgZm9yIHRoZSBkcmF3IGNvbnRyb2wgKGFwcGxpZXMgd2hpbGUgdGhlIGdlb21ldHJ5IGlzIGJlaW5nIGRyYXduKVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRyYXdTdHlsZSh2YWx1ZTogT2xTdHlsZS5TdHlsZSB8ICgoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4gT2xTdHlsZS5TdHlsZSkgfCBPbFN0eWxlLkNpcmNsZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YWx1ZSA9IGNyZWF0ZURyYXdJbnRlcmFjdGlvblN0eWxlKCk7XG4gICAgfVxuICAgIHRoaXMuX2RyYXdTdHlsZSA9IHZhbHVlO1xuXG4gICAgY29uc3Qgb2xHdWlkZVN0eWxlID0gdGhpcy5nZXRHdWlkZVN0eWxlRnJvbURyYXdTdHlsZSh2YWx1ZSkgYXMgT2xTdHlsZS5DaXJjbGU7XG4gICAgaWYgKG9sR3VpZGVTdHlsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmRlZmF1bHREcmF3U3R5bGVSYWRpdXMgPSBvbEd1aWRlU3R5bGUuZ2V0UmFkaXVzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVmYXVsdERyYXdTdHlsZVJhZGl1cyA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVhZHkgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kZWFjdGl2YXRlQ29udHJvbCgpO1xuICAgIHRoaXMuY3JlYXRlRHJhd0NvbnRyb2woKTtcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeUNvbnRyb2woKTtcblxuICAgIHRoaXMuZHJhd0NvbnRyb2wuZnJlZWhhbmQkLm5leHQodGhpcy5mcmVlaGFuZERyYXdJc0FjdGl2ZSk7XG4gICAgdGhpcy50b2dnbGVDb250cm9sKCk7XG4gIH1cbiAgZ2V0IGRyYXdTdHlsZSgpOiBPbFN0eWxlLlN0eWxlIHwgKChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiBPbFN0eWxlLlN0eWxlKSB8IE9sU3R5bGUuQ2lyY2xlIHsgcmV0dXJuIHRoaXMuX2RyYXdTdHlsZTsgfVxuICBwcml2YXRlIF9kcmF3U3R5bGU6IE9sU3R5bGUuU3R5bGUgfCAoKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IE9sU3R5bGUuU3R5bGUpIHwgT2xTdHlsZS5DaXJjbGU7XG5cbiAgLyoqXG4gICAqIFN0eWxlIGZvciB0aGUgb3ZlcmxheSBsYXllciAoYXBwbGllcyBvbmNlIHRoZSBnZW9tZXRyeSBpcyBhZGRlZCB0byB0aGUgbWFwKVxuICAgKiBJZiBub3Qgc3BlY2lmaWVkLCBkcmF3U3R5bGUgYXBwbGllc1xuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IG92ZXJsYXlTdHlsZSh2YWx1ZTogT2xTdHlsZS5TdHlsZSB8ICgoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4gT2xTdHlsZS5TdHlsZSkgfCBPbFN0eWxlLkNpcmNsZSkgeyB0aGlzLl9vdmVybGF5U3R5bGUgPSB2YWx1ZTsgfVxuICBnZXQgb3ZlcmxheVN0eWxlKCk6IE9sU3R5bGUuU3R5bGUgfCAoKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IE9sU3R5bGUuU3R5bGUpIHwgT2xTdHlsZS5DaXJjbGUgeyByZXR1cm4gdGhpcy5fb3ZlcmxheVN0eWxlOyB9XG4gIHByaXZhdGUgX292ZXJsYXlTdHlsZTogT2xTdHlsZS5TdHlsZSB8ICgoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4gT2xTdHlsZS5TdHlsZSkgfCBPbFN0eWxlLkNpcmNsZTtcblxuICAvKipcbiAgICogVGhlIGdlb21ldHJ5IHZhbHVlIChHZW9KU09OKVxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbHVlOiBHZW9KU09OR2VvbWV0cnkpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLnJlYWR5ID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hZGRHZW9KU09OVG9PdmVybGF5KHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbE92ZXJsYXlTb3VyY2UuY2xlYXIodHJ1ZSk7XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgIHRoaXMudG9nZ2xlQ29udHJvbCgpO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG4gIGdldCB2YWx1ZSgpOiBHZW9KU09OR2VvbWV0cnkgeyByZXR1cm4gdGhpcy5fdmFsdWU7IH1cbiAgcHJpdmF0ZSBfdmFsdWU6IEdlb0pTT05HZW9tZXRyeTtcblxuICAvKipcbiAgICogVGhlIHZlY3RvciBzb3VyY2UgdG8gYWRkIHRoZSBnZW9tZXRyeSB0b1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBvbE92ZXJsYXlTb3VyY2UoKTogT2xWZWN0b3JTb3VyY2U8T2xHZW9tZXRyeT4ge1xuICAgIHJldHVybiB0aGlzLm9sT3ZlcmxheUxheWVyLmdldFNvdXJjZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHJhZGl1cyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHRoaXMucmVhZHkgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLm1vZGlmeUNvbnRyb2wuZ2V0U291cmNlKCkpIHtcbiAgICAgIHRoaXMubW9kaWZ5Q29udHJvbC5nZXRTb3VyY2UoKS5yZWZyZXNoKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZyZWVoYW5kRHJhd0lzQWN0aXZlKSB7XG4gICAgICBsZXQgb2xNb2RpZnk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgb2xNb2RpZnkgPSB0aGlzLm1vZGlmeUNvbnRyb2wub2xNb2RpZnlJbnRlcmFjdGlvbjtcbiAgICAgICAgaWYgKG9sTW9kaWZ5KSB7XG4gICAgICAgICAgaWYgKG9sTW9kaWZ5LmZlYXR1cmVzXykge1xuICAgICAgICAgICAgb2xNb2RpZnkuZmVhdHVyZXNfLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLmFkZEdlb0pTT05Ub092ZXJsYXkodGhpcy52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbFxuICApIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gU2V0dGluZyB0aGUgdmFsdWUgYWNjZXNzb3IgZGlyZWN0bHkgKGluc3RlYWQgb2YgdXNpbmdcbiAgICAgIC8vIHRoZSBwcm92aWRlcnMpIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydC5cbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gb3ZlcmxheSBsYXllciwgYWRkIHRoZSBpbml0aWFsIGdlb21ldHJ5IHRvIGl0IChpZiBhbnkpXG4gICAqIGFuZCB0b2dnbGUgdGhlIHJpZ2h0IGludGVyYWN0aW9uLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmRyYXdTdHlsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmRyYXdTdHlsZSA9IGNyZWF0ZURyYXdJbnRlcmFjdGlvblN0eWxlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3ZlcmxheVN0eWxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMub3ZlcmxheVN0eWxlID0gdGhpcy5kcmF3U3R5bGU7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRPbE92ZXJsYXlMYXllcigpO1xuICAgIHRoaXMuY3JlYXRlRHJhd0NvbnRyb2woKTtcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeUNvbnRyb2woKTtcblxuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmFkZEdlb0pTT05Ub092ZXJsYXkodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMudG9nZ2xlQ29udHJvbCgpO1xuXG4gICAgdGhpcy5yZWFkeSA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIG92ZXJsYXkgbGF5ZXIgYW5kIGFueSBpbnRlcmFjdGlvbiBhZGRlZCBieSB0aGlzIGNvbXBvbmVudC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBUaGlzIGlzIG1hbmRhdG9yeSB3aGVuIHRoZSBmb3JtIGNvbnRyb2wgaXMgcmV1c2VkIGFmdGVyXG4gICAgLy8gdGhpcyBjb21wb25lbnQgaGFzIGJlZW4gZGVzdHJveWVkLiBJdCBzZWVtcyBsaWtlIHRoZSBjb250cm9sXG4gICAgLy8ga2VlcHMgYSByZWZlcmVuY2UgdG8gdGhpcyBjb21wb25lbnQgZXZlbiBhZnRlciBpdCdzIGRlc3Ryb3llZFxuICAgIC8vIGFuZCBpdCBhdHRlbXB0cyB0byBzZXQgaXQncyB2YWx1ZVxuICAgIHRoaXMucmVhZHkgPSBmYWxzZTtcblxuICAgIHRoaXMuZGVhY3RpdmF0ZUNvbnRyb2woKTtcbiAgICB0aGlzLm9sT3ZlcmxheVNvdXJjZS5jbGVhcigpO1xuICAgIHRoaXMubWFwLm9sLnJlbW92ZUxheWVyKHRoaXMub2xPdmVybGF5TGF5ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbikge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuICBwcml2YXRlIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbikge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cbiAgcHJpdmF0ZSBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogR2VvSlNPTkdlb21ldHJ5KSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBvdmVybGF5IGxheWVyIHRvIHRoZSBtYXBcbiAgICovXG4gIHByaXZhdGUgYWRkT2xPdmVybGF5TGF5ZXIoKSB7XG4gICAgdGhpcy5vbE92ZXJsYXlMYXllciA9IG5ldyBPbFZlY3RvckxheWVyKHtcbiAgICAgIHNvdXJjZTogbmV3IE9sVmVjdG9yU291cmNlKCksXG4gICAgICB6SW5kZXg6IDUwMCxcbiAgICAgIHN0eWxlOiBudWxsXG4gICAgfSk7XG4gICAgdGhpcy5tYXAub2wuYWRkTGF5ZXIodGhpcy5vbE92ZXJsYXlMYXllcik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZHJhdyBjb250cm9sIGFuZCBzdWJzY3JpYmUgdG8gaXQncyBnZW9tZXRyeVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVEcmF3Q29udHJvbCgpIHtcbiAgICBjb25zdCBjb250cm9sT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY29udHJvbE9wdGlvbnMsIHtcbiAgICAgIGdlb21ldHJ5VHlwZTogdGhpcy5nZW9tZXRyeVR5cGUgfHwgJ1BvaW50JyxcbiAgICAgIGRyYXdpbmdMYXllcjogdGhpcy5vbE92ZXJsYXlMYXllcixcbiAgICAgIGludGVyYWN0aW9uU3R5bGU6IHR5cGVvZiB0aGlzLmRyYXdTdHlsZSA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuZHJhd1N0eWxlIDogKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+LCByZXNvbHV0aW9uOiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB0aGlzLmRyYXdTdHlsZTtcbiAgICAgICAgdGhpcy51cGRhdGVEcmF3U3R5bGVXaXRoRHJhd0d1aWRlKHN0eWxlLCByZXNvbHV0aW9uKTtcbiAgICAgICAgcmV0dXJuIHN0eWxlO1xuICAgICAgfVxuICAgIH0pIGFzIERyYXdDb250cm9sT3B0aW9ucztcbiAgICB0aGlzLmRyYXdDb250cm9sID0gbmV3IERyYXdDb250cm9sKGNvbnRyb2xPcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtb2RpZnkgY29udHJvbCBhbmQgc3Vic2NyaWJlIHRvIGl0J3MgZ2VvbWV0cnlcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlTW9kaWZ5Q29udHJvbCgpIHtcbiAgICBjb25zdCBjb250cm9sT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY29udHJvbE9wdGlvbnMsIHtcbiAgICAgIGxheWVyOiB0aGlzLm9sT3ZlcmxheUxheWVyLFxuICAgICAgZHJhd1N0eWxlOiB0eXBlb2YgdGhpcy5kcmF3U3R5bGUgPT09ICdmdW5jdGlvbicgPyB0aGlzLmRyYXdTdHlsZSA6IChvbEZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PiwgcmVzb2x1dGlvbjogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5kcmF3U3R5bGU7XG4gICAgICAgIHRoaXMudXBkYXRlRHJhd1N0eWxlV2l0aERyYXdHdWlkZShzdHlsZSwgcmVzb2x1dGlvbik7XG4gICAgICAgIHJldHVybiBzdHlsZTtcbiAgICAgIH1cbiAgICB9KSBhcyBNb2RpZnlDb250cm9sT3B0aW9ucztcbiAgICB0aGlzLm1vZGlmeUNvbnRyb2wgPSBuZXcgTW9kaWZ5Q29udHJvbChjb250cm9sT3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSBwcm9wZXIgY29udHJvbCAoZHJhdyBvciBtb2RpZnkpXG4gICAqL1xuICBwcml2YXRlIHRvZ2dsZUNvbnRyb2woKSB7XG4gICAgbGV0IGFjdGl2YXRlO1xuICAgIGlmICghdGhpcy52YWx1ZSAmJiB0aGlzLmdlb21ldHJ5VHlwZSkge1xuICAgICAgYWN0aXZhdGUgPSB0aGlzLmRyYXdDb250cm9sO1xuICAgIH0gZWxzZSB7XG4gICAgICBhY3RpdmF0ZSA9IHRoaXMubW9kaWZ5Q29udHJvbDtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgY29udHJvbCB0aGF0IHNob3VsZCBiZSBhY3RpdmF0ZWRcbiAgICAvLyBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnQgYWN0aXZlIGNvbnRyb2wsXG4gICAgLy8gZGVhY3RpdmF0ZSB0aGUgY3VycmVudCBjb250cm9sIGFuZCBhY3RpdmF0ZSB0aGUgbmV3IG9uZVxuICAgIC8vIE90aGVyd2lzZSwgZG8gbm90aGluZyBhbmQga2VlcCB0aGUgY3VycmVudCBjb250cm9sIGFjdGl2ZVxuICAgIGlmIChhY3RpdmF0ZSAhPT0gdGhpcy5hY3RpdmVDb250cm9sKSB7XG4gICAgICB0aGlzLmRlYWN0aXZhdGVDb250cm9sKCk7XG4gICAgICB0aGlzLmFjdGl2YXRlQ29udHJvbChhY3RpdmF0ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlIGEgZ2l2ZW4gY29udHJvbFxuICAgKiBAcGFyYW0gY29udHJvbCBDb250cm9sXG4gICAqL1xuICBwcml2YXRlIGFjdGl2YXRlQ29udHJvbChjb250cm9sOiBEcmF3Q29udHJvbCB8IE1vZGlmeUNvbnRyb2wpIHtcbiAgICB0aGlzLmFjdGl2ZUNvbnRyb2wgPSBjb250cm9sO1xuICAgIHRoaXMub2xHZW9tZXRyeUVuZHMkJCA9IGNvbnRyb2wuZW5kJFxuICAgICAgLnN1YnNjcmliZSgob2xHZW9tZXRyeTogT2xHZW9tZXRyeSkgPT4gdGhpcy5vbk9sR2VvbWV0cnlFbmRzKG9sR2VvbWV0cnkpKTtcbiAgICBpZiAodGhpcy5tZWFzdXJlID09PSB0cnVlICYmIGNvbnRyb2wgPT09IHRoaXMuZHJhd0NvbnRyb2wpIHtcbiAgICAgIHRoaXMub2xHZW9tZXRyeUNoYW5nZXMkJCA9IGNvbnRyb2wuY2hhbmdlcyRcbiAgICAgICAgLnN1YnNjcmliZSgob2xHZW9tZXRyeTogT2xQb2x5Z29uIHwgT2xQb2ludCB8IE9sTGluZVN0cmluZyB8IE9sQ2lyY2xlKSA9PiB0aGlzLm9uT2xHZW9tZXRyeUNoYW5nZXMob2xHZW9tZXRyeSkpO1xuICAgIH1cbiAgICBjb250cm9sLnNldE9sTWFwKHRoaXMubWFwLm9sLCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogRGVhY3RpdmF0ZSB0aGUgYWN0aXZlIGNvbnRyb2xcbiAgICovXG4gIHByaXZhdGUgZGVhY3RpdmF0ZUNvbnRyb2woKSB7XG4gICAgdGhpcy5yZW1vdmVNZWFzdXJlVG9vbHRpcCgpO1xuICAgIGlmICh0aGlzLmFjdGl2ZUNvbnRyb2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5hY3RpdmVDb250cm9sLnNldE9sTWFwKHVuZGVmaW5lZCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9sR2VvbWV0cnlFbmRzJCQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5vbEdlb21ldHJ5RW5kcyQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9sR2VvbWV0cnlDaGFuZ2VzJCQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5vbEdlb21ldHJ5Q2hhbmdlcyQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlQ29udHJvbCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgbWVhc3VyZXMgb2JzZXJ2YWJsZXMgYW5kIG1hcCB0b29sdGlwc1xuICAgKiBAcGFyYW0gb2xHZW9tZXRyeSBPbCBsaW5lc3RyaW5nIG9yIHBvbHlnb25cbiAgICovXG4gIHByaXZhdGUgb25PbEdlb21ldHJ5RW5kcyhvbEdlb21ldHJ5OiBPbEdlb21ldHJ5IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5yZW1vdmVNZWFzdXJlVG9vbHRpcCgpO1xuICAgIHRoaXMuc2V0T2xHZW9tZXRyeShvbEdlb21ldHJ5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgbWVhc3VyZXMgb2JzZXJ2YWJsZXMgYW5kIG1hcCB0b29sdGlwc1xuICAgKiBAcGFyYW0gb2xHZW9tZXRyeSBPbCBsaW5lc3RyaW5nIG9yIHBvbHlnb25cbiAgICovXG4gIHByaXZhdGUgb25PbEdlb21ldHJ5Q2hhbmdlcyhvbEdlb21ldHJ5OiBPbFBvbHlnb24gfCBPbFBvaW50IHwgT2xMaW5lU3RyaW5nIHwgT2xDaXJjbGUpIHtcbiAgICBpZiAob2xHZW9tZXRyeS5nZXRUeXBlKCkgIT09ICdQb2ludCcpIHtcbiAgICAgIHRoaXMudXBkYXRlTWVhc3VyZVRvb2x0aXAob2xHZW9tZXRyeSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gZHJhd2luZyBlbmRzLCBjb252ZXJ0IHRoZSBvdXRwdXQgdmFsdWUgdG8gR2VvSlNPTiBhbmQga2VlcCBpdC5cbiAgICogUmVzdG9yZSB0aGUgZG91YmxlIGNsaWNrIGludGVyYWN0aW9uLlxuICAgKiBAcGFyYW0gb2xHZW9tZXRyeSBPTCBnZW9tZXRyeVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRPbEdlb21ldHJ5KG9sR2VvbWV0cnk6IE9sR2VvbWV0cnkgfCB1bmRlZmluZWQpIHtcbiAgICBsZXQgdmFsdWU7XG4gICAgaWYgKG9sR2VvbWV0cnkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChvbEdlb21ldHJ5LmdldFR5cGUoKSA9PT0gJ0NpcmNsZScpIHsgLy8gQmVjYXVzZSBDaXJjbGUgZG9lc24ndCBleGlzdCBhcyBhIEdlb0pTT04gb2JqZWN0XG4gICAgICBvbEdlb21ldHJ5ID0gdGhpcy5jaXJjbGVUb1BvaW50KG9sR2VvbWV0cnkpO1xuICAgIH1cblxuICAgIHZhbHVlID0gdGhpcy5vbEdlb0pTT04ud3JpdGVHZW9tZXRyeU9iamVjdChvbEdlb21ldHJ5LCB7XG4gICAgICBmZWF0dXJlUHJvamVjdGlvbjogdGhpcy5tYXAucHJvamVjdGlvbixcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2J1xuICAgIH0pO1xuICAgIGlmIChvbEdlb21ldHJ5LmdldCgncmFkaXVzJykpIHtcbiAgICAgIHZhbHVlLnJhZGl1cyA9IG9sR2VvbWV0cnkuZ2V0KCdyYWRpdXMnKTtcbiAgICAgIG9sR2VvbWV0cnkuc2V0KCdyYWRpdXMnLCB2YWx1ZS5yYWRpdXMpO1xuICAgIH1cbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaXJjbGVUb1BvaW50KG9sR2VvbWV0cnkpIHtcbiAgICBjb25zdCBjZW50ZXIgPSBvbEdlb21ldHJ5LmdldENlbnRlcigpO1xuICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gb2xwcm9qLnRyYW5zZm9ybShjZW50ZXIsIHRoaXMubWFwLnByb2plY3Rpb24sICdFUFNHOjQzMjYnKTtcbiAgICBjb25zdCByYWRpdXMgPSBNYXRoLnJvdW5kKG9sR2VvbWV0cnkuZ2V0UmFkaXVzKCkgKiAoTWF0aC5jb3MoKE1hdGguUEkgLyAxODApICogY29vcmRpbmF0ZXNbMV0pKSk7XG5cbiAgICAvLyBDb252ZXJ0IGl0IHRvIGEgcG9pbnQgb2JqZWN0XG4gICAgb2xHZW9tZXRyeSA9IG5ldyBQb2ludChjZW50ZXIpO1xuICAgIG9sR2VvbWV0cnkuc2V0KCdyYWRpdXMnLCByYWRpdXMsIHRydWUpO1xuICAgIHJldHVybiBvbEdlb21ldHJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIEdlb0pTT04gZ2VvbWV0cnkgdG8gdGhlIG92ZXJsYXlcbiAgICogQHBhcmFtIGdlb21ldHJ5IEdlb0pTT04gZ2VvbWV0cnlcbiAgICovXG4gIHByaXZhdGUgYWRkR2VvSlNPTlRvT3ZlcmxheShnZW9tZXRyeTogR2VvSlNPTkdlb21ldHJ5KSB7XG4gICAgY29uc3Qgb2xHZW9tZXRyeSA9IHRoaXMub2xHZW9KU09OLnJlYWRHZW9tZXRyeShnZW9tZXRyeSwge1xuICAgICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgICAgZmVhdHVyZVByb2plY3Rpb246IHRoaXMubWFwLnByb2plY3Rpb25cbiAgICB9KTtcbiAgICBjb25zdCBvbEZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKHtcbiAgICAgIGdlb21ldHJ5OiBvbEdlb21ldHJ5XG4gICAgfSk7XG4gICAgb2xGZWF0dXJlLnNldFN0eWxlKHRoaXMub3ZlcmxheVN0eWxlIGFzIE9sU3R5bGUuU3R5bGUpO1xuICAgIHRoaXMub2xPdmVybGF5U291cmNlLmNsZWFyKCk7XG4gICAgdGhpcy5vbE92ZXJsYXlTb3VyY2UuYWRkRmVhdHVyZShvbEZlYXR1cmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgbWVhc3VyZSB0b29sdGlwXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZU1lYXN1cmVUb29sdGlwKCkge1xuICAgIHJldHVybiBuZXcgT2xPdmVybGF5KHtcbiAgICAgIGVsZW1lbnQ6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLFxuICAgICAgb2Zmc2V0OiBbLTMwLCAtMTBdLFxuICAgICAgY2xhc3NOYW1lOiBbXG4gICAgICAgICdpZ28tbWFwLXRvb2x0aXAnLFxuICAgICAgICAnaWdvLW1hcC10b29sdGlwLW1lYXN1cmUnXG4gICAgICBdLmpvaW4oJyAnKSxcbiAgICAgIHN0b3BFdmVudDogZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIG1lYXN1cmUgdG9vbHRpcCBvZiBhbiBPTCBnZW9tZXRyeVxuICAgKiBAcGFyYW0gb2xHZW9tZXRyeSBPTCBHZW9tZXRyeVxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVNZWFzdXJlVG9vbHRpcChvbEdlb21ldHJ5OiBPbFBvbHlnb24gfCBPbFBvaW50IHwgT2xMaW5lU3RyaW5nIHwgT2xDaXJjbGUpIHtcbiAgICBjb25zdCBtZWFzdXJlID0gbWVhc3VyZU9sR2VvbWV0cnkob2xHZW9tZXRyeSwgdGhpcy5tYXAucHJvamVjdGlvbik7XG4gICAgY29uc3QgbGVuZ3RocyA9IG1lYXN1cmUubGVuZ3RocztcbiAgICBjb25zdCBsYXN0SW5kZXggPSBvbEdlb21ldHJ5LmdldFR5cGUoKSA9PT0gJ1BvbHlnb24nID8gbGVuZ3Rocy5sZW5ndGggLSAyIDogbGVuZ3Rocy5sZW5ndGggLSAxO1xuICAgIGNvbnN0IGxhc3RMZW5ndGggPSBsZW5ndGhzW2xhc3RJbmRleF07XG5cbiAgICBjb25zdCBvbE1pZHBvaW50cyA9IHVwZGF0ZU9sR2VvbWV0cnlNaWRwb2ludHMob2xHZW9tZXRyeSk7XG4gICAgY29uc3Qgb2xMYXN0TWlkcG9pbnQgPSBvbE1pZHBvaW50c1tsYXN0SW5kZXhdO1xuICAgIGlmIChvbE1pZHBvaW50cy5sZW5ndGggPT09IDAgfHwgb2xMYXN0TWlkcG9pbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZW1vdmVNZWFzdXJlVG9vbHRpcCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub2xUb29sdGlwLnNldFBvc2l0aW9uKG9sTGFzdE1pZHBvaW50LmdldEZsYXRDb29yZGluYXRlcygpKTtcblxuICAgIGNvbnN0IGlubmVySHRtbCA9IGZvcm1hdE1lYXN1cmUobGFzdExlbmd0aCwge1xuICAgICAgZGVjaW1hbDogMSxcbiAgICAgIHVuaXQ6IE1lYXN1cmVMZW5ndGhVbml0Lk1ldGVycyxcbiAgICAgIHVuaXRBYmJyOiB0cnVlLFxuICAgICAgbG9jYWxlOiAnZnInXG4gICAgfSk7XG4gICAgdGhpcy5vbFRvb2x0aXAuZ2V0RWxlbWVudCgpLmlubmVySFRNTCA9IGlubmVySHRtbDtcbiAgICBpZiAodGhpcy5vbFRvb2x0aXAuZ2V0TWFwKCkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tYXAub2wuYWRkT3ZlcmxheSh0aGlzLm9sVG9vbHRpcCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0aGUgbWVhc3VyZSB0b29sdGlwIGZyb20gdGhlIG1hcFxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVNZWFzdXJlVG9vbHRpcCgpIHtcbiAgICBpZiAodGhpcy5vbFRvb2x0aXAuZ2V0TWFwICYmIHRoaXMub2xUb29sdGlwLmdldE1hcCgpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubWFwLm9sLnJlbW92ZU92ZXJsYXkodGhpcy5vbFRvb2x0aXApO1xuICAgICAgdGhpcy5vbFRvb2x0aXAuc2V0TWFwKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkanVzdCB0aGUgZHJhdyBzdHlsZSB3aXRoIHRoZSBzcGVjaWZpZWQgZHJhdyBndWlkZSBkaXN0YW5jZSwgaWYgcG9zc2libGVcbiAgICogQHBhcmFtIG9sU3R5bGUgRHJhdyBzdHlsZSB0byB1cGRhdGVcbiAgICogQHBhcmFtIHJlc29sdXRpb24gUmVzb2x1dGlvbiAodG8gbWFrZSB0aGUgc2NyZWVuIHNpemUgb2Ygc3ltYm9sIGZpdCB0aGUgZHJhd0d1aWRlIHZhbHVlKVxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVEcmF3U3R5bGVXaXRoRHJhd0d1aWRlKFxuICAgIG9sU3R5bGU6IE9sU3R5bGUuU3R5bGUgfFxuICAgICgoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4gT2xTdHlsZS5TdHlsZSkgfFxuICAgIE9sU3R5bGUuQ2lyY2xlLFxuICAgIHJlc29sdXRpb246IG51bWJlcikge1xuICAgIGNvbnN0IG9sR3VpZGVTdHlsZSA9IHRoaXMuZ2V0R3VpZGVTdHlsZUZyb21EcmF3U3R5bGUob2xTdHlsZSkgYXMgT2xTdHlsZS5DaXJjbGU7XG4gICAgaWYgKG9sR3VpZGVTdHlsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZHJhd0d1aWRlID0gdGhpcy5kcmF3R3VpZGU7XG4gICAgbGV0IHJhZGl1cztcbiAgICBpZiAoIWRyYXdHdWlkZSB8fCBkcmF3R3VpZGUgPCAwKSB7XG4gICAgICByYWRpdXMgPSB0aGlzLmRlZmF1bHREcmF3U3R5bGVSYWRpdXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJhZGl1cyA9IGRyYXdHdWlkZSA+IDAgPyBkcmF3R3VpZGUgLyByZXNvbHV0aW9uIDogZHJhd0d1aWRlO1xuICAgIH1cbiAgICBvbEd1aWRlU3R5bGUuc2V0UmFkaXVzKHJhZGl1cyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3ZXRoZXIgYSBnaXZlbiBPcGVuIExheWVycyBzdHlsZSBoYXMgYSByYWRpdXMgcHJvcGVydHkgdGhhdCBjYW4gYmUgc2V0ICh1c2VkIHRvIHNldCBkcmF3IGd1aWRlKVxuICAgKiBAcGFyYW0gb2xTdHlsZSBUaGUgc3R5bGUgb24gd2hpY2ggdG8gcGVyZm9ybSB0aGUgY2hlY2tcbiAgICovXG4gIHByaXZhdGUgaXNTdHlsZVdpdGhSYWRpdXMob2xTdHlsZSkge1xuICAgIHJldHVybiB0eXBlb2Ygb2xTdHlsZSAhPT0gJ2Z1bmN0aW9uJyAmJiBvbFN0eWxlLnNldFJhZGl1cztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdldGhlciBhIGdpdmVuIE9wZW4gTGF5ZXJzIHN0eWxlIGhhcyBhIHJhZGl1cyBwcm9wZXJ0eSB0aGF0IGNhbiBiZSBzZXQgKHVzZWQgdG8gc2V0IGRyYXcgZ3VpZGUpXG4gICAqIEBwYXJhbSBvbFN0eWxlIFRoZSBzdHlsZSBvbiB3aGljaCB0byBwZXJmb3JtIHRoZSBjaGVja1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRHdWlkZVN0eWxlRnJvbURyYXdTdHlsZShcbiAgICBvbFN0eWxlOiBPbFN0eWxlLlN0eWxlIHwgKChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiBPbFN0eWxlLlN0eWxlKSB8IE9sU3R5bGUuQ2lyY2xlIHxcbiAgICBPbFN0eWxlLlN0eWxlW10gfCAoKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IE9sU3R5bGUuU3R5bGUpW10gfCBPbFN0eWxlLkNpcmNsZVtdXG4gICkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9sU3R5bGUpKSB7XG4gICAgICBvbFN0eWxlID0gb2xTdHlsZVswXTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNTdHlsZVdpdGhSYWRpdXMob2xTdHlsZSkpIHtcbiAgICAgIHJldHVybiBvbFN0eWxlO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGU+PC9uZy10ZW1wbGF0ZT4iXX0=
@@ -196,4 +196,4 @@ export { GeometryFormFieldComponent };
196
196
  }], overlayStyle: [{
197
197
  type: Input
198
198
  }] }); })();
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnktZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9nZW9tZXRyeS9nZW9tZXRyeS1mb3JtLWZpZWxkL2dlb21ldHJ5LWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZ2VvbWV0cnkvZ2VvbWV0cnktZm9ybS1maWVsZC9nZW9tZXRyeS1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ0osU0FBUyxFQUM1QixLQUFLLEVBQ04sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3JELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7SUNJckQsOEJBQTREO0lBQzFELGtEQUU2QjtJQUEzQiw4T0FBMEI7O0lBQzFCLDRDQUVrRDtJQUNoRCxZQUNGOztJQUFBLGlCQUFvQjtJQUNwQiw0Q0FFdUQ7SUFDckQsWUFDRjs7SUFBQSxpQkFBb0I7SUFDcEIsNENBRW9EO0lBQ2xELGFBQ0Y7O0lBQUEsaUJBQW9CO0lBQ3RCLGlCQUEwQjtJQUM1QixpQkFBTTs7O0lBbEJGLGVBQTJDO0lBQTNDLDRFQUEyQyxnQ0FBQTtJQUl6QyxlQUErQztJQUEvQyxvRUFBK0M7SUFDL0MsZUFDRjtJQURFLGdGQUNGO0lBR0UsZUFBb0Q7SUFBcEQseUVBQW9EO0lBQ3BELGVBQ0Y7SUFERSwrRUFDRjtJQUdFLGVBQWlEO0lBQWpELHNFQUFpRDtJQUNqRCxlQUNGO0lBREUsbUZBQ0Y7Ozs7SUFJSix5Q0FBZ0U7SUFDOUQsZ0NBSTBCO0lBQXhCLG9PQUF1QjtJQUp6QixpQkFJMEI7SUFDMUIsK0JBSVc7SUFDWCxnQ0FBeUM7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LDBCQUEwQjs2RUFBMUIsMEJBQTBCO1FDeEJ2QyxtREFXZ0M7OztRQUVoQyw2RUFvQk07UUFFTixpR0FZaUI7O1FBOUNmLDZDQUEyQixnQkFBQSwwREFBQSxvREFBQSx3QkFBQSxnREFBQSxrREFBQSxzQ0FBQSw0QkFBQSxrQ0FBQTtRQVl2QixlQUF1QjtRQUF2Qiw0Q0FBdUI7UUFzQlosZUFBb0I7UUFBcEIseUNBQW9COztBRFh4QiwwQkFBMEI7SUFQdEMscUJBQXFCLENBQUMsVUFBVSxDQUFDO0dBT3JCLDBCQUEwQixDQThHdEM7U0E5R1ksMEJBQTBCO3VGQUExQiwwQkFBMEI7Y0FOdEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFdBQVcsRUFBRSxzQ0FBc0M7Z0JBQ25ELFNBQVMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2dCQUNuRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDtvRUE4QlUsV0FBVztrQkFBbkIsS0FBSztZQUtHLEdBQUc7a0JBQVgsS0FBSztZQUdGLFlBQVk7a0JBRGYsS0FBSztZQVFHLGlCQUFpQjtrQkFBekIsS0FBSztZQUtHLGFBQWE7a0JBQXJCLEtBQUs7WUFLRyxjQUFjO2tCQUF0QixLQUFLO1lBTUYsU0FBUztrQkFEWixLQUFLO1lBUUcsb0JBQW9CO2tCQUE1QixLQUFLO1lBS0csT0FBTztrQkFBZixLQUFLO1lBS0csY0FBYztrQkFBdEIsS0FBSztZQUtHLFNBQVM7a0JBQWpCLEtBQUs7WUFNRyxZQUFZO2tCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsXG4gIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWdvRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnQGlnbzIvY29tbW9uJztcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5VHlwZSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnlUeXBlJztcbmltcG9ydCAqIGFzIE9sU3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcCc7XG5pbXBvcnQgeyBHZW9KU09OR2VvbWV0cnkgfSBmcm9tICcuLi9zaGFyZWQvZ2VvbWV0cnkuaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogVGhpcyBpbnB1dCBhbGxvd3MgYSB1c2VyIHRvIGRyYXcgYSBuZXcgZ2VvbWV0cnkgb3IgdG8gZWRpdFxuICogYW4gZXhpc3Rpbmcgb25lIG9uIGEgbWFwLlxuICovXG5ASWdvRm9ybUZpZWxkQ29tcG9uZW50KCdnZW9tZXRyeScpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tZ2VvbWV0cnktZm9ybS1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW9tZXRyeS1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2VvbWV0cnktZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBHZW9tZXRyeUZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICByZWFkb25seSB2YWx1ZSQ6IEJlaGF2aW9yU3ViamVjdDxHZW9KU09OR2VvbWV0cnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgdmFsdWUkJDogU3Vic2NyaXB0aW9uO1xuXG4gIHNldCBkcmF3Q29udHJvbElzQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZHJhd0NvbnRyb2xJc0FjdGl2ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0IGRyYXdDb250cm9sSXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RyYXdDb250cm9sSXNBY3RpdmU7XG4gIH1cbiAgcHJpdmF0ZSBfZHJhd0NvbnRyb2xJc0FjdGl2ZSA9IHRydWU7XG5cbiAgc2V0IGZyZWVoYW5kRHJhd0lzQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZnJlZWhhbmREcmF3SXNBY3RpdmUgPSB2YWx1ZTtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGdldCBmcmVlaGFuZERyYXdJc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZnJlZWhhbmREcmF3SXNBY3RpdmU7XG4gIH1cbiAgcHJpdmF0ZSBfZnJlZWhhbmREcmF3SXNBY3RpdmUgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGZpZWxkJ3MgZm9ybSBjb250cm9sXG4gICAqL1xuICBASW5wdXQoKSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXAgdG8gZHJhdyB0aGUgZ2VvbWV0cnkgb25cbiAgICovXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBnZW9tZXRyeVR5cGUodmFsdWU6IHR5cGVvZiBPbEdlb21ldHJ5VHlwZSkgeyB0aGlzLmdlb21ldHJ5VHlwZSQubmV4dCh2YWx1ZSk7IH1cbiAgZ2V0IGdlb21ldHJ5VHlwZSgpOiB0eXBlb2YgT2xHZW9tZXRyeVR5cGUgeyByZXR1cm4gdGhpcy5nZW9tZXRyeVR5cGUkLnZhbHVlOyB9XG4gIHJlYWRvbmx5IGdlb21ldHJ5VHlwZSQ6IEJlaGF2aW9yU3ViamVjdDx0eXBlb2YgT2xHZW9tZXRyeVR5cGU+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgZ2VvbWV0cnkgdHlwZSB0b2dnbGUgc2hvdWxkIGJlIGRpc3BsYXllZFxuICAgKi9cbiAgQElucHV0KCkgZ2VvbWV0cnlUeXBlRmllbGQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQXZhaWxhYmxlIGdlb21ldHJ5IHR5cGVzXG4gICAqL1xuICBASW5wdXQoKSBnZW9tZXRyeVR5cGVzOiBzdHJpbmdbXSA9IFsnUG9pbnQnLCAnTGluZVN0cmluZycsICdQb2x5Z29uJ107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBkcmF3IGd1aWRlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWRcbiAgICovXG4gIEBJbnB1dCgpIGRyYXdHdWlkZUZpZWxkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBkcmF3R3VpZGUgYXJvdW5kIHRoZSBtb3VzZSBwb2ludGVyIHRvIGhlbHAgZHJhd2luZ1xuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRyYXdHdWlkZSh2YWx1ZTogbnVtYmVyKSB7IHRoaXMuZHJhd0d1aWRlJC5uZXh0KHZhbHVlKTsgfVxuICBnZXQgZHJhd0d1aWRlKCk6IG51bWJlciB7IHJldHVybiB0aGlzLmRyYXdHdWlkZSQudmFsdWU7IH1cbiAgcmVhZG9ubHkgZHJhd0d1aWRlJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApO1xuXG4gIC8qKlxuICAgKiBEcmF3IGd1aWRlIHBsYWNlaG9sZGVyXG4gICAqL1xuICBASW5wdXQoKSBkcmF3R3VpZGVQbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBtZWFzdXJlIHRvb2x0aXAgc2hvdWxkIGJlIGRpc3BsYXllZFxuICAgKi9cbiAgQElucHV0KCkgbWVhc3VyZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBDb250cm9sIG9wdGlvbnNcbiAgICovXG4gIEBJbnB1dCgpIGNvbnRyb2xPcHRpb25zOiB7W2tleTogc3RyaW5nXTogYW55fSA9IHt9O1xuXG4gIC8qKlxuICAgKiBTdHlsZSBmb3IgdGhlIGRyYXcgY29udHJvbCAoYXBwbGllcyB3aGlsZSB0aGUgZ2VvbWV0cnkgaXMgYmVpbmcgZHJhd24pXG4gICAqL1xuICBASW5wdXQoKSBkcmF3U3R5bGU6IE9sU3R5bGUuU3R5bGU7XG5cbiAgLyoqXG4gICAqIFN0eWxlIGZvciB0aGUgb3ZlcmxheSBsYXllciAoYXBwbGllcyBvbmNlIHRoZSBnZW9tZXRyeSBpcyBhZGRlZCB0byB0aGUgbWFwKVxuICAgKiBJZiBub3Qgc3BlY2lmaWVkLCBkcmF3U3R5bGUgYXBwbGllc1xuICAgKi9cbiAgQElucHV0KCkgb3ZlcmxheVN0eWxlOiBPbFN0eWxlLlN0eWxlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIC8qKlxuICAgKiBTZXQgdXAgYSB2YWx1ZSBzdHJlYW1cbiAgICogQGludGVybmFsXG4gICAqL1xuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnZhbHVlJC5uZXh0KHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgPyB0aGlzLmZvcm1Db250cm9sLnZhbHVlIDogdW5kZWZpbmVkKTtcbiAgICB0aGlzLnZhbHVlJCQgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlOiBHZW9KU09OR2VvbWV0cnkpID0+IHtcbiAgICAgIHRoaXMudmFsdWUkLm5leHQodmFsdWUgPyB2YWx1ZSA6IHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8gdGhlIHZhbHVlIHN0cmVhbVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudmFsdWUkJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8aWdvLWdlb21ldHJ5LWZvcm0tZmllbGQtaW5wdXRcclxuICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxyXG4gIFttYXBdPVwibWFwXCJcclxuICBbZ2VvbWV0cnlUeXBlXT1cImdlb21ldHJ5VHlwZSQgfCBhc3luY1wiXHJcbiAgW2RyYXdHdWlkZV09XCJkcmF3R3VpZGUkIHwgYXN5bmNcIlxyXG4gIFttZWFzdXJlXT1cIm1lYXN1cmVcIlxyXG4gIFtkcmF3Q29udHJvbElzQWN0aXZlXT1cImRyYXdDb250cm9sSXNBY3RpdmVcIlxyXG4gIFtmcmVlaGFuZERyYXdJc0FjdGl2ZV09XCJmcmVlaGFuZERyYXdJc0FjdGl2ZVwiXHJcbiAgW2NvbnRyb2xPcHRpb25zXT1cImNvbnRyb2xPcHRpb25zXCJcclxuICBbZHJhd1N0eWxlXT1cImRyYXdTdHlsZVwiXHJcbiAgW292ZXJsYXlTdHlsZV09XCJvdmVybGF5U3R5bGVcIj5cclxuPC9pZ28tZ2VvbWV0cnktZm9ybS1maWVsZC1pbnB1dD5cclxuXHJcbjxkaXYgKm5nSWY9XCJnZW9tZXRyeVR5cGVGaWVsZFwiIGNsYXNzPVwiZ2VvbWV0cnktdHlwZS10b2dnbGVcIj5cclxuICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXBcclxuICAgIFtkaXNhYmxlZF09XCIodmFsdWUkIHwgYXN5bmMpICE9PSB1bmRlZmluZWRcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJnZW9tZXRyeVR5cGVcIj5cclxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZVxyXG4gICAgICB2YWx1ZT1cIlBvaW50XCJcclxuICAgICAgW2Rpc2FibGVkXT1cImdlb21ldHJ5VHlwZXMuaW5kZXhPZignUG9pbnQnKSA8IDBcIj5cclxuICAgICAge3snaWdvLmdlby5nZW9tZXRyeS5wb2ludCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZVxyXG4gICAgICB2YWx1ZT1cIkxpbmVTdHJpbmdcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZ2VvbWV0cnlUeXBlcy5pbmRleE9mKCdMaW5lU3RyaW5nJykgPCAwXCI+XHJcbiAgICAgIHt7J2lnby5nZW8uZ2VvbWV0cnkubGluZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZVxyXG4gICAgICB2YWx1ZT1cIlBvbHlnb25cIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZ2VvbWV0cnlUeXBlcy5pbmRleE9mKCdQb2x5Z29uJykgPCAwXCI+XHJcbiAgICAgIHt7J2lnby5nZW8uZ2VvbWV0cnkucG9seWdvbicgfCB0cmFuc2xhdGV9fVxyXG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxyXG48L2Rpdj5cclxuXHJcbjxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImRyYXdHdWlkZUZpZWxkXCIgY2xhc3M9XCJkcmF3LWd1aWRlLWZpZWxkXCI+XHJcbiAgPGlucHV0XHJcbiAgICBtYXRJbnB1dFxyXG4gICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwiZHJhd0d1aWRlUGxhY2Vob2xkZXJcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJkcmF3R3VpZGVcIj5cclxuICA8bWF0LWljb25cclxuICAgIG1hdFByZWZpeFxyXG4gICAgW2NvbG9yXT1cIidwcmltYXJ5J1wiXHJcbiAgICBzdmdJY29uPVwiYWRqdXN0XCI+ICAgIFxyXG4gIDwvbWF0LWljb24+XHJcbiAgPHNwYW4gbWF0U3VmZml4IGNsYXNzPVwiZHJhdy1ndWlkZS11bml0c1wiPnt7J2lnby5nZW8ubWVhc3VyZS5tZXRlcnMnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbjwvbWF0LWZvcm0tZmllbGQ+Il19
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnktZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9nZW9tZXRyeS9nZW9tZXRyeS1mb3JtLWZpZWxkL2dlb21ldHJ5LWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZ2VvbWV0cnkvZ2VvbWV0cnktZm9ybS1maWVsZC9nZW9tZXRyeS1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ0osU0FBUyxFQUM1QixLQUFLLEVBQ04sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3JELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7SUNJckQsOEJBQTREO0lBQzFELGtEQUU2QjtJQUEzQiw4T0FBMEI7O0lBQzFCLDRDQUVrRDtJQUNoRCxZQUNGOztJQUFBLGlCQUFvQjtJQUNwQiw0Q0FFdUQ7SUFDckQsWUFDRjs7SUFBQSxpQkFBb0I7SUFDcEIsNENBRW9EO0lBQ2xELGFBQ0Y7O0lBQUEsaUJBQW9CO0lBQ3RCLGlCQUEwQjtJQUM1QixpQkFBTTs7O0lBbEJGLGVBQTJDO0lBQTNDLDRFQUEyQyxnQ0FBQTtJQUl6QyxlQUErQztJQUEvQyxvRUFBK0M7SUFDL0MsZUFDRjtJQURFLGdGQUNGO0lBR0UsZUFBb0Q7SUFBcEQseUVBQW9EO0lBQ3BELGVBQ0Y7SUFERSwrRUFDRjtJQUdFLGVBQWlEO0lBQWpELHNFQUFpRDtJQUNqRCxlQUNGO0lBREUsbUZBQ0Y7Ozs7SUFJSix5Q0FBZ0U7SUFDOUQsZ0NBSTBCO0lBQXhCLG9PQUF1QjtJQUp6QixpQkFJMEI7SUFDMUIsK0JBSVc7SUFDWCxnQ0FBeUM7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LDBCQUEwQjs2RUFBMUIsMEJBQTBCO1FDeEJ2QyxtREFXZ0M7OztRQUVoQyw2RUFvQk07UUFFTixpR0FZaUI7O1FBOUNmLDZDQUEyQixnQkFBQSwwREFBQSxvREFBQSx3QkFBQSxnREFBQSxrREFBQSxzQ0FBQSw0QkFBQSxrQ0FBQTtRQVl2QixlQUF1QjtRQUF2Qiw0Q0FBdUI7UUFzQlosZUFBb0I7UUFBcEIseUNBQW9COztBRFh4QiwwQkFBMEI7SUFQdEMscUJBQXFCLENBQUMsVUFBVSxDQUFDO0dBT3JCLDBCQUEwQixDQThHdEM7U0E5R1ksMEJBQTBCO3VGQUExQiwwQkFBMEI7Y0FOdEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFdBQVcsRUFBRSxzQ0FBc0M7Z0JBQ25ELFNBQVMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2dCQUNuRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDtvRUE4QlUsV0FBVztrQkFBbkIsS0FBSztZQUtHLEdBQUc7a0JBQVgsS0FBSztZQUdGLFlBQVk7a0JBRGYsS0FBSztZQVFHLGlCQUFpQjtrQkFBekIsS0FBSztZQUtHLGFBQWE7a0JBQXJCLEtBQUs7WUFLRyxjQUFjO2tCQUF0QixLQUFLO1lBTUYsU0FBUztrQkFEWixLQUFLO1lBUUcsb0JBQW9CO2tCQUE1QixLQUFLO1lBS0csT0FBTztrQkFBZixLQUFLO1lBS0csY0FBYztrQkFBdEIsS0FBSztZQUtHLFNBQVM7a0JBQWpCLEtBQUs7WUFNRyxZQUFZO2tCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsXG4gIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWdvRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnQGlnbzIvY29tbW9uJztcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5VHlwZSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnlUeXBlJztcbmltcG9ydCAqIGFzIE9sU3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcCc7XG5pbXBvcnQgeyBHZW9KU09OR2VvbWV0cnkgfSBmcm9tICcuLi9zaGFyZWQvZ2VvbWV0cnkuaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogVGhpcyBpbnB1dCBhbGxvd3MgYSB1c2VyIHRvIGRyYXcgYSBuZXcgZ2VvbWV0cnkgb3IgdG8gZWRpdFxuICogYW4gZXhpc3Rpbmcgb25lIG9uIGEgbWFwLlxuICovXG5ASWdvRm9ybUZpZWxkQ29tcG9uZW50KCdnZW9tZXRyeScpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tZ2VvbWV0cnktZm9ybS1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW9tZXRyeS1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2VvbWV0cnktZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBHZW9tZXRyeUZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICByZWFkb25seSB2YWx1ZSQ6IEJlaGF2aW9yU3ViamVjdDxHZW9KU09OR2VvbWV0cnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgdmFsdWUkJDogU3Vic2NyaXB0aW9uO1xuXG4gIHNldCBkcmF3Q29udHJvbElzQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZHJhd0NvbnRyb2xJc0FjdGl2ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgZ2V0IGRyYXdDb250cm9sSXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RyYXdDb250cm9sSXNBY3RpdmU7XG4gIH1cbiAgcHJpdmF0ZSBfZHJhd0NvbnRyb2xJc0FjdGl2ZSA9IHRydWU7XG5cbiAgc2V0IGZyZWVoYW5kRHJhd0lzQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZnJlZWhhbmREcmF3SXNBY3RpdmUgPSB2YWx1ZTtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGdldCBmcmVlaGFuZERyYXdJc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZnJlZWhhbmREcmF3SXNBY3RpdmU7XG4gIH1cbiAgcHJpdmF0ZSBfZnJlZWhhbmREcmF3SXNBY3RpdmUgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIGZpZWxkJ3MgZm9ybSBjb250cm9sXG4gICAqL1xuICBASW5wdXQoKSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXAgdG8gZHJhdyB0aGUgZ2VvbWV0cnkgb25cbiAgICovXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBnZW9tZXRyeVR5cGUodmFsdWU6IHR5cGVvZiBPbEdlb21ldHJ5VHlwZSkgeyB0aGlzLmdlb21ldHJ5VHlwZSQubmV4dCh2YWx1ZSk7IH1cbiAgZ2V0IGdlb21ldHJ5VHlwZSgpOiB0eXBlb2YgT2xHZW9tZXRyeVR5cGUgeyByZXR1cm4gdGhpcy5nZW9tZXRyeVR5cGUkLnZhbHVlOyB9XG4gIHJlYWRvbmx5IGdlb21ldHJ5VHlwZSQ6IEJlaGF2aW9yU3ViamVjdDx0eXBlb2YgT2xHZW9tZXRyeVR5cGU+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgZ2VvbWV0cnkgdHlwZSB0b2dnbGUgc2hvdWxkIGJlIGRpc3BsYXllZFxuICAgKi9cbiAgQElucHV0KCkgZ2VvbWV0cnlUeXBlRmllbGQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQXZhaWxhYmxlIGdlb21ldHJ5IHR5cGVzXG4gICAqL1xuICBASW5wdXQoKSBnZW9tZXRyeVR5cGVzOiBzdHJpbmdbXSA9IFsnUG9pbnQnLCAnTGluZVN0cmluZycsICdQb2x5Z29uJ107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBkcmF3IGd1aWRlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWRcbiAgICovXG4gIEBJbnB1dCgpIGRyYXdHdWlkZUZpZWxkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBkcmF3R3VpZGUgYXJvdW5kIHRoZSBtb3VzZSBwb2ludGVyIHRvIGhlbHAgZHJhd2luZ1xuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRyYXdHdWlkZSh2YWx1ZTogbnVtYmVyKSB7IHRoaXMuZHJhd0d1aWRlJC5uZXh0KHZhbHVlKTsgfVxuICBnZXQgZHJhd0d1aWRlKCk6IG51bWJlciB7IHJldHVybiB0aGlzLmRyYXdHdWlkZSQudmFsdWU7IH1cbiAgcmVhZG9ubHkgZHJhd0d1aWRlJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApO1xuXG4gIC8qKlxuICAgKiBEcmF3IGd1aWRlIHBsYWNlaG9sZGVyXG4gICAqL1xuICBASW5wdXQoKSBkcmF3R3VpZGVQbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBtZWFzdXJlIHRvb2x0aXAgc2hvdWxkIGJlIGRpc3BsYXllZFxuICAgKi9cbiAgQElucHV0KCkgbWVhc3VyZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBDb250cm9sIG9wdGlvbnNcbiAgICovXG4gIEBJbnB1dCgpIGNvbnRyb2xPcHRpb25zOiB7W2tleTogc3RyaW5nXTogYW55fSA9IHt9O1xuXG4gIC8qKlxuICAgKiBTdHlsZSBmb3IgdGhlIGRyYXcgY29udHJvbCAoYXBwbGllcyB3aGlsZSB0aGUgZ2VvbWV0cnkgaXMgYmVpbmcgZHJhd24pXG4gICAqL1xuICBASW5wdXQoKSBkcmF3U3R5bGU6IE9sU3R5bGUuU3R5bGU7XG5cbiAgLyoqXG4gICAqIFN0eWxlIGZvciB0aGUgb3ZlcmxheSBsYXllciAoYXBwbGllcyBvbmNlIHRoZSBnZW9tZXRyeSBpcyBhZGRlZCB0byB0aGUgbWFwKVxuICAgKiBJZiBub3Qgc3BlY2lmaWVkLCBkcmF3U3R5bGUgYXBwbGllc1xuICAgKi9cbiAgQElucHV0KCkgb3ZlcmxheVN0eWxlOiBPbFN0eWxlLlN0eWxlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIC8qKlxuICAgKiBTZXQgdXAgYSB2YWx1ZSBzdHJlYW1cbiAgICogQGludGVybmFsXG4gICAqL1xuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnZhbHVlJC5uZXh0KHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgPyB0aGlzLmZvcm1Db250cm9sLnZhbHVlIDogdW5kZWZpbmVkKTtcbiAgICB0aGlzLnZhbHVlJCQgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlOiBHZW9KU09OR2VvbWV0cnkpID0+IHtcbiAgICAgIHRoaXMudmFsdWUkLm5leHQodmFsdWUgPyB2YWx1ZSA6IHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8gdGhlIHZhbHVlIHN0cmVhbVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudmFsdWUkJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8aWdvLWdlb21ldHJ5LWZvcm0tZmllbGQtaW5wdXRcbiAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgW21hcF09XCJtYXBcIlxuICBbZ2VvbWV0cnlUeXBlXT1cImdlb21ldHJ5VHlwZSQgfCBhc3luY1wiXG4gIFtkcmF3R3VpZGVdPVwiZHJhd0d1aWRlJCB8IGFzeW5jXCJcbiAgW21lYXN1cmVdPVwibWVhc3VyZVwiXG4gIFtkcmF3Q29udHJvbElzQWN0aXZlXT1cImRyYXdDb250cm9sSXNBY3RpdmVcIlxuICBbZnJlZWhhbmREcmF3SXNBY3RpdmVdPVwiZnJlZWhhbmREcmF3SXNBY3RpdmVcIlxuICBbY29udHJvbE9wdGlvbnNdPVwiY29udHJvbE9wdGlvbnNcIlxuICBbZHJhd1N0eWxlXT1cImRyYXdTdHlsZVwiXG4gIFtvdmVybGF5U3R5bGVdPVwib3ZlcmxheVN0eWxlXCI+XG48L2lnby1nZW9tZXRyeS1mb3JtLWZpZWxkLWlucHV0PlxuXG48ZGl2ICpuZ0lmPVwiZ2VvbWV0cnlUeXBlRmllbGRcIiBjbGFzcz1cImdlb21ldHJ5LXR5cGUtdG9nZ2xlXCI+XG4gIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cFxuICAgIFtkaXNhYmxlZF09XCIodmFsdWUkIHwgYXN5bmMpICE9PSB1bmRlZmluZWRcIlxuICAgIFsobmdNb2RlbCldPVwiZ2VvbWV0cnlUeXBlXCI+XG4gICAgPG1hdC1idXR0b24tdG9nZ2xlXG4gICAgICB2YWx1ZT1cIlBvaW50XCJcbiAgICAgIFtkaXNhYmxlZF09XCJnZW9tZXRyeVR5cGVzLmluZGV4T2YoJ1BvaW50JykgPCAwXCI+XG4gICAgICB7eydpZ28uZ2VvLmdlb21ldHJ5LnBvaW50JyB8IHRyYW5zbGF0ZX19XG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICA8bWF0LWJ1dHRvbi10b2dnbGVcbiAgICAgIHZhbHVlPVwiTGluZVN0cmluZ1wiXG4gICAgICBbZGlzYWJsZWRdPVwiZ2VvbWV0cnlUeXBlcy5pbmRleE9mKCdMaW5lU3RyaW5nJykgPCAwXCI+XG4gICAgICB7eydpZ28uZ2VvLmdlb21ldHJ5LmxpbmUnIHwgdHJhbnNsYXRlfX1cbiAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZVxuICAgICAgdmFsdWU9XCJQb2x5Z29uXCJcbiAgICAgIFtkaXNhYmxlZF09XCJnZW9tZXRyeVR5cGVzLmluZGV4T2YoJ1BvbHlnb24nKSA8IDBcIj5cbiAgICAgIHt7J2lnby5nZW8uZ2VvbWV0cnkucG9seWdvbicgfCB0cmFuc2xhdGV9fVxuICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG48L2Rpdj5cblxuPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiZHJhd0d1aWRlRmllbGRcIiBjbGFzcz1cImRyYXctZ3VpZGUtZmllbGRcIj5cbiAgPGlucHV0XG4gICAgbWF0SW5wdXRcbiAgICB0eXBlPVwibnVtYmVyXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiZHJhd0d1aWRlUGxhY2Vob2xkZXJcIlxuICAgIFsobmdNb2RlbCldPVwiZHJhd0d1aWRlXCI+XG4gIDxtYXQtaWNvblxuICAgIG1hdFByZWZpeFxuICAgIFtjb2xvcl09XCIncHJpbWFyeSdcIlxuICAgIHN2Z0ljb249XCJhZGp1c3RcIj4gICAgXG4gIDwvbWF0LWljb24+XG4gIDxzcGFuIG1hdFN1ZmZpeCBjbGFzcz1cImRyYXctZ3VpZGUtdW5pdHNcIj57eydpZ28uZ2VvLm1lYXN1cmUubWV0ZXJzJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
@@ -63,4 +63,4 @@ IgoGeometryFormFieldModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports
63
63
  MatButtonToggleModule,
64
64
  IgoLanguageModule], exports: [GeometryFormFieldComponent,
65
65
  GeometryFormFieldInputComponent] }); })();
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnktZm9ybS1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9nZW9tZXRyeS9nZW9tZXRyeS1mb3JtLWZpZWxkL2dlb21ldHJ5LWZvcm0tZmllbGQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBRXhGOztHQUVHO0FBc0JILE1BQU0sT0FBTywwQkFBMEI7O29HQUExQiwwQkFBMEI7NEVBQTFCLDBCQUEwQjtnRkFwQjVCO1lBQ1AsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQixpQkFBaUI7U0FDbEI7dUZBVVUsMEJBQTBCO2NBckJ0QyxRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLGFBQWE7b0JBQ2Isa0JBQWtCO29CQUNsQixjQUFjO29CQUNkLGVBQWU7b0JBQ2YscUJBQXFCO29CQUNyQixpQkFBaUI7aUJBQ2xCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCwwQkFBMEI7b0JBQzFCLCtCQUErQjtpQkFDaEM7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLDBCQUEwQjtvQkFDMUIsK0JBQStCO2lCQUNoQzthQUNGOzt3RkFDWSwwQkFBMEIsbUJBSm5DLDBCQUEwQjtRQUMxQiwrQkFBK0IsYUFoQi9CLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsaUJBQWlCLGFBR2pCLDBCQUEwQjtRQUMxQiwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5cclxuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7IEdlb21ldHJ5Rm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9nZW9tZXRyeS1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdlb21ldHJ5Rm9ybUZpZWxkSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2dlb21ldHJ5LWZvcm0tZmllbGQtaW5wdXQuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcclxuICAgIElnb0xhbmd1YWdlTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBHZW9tZXRyeUZvcm1GaWVsZENvbXBvbmVudCxcclxuICAgIEdlb21ldHJ5Rm9ybUZpZWxkSW5wdXRDb21wb25lbnRcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgR2VvbWV0cnlGb3JtRmllbGRDb21wb25lbnQsXHJcbiAgICBHZW9tZXRyeUZvcm1GaWVsZElucHV0Q29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWdvR2VvbWV0cnlGb3JtRmllbGRNb2R1bGUge31cclxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnktZm9ybS1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9nZW9tZXRyeS9nZW9tZXRyeS1mb3JtLWZpZWxkL2dlb21ldHJ5LWZvcm0tZmllbGQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBRXhGOztHQUVHO0FBc0JILE1BQU0sT0FBTywwQkFBMEI7O29HQUExQiwwQkFBMEI7NEVBQTFCLDBCQUEwQjtnRkFwQjVCO1lBQ1AsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQixpQkFBaUI7U0FDbEI7dUZBVVUsMEJBQTBCO2NBckJ0QyxRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLGFBQWE7b0JBQ2Isa0JBQWtCO29CQUNsQixjQUFjO29CQUNkLGVBQWU7b0JBQ2YscUJBQXFCO29CQUNyQixpQkFBaUI7aUJBQ2xCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCwwQkFBMEI7b0JBQzFCLCtCQUErQjtpQkFDaEM7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLDBCQUEwQjtvQkFDMUIsK0JBQStCO2lCQUNoQzthQUNGOzt3RkFDWSwwQkFBMEIsbUJBSm5DLDBCQUEwQjtRQUMxQiwrQkFBK0IsYUFoQi9CLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsaUJBQWlCLGFBR2pCLDBCQUEwQjtRQUMxQiwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcblxuaW1wb3J0IHsgSWdvTGFuZ3VhZ2VNb2R1bGUgfSBmcm9tICdAaWdvMi9jb3JlJztcblxuaW1wb3J0IHsgR2VvbWV0cnlGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2dlb21ldHJ5LWZvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEdlb21ldHJ5Rm9ybUZpZWxkSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2dlb21ldHJ5LWZvcm0tZmllbGQtaW5wdXQuY29tcG9uZW50JztcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLFxuICAgIElnb0xhbmd1YWdlTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBHZW9tZXRyeUZvcm1GaWVsZENvbXBvbmVudCxcbiAgICBHZW9tZXRyeUZvcm1GaWVsZElucHV0Q29tcG9uZW50XG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEdlb21ldHJ5Rm9ybUZpZWxkQ29tcG9uZW50LFxuICAgIEdlb21ldHJ5Rm9ybUZpZWxkSW5wdXRDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJZ29HZW9tZXRyeUZvcm1GaWVsZE1vZHVsZSB7fVxuIl19
@@ -26,4 +26,4 @@ IgoGeometryModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [], i
26
26
  }], null, null); })();
27
27
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoGeometryModule, { imports: [CommonModule,
28
28
  IgoGeometryFormFieldModule], exports: [IgoGeometryFormFieldModule] }); })();
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZ2VvbWV0cnkvZ2VvbWV0cnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOztBQWE5RixNQUFNLE9BQU8saUJBQWlCOztrRkFBakIsaUJBQWlCO21FQUFqQixpQkFBaUI7d0VBRmpCLEVBQUUsWUFSSjtZQUNQLFlBQVk7WUFDWiwwQkFBMEI7U0FDM0IsRUFFQywwQkFBMEI7dUZBS2pCLGlCQUFpQjtjQVg3QixRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osMEJBQTBCO2lCQUMzQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsMEJBQTBCO2lCQUMzQjtnQkFDRCxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsU0FBUyxFQUFFLEVBQUU7YUFDZDs7d0ZBQ1ksaUJBQWlCLGNBVDFCLFlBQVk7UUFDWiwwQkFBMEIsYUFHMUIsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IElnb0dlb21ldHJ5Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnLi9nZW9tZXRyeS1mb3JtLWZpZWxkL2dlb21ldHJ5LWZvcm0tZmllbGQubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSWdvR2VvbWV0cnlGb3JtRmllbGRNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIElnb0dlb21ldHJ5Rm9ybUZpZWxkTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIHByb3ZpZGVyczogW11cclxufSlcclxuZXhwb3J0IGNsYXNzIElnb0dlb21ldHJ5TW9kdWxlIHt9XHJcbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZ2VvbWV0cnkvZ2VvbWV0cnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOztBQWE5RixNQUFNLE9BQU8saUJBQWlCOztrRkFBakIsaUJBQWlCO21FQUFqQixpQkFBaUI7d0VBRmpCLEVBQUUsWUFSSjtZQUNQLFlBQVk7WUFDWiwwQkFBMEI7U0FDM0IsRUFFQywwQkFBMEI7dUZBS2pCLGlCQUFpQjtjQVg3QixRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osMEJBQTBCO2lCQUMzQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsMEJBQTBCO2lCQUMzQjtnQkFDRCxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsU0FBUyxFQUFFLEVBQUU7YUFDZDs7d0ZBQ1ksaUJBQWlCLGNBVDFCLFlBQVk7UUFDWiwwQkFBMEIsYUFHMUIsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IElnb0dlb21ldHJ5Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnLi9nZW9tZXRyeS1mb3JtLWZpZWxkL2dlb21ldHJ5LWZvcm0tZmllbGQubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJZ29HZW9tZXRyeUZvcm1GaWVsZE1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgSWdvR2VvbWV0cnlGb3JtRmllbGRNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgcHJvdmlkZXJzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBJZ29HZW9tZXRyeU1vZHVsZSB7fVxuIl19
@@ -1,4 +1,4 @@
1
1
  export * from './shared';
2
2
  export * from './geometry-form-field/geometry-form-field.component';
3
3
  export * from './geometry-form-field/geometry-form-field-input.component';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9nZW9tZXRyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsMkRBQTJELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NoYXJlZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ2VvbWV0cnktZm9ybS1maWVsZC9nZW9tZXRyeS1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ2VvbWV0cnktZm9ybS1maWVsZC9nZW9tZXRyeS1mb3JtLWZpZWxkLWlucHV0LmNvbXBvbmVudCc7XHJcbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9nZW9tZXRyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsMkRBQTJELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NoYXJlZCc7XG5leHBvcnQgKiBmcm9tICcuL2dlb21ldHJ5LWZvcm0tZmllbGQvZ2VvbWV0cnktZm9ybS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW9tZXRyeS1mb3JtLWZpZWxkL2dlb21ldHJ5LWZvcm0tZmllbGQtaW5wdXQuY29tcG9uZW50JztcbiJdfQ==
@@ -263,4 +263,4 @@ export class DrawControl {
263
263
  }
264
264
  }
265
265
  }
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2dlb21ldHJ5L3NoYXJlZC9jb250cm9scy9kcmF3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sTUFBTSxNQUFNLHFCQUFxQixDQUFDO0FBRXpDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBSTdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxELE9BQU8sRUFBRSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFXeEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQTREdEIsWUFBb0IsT0FBMkI7UUFBM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUEzRC9DOztXQUVHO1FBQ0ksV0FBTSxHQUF3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRW5EOztXQUVHO1FBQ0ksU0FBSSxHQUF3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRWpEOztXQUVHO1FBQ0ksYUFBUSxHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTlDOztXQUVHO1FBQ0ksWUFBTyxHQUF3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXBEOztXQUVHO1FBQ0ksWUFBTyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTlDOztXQUVHO1FBQ0gsY0FBUyxHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQWdDL0QsSUFB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a0JBQWtCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRzS2V5IH0gZnJvbSAnb2wvZXZlbnRzJztcbmltcG9ydCBPbE1hcCBmcm9tICdvbC9NYXAnO1xuaW1wb3J0IE9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCAqIGFzIE9sU3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnlUeXBlIH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeVR5cGUnO1xuaW1wb3J0IE9sVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xuaW1wb3J0IE9sVmVjdG9yTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVmVjdG9yJztcbmltcG9ydCBPbERyYXcgZnJvbSAnb2wvaW50ZXJhY3Rpb24vRHJhdyc7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0IE9sTW9kaWZ5IGZyb20gJ29sL2ludGVyYWN0aW9uL01vZGlmeSc7XG5pbXBvcnQgT2xTZWxlY3QgZnJvbSAnb2wvaW50ZXJhY3Rpb24vU2VsZWN0JztcbmltcG9ydCBCYXNpY0V2ZW50IGZyb20gJ29sL2V2ZW50cy9FdmVudCc7XG5pbXBvcnQgeyBEcmF3RXZlbnQgYXMgT2xEcmF3RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmF3JztcbmltcG9ydCB7IFNlbGVjdEV2ZW50IGFzIE9sU2VsZWN0RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9TZWxlY3QnO1xuaW1wb3J0IHsgdW5CeUtleSB9IGZyb20gJ29sL09ic2VydmFibGUnO1xuaW1wb3J0IHsgZG91YmxlQ2xpY2sgfSBmcm9tICdvbC9ldmVudHMvY29uZGl0aW9uJztcblxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBnZXRNb3VzZVBvc2l0aW9uRnJvbU9sR2VvbWV0cnlFdmVudCB9IGZyb20gJy4uL2dlb21ldHJ5LnV0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBEcmF3Q29udHJvbE9wdGlvbnMge1xuICBnZW9tZXRyeVR5cGU6IHR5cGVvZiBPbEdlb21ldHJ5VHlwZSB8IHN0cmluZztcbiAgZHJhd2luZ0xheWVyU291cmNlPzogT2xWZWN0b3JTb3VyY2U8T2xHZW9tZXRyeT47XG4gIGRyYXdpbmdMYXllcj86IE9sVmVjdG9yTGF5ZXI8T2xWZWN0b3JTb3VyY2U8T2xHZW9tZXRyeT4+O1xuICBkcmF3aW5nTGF5ZXJTdHlsZT86IE9sU3R5bGUuU3R5bGUgfCAoKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiBPbFN0eWxlLlN0eWxlKTtcbiAgaW50ZXJhY3Rpb25TdHlsZT86IE9sU3R5bGUuU3R5bGUgfCAoKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiBPbFN0eWxlLlN0eWxlKTtcbiAgbWF4UG9pbnRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbnRyb2wgdG8gZHJhdyBlbnRpdGllc1xuICovXG5leHBvcnQgY2xhc3MgRHJhd0NvbnRyb2wge1xuICAvKipcbiAgICogRHJhdyBzdGFydCBvYnNlcnZhYmxlXG4gICAqL1xuICBwdWJsaWMgc3RhcnQkOiBTdWJqZWN0PE9sR2VvbWV0cnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvKipcbiAgICogRHJhdyBlbmQgb2JzZXJ2YWJsZVxuICAgKi9cbiAgcHVibGljIGVuZCQ6IFN1YmplY3Q8T2xHZW9tZXRyeT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8qKlxuICAgKiBEcmF3IGNoYW5nZXMgb2JzZXJ2YWJsZSAod2hpbGUgZHJhd2luZylcbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VzJDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvKipcbiAgICogRHJhdyBtb2RpZnkgb2JzZXJ2YWJsZSAobW9kaWZ5IGRyYXduIGZlYXR1cmVzKVxuICAgKi9cbiAgcHVibGljIG1vZGlmeSQ6IFN1YmplY3Q8T2xHZW9tZXRyeT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8qKlxuICAgKiBEcmF3IHNlbGVjdCBvYnNlcnZhYmxlIChtb2RpZnkgZHJhd24gZmVhdHVyZXMpXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0JDogU3ViamVjdDxhbnk+ID0gIG5ldyBTdWJqZWN0KCk7XG5cbiAgLyoqXG4gICAqIEZyZWVoYW5kIG1vZGUgb2JzZXJ2YWJsZSAoZGVmYXVsdHMgdG8gZmFsc2UpXG4gICAqL1xuICBmcmVlaGFuZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHByaXZhdGUga2V5RG93biQkOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBvbEdlb21ldHJ5VHlwZTogdHlwZW9mIE9sR2VvbWV0cnlUeXBlIHwgdW5kZWZpbmVkIHwgc3RyaW5nO1xuICBwcml2YXRlIG9sTWFwOiBPbE1hcDtcbiAgcHJpdmF0ZSBvbERyYXdpbmdMYXllcjogT2xWZWN0b3JMYXllcjxPbFZlY3RvclNvdXJjZTxPbEdlb21ldHJ5Pj47XG4gIHByaXZhdGUgb2xEcmF3SW50ZXJhY3Rpb246IE9sRHJhdztcbiAgcHJpdmF0ZSBvbFNlbGVjdEludGVyYWN0aW9uOiBPbFNlbGVjdDtcbiAgcHJpdmF0ZSBvbE1vZGlmeUludGVyYWN0aW9uOiBPbE1vZGlmeTtcbiAgcHJpdmF0ZSBvbkRyYXdTdGFydEtleTogRXZlbnRzS2V5O1xuICBwcml2YXRlIG9uRHJhd0VuZEtleTogRXZlbnRzS2V5O1xuICBwcml2YXRlIG9uRHJhd0tleTogRXZlbnRzS2V5O1xuXG4gIHByaXZhdGUgbW91c2VQb3NpdGlvbjogW251bWJlciwgbnVtYmVyXTtcblxuICAvKipcbiAgICogV2hldGVyIHRoZSBjb250cm9sIGlzIGFjdGl2ZVxuICAgKi9cbiAgZ2V0IGFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vbE1hcCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIE9MIG92ZXJsYXkgc291cmNlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0IG9sRHJhd2luZ0xheWVyU291cmNlKCk6IE9sVmVjdG9yU291cmNlPE9sR2VvbWV0cnk+IHtcbiAgICByZXR1cm4gdGhpcy5vbERyYXdpbmdMYXllci5nZXRTb3VyY2UoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9uczogRHJhd0NvbnRyb2xPcHRpb25zKSB7XG4gICAgdGhpcy5vbERyYXdpbmdMYXllciA9IG9wdGlvbnMuZHJhd2luZ0xheWVyID8gb3B0aW9ucy5kcmF3aW5nTGF5ZXIgOiB0aGlzLmNyZWF0ZU9sSW5uZXJPdmVybGF5TGF5ZXIoKTtcbiAgICB0aGlzLm9sR2VvbWV0cnlUeXBlID0gdGhpcy5vcHRpb25zLmdlb21ldHJ5VHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgb3IgcmVtb3ZlIHRoaXMgY29udHJvbCB0by9mcm9tIGEgbWFwLlxuICAgKiBAcGFyYW0gbWFwIE9MIE1hcFxuICAgKi9cbiAgc2V0T2xNYXAob2xNYXA6IE9sTWFwIHwgdW5kZWZpbmVkLCBhY3RpdmF0ZU1vZGlmeUFuZFNlbGVjdD86IGJvb2xlYW4pIHtcbiAgICBpZiAoIW9sTWFwKSB7XG4gICAgICB0aGlzLmNsZWFyT2xJbm5lck92ZXJsYXlTb3VyY2UoKTtcbiAgICAgIHRoaXMucmVtb3ZlT2xJbm5lck92ZXJsYXlMYXllcigpO1xuICAgICAgdGhpcy5yZW1vdmVPbEludGVyYWN0aW9ucygpO1xuICAgICAgdGhpcy5vbE1hcCA9IG9sTWFwO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub2xNYXAgPSBvbE1hcDtcbiAgICB0aGlzLmFkZE9sSW5uZXJPdmVybGF5TGF5ZXIoKTtcbiAgICB0aGlzLmFkZE9sSW50ZXJhY3Rpb25zKGFjdGl2YXRlTW9kaWZ5QW5kU2VsZWN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGRyYXdpbmcgbGF5ZXIgc291cmNlXG4gICAqL1xuICBnZXRTb3VyY2UoKTogT2xWZWN0b3JTb3VyY2U8T2xHZW9tZXRyeT4ge1xuICAgIHJldHVybiB0aGlzLm9sRHJhd2luZ0xheWVyU291cmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY3VycmVudCBnZW9tZXRyeSB0eXBlXG4gICAqIEBwYXJhbSBnZW9tZXRyeVR5cGUgdGhlIGdlb21ldHJ5IHR5cGVcbiAgICovXG4gIHNldEdlb21ldHJ5VHlwZShnZW9tZXRyeVR5cGU6IHR5cGVvZiBPbEdlb21ldHJ5VHlwZSkge1xuICAgIHRoaXMub2xHZW9tZXRyeVR5cGUgPSBnZW9tZXRyeVR5cGU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZHJhd2luZyBzb3VyY2UgaWYgbm9uZSBpcyBkZWZpbmVkIGluIHRoZSBvcHRpb25zXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZU9sSW5uZXJPdmVybGF5TGF5ZXIoKTogT2xWZWN0b3JMYXllcjxPbFZlY3RvclNvdXJjZTxPbEdlb21ldHJ5Pj4ge1xuICAgIHJldHVybiBuZXcgT2xWZWN0b3JMYXllcih7XG4gICAgICBzb3VyY2U6IHRoaXMub3B0aW9ucy5kcmF3aW5nTGF5ZXJTb3VyY2UgPyB0aGlzLm9wdGlvbnMuZHJhd2luZ0xheWVyU291cmNlIDogbmV3IE9sVmVjdG9yU291cmNlKCksXG4gICAgICBzdHlsZTogdGhpcy5vcHRpb25zLmRyYXdpbmdMYXllclN0eWxlLFxuICAgICAgekluZGV4OiA1MDBcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgZHJhd2luZyBsYXllciBpZiBpdCB3YXNuJ3QgZGVmaW5lZCBpbiB0aGUgb3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVPbElubmVyT3ZlcmxheUxheWVyKCkge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmRyYXdpbmdMYXllciAmJiB0aGlzLm9sTWFwKSB7XG4gICAgICB0aGlzLm9sTWFwLnJlbW92ZUxheWVyKHRoaXMub2xEcmF3aW5nTGF5ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIGRyYXdpbmcgbGF5ZXIgaWYgaXQgd2Fzbid0IGRlZmluZWQgaW4gdGhlIG9wdGlvbnNcbiAgICovXG4gIHByaXZhdGUgYWRkT2xJbm5lck92ZXJsYXlMYXllcigpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5kcmF3aW5nTGF5ZXIpIHtcbiAgICAgIHRoaXMub2xNYXAuYWRkTGF5ZXIodGhpcy5vbERyYXdpbmdMYXllcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIHRoZSBkcmF3aW5nIGxheWVyIHNvdXJjZSBpZiBpdCB3YXNuJ3QgZGVmaW5lZCBpbiB0aGUgb3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBjbGVhck9sSW5uZXJPdmVybGF5U291cmNlKCkge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmRyYXdpbmdMYXllciAmJiAhdGhpcy5vcHRpb25zLmRyYXdpbmdMYXllclNvdXJjZSkge1xuICAgICAgdGhpcy5vbERyYXdpbmdMYXllclNvdXJjZS5jbGVhcih0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIGludGVyYWN0aW9ucyB0byB0aGUgbWFwIGFuIHNldCB1cCBzb21lIGxpc3RlbmVyc1xuICAgKi9cbiAgYWRkT2xJbnRlcmFjdGlvbnMoYWN0aXZhdGVNb2RpZnlBbmRTZWxlY3Q/OiBib29sZWFuKSB7XG4gICAgLy8gQ3JlYXRlIERyYXcgaW50ZXJhY3Rpb25cbiAgICBsZXQgb2xEcmF3SW50ZXJhY3Rpb247XG4gICAgaWYgKCF0aGlzLmZyZWVoYW5kJC5nZXRWYWx1ZSgpKSB7XG4gICAgICBvbERyYXdJbnRlcmFjdGlvbiA9IG5ldyBPbERyYXcoe1xuICAgICAgICB0eXBlOiB0aGlzLm9sR2VvbWV0cnlUeXBlLFxuICAgICAgICBzb3VyY2U6IHRoaXMuZ2V0U291cmNlKCksXG4gICAgICAgIHN0b3BDbGljazogdHJ1ZSxcbiAgICAgICAgc3R5bGU6IHRoaXMub3B0aW9ucy5pbnRlcmFjdGlvblN0eWxlLFxuICAgICAgICBtYXhQb2ludHM6IHRoaXMub3B0aW9ucy5tYXhQb2ludHMsXG4gICAgICAgIGZyZWVoYW5kOiBmYWxzZSxcbiAgICAgICAgZnJlZWhhbmRDb25kaXRpb246ICgpID0+IGZhbHNlXG4gICAgICB9KTtcblxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5vbEdlb21ldHJ5VHlwZSA9PT0gJ1BvaW50Jykge1xuICAgICAgICBvbERyYXdJbnRlcmFjdGlvbiA9IG5ldyBPbERyYXcoe1xuICAgICAgICAgIHR5cGU6ICdDaXJjbGUnLFxuICAgICAgICAgIHNvdXJjZTogdGhpcy5nZXRTb3VyY2UoKSxcbiAgICAgICAgICBtYXhQb2ludHM6IHRoaXMub3B0aW9ucy5tYXhQb2ludHMsXG4gICAgICAgICAgZnJlZWhhbmQ6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9sRHJhd0ludGVyYWN0aW9uID0gbmV3IE9sRHJhdyh7XG4gICAgICAgICAgdHlwZTogdGhpcy5vbEdlb21ldHJ5VHlwZSxcbiAgICAgICAgICBzb3VyY2U6IHRoaXMuZ2V0U291cmNlKCksXG4gICAgICAgICAgbWF4UG9pbnRzOiB0aGlzLm9wdGlvbnMubWF4UG9pbnRzLFxuICAgICAgICAgIGZyZWVoYW5kOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZCBEcmF3IGludGVyYWN0aW9uIHRvIG1hcCBhbmQgY3JlYXRlIGxpc3RlbmVyc1xuICAgIHRoaXMub2xNYXAuYWRkSW50ZXJhY3Rpb24ob2xEcmF3SW50ZXJhY3Rpb24pO1xuICAgIHRoaXMub2xEcmF3SW50ZXJhY3Rpb24gPSBvbERyYXdJbnRlcmFjdGlvbjtcblxuICAgIHRoaXMub25EcmF3U3RhcnRLZXkgPSBvbERyYXdJbnRlcmFjdGlvbi5vbignZHJhd3N0YXJ0JywgKGV2ZW50OiBPbERyYXdFdmVudCkgPT4gdGhpcy5vbkRyYXdTdGFydChldmVudCkpO1xuICAgIHRoaXMub25EcmF3RW5kS2V5ID0gb2xEcmF3SW50ZXJhY3Rpb24ub24oJ2RyYXdlbmQnLCAoZXZlbnQ6IE9sRHJhd0V2ZW50KSA9PiB0aGlzLm9uRHJhd0VuZChldmVudCkpO1xuXG4gICAgaWYgKGFjdGl2YXRlTW9kaWZ5QW5kU2VsZWN0KSB7XG4gICAgICAvLyBDcmVhdGUgYSBNb2RpZnkgaW50ZXJhY3Rpb24sIGFkZCBpdCB0byBtYXAgYW5kIGNyZWF0ZSBhIGxpc3RlbmVyXG4gICAgICBjb25zdCBvbE1vZGlmeUludGVyYWN0aW9uID0gbmV3IE9sTW9kaWZ5KHtcbiAgICAgICAgc291cmNlOiB0aGlzLmdldFNvdXJjZSgpXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5vbE1hcC5hZGRJbnRlcmFjdGlvbihvbE1vZGlmeUludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMub2xNb2RpZnlJbnRlcmFjdGlvbiA9IG9sTW9kaWZ5SW50ZXJhY3Rpb247XG5cbiAgICAgIC8vIENyZWF0ZSBhIHNlbGVjdCBpbnRlcmFjdGlvbiBhbmQgYWRkIGl0IHRvIG1hcFxuICAgICAgaWYgKCF0aGlzLm9sU2VsZWN0SW50ZXJhY3Rpb24pIHtcbiAgICAgICAgY29uc3Qgb2xTZWxlY3RJbnRlcmFjdGlvbiA9IG5ldyBPbFNlbGVjdCh7XG4gICAgICAgICAgY29uZGl0aW9uOiBkb3VibGVDbGljayxcbiAgICAgICAgICBzdHlsZTogdW5kZWZpbmVkXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9sTWFwLmFkZEludGVyYWN0aW9uKG9sU2VsZWN0SW50ZXJhY3Rpb24pO1xuICAgICAgICB0aGlzLm9sU2VsZWN0SW50ZXJhY3Rpb24gPSBvbFNlbGVjdEludGVyYWN0aW9uO1xuXG4gICAgICAgIHRoaXMub2xTZWxlY3RJbnRlcmFjdGlvbi5vbignc2VsZWN0JywgKGV2ZW50OiBPbFNlbGVjdEV2ZW50KSA9PiB0aGlzLm9uU2VsZWN0KGV2ZW50KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBpbnRlcmFjdGlvbnNcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlT2xJbnRlcmFjdGlvbnMoKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZUtleURvd24oKTtcbiAgICB1bkJ5S2V5KFt0aGlzLm9uRHJhd1N0YXJ0S2V5LCB0aGlzLm9uRHJhd0VuZEtleSwgdGhpcy5vbkRyYXdLZXldKTtcblxuICAgIGlmICh0aGlzLm9sTWFwKSB7XG4gICAgICB0aGlzLm9sTWFwLnJlbW92ZUludGVyYWN0aW9uKHRoaXMub2xEcmF3SW50ZXJhY3Rpb24pO1xuICAgICAgdGhpcy5vbE1hcC5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLm9sTW9kaWZ5SW50ZXJhY3Rpb24pO1xuICAgIH1cblxuICAgIHRoaXMub2xEcmF3SW50ZXJhY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5vbE1vZGlmeUludGVyYWN0aW9uID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gZHJhd2luZyBzdGFydHMsIGNsZWFyIHRoZSBvdmVybGF5IGFuZCBzdGFydCB3YXRjaGluZyBmb3IgY2hhbmdlc1xuICAgKiBAcGFyYW0gZXZlbnQgRHJhdyBzdGFydCBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBvbkRyYXdTdGFydChldmVudDogT2xEcmF3RXZlbnQpIHtcbiAgICBjb25zdCBvbEdlb21ldHJ5ID0gZXZlbnQuZmVhdHVyZS5nZXRHZW9tZXRyeSgpO1xuICAgIHRoaXMuc3RhcnQkLm5leHQob2xHZW9tZXRyeSk7XG4gICAgdGhpcy5jbGVhck9sSW5uZXJPdmVybGF5U291cmNlKCk7XG4gICAgdGhpcy5vbkRyYXdLZXkgPSBvbEdlb21ldHJ5Lm9uKCdjaGFuZ2UnLCAob2xHZW9tZXRyeUV2ZW50OiBCYXNpY0V2ZW50KSA9PiB7XG4gICAgICB0aGlzLm1vdXNlUG9zaXRpb24gPSBnZXRNb3VzZVBvc2l0aW9uRnJvbU9sR2VvbWV0cnlFdmVudChvbEdlb21ldHJ5RXZlbnQpO1xuICAgICAgdGhpcy5jaGFuZ2VzJC5uZXh0KG9sR2VvbWV0cnlFdmVudC50YXJnZXQpO1xuICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaWJlS2V5RG93bigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gZHJhd2luZyBlbmRzLCB1cGRhdGUgdGhlIGRyYXdpbmcgKGZlYXR1cmUpIGdlb21ldHJ5IG9ic2VydmFibGUgYW5kIGFkZFxuICAgKiBAcGFyYW0gZXZlbnQgRHJhdyBldmVudCAoZHJhd2VuZClcbiAgICovXG4gIHByaXZhdGUgb25EcmF3RW5kKGV2ZW50OiBPbERyYXdFdmVudCkge1xuICAgIHRoaXMudW5zdWJzY3JpYmVLZXlEb3duKCk7XG4gICAgdW5CeUtleSh0aGlzLm9uRHJhd0tleSk7XG4gICAgY29uc3Qgb2xHZW9tZXRyeSA9IGV2ZW50LmZlYXR1cmUuZ2V0R2VvbWV0cnkoKTtcbiAgICBvbEdlb21ldHJ5Lm9uKCdjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICB0aGlzLm1vZGlmeSQubmV4dChvbEdlb21ldHJ5KTtcbiAgICB9KTtcbiAgICB0aGlzLmVuZCQubmV4dChvbEdlb21ldHJ5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGEgZmVhdHVyZSBpcyBzZWxlY3RlZCwgdXBkYXRlIHRoZSBzZWxlY3RlZCBmZWF0dXJlIG9ic2VydmFibGVcbiAgICogQHBhcmFtIGV2ZW50IE1vZGlmeSBldmVudCAobW9kaWZ5ZW5kKVxuICAgKi9cbiAgcHJpdmF0ZSBvblNlbGVjdChldmVudDogT2xTZWxlY3RFdmVudCkge1xuICAgIGlmIChldmVudC5zZWxlY3RlZC5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuc2VsZWN0JC5uZXh0KGV2ZW50LnNlbGVjdGVkWzBdKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIGtleSBkb3ducyB1c2VkIGFzIGRyYXdpbmcgaW50ZXJhY3Rpb24gc2hvcmN1dHNcbiAgICovXG4gIHByaXZhdGUgc3Vic2NyaWJlS2V5RG93bigpIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlS2V5RG93bigpO1xuICAgIHRoaXMua2V5RG93biQkID0gZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5ZG93bicpLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIC8vIE9uIEVzY2FwZSBvciAnYycga2V5ZG93bnMsIGFib3J0IHRoZSBjdXJyZW50IGRyYXdpbmdcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgIHRoaXMub2xEcmF3SW50ZXJhY3Rpb24uYWJvcnREcmF3aW5nKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gT24gQmFja3NwYWNlIG9yICd1JyBrZXlkb3ducywgcmVtb3ZlIGxhc3QgdmVydGV4IG9mIGN1cnJlbnQgZHJhd2luZ1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgICAgdGhpcy5vbERyYXdJbnRlcmFjdGlvbi5yZW1vdmVMYXN0UG9pbnQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gT24gRW50ZXIgb3IgJ2YnIGtleWRvd25zLCBmaW5pc2ggY3VycmVudCBkcmF3aW5nXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgIHRoaXMub2xEcmF3SW50ZXJhY3Rpb24uZmluaXNoRHJhd2luZygpO1xuICAgICAgfVxuXG4gICAgICAvLyBPbiBzcGFjZSBiYXIga2V5IGRvd24sIHBhbiB0byB0aGUgY3VycmVudCBtb3VzZSBwb3NpdGlvblxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICAgIHRoaXMub2xNYXAuZ2V0VmlldygpLmFuaW1hdGUoe1xuICAgICAgICAgIGNlbnRlcjogdGhpcy5tb3VzZVBvc2l0aW9uLFxuICAgICAgICAgIGR1cmF0aW9uOiAxMDBcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnN1YnNjcmliZSB0byBrZXkgZG93blxuICAgKi9cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZUtleURvd24oKSB7XG4gICAgaWYgKHRoaXMua2V5RG93biQkKSB7XG4gICAgICB0aGlzLmtleURvd24kJC51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5rZXlEb3duJCQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG4iXX0=
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2dlb21ldHJ5L3NoYXJlZC9jb250cm9scy9kcmF3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sTUFBTSxNQUFNLHFCQUFxQixDQUFDO0FBRXpDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBSTdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxELE9BQU8sRUFBRSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFXeEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQTREdEIsWUFBb0IsT0FBMkI7UUFBM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUEzRC9DOztXQUVHO1FBQ0ksV0FBTSxHQUF3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRW5EOztXQUVHO1FBQ0ksU0FBSSxHQUF3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRWpEOztXQUVHO1FBQ0ksYUFBUSxHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTlDOztXQUVHO1FBQ0ksWUFBTyxHQUF3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXBEOztXQUVHO1FBQ0ksWUFBTyxHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRTdDOztXQUVHO1FBQ0gsY0FBUyxHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQWdDL0QsSUFB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a0JBQWtCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRzS2V5IH0gZnJvbSAnb2wvZXZlbnRzJztcbmltcG9ydCBPbE1hcCBmcm9tICdvbC9NYXAnO1xuaW1wb3J0IE9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCAqIGFzIE9sU3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnlUeXBlIH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeVR5cGUnO1xuaW1wb3J0IE9sVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xuaW1wb3J0IE9sVmVjdG9yTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVmVjdG9yJztcbmltcG9ydCBPbERyYXcgZnJvbSAnb2wvaW50ZXJhY3Rpb24vRHJhdyc7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0IE9sTW9kaWZ5IGZyb20gJ29sL2ludGVyYWN0aW9uL01vZGlmeSc7XG5pbXBvcnQgT2xTZWxlY3QgZnJvbSAnb2wvaW50ZXJhY3Rpb24vU2VsZWN0JztcbmltcG9ydCBCYXNpY0V2ZW50IGZyb20gJ29sL2V2ZW50cy9FdmVudCc7XG5pbXBvcnQgeyBEcmF3RXZlbnQgYXMgT2xEcmF3RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmF3JztcbmltcG9ydCB7IFNlbGVjdEV2ZW50IGFzIE9sU2VsZWN0RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9TZWxlY3QnO1xuaW1wb3J0IHsgdW5CeUtleSB9IGZyb20gJ29sL09ic2VydmFibGUnO1xuaW1wb3J0IHsgZG91YmxlQ2xpY2sgfSBmcm9tICdvbC9ldmVudHMvY29uZGl0aW9uJztcblxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBnZXRNb3VzZVBvc2l0aW9uRnJvbU9sR2VvbWV0cnlFdmVudCB9IGZyb20gJy4uL2dlb21ldHJ5LnV0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBEcmF3Q29udHJvbE9wdGlvbnMge1xuICBnZW9tZXRyeVR5cGU6IHR5cGVvZiBPbEdlb21ldHJ5VHlwZSB8IHN0cmluZztcbiAgZHJhd2luZ0xheWVyU291cmNlPzogT2xWZWN0b3JTb3VyY2U8T2xHZW9tZXRyeT47XG4gIGRyYXdpbmdMYXllcj86IE9sVmVjdG9yTGF5ZXI8T2xWZWN0b3JTb3VyY2U8T2xHZW9tZXRyeT4+O1xuICBkcmF3aW5nTGF5ZXJTdHlsZT86IE9sU3R5bGUuU3R5bGUgfCAoKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiBPbFN0eWxlLlN0eWxlKTtcbiAgaW50ZXJhY3Rpb25TdHlsZT86IE9sU3R5bGUuU3R5bGUgfCAoKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiBPbFN0eWxlLlN0eWxlKTtcbiAgbWF4UG9pbnRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbnRyb2wgdG8gZHJhdyBlbnRpdGllc1xuICovXG5leHBvcnQgY2xhc3MgRHJhd0NvbnRyb2wge1xuICAvKipcbiAgICogRHJhdyBzdGFydCBvYnNlcnZhYmxlXG4gICAqL1xuICBwdWJsaWMgc3RhcnQkOiBTdWJqZWN0PE9sR2VvbWV0cnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvKipcbiAgICogRHJhdyBlbmQgb2JzZXJ2YWJsZVxuICAgKi9cbiAgcHVibGljIGVuZCQ6IFN1YmplY3Q8T2xHZW9tZXRyeT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8qKlxuICAgKiBEcmF3IGNoYW5nZXMgb2JzZXJ2YWJsZSAod2hpbGUgZHJhd2luZylcbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VzJDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvKipcbiAgICogRHJhdyBtb2RpZnkgb2JzZXJ2YWJsZSAobW9kaWZ5IGRyYXduIGZlYXR1cmVzKVxuICAgKi9cbiAgcHVibGljIG1vZGlmeSQ6IFN1YmplY3Q8T2xHZW9tZXRyeT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8qKlxuICAgKiBEcmF3IHNlbGVjdCBvYnNlcnZhYmxlIChtb2RpZnkgZHJhd24gZmVhdHVyZXMpXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0JDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvKipcbiAgICogRnJlZWhhbmQgbW9kZSBvYnNlcnZhYmxlIChkZWZhdWx0cyB0byBmYWxzZSlcbiAgICovXG4gIGZyZWVoYW5kJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHJpdmF0ZSBrZXlEb3duJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIG9sR2VvbWV0cnlUeXBlOiB0eXBlb2YgT2xHZW9tZXRyeVR5cGUgfCB1bmRlZmluZWQgfCBzdHJpbmc7XG4gIHByaXZhdGUgb2xNYXA6IE9sTWFwO1xuICBwcml2YXRlIG9sRHJhd2luZ0xheWVyOiBPbFZlY3RvckxheWVyPE9sVmVjdG9yU291cmNlPE9sR2VvbWV0cnk+PjtcbiAgcHJpdmF0ZSBvbERyYXdJbnRlcmFjdGlvbjogT2xEcmF3O1xuICBwcml2YXRlIG9sU2VsZWN0SW50ZXJhY3Rpb246IE9sU2VsZWN0O1xuICBwcml2YXRlIG9sTW9kaWZ5SW50ZXJhY3Rpb246IE9sTW9kaWZ5O1xuICBwcml2YXRlIG9uRHJhd1N0YXJ0S2V5OiBFdmVudHNLZXk7XG4gIHByaXZhdGUgb25EcmF3RW5kS2V5OiBFdmVudHNLZXk7XG4gIHByaXZhdGUgb25EcmF3S2V5OiBFdmVudHNLZXk7XG5cbiAgcHJpdmF0ZSBtb3VzZVBvc2l0aW9uOiBbbnVtYmVyLCBudW1iZXJdO1xuXG4gIC8qKlxuICAgKiBXaGV0ZXIgdGhlIGNvbnRyb2wgaXMgYWN0aXZlXG4gICAqL1xuICBnZXQgYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9sTWFwICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogT0wgb3ZlcmxheSBzb3VyY2VcbiAgICogQGludGVybmFsXG4gICAqL1xuICBnZXQgb2xEcmF3aW5nTGF5ZXJTb3VyY2UoKTogT2xWZWN0b3JTb3VyY2U8T2xHZW9tZXRyeT4ge1xuICAgIHJldHVybiB0aGlzLm9sRHJhd2luZ0xheWVyLmdldFNvdXJjZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvcHRpb25zOiBEcmF3Q29udHJvbE9wdGlvbnMpIHtcbiAgICB0aGlzLm9sRHJhd2luZ0xheWVyID0gb3B0aW9ucy5kcmF3aW5nTGF5ZXIgPyBvcHRpb25zLmRyYXdpbmdMYXllciA6IHRoaXMuY3JlYXRlT2xJbm5lck92ZXJsYXlMYXllcigpO1xuICAgIHRoaXMub2xHZW9tZXRyeVR5cGUgPSB0aGlzLm9wdGlvbnMuZ2VvbWV0cnlUeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBvciByZW1vdmUgdGhpcyBjb250cm9sIHRvL2Zyb20gYSBtYXAuXG4gICAqIEBwYXJhbSBtYXAgT0wgTWFwXG4gICAqL1xuICBzZXRPbE1hcChvbE1hcDogT2xNYXAgfCB1bmRlZmluZWQsIGFjdGl2YXRlTW9kaWZ5QW5kU2VsZWN0PzogYm9vbGVhbikge1xuICAgIGlmICghb2xNYXApIHtcbiAgICAgIHRoaXMuY2xlYXJPbElubmVyT3ZlcmxheVNvdXJjZSgpO1xuICAgICAgdGhpcy5yZW1vdmVPbElubmVyT3ZlcmxheUxheWVyKCk7XG4gICAgICB0aGlzLnJlbW92ZU9sSW50ZXJhY3Rpb25zKCk7XG4gICAgICB0aGlzLm9sTWFwID0gb2xNYXA7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vbE1hcCA9IG9sTWFwO1xuICAgIHRoaXMuYWRkT2xJbm5lck92ZXJsYXlMYXllcigpO1xuICAgIHRoaXMuYWRkT2xJbnRlcmFjdGlvbnMoYWN0aXZhdGVNb2RpZnlBbmRTZWxlY3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZHJhd2luZyBsYXllciBzb3VyY2VcbiAgICovXG4gIGdldFNvdXJjZSgpOiBPbFZlY3RvclNvdXJjZTxPbEdlb21ldHJ5PiB7XG4gICAgcmV0dXJuIHRoaXMub2xEcmF3aW5nTGF5ZXJTb3VyY2U7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjdXJyZW50IGdlb21ldHJ5IHR5cGVcbiAgICogQHBhcmFtIGdlb21ldHJ5VHlwZSB0aGUgZ2VvbWV0cnkgdHlwZVxuICAgKi9cbiAgc2V0R2VvbWV0cnlUeXBlKGdlb21ldHJ5VHlwZTogdHlwZW9mIE9sR2VvbWV0cnlUeXBlKSB7XG4gICAgdGhpcy5vbEdlb21ldHJ5VHlwZSA9IGdlb21ldHJ5VHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBkcmF3aW5nIHNvdXJjZSBpZiBub25lIGlzIGRlZmluZWQgaW4gdGhlIG9wdGlvbnNcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlT2xJbm5lck92ZXJsYXlMYXllcigpOiBPbFZlY3RvckxheWVyPE9sVmVjdG9yU291cmNlPE9sR2VvbWV0cnk+PiB7XG4gICAgcmV0dXJuIG5ldyBPbFZlY3RvckxheWVyKHtcbiAgICAgIHNvdXJjZTogdGhpcy5vcHRpb25zLmRyYXdpbmdMYXllclNvdXJjZSA/IHRoaXMub3B0aW9ucy5kcmF3aW5nTGF5ZXJTb3VyY2UgOiBuZXcgT2xWZWN0b3JTb3VyY2UoKSxcbiAgICAgIHN0eWxlOiB0aGlzLm9wdGlvbnMuZHJhd2luZ0xheWVyU3R5bGUsXG4gICAgICB6SW5kZXg6IDUwMFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIHRoZSBkcmF3aW5nIGxheWVyIGlmIGl0IHdhc24ndCBkZWZpbmVkIGluIHRoZSBvcHRpb25zXG4gICAqL1xuICBwcml2YXRlIHJlbW92ZU9sSW5uZXJPdmVybGF5TGF5ZXIoKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuZHJhd2luZ0xheWVyICYmIHRoaXMub2xNYXApIHtcbiAgICAgIHRoaXMub2xNYXAucmVtb3ZlTGF5ZXIodGhpcy5vbERyYXdpbmdMYXllcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgZHJhd2luZyBsYXllciBpZiBpdCB3YXNuJ3QgZGVmaW5lZCBpbiB0aGUgb3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBhZGRPbElubmVyT3ZlcmxheUxheWVyKCkge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmRyYXdpbmdMYXllcikge1xuICAgICAgdGhpcy5vbE1hcC5hZGRMYXllcih0aGlzLm9sRHJhd2luZ0xheWVyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIGRyYXdpbmcgbGF5ZXIgc291cmNlIGlmIGl0IHdhc24ndCBkZWZpbmVkIGluIHRoZSBvcHRpb25zXG4gICAqL1xuICBwcml2YXRlIGNsZWFyT2xJbm5lck92ZXJsYXlTb3VyY2UoKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuZHJhd2luZ0xheWVyICYmICF0aGlzLm9wdGlvbnMuZHJhd2luZ0xheWVyU291cmNlKSB7XG4gICAgICB0aGlzLm9sRHJhd2luZ0xheWVyU291cmNlLmNsZWFyKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgaW50ZXJhY3Rpb25zIHRvIHRoZSBtYXAgYW4gc2V0IHVwIHNvbWUgbGlzdGVuZXJzXG4gICAqL1xuICBhZGRPbEludGVyYWN0aW9ucyhhY3RpdmF0ZU1vZGlmeUFuZFNlbGVjdD86IGJvb2xlYW4pIHtcbiAgICAvLyBDcmVhdGUgRHJhdyBpbnRlcmFjdGlvblxuICAgIGxldCBvbERyYXdJbnRlcmFjdGlvbjtcbiAgICBpZiAoIXRoaXMuZnJlZWhhbmQkLmdldFZhbHVlKCkpIHtcbiAgICAgIG9sRHJhd0ludGVyYWN0aW9uID0gbmV3IE9sRHJhdyh7XG4gICAgICAgIHR5cGU6IHRoaXMub2xHZW9tZXRyeVR5cGUsXG4gICAgICAgIHNvdXJjZTogdGhpcy5nZXRTb3VyY2UoKSxcbiAgICAgICAgc3RvcENsaWNrOiB0cnVlLFxuICAgICAgICBzdHlsZTogdGhpcy5vcHRpb25zLmludGVyYWN0aW9uU3R5bGUsXG4gICAgICAgIG1heFBvaW50czogdGhpcy5vcHRpb25zLm1heFBvaW50cyxcbiAgICAgICAgZnJlZWhhbmQ6IGZhbHNlLFxuICAgICAgICBmcmVlaGFuZENvbmRpdGlvbjogKCkgPT4gZmFsc2VcbiAgICAgIH0pO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm9sR2VvbWV0cnlUeXBlID09PSAnUG9pbnQnKSB7XG4gICAgICAgIG9sRHJhd0ludGVyYWN0aW9uID0gbmV3IE9sRHJhdyh7XG4gICAgICAgICAgdHlwZTogJ0NpcmNsZScsXG4gICAgICAgICAgc291cmNlOiB0aGlzLmdldFNvdXJjZSgpLFxuICAgICAgICAgIG1heFBvaW50czogdGhpcy5vcHRpb25zLm1heFBvaW50cyxcbiAgICAgICAgICBmcmVlaGFuZDogdHJ1ZVxuICAgICAgICB9KTtcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2xEcmF3SW50ZXJhY3Rpb24gPSBuZXcgT2xEcmF3KHtcbiAgICAgICAgICB0eXBlOiB0aGlzLm9sR2VvbWV0cnlUeXBlLFxuICAgICAgICAgIHNvdXJjZTogdGhpcy5nZXRTb3VyY2UoKSxcbiAgICAgICAgICBtYXhQb2ludHM6IHRoaXMub3B0aW9ucy5tYXhQb2ludHMsXG4gICAgICAgICAgZnJlZWhhbmQ6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRkIERyYXcgaW50ZXJhY3Rpb24gdG8gbWFwIGFuZCBjcmVhdGUgbGlzdGVuZXJzXG4gICAgdGhpcy5vbE1hcC5hZGRJbnRlcmFjdGlvbihvbERyYXdJbnRlcmFjdGlvbik7XG4gICAgdGhpcy5vbERyYXdJbnRlcmFjdGlvbiA9IG9sRHJhd0ludGVyYWN0aW9uO1xuXG4gICAgdGhpcy5vbkRyYXdTdGFydEtleSA9IG9sRHJhd0ludGVyYWN0aW9uLm9uKCdkcmF3c3RhcnQnLCAoZXZlbnQ6IE9sRHJhd0V2ZW50KSA9PiB0aGlzLm9uRHJhd1N0YXJ0KGV2ZW50KSk7XG4gICAgdGhpcy5vbkRyYXdFbmRLZXkgPSBvbERyYXdJbnRlcmFjdGlvbi5vbignZHJhd2VuZCcsIChldmVudDogT2xEcmF3RXZlbnQpID0+IHRoaXMub25EcmF3RW5kKGV2ZW50KSk7XG5cbiAgICBpZiAoYWN0aXZhdGVNb2RpZnlBbmRTZWxlY3QpIHtcbiAgICAgIC8vIENyZWF0ZSBhIE1vZGlmeSBpbnRlcmFjdGlvbiwgYWRkIGl0IHRvIG1hcCBhbmQgY3JlYXRlIGEgbGlzdGVuZXJcbiAgICAgIGNvbnN0IG9sTW9kaWZ5SW50ZXJhY3Rpb24gPSBuZXcgT2xNb2RpZnkoe1xuICAgICAgICBzb3VyY2U6IHRoaXMuZ2V0U291cmNlKClcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLm9sTWFwLmFkZEludGVyYWN0aW9uKG9sTW9kaWZ5SW50ZXJhY3Rpb24pO1xuICAgICAgdGhpcy5vbE1vZGlmeUludGVyYWN0aW9uID0gb2xNb2RpZnlJbnRlcmFjdGlvbjtcblxuICAgICAgLy8gQ3JlYXRlIGEgc2VsZWN0IGludGVyYWN0aW9uIGFuZCBhZGQgaXQgdG8gbWFwXG4gICAgICBpZiAoIXRoaXMub2xTZWxlY3RJbnRlcmFjdGlvbikge1xuICAgICAgICBjb25zdCBvbFNlbGVjdEludGVyYWN0aW9uID0gbmV3IE9sU2VsZWN0KHtcbiAgICAgICAgICBjb25kaXRpb246IGRvdWJsZUNsaWNrLFxuICAgICAgICAgIHN0eWxlOiB1bmRlZmluZWRcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub2xNYXAuYWRkSW50ZXJhY3Rpb24ob2xTZWxlY3RJbnRlcmFjdGlvbik7XG4gICAgICAgIHRoaXMub2xTZWxlY3RJbnRlcmFjdGlvbiA9IG9sU2VsZWN0SW50ZXJhY3Rpb247XG5cbiAgICAgICAgdGhpcy5vbFNlbGVjdEludGVyYWN0aW9uLm9uKCdzZWxlY3QnLCAoZXZlbnQ6IE9sU2VsZWN0RXZlbnQpID0+IHRoaXMub25TZWxlY3QoZXZlbnQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGludGVyYWN0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVPbEludGVyYWN0aW9ucygpIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlS2V5RG93bigpO1xuICAgIHVuQnlLZXkoW3RoaXMub25EcmF3U3RhcnRLZXksIHRoaXMub25EcmF3RW5kS2V5LCB0aGlzLm9uRHJhd0tleV0pO1xuXG4gICAgaWYgKHRoaXMub2xNYXApIHtcbiAgICAgIHRoaXMub2xNYXAucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5vbERyYXdJbnRlcmFjdGlvbik7XG4gICAgICB0aGlzLm9sTWFwLnJlbW92ZUludGVyYWN0aW9uKHRoaXMub2xNb2RpZnlJbnRlcmFjdGlvbik7XG4gICAgfVxuXG4gICAgdGhpcy5vbERyYXdJbnRlcmFjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLm9sTW9kaWZ5SW50ZXJhY3Rpb24gPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBkcmF3aW5nIHN0YXJ0cywgY2xlYXIgdGhlIG92ZXJsYXkgYW5kIHN0YXJ0IHdhdGNoaW5nIGZvciBjaGFuZ2VzXG4gICAqIEBwYXJhbSBldmVudCBEcmF3IHN0YXJ0IGV2ZW50XG4gICAqL1xuICBwcml2YXRlIG9uRHJhd1N0YXJ0KGV2ZW50OiBPbERyYXdFdmVudCkge1xuICAgIGNvbnN0IG9sR2VvbWV0cnkgPSBldmVudC5mZWF0dXJlLmdldEdlb21ldHJ5KCk7XG4gICAgdGhpcy5zdGFydCQubmV4dChvbEdlb21ldHJ5KTtcbiAgICB0aGlzLmNsZWFyT2xJbm5lck92ZXJsYXlTb3VyY2UoKTtcbiAgICB0aGlzLm9uRHJhd0tleSA9IG9sR2VvbWV0cnkub24oJ2NoYW5nZScsIChvbEdlb21ldHJ5RXZlbnQ6IEJhc2ljRXZlbnQpID0+IHtcbiAgICAgIHRoaXMubW91c2VQb3NpdGlvbiA9IGdldE1vdXNlUG9zaXRpb25Gcm9tT2xHZW9tZXRyeUV2ZW50KG9sR2VvbWV0cnlFdmVudCk7XG4gICAgICB0aGlzLmNoYW5nZXMkLm5leHQob2xHZW9tZXRyeUV2ZW50LnRhcmdldCk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpYmVLZXlEb3duKCk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBkcmF3aW5nIGVuZHMsIHVwZGF0ZSB0aGUgZHJhd2luZyAoZmVhdHVyZSkgZ2VvbWV0cnkgb2JzZXJ2YWJsZSBhbmQgYWRkXG4gICAqIEBwYXJhbSBldmVudCBEcmF3IGV2ZW50IChkcmF3ZW5kKVxuICAgKi9cbiAgcHJpdmF0ZSBvbkRyYXdFbmQoZXZlbnQ6IE9sRHJhd0V2ZW50KSB7XG4gICAgdGhpcy51bnN1YnNjcmliZUtleURvd24oKTtcbiAgICB1bkJ5S2V5KHRoaXMub25EcmF3S2V5KTtcbiAgICBjb25zdCBvbEdlb21ldHJ5ID0gZXZlbnQuZmVhdHVyZS5nZXRHZW9tZXRyeSgpO1xuICAgIG9sR2VvbWV0cnkub24oJ2NoYW5nZScsICgpID0+IHtcbiAgICAgIHRoaXMubW9kaWZ5JC5uZXh0KG9sR2VvbWV0cnkpO1xuICAgIH0pO1xuICAgIHRoaXMuZW5kJC5uZXh0KG9sR2VvbWV0cnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gYSBmZWF0dXJlIGlzIHNlbGVjdGVkLCB1cGRhdGUgdGhlIHNlbGVjdGVkIGZlYXR1cmUgb2JzZXJ2YWJsZVxuICAgKiBAcGFyYW0gZXZlbnQgTW9kaWZ5IGV2ZW50IChtb2RpZnllbmQpXG4gICAqL1xuICBwcml2YXRlIG9uU2VsZWN0KGV2ZW50OiBPbFNlbGVjdEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LnNlbGVjdGVkLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5zZWxlY3QkLm5leHQoZXZlbnQuc2VsZWN0ZWRbMF0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8ga2V5IGRvd25zIHVzZWQgYXMgZHJhd2luZyBpbnRlcmFjdGlvbiBzaG9yY3V0c1xuICAgKi9cbiAgcHJpdmF0ZSBzdWJzY3JpYmVLZXlEb3duKCkge1xuICAgIHRoaXMudW5zdWJzY3JpYmVLZXlEb3duKCk7XG4gICAgdGhpcy5rZXlEb3duJCQgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJykuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgLy8gT24gRXNjYXBlIG9yICdjJyBrZXlkb3ducywgYWJvcnQgdGhlIGN1cnJlbnQgZHJhd2luZ1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgdGhpcy5vbERyYXdJbnRlcmFjdGlvbi5hYm9ydERyYXdpbmcoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBPbiBCYWNrc3BhY2Ugb3IgJ3UnIGtleWRvd25zLCByZW1vdmUgbGFzdCB2ZXJ0ZXggb2YgY3VycmVudCBkcmF3aW5nXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICB0aGlzLm9sRHJhd0ludGVyYWN0aW9uLnJlbW92ZUxhc3RQb2ludCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBPbiBFbnRlciBvciAnZicga2V5ZG93bnMsIGZpbmlzaCBjdXJyZW50IGRyYXdpbmdcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgdGhpcy5vbERyYXdJbnRlcmFjdGlvbi5maW5pc2hEcmF3aW5nKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9uIHNwYWNlIGJhciBrZXkgZG93biwgcGFuIHRvIHRoZSBjdXJyZW50IG1vdXNlIHBvc2l0aW9uXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgICAgdGhpcy5vbE1hcC5nZXRWaWV3KCkuYW5pbWF0ZSh7XG4gICAgICAgICAgY2VudGVyOiB0aGlzLm1vdXNlUG9zaXRpb24sXG4gICAgICAgICAgZHVyYXRpb246IDEwMFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuc3Vic2NyaWJlIHRvIGtleSBkb3duXG4gICAqL1xuICBwcml2YXRlIHVuc3Vic2NyaWJlS2V5RG93bigpIHtcbiAgICBpZiAodGhpcy5rZXlEb3duJCQpIHtcbiAgICAgIHRoaXMua2V5RG93biQkLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLmtleURvd24kJCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
1
  export * from './draw';
2
2
  export * from './modify';
3
3
  export * from './slice';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9nZW9tZXRyeS9zaGFyZWQvY29udHJvbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RyYXcnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGlmeSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2xpY2UnO1xyXG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9nZW9tZXRyeS9zaGFyZWQvY29udHJvbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RyYXcnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RpZnknO1xuZXhwb3J0ICogZnJvbSAnLi9zbGljZSc7XG4iXX0=
@@ -1,8 +1,8 @@
1
- /* tslint:disable */
1
+ /* eslint-disable */
2
2
  // See this issue: https://github.com/Microsoft/TypeScript/issues/13965
3
3
  // And the solution: https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work
4
4
  // for an explanation as to why the prototype is set manually
5
- /* tslint:enable */
5
+ /* eslint-enable */
6
6
  export class GeometrySliceError extends Error {
7
7
  }
8
8
  export class GeometrySliceMultiPolygonError extends GeometrySliceError {
@@ -23,4 +23,4 @@ export class GeometrySliceTooManyIntersectionError extends GeometrySliceError {
23
23
  Object.setPrototypeOf(this, GeometrySliceTooManyIntersectionError.prototype);
24
24
  }
25
25
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZ2VvbWV0cnkvc2hhcmVkL2dlb21ldHJ5LmVycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsdUVBQXVFO0FBQ3ZFLGtKQUFrSjtBQUNsSiw2REFBNkQ7QUFDN0QsbUJBQW1CO0FBRW5CLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxLQUFLO0NBQUc7QUFFaEQsTUFBTSxPQUFPLDhCQUErQixTQUFRLGtCQUFrQjtJQUNwRTtRQUNFLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDhCQUE4QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxrQkFBa0I7SUFDbEU7UUFDRSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztRQUMvRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8scUNBQXNDLFNBQVEsa0JBQWtCO0lBQzNFO1FBQ0UsS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7UUFDMUYsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUscUNBQXFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0UsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cclxuLy8gU2VlIHRoaXMgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMTM5NjVcclxuLy8gQW5kIHRoZSBzb2x1dGlvbjogaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L3dpa2kvQnJlYWtpbmctQ2hhbmdlcyNleHRlbmRpbmctYnVpbHQtaW5zLWxpa2UtZXJyb3ItYXJyYXktYW5kLW1hcC1tYXktbm8tbG9uZ2VyLXdvcmtcclxuLy8gZm9yIGFuIGV4cGxhbmF0aW9uIGFzIHRvIHdoeSB0aGUgcHJvdG90eXBlIGlzIHNldCBtYW51YWxseVxyXG4vKiB0c2xpbnQ6ZW5hYmxlICovXHJcblxyXG5leHBvcnQgY2xhc3MgR2VvbWV0cnlTbGljZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cclxuXHJcbmV4cG9ydCBjbGFzcyBHZW9tZXRyeVNsaWNlTXVsdGlQb2x5Z29uRXJyb3IgZXh0ZW5kcyBHZW9tZXRyeVNsaWNlRXJyb3Ige1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoJ0NhblxcJ3Qgc2xpY2UgYSBNdWx0aVBvbHlnb24uJyk7XHJcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgR2VvbWV0cnlTbGljZU11bHRpUG9seWdvbkVycm9yLnByb3RvdHlwZSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR2VvbWV0cnlTbGljZUxpbmVTdHJpbmdFcnJvciBleHRlbmRzIEdlb21ldHJ5U2xpY2VFcnJvciB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcignQ2FuXFwndCBzbGljZSB3aXRoIGEgbGluZSB0aGF0IGhhcyBtb3JlIHRoYW4gMiBwb2ludHMuJyk7XHJcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgR2VvbWV0cnlTbGljZUxpbmVTdHJpbmdFcnJvci5wcm90b3R5cGUpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEdlb21ldHJ5U2xpY2VUb29NYW55SW50ZXJzZWN0aW9uRXJyb3IgZXh0ZW5kcyBHZW9tZXRyeVNsaWNlRXJyb3Ige1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoJ01vcmUgdGhhbiAyIGludGVyc2VjdGlvbnMgZm91bmQgYmV0d2VlbiB0aGUgdGFyZ2V0IHBvbHlnb24gYW5kIHRoZSBzbGljaW5nIGxpbmUuJyk7XHJcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgR2VvbWV0cnlTbGljZVRvb01hbnlJbnRlcnNlY3Rpb25FcnJvci5wcm90b3R5cGUpO1xyXG4gIH1cclxufVxyXG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZ2VvbWV0cnkvc2hhcmVkL2dlb21ldHJ5LmVycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsdUVBQXVFO0FBQ3ZFLGtKQUFrSjtBQUNsSiw2REFBNkQ7QUFDN0QsbUJBQW1CO0FBRW5CLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxLQUFLO0NBQUc7QUFFaEQsTUFBTSxPQUFPLDhCQUErQixTQUFRLGtCQUFrQjtJQUNwRTtRQUNFLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDhCQUE4QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxrQkFBa0I7SUFDbEU7UUFDRSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztRQUMvRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8scUNBQXNDLFNBQVEsa0JBQWtCO0lBQzNFO1FBQ0UsS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7UUFDMUYsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUscUNBQXFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0UsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbi8vIFNlZSB0aGlzIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzEzOTY1XG4vLyBBbmQgdGhlIHNvbHV0aW9uOiBodHRwczovL2dpdGh1Yi5jb20vTWljcm9zb2Z0L1R5cGVTY3JpcHQvd2lraS9CcmVha2luZy1DaGFuZ2VzI2V4dGVuZGluZy1idWlsdC1pbnMtbGlrZS1lcnJvci1hcnJheS1hbmQtbWFwLW1heS1uby1sb25nZXItd29ya1xuLy8gZm9yIGFuIGV4cGxhbmF0aW9uIGFzIHRvIHdoeSB0aGUgcHJvdG90eXBlIGlzIHNldCBtYW51YWxseVxuLyogZXNsaW50LWVuYWJsZSAqL1xuXG5leHBvcnQgY2xhc3MgR2VvbWV0cnlTbGljZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cblxuZXhwb3J0IGNsYXNzIEdlb21ldHJ5U2xpY2VNdWx0aVBvbHlnb25FcnJvciBleHRlbmRzIEdlb21ldHJ5U2xpY2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdDYW5cXCd0IHNsaWNlIGEgTXVsdGlQb2x5Z29uLicpO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBHZW9tZXRyeVNsaWNlTXVsdGlQb2x5Z29uRXJyb3IucHJvdG90eXBlKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2VvbWV0cnlTbGljZUxpbmVTdHJpbmdFcnJvciBleHRlbmRzIEdlb21ldHJ5U2xpY2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdDYW5cXCd0IHNsaWNlIHdpdGggYSBsaW5lIHRoYXQgaGFzIG1vcmUgdGhhbiAyIHBvaW50cy4nKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgR2VvbWV0cnlTbGljZUxpbmVTdHJpbmdFcnJvci5wcm90b3R5cGUpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZW9tZXRyeVNsaWNlVG9vTWFueUludGVyc2VjdGlvbkVycm9yIGV4dGVuZHMgR2VvbWV0cnlTbGljZUVycm9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ01vcmUgdGhhbiAyIGludGVyc2VjdGlvbnMgZm91bmQgYmV0d2VlbiB0aGUgdGFyZ2V0IHBvbHlnb24gYW5kIHRoZSBzbGljaW5nIGxpbmUuJyk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEdlb21ldHJ5U2xpY2VUb29NYW55SW50ZXJzZWN0aW9uRXJyb3IucHJvdG90eXBlKTtcbiAgfVxufVxuIl19
@@ -2,4 +2,4 @@ export * from './geometry.interfaces';
2
2
  export * from './geometry.errors';
3
3
  export * from './geometry.utils';
4
4
  export * from './controls';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9nZW9tZXRyeS9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dlb21ldHJ5LmludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2dlb21ldHJ5LmVycm9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ2VvbWV0cnkudXRpbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzJztcclxuIl19
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9nZW9tZXRyeS9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dlb21ldHJ5LmludGVyZmFjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW9tZXRyeS5lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW9tZXRyeS51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzJztcbiJdfQ==
@@ -67,4 +67,4 @@ ExportButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Expor
67
67
  }], color: [{
68
68
  type: Input
69
69
  }] }); })();
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L2V4cG9ydC1idXR0b24vZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L2V4cG9ydC1idXR0b24vZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkxRSxPQUFPLEVBQWdCLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7SUNKeEQsaUNBTWtCOztJQUVoQiw4QkFBMkM7SUFDN0MsaUJBQVM7OztJQUpQLDRFQUFvRCx1QkFBQTs7QURRdEQsTUFBTSxPQUFPLHFCQUFxQjtJQW1CaEM7UUFGUSxXQUFNLEdBQUcsU0FBUyxDQUFDO0lBRVosQ0FBQztJQWxCaEIsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFZO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFHRCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUtELElBQUksT0FBTztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsT0FBTztTQUNSO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7SUFDdkMsQ0FBQztJQUVELGlCQUFpQjs7UUFDZixJQUNFLENBQUMsSUFBSSxDQUFDLEtBQUssWUFBWSxXQUFXLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDO1lBQ3JFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUN0RixDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLDBDQUFFLE9BQU87Z0JBQ3BDLENBQUEsTUFBQSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLDBDQUFFLFdBQVcsTUFBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUM5RDtZQUNBLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OzBGQXRDVSxxQkFBcUI7d0VBQXJCLHFCQUFxQjtRQ2JsQyw0RUFTUzs7UUFSTiw4Q0FBeUI7O3VGRFlmLHFCQUFxQjtjQU5qQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsV0FBVyxFQUFFLGdDQUFnQztnQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7Z0JBQzdDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO3NDQUdLLEtBQUs7a0JBRFIsS0FBSztZQVVGLEtBQUs7a0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllcic7XG5cbmltcG9ydCB7IExheWVyT3B0aW9ucywgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllcic7XG5pbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tZXhwb3J0LWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9leHBvcnQtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBFeHBvcnRCdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBnZXQgbGF5ZXIoKTogTGF5ZXIge1xuICAgIHJldHVybiB0aGlzLl9sYXllcjtcbiAgfVxuICBzZXQgbGF5ZXIodmFsdWU6IExheWVyKSB7XG4gICAgdGhpcy5fbGF5ZXIgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9sYXllcjogTGF5ZXI7XG5cbiAgQElucHV0KClcbiAgZ2V0IGNvbG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2xvcjtcbiAgfVxuICBzZXQgY29sb3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2NvbG9yID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfY29sb3IgPSAncHJpbWFyeSc7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGdldCBvcHRpb25zKCk6IERhdGFTb3VyY2VPcHRpb25zIHtcbiAgICBpZiAoIXRoaXMubGF5ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zO1xuICB9XG5cbiAgbGF5ZXJJc0V4cG9ydGFibGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgKHRoaXMubGF5ZXIgaW5zdGFuY2VvZiBWZWN0b3JMYXllciAmJiB0aGlzLmxheWVyLmV4cG9ydGFibGUgPT09IHRydWUpIHx8XG4gICAgICAodGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZG93bmxvYWQgJiYgdGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZG93bmxvYWQudXJsKSB8fFxuICAgICAgKHRoaXMubGF5ZXIub3B0aW9ucy53b3Jrc3BhY2U/LmVuYWJsZWQgJiZcbiAgICAgICAgdGhpcy5sYXllci5vcHRpb25zLndvcmtzcGFjZT8ud29ya3NwYWNlSWQgIT09IHRoaXMubGF5ZXIuaWQpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8YnV0dG9uXHJcbiAgKm5nSWY9XCJsYXllcklzRXhwb3J0YWJsZSgpXCJcclxuICBtYXQtaWNvbi1idXR0b25cclxuICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRvd25sb2FkLmFjdGlvbicgfCB0cmFuc2xhdGVcIlxyXG4gIFtjb2xvcl09XCJjb2xvclwiPlxyXG4gIDwhLS0gKGNsaWNrKT1cIm9wZW5Eb3dubG9hZChsYXllcilcIj4gLS0+XHJcbiAgPG1hdC1pY29uIHN2Z0ljb249XCJmaWxlLWV4cG9ydFwiPjwvbWF0LWljb24+XHJcbjwvYnV0dG9uPlxyXG5cclxuIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L2V4cG9ydC1idXR0b24vZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L2V4cG9ydC1idXR0b24vZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7OztJQ0oxQyxpQ0FNa0I7O0lBRWhCLDhCQUEyQztJQUM3QyxpQkFBUzs7O0lBSlAsNEVBQW9ELHVCQUFBOztBRFF0RCxNQUFNLE9BQU8scUJBQXFCO0lBbUJoQztRQUZRLFdBQU0sR0FBRyxTQUFTLENBQUM7SUFFWixDQUFDO0lBbEJoQixJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQVk7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUdELElBQ0ksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBS0QsSUFBSSxPQUFPO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixPQUFPO1NBQ1I7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztJQUN2QyxDQUFDO0lBRUQsaUJBQWlCOztRQUNmLElBQ0UsQ0FBQyxJQUFJLENBQUMsS0FBSyxZQUFZLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUM7WUFDckUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQ3RGLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsMENBQUUsT0FBTztnQkFDcEMsQ0FBQSxNQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsMENBQUUsV0FBVyxNQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQzlEO1lBQ0EsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7MEZBdENVLHFCQUFxQjt3RUFBckIscUJBQXFCO1FDYmxDLDRFQVNTOztRQVJOLDhDQUF5Qjs7dUZEWWYscUJBQXFCO2NBTmpDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixXQUFXLEVBQUUsZ0NBQWdDO2dCQUM3QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztnQkFDN0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7c0NBR0ssS0FBSztrQkFEUixLQUFLO1lBVUYsS0FBSztrQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcblxuaW1wb3J0IHsgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllcic7XG5pbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tZXhwb3J0LWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9leHBvcnQtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBFeHBvcnRCdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBnZXQgbGF5ZXIoKTogTGF5ZXIge1xuICAgIHJldHVybiB0aGlzLl9sYXllcjtcbiAgfVxuICBzZXQgbGF5ZXIodmFsdWU6IExheWVyKSB7XG4gICAgdGhpcy5fbGF5ZXIgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9sYXllcjogTGF5ZXI7XG5cbiAgQElucHV0KClcbiAgZ2V0IGNvbG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2xvcjtcbiAgfVxuICBzZXQgY29sb3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2NvbG9yID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfY29sb3IgPSAncHJpbWFyeSc7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGdldCBvcHRpb25zKCk6IERhdGFTb3VyY2VPcHRpb25zIHtcbiAgICBpZiAoIXRoaXMubGF5ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zO1xuICB9XG5cbiAgbGF5ZXJJc0V4cG9ydGFibGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgKHRoaXMubGF5ZXIgaW5zdGFuY2VvZiBWZWN0b3JMYXllciAmJiB0aGlzLmxheWVyLmV4cG9ydGFibGUgPT09IHRydWUpIHx8XG4gICAgICAodGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZG93bmxvYWQgJiYgdGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZG93bmxvYWQudXJsKSB8fFxuICAgICAgKHRoaXMubGF5ZXIub3B0aW9ucy53b3Jrc3BhY2U/LmVuYWJsZWQgJiZcbiAgICAgICAgdGhpcy5sYXllci5vcHRpb25zLndvcmtzcGFjZT8ud29ya3NwYWNlSWQgIT09IHRoaXMubGF5ZXIuaWQpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gICpuZ0lmPVwibGF5ZXJJc0V4cG9ydGFibGUoKVwiXG4gIG1hdC1pY29uLWJ1dHRvblxuICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZG93bmxvYWQuYWN0aW9uJyB8IHRyYW5zbGF0ZVwiXG4gIFtjb2xvcl09XCJjb2xvclwiPlxuICA8IS0tIChjbGljayk9XCJvcGVuRG93bmxvYWQobGF5ZXIpXCI+IC0tPlxuICA8bWF0LWljb24gc3ZnSWNvbj1cImZpbGUtZXhwb3J0XCI+PC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export * from './export-button.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L2V4cG9ydC1idXR0b24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQnO1xyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L2V4cG9ydC1idXR0b24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQnO1xuIl19