@carto/kepler.gl 0.0.85 → 0.0.86-alpha.deck9.1

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 (430) hide show
  1. package/dist/actions/action-wrapper.js +36 -41
  2. package/dist/actions/actions.js +15 -21
  3. package/dist/actions/identity-actions.js +14 -20
  4. package/dist/actions/index.js +16 -16
  5. package/dist/actions/map-state-actions.js +12 -18
  6. package/dist/actions/map-style-actions.js +30 -46
  7. package/dist/actions/provider-actions.js +49 -73
  8. package/dist/actions/ui-state-actions.js +73 -113
  9. package/dist/actions/vis-state-actions.js +152 -148
  10. package/dist/cloud-providers/index.js +6 -7
  11. package/dist/cloud-providers/provider.js +189 -279
  12. package/dist/components/bottom-widget.js +105 -117
  13. package/dist/components/common/action-panel.js +122 -74
  14. package/dist/components/common/animation-control/animation-control.js +69 -54
  15. package/dist/components/common/animation-control/animation-controller.js +134 -160
  16. package/dist/components/common/animation-control/animation-speed-slider.js +47 -54
  17. package/dist/components/common/animation-control/floating-time-display.js +120 -100
  18. package/dist/components/common/animation-control/playback-controls.js +147 -144
  19. package/dist/components/common/animation-control/speed-control.js +31 -23
  20. package/dist/components/common/checkbox.js +56 -70
  21. package/dist/components/common/color-legend.js +83 -110
  22. package/dist/components/common/data-table/button.js +31 -23
  23. package/dist/components/common/data-table/canvas.js +11 -5
  24. package/dist/components/common/data-table/cell-size.js +51 -61
  25. package/dist/components/common/data-table/grid.js +40 -59
  26. package/dist/components/common/data-table/index.js +464 -348
  27. package/dist/components/common/data-table/option-dropdown.js +50 -33
  28. package/dist/components/common/dataset-label.js +17 -13
  29. package/dist/components/common/error-boundary.js +27 -45
  30. package/dist/components/common/field-selector.js +99 -139
  31. package/dist/components/common/field-token.js +24 -9
  32. package/dist/components/common/file-uploader/file-drop.js +96 -115
  33. package/dist/components/common/file-uploader/file-upload-progress.js +68 -45
  34. package/dist/components/common/file-uploader/file-upload.js +215 -187
  35. package/dist/components/common/file-uploader/upload-button.js +35 -22
  36. package/dist/components/common/histogram-plot.js +47 -58
  37. package/dist/components/common/icons/add.js +14 -27
  38. package/dist/components/common/icons/anchor_window.js +16 -18
  39. package/dist/components/common/icons/arrow-down-alt.js +14 -27
  40. package/dist/components/common/icons/arrow-down-solid.js +14 -27
  41. package/dist/components/common/icons/arrow-down.js +14 -27
  42. package/dist/components/common/icons/arrow-left.js +17 -30
  43. package/dist/components/common/icons/arrow-right.js +14 -27
  44. package/dist/components/common/icons/arrow-up-alt.js +15 -28
  45. package/dist/components/common/icons/arrow-up-solid.js +14 -27
  46. package/dist/components/common/icons/arrow-up.js +14 -27
  47. package/dist/components/common/icons/base.js +39 -57
  48. package/dist/components/common/icons/bug.js +16 -29
  49. package/dist/components/common/icons/cancel.js +14 -27
  50. package/dist/components/common/icons/checkmark.js +18 -31
  51. package/dist/components/common/icons/chevron-right.js +20 -33
  52. package/dist/components/common/icons/clipboard.js +15 -28
  53. package/dist/components/common/icons/clock.js +16 -29
  54. package/dist/components/common/icons/close.js +19 -32
  55. package/dist/components/common/icons/code-alt.js +16 -29
  56. package/dist/components/common/icons/copy.js +18 -31
  57. package/dist/components/common/icons/crosshairs.js +16 -29
  58. package/dist/components/common/icons/cube-3d.js +18 -31
  59. package/dist/components/common/icons/cursor-click.js +18 -31
  60. package/dist/components/common/icons/data-table.js +15 -28
  61. package/dist/components/common/icons/db.js +15 -28
  62. package/dist/components/common/icons/delete.js +16 -29
  63. package/dist/components/common/icons/docs.js +30 -43
  64. package/dist/components/common/icons/drag-n-drop.js +16 -29
  65. package/dist/components/common/icons/draw-polygon.js +33 -46
  66. package/dist/components/common/icons/email.js +18 -31
  67. package/dist/components/common/icons/expand.js +16 -29
  68. package/dist/components/common/icons/eye-seen.js +16 -29
  69. package/dist/components/common/icons/eye-unseen.js +16 -29
  70. package/dist/components/common/icons/file-type.js +35 -19
  71. package/dist/components/common/icons/file.js +14 -27
  72. package/dist/components/common/icons/files.js +14 -26
  73. package/dist/components/common/icons/filter-funnel.js +14 -27
  74. package/dist/components/common/icons/free-window.js +16 -18
  75. package/dist/components/common/icons/gear.js +16 -29
  76. package/dist/components/common/icons/hash.js +14 -27
  77. package/dist/components/common/icons/histogram.js +15 -27
  78. package/dist/components/common/icons/index.js +156 -156
  79. package/dist/components/common/icons/info.js +25 -38
  80. package/dist/components/common/icons/layers.js +14 -27
  81. package/dist/components/common/icons/left-arrow.js +16 -29
  82. package/dist/components/common/icons/legend.js +14 -27
  83. package/dist/components/common/icons/line-chart.js +14 -27
  84. package/dist/components/common/icons/login.js +17 -30
  85. package/dist/components/common/icons/logout.js +16 -29
  86. package/dist/components/common/icons/map-icon.js +18 -32
  87. package/dist/components/common/icons/map.js +18 -32
  88. package/dist/components/common/icons/messages.js +14 -27
  89. package/dist/components/common/icons/minus.js +14 -27
  90. package/dist/components/common/icons/order-by-dataset.js +15 -17
  91. package/dist/components/common/icons/order-by-list.js +7 -9
  92. package/dist/components/common/icons/pause.js +14 -27
  93. package/dist/components/common/icons/picture.js +14 -26
  94. package/dist/components/common/icons/pin.js +17 -30
  95. package/dist/components/common/icons/play.js +14 -27
  96. package/dist/components/common/icons/polygon.js +35 -48
  97. package/dist/components/common/icons/rectangle.js +36 -49
  98. package/dist/components/common/icons/reduce.js +17 -30
  99. package/dist/components/common/icons/reset.js +14 -27
  100. package/dist/components/common/icons/rocket.js +14 -27
  101. package/dist/components/common/icons/save.js +16 -29
  102. package/dist/components/common/icons/save2.js +20 -33
  103. package/dist/components/common/icons/search.js +16 -29
  104. package/dist/components/common/icons/settings.js +16 -29
  105. package/dist/components/common/icons/share.js +14 -27
  106. package/dist/components/common/icons/split.js +42 -55
  107. package/dist/components/common/icons/square-select.js +16 -29
  108. package/dist/components/common/icons/swap-horizontal.js +18 -31
  109. package/dist/components/common/icons/table.js +14 -27
  110. package/dist/components/common/icons/trash.js +16 -29
  111. package/dist/components/common/icons/upload.js +14 -27
  112. package/dist/components/common/icons/vert-dots.js +52 -65
  113. package/dist/components/common/icons/vert-three-dots.js +27 -40
  114. package/dist/components/common/icons/warning.js +26 -39
  115. package/dist/components/common/image-preview.js +71 -33
  116. package/dist/components/common/info-helper.js +36 -29
  117. package/dist/components/common/item-selector/accessor.js +7 -13
  118. package/dist/components/common/item-selector/chickleted-input.js +72 -56
  119. package/dist/components/common/item-selector/dropdown-list.js +182 -214
  120. package/dist/components/common/item-selector/item-selector-submenu.js +34 -55
  121. package/dist/components/common/item-selector/item-selector.js +183 -194
  122. package/dist/components/common/item-selector/typeahead.js +236 -248
  123. package/dist/components/common/line-chart.js +80 -58
  124. package/dist/components/common/loading-spinner.js +46 -31
  125. package/dist/components/common/logo.js +61 -48
  126. package/dist/components/common/map-layer-selector.js +31 -25
  127. package/dist/components/common/modal.js +167 -106
  128. package/dist/components/common/portaled.js +169 -189
  129. package/dist/components/common/progress-bar.js +27 -24
  130. package/dist/components/common/range-brush.js +176 -215
  131. package/dist/components/common/range-plot.js +52 -63
  132. package/dist/components/common/range-slider.js +206 -231
  133. package/dist/components/common/slider/mouse-event.js +59 -66
  134. package/dist/components/common/slider/slider-bar-handle.js +51 -61
  135. package/dist/components/common/slider/slider-handle.js +127 -102
  136. package/dist/components/common/slider/slider.js +143 -162
  137. package/dist/components/common/styled-components.js +518 -256
  138. package/dist/components/common/switch.js +11 -11
  139. package/dist/components/common/time-range-slider-time-title.js +49 -32
  140. package/dist/components/common/time-range-slider.js +56 -45
  141. package/dist/components/common/time-slider-marker.js +71 -52
  142. package/dist/components/common/tippy-tooltip.js +89 -59
  143. package/dist/components/common/toolbar-item.js +53 -45
  144. package/dist/components/common/toolbar.js +24 -18
  145. package/dist/components/common/vertical-toolbar.js +13 -6
  146. package/dist/components/container.js +87 -119
  147. package/dist/components/context.js +6 -8
  148. package/dist/components/editor/constants.js +4 -4
  149. package/dist/components/editor/editor.js +122 -157
  150. package/dist/components/editor/feature-action-panel.js +52 -59
  151. package/dist/components/editor/feature-styles.js +46 -29
  152. package/dist/components/editor/handle-style.js +38 -29
  153. package/dist/components/filters/components.js +8 -4
  154. package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +33 -43
  155. package/dist/components/filters/filter-panels/multi-select-filter-panel.js +20 -21
  156. package/dist/components/filters/filter-panels/new-filter-panel.js +24 -31
  157. package/dist/components/filters/filter-panels/polygon-filter-panel.js +26 -31
  158. package/dist/components/filters/filter-panels/range-filter-panel.js +20 -21
  159. package/dist/components/filters/filter-panels/single-select-filter-panel.js +20 -21
  160. package/dist/components/filters/filter-panels/time-range-filter-panel.js +28 -31
  161. package/dist/components/filters/index.js +10 -10
  162. package/dist/components/filters/multi-select-filter.js +11 -9
  163. package/dist/components/filters/polygon-filter.js +26 -41
  164. package/dist/components/filters/range-filter.js +9 -7
  165. package/dist/components/filters/single-select-filter.js +11 -13
  166. package/dist/components/filters/time-range-filter.js +16 -14
  167. package/dist/components/filters/time-widget.js +125 -84
  168. package/dist/components/geocoder/geocoder.js +158 -177
  169. package/dist/components/geocoder-panel.js +66 -87
  170. package/dist/components/index.js +328 -329
  171. package/dist/components/injector.js +44 -63
  172. package/dist/components/kepler-gl.js +325 -361
  173. package/dist/components/map/coordinate-info.js +18 -16
  174. package/dist/components/map/layer-hover-info.js +108 -86
  175. package/dist/components/map/layer-selector-panel.js +50 -48
  176. package/dist/components/map/locale-panel.js +38 -44
  177. package/dist/components/map/map-control-panel.js +70 -47
  178. package/dist/components/map/map-control-toolbar.js +9 -6
  179. package/dist/components/map/map-control-tooltip.js +10 -8
  180. package/dist/components/map/map-control.js +35 -27
  181. package/dist/components/map/map-draw-panel.js +38 -48
  182. package/dist/components/map/map-legend-panel.js +47 -50
  183. package/dist/components/map/map-legend.js +133 -116
  184. package/dist/components/map/map-popover.js +155 -100
  185. package/dist/components/map/split-map-button.js +30 -34
  186. package/dist/components/map/toggle-3d-button.js +25 -27
  187. package/dist/components/map-container.js +313 -359
  188. package/dist/components/maps-layout.js +16 -26
  189. package/dist/components/modal-container.js +359 -355
  190. package/dist/components/modals/add-map-style-modal.js +233 -194
  191. package/dist/components/modals/cloud-tile.js +96 -67
  192. package/dist/components/modals/data-table-modal.js +155 -152
  193. package/dist/components/modals/delete-data-modal.js +20 -20
  194. package/dist/components/modals/error-display.js +9 -7
  195. package/dist/components/modals/export-data-modal.js +118 -140
  196. package/dist/components/modals/export-image-modal.js +82 -69
  197. package/dist/components/modals/export-map-modal/components.js +20 -18
  198. package/dist/components/modals/export-map-modal/export-html-map.js +82 -74
  199. package/dist/components/modals/export-map-modal/export-json-map.js +65 -45
  200. package/dist/components/modals/export-map-modal/export-map-modal.js +42 -47
  201. package/dist/components/modals/image-modal-container.js +20 -21
  202. package/dist/components/modals/load-data-modal.js +28 -30
  203. package/dist/components/modals/load-storage-map.js +277 -178
  204. package/dist/components/modals/loading-dialog.js +41 -19
  205. package/dist/components/modals/modal-dialog.js +4 -6
  206. package/dist/components/modals/modal-tabs.js +83 -48
  207. package/dist/components/modals/overwrite-map-modal.js +41 -30
  208. package/dist/components/modals/provider-modal-container.js +23 -42
  209. package/dist/components/modals/save-map-modal.js +107 -83
  210. package/dist/components/modals/share-map-modal.js +101 -95
  211. package/dist/components/modals/status-panel.js +63 -43
  212. package/dist/components/modals/storage-map-viewer.js +133 -70
  213. package/dist/components/notification-panel/notification-item.js +94 -97
  214. package/dist/components/notification-panel.js +35 -43
  215. package/dist/components/performance.js +49 -53
  216. package/dist/components/plot-container.js +151 -169
  217. package/dist/components/side-panel/cloud-storage-dropdown.js +13 -15
  218. package/dist/components/side-panel/common/dataset-info.js +16 -12
  219. package/dist/components/side-panel/common/dataset-tag.js +48 -27
  220. package/dist/components/side-panel/common/dataset-title.js +119 -116
  221. package/dist/components/side-panel/common/source-data-catalog.js +31 -32
  222. package/dist/components/side-panel/common/source-data-selector.js +52 -77
  223. package/dist/components/side-panel/custom-panel.js +6 -8
  224. package/dist/components/side-panel/filter-manager.js +48 -62
  225. package/dist/components/side-panel/filter-panel/filter-panel-header.js +35 -25
  226. package/dist/components/side-panel/filter-panel/filter-panel.js +46 -64
  227. package/dist/components/side-panel/interaction-manager.js +20 -18
  228. package/dist/components/side-panel/interaction-panel/brush-config.js +17 -17
  229. package/dist/components/side-panel/interaction-panel/interaction-panel.js +76 -95
  230. package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +118 -143
  231. package/dist/components/side-panel/interaction-panel/tooltip-config.js +95 -76
  232. package/dist/components/side-panel/layer-manager.js +105 -115
  233. package/dist/components/side-panel/layer-panel/add-layer-button.js +92 -54
  234. package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +5 -5
  235. package/dist/components/side-panel/layer-panel/color-palette.js +50 -37
  236. package/dist/components/side-panel/layer-panel/color-range-selector.js +196 -207
  237. package/dist/components/side-panel/layer-panel/color-selector.js +104 -110
  238. package/dist/components/side-panel/layer-panel/column-selector.js +34 -22
  239. package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +4 -4
  240. package/dist/components/side-panel/layer-panel/custom-palette.js +248 -205
  241. package/dist/components/side-panel/layer-panel/custom-picker.js +51 -69
  242. package/dist/components/side-panel/layer-panel/dataset-layer-group.js +37 -42
  243. package/dist/components/side-panel/layer-panel/dataset-layer-section.js +31 -27
  244. package/dist/components/side-panel/layer-panel/dataset-section.js +45 -35
  245. package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +14 -13
  246. package/dist/components/side-panel/layer-panel/hex-column-config.js +32 -55
  247. package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +5 -5
  248. package/dist/components/side-panel/layer-panel/layer-column-config.js +42 -46
  249. package/dist/components/side-panel/layer-panel/layer-config-group.js +178 -144
  250. package/dist/components/side-panel/layer-panel/layer-configurator.js +826 -830
  251. package/dist/components/side-panel/layer-panel/layer-list.js +101 -94
  252. package/dist/components/side-panel/layer-panel/layer-panel-header.js +124 -82
  253. package/dist/components/side-panel/layer-panel/layer-panel.js +111 -105
  254. package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +67 -58
  255. package/dist/components/side-panel/layer-panel/layer-type-list-item.js +47 -32
  256. package/dist/components/side-panel/layer-panel/layer-type-selector.js +30 -41
  257. package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +42 -43
  258. package/dist/components/side-panel/layer-panel/panel-view-list-toggle.js +55 -57
  259. package/dist/components/side-panel/layer-panel/single-color-palette.js +48 -33
  260. package/dist/components/side-panel/layer-panel/text-label-panel.js +81 -116
  261. package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +88 -102
  262. package/dist/components/side-panel/layer-panel/vis-config-slider.js +99 -85
  263. package/dist/components/side-panel/layer-panel/vis-config-switch.js +38 -29
  264. package/dist/components/side-panel/map-manager.js +70 -89
  265. package/dist/components/side-panel/map-style-panel/map-layer-selector.js +72 -60
  266. package/dist/components/side-panel/map-style-panel/map-style-selector.js +64 -42
  267. package/dist/components/side-panel/panel-dropdown.js +21 -37
  268. package/dist/components/side-panel/panel-header-action.js +60 -65
  269. package/dist/components/side-panel/panel-header.js +165 -184
  270. package/dist/components/side-panel/panel-tab.js +35 -29
  271. package/dist/components/side-panel/panel-title.js +15 -18
  272. package/dist/components/side-panel/panel-toggle.js +30 -31
  273. package/dist/components/side-panel/side-bar.js +100 -91
  274. package/dist/components/side-panel.js +108 -123
  275. package/dist/connect/keplergl-connect.js +17 -26
  276. package/dist/connect/with-local-selector.js +31 -63
  277. package/dist/constants/action-types.js +113 -115
  278. package/dist/constants/color-palette.js +14 -16
  279. package/dist/constants/color-ranges.js +23 -28
  280. package/dist/constants/custom-color-ranges.js +12 -12
  281. package/dist/constants/default-settings.js +323 -254
  282. package/dist/constants/index.js +63 -63
  283. package/dist/constants/keyevent.js +4 -4
  284. package/dist/constants/tooltip.js +5 -5
  285. package/dist/constants/user-feedbacks.js +9 -5
  286. package/dist/constants/user-guides.js +10 -10
  287. package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +37 -63
  288. package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +52 -56
  289. package/dist/deckgl-layers/cluster-layer/cluster-layer.js +165 -168
  290. package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +24 -43
  291. package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.d.ts +2 -2
  292. package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +27 -40
  293. package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +27 -40
  294. package/dist/deckgl-layers/layer-utils/cluster-utils.js +60 -68
  295. package/dist/deckgl-layers/layer-utils/cpu-aggregator.d.ts +4 -4
  296. package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +281 -282
  297. package/dist/deckgl-layers/layer-utils/shader-utils.js +2 -2
  298. package/dist/deckgl-layers/line-layer/line-layer.js +62 -70
  299. package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +37 -51
  300. package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +65 -85
  301. package/dist/index.js +15 -16
  302. package/dist/layers/aggregation-layer.js +299 -331
  303. package/dist/layers/arc-layer/arc-layer-icon.js +27 -41
  304. package/dist/layers/arc-layer/arc-layer.js +174 -201
  305. package/dist/layers/base-layer.d.ts +1 -1
  306. package/dist/layers/base-layer.js +1371 -1544
  307. package/dist/layers/cluster-layer/cluster-layer-icon.js +30 -44
  308. package/dist/layers/cluster-layer/cluster-layer.js +89 -103
  309. package/dist/layers/default-layer-icon.js +39 -53
  310. package/dist/layers/geojson-layer/geojson-layer-icon.js +42 -55
  311. package/dist/layers/geojson-layer/geojson-layer.js +292 -353
  312. package/dist/layers/geojson-layer/geojson-utils.js +31 -36
  313. package/dist/layers/grid-layer/grid-layer-icon.js +87 -100
  314. package/dist/layers/grid-layer/grid-layer.js +51 -61
  315. package/dist/layers/grid-layer/grid-utils.js +13 -9
  316. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +21 -35
  317. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +225 -260
  318. package/dist/layers/h3-hexagon-layer/h3-utils.js +16 -16
  319. package/dist/layers/heatmap-layer/heatmap-layer-icon.js +39 -52
  320. package/dist/layers/heatmap-layer/heatmap-layer.js +140 -171
  321. package/dist/layers/hexagon-layer/hexagon-layer-icon.js +51 -64
  322. package/dist/layers/hexagon-layer/hexagon-layer.js +49 -63
  323. package/dist/layers/hexagon-layer/hexagon-utils.js +15 -14
  324. package/dist/layers/icon-layer/icon-info-modal.js +82 -75
  325. package/dist/layers/icon-layer/icon-layer-icon.js +24 -37
  326. package/dist/layers/icon-layer/icon-layer.js +274 -303
  327. package/dist/layers/index.js +43 -29
  328. package/dist/layers/layer-factory.js +25 -41
  329. package/dist/layers/layer-text-label.js +21 -23
  330. package/dist/layers/layer-update.js +16 -18
  331. package/dist/layers/line-layer/line-layer-icon.js +30 -43
  332. package/dist/layers/line-layer/line-layer.js +123 -142
  333. package/dist/layers/mapbox-utils.js +61 -62
  334. package/dist/layers/mapboxgl-layer.js +124 -169
  335. package/dist/layers/point-layer/point-layer-icon.js +45 -59
  336. package/dist/layers/point-layer/point-layer.d.ts +2 -2
  337. package/dist/layers/point-layer/point-layer.js +355 -386
  338. package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +208 -238
  339. package/dist/layers/s2-geometry-layer/s2-layer-icon.js +21 -35
  340. package/dist/layers/s2-geometry-layer/s2-utils.js +9 -8
  341. package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +24 -25
  342. package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +102 -115
  343. package/dist/layers/scenegraph-layer/scenegraph-layer.js +148 -172
  344. package/dist/layers/trip-layer/trip-info-modal.js +50 -30
  345. package/dist/layers/trip-layer/trip-layer-icon.js +40 -53
  346. package/dist/layers/trip-layer/trip-layer.js +239 -307
  347. package/dist/layers/trip-layer/trip-utils.js +34 -50
  348. package/dist/layers/types.js +2 -2
  349. package/dist/localization/formatted-message.js +8 -10
  350. package/dist/localization/index.js +7 -7
  351. package/dist/localization/locales.js +6 -9
  352. package/dist/localization/messages.js +13 -10
  353. package/dist/localization/translations/ca.js +11 -13
  354. package/dist/localization/translations/cn.js +11 -13
  355. package/dist/localization/translations/en.js +11 -13
  356. package/dist/localization/translations/es.js +11 -13
  357. package/dist/localization/translations/fi.js +11 -13
  358. package/dist/localization/translations/ja.js +11 -13
  359. package/dist/localization/translations/pt.js +11 -13
  360. package/dist/localization/translations/ru.js +11 -13
  361. package/dist/middleware/index.js +3 -5
  362. package/dist/processors/data-processor.js +164 -201
  363. package/dist/processors/file-handler.js +111 -233
  364. package/dist/processors/index.js +4 -4
  365. package/dist/reducers/combined-updaters.js +41 -41
  366. package/dist/reducers/composer-helpers.js +20 -45
  367. package/dist/reducers/composers.js +9 -8
  368. package/dist/reducers/core.js +31 -35
  369. package/dist/reducers/index.js +21 -22
  370. package/dist/reducers/map-state-updaters.js +65 -47
  371. package/dist/reducers/map-state.js +23 -15
  372. package/dist/reducers/map-style-updaters.js +233 -159
  373. package/dist/reducers/map-style.js +30 -16
  374. package/dist/reducers/provider-state-updaters.js +217 -229
  375. package/dist/reducers/provider-state.js +29 -17
  376. package/dist/reducers/root.js +86 -58
  377. package/dist/reducers/ui-state-updaters.js +337 -218
  378. package/dist/reducers/ui-state.js +45 -16
  379. package/dist/reducers/vis-state-merger.js +205 -209
  380. package/dist/reducers/vis-state-selectors.js +5 -19
  381. package/dist/reducers/vis-state-updaters.js +1003 -876
  382. package/dist/reducers/vis-state.js +75 -16
  383. package/dist/schemas/dataset-schema.js +84 -108
  384. package/dist/schemas/index.js +28 -29
  385. package/dist/schemas/map-state-schema.js +21 -18
  386. package/dist/schemas/map-style-schema.js +47 -55
  387. package/dist/schemas/schema-manager.js +147 -161
  388. package/dist/schemas/schema-utils.js +8 -9
  389. package/dist/schemas/schema.js +72 -87
  390. package/dist/schemas/versions.js +3 -3
  391. package/dist/schemas/vis-state-schema.js +441 -583
  392. package/dist/styles/base.js +1217 -1021
  393. package/dist/styles/index.js +3 -3
  394. package/dist/styles/media-breakpoints.js +23 -18
  395. package/dist/tasks/tasks.js +36 -39
  396. package/dist/templates/export-map-html.js +233 -4
  397. package/dist/utils/aggregate-utils.js +13 -16
  398. package/dist/utils/color-utils.js +29 -37
  399. package/dist/utils/custom-scales.js +3 -3
  400. package/dist/utils/data-scale-utils.js +6 -13
  401. package/dist/utils/data-utils.js +60 -83
  402. package/dist/utils/dataset-utils.js +48 -77
  403. package/dist/utils/dom-to-image.js +108 -163
  404. package/dist/utils/dom-utils.js +88 -105
  405. package/dist/utils/export-utils.js +116 -103
  406. package/dist/utils/filter-utils.js +379 -374
  407. package/dist/utils/gl-utils.js +16 -15
  408. package/dist/utils/gpu-filter-utils.js +54 -73
  409. package/dist/utils/index.js +47 -48
  410. package/dist/utils/interaction-utils.js +53 -46
  411. package/dist/utils/layer-utils.js +89 -78
  412. package/dist/utils/locale-utils.js +24 -16
  413. package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +67 -76
  414. package/dist/utils/map-style-utils/mapbox-utils.js +4 -3
  415. package/dist/utils/mapbox-utils.js +3 -4
  416. package/dist/utils/notifications-utils.js +33 -38
  417. package/dist/utils/observe-dimensions.js +42 -54
  418. package/dist/utils/projection-utils.js +14 -11
  419. package/dist/utils/split-map-utils.js +30 -33
  420. package/dist/utils/table-utils/data-container-utils.js +15 -14
  421. package/dist/utils/table-utils/data-row.js +58 -65
  422. package/dist/utils/table-utils/index.js +2 -2
  423. package/dist/utils/table-utils/indexed-data-container.js +105 -173
  424. package/dist/utils/table-utils/kepler-table.js +362 -386
  425. package/dist/utils/table-utils/row-data-container.js +99 -164
  426. package/dist/utils/utils.js +29 -30
  427. package/package.json +21 -21
  428. package/src/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.ts +2 -2
  429. package/src/deckgl-layers/layer-utils/cpu-aggregator.ts +21 -11
  430. package/src/layers/base-layer.ts +17 -10
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = MapPopoverFactory;
7
+ exports.default = MapPopoverFactory;
9
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
12
9
  var _react = _interopRequireWildcard(require("react"));
13
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
14
11
  var _layerHoverInfo = _interopRequireDefault(require("./layer-hover-info"));
@@ -17,7 +14,9 @@ var _icons = require("../common/icons");
17
14
  var _reactIntl = require("react-intl");
18
15
  var _localization = require("../../localization");
19
16
  var _headless = _interopRequireDefault(require("@tippyjs/react/headless"));
20
- var _templateObject, _templateObject2, _templateObject3, _templateObject4; // Copyright (c) 2022 Uber Technologies, Inc.
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
+ // Copyright (c) 2022 Uber Technologies, Inc.
21
20
  //
22
21
  // Permission is hereby granted, free of charge, to any person obtaining a copy
23
22
  // of this software and associated documentation files (the "Software"), to deal
@@ -36,42 +35,105 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4; // Co
36
35
  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
37
36
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
38
37
  // THE SOFTWARE.
39
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
40
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
41
- var MAX_WIDTH = 500;
42
- var MAX_HEIGHT = 600;
43
- var StyledMapPopover = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n max-width: ", "px;\n max-height: ", "px;\n padding: 14px;\n & > * + * {\n margin-top: 6px;\n }\n ", ";\n font-family: ", ";\n font-size: 11px;\n font-weight: 500;\n background-color: ", ";\n color: ", ";\n z-index: 1000;\n overflow-x: auto;\n box-shadow: ", ";\n\n :hover {\n background-color: ", ";\n }\n\n .primary-label {\n color: ", ";\n font-size: 10px;\n }\n\n .map-popover__layer-info,\n .coordingate-hover-info {\n & > * + * {\n margin-top: 7px;\n }\n }\n\n table {\n width: auto;\n display: grid;\n border-collapse: collapse;\n row-gap: 5px;\n column-gap: 5px;\n }\n\n .coordingate-hover-info > table {\n grid-template-columns: auto auto auto;\n }\n .map-popover__layer-info > table {\n grid-template-columns: auto auto;\n }\n\n tbody,\n tr {\n display: contents;\n }\n\n td {\n border-color: transparent;\n color: ", ";\n }\n\n td.row__value {\n text-align: right;\n font-weight: 500;\n color: ", ";\n }\n"])), MAX_WIDTH, MAX_HEIGHT, function (props) {
44
- return props.theme.scrollBar;
45
- }, function (props) {
46
- return props.theme.fontFamily;
47
- }, function (props) {
48
- return props.theme.panelBackground;
49
- }, function (props) {
50
- return props.theme.textColor;
51
- }, function (props) {
52
- return props.theme.panelBoxShadow;
53
- }, function (props) {
54
- return "".concat(props.theme.panelBackground, "dd");
55
- }, function (props) {
56
- return props.theme.notificationColors.success;
57
- }, function (props) {
58
- return props.theme.textColor;
59
- }, function (props) {
60
- return props.theme.textColorHl;
61
- });
62
- var PinnedButtons = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-self: center;\n align-items: center;\n justify-items: center;\n & > * + * {\n margin-left: 10px;\n }\n"])));
63
- var PopoverContent = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n & > * + * {\n margin-top: 12px;\n }\n"])));
64
- var StyledIcon = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n :hover {\n cursor: pointer;\n color: ", ";\n }\n"])), function (props) {
65
- return props.theme.activeColor;
66
- }, function (props) {
67
- return props.theme.linkBtnColor;
68
- });
69
- MapPopoverFactory.deps = [_layerHoverInfo["default"], _coordinateInfo["default"]];
38
+
39
+ const MAX_WIDTH = 500;
40
+ const MAX_HEIGHT = 600;
41
+ const StyledMapPopover = _styledComponents.default.div`
42
+ display: flex;
43
+ flex-direction: column;
44
+ max-width: ${MAX_WIDTH}px;
45
+ max-height: ${MAX_HEIGHT}px;
46
+ padding: 14px;
47
+ & > * + * {
48
+ margin-top: 6px;
49
+ }
50
+ ${props => props.theme.scrollBar};
51
+ font-family: ${props => props.theme.fontFamily};
52
+ font-size: 11px;
53
+ font-weight: 500;
54
+ background-color: ${props => props.theme.panelBackground};
55
+ color: ${props => props.theme.textColor};
56
+ z-index: 1000;
57
+ overflow-x: auto;
58
+ box-shadow: ${props => props.theme.panelBoxShadow};
59
+
60
+ :hover {
61
+ background-color: ${props => `${props.theme.panelBackground}dd`};
62
+ }
63
+
64
+ .primary-label {
65
+ color: ${props => props.theme.notificationColors.success};
66
+ font-size: 10px;
67
+ }
68
+
69
+ .map-popover__layer-info,
70
+ .coordingate-hover-info {
71
+ & > * + * {
72
+ margin-top: 7px;
73
+ }
74
+ }
75
+
76
+ table {
77
+ width: auto;
78
+ display: grid;
79
+ border-collapse: collapse;
80
+ row-gap: 5px;
81
+ column-gap: 5px;
82
+ }
83
+
84
+ .coordingate-hover-info > table {
85
+ grid-template-columns: auto auto auto;
86
+ }
87
+ .map-popover__layer-info > table {
88
+ grid-template-columns: auto auto;
89
+ }
90
+
91
+ tbody,
92
+ tr {
93
+ display: contents;
94
+ }
95
+
96
+ td {
97
+ border-color: transparent;
98
+ color: ${props => props.theme.textColor};
99
+ }
100
+
101
+ td.row__value {
102
+ text-align: right;
103
+ font-weight: 500;
104
+ color: ${props => props.theme.textColorHl};
105
+ }
106
+ `;
107
+ const PinnedButtons = _styledComponents.default.div`
108
+ display: flex;
109
+ align-self: center;
110
+ align-items: center;
111
+ justify-items: center;
112
+ & > * + * {
113
+ margin-left: 10px;
114
+ }
115
+ `;
116
+ const PopoverContent = _styledComponents.default.div`
117
+ display: flex;
118
+ flex-direction: column;
119
+ & > * + * {
120
+ margin-top: 12px;
121
+ }
122
+ `;
123
+ const StyledIcon = _styledComponents.default.div`
124
+ color: ${props => props.theme.activeColor};
125
+
126
+ :hover {
127
+ cursor: pointer;
128
+ color: ${props => props.theme.linkBtnColor};
129
+ }
130
+ `;
131
+ MapPopoverFactory.deps = [_layerHoverInfo.default, _coordinateInfo.default];
70
132
  function zoomBetweenLimits(visibilityByZoom, zoom) {
71
133
  if (visibilityByZoom) {
72
- var roundedZoom = Math.round(zoom);
73
- var currentZoomUnderMin = roundedZoom < (visibilityByZoom === null || visibilityByZoom === void 0 ? void 0 : visibilityByZoom.min);
74
- var currentZoomOverMax = roundedZoom > (visibilityByZoom === null || visibilityByZoom === void 0 ? void 0 : visibilityByZoom.max);
134
+ const roundedZoom = Math.round(zoom);
135
+ const currentZoomUnderMin = roundedZoom < (visibilityByZoom === null || visibilityByZoom === void 0 ? void 0 : visibilityByZoom.min);
136
+ const currentZoomOverMax = roundedZoom > (visibilityByZoom === null || visibilityByZoom === void 0 ? void 0 : visibilityByZoom.max);
75
137
  if (currentZoomUnderMin || currentZoomOverMax) {
76
138
  return false;
77
139
  }
@@ -79,13 +141,13 @@ function zoomBetweenLimits(visibilityByZoom, zoom) {
79
141
  return true;
80
142
  }
81
143
  function createVirtualReference(container, x, y) {
82
- var size = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
83
- var bounds = container && container.getBoundingClientRect ? container.getBoundingClientRect() : {};
84
- var left = (bounds.left || 0) + x - size / 2;
85
- var top = (bounds.top || 0) + y - size / 2;
144
+ let size = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
145
+ const bounds = container && container.getBoundingClientRect ? container.getBoundingClientRect() : {};
146
+ const left = (bounds.left || 0) + x - size / 2;
147
+ const top = (bounds.top || 0) + y - size / 2;
86
148
  return {
87
- left: left,
88
- top: top,
149
+ left,
150
+ top,
89
151
  right: left + size,
90
152
  bottom: top + size,
91
153
  width: size,
@@ -93,10 +155,12 @@ function createVirtualReference(container, x, y) {
93
155
  };
94
156
  }
95
157
  function getOffsetForPlacement(_ref) {
96
- var placement = _ref.placement,
97
- reference = _ref.reference,
98
- popper = _ref.popper;
99
- var gap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;
158
+ let {
159
+ placement,
160
+ reference,
161
+ popper
162
+ } = _ref;
163
+ let gap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;
100
164
  switch (placement) {
101
165
  case 'top-start':
102
166
  case 'bottom-start':
@@ -120,72 +184,63 @@ function getPopperOptions(container) {
120
184
  }
121
185
  function MapPopoverFactory(LayerHoverInfo, CoordinateInfo) {
122
186
  /** @type {typeof import('./map-popover').MapPopover} */
123
- var MapPopover = function MapPopover(_ref2) {
187
+ const MapPopover = _ref2 => {
124
188
  var _layerHoverProp$layer;
125
- var x = _ref2.x,
126
- y = _ref2.y,
127
- frozen = _ref2.frozen,
128
- coordinate = _ref2.coordinate,
129
- layerHoverProp = _ref2.layerHoverProp,
130
- isBase = _ref2.isBase,
131
- zoom = _ref2.zoom,
132
- container = _ref2.container,
133
- onClose = _ref2.onClose;
134
- var _useState = (0, _react.useState)('start'),
135
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
136
- horizontalPlacement = _useState2[0],
137
- setHorizontalPlacement = _useState2[1];
138
- var moveLeft = function moveLeft() {
139
- return setHorizontalPlacement('end');
140
- };
141
- var moveRight = function moveRight() {
142
- return setHorizontalPlacement('start');
143
- };
189
+ let {
190
+ x,
191
+ y,
192
+ frozen,
193
+ coordinate,
194
+ layerHoverProp,
195
+ isBase,
196
+ zoom,
197
+ container,
198
+ onClose
199
+ } = _ref2;
200
+ const [horizontalPlacement, setHorizontalPlacement] = (0, _react.useState)('start');
201
+ const moveLeft = () => setHorizontalPlacement('end');
202
+ const moveRight = () => setHorizontalPlacement('start');
144
203
  // @ts-expect-error
145
- var visibilityByZoom = layerHoverProp === null || layerHoverProp === void 0 ? void 0 : (_layerHoverProp$layer = layerHoverProp.layer.config) === null || _layerHoverProp$layer === void 0 ? void 0 : _layerHoverProp$layer.visibilityByZoom;
146
- var isVisible = visibilityByZoom ? zoomBetweenLimits(visibilityByZoom, zoom) : true;
147
- return /*#__PURE__*/_react["default"].createElement(_headless["default"], {
204
+ const visibilityByZoom = layerHoverProp === null || layerHoverProp === void 0 ? void 0 : (_layerHoverProp$layer = layerHoverProp.layer.config) === null || _layerHoverProp$layer === void 0 ? void 0 : _layerHoverProp$layer.visibilityByZoom;
205
+ const isVisible = visibilityByZoom ? zoomBetweenLimits(visibilityByZoom, zoom) : true;
206
+ return /*#__PURE__*/_react.default.createElement(_headless.default, {
148
207
  popperOptions: getPopperOptions(container),
149
208
  zIndex: 999 /* should be below Modal which has zIndex=1000 */,
150
209
  visible: isVisible,
151
210
  interactive: true
152
211
  // @ts-expect-error
153
212
  ,
154
- getReferenceClientRect: function getReferenceClientRect() {
155
- return createVirtualReference(container, x, y);
156
- }
213
+ getReferenceClientRect: () => createVirtualReference(container, x, y)
157
214
  // @ts-ignore
158
215
  ,
159
- placement: "bottom-".concat(horizontalPlacement)
216
+ placement: `bottom-${horizontalPlacement}`
160
217
  // @ts-ignore
161
218
  ,
162
219
  offset: getOffsetForPlacement,
163
220
  appendTo: document.body,
164
- render: function render(attrs) {
165
- return /*#__PURE__*/_react["default"].createElement(StyledMapPopover, (0, _extends2["default"])({}, attrs, {
166
- className: "map-popover"
167
- }), frozen ? /*#__PURE__*/_react["default"].createElement(PinnedButtons, null, horizontalPlacement === 'start' && /*#__PURE__*/_react["default"].createElement(StyledIcon, {
168
- className: "popover-arrow-left",
169
- onClick: moveLeft
170
- }, /*#__PURE__*/_react["default"].createElement(_icons.ArrowLeft, null)), /*#__PURE__*/_react["default"].createElement(StyledIcon, {
171
- className: "popover-pin",
172
- onClick: onClose
173
- }, /*#__PURE__*/_react["default"].createElement(_icons.Pin, {
174
- height: "16px"
175
- })), horizontalPlacement === 'end' && /*#__PURE__*/_react["default"].createElement(StyledIcon, {
176
- className: "popover-arrow-right",
177
- onClick: moveRight
178
- }, /*#__PURE__*/_react["default"].createElement(_icons.ArrowRight, null)), isBase && /*#__PURE__*/_react["default"].createElement("div", {
179
- className: "primary-label"
180
- }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
181
- id: "mapPopover.primary"
182
- }))) : null, /*#__PURE__*/_react["default"].createElement(PopoverContent, null, Array.isArray(coordinate) && /*#__PURE__*/_react["default"].createElement(CoordinateInfo, {
183
- coordinate: coordinate,
184
- zoom: zoom
185
- }), layerHoverProp && /*#__PURE__*/_react["default"].createElement(LayerHoverInfo, layerHoverProp)));
186
- }
221
+ render: attrs => /*#__PURE__*/_react.default.createElement(StyledMapPopover, (0, _extends2.default)({}, attrs, {
222
+ className: "map-popover"
223
+ }), frozen ? /*#__PURE__*/_react.default.createElement(PinnedButtons, null, horizontalPlacement === 'start' && /*#__PURE__*/_react.default.createElement(StyledIcon, {
224
+ className: "popover-arrow-left",
225
+ onClick: moveLeft
226
+ }, /*#__PURE__*/_react.default.createElement(_icons.ArrowLeft, null)), /*#__PURE__*/_react.default.createElement(StyledIcon, {
227
+ className: "popover-pin",
228
+ onClick: onClose
229
+ }, /*#__PURE__*/_react.default.createElement(_icons.Pin, {
230
+ height: "16px"
231
+ })), horizontalPlacement === 'end' && /*#__PURE__*/_react.default.createElement(StyledIcon, {
232
+ className: "popover-arrow-right",
233
+ onClick: moveRight
234
+ }, /*#__PURE__*/_react.default.createElement(_icons.ArrowRight, null)), isBase && /*#__PURE__*/_react.default.createElement("div", {
235
+ className: "primary-label"
236
+ }, /*#__PURE__*/_react.default.createElement(_localization.FormattedMessage, {
237
+ id: "mapPopover.primary"
238
+ }))) : null, /*#__PURE__*/_react.default.createElement(PopoverContent, null, Array.isArray(coordinate) && /*#__PURE__*/_react.default.createElement(CoordinateInfo, {
239
+ coordinate: coordinate,
240
+ zoom: zoom
241
+ }), layerHoverProp && /*#__PURE__*/_react.default.createElement(LayerHoverInfo, layerHoverProp)))
187
242
  });
188
243
  };
189
244
  return (0, _reactIntl.injectIntl)(MapPopover);
190
245
  }
191
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbGF5ZXJIb3ZlckluZm8iLCJfY29vcmRpbmF0ZUluZm8iLCJfaWNvbnMiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9oZWFkbGVzcyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIk1BWF9XSURUSCIsIk1BWF9IRUlHSFQiLCJTdHlsZWRNYXBQb3BvdmVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwic2Nyb2xsQmFyIiwiZm9udEZhbWlseSIsInBhbmVsQmFja2dyb3VuZCIsInRleHRDb2xvciIsInBhbmVsQm94U2hhZG93IiwiY29uY2F0Iiwibm90aWZpY2F0aW9uQ29sb3JzIiwic3VjY2VzcyIsInRleHRDb2xvckhsIiwiUGlubmVkQnV0dG9ucyIsIlBvcG92ZXJDb250ZW50IiwiU3R5bGVkSWNvbiIsImFjdGl2ZUNvbG9yIiwibGlua0J0bkNvbG9yIiwiTWFwUG9wb3ZlckZhY3RvcnkiLCJkZXBzIiwiTGF5ZXJIb3ZlckluZm9GYWN0b3J5IiwiQ29vcmRpbmF0ZUluZm9GYWN0b3J5Iiwiem9vbUJldHdlZW5MaW1pdHMiLCJ2aXNpYmlsaXR5Qnlab29tIiwiem9vbSIsInJvdW5kZWRab29tIiwiTWF0aCIsInJvdW5kIiwiY3VycmVudFpvb21VbmRlck1pbiIsIm1pbiIsImN1cnJlbnRab29tT3Zlck1heCIsIm1heCIsImNyZWF0ZVZpcnR1YWxSZWZlcmVuY2UiLCJjb250YWluZXIiLCJ4IiwieSIsInNpemUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJib3VuZHMiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJsZWZ0IiwidG9wIiwicmlnaHQiLCJib3R0b20iLCJ3aWR0aCIsImhlaWdodCIsImdldE9mZnNldEZvclBsYWNlbWVudCIsIl9yZWYiLCJwbGFjZW1lbnQiLCJyZWZlcmVuY2UiLCJwb3BwZXIiLCJnYXAiLCJnZXRQb3BwZXJPcHRpb25zIiwibW9kaWZpZXJzIiwibmFtZSIsIm9wdGlvbnMiLCJib3VuZGFyeSIsIkxheWVySG92ZXJJbmZvIiwiQ29vcmRpbmF0ZUluZm8iLCJNYXBQb3BvdmVyIiwiX3JlZjIiLCJfbGF5ZXJIb3ZlclByb3AkbGF5ZXIiLCJmcm96ZW4iLCJjb29yZGluYXRlIiwibGF5ZXJIb3ZlclByb3AiLCJpc0Jhc2UiLCJvbkNsb3NlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaG9yaXpvbnRhbFBsYWNlbWVudCIsInNldEhvcml6b250YWxQbGFjZW1lbnQiLCJtb3ZlTGVmdCIsIm1vdmVSaWdodCIsImxheWVyIiwiY29uZmlnIiwiaXNWaXNpYmxlIiwiY3JlYXRlRWxlbWVudCIsInBvcHBlck9wdGlvbnMiLCJ6SW5kZXgiLCJ2aXNpYmxlIiwiaW50ZXJhY3RpdmUiLCJnZXRSZWZlcmVuY2VDbGllbnRSZWN0Iiwib2Zmc2V0IiwiYXBwZW5kVG8iLCJkb2N1bWVudCIsImJvZHkiLCJyZW5kZXIiLCJhdHRycyIsIl9leHRlbmRzMiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJBcnJvd0xlZnQiLCJQaW4iLCJBcnJvd1JpZ2h0IiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwiQXJyYXkiLCJpc0FycmF5IiwiaW5qZWN0SW50bCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21hcC9tYXAtcG9wb3Zlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IExheWVySG92ZXJJbmZvRmFjdG9yeSBmcm9tICcuL2xheWVyLWhvdmVyLWluZm8nO1xuaW1wb3J0IENvb3JkaW5hdGVJbmZvRmFjdG9yeSBmcm9tICcuL2Nvb3JkaW5hdGUtaW5mbyc7XG5pbXBvcnQge0Fycm93TGVmdCwgQXJyb3dSaWdodCwgUGlufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ2xvY2FsaXphdGlvbic7XG5pbXBvcnQgVGlwcHkgZnJvbSAnQHRpcHB5anMvcmVhY3QvaGVhZGxlc3MnO1xuaW1wb3J0IHtMYXllckhvdmVyUHJvcH0gZnJvbSAndXRpbHMvbGF5ZXItdXRpbHMnO1xuXG5jb25zdCBNQVhfV0lEVEggPSA1MDA7XG5jb25zdCBNQVhfSEVJR0hUID0gNjAwO1xuXG5jb25zdCBTdHlsZWRNYXBQb3BvdmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWF4LXdpZHRoOiAke01BWF9XSURUSH1weDtcbiAgbWF4LWhlaWdodDogJHtNQVhfSEVJR0hUfXB4O1xuICBwYWRkaW5nOiAxNHB4O1xuICAmID4gKiArICoge1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgfVxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNjcm9sbEJhcn07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgei1pbmRleDogMTAwMDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgYm94LXNoYWRvdzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJveFNoYWRvd307XG5cbiAgOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IGAke3Byb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZH1kZGB9O1xuICB9XG5cbiAgLnByaW1hcnktbGFiZWwge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm5vdGlmaWNhdGlvbkNvbG9ycy5zdWNjZXNzfTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gIH1cblxuICAubWFwLXBvcG92ZXJfX2xheWVyLWluZm8sXG4gIC5jb29yZGluZ2F0ZS1ob3Zlci1pbmZvIHtcbiAgICAmID4gKiArICoge1xuICAgICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgcm93LWdhcDogNXB4O1xuICAgIGNvbHVtbi1nYXA6IDVweDtcbiAgfVxuXG4gIC5jb29yZGluZ2F0ZS1ob3Zlci1pbmZvID4gdGFibGUge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvIGF1dG87XG4gIH1cbiAgLm1hcC1wb3BvdmVyX19sYXllci1pbmZvID4gdGFibGUge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvO1xuICB9XG5cbiAgdGJvZHksXG4gIHRyIHtcbiAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgfVxuXG4gIHRkIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIH1cblxuICB0ZC5yb3dfX3ZhbHVlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgfVxuYDtcblxuY29uc3QgUGlubmVkQnV0dG9ucyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAmID4gKiArICoge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBQb3BvdmVyQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcblxuICA6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5saW5rQnRuQ29sb3J9O1xuICB9XG5gO1xuXG5NYXBQb3BvdmVyRmFjdG9yeS5kZXBzID0gW0xheWVySG92ZXJJbmZvRmFjdG9yeSwgQ29vcmRpbmF0ZUluZm9GYWN0b3J5XTtcblxuZnVuY3Rpb24gem9vbUJldHdlZW5MaW1pdHModmlzaWJpbGl0eUJ5Wm9vbSwgem9vbSkge1xuICBpZiAodmlzaWJpbGl0eUJ5Wm9vbSkge1xuICAgIGNvbnN0IHJvdW5kZWRab29tID0gTWF0aC5yb3VuZCh6b29tKTtcbiAgICBjb25zdCBjdXJyZW50Wm9vbVVuZGVyTWluID0gcm91bmRlZFpvb20gPCB2aXNpYmlsaXR5Qnlab29tPy5taW47XG4gICAgY29uc3QgY3VycmVudFpvb21PdmVyTWF4ID0gcm91bmRlZFpvb20gPiB2aXNpYmlsaXR5Qnlab29tPy5tYXg7XG4gICAgaWYgKGN1cnJlbnRab29tVW5kZXJNaW4gfHwgY3VycmVudFpvb21PdmVyTWF4KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVWaXJ0dWFsUmVmZXJlbmNlKGNvbnRhaW5lciwgeCwgeSwgc2l6ZSA9IDApIHtcbiAgY29uc3QgYm91bmRzID1cbiAgICBjb250YWluZXIgJiYgY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCA/IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6IHt9O1xuICBjb25zdCBsZWZ0ID0gKGJvdW5kcy5sZWZ0IHx8IDApICsgeCAtIHNpemUgLyAyO1xuICBjb25zdCB0b3AgPSAoYm91bmRzLnRvcCB8fCAwKSArIHkgLSBzaXplIC8gMjtcbiAgcmV0dXJuIHtcbiAgICBsZWZ0LFxuICAgIHRvcCxcbiAgICByaWdodDogbGVmdCArIHNpemUsXG4gICAgYm90dG9tOiB0b3AgKyBzaXplLFxuICAgIHdpZHRoOiBzaXplLFxuICAgIGhlaWdodDogc2l6ZVxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRPZmZzZXRGb3JQbGFjZW1lbnQoe3BsYWNlbWVudCwgcmVmZXJlbmNlLCBwb3BwZXJ9LCBnYXAgPSAyMCkge1xuICBzd2l0Y2ggKHBsYWNlbWVudCkge1xuICAgIGNhc2UgJ3RvcC1zdGFydCc6XG4gICAgY2FzZSAnYm90dG9tLXN0YXJ0JzpcbiAgICAgIHJldHVybiBbZ2FwLCBnYXBdO1xuICAgIGNhc2UgJ3RvcC1lbmQnOlxuICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxuICAgICAgcmV0dXJuIFstZ2FwLCBnYXBdO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gWzAsIDBdO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFBvcHBlck9wdGlvbnMoY29udGFpbmVyKSB7XG4gIHJldHVybiB7XG4gICAgbW9kaWZpZXJzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdwcmV2ZW50T3ZlcmZsb3cnLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgYm91bmRhcnk6IGNvbnRhaW5lclxuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5leHBvcnQgdHlwZSBNYXBQb3BvdmVyUHJvcHMgPSB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICBmcm96ZW4/OiBib29sZWFuO1xuICBjb29yZGluYXRlOiBbbnVtYmVyLCBudW1iZXJdIHwgYm9vbGVhbjtcbiAgbGF5ZXJIb3ZlclByb3A6IExheWVySG92ZXJQcm9wIHwgbnVsbDtcbiAgaXNCYXNlPzogYm9vbGVhbjtcbiAgem9vbTogbnVtYmVyO1xuICBjb250YWluZXI/OiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG59O1xuXG50eXBlIEludGxQcm9wcyA9IHtcbiAgaW50bDogSW50bFNoYXBlO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFwUG9wb3ZlckZhY3RvcnkoXG4gIExheWVySG92ZXJJbmZvOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckhvdmVySW5mb0ZhY3Rvcnk+LFxuICBDb29yZGluYXRlSW5mbzogUmV0dXJuVHlwZTx0eXBlb2YgQ29vcmRpbmF0ZUluZm9GYWN0b3J5PlxuKSB7XG4gIC8qKiBAdHlwZSB7dHlwZW9mIGltcG9ydCgnLi9tYXAtcG9wb3ZlcicpLk1hcFBvcG92ZXJ9ICovXG4gIGNvbnN0IE1hcFBvcG92ZXI6IFJlYWN0LkZDPE1hcFBvcG92ZXJQcm9wcyAmIEludGxQcm9wcz4gPSAoe1xuICAgIHgsXG4gICAgeSxcbiAgICBmcm96ZW4sXG4gICAgY29vcmRpbmF0ZSxcbiAgICBsYXllckhvdmVyUHJvcCxcbiAgICBpc0Jhc2UsXG4gICAgem9vbSxcbiAgICBjb250YWluZXIsXG4gICAgb25DbG9zZVxuICB9KSA9PiB7XG4gICAgY29uc3QgW2hvcml6b250YWxQbGFjZW1lbnQsIHNldEhvcml6b250YWxQbGFjZW1lbnRdID0gdXNlU3RhdGUoJ3N0YXJ0Jyk7XG4gICAgY29uc3QgbW92ZUxlZnQgPSAoKSA9PiBzZXRIb3Jpem9udGFsUGxhY2VtZW50KCdlbmQnKTtcbiAgICBjb25zdCBtb3ZlUmlnaHQgPSAoKSA9PiBzZXRIb3Jpem9udGFsUGxhY2VtZW50KCdzdGFydCcpO1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBjb25zdCB2aXNpYmlsaXR5Qnlab29tID0gbGF5ZXJIb3ZlclByb3A/LmxheWVyLmNvbmZpZz8udmlzaWJpbGl0eUJ5Wm9vbTtcbiAgICBjb25zdCBpc1Zpc2libGUgPSB2aXNpYmlsaXR5Qnlab29tID8gem9vbUJldHdlZW5MaW1pdHModmlzaWJpbGl0eUJ5Wm9vbSwgem9vbSkgOiB0cnVlO1xuICAgIHJldHVybiAoXG4gICAgICA8VGlwcHlcbiAgICAgICAgcG9wcGVyT3B0aW9ucz17Z2V0UG9wcGVyT3B0aW9ucyhjb250YWluZXIpfVxuICAgICAgICB6SW5kZXg9ezk5OX0gLyogc2hvdWxkIGJlIGJlbG93IE1vZGFsIHdoaWNoIGhhcyB6SW5kZXg9MTAwMCAqL1xuICAgICAgICB2aXNpYmxlPXtpc1Zpc2libGV9XG4gICAgICAgIGludGVyYWN0aXZlPXt0cnVlfVxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgIGdldFJlZmVyZW5jZUNsaWVudFJlY3Q9eygpID0+IGNyZWF0ZVZpcnR1YWxSZWZlcmVuY2UoY29udGFpbmVyLCB4LCB5KX1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBwbGFjZW1lbnQ9e2Bib3R0b20tJHtob3Jpem9udGFsUGxhY2VtZW50fWB9XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgb2Zmc2V0PXtnZXRPZmZzZXRGb3JQbGFjZW1lbnR9XG4gICAgICAgIGFwcGVuZFRvPXtkb2N1bWVudC5ib2R5fVxuICAgICAgICByZW5kZXI9e2F0dHJzID0+IChcbiAgICAgICAgICA8U3R5bGVkTWFwUG9wb3ZlciB7Li4uYXR0cnN9IGNsYXNzTmFtZT1cIm1hcC1wb3BvdmVyXCI+XG4gICAgICAgICAgICB7ZnJvemVuID8gKFxuICAgICAgICAgICAgICA8UGlubmVkQnV0dG9ucz5cbiAgICAgICAgICAgICAgICB7aG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gJ3N0YXJ0JyAmJiAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvbiBjbGFzc05hbWU9XCJwb3BvdmVyLWFycm93LWxlZnRcIiBvbkNsaWNrPXttb3ZlTGVmdH0+XG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0xlZnQgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uIGNsYXNzTmFtZT1cInBvcG92ZXItcGluXCIgb25DbGljaz17b25DbG9zZX0+XG4gICAgICAgICAgICAgICAgICA8UGluIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAgICB7aG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gJ2VuZCcgJiYgKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb24gY2xhc3NOYW1lPVwicG9wb3Zlci1hcnJvdy1yaWdodFwiIG9uQ2xpY2s9e21vdmVSaWdodH0+XG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd1JpZ2h0IC8+XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZEljb24+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7aXNCYXNlICYmIChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHJpbWFyeS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cIm1hcFBvcG92ZXIucHJpbWFyeVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbnM+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxQb3BvdmVyQ29udGVudD5cbiAgICAgICAgICAgICAge0FycmF5LmlzQXJyYXkoY29vcmRpbmF0ZSkgJiYgPENvb3JkaW5hdGVJbmZvIGNvb3JkaW5hdGU9e2Nvb3JkaW5hdGV9IHpvb209e3pvb219IC8+fVxuICAgICAgICAgICAgICB7bGF5ZXJIb3ZlclByb3AgJiYgPExheWVySG92ZXJJbmZvIHsuLi5sYXllckhvdmVyUHJvcH0gLz59XG4gICAgICAgICAgICA8L1BvcG92ZXJDb250ZW50PlxuICAgICAgICAgIDwvU3R5bGVkTWFwUG9wb3Zlcj5cbiAgICAgICAgKX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIGluamVjdEludGwoTWFwUG9wb3Zlcik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBb0JBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxl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akQ3QixNQUFNLGdCQUNMdkcsTUFBQSxZQUFBdUgsYUFBQSxDQUFDbkUsYUFBYSxRQUNYNEQsbUJBQW1CLEtBQUssT0FBTyxpQkFDOUJoSCxNQUFBLFlBQUF1SCxhQUFBLENBQUNqRSxVQUFVO1VBQUM4RSxTQUFTLEVBQUMsb0JBQW9CO1VBQUNDLE9BQU8sRUFBRW5CO1FBQVMsZ0JBQzNEbEgsTUFBQSxZQUFBdUgsYUFBQSxDQUFDaEgsTUFBQSxDQUFBK0gsU0FBUyxNQUFFLENBQ0YsQ0FDYixlQUNEdEksTUFBQSxZQUFBdUgsYUFBQSxDQUFDakUsVUFBVTtVQUFDOEUsU0FBUyxFQUFDLGFBQWE7VUFBQ0MsT0FBTyxFQUFFMUI7UUFBUSxnQkFDbkQzRyxNQUFBLFlBQUF1SCxhQUFBLENBQUNoSCxNQUFBLENBQUFnSSxHQUFHO1VBQUNqRCxNQUFNLEVBQUM7UUFBTSxDQUFFLENBQ1YsQ0FBQyxFQUNaMEIsbUJBQW1CLEtBQUssS0FBSyxpQkFDNUJoSCxNQUFBLFlBQUF1SCxhQUFBLENBQUNqRSxVQUFVO1VBQUM4RSxTQUFTLEVBQUMscUJBQXFCO1VBQUNDLE9BQU8sRUFBRWxCO1FBQVUsZ0JBQzdEbkgsTUFBQSxZQUFBdUgsYUFBQSxDQUFDaEgsTUFBQSxDQUFBaUksVUFBVSxNQUFFLENBQ0gsQ0FDYixFQUNBOUIsTUFBTSxpQkFDTDFHLE1BQUEsWUFBQXVILGFBQUE7VUFBS2EsU0FBUyxFQUFDO1FBQWUsZ0JBQzVCcEksTUFBQSxZQUFBdUgsYUFBQSxDQUFDOUcsYUFBQSxDQUFBZ0ksZ0JBQWdCO1VBQUNDLEVBQUUsRUFBQztRQUFvQixDQUFFLENBQ3hDLENBRU0sQ0FBQyxHQUNkLElBQUksZUFDUjFJLE1BQUEsWUFBQXVILGFBQUEsQ0FBQ2xFLGNBQWMsUUFDWnNGLEtBQUssQ0FBQ0MsT0FBTyxDQUFDcEMsVUFBVSxDQUFDLGlCQUFJeEcsTUFBQSxZQUFBdUgsYUFBQSxDQUFDcEIsY0FBYztVQUFDSyxVQUFVLEVBQUVBLFVBQVc7VUFBQ3pDLElBQUksRUFBRUE7UUFBSyxDQUFFLENBQUMsRUFDbkYwQyxjQUFjLGlCQUFJekcsTUFBQSxZQUFBdUgsYUFBQSxDQUFDckIsY0FBYyxFQUFLTyxjQUFpQixDQUMxQyxDQUNBLENBQUM7TUFBQTtJQUNuQixDQUNILENBQUM7RUFFTixDQUFDO0VBQ0QsT0FBTyxJQUFBb0MscUJBQVUsRUFBQ3pDLFVBQVUsQ0FBQztBQUMvQiIsImlnbm9yZUxpc3QiOltdfQ==
246
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbGF5ZXJIb3ZlckluZm8iLCJfY29vcmRpbmF0ZUluZm8iLCJfaWNvbnMiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9oZWFkbGVzcyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIk1BWF9XSURUSCIsIk1BWF9IRUlHSFQiLCJTdHlsZWRNYXBQb3BvdmVyIiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsInNjcm9sbEJhciIsImZvbnRGYW1pbHkiLCJwYW5lbEJhY2tncm91bmQiLCJ0ZXh0Q29sb3IiLCJwYW5lbEJveFNoYWRvdyIsIm5vdGlmaWNhdGlvbkNvbG9ycyIsInN1Y2Nlc3MiLCJ0ZXh0Q29sb3JIbCIsIlBpbm5lZEJ1dHRvbnMiLCJQb3BvdmVyQ29udGVudCIsIlN0eWxlZEljb24iLCJhY3RpdmVDb2xvciIsImxpbmtCdG5Db2xvciIsIk1hcFBvcG92ZXJGYWN0b3J5IiwiZGVwcyIsIkxheWVySG92ZXJJbmZvRmFjdG9yeSIsIkNvb3JkaW5hdGVJbmZvRmFjdG9yeSIsInpvb21CZXR3ZWVuTGltaXRzIiwidmlzaWJpbGl0eUJ5Wm9vbSIsInpvb20iLCJyb3VuZGVkWm9vbSIsIk1hdGgiLCJyb3VuZCIsImN1cnJlbnRab29tVW5kZXJNaW4iLCJtaW4iLCJjdXJyZW50Wm9vbU92ZXJNYXgiLCJtYXgiLCJjcmVhdGVWaXJ0dWFsUmVmZXJlbmNlIiwiY29udGFpbmVyIiwieCIsInkiLCJzaXplIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiYm91bmRzIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibGVmdCIsInRvcCIsInJpZ2h0IiwiYm90dG9tIiwid2lkdGgiLCJoZWlnaHQiLCJnZXRPZmZzZXRGb3JQbGFjZW1lbnQiLCJfcmVmIiwicGxhY2VtZW50IiwicmVmZXJlbmNlIiwicG9wcGVyIiwiZ2FwIiwiZ2V0UG9wcGVyT3B0aW9ucyIsIm1vZGlmaWVycyIsIm5hbWUiLCJvcHRpb25zIiwiYm91bmRhcnkiLCJMYXllckhvdmVySW5mbyIsIkNvb3JkaW5hdGVJbmZvIiwiTWFwUG9wb3ZlciIsIl9yZWYyIiwiX2xheWVySG92ZXJQcm9wJGxheWVyIiwiZnJvemVuIiwiY29vcmRpbmF0ZSIsImxheWVySG92ZXJQcm9wIiwiaXNCYXNlIiwib25DbG9zZSIsImhvcml6b250YWxQbGFjZW1lbnQiLCJzZXRIb3Jpem9udGFsUGxhY2VtZW50IiwidXNlU3RhdGUiLCJtb3ZlTGVmdCIsIm1vdmVSaWdodCIsImxheWVyIiwiY29uZmlnIiwiaXNWaXNpYmxlIiwiY3JlYXRlRWxlbWVudCIsInBvcHBlck9wdGlvbnMiLCJ6SW5kZXgiLCJ2aXNpYmxlIiwiaW50ZXJhY3RpdmUiLCJnZXRSZWZlcmVuY2VDbGllbnRSZWN0Iiwib2Zmc2V0IiwiYXBwZW5kVG8iLCJkb2N1bWVudCIsImJvZHkiLCJyZW5kZXIiLCJhdHRycyIsIl9leHRlbmRzMiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJBcnJvd0xlZnQiLCJQaW4iLCJBcnJvd1JpZ2h0IiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwiQXJyYXkiLCJpc0FycmF5IiwiaW5qZWN0SW50bCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21hcC9tYXAtcG9wb3Zlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IExheWVySG92ZXJJbmZvRmFjdG9yeSBmcm9tICcuL2xheWVyLWhvdmVyLWluZm8nO1xuaW1wb3J0IENvb3JkaW5hdGVJbmZvRmFjdG9yeSBmcm9tICcuL2Nvb3JkaW5hdGUtaW5mbyc7XG5pbXBvcnQge0Fycm93TGVmdCwgQXJyb3dSaWdodCwgUGlufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ2xvY2FsaXphdGlvbic7XG5pbXBvcnQgVGlwcHkgZnJvbSAnQHRpcHB5anMvcmVhY3QvaGVhZGxlc3MnO1xuaW1wb3J0IHtMYXllckhvdmVyUHJvcH0gZnJvbSAndXRpbHMvbGF5ZXItdXRpbHMnO1xuXG5jb25zdCBNQVhfV0lEVEggPSA1MDA7XG5jb25zdCBNQVhfSEVJR0hUID0gNjAwO1xuXG5jb25zdCBTdHlsZWRNYXBQb3BvdmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWF4LXdpZHRoOiAke01BWF9XSURUSH1weDtcbiAgbWF4LWhlaWdodDogJHtNQVhfSEVJR0hUfXB4O1xuICBwYWRkaW5nOiAxNHB4O1xuICAmID4gKiArICoge1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgfVxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNjcm9sbEJhcn07XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgei1pbmRleDogMTAwMDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgYm94LXNoYWRvdzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJveFNoYWRvd307XG5cbiAgOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IGAke3Byb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZH1kZGB9O1xuICB9XG5cbiAgLnByaW1hcnktbGFiZWwge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm5vdGlmaWNhdGlvbkNvbG9ycy5zdWNjZXNzfTtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gIH1cblxuICAubWFwLXBvcG92ZXJfX2xheWVyLWluZm8sXG4gIC5jb29yZGluZ2F0ZS1ob3Zlci1pbmZvIHtcbiAgICAmID4gKiArICoge1xuICAgICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgcm93LWdhcDogNXB4O1xuICAgIGNvbHVtbi1nYXA6IDVweDtcbiAgfVxuXG4gIC5jb29yZGluZ2F0ZS1ob3Zlci1pbmZvID4gdGFibGUge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvIGF1dG87XG4gIH1cbiAgLm1hcC1wb3BvdmVyX19sYXllci1pbmZvID4gdGFibGUge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvO1xuICB9XG5cbiAgdGJvZHksXG4gIHRyIHtcbiAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgfVxuXG4gIHRkIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIH1cblxuICB0ZC5yb3dfX3ZhbHVlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgfVxuYDtcblxuY29uc3QgUGlubmVkQnV0dG9ucyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAmID4gKiArICoge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG5gO1xuXG5jb25zdCBQb3BvdmVyQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICYgPiAqICsgKiB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcblxuICA6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5saW5rQnRuQ29sb3J9O1xuICB9XG5gO1xuXG5NYXBQb3BvdmVyRmFjdG9yeS5kZXBzID0gW0xheWVySG92ZXJJbmZvRmFjdG9yeSwgQ29vcmRpbmF0ZUluZm9GYWN0b3J5XTtcblxuZnVuY3Rpb24gem9vbUJldHdlZW5MaW1pdHModmlzaWJpbGl0eUJ5Wm9vbSwgem9vbSkge1xuICBpZiAodmlzaWJpbGl0eUJ5Wm9vbSkge1xuICAgIGNvbnN0IHJvdW5kZWRab29tID0gTWF0aC5yb3VuZCh6b29tKTtcbiAgICBjb25zdCBjdXJyZW50Wm9vbVVuZGVyTWluID0gcm91bmRlZFpvb20gPCB2aXNpYmlsaXR5Qnlab29tPy5taW47XG4gICAgY29uc3QgY3VycmVudFpvb21PdmVyTWF4ID0gcm91bmRlZFpvb20gPiB2aXNpYmlsaXR5Qnlab29tPy5tYXg7XG4gICAgaWYgKGN1cnJlbnRab29tVW5kZXJNaW4gfHwgY3VycmVudFpvb21PdmVyTWF4KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVWaXJ0dWFsUmVmZXJlbmNlKGNvbnRhaW5lciwgeCwgeSwgc2l6ZSA9IDApIHtcbiAgY29uc3QgYm91bmRzID1cbiAgICBjb250YWluZXIgJiYgY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCA/IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6IHt9O1xuICBjb25zdCBsZWZ0ID0gKGJvdW5kcy5sZWZ0IHx8IDApICsgeCAtIHNpemUgLyAyO1xuICBjb25zdCB0b3AgPSAoYm91bmRzLnRvcCB8fCAwKSArIHkgLSBzaXplIC8gMjtcbiAgcmV0dXJuIHtcbiAgICBsZWZ0LFxuICAgIHRvcCxcbiAgICByaWdodDogbGVmdCArIHNpemUsXG4gICAgYm90dG9tOiB0b3AgKyBzaXplLFxuICAgIHdpZHRoOiBzaXplLFxuICAgIGhlaWdodDogc2l6ZVxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRPZmZzZXRGb3JQbGFjZW1lbnQoe3BsYWNlbWVudCwgcmVmZXJlbmNlLCBwb3BwZXJ9LCBnYXAgPSAyMCkge1xuICBzd2l0Y2ggKHBsYWNlbWVudCkge1xuICAgIGNhc2UgJ3RvcC1zdGFydCc6XG4gICAgY2FzZSAnYm90dG9tLXN0YXJ0JzpcbiAgICAgIHJldHVybiBbZ2FwLCBnYXBdO1xuICAgIGNhc2UgJ3RvcC1lbmQnOlxuICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxuICAgICAgcmV0dXJuIFstZ2FwLCBnYXBdO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gWzAsIDBdO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFBvcHBlck9wdGlvbnMoY29udGFpbmVyKSB7XG4gIHJldHVybiB7XG4gICAgbW9kaWZpZXJzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdwcmV2ZW50T3ZlcmZsb3cnLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgYm91bmRhcnk6IGNvbnRhaW5lclxuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5leHBvcnQgdHlwZSBNYXBQb3BvdmVyUHJvcHMgPSB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICBmcm96ZW4/OiBib29sZWFuO1xuICBjb29yZGluYXRlOiBbbnVtYmVyLCBudW1iZXJdIHwgYm9vbGVhbjtcbiAgbGF5ZXJIb3ZlclByb3A6IExheWVySG92ZXJQcm9wIHwgbnVsbDtcbiAgaXNCYXNlPzogYm9vbGVhbjtcbiAgem9vbTogbnVtYmVyO1xuICBjb250YWluZXI/OiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG59O1xuXG50eXBlIEludGxQcm9wcyA9IHtcbiAgaW50bDogSW50bFNoYXBlO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFwUG9wb3ZlckZhY3RvcnkoXG4gIExheWVySG92ZXJJbmZvOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckhvdmVySW5mb0ZhY3Rvcnk+LFxuICBDb29yZGluYXRlSW5mbzogUmV0dXJuVHlwZTx0eXBlb2YgQ29vcmRpbmF0ZUluZm9GYWN0b3J5PlxuKSB7XG4gIC8qKiBAdHlwZSB7dHlwZW9mIGltcG9ydCgnLi9tYXAtcG9wb3ZlcicpLk1hcFBvcG92ZXJ9ICovXG4gIGNvbnN0IE1hcFBvcG92ZXI6IFJlYWN0LkZDPE1hcFBvcG92ZXJQcm9wcyAmIEludGxQcm9wcz4gPSAoe1xuICAgIHgsXG4gICAgeSxcbiAgICBmcm96ZW4sXG4gICAgY29vcmRpbmF0ZSxcbiAgICBsYXllckhvdmVyUHJvcCxcbiAgICBpc0Jhc2UsXG4gICAgem9vbSxcbiAgICBjb250YWluZXIsXG4gICAgb25DbG9zZVxuICB9KSA9PiB7XG4gICAgY29uc3QgW2hvcml6b250YWxQbGFjZW1lbnQsIHNldEhvcml6b250YWxQbGFjZW1lbnRdID0gdXNlU3RhdGUoJ3N0YXJ0Jyk7XG4gICAgY29uc3QgbW92ZUxlZnQgPSAoKSA9PiBzZXRIb3Jpem9udGFsUGxhY2VtZW50KCdlbmQnKTtcbiAgICBjb25zdCBtb3ZlUmlnaHQgPSAoKSA9PiBzZXRIb3Jpem9udGFsUGxhY2VtZW50KCdzdGFydCcpO1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBjb25zdCB2aXNpYmlsaXR5Qnlab29tID0gbGF5ZXJIb3ZlclByb3A/LmxheWVyLmNvbmZpZz8udmlzaWJpbGl0eUJ5Wm9vbTtcbiAgICBjb25zdCBpc1Zpc2libGUgPSB2aXNpYmlsaXR5Qnlab29tID8gem9vbUJldHdlZW5MaW1pdHModmlzaWJpbGl0eUJ5Wm9vbSwgem9vbSkgOiB0cnVlO1xuICAgIHJldHVybiAoXG4gICAgICA8VGlwcHlcbiAgICAgICAgcG9wcGVyT3B0aW9ucz17Z2V0UG9wcGVyT3B0aW9ucyhjb250YWluZXIpfVxuICAgICAgICB6SW5kZXg9ezk5OX0gLyogc2hvdWxkIGJlIGJlbG93IE1vZGFsIHdoaWNoIGhhcyB6SW5kZXg9MTAwMCAqL1xuICAgICAgICB2aXNpYmxlPXtpc1Zpc2libGV9XG4gICAgICAgIGludGVyYWN0aXZlPXt0cnVlfVxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgIGdldFJlZmVyZW5jZUNsaWVudFJlY3Q9eygpID0+IGNyZWF0ZVZpcnR1YWxSZWZlcmVuY2UoY29udGFpbmVyLCB4LCB5KX1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBwbGFjZW1lbnQ9e2Bib3R0b20tJHtob3Jpem9udGFsUGxhY2VtZW50fWB9XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgb2Zmc2V0PXtnZXRPZmZzZXRGb3JQbGFjZW1lbnR9XG4gICAgICAgIGFwcGVuZFRvPXtkb2N1bWVudC5ib2R5fVxuICAgICAgICByZW5kZXI9e2F0dHJzID0+IChcbiAgICAgICAgICA8U3R5bGVkTWFwUG9wb3ZlciB7Li4uYXR0cnN9IGNsYXNzTmFtZT1cIm1hcC1wb3BvdmVyXCI+XG4gICAgICAgICAgICB7ZnJvemVuID8gKFxuICAgICAgICAgICAgICA8UGlubmVkQnV0dG9ucz5cbiAgICAgICAgICAgICAgICB7aG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gJ3N0YXJ0JyAmJiAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSWNvbiBjbGFzc05hbWU9XCJwb3BvdmVyLWFycm93LWxlZnRcIiBvbkNsaWNrPXttb3ZlTGVmdH0+XG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd0xlZnQgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDxTdHlsZWRJY29uIGNsYXNzTmFtZT1cInBvcG92ZXItcGluXCIgb25DbGljaz17b25DbG9zZX0+XG4gICAgICAgICAgICAgICAgICA8UGluIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkSWNvbj5cbiAgICAgICAgICAgICAgICB7aG9yaXpvbnRhbFBsYWNlbWVudCA9PT0gJ2VuZCcgJiYgKFxuICAgICAgICAgICAgICAgICAgPFN0eWxlZEljb24gY2xhc3NOYW1lPVwicG9wb3Zlci1hcnJvdy1yaWdodFwiIG9uQ2xpY2s9e21vdmVSaWdodH0+XG4gICAgICAgICAgICAgICAgICAgIDxBcnJvd1JpZ2h0IC8+XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZEljb24+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7aXNCYXNlICYmIChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHJpbWFyeS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cIm1hcFBvcG92ZXIucHJpbWFyeVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1Bpbm5lZEJ1dHRvbnM+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxQb3BvdmVyQ29udGVudD5cbiAgICAgICAgICAgICAge0FycmF5LmlzQXJyYXkoY29vcmRpbmF0ZSkgJiYgPENvb3JkaW5hdGVJbmZvIGNvb3JkaW5hdGU9e2Nvb3JkaW5hdGV9IHpvb209e3pvb219IC8+fVxuICAgICAgICAgICAgICB7bGF5ZXJIb3ZlclByb3AgJiYgPExheWVySG92ZXJJbmZvIHsuLi5sYXllckhvdmVyUHJvcH0gLz59XG4gICAgICAgICAgICA8L1BvcG92ZXJDb250ZW50PlxuICAgICAgICAgIDwvU3R5bGVkTWFwUG9wb3Zlcj5cbiAgICAgICAgKX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIGluamVjdEludGwoTWFwUG9wb3Zlcik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBb0JBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxlQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxlQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxhQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxTQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFBNEMsU0FBQVMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVgsd0JBQUFXLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxXQUFBSyxPQUFBLEVBQUFMLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxDQUFBSCxPQUFBLEdBQUFMLENBQUEsRUFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFlLEdBQUEsQ0FBQWxCLENBQUEsRUFBQVEsQ0FBQSxHQUFBQSxDQUFBO0FBM0I1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFZQSxNQUFNVyxTQUFTLEdBQUcsR0FBRztBQUNyQixNQUFNQyxVQUFVLEdBQUcsR0FBRztBQUV0QixNQUFNQyxnQkFBZ0IsR0FBR0MseUJBQU0sQ0FBQ0MsR0FBRztBQUNuQztBQUNBO0FBQ0EsZUFBZUosU0FBUztBQUN4QixnQkFBZ0JDLFVBQVU7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJSSxLQUFLLElBQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxTQUFTO0FBQ2xDLGlCQUFpQkYsS0FBSyxJQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0UsVUFBVTtBQUNoRDtBQUNBO0FBQ0Esc0JBQXNCSCxLQUFLLElBQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDRyxlQUFlO0FBQzFELFdBQVdKLEtBQUssSUFBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNJLFNBQVM7QUFDekM7QUFDQTtBQUNBLGdCQUFnQkwsS0FBSyxJQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0ssY0FBYztBQUNuRDtBQUNBO0FBQ0Esd0JBQXdCTixLQUFLLElBQUksR0FBR0EsS0FBSyxDQUFDQyxLQUFLLENBQUNHLGVBQWUsSUFBSTtBQUNuRTtBQUNBO0FBQ0E7QUFDQSxhQUFhSixLQUFLLElBQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDTSxrQkFBa0IsQ0FBQ0MsT0FBTztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYVIsS0FBSyxJQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0ksU0FBUztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYUwsS0FBSyxJQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1EsV0FBVztBQUM3QztBQUNBLENBQUM7QUFFRCxNQUFNQyxhQUFhLEdBQUdaLHlCQUFNLENBQUNDLEdBQUc7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBRUQsTUFBTVksY0FBYyxHQUFHYix5QkFBTSxDQUFDQyxHQUFHO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBRUQsTUFBTWEsVUFBVSxHQUFHZCx5QkFBTSxDQUFDQyxHQUFHO0FBQzdCLFdBQVdDLEtBQUssSUFBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNZLFdBQVc7QUFDM0M7QUFDQTtBQUNBO0FBQ0EsYUFBYWIsS0FBSyxJQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ2EsWUFBWTtBQUM5QztBQUNBLENBQUM7QUFFREMsaUJBQWlCLENBQUNDLElBQUksR0FBRyxDQUFDQyx1QkFBcUIsRUFBRUMsdUJBQXFCLENBQUM7QUFFdkUsU0FBU0MsaUJBQWlCQSxDQUFDQyxnQkFBZ0IsRUFBRUMsSUFBSSxFQUFFO0VBQ2pELElBQUlELGdCQUFnQixFQUFFO0lBQ3BCLE1BQU1FLFdBQVcsR0FBR0MsSUFBSSxDQUFDQyxLQUFLLENBQUNILElBQUksQ0FBQztJQUNwQyxNQUFNSSxtQkFBbUIsR0FBR0gsV0FBVyxJQUFHRixnQkFBZ0IsYUFBaEJBLGdCQUFnQix1QkFBaEJBLGdCQUFnQixDQUFFTSxHQUFHO0lBQy9ELE1BQU1DLGtCQUFrQixHQUFHTCxXQUFXLElBQUdGLGdCQUFnQixhQUFoQkEsZ0JBQWdCLHVCQUFoQkEsZ0JBQWdCLENBQUVRLEdBQUc7SUFDOUQsSUFBSUgsbUJBQW1CLElBQUlFLGtCQUFrQixFQUFFO01BQzdDLE9BQU8sS0FBSztJQUNkO0VBQ0Y7RUFDQSxPQUFPLElBQUk7QUFDYjtBQUVBLFNBQVNFLHNCQUFzQkEsQ0FBQ0MsU0FBUyxFQUFFQyxDQUFDLEVBQUVDLENBQUMsRUFBWTtFQUFBLElBQVZDLElBQUksR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsQ0FBQztFQUN2RCxNQUFNRyxNQUFNLEdBQ1ZQLFNBQVMsSUFBSUEsU0FBUyxDQUFDUSxxQkFBcUIsR0FBR1IsU0FBUyxDQUFDUSxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ3ZGLE1BQU1DLElBQUksR0FBRyxDQUFDRixNQUFNLENBQUNFLElBQUksSUFBSSxDQUFDLElBQUlSLENBQUMsR0FBR0UsSUFBSSxHQUFHLENBQUM7RUFDOUMsTUFBTU8sR0FBRyxHQUFHLENBQUNILE1BQU0sQ0FBQ0csR0FBRyxJQUFJLENBQUMsSUFBSVIsQ0FBQyxHQUFHQyxJQUFJLEdBQUcsQ0FBQztFQUM1QyxPQUFPO0lBQ0xNLElBQUk7SUFDSkMsR0FBRztJQUNIQyxLQUFLLEVBQUVGLElBQUksR0FBR04sSUFBSTtJQUNsQlMsTUFBTSxFQUFFRixHQUFHLEdBQUdQLElBQUk7SUFDbEJVLEtBQUssRUFBRVYsSUFBSTtJQUNYVyxNQUFNLEVBQUVYO0VBQ1YsQ0FBQztBQUNIO0FBRUEsU0FBU1kscUJBQXFCQSxDQUFBQyxJQUFBLEVBQTJDO0VBQUEsSUFBMUM7SUFBQ0MsU0FBUztJQUFFQyxTQUFTO0lBQUVDO0VBQU0sQ0FBQyxHQUFBSCxJQUFBO0VBQUEsSUFBRUksR0FBRyxHQUFBaEIsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsRUFBRTtFQUNyRSxRQUFRYSxTQUFTO0lBQ2YsS0FBSyxXQUFXO0lBQ2hCLEtBQUssY0FBYztNQUNqQixPQUFPLENBQUNHLEdBQUcsRUFBRUEsR0FBRyxDQUFDO0lBQ25CLEtBQUssU0FBUztJQUNkLEtBQUssWUFBWTtNQUNmLE9BQU8sQ0FBQyxDQUFDQSxHQUFHLEVBQUVBLEdBQUcsQ0FBQztJQUNwQjtNQUNFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBQ2pCO0FBQ0Y7QUFFQSxTQUFTQyxnQkFBZ0JBLENBQUNyQixTQUFTLEVBQUU7RUFDbkMsT0FBTztJQUNMc0IsU0FBUyxFQUFFLENBQ1Q7TUFDRUMsSUFBSSxFQUFFLGlCQUFpQjtNQUN2QkMsT0FBTyxFQUFFO1FBQ1BDLFFBQVEsRUFBRXpCO01BQ1o7SUFDRixDQUFDO0VBRUwsQ0FBQztBQUNIO0FBa0JlLFNBQVNmLGlCQUFpQkEsQ0FDdkN5QyxjQUF3RCxFQUN4REMsY0FBd0QsRUFDeEQ7RUFDQTtFQUNBLE1BQU1DLFVBQWlELEdBQUdDLEtBQUEsSUFVcEQ7SUFBQSxJQUFBQyxxQkFBQTtJQUFBLElBVnFEO01BQ3pEN0IsQ0FBQztNQUNEQyxDQUFDO01BQ0Q2QixNQUFNO01BQ05DLFVBQVU7TUFDVkMsY0FBYztNQUNkQyxNQUFNO01BQ04zQyxJQUFJO01BQ0pTLFNBQVM7TUFDVG1DO0lBQ0YsQ0FBQyxHQUFBTixLQUFBO0lBQ0MsTUFBTSxDQUFDTyxtQkFBbUIsRUFBRUMsc0JBQXNCLENBQUMsR0FBRyxJQUFBQyxlQUFRLEVBQUMsT0FBTyxDQUFDO0lBQ3ZFLE1BQU1DLFFBQVEsR0FBR0EsQ0FBQSxLQUFNRixzQkFBc0IsQ0FBQyxLQUFLLENBQUM7SUFDcEQsTUFBTUcsU0FBUyxHQUFHQSxDQUFBLEtBQU1ILHNCQUFzQixDQUFDLE9BQU8sQ0FBQztJQUN2RDtJQUNBLE1BQU0vQyxnQkFBZ0IsR0FBRzJDLGNBQWMsYUFBZEEsY0FBYyx3QkFBQUgscUJBQUEsR0FBZEcsY0FBYyxDQUFFUSxLQUFLLENBQUNDLE1BQU0sY0FBQVoscUJBQUEsdUJBQTVCQSxxQkFBQSxDQUE4QnhDLGdCQUFnQjtJQUN2RSxNQUFNcUQsU0FBUyxHQUFHckQsZ0JBQWdCLEdBQUdELGlCQUFpQixDQUFDQyxnQkFBZ0IsRUFBRUMsSUFBSSxDQUFDLEdBQUcsSUFBSTtJQUNyRixvQkFDRXpELE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQTZGLGFBQUEsQ0FBQ3BHLFNBQUEsQ0FBQU8sT0FBSztNQUNKOEYsYUFBYSxFQUFFeEIsZ0JBQWdCLENBQUNyQixTQUFTLENBQUU7TUFDM0M4QyxNQUFNLEVBQUUsR0FBSSxDQUFDO01BQ2JDLE9BQU8sRUFBRUosU0FBVTtNQUNuQkssV0FBVyxFQUFFO01BQ2I7TUFBQTtNQUNBQyxzQkFBc0IsRUFBRUEsQ0FBQSxLQUFNbEQsc0JBQXNCLENBQUNDLFNBQVMsRUFBRUMsQ0FBQyxFQUFFQyxDQUFDO01BQ3BFO01BQUE7TUFDQWUsU0FBUyxFQUFFLFVBQVVtQixtQkFBbUI7TUFDeEM7TUFBQTtNQUNBYyxNQUFNLEVBQUVuQyxxQkFBc0I7TUFDOUJvQyxRQUFRLEVBQUVDLFFBQVEsQ0FBQ0MsSUFBSztNQUN4QkMsTUFBTSxFQUFFQyxLQUFLLGlCQUNYekgsTUFBQSxDQUFBaUIsT0FBQSxDQUFBNkYsYUFBQSxDQUFDN0UsZ0JBQWdCLE1BQUF5RixTQUFBLENBQUF6RyxPQUFBLE1BQUt3RyxLQUFLO1FBQUVFLFNBQVMsRUFBQztNQUFhLElBQ2pEMUIsTUFBTSxnQkFDTGpHLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQTZGLGFBQUEsQ0FBQ2hFLGFBQWEsUUFDWHdELG1CQUFtQixLQUFLLE9BQU8saUJBQzlCdEcsTUFBQSxDQUFBaUIsT0FBQSxDQUFBNkYsYUFBQSxDQUFDOUQsVUFBVTtRQUFDMkUsU0FBUyxFQUFDLG9CQUFvQjtRQUFDQyxPQUFPLEVBQUVuQjtNQUFTLGdCQUMzRHpHLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQTZGLGFBQUEsQ0FBQ3ZHLE1BQUEsQ0FBQXNILFNBQVMsTUFBRSxDQUNGLENBQ2IsZUFDRDdILE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQTZGLGFBQUEsQ0FBQzlELFVBQVU7UUFBQzJFLFNBQVMsRUFBQyxhQUFhO1FBQUNDLE9BQU8sRUFBRXZCO01BQVEsZ0JBQ25EckcsTUFBQSxDQUFBaUIsT0FBQSxDQUFBNkYsYUFBQSxDQUFDdkcsTUFBQSxDQUFBdUgsR0FBRztRQUFDOUMsTUFBTSxFQUFDO01BQU0sQ0FBRSxDQUNWLENBQUMsRUFDWnNCLG1CQUFtQixLQUFLLEtBQUssaUJBQzVCdEcsTUFBQSxDQUFBaUIsT0FBQSxDQUFBNkYsYUFBQSxDQUFDOUQsVUFBVTtRQUFDMkUsU0FBUyxFQUFDLHFCQUFxQjtRQUFDQyxPQUFPLEVBQUVsQjtNQUFVLGdCQUM3RDFHLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQTZGLGFBQUEsQ0FBQ3ZHLE1BQUEsQ0FBQXdILFVBQVUsTUFBRSxDQUNILENBQ2IsRUFDQTNCLE1BQU0saUJBQ0xwRyxNQUFBLENBQUFpQixPQUFBLENBQUE2RixhQUFBO1FBQUthLFNBQVMsRUFBQztNQUFlLGdCQUM1QjNILE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQTZGLGFBQUEsQ0FBQ3JHLGFBQUEsQ0FBQXVILGdCQUFnQjtRQUFDQyxFQUFFLEVBQUM7TUFBb0IsQ0FBRSxDQUN4QyxDQUVNLENBQUMsR0FDZCxJQUFJLGVBQ1JqSSxNQUFBLENBQUFpQixPQUFBLENBQUE2RixhQUFBLENBQUMvRCxjQUFjLFFBQ1ptRixLQUFLLENBQUNDLE9BQU8sQ0FBQ2pDLFVBQVUsQ0FBQyxpQkFBSWxHLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQTZGLGFBQUEsQ0FBQ2pCLGNBQWM7UUFBQ0ssVUFBVSxFQUFFQSxVQUFXO1FBQUN6QyxJQUFJLEVBQUVBO01BQUssQ0FBRSxDQUFDLEVBQ25GMEMsY0FBYyxpQkFBSW5HLE1BQUEsQ0FBQWlCLE9BQUEsQ0FBQTZGLGFBQUEsQ0FBQ2xCLGNBQWMsRUFBS08sY0FBaUIsQ0FDMUMsQ0FDQTtJQUNsQixDQUNILENBQUM7RUFFTixDQUFDO0VBQ0QsT0FBTyxJQUFBaUMscUJBQVUsRUFBQ3RDLFVBQVUsQ0FBQztBQUMvQiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,19 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = void 0;
7
+ exports.default = void 0;
9
8
  var _react = _interopRequireWildcard(require("react"));
10
9
  var _classnames = _interopRequireDefault(require("classnames"));
11
10
  var _styledComponents = require("../common/styled-components");
12
11
  var _icons = require("../common/icons");
13
12
  var _localization = require("../../localization");
14
13
  var _tippyTooltip = _interopRequireDefault(require("../common/tippy-tooltip"));
15
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
16
  // Copyright (c) 2022 Uber Technologies, Inc.
18
17
  //
19
18
  // Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -36,54 +35,51 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
36
35
 
37
36
  SplitMapButtonFactory.deps = [];
38
37
  function SplitMapButtonFactory() {
39
- var defaultActionIcons = {
40
- "delete": _icons.Delete,
38
+ const defaultActionIcons = {
39
+ delete: _icons.Delete,
41
40
  split: _icons.Split
42
41
  };
43
42
 
44
43
  /** @type {import('./split-map-button').SplitMapButtonComponent} */
45
- var SplitMapButton = function SplitMapButton(_ref) {
46
- var isSplit = _ref.isSplit,
47
- mapIndex = _ref.mapIndex,
48
- onToggleSplitMap = _ref.onToggleSplitMap,
49
- _ref$actionIcons = _ref.actionIcons,
50
- actionIcons = _ref$actionIcons === void 0 ? defaultActionIcons : _ref$actionIcons,
51
- mapControls = _ref.mapControls,
52
- readOnly = _ref.readOnly;
53
- var splitMap = (mapControls === null || mapControls === void 0 ? void 0 : mapControls.splitMap) || {};
54
- var onClick = (0, _react.useCallback)(function (event) {
44
+ const SplitMapButton = _ref => {
45
+ let {
46
+ isSplit,
47
+ mapIndex,
48
+ onToggleSplitMap,
49
+ actionIcons = defaultActionIcons,
50
+ mapControls,
51
+ readOnly
52
+ } = _ref;
53
+ const splitMap = (mapControls === null || mapControls === void 0 ? void 0 : mapControls.splitMap) || {};
54
+ const onClick = (0, _react.useCallback)(event => {
55
55
  event.preventDefault();
56
56
  onToggleSplitMap(isSplit ? mapIndex : undefined);
57
57
  }, [isSplit, mapIndex, onToggleSplitMap]);
58
- var isVisible = (0, _react.useMemo)(function () {
59
- return splitMap.show && readOnly !== true;
60
- }, [splitMap.show, readOnly]);
58
+ const isVisible = (0, _react.useMemo)(() => splitMap.show && readOnly !== true, [splitMap.show, readOnly]);
61
59
  if (!splitMap.show) {
62
60
  return null;
63
61
  }
64
- return isVisible ? /*#__PURE__*/_react["default"].createElement(_tippyTooltip["default"], {
62
+ return isVisible ? /*#__PURE__*/_react.default.createElement(_tippyTooltip.default, {
65
63
  placement: "left",
66
- render: function render() {
67
- return /*#__PURE__*/_react["default"].createElement("div", {
68
- id: "action-toggle"
69
- }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
70
- id: isSplit ? 'tooltip.closePanel' : 'tooltip.switchToDualView'
71
- }));
72
- }
73
- }, /*#__PURE__*/_react["default"].createElement(_styledComponents.MapControlButton, {
64
+ render: () => /*#__PURE__*/_react.default.createElement("div", {
65
+ id: "action-toggle"
66
+ }, /*#__PURE__*/_react.default.createElement(_localization.FormattedMessage, {
67
+ id: isSplit ? 'tooltip.closePanel' : 'tooltip.switchToDualView'
68
+ }))
69
+ }, /*#__PURE__*/_react.default.createElement(_styledComponents.MapControlButton, {
74
70
  active: isSplit,
75
71
  onClick: onClick,
76
- className: (0, _classnames["default"])('map-control-button', 'split-map', {
72
+ className: (0, _classnames.default)('map-control-button', 'split-map', {
77
73
  'close-map': isSplit
78
74
  })
79
- }, isSplit ? /*#__PURE__*/_react["default"].createElement(actionIcons["delete"], {
75
+ }, isSplit ? /*#__PURE__*/_react.default.createElement(actionIcons.delete, {
80
76
  height: "18px"
81
- }) : /*#__PURE__*/_react["default"].createElement(actionIcons.split, {
77
+ }) : /*#__PURE__*/_react.default.createElement(actionIcons.split, {
82
78
  height: "18px"
83
79
  }))) : null;
84
80
  };
85
81
  SplitMapButton.displayName = 'SplitMapButton';
86
- return /*#__PURE__*/_react["default"].memo(SplitMapButton);
82
+ return /*#__PURE__*/_react.default.memo(SplitMapButton);
87
83
  }
88
- var _default = exports["default"] = SplitMapButtonFactory;
89
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pY29ucyIsIl9sb2NhbGl6YXRpb24iLCJfdGlwcHlUb29sdGlwIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiU3BsaXRNYXBCdXR0b25GYWN0b3J5IiwiZGVwcyIsImRlZmF1bHRBY3Rpb25JY29ucyIsIkRlbGV0ZSIsInNwbGl0IiwiU3BsaXQiLCJTcGxpdE1hcEJ1dHRvbiIsIl9yZWYiLCJpc1NwbGl0IiwibWFwSW5kZXgiLCJvblRvZ2dsZVNwbGl0TWFwIiwiX3JlZiRhY3Rpb25JY29ucyIsImFjdGlvbkljb25zIiwibWFwQ29udHJvbHMiLCJyZWFkT25seSIsInNwbGl0TWFwIiwib25DbGljayIsInVzZUNhbGxiYWNrIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInVuZGVmaW5lZCIsImlzVmlzaWJsZSIsInVzZU1lbW8iLCJzaG93IiwiY3JlYXRlRWxlbWVudCIsInBsYWNlbWVudCIsInJlbmRlciIsImlkIiwiRm9ybWF0dGVkTWVzc2FnZSIsIk1hcENvbnRyb2xCdXR0b24iLCJhY3RpdmUiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwiaGVpZ2h0IiwiZGlzcGxheU5hbWUiLCJSZWFjdCIsIm1lbW8iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tYXAvc3BsaXQtbWFwLWJ1dHRvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50VHlwZSwgdXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtNYXBDb250cm9sQnV0dG9ufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0RlbGV0ZSwgU3BsaXR9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnLi4vLi4vbG9jYWxpemF0aW9uJztcbmltcG9ydCBUaXBweVRvb2x0aXAgZnJvbSAnLi4vY29tbW9uL3RpcHB5LXRvb2x0aXAnO1xuaW1wb3J0IHtNYXBDb250cm9sLCBNYXBDb250cm9sc30gZnJvbSAncmVkdWNlcnMnO1xuXG5TcGxpdE1hcEJ1dHRvbkZhY3RvcnkuZGVwcyA9IFtdO1xuXG5pbnRlcmZhY2UgU3BsaXRNYXBCdXR0b25JY29ucyB7XG4gIGRlbGV0ZTogQ29tcG9uZW50VHlwZTxhbnk+O1xuICBzcGxpdDogQ29tcG9uZW50VHlwZTxhbnk+O1xufVxuXG5leHBvcnQgdHlwZSBTcGxpdE1hcEJ1dHRvblByb3BzID0ge1xuICBpc1NwbGl0OiBib29sZWFuO1xuICBtYXBJbmRleDogbnVtYmVyO1xuICBvblRvZ2dsZVNwbGl0TWFwOiAoaW5kZXg/OiBudW1iZXIpID0+IHZvaWQ7XG4gIGFjdGlvbkljb25zOiBTcGxpdE1hcEJ1dHRvbkljb25zO1xuICByZWFkT25seTogYm9vbGVhbjtcbiAgbWFwQ29udHJvbHM6IE1hcENvbnRyb2xzO1xufTtcblxuZnVuY3Rpb24gU3BsaXRNYXBCdXR0b25GYWN0b3J5KCkge1xuICBjb25zdCBkZWZhdWx0QWN0aW9uSWNvbnMgPSB7XG4gICAgZGVsZXRlOiBEZWxldGUsXG4gICAgc3BsaXQ6IFNwbGl0XG4gIH07XG5cbiAgLyoqIEB0eXBlIHtpbXBvcnQoJy4vc3BsaXQtbWFwLWJ1dHRvbicpLlNwbGl0TWFwQnV0dG9uQ29tcG9uZW50fSAqL1xuICBjb25zdCBTcGxpdE1hcEJ1dHRvbjogUmVhY3QuRkM8U3BsaXRNYXBCdXR0b25Qcm9wcz4gPSAoe1xuICAgIGlzU3BsaXQsXG4gICAgbWFwSW5kZXgsXG4gICAgb25Ub2dnbGVTcGxpdE1hcCxcbiAgICBhY3Rpb25JY29ucyA9IGRlZmF1bHRBY3Rpb25JY29ucyxcbiAgICBtYXBDb250cm9scyxcbiAgICByZWFkT25seVxuICB9KSA9PiB7XG4gICAgY29uc3Qgc3BsaXRNYXAgPSBtYXBDb250cm9scz8uc3BsaXRNYXAgfHwgKHt9IGFzIE1hcENvbnRyb2wpO1xuICAgIGNvbnN0IG9uQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgb25Ub2dnbGVTcGxpdE1hcChpc1NwbGl0ID8gbWFwSW5kZXggOiB1bmRlZmluZWQpO1xuICAgICAgfSxcbiAgICAgIFtpc1NwbGl0LCBtYXBJbmRleCwgb25Ub2dnbGVTcGxpdE1hcF1cbiAgICApO1xuXG4gICAgY29uc3QgaXNWaXNpYmxlID0gdXNlTWVtbygoKSA9PiBzcGxpdE1hcC5zaG93ICYmIHJlYWRPbmx5ICE9PSB0cnVlLCBbc3BsaXRNYXAuc2hvdywgcmVhZE9ubHldKTtcblxuICAgIGlmICghc3BsaXRNYXAuc2hvdykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBpc1Zpc2libGUgPyAoXG4gICAgICA8VGlwcHlUb29sdGlwXG4gICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICByZW5kZXI9eygpID0+IChcbiAgICAgICAgICA8ZGl2IGlkPVwiYWN0aW9uLXRvZ2dsZVwiPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e2lzU3BsaXQgPyAndG9vbHRpcC5jbG9zZVBhbmVsJyA6ICd0b29sdGlwLnN3aXRjaFRvRHVhbFZpZXcnfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICA8TWFwQ29udHJvbEJ1dHRvblxuICAgICAgICAgIGFjdGl2ZT17aXNTcGxpdH1cbiAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnbWFwLWNvbnRyb2wtYnV0dG9uJywgJ3NwbGl0LW1hcCcsIHsnY2xvc2UtbWFwJzogaXNTcGxpdH0pfVxuICAgICAgICA+XG4gICAgICAgICAge2lzU3BsaXQgPyA8YWN0aW9uSWNvbnMuZGVsZXRlIGhlaWdodD1cIjE4cHhcIiAvPiA6IDxhY3Rpb25JY29ucy5zcGxpdCBoZWlnaHQ9XCIxOHB4XCIgLz59XG4gICAgICAgIDwvTWFwQ29udHJvbEJ1dHRvbj5cbiAgICAgIDwvVGlwcHlUb29sdGlwPlxuICAgICkgOiBudWxsO1xuICB9O1xuXG4gIFNwbGl0TWFwQnV0dG9uLmRpc3BsYXlOYW1lID0gJ1NwbGl0TWFwQnV0dG9uJztcbiAgcmV0dXJuIFJlYWN0Lm1lbW8oU3BsaXRNYXBCdXR0b24pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBTcGxpdE1hcEJ1dHRvbkZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBb0JBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtB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
84
+ var _default = exports.default = SplitMapButtonFactory;
85
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pY29ucyIsIl9sb2NhbGl6YXRpb24iLCJfdGlwcHlUb29sdGlwIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiU3BsaXRNYXBCdXR0b25GYWN0b3J5IiwiZGVwcyIsImRlZmF1bHRBY3Rpb25JY29ucyIsImRlbGV0ZSIsIkRlbGV0ZSIsInNwbGl0IiwiU3BsaXQiLCJTcGxpdE1hcEJ1dHRvbiIsIl9yZWYiLCJpc1NwbGl0IiwibWFwSW5kZXgiLCJvblRvZ2dsZVNwbGl0TWFwIiwiYWN0aW9uSWNvbnMiLCJtYXBDb250cm9scyIsInJlYWRPbmx5Iiwic3BsaXRNYXAiLCJvbkNsaWNrIiwidXNlQ2FsbGJhY2siLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwidW5kZWZpbmVkIiwiaXNWaXNpYmxlIiwidXNlTWVtbyIsInNob3ciLCJjcmVhdGVFbGVtZW50IiwicGxhY2VtZW50IiwicmVuZGVyIiwiaWQiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiTWFwQ29udHJvbEJ1dHRvbiIsImFjdGl2ZSIsImNsYXNzTmFtZSIsImNsYXNzbmFtZXMiLCJoZWlnaHQiLCJkaXNwbGF5TmFtZSIsIlJlYWN0IiwibWVtbyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21hcC9zcGxpdC1tYXAtYnV0dG9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnRUeXBlLCB1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge01hcENvbnRyb2xCdXR0b259IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7RGVsZXRlLCBTcGxpdH0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICcuLi8uLi9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IFRpcHB5VG9vbHRpcCBmcm9tICcuLi9jb21tb24vdGlwcHktdG9vbHRpcCc7XG5pbXBvcnQge01hcENvbnRyb2wsIE1hcENvbnRyb2xzfSBmcm9tICdyZWR1Y2Vycyc7XG5cblNwbGl0TWFwQnV0dG9uRmFjdG9yeS5kZXBzID0gW107XG5cbmludGVyZmFjZSBTcGxpdE1hcEJ1dHRvbkljb25zIHtcbiAgZGVsZXRlOiBDb21wb25lbnRUeXBlPGFueT47XG4gIHNwbGl0OiBDb21wb25lbnRUeXBlPGFueT47XG59XG5cbmV4cG9ydCB0eXBlIFNwbGl0TWFwQnV0dG9uUHJvcHMgPSB7XG4gIGlzU3BsaXQ6IGJvb2xlYW47XG4gIG1hcEluZGV4OiBudW1iZXI7XG4gIG9uVG9nZ2xlU3BsaXRNYXA6IChpbmRleD86IG51bWJlcikgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM6IFNwbGl0TWFwQnV0dG9uSWNvbnM7XG4gIHJlYWRPbmx5OiBib29sZWFuO1xuICBtYXBDb250cm9sczogTWFwQ29udHJvbHM7XG59O1xuXG5mdW5jdGlvbiBTcGxpdE1hcEJ1dHRvbkZhY3RvcnkoKSB7XG4gIGNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgICBkZWxldGU6IERlbGV0ZSxcbiAgICBzcGxpdDogU3BsaXRcbiAgfTtcblxuICAvKiogQHR5cGUge2ltcG9ydCgnLi9zcGxpdC1tYXAtYnV0dG9uJykuU3BsaXRNYXBCdXR0b25Db21wb25lbnR9ICovXG4gIGNvbnN0IFNwbGl0TWFwQnV0dG9uOiBSZWFjdC5GQzxTcGxpdE1hcEJ1dHRvblByb3BzPiA9ICh7XG4gICAgaXNTcGxpdCxcbiAgICBtYXBJbmRleCxcbiAgICBvblRvZ2dsZVNwbGl0TWFwLFxuICAgIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zLFxuICAgIG1hcENvbnRyb2xzLFxuICAgIHJlYWRPbmx5XG4gIH0pID0+IHtcbiAgICBjb25zdCBzcGxpdE1hcCA9IG1hcENvbnRyb2xzPy5zcGxpdE1hcCB8fCAoe30gYXMgTWFwQ29udHJvbCk7XG4gICAgY29uc3Qgb25DbGljayA9IHVzZUNhbGxiYWNrKFxuICAgICAgZXZlbnQgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBvblRvZ2dsZVNwbGl0TWFwKGlzU3BsaXQgPyBtYXBJbmRleCA6IHVuZGVmaW5lZCk7XG4gICAgICB9LFxuICAgICAgW2lzU3BsaXQsIG1hcEluZGV4LCBvblRvZ2dsZVNwbGl0TWFwXVxuICAgICk7XG5cbiAgICBjb25zdCBpc1Zpc2libGUgPSB1c2VNZW1vKCgpID0+IHNwbGl0TWFwLnNob3cgJiYgcmVhZE9ubHkgIT09IHRydWUsIFtzcGxpdE1hcC5zaG93LCByZWFkT25seV0pO1xuXG4gICAgaWYgKCFzcGxpdE1hcC5zaG93KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmlzaWJsZSA/IChcbiAgICAgIDxUaXBweVRvb2x0aXBcbiAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICAgIHJlbmRlcj17KCkgPT4gKFxuICAgICAgICAgIDxkaXYgaWQ9XCJhY3Rpb24tdG9nZ2xlXCI+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17aXNTcGxpdCA/ICd0b29sdGlwLmNsb3NlUGFuZWwnIDogJ3Rvb2x0aXAuc3dpdGNoVG9EdWFsVmlldyd9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxNYXBDb250cm9sQnV0dG9uXG4gICAgICAgICAgYWN0aXZlPXtpc1NwbGl0fVxuICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdtYXAtY29udHJvbC1idXR0b24nLCAnc3BsaXQtbWFwJywgeydjbG9zZS1tYXAnOiBpc1NwbGl0fSl9XG4gICAgICAgID5cbiAgICAgICAgICB7aXNTcGxpdCA/IDxhY3Rpb25JY29ucy5kZWxldGUgaGVpZ2h0PVwiMThweFwiIC8+IDogPGFjdGlvbkljb25zLnNwbGl0IGhlaWdodD1cIjE4cHhcIiAvPn1cbiAgICAgICAgPC9NYXBDb250cm9sQnV0dG9uPlxuICAgICAgPC9UaXBweVRvb2x0aXA+XG4gICAgKSA6IG51bGw7XG4gIH07XG5cbiAgU3BsaXRNYXBCdXR0b24uZGlzcGxheU5hbWUgPSAnU3BsaXRNYXBCdXR0b24nO1xuICByZXR1cm4gUmVhY3QubWVtbyhTcGxpdE1hcEJ1dHRvbik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNwbGl0TWFwQnV0dG9uRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQW9CQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxp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