@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.
- package/dist/annotations/annotation-node.d.ts +11 -0
- package/dist/annotations/annotation-node.js +145 -0
- package/dist/annotations/annotation-overlay.d.ts +16 -0
- package/dist/annotations/annotation-overlay.js +166 -0
- package/dist/annotations/annotation-panel.d.ts +24 -0
- package/dist/annotations/annotation-panel.js +362 -0
- package/dist/annotations/annotation-text.d.ts +16 -0
- package/dist/annotations/annotation-text.js +150 -0
- package/dist/annotations/annotation-utils.d.ts +39 -0
- package/dist/annotations/annotation-utils.js +156 -0
- package/dist/annotations/index.d.ts +7 -0
- package/dist/annotations/index.js +53 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.d.ts +3 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.js +71 -0
- package/dist/annotations/lexical-editor/floating-link-editor.d.ts +1 -0
- package/dist/annotations/lexical-editor/floating-link-editor.js +194 -0
- package/dist/annotations/lexical-editor/index.d.ts +7 -0
- package/dist/annotations/lexical-editor/index.js +78 -0
- package/dist/annotations/lexical-editor/lexical-constants.d.ts +12 -0
- package/dist/annotations/lexical-editor/lexical-constants.js +22 -0
- package/dist/annotations/lexical-editor/lexical-nodes.d.ts +3 -0
- package/dist/annotations/lexical-editor/lexical-nodes.js +13 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +122 -0
- package/dist/annotations/lexical-editor/lexical-theme.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-theme.js +25 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.d.ts +7 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.js +293 -0
- package/dist/annotations/lexical-editor/lexical-utils.d.ts +4 -0
- package/dist/annotations/lexical-editor/lexical-utils.js +45 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.d.ts +36 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
- package/dist/bottom-widget.d.ts +5 -5
- package/dist/bottom-widget.js +12 -6
- package/dist/common/action-panel.d.ts +3 -3
- package/dist/common/animation-control/animation-control.d.ts +2 -1
- package/dist/common/animation-control/animation-control.js +3 -1
- package/dist/common/animation-control/animation-controller.js +8 -6
- package/dist/common/animation-control/export-video-control.d.ts +9 -0
- package/dist/common/animation-control/export-video-control.js +43 -0
- package/dist/common/animation-control/playback-controls.d.ts +5 -3
- package/dist/common/animation-control/playback-controls.js +7 -4
- package/dist/common/checkbox.d.ts +5 -21
- package/dist/common/checkbox.js +58 -70
- package/dist/common/color-legend.d.ts +4 -4
- package/dist/common/color-legend.js +3 -3
- package/dist/common/column-stats-chart.d.ts +3 -3
- package/dist/common/data-table/button.d.ts +1 -1
- package/dist/common/data-table/canvas.d.ts +0 -1
- package/dist/common/data-table/cell-size.d.ts +2 -2
- package/dist/common/data-table/display-format.d.ts +1 -1
- package/dist/common/data-table/header-cell.d.ts +2 -2
- package/dist/common/data-table/index.d.ts +8 -10
- package/dist/common/data-table/index.js +3 -3
- package/dist/common/data-table/option-dropdown.d.ts +1 -1
- package/dist/common/field-selector.d.ts +5 -5
- package/dist/common/field-token.d.ts +1 -1
- package/dist/common/file-uploader/file-drop.d.ts +1 -1
- package/dist/common/file-uploader/file-upload-progress.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.js +4 -4
- package/dist/common/flex-container.d.ts +2 -3
- package/dist/common/histogram-plot.d.ts +1 -1
- package/dist/common/histogram-plot.js +102 -53
- package/dist/common/icon-button.d.ts +16 -16
- package/dist/common/icons/3d-models/airplane.d.ts +14 -0
- package/dist/common/icons/3d-models/airplane.js +104 -0
- package/dist/common/icons/3d-models/bicycle.d.ts +14 -0
- package/dist/common/icons/3d-models/bicycle.js +426 -0
- package/dist/common/icons/3d-models/boeing.d.ts +14 -0
- package/dist/common/icons/3d-models/boeing.js +119 -0
- package/dist/common/icons/3d-models/car.d.ts +14 -0
- package/dist/common/icons/3d-models/car.js +110 -0
- package/dist/common/icons/3d-models/cargoship.d.ts +14 -0
- package/dist/common/icons/3d-models/cargoship.js +246 -0
- package/dist/common/icons/3d-models/evtol.d.ts +14 -0
- package/dist/common/icons/3d-models/evtol.js +134 -0
- package/dist/common/icons/3d-models/glider.d.ts +14 -0
- package/dist/common/icons/3d-models/glider.js +62 -0
- package/dist/common/icons/3d-models/helicopter.d.ts +14 -0
- package/dist/common/icons/3d-models/helicopter.js +110 -0
- package/dist/common/icons/3d-models/scooter.d.ts +14 -0
- package/dist/common/icons/3d-models/scooter.js +159 -0
- package/dist/common/icons/3d-models/semitruck.d.ts +14 -0
- package/dist/common/icons/3d-models/semitruck.js +177 -0
- package/dist/common/icons/3d-models/truck.d.ts +14 -0
- package/dist/common/icons/3d-models/truck.js +122 -0
- package/dist/common/icons/anchor_window.d.ts +1 -8
- package/dist/common/icons/anchor_window.js +17 -10
- package/dist/common/icons/annotation-text.d.ts +9 -0
- package/dist/common/icons/annotation-text.js +56 -0
- package/dist/common/icons/base.d.ts +1 -1
- package/dist/common/icons/close.js +1 -1
- package/dist/common/icons/effects/distance-fog.d.ts +14 -0
- package/dist/common/icons/effects/distance-fog.js +79 -0
- package/dist/common/icons/effects/surface-fog.d.ts +14 -0
- package/dist/common/icons/effects/surface-fog.js +86 -0
- package/dist/common/icons/index.d.ts +3 -0
- package/dist/common/icons/index.js +22 -1
- package/dist/common/item-selector/chickleted-input.d.ts +5 -5
- package/dist/common/item-selector/chickleted-input.js +5 -5
- package/dist/common/item-selector/dropdown-list.d.ts +3 -3
- package/dist/common/item-selector/dropdown-select.d.ts +7 -7
- package/dist/common/item-selector/item-selector.d.ts +2 -2
- package/dist/common/item-selector/typeahead.d.ts +3 -3
- package/dist/common/line-chart.d.ts +4 -1
- package/dist/common/line-chart.js +59 -12
- package/dist/common/loading-spinner.d.ts +2 -2
- package/dist/common/modal.d.ts +5 -5
- package/dist/common/portaled.d.ts +8 -25
- package/dist/common/progress-bar.d.ts +1 -1
- package/dist/common/radius-legend.d.ts +1 -1
- package/dist/common/range-brush.d.ts +1 -1
- package/dist/common/range-plot.d.ts +1 -1
- package/dist/common/range-plot.js +4 -2
- package/dist/common/range-slider.d.ts +2 -0
- package/dist/common/range-slider.js +108 -43
- package/dist/common/slider/mouse-event.d.ts +1 -1
- package/dist/common/slider/slider-bar-handle.d.ts +2 -2
- package/dist/common/slider/slider-handle.d.ts +3 -3
- package/dist/common/slider/slider.d.ts +6 -2
- package/dist/common/slider/slider.js +78 -35
- package/dist/common/styled-components.d.ts +158 -159
- package/dist/common/styled-components.js +2 -2
- package/dist/common/sync-timeline-control.d.ts +3 -3
- package/dist/common/time-range-slider-time-title.d.ts +2 -2
- package/dist/common/time-range-slider-time-title.js +5 -5
- package/dist/common/time-range-slider.d.ts +4 -3
- package/dist/common/time-range-slider.js +19 -7
- package/dist/common/timeline-helpers.d.ts +3 -0
- package/dist/common/timeline-helpers.js +57 -0
- package/dist/common/timeline-slider.d.ts +1 -1
- package/dist/common/timeline-slider.js +21 -12
- package/dist/common/tippy-tooltip.d.ts +1 -1
- package/dist/common/toolbar-item.d.ts +1 -1
- package/dist/common/toolbar-item.js +5 -5
- package/dist/common/toolbar.d.ts +2 -2
- package/dist/common/toolbar.js +4 -4
- package/dist/common/vertical-toolbar.d.ts +2 -3
- package/dist/container.d.ts +6 -6
- package/dist/context.d.ts +3 -3
- package/dist/dnd-context.d.ts +2 -2
- package/dist/editor/editor.d.ts +1 -1
- package/dist/editor/editor.js +1 -1
- package/dist/editor/feature-action-panel.d.ts +1 -1
- package/dist/editor/feature-action-panel.js +1 -1
- package/dist/effects/compact-color-picker.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +5 -4
- package/dist/effects/effect-configurator.js +243 -44
- package/dist/effects/effect-list.d.ts +1 -1
- package/dist/effects/effect-manager.d.ts +3 -3
- package/dist/effects/effect-manager.js +11 -4
- package/dist/effects/effect-panel-header.d.ts +2 -2
- package/dist/effects/effect-panel-header.js +35 -18
- package/dist/effects/effect-panel.d.ts +6 -6
- package/dist/effects/effect-panel.js +61 -86
- package/dist/effects/effect-time-configurator.d.ts +1 -1
- package/dist/effects/effect-time-configurator.js +10 -10
- package/dist/effects/effect-time-selector.d.ts +1 -1
- package/dist/effects/effect-time-slider.d.ts +3 -3
- package/dist/effects/effect-type-dropdown-list.d.ts +3 -2
- package/dist/effects/effect-type-dropdown-list.js +1 -1
- package/dist/effects/effect-type-list-item.d.ts +2 -1
- package/dist/effects/effect-type-list-item.js +23 -7
- package/dist/effects/effect-type-selector.d.ts +3 -2
- package/dist/effects/effect-type-selector.js +2 -2
- package/dist/effects/side-panel-title.d.ts +1 -1
- package/dist/effects/surface-fog-section.d.ts +14 -0
- package/dist/effects/surface-fog-section.js +263 -0
- package/dist/effects/timezone-selector.d.ts +1 -1
- package/dist/filters/components.d.ts +2 -3
- package/dist/filters/filter-panels/types.d.ts +4 -4
- package/dist/filters/index.d.ts +1 -0
- package/dist/filters/index.js +8 -1
- package/dist/filters/polygon-filter.js +2 -2
- package/dist/filters/time-range-filter.js +3 -1
- package/dist/filters/time-widget-settings.d.ts +14 -0
- package/dist/filters/time-widget-settings.js +312 -0
- package/dist/filters/time-widget-top.d.ts +2 -3
- package/dist/filters/time-widget-top.js +32 -39
- package/dist/filters/time-widget.d.ts +3 -2
- package/dist/filters/time-widget.js +285 -9
- package/dist/filters/types.d.ts +11 -11
- package/dist/filters/types.js +1 -1
- package/dist/geocoder/geocoder.d.ts +7 -4
- package/dist/geocoder/geocoder.js +65 -14
- package/dist/geocoder-panel.d.ts +11 -2
- package/dist/geocoder-panel.js +8 -4
- package/dist/hooks/use-cloud-list-provider.d.ts +1 -1
- package/dist/hooks/use-dnd-effects.d.ts +1 -1
- package/dist/hooks/use-dnd-layers.d.ts +1 -1
- package/dist/hooks/use-feature-flags.d.ts +1 -1
- package/dist/hooks/use-fetch-raster-tile-metadata.d.ts +3 -3
- package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +2 -2
- package/dist/hooks/use-legend-position.d.ts +4 -5
- package/dist/index.d.ts +14 -0
- package/dist/index.js +124 -1
- package/dist/injector.d.ts +5 -5
- package/dist/kepler-gl.d.ts +70 -67
- package/dist/kepler-gl.js +89 -11
- package/dist/loading-indicator.d.ts +6 -4
- package/dist/loading-indicator.js +6 -3
- package/dist/map/annotations/annotation-control.d.ts +16 -0
- package/dist/map/annotations/annotation-control.js +56 -0
- package/dist/map/effects/effect-control.d.ts +1 -1
- package/dist/map/layer-hover-info.d.ts +3 -3
- package/dist/map/layer-hover-info.js +69 -36
- package/dist/map/layer-selector-panel.d.ts +2 -2
- package/dist/map/lazy-tippy.js +3 -3
- package/dist/map/locale-panel.d.ts +2 -2
- package/dist/map/locale-panel.js +2 -2
- package/dist/map/map-control-panel.d.ts +1 -1
- package/dist/map/map-control-toolbar.d.ts +7 -8
- package/dist/map/map-control-tooltip.d.ts +1 -1
- package/dist/map/map-control.d.ts +8 -4
- package/dist/map/map-control.js +16 -7
- package/dist/map/map-draw-panel.d.ts +2 -2
- package/dist/map/map-draw-panel.js +7 -4
- package/dist/map/map-legend-panel.d.ts +5 -4
- package/dist/map/map-legend-panel.js +10 -8
- package/dist/map/map-legend.d.ts +11 -9
- package/dist/map/map-legend.js +39 -9
- package/dist/map/map-navigation-control.d.ts +13 -0
- package/dist/map/map-navigation-control.js +143 -0
- package/dist/map/map-popover-content.d.ts +2 -2
- package/dist/map/map-popover.d.ts +2 -2
- package/dist/map/map-popover.js +2 -2
- package/dist/map/split-map-button.d.ts +1 -1
- package/dist/map/toggle-3d-button.d.ts +1 -1
- package/dist/map-container.d.ts +15 -5
- package/dist/map-container.js +286 -73
- package/dist/map-view-state-context.d.ts +10 -2
- package/dist/map-view-state-context.js +1 -1
- package/dist/modal-container.d.ts +6 -8
- package/dist/modal-container.js +28 -6
- package/dist/modals/add-map-style-modal.js +173 -200
- package/dist/modals/cloud-components/cloud-header.d.ts +1 -1
- package/dist/modals/cloud-components/provider-select.d.ts +1 -1
- package/dist/modals/cloud-tile.d.ts +1 -1
- package/dist/modals/data-table-modal.d.ts +2 -2
- package/dist/modals/data-table-modal.js +146 -194
- package/dist/modals/export-data-modal.js +117 -139
- package/dist/modals/export-image-modal.js +1 -1
- package/dist/modals/export-map-modal/components.d.ts +1 -1
- package/dist/modals/export-map-modal/export-html-map.d.ts +1 -1
- package/dist/modals/export-map-modal/export-json-map.d.ts +1 -1
- package/dist/modals/export-video-modal.d.ts +25 -0
- package/dist/modals/export-video-modal.js +338 -0
- package/dist/modals/export-video-modal.spec.d.ts +1 -0
- package/dist/modals/export-video-modal.spec.js +686 -0
- package/dist/modals/fog-height-animation.d.ts +8 -0
- package/dist/modals/fog-height-animation.js +97 -0
- package/dist/modals/hubble-utils.d.ts +25 -0
- package/dist/modals/hubble-utils.js +197 -0
- package/dist/modals/hubble-utils.spec.d.ts +1 -0
- package/dist/modals/hubble-utils.spec.js +397 -0
- package/dist/modals/image-modal-container.d.ts +1 -1
- package/dist/modals/load-data-modal.d.ts +2 -2
- package/dist/modals/modal-dialog.d.ts +0 -2
- package/dist/modals/overwrite-map-modal.d.ts +1 -1
- package/dist/modals/save-map-modal.d.ts +3 -3
- package/dist/modals/share-map-modal.d.ts +1 -1
- package/dist/modals/tilesets-modals/common.d.ts +3 -3
- package/dist/modals/tilesets-modals/common.js +1 -1
- package/dist/modals/tilesets-modals/load-data-footer.d.ts +1 -1
- package/dist/modals/tilesets-modals/load-data-footer.js +2 -2
- package/dist/modals/tilesets-modals/load-tileset.d.ts +1 -1
- package/dist/modals/tilesets-modals/load-tileset.js +27 -10
- package/dist/modals/tilesets-modals/tileset-bitmap-form.d.ts +14 -0
- package/dist/modals/tilesets-modals/tileset-bitmap-form.js +284 -0
- package/dist/modals/tilesets-modals/tileset-icon.d.ts +1 -1
- package/dist/modals/tilesets-modals/tileset-raster-form.d.ts +2 -2
- package/dist/modals/tilesets-modals/tileset-raster-form.js +94 -11
- package/dist/modals/tilesets-modals/tileset-tile3d-form.d.ts +12 -0
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +389 -0
- package/dist/modals/tilesets-modals/tileset-vector-form.d.ts +3 -3
- package/dist/modals/tilesets-modals/tileset-vector-form.js +58 -4
- package/dist/modals/tilesets-modals/tileset-wms-form.d.ts +1 -1
- package/dist/modals/tilesets-modals/tileset-wms-form.js +55 -11
- package/dist/notification-panel/notification-item.d.ts +1 -53
- package/dist/notification-panel/notification-item.js +47 -75
- package/dist/notification-panel.d.ts +1 -1
- package/dist/notification-panel.js +20 -42
- package/dist/plot-container.js +55 -14
- package/dist/side-panel/add-by-dataset-button.d.ts +1 -1
- package/dist/side-panel/add-by-dataset-button.js +3 -3
- package/dist/side-panel/common/dataset-info.d.ts +2 -2
- package/dist/side-panel/common/dataset-info.js +2 -2
- package/dist/side-panel/common/dataset-tag.d.ts +2 -2
- package/dist/side-panel/common/dataset-title.d.ts +2 -2
- package/dist/side-panel/common/source-data-catalog.d.ts +3 -3
- package/dist/side-panel/common/types.d.ts +8 -8
- package/dist/side-panel/custom-panel.d.ts +2 -2
- package/dist/side-panel/filter-manager.d.ts +3 -3
- package/dist/side-panel/filter-panel/add-filter-button.d.ts +1 -1
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +2 -2
- package/dist/side-panel/interaction-manager.d.ts +1 -1
- package/dist/side-panel/interaction-panel/brush-config.d.ts +1 -1
- package/dist/side-panel/interaction-panel/geocoder-config.d.ts +11 -0
- package/dist/side-panel/interaction-panel/geocoder-config.js +45 -0
- package/dist/side-panel/interaction-panel/interaction-panel.d.ts +3 -2
- package/dist/side-panel/interaction-panel/interaction-panel.js +10 -3
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +3 -3
- package/dist/side-panel/interaction-panel/tooltip-config.d.ts +1 -1
- package/dist/side-panel/layer-manager.d.ts +2 -2
- package/dist/side-panel/layer-manager.js +11 -3
- package/dist/side-panel/layer-panel/add-layer-button.d.ts +1 -1
- package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +4 -4
- package/dist/side-panel/layer-panel/color-palette-preset.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-palette.d.ts +2 -2
- package/dist/side-panel/layer-panel/color-range-selector.d.ts +3 -3
- package/dist/side-panel/layer-panel/color-scale-selector.d.ts +5 -5
- package/dist/side-panel/layer-panel/color-scale-selector.js +1 -1
- package/dist/side-panel/layer-panel/color-selector.d.ts +3 -3
- package/dist/side-panel/layer-panel/column-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/custom-palette.d.ts +10 -10
- package/dist/side-panel/layer-panel/custom-palette.js +5 -5
- package/dist/side-panel/layer-panel/custom-picker.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.js +19 -3
- package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -2
- package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/how-to-button.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-color-selector.d.ts +3 -3
- package/dist/side-panel/layer-panel/layer-column-config.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-column-mode-config.d.ts +3 -3
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -5
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +6 -4
- package/dist/side-panel/layer-panel/layer-configurator.js +408 -72
- package/dist/side-panel/layer-panel/layer-error-message.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-list.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-panel-header.d.ts +5 -5
- package/dist/side-panel/layer-panel/layer-panel-header.js +2 -2
- package/dist/side-panel/layer-panel/layer-panel.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +2 -2
- package/dist/side-panel/layer-panel/layer-type-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +1 -1
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +2 -2
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +127 -27
- package/dist/side-panel/layer-panel/scenegraph-model-selector.d.ts +24 -0
- package/dist/side-panel/layer-panel/scenegraph-model-selector.js +123 -0
- package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -1
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +2 -2
- package/dist/side-panel/layer-panel/text-label-panel.js +11 -2
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +3 -3
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/vis-config-slider.d.ts +3 -1
- package/dist/side-panel/layer-panel/vis-config-slider.js +7 -3
- package/dist/side-panel/layer-panel/vis-config-switch.d.ts +1 -1
- package/dist/side-panel/map-manager.d.ts +1 -1
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +1 -1
- package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +2 -2
- package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +1 -1
- package/dist/side-panel/map-style-panel/map-style-selector.d.ts +1 -1
- package/dist/side-panel/panel-header-action.d.ts +1 -1
- package/dist/side-panel/panel-header.d.ts +13 -12
- package/dist/side-panel/panel-header.js +9 -2
- package/dist/side-panel/panel-tab.d.ts +5 -5
- package/dist/side-panel/panel-tab.js +4 -4
- package/dist/side-panel/panel-title.d.ts +1 -1
- package/dist/side-panel/panel-toggle.d.ts +1 -1
- package/dist/side-panel/panel-view-list-toggle.d.ts +3 -3
- package/dist/side-panel/side-bar.d.ts +2 -2
- package/dist/side-panel.d.ts +1 -1
- package/dist/side-panel.js +5 -1
- package/dist/types.d.ts +3 -3
- package/package.json +41 -29
|
@@ -5,12 +5,15 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
exports.getViewportBbox = getViewportBbox;
|
|
10
|
+
exports.testForCoordinates = void 0;
|
|
9
11
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
13
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
15
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
16
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
14
17
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
18
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
16
19
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
@@ -50,6 +53,40 @@ var testForCoordinates = exports.testForCoordinates = function testForCoordinate
|
|
|
50
53
|
var longitude = Number(tokens[1]);
|
|
51
54
|
return [isValid, longitude, latitude];
|
|
52
55
|
};
|
|
56
|
+
var EDGE_MERIDIAN = 180;
|
|
57
|
+
function getViewportBbox(mapState) {
|
|
58
|
+
var _mapState$bearing, _mapState$pitch;
|
|
59
|
+
if (!mapState.width || !mapState.height) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
var vp = new _viewportMercatorProject.WebMercatorViewport({
|
|
63
|
+
width: mapState.width,
|
|
64
|
+
height: mapState.height,
|
|
65
|
+
longitude: mapState.longitude,
|
|
66
|
+
latitude: mapState.latitude,
|
|
67
|
+
zoom: mapState.zoom,
|
|
68
|
+
bearing: (_mapState$bearing = mapState.bearing) !== null && _mapState$bearing !== void 0 ? _mapState$bearing : 0,
|
|
69
|
+
pitch: (_mapState$pitch = mapState.pitch) !== null && _mapState$pitch !== void 0 ? _mapState$pitch : 0
|
|
70
|
+
});
|
|
71
|
+
var corners = [vp.unproject([0, 0]), vp.unproject([mapState.width, 0]), vp.unproject([mapState.width, mapState.height]), vp.unproject([0, mapState.height])];
|
|
72
|
+
var lngs = corners.map(function (c) {
|
|
73
|
+
return c[0];
|
|
74
|
+
});
|
|
75
|
+
var lats = corners.map(function (c) {
|
|
76
|
+
return c[1];
|
|
77
|
+
});
|
|
78
|
+
var minLng = Math.min.apply(Math, (0, _toConsumableArray2["default"])(lngs));
|
|
79
|
+
var maxLng = Math.max.apply(Math, (0, _toConsumableArray2["default"])(lngs));
|
|
80
|
+
if (maxLng - minLng >= 360) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
var clampedMinLng = Math.max(minLng, -EDGE_MERIDIAN);
|
|
84
|
+
var clampedMaxLng = Math.min(maxLng, EDGE_MERIDIAN);
|
|
85
|
+
if (clampedMinLng >= clampedMaxLng) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
return [clampedMinLng, Math.max(Math.min.apply(Math, (0, _toConsumableArray2["default"])(lats)), -90), clampedMaxLng, Math.min(Math.max.apply(Math, (0, _toConsumableArray2["default"])(lats)), 90)];
|
|
89
|
+
}
|
|
53
90
|
var StyledContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n color: ", ";\n\n .geocoder-input {\n box-shadow: ", ";\n\n .geocoder-input__search {\n position: absolute;\n height: ", "px;\n width: 30px;\n padding-left: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ", ";\n }\n\n input {\n padding: 4px 36px;\n height: ", "px;\n caret-color: unset;\n }\n }\n\n .geocoder-results {\n box-shadow: ", ";\n background-color: ", ";\n position: absolute;\n width: ", "px;\n margin-top: ", "px;\n }\n\n .geocoder-item {\n ", ";\n ", ";\n\n &.active {\n background-color: ", ";\n }\n }\n\n .remove-result {\n position: absolute;\n right: 16px;\n top: 0px;\n height: ", "px;\n display: flex;\n align-items: center;\n\n &:hover {\n cursor: pointer;\n color: ", ";\n }\n }\n"])), function (props) {
|
|
54
91
|
return props.theme.textColor;
|
|
55
92
|
}, function (props) {
|
|
@@ -92,6 +129,9 @@ var GeoCoder = function GeoCoder(_ref) {
|
|
|
92
129
|
return item.place_name;
|
|
93
130
|
} : _ref$formatItem,
|
|
94
131
|
viewport = _ref.viewport,
|
|
132
|
+
mapState = _ref.mapState,
|
|
133
|
+
_ref$limitSearch = _ref.limitSearch,
|
|
134
|
+
limitSearch = _ref$limitSearch === void 0 ? false : _ref$limitSearch,
|
|
95
135
|
onSelected = _ref.onSelected,
|
|
96
136
|
onDeleteMarker = _ref.onDeleteMarker,
|
|
97
137
|
transitionDuration = _ref.transitionDuration,
|
|
@@ -129,10 +169,14 @@ var GeoCoder = function GeoCoder(_ref) {
|
|
|
129
169
|
setInputValue(queryString);
|
|
130
170
|
var resultCoordinates = testForCoordinates(queryString);
|
|
131
171
|
if (resultCoordinates[0]) {
|
|
172
|
+
if (debounceTimeout) {
|
|
173
|
+
clearTimeout(debounceTimeout);
|
|
174
|
+
}
|
|
132
175
|
var _resultCoordinates = (0, _slicedToArray2["default"])(resultCoordinates, 3),
|
|
133
176
|
_isValid = _resultCoordinates[0],
|
|
134
177
|
longitude = _resultCoordinates[1],
|
|
135
178
|
latitude = _resultCoordinates[2];
|
|
179
|
+
setShowResults(true);
|
|
136
180
|
setResults([{
|
|
137
181
|
center: [longitude, latitude],
|
|
138
182
|
place_name: queryString
|
|
@@ -142,42 +186,49 @@ var GeoCoder = function GeoCoder(_ref) {
|
|
|
142
186
|
clearTimeout(debounceTimeout);
|
|
143
187
|
}
|
|
144
188
|
debounceTimeout = setTimeout( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
145
|
-
var response;
|
|
189
|
+
var geocodeParams, bbox, response;
|
|
146
190
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
147
191
|
while (1) switch (_context.prev = _context.next) {
|
|
148
192
|
case 0:
|
|
149
193
|
if (!(limit > 0 && Boolean(queryString))) {
|
|
150
|
-
_context.next =
|
|
194
|
+
_context.next = 13;
|
|
151
195
|
break;
|
|
152
196
|
}
|
|
153
197
|
_context.prev = 1;
|
|
154
|
-
|
|
155
|
-
return client.forwardGeocode({
|
|
198
|
+
geocodeParams = {
|
|
156
199
|
query: queryString,
|
|
157
200
|
limit: limit
|
|
158
|
-
}
|
|
159
|
-
|
|
201
|
+
};
|
|
202
|
+
if (limitSearch && mapState) {
|
|
203
|
+
bbox = getViewportBbox(mapState);
|
|
204
|
+
if (bbox) {
|
|
205
|
+
geocodeParams.bbox = bbox;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
_context.next = 6;
|
|
209
|
+
return client.forwardGeocode(geocodeParams).send();
|
|
210
|
+
case 6:
|
|
160
211
|
response = _context.sent;
|
|
161
212
|
if (response.body.features) {
|
|
162
213
|
setShowResults(true);
|
|
163
214
|
setResults(response.body.features);
|
|
164
215
|
}
|
|
165
|
-
_context.next =
|
|
216
|
+
_context.next = 13;
|
|
166
217
|
break;
|
|
167
|
-
case
|
|
168
|
-
_context.prev =
|
|
218
|
+
case 10:
|
|
219
|
+
_context.prev = 10;
|
|
169
220
|
_context.t0 = _context["catch"](1);
|
|
170
221
|
// TODO: show geocode error
|
|
171
222
|
// eslint-disable-next-line no-console
|
|
172
223
|
console.log(_context.t0);
|
|
173
|
-
case
|
|
224
|
+
case 13:
|
|
174
225
|
case "end":
|
|
175
226
|
return _context.stop();
|
|
176
227
|
}
|
|
177
|
-
}, _callee, null, [[1,
|
|
228
|
+
}, _callee, null, [[1, 10]]);
|
|
178
229
|
})), timeout);
|
|
179
230
|
}
|
|
180
|
-
}, [client, limit, timeout, setResults, setShowResults]);
|
|
231
|
+
}, [client, limit, timeout, setResults, setShowResults, limitSearch, mapState]);
|
|
181
232
|
var onBlur = (0, _react.useCallback)(function () {
|
|
182
233
|
setTimeout(function () {
|
|
183
234
|
setShowResults(false);
|
|
@@ -274,4 +325,4 @@ var GeoCoder = function GeoCoder(_ref) {
|
|
|
274
325
|
})) : null);
|
|
275
326
|
};
|
|
276
327
|
var _default = exports["default"] = (0, _reactIntl.injectIntl)(GeoCoder);
|
|
277
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9nZW9jb2RpbmciLCJfcmVhY3RJbnRsIiwiX3ZpZXdwb3J0TWVyY2F0b3JQcm9qZWN0IiwiX2NvbnN0YW50cyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pY29ucyIsIl91dGlscyIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkNPT1JESU5BVEVfUkVHRVhfU1RSSU5HIiwiQ09PUkRJTkFURV9SRUdFWCIsIlJlZ0V4cCIsIlBMQUNFSE9MREVSIiwiZGVib3VuY2VUaW1lb3V0IiwidGVzdEZvckNvb3JkaW5hdGVzIiwiZXhwb3J0cyIsInF1ZXJ5IiwiaXNWYWxpZCIsInRlc3QiLCJ0cmltIiwidG9rZW5zIiwic3BsaXQiLCJsYXRpdHVkZSIsIk51bWJlciIsImxvbmdpdHVkZSIsIlN0eWxlZENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsInRleHRDb2xvciIsImJveFNoYWRvdyIsImdlb2NvZGVySW5wdXRIZWlnaHQiLCJzdWJ0ZXh0Q29sb3IiLCJwYW5lbEJhY2tncm91bmQiLCJpc0Zpbml0ZSIsIndpZHRoIiwiZ2VvY29kZXJXaWR0aCIsImRyb3Bkb3duV2FwcGVyTWFyZ2luIiwiZHJvcGRvd25MaXN0SXRlbSIsInRleHRUcnVuY2F0ZSIsImRyb3Bkb3duTGlzdEhpZ2hsaWdodEJnIiwidGV4dENvbG9ySGwiLCJHZW9Db2RlciIsIl9yZWYiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIl9yZWYkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3JlZiRsaW1pdCIsImxpbWl0IiwiX3JlZiR0aW1lb3V0IiwidGltZW91dCIsIl9yZWYkZm9ybWF0SXRlbSIsImZvcm1hdEl0ZW0iLCJpdGVtIiwicGxhY2VfbmFtZSIsInZpZXdwb3J0Iiwib25TZWxlY3RlZCIsIm9uRGVsZXRlTWFya2VyIiwidHJhbnNpdGlvbkR1cmF0aW9uIiwicG9pbnRab29tIiwiaW50bCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlucHV0VmFsdWUiLCJzZXRJbnB1dFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzaG93UmVzdWx0cyIsInNldFNob3dSZXN1bHRzIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzaG93RGVsZXRlIiwic2V0U2hvd0RlbGV0ZSIsImluaXRpYWxSZXN1bHRzIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJyZXN1bHRzIiwic2V0UmVzdWx0cyIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUxMCIsInNlbGVjdGVkSW5kZXgiLCJzZXRTZWxlY3RlZEluZGV4IiwiY2xpZW50IiwidXNlTWVtbyIsImlzVGVzdCIsImdlb2NvZGVyU2VydmljZSIsImFjY2Vzc1Rva2VuIiwib25DaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImV2ZW50IiwicXVlcnlTdHJpbmciLCJ0YXJnZXQiLCJ2YWx1ZSIsInJlc3VsdENvb3JkaW5hdGVzIiwiX3Jlc3VsdENvb3JkaW5hdGVzIiwiX2lzVmFsaWQiLCJjZW50ZXIiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0IiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJyZXNwb25zZSIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJCb29sZWFuIiwiZm9yd2FyZEdlb2NvZGUiLCJzZW5kIiwic2VudCIsImJvZHkiLCJmZWF0dXJlcyIsInQwIiwiY29uc29sZSIsImxvZyIsInN0b3AiLCJvbkJsdXIiLCJvbkZvY3VzIiwib25JdGVtU2VsZWN0ZWQiLCJuZXdWaWV3cG9ydCIsIldlYk1lcmNhdG9yVmlld3BvcnQiLCJiYm94IiwiZ290b1ZpZXdwb3J0IiwiZml0Qm91bmRzIiwiem9vbSIsIm9uTWFya0RlbGV0ZWQiLCJvbktleURvd24iLCJrZXlDb2RlIiwiS2V5RXZlbnQiLCJET01fVktfVVAiLCJET01fVktfRE9XTiIsIkRPTV9WS19FTlRFUiIsIkRPTV9WS19SRVRVUk4iLCJjcmVhdGVFbGVtZW50IiwiU2VhcmNoIiwiaGVpZ2h0IiwiSW5wdXQiLCJ0eXBlIiwicGxhY2Vob2xkZXIiLCJmb3JtYXRNZXNzYWdlIiwiaWQiLCJkZWZhdWx0TWVzc2FnZSIsIkRlbGV0ZSIsIm9uQ2xpY2siLCJtYXAiLCJpbmRleCIsImtleSIsImNsYXNzbmFtZXMiLCJhY3RpdmUiLCJfZGVmYXVsdCIsImluamVjdEludGwiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VvY29kZXIvZ2VvY29kZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBnZW9jb2RlclNlcnZpY2UgZnJvbSAnQG1hcGJveC9tYXBib3gtc2RrL3NlcnZpY2VzL2dlb2NvZGluZyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge1dlYk1lcmNhdG9yVmlld3BvcnR9IGZyb20gJ3ZpZXdwb3J0LW1lcmNhdG9yLXByb2plY3QnO1xuaW1wb3J0IHtLZXlFdmVudH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtJbnB1dH0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7U2VhcmNoLCBEZWxldGV9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge1ZpZXdwb3J0fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7aXNUZXN0fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxudHlwZSBTdHlsZWRDb250YWluZXJQcm9wcyA9IHtcbiAgd2lkdGg/OiBudW1iZXI7XG59O1xuXG4vLyBtYXRjaGVzIG9ubHkgdmFsaWQgY29vcmRpbmF0ZXNcbmNvbnN0IENPT1JESU5BVEVfUkVHRVhfU1RSSU5HID1cbiAgJyheWy0rXT8oPzpbMS04XT9cXFxcZCg/OlxcXFwuXFxcXGQrKT98OTAoPzpcXFxcLjArKT8pKSxcXFxccyooWy0rXT8oPzoxODAoPzpcXFxcLjArKT98KD86KD86MVswLTddXFxcXGQpfCg/OlsxLTldP1xcXFxkKSkoPzpcXFxcLlxcXFxkKyk/KSkkJztcblxuY29uc3QgQ09PUkRJTkFURV9SRUdFWCA9IFJlZ0V4cChDT09SRElOQVRFX1JFR0VYX1NUUklORyk7XG5cbmNvbnN0IFBMQUNFSE9MREVSID0gJ0VudGVyIGFuIGFkZHJlc3Mgb3IgY29vcmRpbmF0ZXMsIGV4IDM3Ljc5LC0xMjIuNDAnO1xuXG5sZXQgZGVib3VuY2VUaW1lb3V0OiBOb2RlSlMuVGltZW91dCB8IG51bGwgPSBudWxsO1xuXG4vKipcbiAqIFRlc3RzIGlmIGEgZ2l2ZW4gcXVlcnkgc3RyaW5nIGNvbnRhaW5zIHZhbGlkIGNvb3JkaW5hdGVzLlxuICogQHBhcmFtIHF1ZXJ5IFRoZSBpbnB1dCBzdHJpbmcgdG8gdGVzdCBmb3IgY29vcmRpbmF0ZXMuXG4gKiBAcmV0dXJucyBBIHR1cGxlIHdoZXJlOlxuICogICAtIElmIHZhbGlkLCByZXR1cm5zIGBbdHJ1ZSwgbG9uZ2l0dWRlLCBsYXRpdHVkZV1gLlxuICogICAtIElmIGludmFsaWQsIHJldHVybnMgYFtmYWxzZSwgcXVlcnldYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHRlc3RGb3JDb29yZGluYXRlcyA9IChxdWVyeTogc3RyaW5nKTogW3RydWUsIG51bWJlciwgbnVtYmVyXSB8IFtmYWxzZSwgc3RyaW5nXSA9PiB7XG4gIGNvbnN0IGlzVmFsaWQgPSBDT09SRElOQVRFX1JFR0VYLnRlc3QocXVlcnkudHJpbSgpKTtcblxuICBpZiAoIWlzVmFsaWQpIHtcbiAgICByZXR1cm4gW2lzVmFsaWQsIHF1ZXJ5XTtcbiAgfVxuXG4gIGNvbnN0IHRva2VucyA9IHF1ZXJ5LnRyaW0oKS5zcGxpdCgnLCcpO1xuICBjb25zdCBsYXRpdHVkZSA9IE51bWJlcih0b2tlbnNbMF0pO1xuICBjb25zdCBsb25naXR1ZGUgPSBOdW1iZXIodG9rZW5zWzFdKTtcblxuICByZXR1cm4gW2lzVmFsaWQsIGxvbmdpdHVkZSwgbGF0aXR1ZGVdO1xufTtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcblxuICAuZ2VvY29kZXItaW5wdXQge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcblxuICAgIC5nZW9jb2Rlci1pbnB1dF9fc2VhcmNoIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5nZW9jb2RlcklucHV0SGVpZ2h0fXB4O1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIHBhZGRpbmc6IDRweCAzNnB4O1xuICAgICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmdlb2NvZGVySW5wdXRIZWlnaHR9cHg7XG4gICAgICBjYXJldC1jb2xvcjogdW5zZXQ7XG4gICAgfVxuICB9XG5cbiAgLmdlb2NvZGVyLXJlc3VsdHMge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZH07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAke3Byb3BzID0+IChOdW1iZXIuaXNGaW5pdGUocHJvcHMud2lkdGgpID8gcHJvcHMud2lkdGggOiBwcm9wcy50aGVtZS5nZW9jb2RlcldpZHRoKX1weDtcbiAgICBtYXJnaW4tdG9wOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV2FwcGVyTWFyZ2lufXB4O1xuICB9XG5cbiAgLmdlb2NvZGVyLWl0ZW0ge1xuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0SXRlbX07XG4gICAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0VHJ1bmNhdGV9O1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RIaWdobGlnaHRCZ307XG4gICAgfVxuICB9XG5cbiAgLnJlbW92ZS1yZXN1bHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTZweDtcbiAgICB0b3A6IDBweDtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZ2VvY29kZXJJbnB1dEhlaWdodH1weDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdWx0IHtcbiAgY2VudGVyOiBbbnVtYmVyLCBudW1iZXJdO1xuICBwbGFjZV9uYW1lOiBzdHJpbmc7XG4gIGJib3g/OiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbiAgdGV4dD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUmVzdWx0cyA9IFJlYWRvbmx5QXJyYXk8UmVzdWx0PjtcblxudHlwZSBHZW9jb2RlclByb3BzID0ge1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGxpbWl0PzogbnVtYmVyO1xuICB0aW1lb3V0PzogbnVtYmVyO1xuICBmb3JtYXRJdGVtPzogKGl0ZW06IFJlc3VsdCkgPT4gc3RyaW5nO1xuICB2aWV3cG9ydD86IFZpZXdwb3J0O1xuICBvblNlbGVjdGVkOiAodmlld3BvcnQ6IFZpZXdwb3J0IHwgbnVsbCwgaXRlbTogUmVzdWx0KSA9PiB2b2lkO1xuICBvbkRlbGV0ZU1hcmtlcj86ICgpID0+IHZvaWQ7XG4gIHRyYW5zaXRpb25EdXJhdGlvbj86IG51bWJlcjtcbiAgcG9pbnRab29tPzogbnVtYmVyO1xuICB3aWR0aD86IG51bWJlcjtcbn07XG5cbnR5cGUgSW50bFByb3BzID0ge1xuICBpbnRsOiBJbnRsU2hhcGU7XG59O1xuXG5jb25zdCBHZW9Db2RlcjogUmVhY3QuRkM8R2VvY29kZXJQcm9wcyAmIEludGxQcm9wcz4gPSAoe1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgY2xhc3NOYW1lID0gJycsXG4gIGxpbWl0ID0gNSxcbiAgdGltZW91dCA9IDMwMCxcbiAgZm9ybWF0SXRlbSA9IGl0ZW0gPT4gaXRlbS5wbGFjZV9uYW1lLFxuICB2aWV3cG9ydCxcbiAgb25TZWxlY3RlZCxcbiAgb25EZWxldGVNYXJrZXIsXG4gIHRyYW5zaXRpb25EdXJhdGlvbixcbiAgcG9pbnRab29tLFxuICB3aWR0aCxcbiAgaW50bFxufSkgPT4ge1xuICBjb25zdCBbaW5wdXRWYWx1ZSwgc2V0SW5wdXRWYWx1ZV0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtzaG93UmVzdWx0cywgc2V0U2hvd1Jlc3VsdHNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd0RlbGV0ZSwgc2V0U2hvd0RlbGV0ZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGluaXRpYWxSZXN1bHRzOiBSZXN1bHRbXSA9IFtdO1xuICBjb25zdCBbcmVzdWx0cywgc2V0UmVzdWx0c10gPSB1c2VTdGF0ZShpbml0aWFsUmVzdWx0cyk7XG4gIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKDApO1xuXG4gIGNvbnN0IGNsaWVudCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKGlzVGVzdCgpID8gbnVsbCA6IGdlb2NvZGVyU2VydmljZSh7YWNjZXNzVG9rZW46IG1hcGJveEFwaUFjY2Vzc1Rva2VufSkpLFxuICAgIFttYXBib3hBcGlBY2Nlc3NUb2tlbl1cbiAgKTtcblxuICBjb25zdCBvbkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgc2V0SW5wdXRWYWx1ZShxdWVyeVN0cmluZyk7XG4gICAgICBjb25zdCByZXN1bHRDb29yZGluYXRlcyA9IHRlc3RGb3JDb29yZGluYXRlcyhxdWVyeVN0cmluZyk7XG4gICAgICBpZiAocmVzdWx0Q29vcmRpbmF0ZXNbMF0pIHtcbiAgICAgICAgY29uc3QgW19pc1ZhbGlkLCBsb25naXR1ZGUsIGxhdGl0dWRlXSA9IHJlc3VsdENvb3JkaW5hdGVzO1xuICAgICAgICBzZXRSZXN1bHRzKFt7Y2VudGVyOiBbbG9uZ2l0dWRlLCBsYXRpdHVkZV0sIHBsYWNlX25hbWU6IHF1ZXJ5U3RyaW5nfV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGRlYm91bmNlVGltZW91dCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgICAgIGRlYm91bmNlVGltZW91dCA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGlmIChsaW1pdCA+IDAgJiYgQm9vbGVhbihxdWVyeVN0cmluZykpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50XG4gICAgICAgICAgICAgICAgLmZvcndhcmRHZW9jb2RlKHtcbiAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeVN0cmluZyxcbiAgICAgICAgICAgICAgICAgIGxpbWl0XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuc2VuZCgpO1xuICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuYm9keS5mZWF0dXJlcykge1xuICAgICAgICAgICAgICAgIHNldFNob3dSZXN1bHRzKHRydWUpO1xuICAgICAgICAgICAgICAgIHNldFJlc3VsdHMocmVzcG9uc2UuYm9keS5mZWF0dXJlcyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgLy8gVE9ETzogc2hvdyBnZW9jb2RlIGVycm9yXG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgdGltZW91dCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbY2xpZW50LCBsaW1pdCwgdGltZW91dCwgc2V0UmVzdWx0cywgc2V0U2hvd1Jlc3VsdHNdXG4gICk7XG5cbiAgY29uc3Qgb25CbHVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0U2hvd1Jlc3VsdHMoZmFsc2UpO1xuICAgIH0sIHRpbWVvdXQpO1xuICB9LCBbc2V0U2hvd1Jlc3VsdHMsIHRpbWVvdXRdKTtcblxuICBjb25zdCBvbkZvY3VzID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0U2hvd1Jlc3VsdHModHJ1ZSksIFtzZXRTaG93UmVzdWx0c10pO1xuXG4gIGNvbnN0IG9uSXRlbVNlbGVjdGVkID0gdXNlQ2FsbGJhY2soXG4gICAgaXRlbSA9PiB7XG4gICAgICBjb25zdCBuZXdWaWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KHZpZXdwb3J0KTtcbiAgICAgIGNvbnN0IHtiYm94LCBjZW50ZXJ9ID0gaXRlbTtcblxuICAgICAgY29uc3QgZ290b1ZpZXdwb3J0ID0gYmJveFxuICAgICAgICA/IG5ld1ZpZXdwb3J0LmZpdEJvdW5kcyhbXG4gICAgICAgICAgICBbYmJveFswXSwgYmJveFsxXV0sXG4gICAgICAgICAgICBbYmJveFsyXSwgYmJveFszXV1cbiAgICAgICAgICBdKVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGxvbmdpdHVkZTogY2VudGVyWzBdLFxuICAgICAgICAgICAgbGF0aXR1ZGU6IGNlbnRlclsxXSxcbiAgICAgICAgICAgIHpvb206IHBvaW50Wm9vbVxuICAgICAgICAgIH07XG5cbiAgICAgIGNvbnN0IHtsb25naXR1ZGUsIGxhdGl0dWRlLCB6b29tfSA9IGdvdG9WaWV3cG9ydDtcblxuICAgICAgb25TZWxlY3RlZCh7Li4udmlld3BvcnQsIC4uLntsb25naXR1ZGUsIGxhdGl0dWRlLCB6b29tLCB0cmFuc2l0aW9uRHVyYXRpb259fSwgaXRlbSk7XG5cbiAgICAgIHNldFNob3dSZXN1bHRzKGZhbHNlKTtcbiAgICAgIHNldElucHV0VmFsdWUoZm9ybWF0SXRlbShpdGVtKSk7XG4gICAgICBzZXRTaG93RGVsZXRlKHRydWUpO1xuICAgIH0sXG4gICAgW3ZpZXdwb3J0LCBvblNlbGVjdGVkLCB0cmFuc2l0aW9uRHVyYXRpb24sIHBvaW50Wm9vbSwgZm9ybWF0SXRlbV1cbiAgKTtcblxuICBjb25zdCBvbk1hcmtEZWxldGVkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFNob3dEZWxldGUoZmFsc2UpO1xuICAgIHNldElucHV0VmFsdWUoJycpO1xuICAgIG9uRGVsZXRlTWFya2VyPy4oKTtcbiAgfSwgW29uRGVsZXRlTWFya2VyXSk7XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgZSA9PiB7XG4gICAgICBpZiAoIXJlc3VsdHMgfHwgcmVzdWx0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgc3dpdGNoIChlLmtleUNvZGUpIHtcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfVVA6XG4gICAgICAgICAgc2V0U2VsZWN0ZWRJbmRleChzZWxlY3RlZEluZGV4ID4gMCA/IHNlbGVjdGVkSW5kZXggLSAxIDogc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgS2V5RXZlbnQuRE9NX1ZLX0RPV046XG4gICAgICAgICAgc2V0U2VsZWN0ZWRJbmRleChzZWxlY3RlZEluZGV4IDwgcmVzdWx0cy5sZW5ndGggLSAxID8gc2VsZWN0ZWRJbmRleCArIDEgOiBzZWxlY3RlZEluZGV4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfRU5URVI6XG4gICAgICAgIGNhc2UgS2V5RXZlbnQuRE9NX1ZLX1JFVFVSTjpcbiAgICAgICAgICBpZiAocmVzdWx0c1tzZWxlY3RlZEluZGV4XSkge1xuICAgICAgICAgICAgb25JdGVtU2VsZWN0ZWQocmVzdWx0c1tzZWxlY3RlZEluZGV4XSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3Jlc3VsdHMsIHNlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXgsIG9uSXRlbVNlbGVjdGVkXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lciBjbGFzc05hbWU9e2NsYXNzTmFtZX0gd2lkdGg9e3dpZHRofT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2VvY29kZXItaW5wdXRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnZW9jb2Rlci1pbnB1dF9fc2VhcmNoXCI+XG4gICAgICAgICAgPFNlYXJjaCBoZWlnaHQ9XCIyMHB4XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxJbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICAgICAgICB2YWx1ZT17aW5wdXRWYWx1ZX1cbiAgICAgICAgICBwbGFjZWhvbGRlcj17XG4gICAgICAgICAgICBpbnRsXG4gICAgICAgICAgICAgID8gaW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ2dlb2NvZGVyLnRpdGxlJywgZGVmYXVsdE1lc3NhZ2U6IFBMQUNFSE9MREVSfSlcbiAgICAgICAgICAgICAgOiBQTEFDRUhPTERFUlxuICAgICAgICAgIH1cbiAgICAgICAgLz5cbiAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZW1vdmUtcmVzdWx0XCI+XG4gICAgICAgICAgICA8RGVsZXRlIGhlaWdodD1cIjE2cHhcIiBvbkNsaWNrPXtvbk1hcmtEZWxldGVkfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7c2hvd1Jlc3VsdHMgPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2VvY29kZXItcmVzdWx0c1wiPlxuICAgICAgICAgIHtyZXN1bHRzLm1hcCgoaXRlbSwgaW5kZXgpID0+IChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdnZW9jb2Rlci1pdGVtJywge2FjdGl2ZTogc2VsZWN0ZWRJbmRleCA9PT0gaW5kZXh9KX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25JdGVtU2VsZWN0ZWQoaXRlbSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtmb3JtYXRJdGVtKGl0ZW0pfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IG51bGx9XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBpbmplY3RJbnRsKEdlb0NvZGVyKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFD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
|
|
328
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9nZW9jb2RpbmciLCJfcmVhY3RJbnRsIiwiX3ZpZXdwb3J0TWVyY2F0b3JQcm9qZWN0IiwiX2NvbnN0YW50cyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pY29ucyIsIl91dGlscyIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkNPT1JESU5BVEVfUkVHRVhfU1RSSU5HIiwiQ09PUkRJTkFURV9SRUdFWCIsIlJlZ0V4cCIsIlBMQUNFSE9MREVSIiwiZGVib3VuY2VUaW1lb3V0IiwidGVzdEZvckNvb3JkaW5hdGVzIiwiZXhwb3J0cyIsInF1ZXJ5IiwiaXNWYWxpZCIsInRlc3QiLCJ0cmltIiwidG9rZW5zIiwic3BsaXQiLCJsYXRpdHVkZSIsIk51bWJlciIsImxvbmdpdHVkZSIsIkVER0VfTUVSSURJQU4iLCJnZXRWaWV3cG9ydEJib3giLCJtYXBTdGF0ZSIsIl9tYXBTdGF0ZSRiZWFyaW5nIiwiX21hcFN0YXRlJHBpdGNoIiwid2lkdGgiLCJoZWlnaHQiLCJ2cCIsIldlYk1lcmNhdG9yVmlld3BvcnQiLCJ6b29tIiwiYmVhcmluZyIsInBpdGNoIiwiY29ybmVycyIsInVucHJvamVjdCIsImxuZ3MiLCJtYXAiLCJjIiwibGF0cyIsIm1pbkxuZyIsIk1hdGgiLCJtaW4iLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwibWF4TG5nIiwibWF4IiwiY2xhbXBlZE1pbkxuZyIsImNsYW1wZWRNYXhMbmciLCJTdHlsZWRDb250YWluZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJ0ZXh0Q29sb3IiLCJib3hTaGFkb3ciLCJnZW9jb2RlcklucHV0SGVpZ2h0Iiwic3VidGV4dENvbG9yIiwicGFuZWxCYWNrZ3JvdW5kIiwiaXNGaW5pdGUiLCJnZW9jb2RlcldpZHRoIiwiZHJvcGRvd25XYXBwZXJNYXJnaW4iLCJkcm9wZG93bkxpc3RJdGVtIiwidGV4dFRydW5jYXRlIiwiZHJvcGRvd25MaXN0SGlnaGxpZ2h0QmciLCJ0ZXh0Q29sb3JIbCIsIkdlb0NvZGVyIiwiX3JlZiIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwiX3JlZiRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcmVmJGxpbWl0IiwibGltaXQiLCJfcmVmJHRpbWVvdXQiLCJ0aW1lb3V0IiwiX3JlZiRmb3JtYXRJdGVtIiwiZm9ybWF0SXRlbSIsIml0ZW0iLCJwbGFjZV9uYW1lIiwidmlld3BvcnQiLCJfcmVmJGxpbWl0U2VhcmNoIiwibGltaXRTZWFyY2giLCJvblNlbGVjdGVkIiwib25EZWxldGVNYXJrZXIiLCJ0cmFuc2l0aW9uRHVyYXRpb24iLCJwb2ludFpvb20iLCJpbnRsIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaW5wdXRWYWx1ZSIsInNldElucHV0VmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNob3dSZXN1bHRzIiwic2V0U2hvd1Jlc3VsdHMiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNob3dEZWxldGUiLCJzZXRTaG93RGVsZXRlIiwiaW5pdGlhbFJlc3VsdHMiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInJlc3VsdHMiLCJzZXRSZXN1bHRzIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwic2VsZWN0ZWRJbmRleCIsInNldFNlbGVjdGVkSW5kZXgiLCJjbGllbnQiLCJ1c2VNZW1vIiwiaXNUZXN0IiwiZ2VvY29kZXJTZXJ2aWNlIiwiYWNjZXNzVG9rZW4iLCJvbkNoYW5nZSIsInVzZUNhbGxiYWNrIiwiZXZlbnQiLCJxdWVyeVN0cmluZyIsInRhcmdldCIsInZhbHVlIiwicmVzdWx0Q29vcmRpbmF0ZXMiLCJjbGVhclRpbWVvdXQiLCJfcmVzdWx0Q29vcmRpbmF0ZXMiLCJfaXNWYWxpZCIsImNlbnRlciIsInNldFRpbWVvdXQiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsImdlb2NvZGVQYXJhbXMiLCJiYm94IiwicmVzcG9uc2UiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiQm9vbGVhbiIsImZvcndhcmRHZW9jb2RlIiwic2VuZCIsInNlbnQiLCJib2R5IiwiZmVhdHVyZXMiLCJ0MCIsImNvbnNvbGUiLCJsb2ciLCJzdG9wIiwib25CbHVyIiwib25Gb2N1cyIsIm9uSXRlbVNlbGVjdGVkIiwibmV3Vmlld3BvcnQiLCJnb3RvVmlld3BvcnQiLCJmaXRCb3VuZHMiLCJvbk1hcmtEZWxldGVkIiwib25LZXlEb3duIiwia2V5Q29kZSIsIktleUV2ZW50IiwiRE9NX1ZLX1VQIiwiRE9NX1ZLX0RPV04iLCJET01fVktfRU5URVIiLCJET01fVktfUkVUVVJOIiwiY3JlYXRlRWxlbWVudCIsIlNlYXJjaCIsIklucHV0IiwidHlwZSIsInBsYWNlaG9sZGVyIiwiZm9ybWF0TWVzc2FnZSIsImlkIiwiZGVmYXVsdE1lc3NhZ2UiLCJEZWxldGUiLCJvbkNsaWNrIiwiaW5kZXgiLCJrZXkiLCJjbGFzc25hbWVzIiwiYWN0aXZlIiwiX2RlZmF1bHQiLCJpbmplY3RJbnRsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlb2NvZGVyL2dlb2NvZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgZ2VvY29kZXJTZXJ2aWNlIGZyb20gJ0BtYXBib3gvbWFwYm94LXNkay9zZXJ2aWNlcy9nZW9jb2RpbmcnO1xuaW1wb3J0IHtpbmplY3RJbnRsLCBJbnRsU2hhcGV9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcbmltcG9ydCB7S2V5RXZlbnR9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7SW5wdXR9IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge1NlYXJjaCwgRGVsZXRlfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtWaWV3cG9ydCwgTWFwU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtpc1Rlc3R9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG50eXBlIFN0eWxlZENvbnRhaW5lclByb3BzID0ge1xuICB3aWR0aD86IG51bWJlcjtcbn07XG5cbi8vIG1hdGNoZXMgb25seSB2YWxpZCBjb29yZGluYXRlc1xuY29uc3QgQ09PUkRJTkFURV9SRUdFWF9TVFJJTkcgPVxuICAnKF5bLStdPyg/OlsxLThdP1xcXFxkKD86XFxcXC5cXFxcZCspP3w5MCg/OlxcXFwuMCspPykpLFxcXFxzKihbLStdPyg/OjE4MCg/OlxcXFwuMCspP3woPzooPzoxWzAtN11cXFxcZCl8KD86WzEtOV0/XFxcXGQpKSg/OlxcXFwuXFxcXGQrKT8pKSQnO1xuXG5jb25zdCBDT09SRElOQVRFX1JFR0VYID0gUmVnRXhwKENPT1JESU5BVEVfUkVHRVhfU1RSSU5HKTtcblxuY29uc3QgUExBQ0VIT0xERVIgPSAnRW50ZXIgYW4gYWRkcmVzcyBvciBjb29yZGluYXRlcywgZXggMzcuNzksLTEyMi40MCc7XG5cbmxldCBkZWJvdW5jZVRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0IHwgbnVsbCA9IG51bGw7XG5cbi8qKlxuICogVGVzdHMgaWYgYSBnaXZlbiBxdWVyeSBzdHJpbmcgY29udGFpbnMgdmFsaWQgY29vcmRpbmF0ZXMuXG4gKiBAcGFyYW0gcXVlcnkgVGhlIGlucHV0IHN0cmluZyB0byB0ZXN0IGZvciBjb29yZGluYXRlcy5cbiAqIEByZXR1cm5zIEEgdHVwbGUgd2hlcmU6XG4gKiAgIC0gSWYgdmFsaWQsIHJldHVybnMgYFt0cnVlLCBsb25naXR1ZGUsIGxhdGl0dWRlXWAuXG4gKiAgIC0gSWYgaW52YWxpZCwgcmV0dXJucyBgW2ZhbHNlLCBxdWVyeV1gLlxuICovXG5leHBvcnQgY29uc3QgdGVzdEZvckNvb3JkaW5hdGVzID0gKHF1ZXJ5OiBzdHJpbmcpOiBbdHJ1ZSwgbnVtYmVyLCBudW1iZXJdIHwgW2ZhbHNlLCBzdHJpbmddID0+IHtcbiAgY29uc3QgaXNWYWxpZCA9IENPT1JESU5BVEVfUkVHRVgudGVzdChxdWVyeS50cmltKCkpO1xuXG4gIGlmICghaXNWYWxpZCkge1xuICAgIHJldHVybiBbaXNWYWxpZCwgcXVlcnldO1xuICB9XG5cbiAgY29uc3QgdG9rZW5zID0gcXVlcnkudHJpbSgpLnNwbGl0KCcsJyk7XG4gIGNvbnN0IGxhdGl0dWRlID0gTnVtYmVyKHRva2Vuc1swXSk7XG4gIGNvbnN0IGxvbmdpdHVkZSA9IE51bWJlcih0b2tlbnNbMV0pO1xuXG4gIHJldHVybiBbaXNWYWxpZCwgbG9uZ2l0dWRlLCBsYXRpdHVkZV07XG59O1xuXG5jb25zdCBFREdFX01FUklESUFOID0gMTgwO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vmlld3BvcnRCYm94KG1hcFN0YXRlOiBNYXBTdGF0ZSk6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdIHwgbnVsbCB7XG4gIGlmICghbWFwU3RhdGUud2lkdGggfHwgIW1hcFN0YXRlLmhlaWdodCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgdnAgPSBuZXcgV2ViTWVyY2F0b3JWaWV3cG9ydCh7XG4gICAgd2lkdGg6IG1hcFN0YXRlLndpZHRoLFxuICAgIGhlaWdodDogbWFwU3RhdGUuaGVpZ2h0LFxuICAgIGxvbmdpdHVkZTogbWFwU3RhdGUubG9uZ2l0dWRlLFxuICAgIGxhdGl0dWRlOiBtYXBTdGF0ZS5sYXRpdHVkZSxcbiAgICB6b29tOiBtYXBTdGF0ZS56b29tLFxuICAgIGJlYXJpbmc6IG1hcFN0YXRlLmJlYXJpbmcgPz8gMCxcbiAgICBwaXRjaDogbWFwU3RhdGUucGl0Y2ggPz8gMFxuICB9KTtcblxuICBjb25zdCBjb3JuZXJzID0gW1xuICAgIHZwLnVucHJvamVjdChbMCwgMF0pLFxuICAgIHZwLnVucHJvamVjdChbbWFwU3RhdGUud2lkdGgsIDBdKSxcbiAgICB2cC51bnByb2plY3QoW21hcFN0YXRlLndpZHRoLCBtYXBTdGF0ZS5oZWlnaHRdKSxcbiAgICB2cC51bnByb2plY3QoWzAsIG1hcFN0YXRlLmhlaWdodF0pXG4gIF07XG5cbiAgY29uc3QgbG5ncyA9IGNvcm5lcnMubWFwKGMgPT4gY1swXSk7XG4gIGNvbnN0IGxhdHMgPSBjb3JuZXJzLm1hcChjID0+IGNbMV0pO1xuXG4gIGNvbnN0IG1pbkxuZyA9IE1hdGgubWluKC4uLmxuZ3MpO1xuICBjb25zdCBtYXhMbmcgPSBNYXRoLm1heCguLi5sbmdzKTtcblxuICBpZiAobWF4TG5nIC0gbWluTG5nID49IDM2MCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgY2xhbXBlZE1pbkxuZyA9IE1hdGgubWF4KG1pbkxuZywgLUVER0VfTUVSSURJQU4pO1xuICBjb25zdCBjbGFtcGVkTWF4TG5nID0gTWF0aC5taW4obWF4TG5nLCBFREdFX01FUklESUFOKTtcblxuICBpZiAoY2xhbXBlZE1pbkxuZyA+PSBjbGFtcGVkTWF4TG5nKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gW1xuICAgIGNsYW1wZWRNaW5MbmcsXG4gICAgTWF0aC5tYXgoTWF0aC5taW4oLi4ubGF0cyksIC05MCksXG4gICAgY2xhbXBlZE1heExuZyxcbiAgICBNYXRoLm1pbihNYXRoLm1heCguLi5sYXRzKSwgOTApXG4gIF07XG59XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXY8U3R5bGVkQ29udGFpbmVyUHJvcHM+YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG5cbiAgLmdlb2NvZGVyLWlucHV0IHtcbiAgICBib3gtc2hhZG93OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmJveFNoYWRvd307XG5cbiAgICAuZ2VvY29kZXItaW5wdXRfX3NlYXJjaCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZ2VvY29kZXJJbnB1dEhlaWdodH1weDtcbiAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICBwYWRkaW5nOiA0cHggMzZweDtcbiAgICAgIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5nZW9jb2RlcklucHV0SGVpZ2h0fXB4O1xuICAgICAgY2FyZXQtY29sb3I6IHVuc2V0O1xuICAgIH1cbiAgfVxuXG4gIC5nZW9jb2Rlci1yZXN1bHRzIHtcbiAgICBib3gtc2hhZG93OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmJveFNoYWRvd307XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmR9O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiAoTnVtYmVyLmlzRmluaXRlKHByb3BzLndpZHRoKSA/IHByb3BzLndpZHRoIDogcHJvcHMudGhlbWUuZ2VvY29kZXJXaWR0aCl9cHg7XG4gICAgbWFyZ2luLXRvcDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bldhcHBlck1hcmdpbn1weDtcbiAgfVxuXG4gIC5nZW9jb2Rlci1pdGVtIHtcbiAgICAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEl0ZW19O1xuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dFRydW5jYXRlfTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0SGlnaGxpZ2h0Qmd9O1xuICAgIH1cbiAgfVxuXG4gIC5yZW1vdmUtcmVzdWx0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDE2cHg7XG4gICAgdG9wOiAwcHg7XG4gICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmdlb2NvZGVySW5wdXRIZWlnaHR9cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3VsdCB7XG4gIGNlbnRlcjogW251bWJlciwgbnVtYmVyXTtcbiAgcGxhY2VfbmFtZTogc3RyaW5nO1xuICBiYm94PzogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gIHRleHQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFJlc3VsdHMgPSBSZWFkb25seUFycmF5PFJlc3VsdD47XG5cbnR5cGUgR2VvY29kZXJQcm9wcyA9IHtcbiAgbWFwYm94QXBpQWNjZXNzVG9rZW46IHN0cmluZztcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBsaW1pdD86IG51bWJlcjtcbiAgdGltZW91dD86IG51bWJlcjtcbiAgZm9ybWF0SXRlbT86IChpdGVtOiBSZXN1bHQpID0+IHN0cmluZztcbiAgdmlld3BvcnQ/OiBWaWV3cG9ydDtcbiAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbiAgbGltaXRTZWFyY2g/OiBib29sZWFuO1xuICBvblNlbGVjdGVkOiAodmlld3BvcnQ6IFZpZXdwb3J0IHwgbnVsbCwgaXRlbTogUmVzdWx0KSA9PiB2b2lkO1xuICBvbkRlbGV0ZU1hcmtlcj86ICgpID0+IHZvaWQ7XG4gIHRyYW5zaXRpb25EdXJhdGlvbj86IG51bWJlcjtcbiAgcG9pbnRab29tPzogbnVtYmVyO1xuICB3aWR0aD86IG51bWJlcjtcbn07XG5cbnR5cGUgSW50bFByb3BzID0ge1xuICBpbnRsOiBJbnRsU2hhcGU7XG59O1xuXG5jb25zdCBHZW9Db2RlcjogUmVhY3QuRkM8R2VvY29kZXJQcm9wcyAmIEludGxQcm9wcz4gPSAoe1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgY2xhc3NOYW1lID0gJycsXG4gIGxpbWl0ID0gNSxcbiAgdGltZW91dCA9IDMwMCxcbiAgZm9ybWF0SXRlbSA9IGl0ZW0gPT4gaXRlbS5wbGFjZV9uYW1lLFxuICB2aWV3cG9ydCxcbiAgbWFwU3RhdGUsXG4gIGxpbWl0U2VhcmNoID0gZmFsc2UsXG4gIG9uU2VsZWN0ZWQsXG4gIG9uRGVsZXRlTWFya2VyLFxuICB0cmFuc2l0aW9uRHVyYXRpb24sXG4gIHBvaW50Wm9vbSxcbiAgd2lkdGgsXG4gIGludGxcbn0pID0+IHtcbiAgY29uc3QgW2lucHV0VmFsdWUsIHNldElucHV0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbc2hvd1Jlc3VsdHMsIHNldFNob3dSZXN1bHRzXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3Nob3dEZWxldGUsIHNldFNob3dEZWxldGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBpbml0aWFsUmVzdWx0czogUmVzdWx0W10gPSBbXTtcbiAgY29uc3QgW3Jlc3VsdHMsIHNldFJlc3VsdHNdID0gdXNlU3RhdGUoaW5pdGlhbFJlc3VsdHMpO1xuICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgwKTtcblxuICBjb25zdCBjbGllbnQgPSB1c2VNZW1vKFxuICAgICgpID0+IChpc1Rlc3QoKSA/IG51bGwgOiBnZW9jb2RlclNlcnZpY2Uoe2FjY2Vzc1Rva2VuOiBtYXBib3hBcGlBY2Nlc3NUb2tlbn0pKSxcbiAgICBbbWFwYm94QXBpQWNjZXNzVG9rZW5dXG4gICk7XG5cbiAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICBldmVudCA9PiB7XG4gICAgICBjb25zdCBxdWVyeVN0cmluZyA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgIHNldElucHV0VmFsdWUocXVlcnlTdHJpbmcpO1xuICAgICAgY29uc3QgcmVzdWx0Q29vcmRpbmF0ZXMgPSB0ZXN0Rm9yQ29vcmRpbmF0ZXMocXVlcnlTdHJpbmcpO1xuICAgICAgaWYgKHJlc3VsdENvb3JkaW5hdGVzWzBdKSB7XG4gICAgICAgIGlmIChkZWJvdW5jZVRpbWVvdXQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lb3V0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbX2lzVmFsaWQsIGxvbmdpdHVkZSwgbGF0aXR1ZGVdID0gcmVzdWx0Q29vcmRpbmF0ZXM7XG4gICAgICAgIHNldFNob3dSZXN1bHRzKHRydWUpO1xuICAgICAgICBzZXRSZXN1bHRzKFt7Y2VudGVyOiBbbG9uZ2l0dWRlLCBsYXRpdHVkZV0sIHBsYWNlX25hbWU6IHF1ZXJ5U3RyaW5nfV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGRlYm91bmNlVGltZW91dCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgICAgIGRlYm91bmNlVGltZW91dCA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGlmIChsaW1pdCA+IDAgJiYgQm9vbGVhbihxdWVyeVN0cmluZykpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IGdlb2NvZGVQYXJhbXM6IHtcbiAgICAgICAgICAgICAgICBxdWVyeTogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGxpbWl0OiBudW1iZXI7XG4gICAgICAgICAgICAgICAgYmJveD86IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuICAgICAgICAgICAgICB9ID0ge1xuICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeVN0cmluZyxcbiAgICAgICAgICAgICAgICBsaW1pdFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICBpZiAobGltaXRTZWFyY2ggJiYgbWFwU3RhdGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiYm94ID0gZ2V0Vmlld3BvcnRCYm94KG1hcFN0YXRlKTtcbiAgICAgICAgICAgICAgICBpZiAoYmJveCkge1xuICAgICAgICAgICAgICAgICAgZ2VvY29kZVBhcmFtcy5iYm94ID0gYmJveDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZm9yd2FyZEdlb2NvZGUoZ2VvY29kZVBhcmFtcykuc2VuZCgpO1xuICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuYm9keS5mZWF0dXJlcykge1xuICAgICAgICAgICAgICAgIHNldFNob3dSZXN1bHRzKHRydWUpO1xuICAgICAgICAgICAgICAgIHNldFJlc3VsdHMocmVzcG9uc2UuYm9keS5mZWF0dXJlcyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgLy8gVE9ETzogc2hvdyBnZW9jb2RlIGVycm9yXG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgdGltZW91dCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbY2xpZW50LCBsaW1pdCwgdGltZW91dCwgc2V0UmVzdWx0cywgc2V0U2hvd1Jlc3VsdHMsIGxpbWl0U2VhcmNoLCBtYXBTdGF0ZV1cbiAgKTtcblxuICBjb25zdCBvbkJsdXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRTaG93UmVzdWx0cyhmYWxzZSk7XG4gICAgfSwgdGltZW91dCk7XG4gIH0sIFtzZXRTaG93UmVzdWx0cywgdGltZW91dF0pO1xuXG4gIGNvbnN0IG9uRm9jdXMgPSB1c2VDYWxsYmFjaygoKSA9PiBzZXRTaG93UmVzdWx0cyh0cnVlKSwgW3NldFNob3dSZXN1bHRzXSk7XG5cbiAgY29uc3Qgb25JdGVtU2VsZWN0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICBpdGVtID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZpZXdwb3J0ID0gbmV3IFdlYk1lcmNhdG9yVmlld3BvcnQodmlld3BvcnQpO1xuICAgICAgY29uc3Qge2Jib3gsIGNlbnRlcn0gPSBpdGVtO1xuXG4gICAgICBjb25zdCBnb3RvVmlld3BvcnQgPSBiYm94XG4gICAgICAgID8gbmV3Vmlld3BvcnQuZml0Qm91bmRzKFtcbiAgICAgICAgICAgIFtiYm94WzBdLCBiYm94WzFdXSxcbiAgICAgICAgICAgIFtiYm94WzJdLCBiYm94WzNdXVxuICAgICAgICAgIF0pXG4gICAgICAgIDoge1xuICAgICAgICAgICAgbG9uZ2l0dWRlOiBjZW50ZXJbMF0sXG4gICAgICAgICAgICBsYXRpdHVkZTogY2VudGVyWzFdLFxuICAgICAgICAgICAgem9vbTogcG9pbnRab29tXG4gICAgICAgICAgfTtcblxuICAgICAgY29uc3Qge2xvbmdpdHVkZSwgbGF0aXR1ZGUsIHpvb219ID0gZ290b1ZpZXdwb3J0O1xuXG4gICAgICBvblNlbGVjdGVkKHsuLi52aWV3cG9ydCwgLi4ue2xvbmdpdHVkZSwgbGF0aXR1ZGUsIHpvb20sIHRyYW5zaXRpb25EdXJhdGlvbn19LCBpdGVtKTtcblxuICAgICAgc2V0U2hvd1Jlc3VsdHMoZmFsc2UpO1xuICAgICAgc2V0SW5wdXRWYWx1ZShmb3JtYXRJdGVtKGl0ZW0pKTtcbiAgICAgIHNldFNob3dEZWxldGUodHJ1ZSk7XG4gICAgfSxcbiAgICBbdmlld3BvcnQsIG9uU2VsZWN0ZWQsIHRyYW5zaXRpb25EdXJhdGlvbiwgcG9pbnRab29tLCBmb3JtYXRJdGVtXVxuICApO1xuXG4gIGNvbnN0IG9uTWFya0RlbGV0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0U2hvd0RlbGV0ZShmYWxzZSk7XG4gICAgc2V0SW5wdXRWYWx1ZSgnJyk7XG4gICAgb25EZWxldGVNYXJrZXI/LigpO1xuICB9LCBbb25EZWxldGVNYXJrZXJdKTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICBlID0+IHtcbiAgICAgIGlmICghcmVzdWx0cyB8fCByZXN1bHRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKGUua2V5Q29kZSkge1xuICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19VUDpcbiAgICAgICAgICBzZXRTZWxlY3RlZEluZGV4KHNlbGVjdGVkSW5kZXggPiAwID8gc2VsZWN0ZWRJbmRleCAtIDEgOiBzZWxlY3RlZEluZGV4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfRE9XTjpcbiAgICAgICAgICBzZXRTZWxlY3RlZEluZGV4KHNlbGVjdGVkSW5kZXggPCByZXN1bHRzLmxlbmd0aCAtIDEgPyBzZWxlY3RlZEluZGV4ICsgMSA6IHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19FTlRFUjpcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfUkVUVVJOOlxuICAgICAgICAgIGlmIChyZXN1bHRzW3NlbGVjdGVkSW5kZXhdKSB7XG4gICAgICAgICAgICBvbkl0ZW1TZWxlY3RlZChyZXN1bHRzW3NlbGVjdGVkSW5kZXhdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSxcbiAgICBbcmVzdWx0cywgc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleCwgb25JdGVtU2VsZWN0ZWRdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQ29udGFpbmVyIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSB3aWR0aD17d2lkdGh9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJnZW9jb2Rlci1pbnB1dFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdlb2NvZGVyLWlucHV0X19zZWFyY2hcIj5cbiAgICAgICAgICA8U2VhcmNoIGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPElucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICAgIHZhbHVlPXtpbnB1dFZhbHVlfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtcbiAgICAgICAgICAgIGludGxcbiAgICAgICAgICAgICAgPyBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnZ2VvY29kZXIudGl0bGUnLCBkZWZhdWx0TWVzc2FnZTogUExBQ0VIT0xERVJ9KVxuICAgICAgICAgICAgICA6IFBMQUNFSE9MREVSXG4gICAgICAgICAgfVxuICAgICAgICAvPlxuICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbW92ZS1yZXN1bHRcIj5cbiAgICAgICAgICAgIDxEZWxldGUgaGVpZ2h0PVwiMTZweFwiIG9uQ2xpY2s9e29uTWFya0RlbGV0ZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIHtzaG93UmVzdWx0cyA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnZW9jb2Rlci1yZXN1bHRzXCI+XG4gICAgICAgICAge3Jlc3VsdHMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2dlb2NvZGVyLWl0ZW0nLCB7YWN0aXZlOiBzZWxlY3RlZEluZGV4ID09PSBpbmRleH0pfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkl0ZW1TZWxlY3RlZChpdGVtKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2Zvcm1hdEl0ZW0oaXRlbSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApIDogbnVsbH1cbiAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGluamVjdEludGwoR2VvQ29kZXIpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLHdCQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxrQkFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsTUFBQSxHQUFBVCxPQUFBO0FBRUEsSUFBQVUsTUFBQSxHQUFBVixPQUFBO0FBQXdDLElBQUFXLGVBQUEsRUFieEM7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBZCx3QkFBQWMsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxjQUFBUixDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUFXLFFBQUFuQixDQUFBLEVBQUFFLENBQUEsUUFBQUMsQ0FBQSxHQUFBUSxNQUFBLENBQUFTLElBQUEsQ0FBQXBCLENBQUEsT0FBQVcsTUFBQSxDQUFBVSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFYLE1BQUEsQ0FBQVUscUJBQUEsQ0FBQXJCLENBQUEsR0FBQUUsQ0FBQSxLQUFBb0IsQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQXJCLENBQUEsV0FBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFFLENBQUEsRUFBQXNCLFVBQUEsT0FBQXJCLENBQUEsQ0FBQXNCLElBQUEsQ0FBQUMsS0FBQSxDQUFBdkIsQ0FBQSxFQUFBbUIsQ0FBQSxZQUFBbkIsQ0FBQTtBQUFBLFNBQUF3QixjQUFBM0IsQ0FBQSxhQUFBRSxDQUFBLE1BQUFBLENBQUEsR0FBQTBCLFNBQUEsQ0FBQUMsTUFBQSxFQUFBM0IsQ0FBQSxVQUFBQyxDQUFBLFdBQUF5QixTQUFBLENBQUExQixDQUFBLElBQUEwQixTQUFBLENBQUExQixDQUFBLFFBQUFBLENBQUEsT0FBQWlCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLE9BQUEyQixPQUFBLFdBQUE1QixDQUFBLFFBQUE2QixnQkFBQSxhQUFBL0IsQ0FBQSxFQUFBRSxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBUyxNQUFBLENBQUFxQix5QkFBQSxHQUFBckIsTUFBQSxDQUFBc0IsZ0JBQUEsQ0FBQWpDLENBQUEsRUFBQVcsTUFBQSxDQUFBcUIseUJBQUEsQ0FBQTdCLENBQUEsS0FBQWdCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLEdBQUEyQixPQUFBLFdBQUE1QixDQUFBLElBQUFTLE1BQUEsQ0FBQUMsY0FBQSxDQUFBWixDQUFBLEVBQUFFLENBQUEsRUFBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixDQUFBLEVBQUFELENBQUEsaUJBQUFGLENBQUE7QUFrQkE7QUFDQSxJQUFNa0MsdUJBQXVCLEdBQzNCLDBIQUEwSDtBQUU1SCxJQUFNQyxnQkFBZ0IsR0FBR0MsTUFBTSxDQUFDRix1QkFBdUIsQ0FBQztBQUV4RCxJQUFNRyxXQUFXLEdBQUcsbURBQW1EO0FBRXZFLElBQUlDLGVBQXNDLEdBQUcsSUFBSTs7QUFFakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNQyxrQkFBa0IsR0FBQUMsT0FBQSxDQUFBRCxrQkFBQSxHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUlFLEtBQWEsRUFBK0M7RUFDN0YsSUFBTUMsT0FBTyxHQUFHUCxnQkFBZ0IsQ0FBQ1EsSUFBSSxDQUFDRixLQUFLLENBQUNHLElBQUksQ0FBQyxDQUFDLENBQUM7RUFFbkQsSUFBSSxDQUFDRixPQUFPLEVBQUU7SUFDWixPQUFPLENBQUNBLE9BQU8sRUFBRUQsS0FBSyxDQUFDO0VBQ3pCO0VBRUEsSUFBTUksTUFBTSxHQUFHSixLQUFLLENBQUNHLElBQUksQ0FBQyxDQUFDLENBQUNFLEtBQUssQ0FBQyxHQUFHLENBQUM7RUFDdEMsSUFBTUMsUUFBUSxHQUFHQyxNQUFNLENBQUNILE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUNsQyxJQUFNSSxTQUFTLEdBQUdELE1BQU0sQ0FBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBRW5DLE9BQU8sQ0FBQ0gsT0FBTyxFQUFFTyxTQUFTLEVBQUVGLFFBQVEsQ0FBQztBQUN2QyxDQUFDO0FBRUQsSUFBTUcsYUFBYSxHQUFHLEdBQUc7QUFFbEIsU0FBU0MsZUFBZUEsQ0FBQ0MsUUFBa0IsRUFBMkM7RUFBQSxJQUFBQyxpQkFBQSxFQUFBQyxlQUFBO0VBQzNGLElBQUksQ0FBQ0YsUUFBUSxDQUFDRyxLQUFLLElBQUksQ0FBQ0gsUUFBUSxDQUFDSSxNQUFNLEVBQUU7SUFDdkMsT0FBTyxJQUFJO0VBQ2I7RUFFQSxJQUFNQyxFQUFFLEdBQUcsSUFBSUMsNENBQW1CLENBQUM7SUFDakNILEtBQUssRUFBRUgsUUFBUSxDQUFDRyxLQUFLO0lBQ3JCQyxNQUFNLEVBQUVKLFFBQVEsQ0FBQ0ksTUFBTTtJQUN2QlAsU0FBUyxFQUFFRyxRQUFRLENBQUNILFNBQVM7SUFDN0JGLFFBQVEsRUFBRUssUUFBUSxDQUFDTCxRQUFRO0lBQzNCWSxJQUFJLEVBQUVQLFFBQVEsQ0FBQ08sSUFBSTtJQUNuQkMsT0FBTyxHQUFBUCxpQkFBQSxHQUFFRCxRQUFRLENBQUNRLE9BQU8sY0FBQVAsaUJBQUEsY0FBQUEsaUJBQUEsR0FBSSxDQUFDO0lBQzlCUSxLQUFLLEdBQUFQLGVBQUEsR0FBRUYsUUFBUSxDQUFDUyxLQUFLLGNBQUFQLGVBQUEsY0FBQUEsZUFBQSxHQUFJO0VBQzNCLENBQUMsQ0FBQztFQUVGLElBQU1RLE9BQU8sR0FBRyxDQUNkTCxFQUFFLENBQUNNLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNwQk4sRUFBRSxDQUFDTSxTQUFTLENBQUMsQ0FBQ1gsUUFBUSxDQUFDRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDakNFLEVBQUUsQ0FBQ00sU0FBUyxDQUFDLENBQUNYLFFBQVEsQ0FBQ0csS0FBSyxFQUFFSCxRQUFRLENBQUNJLE1BQU0sQ0FBQyxDQUFDLEVBQy9DQyxFQUFFLENBQUNNLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRVgsUUFBUSxDQUFDSSxNQUFNLENBQUMsQ0FBQyxDQUNuQztFQUVELElBQU1RLElBQUksR0FBR0YsT0FBTyxDQUFDRyxHQUFHLENBQUMsVUFBQUMsQ0FBQztJQUFBLE9BQUlBLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFBQSxFQUFDO0VBQ25DLElBQU1DLElBQUksR0FBR0wsT0FBTyxDQUFDRyxHQUFHLENBQUMsVUFBQUMsQ0FBQztJQUFBLE9BQUlBLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFBQSxFQUFDO0VBRW5DLElBQU1FLE1BQU0sR0FBR0MsSUFBSSxDQUFDQyxHQUFHLENBQUE1QyxLQUFBLENBQVIyQyxJQUFJLE1BQUFFLG1CQUFBLGFBQVFQLElBQUksRUFBQztFQUNoQyxJQUFNUSxNQUFNLEdBQUdILElBQUksQ0FBQ0ksR0FBRyxDQUFBL0MsS0FBQSxDQUFSMkMsSUFBSSxNQUFBRSxtQkFBQSxhQUFRUCxJQUFJLEVBQUM7RUFFaEMsSUFBSVEsTUFBTSxHQUFHSixNQUFNLElBQUksR0FBRyxFQUFFO0lBQzFCLE9BQU8sSUFBSTtFQUNiO0VBRUEsSUFBTU0sYUFBYSxHQUFHTCxJQUFJLENBQUNJLEdBQUcsQ0FBQ0wsTUFBTSxFQUFFLENBQUNsQixhQUFhLENBQUM7RUFDdEQsSUFBTXlCLGFBQWEsR0FBR04sSUFBSSxDQUFDQyxHQUFHLENBQUNFLE1BQU0sRUFBRXRCLGFBQWEsQ0FBQztFQUVyRCxJQUFJd0IsYUFBYSxJQUFJQyxhQUFhLEVBQUU7SUFDbEMsT0FBTyxJQUFJO0VBQ2I7RUFFQSxPQUFPLENBQ0xELGFBQWEsRUFDYkwsSUFBSSxDQUFDSSxHQUFHLENBQUNKLElBQUksQ0FBQ0MsR0FBRyxDQUFBNUMsS0FBQSxDQUFSMkMsSUFBSSxNQUFBRSxtQkFBQSxhQUFRSixJQUFJLEVBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUNoQ1EsYUFBYSxFQUNiTixJQUFJLENBQUNDLEdBQUcsQ0FBQ0QsSUFBSSxDQUFDSSxHQUFHLENBQUEvQyxLQUFBLENBQVIyQyxJQUFJLE1BQUFFLG1CQUFBLGFBQVFKLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUNoQztBQUNIO0FBRUEsSUFBTVMsZUFBZSxHQUFHQyw0QkFBTSxDQUFDQyxHQUFHLENBQUFoRixlQUFBLEtBQUFBLGVBQUEsT0FBQWlGLHVCQUFBLDg1QkFFdkIsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxTQUFTO0FBQUEsR0FHdkIsVUFBQUYsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDRSxTQUFTO0FBQUEsR0FJaEMsVUFBQUgsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDRyxtQkFBbUI7QUFBQSxHQU16QyxVQUFBSixLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNJLFlBQVk7QUFBQSxHQUtoQyxVQUFBTCxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNHLG1CQUFtQjtBQUFBLEdBTXRDLFVBQUFKLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0UsU0FBUztBQUFBLEdBQ3hCLFVBQUFILEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0ssZUFBZTtBQUFBLEdBRS9DLFVBQUFOLEtBQUs7RUFBQSxPQUFLaEMsTUFBTSxDQUFDdUMsUUFBUSxDQUFDUCxLQUFLLENBQUN6QixLQUFLLENBQUMsR0FBR3lCLEtBQUssQ0FBQ3pCLEtBQUssR0FBR3lCLEtBQUssQ0FBQ0MsS0FBSyxDQUFDTyxhQUFhO0FBQUEsQ0FBQyxFQUM1RSxVQUFBUixLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNRLG9CQUFvQjtBQUFBLEdBSXJELFVBQUFULEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1MsZ0JBQWdCO0FBQUEsR0FDckMsVUFBQVYsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDVSxZQUFZO0FBQUEsR0FHYixVQUFBWCxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNXLHVCQUF1QjtBQUFBLEdBUXhELFVBQUFaLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0csbUJBQW1CO0FBQUEsR0FNdkMsVUFBQUosS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDWSxXQUFXO0FBQUEsRUFHOUM7QUErQkQsSUFBTUMsUUFBNkMsR0FBRyxTQUFoREEsUUFBNkNBLENBQUFDLElBQUEsRUFlN0M7RUFBQSxJQWRKQyxvQkFBb0IsR0FBQUQsSUFBQSxDQUFwQkMsb0JBQW9CO0lBQUFDLGNBQUEsR0FBQUYsSUFBQSxDQUNwQkcsU0FBUztJQUFUQSxTQUFTLEdBQUFELGNBQUEsY0FBRyxFQUFFLEdBQUFBLGNBQUE7SUFBQUUsVUFBQSxHQUFBSixJQUFBLENBQ2RLLEtBQUs7SUFBTEEsS0FBSyxHQUFBRCxVQUFBLGNBQUcsQ0FBQyxHQUFBQSxVQUFBO0lBQUFFLFlBQUEsR0FBQU4sSUFBQSxDQUNUTyxPQUFPO0lBQVBBLE9BQU8sR0FBQUQsWUFBQSxjQUFHLEdBQUcsR0FBQUEsWUFBQTtJQUFBRSxlQUFBLEdBQUFSLElBQUEsQ0FDYlMsVUFBVTtJQUFWQSxVQUFVLEdBQUFELGVBQUEsY0FBRyxVQUFBRSxJQUFJO01BQUEsT0FBSUEsSUFBSSxDQUFDQyxVQUFVO0lBQUEsSUFBQUgsZUFBQTtJQUNwQ0ksUUFBUSxHQUFBWixJQUFBLENBQVJZLFFBQVE7SUFDUnZELFFBQVEsR0FBQTJDLElBQUEsQ0FBUjNDLFFBQVE7SUFBQXdELGdCQUFBLEdBQUFiLElBQUEsQ0FDUmMsV0FBVztJQUFYQSxXQUFXLEdBQUFELGdCQUFBLGNBQUcsS0FBSyxHQUFBQSxnQkFBQTtJQUNuQkUsVUFBVSxHQUFBZixJQUFBLENBQVZlLFVBQVU7SUFDVkMsY0FBYyxHQUFBaEIsSUFBQSxDQUFkZ0IsY0FBYztJQUNkQyxrQkFBa0IsR0FBQWpCLElBQUEsQ0FBbEJpQixrQkFBa0I7SUFDbEJDLFNBQVMsR0FBQWxCLElBQUEsQ0FBVGtCLFNBQVM7SUFDVDFELEtBQUssR0FBQXdDLElBQUEsQ0FBTHhDLEtBQUs7SUFDTDJELElBQUksR0FBQW5CLElBQUEsQ0FBSm1CLElBQUk7RUFFSixJQUFBQyxTQUFBLEdBQW9DLElBQUFDLGVBQVEsRUFBQyxFQUFFLENBQUM7SUFBQUMsVUFBQSxPQUFBQyxlQUFBLGFBQUFILFNBQUE7SUFBekNJLFVBQVUsR0FBQUYsVUFBQTtJQUFFRyxhQUFhLEdBQUFILFVBQUE7RUFDaEMsSUFBQUksVUFBQSxHQUFzQyxJQUFBTCxlQUFRLEVBQUMsS0FBSyxDQUFDO0lBQUFNLFVBQUEsT0FBQUosZUFBQSxhQUFBRyxVQUFBO0lBQTlDRSxXQUFXLEdBQUFELFVBQUE7SUFBRUUsY0FBYyxHQUFBRixVQUFBO0VBQ2xDLElBQUFHLFVBQUEsR0FBb0MsSUFBQVQsZUFBUSxFQUFDLEtBQUssQ0FBQztJQUFBVSxVQUFBLE9BQUFSLGVBQUEsYUFBQU8sVUFBQTtJQUE1Q0UsVUFBVSxHQUFBRCxVQUFBO0lBQUVFLGFBQWEsR0FBQUYsVUFBQTtFQUNoQyxJQUFNRyxjQUF3QixHQUFHLEVBQUU7RUFDbkMsSUFBQUMsVUFBQSxHQUE4QixJQUFBZCxlQUFRLEVBQUNhLGNBQWMsQ0FBQztJQUFBRSxVQUFBLE9BQUFiLGVBQUEsYUFBQVksVUFBQTtJQUEvQ0UsT0FBTyxHQUFBRCxVQUFBO0lBQUVFLFVBQVUsR0FBQUYsVUFBQTtFQUMxQixJQUFBRyxVQUFBLEdBQTBDLElBQUFsQixlQUFRLEVBQUMsQ0FBQyxDQUFDO0lBQUFtQixXQUFBLE9BQUFqQixlQUFBLGFBQUFnQixVQUFBO0lBQTlDRSxhQUFhLEdBQUFELFdBQUE7SUFBRUUsZ0JBQWdCLEdBQUFGLFdBQUE7RUFFdEMsSUFBTUcsTUFBTSxHQUFHLElBQUFDLGNBQU8sRUFDcEI7SUFBQSxPQUFPLElBQUFDLGFBQU0sRUFBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUFDLHFCQUFlLEVBQUM7TUFBQ0MsV0FBVyxFQUFFOUM7SUFBb0IsQ0FBQyxDQUFDO0VBQUEsQ0FBQyxFQUM5RSxDQUFDQSxvQkFBb0IsQ0FDdkIsQ0FBQztFQUVELElBQU0rQyxRQUFRLEdBQUcsSUFBQUMsa0JBQVcsRUFDMUIsVUFBQUMsS0FBSyxFQUFJO0lBQ1AsSUFBTUMsV0FBVyxHQUFHRCxLQUFLLENBQUNFLE1BQU0sQ0FBQ0MsS0FBSztJQUN0QzVCLGFBQWEsQ0FBQzBCLFdBQVcsQ0FBQztJQUMxQixJQUFNRyxpQkFBaUIsR0FBRzlHLGtCQUFrQixDQUFDMkcsV0FBVyxDQUFDO0lBQ3pELElBQUlHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFO01BQ3hCLElBQUkvRyxlQUFlLEVBQUU7UUFDbkJnSCxZQUFZLENBQUNoSCxlQUFlLENBQUM7TUFDL0I7TUFDQSxJQUFBaUgsa0JBQUEsT0FBQWpDLGVBQUEsYUFBd0MrQixpQkFBaUI7UUFBbERHLFFBQVEsR0FBQUQsa0JBQUE7UUFBRXRHLFNBQVMsR0FBQXNHLGtCQUFBO1FBQUV4RyxRQUFRLEdBQUF3RyxrQkFBQTtNQUNwQzNCLGNBQWMsQ0FBQyxJQUFJLENBQUM7TUFDcEJTLFVBQVUsQ0FBQyxDQUFDO1FBQUNvQixNQUFNLEVBQUUsQ0FBQ3hHLFNBQVMsRUFBRUYsUUFBUSxDQUFDO1FBQUUyRCxVQUFVLEVBQUV3QztNQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUMsTUFBTTtNQUNMLElBQUk1RyxlQUFlLEVBQUU7UUFDbkJnSCxZQUFZLENBQUNoSCxlQUFlLENBQUM7TUFDL0I7TUFDQUEsZUFBZSxHQUFHb0gsVUFBVSxtQkFBQUMsa0JBQUEsMkJBQUFDLFlBQUEsWUFBQUMsSUFBQSxDQUFDLFNBQUFDLFFBQUE7UUFBQSxJQUFBQyxhQUFBLEVBQUFDLElBQUEsRUFBQUMsUUFBQTtRQUFBLE9BQUFMLFlBQUEsWUFBQU0sSUFBQSxVQUFBQyxTQUFBQyxRQUFBO1VBQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7WUFBQTtjQUFBLE1BQ3ZCbEUsS0FBSyxHQUFHLENBQUMsSUFBSW1FLE9BQU8sQ0FBQ3JCLFdBQVcsQ0FBQztnQkFBQWtCLFFBQUEsQ0FBQUUsSUFBQTtnQkFBQTtjQUFBO2NBQUFGLFFBQUEsQ0FBQUMsSUFBQTtjQUUzQk4sYUFJTCxHQUFHO2dCQUNGdEgsS0FBSyxFQUFFeUcsV0FBVztnQkFDbEI5QyxLQUFLLEVBQUxBO2NBQ0YsQ0FBQztjQUNELElBQUlTLFdBQVcsSUFBSXpELFFBQVEsRUFBRTtnQkFDckI0RyxJQUFJLEdBQUc3RyxlQUFlLENBQUNDLFFBQVEsQ0FBQztnQkFDdEMsSUFBSTRHLElBQUksRUFBRTtrQkFDUkQsYUFBYSxDQUFDQyxJQUFJLEdBQUdBLElBQUk7Z0JBQzNCO2NBQ0Y7Y0FBQ0ksUUFBQSxDQUFBRSxJQUFBO2NBQUEsT0FDc0I1QixNQUFNLENBQUM4QixjQUFjLENBQUNULGFBQWEsQ0FBQyxDQUFDVSxJQUFJLENBQUMsQ0FBQztZQUFBO2NBQTVEUixRQUFRLEdBQUFHLFFBQUEsQ0FBQU0sSUFBQTtjQUNkLElBQUlULFFBQVEsQ0FBQ1UsSUFBSSxDQUFDQyxRQUFRLEVBQUU7Z0JBQzFCaEQsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDcEJTLFVBQVUsQ0FBQzRCLFFBQVEsQ0FBQ1UsSUFBSSxDQUFDQyxRQUFRLENBQUM7Y0FDcEM7Y0FBQ1IsUUFBQSxDQUFBRSxJQUFBO2NBQUE7WUFBQTtjQUFBRixRQUFBLENBQUFDLElBQUE7Y0FBQUQsUUFBQSxDQUFBUyxFQUFBLEdBQUFULFFBQUE7Y0FFRDtjQUNBO2NBQ0FVLE9BQU8sQ0FBQ0MsR0FBRyxDQUFBWCxRQUFBLENBQUFTLEVBQUUsQ0FBQztZQUFDO1lBQUE7Y0FBQSxPQUFBVCxRQUFBLENBQUFZLElBQUE7VUFBQTtRQUFBLEdBQUFsQixPQUFBO01BQUEsQ0FHcEIsSUFBRXhELE9BQU8sQ0FBQztJQUNiO0VBQ0YsQ0FBQyxFQUNELENBQUNvQyxNQUFNLEVBQUV0QyxLQUFLLEVBQUVFLE9BQU8sRUFBRStCLFVBQVUsRUFBRVQsY0FBYyxFQUFFZixXQUFXLEVBQUV6RCxRQUFRLENBQzVFLENBQUM7RUFFRCxJQUFNNkgsTUFBTSxHQUFHLElBQUFqQyxrQkFBVyxFQUFDLFlBQU07SUFDL0JVLFVBQVUsQ0FBQyxZQUFNO01BQ2Y5QixjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ3ZCLENBQUMsRUFBRXRCLE9BQU8sQ0FBQztFQUNiLENBQUMsRUFBRSxDQUFDc0IsY0FBYyxFQUFFdEIsT0FBTyxDQUFDLENBQUM7RUFFN0IsSUFBTTRFLE9BQU8sR0FBRyxJQUFBbEMsa0JBQVcsRUFBQztJQUFBLE9BQU1wQixjQUFjLENBQUMsSUFBSSxDQUFDO0VBQUEsR0FBRSxDQUFDQSxjQUFjLENBQUMsQ0FBQztFQUV6RSxJQUFNdUQsY0FBYyxHQUFHLElBQUFuQyxrQkFBVyxFQUNoQyxVQUFBdkMsSUFBSSxFQUFJO0lBQ04sSUFBTTJFLFdBQVcsR0FBRyxJQUFJMUgsNENBQW1CLENBQUNpRCxRQUFRLENBQUM7SUFDckQsSUFBT3FELElBQUksR0FBWXZELElBQUksQ0FBcEJ1RCxJQUFJO01BQUVQLE1BQU0sR0FBSWhELElBQUksQ0FBZGdELE1BQU07SUFFbkIsSUFBTTRCLFlBQVksR0FBR3JCLElBQUksR0FDckJvQixXQUFXLENBQUNFLFNBQVMsQ0FBQyxDQUNwQixDQUFDdEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFQSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbEIsQ0FBQ0EsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFQSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbkIsQ0FBQyxHQUNGO01BQ0UvRyxTQUFTLEVBQUV3RyxNQUFNLENBQUMsQ0FBQyxDQUFDO01BQ3BCMUcsUUFBUSxFQUFFMEcsTUFBTSxDQUFDLENBQUMsQ0FBQztNQUNuQjlGLElBQUksRUFBRXNEO0lBQ1IsQ0FBQztJQUVMLElBQU9oRSxTQUFTLEdBQW9Cb0ksWUFBWSxDQUF6Q3BJLFNBQVM7TUFBRUYsUUFBUSxHQUFVc0ksWUFBWSxDQUE5QnRJLFFBQVE7TUFBRVksSUFBSSxHQUFJMEgsWUFBWSxDQUFwQjFILElBQUk7SUFFaENtRCxVQUFVLENBQUFuRixhQUFBLENBQUFBLGFBQUEsS0FBS2dGLFFBQVEsR0FBSztNQUFDMUQsU0FBUyxFQUFUQSxTQUFTO01BQUVGLFFBQVEsRUFBUkEsUUFBUTtNQUFFWSxJQUFJLEVBQUpBLElBQUk7TUFBRXFELGtCQUFrQixFQUFsQkE7SUFBa0IsQ0FBQyxHQUFHUCxJQUFJLENBQUM7SUFFbkZtQixjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ3JCSixhQUFhLENBQUNoQixVQUFVLENBQUNDLElBQUksQ0FBQyxDQUFDO0lBQy9CdUIsYUFBYSxDQUFDLElBQUksQ0FBQztFQUNyQixDQUFDLEVBQ0QsQ0FBQ3JCLFFBQVEsRUFBRUcsVUFBVSxFQUFFRSxrQkFBa0IsRUFBRUMsU0FBUyxFQUFFVCxVQUFVLENBQ2xFLENBQUM7RUFFRCxJQUFNK0UsYUFBYSxHQUFHLElBQUF2QyxrQkFBVyxFQUFDLFlBQU07SUFDdENoQixhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ3BCUixhQUFhLENBQUMsRUFBRSxDQUFDO0lBQ2pCVCxjQUFjLGFBQWRBLGNBQWMsZUFBZEEsY0FBYyxDQUFHLENBQUM7RUFDcEIsQ0FBQyxFQUFFLENBQUNBLGNBQWMsQ0FBQyxDQUFDO0VBRXBCLElBQU15RSxTQUFTLEdBQUcsSUFBQXhDLGtCQUFXLEVBQzNCLFVBQUFoSixDQUFDLEVBQUk7SUFDSCxJQUFJLENBQUNvSSxPQUFPLElBQUlBLE9BQU8sQ0FBQ3ZHLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDcEM7SUFDRjtJQUNBLFFBQVE3QixDQUFDLENBQUN5TCxPQUFPO01BQ2YsS0FBS0MsbUJBQVEsQ0FBQ0MsU0FBUztRQUNyQmxELGdCQUFnQixDQUFDRCxhQUFhLEdBQUcsQ0FBQyxHQUFHQSxhQUFhLEdBQUcsQ0FBQyxHQUFHQSxhQUFhLENBQUM7UUFDdkU7TUFDRixLQUFLa0QsbUJBQVEsQ0FBQ0UsV0FBVztRQUN2Qm5ELGdCQUFnQixDQUFDRCxhQUFhLEdBQUdKLE9BQU8sQ0FBQ3ZHLE1BQU0sR0FBRyxDQUFDLEdBQUcyRyxhQUFhLEdBQUcsQ0FBQyxHQUFHQSxhQUFhLENBQUM7UUFDeEY7TUFDRixLQUFLa0QsbUJBQVEsQ0FBQ0csWUFBWTtNQUMxQixLQUFLSCxtQkFBUSxDQUFDSSxhQUFhO1FBQ3pCLElBQUkxRCxPQUFPLENBQUNJLGFBQWEsQ0FBQyxFQUFFO1VBQzFCMkMsY0FBYyxDQUFDL0MsT0FBTyxDQUFDSSxhQUFhLENBQUMsQ0FBQztRQUN4QztRQUNBO01BQ0Y7UUFDRTtJQUNKO0VBQ0YsQ0FBQyxFQUNELENBQUNKLE9BQU8sRUFBRUksYUFBYSxFQUFFQyxnQkFBZ0IsRUFBRTBDLGNBQWMsQ0FDM0QsQ0FBQztFQUVELG9CQUNFbE0sTUFBQSxZQUFBOE0sYUFBQSxDQUFDbkgsZUFBZTtJQUFDc0IsU0FBUyxFQUFFQSxTQUFVO0lBQUMzQyxLQUFLLEVBQUVBO0VBQU0sZ0JBQ2xEdEUsTUFBQSxZQUFBOE0sYUFBQTtJQUFLN0YsU0FBUyxFQUFDO0VBQWdCLGdCQUM3QmpILE1BQUEsWUFBQThNLGFBQUE7SUFBSzdGLFNBQVMsRUFBQztFQUF3QixnQkFDckNqSCxNQUFBLFlBQUE4TSxhQUFBLENBQUNuTSxNQUFBLENBQUFvTSxNQUFNO0lBQUN4SSxNQUFNLEVBQUM7RUFBTSxDQUFFLENBQ3BCLENBQUMsZUFDTnZFLE1BQUEsWUFBQThNLGFBQUEsQ0FBQ3BNLGtCQUFBLENBQUFzTSxLQUFLO0lBQ0pDLElBQUksRUFBQyxNQUFNO0lBQ1huRCxRQUFRLEVBQUVBLFFBQVM7SUFDbkJrQyxNQUFNLEVBQUVBLE1BQU87SUFDZkMsT0FBTyxFQUFFQSxPQUFRO0lBQ2pCTSxTQUFTLEVBQUVBLFNBQVU7SUFDckJwQyxLQUFLLEVBQUU3QixVQUFXO0lBQ2xCNEUsV0FBVyxFQUNUakYsSUFBSSxHQUNBQSxJQUFJLENBQUNrRixhQUFhLENBQUM7TUFBQ0MsRUFBRSxFQUFFLGdCQUFnQjtNQUFFQyxjQUFjLEVBQUVqSztJQUFXLENBQUMsQ0FBQyxHQUN2RUE7RUFDTCxDQUNGLENBQUMsRUFDRDBGLFVBQVUsZ0JBQ1Q5SSxNQUFBLFlBQUE4TSxhQUFBO0lBQUs3RixTQUFTLEVBQUM7RUFBZSxnQkFDNUJqSCxNQUFBLFlBQUE4TSxhQUFBLENBQUNuTSxNQUFBLENBQUEyTSxNQUFNO0lBQUMvSSxNQUFNLEVBQUMsTUFBTTtJQUFDZ0osT0FBTyxFQUFFakI7RUFBYyxDQUFFLENBQzVDLENBQUMsR0FDSixJQUNELENBQUMsRUFFTDVELFdBQVcsZ0JBQ1YxSSxNQUFBLFlBQUE4TSxhQUFBO0lBQUs3RixTQUFTLEVBQUM7RUFBa0IsR0FDOUJrQyxPQUFPLENBQUNuRSxHQUFHLENBQUMsVUFBQ3dDLElBQUksRUFBRWdHLEtBQUs7SUFBQSxvQkFDdkJ4TixNQUFBLFlBQUE4TSxhQUFBO01BQ0VXLEdBQUcsRUFBRUQsS0FBTTtNQUNYdkcsU0FBUyxFQUFFLElBQUF5RyxzQkFBVSxFQUFDLGVBQWUsRUFBRTtRQUFDQyxNQUFNLEVBQUVwRSxhQUFhLEtBQUtpRTtNQUFLLENBQUMsQ0FBRTtNQUMxRUQsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUE7UUFBQSxPQUFRckIsY0FBYyxDQUFDMUUsSUFBSSxDQUFDO01BQUE7SUFBQyxHQUVuQ0QsVUFBVSxDQUFDQyxJQUFJLENBQ2IsQ0FBQztFQUFBLENBQ1AsQ0FDRSxDQUFDLEdBQ0osSUFDVyxDQUFDO0FBRXRCLENBQUM7QUFBQyxJQUFBb0csUUFBQSxHQUFBckssT0FBQSxjQUVhLElBQUFzSyxxQkFBVSxFQUFDaEgsUUFBUSxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
package/dist/geocoder-panel.d.ts
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { AddDataToMapOptions, MapState, ProtoDataset, UiState } from '@kepler.gl/types';
|
|
3
3
|
import { ActionHandler, removeDataset, updateMap, updateVisData } from '@kepler.gl/actions';
|
|
4
|
-
|
|
4
|
+
type MapViewState = {
|
|
5
|
+
latitude: number;
|
|
6
|
+
longitude: number;
|
|
7
|
+
zoom: number;
|
|
8
|
+
bearing?: number;
|
|
9
|
+
pitch?: number;
|
|
10
|
+
transitionDuration?: number;
|
|
11
|
+
transitionInterpolator?: object;
|
|
12
|
+
};
|
|
5
13
|
import { BaseComponentProps } from './types';
|
|
6
|
-
export
|
|
14
|
+
export type StyledGeocoderPanelProps = BaseComponentProps & {
|
|
7
15
|
unsyncedViewports?: boolean;
|
|
8
16
|
index?: number;
|
|
9
17
|
width?: number;
|
|
@@ -18,6 +26,7 @@ interface GeocoderPanelProps {
|
|
|
18
26
|
removeDataset: ActionHandler<typeof removeDataset>;
|
|
19
27
|
updateMap: ActionHandler<typeof updateMap>;
|
|
20
28
|
layerOrder: string[];
|
|
29
|
+
limitSearch?: boolean;
|
|
21
30
|
transitionDuration?: MapViewState['transitionDuration'];
|
|
22
31
|
width?: number;
|
|
23
32
|
className?: string;
|
package/dist/geocoder-panel.js
CHANGED
|
@@ -15,7 +15,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
15
15
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
16
16
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
17
|
var _processors = require("@kepler.gl/processors");
|
|
18
|
-
var
|
|
18
|
+
var _core = require("@deck.gl/core");
|
|
19
19
|
var _utils = require("@kepler.gl/utils");
|
|
20
20
|
var _constants = require("@kepler.gl/constants");
|
|
21
21
|
var _geocoder = _interopRequireDefault(require("./geocoder/geocoder"));
|
|
@@ -107,6 +107,8 @@ function GeocoderPanelFactory() {
|
|
|
107
107
|
removeDataset = _ref.removeDataset,
|
|
108
108
|
updateMap = _ref.updateMap,
|
|
109
109
|
layerOrder = _ref.layerOrder,
|
|
110
|
+
_ref$limitSearch = _ref.limitSearch,
|
|
111
|
+
limitSearch = _ref$limitSearch === void 0 ? false : _ref$limitSearch,
|
|
110
112
|
_ref$transitionDurati = _ref.transitionDuration,
|
|
111
113
|
transitionDuration = _ref$transitionDurati === void 0 ? 3000 : _ref$transitionDurati,
|
|
112
114
|
width = _ref.width,
|
|
@@ -147,7 +149,7 @@ function GeocoderPanelFactory() {
|
|
|
147
149
|
pitch: 0,
|
|
148
150
|
bearing: 0,
|
|
149
151
|
transitionDuration: transitionDuration,
|
|
150
|
-
transitionInterpolator: new
|
|
152
|
+
transitionInterpolator: new _core.FlyToInterpolator()
|
|
151
153
|
}), index);
|
|
152
154
|
}, [index, layerOrder, mapState, removeGeocoderDataset, transitionDuration, updateMap, updateVisData]);
|
|
153
155
|
return /*#__PURE__*/_react["default"].createElement(StyledGeocoderPanel, {
|
|
@@ -162,9 +164,11 @@ function GeocoderPanelFactory() {
|
|
|
162
164
|
mapboxApiAccessToken: mapboxApiAccessToken,
|
|
163
165
|
onSelected: onSelected,
|
|
164
166
|
onDeleteMarker: removeGeocoderDataset,
|
|
165
|
-
width: width
|
|
167
|
+
width: width,
|
|
168
|
+
mapState: mapState,
|
|
169
|
+
limitSearch: limitSearch
|
|
166
170
|
}));
|
|
167
171
|
};
|
|
168
172
|
return GeocoderPanel;
|
|
169
173
|
}
|
|
170
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9wcm9jZXNzb3JzIiwiX3R5cGVkIiwiX3V0aWxzIiwiX2NvbnN0YW50cyIsIl9nZW9jb2RlciIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIklDT05fTEFZRVIiLCJpZCIsIkdFT0NPREVSX0xBWUVSX0lEIiwidHlwZSIsImNvbmZpZyIsImxhYmVsIiwiY29sb3IiLCJHRU9DT0RFUl9JQ09OX0NPTE9SIiwiZGF0YUlkIiwiR0VPQ09ERVJfREFUQVNFVF9OQU1FIiwiY29sdW1ucyIsImxhdCIsImxuZyIsImljb24iLCJpc1Zpc2libGUiLCJoaWRkZW4iLCJ2aXNDb25maWciLCJyYWRpdXMiLCJHRU9DT0RFUl9JQ09OX1NJWkUiLCJnZW5lcmF0ZUNvbmZpZyIsImxheWVyT3JkZXIiLCJ2aXNTdGF0ZSIsImxheWVycyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJTdHlsZWRHZW9jb2RlclBhbmVsIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiZ2VvY29kZXJUb3AiLCJ1bnN5bmNlZFZpZXdwb3J0cyIsIk51bWJlciIsImlzRmluaXRlIiwiaW5kZXgiLCJnZW9jb2RlclJpZ2h0Iiwid2lkdGgiLCJnZW9jb2RlcldpZHRoIiwiYm94U2hhZG93IiwiZ2VuZXJhdGVHZW9jb2RlckRhdGFzZXQiLCJsb24iLCJ0ZXh0IiwiZGF0YSIsInByb2Nlc3NSb3dPYmplY3QiLCJsdCIsImxuIiwiaW5mbyIsImlzVmFsaWQiLCJrZXkiLCJ0ZXN0IiwiZ2V0VXBkYXRlVmlzRGF0YVBheWxvYWQiLCJkYXRhc2V0Iiwia2VlcEV4aXN0aW5nQ29uZmlnIiwiR2VvY29kZXJQYW5lbEZhY3RvcnkiLCJHZW9jb2RlclBhbmVsIiwiX3JlZiIsImlzR2VvY29kZXJFbmFibGVkIiwibWFwU3RhdGUiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsInVwZGF0ZVZpc0RhdGEiLCJyZW1vdmVEYXRhc2V0IiwidXBkYXRlTWFwIiwiX3JlZiR0cmFuc2l0aW9uRHVyYXRpIiwidHJhbnNpdGlvbkR1cmF0aW9uIiwiY2xhc3NOYW1lIiwicmVtb3ZlR2VvY29kZXJEYXRhc2V0IiwidXNlQ2FsbGJhY2siLCJvblNlbGVjdGVkIiwiX3ZpZXdwb3J0IiwidW5kZWZpbmVkIiwiZ2VvSXRlbSIsIl9nZW9JdGVtJGNlbnRlciIsIl9zbGljZWRUb0FycmF5MiIsImNlbnRlciIsImJib3giLCJ1cGRhdGVWaXNEYXRhUGF5bG9hZCIsImJvdW5kcyIsIkdFT0NPREVSX0dFT19PRkZTRVQiLCJjZW50ZXJBbmRab29tIiwiZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMiLCJoZWlnaHQiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsInpvb20iLCJwaXRjaCIsImJlYXJpbmciLCJ0cmFuc2l0aW9uSW50ZXJwb2xhdG9yIiwiRmx5VG9JbnRlcnBvbGF0b3IiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NuYW1lcyIsInN0eWxlIiwiZGlzcGxheSIsIm9uRGVsZXRlTWFya2VyIl0sInNvdXJjZXMiOlsiLi4vc3JjL2dlb2NvZGVyLXBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFja30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCwge0lTdHlsZWRDb21wb25lbnR9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtwcm9jZXNzUm93T2JqZWN0fSBmcm9tICdAa2VwbGVyLmdsL3Byb2Nlc3NvcnMnO1xuaW1wb3J0IHtGbHlUb0ludGVycG9sYXRvcn0gZnJvbSAnQGRlY2suZ2wvY29yZS90eXBlZCc7XG5pbXBvcnQge2dldENlbnRlckFuZFpvb21Gcm9tQm91bmRzfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7XG4gIEdFT0NPREVSX0RBVEFTRVRfTkFNRSxcbiAgR0VPQ09ERVJfTEFZRVJfSUQsXG4gIEdFT0NPREVSX0dFT19PRkZTRVQsXG4gIEdFT0NPREVSX0lDT05fQ09MT1IsXG4gIEdFT0NPREVSX0lDT05fU0laRVxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0FkZERhdGFUb01hcE9wdGlvbnMsIE1hcFN0YXRlLCBQcm90b0RhdGFzZXQsIFVpU3RhdGUsIFZpZXdwb3J0fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7QWN0aW9uSGFuZGxlciwgcmVtb3ZlRGF0YXNldCwgdXBkYXRlTWFwLCB1cGRhdGVWaXNEYXRhfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuXG5pbXBvcnQgR2VvY29kZXIsIHtSZXN1bHR9IGZyb20gJy4vZ2VvY29kZXIvZ2VvY29kZXInO1xuaW1wb3J0IHtNYXBWaWV3U3RhdGV9IGZyb20gJ0BkZWNrLmdsL2NvcmUvdHlwZWQnO1xuXG5pbXBvcnQge0Jhc2VDb21wb25lbnRQcm9wc30gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IElDT05fTEFZRVIgPSB7XG4gIGlkOiBHRU9DT0RFUl9MQVlFUl9JRCxcbiAgdHlwZTogJ2ljb24nLFxuICBjb25maWc6IHtcbiAgICBsYWJlbDogJ0dlb2NvZGVyIExheWVyJyxcbiAgICBjb2xvcjogR0VPQ09ERVJfSUNPTl9DT0xPUixcbiAgICBkYXRhSWQ6IEdFT0NPREVSX0RBVEFTRVRfTkFNRSxcbiAgICBjb2x1bW5zOiB7XG4gICAgICBsYXQ6ICdsdCcsXG4gICAgICBsbmc6ICdsbicsXG4gICAgICBpY29uOiAnaWNvbicsXG4gICAgICBsYWJlbDogJ3RleHQnXG4gICAgfSxcbiAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgaGlkZGVuOiB0cnVlLFxuICAgIHZpc0NvbmZpZzoge1xuICAgICAgcmFkaXVzOiBHRU9DT0RFUl9JQ09OX1NJWkVcbiAgICB9XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGdlbmVyYXRlQ29uZmlnKGxheWVyT3JkZXIpIHtcbiAgcmV0dXJuIHtcbiAgICB2aXNTdGF0ZToge1xuICAgICAgbGF5ZXJzOiBbSUNPTl9MQVlFUl0sXG4gICAgICBsYXllck9yZGVyOiBbSUNPTl9MQVlFUi5pZCwgLi4ubGF5ZXJPcmRlcl1cbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIFN0eWxlZEdlb2NvZGVyUGFuZWxQcm9wcyA9IEJhc2VDb21wb25lbnRQcm9wcyAmIHtcbiAgdW5zeW5jZWRWaWV3cG9ydHM/OiBib29sZWFuO1xuICBpbmRleD86IG51bWJlcjtcbiAgd2lkdGg/OiBudW1iZXI7XG59O1xuXG5jb25zdCBTdHlsZWRHZW9jb2RlclBhbmVsOiBJU3R5bGVkQ29tcG9uZW50PFxuICAnd2ViJyxcbiAgU3R5bGVkR2VvY29kZXJQYW5lbFByb3BzXG4+ID0gc3R5bGVkLmRpdjxTdHlsZWRHZW9jb2RlclBhbmVsUHJvcHM+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5nZW9jb2RlclRvcH1weDtcbiAgcmlnaHQ6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy51bnN5bmNlZFZpZXdwb3J0c1xuICAgICAgPyAvLyAyIGdlb2NvZGVyczogc3BsaXQgbW9kZSBhbmQgdW5zeW5jZWQgdmlld3BvcnRzXG4gICAgICAgIE51bWJlci5pc0Zpbml0ZShwcm9wcy5pbmRleCkgJiYgcHJvcHMuaW5kZXggPT09IDBcbiAgICAgICAgPyBgY2FsYyg1MCUgKyAke3Byb3BzLnRoZW1lLmdlb2NvZGVyUmlnaHR9cHgpYCAvLyB1bnN5bmNlZCBsZWZ0IGdlb2NvZGVyIChpbmRleCAwKVxuICAgICAgICA6IGAke3Byb3BzLnRoZW1lLmdlb2NvZGVyUmlnaHR9cHhgIC8vIHVuc3luY2VkIHJpZ2h0IGdlb2NvZGVyIChpbmRleCAxKVxuICAgICAgOiAvLyAxIGdlb2NvZGVyOiBzaW5nbGUgbW9kZSBPUiBzcGxpdCBtb2RlIGFuZCBzeW5jZWQgdmlld3BvcnRzXG4gICAgICAgIGAke3Byb3BzLnRoZW1lLmdlb2NvZGVyUmlnaHR9cHhgfTtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gKE51bWJlci5pc0Zpbml0ZShwcm9wcy53aWR0aCkgPyBwcm9wcy53aWR0aCA6IHByb3BzLnRoZW1lLmdlb2NvZGVyV2lkdGgpfXB4O1xuICBib3gtc2hhZG93OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmJveFNoYWRvd307XG4gIHotaW5kZXg6IDEwMDtcbmA7XG5cbmZ1bmN0aW9uIGdlbmVyYXRlR2VvY29kZXJEYXRhc2V0KGxhdDogbnVtYmVyLCBsb246IG51bWJlciwgdGV4dD86IHN0cmluZyk6IFByb3RvRGF0YXNldCB8IG51bGwge1xuICBjb25zdCBkYXRhID0gcHJvY2Vzc1Jvd09iamVjdChbXG4gICAge1xuICAgICAgbHQ6IGxhdCxcbiAgICAgIGxuOiBsb24sXG4gICAgICBpY29uOiAncGxhY2UnLFxuICAgICAgdGV4dFxuICAgIH1cbiAgXSk7XG4gIGlmICghZGF0YSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkYXRhLFxuICAgIGluZm86IHtcbiAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIGlkOiBHRU9DT0RFUl9EQVRBU0VUX05BTUUsXG4gICAgICBsYWJlbDogR0VPQ09ERVJfREFUQVNFVF9OQU1FXG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBpc1ZhbGlkKGtleSkge1xuICByZXR1cm4gL3BrXFwuLipcXC4uKi8udGVzdChrZXkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXBkYXRlVmlzRGF0YVBheWxvYWQoXG4gIGxhdDogbnVtYmVyLFxuICBsb246IG51bWJlcixcbiAgdGV4dD86IHN0cmluZ1xuKTogW1Byb3RvRGF0YXNldFtdLCBBZGREYXRhVG9NYXBPcHRpb25zXSB8IG51bGwge1xuICBjb25zdCBkYXRhc2V0ID0gZ2VuZXJhdGVHZW9jb2RlckRhdGFzZXQobGF0LCBsb24sIHRleHQpO1xuICBpZiAoIWRhdGFzZXQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4gW1xuICAgIFtkYXRhc2V0XSxcbiAgICB7XG4gICAgICBrZWVwRXhpc3RpbmdDb25maWc6IHRydWVcbiAgICB9XG4gIF07XG59XG5cbmludGVyZmFjZSBHZW9jb2RlclBhbmVsUHJvcHMge1xuICBpc0dlb2NvZGVyRW5hYmxlZDogYm9vbGVhbjtcbiAgbWFwU3RhdGU6IE1hcFN0YXRlO1xuICB1aVN0YXRlOiBVaVN0YXRlO1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICB1cGRhdGVWaXNEYXRhOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiB1cGRhdGVWaXNEYXRhPjtcbiAgcmVtb3ZlRGF0YXNldDogQWN0aW9uSGFuZGxlcjx0eXBlb2YgcmVtb3ZlRGF0YXNldD47XG4gIHVwZGF0ZU1hcDogQWN0aW9uSGFuZGxlcjx0eXBlb2YgdXBkYXRlTWFwPjtcbiAgbGF5ZXJPcmRlcjogc3RyaW5nW107XG5cbiAgdHJhbnNpdGlvbkR1cmF0aW9uPzogTWFwVmlld1N0YXRlWyd0cmFuc2l0aW9uRHVyYXRpb24nXTtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbiAgdW5zeW5jZWRWaWV3cG9ydHM6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEdlb2NvZGVyUGFuZWxGYWN0b3J5KCk6IFJlYWN0LkZDPEdlb2NvZGVyUGFuZWxQcm9wcz4ge1xuICBjb25zdCBHZW9jb2RlclBhbmVsID0gKHtcbiAgICBpc0dlb2NvZGVyRW5hYmxlZCxcbiAgICBtYXBTdGF0ZSxcbiAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgICB1cGRhdGVWaXNEYXRhLFxuICAgIHJlbW92ZURhdGFzZXQsXG4gICAgdXBkYXRlTWFwLFxuICAgIGxheWVyT3JkZXIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uID0gMzAwMCxcbiAgICB3aWR0aCxcbiAgICBjbGFzc05hbWUsXG4gICAgaW5kZXgsXG4gICAgdW5zeW5jZWRWaWV3cG9ydHNcbiAgfTogR2VvY29kZXJQYW5lbFByb3BzKSA9PiB7XG4gICAgY29uc3QgcmVtb3ZlR2VvY29kZXJEYXRhc2V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgcmVtb3ZlRGF0YXNldChHRU9DT0RFUl9EQVRBU0VUX05BTUUpO1xuICAgIH0sIFtyZW1vdmVEYXRhc2V0XSk7XG5cbiAgICBjb25zdCBvblNlbGVjdGVkID0gdXNlQ2FsbGJhY2soXG4gICAgICAoX3ZpZXdwb3J0OiBWaWV3cG9ydCB8IG51bGwgPSBudWxsLCBnZW9JdGVtOiBSZXN1bHQpID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGNlbnRlcjogW2xvbiwgbGF0XSxcbiAgICAgICAgICB0ZXh0LFxuICAgICAgICAgIGJib3hcbiAgICAgICAgfSA9IGdlb0l0ZW07XG5cbiAgICAgICAgY29uc3QgdXBkYXRlVmlzRGF0YVBheWxvYWQgPSBnZXRVcGRhdGVWaXNEYXRhUGF5bG9hZChsYXQsIGxvbiwgdGV4dCk7XG4gICAgICAgIGlmICh1cGRhdGVWaXNEYXRhUGF5bG9hZCkge1xuICAgICAgICAgIHJlbW92ZUdlb2NvZGVyRGF0YXNldCgpO1xuICAgICAgICAgIHVwZGF0ZVZpc0RhdGEoLi4udXBkYXRlVmlzRGF0YVBheWxvYWQsIGdlbmVyYXRlQ29uZmlnKGxheWVyT3JkZXIpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IGJib3ggfHwgW1xuICAgICAgICAgIGxvbiAtIEdFT0NPREVSX0dFT19PRkZTRVQsXG4gICAgICAgICAgbGF0IC0gR0VPQ09ERVJfR0VPX09GRlNFVCxcbiAgICAgICAgICBsb24gKyBHRU9DT0RFUl9HRU9fT0ZGU0VULFxuICAgICAgICAgIGxhdCArIEdFT0NPREVSX0dFT19PRkZTRVRcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgY2VudGVyQW5kWm9vbSA9IGdldENlbnRlckFuZFpvb21Gcm9tQm91bmRzKGJvdW5kcywge1xuICAgICAgICAgIHdpZHRoOiBtYXBTdGF0ZS53aWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IG1hcFN0YXRlLmhlaWdodFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWNlbnRlckFuZFpvb20pIHtcbiAgICAgICAgICAvLyBmYWlsZWQgdG8gZml0IGJvdW5kc1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHVwZGF0ZU1hcChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYXRpdHVkZTogY2VudGVyQW5kWm9vbS5jZW50ZXJbMV0sXG4gICAgICAgICAgICBsb25naXR1ZGU6IGNlbnRlckFuZFpvb20uY2VudGVyWzBdLFxuICAgICAgICAgICAgLy8gRm9yIG1hcmdpbmFsIG9yIGludmFsaWQgYm91bmRzLCB6b29tIG1heSBiZSBOYU4uIE1ha2Ugc3VyZSB0byBwcm92aWRlIGEgdmFsaWQgdmFsdWUgaW4gb3JkZXJcbiAgICAgICAgICAgIC8vIHRvIGF2b2lkIGNvcnJ1cHQgc3RhdGUgYW5kIHBvdGVudGlhbCBjcmFzaGVzIGFzIHpvb20gaXMgZXhwZWN0ZWQgdG8gYmUgYSBudW1iZXJcbiAgICAgICAgICAgIC4uLihOdW1iZXIuaXNGaW5pdGUoY2VudGVyQW5kWm9vbS56b29tKSA/IHt6b29tOiBjZW50ZXJBbmRab29tLnpvb219IDoge30pLFxuICAgICAgICAgICAgcGl0Y2g6IDAsXG4gICAgICAgICAgICBiZWFyaW5nOiAwLFxuICAgICAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uLFxuICAgICAgICAgICAgdHJhbnNpdGlvbkludGVycG9sYXRvcjogbmV3IEZseVRvSW50ZXJwb2xhdG9yKClcbiAgICAgICAgICB9LFxuICAgICAgICAgIGluZGV4XG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgW1xuICAgICAgICBpbmRleCxcbiAgICAgICAgbGF5ZXJPcmRlcixcbiAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgIHJlbW92ZUdlb2NvZGVyRGF0YXNldCxcbiAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uLFxuICAgICAgICB1cGRhdGVNYXAsXG4gICAgICAgIHVwZGF0ZVZpc0RhdGFcbiAgICAgIF1cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRHZW9jb2RlclBhbmVsXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZ2VvY29kZXItcGFuZWwnLCBjbGFzc05hbWUpfVxuICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgdW5zeW5jZWRWaWV3cG9ydHM9e3Vuc3luY2VkVmlld3BvcnRzfVxuICAgICAgICBzdHlsZT17e2Rpc3BsYXk6IGlzR2VvY29kZXJFbmFibGVkID8gJ2Jsb2NrJyA6ICdub25lJ319XG4gICAgICA+XG4gICAgICAgIHtpc1ZhbGlkKG1hcGJveEFwaUFjY2Vzc1Rva2VuKSAmJiAoXG4gICAgICAgICAgPEdlb2NvZGVyXG4gICAgICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbj17bWFwYm94QXBpQWNjZXNzVG9rZW59XG4gICAgICAgICAgICBvblNlbGVjdGVkPXtvblNlbGVjdGVkfVxuICAgICAgICAgICAgb25EZWxldGVNYXJrZXI9e3JlbW92ZUdlb2NvZGVyRGF0YXNldH1cbiAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9TdHlsZWRHZW9jb2RlclBhbmVsPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIEdlb2NvZGVyUGFuZWw7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBVUEsSUFBQVEsU0FBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQXFELElBQUFTLGVBQUEsRUFuQnJEO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVosd0JBQUFZLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFB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
|
|
174
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9wcm9jZXNzb3JzIiwiX2NvcmUiLCJfdXRpbHMiLCJfY29uc3RhbnRzIiwiX2dlb2NvZGVyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiSUNPTl9MQVlFUiIsImlkIiwiR0VPQ09ERVJfTEFZRVJfSUQiLCJ0eXBlIiwiY29uZmlnIiwibGFiZWwiLCJjb2xvciIsIkdFT0NPREVSX0lDT05fQ09MT1IiLCJkYXRhSWQiLCJHRU9DT0RFUl9EQVRBU0VUX05BTUUiLCJjb2x1bW5zIiwibGF0IiwibG5nIiwiaWNvbiIsImlzVmlzaWJsZSIsImhpZGRlbiIsInZpc0NvbmZpZyIsInJhZGl1cyIsIkdFT0NPREVSX0lDT05fU0laRSIsImdlbmVyYXRlQ29uZmlnIiwibGF5ZXJPcmRlciIsInZpc1N0YXRlIiwibGF5ZXJzIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsIlN0eWxlZEdlb2NvZGVyUGFuZWwiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJnZW9jb2RlclRvcCIsInVuc3luY2VkVmlld3BvcnRzIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJpbmRleCIsImdlb2NvZGVyUmlnaHQiLCJ3aWR0aCIsImdlb2NvZGVyV2lkdGgiLCJib3hTaGFkb3ciLCJnZW5lcmF0ZUdlb2NvZGVyRGF0YXNldCIsImxvbiIsInRleHQiLCJkYXRhIiwicHJvY2Vzc1Jvd09iamVjdCIsImx0IiwibG4iLCJpbmZvIiwiaXNWYWxpZCIsImtleSIsInRlc3QiLCJnZXRVcGRhdGVWaXNEYXRhUGF5bG9hZCIsImRhdGFzZXQiLCJrZWVwRXhpc3RpbmdDb25maWciLCJHZW9jb2RlclBhbmVsRmFjdG9yeSIsIkdlb2NvZGVyUGFuZWwiLCJfcmVmIiwiaXNHZW9jb2RlckVuYWJsZWQiLCJtYXBTdGF0ZSIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwidXBkYXRlVmlzRGF0YSIsInJlbW92ZURhdGFzZXQiLCJ1cGRhdGVNYXAiLCJfcmVmJGxpbWl0U2VhcmNoIiwibGltaXRTZWFyY2giLCJfcmVmJHRyYW5zaXRpb25EdXJhdGkiLCJ0cmFuc2l0aW9uRHVyYXRpb24iLCJjbGFzc05hbWUiLCJyZW1vdmVHZW9jb2RlckRhdGFzZXQiLCJ1c2VDYWxsYmFjayIsIm9uU2VsZWN0ZWQiLCJfdmlld3BvcnQiLCJ1bmRlZmluZWQiLCJnZW9JdGVtIiwiX2dlb0l0ZW0kY2VudGVyIiwiX3NsaWNlZFRvQXJyYXkyIiwiY2VudGVyIiwiYmJveCIsInVwZGF0ZVZpc0RhdGFQYXlsb2FkIiwiYm91bmRzIiwiR0VPQ09ERVJfR0VPX09GRlNFVCIsImNlbnRlckFuZFpvb20iLCJnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyIsImhlaWdodCIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiem9vbSIsInBpdGNoIiwiYmVhcmluZyIsInRyYW5zaXRpb25JbnRlcnBvbGF0b3IiLCJGbHlUb0ludGVycG9sYXRvciIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc25hbWVzIiwic3R5bGUiLCJkaXNwbGF5Iiwib25EZWxldGVNYXJrZXIiXSwic291cmNlcyI6WyIuLi9zcmMvZ2VvY29kZXItcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7SVN0eWxlZENvbXBvbmVudH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge3Byb2Nlc3NSb3dPYmplY3R9IGZyb20gJ0BrZXBsZXIuZ2wvcHJvY2Vzc29ycyc7XG5pbXBvcnQge0ZseVRvSW50ZXJwb2xhdG9yfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7Z2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHN9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtcbiAgR0VPQ09ERVJfREFUQVNFVF9OQU1FLFxuICBHRU9DT0RFUl9MQVlFUl9JRCxcbiAgR0VPQ09ERVJfR0VPX09GRlNFVCxcbiAgR0VPQ09ERVJfSUNPTl9DT0xPUixcbiAgR0VPQ09ERVJfSUNPTl9TSVpFXG59IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7QWRkRGF0YVRvTWFwT3B0aW9ucywgTWFwU3RhdGUsIFByb3RvRGF0YXNldCwgVWlTdGF0ZSwgVmlld3BvcnR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtBY3Rpb25IYW5kbGVyLCByZW1vdmVEYXRhc2V0LCB1cGRhdGVNYXAsIHVwZGF0ZVZpc0RhdGF9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5cbmltcG9ydCBHZW9jb2Rlciwge1Jlc3VsdH0gZnJvbSAnLi9nZW9jb2Rlci9nZW9jb2Rlcic7XG50eXBlIE1hcFZpZXdTdGF0ZSA9IHtcbiAgbGF0aXR1ZGU6IG51bWJlcjtcbiAgbG9uZ2l0dWRlOiBudW1iZXI7XG4gIHpvb206IG51bWJlcjtcbiAgYmVhcmluZz86IG51bWJlcjtcbiAgcGl0Y2g/OiBudW1iZXI7XG4gIHRyYW5zaXRpb25EdXJhdGlvbj86IG51bWJlcjtcbiAgdHJhbnNpdGlvbkludGVycG9sYXRvcj86IG9iamVjdDtcbn07XG5cbmltcG9ydCB7QmFzZUNvbXBvbmVudFByb3BzfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgSUNPTl9MQVlFUiA9IHtcbiAgaWQ6IEdFT0NPREVSX0xBWUVSX0lELFxuICB0eXBlOiAnaWNvbicsXG4gIGNvbmZpZzoge1xuICAgIGxhYmVsOiAnR2VvY29kZXIgTGF5ZXInLFxuICAgIGNvbG9yOiBHRU9DT0RFUl9JQ09OX0NPTE9SLFxuICAgIGRhdGFJZDogR0VPQ09ERVJfREFUQVNFVF9OQU1FLFxuICAgIGNvbHVtbnM6IHtcbiAgICAgIGxhdDogJ2x0JyxcbiAgICAgIGxuZzogJ2xuJyxcbiAgICAgIGljb246ICdpY29uJyxcbiAgICAgIGxhYmVsOiAndGV4dCdcbiAgICB9LFxuICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICBoaWRkZW46IHRydWUsXG4gICAgdmlzQ29uZmlnOiB7XG4gICAgICByYWRpdXM6IEdFT0NPREVSX0lDT05fU0laRVxuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gZ2VuZXJhdGVDb25maWcobGF5ZXJPcmRlcikge1xuICByZXR1cm4ge1xuICAgIHZpc1N0YXRlOiB7XG4gICAgICBsYXllcnM6IFtJQ09OX0xBWUVSXSxcbiAgICAgIGxheWVyT3JkZXI6IFtJQ09OX0xBWUVSLmlkLCAuLi5sYXllck9yZGVyXVxuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgU3R5bGVkR2VvY29kZXJQYW5lbFByb3BzID0gQmFzZUNvbXBvbmVudFByb3BzICYge1xuICB1bnN5bmNlZFZpZXdwb3J0cz86IGJvb2xlYW47XG4gIGluZGV4PzogbnVtYmVyO1xuICB3aWR0aD86IG51bWJlcjtcbn07XG5cbmNvbnN0IFN0eWxlZEdlb2NvZGVyUGFuZWw6IElTdHlsZWRDb21wb25lbnQ8XG4gICd3ZWInLFxuICBTdHlsZWRHZW9jb2RlclBhbmVsUHJvcHNcbj4gPSBzdHlsZWQuZGl2PFN0eWxlZEdlb2NvZGVyUGFuZWxQcm9wcz5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmdlb2NvZGVyVG9wfXB4O1xuICByaWdodDogJHtwcm9wcyA9PlxuICAgIHByb3BzLnVuc3luY2VkVmlld3BvcnRzXG4gICAgICA/IC8vIDIgZ2VvY29kZXJzOiBzcGxpdCBtb2RlIGFuZCB1bnN5bmNlZCB2aWV3cG9ydHNcbiAgICAgICAgTnVtYmVyLmlzRmluaXRlKHByb3BzLmluZGV4KSAmJiBwcm9wcy5pbmRleCA9PT0gMFxuICAgICAgICA/IGBjYWxjKDUwJSArICR7cHJvcHMudGhlbWUuZ2VvY29kZXJSaWdodH1weClgIC8vIHVuc3luY2VkIGxlZnQgZ2VvY29kZXIgKGluZGV4IDApXG4gICAgICAgIDogYCR7cHJvcHMudGhlbWUuZ2VvY29kZXJSaWdodH1weGAgLy8gdW5zeW5jZWQgcmlnaHQgZ2VvY29kZXIgKGluZGV4IDEpXG4gICAgICA6IC8vIDEgZ2VvY29kZXI6IHNpbmdsZSBtb2RlIE9SIHNwbGl0IG1vZGUgYW5kIHN5bmNlZCB2aWV3cG9ydHNcbiAgICAgICAgYCR7cHJvcHMudGhlbWUuZ2VvY29kZXJSaWdodH1weGB9O1xuICB3aWR0aDogJHtwcm9wcyA9PiAoTnVtYmVyLmlzRmluaXRlKHByb3BzLndpZHRoKSA/IHByb3BzLndpZHRoIDogcHJvcHMudGhlbWUuZ2VvY29kZXJXaWR0aCl9cHg7XG4gIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcbiAgei1pbmRleDogMTAwO1xuYDtcblxuZnVuY3Rpb24gZ2VuZXJhdGVHZW9jb2RlckRhdGFzZXQobGF0OiBudW1iZXIsIGxvbjogbnVtYmVyLCB0ZXh0Pzogc3RyaW5nKTogUHJvdG9EYXRhc2V0IHwgbnVsbCB7XG4gIGNvbnN0IGRhdGEgPSBwcm9jZXNzUm93T2JqZWN0KFtcbiAgICB7XG4gICAgICBsdDogbGF0LFxuICAgICAgbG46IGxvbixcbiAgICAgIGljb246ICdwbGFjZScsXG4gICAgICB0ZXh0XG4gICAgfVxuICBdKTtcbiAgaWYgKCFkYXRhKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRhdGEsXG4gICAgaW5mbzoge1xuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgaWQ6IEdFT0NPREVSX0RBVEFTRVRfTkFNRSxcbiAgICAgIGxhYmVsOiBHRU9DT0RFUl9EQVRBU0VUX05BTUVcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzVmFsaWQoa2V5KSB7XG4gIHJldHVybiAvcGtcXC4uKlxcLi4qLy50ZXN0KGtleSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVcGRhdGVWaXNEYXRhUGF5bG9hZChcbiAgbGF0OiBudW1iZXIsXG4gIGxvbjogbnVtYmVyLFxuICB0ZXh0Pzogc3RyaW5nXG4pOiBbUHJvdG9EYXRhc2V0W10sIEFkZERhdGFUb01hcE9wdGlvbnNdIHwgbnVsbCB7XG4gIGNvbnN0IGRhdGFzZXQgPSBnZW5lcmF0ZUdlb2NvZGVyRGF0YXNldChsYXQsIGxvbiwgdGV4dCk7XG4gIGlmICghZGF0YXNldCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBbXG4gICAgW2RhdGFzZXRdLFxuICAgIHtcbiAgICAgIGtlZXBFeGlzdGluZ0NvbmZpZzogdHJ1ZVxuICAgIH1cbiAgXTtcbn1cblxuaW50ZXJmYWNlIEdlb2NvZGVyUGFuZWxQcm9wcyB7XG4gIGlzR2VvY29kZXJFbmFibGVkOiBib29sZWFuO1xuICBtYXBTdGF0ZTogTWFwU3RhdGU7XG4gIHVpU3RhdGU6IFVpU3RhdGU7XG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIHVwZGF0ZVZpc0RhdGE6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHVwZGF0ZVZpc0RhdGE+O1xuICByZW1vdmVEYXRhc2V0OiBBY3Rpb25IYW5kbGVyPHR5cGVvZiByZW1vdmVEYXRhc2V0PjtcbiAgdXBkYXRlTWFwOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiB1cGRhdGVNYXA+O1xuICBsYXllck9yZGVyOiBzdHJpbmdbXTtcbiAgbGltaXRTZWFyY2g/OiBib29sZWFuO1xuXG4gIHRyYW5zaXRpb25EdXJhdGlvbj86IE1hcFZpZXdTdGF0ZVsndHJhbnNpdGlvbkR1cmF0aW9uJ107XG4gIHdpZHRoPzogbnVtYmVyO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG4gIHVuc3luY2VkVmlld3BvcnRzOiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBHZW9jb2RlclBhbmVsRmFjdG9yeSgpOiBSZWFjdC5GQzxHZW9jb2RlclBhbmVsUHJvcHM+IHtcbiAgY29uc3QgR2VvY29kZXJQYW5lbCA9ICh7XG4gICAgaXNHZW9jb2RlckVuYWJsZWQsXG4gICAgbWFwU3RhdGUsXG4gICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgdXBkYXRlVmlzRGF0YSxcbiAgICByZW1vdmVEYXRhc2V0LFxuICAgIHVwZGF0ZU1hcCxcbiAgICBsYXllck9yZGVyLFxuICAgIGxpbWl0U2VhcmNoID0gZmFsc2UsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uID0gMzAwMCxcbiAgICB3aWR0aCxcbiAgICBjbGFzc05hbWUsXG4gICAgaW5kZXgsXG4gICAgdW5zeW5jZWRWaWV3cG9ydHNcbiAgfTogR2VvY29kZXJQYW5lbFByb3BzKSA9PiB7XG4gICAgY29uc3QgcmVtb3ZlR2VvY29kZXJEYXRhc2V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgcmVtb3ZlRGF0YXNldChHRU9DT0RFUl9EQVRBU0VUX05BTUUpO1xuICAgIH0sIFtyZW1vdmVEYXRhc2V0XSk7XG5cbiAgICBjb25zdCBvblNlbGVjdGVkID0gdXNlQ2FsbGJhY2soXG4gICAgICAoX3ZpZXdwb3J0OiBWaWV3cG9ydCB8IG51bGwgPSBudWxsLCBnZW9JdGVtOiBSZXN1bHQpID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGNlbnRlcjogW2xvbiwgbGF0XSxcbiAgICAgICAgICB0ZXh0LFxuICAgICAgICAgIGJib3hcbiAgICAgICAgfSA9IGdlb0l0ZW07XG5cbiAgICAgICAgY29uc3QgdXBkYXRlVmlzRGF0YVBheWxvYWQgPSBnZXRVcGRhdGVWaXNEYXRhUGF5bG9hZChsYXQsIGxvbiwgdGV4dCk7XG4gICAgICAgIGlmICh1cGRhdGVWaXNEYXRhUGF5bG9hZCkge1xuICAgICAgICAgIHJlbW92ZUdlb2NvZGVyRGF0YXNldCgpO1xuICAgICAgICAgIHVwZGF0ZVZpc0RhdGEoLi4udXBkYXRlVmlzRGF0YVBheWxvYWQsIGdlbmVyYXRlQ29uZmlnKGxheWVyT3JkZXIpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IGJib3ggfHwgW1xuICAgICAgICAgIGxvbiAtIEdFT0NPREVSX0dFT19PRkZTRVQsXG4gICAgICAgICAgbGF0IC0gR0VPQ09ERVJfR0VPX09GRlNFVCxcbiAgICAgICAgICBsb24gKyBHRU9DT0RFUl9HRU9fT0ZGU0VULFxuICAgICAgICAgIGxhdCArIEdFT0NPREVSX0dFT19PRkZTRVRcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgY2VudGVyQW5kWm9vbSA9IGdldENlbnRlckFuZFpvb21Gcm9tQm91bmRzKGJvdW5kcywge1xuICAgICAgICAgIHdpZHRoOiBtYXBTdGF0ZS53aWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IG1hcFN0YXRlLmhlaWdodFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWNlbnRlckFuZFpvb20pIHtcbiAgICAgICAgICAvLyBmYWlsZWQgdG8gZml0IGJvdW5kc1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHVwZGF0ZU1hcChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYXRpdHVkZTogY2VudGVyQW5kWm9vbS5jZW50ZXJbMV0sXG4gICAgICAgICAgICBsb25naXR1ZGU6IGNlbnRlckFuZFpvb20uY2VudGVyWzBdLFxuICAgICAgICAgICAgLy8gRm9yIG1hcmdpbmFsIG9yIGludmFsaWQgYm91bmRzLCB6b29tIG1heSBiZSBOYU4uIE1ha2Ugc3VyZSB0byBwcm92aWRlIGEgdmFsaWQgdmFsdWUgaW4gb3JkZXJcbiAgICAgICAgICAgIC8vIHRvIGF2b2lkIGNvcnJ1cHQgc3RhdGUgYW5kIHBvdGVudGlhbCBjcmFzaGVzIGFzIHpvb20gaXMgZXhwZWN0ZWQgdG8gYmUgYSBudW1iZXJcbiAgICAgICAgICAgIC4uLihOdW1iZXIuaXNGaW5pdGUoY2VudGVyQW5kWm9vbS56b29tKSA/IHt6b29tOiBjZW50ZXJBbmRab29tLnpvb219IDoge30pLFxuICAgICAgICAgICAgcGl0Y2g6IDAsXG4gICAgICAgICAgICBiZWFyaW5nOiAwLFxuICAgICAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uLFxuICAgICAgICAgICAgdHJhbnNpdGlvbkludGVycG9sYXRvcjogbmV3IEZseVRvSW50ZXJwb2xhdG9yKClcbiAgICAgICAgICB9LFxuICAgICAgICAgIGluZGV4XG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgW1xuICAgICAgICBpbmRleCxcbiAgICAgICAgbGF5ZXJPcmRlcixcbiAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgIHJlbW92ZUdlb2NvZGVyRGF0YXNldCxcbiAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uLFxuICAgICAgICB1cGRhdGVNYXAsXG4gICAgICAgIHVwZGF0ZVZpc0RhdGFcbiAgICAgIF1cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRHZW9jb2RlclBhbmVsXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZ2VvY29kZXItcGFuZWwnLCBjbGFzc05hbWUpfVxuICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgdW5zeW5jZWRWaWV3cG9ydHM9e3Vuc3luY2VkVmlld3BvcnRzfVxuICAgICAgICBzdHlsZT17e2Rpc3BsYXk6IGlzR2VvY29kZXJFbmFibGVkID8gJ2Jsb2NrJyA6ICdub25lJ319XG4gICAgICA+XG4gICAgICAgIHtpc1ZhbGlkKG1hcGJveEFwaUFjY2Vzc1Rva2VuKSAmJiAoXG4gICAgICAgICAgPEdlb2NvZGVyXG4gICAgICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbj17bWFwYm94QXBpQWNjZXNzVG9rZW59XG4gICAgICAgICAgICBvblNlbGVjdGVkPXtvblNlbGVjdGVkfVxuICAgICAgICAgICAgb25EZWxldGVNYXJrZXI9e3JlbW92ZUdlb2NvZGVyRGF0YXNldH1cbiAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgIGxpbWl0U2VhcmNoPXtsaW1pdFNlYXJjaH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9TdHlsZWRHZW9jb2RlclBhbmVsPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIEdlb2NvZGVyUGFuZWw7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBVUEsSUFBQVEsU0FBQSxHQUFB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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
2
|
import { Provider } from '@kepler.gl/cloud-providers';
|
|
3
|
-
|
|
3
|
+
type CloudListProviderProps = PropsWithChildren<{
|
|
4
4
|
providers: Provider[];
|
|
5
5
|
}>;
|
|
6
6
|
export declare const CloudListProvider: React.FC<CloudListProviderProps>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DragEndEvent, DragStartEvent } from '@dnd-kit/core';
|
|
2
2
|
import { Effect } from '@kepler.gl/types';
|
|
3
|
-
|
|
3
|
+
type DndEffectsHook = {
|
|
4
4
|
activeEffect: Effect | undefined;
|
|
5
5
|
onDragStart: (event: DragStartEvent) => void;
|
|
6
6
|
onDragEnd: (event: DragEndEvent) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DragEndEvent, DragStartEvent } from '@dnd-kit/core';
|
|
2
2
|
import { Layer } from '@kepler.gl/layers';
|
|
3
|
-
|
|
3
|
+
type DndEffectsHook = {
|
|
4
4
|
activeLayer: Layer | undefined;
|
|
5
5
|
onDragStart: (event: DragStartEvent) => void;
|
|
6
6
|
onDragEnd: (event: DragEndEvent) => void;
|
|
@@ -2,8 +2,8 @@ import { PMTilesMetadata } from '@loaders.gl/pmtiles';
|
|
|
2
2
|
import { VectorTileMetadata } from '@kepler.gl/table';
|
|
3
3
|
import { JsonObjectOrArray, StacTypes } from '@kepler.gl/types';
|
|
4
4
|
import { RasterTileType } from '@kepler.gl/constants';
|
|
5
|
-
|
|
6
|
-
export
|
|
5
|
+
type RasterMetadataResponse = VectorTileMetadata | StacTypes.CompleteSTACObject | null;
|
|
6
|
+
export type FetchJsonProps = {
|
|
7
7
|
url: string | null;
|
|
8
8
|
rasterTileType: RasterTileType;
|
|
9
9
|
options?: JsonObjectOrArray;
|
|
@@ -12,7 +12,7 @@ export declare type FetchJsonProps = {
|
|
|
12
12
|
rasterTileType: RasterTileType;
|
|
13
13
|
}) => RasterMetadataResponse | Error;
|
|
14
14
|
};
|
|
15
|
-
export
|
|
15
|
+
export type UseFetchJsonReturn = {
|
|
16
16
|
data: RasterMetadataResponse;
|
|
17
17
|
loading: boolean;
|
|
18
18
|
error: Error | null;
|
|
@@ -2,13 +2,13 @@ import { TileJSON } from '@loaders.gl/mvt';
|
|
|
2
2
|
import { PMTilesMetadata } from '@loaders.gl/pmtiles';
|
|
3
3
|
import { RemoteTileFormat } from '@kepler.gl/constants';
|
|
4
4
|
import { VectorTileMetadata } from '@kepler.gl/table';
|
|
5
|
-
|
|
5
|
+
type FetchVectorTileMetadataProps = {
|
|
6
6
|
metadataUrl: string | null;
|
|
7
7
|
tilesetUrl: string | null;
|
|
8
8
|
remoteTileFormat: RemoteTileFormat;
|
|
9
9
|
process?: (json: PMTilesMetadata | TileJSON) => VectorTileMetadata | Error | null;
|
|
10
10
|
};
|
|
11
|
-
|
|
11
|
+
type FetchVectorTileMetadataReturn = {
|
|
12
12
|
data: VectorTileMetadata | null;
|
|
13
13
|
loading: boolean;
|
|
14
14
|
error: Error | null;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { MapLegendControlSettings } from '@kepler.gl/types';
|
|
3
|
-
|
|
2
|
+
type Params = {
|
|
4
3
|
legendContentRef: React.MutableRefObject<HTMLElement | null>;
|
|
5
4
|
isSidePanelShown: boolean;
|
|
6
5
|
settings?: MapLegendControlSettings;
|
|
@@ -9,7 +8,7 @@ declare type Params = {
|
|
|
9
8
|
mapHeight?: number;
|
|
10
9
|
mapWidth?: number;
|
|
11
10
|
};
|
|
12
|
-
|
|
11
|
+
type ReturnType = {
|
|
13
12
|
positionStyles: Record<string, unknown>;
|
|
14
13
|
updatePosition: () => void;
|
|
15
14
|
contentHeight: number;
|
|
@@ -17,12 +16,12 @@ declare type ReturnType = {
|
|
|
17
16
|
startResize: () => void;
|
|
18
17
|
resize: (deltaY: number) => void;
|
|
19
18
|
};
|
|
20
|
-
export
|
|
19
|
+
export type UseCalcLegendPositionProps = {
|
|
21
20
|
legendContentRef: React.MutableRefObject<HTMLElement | null>;
|
|
22
21
|
isSidePanelShown: boolean;
|
|
23
22
|
sidePanelWidth: number;
|
|
24
23
|
};
|
|
25
|
-
export declare function useCalcLegendPosition({ legendContentRef, isSidePanelShown, sidePanelWidth }: UseCalcLegendPositionProps): () => MapLegendControlSettings[
|
|
24
|
+
export declare function useCalcLegendPosition({ legendContentRef, isSidePanelShown, sidePanelWidth }: UseCalcLegendPositionProps): () => MapLegendControlSettings["position"];
|
|
26
25
|
/**
|
|
27
26
|
* Returns a function that calculates the anchored position of the map legend
|
|
28
27
|
* that is being dragged.
|