@kepler.gl/components 3.2.6 → 3.3.0-alpha.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 (370) hide show
  1. package/dist/annotations/annotation-node.d.ts +11 -0
  2. package/dist/annotations/annotation-node.js +145 -0
  3. package/dist/annotations/annotation-overlay.d.ts +16 -0
  4. package/dist/annotations/annotation-overlay.js +166 -0
  5. package/dist/annotations/annotation-panel.d.ts +24 -0
  6. package/dist/annotations/annotation-panel.js +362 -0
  7. package/dist/annotations/annotation-text.d.ts +16 -0
  8. package/dist/annotations/annotation-text.js +150 -0
  9. package/dist/annotations/annotation-utils.d.ts +39 -0
  10. package/dist/annotations/annotation-utils.js +156 -0
  11. package/dist/annotations/index.d.ts +7 -0
  12. package/dist/annotations/index.js +53 -0
  13. package/dist/annotations/lexical-editor/clickable-link-plugin.d.ts +3 -0
  14. package/dist/annotations/lexical-editor/clickable-link-plugin.js +71 -0
  15. package/dist/annotations/lexical-editor/floating-link-editor.d.ts +1 -0
  16. package/dist/annotations/lexical-editor/floating-link-editor.js +194 -0
  17. package/dist/annotations/lexical-editor/index.d.ts +7 -0
  18. package/dist/annotations/lexical-editor/index.js +78 -0
  19. package/dist/annotations/lexical-editor/lexical-constants.d.ts +12 -0
  20. package/dist/annotations/lexical-editor/lexical-constants.js +22 -0
  21. package/dist/annotations/lexical-editor/lexical-nodes.d.ts +3 -0
  22. package/dist/annotations/lexical-editor/lexical-nodes.js +13 -0
  23. package/dist/annotations/lexical-editor/lexical-rich-text-editor.d.ts +15 -0
  24. package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +122 -0
  25. package/dist/annotations/lexical-editor/lexical-theme.d.ts +15 -0
  26. package/dist/annotations/lexical-editor/lexical-theme.js +25 -0
  27. package/dist/annotations/lexical-editor/lexical-toolbar.d.ts +7 -0
  28. package/dist/annotations/lexical-editor/lexical-toolbar.js +293 -0
  29. package/dist/annotations/lexical-editor/lexical-utils.d.ts +4 -0
  30. package/dist/annotations/lexical-editor/lexical-utils.js +45 -0
  31. package/dist/annotations/lexical-editor/use-lexical-toolbar.d.ts +36 -0
  32. package/dist/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
  33. package/dist/bottom-widget.d.ts +5 -5
  34. package/dist/bottom-widget.js +12 -6
  35. package/dist/common/action-panel.d.ts +3 -3
  36. package/dist/common/animation-control/animation-control.d.ts +2 -1
  37. package/dist/common/animation-control/animation-control.js +3 -1
  38. package/dist/common/animation-control/animation-controller.js +8 -6
  39. package/dist/common/animation-control/export-video-control.d.ts +9 -0
  40. package/dist/common/animation-control/export-video-control.js +43 -0
  41. package/dist/common/animation-control/playback-controls.d.ts +5 -3
  42. package/dist/common/animation-control/playback-controls.js +7 -4
  43. package/dist/common/checkbox.d.ts +5 -21
  44. package/dist/common/checkbox.js +58 -70
  45. package/dist/common/color-legend.d.ts +4 -4
  46. package/dist/common/color-legend.js +3 -3
  47. package/dist/common/column-stats-chart.d.ts +3 -3
  48. package/dist/common/data-table/button.d.ts +1 -1
  49. package/dist/common/data-table/canvas.d.ts +0 -1
  50. package/dist/common/data-table/cell-size.d.ts +2 -2
  51. package/dist/common/data-table/display-format.d.ts +1 -1
  52. package/dist/common/data-table/header-cell.d.ts +2 -2
  53. package/dist/common/data-table/index.d.ts +8 -10
  54. package/dist/common/data-table/index.js +3 -3
  55. package/dist/common/data-table/option-dropdown.d.ts +1 -1
  56. package/dist/common/field-selector.d.ts +5 -5
  57. package/dist/common/field-token.d.ts +1 -1
  58. package/dist/common/file-uploader/file-drop.d.ts +1 -1
  59. package/dist/common/file-uploader/file-upload-progress.d.ts +1 -1
  60. package/dist/common/file-uploader/file-upload.d.ts +1 -1
  61. package/dist/common/file-uploader/file-upload.js +4 -4
  62. package/dist/common/flex-container.d.ts +2 -3
  63. package/dist/common/histogram-plot.d.ts +1 -1
  64. package/dist/common/histogram-plot.js +102 -53
  65. package/dist/common/icon-button.d.ts +16 -16
  66. package/dist/common/icons/3d-models/airplane.d.ts +14 -0
  67. package/dist/common/icons/3d-models/airplane.js +104 -0
  68. package/dist/common/icons/3d-models/bicycle.d.ts +14 -0
  69. package/dist/common/icons/3d-models/bicycle.js +426 -0
  70. package/dist/common/icons/3d-models/boeing.d.ts +14 -0
  71. package/dist/common/icons/3d-models/boeing.js +119 -0
  72. package/dist/common/icons/3d-models/car.d.ts +14 -0
  73. package/dist/common/icons/3d-models/car.js +110 -0
  74. package/dist/common/icons/3d-models/cargoship.d.ts +14 -0
  75. package/dist/common/icons/3d-models/cargoship.js +246 -0
  76. package/dist/common/icons/3d-models/evtol.d.ts +14 -0
  77. package/dist/common/icons/3d-models/evtol.js +134 -0
  78. package/dist/common/icons/3d-models/glider.d.ts +14 -0
  79. package/dist/common/icons/3d-models/glider.js +62 -0
  80. package/dist/common/icons/3d-models/helicopter.d.ts +14 -0
  81. package/dist/common/icons/3d-models/helicopter.js +110 -0
  82. package/dist/common/icons/3d-models/scooter.d.ts +14 -0
  83. package/dist/common/icons/3d-models/scooter.js +159 -0
  84. package/dist/common/icons/3d-models/semitruck.d.ts +14 -0
  85. package/dist/common/icons/3d-models/semitruck.js +177 -0
  86. package/dist/common/icons/3d-models/truck.d.ts +14 -0
  87. package/dist/common/icons/3d-models/truck.js +122 -0
  88. package/dist/common/icons/anchor_window.d.ts +1 -8
  89. package/dist/common/icons/anchor_window.js +17 -10
  90. package/dist/common/icons/annotation-text.d.ts +9 -0
  91. package/dist/common/icons/annotation-text.js +56 -0
  92. package/dist/common/icons/base.d.ts +1 -1
  93. package/dist/common/icons/close.js +1 -1
  94. package/dist/common/icons/effects/distance-fog.d.ts +14 -0
  95. package/dist/common/icons/effects/distance-fog.js +79 -0
  96. package/dist/common/icons/effects/surface-fog.d.ts +14 -0
  97. package/dist/common/icons/effects/surface-fog.js +86 -0
  98. package/dist/common/icons/index.d.ts +3 -0
  99. package/dist/common/icons/index.js +22 -1
  100. package/dist/common/item-selector/chickleted-input.d.ts +5 -5
  101. package/dist/common/item-selector/chickleted-input.js +5 -5
  102. package/dist/common/item-selector/dropdown-list.d.ts +3 -3
  103. package/dist/common/item-selector/dropdown-select.d.ts +7 -7
  104. package/dist/common/item-selector/item-selector.d.ts +2 -2
  105. package/dist/common/item-selector/typeahead.d.ts +3 -3
  106. package/dist/common/line-chart.d.ts +4 -1
  107. package/dist/common/line-chart.js +59 -12
  108. package/dist/common/loading-spinner.d.ts +2 -2
  109. package/dist/common/modal.d.ts +5 -5
  110. package/dist/common/portaled.d.ts +8 -25
  111. package/dist/common/progress-bar.d.ts +1 -1
  112. package/dist/common/radius-legend.d.ts +1 -1
  113. package/dist/common/range-brush.d.ts +1 -1
  114. package/dist/common/range-plot.d.ts +1 -1
  115. package/dist/common/range-plot.js +4 -2
  116. package/dist/common/range-slider.d.ts +2 -0
  117. package/dist/common/range-slider.js +108 -43
  118. package/dist/common/slider/mouse-event.d.ts +1 -1
  119. package/dist/common/slider/slider-bar-handle.d.ts +2 -2
  120. package/dist/common/slider/slider-handle.d.ts +3 -3
  121. package/dist/common/slider/slider.d.ts +6 -2
  122. package/dist/common/slider/slider.js +78 -35
  123. package/dist/common/styled-components.d.ts +158 -159
  124. package/dist/common/styled-components.js +2 -2
  125. package/dist/common/sync-timeline-control.d.ts +3 -3
  126. package/dist/common/time-range-slider-time-title.d.ts +2 -2
  127. package/dist/common/time-range-slider-time-title.js +5 -5
  128. package/dist/common/time-range-slider.d.ts +4 -3
  129. package/dist/common/time-range-slider.js +19 -7
  130. package/dist/common/timeline-helpers.d.ts +3 -0
  131. package/dist/common/timeline-helpers.js +57 -0
  132. package/dist/common/timeline-slider.d.ts +1 -1
  133. package/dist/common/timeline-slider.js +21 -12
  134. package/dist/common/tippy-tooltip.d.ts +1 -1
  135. package/dist/common/toolbar-item.d.ts +1 -1
  136. package/dist/common/toolbar-item.js +5 -5
  137. package/dist/common/toolbar.d.ts +2 -2
  138. package/dist/common/toolbar.js +4 -4
  139. package/dist/common/vertical-toolbar.d.ts +2 -3
  140. package/dist/container.d.ts +6 -6
  141. package/dist/context.d.ts +3 -3
  142. package/dist/dnd-context.d.ts +2 -2
  143. package/dist/editor/editor.d.ts +1 -1
  144. package/dist/editor/editor.js +1 -1
  145. package/dist/editor/feature-action-panel.d.ts +1 -1
  146. package/dist/editor/feature-action-panel.js +1 -1
  147. package/dist/effects/compact-color-picker.d.ts +1 -1
  148. package/dist/effects/effect-configurator.d.ts +5 -4
  149. package/dist/effects/effect-configurator.js +243 -44
  150. package/dist/effects/effect-list.d.ts +1 -1
  151. package/dist/effects/effect-manager.d.ts +3 -3
  152. package/dist/effects/effect-manager.js +11 -4
  153. package/dist/effects/effect-panel-header.d.ts +2 -2
  154. package/dist/effects/effect-panel-header.js +35 -18
  155. package/dist/effects/effect-panel.d.ts +6 -6
  156. package/dist/effects/effect-panel.js +61 -86
  157. package/dist/effects/effect-time-configurator.d.ts +1 -1
  158. package/dist/effects/effect-time-configurator.js +10 -10
  159. package/dist/effects/effect-time-selector.d.ts +1 -1
  160. package/dist/effects/effect-time-slider.d.ts +3 -3
  161. package/dist/effects/effect-type-dropdown-list.d.ts +3 -2
  162. package/dist/effects/effect-type-dropdown-list.js +1 -1
  163. package/dist/effects/effect-type-list-item.d.ts +2 -1
  164. package/dist/effects/effect-type-list-item.js +23 -7
  165. package/dist/effects/effect-type-selector.d.ts +3 -2
  166. package/dist/effects/effect-type-selector.js +2 -2
  167. package/dist/effects/side-panel-title.d.ts +1 -1
  168. package/dist/effects/surface-fog-section.d.ts +14 -0
  169. package/dist/effects/surface-fog-section.js +263 -0
  170. package/dist/effects/timezone-selector.d.ts +1 -1
  171. package/dist/filters/components.d.ts +2 -3
  172. package/dist/filters/filter-panels/types.d.ts +4 -4
  173. package/dist/filters/index.d.ts +1 -0
  174. package/dist/filters/index.js +8 -1
  175. package/dist/filters/polygon-filter.js +2 -2
  176. package/dist/filters/time-range-filter.js +3 -1
  177. package/dist/filters/time-widget-settings.d.ts +14 -0
  178. package/dist/filters/time-widget-settings.js +312 -0
  179. package/dist/filters/time-widget-top.d.ts +2 -3
  180. package/dist/filters/time-widget-top.js +32 -39
  181. package/dist/filters/time-widget.d.ts +3 -2
  182. package/dist/filters/time-widget.js +285 -9
  183. package/dist/filters/types.d.ts +11 -11
  184. package/dist/filters/types.js +1 -1
  185. package/dist/geocoder/geocoder.d.ts +7 -4
  186. package/dist/geocoder/geocoder.js +65 -14
  187. package/dist/geocoder-panel.d.ts +11 -2
  188. package/dist/geocoder-panel.js +8 -4
  189. package/dist/hooks/use-cloud-list-provider.d.ts +1 -1
  190. package/dist/hooks/use-dnd-effects.d.ts +1 -1
  191. package/dist/hooks/use-dnd-layers.d.ts +1 -1
  192. package/dist/hooks/use-feature-flags.d.ts +1 -1
  193. package/dist/hooks/use-fetch-raster-tile-metadata.d.ts +3 -3
  194. package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +2 -2
  195. package/dist/hooks/use-legend-position.d.ts +4 -5
  196. package/dist/index.d.ts +14 -0
  197. package/dist/index.js +124 -1
  198. package/dist/injector.d.ts +5 -5
  199. package/dist/kepler-gl.d.ts +70 -67
  200. package/dist/kepler-gl.js +89 -11
  201. package/dist/loading-indicator.d.ts +6 -4
  202. package/dist/loading-indicator.js +6 -3
  203. package/dist/map/annotations/annotation-control.d.ts +16 -0
  204. package/dist/map/annotations/annotation-control.js +56 -0
  205. package/dist/map/effects/effect-control.d.ts +1 -1
  206. package/dist/map/layer-hover-info.d.ts +3 -3
  207. package/dist/map/layer-hover-info.js +69 -36
  208. package/dist/map/layer-selector-panel.d.ts +2 -2
  209. package/dist/map/lazy-tippy.js +3 -3
  210. package/dist/map/locale-panel.d.ts +2 -2
  211. package/dist/map/locale-panel.js +2 -2
  212. package/dist/map/map-control-panel.d.ts +1 -1
  213. package/dist/map/map-control-toolbar.d.ts +7 -8
  214. package/dist/map/map-control-tooltip.d.ts +1 -1
  215. package/dist/map/map-control.d.ts +8 -4
  216. package/dist/map/map-control.js +16 -7
  217. package/dist/map/map-draw-panel.d.ts +2 -2
  218. package/dist/map/map-draw-panel.js +7 -4
  219. package/dist/map/map-legend-panel.d.ts +5 -4
  220. package/dist/map/map-legend-panel.js +10 -8
  221. package/dist/map/map-legend.d.ts +11 -9
  222. package/dist/map/map-legend.js +39 -9
  223. package/dist/map/map-navigation-control.d.ts +13 -0
  224. package/dist/map/map-navigation-control.js +143 -0
  225. package/dist/map/map-popover-content.d.ts +2 -2
  226. package/dist/map/map-popover.d.ts +2 -2
  227. package/dist/map/map-popover.js +2 -2
  228. package/dist/map/split-map-button.d.ts +1 -1
  229. package/dist/map/toggle-3d-button.d.ts +1 -1
  230. package/dist/map-container.d.ts +15 -5
  231. package/dist/map-container.js +286 -73
  232. package/dist/map-view-state-context.d.ts +10 -2
  233. package/dist/map-view-state-context.js +1 -1
  234. package/dist/modal-container.d.ts +6 -8
  235. package/dist/modal-container.js +28 -6
  236. package/dist/modals/add-map-style-modal.js +173 -200
  237. package/dist/modals/cloud-components/cloud-header.d.ts +1 -1
  238. package/dist/modals/cloud-components/provider-select.d.ts +1 -1
  239. package/dist/modals/cloud-tile.d.ts +1 -1
  240. package/dist/modals/data-table-modal.d.ts +2 -2
  241. package/dist/modals/data-table-modal.js +146 -194
  242. package/dist/modals/export-data-modal.js +117 -139
  243. package/dist/modals/export-image-modal.js +1 -1
  244. package/dist/modals/export-map-modal/components.d.ts +1 -1
  245. package/dist/modals/export-map-modal/export-html-map.d.ts +1 -1
  246. package/dist/modals/export-map-modal/export-json-map.d.ts +1 -1
  247. package/dist/modals/export-video-modal.d.ts +25 -0
  248. package/dist/modals/export-video-modal.js +338 -0
  249. package/dist/modals/export-video-modal.spec.d.ts +1 -0
  250. package/dist/modals/export-video-modal.spec.js +686 -0
  251. package/dist/modals/fog-height-animation.d.ts +8 -0
  252. package/dist/modals/fog-height-animation.js +97 -0
  253. package/dist/modals/hubble-utils.d.ts +25 -0
  254. package/dist/modals/hubble-utils.js +197 -0
  255. package/dist/modals/hubble-utils.spec.d.ts +1 -0
  256. package/dist/modals/hubble-utils.spec.js +397 -0
  257. package/dist/modals/image-modal-container.d.ts +1 -1
  258. package/dist/modals/load-data-modal.d.ts +2 -2
  259. package/dist/modals/modal-dialog.d.ts +0 -2
  260. package/dist/modals/overwrite-map-modal.d.ts +1 -1
  261. package/dist/modals/save-map-modal.d.ts +3 -3
  262. package/dist/modals/share-map-modal.d.ts +1 -1
  263. package/dist/modals/tilesets-modals/common.d.ts +3 -3
  264. package/dist/modals/tilesets-modals/common.js +1 -1
  265. package/dist/modals/tilesets-modals/load-data-footer.d.ts +1 -1
  266. package/dist/modals/tilesets-modals/load-data-footer.js +2 -2
  267. package/dist/modals/tilesets-modals/load-tileset.d.ts +1 -1
  268. package/dist/modals/tilesets-modals/load-tileset.js +27 -10
  269. package/dist/modals/tilesets-modals/tileset-bitmap-form.d.ts +14 -0
  270. package/dist/modals/tilesets-modals/tileset-bitmap-form.js +284 -0
  271. package/dist/modals/tilesets-modals/tileset-icon.d.ts +1 -1
  272. package/dist/modals/tilesets-modals/tileset-raster-form.d.ts +2 -2
  273. package/dist/modals/tilesets-modals/tileset-raster-form.js +94 -11
  274. package/dist/modals/tilesets-modals/tileset-tile3d-form.d.ts +12 -0
  275. package/dist/modals/tilesets-modals/tileset-tile3d-form.js +389 -0
  276. package/dist/modals/tilesets-modals/tileset-vector-form.d.ts +3 -3
  277. package/dist/modals/tilesets-modals/tileset-vector-form.js +58 -4
  278. package/dist/modals/tilesets-modals/tileset-wms-form.d.ts +1 -1
  279. package/dist/modals/tilesets-modals/tileset-wms-form.js +55 -11
  280. package/dist/notification-panel/notification-item.d.ts +1 -53
  281. package/dist/notification-panel/notification-item.js +47 -75
  282. package/dist/notification-panel.d.ts +1 -1
  283. package/dist/notification-panel.js +20 -42
  284. package/dist/plot-container.js +55 -14
  285. package/dist/side-panel/add-by-dataset-button.d.ts +1 -1
  286. package/dist/side-panel/add-by-dataset-button.js +3 -3
  287. package/dist/side-panel/common/dataset-info.d.ts +2 -2
  288. package/dist/side-panel/common/dataset-info.js +2 -2
  289. package/dist/side-panel/common/dataset-tag.d.ts +2 -2
  290. package/dist/side-panel/common/dataset-title.d.ts +2 -2
  291. package/dist/side-panel/common/source-data-catalog.d.ts +3 -3
  292. package/dist/side-panel/common/types.d.ts +8 -8
  293. package/dist/side-panel/custom-panel.d.ts +2 -2
  294. package/dist/side-panel/filter-manager.d.ts +3 -3
  295. package/dist/side-panel/filter-panel/add-filter-button.d.ts +1 -1
  296. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +2 -2
  297. package/dist/side-panel/interaction-manager.d.ts +1 -1
  298. package/dist/side-panel/interaction-panel/brush-config.d.ts +1 -1
  299. package/dist/side-panel/interaction-panel/geocoder-config.d.ts +11 -0
  300. package/dist/side-panel/interaction-panel/geocoder-config.js +45 -0
  301. package/dist/side-panel/interaction-panel/interaction-panel.d.ts +3 -2
  302. package/dist/side-panel/interaction-panel/interaction-panel.js +10 -3
  303. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +3 -3
  304. package/dist/side-panel/interaction-panel/tooltip-config.d.ts +1 -1
  305. package/dist/side-panel/layer-manager.d.ts +2 -2
  306. package/dist/side-panel/layer-manager.js +11 -3
  307. package/dist/side-panel/layer-panel/add-layer-button.d.ts +1 -1
  308. package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +1 -1
  309. package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +4 -4
  310. package/dist/side-panel/layer-panel/color-palette-preset.d.ts +1 -1
  311. package/dist/side-panel/layer-panel/color-palette.d.ts +2 -2
  312. package/dist/side-panel/layer-panel/color-range-selector.d.ts +3 -3
  313. package/dist/side-panel/layer-panel/color-scale-selector.d.ts +5 -5
  314. package/dist/side-panel/layer-panel/color-scale-selector.js +1 -1
  315. package/dist/side-panel/layer-panel/color-selector.d.ts +3 -3
  316. package/dist/side-panel/layer-panel/column-selector.d.ts +1 -1
  317. package/dist/side-panel/layer-panel/custom-palette.d.ts +10 -10
  318. package/dist/side-panel/layer-panel/custom-palette.js +5 -5
  319. package/dist/side-panel/layer-panel/custom-picker.d.ts +1 -1
  320. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +1 -1
  321. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +1 -1
  322. package/dist/side-panel/layer-panel/dataset-layer-section.js +19 -3
  323. package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -2
  324. package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +1 -1
  325. package/dist/side-panel/layer-panel/how-to-button.d.ts +1 -1
  326. package/dist/side-panel/layer-panel/layer-color-selector.d.ts +3 -3
  327. package/dist/side-panel/layer-panel/layer-column-config.d.ts +1 -1
  328. package/dist/side-panel/layer-panel/layer-column-mode-config.d.ts +3 -3
  329. package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -5
  330. package/dist/side-panel/layer-panel/layer-configurator.d.ts +6 -4
  331. package/dist/side-panel/layer-panel/layer-configurator.js +408 -72
  332. package/dist/side-panel/layer-panel/layer-error-message.d.ts +1 -1
  333. package/dist/side-panel/layer-panel/layer-list.d.ts +2 -2
  334. package/dist/side-panel/layer-panel/layer-panel-header.d.ts +5 -5
  335. package/dist/side-panel/layer-panel/layer-panel-header.js +2 -2
  336. package/dist/side-panel/layer-panel/layer-panel.d.ts +1 -1
  337. package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +2 -2
  338. package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +2 -2
  339. package/dist/side-panel/layer-panel/layer-type-selector.d.ts +1 -1
  340. package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +1 -1
  341. package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +2 -2
  342. package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +127 -27
  343. package/dist/side-panel/layer-panel/scenegraph-model-selector.d.ts +24 -0
  344. package/dist/side-panel/layer-panel/scenegraph-model-selector.js +123 -0
  345. package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -1
  346. package/dist/side-panel/layer-panel/text-label-panel.d.ts +2 -2
  347. package/dist/side-panel/layer-panel/text-label-panel.js +11 -2
  348. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +3 -3
  349. package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +1 -1
  350. package/dist/side-panel/layer-panel/vis-config-slider.d.ts +3 -1
  351. package/dist/side-panel/layer-panel/vis-config-slider.js +7 -3
  352. package/dist/side-panel/layer-panel/vis-config-switch.d.ts +1 -1
  353. package/dist/side-panel/map-manager.d.ts +1 -1
  354. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +1 -1
  355. package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +2 -2
  356. package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +1 -1
  357. package/dist/side-panel/map-style-panel/map-style-selector.d.ts +1 -1
  358. package/dist/side-panel/panel-header-action.d.ts +1 -1
  359. package/dist/side-panel/panel-header.d.ts +13 -12
  360. package/dist/side-panel/panel-header.js +9 -2
  361. package/dist/side-panel/panel-tab.d.ts +5 -5
  362. package/dist/side-panel/panel-tab.js +4 -4
  363. package/dist/side-panel/panel-title.d.ts +1 -1
  364. package/dist/side-panel/panel-toggle.d.ts +1 -1
  365. package/dist/side-panel/panel-view-list-toggle.d.ts +3 -3
  366. package/dist/side-panel/side-bar.d.ts +2 -2
  367. package/dist/side-panel.d.ts +1 -1
  368. package/dist/side-panel.js +5 -1
  369. package/dist/types.d.ts +3 -3
  370. package/package.json +41 -29
@@ -1,17 +1,10 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
12
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
8
  var _react = _interopRequireWildcard(require("react"));
16
9
  var _reactIntl = require("react-intl");
17
10
  var _constants = require("@kepler.gl/constants");
@@ -21,9 +14,9 @@ var _styledComponents = require("../common/styled-components");
21
14
  var _components = require("./export-map-modal/components");
22
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); }
23
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; }
24
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
25
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } // SPDX-License-Identifier: MIT
17
+ // SPDX-License-Identifier: MIT
26
18
  // Copyright contributors to the kepler.gl project
19
+
27
20
  var getDataRowCount = function getDataRowCount(datasets, selectedDataset, filtered, intl) {
28
21
  if (selectedDataset === undefined) {
29
22
  return;
@@ -49,138 +42,123 @@ var getDataRowCount = function getDataRowCount(datasets, selectedDataset, filter
49
42
  });
50
43
  };
51
44
  var ExportDataModalFactory = function ExportDataModalFactory() {
52
- var ExportDataModal = /*#__PURE__*/function (_Component) {
53
- function ExportDataModal() {
54
- var _this;
55
- (0, _classCallCheck2["default"])(this, ExportDataModal);
56
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
57
- args[_key] = arguments[_key];
58
- }
59
- _this = _callSuper(this, ExportDataModal, [].concat(args));
60
- (0, _defineProperty2["default"])(_this, "_onSelectDataset", function (_ref) {
61
- var value = _ref.target.value;
62
- _this.props.applyCPUFilter(value);
63
- _this.props.onChangeExportSelectedDataset(value);
64
- });
65
- return _this;
66
- }
67
- (0, _inherits2["default"])(ExportDataModal, _Component);
68
- return (0, _createClass2["default"])(ExportDataModal, [{
69
- key: "componentDidMount",
70
- value: function componentDidMount() {
71
- var toCPUFilter = this.props.selectedDataset || Object.keys(this.props.datasets);
72
- this.props.applyCPUFilter(toCPUFilter);
45
+ var ExportDataModal = function ExportDataModal(_ref) {
46
+ var _ref$supportedDataTyp = _ref.supportedDataTypes,
47
+ supportedDataTypes = _ref$supportedDataTyp === void 0 ? _constants.EXPORT_DATA_TYPE_OPTIONS : _ref$supportedDataTyp,
48
+ datasets = _ref.datasets,
49
+ selectedDataset = _ref.selectedDataset,
50
+ dataType = _ref.dataType,
51
+ filtered = _ref.filtered,
52
+ onChangeExportDataType = _ref.onChangeExportDataType,
53
+ onChangeExportFiltered = _ref.onChangeExportFiltered,
54
+ applyCPUFilter = _ref.applyCPUFilter,
55
+ onChangeExportSelectedDataset = _ref.onChangeExportSelectedDataset,
56
+ intl = _ref.intl;
57
+ (0, _react.useEffect)(function () {
58
+ var toCPUFilter = selectedDataset || Object.keys(datasets);
59
+ applyCPUFilter(toCPUFilter);
60
+ // eslint-disable-next-line react-hooks/exhaustive-deps
61
+ }, []);
62
+ var onSelectDataset = function onSelectDataset(_ref2) {
63
+ var value = _ref2.target.value;
64
+ applyCPUFilter(value);
65
+ onChangeExportSelectedDataset(value);
66
+ };
67
+ var exportAllDatasets = selectedDataset ? !datasets[selectedDataset] : true;
68
+ var showTiledDatasetWarning = Object.keys(datasets).some(function (datasetId) {
69
+ return (datasets[datasetId].type === _constants.DatasetType.VECTOR_TILE || datasets[datasetId].type === _constants.DatasetType.RASTER_TILE || datasets[datasetId].type === _constants.DatasetType.WMS_TILE || datasets[datasetId].type === _constants.DatasetType.TILE_3D || datasets[datasetId].type === _constants.DatasetType.BITMAP) && (selectedDataset === datasetId || exportAllDatasets);
70
+ });
71
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledModalContent, {
72
+ className: "export-data-modal"
73
+ }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledExportSection, null, /*#__PURE__*/_react["default"].createElement("div", {
74
+ className: "description"
75
+ }, /*#__PURE__*/_react["default"].createElement("div", {
76
+ className: "title"
77
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
78
+ id: 'modal.exportData.datasetTitle'
79
+ })), /*#__PURE__*/_react["default"].createElement("div", {
80
+ className: "subtitle"
81
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
82
+ id: 'modal.exportData.datasetSubtitle'
83
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
84
+ className: "selection"
85
+ }, /*#__PURE__*/_react["default"].createElement("select", {
86
+ value: selectedDataset,
87
+ onChange: onSelectDataset
88
+ }, [intl.formatMessage({
89
+ id: 'modal.exportData.allDatasets'
90
+ })].concat(Object.keys(datasets)).map(function (d) {
91
+ return /*#__PURE__*/_react["default"].createElement("option", {
92
+ key: d,
93
+ value: d
94
+ }, datasets[d] && datasets[d].label || d);
95
+ })))), /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledExportSection, null, /*#__PURE__*/_react["default"].createElement("div", {
96
+ className: "description"
97
+ }, /*#__PURE__*/_react["default"].createElement("div", {
98
+ className: "title"
99
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
100
+ id: 'modal.exportData.dataTypeTitle'
101
+ })), /*#__PURE__*/_react["default"].createElement("div", {
102
+ className: "subtitle"
103
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
104
+ id: 'modal.exportData.dataTypeSubtitle'
105
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
106
+ className: "selection"
107
+ }, supportedDataTypes.map(function (op) {
108
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledType, {
109
+ key: op.id,
110
+ selected: dataType === op.id,
111
+ onClick: function onClick() {
112
+ return op.available && onChangeExportDataType(op.id);
113
+ }
114
+ }, /*#__PURE__*/_react["default"].createElement(_icons.FileType, {
115
+ ext: op.label,
116
+ height: "80px",
117
+ fontSize: "11px"
118
+ }), dataType === op.id && /*#__PURE__*/_react["default"].createElement(_styledComponents.CheckMark, null));
119
+ }))), /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledExportSection, null, /*#__PURE__*/_react["default"].createElement("div", {
120
+ className: "description"
121
+ }, /*#__PURE__*/_react["default"].createElement("div", {
122
+ className: "title"
123
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
124
+ id: 'modal.exportData.dataTypeTitle'
125
+ })), /*#__PURE__*/_react["default"].createElement("div", {
126
+ className: "subtitle"
127
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
128
+ id: 'modal.exportData.filterDataSubtitle'
129
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
130
+ className: "selection"
131
+ }, /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledFilteredOption, {
132
+ className: "unfiltered-option",
133
+ selected: !filtered,
134
+ onClick: function onClick() {
135
+ return onChangeExportFiltered(false);
73
136
  }
74
- }, {
75
- key: "render",
76
- value: function render() {
77
- var _this$props = this.props,
78
- _this$props$supported = _this$props.supportedDataTypes,
79
- supportedDataTypes = _this$props$supported === void 0 ? _constants.EXPORT_DATA_TYPE_OPTIONS : _this$props$supported,
80
- datasets = _this$props.datasets,
81
- selectedDataset = _this$props.selectedDataset,
82
- dataType = _this$props.dataType,
83
- filtered = _this$props.filtered,
84
- onChangeExportDataType = _this$props.onChangeExportDataType,
85
- onChangeExportFiltered = _this$props.onChangeExportFiltered,
86
- intl = _this$props.intl;
87
- var exportAllDatasets = selectedDataset ? !datasets[selectedDataset] : true;
88
- var showTiledDatasetWarning = Object.keys(datasets).some(function (datasetId) {
89
- return (datasets[datasetId].type === _constants.DatasetType.VECTOR_TILE || datasets[datasetId].type === _constants.DatasetType.RASTER_TILE || datasets[datasetId].type === _constants.DatasetType.WMS_TILE) && (selectedDataset === datasetId || exportAllDatasets);
90
- });
91
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledModalContent, {
92
- className: "export-data-modal"
93
- }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledExportSection, null, /*#__PURE__*/_react["default"].createElement("div", {
94
- className: "description"
95
- }, /*#__PURE__*/_react["default"].createElement("div", {
96
- className: "title"
97
- }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
98
- id: 'modal.exportData.datasetTitle'
99
- })), /*#__PURE__*/_react["default"].createElement("div", {
100
- className: "subtitle"
101
- }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
102
- id: 'modal.exportData.datasetSubtitle'
103
- }))), /*#__PURE__*/_react["default"].createElement("div", {
104
- className: "selection"
105
- }, /*#__PURE__*/_react["default"].createElement("select", {
106
- value: selectedDataset,
107
- onChange: this._onSelectDataset
108
- }, [intl.formatMessage({
109
- id: 'modal.exportData.allDatasets'
110
- })].concat(Object.keys(datasets)).map(function (d) {
111
- return /*#__PURE__*/_react["default"].createElement("option", {
112
- key: d,
113
- value: d
114
- }, datasets[d] && datasets[d].label || d);
115
- })))), /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledExportSection, null, /*#__PURE__*/_react["default"].createElement("div", {
116
- className: "description"
117
- }, /*#__PURE__*/_react["default"].createElement("div", {
118
- className: "title"
119
- }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
120
- id: 'modal.exportData.dataTypeTitle'
121
- })), /*#__PURE__*/_react["default"].createElement("div", {
122
- className: "subtitle"
123
- }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
124
- id: 'modal.exportData.dataTypeSubtitle'
125
- }))), /*#__PURE__*/_react["default"].createElement("div", {
126
- className: "selection"
127
- }, supportedDataTypes.map(function (op) {
128
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledType, {
129
- key: op.id,
130
- selected: dataType === op.id,
131
- onClick: function onClick() {
132
- return op.available && onChangeExportDataType(op.id);
133
- }
134
- }, /*#__PURE__*/_react["default"].createElement(_icons.FileType, {
135
- ext: op.label,
136
- height: "80px",
137
- fontSize: "11px"
138
- }), dataType === op.id && /*#__PURE__*/_react["default"].createElement(_styledComponents.CheckMark, null));
139
- }))), /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledExportSection, null, /*#__PURE__*/_react["default"].createElement("div", {
140
- className: "description"
141
- }, /*#__PURE__*/_react["default"].createElement("div", {
142
- className: "title"
143
- }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
144
- id: 'modal.exportData.dataTypeTitle'
145
- })), /*#__PURE__*/_react["default"].createElement("div", {
146
- className: "subtitle"
147
- }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
148
- id: 'modal.exportData.filterDataSubtitle'
149
- }))), /*#__PURE__*/_react["default"].createElement("div", {
150
- className: "selection"
151
- }, /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledFilteredOption, {
152
- className: "unfiltered-option",
153
- selected: !filtered,
154
- onClick: function onClick() {
155
- return onChangeExportFiltered(false);
156
- }
157
- }, /*#__PURE__*/_react["default"].createElement("div", {
158
- className: "filter-option-title"
159
- }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
160
- id: 'modal.exportData.unfilteredData'
161
- })), /*#__PURE__*/_react["default"].createElement("div", {
162
- className: "filter-option-subtitle"
163
- }, getDataRowCount(datasets, selectedDataset, false, intl)), !filtered && /*#__PURE__*/_react["default"].createElement(_styledComponents.CheckMark, null)), /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledFilteredOption, {
164
- className: "filtered-option",
165
- selected: filtered,
166
- onClick: function onClick() {
167
- return onChangeExportFiltered(true);
168
- }
169
- }, /*#__PURE__*/_react["default"].createElement("div", {
170
- className: "filter-option-title"
171
- }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
172
- id: 'modal.exportData.filteredData'
173
- })), /*#__PURE__*/_react["default"].createElement("div", {
174
- className: "filter-option-subtitle"
175
- }, getDataRowCount(datasets, selectedDataset, true, intl)), filtered && /*#__PURE__*/_react["default"].createElement(_styledComponents.CheckMark, null)))), showTiledDatasetWarning ? /*#__PURE__*/_react["default"].createElement("div", {
176
- className: "title"
177
- }, /*#__PURE__*/_react["default"].createElement(_components.StyledWarning, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
178
- id: 'modal.exportData.tiledDatasetWarning'
179
- }))) : null));
137
+ }, /*#__PURE__*/_react["default"].createElement("div", {
138
+ className: "filter-option-title"
139
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
140
+ id: 'modal.exportData.unfilteredData'
141
+ })), /*#__PURE__*/_react["default"].createElement("div", {
142
+ className: "filter-option-subtitle"
143
+ }, getDataRowCount(datasets, selectedDataset, false, intl)), !filtered && /*#__PURE__*/_react["default"].createElement(_styledComponents.CheckMark, null)), /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledFilteredOption, {
144
+ className: "filtered-option",
145
+ selected: filtered,
146
+ onClick: function onClick() {
147
+ return onChangeExportFiltered(true);
180
148
  }
181
- }]);
182
- }(_react.Component);
149
+ }, /*#__PURE__*/_react["default"].createElement("div", {
150
+ className: "filter-option-title"
151
+ }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
152
+ id: 'modal.exportData.filteredData'
153
+ })), /*#__PURE__*/_react["default"].createElement("div", {
154
+ className: "filter-option-subtitle"
155
+ }, getDataRowCount(datasets, selectedDataset, true, intl)), filtered && /*#__PURE__*/_react["default"].createElement(_styledComponents.CheckMark, null)))), showTiledDatasetWarning ? /*#__PURE__*/_react["default"].createElement("div", {
156
+ className: "title"
157
+ }, /*#__PURE__*/_react["default"].createElement(_components.StyledWarning, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
158
+ id: 'modal.exportData.tiledDatasetWarning'
159
+ }))) : null));
160
+ };
183
161
  return (0, _reactIntl.injectIntl)(ExportDataModal);
184
162
  };
185
163
  var _default = exports["default"] = ExportDataModalFactory;
186
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RJbnRsIiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfaWNvbnMiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb21wb25lbnRzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJnZXREYXRhUm93Q291bnQiLCJkYXRhc2V0cyIsInNlbGVjdGVkRGF0YXNldCIsImZpbHRlcmVkIiwiaW50bCIsInVuZGVmaW5lZCIsInNlbGVjdGVkRGF0YSIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsImZpbGVDb3VudCIsImtleXMiLCJsZW5ndGgiLCJkYXRhQ29udGFpbmVyIiwiZmlsdGVyZWRJZHhDUFUiLCJyb3dDb3VudCIsIm51bVJvd3MiLCJ0b0xvY2FsZVN0cmluZyIsIkV4cG9ydERhdGFNb2RhbEZhY3RvcnkiLCJFeHBvcnREYXRhTW9kYWwiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3VtZW50cyIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjb25jYXQiLCJfZGVmaW5lUHJvcGVydHkyIiwiX3JlZiIsInZhbHVlIiwidGFyZ2V0IiwicHJvcHMiLCJhcHBseUNQVUZpbHRlciIsIm9uQ2hhbmdlRXhwb3J0U2VsZWN0ZWREYXRhc2V0IiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJjb21wb25lbnREaWRNb3VudCIsInRvQ1BVRmlsdGVyIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRzdXBwb3J0ZWQiLCJzdXBwb3J0ZWREYXRhVHlwZXMiLCJFWFBPUlRfREFUQV9UWVBFX09QVElPTlMiLCJkYXRhVHlwZSIsIm9uQ2hhbmdlRXhwb3J0RGF0YVR5cGUiLCJvbkNoYW5nZUV4cG9ydEZpbHRlcmVkIiwiZXhwb3J0QWxsRGF0YXNldHMiLCJzaG93VGlsZWREYXRhc2V0V2FybmluZyIsInNvbWUiLCJkYXRhc2V0SWQiLCJ0eXBlIiwiRGF0YXNldFR5cGUiLCJWRUNUT1JfVElMRSIsIlJBU1RFUl9USUxFIiwiV01TX1RJTEUiLCJjcmVhdGVFbGVtZW50IiwiU3R5bGVkTW9kYWxDb250ZW50IiwiY2xhc3NOYW1lIiwiU3R5bGVkRXhwb3J0U2VjdGlvbiIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJvbkNoYW5nZSIsIl9vblNlbGVjdERhdGFzZXQiLCJtYXAiLCJkIiwibGFiZWwiLCJvcCIsIlN0eWxlZFR5cGUiLCJzZWxlY3RlZCIsIm9uQ2xpY2siLCJhdmFpbGFibGUiLCJGaWxlVHlwZSIsImV4dCIsImhlaWdodCIsImZvbnRTaXplIiwiQ2hlY2tNYXJrIiwiU3R5bGVkRmlsdGVyZWRPcHRpb24iLCJTdHlsZWRXYXJuaW5nIiwiQ29tcG9uZW50IiwiaW5qZWN0SW50bCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvZXhwb3J0LWRhdGEtbW9kYWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtpbmplY3RJbnRsLCBJbnRsU2hhcGV9IGZyb20gJ3JlYWN0LWludGwnO1xuXG5pbXBvcnQge0RhdGFzZXRUeXBlLCBFWFBPUlRfREFUQV9UWVBFX09QVElPTlN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5cbmltcG9ydCB7RmlsZVR5cGV9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge1xuICBTdHlsZWRFeHBvcnRTZWN0aW9uLFxuICBTdHlsZWRGaWx0ZXJlZE9wdGlvbixcbiAgU3R5bGVkTW9kYWxDb250ZW50LFxuICBTdHlsZWRUeXBlLFxuICBDaGVja01hcmtcbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7U3R5bGVkV2FybmluZ30gZnJvbSAnLi9leHBvcnQtbWFwLW1vZGFsL2NvbXBvbmVudHMnO1xuXG5jb25zdCBnZXREYXRhUm93Q291bnQgPSAoXG4gIGRhdGFzZXRzOiBEYXRhc2V0cyxcbiAgc2VsZWN0ZWREYXRhc2V0OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGZpbHRlcmVkOiBib29sZWFuLFxuICBpbnRsOiBJbnRsU2hhcGVcbikgPT4ge1xuICBpZiAoc2VsZWN0ZWREYXRhc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3Qgc2VsZWN0ZWREYXRhID0gZGF0YXNldHNbc2VsZWN0ZWREYXRhc2V0XTtcbiAgaWYgKCFzZWxlY3RlZERhdGEpIHtcbiAgICByZXR1cm4gaW50bC5mb3JtYXRNZXNzYWdlKFxuICAgICAge2lkOiAnbW9kYWwuZXhwb3J0RGF0YS5maWxlQ291bnQnfSxcbiAgICAgIHtmaWxlQ291bnQ6IE9iamVjdC5rZXlzKGRhdGFzZXRzKS5sZW5ndGh9XG4gICAgKTtcbiAgfVxuICBjb25zdCB7ZGF0YUNvbnRhaW5lciwgZmlsdGVyZWRJZHhDUFV9ID0gc2VsZWN0ZWREYXRhO1xuXG4gIGlmIChmaWx0ZXJlZCAmJiAhZmlsdGVyZWRJZHhDUFUpIHtcbiAgICByZXR1cm4gJy0nO1xuICB9XG5cbiAgY29uc3Qgcm93Q291bnQgPSBmaWx0ZXJlZCA/IGZpbHRlcmVkSWR4Q1BVPy5sZW5ndGggOiBkYXRhQ29udGFpbmVyLm51bVJvd3MoKTtcblxuICByZXR1cm4gaW50bC5mb3JtYXRNZXNzYWdlKFxuICAgIHtpZDogJ21vZGFsLmV4cG9ydERhdGEucm93Q291bnQnfSxcbiAgICB7cm93Q291bnQ6IHJvd0NvdW50Py50b0xvY2FsZVN0cmluZygpfVxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnREYXRhTW9kYWxQcm9wcyB7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgc2VsZWN0ZWREYXRhc2V0Pzogc3RyaW5nO1xuICBkYXRhVHlwZTogc3RyaW5nO1xuICBmaWx0ZXJlZDogYm9vbGVhbjtcbiAgLy8gY2FsbGJhY2tzXG4gIGFwcGx5Q1BVRmlsdGVyOiAoZmlsdGVyOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4gdm9pZDtcbiAgb25DaGFuZ2VFeHBvcnRTZWxlY3RlZERhdGFzZXQ6IChkYXRhc2V0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlRXhwb3J0RGF0YVR5cGU6ICh0eXBlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlRXhwb3J0RmlsdGVyZWQ6IChpc0ZpbHRlcmVkOiBib29sZWFuKSA9PiB2b2lkO1xuICBpbnRsOiBJbnRsU2hhcGU7XG4gIHN1cHBvcnRlZERhdGFUeXBlczoge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBhdmFpbGFibGU6IGJvb2xlYW47XG4gIH1bXTtcbn1cblxuY29uc3QgRXhwb3J0RGF0YU1vZGFsRmFjdG9yeSA9ICgpID0+IHtcbiAgY2xhc3MgRXhwb3J0RGF0YU1vZGFsIGV4dGVuZHMgQ29tcG9uZW50PEV4cG9ydERhdGFNb2RhbFByb3BzPiB7XG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICBjb25zdCB0b0NQVUZpbHRlciA9IHRoaXMucHJvcHMuc2VsZWN0ZWREYXRhc2V0IHx8IE9iamVjdC5rZXlzKHRoaXMucHJvcHMuZGF0YXNldHMpO1xuICAgICAgdGhpcy5wcm9wcy5hcHBseUNQVUZpbHRlcih0b0NQVUZpbHRlcik7XG4gICAgfVxuXG4gICAgX29uU2VsZWN0RGF0YXNldDogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxTZWxlY3RFbGVtZW50PiA9ICh7dGFyZ2V0OiB7dmFsdWV9fSkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5hcHBseUNQVUZpbHRlcih2YWx1ZSk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlRXhwb3J0U2VsZWN0ZWREYXRhc2V0KHZhbHVlKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBzdXBwb3J0ZWREYXRhVHlwZXMgPSBFWFBPUlRfREFUQV9UWVBFX09QVElPTlMsXG4gICAgICAgIGRhdGFzZXRzLFxuICAgICAgICBzZWxlY3RlZERhdGFzZXQsXG4gICAgICAgIGRhdGFUeXBlLFxuICAgICAgICBmaWx0ZXJlZCxcbiAgICAgICAgb25DaGFuZ2VFeHBvcnREYXRhVHlwZSxcbiAgICAgICAgb25DaGFuZ2VFeHBvcnRGaWx0ZXJlZCxcbiAgICAgICAgaW50bFxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGNvbnN0IGV4cG9ydEFsbERhdGFzZXRzID0gc2VsZWN0ZWREYXRhc2V0ID8gIWRhdGFzZXRzW3NlbGVjdGVkRGF0YXNldF0gOiB0cnVlO1xuICAgICAgY29uc3Qgc2hvd1RpbGVkRGF0YXNldFdhcm5pbmcgPSBPYmplY3Qua2V5cyhkYXRhc2V0cykuc29tZShkYXRhc2V0SWQgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIChkYXRhc2V0c1tkYXRhc2V0SWRdLnR5cGUgPT09IERhdGFzZXRUeXBlLlZFQ1RPUl9USUxFIHx8XG4gICAgICAgICAgICBkYXRhc2V0c1tkYXRhc2V0SWRdLnR5cGUgPT09IERhdGFzZXRUeXBlLlJBU1RFUl9USUxFIHx8XG4gICAgICAgICAgICBkYXRhc2V0c1tkYXRhc2V0SWRdLnR5cGUgPT09IERhdGFzZXRUeXBlLldNU19USUxFKSAmJlxuICAgICAgICAgIChzZWxlY3RlZERhdGFzZXQgPT09IGRhdGFzZXRJZCB8fCBleHBvcnRBbGxEYXRhc2V0cylcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTW9kYWxDb250ZW50IGNsYXNzTmFtZT1cImV4cG9ydC1kYXRhLW1vZGFsXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxTdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnREYXRhLmRhdGFzZXRUaXRsZSd9IC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnREYXRhLmRhdGFzZXRTdWJ0aXRsZSd9IC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlbGVjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgdmFsdWU9e3NlbGVjdGVkRGF0YXNldH0gb25DaGFuZ2U9e3RoaXMuX29uU2VsZWN0RGF0YXNldH0+XG4gICAgICAgICAgICAgICAgICB7W2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5leHBvcnREYXRhLmFsbERhdGFzZXRzJ30pXVxuICAgICAgICAgICAgICAgICAgICAuY29uY2F0KE9iamVjdC5rZXlzKGRhdGFzZXRzKSlcbiAgICAgICAgICAgICAgICAgICAgLm1hcChkID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIGtleT17ZH0gdmFsdWU9e2R9PlxuICAgICAgICAgICAgICAgICAgICAgICAgeyhkYXRhc2V0c1tkXSAmJiBkYXRhc2V0c1tkXS5sYWJlbCkgfHwgZH1cbiAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9TdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAgPFN0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydERhdGEuZGF0YVR5cGVUaXRsZSd9IC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnREYXRhLmRhdGFUeXBlU3VidGl0bGUnfSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWxlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICB7c3VwcG9ydGVkRGF0YVR5cGVzLm1hcChvcCA9PiAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkVHlwZVxuICAgICAgICAgICAgICAgICAgICBrZXk9e29wLmlkfVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZD17ZGF0YVR5cGUgPT09IG9wLmlkfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvcC5hdmFpbGFibGUgJiYgb25DaGFuZ2VFeHBvcnREYXRhVHlwZShvcC5pZCl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxGaWxlVHlwZSBleHQ9e29wLmxhYmVsfSBoZWlnaHQ9XCI4MHB4XCIgZm9udFNpemU9XCIxMXB4XCIgLz5cbiAgICAgICAgICAgICAgICAgICAge2RhdGFUeXBlID09PSBvcC5pZCAmJiA8Q2hlY2tNYXJrIC8+fVxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRUeXBlPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgICAgICAgIDxTdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnREYXRhLmRhdGFUeXBlVGl0bGUnfSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0RGF0YS5maWx0ZXJEYXRhU3VidGl0bGUnfSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWxlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICA8U3R5bGVkRmlsdGVyZWRPcHRpb25cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVuZmlsdGVyZWQtb3B0aW9uXCJcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXshZmlsdGVyZWR9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZUV4cG9ydEZpbHRlcmVkKGZhbHNlKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlci1vcHRpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnREYXRhLnVuZmlsdGVyZWREYXRhJ30gLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXItb3B0aW9uLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIHtnZXREYXRhUm93Q291bnQoZGF0YXNldHMsIHNlbGVjdGVkRGF0YXNldCwgZmFsc2UsIGludGwpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICB7IWZpbHRlcmVkICYmIDxDaGVja01hcmsgLz59XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRGaWx0ZXJlZE9wdGlvbj5cbiAgICAgICAgICAgICAgICA8U3R5bGVkRmlsdGVyZWRPcHRpb25cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpbHRlcmVkLW9wdGlvblwiXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZD17ZmlsdGVyZWR9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZUV4cG9ydEZpbHRlcmVkKHRydWUpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyLW9wdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydERhdGEuZmlsdGVyZWREYXRhJ30gLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXItb3B0aW9uLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIHtnZXREYXRhUm93Q291bnQoZGF0YXNldHMsIHNlbGVjdGVkRGF0YXNldCwgdHJ1ZSwgaW50bCl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIHtmaWx0ZXJlZCAmJiA8Q2hlY2tNYXJrIC8+fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkRmlsdGVyZWRPcHRpb24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9TdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAge3Nob3dUaWxlZERhdGFzZXRXYXJuaW5nID8gKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPFN0eWxlZFdhcm5pbmc+XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydERhdGEudGlsZWREYXRhc2V0V2FybmluZyd9IC8+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRXYXJuaW5nPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1N0eWxlZE1vZGFsQ29udGVudD5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGluamVjdEludGwoRXhwb3J0RGF0YU1vZGFsKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV4cG9ydERhdGFNb2RhbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssaUJBQUEsR0FBQUwsT0FBQTtBQU9BLElBQUFNLFdBQUEsR0FBQU4sT0FBQTtBQUE0RCxTQUFBTyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVQsd0JBQUFTLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QUFBQSxTQUFBVyxXQUFBaEIsQ0FBQSxFQUFBaUIsQ0FBQSxFQUFBcEIsQ0FBQSxXQUFBb0IsQ0FBQSxPQUFBQyxnQkFBQSxhQUFBRCxDQUFBLE9BQUFFLDJCQUFBLGFBQUFuQixDQUFBLEVBQUFvQix5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQUwsQ0FBQSxFQUFBcEIsQ0FBQSxZQUFBcUIsZ0JBQUEsYUFBQWxCLENBQUEsRUFBQXVCLFdBQUEsSUFBQU4sQ0FBQSxDQUFBTyxLQUFBLENBQUF4QixDQUFBLEVBQUFILENBQUE7QUFBQSxTQUFBdUIsMEJBQUEsY0FBQXBCLENBQUEsSUFBQXlCLE9BQUEsQ0FBQUMsU0FBQSxDQUFBQyxPQUFBLENBQUFkLElBQUEsQ0FBQVEsT0FBQSxDQUFBQyxTQUFBLENBQUFHLE9BQUEsaUNBQUF6QixDQUFBLGFBQUFvQix5QkFBQSxZQUFBQSwwQkFBQSxhQUFBcEIsQ0FBQSxVQWxCNUQ7QUFDQTtBQW1CQSxJQUFNNEIsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUNuQkMsUUFBa0IsRUFDbEJDLGVBQW1DLEVBQ25DQyxRQUFpQixFQUNqQkMsSUFBZSxFQUNaO0VBQ0gsSUFBSUYsZUFBZSxLQUFLRyxTQUFTLEVBQUU7SUFDakM7RUFDRjtFQUNBLElBQU1DLFlBQVksR0FBR0wsUUFBUSxDQUFDQyxlQUFlLENBQUM7RUFDOUMsSUFBSSxDQUFDSSxZQUFZLEVBQUU7SUFDakIsT0FBT0YsSUFBSSxDQUFDRyxhQUFhLENBQ3ZCO01BQUNDLEVBQUUsRUFBRTtJQUE0QixDQUFDLEVBQ2xDO01BQUNDLFNBQVMsRUFBRTdCLE1BQU0sQ0FBQzhCLElBQUksQ0FBQ1QsUUFBUSxDQUFDLENBQUNVO0lBQU0sQ0FDMUMsQ0FBQztFQUNIO0VBQ0EsSUFBT0MsYUFBYSxHQUFvQk4sWUFBWSxDQUE3Q00sYUFBYTtJQUFFQyxjQUFjLEdBQUlQLFlBQVksQ0FBOUJPLGNBQWM7RUFFcEMsSUFBSVYsUUFBUSxJQUFJLENBQUNVLGNBQWMsRUFBRTtJQUMvQixPQUFPLEdBQUc7RUFDWjtFQUVBLElBQU1DLFFBQVEsR0FBR1gsUUFBUSxHQUFHVSxjQUFjLGFBQWRBLGNBQWMsdUJBQWRBLGNBQWMsQ0FBRUYsTUFBTSxHQUFHQyxhQUFhLENBQUNHLE9BQU8sQ0FBQyxDQUFDO0VBRTVFLE9BQU9YLElBQUksQ0FBQ0csYUFBYSxDQUN2QjtJQUFDQyxFQUFFLEVBQUU7RUFBMkIsQ0FBQyxFQUNqQztJQUFDTSxRQUFRLEVBQUVBLFFBQVEsYUFBUkEsUUFBUSx1QkFBUkEsUUFBUSxDQUFFRSxjQUFjLENBQUM7RUFBQyxDQUN2QyxDQUFDO0FBQ0gsQ0FBQztBQW9CRCxJQUFNQyxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXNCQSxDQUFBLEVBQVM7RUFBQSxJQUM3QkMsZUFBZSwwQkFBQUMsVUFBQTtJQUFBLFNBQUFELGdCQUFBO01BQUEsSUFBQUUsS0FBQTtNQUFBLElBQUFDLGdCQUFBLG1CQUFBSCxlQUFBO01BQUEsU0FBQUksSUFBQSxHQUFBQyxTQUFBLENBQUFaLE1BQUEsRUFBQWEsSUFBQSxPQUFBQyxLQUFBLENBQUFILElBQUEsR0FBQUksSUFBQSxNQUFBQSxJQUFBLEdBQUFKLElBQUEsRUFBQUksSUFBQTtRQUFBRixJQUFBLENBQUFFLElBQUEsSUFBQUgsU0FBQSxDQUFBRyxJQUFBO01BQUE7TUFBQU4sS0FBQSxHQUFBaEMsVUFBQSxPQUFBOEIsZUFBQSxLQUFBUyxNQUFBLENBQUFILElBQUE7TUFBQSxJQUFBSSxnQkFBQSxhQUFBUixLQUFBLHNCQU02QyxVQUFBUyxJQUFBLEVBQXVCO1FBQUEsSUFBWkMsS0FBSyxHQUFBRCxJQUFBLENBQWRFLE1BQU0sQ0FBR0QsS0FBSztRQUM5RVYsS0FBQSxDQUFLWSxLQUFLLENBQUNDLGNBQWMsQ0FBQ0gsS0FBSyxDQUFDO1FBQ2hDVixLQUFBLENBQUtZLEtBQUssQ0FBQ0UsNkJBQTZCLENBQUNKLEtBQUssQ0FBQztNQUNqRCxDQUFDO01BQUEsT0FBQVYsS0FBQTtJQUFBO0lBQUEsSUFBQWUsVUFBQSxhQUFBakIsZUFBQSxFQUFBQyxVQUFBO0lBQUEsV0FBQWlCLGFBQUEsYUFBQWxCLGVBQUE7TUFBQW1CLEdBQUE7TUFBQVAsS0FBQSxFQVJELFNBQUFRLGlCQUFpQkEsQ0FBQSxFQUFHO1FBQ2xCLElBQU1DLFdBQVcsR0FBRyxJQUFJLENBQUNQLEtBQUssQ0FBQzlCLGVBQWUsSUFBSXRCLE1BQU0sQ0FBQzhCLElBQUksQ0FBQyxJQUFJLENBQUNzQixLQUFLLENBQUMvQixRQUFRLENBQUM7UUFDbEYsSUFBSSxDQUFDK0IsS0FBSyxDQUFDQyxjQUFjLENBQUNNLFdBQVcsQ0FBQztNQUN4QztJQUFDO01BQUFGLEdBQUE7TUFBQVAsS0FBQSxFQU9ELFNBQUFVLE1BQU1BLENBQUEsRUFBRztRQUNQLElBQUFDLFdBQUEsR0FTSSxJQUFJLENBQUNULEtBQUs7VUFBQVUscUJBQUEsR0FBQUQsV0FBQSxDQVJaRSxrQkFBa0I7VUFBbEJBLGtCQUFrQixHQUFBRCxxQkFBQSxjQUFHRSxtQ0FBd0IsR0FBQUYscUJBQUE7VUFDN0N6QyxRQUFRLEdBQUF3QyxXQUFBLENBQVJ4QyxRQUFRO1VBQ1JDLGVBQWUsR0FBQXVDLFdBQUEsQ0FBZnZDLGVBQWU7VUFDZjJDLFFBQVEsR0FBQUosV0FBQSxDQUFSSSxRQUFRO1VBQ1IxQyxRQUFRLEdBQUFzQyxXQUFBLENBQVJ0QyxRQUFRO1VBQ1IyQyxzQkFBc0IsR0FBQUwsV0FBQSxDQUF0Qkssc0JBQXNCO1VBQ3RCQyxzQkFBc0IsR0FBQU4sV0FBQSxDQUF0Qk0sc0JBQXNCO1VBQ3RCM0MsSUFBSSxHQUFBcUMsV0FBQSxDQUFKckMsSUFBSTtRQUdOLElBQU00QyxpQkFBaUIsR0FBRzlDLGVBQWUsR0FBRyxDQUFDRCxRQUFRLENBQUNDLGVBQWUsQ0FBQyxHQUFHLElBQUk7UUFDN0UsSUFBTStDLHVCQUF1QixHQUFHckUsTUFBTSxDQUFDOEIsSUFBSSxDQUFDVCxRQUFRLENBQUMsQ0FBQ2lELElBQUksQ0FBQyxVQUFBQyxTQUFTLEVBQUk7VUFDdEUsT0FDRSxDQUFDbEQsUUFBUSxDQUFDa0QsU0FBUyxDQUFDLENBQUNDLElBQUksS0FBS0Msc0JBQVcsQ0FBQ0MsV0FBVyxJQUNuRHJELFFBQVEsQ0FBQ2tELFNBQVMsQ0FBQyxDQUFDQyxJQUFJLEtBQUtDLHNCQUFXLENBQUNFLFdBQVcsSUFDcER0RCxRQUFRLENBQUNrRCxTQUFTLENBQUMsQ0FBQ0MsSUFBSSxLQUFLQyxzQkFBVyxDQUFDRyxRQUFRLE1BQ2xEdEQsZUFBZSxLQUFLaUQsU0FBUyxJQUFJSCxpQkFBaUIsQ0FBQztRQUV4RCxDQUFDLENBQUM7UUFFRixvQkFDRXpGLE1BQUEsWUFBQWtHLGFBQUEsQ0FBQzNGLGlCQUFBLENBQUE0RixrQkFBa0I7VUFBQ0MsU0FBUyxFQUFDO1FBQW1CLGdCQUMvQ3BHLE1BQUEsWUFBQWtHLGFBQUEsMkJBQ0VsRyxNQUFBLFlBQUFrRyxhQUFBLENBQUMzRixpQkFBQSxDQUFBOEYsbUJBQW1CLHFCQUNsQnJHLE1BQUEsWUFBQWtHLGFBQUE7VUFBS0UsU0FBUyxFQUFDO1FBQWEsZ0JBQzFCcEcsTUFBQSxZQUFBa0csYUFBQTtVQUFLRSxTQUFTLEVBQUM7UUFBTyxnQkFDcEJwRyxNQUFBLFlBQUFrRyxhQUFBLENBQUM3RixhQUFBLENBQUFpRyxnQkFBZ0I7VUFBQ3JELEVBQUUsRUFBRTtRQUFnQyxDQUFFLENBQ3JELENBQUMsZUFDTmpELE1BQUEsWUFBQWtHLGFBQUE7VUFBS0UsU0FBUyxFQUFDO1FBQVUsZ0JBQ3ZCcEcsTUFBQSxZQUFBa0csYUFBQSxDQUFDN0YsYUFBQSxDQUFBaUcsZ0JBQWdCO1VBQUNyRCxFQUFFLEVBQUU7UUFBbUMsQ0FBRSxDQUN4RCxDQUNGLENBQUMsZUFDTmpELE1BQUEsWUFBQWtHLGFBQUE7VUFBS0UsU0FBUyxFQUFDO1FBQVcsZ0JBQ3hCcEcsTUFBQSxZQUFBa0csYUFBQTtVQUFRM0IsS0FBSyxFQUFFNUIsZUFBZ0I7VUFBQzRELFFBQVEsRUFBRSxJQUFJLENBQUNDO1FBQWlCLEdBQzdELENBQUMzRCxJQUFJLENBQUNHLGFBQWEsQ0FBQztVQUFDQyxFQUFFLEVBQUU7UUFBOEIsQ0FBQyxDQUFDLENBQUMsQ0FDeERtQixNQUFNLENBQUMvQyxNQUFNLENBQUM4QixJQUFJLENBQUNULFFBQVEsQ0FBQyxDQUFDLENBQzdCK0QsR0FBRyxDQUFDLFVBQUFDLENBQUM7VUFBQSxvQkFDSjFHLE1BQUEsWUFBQWtHLGFBQUE7WUFBUXBCLEdBQUcsRUFBRTRCLENBQUU7WUFBQ25DLEtBQUssRUFBRW1DO1VBQUUsR0FDckJoRSxRQUFRLENBQUNnRSxDQUFDLENBQUMsSUFBSWhFLFFBQVEsQ0FBQ2dFLENBQUMsQ0FBQyxDQUFDQyxLQUFLLElBQUtELENBQ2pDLENBQUM7UUFBQSxDQUNWLENBQ0csQ0FDTCxDQUNjLENBQUMsZUFDdEIxRyxNQUFBLFlBQUFrRyxhQUFBLENBQUMzRixpQkFBQSxDQUFBOEYsbUJBQW1CLHFCQUNsQnJHLE1BQUEsWUFBQWtHLGFBQUE7VUFBS0UsU0FBUyxFQUFDO1FBQWEsZ0JBQzFCcEcsTUFBQSxZQUFBa0csYUFBQTtVQUFLRSxTQUFTLEVBQUM7UUFBTyxnQkFDcEJwRyxNQUFBLFlBQUFrRyxhQUFBLENBQUM3RixhQUFBLENBQUFpRyxnQkFBZ0I7VUFBQ3JELEVBQUUsRUFBRTtRQUFpQyxDQUFFLENBQ3RELENBQUMsZUFDTmpELE1BQUEsWUFBQWtHLGFBQUE7VUFBS0UsU0FBUyxFQUFDO1FBQVUsZ0JBQ3ZCcEcsTUFBQSxZQUFBa0csYUFBQSxDQUFDN0YsYUFBQSxDQUFBaUcsZ0JBQWdCO1VBQUNyRCxFQUFFLEVBQUU7UUFBb0MsQ0FBRSxDQUN6RCxDQUNGLENBQUMsZUFDTmpELE1BQUEsWUFBQWtHLGFBQUE7VUFBS0UsU0FBUyxFQUFDO1FBQVcsR0FDdkJoQixrQkFBa0IsQ0FBQ3FCLEdBQUcsQ0FBQyxVQUFBRyxFQUFFO1VBQUEsb0JBQ3hCNUcsTUFBQSxZQUFBa0csYUFBQSxDQUFDM0YsaUJBQUEsQ0FBQXNHLFVBQVU7WUFDVC9CLEdBQUcsRUFBRThCLEVBQUUsQ0FBQzNELEVBQUc7WUFDWDZELFFBQVEsRUFBRXhCLFFBQVEsS0FBS3NCLEVBQUUsQ0FBQzNELEVBQUc7WUFDN0I4RCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtjQUFBLE9BQVFILEVBQUUsQ0FBQ0ksU0FBUyxJQUFJekIsc0JBQXNCLENBQUNxQixFQUFFLENBQUMzRCxFQUFFLENBQUM7WUFBQTtVQUFDLGdCQUU3RGpELE1BQUEsWUFBQWtHLGFBQUEsQ0FBQzVGLE1BQUEsQ0FBQTJHLFFBQVE7WUFBQ0MsR0FBRyxFQUFFTixFQUFFLENBQUNELEtBQU07WUFBQ1EsTUFBTSxFQUFDLE1BQU07WUFBQ0MsUUFBUSxFQUFDO1VBQU0sQ0FBRSxDQUFDLEVBQ3hEOUIsUUFBUSxLQUFLc0IsRUFBRSxDQUFDM0QsRUFBRSxpQkFBSWpELE1BQUEsWUFBQWtHLGFBQUEsQ0FBQzNGLGlCQUFBLENBQUE4RyxTQUFTLE1BQUUsQ0FDekIsQ0FBQztRQUFBLENBQ2QsQ0FDRSxDQUNjLENBQUMsZUFDdEJySCxNQUFBLFlBQUFrRyxhQUFBLENBQUMzRixpQkFBQSxDQUFBOEYsbUJBQW1CLHFCQUNsQnJHLE1BQUEsWUFBQWtHLGFBQUE7VUFBS0UsU0FBUyxFQUFDO1FBQWEsZ0JBQzFCcEcsTUFBQSxZQUFBa0csYUFBQTtVQUFLRSxTQUFTLEVBQUM7UUFBTyxnQkFDcEJwRyxNQUFBLFlBQUFrRyxhQUFBLENBQUM3RixhQUFBLENBQUFpRyxnQkFBZ0I7VUFBQ3JELEVBQUUsRUFBRTtRQUFpQyxDQUFFLENBQ3RELENBQUMsZUFDTmpELE1BQUEsWUFBQWtHLGFBQUE7VUFBS0UsU0FBUyxFQUFDO1FBQVUsZ0JBQ3ZCcEcsTUFBQSxZQUFBa0csYUFBQSxDQUFDN0YsYUFBQSxDQUFBaUcsZ0JBQWdCO1VBQUNyRCxFQUFFLEVBQUU7UUFBc0MsQ0FBRSxDQUMzRCxDQUNGLENBQUMsZUFDTmpELE1BQUEsWUFBQWtHLGFBQUE7VUFBS0UsU0FBUyxFQUFDO1FBQVcsZ0JBQ3hCcEcsTUFBQSxZQUFBa0csYUFBQSxDQUFDM0YsaUJBQUEsQ0FBQStHLG9CQUFvQjtVQUNuQmxCLFNBQVMsRUFBQyxtQkFBbUI7VUFDN0JVLFFBQVEsRUFBRSxDQUFDbEUsUUFBUztVQUNwQm1FLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1lBQUEsT0FBUXZCLHNCQUFzQixDQUFDLEtBQUssQ0FBQztVQUFBO1FBQUMsZ0JBRTdDeEYsTUFBQSxZQUFBa0csYUFBQTtVQUFLRSxTQUFTLEVBQUM7UUFBcUIsZ0JBQ2xDcEcsTUFBQSxZQUFBa0csYUFBQSxDQUFDN0YsYUFBQSxDQUFBaUcsZ0JBQWdCO1VBQUNyRCxFQUFFLEVBQUU7UUFBa0MsQ0FBRSxDQUN2RCxDQUFDLGVBQ05qRCxNQUFBLFlBQUFrRyxhQUFBO1VBQUtFLFNBQVMsRUFBQztRQUF3QixHQUNwQzNELGVBQWUsQ0FBQ0MsUUFBUSxFQUFFQyxlQUFlLEVBQUUsS0FBSyxFQUFFRSxJQUFJLENBQ3BELENBQUMsRUFDTCxDQUFDRCxRQUFRLGlCQUFJNUMsTUFBQSxZQUFBa0csYUFBQSxDQUFDM0YsaUJBQUEsQ0FBQThHLFNBQVMsTUFBRSxDQUNOLENBQUMsZUFDdkJySCxNQUFBLFlBQUFrRyxhQUFBLENBQUMzRixpQkFBQSxDQUFBK0csb0JBQW9CO1VBQ25CbEIsU0FBUyxFQUFDLGlCQUFpQjtVQUMzQlUsUUFBUSxFQUFFbEUsUUFBUztVQUNuQm1FLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1lBQUEsT0FBUXZCLHNCQUFzQixDQUFDLElBQUksQ0FBQztVQUFBO1FBQUMsZ0JBRTVDeEYsTUFBQSxZQUFBa0csYUFBQTtVQUFLRSxTQUFTLEVBQUM7UUFBcUIsZ0JBQ2xDcEcsTUFBQSxZQUFBa0csYUFBQSxDQUFDN0YsYUFBQSxDQUFBaUcsZ0JBQWdCO1VBQUNyRCxFQUFFLEVBQUU7UUFBZ0MsQ0FBRSxDQUNyRCxDQUFDLGVBQ05qRCxNQUFBLFlBQUFrRyxhQUFBO1VBQUtFLFNBQVMsRUFBQztRQUF3QixHQUNwQzNELGVBQWUsQ0FBQ0MsUUFBUSxFQUFFQyxlQUFlLEVBQUUsSUFBSSxFQUFFRSxJQUFJLENBQ25ELENBQUMsRUFDTEQsUUFBUSxpQkFBSTVDLE1BQUEsWUFBQWtHLGFBQUEsQ0FBQzNGLGlCQUFBLENBQUE4RyxTQUFTLE1BQUUsQ0FDTCxDQUNuQixDQUNjLENBQUMsRUFDckIzQix1QkFBdUIsZ0JBQ3RCMUYsTUFBQSxZQUFBa0csYUFBQTtVQUFLRSxTQUFTLEVBQUM7UUFBTyxnQkFDcEJwRyxNQUFBLFlBQUFrRyxhQUFBLENBQUMxRixXQUFBLENBQUErRyxhQUFhLHFCQUNadkgsTUFBQSxZQUFBa0csYUFBQSxDQUFDN0YsYUFBQSxDQUFBaUcsZ0JBQWdCO1VBQUNyRCxFQUFFLEVBQUU7UUFBdUMsQ0FBRSxDQUNsRCxDQUNaLENBQUMsR0FDSixJQUNELENBQ2EsQ0FBQztNQUV6QjtJQUFDO0VBQUEsRUEvSDJCdUUsZ0JBQVM7RUFrSXZDLE9BQU8sSUFBQUMscUJBQVUsRUFBQzlELGVBQWUsQ0FBQztBQUNwQyxDQUFDO0FBQUMsSUFBQStELFFBQUEsR0FBQUMsT0FBQSxjQUVhakUsc0JBQXNCIiwiaWdub3JlTGlzdCI6W119
164
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RJbnRsIiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfaWNvbnMiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb21wb25lbnRzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiZ2V0RGF0YVJvd0NvdW50IiwiZGF0YXNldHMiLCJzZWxlY3RlZERhdGFzZXQiLCJmaWx0ZXJlZCIsImludGwiLCJ1bmRlZmluZWQiLCJzZWxlY3RlZERhdGEiLCJmb3JtYXRNZXNzYWdlIiwiaWQiLCJmaWxlQ291bnQiLCJrZXlzIiwibGVuZ3RoIiwiZGF0YUNvbnRhaW5lciIsImZpbHRlcmVkSWR4Q1BVIiwicm93Q291bnQiLCJudW1Sb3dzIiwidG9Mb2NhbGVTdHJpbmciLCJFeHBvcnREYXRhTW9kYWxGYWN0b3J5IiwiRXhwb3J0RGF0YU1vZGFsIiwiX3JlZiIsIl9yZWYkc3VwcG9ydGVkRGF0YVR5cCIsInN1cHBvcnRlZERhdGFUeXBlcyIsIkVYUE9SVF9EQVRBX1RZUEVfT1BUSU9OUyIsImRhdGFUeXBlIiwib25DaGFuZ2VFeHBvcnREYXRhVHlwZSIsIm9uQ2hhbmdlRXhwb3J0RmlsdGVyZWQiLCJhcHBseUNQVUZpbHRlciIsIm9uQ2hhbmdlRXhwb3J0U2VsZWN0ZWREYXRhc2V0IiwidXNlRWZmZWN0IiwidG9DUFVGaWx0ZXIiLCJvblNlbGVjdERhdGFzZXQiLCJfcmVmMiIsInZhbHVlIiwidGFyZ2V0IiwiZXhwb3J0QWxsRGF0YXNldHMiLCJzaG93VGlsZWREYXRhc2V0V2FybmluZyIsInNvbWUiLCJkYXRhc2V0SWQiLCJ0eXBlIiwiRGF0YXNldFR5cGUiLCJWRUNUT1JfVElMRSIsIlJBU1RFUl9USUxFIiwiV01TX1RJTEUiLCJUSUxFXzNEIiwiQklUTUFQIiwiY3JlYXRlRWxlbWVudCIsIlN0eWxlZE1vZGFsQ29udGVudCIsImNsYXNzTmFtZSIsIlN0eWxlZEV4cG9ydFNlY3Rpb24iLCJGb3JtYXR0ZWRNZXNzYWdlIiwib25DaGFuZ2UiLCJjb25jYXQiLCJtYXAiLCJkIiwia2V5IiwibGFiZWwiLCJvcCIsIlN0eWxlZFR5cGUiLCJzZWxlY3RlZCIsIm9uQ2xpY2siLCJhdmFpbGFibGUiLCJGaWxlVHlwZSIsImV4dCIsImhlaWdodCIsImZvbnRTaXplIiwiQ2hlY2tNYXJrIiwiU3R5bGVkRmlsdGVyZWRPcHRpb24iLCJTdHlsZWRXYXJuaW5nIiwiaW5qZWN0SW50bCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvZXhwb3J0LWRhdGEtbW9kYWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtpbmplY3RJbnRsLCBJbnRsU2hhcGV9IGZyb20gJ3JlYWN0LWludGwnO1xuXG5pbXBvcnQge0RhdGFzZXRUeXBlLCBFWFBPUlRfREFUQV9UWVBFX09QVElPTlN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtEYXRhc2V0c30gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5cbmltcG9ydCB7RmlsZVR5cGV9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge1xuICBTdHlsZWRFeHBvcnRTZWN0aW9uLFxuICBTdHlsZWRGaWx0ZXJlZE9wdGlvbixcbiAgU3R5bGVkTW9kYWxDb250ZW50LFxuICBTdHlsZWRUeXBlLFxuICBDaGVja01hcmtcbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7U3R5bGVkV2FybmluZ30gZnJvbSAnLi9leHBvcnQtbWFwLW1vZGFsL2NvbXBvbmVudHMnO1xuXG5jb25zdCBnZXREYXRhUm93Q291bnQgPSAoXG4gIGRhdGFzZXRzOiBEYXRhc2V0cyxcbiAgc2VsZWN0ZWREYXRhc2V0OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGZpbHRlcmVkOiBib29sZWFuLFxuICBpbnRsOiBJbnRsU2hhcGVcbikgPT4ge1xuICBpZiAoc2VsZWN0ZWREYXRhc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3Qgc2VsZWN0ZWREYXRhID0gZGF0YXNldHNbc2VsZWN0ZWREYXRhc2V0XTtcbiAgaWYgKCFzZWxlY3RlZERhdGEpIHtcbiAgICByZXR1cm4gaW50bC5mb3JtYXRNZXNzYWdlKFxuICAgICAge2lkOiAnbW9kYWwuZXhwb3J0RGF0YS5maWxlQ291bnQnfSxcbiAgICAgIHtmaWxlQ291bnQ6IE9iamVjdC5rZXlzKGRhdGFzZXRzKS5sZW5ndGh9XG4gICAgKTtcbiAgfVxuICBjb25zdCB7ZGF0YUNvbnRhaW5lciwgZmlsdGVyZWRJZHhDUFV9ID0gc2VsZWN0ZWREYXRhO1xuXG4gIGlmIChmaWx0ZXJlZCAmJiAhZmlsdGVyZWRJZHhDUFUpIHtcbiAgICByZXR1cm4gJy0nO1xuICB9XG5cbiAgY29uc3Qgcm93Q291bnQgPSBmaWx0ZXJlZCA/IGZpbHRlcmVkSWR4Q1BVPy5sZW5ndGggOiBkYXRhQ29udGFpbmVyLm51bVJvd3MoKTtcblxuICByZXR1cm4gaW50bC5mb3JtYXRNZXNzYWdlKFxuICAgIHtpZDogJ21vZGFsLmV4cG9ydERhdGEucm93Q291bnQnfSxcbiAgICB7cm93Q291bnQ6IHJvd0NvdW50Py50b0xvY2FsZVN0cmluZygpfVxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnREYXRhTW9kYWxQcm9wcyB7XG4gIGRhdGFzZXRzOiBEYXRhc2V0cztcbiAgc2VsZWN0ZWREYXRhc2V0Pzogc3RyaW5nO1xuICBkYXRhVHlwZTogc3RyaW5nO1xuICBmaWx0ZXJlZDogYm9vbGVhbjtcbiAgLy8gY2FsbGJhY2tzXG4gIGFwcGx5Q1BVRmlsdGVyOiAoZmlsdGVyOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4gdm9pZDtcbiAgb25DaGFuZ2VFeHBvcnRTZWxlY3RlZERhdGFzZXQ6IChkYXRhc2V0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlRXhwb3J0RGF0YVR5cGU6ICh0eXBlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlRXhwb3J0RmlsdGVyZWQ6IChpc0ZpbHRlcmVkOiBib29sZWFuKSA9PiB2b2lkO1xuICBpbnRsOiBJbnRsU2hhcGU7XG4gIHN1cHBvcnRlZERhdGFUeXBlczoge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBhdmFpbGFibGU6IGJvb2xlYW47XG4gIH1bXTtcbn1cblxuY29uc3QgRXhwb3J0RGF0YU1vZGFsRmFjdG9yeSA9ICgpID0+IHtcbiAgY29uc3QgRXhwb3J0RGF0YU1vZGFsID0gKHtcbiAgICBzdXBwb3J0ZWREYXRhVHlwZXMgPSBFWFBPUlRfREFUQV9UWVBFX09QVElPTlMsXG4gICAgZGF0YXNldHMsXG4gICAgc2VsZWN0ZWREYXRhc2V0LFxuICAgIGRhdGFUeXBlLFxuICAgIGZpbHRlcmVkLFxuICAgIG9uQ2hhbmdlRXhwb3J0RGF0YVR5cGUsXG4gICAgb25DaGFuZ2VFeHBvcnRGaWx0ZXJlZCxcbiAgICBhcHBseUNQVUZpbHRlcixcbiAgICBvbkNoYW5nZUV4cG9ydFNlbGVjdGVkRGF0YXNldCxcbiAgICBpbnRsXG4gIH06IEV4cG9ydERhdGFNb2RhbFByb3BzKSA9PiB7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHRvQ1BVRmlsdGVyID0gc2VsZWN0ZWREYXRhc2V0IHx8IE9iamVjdC5rZXlzKGRhdGFzZXRzKTtcbiAgICAgIGFwcGx5Q1BVRmlsdGVyKHRvQ1BVRmlsdGVyKTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvblNlbGVjdERhdGFzZXQ6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MU2VsZWN0RWxlbWVudD4gPSAoe3RhcmdldDoge3ZhbHVlfX0pID0+IHtcbiAgICAgIGFwcGx5Q1BVRmlsdGVyKHZhbHVlKTtcbiAgICAgIG9uQ2hhbmdlRXhwb3J0U2VsZWN0ZWREYXRhc2V0KHZhbHVlKTtcbiAgICB9O1xuXG4gICAgY29uc3QgZXhwb3J0QWxsRGF0YXNldHMgPSBzZWxlY3RlZERhdGFzZXQgPyAhZGF0YXNldHNbc2VsZWN0ZWREYXRhc2V0XSA6IHRydWU7XG4gICAgY29uc3Qgc2hvd1RpbGVkRGF0YXNldFdhcm5pbmcgPSBPYmplY3Qua2V5cyhkYXRhc2V0cykuc29tZShkYXRhc2V0SWQgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKGRhdGFzZXRzW2RhdGFzZXRJZF0udHlwZSA9PT0gRGF0YXNldFR5cGUuVkVDVE9SX1RJTEUgfHxcbiAgICAgICAgICBkYXRhc2V0c1tkYXRhc2V0SWRdLnR5cGUgPT09IERhdGFzZXRUeXBlLlJBU1RFUl9USUxFIHx8XG4gICAgICAgICAgZGF0YXNldHNbZGF0YXNldElkXS50eXBlID09PSBEYXRhc2V0VHlwZS5XTVNfVElMRSB8fFxuICAgICAgICAgIGRhdGFzZXRzW2RhdGFzZXRJZF0udHlwZSA9PT0gRGF0YXNldFR5cGUuVElMRV8zRCB8fFxuICAgICAgICAgIGRhdGFzZXRzW2RhdGFzZXRJZF0udHlwZSA9PT0gRGF0YXNldFR5cGUuQklUTUFQKSAmJlxuICAgICAgICAoc2VsZWN0ZWREYXRhc2V0ID09PSBkYXRhc2V0SWQgfHwgZXhwb3J0QWxsRGF0YXNldHMpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNb2RhbENvbnRlbnQgY2xhc3NOYW1lPVwiZXhwb3J0LWRhdGEtbW9kYWxcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8U3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0RGF0YS5kYXRhc2V0VGl0bGUnfSAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0RGF0YS5kYXRhc2V0U3VidGl0bGUnfSAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWxlY3Rpb25cIj5cbiAgICAgICAgICAgICAgPHNlbGVjdCB2YWx1ZT17c2VsZWN0ZWREYXRhc2V0fSBvbkNoYW5nZT17b25TZWxlY3REYXRhc2V0fT5cbiAgICAgICAgICAgICAgICB7W2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5leHBvcnREYXRhLmFsbERhdGFzZXRzJ30pXVxuICAgICAgICAgICAgICAgICAgLmNvbmNhdChPYmplY3Qua2V5cyhkYXRhc2V0cykpXG4gICAgICAgICAgICAgICAgICAubWFwKGQgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIGtleT17ZH0gdmFsdWU9e2R9PlxuICAgICAgICAgICAgICAgICAgICAgIHsoZGF0YXNldHNbZF0gJiYgZGF0YXNldHNbZF0ubGFiZWwpIHx8IGR9XG4gICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9TdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgIDxTdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnREYXRhLmRhdGFUeXBlVGl0bGUnfSAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0RGF0YS5kYXRhVHlwZVN1YnRpdGxlJ30gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAgICAgIHtzdXBwb3J0ZWREYXRhVHlwZXMubWFwKG9wID0+IChcbiAgICAgICAgICAgICAgICA8U3R5bGVkVHlwZVxuICAgICAgICAgICAgICAgICAga2V5PXtvcC5pZH1cbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtkYXRhVHlwZSA9PT0gb3AuaWR9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvcC5hdmFpbGFibGUgJiYgb25DaGFuZ2VFeHBvcnREYXRhVHlwZShvcC5pZCl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEZpbGVUeXBlIGV4dD17b3AubGFiZWx9IGhlaWdodD1cIjgwcHhcIiBmb250U2l6ZT1cIjExcHhcIiAvPlxuICAgICAgICAgICAgICAgICAge2RhdGFUeXBlID09PSBvcC5pZCAmJiA8Q2hlY2tNYXJrIC8+fVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVHlwZT5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L1N0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICAgICAgICAgPFN0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydERhdGEuZGF0YVR5cGVUaXRsZSd9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnREYXRhLmZpbHRlckRhdGFTdWJ0aXRsZSd9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlbGVjdGlvblwiPlxuICAgICAgICAgICAgICA8U3R5bGVkRmlsdGVyZWRPcHRpb25cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ1bmZpbHRlcmVkLW9wdGlvblwiXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ9eyFmaWx0ZXJlZH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkNoYW5nZUV4cG9ydEZpbHRlcmVkKGZhbHNlKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyLW9wdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnREYXRhLnVuZmlsdGVyZWREYXRhJ30gLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlci1vcHRpb24tc3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIHtnZXREYXRhUm93Q291bnQoZGF0YXNldHMsIHNlbGVjdGVkRGF0YXNldCwgZmFsc2UsIGludGwpfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIHshZmlsdGVyZWQgJiYgPENoZWNrTWFyayAvPn1cbiAgICAgICAgICAgICAgPC9TdHlsZWRGaWx0ZXJlZE9wdGlvbj5cbiAgICAgICAgICAgICAgPFN0eWxlZEZpbHRlcmVkT3B0aW9uXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmlsdGVyZWQtb3B0aW9uXCJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZD17ZmlsdGVyZWR9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25DaGFuZ2VFeHBvcnRGaWx0ZXJlZCh0cnVlKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsdGVyLW9wdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnREYXRhLmZpbHRlcmVkRGF0YSd9IC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXItb3B0aW9uLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICB7Z2V0RGF0YVJvd0NvdW50KGRhdGFzZXRzLCBzZWxlY3RlZERhdGFzZXQsIHRydWUsIGludGwpfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIHtmaWx0ZXJlZCAmJiA8Q2hlY2tNYXJrIC8+fVxuICAgICAgICAgICAgICA8L1N0eWxlZEZpbHRlcmVkT3B0aW9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9TdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgIHtzaG93VGlsZWREYXRhc2V0V2FybmluZyA/IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgPFN0eWxlZFdhcm5pbmc+XG4gICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnREYXRhLnRpbGVkRGF0YXNldFdhcm5pbmcnfSAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZFdhcm5pbmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1N0eWxlZE1vZGFsQ29udGVudD5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBpbmplY3RJbnRsKEV4cG9ydERhdGFNb2RhbCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFeHBvcnREYXRhTW9kYWxGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssaUJBQUEsR0FBQUwsT0FBQTtBQU9BLElBQUFNLFdBQUEsR0FBQU4sT0FBQTtBQUE0RCxTQUFBTyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVQsd0JBQUFTLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxD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MEUsYUFBQTtNQUFLRSxTQUFTLEVBQUM7SUFBcUIsZ0JBQ2xDNUUsTUFBQSxZQUFBMEUsYUFBQSxDQUFDckUsYUFBQSxDQUFBeUUsZ0JBQWdCO01BQUN6QyxFQUFFLEVBQUU7SUFBa0MsQ0FBRSxDQUN2RCxDQUFDLGVBQ05yQyxNQUFBLFlBQUEwRSxhQUFBO01BQUtFLFNBQVMsRUFBQztJQUF3QixHQUNwQy9DLGVBQWUsQ0FBQ0MsUUFBUSxFQUFFQyxlQUFlLEVBQUUsS0FBSyxFQUFFRSxJQUFJLENBQ3BELENBQUMsRUFDTCxDQUFDRCxRQUFRLGlCQUFJaEMsTUFBQSxZQUFBMEUsYUFBQSxDQUFDbkUsaUJBQUEsQ0FBQXVGLFNBQVMsTUFBRSxDQUNOLENBQUMsZUFDdkI5RixNQUFBLFlBQUEwRSxhQUFBLENBQUNuRSxpQkFBQSxDQUFBd0Ysb0JBQW9CO01BQ25CbkIsU0FBUyxFQUFDLGlCQUFpQjtNQUMzQlcsUUFBUSxFQUFFdkQsUUFBUztNQUNuQndELE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1FBQUEsT0FBUWxDLHNCQUFzQixDQUFDLElBQUksQ0FBQztNQUFBO0lBQUMsZ0JBRTVDdEQsTUFBQSxZQUFBMEUsYUFBQTtNQUFLRSxTQUFTLEVBQUM7SUFBcUIsZ0JBQ2xDNUUsTUFBQSxZQUFBMEUsYUFBQSxDQUFDckUsYUFBQSxDQUFBeUUsZ0JBQWdCO01BQUN6QyxFQUFFLEVBQUU7SUFBZ0MsQ0FBRSxDQUNyRCxDQUFDLGVBQ05yQyxNQUFBLFlBQUEwRSxhQUFBO01BQUtFLFNBQVMsRUFBQztJQUF3QixHQUNwQy9DLGVBQWUsQ0FBQ0MsUUFBUSxFQUFFQyxlQUFlLEVBQUUsSUFBSSxFQUFFRSxJQUFJLENBQ25ELENBQUMsRUFDTEQsUUFBUSxpQkFBSWhDLE1BQUEsWUFBQTBFLGFBQUEsQ0FBQ25FLGlCQUFBLENBQUF1RixTQUFTLE1BQUUsQ0FDTCxDQUNuQixDQUNjLENBQUMsRUFDckI5Qix1QkFBdUIsZ0JBQ3RCaEUsTUFBQSxZQUFBMEUsYUFBQTtNQUFLRSxTQUFTLEVBQUM7SUFBTyxnQkFDcEI1RSxNQUFBLFlBQUEwRSxhQUFBLENBQUNsRSxXQUFBLENBQUF3RixhQUFhLHFCQUNaaEcsTUFBQSxZQUFBMEUsYUFBQSxDQUFDckUsYUFBQSxDQUFBeUUsZ0JBQWdCO01BQUN6QyxFQUFFLEVBQUU7SUFBdUMsQ0FBRSxDQUNsRCxDQUNaLENBQUMsR0FDSixJQUNELENBQ2EsQ0FBQztFQUV6QixDQUFDO0VBRUQsT0FBTyxJQUFBNEQscUJBQVUsRUFBQ2xELGVBQWUsQ0FBQztBQUNwQyxDQUFDO0FBQUMsSUFBQW1ELFFBQUEsR0FBQUMsT0FBQSxjQUVhckQsc0JBQXNCIiwiaWdub3JlTGlzdCI6W119
@@ -186,4 +186,4 @@ var ExportImageModalFactory = function ExportImageModalFactory() {
186
186
  return (0, _reactIntl.injectIntl)(ExportImageModal);
187
187
  };
188
188
  var _default = exports["default"] = ExportImageModalFactory;
189
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaW1hZ2VQcmV2aWV3IiwiX2NvbnN0YW50cyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9zd2l0Y2giLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkltYWdlT3B0aW9uTGlzdCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiU0NSRUVOX1JFU09MVVRJT05fT1BUSU9OUyIsIk9uZVhSZXNvbHV0aW9uT3B0aW9uIiwiVHdvWFJlc29sdXRpb25PcHRpb24iLCJGT1VSX0JZX1RIUkVFX1JFU09MVVRJT05fT1BUSU9OUyIsIlJlc29sdXRpb24xMDI0eDc2OE9wdGlvbiIsIlJlc29sdXRpb24xMjgweDk2ME9wdGlvbiIsIlJlc29sdXRpb24xNjAweDEyMDBPcHRpb24iLCJSZXNvbHV0aW9uMTkyMHgxNDQwT3B0aW9uIiwiU0lYVEVFTl9CWV9OSU5FX1JFU09MVVRJT05fT1BUSU9OUyIsIlJlc29sdXRpb24xMjgweDcyME9wdGlvbiIsIlJlc29sdXRpb24xNjAweDkwME9wdGlvbiIsIlJlc29sdXRpb24xOTIweDEwODBPcHRpb24iLCJSZXNvbHV0aW9uMjU2MHgxNDQwT3B0aW9uIiwiRXhwb3J0SW1hZ2VNb2RhbEZhY3RvcnkiLCJFeHBvcnRJbWFnZU1vZGFsIiwiX3JlZiIsIm1hcFciLCJtYXBIIiwiZXhwb3J0SW1hZ2UiLCJvblVwZGF0ZUltYWdlU2V0dGluZyIsImNsZWFudXBFeHBvcnRJbWFnZSIsImludGwiLCJsZWdlbmQiLCJyYXRpbyIsInJlc29sdXRpb24iLCJmaWx0ZXJlZFJlc29sdXRpb25zIiwidXNlTWVtbyIsIkVYUE9SVF9JTUdfUkFUSU9TIiwiU0NSRUVOIiwiRk9VUl9CWV9USFJFRSIsIlNJWFRFRU5fQllfTklORSIsInVzZUVmZmVjdCIsImV4cG9ydGluZyIsImxlbmd0aCIsImlzVmFsaWRSZXNvbHV0aW9uIiwiQm9vbGVhbiIsInNvbWUiLCJvcCIsImlkIiwiY3JlYXRlRWxlbWVudCIsIlN0eWxlZE1vZGFsQ29udGVudCIsImNsYXNzTmFtZSIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJFWFBPUlRfSU1HX1JBVElPX09QVElPTlMiLCJmaWx0ZXIiLCJoaWRkZW4iLCJtYXAiLCJTZWxlY3Rpb25CdXR0b24iLCJrZXkiLCJzZWxlY3RlZCIsIm9uQ2xpY2siLCJsYWJlbCIsIkNoZWNrTWFyayIsIkNVU1RPTSIsImF2YWlsYWJsZSIsInZhbHVlIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJmb3JtYXRNZXNzYWdlIiwiZGlzYWJsZWQiLCJ0eXBlIiwiY2hlY2tlZCIsImluamVjdEludGwiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kYWxzL2V4cG9ydC1pbWFnZS1tb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBJbWFnZVByZXZpZXcgZnJvbSAnLi4vY29tbW9uL2ltYWdlLXByZXZpZXcnO1xuaW1wb3J0IHtTZXRFeHBvcnRJbWFnZVNldHRpbmdVcGRhdGVyQWN0aW9ufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuXG5pbXBvcnQge1xuICBFWFBPUlRfSU1HX1JBVElPX09QVElPTlMsXG4gIEVYUE9SVF9JTUdfUkFUSU9TLFxuICBPbmVYUmVzb2x1dGlvbk9wdGlvbixcbiAgVHdvWFJlc29sdXRpb25PcHRpb24sXG4gIFJlc29sdXRpb24xMDI0eDc2OE9wdGlvbixcbiAgUmVzb2x1dGlvbjEyODB4OTYwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTYwMHgxMjAwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTkyMHgxNDQwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTI4MHg3MjBPcHRpb24sXG4gIFJlc29sdXRpb24xNjAweDkwME9wdGlvbixcbiAgUmVzb2x1dGlvbjE5MjB4MTA4ME9wdGlvbixcbiAgUmVzb2x1dGlvbjI1NjB4MTQ0ME9wdGlvblxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7RXhwb3J0UmVzb2x1dGlvbk9wdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUge0V4cG9ydEltYWdlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7U3R5bGVkTW9kYWxDb250ZW50LCBTZWxlY3Rpb25CdXR0b24sIENoZWNrTWFya30gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBTd2l0Y2ggZnJvbSAnLi4vY29tbW9uL3N3aXRjaCc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuY29uc3QgSW1hZ2VPcHRpb25MaXN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxNnB4O1xuICB3aWR0aDogMjUwcHg7XG5cbiAgLmltYWdlLW9wdGlvbi1zZWN0aW9uIHtcbiAgICAuaW1hZ2Utb3B0aW9uLXNlY3Rpb24tdGl0bGUge1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gIH1cblxuICAuYnV0dG9uLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBwYWRkaW5nOiA4cHggMHB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDRweDtcbiAgfVxuXG4gIC5yZXNvbHV0aW9uLWRyb3Bkb3duIHtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcblxuICAgIHNlbGVjdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2QzZDNkMztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgaGVpZ2h0OiAzMnB4O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjOTk5O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDA2NmNjO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgwLCAxMDIsIDIwNCwgMC4xKTtcbiAgICAgIH1cblxuICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlucHV0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgfVxuYDtcblxuLy8gRGVmaW5lIHJlc29sdXRpb24gb3B0aW9ucyBmb3IgZWFjaCByYXRpbyBhcyBjb25zdGFudHNcbmNvbnN0IFNDUkVFTl9SRVNPTFVUSU9OX09QVElPTlMgPSBbT25lWFJlc29sdXRpb25PcHRpb24sIFR3b1hSZXNvbHV0aW9uT3B0aW9uXTtcblxuY29uc3QgRk9VUl9CWV9USFJFRV9SRVNPTFVUSU9OX09QVElPTlMgPSBbXG4gIFJlc29sdXRpb24xMDI0eDc2OE9wdGlvbixcbiAgUmVzb2x1dGlvbjEyODB4OTYwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTYwMHgxMjAwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTkyMHgxNDQwT3B0aW9uXG5dO1xuXG5jb25zdCBTSVhURUVOX0JZX05JTkVfUkVTT0xVVElPTl9PUFRJT05TID0gW1xuICBSZXNvbHV0aW9uMTI4MHg3MjBPcHRpb24sXG4gIFJlc29sdXRpb24xNjAweDkwME9wdGlvbixcbiAgUmVzb2x1dGlvbjE5MjB4MTA4ME9wdGlvbixcbiAgUmVzb2x1dGlvbjI1NjB4MTQ0ME9wdGlvblxuXTtcblxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRJbWFnZU1vZGFsUHJvcHMge1xuICBleHBvcnRJbWFnZTogRXhwb3J0SW1hZ2U7XG4gIG1hcFc6IG51bWJlcjtcbiAgbWFwSDogbnVtYmVyO1xuICBvblVwZGF0ZUltYWdlU2V0dGluZzogKHBheWxvYWQ6IFNldEV4cG9ydEltYWdlU2V0dGluZ1VwZGF0ZXJBY3Rpb25bJ3BheWxvYWQnXSkgPT4gdm9pZDtcbiAgY2xlYW51cEV4cG9ydEltYWdlOiAoKSA9PiB2b2lkO1xuICBpbnRsOiBJbnRsU2hhcGU7XG59XG5cbmNvbnN0IEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCBFeHBvcnRJbWFnZU1vZGFsOiBSZWFjdC5GQzxFeHBvcnRJbWFnZU1vZGFsUHJvcHM+ID0gKHtcbiAgICBtYXBXLFxuICAgIG1hcEgsXG4gICAgZXhwb3J0SW1hZ2UsXG4gICAgb25VcGRhdGVJbWFnZVNldHRpbmcsXG4gICAgY2xlYW51cEV4cG9ydEltYWdlLFxuICAgIGludGxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtsZWdlbmQsIHJhdGlvLCByZXNvbHV0aW9ufSA9IGV4cG9ydEltYWdlO1xuXG4gICAgLy8gRmlsdGVyIHJlc29sdXRpb25zIGJhc2VkIG9uIHNlbGVjdGVkIHJhdGlvXG4gICAgY29uc3QgZmlsdGVyZWRSZXNvbHV0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHJhdGlvID09PSBFWFBPUlRfSU1HX1JBVElPUy5TQ1JFRU4pIHtcbiAgICAgICAgcmV0dXJuIFNDUkVFTl9SRVNPTFVUSU9OX09QVElPTlM7XG4gICAgICB9IGVsc2UgaWYgKHJhdGlvID09PSBFWFBPUlRfSU1HX1JBVElPUy5GT1VSX0JZX1RIUkVFKSB7XG4gICAgICAgIHJldHVybiBGT1VSX0JZX1RIUkVFX1JFU09MVVRJT05fT1BUSU9OUztcbiAgICAgIH0gZWxzZSBpZiAocmF0aW8gPT09IEVYUE9SVF9JTUdfUkFUSU9TLlNJWFRFRU5fQllfTklORSkge1xuICAgICAgICByZXR1cm4gU0lYVEVFTl9CWV9OSU5FX1JFU09MVVRJT05fT1BUSU9OUztcbiAgICAgIH1cbiAgICAgIC8vIEZvciBDVVNUT00sIGRvbid0IHNob3cgcmVzb2x1dGlvbiBvcHRpb25zXG4gICAgICByZXR1cm4gW107XG4gICAgfSwgW3JhdGlvXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmcoe1xuICAgICAgICBleHBvcnRpbmc6IHRydWVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNsZWFudXBFeHBvcnRJbWFnZTtcbiAgICB9LCBbb25VcGRhdGVJbWFnZVNldHRpbmcsIGNsZWFudXBFeHBvcnRJbWFnZV0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChtYXBIICE9PSBleHBvcnRJbWFnZS5tYXBIIHx8IG1hcFcgIT09IGV4cG9ydEltYWdlLm1hcFcpIHtcbiAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmcoe1xuICAgICAgICAgIG1hcEgsXG4gICAgICAgICAgbWFwV1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCBbbWFwSCwgbWFwVywgZXhwb3J0SW1hZ2UsIG9uVXBkYXRlSW1hZ2VTZXR0aW5nXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgLy8gS2VlcCByZXNvbHV0aW9uIGluIHN5bmMgd2l0aCB0aGUgc2VsZWN0ZWQgcmF0aW8gYW5kIGF2YWlsYWJsZSBvcHRpb25zLlxuICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgcmVzb2x1dGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIHJhdGlvLCByZXNldCBpdCB0byB0aGUgZmlyc3Qgb3B0aW9uLlxuICAgICAgaWYgKCFmaWx0ZXJlZFJlc29sdXRpb25zIHx8ICFmaWx0ZXJlZFJlc29sdXRpb25zLmxlbmd0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlzVmFsaWRSZXNvbHV0aW9uID1cbiAgICAgICAgQm9vbGVhbihyZXNvbHV0aW9uKSAmJiBmaWx0ZXJlZFJlc29sdXRpb25zLnNvbWUob3AgPT4gb3AuaWQgPT09IHJlc29sdXRpb24pO1xuXG4gICAgICBpZiAoIWlzVmFsaWRSZXNvbHV0aW9uKSB7XG4gICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nKHtyZXNvbHV0aW9uOiBmaWx0ZXJlZFJlc29sdXRpb25zWzBdLmlkfSk7XG4gICAgICB9XG4gICAgfSwgW3JhdGlvLCBmaWx0ZXJlZFJlc29sdXRpb25zLCByZXNvbHV0aW9uLCBvblVwZGF0ZUltYWdlU2V0dGluZ10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNb2RhbENvbnRlbnQgY2xhc3NOYW1lPVwiZXhwb3J0LWltYWdlLW1vZGFsXCI+XG4gICAgICAgIDxJbWFnZU9wdGlvbkxpc3Q+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJhdGlvVGl0bGUnfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJhdGlvRGVzY3JpcHRpb24nfSAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidXR0b24tbGlzdFwiIGlkPVwiZXhwb3J0LWltYWdlLW1vZGFsX19vcHRpb25fcmF0aW9cIj5cbiAgICAgICAgICAgICAge0VYUE9SVF9JTUdfUkFUSU9fT1BUSU9OUy5maWx0ZXIob3AgPT4gIW9wLmhpZGRlbikubWFwKG9wID0+IChcbiAgICAgICAgICAgICAgICA8U2VsZWN0aW9uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBrZXk9e29wLmlkfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3JhdGlvID09PSBvcC5pZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVXBkYXRlSW1hZ2VTZXR0aW5nKHtyYXRpbzogb3AuaWR9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17b3AubGFiZWx9IC8+XG4gICAgICAgICAgICAgICAgICB7cmF0aW8gPT09IG9wLmlkICYmIDxDaGVja01hcmsgLz59XG4gICAgICAgICAgICAgICAgPC9TZWxlY3Rpb25CdXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAge3JhdGlvICE9PSBFWFBPUlRfSU1HX1JBVElPUy5DVVNUT00gJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvbi10aXRsZVwiXG4gICAgICAgICAgICAgICAgIGlkPVwiZXhwb3J0LWltYWdlLW1vZGFsX19yZXNvbHV0aW9uLXRpdGxlXCJcbiAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJlc29sdXRpb25UaXRsZSd9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJlc29sdXRpb25EZXNjcmlwdGlvbid9IC8+XG4gICAgICAgICAgICAgIHtyYXRpbyA9PT0gRVhQT1JUX0lNR19SQVRJT1MuU0NSRUVOID8gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnV0dG9uLWxpc3RcIiBpZD1cImV4cG9ydC1pbWFnZS1tb2RhbF9fb3B0aW9uX3Jlc29sdXRpb25cIj5cbiAgICAgICAgICAgICAgICAgIHtmaWx0ZXJlZFJlc29sdXRpb25zLm1hcChvcCA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxTZWxlY3Rpb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wLmlkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtyZXNvbHV0aW9uID09PSBvcC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvcC5hdmFpbGFibGUgJiYgb25VcGRhdGVJbWFnZVNldHRpbmcoe3Jlc29sdXRpb246IG9wLmlkfSl9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7b3AubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAge3Jlc29sdXRpb24gPT09IG9wLmlkICYmIDxDaGVja01hcmsgLz59XG4gICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0aW9uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZXNvbHV0aW9uLWRyb3Bkb3duXCIgaWQ9XCJleHBvcnQtaW1hZ2UtbW9kYWxfX29wdGlvbl9yZXNvbHV0aW9uXCI+XG4gICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtyZXNvbHV0aW9uIHx8ICcnfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJleHBvcnQtaW1hZ2UtbW9kYWxfX3Jlc29sdXRpb24tdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IHVwZGF0ZSBpZiBhIHZhbGlkIHJlc29sdXRpb24gaXMgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgJiYgZmlsdGVyZWRSZXNvbHV0aW9ucy5zb21lKG9wID0+IG9wLmlkID09PSB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFR5cGUtc2FmZTogd2UndmUgdmVyaWZpZWQgdGhlIHZhbHVlIGV4aXN0cyBpbiBmaWx0ZXJlZFJlc29sdXRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZyh7cmVzb2x1dGlvbjogdmFsdWUgYXMgRXhwb3J0UmVzb2x1dGlvbk9wdGlvbn0pO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBlbXB0eSBzdHJpbmcgc2VsZWN0ZWQsIG9wdGlvbmFsbHkgcmVzZXQgdG8gZmlyc3QgYXZhaWxhYmxlIHJlc29sdXRpb25cbiAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICghdmFsdWUgJiYgZmlsdGVyZWRSZXNvbHV0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZyh7cmVzb2x1dGlvbjogZmlsdGVyZWRSZXNvbHV0aW9uc1swXS5pZH0pO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuZXhwb3J0SW1hZ2UucmVzb2x1dGlvblBsYWNlaG9sZGVyJ30pfVxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAge2ZpbHRlcmVkUmVzb2x1dGlvbnMubWFwKG9wID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIGtleT17b3AuaWR9IHZhbHVlPXtvcC5pZH0gZGlzYWJsZWQ9eyFvcC5hdmFpbGFibGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAge29wLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlLW9wdGlvbi1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlLW9wdGlvbi1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0SW1hZ2UubWFwTGVnZW5kVGl0bGUnfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8U3dpdGNoXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIGlkPVwiYWRkLW1hcC1sZWdlbmRcIlxuICAgICAgICAgICAgICBjaGVja2VkPXtsZWdlbmR9XG4gICAgICAgICAgICAgIGxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuZXhwb3J0SW1hZ2UubWFwTGVnZW5kQWRkJ30pfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gb25VcGRhdGVJbWFnZVNldHRpbmcoe2xlZ2VuZDogIWxlZ2VuZH0pfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9JbWFnZU9wdGlvbkxpc3Q+XG4gICAgICAgIDxJbWFnZVByZXZpZXcgZXhwb3J0SW1hZ2U9e2V4cG9ydEltYWdlfSAvPlxuICAgICAgPC9TdHlsZWRNb2RhbENvbnRlbnQ+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gaW5qZWN0SW50bChFeHBvcnRJbWFnZU1vZGFsKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUdBLElBQUFJLFVBQUEs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QyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQ2E7VUFBRSxDQUFDLENBQUM7UUFDL0Q7TUFDRjtJQUFFLGdCQUVGMUUsTUFBQSxZQUFBMkUsYUFBQTtNQUFRZ0IsS0FBSyxFQUFDO0lBQUUsR0FDYmxDLElBQUksQ0FBQ3FDLGFBQWEsQ0FBQztNQUFDcEIsRUFBRSxFQUFFO0lBQXlDLENBQUMsQ0FDN0QsQ0FBQyxFQUNSYixtQkFBbUIsQ0FBQ3FCLEdBQUcsQ0FBQyxVQUFBVCxFQUFFO01BQUEsb0JBQ3pCekUsTUFBQSxZQUFBMkUsYUFBQTtRQUFRUyxHQUFHLEVBQUVYLEVBQUUsQ0FBQ0MsRUFBRztRQUFDaUIsS0FBSyxFQUFFbEIsRUFBRSxDQUFDQyxFQUFHO1FBQUNxQixRQUFRLEVBQUUsQ0FBQ3RCLEVBQUUsQ0FBQ2lCO01BQVUsR0FDdkRqQixFQUFFLENBQUNjLEtBQ0UsQ0FBQztJQUFBLENBQ1YsQ0FDSyxDQUNMLENBRUosQ0FDTixlQUNEdkYsTUFBQSxZQUFBMkUsYUFBQTtNQUFLRSxTQUFTLEVBQUM7SUFBc0IsZ0JBQ25DN0UsTUFBQSxZQUFBMkUsYUFBQTtNQUFLRSxTQUFTLEVBQUM7SUFBNEIsZ0JBQ3pDN0UsTUFBQSxZQUFBMkUsYUFBQSxDQUFDakUsYUFBQSxDQUFBb0UsZ0JBQWdCO01BQUNKLEVBQUUsRUFBRTtJQUFtQyxDQUFFLENBQ3hELENBQUMsZUFDTjFFLE1BQUEsWUFBQTJFLGFBQUEsQ0FBQ25FLE9BQUEsV0FBTTtNQUNMd0YsSUFBSSxFQUFDLFVBQVU7TUFDZnRCLEVBQUUsRUFBQyxnQkFBZ0I7TUFDbkJ1QixPQUFPLEVBQUV2QyxNQUFPO01BQ2hCNkIsS0FBSyxFQUFFOUIsSUFBSSxDQUFDcUMsYUFBYSxDQUFDO1FBQUNwQixFQUFFLEVBQUU7TUFBZ0MsQ0FBQyxDQUFFO01BQ2xFa0IsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUE7UUFBQSxPQUFRckMsb0JBQW9CLENBQUM7VUFBQ0csTUFBTSxFQUFFLENBQUNBO1FBQU0sQ0FBQyxDQUFDO01BQUE7SUFBQyxDQUN6RCxDQUNFLENBQ1UsQ0FBQyxlQUNsQjFELE1BQUEsWUFBQTJFLGFBQUEsQ0FBQ3RFLGFBQUEsV0FBWTtNQUFDaUQsV0FBVyxFQUFFQTtJQUFZLENBQUUsQ0FDdkIsQ0FBQztFQUV6QixDQUFDO0VBRUQsT0FBTyxJQUFBNEMscUJBQVUsRUFBQ2hELGdCQUFnQixDQUFDO0FBQ3JDLENBQUM7QUFBQyxJQUFBaUQsUUFBQSxHQUFBQyxPQUFBLGNBRWFuRCx1QkFBdUIiLCJpZ25vcmVMaXN0IjpbXX0=
189
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaW1hZ2VQcmV2aWV3IiwiX2NvbnN0YW50cyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9zd2l0Y2giLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkltYWdlT3B0aW9uTGlzdCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiU0NSRUVOX1JFU09MVVRJT05fT1BUSU9OUyIsIk9uZVhSZXNvbHV0aW9uT3B0aW9uIiwiVHdvWFJlc29sdXRpb25PcHRpb24iLCJGT1VSX0JZX1RIUkVFX1JFU09MVVRJT05fT1BUSU9OUyIsIlJlc29sdXRpb24xMDI0eDc2OE9wdGlvbiIsIlJlc29sdXRpb24xMjgweDk2ME9wdGlvbiIsIlJlc29sdXRpb24xNjAweDEyMDBPcHRpb24iLCJSZXNvbHV0aW9uMTkyMHgxNDQwT3B0aW9uIiwiU0lYVEVFTl9CWV9OSU5FX1JFU09MVVRJT05fT1BUSU9OUyIsIlJlc29sdXRpb24xMjgweDcyME9wdGlvbiIsIlJlc29sdXRpb24xNjAweDkwME9wdGlvbiIsIlJlc29sdXRpb24xOTIweDEwODBPcHRpb24iLCJSZXNvbHV0aW9uMjU2MHgxNDQwT3B0aW9uIiwiRXhwb3J0SW1hZ2VNb2RhbEZhY3RvcnkiLCJFeHBvcnRJbWFnZU1vZGFsIiwiX3JlZiIsIm1hcFciLCJtYXBIIiwiZXhwb3J0SW1hZ2UiLCJvblVwZGF0ZUltYWdlU2V0dGluZyIsImNsZWFudXBFeHBvcnRJbWFnZSIsImludGwiLCJsZWdlbmQiLCJyYXRpbyIsInJlc29sdXRpb24iLCJmaWx0ZXJlZFJlc29sdXRpb25zIiwidXNlTWVtbyIsIkVYUE9SVF9JTUdfUkFUSU9TIiwiU0NSRUVOIiwiRk9VUl9CWV9USFJFRSIsIlNJWFRFRU5fQllfTklORSIsInVzZUVmZmVjdCIsImV4cG9ydGluZyIsImxlbmd0aCIsImlzVmFsaWRSZXNvbHV0aW9uIiwiQm9vbGVhbiIsInNvbWUiLCJvcCIsImlkIiwiY3JlYXRlRWxlbWVudCIsIlN0eWxlZE1vZGFsQ29udGVudCIsImNsYXNzTmFtZSIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJFWFBPUlRfSU1HX1JBVElPX09QVElPTlMiLCJmaWx0ZXIiLCJoaWRkZW4iLCJtYXAiLCJTZWxlY3Rpb25CdXR0b24iLCJrZXkiLCJzZWxlY3RlZCIsIm9uQ2xpY2siLCJsYWJlbCIsIkNoZWNrTWFyayIsIkNVU1RPTSIsImF2YWlsYWJsZSIsInZhbHVlIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJmb3JtYXRNZXNzYWdlIiwiZGlzYWJsZWQiLCJ0eXBlIiwiY2hlY2tlZCIsImluamVjdEludGwiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kYWxzL2V4cG9ydC1pbWFnZS1tb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBJbWFnZVByZXZpZXcgZnJvbSAnLi4vY29tbW9uL2ltYWdlLXByZXZpZXcnO1xuaW1wb3J0IHtTZXRFeHBvcnRJbWFnZVNldHRpbmdVcGRhdGVyQWN0aW9ufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuXG5pbXBvcnQge1xuICBFWFBPUlRfSU1HX1JBVElPX09QVElPTlMsXG4gIEVYUE9SVF9JTUdfUkFUSU9TLFxuICBPbmVYUmVzb2x1dGlvbk9wdGlvbixcbiAgVHdvWFJlc29sdXRpb25PcHRpb24sXG4gIFJlc29sdXRpb24xMDI0eDc2OE9wdGlvbixcbiAgUmVzb2x1dGlvbjEyODB4OTYwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTYwMHgxMjAwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTkyMHgxNDQwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTI4MHg3MjBPcHRpb24sXG4gIFJlc29sdXRpb24xNjAweDkwME9wdGlvbixcbiAgUmVzb2x1dGlvbjE5MjB4MTA4ME9wdGlvbixcbiAgUmVzb2x1dGlvbjI1NjB4MTQ0ME9wdGlvblxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7RXhwb3J0UmVzb2x1dGlvbk9wdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUge0V4cG9ydEltYWdlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7U3R5bGVkTW9kYWxDb250ZW50LCBTZWxlY3Rpb25CdXR0b24sIENoZWNrTWFya30gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBTd2l0Y2ggZnJvbSAnLi4vY29tbW9uL3N3aXRjaCc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuY29uc3QgSW1hZ2VPcHRpb25MaXN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxNnB4O1xuICB3aWR0aDogMjUwcHg7XG5cbiAgLmltYWdlLW9wdGlvbi1zZWN0aW9uIHtcbiAgICAuaW1hZ2Utb3B0aW9uLXNlY3Rpb24tdGl0bGUge1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gIH1cblxuICAuYnV0dG9uLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBwYWRkaW5nOiA4cHggMHB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDRweDtcbiAgfVxuXG4gIC5yZXNvbHV0aW9uLWRyb3Bkb3duIHtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcblxuICAgIHNlbGVjdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2QzZDNkMztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgaGVpZ2h0OiAzMnB4O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjOTk5O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDA2NmNjO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgwLCAxMDIsIDIwNCwgMC4xKTtcbiAgICAgIH1cblxuICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlucHV0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgfVxuYDtcblxuLy8gRGVmaW5lIHJlc29sdXRpb24gb3B0aW9ucyBmb3IgZWFjaCByYXRpbyBhcyBjb25zdGFudHNcbmNvbnN0IFNDUkVFTl9SRVNPTFVUSU9OX09QVElPTlMgPSBbT25lWFJlc29sdXRpb25PcHRpb24sIFR3b1hSZXNvbHV0aW9uT3B0aW9uXTtcblxuY29uc3QgRk9VUl9CWV9USFJFRV9SRVNPTFVUSU9OX09QVElPTlMgPSBbXG4gIFJlc29sdXRpb24xMDI0eDc2OE9wdGlvbixcbiAgUmVzb2x1dGlvbjEyODB4OTYwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTYwMHgxMjAwT3B0aW9uLFxuICBSZXNvbHV0aW9uMTkyMHgxNDQwT3B0aW9uXG5dO1xuXG5jb25zdCBTSVhURUVOX0JZX05JTkVfUkVTT0xVVElPTl9PUFRJT05TID0gW1xuICBSZXNvbHV0aW9uMTI4MHg3MjBPcHRpb24sXG4gIFJlc29sdXRpb24xNjAweDkwME9wdGlvbixcbiAgUmVzb2x1dGlvbjE5MjB4MTA4ME9wdGlvbixcbiAgUmVzb2x1dGlvbjI1NjB4MTQ0ME9wdGlvblxuXTtcblxuZXhwb3J0IGludGVyZmFjZSBFeHBvcnRJbWFnZU1vZGFsUHJvcHMge1xuICBleHBvcnRJbWFnZTogRXhwb3J0SW1hZ2U7XG4gIG1hcFc6IG51bWJlcjtcbiAgbWFwSDogbnVtYmVyO1xuICBvblVwZGF0ZUltYWdlU2V0dGluZzogKHBheWxvYWQ6IFNldEV4cG9ydEltYWdlU2V0dGluZ1VwZGF0ZXJBY3Rpb25bJ3BheWxvYWQnXSkgPT4gdm9pZDtcbiAgY2xlYW51cEV4cG9ydEltYWdlOiAoKSA9PiB2b2lkO1xuICBpbnRsOiBJbnRsU2hhcGU7XG59XG5cbmNvbnN0IEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCBFeHBvcnRJbWFnZU1vZGFsOiBSZWFjdC5GQzxFeHBvcnRJbWFnZU1vZGFsUHJvcHM+ID0gKHtcbiAgICBtYXBXLFxuICAgIG1hcEgsXG4gICAgZXhwb3J0SW1hZ2UsXG4gICAgb25VcGRhdGVJbWFnZVNldHRpbmcsXG4gICAgY2xlYW51cEV4cG9ydEltYWdlLFxuICAgIGludGxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtsZWdlbmQsIHJhdGlvLCByZXNvbHV0aW9ufSA9IGV4cG9ydEltYWdlO1xuXG4gICAgLy8gRmlsdGVyIHJlc29sdXRpb25zIGJhc2VkIG9uIHNlbGVjdGVkIHJhdGlvXG4gICAgY29uc3QgZmlsdGVyZWRSZXNvbHV0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHJhdGlvID09PSBFWFBPUlRfSU1HX1JBVElPUy5TQ1JFRU4pIHtcbiAgICAgICAgcmV0dXJuIFNDUkVFTl9SRVNPTFVUSU9OX09QVElPTlM7XG4gICAgICB9IGVsc2UgaWYgKHJhdGlvID09PSBFWFBPUlRfSU1HX1JBVElPUy5GT1VSX0JZX1RIUkVFKSB7XG4gICAgICAgIHJldHVybiBGT1VSX0JZX1RIUkVFX1JFU09MVVRJT05fT1BUSU9OUztcbiAgICAgIH0gZWxzZSBpZiAocmF0aW8gPT09IEVYUE9SVF9JTUdfUkFUSU9TLlNJWFRFRU5fQllfTklORSkge1xuICAgICAgICByZXR1cm4gU0lYVEVFTl9CWV9OSU5FX1JFU09MVVRJT05fT1BUSU9OUztcbiAgICAgIH1cbiAgICAgIC8vIEZvciBDVVNUT00sIGRvbid0IHNob3cgcmVzb2x1dGlvbiBvcHRpb25zXG4gICAgICByZXR1cm4gW107XG4gICAgfSwgW3JhdGlvXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmcoe1xuICAgICAgICBleHBvcnRpbmc6IHRydWVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNsZWFudXBFeHBvcnRJbWFnZTtcbiAgICB9LCBbb25VcGRhdGVJbWFnZVNldHRpbmcsIGNsZWFudXBFeHBvcnRJbWFnZV0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChtYXBIICE9PSBleHBvcnRJbWFnZS5tYXBIIHx8IG1hcFcgIT09IGV4cG9ydEltYWdlLm1hcFcpIHtcbiAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmcoe1xuICAgICAgICAgIG1hcEgsXG4gICAgICAgICAgbWFwV1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCBbbWFwSCwgbWFwVywgZXhwb3J0SW1hZ2UsIG9uVXBkYXRlSW1hZ2VTZXR0aW5nXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgLy8gS2VlcCByZXNvbHV0aW9uIGluIHN5bmMgd2l0aCB0aGUgc2VsZWN0ZWQgcmF0aW8gYW5kIGF2YWlsYWJsZSBvcHRpb25zLlxuICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgcmVzb2x1dGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIHJhdGlvLCByZXNldCBpdCB0byB0aGUgZmlyc3Qgb3B0aW9uLlxuICAgICAgaWYgKCFmaWx0ZXJlZFJlc29sdXRpb25zIHx8ICFmaWx0ZXJlZFJlc29sdXRpb25zLmxlbmd0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlzVmFsaWRSZXNvbHV0aW9uID1cbiAgICAgICAgQm9vbGVhbihyZXNvbHV0aW9uKSAmJiBmaWx0ZXJlZFJlc29sdXRpb25zLnNvbWUob3AgPT4gb3AuaWQgPT09IHJlc29sdXRpb24pO1xuXG4gICAgICBpZiAoIWlzVmFsaWRSZXNvbHV0aW9uKSB7XG4gICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nKHtyZXNvbHV0aW9uOiBmaWx0ZXJlZFJlc29sdXRpb25zWzBdLmlkfSk7XG4gICAgICB9XG4gICAgfSwgW3JhdGlvLCBmaWx0ZXJlZFJlc29sdXRpb25zLCByZXNvbHV0aW9uLCBvblVwZGF0ZUltYWdlU2V0dGluZ10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNb2RhbENvbnRlbnQgY2xhc3NOYW1lPVwiZXhwb3J0LWltYWdlLW1vZGFsXCI+XG4gICAgICAgIDxJbWFnZU9wdGlvbkxpc3Q+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJhdGlvVGl0bGUnfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJhdGlvRGVzY3JpcHRpb24nfSAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidXR0b24tbGlzdFwiIGlkPVwiZXhwb3J0LWltYWdlLW1vZGFsX19vcHRpb25fcmF0aW9cIj5cbiAgICAgICAgICAgICAge0VYUE9SVF9JTUdfUkFUSU9fT1BUSU9OUy5maWx0ZXIob3AgPT4gIW9wLmhpZGRlbikubWFwKG9wID0+IChcbiAgICAgICAgICAgICAgICA8U2VsZWN0aW9uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBrZXk9e29wLmlkfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3JhdGlvID09PSBvcC5pZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVXBkYXRlSW1hZ2VTZXR0aW5nKHtyYXRpbzogb3AuaWR9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17b3AubGFiZWx9IC8+XG4gICAgICAgICAgICAgICAgICB7cmF0aW8gPT09IG9wLmlkICYmIDxDaGVja01hcmsgLz59XG4gICAgICAgICAgICAgICAgPC9TZWxlY3Rpb25CdXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAge3JhdGlvICE9PSBFWFBPUlRfSU1HX1JBVElPUy5DVVNUT00gJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlLW9wdGlvbi1zZWN0aW9uLXRpdGxlXCIgaWQ9XCJleHBvcnQtaW1hZ2UtbW9kYWxfX3Jlc29sdXRpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJlc29sdXRpb25UaXRsZSd9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJlc29sdXRpb25EZXNjcmlwdGlvbid9IC8+XG4gICAgICAgICAgICAgIHtyYXRpbyA9PT0gRVhQT1JUX0lNR19SQVRJT1MuU0NSRUVOID8gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnV0dG9uLWxpc3RcIiBpZD1cImV4cG9ydC1pbWFnZS1tb2RhbF9fb3B0aW9uX3Jlc29sdXRpb25cIj5cbiAgICAgICAgICAgICAgICAgIHtmaWx0ZXJlZFJlc29sdXRpb25zLm1hcChvcCA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxTZWxlY3Rpb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e29wLmlkfVxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtyZXNvbHV0aW9uID09PSBvcC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvcC5hdmFpbGFibGUgJiYgb25VcGRhdGVJbWFnZVNldHRpbmcoe3Jlc29sdXRpb246IG9wLmlkfSl9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7b3AubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAge3Jlc29sdXRpb24gPT09IG9wLmlkICYmIDxDaGVja01hcmsgLz59XG4gICAgICAgICAgICAgICAgICAgIDwvU2VsZWN0aW9uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZXNvbHV0aW9uLWRyb3Bkb3duXCIgaWQ9XCJleHBvcnQtaW1hZ2UtbW9kYWxfX29wdGlvbl9yZXNvbHV0aW9uXCI+XG4gICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtyZXNvbHV0aW9uIHx8ICcnfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJleHBvcnQtaW1hZ2UtbW9kYWxfX3Jlc29sdXRpb24tdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IHVwZGF0ZSBpZiBhIHZhbGlkIHJlc29sdXRpb24gaXMgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgJiYgZmlsdGVyZWRSZXNvbHV0aW9ucy5zb21lKG9wID0+IG9wLmlkID09PSB2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFR5cGUtc2FmZTogd2UndmUgdmVyaWZpZWQgdGhlIHZhbHVlIGV4aXN0cyBpbiBmaWx0ZXJlZFJlc29sdXRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZyh7cmVzb2x1dGlvbjogdmFsdWUgYXMgRXhwb3J0UmVzb2x1dGlvbk9wdGlvbn0pO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBlbXB0eSBzdHJpbmcgc2VsZWN0ZWQsIG9wdGlvbmFsbHkgcmVzZXQgdG8gZmlyc3QgYXZhaWxhYmxlIHJlc29sdXRpb25cbiAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICghdmFsdWUgJiYgZmlsdGVyZWRSZXNvbHV0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZyh7cmVzb2x1dGlvbjogZmlsdGVyZWRSZXNvbHV0aW9uc1swXS5pZH0pO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuZXhwb3J0SW1hZ2UucmVzb2x1dGlvblBsYWNlaG9sZGVyJ30pfVxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAge2ZpbHRlcmVkUmVzb2x1dGlvbnMubWFwKG9wID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIGtleT17b3AuaWR9IHZhbHVlPXtvcC5pZH0gZGlzYWJsZWQ9eyFvcC5hdmFpbGFibGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAge29wLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlLW9wdGlvbi1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlLW9wdGlvbi1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0SW1hZ2UubWFwTGVnZW5kVGl0bGUnfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8U3dpdGNoXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIGlkPVwiYWRkLW1hcC1sZWdlbmRcIlxuICAgICAgICAgICAgICBjaGVja2VkPXtsZWdlbmR9XG4gICAgICAgICAgICAgIGxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuZXhwb3J0SW1hZ2UubWFwTGVnZW5kQWRkJ30pfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gb25VcGRhdGVJbWFnZVNldHRpbmcoe2xlZ2VuZDogIWxlZ2VuZH0pfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9JbWFnZU9wdGlvbkxpc3Q+XG4gICAgICAgIDxJbWFnZVByZXZpZXcgZXhwb3J0SW1hZ2U9e2V4cG9ydEltYWdlfSAvPlxuICAgICAgPC9TdHlsZWRNb2RhbENvbnRlbnQ+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gaW5qZWN0SW50bChFeHBvcnRJbWFnZU1vZGFsKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBR0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBZ0JBLElBQUFLLGtCQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxP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Q0Y7SUFBRSxnQkFFRjFFLE1BQUEsWUFBQTJFLGFBQUE7TUFBUWdCLEtBQUssRUFBQztJQUFFLEdBQ2JsQyxJQUFJLENBQUNxQyxhQUFhLENBQUM7TUFBQ3BCLEVBQUUsRUFBRTtJQUF5QyxDQUFDLENBQzdELENBQUMsRUFDUmIsbUJBQW1CLENBQUNxQixHQUFHLENBQUMsVUFBQVQsRUFBRTtNQUFBLG9CQUN6QnpFLE1BQUEsWUFBQTJFLGFBQUE7UUFBUVMsR0FBRyxFQUFFWCxFQUFFLENBQUNDLEVBQUc7UUFBQ2lCLEtBQUssRUFBRWxCLEVBQUUsQ0FBQ0MsRUFBRztRQUFDcUIsUUFBUSxFQUFFLENBQUN0QixFQUFFLENBQUNpQjtNQUFVLEdBQ3ZEakIsRUFBRSxDQUFDYyxLQUNFLENBQUM7SUFBQSxDQUNWLENBQ0ssQ0FDTCxDQUVKLENBQ04sZUFDRHZGLE1BQUEsWUFBQTJFLGFBQUE7TUFBS0UsU0FBUyxFQUFDO0lBQXNCLGdCQUNuQzdFLE1BQUEsWUFBQTJFLGFBQUE7TUFBS0UsU0FBUyxFQUFDO0lBQTRCLGdCQUN6QzdFLE1BQUEsWUFBQTJFLGFBQUEsQ0FBQ2pFLGFBQUEsQ0FBQW9FLGdCQUFnQjtNQUFDSixFQUFFLEVBQUU7SUFBbUMsQ0FBRSxDQUN4RCxDQUFDLGVBQ04xRSxNQUFBLFlBQUEyRSxhQUFBLENBQUNuRSxPQUFBLFdBQU07TUFDTHdGLElBQUksRUFBQyxVQUFVO01BQ2Z0QixFQUFFLEVBQUMsZ0JBQWdCO01BQ25CdUIsT0FBTyxFQUFFdkMsTUFBTztNQUNoQjZCLEtBQUssRUFBRTlCLElBQUksQ0FBQ3FDLGFBQWEsQ0FBQztRQUFDcEIsRUFBRSxFQUFFO01BQWdDLENBQUMsQ0FBRTtNQUNsRWtCLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFBO1FBQUEsT0FBUXJDLG9CQUFvQixDQUFDO1VBQUNHLE1BQU0sRUFBRSxDQUFDQTtRQUFNLENBQUMsQ0FBQztNQUFBO0lBQUMsQ0FDekQsQ0FDRSxDQUNVLENBQUMsZUFDbEIxRCxNQUFBLFlBQUEyRSxhQUFBLENBQUN0RSxhQUFBLFdBQVk7TUFBQ2lELFdBQVcsRUFBRUE7SUFBWSxDQUFFLENBQ3ZCLENBQUM7RUFFekIsQ0FBQztFQUVELE9BQU8sSUFBQTRDLHFCQUFVLEVBQUNoRCxnQkFBZ0IsQ0FBQztBQUNyQyxDQUFDO0FBQUMsSUFBQWlELFFBQUEsR0FBQUMsT0FBQSxjQUVhbkQsdUJBQXVCIiwiaWdub3JlTGlzdCI6W119
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  export declare const StyledExportMapSection: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<Omit<import("styled-components/dist/types").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "disabled"> & import("../../common/styled-components").StyledExportSectionProps, "ref"> & {
3
- ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
3
+ ref?: ((instance: HTMLDivElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | React.RefObject<HTMLDivElement> | null | undefined;
4
4
  }, never>> & Omit<import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, import("../../common/styled-components").StyledExportSectionProps>>, keyof React.Component<any, {}, any>>;
5
5
  export declare const StyledWarning: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>>;
6
6
  export declare const StyledExportLink: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, never>>;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { setUserMapboxAccessToken, setExportHTMLMapMode, ActionHandler } from '@kepler.gl/actions';
3
- declare type ExportHtmlMapProps = {
3
+ type ExportHtmlMapProps = {
4
4
  onChangeExportMapHTMLMode: ActionHandler<typeof setExportHTMLMapMode>;
5
5
  onEditUserMapboxAccessToken: ActionHandler<typeof setUserMapboxAccessToken>;
6
6
  options: {
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- declare type ExportJsonPropTypes = {
2
+ type ExportJsonPropTypes = {
3
3
  config: any;
4
4
  };
5
5
  declare const ExportJsonMapFactory: () => React.MemoExoticComponent<{
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { ExportVideo } from '@kepler.gl/types';
3
+ import { MapStyle } from '@kepler.gl/reducers';
4
+ import { UIStateActions, VisStateActions } from '@kepler.gl/actions';
5
+ export type VideoConfiguration = {
6
+ mediaType?: string;
7
+ cameraPreset?: string;
8
+ fileName?: string;
9
+ resolution?: string;
10
+ durationMs?: number;
11
+ };
12
+ export interface ExportVideoModalProps {
13
+ mapboxApiAccessToken: string;
14
+ mapboxApiUrl?: string;
15
+ mapState: any;
16
+ mapStyle: MapStyle;
17
+ visState: any;
18
+ exportVideo: ExportVideo;
19
+ containerW: number;
20
+ visStateActions: typeof VisStateActions;
21
+ uiStateActions: typeof UIStateActions;
22
+ onClose: () => void;
23
+ }
24
+ declare const ExportVideoModalFactory: () => React.FC<ExportVideoModalProps>;
25
+ export default ExportVideoModalFactory;